k2-im 0.1.38 → 0.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function Pl(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Invalid FILES_ALBUM object");return e}function Vl(e){let n=Pl(e),t=n.fileName??n.fielName,r=n.md5??n.MD5,o=n.fileSize??n.fileLength;if(typeof n.url!="string"||!/^https?:\/\//i.test(n.url)||typeof t!="string"||t===""||typeof n.extension!="string"||typeof r!="string"||r===""||typeof o!="number"||!Number.isSafeInteger(o)||o<0||typeof n.fileType!="number"||!Number.isInteger(n.fileType)||n.fileType<0||n.fileType>5||typeof n.fileEncryptType!="number"||![0,1,2,3].includes(n.fileEncryptType)||typeof n.teaKey!="string")throw new Error("Invalid FILES_ALBUM item");let i=n.extension.replace(/^\./,"").toLowerCase(),s=Uint8Array.from(globalThis.atob(n.teaKey),a=>a.charCodeAt(0));if(n.fileEncryptType!==1&&s.length===0)throw new Error("Missing FILES_ALBUM item key");return {url:n.url,fileName:t,extension:i,md5:r,size:o,fileType:["zip","rar","torrent"].includes(i)?5:n.fileType,fileEncryptType:n.fileEncryptType,...s.length===0?{}:{teaKey:s}}}function Ol(e){let n=Pl(JSON.parse(e.content));if(n.contentType!=="29"||!Array.isArray(n.items)||n.items.length===0||n.caption!==void 0&&typeof n.caption!="string")throw new Error("Invalid FILES_ALBUM body");return {items:n.items.map(Vl),...typeof n.caption=="string"&&n.caption.trim()!==""?{caption:n.caption}:{}}}function Kl(e){if(e.items.length!==1||(e.caption?.length??0)>1024)throw new Error("Invalid outgoing FILES_ALBUM size");let n=e.items.map(t=>{let r="";for(let i of t.teaKey??[])r+=String.fromCharCode(i);let o={url:t.url,fileName:t.fileName,extension:t.extension,fileType:t.fileType,md5:t.md5,fileSize:t.size,fileEncryptType:t.fileEncryptType,teaKey:globalThis.btoa(r)};return Vl(o),o});return {contentType:29,content:JSON.stringify({contentType:"29",...e.caption?.trim()?{caption:e.caption}:{},items:n})}}var oi=28,Ql=1,La=2,At=1024,jt=9;function Wa(e){let n=e.caption!==void 0&&e.caption.trim()!=="",t=e.items.length===1?e.items[0]:void 0;return n||t===void 0?"mediaAlbum":t.kind}var Za=512*1024,Ha=256*1024;function qt(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function zt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""){let o=Number(r);if(Number.isFinite(o))return o}}}function Ny(e,n){for(let t of n){let r=e[t];if(typeof r=="boolean")return r;if(typeof r=="number"&&(r===0||r===1))return r===1;if(r==="true"||r==="false")return r==="true"}}function Qa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ll(e){let n=e.replace(/\s+/g,"");if(!(n===""||n.length%4!==0||!/^[A-Z0-9+/]*={0,2}$/i.test(n)))try{let t=globalThis.atob(n);return Uint8Array.from(t,r=>r.charCodeAt(0))}catch{return}}function Zl(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function _y(e){return e!==void 0&&e!==1}function Dy(e){if(!Qa(e))return;let n=zt(e,["mediaType","type"]);if(n!==Ql&&n!==La)return;let t=qt(e,["url","content"]);if(t===void 0)return;let r=zt(e,["fileEncryptType"]),o,i=qt(e,["teaKey"]);if(i!==void 0&&(o=Ll(i)),_y(r)&&(o===void 0||o.length===0))return;let s=zt(e,["width","imageWidth"])??0,a=zt(e,["height","imageHeight"])??0,c={kind:n===La?"video":"image",url:t,width:Number.isInteger(s)&&s>0?s:0,height:Number.isInteger(a)&&a>0?a:0},u=zt(e,["duration"]);c.kind==="video"&&u!==void 0&&u>0&&(c.durationMs=u);let p=qt(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);p!==void 0&&(c.thumbUrl=p);let y=qt(e,["thumbData"]);if(y!==void 0){let k=Ll(y);k!==void 0&&k.length>0&&(c.thumbData=k);}let x=qt(e,["md5","MD5"]);x!==void 0&&(c.md5=x);let v=zt(e,["fileSize","fileLength"]);v!==void 0&&v>0&&(c.size=v),o!==void 0&&o.length>0&&(c.teaKey=o),r!==void 0&&(c.fileEncryptType=r);let I=Ny(e,["hd","isHd","isHD"]);return I!==void 0&&(c.hd=I),c}function Ja(e){let n=JSON.parse(e.content);if(!Qa(n))throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61");let t=n,r=n.content;if(typeof r=="string"&&r!==""){let c=JSON.parse(r);if(!Qa(c))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=c;}let o=t.items,i=[];if(Array.isArray(o))for(let c of o){let u=Dy(c);u!==void 0&&i.push(u);}let s={items:i},a=qt(t,["caption"]);return a!==void 0&&a.trim()!==""&&(s.caption=a),s}function Gy(e){return {mediaType:e.kind==="video"?La:Ql,url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0&&e.durationMs>0?{duration:e.durationMs}:{},...e.thumbUrl!==void 0&&e.thumbUrl!==""?{thumbUrl:e.thumbUrl}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:Zl(e.thumbData)}:{},...e.md5!==void 0&&e.md5!==""?{md5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileSize:e.size}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:Zl(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function ii(e){return new TextEncoder().encode(e).length}function Mr(e){if(e.items.length===0)throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u6CA1\u6709\u53EF\u53D1\u9001\u7684\u9879");if(e.items.length>jt)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > ${jt}`);if(e.caption!==void 0&&e.caption.length>At)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 ${At} \u5B57\u7B26\u4E0A\u9650\uFF1A${e.caption.length}`);let n=e.caption!==void 0&&e.caption.trim()!==""?e.caption:void 0,t=JSON.stringify({...n===void 0?{}:{caption:n},items:e.items.map(Gy)}),r=ii(t);if(r>=Za)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${Za} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:oi,content:t,...o===void 0?{}:{thumbData:o}}}function Ya(e){return e===1?"gif":"sticker"}function si(e){if(typeof e!="string"||e.trim()==="")return false;try{let n=new URL(e.trim());return (n.protocol==="https:"||n.protocol==="http:")&&n.username===""&&n.password===""}catch{return false}}function Bt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function Xa(e){if(e.exprType===2){if(!si(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Bt(e.width)||!Bt(e.height))throw new Error("sticker body: LINK \u5C3A\u5BF8\u975E\u6CD5")}let n={url:e.content,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType};return e.fileLength>0n&&(n.size=Number(e.fileLength)),e.describe!==""&&(n.describe=e.describe),e.contentId!==""&&(n.contentId=e.contentId),e.exprePackageName!==""&&(n.packageName=e.exprePackageName),e.thumbData.length>0&&(n.thumbData=e.thumbData),n}function za(e){if(e.exprType===2){if(!si(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Bt(e.width)||e.width===0||!Bt(e.height)||e.height===0)throw new Error("sticker body: \u51FA\u7AD9 LINK \u5C3A\u5BF8\u5FC5\u987B\u4E3A\u6B63 uint32")}return {contentType:7,content:e.url,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType,...e.size!==void 0&&e.size>0?{fileLength:BigInt(e.size)}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.contentId!==void 0&&e.contentId!==""?{contentId:e.contentId}:{},...e.packageName!==void 0&&e.packageName!==""?{exprePackageName:e.packageName}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{}}}var Wl,Hl,Uy={text:e=>e.text??"",file:e=>[e.file?.fileName,e.file?.extension].filter(n=>n!==void 0&&n!=="").join(" "),contact:e=>[e.contact?.displayName,e.contact?.username,e.contact?.targetId].filter(n=>n!==void 0&&n!=="").join(" "),image:()=>"",video:()=>"",voice:()=>"",sticker:()=>"",filesAlbum:e=>[e.filesAlbum?.caption,...e.filesAlbum?.items.map(n=>n.fileName)??[]].filter(Boolean).join(" "),mediaAlbum:e=>e.mediaAlbum?.caption?.trim()??"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),robot:e=>e.robot?.modules.flatMap(n=>n.type==="section"?[n.content]:[]).filter(n=>n.trim()!=="").join(" ")??"",game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),gift:e=>[e.gift?.giftName,e.gift?.fromUserName,e.gift?.toUserName,e.gift?.explain].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function ai(e){return Uy[e.contentType](e.body)}function ky(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let i=o.index;t.push(Object.freeze({start:i,end:i+o[0].length}));}return Object.freeze(t)}function xy(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(s=>Number.isSafeInteger(s)&&s>=0&&s<e.length).sort((s,a)=>s-a);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let s of t.slice(1)){if(s===i+1){i=s;continue}r.push(Object.freeze({start:o,end:i+1})),o=s,i=s;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function wy(){return Wl??=import('pinyin-pro').then(e=>e.match),Wl}function By(){return Hl??=import('pinyin-pro').then(e=>e.pinyin),Hl}async function Fy(e){let n=e.trim(),t=n.charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let i=(await By())(n,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function qa(e){let n=e.trim().toLocaleLowerCase();if(n==="")throw new Error("IM \u6587\u672C\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A");let t=n.replace(/[\s'-]+/g,""),o=/^[a-z]+$/.test(t)?await wy():void 0;return Object.freeze({keyword:n,match(i,s={}){let a=ky(i,n);if(a.length>0)return Object.freeze({method:"direct",ranges:a});if(s.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let c=o(i,t);if(c===null)return null;let u=xy(i,c);return u.length===0?null:Object.freeze({method:"pinyin",ranges:u})}})}var Py=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function Vy(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...Ly(e,n)];if(n.matchers!==void 0)for(let r of n.matchers)t.push(...r(e));return t.length===0?[{kind:"text",text:e}]:(t.sort((r,o)=>r.start-o.start||o.end-r.end),Oy(e,t))}function Oy(e,n){let t=[],r=0;for(let o of n)o.start<r||o.start<0||o.end<o.start||o.end+1>e.length||(o.start>r&&t.push({kind:"text",text:e.slice(r,o.start)}),t.push(o.segment),r=o.end+1);return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t.length>0?t:[{kind:"text",text:e}]}function Ky(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function Ly(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?Zy(n.atAllTexts??Py):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let s=i[1];if(s!==void 0&&!t.atUserIds.includes(s)){i=r.exec(e);continue}let a=s===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:Ky(s,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:a}),i=r.exec(e);}return o}function Zy(e){let n=e.filter(r=>r!=="");if(n.length===0)return /\[(\d+)\]/g;let t=[...n].sort((r,o)=>o.length-r.length).map(r=>`${Qy(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function Qy(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Er(e,n){let t=n.trim();return t===""?e.toString():t}function Jl(e){let n=e.trim();return n!==""&&n!=="0"}var Wy=new Set(["audio","video"]),Hy=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function qn(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function ja(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function $a(e,n){return n===void 0?e:{...e,outgoing:n}}function ed(e,n){let t=qn(e);if(t===void 0)return 0;if(!Number.isFinite(t)||t<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);let r=Math.round(n==="s"?t*1e3:t);if(!Number.isSafeInteger(r)||r<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);return r}function Jy(e){let n=e.trim();if(n==="")throw new Error("call record: content \u4E3A\u7A7A");let t;try{t=JSON.parse(n);}catch{throw new Error("call record: content \u4E0D\u662F JSON")}if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("call record: content \u4E0D\u662F\u5BF9\u8C61");return t}function Yy(e){if(e===0)return "video";if(e===1)return "audio";throw new Error(`call record: Android \u672C\u5730 callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Yl(e,n){if(e===0)return "audio";if(e===1)return "video";throw new Error(`call record: ${n} \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Xy(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function zy(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function qy(e,n){switch(e){case 0:case 5:return "missed";case 1:return n>0?"completed":"cancelled";case 2:return n>0?"completed":"missed";case 3:case 4:return "rejected";case 6:return "busy";case 7:return "no-permission";case 8:return "interrupted";default:return "unknown"}}function jy(e){let n=qn(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=qn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return $a({callKind:Yl(n,"Android \u540C\u6B65 callType"),outcome:zy(t),durationMs:ed(e.callDuration,"ms")},ja(e.isCaller))}function $y(e){let n=qn(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=qn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return $a({callKind:Yy(n),outcome:Xy(t),durationMs:ed(e.duration,"ms")},ja(e.isCaller))}function eI(e){let n=qn(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=qn(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=ed(e.content,"s");return $a({callKind:Yl(n,"iOS type"),outcome:qy(t,r),durationMs:r},ja(e.isCaller))}function Xl(e){if(e===null||typeof e!="object")return false;let n=e;return !(!Wy.has(n.callKind)||!Hy.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function zl(e){let n=Jy(e.content);if("callDuration"in n)return jy(n);if(qn(n.callType)!==void 0&&qn(n.callStatus)!==void 0)return $y(n);if(qn(n.type)!==void 0&&qn(n.status)!==void 0)return eI(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function ql(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function nI(e){switch(e){case 0:return {kind:"individual"};case 1:return {kind:"group"};case 2:return {kind:"channel"};case 3:return {kind:"robot"};default:return {kind:"unknown",rawKind:e}}}function tI(e,n){switch(e){case "individual":return 0;case "group":return 1;case "channel":return 2;case "robot":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("contact body: unknown \u540D\u7247\u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawKind/visitCardKey");return n}}function jl(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...nI(e.visitCardKey)}}function $l(e){return {contentType:8,content:"",id:e.targetId,...e.avatar===void 0||e.avatar===""?{}:{icon:e.avatar},name:e.displayName,...e.username===void 0||e.username===""?{}:{username:e.username},gender:e.gender,visitCardKey:tI(e.kind,e.rawKind)}}function eu(e){let n={url:e.content,fileName:e.fielName};return e.extension!==""&&(n.extension=e.extension),e.fileType!==0&&(n.fileType=e.fileType),e.fileLength>0n&&(n.size=Number(e.fileLength)),e.MD5!==""&&(n.md5=e.MD5),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function nu(e){return {contentType:11,content:e.url,...e.fileName!==""?{fielName:e.fileName}:{},...e.extension!==void 0&&e.extension!==""?{extension:e.extension}:{},...e.fileType!==void 0&&e.fileType!==0?{fileType:e.fileType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size))}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Tr(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.value!="number"||!Number.isInteger(n.value)?false:n.gameType==="rock-paper-scissors"?n.value>=1&&n.value<=3:n.gameType==="dice"&&n.value>=1&&n.value<=6}function tu(e){let n=Number(e.gameType),t=Number(e.gameValue);if(n===0){if(t!==1&&t!==2&&t!==3)throw new Error(`game body: \u77F3\u5934\u526A\u5200\u5E03\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"rock-paper-scissors",value:t}}if(n===1){if(t!==1&&t!==2&&t!==3&&t!==4&&t!==5&&t!==6)throw new Error(`game body: \u9AB0\u5B50\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"dice",value:t}}throw new Error(`game body: gameType \u975E\u6CD5\uFF08${String(e.gameType)}\uFF09`)}function ru(e){let n=e;if(!Tr(e))throw new Error(`game body: \u51FA\u7AD9\u7ED3\u679C\u975E\u6CD5\uFF08${String(n.gameType)}/${String(n.value)}\uFF09`);return {contentType:27,content:"",gameType:e.gameType==="dice"?1n:0n,gameValue:BigInt(e.value)}}function di(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Ft(e,n){if(e<0n)throw new Error(`gift body: ${n} \u975E\u6CD5`);return e.toString()}function Pt(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`gift body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function ou(e){return e===0||e===1||e===2}function iu(e){return e===0||e===1||e===2||e===3}function su(e){return e===1||e===2}function Vt(e){return typeof e=="string"&&/^\d+$/.test(e.trim())}function ci(e){if(e===null||typeof e!="object")return false;let n=e;return !(!Vt(n.fromUid)||!Vt(n.toUid)||!Vt(n.serialNumber)||typeof n.giftName!="string"||n.giftName.trim()===""||!ou(n.giftType)||!iu(n.state)||!su(n.sessionType)||typeof n.initiateTime!="number"||!Number.isSafeInteger(n.initiateTime)||n.initiateTime<0||n.amount!==void 0&&!Vt(n.amount)||n.zhangCount!==void 0&&!Vt(n.zhangCount)||n.benCount!==void 0&&!Vt(n.benCount)||n.fissionNumber!==void 0&&!Vt(n.fissionNumber))}function nd(e){let n=e.giftType;if(!ou(n))throw new Error(`gift body: giftType \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.state;if(!iu(t))throw new Error(`gift body: state \u975E\u6CD5\uFF08${String(t)}\uFF09`);let r=e.sessionType;if(!su(r))throw new Error(`gift body: sessionType \u975E\u6CD5\uFF08${String(r)}\uFF09`);return {fromUid:Ft(e.fromUid,"fromUid"),toUid:Ft(e.toUid,"toUid"),giftType:n,state:t,serialNumber:Ft(e.serialNumber,"serialNumber"),sessionType:r,initiateTime:Number(e.initiateTime),giftName:e.giftName.trim(),...e.amount===0n?{}:{amount:Ft(e.amount,"amount")},...di(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...di(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...di(e.explain)===void 0?{}:{explain:e.explain.trim()},...di(e.giftIcon)===void 0?{}:{giftIcon:e.giftIcon.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...e.zhangCount===0n?{}:{zhangCount:Ft(e.zhangCount,"zhangCount")},...e.benCount===0n?{}:{benCount:Ft(e.benCount,"benCount")},...e.fissionNumber===0n?{}:{fissionNumber:Ft(e.fissionNumber,"fissionNumber")}}}function td(e){let n=e;if(!ci(e))throw new Error(`gift body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.giftType)}\uFF09`);return {contentType:17,content:"",fromUid:Pt(e.fromUid,"fromUid"),toUid:Pt(e.toUid,"toUid"),giftType:e.giftType,state:e.state,serialNumber:Pt(e.serialNumber,"serialNumber"),sessionType:e.sessionType,initiateTime:BigInt(e.initiateTime),giftName:e.giftName,...e.amount===void 0?{}:{amount:Pt(e.amount,"amount")},...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.explain===void 0?{}:{explain:e.explain},...e.giftIcon===void 0?{}:{giftIcon:e.giftIcon},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.zhangCount===void 0?{}:{zhangCount:Pt(e.zhangCount,"zhangCount")},...e.benCount===void 0?{}:{benCount:Pt(e.benCount,"benCount")},...e.fissionNumber===void 0?{}:{fissionNumber:Pt(e.fissionNumber,"fissionNumber")}}}function au(e){let n={url:e.content,width:e.width,height:e.height};return e.thumbData.length>0&&(n.thumbData=e.thumbData),e.MD5!==""&&(n.md5=e.MD5),e.imageType!==0&&(n.imageType=e.imageType),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function du(e){return {contentType:2,content:e.url,width:e.width,height:e.height,...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.imageType!==void 0&&e.imageType!==0?{imageType:e.imageType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Fn(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function cu(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:void 0}function rI(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};case 3:return {showType:"game-preview"};default:return {showType:"unknown",rawShowType:e}}}function oI(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "game-preview":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function iI(e){return e.showType==="unknown"&&e.rawShowType===3}function $t(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.appId!="string"||n.appId.trim()===""||typeof n.isDynamicHost!="boolean"?false:n.showType==="unknown"?typeof n.rawShowType=="number"&&Number.isInteger(n.rawShowType)&&n.rawShowType>3&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"||n.showType==="game-preview"}function rd(e){return {appId:e.miniProgramAppId,...Fn(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...Fn(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...Fn(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...Fn(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...Fn(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...Fn(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...rI(e.miniProgramShowType),...Fn(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...Fn(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...Fn(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...Fn(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...Fn(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()},...Fn(e.miniProgramGamePreviewUrl)===void 0?{}:{gamePreviewUrl:e.miniProgramGamePreviewUrl.trim()},...cu(e.miniProgramGamePreviewWidth)===void 0?{}:{gamePreviewWidth:e.miniProgramGamePreviewWidth},...cu(e.miniProgramGamePreviewHeight)===void 0?{}:{gamePreviewHeight:e.miniProgramGamePreviewHeight}}}function od(e){let n=e;if(!$t(e))throw new Error(`miniProgram body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.appId)}/${String(n.showType)}\uFF09`);return {contentType:22,content:"",miniProgramAppId:e.appId,...e.host===void 0?{}:{miniProgramHost:e.host},...e.developerId===void 0?{}:{miniProgramDeveloperId:e.developerId},...e.name===void 0?{}:{miniProgramName:e.name},...e.icon===void 0?{}:{miniProgramIcon:e.icon},...e.productId===void 0?{}:{miniProgramProductId:e.productId},miniProgramIsDynamicHost:e.isDynamicHost?1:0,...e.suffixAddress===void 0?{}:{miniProgramSuffixAddress:e.suffixAddress},miniProgramShowType:oI(e.showType,e.rawShowType),...e.description===void 0?{}:{miniProgramDescription:e.description},...e.currencySource===void 0?{}:{currencySource:e.currencySource},...e.currencyType===void 0?{}:{miniProgramCurrencyType:e.currencyType},...e.gamePath===void 0?{}:{miniProgramGamePath:e.gamePath},...e.subGameName===void 0?{}:{miniProgramSubGameName:e.subGameName},...e.gamePreviewUrl===void 0?{}:{miniProgramGamePreviewUrl:e.gamePreviewUrl},...e.gamePreviewWidth===void 0?{}:{miniProgramGamePreviewWidth:e.gamePreviewWidth},...e.gamePreviewHeight===void 0?{}:{miniProgramGamePreviewHeight:e.gamePreviewHeight}}}function vr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function ui(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function li(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`red packet body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function lu(e){return e===1||e===2||e===3||e===4}function sI(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!lu(n.packetType)||n.amount!==void 0&&(typeof n.amount!="string"||n.amount.trim()==="")||n.count!==void 0&&(typeof n.count!="string"||!/^\d+$/.test(n.count.trim()))||n.thunderRate!==void 0&&typeof n.thunderRate!="string"||n.thunderNumber!==void 0&&(typeof n.thunderNumber!="string"||!/^\d+$/.test(n.thunderNumber.trim()))||n.fromUid!==void 0&&(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim()))||n.toUid!==void 0&&(typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim()))||n.currencyType!==void 0&&(typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0)||n.coinName!==void 0&&typeof n.coinName!="string"||n.showAmount!==void 0&&typeof n.showAmount!="boolean"||n.isThunder!==void 0&&typeof n.isThunder!="boolean")}function uu(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!lu(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:ui(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:ui(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...vr(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...vr(e.redPacketThunderRate)===void 0?{}:{thunderRate:e.redPacketThunderRate.trim()},...e.redPacketIsThunder?{isThunder:true}:{},...e.redPacketThunderNumber===0n?{}:{thunderNumber:e.redPacketThunderNumber.toString()},...t===void 0?{}:{fromUid:t},...r===void 0?{}:{toUid:r},...e.currencyType===0?{}:{currencyType:e.currencyType},...vr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function gu(e){let n=e;if(!sI(e))throw new Error(`red packet body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.packetId)}/${String(n.packetType)}\uFF09`);return {contentType:25,content:"",radPacketId:e.packetId.trim(),radPacketType:e.packetType,...e.amount===void 0?{}:{radPacketAmount:e.amount.trim()},...e.count===void 0?{}:{redPacketCount:li(e.count,"count")},...e.showAmount===true?{redPacketIsShowAmount:true}:{},...e.thunderRate===void 0?{}:{redPacketThunderRate:e.thunderRate},...e.isThunder===true?{redPacketIsThunder:true}:{},...e.thunderNumber===void 0?{}:{redPacketThunderNumber:li(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:li(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:li(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function mu(e){let n=ui(e.fromUid,"fromUid"),t=ui(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=vr(e.radPacketId),i=vr(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...i===void 0?{}:{amount:i},isThunder:r}}}function id(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function fu(e,n){if(!id(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:i,...s}=e;return s}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}var aI=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function er(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function jn(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function sd(e){return Array.isArray(e)?e:[]}function Mn(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function dI(e){let n=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;if(!(!Number.isFinite(n)||n<=0))return n>1e12?n:n*1e3}function cI(e){let n=er(e)??e,t=jn(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=er(t.content)??t.content,i=jn(o);return i===void 0?{content:o,children:void 0}:{content:er(i.content)??i.content,children:i.children}}return {content:er(t.content)??t.content,children:t.children}}function lI(e){let n=e.trim();if(!n.startsWith("["))return;let t=er(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>jn(o)?.type!==void 0))return;let r=yu(t);return r.length>0?r:void 0}function uI(e){let n=jn(e.text),t=Mn(n?.content)??"",r=lI(t);return r!==void 0?r:{type:"section",textType:Mn(n?.type)??"plain-text",content:t}}function gI(e){let n=sd(e.elements).map(t=>Mn(jn(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function mI(e){let n=dI(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function fI(e){let n=jn(e);if(n===void 0)return;let t=Mn(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return uI(n);if(t==="image-group")return gI(n);if(t==="countdown")return mI(n)}}function yu(e){let n=Array.isArray(e)?e:sd(er(e)),t=[];for(let r of n){let o=fI(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function pI(e){let n=jn(e);if(n===void 0)return;let t=Mn(n.path),r=Mn(n.app_id)??Mn(n.appId),o=Mn(n.domain);if(!(t===void 0&&r===void 0&&o===void 0))return {...t===void 0?{}:{path:t},...r===void 0?{}:{appId:r},...o===void 0?{}:{domain:o}}}function pu(e){let n=jn(e),t=Mn(n?.menu_name)??Mn(n?.menuName);if(n===void 0||t===void 0)return;let r=Mn(n.menu_id)??Mn(n.menuId),o=Mn(n.msg_type)??Mn(n.messageType),i=pI(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function yI(e){let n=[];for(let t of sd(e)){if(Array.isArray(t)){let o=t.map(pu).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=pu(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function II(e){let n=jn(e);return n===void 0?false:n.type==="section"?typeof n.textType=="string"&&typeof n.content=="string":n.type==="image-group"?Array.isArray(n.images)&&n.images.every(t=>typeof t=="string"&&t.trim()!==""):n.type==="countdown"?typeof n.endTimeMs=="number"&&Number.isFinite(n.endTimeMs)&&n.endTimeMs>0:false}function CI(e){let n=jn(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function ad(e){let n=jn(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(II)&&n.commands.every(t=>Array.isArray(t)&&t.every(CI))}function SI(e){let n=cI(e);return {modules:yu(n.content),commands:yI(n.children)}}function Iu(e){try{return SI(e.content)}catch{return aI}}function hI(e){return e.type==="section"?{type:"section",text:{type:e.textType,content:e.content}}:e.type==="image-group"?{type:"image-group",elements:e.images.map(n=>({type:"image",src:n}))}:{type:"countdown",endTime:String(e.endTimeMs)}}function AI(e){return {menu_name:e.menuName,...e.menuId===void 0?{}:{menu_id:e.menuId},...e.messageType===void 0?{}:{msg_type:e.messageType},...e.miniProgram===void 0?{}:{msg_content:{...e.miniProgram.path===void 0?{}:{path:e.miniProgram.path},...e.miniProgram.appId===void 0?{}:{app_id:e.miniProgram.appId},...e.miniProgram.domain===void 0?{}:{domain:e.miniProgram.domain}}}}}function Cu(e){if(!ad(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:18,content:JSON.stringify({content:e.modules.map(hI),children:e.commands.map(n=>n.map(AI))})}}function nr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function gi(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function mi(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`transfer body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function Su(e){return e===0||e===1||e===2||e===3}function hu(e){return e===1||e===2}function fi(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim())||typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim())||typeof n.amount!="string"||!/^\d+$/.test(n.amount.trim())||typeof n.serialNumber!="string"||!/^\d+$/.test(n.serialNumber.trim())||typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0||typeof n.transferTime!="number"||!Number.isSafeInteger(n.transferTime)||n.transferTime<0||!Su(n.status)||!hu(n.sessionType))}function dd(e){let n=e.status;if(!Su(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!hu(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:gi(e.fromUid,"fromUid"),toUid:gi(e.toUid,"toUid"),amount:gi(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:gi(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...nr(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...nr(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...nr(e.remark)===void 0?{}:{remark:e.remark.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...nr(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...nr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...nr(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function cd(e){let n=e;if(!fi(e))throw new Error(`transfer body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.status)}\uFF09`);return {contentType:16,content:"",fromUid:mi(e.fromUid,"fromUid"),toUid:mi(e.toUid,"toUid"),amount:mi(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:mi(e.serialNumber,"serialNumber"),sessionType:e.sessionType,transferTime:BigInt(e.transferTime),...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.remark===void 0?{}:{remark:e.remark},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.transferMsgId===void 0?{}:{msgId:e.transferMsgId},...e.coinName===void 0?{}:{coinName:e.coinName},...e.coinIcon===void 0?{}:{coinIcon:e.coinIcon}}}function Au(e){let n={url:e.content,width:e.width,height:e.height};e.hd&&(n.hd=true);let t=RI(e);return t!==void 0&&(n.duration=t,t!==e.duration&&(n.durationUnit="seconds")),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.unverifiedFileLength=e.fileLength.toString()),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function ld(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function RI(e){let n=e.duration;if(!Number.isFinite(n)||n<=0)return;let t=e.fileEncryptType===0&&e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300;return ld(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function pi(e){if(e.size!==void 0&&e.sizeUnit!=="bytes"){let{size:n,...t}=e;e={...t,...t.unverifiedFileLength===void 0&&Number.isSafeInteger(n)&&n>0?{unverifiedFileLength:String(Math.round(n/1024))}:{}};}return e.durationUnit==="seconds"||e.duration===void 0||!Number.isFinite(e.duration)||e.duration<=0||!ld(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Ru(e){let n=ld(e.fileEncryptType,e.teaKey)?1e3:1,t=MI(e);return {contentType:3,content:e.url,width:e.width,height:e.height,...e.hd===true?{hd:true}:{},...e.duration!==void 0&&Number.isFinite(e.duration)&&e.duration>0?{duration:Math.max(1,Math.round(e.duration*n))}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...t===void 0?{}:{fileLength:t},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function MI(e){if(e.size!==void 0){if(!Number.isSafeInteger(e.size)||e.size<0)throw new RangeError("\u89C6\u9891 size \u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");return e.size===0?void 0:BigInt(e.size)}if(e.unverifiedFileLength!==void 0){if(!/^\d{1,20}$/.test(e.unverifiedFileLength)||BigInt(e.unverifiedFileLength)>0xFFFFFFFFFFFFFFFFn)throw new RangeError("\u89C6\u9891\u5386\u53F2 fileLength \u5FC5\u987B\u4E3A uint64 \u5341\u8FDB\u5236\u6574\u6570");return BigInt(e.unverifiedFileLength)}}function Mu(e){let n={url:e.content,durationMs:e.duration};return e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Eu(e){return {contentType:4,content:e.url,duration:Math.max(0,Math.round(e.durationMs)),...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}var Du=1,Gu=[{wireContentType:29,domainContentType:"filesAlbum",parse:e=>({filesAlbum:Ol(e)}),build:e=>e.filesAlbum===void 0?void 0:Kl(e.filesAlbum)},{wireContentType:2,domainContentType:"image",parse:e=>({image:au(e)}),build:e=>e.image!==void 0?du(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Au(e)}),build:e=>e.video!==void 0?Ru(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Mu(e)}),build:e=>e.voice!==void 0?Eu(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:eu(e)}),build:e=>e.file!==void 0?nu(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:Xa(e)}),build:e=>e.sticker!==void 0?za(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:jl(e)}),build:e=>e.contact!==void 0?$l(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:rd(e)}),build:e=>e.miniProgram!==void 0?od(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:tu(e)}),build:e=>e.game!==void 0?ru(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:dd(e)}),build:e=>e.transfer!==void 0?cd(e.transfer):void 0},{wireContentType:17,domainContentType:"gift",parse:e=>({gift:nd(e)}),build:e=>e.gift!==void 0?td(e.gift):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:zl(e)}),build:e=>e.call!==void 0?ql(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:uu(e)}),build:e=>e.redPacket!==void 0?gu(e.redPacket):void 0},{wireContentType:oi,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:Ja(e)}),build:e=>e.mediaAlbum!==void 0?Mr(e.mediaAlbum):void 0},{wireContentType:18,domainContentType:"robot",parse:e=>({robot:Iu(e)}),build:e=>e.robot!==void 0&&ad(e.robot)?Cu(e.robot):void 0}],xI=[{contentType:"text",read:e=>e.text},{contentType:"system",read:e=>e.system},{contentType:"image",read:e=>e.image},{contentType:"video",read:e=>e.video},{contentType:"voice",read:e=>e.voice},{contentType:"file",read:e=>e.file},{contentType:"filesAlbum",read:e=>e.filesAlbum},{contentType:"sticker",read:e=>e.sticker},{contentType:"contact",read:e=>e.contact},{contentType:"miniProgram",read:e=>e.miniProgram},{contentType:"game",read:e=>e.game},{contentType:"transfer",read:e=>e.transfer},{contentType:"gift",read:e=>e.gift},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"mediaAlbum",read:e=>e.mediaAlbum},{contentType:"robot",read:e=>e.robot},{contentType:"unknown",read:e=>e.unknown}];function nt(e,n){if(e.contentType===Du)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:fu(mu(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=Gu.find(r=>r.wireContentType===e.contentType);if(t===void 0)return {contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}}};try{return {contentType:t.domainContentType,body:t.parse(e)}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}}function ud(e,n,t="outgoing message"){let r=xI.filter(o=>o.read(n)!==void 0).map(o=>o.contentType);if(r.length!==1||r[0]!==e){let o=r.length===0?"empty":r.join(",");throw new Error(`${t}: contentType/body \u4E0D\u4E00\u81F4\uFF08contentType=${e}, body=${o}\uFF09`)}kn(n);}function kn(e){if(e.unknown!==void 0)throw new Error("unknown message body \u4E0D\u53EF\u7F16\u7801\u4E3A\u51FA\u7AD9\u6D88\u606F");for(let n of Gu){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:Du,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var gd=/^[0-9a-f]{32}$/;function Pn(e){return gd.test(e.replace(/-/g,"").toLowerCase())}function xn(){return globalThis.crypto.randomUUID()}function ke(e){let n=e.replace(/-/g,"").toLowerCase();if(!Pn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function yn(e){let n=e.replace(/-/g,"").toLowerCase();return gd.test(n)?n:e}function Ee(e){let n=e.toLowerCase();return gd.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function yi(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function tt(e){return yi(e)??e.createdAt}function rt(e){let n=e.conversationType==="channel"?e.extensions?.channelSequence:void 0,t=typeof n=="string"&&/^\d+$/.test(n)?`${n.padStart(20,"0")}:${e.id}`:e.id;return we(tt(e),t)}function we(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function dn(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var md=9,wI=20;function br(e,n){let t=BigInt(e.conversationId),r=BigInt(n.selfId);if(t<=0n)throw new Error("channel outgoing: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(r<=0n)throw new Error("channel outgoing: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Number.isFinite(n.createdAt)||n.createdAt<0)throw new Error("channel outgoing: createdAt \u975E\u6CD5");let o={sRadioId:t,sFromId:r,sMsgId:ke(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:md,encrypt:2,bMessage:kn(e.body)};return e.mention!==void 0&&Object.assign(o,BI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=yn(e.refMessageId)),o}function BI(e){let n={nNotifyCount:e.atAll?-1:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(BigInt));let t=e.ranges!==void 0&&e.ranges.length>0,r=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;return (t||r)&&(n.extend=JSON.stringify({sendType:0,...r?{atUsersName:e.atUsersName}:{},...t?{atRange:e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))}:{}})),n}function Rt(e,n,t){return Ci(ku(e),n,t)}function Uu(e,n,t){return Ci({...ku(e),historyCursor:""},n,t,void 0,true)}function ku(e){return {senderId:Er(e.sFromId,e.botId),channelId:e.sRadioId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sId,sequence:e.nIncrId,notifyCount:e.nNotifyCount,notifyUsers:e.sNotifyUsers.map(String),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==""&&e.isEdit!=="0",oldMessageId:e.oldMsgId}}function fd(e,n,t){return Ci(wu(e),n,t)}function xu(e,n,t){return Ci(wu(e),void 0,t,n)}function wu(e){return {senderId:Er(e.sFromId,e.botId),channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:PI(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function Ci(e,n,t,r,o=false){FI(e,o||t.edited===true&&e.oldMessageId.trim()!=="");let i=Ee(e.messageId),s=e.senderId,a=e.channelId.toString(),c=Number(e.msgTime),u=c>0?c:t.receivedAt??Date.now(),p=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:nt(n,t.selfId),y=VI(e,p.body.text??""),x=e.sequence.toString(),v={channelMessageType:md,channelSequence:x,...o?{}:{historyCursor:e.historyCursor}};e.oldMessageId!==""&&(v.previousMessageId=Ee(e.oldMessageId));let I={id:i,conversationId:a,conversationType:"channel",senderId:s,contentType:p.contentType,body:p.body,createdAt:u,sortKey:we(u,`${x.padStart(wI,"0")}:${i}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:v};return t.decryptFailed===true&&(I.encryption.decryptFailed=true),c>0&&(I.serverTime=c),e.parentMessageId!==""&&(I.refMessageId=Ee(e.parentMessageId)),(e.edited||t.edited===true)&&(I.edited=true),y!==void 0&&(I.mention=y),t.keepRaw&&(I.raw=WI(e,n,t.cmdId,r)),I}function FI(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Jl(e.senderId))throw new Error("channel message: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel message: message id \u7F3A\u5931");if(e.historyCursor.trim()===""&&!n)throw new Error("channel message: history cursor \u7F3A\u5931")}function PI(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(Ii)}catch{}return n.split(/[\s,;]+/).filter(Ii)}function VI(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=KI(e.notifyUsers.filter(Ii),OI(n)),{ranges:o,atUsersName:i}=LI(e.extend);if(!(!t&&r.length===0&&o===void 0&&i===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...i===void 0?{}:{atUsersName:i}}}function OI(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function KI(e,n){return [...new Set([...e,...n])]}function Ii(e){return /^[1-9]\d*$/.test(e)}function LI(e){if(e==="")return {};try{let n=JSON.parse(e),t=ZI(n.atRange),r=QI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function ZI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t;(typeof r.user_id=="string"||typeof r.user_id=="number")&&typeof r.start=="number"&&Number.isInteger(r.start)&&r.start>=0&&typeof r.end=="number"&&Number.isInteger(r.end)&&r.end>=r.start&&n.push({userId:String(r.user_id),start:r.start,end:r.end});}return n.length===0?void 0:n}function QI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))Ii(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function WI(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:md,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,parentMsgId:e.parentMessageId||void 0},...n===void 0?{}:{content:{contentType:n.contentType,text:n.content||void 0}},...r===void 0?{}:{contentDecodeFailure:{codec:"BMessage",byteLength:r}}}}var Vn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var Tn=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),Bu=messageDesc(Tn,0);var Fu=messageDesc(Tn,2);var Pu=messageDesc(Tn,5);var Vu=messageDesc(Tn,7),Ou=messageDesc(Tn,8);var Ku=messageDesc(Tn,10);messageDesc(Tn,11);messageDesc(Tn,12);messageDesc(Tn,13);messageDesc(Tn,15);var Hu=messageDesc(Tn,16),Ju=messageDesc(Tn,17);messageDesc(Tn,18);messageDesc(Tn,20);var Kn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(Kn,0);messageDesc(Kn,1);var ju=messageDesc(Kn,2),$u=messageDesc(Kn,3),eg=messageDesc(Kn,4),ng=messageDesc(Kn,5);var tg=messageDesc(Kn,11),rg=messageDesc(Kn,12);var og=messageDesc(Kn,17),ig=messageDesc(Kn,18),sg=messageDesc(Kn,19),ag=messageDesc(Kn,20);var cg=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi7hAKCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCRIhChltaW5pUHJvZ3JhbUdhbWVQcmV2aWV3VXJsGF4gASgJEiMKG21pbmlQcm9ncmFtR2FtZVByZXZpZXdXaWR0aBhfIAEoDRIkChxtaW5pUHJvZ3JhbUdhbWVQcmV2aWV3SGVpZ2h0GGAgASgNEgoKAmhkGGEgASgIYgZwcm90bzM");var lg=messageDesc(cg,1),ug=messageDesc(cg,2);var Et=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Vn]),Ot=messageDesc(Et,0),tr=messageDesc(Et,1),Nr=messageDesc(Et,2),_r=messageDesc(Et,3),pd=messageDesc(Et,4),yd=messageDesc(Et,5),Id=messageDesc(Et,6),gg=messageDesc(Et,7);var bn=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Vn]),Dr=messageDesc(bn,0),Si=messageDesc(bn,1),mg=messageDesc(bn,2);var fg=messageDesc(bn,5),pg=messageDesc(bn,6),yg=messageDesc(bn,7),Ig=messageDesc(bn,8),Cg=messageDesc(bn,9),Sg=messageDesc(bn,10),hg=messageDesc(bn,11);var Ag=messageDesc(bn,14),Cd=messageDesc(bn,15),Sd=messageDesc(bn,16),Rg=messageDesc(bn,17);var Ur=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[Vn]),Mg=messageDesc(Ur,0),Eg=messageDesc(Ur,1),Tg=messageDesc(Ur,2),vg=messageDesc(Ur,3),bg=messageDesc(Ur,4);var qe=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Vn]),rr=messageDesc(qe,0),hd=messageDesc(qe,1),Ng=messageDesc(qe,2),Ad=messageDesc(qe,3),_g=messageDesc(qe,4);var Rd=messageDesc(qe,7);var Dg=messageDesc(qe,9),Gg=messageDesc(qe,10),Md=messageDesc(qe,11),Ed=messageDesc(qe,12),Ug=messageDesc(qe,13);var kg=messageDesc(qe,15),xg=messageDesc(qe,16),wg=messageDesc(qe,17);var Bg=messageDesc(qe,26);var Fg=messageDesc(qe,29);var Pg=messageDesc(qe,33);var Td=messageDesc(qe,48),hi=messageDesc(qe,49);var Vg=messageDesc(qe,51),Og=messageDesc(qe,52);var Kg=messageDesc(qe,55);var Lg=messageDesc(qe,58),Zg=messageDesc(qe,59),Qg=messageDesc(qe,60);var bd=fileDesc("Cg5pbS5yb2JvdC5wcm90bxIKaW0uYXBwLnB0bCJdCghSb2JvdE1zZxIOCgZ1c2VySWQYASABKAMSDwoHcm9ib3RJZBgCIAEoCRIPCgdjb250ZW50GAMgASgJEg8KB21zZ1RpbWUYBCABKAMSDgoGc01zZ0lkGAUgASgJImMKC1JvYm90TXNnQWNrEg4KBnVzZXJJZBgBIAEoAxIPCgdyb2JvdElkGAIgASgJEiQKB2VyckNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDQoFbXNnSWQYBCABKAkiZgoRUm9ib3RSZXBseVVzZXJNc2cSDgoGdXNlcklkGAEgASgDEg8KB3JvYm90SWQYAiABKAkSDgoGc01zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoA0IfChNjb20ubW9zYW50LmltLnByb3RvSANaBi4uL2FwcGIGcHJvdG8z",[Vn]),Wg=messageDesc(bd,0),Hg=messageDesc(bd,1),Jg=messageDesc(bd,2);var on=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[Vn]),Nd=messageDesc(on,0),Yg=messageDesc(on,1),Xg=messageDesc(on,2),_d=messageDesc(on,3),zg=messageDesc(on,4),qg=messageDesc(on,5),Dd=messageDesc(on,6);var jg=messageDesc(on,8),Gd=messageDesc(on,9),$g=messageDesc(on,10),em=messageDesc(on,11),Ud=messageDesc(on,12),nm=messageDesc(on,13),tm=messageDesc(on,14),kd=messageDesc(on,15),ct=messageDesc(on,16),lt=messageDesc(on,17),xd=messageDesc(on,18),wd=messageDesc(on,19),kr=messageDesc(on,20),Bd=messageDesc(on,21),Fd=messageDesc(on,22),Pd=messageDesc(on,23);var Ri=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var rm=messageDesc(Ri,1),om=messageDesc(Ri,2);var im=messageDesc(Ri,4),sm=messageDesc(Ri,5);function V(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Ve(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function lm(e=[]){let n=new Map,t=r=>{n.set(r.command,r);};for(let r of e)t(r);return {register:t,get:r=>n.get(r),has:r=>n.has(r)}}var xr=V(257,Mg),wr=V(261,vg),Mi=V(262,bg),Ei=V(258,Eg),Vd=V(264,Tg),Tt=V(4097,rr),Ti=V(4098,hd),vi=V(4100,rr),vt=V(4099,Ad),Br=V(4647,Wg),bi=V(4648,Hg),Ni=V(4649,Jg),_i=V(24579,Lg),Di=V(4650,rr),Gi=V(4651,rr),Ui=V(4652,hd),ki=V(4653,rr),xi=V(4631,Vg),Fr=V(4632,Og),wi=V(4633,Kg),Bi=V(4627,Bg),Pr=V(4628,Fg),Od=Ve(Pg),Fi=V(4356,Ug),Vr=V(4355,kg),Pi=V(4360,xg),Or=V(4359,wg),Kr=V(4107,Md),Vi=V(4108,Ed),Oi=V(4110,Md),Lr=V(4109,Ed),Zr=V(8197,Ig),Ki=V(8198,Cg),Li=V(4644,Zg),Zi=V(4646,Qg),Qi=V(8976,Rg),Wi=V(8977,Si),Hi=V(4102,Ad),Qr=V(4101,_g),Wr=V(4103,Rd),Ji=V(4104,Dg),Yi=V(4106,Rd),Hr=V(4105,Gg),Kt=V(4117,Td),Xi=V(4118,hi),zi=V(4119,Td),ot=V(8193,Dr),qi=V(8194,Si),ji=V(8196,Dr),Jr=V(8195,mg),Yr=V(8978,Dr),$i=V(8979,Si),es=V(8980,Dr),Xr=V(8967,Sd),ns=V(8968,hi),ts=V(8969,Sd),or=V(8708,hg),zr=V(8707,pg),rs=V(8452,Sg),qr=V(8451,fg),os=V(8964,Ag),jr=V(8963,Cd),is=V(8966,Cd),$r=V(8965,yg),ut=V(12289,Ot),ss=V(12290,tr),eo=V(12291,Nr),as=V(12292,Ot),um=V(12816,Ot),no=V(12817,Ot),ds=V(12818,tr),cs=V(12819,Ot),to=V(12293,_r),ls=V(12294,tr),us=V(12295,Nr),gs=V(12296,_r),ro=V(12297,_r),ms=V(12298,tr),fs=V(12299,Nr),ps=V(12300,_r),oo=V(12547,yd),ys=V(12548,pd),gm=V(12551,yd),mm=V(12552,pd),io=V(12803,Nr),Is=V(12804,Ot),so=V(12805,Id),Cs=V(12806,hi),Ss=V(12807,Id),hs=V(12808,gg),As=V(12809,tr),ao=V(16385,Nd),Rs=V(16386,Yg),co=V(16387,Xg),Ms=V(16388,Nd),lo=V(16389,_d),Es=V(16390,zg),uo=V(16391,qg),Ts=V(16392,_d),go=V(16395,jg),vs=V(16396,Dd),ir=V(16397,Gd),bs=V(16398,$g),mo=V(16399,em),fm=V(16400,Gd),fo=V(16401,Ud),Ns=V(16402,nm),po=V(16403,tm),_s=V(16404,Ud),yo=V(16641,kd),Ds=V(16642,ct),Io=V(16643,lt),Gs=V(16644,kd),Co=V(16645,xd),Us=V(16646,ct),pm=V(16647,lt),ks=V(16648,xd),So=V(16649,wd),xs=V(16650,ct),ym=V(16651,lt),ws=V(16652,wd),ho=V(16653,kr),Bs=V(16654,ct),Im=V(16655,lt),Fs=V(16656,kr),Ao=V(16657,kr),Ps=V(16658,ct),Cm=V(16659,lt),Vs=V(16660,kr),Ro=V(16661,Bd),Os=V(16662,ct),Sm=V(16663,lt),Ks=V(16664,Bd),hm=V(16665,Fd),Am=V(16666,ct),Rm=V(16667,lt),Ls=V(16668,Fd),Mo=V(16669,Pd),Zs=V(16670,ct),Mm=V(16671,lt),Qs=V(16672,Pd),Te=Ve(ug),He=Ve(lg),sr=Ve(Ng),Ws=Ve(rm),Kd=Ve(om),Hs=Ve(im),Ld=Ve(sm),Js=Ve(eg),Zd=Ve(ng),Ys=Ve(tg),Qd=Ve(rg),Xs=Ve(og),zs=Ve(ig),qs=Ve(sg),Wd=Ve(ag),js=Ve(ju),Hd=Ve($u),$s=Ve(Bu),Jd=Ve(Fu),ea=Ve(Pu),Eo=Ve(Vu),sC=Ve(Ou),aC=Ve(Ku),na=Ve(Hu),Yd=Ve(Ju);lm([xr,wr,Mi,Ei,Tt,Ti,Br,bi,Ni,_i,vi,vt,Di,Gi,Ui,ki,xi,Fr,wi,Bi,Pr,Fi,Vr,Pi,Or,Kr,Vi,Oi,Lr,Zi,Hi,Qr,Wr,Ji,Yi,Hr,Kt,Xi,zi,ot,qi,Zr,Ki,Wi,ji,Jr,Yr,$i,es,Xr,ns,ts,or,zr,rs,qr,os,jr,is,$r,ut,ss,eo,as,um,no,ds,cs,to,ls,us,gs,ro,ms,fs,ps,oo,ys,gm,mm,io,Is,so,Cs,Ss,As,ao,Rs,co,Ms,lo,Es,uo,Ts,go,vs,ir,bs,mo,fm,fo,Ns,po,_s,yo,Ds,Io,Gs,Co,Us,pm,ks,So,xs,ym,ws,ho,Bs,Im,Fs,Ao,Ps,Cm,Vs,Ro,Os,Sm,Ks,hm,Am,Rm,Ls,Mo,Zs,Mm,Qs]);var Nn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function vm(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new Nn(n,"board pinned message Base64 \u975E\u6CD5");try{let t=globalThis.atob(e);if(globalThis.btoa(t)!==e)throw new Error("Base64 \u975E\u89C4\u8303\u7F16\u7801");return Uint8Array.from(t,r=>r.charCodeAt(0))}catch(t){throw new Nn(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Em(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function pC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yC(e){return e===void 0||Number.isInteger(e)}function To(e){return e===void 0||e===0||e===1}function Tm(e){return e===void 0||typeof e=="string"}function bm(e){if(!pC(e)||e.convType!==2&&e.convType!==3||typeof e.msgContent!="string"||e.msgContent===""||typeof e.msgId!="string"||e.msgId===""||typeof e.msgTime!="string"||!/^\d+$/.test(e.msgTime)||!Number.isInteger(e.msgType)||Number(e.msgType)<=0||typeof e.receiverId!="string"||e.receiverId===""||typeof e.senderId!="string"||e.senderId===""||!To(e.isBrowse)||!To(e.isCancel)||!To(e.isEdit)||!To(e.isNotifyAll)||!Tm(e.notifyUsersName)||!Tm(e.parentMsgId)||!To(e.readStatus)||!yC(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new Nn("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function IC(e){let n;try{if(n=vm(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=Te.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof Nn?t:new Nn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function vo(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(vm(e,"INVALID_BASE64"));}catch(r){throw r instanceof Nn?r:new Nn("INVALID_BASE64","board pinned message \u5916\u5C42 UTF-8/Base64 \u975E\u6CD5",{cause:r})}let t;try{t=JSON.parse(n);}catch(r){throw new Nn("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return bm(t),{envelope:t,message:IC(t.msgContent)}}function bo(e){let n=Te.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new Nn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Em(n)};return bm(t),Em(new TextEncoder().encode(JSON.stringify(t)))}var CC=new Uint8Array(0);function ta(e,n,t){let r=2**n-1;if(!Number.isInteger(e)||e<0||e>r)throw new Error(`\u5E27\u5B57\u6BB5 ${t} \u8D8A\u754C\uFF1A${e}\uFF0C\u5E94\u4E3A [0, ${r}] \u5185\u6574\u6570`)}function ae(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;ta(e.command,16,"command"),ta(n,8,"flags"),ta(t,8,"appId"),ta(r,32,"msgSeq");let o=e.body??CC,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let s=new Uint8Array(16+i),a=new DataView(s.buffer);return a.setUint32(0,12+i,false),a.setUint8(4,n),a.setUint8(5,t),a.setUint16(6,e.command,false),a.setUint32(8,i,false),a.setUint32(12,r,false),s.set(o,16),s}function Xd(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let i=4+o;if(e.length-r<i)break;let s=t.getUint32(r+8,false);if(o!==12+s)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${s} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let a={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:s,msgSeq:t.getUint32(r+12,false)},c=e.subarray(r+16,r+i);n.push({header:a,body:c}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var SC=5;function bt(e,n,t){let r=Er(e.sFromId,e.botId),o=Number(e.msgTime),i=Ee(e.sMsgId),s=nt(n,t.selfId),a=s.contentType==="text",c=o>0?o:t.receivedAt??Date.now(),u={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:s.contentType,body:s.body,createdAt:c,sortKey:we(c,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(u.encryption.decryptFailed=true),o>0&&(u.serverTime=o),e.parentMsgId&&(u.refMessageId=Ee(e.parentMsgId)),t.edited===true&&(u.edited=true);let p=hC(e,a?n.content:"");return p!==void 0&&(u.mention=p),t.keepRaw&&(u.raw=EC(e,n,t.cmdId)),u}function ar(e,n){let t=Nm(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=_m(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function hC(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=_m(e.sNotifyUsers.map(a=>a.toString()),Nm(n)),{ranges:o,atUsersName:i}=AC(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let s={atAll:t,atUserIds:r};return o!==void 0&&(s.ranges=o),i!==void 0&&(s.atUsersName=i),s}function Nm(e){if(e==="")return [];let n=[];for(let t of e.matchAll(/\[(\d{17,20})\]/g))t[1]!==void 0&&n.push(t[1]);return n}function _m(e,n){if(n.length===0)return e;let t=new Set(e),r=[...e];for(let o of n)t.has(o)||(t.add(o),r.push(o));return r}function AC(e){if(e==="")return {};try{let n=JSON.parse(e),t=RC(n.atRange),r=MC(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function RC(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:i,end:s}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof s=="number"&&Number.isInteger(s)&&s>=i&&n.push({userId:String(o),start:i,end:s});}return n.length>0?n:void 0}function MC(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length>0?n:void 0}function EC(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sGrpId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function No(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:ke(e.id),msgType:SC,encrypt:e.encryption.encrypted?1:0,bMessage:kn(e.body)};return e.mention!==void 0&&Object.assign(t,TC(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=yn(e.refMessageId)),t}function TC(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=vC(e);return t!==void 0&&(n.extend=t),n}function vC(e){let n=e.ranges!==void 0&&e.ranges.length>0,t=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;if(!n&&!t)return;let r={sendType:0};return t&&(r.atUsersName=e.atUsersName),n&&(r.atRange=e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))),JSON.stringify(r)}var fn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function _o(e){return e instanceof Nn||e instanceof fn?e.code:"INVALID_SNAPSHOT"}function ra(e,n){let t=vo(e),{envelope:r}=t;if(r.convType!==2)throw new fn("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new fn("CONVERSATION_MISMATCH","board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new fn("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=ot.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});i=bt(a,t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new fn("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:a})}let s=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function bC(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new fn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684\u666E\u901A\u7FA4\u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new fn("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Te.create(kn(e.body)),r=bo({envelope:{convType:2,msgContent:"",msgId:ke(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:"0",notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":yn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:ra(r,{conversationId:e.conversationId})}}function oa(e,n){let t=vo(e),{envelope:r}=t;if(r.convType!==3)throw new fn("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new fn("CONVERSATION_MISMATCH","channel board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new fn("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=r.nIncrId??"0";i=Uu(ut.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,nIncrId:BigInt(a),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new fn("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:a})}let s=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function NC(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new fn("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684 CHANNEL \u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new fn("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Te.create(kn(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=bo({envelope:{convType:3,msgContent:"",msgId:ke(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:o,notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":yn(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:oa(i,{conversationId:e.conversationId})}}var _C=new Set(["group_info_changed","group_member_renamed","channel_name_changed","channel_avatar_changed","channel_all_muted","channel_all_unmuted","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function DC(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Nt(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||id(n.eventType)||!DC(e,n.eventType))return e;let t=_C.has(n.eventType);if(t===(n.timelineVisibility==="hidden"))return e;let r={...n};return t?r.timelineVisibility="hidden":delete r.timelineVisibility,{...e,body:{...e.body,system:r}}}var GC={1:"channel_name_changed",2:"channel_avatar_changed",3:"channel_announcement_changed",4:"channel_member_left",5:"channel_member_removed",6:"channel_member_joined",7:"channel_member_invited",8:"channel_owner_transferred",9:"channel_admin_added",10:"channel_admin_removed",11:"channel_dismissed",12:"channel_all_muted",13:"channel_all_unmuted",14:"channel_created",15:"channel_private_chat_disabled",16:"channel_private_chat_enabled",19:"channel_member_renamed",20:"channel_member_muted",21:"channel_member_unmuted",23:"channel_message_pinned",24:"channel_message_unpinned"},Dm=new Set([17,18,22,23,24]),UC=20;function ia(e){let n=e.body.system;if(e.conversationType!=="channel"||e.contentType!=="system"||n===void 0)return e;let t=n.eventType==="channel_unknown"&&n.rawNotifyType!==void 0?qd(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Dm.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,s=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!s)return Nt(e);let a={...n,eventType:t};return o&&delete a.fallbackText,s&&i!==void 0&&(a.targetUserIds=[i]),Nt({...e,body:{...e.body,system:a}})}function Gm(e){return e.conversationType==="channel"&&e.extensions?.unsupportedContentType===101&&(e.contentType==="text"||e.contentType==="system"&&e.body.system?.eventType==="channel_unknown"&&e.body.system.rawNotifyType===void 0)}function zd(e){if(!Gm(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return ia({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function qd(e){return GC[e]??"channel_unknown"}function Do(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=Ee(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,s={eventType:qd(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(s.operatorId=e.operatorId.toString());let a=e.targetUserIds?.filter(c=>c>0n).map(c=>c.toString())??[];if(a.length>0&&(s.targetUserIds=a),e.content!==void 0&&e.content!==""&&!Dm.has(e.notifyType)&&(s.fallbackText=e.content),e.notifyType===23)try{s.pinnedMessageAction={type:"pin",pinnedMessage:oa(e.content??"",{conversationId:e.channelId.toString(),...s.operatorId===void 0?{}:{operatorId:s.operatorId}})};}catch(c){s.pinnedMessageAction={type:"invalid",code:_o(c)};}else e.notifyType===24&&(s.pinnedMessageAction={type:"unpin"});return ia({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:s},createdAt:o,...r>0?{serverTime:r}:{},sortKey:we(o,i===void 0?t:`${i.padStart(UC,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...i===void 0?{}:{channelSequence:i}},...n.keepRaw?{raw:{...n.cmdId===void 0?{}:{cmdId:n.cmdId},channelNotify:{notifyType:e.notifyType,...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...e.sequence===void 0?{}:{sequence:e.sequence.toString()},...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}}:{}})}function Go(e){return /^\[[^[\]\s]+\]$/.test(e)}function Uo(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function kC(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function xC(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function jd(e,n,t){let r=new Map;for(let a of e){let c=r.get(a.senderId);(c===void 0||kC(c,a)<0)&&r.set(a.senderId,a);}let o=new Map,i;for(let a of r.values()){if(a.action===1)continue;let c=o.get(a.emoji)??{participants:[],latestAt:0};c.participants.push(a.senderId),c.latestAt=Math.max(c.latestAt,a.createdAt),o.set(a.emoji,c),a.senderId===n&&(i=a.emoji);}let s=[...o.entries()].map(([a,c])=>Object.freeze({emoji:a,count:c.participants.length,mine:c.participants.includes(n),latestAt:c.latestAt,participantIds:Object.freeze([...c.participants].sort())})).sort((a,c)=>Number(c.mine)-Number(a.mine)||c.latestAt-a.latestAt||a.emoji.localeCompare(c.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((a,c)=>a+c.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(xC)),aggregates:Object.freeze(s)})}function $d(e,n,t){if(!Go(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(Uo(n.emoji))throw new Error(`\u6E38\u620F\u8D34\u56FE\u4E0D\u80FD\u4F5C\u4E3A Reaction\uFF1A${n.emoji}`);if(n.id.trim()===""||n.parentMessageId.trim()===""||n.senderId.trim()==="")throw new Error("Reaction \u4E8B\u4EF6\u7F3A\u5C11 id\u3001parentMessageId \u6216 senderId");if(n.action!==0&&n.action!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${n.action}`);if(!Number.isSafeInteger(n.createdAt)||n.createdAt<0)throw new Error(`Reaction createdAt \u975E\u6CD5\uFF1A${n.createdAt}`);return e?.events.some(r=>r.id===n.id)?e:jd([...e?.events??[],n],t,(e?.version??0)+1)}function ec(e,n,t){if(e===void 0)return;let r=e.events.filter(o=>o.id!==n);if(r.length===e.events.length)return e;if(r.length!==0)return jd(r,t,e.version+1)}function nc(e,n,t){if(e===void 0)return n;if(n===void 0)return e;let r=new Map(e.events.map(o=>[o.id,o]));for(let o of n.events)r.set(o.id,o);return jd([...r.values()],t,Math.max(e.version,n.version))}var Um={unread:0,delivered:1,read:2};function sa(e,n){return Um[n]>Um[e]?n:e}function xm(e,n){return e==="sent"||n==="sent"?"sent":n}function dr(e,n,t=""){let r=yi(e)??0,o=yi(n)??0,i=o>=r,s=i?{...e,...n}:{...n,...e},a=e.readBySelf===true||n.readBySelf===true,c=Math.max(r,o),u=Math.min(e.createdAt,n.createdAt),p=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},y=rt({...s,createdAt:u,serverTime:c,extensions:p}),v=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":xm(e.status,n.status),I=v==="failed"?n.failure??e.failure:void 0,k=nc(e.reactions,n.reactions,t),G=e.encryption.decryptFailed===true,M=n.encryption.decryptFailed===true,T=s.contentType,b=s.body,N=s.encryption,L=s.mention;G&&!M?(T=n.contentType,b=n.body,N=n.encryption,L=n.mention):!G&&M&&(T=e.contentType,b=e.body,N=e.encryption,L=e.mention),n.edited===true&&!M&&(T=n.contentType,b=n.body,N=n.encryption,L=n.mention);let Y=e.body.voice?.waveform??n.body.voice?.waveform;if(b.voice!==void 0&&b.voice.waveform===void 0&&Y!==void 0&&(b={...b,voice:{...b.voice,waveform:Y}}),b.video!==void 0&&b.video.size===void 0){let te=b.video,se=[e.body.video,n.body.video].find(z=>z?.sizeUnit==="bytes"&&z.size!==void 0&&z.url===te.url&&z.fileEncryptType===te.fileEncryptType&&z.md5===te.md5&&it(z.teaKey,te.teaKey)&&(te.unverifiedFileLength===void 0||te.unverifiedFileLength===String(z.size)));se!==void 0&&(b={...b,video:{...te,size:se.size,sizeUnit:"bytes"}});}let me=e.edited===true||n.edited===true,w=e.deletedForEveryone??n.deletedForEveryone;if(w!==void 0){let te={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:u,serverTime:c>0?c:void 0,status:v,failure:I,receipt:sa(e.receipt,n.receipt),sortKey:y,extensions:p,recalled:void 0,deletedForEveryone:w,body:{},encryption:s.encryption};return delete te.reactions,te}let X=e.recalled??n.recalled;if(X!==void 0){let te={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:u,serverTime:c>0?c:void 0,status:v,failure:I,receipt:sa(e.receipt,n.receipt),sortKey:y,extensions:p,recalled:X,body:{},encryption:s.encryption};return delete te.reactions,te}let ne={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:u,serverTime:c>0?c:void 0,status:v,failure:I,receipt:sa(e.receipt,n.receipt),sortKey:y,extensions:p,contentType:T,body:b,encryption:N,...k===void 0?{}:{reactions:k},...me?{edited:true}:{}};return L!==void 0?ne.mention=L:delete ne.mention,ne}function wC(e,n){return e===void 0||n===void 0?e===n:e.version===n.version&&e.total===n.total&&e.currentUserEmoji===n.currentUserEmoji&&e.events.length===n.events.length&&e.events.every((t,r)=>{let o=n.events[r];return o!==void 0&&t.id===o.id&&t.senderId===o.senderId&&t.emoji===o.emoji&&t.action===o.action&&t.createdAt===o.createdAt})}function gt(e,n=""){let t=new Map;for(let r of e){let o=t.get(r.id);t.set(r.id,o===void 0?r:dr(o,r,n));}return [...t.values()]}function BC(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function FC(e,n){if(e===void 0||n===void 0)return e===n;let t=Object.keys(e);return t.length!==Object.keys(n).length?false:t.every(r=>e[r]===n[r])}function PC(e,n){return e===void 0||n===void 0?e===n:e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&XC(e.targetUserIds,n.targetUserIds)&&tc(e.payload,n.payload)&&tc(e.action,n.action)&&tc(e.pinnedMessageAction,n.pinnedMessageAction)}function km(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.fileName===n.fileName&&e.size===n.size&&e.extension===n.extension&&e.fileType===n.fileType&&e.mimeType===n.mimeType&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&it(e.teaKey,n.teaKey)}function VC(e,n){return e===void 0||n===void 0?e===n:e.targetId===n.targetId&&e.avatar===n.avatar&&e.displayName===n.displayName&&e.username===n.username&&e.gender===n.gender&&e.kind===n.kind&&e.rawKind===n.rawKind}function OC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.exprType===n.exprType&&e.imageType===n.imageType&&e.size===n.size&&e.describe===n.describe&&e.contentId===n.contentId&&e.packageName===n.packageName&&it(e.thumbData,n.thumbData)}function KC(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function LC(e,n){return e===void 0||n===void 0?e===n:JSON.stringify(e.modules)===JSON.stringify(n.modules)&&JSON.stringify(e.commands)===JSON.stringify(n.commands)}function ZC(e,n){return e===void 0||n===void 0?e===n:e.appId===n.appId&&e.host===n.host&&e.developerId===n.developerId&&e.name===n.name&&e.icon===n.icon&&e.productId===n.productId&&e.isDynamicHost===n.isDynamicHost&&e.suffixAddress===n.suffixAddress&&e.showType===n.showType&&e.rawShowType===n.rawShowType&&e.description===n.description&&e.currencySource===n.currencySource&&e.currencyType===n.currencyType&&e.gamePath===n.gamePath&&e.subGameName===n.subGameName&&e.gamePreviewUrl===n.gamePreviewUrl&&e.gamePreviewWidth===n.gamePreviewWidth&&e.gamePreviewHeight===n.gamePreviewHeight}function QC(e,n){return e===void 0||n===void 0?e===n:e.callKind===n.callKind&&e.outcome===n.outcome&&e.durationMs===n.durationMs&&e.outgoing===n.outgoing}function WC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.amount===n.amount&&e.currencyType===n.currencyType&&e.status===n.status&&e.serialNumber===n.serialNumber&&e.remark===n.remark&&e.sessionType===n.sessionType&&e.transferTime===n.transferTime&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.transferMsgId===n.transferMsgId&&e.coinName===n.coinName&&e.coinIcon===n.coinIcon}function HC(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.giftType===n.giftType&&e.giftName===n.giftName&&e.giftIcon===n.giftIcon&&e.explain===n.explain&&e.state===n.state&&e.serialNumber===n.serialNumber&&e.sessionType===n.sessionType&&e.initiateTime===n.initiateTime&&e.amount===n.amount&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.zhangCount===n.zhangCount&&e.benCount===n.benCount&&e.fissionNumber===n.fissionNumber}function JC(e,n){return e===void 0||n===void 0?e===n:e.packetId===n.packetId&&e.packetType===n.packetType&&e.amount===n.amount&&e.count===n.count&&e.showAmount===n.showAmount&&e.thunderRate===n.thunderRate&&e.isThunder===n.isThunder&&e.thunderNumber===n.thunderNumber&&e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.currencyType===n.currencyType&&e.coinName===n.coinName}function YC(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function XC(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function tc(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function zC(e,n){return e===void 0||n===void 0?e===n:e.atAll!==n.atAll||e.atUserIds.length!==n.atUserIds.length||e.atUserIds.some((t,r)=>t!==n.atUserIds[r])?false:FC(e.atUsersName,n.atUsersName)}function it(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function qC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&it(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&it(e.teaKey,n.teaKey)}function jC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.duration===n.duration&&e.durationUnit===n.durationUnit&&e.sizeUnit===n.sizeUnit&&e.unverifiedFileLength===n.unverifiedFileLength&&it(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&it(e.teaKey,n.teaKey)}function $C(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.durationMs===n.durationMs&&e.size===n.size&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&it(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function eS(e,n){return e.kind===n.kind&&e.url===n.url&&e.width===n.width&&e.height===n.height&&e.durationMs===n.durationMs&&e.thumbUrl===n.thumbUrl&&it(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&it(e.teaKey,n.teaKey)&&e.hd===n.hd}function nS(e,n){return e===void 0||n===void 0?e===n:e.caption!==n.caption||e.items.length!==n.items.length?false:e.items.every((t,r)=>eS(t,n.items[r]))}function Lt(e,n){return e.id===n.id&&e.conversationId===n.conversationId&&e.conversationType===n.conversationType&&e.senderId===n.senderId&&e.contentType===n.contentType&&e.body.text===n.body.text&&PC(e.body.system,n.body.system)&&e.createdAt===n.createdAt&&e.sortKey===n.sortKey&&e.status===n.status&&e.serverTime===n.serverTime&&e.receipt===n.receipt&&e.readBySelf===n.readBySelf&&e.refMessageId===n.refMessageId&&e.edited===n.edited&&(e.recalled?.by??"")===(n.recalled?.by??"")&&(e.recalled?.at??0)===(n.recalled?.at??0)&&(e.deletedForEveryone?.by??"")===(n.deletedForEveryone?.by??"")&&(e.deletedForEveryone?.at??0)===(n.deletedForEveryone?.at??0)&&(e.deletedForEveryone?.reason??"")===(n.deletedForEveryone?.reason??"")&&wC(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&zC(e.mention,n.mention)&&qC(e.body.image,n.body.image)&&jC(e.body.video,n.body.video)&&$C(e.body.voice,n.body.voice)&&km(e.body.file,n.body.file)&&(e.body.filesAlbum===void 0||n.body.filesAlbum===void 0?e.body.filesAlbum===n.body.filesAlbum:e.body.filesAlbum.caption===n.body.filesAlbum.caption&&e.body.filesAlbum.items.length===n.body.filesAlbum.items.length&&e.body.filesAlbum.items.every((t,r)=>km(t,n.body.filesAlbum.items[r])))&&OC(e.body.sticker,n.body.sticker)&&VC(e.body.contact,n.body.contact)&&ZC(e.body.miniProgram,n.body.miniProgram)&&LC(e.body.robot,n.body.robot)&&KC(e.body.game,n.body.game)&&WC(e.body.transfer,n.body.transfer)&&HC(e.body.gift,n.body.gift)&&QC(e.body.call,n.body.call)&&JC(e.body.redPacket,n.body.redPacket)&&nS(e.body.mediaAlbum,n.body.mediaAlbum)&&YC(e.body.unknown,n.body.unknown)&&BC(e.failure,n.failure)}var tS=20;function cr(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(yn(r));}return [...n]}function lr(e){let n=new Set;for(let t of e)t!==""&&n.add(Ee(t));return [...n]}var wm=2;function rS(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function ko(e){let n=sr.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:rS(n.action)}}function xo(e,n){let t=ko(e.sContent),r=e.sFromId.toString();return {id:Ee(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:Ee(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function wo(e){let n=ko(e.sContent);return {id:Ee(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:Ee(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function rc(e){let n=ko(e.sContent);return {id:Ee(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:Ee(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function oc(e){if(e.eventType===wm)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=ko(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function ic(e){let n=ko(e.sContent);return {id:Ee(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:Ee(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function aa(e,n,t){return n===e?t:n}var oS=102,Bm=1,iS=2;function sc(e,n){let t=Ee(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,s=i?String(e.sGroupId):aa(n,r,String(e.sToId)),a=Number(e.msgTime)||o;return {id:t,conversationId:s,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:a,sortKey:we(a,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function ac(e){let n=Ee(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:we(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function dc(e){let n=Ee(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:we(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function cc(e){let n=Ee(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:we(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function Bo(e,n){if(n.contentType!==oS||n.type!==Bm&&n.type!==iS||!Pn(n.content))return null;let t=Ee(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:we(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===Bm?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var sS=Te.create({contentType:1,content:""}),aS=101;function Fm(e){if(e.sChnnId<=0n)throw new Error("channel session: channel id \u7F3A\u5931\u6216\u975E\u6CD5");let n=e.uStatus===0||e.uStatus===1,t=e.uExistAt===1||e.uExistAt===2,r=e.uStatus===0&&t?"active":"unknown_restricted",o=e.uExistAt===1?false:e.uExistAt===2?true:void 0,i={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(i.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(i.raw={status:e.uStatus,mentionStatus:e.uExistAt}),i}function dS(e){return $s.encode($s.create({sUserId:Fo(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:Fo(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function Pm(e){return ea.encode(ea.create({sUserId:Fo(e.userId,"user"),clientType:e.clientType,lsPull:e.pulls.map(n=>{if(!Number.isInteger(n.count)||n.count<=0)throw new Error("channel offline request: count \u7F3A\u5931\u6216\u975E\u6CD5");return {sChnnId:Fo(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function cS(e){return Pm({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function lS(e,n,t){let r=Jd.decode(e);lc(r.errcode,"sessions");let o=ca(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let s=i.sChnnId.toString();la(s,o,"sessions");let a=Fm(i);if(i.last!==void 0){if(i.last.sChnnId!==i.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${i.sChnnId}, last=${i.last.sChnnId}\uFF09`);let c=da(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);c!==null&&(a.last=c);}return a})}}function Vm(e,n,t){let r=Eo.decode(e);lc(r.errcode,"offlineMessages");let o=ca(n.expectedChannelIds),i={},s={},a=[];for(let c of r.lsMessage){let u=c.sChnnId.toString();la(u,o,"offlineMessages"),i[u]=c.sIndex,s[u]=(s[u]??0)+1;let p=da(c,n,t);p!==null&&a.push(p);}return {messages:gt(a,n.selfId).sort(dn),batchSize:r.lsMessage.length,messageCounts:s,nextBaseIndexes:i}}async function uS(e,n,t,r){r.signal?.throwIfAborted();let o=Eo.decode(e);lc(o.errcode,"offlineMessages");let i=ca(n.expectedChannelIds),s={},a={},c=[],u=0;for(let y of o.lsMessage){r.signal?.throwIfAborted(),u>0&&u%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let x=y.sChnnId.toString();la(x,i,"offlineMessages"),s[x]=y.sIndex,a[x]=(a[x]??0)+1;let v=da(y,n,t);v!==null&&c.push(v),u+=1;}r.signal?.throwIfAborted();let p=o.lsMessage[0]?.sIndex;return {messages:gt(c,n.selfId).sort(dn),batchSize:o.lsMessage.length,messageCounts:a,nextBaseIndexes:s,firstBaseIndex:p}}function Om(e,n,t,r="specificMsgs"){let o=ca(n.expectedChannelIds),i=[];for(let s of e){let a=s.sChnnId.toString();la(a,o,r);let c=da(s,n,t);c!==null&&i.push(c);}return gt(i,n.selfId).sort(dn)}function gS(e){return na.encode(na.create({sUserId:BigInt(e.userId),sChnnId:Fo(e.channelId,"channel"),lsMsgId:cr(e.messageIds),clientType:e.clientType??0}))}function mS(e,n,t){let r=Yd.decode(e);return {messages:Om(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:lr(r.lsMissingMsgId),code:r.errcode}}function fS(e,n,t){if(!Number.isInteger(n.requestedCount)||n.requestedCount<=0)throw new Error("channel history: requestedCount \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=Eo.decode(e),o=Vm(e,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,expectedChannelIds:[n.channelId],...n.diagnostic===void 0?{}:{diagnostic:n.diagnostic},onContentDecodeError:n.onContentDecodeError,onReaction:n.onReaction},t),i=r.lsMessage[0]?.sIndex;if(i!==void 0&&i===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${i}\uFF09`);return {messages:o.messages,...i===void 0?{}:{nextBaseIndex:i},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function da(e,n,t){if(oc(e)){try{n.onReaction?.(ic(e));}catch(s){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s});}return null}if(e.uOperationType===1||e.uOperationType===2)return cc(e);let r=sS,o=false;if(e.encrypt===0)try{r=Te.decode(e.sContent);}catch(s){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s}),xu(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let s=t.resolveUserPrivateKey?.()??null;if(s===null)o=true,t.onDecryptError?.(mt(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let a;try{if(a=He.decode(e.sContent),a.secretKey.length===0||a.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(c){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:c})),a=He.create();}if(!o){let c;try{c=t.crypto.decryptEndToEnd({secretKey:a.secretKey,cipherData:a.cipherData,privateKey:s});}catch(u){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,cause:u})),c=new Uint8Array;}if(!o)try{r=Te.decode(c);}catch(u){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,decryptedByteLength:c.length,cause:u}));}}}}else if(e.encrypt===2&&t!==void 0){let s=e.sChnnId.toString(),a=t.resolveChannelKey(s);if(a===null||a.length!==16)o=true,t.onDecryptError?.(mt(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:a?.length??0,keySource:a===null?"miss":"cache"}));else {let c;try{let u=He.decode(e.sContent);if(u.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");c=u.cipherData;}catch(u){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:a.length,keySource:"cache",cause:u})),c=new Uint8Array;}if(!o){let u;try{u=t.crypto.decryptSymmetric({teaKey:a,cipherData:c});}catch(p){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,cause:p})),u=new Uint8Array;}if(!o)try{r=Te.decode(u);}catch(p){o=true,t.onDecryptError?.(mt(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,decryptedByteLength:u.length,cause:p}));}}}}else o=true,t?.onDecryptError?.(mt(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let s=Bo({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(s!==null)return s}if(!o&&r.contentType===aS)return Do({channelId:e.sChnnId,messageId:e.sMsgId,occurredAt:e.msgTime,notifyType:r.type,operatorId:r.oprUserId,targetUserIds:r.mnpledUserId,content:r.content,extend:e.extend,historyCursor:e.sIndex,sequence:e.sIncrId,encrypted:e.encrypt!==0},{keepRaw:n.keepRaw});let i=fd(e,r,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw===true||o,decryptFailed:o});return o&&(e.encrypt===1||e.encrypt===2)&&t?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:i.conversationId},messageId:i.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),i}function mt(e,n,t){return {...n.diagnostic??{endpoint:"unknown",surface:"unknown"},messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,payloadByteLength:e.sContent.length,...t}}function lc(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function ca(e){return e===void 0?void 0:new Set(e)}function la(e,n,t){if(n!==void 0&&!n.has(e))throw new Error(`channel ${t}: \u54CD\u5E94\u9891\u9053\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\u6279\u6B21\uFF08channelId=${e}\uFF09`)}function Fo(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function pS(e,n,t){let r=nt(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var ua="system",yS=32768;function Km(e){switch(e){case 7:return "group_activated";case 1:return "group_info_changed";case 2:return "group_member_left";case 3:return "group_member_removed";case 4:return "group_member_joined";case 5:return "group_member_invited";case 6:return "group_master_changed";case 10:return "group_member_renamed";case 11:return "group_dismissed";case 12:return "group_message_pinned";case 13:return "group_message_unpinned";default:return "unknown"}}function uc(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Nt(e):Nt({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function IS(e){let n=e.trim();if(!(n===""||!n.startsWith("{")&&!n.startsWith("[")))try{let t=JSON.parse(n);return typeof t=="object"&&t!==null?t:void 0}catch{return}}function Po(e,n){let t=Ee(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),s=e.sMnpledUserId.map(v=>v.toString()),a={eventType:Km(e.notifyType),rawNotifyType:e.notifyType},c=Number(e.errcode);c!==0&&(a.errcode=c),i!==void 0&&(a.operatorId=i),s.length>0&&(a.targetUserIds=s);let u=e.notifyType===12,p=e.notifyType===13;!u&&!p&&e.sContent!==""&&(a.fallbackText=e.sContent);let y=u||p?void 0:IS(e.sContent);if(y!==void 0&&(a.payload=y),u)try{a.pinnedMessageAction={type:"pin",pinnedMessage:ra(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(v){a.pinnedMessageAction={type:"invalid",code:_o(v)};}else p&&(a.pinnedMessageAction={type:"unpin"});let x={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:ua,contentType:"system",body:{system:a},createdAt:o,sortKey:we(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(x.serverTime=r),n.keepRaw&&(x.raw={cmdId:n.cmdId}),uc(x)}function gc(e,n){let t=e.targetUserIds?.includes(n)??false;switch(e.eventType){case "group_member_left":return t?{state:"left",reason:"you_left_group"}:null;case "group_member_removed":return t?{state:"removed",reason:"you_were_removed"}:null;case "group_dismissed":return {state:"dismissed",reason:"group_dismissed"};case "group_member_joined":case "group_member_invited":{if(!t)return null;let r=e.errcode;return r!==void 0&&r!==yS?null:{state:"active",reason:""}}default:return null}}function mc(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var CS=new Set([8196,8976]),Lm=Te.create({contentType:1,content:""});function SS(e){return Ys.encode(Ys.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function hS(e){return Js.encode(Js.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function AS(e,n,t){let r=t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(r===null)return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let o=He.decode(e.sContent);if(o.secretKey.length===0||o.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${o.secretKey.length}B cipherData=${o.cipherData.length}B`);let i=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return Te.decode(i)}catch(o){return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:o}),null}}function Vo(e,n,t){if(ga(e.sGroupId,n.expectedGroupId),e.cmdId===8980){let c=ot.decode(e.sMsgData),u={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sGrpId:c.sGrpId===0n?e.sGroupId:c.sGrpId,sToId:c.sToId===0n?e.sGroupId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return ga(u.sGrpId,n.expectedGroupId),n.onReaction?.(wo(u)),null}if(e.cmdId===8708){let c=or.decode(e.sMsgData);return ga(c.sGrpId,n.expectedGroupId),Po(c,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw})}if(!CS.has(e.cmdId))return null;let r=ot.decode(e.sMsgData);ga(r.sGrpId,n.expectedGroupId);let o=Lm,i=false,s=false;if(r.encrypt===0)try{o=Te.decode(r.sContent);}catch{s=true;}else if(r.encrypt===1&&t!==void 0){let c=AS(r,r.sGrpId.toString(),t);o=c??Lm,i=c===null;}else i=true;let a=bt(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return s&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=Ee(e.parentMsgId)),e.isEdit===1&&(a.edited=true),a}function ga(e,n){if(n!==void 0&&e.toString()!==n)throw new Error(`group history: \u54CD\u5E94\u7FA4\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\uFF08groupId=${e}\uFF09`)}function RS(e,n,t){let r=Qd.decode(e),o=[],i=[];for(let s of r.msgList){i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId});let a=Vo(s,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function MS(e,n,t){let r=Zd.decode(e),o=[],i=[];for(let s of r.sessionList){o.push({groupId:s.groupId.toString(),unreadCount:Number(s.unreadCount)});for(let a of s.msgList){let c=Vo(a,n,t);c!==null&&i.push(c);}}return {unreads:o,messages:i}}function ES(e){return Xs.encode(Xs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function TS(e,n,t){let r=zs.decode(e),o=[];for(let s of r.msgList){let a=Vo(s,n,t);a!==null&&o.push(a);}let i=r.msgList.map(s=>Number(s.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}async function vS(e,n,t,r){r.signal?.throwIfAborted();let o=zs.decode(e);if(o.code!==200)throw new Error(`group history: code=${o.code}`);let i=[],s,a,c=0;for(let u of o.msgList){r.signal?.throwIfAborted(),c>0&&c%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let p=Vo(u,n,t);p!==null&&i.push(p);let y=Number(u.msgTime);s=s===void 0?y:Math.min(s,y),a=a===void 0?y:Math.max(a,y),c+=1;}return r.signal?.throwIfAborted(),{messages:i,batchSize:o.msgList.length,...s===void 0?{}:{oldestEntryTime:s,newestEntryTime:a}}}function bS(e){return qs.encode(qs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:cr(e.messageIds),clientType:e.clientType??0}))}function NS(e,n,t){let r=Wd.decode(e),o=[];for(let i of r.msgList){let s=Vo(i,n,t);s!==null&&(i.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),o.push(s));}return {messages:o,missingMessageIds:lr(r.missingMsgIds),code:r.code}}function _S(e){return js.encode(js.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function DS(e){return {code:Hd.decode(e).code}}var GS=1;function ur(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),s=Ee(e.sMsgId),a=nt(n,t.selfId),c=i>0?i:t.receivedAt??Date.now(),u={id:s,conversationId:aa(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:a.contentType,body:a.body,createdAt:c,sortKey:we(c,s),status:"sent",receipt:"unread",...t.readBySelf===true?{readBySelf:true}:{},encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(u.encryption.decryptFailed=true),i>0&&(u.serverTime=i),e.parentMsgId&&(u.refMessageId=Ee(e.parentMsgId)),t.edited===true&&(u.edited=true),t.keepRaw&&(u.raw=US(e,n,t.cmdId)),u}function US(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sToId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function Oo(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:ke(e.id),msgType:GS,encrypt:e.encryption.encrypted?1:0,bMessage:kn(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:yn(e.refMessageId)}:{}}}function fc(e){return {id:Ee(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function ma(e){switch(e){case 33281:return {code:e,reason:"rejected",displayCode:"forbiddenOrLeft",retryable:false};case 33282:return {code:e,reason:"rejected",displayCode:"contentRejected",retryable:false};case 33557:return {code:e,reason:"rejected",displayCode:"groupDismissed",retryable:false};case 33540:return {code:e,reason:"network",displayCode:"groupUnavailable",retryable:true};default:return {code:e,reason:"rejected",retryable:true}}}function kS(e){return Ws.encode(Ws.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var xS=new Set([4100,4113,4644,4645]),Zm=Te.create({contentType:1,content:""});function wS(e,n){let t=n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(t===null)return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let r=He.decode(e.sContent);if(r.secretKey.length===0||r.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${r.secretKey.length}B cipherData=${r.cipherData.length}B`);let o=n.crypto.decryptEndToEnd({secretKey:r.secretKey,cipherData:r.cipherData,privateKey:t});return Te.decode(o)}catch(r){return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:r}),null}}function BS(e,n,t){let r=Kd.decode(e),o=[],i=[];for(let s of r.msgList){i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId});let a=Qm(s,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function Qm(e,n,t){if(e.cmdId===4653){let c=Tt.decode(e.sMsgData),u={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sToId:c.sToId===0n?e.sToId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return n.onReaction?.(xo(u,n.selfId)),null}if(!xS.has(e.cmdId))return null;let r=Tt.decode(e.sMsgData),o=Zm,i=false,s=false;if(r.encrypt===0)try{o=Te.decode(r.sContent);}catch{s=true;}else if(r.encrypt===1&&t!==void 0){let c=wS(r,t);o=c??Zm,i=c===null;}else i=true;let a=ur(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i,...e.isRead===1?{readBySelf:true}:{}});return s&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=Ee(e.parentMsgId)),e.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),e.isEdit===1&&(a.edited=true),a}function FS(e){return Hs.encode(Hs.create({userId:BigInt(e.userId),msgIds:cr(e.messageIds),clientType:e.clientType??0}))}function PS(e,n,t){let r=Ld.decode(e),o=[];for(let i of r.msgList){let s=Qm(i,n,t);s!==null&&o.push(s);}return {messages:o,missingMessageIds:lr(r.missingMsgIds),code:r.code}}function Ln(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r;if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function Wm(e,n){for(let t of n){let r=e[t];if(typeof r=="string"){let o=r.trim();if(o!=="")return o}if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function gr(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""&&Number.isFinite(Number(r)))return Number(r)}}function VS(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,i=n?.[2]===void 0?void 0:Number(n[2]),s=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let a=r.getMonth()+1;(a<i||a===i&&s!==void 0&&r.getDate()<s)&&(o-=1);}return o>=0&&o<200?o:void 0}function OS(e){let n=t=>t.map(r=>typeof r=="string"?r.trim():r!==null&&typeof r=="object"&&typeof r.email=="string"?r.email.trim():"").filter(r=>r!=="");for(let t of ["extend_email","extendEmail"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim()!==""){let o=r.trim();if(o.startsWith("["))try{let i=JSON.parse(o);if(Array.isArray(i))return n(i)}catch{}return [o]}}return []}function KS(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let s=i.trim(),a=o.mobile.trim();return s===""||a===""?[]:[{countryCode:s,mobile:a}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var LS=["user_id","userId","id","uid"],ZS=["nick_name","nickName","nickname","name"],QS=["remark_name","remarkName"],WS=["contact_name","contactName"],HS=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],JS=["per_signature","signature","sign"],YS=["mid"],XS=["birthday"],zS=["public_key","publicKey"],Hm=["is_undisturb","isUndisturb"];function qS(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=Ln(t,LS);if(r===void 0)throw new Error("toUserProfile: \u7F3A\u5C11\u7528\u6237 id \u5B57\u6BB5\uFF08user_info.user_id / user_id\uFF09");let o={id:r,nickname:Ln(t,ZS)??""},i=Wm(e,QS)??Wm(e,WS);i!==void 0&&(o.remark=i);let s=Ln(t,HS);s!==void 0&&(o.avatar=s);let a=Ln(t,JS);a!==void 0&&(o.signature=a);let c=Ln(t,YS);c!==void 0&&(o.miCallId=c);let u=Ln(t,XS);if(u!==void 0){o.birthday=u;let I=VS(u);I!==void 0&&(o.age=I);}let p=OS(e);p.length>0&&(o.remarkEmail=p);let y=KS(e);y.length>0&&(o.remarkPhones=y);let x=Ln(t,zS);x!==void 0&&(o.publicKey=x);let v=gr(e,Hm);return v!==void 0&&(o.muted=v===1),o}var jS=["group_id","groupId","id","gid"],$S=["group_name","groupName","name"],eh=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],nh=["total_users","member_count","memberCount","member_num","memberNum"],th=["status"],rh=["is_ingroup","isInGroup","isIngroup"],oh=["user_id","userId","owner_id","ownerId","master_id","masterId"],ih=["verify_way","verifyWay"],sh=["invite_code","inviteCode"];function ah(e){let n=Ln(e,jS);if(n===void 0)throw new Error("toGroupProfile: \u7F3A\u5C11\u7FA4 id \u5B57\u6BB5\uFF0809b \u5F85\u6838\u5BF9\u771F\u5B9E\u63A5\u53E3\u5B57\u6BB5\uFF09");let t={id:n,name:Ln(e,$S)??""},r=Ln(e,eh);r!==void 0&&(t.avatar=r);let o=gr(e,nh);o!==void 0&&(t.memberCount=o);let i=gr(e,th);i!==void 0&&(t.status=i);let s=gr(e,rh);s!==void 0&&(t.isInGroup=s===1);let a=Ln(e,oh);a!==void 0&&(t.ownerId=a);let c=gr(e,ih);c!==void 0&&(t.verifyWay=c);let u=Ln(e,sh);u!==void 0&&(t.inviteCode=u);let p=e.to_user;if(p!==null&&typeof p=="object"){let y=gr(p,Hm);y!==void 0&&(t.muted=y===1);}return t}function pc(e,n){if(e.robotId.trim()==="")throw new Error("robot reply: robotId \u7F3A\u5931");if(e.userId<=0n)throw new Error("robot reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");let t=Ee(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=Jm(e.content),s=nt(i,n.selfId),a={id:t,conversationId:e.robotId,conversationType:"robot",senderId:e.robotId,contentType:s.contentType,body:s.body,createdAt:o,sortKey:we(o,t),status:"sent",receipt:"unread",encryption:{encrypted:false}};return r>0&&(a.serverTime=r),n.keepRaw&&(a.raw={cmdId:n.cmdId,chat:{sMsgId:e.sMsgId,sFromId:e.robotId,sToId:e.userId.toString(),msgType:11,encrypt:0,msgTime:e.msgTime.toString()},content:{contentType:i.contentType,text:i.content||void 0}}),a}function yc(e){if(e.msgId.trim()==="")throw new Error("robot ack: msgId \u7F3A\u5931");return {id:Ee(e.msgId),serverTime:0,errcode:e.errCode}}function Ic(e,n){if(e.encryption.encrypted)throw new Error("robot \u79C1\u804A\u53EA\u8D70\u660E\u6587 JSON\uFF08EncryptType.NONE\uFF09\uFF0C\u7981\u6B62 encrypt=1");if(e.conversationId.trim()==="")throw new Error("robot \u51FA\u7AD9: robotId \u7F3A\u5931");let t=kn(e.body);return {userId:BigInt(n.selfId),robotId:e.conversationId,sMsgId:ke(e.id),msgTime:BigInt(e.createdAt),content:ch(t,e.refMessageId)}}function Jm(e){let n=e.trim();if(n.startsWith("{"))try{let t=JSON.parse(n);if(t!==null&&typeof t=="object"&&!Array.isArray(t))return Te.create(dh(t))}catch{}try{return Te.decode(new TextEncoder().encode(e))}catch{return Te.create({contentType:1,content:e})}}function dh(e){let n=st(e.contentType)??1,t=typeof e.content=="string"?e.content:"",r=fa(e.md5)??fa(e.MD5),o=st(e.fileLength);return {contentType:n,content:t,...st(e.width)!==void 0?{width:st(e.width)}:{},...st(e.height)!==void 0?{height:st(e.height)}:{},...st(e.duration)!==void 0?{duration:st(e.duration)}:{},...fa(e.describe)!==void 0?{describe:fa(e.describe)}:{},...r!==void 0?{MD5:r}:{},...st(e.imageType)!==void 0?{imageType:st(e.imageType)}:{},...o!==void 0&&o>0?{fileLength:BigInt(Math.round(o))}:{}}}function ch(e,n){let t={contentType:e.contentType,content:e.content};return e.contentType===1&&(t.logicType=0),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.duration!==void 0&&(t.duration=e.duration),e.describe!==void 0&&e.describe!==""&&(t.describe=e.describe),e.MD5!==void 0&&e.MD5!==""&&(t.md5=e.MD5),e.imageType!==void 0&&(t.imageType=e.imageType),e.fileLength!==void 0&&e.fileLength>0n&&(t.fileLength=Number(e.fileLength)),n!==void 0&&n!==""&&(t.parentMsgId=yn(n)),JSON.stringify(t)}function st(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function fa(e){return typeof e=="string"&&e!==""?e:void 0}function lh(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function uh(e,n={}){if(at(e)){if(e.deletedForEveryone!==void 0)return e.conversationType==="channel"&&n.showChannelModerationDeleted===false?void 0:{kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.encryption.decryptFailed===true)return {kind:"decrypt-failed"};if(e.body.text)return {kind:"text",text:e.body.text};if(e.contentType==="image")return {kind:"image"};if(e.contentType==="video")return {kind:"video"};if(e.contentType==="voice")return e.body.voice?.durationMs!==void 0?{kind:"voice",durationMs:e.body.voice.durationMs}:{kind:"voice"};if(e.contentType==="filesAlbum"&&e.body.filesAlbum!==void 0)return {kind:"filesAlbum",count:e.body.filesAlbum.items.length,...e.body.filesAlbum.caption===void 0?{}:{caption:e.body.filesAlbum.caption}};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:Ya(e.body.sticker?.imageType??0)};if(e.contentType==="mediaAlbum"&&e.body.mediaAlbum!==void 0){let t=e.body.mediaAlbum.items,r=e.body.mediaAlbum.caption,o=t[0]?.kind;return {kind:"mediaAlbum",imageCount:t.filter(i=>i.kind==="image").length,videoCount:t.filter(i=>i.kind==="video").length,...r!==void 0&&r.trim()!==""?{caption:r}:{},...o===void 0?{}:{firstItemKind:o}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="robot")return {kind:"robot"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="gift")return {kind:"gift"};if(e.contentType==="call"&&e.body.call!==void 0)return {kind:"call",callKind:e.body.call.callKind};if(e.contentType==="redPacket")return {kind:"redPacket"};if(e.contentType==="game"&&e.body.game!==void 0)return {kind:"game",gameType:e.body.game.gameType};if(e.contentType==="unknown")return {kind:"unknown"};if(e.contentType==="system"&&e.body.system!==void 0){let{pinnedMessageAction:t,...r}=e.body.system;return {kind:"system",system:r}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function gh(e,n){return e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&JSON.stringify(e.action)===JSON.stringify(n.action)&&mh(e.targetUserIds,n.targetUserIds)&&fh(e.payload,n.payload)}function at(e){return e.body.system?.timelineVisibility!=="hidden"}function mh(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function fh(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function Cc(e,n){if(e===void 0||n===void 0)return e===n;if(e.kind!==n.kind)return false;switch(e.kind){case "text":return e.text===n.text;case "voice":return e.durationMs===n.durationMs;case "recalled":return e.by===n.by;case "channel-moderation-deleted":return e.by===n.by;case "system":return gh(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "filesAlbum":{let t=n;return e.count===t.count&&e.caption===t.caption}case "mediaAlbum":{let t=n;return e.imageCount===t.imageCount&&e.videoCount===t.videoCount&&e.caption===t.caption&&e.firstItemKind===t.firstItemKind}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "robot":case "transfer":case "gift":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function ph(e,n){if(n!==void 0&&n!==""?e.senderId===n:e.senderId!==e.conversationId){if(e.status==="failed")return "failed";if(e.status==="pending"||e.status==="uploading"||e.status==="sending")return "sending"}}function yh(e,n){if(!(n===void 0||n==="")&&e.senderId===n&&e.status==="sent"&&!(e.recalled!==void 0||e.deletedForEveryone!==void 0)&&e.contentType!=="system")return e.receipt==="read"?"read":"unread"}function Sc(e,n={}){let t=e.conversationType==="channel"&&e.deletedForEveryone!==void 0&&n.showChannelModerationDeleted===false,r=!t&&e.contentType==="system"&&at(e)?e.body.system:void 0,o=t?void 0:e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:lh(e),lastMessageSummary:uh(e,n),...t?{}:{lastMessageSenderId:e.senderId},lastMessageSystemEvent:r?.eventType,lastMessageSystemTargetsSelf:r!==void 0&&n.selfId!==void 0&&n.selfId!==""?r.targetUserIds?.includes(n.selfId)??false:void 0,...o!==void 0?{lastMessageMention:o}:{},...e.recalled!==void 0&&!t?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0&&!t?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:tt(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:t?void 0:ph(e,n.selfId),lastMessageReceipt:yh(e,n.selfId)}}function Xm(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function hc(e,n){let t=Uint8Array.of(e<<3),r=Xm(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function Ym(e,n){let t=e<<3|2,r=Xm(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function Ih(e){let n=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function mr(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let i=BigInt(e[o]);if(o+=1,t|=(i&0x7Fn)<<r,(i&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function zm(e,n,t){if(t===0)return mr(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=mr(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function Ch(e){let n=new TextEncoder,t=[hc(1,BigInt(e.userId)),Ym(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(Ym(3,n.encode(r)));return t.push(hc(4,BigInt(e.limit??100))),t.push(hc(5,BigInt(e.clientType??0))),Ih(t)}function Sh(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let s=e[n];n+=1;let a=s>>>3,c=s&7;if(a===1&&c===0){let u=mr(e,n);t=Number(u.value),n=u.offset;continue}if(a===2&&c===2){let u=mr(e,n),p=u.offset+Number(u.value);if(p>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(u.offset,p)),n=p;continue}if(a===3&&c===2){let u=mr(e,n),p=u.offset+Number(u.value);if(p>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(u.offset,p)),n=p;continue}n=zm(e,n,c);}return {cmdId:t,body:r,msgId:o}}function hh(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let s=mr(e,t),a=s.offset+Number(s.value);if(a>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(Sh(e.subarray(s.offset,a))),t=a;continue}t=zm(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var qm=-5,ft=-4,Ah=new Set(["image","video","voice","file","sticker"]);function Rh(e){let n=[];return e.text!==void 0&&n.push("text"),e.system!==void 0&&n.push("system"),e.image!==void 0&&n.push("image"),e.video!==void 0&&n.push("video"),e.voice!==void 0&&n.push("voice"),e.file!==void 0&&n.push("file"),e.sticker!==void 0&&n.push("sticker"),e.contact!==void 0&&n.push("contact"),e.miniProgram!==void 0&&n.push("miniProgram"),e.game!==void 0&&n.push("game"),e.transfer!==void 0&&n.push("transfer"),e.gift!==void 0&&n.push("gift"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.filesAlbum!==void 0&&n.push("filesAlbum"),e.mediaAlbum!==void 0&&n.push("mediaAlbum"),e.robot!==void 0&&n.push("robot"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function _t(e){let n=uc(ia(zd(e)));if(n.body.video!==void 0){let i=pi(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}n.body.game!==void 0&&!Tr(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Xl(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=Rh(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Nt(n),n.contentType!=="text"||n.extensions?.unsupportedContentType===void 0)return n;let{unsupportedContentType:r,...o}=n.extensions;return {...n,contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}},...Object.keys(o).length===0?{extensions:void 0}:{extensions:o}}}function Ac(e){if(e.status==="uploading"){let n=Ah.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:qm,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===ft){let n=e.contentType==="video"||e.contentType==="file"?e.contentType:void 0,t=n===void 0?e.failure.displayCode:"media.uploadInterrupted";return e.failure.retryable===false&&e.failure.displayCode===t&&(n===void 0||e.failure.mediaKind===n)?e:{...e,failure:{...e.failure,...t===void 0?{}:{displayCode:t},...n===void 0?{}:{mediaKind:n},retryable:false}}}return e}function Mh(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function pa(e,n){return {...e,status:n.status,...n.receiveTime===void 0?{}:{receiveTime:n.receiveTime},...n.returnTime===void 0?{}:{returnTime:n.returnTime},...n.isRead===void 0?{}:{isRead:n.isRead}}}function jm(e){let n=e.body.transfer,r=(n?.status===1?n.receiveTime:n?.status===2||n?.status===3?n.returnTime:void 0)??e.serverTime??e.createdAt;return !Number.isFinite(r)||r<=0?0:r<1e12?r*1e3:r}function ef(e,n){let t=e.body.transfer,r=n.body.transfer;if(t===void 0)return n;if(r===void 0)return e;if(t.status===0&&r.status!==0)return n;if(r.status===0&&t.status!==0)return e;let o=jm(e),i=jm(n);return o!==i?i>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function $m(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function nf(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function Rc(e,n){let t=new Map,r=new Set(n.map(s=>s.id)),o=new Map(n.map(s=>[s.id,s]));for(let s of n){let a=$m(s);a!==null&&t.set(a,[...t.get(a)??[],s]);}if(t.size===0)return [...n];for(let s of e){let a=$m(s);a===null||!t.has(a)||r.has(s.id)||t.get(a)?.push(s);}let i=[];for(let s of t.values()){let c=s.reduce(ef).body.transfer;if(c!==void 0)for(let u of s){let p=u.body.transfer;if(p===void 0||nf(p,c))continue;let y={...u,body:{transfer:pa(p,c)}};r.has(u.id)?o.set(u.id,y):i.push(y);}}return [...n.map(s=>o.get(s.id)??s),...i]}function ya(e,n,t,r){let o=[];for(let i of e){if(!Mh(i,n))continue;let s=i.body.transfer;if(s===void 0)continue;let a={...s,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??s.returnTime}:{}},c={...i,body:{transfer:a}};ef(i,c)!==c||nf(s,a)||o.push({...i,body:{transfer:a}});}return o}function Mc(e,n){return e.readBySelf===true?false:e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function tf(e,n,t=e.encrypt){return ut.encode(ut.create({sRadioId:e.sRadioId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgTime:e.msgTime,encrypt:t,sContent:n,...e.nNotifyCount===void 0?{}:{nNotifyCount:e.nNotifyCount},...e.sNotifyUsers===void 0?{}:{sNotifyUsers:e.sNotifyUsers},...e.extend===void 0||e.extend===""?{}:{extend:e.extend},...e.parentMsgId===void 0||e.parentMsgId===""?{}:{parentMsgId:e.parentMsgId}}))}function Th(e,n,t){return ae({command:12289,body:tf(e,n,t)})}function rf(e){return Te.encode(Te.create(e.bMessage))}function Tc(e,n,t){if(t.length!==16)throw new Error(`channel encrypt=2 key \u5FC5\u987B\u4E3A 16 bytes\uFF0C\u5B9E\u9645 ${t.length}`);let r=n.encryptSymmetric({teaKey:t,plain:rf(e)}),o=He.encode(He.create({cipherData:r}));return tf(e,o,2)}function of(e){return Th(e,rf(e),0)}function sf(e,n,t){return ae({command:12289,body:Tc(e,n,t)})}function vc(e,n){let t=Tt.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return Tt.encode(t)}function af(e,n){return ae({command:4097,body:vc(e,n)})}function df(e,n){let t=vc(e,n);return [ae({command:4097,body:t}),ae({command:4113,body:t})]}function bc(e){return Te.encode(Te.create(e.bMessage))}function Nc(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:bc(e),publicKey:t});return He.encode(He.create({secretKey:r,cipherData:o}))}function cf(e){return af(e,bc(e))}function lf(e){return df(e,bc(e))}function uf(e,n,t){return af(e,Nc(e,n,t))}function gf(e,n,t){return df(e,Nc(e,n,t))}function mf(e,n,t){return vc(e,Nc(e,n,t))}function ff(e,n,t){let r=ot.create({sGrpId:e.sGrpId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.nNotifyCount!==void 0?{nNotifyCount:e.nNotifyCount}:{},...e.sNotifyUsers!==void 0?{sNotifyUsers:e.sNotifyUsers}:{},...e.extend!==void 0&&e.extend!==""?{extend:e.extend}:{},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{},...t!==void 0&&t!==""?{encryptVersion:t}:{}});return ot.encode(r)}function pf(e,n,t){return ae({command:8193,body:ff(e,n,t)})}function yf(e){return Te.encode(Te.create(e.bMessage))}function If(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:yf(e),publicKey:t});return He.encode(He.create({secretKey:r,cipherData:o}))}function Cf(e){return pf(e,yf(e))}function Sf(e,n,t,r){return pf(e,If(e,n,t),r)}function hf(e,n,t,r){return ff(e,If(e,n,t),r)}function Af(e){let n=Li.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:ke(e.messageId),content:e.content});return ae({command:4644,body:Li.encode(n)})}function Rf(e){let n=Qi.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:ke(e.messageId),content:e.content});return ae({command:8976,body:Qi.encode(n)})}function Mf(e){let n=hs.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:ke(e.messageId),content:e.content,IncrId:e.incrementId});return ae({command:12808,body:hs.encode(n)})}function Ef(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u7F16\u8F91\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Tf(){return {conversationType:"direct",async prepare(e,n,t){if(t.crypto===void 0||t.resolvePublicKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolvePublicKey(n.conversationId);if(r===null||r==="")return {ok:false,reason:"no-key"};let o=Oo({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=mf(o,t.crypto,r);return {ok:true,frame:Af({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function vf(){return {conversationType:"group",async prepare(e,n,t){if(t.crypto===void 0||t.resolveGroupKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolveGroupKey(n.conversationId);if(r===null||r.publicKey==="")return {ok:false,reason:"no-key"};let o=No({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=hf(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:Rf({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function vh(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let s=t.serverTime??t.createdAt,a=br({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:s}),c=Tc(a,r.crypto,i),u=t.extensions?.channelSequence,p=typeof u=="string"&&/^\d+$/.test(u)?BigInt(u):0n;return {ok:true,frame:Mf({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:c,incrementId:p})}}}}function _c(){return Ef([Tf(),vf()])}var bf=120*1e3,bh=15e3;function Dc(e){let n=e.now??(()=>Date.now()),t=e.strategies??_c(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {edit(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==s.conversationId||i.conversationType!==s.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let a=e.getSelfId();if(s.senderId!==a)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(s.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let c=t.resolve(i.conversationType);if(c===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(s.serverTime??s.createdAt)>bf)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let u=ke(i.messageId),p=r.get(u);if(p!==void 0)return p.promise;let y,x=new Promise(I=>{y=I;}),v={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:y,timer:setTimeout(()=>{},0),promise:x};return clearTimeout(v.timer),r.set(u,v),(async()=>{let I;try{I=await c.prepare(i,s,{selfId:a,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{if(r.get(u)!==v)return;o(u,{ok:false,reason:"encrypt-failed"});return}if(r.get(u)===v){if(!I.ok){o(u,I);return}v.timer=setTimeout(()=>o(u,{ok:false,reason:"timeout"}),bh),e.sendFrame(I.frame);}})(),x},onEditAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a!==void 0){if(s===32768||s===0){e.domainState.editMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{text:a.text},a.mention),o(i,{ok:true});return}o(i,a.conversationType==="channel"?{ok:false,reason:"failed",errcode:s}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function fr(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function Zn(e){if(e!==void 0)return new Uint8Array(e)}function Nh(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Zt(e){let{id:n,createdAt:t}=e.outbox.allocateMessageIdentity(e.target);return e.outbox.enqueueMedia({id:n,conversationId:e.target.conversationId,conversationType:e.target.conversationType,contentType:e.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var _h={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:Nh},Dh={contentType:"image",isContentReady:e=>fr(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=Zn(n.thumbData),r=Zn(n.teaKey);return {image:{url:n.url,width:n.width,height:n.height,...n.md5!==void 0?{md5:n.md5}:{},...n.imageType!==void 0?{imageType:n.imageType}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Zt},Gh={contentType:"video",isContentReady:e=>fr(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=Zn(n.thumbData),r=Zn(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration,durationUnit:"seconds"}:{},...n.hd===true?{hd:true}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.sizeUnit!==void 0?{sizeUnit:n.sizeUnit}:{},...n.unverifiedFileLength!==void 0?{unverifiedFileLength:n.unverifiedFileLength}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Zt},Uh={contentType:"file",isContentReady:e=>fr(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=Zn(n.teaKey);return {file:{url:n.url,fileName:n.fileName,...n.size!==void 0?{size:n.size}:{},...n.extension!==void 0?{extension:n.extension}:{},...n.fileType!==void 0?{fileType:n.fileType}:{},...n.mimeType!==void 0?{mimeType:n.mimeType}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{teaKey:t}:{}}}},enqueue:Zt},kh={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>fr(t.url))},cloneBody:e=>{let n=e.body.mediaAlbum;return n===void 0?{}:{mediaAlbum:{...n.caption!==void 0?{caption:n.caption}:{},items:n.items.map(t=>{let r=Zn(t.thumbData),o=Zn(t.teaKey);return {kind:t.kind,url:t.url,width:t.width,height:t.height,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.thumbUrl!==void 0?{thumbUrl:t.thumbUrl}:{},...t.md5!==void 0?{md5:t.md5}:{},...t.size!==void 0?{size:t.size}:{},...t.fileEncryptType!==void 0?{fileEncryptType:t.fileEncryptType}:{},...t.hd!==void 0?{hd:t.hd}:{},...r!==void 0?{thumbData:r}:{},...o!==void 0?{teaKey:o}:{}}})}}},enqueue:Zt};function xh(e){let n=Zn(e.thumbData),t=Zn(e.teaKey);return {image:{url:e.url,width:e.width,height:e.height,...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function wh(e){let n=Zn(e.thumbData),t=Zn(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3,durationUnit:"seconds"}:{},...e.hd===true?{hd:true}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size,sizeUnit:"bytes"}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function Nf(e,n){let t=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||t===void 0)return {ok:false,reason:"not-media-album"};let r=Number.isInteger(n)&&n>=0?t.items[n]:void 0;return r===void 0?{ok:false,reason:"item-not-found"}:fr(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?wh(r):xh(r)}:{ok:false,reason:"item-not-ready"}}var Bh={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?fr(n.url):si(n.url)&&Bt(n.width)&&n.width>0&&Bt(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=Zn(n.thumbData);return {sticker:{url:n.url,width:n.width,height:n.height,exprType:n.exprType,imageType:n.imageType,...n.size!==void 0?{size:n.size}:{},...n.describe!==void 0?{describe:n.describe}:{},...n.contentId!==void 0?{contentId:n.contentId}:{},...n.packageName!==void 0?{packageName:n.packageName}:{},...t!==void 0?{thumbData:t}:{}}}},enqueue:e=>Zt({...e,encryption:{encrypted:false}})},Fh={contentType:"game",isContentReady:e=>e.body.game!==void 0&&Tr(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Zt},Ph={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&$t(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Zt},Vh=[_h,Dh,Gh,Uh,kh,Bh,Fh,Ph],Oh=new Map(Vh.map(e=>[e.contentType,e]));function Ko(e){return Oh.get(e)}function Kh(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function Ia(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:Ko(e.contentType)!==void 0}function _f(e){let n=Ko(e.contentType);return n===void 0?false:n.isContentReady(e)}function Gc(e){return Ia(e)&&_f(e)}var Df=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","gift","call","redPacket","mediaAlbum"]);function Uc(e){return Df.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function Ca(e,n){let t=e==="admin"||e==="owner",r=e==="owner";return {sendMessages:(e==="member"||t)&&n==="active",mentionAll:t,editProfile:t,manageMembers:t,manageAdmins:r,moderateMessages:t,manageMute:t,dismissChannel:r,transferOwnership:r}}function Lh(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),i=Number(t[3]),s=Number(t[4]);if(r>23||i>23||o>59||s>59)return false;let a=new Date(n),c=a.getHours()*60+a.getMinutes(),u=r*60+o,p=i*60+s;return u<=p&&u<=c&&c<=p}function kc(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??Ca("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:Ca(t.role,n)};let r=t.baseState,o,i=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!i&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||Lh(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:Ca(t.role,r),...o===void 0?{}:{muteReason:o}}}function Gf(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function xc(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):Gf(t)-Gf(n))}var Zh=new Set(["direct","group","channel","supergroup","robot"]);function Ke(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function wn(e){return {conversationType:e.type,conversationId:e.id}}function Dt(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function fe(e){if(!Zh.has(e.conversationType)||e.conversationId.length===0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u8EAB\u4EFD\uFF08type=${e.conversationType}, id=${e.conversationId}\uFF09`);return `v1:${e.conversationType}:${encodeURIComponent(e.conversationId)}`}function pt(e){let n=/^v1:(direct|group|channel|supergroup|robot):(.+)$/.exec(e);if(n===null)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);let[,t,r]=n;if(t===void 0||r===void 0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);try{let o=decodeURIComponent(r);if(o.length===0||encodeURIComponent(o)!==r)throw new Error("\u4F1A\u8BDD id \u4E0D\u662F canonical \u7F16\u7801");return {conversationType:t,conversationId:o}}catch(o){throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`,{cause:o})}}function Lo(e){let n=e.extensions?.channelSequence;return {sortKey:e.sortKey,...typeof n=="string"&&/^\d+$/.test(n)?{sequence:BigInt(n)}:{}}}function Zo(e,n){return e.sequence!==void 0&&n.sequence!==void 0?e.sequence<n.sequence?-1:e.sequence>n.sequence?1:0:e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}function wc(e){return `im:channel-sync-checkpoint:${fe(e)}`}function Bc(e,n){if(typeof e!="object"||e===null)return;let t=e;if(!(t.version!==1||t.conversation?.conversationType!=="channel"||t.conversation.conversationId!==n.conversationId||typeof t.startIndex!="string"||t.startIndex.trim()===""||typeof t.baseIndex!="string"||t.baseIndex.trim()===""))return {version:1,conversation:{...n},baseIndex:t.baseIndex,startIndex:t.startIndex}}function Uf(){let e=new Map;return {get:n=>e.get(fe(n))??null,getAll:()=>[...e.values()],set:n=>e.set(fe(n.ref),n),delete:n=>e.delete(fe(n)),clear:()=>e.clear()}}function kf(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return fe(i);let s=[...t.keys()].filter(a=>pt(a).conversationId===i);if(s.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return s[0]}function o(i){let s=fe(Ke(i)),a=t.get(s);a===void 0&&(a=new Set,t.set(s,a)),a.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let s=r(i),a=s===void 0?void 0:t.get(s);if(a===void 0)return [];let c=[];for(let u of a){let p=n.get(u);p!==void 0&&c.push(p);}return c.sort(dn)},has:i=>n.has(i),get size(){return n.size},upsert(i,s){let a=n.get(i.id);if(a===void 0){let p={...i,sortKey:rt(i)};return n.set(i.id,p),o(p),{message:p,isNew:true,changed:true}}let c=dr(a,i,e?.getSelfId?.()??""),u=s?.authoritativeFailure===true&&i.status==="failed"?{...c,status:"failed",failure:i.failure}:c;return n.set(u.id,u),o(u),{message:u,isNew:false,changed:!Lt(a,u)}},delete(i,s){let a=n.get(s);if(a===void 0||a.conversationType!==i.conversationType||a.conversationId!==i.conversationId)return false;n.delete(s);let c=fe(i),u=t.get(c);return u?.delete(s),u?.size===0&&t.delete(c),true},deleteByConversation(i){let s=r(i);if(s===void 0)return;let a=t.get(s);if(a!==void 0){for(let c of a)n.delete(c);t.delete(s);}},clear(){n.clear(),t.clear();}}}var Qo=class extends Error{constructor(n){super(n instanceof Error?n.message:"\u672C\u5730\u6D88\u606F\u7A97\u53E3\u8BFB\u53D6\u5931\u8D25",{cause:n}),this.name="LocalMessageWindowReadError";}};function Gt(e){let n=_t(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=ar(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function Wo(...e){let n=new Set,t=[];for(let r of e)for(let o of r)n.has(o.id)||(n.add(o.id),t.push(o));return t}function xf(e){let n=e.retention?.maxMessages;if(n!==void 0&&(!Number.isSafeInteger(n)||n<=0))throw new Error("\u6D88\u606F\u7A97\u53E3 maxMessages \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u5B89\u5168\u6574\u6570");let t=0,r=new AbortController;function o(){return r.abort(),r=new AbortController,++t}let i=null,s=null,a=[],c,u,p=false,y=false;async function x(z,$){if(e.storage===void 0)return [];try{let ee=await e.storage.getMessages(z,$);return e.normalizeStoredUpload===void 0?ee:ee.map(e.normalizeStoredUpload)}catch(ee){throw new Qo(ee)}}let v=false,I,k=false,G=true,M,T=false,b=null;function N(){c=a[0],u=a.at(-1);}function L(){let z=a[0],$=a.at(-1);(!p||c===void 0||z!==void 0&&z.sortKey>=c.sortKey)&&(c=z),(!y||u===void 0||$!==void 0&&$.sortKey<=u.sortKey)&&(u=$);}function Y(z){let $=a.filter(ee=>(c===void 0||ee.sortKey>=c.sortKey)&&(u===void 0||ee.sortKey<=u.sortKey));if($.length===0){let ee=z==="start"?a.at(-1):a[0];c=ee,u=ee;return}z==="start"?c=$[0]:u=$.at(-1);}function me(z){if(!(n===void 0||a.length<=n)){if(z==="start"){a=a.slice(-n),p=true,Y(z),I=void 0,T&&(v=false);return}a=a.slice(0,n),y=true,Y(z),G=false,M=void 0;}}function w(z){if(n===void 0||a.length<=n)return;let $=a.findIndex(Ge=>Ge.sortKey===z);if($<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let ee=a.length-n,Ne=$-Math.floor((n-1)/2),he=Math.min(ee,Math.max(0,Ne)),ve=he+n,Ie=ve<a.length;he>0&&(p=true,I=void 0,T&&(v=false)),Ie&&(y=true,G=false,M=void 0),a=a.slice(he,ve),he>0&&Y("start"),Ie&&Y("end");}function X(z,$,ee){return z.conversationId===$&&(ee===null||z.conversationType===ee)}function ne(z,$,ee){let Ne=z.filter(he=>X(he,$,ee));if(ee===null&&new Set(Ne.map(he=>he.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${$}`);return Ne}function te(z,$){return $===null?z:{conversationType:$,conversationId:z}}function se(z,$=true){if(i!==null){for(let ee of z){if(!X(ee,i,s))continue;if(b!==null){b.push(ee);continue}let Ne=a.findIndex(ve=>ve.id===ee.id);if(Ne>=0){let ve=a[Ne].sortKey!==ee.sortKey;a[Ne]=ee,ve&&(a.sort(dn),L()),c?.id===ee.id&&c.sortKey===ee.sortKey&&(c=ee),u?.id===ee.id&&u.sortKey===ee.sortKey&&(u=ee);continue}let he=u;he===void 0||ee.sortKey>he.sortKey?y||(a.push(ee),a.sort(dn),L()):c!==void 0&&ee.sortKey>=c.sortKey&&(a.push(ee),a.sort(dn));}$&&me(y?"end":"start");}}return {async open(z,{limit:$}){let ee=typeof z=="string"?z:z.conversationId,Ne=typeof z=="string"?null:z.conversationType,he=o();i=ee,s=Ne,a=[],N(),p=false,y=false,v=false,I=void 0,k=false,G=true,M=void 0,T=false,b=[];try{let ve=e.storage===void 0?[]:await x(te(ee,Ne),{limit:$}),Ge=ne(ve,ee,Ne).map(Gt).filter(K=>e.shouldIncludeMessage?.(K)??!0);if(he!==t)return {conversationId:ee,messages:Ge,stale:!0};let Z=b??[];return a=[...Ge].sort(dn),N(),p=Ge.length===$||e.loadOlderFromRemote!==void 0,k=e.loadOlderFromRemote!==void 0&&(Ge.length<$||Ne!==null&&e.shouldEstablishRemoteLatest?.({conversationType:Ne,conversationId:ee},Ge)===!0),y=!1,G=!0,M=void 0,b=null,se(Z,!1),me("start"),{conversationId:ee,messages:a,stale:!1}}finally{he===t&&(b=null);}},async openAt(z,{anchorSortKey:$,limit:ee,seedMessages:Ne,seedHasNewer:he,seedRemotePagination:ve}){let Ie=typeof z=="string"?z:z.conversationId,Ge=typeof z=="string"?null:z.conversationType,Z=i===Ie&&s===Ge&&b===null,K=o();i=Ie,s=Ge;let f=()=>{c=void 0,u=void 0,p=false,y=false,v=false,I=void 0,k=false,G=true,M=void 0,T=false;};Z||(a=[],f()),b=[];try{if(Ne!==void 0&&Ne.length>0){if(Ne.some(Se=>!X(Se,Ie,Ge)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${Ie}\uFF09`);let P=Wo(Ne).map(Gt).filter(Se=>e.shouldIncludeMessage?.(Se)??!0).sort(dn);if(!P.some(Se=>Se.sortKey===$))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${Ie}\uFF09`);let Q=b??[];return f(),a=P,N(),p=e.loadOlderFromRemote!==void 0,y=he??P.length===ee,G=!y,M=ve?.newerCursor,T=ve!==void 0,b=null,se(Q,!1),w($),{conversationId:Ie,messages:a,stale:K!==t}}if(e.storage===void 0)return a=[],f(),{conversationId:Ie,messages:[],stale:K!==t};let[A,R]=await Promise.all([x(te(Ie,Ge),{beforeSortKey:$,limit:ee}),x(te(Ie,Ge),{afterSortKey:$,limit:ee})]),C=ne(A,Ie,Ge).map(Gt).filter(P=>e.shouldIncludeMessage?.(P)??!0),B=ne(R,Ie,Ge).map(Gt).filter(P=>e.shouldIncludeMessage?.(P)??!0);if(K!==t)return {conversationId:Ie,messages:Wo(C,B).map(Gt),stale:!0};let F=b??[];return f(),a=Wo(C,B).sort(dn),N(),p=C.length===ee||e.loadOlderFromRemote!==void 0,y=B.length===ee,G=!y,M=void 0,b=null,se(F,!1),w($),{conversationId:Ie,messages:a,stale:!1}}finally{if(K===t){let A=b;b=null,Z&&A!==null&&se(A);}}},async loadOlder({limit:z}){let $=i,ee=s;if($===null||!p)return {conversationId:$??"",messages:[],stale:false};let Ne=t,he=e.storage===void 0||I!==void 0||T||k?[]:await x(te($,ee),{beforeSortKey:c?.sortKey,limit:z}),ve=ne(he,$,ee).map(Gt).filter(B=>e.shouldIncludeMessage?.(B)??true);if(Ne!==t||i!==$||s!==ee)return {conversationId:$,messages:ve,stale:true};let Ie=ve.length===z,Ge=[...ve],Z=false;if(ve.length>0&&(I=void 0),!Ie&&e.loadOlderFromRemote!==void 0&&!v){if(ee===null)throw new Error("\u8FDC\u7AEF\u5386\u53F2\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let B=await e.loadOlderFromRemote({conversation:{conversationType:ee,conversationId:$},signal:r.signal,oldestLoaded:ve[0]??c,...I===void 0?{}:{cursor:I},intent:k?"establish-latest":"older",limit:z});if(Ne!==t||i!==$||s!==ee)return {conversationId:$,messages:[],stale:true};k=false,v=B.exhausted,I=B.nextCursor;let F=ne(B.messages,$,ee),P=F.map(Gt).filter(Q=>e.shouldIncludeMessage?.(Q)??true);if(B.replaceWindow){if(!B.exhausted&&(B.nextCursor===void 0||B.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${ee}, conversationId=${$}\uFF09`);let Q=new Set(a.map(H=>H.id)),Se=Wo(P).sort(dn),m=Se.at(-1)?.sortKey,S=m===void 0?a:a.filter(H=>H.sortKey>m);a=Wo(Se,S).sort(dn),N(),p=!v;let D=Se.filter(H=>!Q.has(H.id));return me("start"),{conversationId:$,messages:D,stale:false}}Z=F.length>0&&P.length===0,Z&&(v=true,I=void 0),Ge.push(...P);}let K=new Set(a.map(B=>B.id)),f=new Set,A=Ge.filter(B=>K.has(B.id)||f.has(B.id)?false:(f.add(B.id),true)).sort(dn);A.length>0&&(a=[...A,...a].sort(dn));let R=[...Ge].sort(dn),C=R[0];return C!==void 0&&(c===void 0||C.sortKey<c.sortKey)&&(c=C),u??=R.at(-1),p=Ie||e.loadOlderFromRemote!==void 0&&!v&&!Z,p||(c=a[0]),me("end"),{conversationId:$,messages:A,stale:false}},async loadNewer({limit:z}){let $=i,ee=s;if($===null||!y)return {conversationId:$??"",messages:[],stale:false};let Ne=t,he=u,ve=he?.sortKey,Ie=e.storage===void 0||ve===void 0||T?[]:await x(te($,ee),{afterSortKey:ve,limit:z+1}),Ge=ne(Ie,$,ee).map(Gt).filter(P=>e.shouldIncludeMessage?.(P)??true);if(Ne!==t||i!==$||s!==ee)return {conversationId:$,messages:[],stale:true};let Z=Ge.filter(P=>ve===void 0||P.sortKey>ve).slice(0,z),K=Z.length===z,f=[...Z];if(Z.length>0&&(M=void 0),!K&&e.loadNewerFromRemote!==void 0&&!G){if(ee===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let P=await e.loadNewerFromRemote({conversation:{conversationType:ee,conversationId:$},signal:r.signal,newestLoaded:Z.at(-1)??he,...M===void 0?{}:{cursor:M},limit:z});if(Ne!==t||i!==$||s!==ee)return {conversationId:$,messages:[],stale:true};G=P.exhausted,M=P.nextCursor,f.push(...ne(P.messages,$,ee).filter(Q=>e.shouldIncludeMessage?.(Q)??true));}let A=new Set(a.map(P=>P.id)),R=new Set,C=f.filter(P=>ve!==void 0&&P.sortKey<=ve||A.has(P.id)||R.has(P.id)?false:(R.add(P.id),true)).sort(dn);C.length>0&&(a=[...a,...C].sort(dn));let B=[...f].sort(dn),F=B.at(-1);return F!==void 0&&(u===void 0||F.sortKey>u.sortKey)&&(u=F),c??=B[0],y=K||e.loadNewerFromRemote!==void 0&&!G,y||(u=a.at(-1)),me("start"),{conversationId:$,messages:C,stale:false}},applyIncoming:se,removeMessage(z,$){if(i!==z.conversationId||s!==z.conversationType)return false;let ee=a.findIndex(Ne=>Ne.id===$);return ee<0?false:(o(),a.splice(ee,1),L(),I=void 0,M=void 0,b=null,true)},clearConversation(z){return i!==z.conversationId||s!==z.conversationType?false:(o(),a=[],N(),p=false,y=false,v=false,I=void 0,k=false,G=true,M=void 0,T=false,b=null,true)},list(){return [...a]},info(){return {conversationId:i,...i===null||s===null?{}:{conversation:{conversationType:s,conversationId:i}},hasMore:p,hasNewer:y}},getPaginationKey(){return JSON.stringify([c?.sortKey,u?.sortKey,I,M,p,y])},getRevision(){return t},reset(){o(),i=null,s=null,a=[],N(),p=false,y=false,v=false,I=void 0,k=false,G=true,M=void 0,T=false,b=null;}}}function Fc(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((s,a)=>s===n[a]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((s,a)=>Fc(s,n[a]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(s=>Object.prototype.hasOwnProperty.call(r,s)&&Fc(t[s],r[s]))}function wf(){let e=new Map;function n(t){if(typeof t!="string")return fe(t);let r=[...e.keys()].filter(o=>pt(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set(t){let r=fe(Dt(t)),o=e.get(r);return o!==void 0&&Fc(o,t)?false:(e.set(r,t),true)},clear(t){let r=n(t);return r===void 0?false:e.delete(r)},isPinnedMessage(t,r){let o=n(t);return o!==void 0&&e.get(o)?.messageId===r},clearAll(){e.clear();}}}function Bf(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:fe(r)}function t(r){if(typeof r!="string"){let i=fe(r);if(e.has(i))return i;let s=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(s)?s:i}let o=[...e.entries()].filter(([i,s])=>s.conversationId===r||!i.startsWith("legacy:")&&pt(i).conversationId===r).map(([i])=>i);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([s,a])=>!s.startsWith("legacy:")&&a.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let i=o[0];if(i!==void 0){let[s,a]=i;e.set(s,{...r,conversationType:a.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Pc(){let e=new Map;function n(t){if(typeof t!="string")return fe(t);let r=[...e.keys()].filter(o=>pt(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set:t=>{e.set(fe(wn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function Ff(e){return e==="direct"||e==="robot"?"local":"server"}function Pf(e,n){let t=n?.includeMuted??false,r=0;for(let o of e)!t&&o.muted||(r+=o.unreadCount>0?o.unreadCount:o.manuallyUnread===true?1:0);return r}var Qh=50,Vc="im:deleted-conversations",Oc="im:terminated-conversations",Kc="im:membership-reset-sort-keys",Lc="im:pending-message-reactions",Zc="im:transfer-status-records",Wh=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function Vf(e,n){return e===n?true:e===void 0||n===void 0?false:Wh.every(t=>e[t]===n[t])}function Of(e,n){return e===n?true:e!==void 0&&n!==void 0&&e.role===n.role&&e.baseState===n.baseState&&e.resolvedState===n.resolvedState&&e.allMembersMuted===n.allMembersMuted&&e.currentUserMuted===n.currentUserMuted&&e.mutePeriod===n.mutePeriod}function Ho(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&Cc(e.lastMessageSummary,n.lastMessageSummary)&&e.timestamp===n.timestamp&&e.unreadCount===n.unreadCount&&(e.manuallyUnread??false)===(n.manuallyUnread??false)&&(e.mentionUnreadCount??0)===(n.mentionUnreadCount??0)&&e.pinned===n.pinned&&e.muted===n.muted&&e.topTime===n.topTime&&e.lastMessageSendState===n.lastMessageSendState&&e.lastMessageReceipt===n.lastMessageReceipt&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&Vf(e.channelPermissions,n.channelPermissions)&&Of(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function Hh(e){let n=kf({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Pc(),i=Pc(),s=Bf(),a=Uf(),c=wf(),u=new Map,p=new Map,y=0;function x(d){p.set(d,++y);}let v=1,I=new Set,k=new Set,G=new Map,{storage:M}=e,T=Promise.resolve(),b=new Map,N=new Map,L=new Map,Y=0,me=e.unreadMode??Ff,w=new Set;function X(d={}){let l=xf({storage:M,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:de,normalizeStoredUpload:ti,...d});return w.add(l),l}let ne=X();function te(d={}){let l=X(d),g=false;return {window:l,dispose(){g||(g=true,l.reset(),w.delete(l));}}}function se(d){for(let l of w){let g=l.list().find(h=>h.id===d);if(g!==void 0)return g}}function z(d,l){let g=n.get(l);if(g?.conversationId===d.conversationId&&g.conversationType===d.conversationType)return g;for(let h of w){let _=h.list().find(U=>U.id===l&&U.conversationId===d.conversationId&&U.conversationType===d.conversationType);if(_!==void 0)return _}}function $(d,l){let g=z(Ke(d),d.id);g!==void 0&&!n.has(d.id)&&n.upsert(g);let h=n.upsert(d,l);return {...h,previous:g,changed:g===void 0?h.changed:!Lt(g,h.message)}}function ee(d){let l=new Map(n.getByConversation(d).map(g=>[g.id,g]));for(let g of w)if(Ne(g,d))for(let h of g.list())h.conversationType===d.conversationType&&h.conversationId===d.conversationId&&!l.has(h.id)&&l.set(h.id,h);return [...l.values()].sort((g,h)=>g.sortKey.localeCompare(h.sortKey))}function Ne(d,l){let g=d.info();return g.conversation===void 0?g.conversationId===l.conversationId:fe(g.conversation)===fe(l)}let he=false;function ve(d){return `${fe(d.conversation)}\0${d.parentMessageId}`}function Ie(){if(M===void 0||he)return;let d=[...t.values()].flat();J(()=>M.setMeta(Lc,d)).catch(l=>q("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function Ge(){if(M===void 0)return;let d=[...r.values()],l=T.then(()=>M.setMeta(Zc,d));An(l),T=l.catch(()=>{});try{await l;}catch(g){throw q("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",g),g}}function Z(d,l){if(d===void 0||d.status===0&&l.status!==0)return l;if(l.status===0&&d.status!==0)return d;let g=d.occurredTime??0,h=l.occurredTime??0;return g!==h?h>g?l:d:l.status>d.status?l:d}function K(d){let l=d.body.transfer;if(d.contentType!=="transfer"||l===void 0)return d;let g=r.get(l.serialNumber);if(g===void 0||l.status!==0&&g.status===0)return d;let h={...l,status:g.status,...g.status===1&&g.occurredTime!==void 0?{receiveTime:g.occurredTime}:{},...g.status===2||g.status===3?{returnTime:g.occurredTime??l.returnTime}:{}};return l.status===h.status&&l.receiveTime===h.receiveTime&&l.returnTime===h.returnTime&&l.isRead===h.isRead?d:{...d,body:{transfer:pa(l,h)}}}function f(d,l){let g=`${fe(d)}\0${l}`;return t.delete(g)?(Ie(),true):false}function A(d){let l=`${fe(d)}\0`,g=false;for(let h of t.keys())h.startsWith(l)&&(t.delete(h),g=true);return g&&Ie(),g}function R(d,l){let g=z(d.conversation,d.parentMessageId);if(g===void 0){let _=ve(d),U=t.get(_)??[];return U.some(j=>j.id===d.id)?"duplicate":(t.set(_,[...U,d]),Ie(),"pending")}if(hn(g),g.recalled!==void 0||g.deletedForEveryone!==void 0)return "duplicate";let h=$d(g.reactions,d,e.getSelfId?.()??"");return h===g.reactions?"duplicate":(Xn([{...g,reactions:h}],l),"applied")}function C(d,l,g){let h=z(d,l);if(h===void 0){let j=`${fe(d)}\0${l}`,ie=t.get(j);if(ie===void 0)return false;let ge=ie.filter(ye=>ye.id!==g);return ge.length===ie.length?false:(ge.length===0?t.delete(j):t.set(j,ge),Ie(),true)}let _=ec(h.reactions,g,e.getSelfId?.()??"");if(_===h.reactions)return false;let U={...h};return _===void 0?delete U.reactions:U.reactions=_,Xn([U],"live"),true}function B(d,l){let g=Ke(d),h=`${fe(g)}\0${d.id}`,_=t.get(h);if(_!==void 0){t.delete(h),Ie();for(let U of _)R(U,l);}}function F(d){for(let l of [...t.values()]){let g=l[0];if(g===void 0)continue;let h=z(g.conversation,g.parentMessageId);h!==void 0&&(h.recalled!==void 0||h.deletedForEveryone!==void 0?f(g.conversation,g.parentMessageId):B(h,d));}}let P=0,Q=new Map,Se=new Map;function m(d){return fe(d)}function S(d){return D(d)||I.has(m(d))||I.has(d.conversationId)}function D(d){return k.has(m(d))||k.has(d.conversationId)}function H(d){let l=I.delete(m(d)),g=I.delete(d.conversationId);return l||g}function W(d){let l=H(d),g=k.delete(m(d)),h=k.delete(d.conversationId);return {deleted:l,terminal:g||h}}function De(d,l){if(l===""||d.contentType!=="system")return false;let g=d.body.system;return g?.targetUserIds?.includes(l)!==true?false:d.conversationType==="group"?g.eventType==="group_member_joined"||g.eventType==="group_member_invited":d.conversationType==="channel"&&(g.eventType==="channel_member_joined"||g.eventType==="channel_member_invited"||g.eventType==="channel_created")}function de(d){let l=Ke(d);if(D(l)||S(l)&&i.get(l)===void 0)return false;if(l.conversationType!=="group")return true;let g=G.get(fe(l));return g===void 0||d.sortKey>=g}function E(d){let l=new Map;if(G.size===0)return l;for(let g of gt(d,e.getSelfId?.()??"")){if(g.conversationType!=="group")continue;let h=Ke(g),_=fe(h),U=G.get(_);if(U===void 0)continue;let j=z(h,g.id);if(j===void 0||j.sortKey!==U)continue;let ie=dr(j,g,e.getSelfId?.()??"");ie.sortKey!==U&&(G.set(_,ie.sortKey),l.set(_,ie.id));}return l.size>0&&xe(),l}function O(d){let l=fe(d),g=(Q.get(l)??0)+1;return Q.set(l,g),g}function q(d,l){e.emitter.emit({type:"error",error:{scope:"storage",message:d,cause:l}});}function oe(d){e.emitter.emit({type:"session:updated",session:d,conversation:wn(d)});}let Ce=new Set,Qe=Promise.resolve(),Je=0,ue=Promise.resolve(),sn=0,nn=new Map,be;function hn(d){let l=fe(Ke(d));be?.keys.has(l)&&be.messages.set(`${l}\0${d.id}`,d);}function Qn(d){let l=fe(d);nn.set(l,(nn.get(l)??0)+1);}function An(d){return be?.writes.push(d),be!==void 0&&d.catch(()=>{}),d}async function ln(d){let g=(await Promise.allSettled(d)).find(h=>h.status==="rejected");if(g!==void 0)throw g.reason}function Wn(d){let l=ue.then(d);return ue=l.then(()=>{},()=>{}),l}async function Xe(){for(;;){let d=ue,l=Qe;if(await Promise.all([d,l,...Ce]),d===ue&&l===Qe&&Ce.size===0)return}}function Ct(d,l){let g=sn,h=d.map(_=>[fe(_),nn.get(fe(_))??0]);return ()=>g===sn&&l()&&h.every(([_,U])=>(nn.get(_)??0)===U)}function J(d){let l=Je===0?d():Qe.then(d),g=l.then(()=>{},()=>{});return Ce.add(g),g.finally(()=>Ce.delete(g)),An(l)}function Hn(d){Je+=1;let l=Promise.all([...Ce]),g=Qe.then(()=>l).then(d);return Qe=g.then(()=>{},()=>{}),Qe.finally(()=>{Je-=1;}),An(g)}function Ut(d){let l=d.body.system;if(l?.pinnedMessageAction===void 0)return d;let{pinnedMessageAction:g,...h}=l;return {...d,body:{...d.body,system:h}}}function Cn(d){M===void 0||he||d.length===0||J(()=>M.saveMessages(d.map(Ut))).catch(l=>q("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function kt(d,l,g,h){let _=Ct(d,g);return Wn(async()=>{if(!_())return false;if(M===void 0)throw new Error("CHANNEL \u4E25\u683C\u540C\u6B65\u63D0\u4EA4\u9700\u8981 storage");let U={writes:[],messages:new Map,keys:new Set(d.map(fe)),current:_};be=U;let j;try{let ce=l();if(ce instanceof Promise)throw ce.catch(()=>{}),new Error("CHANNEL \u9875 mutation \u5FC5\u987B\u540C\u6B65\u6267\u884C")}catch(ce){j={cause:ce};}finally{be=void 0;}if(await ln(U.writes),j!==void 0)throw j.cause;if(!_())return false;let ie=[...U.messages.values()].flatMap(ce=>{let le=z(Ke(ce),ce.id);return le===void 0?[]:[Ut(le)]}),ge=[];ie.length>0&&ge.push(J(()=>M.saveMessages(ie)));for(let ce of d){let le=o.get(ce),re=s.get(ce),Be=c.get(ce);le!==void 0&&ge.push(J(()=>M.saveSessions([pn(le)]))),re!==void 0&&ge.push(J(()=>M.saveReadState(re))),ge.push(J(()=>Be===void 0?M.removePinnedMessage(ce):M.savePinnedMessage(Be)));}let ye=[[Lc,[...t.values()].flat()],[Zc,[...r.values()]],[Vc,[...I]],[Oc,[...k]],[Kc,[...G.entries()]]];for(let[ce,le]of ye)ge.push(J(()=>M.setMeta(ce,le)));return h!==void 0&&ge.push(J(async()=>{_()&&await h();})),await ln(ge),_()})}function dt(d,l){let g=Bc(d,d.conversation);if(g===void 0)return Promise.reject(new Error("CHANNEL \u540C\u6B65\u4F4D\u7F6E\u65E0\u6548"));let h=Ct([g.conversation],l);return Wn(async()=>{if(!h())return false;if(M===void 0)throw new Error("CHANNEL \u540C\u6B65\u4F4D\u7F6E\u4FDD\u5B58\u9700\u8981 storage");let _=false;return await J(async()=>{h()&&(await M.setMeta(wc(g.conversation),g),_=true);}),_&&h()})}function pn(d){let{lastMessageSendState:l,manuallyUnread:g,...h}=d;return h}function Jn(d){M===void 0||he||J(()=>M.saveSessions([pn(d)])).catch(l=>q("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function _n(){M===void 0||he||J(()=>M.setMeta(Vc,[...I])).catch(d=>q("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function Re(){M===void 0||he||J(()=>M.setMeta(Oc,[...k])).catch(d=>q("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function xe(){M===void 0||he||J(()=>M.setMeta(Kc,[...G.entries()])).catch(d=>q("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",d));}function pe(d){M===void 0||he||J(()=>M.saveReadState(d)).catch(l=>q("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function _e(d){M===void 0||he||J(()=>M.savePinnedMessage(d)).catch(l=>q("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Ze(d){M===void 0||he||J(()=>M.removePinnedMessage(d)).catch(l=>q("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function $e(d){if(fe(d),d.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function en(d){return $e(d),Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId})}function cn(d){return a.get(en(d))}function St(){let d=[];for(let l of o.getAll()){let g=wn(l);d.push({...l,draft:a.get(g)});}return xc(d)}function ht(d,l,g){if($e(d),typeof l.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(l.attachments!==void 0&&l.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(l.mentions!==void 0&&!Array.isArray(l.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let h=(l.mentions??[]).map(U=>{if(typeof U.userId!="string"||U.userId.trim()===""||typeof U.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:U.userId,displayName:U.displayName})}),_=Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId});return Object.freeze({ref:_,text:l.text,mentions:Object.freeze(h),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:g})}function Ht(d,l){return d.text===l.text&&d.replyToMessageId===l.replyToMessageId&&d.mentions.length===l.mentions.length&&d.mentions.every((g,h)=>{let _=l.mentions[h];return _!==void 0&&g.userId===_.userId&&g.displayName===_.displayName})}function xt(d,l){$e(d);let g=fe(d),_=(b.get(g)??Promise.resolve()).catch(()=>{}).then(l),U=_.then(()=>{},()=>{});return b.set(g,U),U.finally(()=>{b.get(g)===U&&b.delete(g);}),_}async function an(d,l){let g=en(d),h=fe(g),_=ht(g,l,0),U=Y,j=L.get(h)??0;return await xt(g,async()=>{let ie=a.get(g),ge=Math.max(Date.now(),(N.get(h)??ie?.updatedAt??0)+1),ye=ht(g,_,ge);if(ie!==null&&Ht(ie,ye))return ie;if(M!==void 0&&await M.saveDraft(ye),U!==Y||j!==(L.get(h)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return a.set(ye),N.set(h,ge),e.emitter.emit({type:"draft:updated",conversation:ye.ref,draft:ye}),ye})}async function Ye(d,l){let g=en(d),h=fe(g);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let _=Y,U=L.get(h)??0;return await xt(g,async()=>{let j=a.get(g);if(j===null||l!==void 0&&j.updatedAt!==l)return false;if(M!==void 0&&await M.deleteDraft(g),_!==Y||U!==(L.get(h)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return a.delete(g),e.emitter.emit({type:"draft:cleared",conversation:g}),true})}async function Dn(d){await Ye(d);}async function Bn(d,l){return await Ye(d,l)}function un(d){let l=en(d),g=fe(l);L.set(g,(L.get(g)??0)+1),a.get(l)!==null&&(a.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),xt(l,async()=>{M!==void 0&&await M.deleteDraft(l);}).catch(h=>q("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",h));}async function Ga(){for(Y+=1;b.size>0;)await Promise.all([...b.values()]);}function Qp(d){let l=z(Dt(d),d.messageId);return l===void 0?d:{...d,preview:{state:"ready",message:l}}}function Wp(d,l){let g=Qp(d);c.set(g)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:g.conversationId,conversation:{conversationType:g.conversationType,conversationId:g.conversationId},pinnedMessage:g,reason:l}),_e(g));}function Hp(d,l){let g=typeof d=="string"?d:d.conversationId,h=c.get(d);if(!c.clear(d))return;let _=typeof d=="string"?h===void 0?void 0:Dt(h):d;if(_===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${g}`);e.emitter.emit({type:"pinned-message:updated",conversationId:g,conversation:_,pinnedMessage:null,reason:l}),Ze(d);}function Ua(d,l,g,h){let _=Un(d);if(_===void 0)return;let U={..._,title:l,avatar:g??_.avatar,...h!==void 0?{muted:h}:{}};Ho(_,U)||$n(U);}async function ka(d,l){let{conversationId:g,conversationType:h}=d,_=fe(d),U=l?.force===true;if(!U&&Se.has(_))return false;let j=P,ie=O(d);U&&Se.set(_,ie);let{profile:ge,channelProfile:ye}=e,ce=3,le=U?{forceRefresh:true}:void 0;try{if(h==="direct"){if(ge===void 0)return !1;let re=await ge.getUserProfile(g,le);if(j!==P||ie!==Q.get(_))return !1;re!==null&&Ua(d,re.remark??re.nickname,re.avatar,re.muted);}else if(h==="group"){if(ge===void 0)return !1;let re=await ge.getGroupProfile(g,le);if(j!==P||ie!==Q.get(_))return !1;re!==null&&(Ua(d,re.name,re.avatar,re.muted),re.status===ce&&Pa({conversationType:"group",conversationId:g},"group_dismissed"),U&&e.emitter.emit({type:"profile:updated",profileType:"group",id:g}));}else if(h==="channel"){if(ye===void 0)return !1;let re=await ye.getProfile(g,le);if(j!==P||ie!==Q.get(_))return !1;if(re!==null){Ua(d,re.name,re.avatar,re.muted);let Be=Un(d)?.channelState,Me=Be==="left"||Be==="removed"||Be==="dismissed",We=re.channelState==="left"||re.channelState==="removed"||re.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&Me&&Be!=="dismissed"&&re.channelState==="active")return Fa(g,"active",void 0,{permissions:re.permissions,...re.accessSnapshot===void 0?{}:{snapshot:re.accessSnapshot}}),U&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!0;let Le=Me&&(!We||Be==="dismissed"||re.channelState!=="dismissed");if(We&&!Le)return Pa({conversationType:"channel",conversationId:g},`channel_${re.channelState}`),U&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!1;if(!Le){let gn=re.permissions.sendMessages?void 0:`channel_${re.channelState}`;Fa(g,re.channelState,gn,{permissions:re.permissions,...re.accessSnapshot===void 0?{}:{snapshot:re.accessSnapshot}});}U&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}});}}return !1}catch(re){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:re}}),false}finally{U&&Se.get(_)===ie&&Se.delete(_);}}function Jp(d,l){ka({conversationType:l,conversationId:d},{force:true});}function Yp(d){return ka({conversationType:"channel",conversationId:d},{force:true,allowChannelRecovery:true})}function Xp(d,l){let g=Un(d);if(g===void 0)return;let h={...g,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};Ho(g,h)||$n(h);}function hr(d){return Mc(d,e.getSelfId?.()??"")}function ei(d){let l=s.get(d);if(l===void 0||l.readCursor==="")return;let g=typeof d=="string"?l.conversationType:d.conversationType;if(g==="channel"){let _={conversationType:g,conversationId:typeof d=="string"?d:d.conversationId};return ee(_).find(U=>U.extensions?.historyCursor===l.readCursor)?.sortKey??l.readCursorSortKey}return (typeof d=="string"?n.get(l.readCursor):z(d,l.readCursor))?.sortKey??l.readCursorSortKey}function El(d,l){let g=0;for(let h of n.getByConversation(d))at(h)&&hr(h)&&(l===void 0||h.sortKey>l)&&(g+=1);return g}function ni(d){let l=e.getSelfId?.();if(l===void 0||l===""||d.senderId===l)return false;let{mention:g}=d;return g===void 0?false:g.atAll||g.atUserIds.includes(l)}function zp(d,l){let g=0;for(let h of n.getByConversation(d))h.readBySelf!==true&&ni(h)&&(l===void 0||h.sortKey>l)&&(g+=1);return g}function Yn(d,l=true){let g=d.conversationType===void 0?o.get(d.conversationId):void 0,h=d.conversationType===void 0&&g!==void 0?{...d,conversationType:g.type}:d,_=h.conversationType===void 0?h.conversationId:{conversationType:h.conversationType,conversationId:h.conversationId},U=s.get(_);if(h.conversationType==="channel"&&x(h.conversationId),s.set(h),l&&pe(h),U===void 0||U.readCursor!==h.readCursor||U.readCursorSortKey!==h.readCursorSortKey||U.unreadCount!==h.unreadCount||(U.manuallyUnread??false)!==(h.manuallyUnread??false)){if(h.conversationType===void 0){e.emitter.emit({type:"error",error:{scope:"storage",message:`\u5DF2\u8BFB\u72B6\u6001\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF0C\u62D2\u7EDD\u53D1\u5E03 read:updated\uFF08conversationId=${h.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:h.conversationId,conversation:{conversationType:h.conversationType,conversationId:h.conversationId},readCursor:h.readCursor,unreadCount:h.unreadCount,...h.manuallyUnread===true?{manuallyUnread:true}:{}});}}function Tl(d,l){if(d===void 0||d.sortKey===l.sortKey)return;let g=Ke(l),h=s.get(g),_=l.conversationType==="channel"?l.extensions?.historyCursor:void 0,U=l.conversationType==="direct"||l.conversationType==="group"||l.conversationType==="robot";h!==void 0&&(U&&h.readCursor===l.id||typeof _=="string"&&_!==""&&h.readCursor===_||h.readCursorSortKey===d.sortKey)&&Yn({...h,readCursorSortKey:l.sortKey});let j=fe(g);l.conversationType==="group"&&G.get(j)===d.sortKey&&(G.set(j,l.sortKey),xe());}function xa(d){let l=d?.channelAccessSnapshot?.role;return l==="owner"||l==="admin"}function qp(d,l){return at(d)?d.conversationType!=="channel"||d.deletedForEveryone===void 0||xa(l):false}function vl(d,l,g,h,_=Un(d)){let U=h??s.get(d);if(l===void 0){if(_===void 0)return typeof d=="string"||U===void 0||U.unreadCount<=0?void 0:{id:d.conversationId,type:d.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:U.unreadCount,mentionUnreadCount:U.mentionUnreadCount,readCursor:U.readCursor,pinned:false,muted:false};let ce={..._,...g==="clear"?{lastMessagePreview:"",timestamp:0}:{},...U===void 0?{}:{unreadCount:U.unreadCount,manuallyUnread:U.manuallyUnread,mentionUnreadCount:U.mentionUnreadCount,readCursor:U.readCursor||_.readCursor}};return g==="clear"&&(delete ce.lastMessageSummary,delete ce.lastMessageSenderId,delete ce.lastMessageSystemEvent,delete ce.lastMessageSystemTargetsSelf,delete ce.lastMessageMention,delete ce.lastMessageRecalled,delete ce.lastMessageDeletedForEveryone,delete ce.lastMessageSendState,delete ce.lastMessageReceipt),ce}let j=U?.unreadCount??_?.unreadCount??0,ie=U===void 0?_?.manuallyUnread:U.manuallyUnread,ge=U?.mentionUnreadCount??_?.mentionUnreadCount??0,ye=Sc(l,{unreadCount:j,mentionUnreadCount:ge,selfId:e.getSelfId?.(),showChannelModerationDeleted:xa(_)});return _===void 0?{...ye,...ie===void 0?{}:{manuallyUnread:ie},readCursor:(U?.readCursor??"")||ye.readCursor}:{...ye,title:_.title||ye.title,avatar:_.avatar??ye.avatar,pinned:_.pinned,muted:_.muted,topTime:_.topTime,...ie===void 0?{}:{manuallyUnread:ie},readCursor:(U?.readCursor??"")||_.readCursor,groupState:_.groupState,channelState:_.channelState,channelPermissions:_.channelPermissions,channelAccessSnapshot:_.channelAccessSnapshot,sendDisabledReason:_.sendDisabledReason}}function wa(d,l){if(d===void 0)return;let g=o.get({conversationType:d.type,conversationId:d.id});g!==void 0&&Ho(g,d)||(o.set(d),i.delete({conversationType:d.type,conversationId:d.id}),oe(d),l&&Jn(d),d.title===""&&ka({conversationType:d.type,conversationId:d.id}));}function Jt(d,l,g="preserve",h=Un(d)){let _=l.findLast(ie=>qp(ie,h)),U=typeof d=="string"?h?.type:d.conversationType,j=_===void 0&&U==="channel"&&!xa(h)&&(l.some(ie=>ie.deletedForEveryone!==void 0)||h?.lastMessageSummary?.kind==="channel-moderation-deleted"||h?.lastMessageDeletedForEveryone!==void 0);return vl(d,_,j?"clear":g,void 0,h)}function Gn(d,l=false){!l&&o.get(d)===void 0||wa(Jt(d,n.getByConversation(d)),true);}function ti(d){if(d.status!=="uploading"&&!(d.status==="failed"&&d.failure?.code===ft))return d;let l=n.get(d.id);return l!==void 0&&l.conversationType===d.conversationType&&l.conversationId===d.conversationId?l:Ac(_t(d))}function bl(d,l=()=>true){let g=[],h=gt(d,e.getSelfId?.()??"").map(ge=>{let ye=ti(ge),ce={...ye,sortKey:rt(ye)};if(ce=_t(ce),ce.conversationType==="group"&&ce.contentType==="text"){let le=ar(ce.body.text??"",ce.mention);le!==void 0&&(ce.mention=le);}return K(ce)}),_=new Map;for(let ge of h){if(ge.contentType!=="transfer"||ge.body.transfer===void 0)continue;let ye=Ke(ge);_.set(fe(ye),ye);}let U=[..._.values()].flatMap(ge=>ee(ge)),j=Rc(U,h),ie=new Set(h.map(ge=>ge.id));for(let ge of j){if(!l())break;let{previous:ye,message:ce,isNew:le,changed:re}=$(ge);if(Tl(ye,ce),ye!==void 0&&re)for(let Be of w){if(!l())return g;Be.list().some(Me=>Me.id===ce.id&&Me.conversationType===ce.conversationType&&Me.conversationId===ce.conversationId)&&Be.applyIncoming([ce]);}if(!l())return g;le?e.emitter.emit({type:"message:received",message:ce,conversation:Ke(ce),source:"offline",channelLifecycleEffects:false}):re&&e.emitter.emit({type:"message:updated",message:ce,conversation:Ke(ce),source:"offline",channelLifecycleEffects:false}),ie.has(ce.id)&&g.push(ce);}return g}function Nl(d){let l=ti(d),g={...l,sortKey:rt(l)};if(g=_t(g),g.conversationType==="group"&&g.contentType==="text"){let h=ar(g.body.text??"",g.mention);h!==void 0&&(g.mention=h);}return K(g)}async function jp(d,l){let g=z(d,l);if(g!==void 0||M===void 0)return g;try{let h=await M.getMessage(d,l);return h===null||fe(Ke(h))!==fe(d)?void 0:Nl(h)}catch(h){q("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",h);return}}function Xn(d,l,g={}){let h=e.getSelfId?.()??"";if(l==="live"){let Ae=false,Pe=false;for(let Fe of d){let tn=Ke(Fe);if(De(Fe,h)){let Rn=W(tn);Rn.deleted&&(Ae=true),Rn.terminal&&(tn.conversationType==="group"?(G.set(fe(tn),Fe.sortKey),xe()):tn.conversationType==="channel"&&G.delete(fe(tn)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:tn,data:{source:l,eventType:Fe.body.system?.eventType,groupHistoryLowerBoundApplied:tn.conversationType==="group"}})),Pe=true);}else (h===""||Fe.senderId!==h||g.newOutgoing===true)&&!D(tn)&&H(tn)&&(Ae=true);}Ae&&_n(),Pe&&Re();}let U=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,j=(Ae,Pe)=>{if(U===void 0)return;let Fe=Ke(Ae),tn=fe(Fe),Rn=U.get(tn)??{ref:Fe,tombstone:0,groupLowerBound:0};Pe==="tombstone"?Rn.tombstone+=1:Rn.groupLowerBound+=1,U.set(tn,Rn);},ie=I.size>0||k.size>0?d.filter(Ae=>{let Pe=Ke(Ae),Fe=!S(Pe)||g.backfillOnly===true&&i.get(Pe)!==void 0&&!D(Pe);return Fe||j(Ae,"tombstone"),Fe}):d,ge=E(ie),ye=Ae=>ge.get(fe(Ke(Ae)))===Ae.id,ce=G.size>0?ie.filter(Ae=>{let Pe=ye(Ae)||de(Ae);return Pe||j(Ae,"groupLowerBound"),Pe}):ie,le=ge.size===0?ce:[...ce.filter(ye),...ce.filter(Ae=>!ye(Ae))];for(let Ae of U?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:Ae.ref,data:{source:l,tombstoneDroppedCount:Ae.tombstone,groupHistoryLowerBoundDroppedCount:Ae.groupLowerBound}}));let re=new Map,Be=new Map,Me=new Map,We=new Map,Le=new Map,gn=new Set,Yt=gt(le,h).map(K),Bl=new Map;for(let Ae of Yt){if(Ae.contentType!=="transfer"||Ae.body.transfer===void 0)continue;let Pe=Ke(Ae);Bl.set(fe(Pe),Pe);}let vy=[...Bl.values()].flatMap(Ae=>ee(Ae)),by=Rc(vy,Yt),Va=[],Oa=[];for(let Ae of by){if(Ae.conversationType==="channel"&&be?.keys.has(fe(Ke(Ae)))&&!be.current())continue;let{previous:Pe,message:Fe,isNew:tn,changed:Rn}=$(Ae,{authoritativeFailure:g.authoritativeOutboxFailure===true});if(hn(Fe),g.backfillOnly===true&&g.refreshSessionSummary===true){let et=Ke(Fe);re.set(fe(et),et);}if(!tn&&!Rn)continue;Tl(Pe,Fe);for(let et of w)et.applyIncoming([Fe]);tn?e.emitter.emit({type:"message:received",message:Fe,conversation:Ke(Fe),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Fe,conversation:Ke(Fe),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true});let zn=Ke(Fe);if(!tn&&Pe!==void 0&&Pe.readBySelf!==true&&Fe.readBySelf===true){let et=ei(zn),Rr=et===void 0||Pe.sortKey>et,Xt=fe(zn);Rr&&at(Pe)&&hr(Pe)&&Pe.recalled===void 0&&Pe.deletedForEveryone===void 0&&Me.set(Xt,(Me.get(Xt)??0)-1),Rr&&ni(Pe)&&Pe.recalled===void 0&&Pe.deletedForEveryone===void 0&&Le.set(Xt,(Le.get(Xt)??0)-1);}D(zn)||(Va.push(Fe),re.set(fe(zn),zn),tn&&g.backfillOnly!==true&&Oa.push(Fe));}let Ka=new Map;for(let Ae of Oa){let Pe=Ke(Ae),Fe=fe(Pe);hr(Ae)&&gn.add(Fe),Ka.has(Fe)||Ka.set(Fe,ei(Pe));let tn=Ka.get(Fe),Rn=tn===void 0||Ae.sortKey>tn;if(at(Ae)&&Rn&&hr(Ae)&&Ae.readBySelf!==true&&Ae.recalled===void 0&&Ae.deletedForEveryone===void 0){let zn=me(Ae.conversationType);(zn==="local"||zn==="server"&&l==="live")&&Be.set(Fe,(Be.get(Fe)??0)+1);}Rn&&Ae.readBySelf!==true&&ni(Ae)&&Ae.recalled===void 0&&Ae.deletedForEveryone===void 0&&We.set(Fe,(We.get(Fe)??0)+1);}for(let Ae of re.values()){if(g.backfillOnly===true){g.refreshSessionSummary===true&&Gn(Ae);continue}let Pe=fe(Ae),Fe=Be.get(Pe)??0,tn=We.get(Pe)??0,Rn=Me.get(Pe)??0,zn=Le.get(Pe)??0,et=gn.has(Pe),Rr=s.get(Ae),Xt=Rr!==void 0&&(Rn!==0||zn!==0);if(Fe>0||tn>0||et||Xt){let wt=Rr??{...Ae,readCursor:"",unreadCount:0},Fl={...wt,unreadCount:Math.max(0,wt.unreadCount+Fe+Rn),mentionUnreadCount:Math.max(0,(wt.mentionUnreadCount??0)+tn+zn)};et&&delete Fl.manuallyUnread,Yn(Fl);}Gn(Ae,Oa.some(wt=>wt.conversationType===Ae.conversationType&&wt.conversationId===Ae.conversationId&&at(wt)));}Cn(Va.filter(Ae=>z(Ke(Ae),Ae.id)!==void 0));for(let Ae of Va)Ae.recalled===void 0&&Ae.deletedForEveryone===void 0?B(Ae,l):f(Ke(Ae),Ae.id);}function _l(d,l,g=Date.now()){let h={conversationType:"direct",conversationId:d},_=z(h,l),U=n.getByConversation(h).findLast(ge=>ge.body.system?.eventType==="direct_contact_established");if(_!==void 0&&U!==void 0&&tt(U)>=tt(_))return;let j=`${l}:contact-required`;if(n.get(j)!==void 0)return;let ie={id:j,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[d],action:{type:"request-contact",userId:d}}},createdAt:g,sortKey:we(g,j),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Xn([ie],"live");}function $p(d,l,g=Date.now()){let h=`${l}:message-refused`;if(n.get(h)!==void 0)return;let _=n.get(l),U=_?.conversationType==="direct"&&_.conversationId===d?tt(_):g,j={id:h,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[d]}},createdAt:U,sortKey:we(U,h),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Xn([j],"live");}function ey(d,l=Date.now()){let g=xn(),h={id:g,conversationId:d.conversationId,conversationType:"direct",senderId:d.senderId,contentType:"text",body:{text:d.text},createdAt:l,sortKey:we(l,g),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...d.refMessageId===void 0?{}:{refMessageId:d.refMessageId}};return Xn([h],"live"),_l(d.conversationId,g,l+1),h}function ny(d,l){return `${d.trim()===""?`contact-established:${l}`:d}:contact-established`}function ty(d,l,g=Date.now(),h=g){let _=ny(l,h);if(n.get(_)!==void 0)return;let U={id:_,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[d]}},createdAt:g,sortKey:we(g,_),status:"sent",receipt:"unread",encryption:{encrypted:false}};Xn([U],"live");}let Ar=new Map,Ba=0;function ry(d,l,g=Date.now()){let h=Ar.get(d);if(h!==void 0)return h;let _={conversationType:"direct",conversationId:d},U=Ba,j=(async()=>{let ie=n.getByConversation(_).filter(Le=>{let gn=Le.body.system?.eventType;return gn==="direct_contact_required"||gn==="direct_contact_established"}),ge=ie.filter(Le=>Le.body.system?.eventType==="direct_contact_required"),ye=ge.at(-1)?.createdAt??0,ce=ie.findLast(Le=>Le.body.system?.eventType==="direct_contact_established")?.createdAt??0,le=ce>=ye&&ce>0;if(ge.length===0&&le)return;let re=ei(_);for(let Le of ge)try{let gn=await xl(_,Le.id),Yt=z(_,Le.id);!gn&&Yt?.body.system?.eventType==="direct_contact_required"&&e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u672A\u80FD\u5220\u9664",cause:{conversation:_,messageId:Le.id}}});}catch(gn){e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u5220\u9664\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u5931\u8D25",cause:{conversation:_,messageId:Le.id,error:gn}}});}if(U!==Ba)return;let Be=s.get(_);if(Be!==void 0&&(Yn({...Be,...Be.readCursorSortKey===void 0&&re!==void 0?{readCursorSortKey:re}:{},unreadCount:El(_,re)}),Gn(_)),le)return;let Me=Number.isFinite(g)&&g>0?g:Date.now(),We=Math.max(Me,ye+1);ty(d,l,We,Me);})().finally(()=>{Ar.get(d)===j&&Ar.delete(d);});return Ar.set(d,j),j}function oy(d,l){let g=typeof d=="string"?n.get(l)??se(l):z(d,l);if(g===void 0)return;let h=typeof d=="string"?Ke(g):d,_=typeof d=="string"?d:d.conversationId;if(g.conversationId!==_||g.conversationType!==h.conversationType)return;let U=ei(h);if(U!==void 0&&U>=g.sortKey){typeof d!="string"&&Dl(d);return}let j={...h,readCursor:l,readCursorSortKey:g.sortKey,unreadCount:El(h,g.sortKey),mentionUnreadCount:zp(h,g.sortKey)};return Yn(j),Gn(h),j}function iy(d){let l=o.get(d);if(l===void 0)return false;let g=s.get(d)??{...d,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return g.unreadCount>0||g.manuallyUnread===true?false:(Yn({...g,manuallyUnread:true}),Gn(d),true)}function Dl(d){let l=s.get(d);if(l?.manuallyUnread!==true)return false;let g={...l};return delete g.manuallyUnread,Yn(g),Gn(d),true}function Gl(d,l,g,h,_){let U=typeof d=="string"?d:d.conversationId,j=Un(d),ie=typeof d=="string"?j===void 0?void 0:wn(j):d;if(j!==void 0&&me(j.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${U}, type=${j.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(l)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${U}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}ie?.conversationType==="channel"&&u.delete(U);let ge=s.get(d),ye=ge?.readCursor??"",ce=ge?.readCursorSortKey,le=g===void 0||g===""?void 0:ie===void 0?n.get(g)??se(g):z(ie,g);le!==void 0&&le.conversationId===U&&(ce===void 0||le.sortKey>ce)&&(ye=le.id,ce=le.sortKey),h!==void 0&&(ye=h),Yn({...ie===void 0?{conversationId:U}:ie,readCursor:ye,readCursorSortKey:ce,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:ge?.manuallyUnread},mentionUnreadCount:l===0||_===false?0:_===true?Math.max(1,ge?.mentionUnreadCount??0):ge?.mentionUnreadCount}),Gn(d,l>0&&ie!==void 0&&!S(ie));}function ri(d){let l=u.get(d.conversation.conversationId);return l?.handle.transactionId===d.transactionId?l:void 0}function Ul(d,l,g,h=false){let _=Un(d),U=z(d,l);if(_?.type!=="channel"||U?.conversationType!=="channel"||U.conversationId!==d.conversationId||U.extensions?.historyCursor!==g)throw new Error(`CHANNEL \u5DF2\u8BFB\u4F4D\u7F6E\u4E0D\u53EF\u4FE1\uFF08channelId=${d.conversationId}, messageId=${l}\uFF09`);h||u.delete(d.conversationId);let j=s.get(d),ie=j===void 0?_.mentionUnreadCount:j.mentionUnreadCount;Yn({...d,readCursor:g,readCursorSortKey:U.sortKey,unreadCount:j?.unreadCount??_.unreadCount,...ie===void 0?{}:{mentionUnreadCount:ie}}),Gn(d);}function sy(d){let l=d.conversationId,g=Un(d);if(g===void 0||g.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${g?.type??"missing"}\uFF09`);if(u.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let h={conversation:d,transactionId:v++},U=s.get(d)??{conversationId:l,readCursor:g.readCursor??"",unreadCount:g.unreadCount,...g.mentionUnreadCount===void 0?{}:{mentionUnreadCount:g.mentionUnreadCount}};return u.set(l,{handle:h,baseReadState:{...U},steps:[],committedThrough:-1}),x(l),h}function kl(d,l,g){let h=d.conversation,_=h.conversationId,U=ri(d);if(U===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${_}\uFF09`);let j=z(h,l);if(j===void 0||j.conversationId!==_||j.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${_}, messageId=${l}\uFF09`);if(j.extensions?.historyCursor!==g)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${_}, messageId=${l}\uFF09`);U.steps.at(-1)?.readCursor!==g&&(U.steps.push({readCursor:g,messageId:l,...Lo(j)}),Ul(h,l,g,true));}function ay(d,l,g){kl(d,l,g);let _=ri(d).steps.at(-1);if(_.clearedCounts!==void 0)return;let U=s.get(d.conversation),j=ee(d.conversation).filter(ye=>Zo(Lo(ye),_)>0&&hr(ye)&&at(ye)&&ye.readBySelf!==true&&ye.recalled===void 0&&ye.deletedForEveryone===void 0),ie=Math.min(U.unreadCount,j.length),ge=Math.min(U.mentionUnreadCount??0,j.filter(ni).length);_.clearedCounts={unread:U.unreadCount-ie,mention:(U.mentionUnreadCount??0)-ge},Yn({...U,unreadCount:ie,mentionUnreadCount:ge}),Gn(d.conversation);}function dy(d,l){let g=ri(d);if(g===void 0)return false;let h=g.steps.findLastIndex(_=>_.readCursor===l);if(h<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${d.conversation.conversationId}, cursor=${l}\uFF09`);return g.committedThrough=Math.max(g.committedThrough,h),x(d.conversation.conversationId),g.committedThrough===g.steps.length-1&&u.delete(d.conversation.conversationId),true}function cy(d){let l=ri(d);if(l===void 0)return false;let g=d.conversation,h=g.conversationId,_=s.get(g),U=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,j=U===void 0?l.baseReadState:void 0,ie=_?.unreadCount??j?.unreadCount??0,ge=_?.mentionUnreadCount??j?.mentionUnreadCount??0;for(let le of l.steps.slice(l.committedThrough+1))ie+=le.clearedCounts?.unread??0,ge+=le.clearedCounts?.mention??0;let ye=j?.mentionUnreadCount!==void 0||_?.mentionUnreadCount!==void 0,ce={conversationId:h,conversationType:"channel",readCursor:U?.readCursor??j?.readCursor??"",readCursorSortKey:U?.sortKey??j?.readCursorSortKey,unreadCount:ie,...ye?{mentionUnreadCount:ge}:{}};return u.delete(h),Yn(ce),Gn(g),true}function ly(d,l,g){let _=Un({conversationType:"group",conversationId:d});if(_===void 0){$n({id:d,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:g});return}if(_.groupState===l&&_.sendDisabledReason===g)return;let U={..._,groupState:l,sendDisabledReason:g};$n(U);}function Fa(d,l,g,h){let _={conversationType:"channel",conversationId:d},U=fe(_);if(S(_)&&i.get(_)===void 0)return;let j=Un(_);if(j===void 0){O(_),Se.delete(U);let ce={id:d,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:h?.permissions,channelAccessSnapshot:h?.snapshot,sendDisabledReason:g};$n(ce);return}if(j.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${d} \u7C7B\u578B\u4E3A ${j.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);O(_),Se.delete(U);let ie=h?.permissions,ge=h?.snapshot;if(j.channelState===l&&j.sendDisabledReason===g&&Vf(j.channelPermissions,ie)&&Of(j.channelAccessSnapshot,ge)){o.get(_)!==void 0&&Gn(_);return}let ye={...j,channelState:l,channelPermissions:ie,channelAccessSnapshot:ge,sendDisabledReason:g};o.get(_)!==void 0?$n(Jt(_,n.getByConversation(_),"preserve",ye)):$n(ye);}function uy(d,l){let g=o.get(d);if(g===void 0||g.pinned===l)return;let h={...g,pinned:l,topTime:l?Date.now():void 0};o.set(h),oe(h),Jn(h);}function gy(d,l){let g=Un(d);if(g===void 0||g.muted===l)return;let h={...g,muted:l};$n(h);}async function xl(d,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let g=n.get(l),h=g!==void 0&&g.conversationType===d.conversationType&&g.conversationId===d.conversationId,_=n.getByConversation(d).filter(re=>re.id!==l),U=o.get(d)===void 0?void 0:Jt(d,_,"clear"),j=U===void 0?void 0:pn(U);function ie(re){return re!==void 0&&(g===void 0||!Lt(g,re))}let ge=M===void 0?{deleted:false,superseded:false}:await Hn(async()=>ie(n.get(l))?{deleted:false,superseded:true}:{deleted:await M.deleteMessage(d,l,j),superseded:false});if(ge.superseded||ie(n.get(l)))return false;let ye=h&&n.delete(d,l),ce=false;for(let re of w)ce=re.removeMessage(d,l)||ce;if(!ge.deleted&&!ye&&!ce)return false;let le=o.get(d)===void 0?void 0:Jt(d,n.getByConversation(d),"clear");return wa(le,false),le!==void 0&&(U===void 0||!Ho(U,le))&&Jn(le),f(d,l),e.emitter.emit({type:"message:removed",conversation:{...d},messageId:l,scope:"local-only"}),true}async function my(d){Qn(d);let l={...d},g=new Map(n.getByConversation(l).map(ce=>[ce.id,ce])),h=o.get(l),_=s.get(l),U=_===void 0&&h===void 0?void 0:{...l,readCursor:_?.readCursor??h?.readCursor??"",..._?.readCursorSortKey===void 0?{}:{readCursorSortKey:_.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},j=h===void 0?void 0:vl(l,void 0,"clear",U);if(M!==void 0){if(M.clearConversationHistory===void 0)throw new Error("\u5F53\u524D storage \u672A\u5B9E\u73B0 clearConversationHistory\uFF0C\u62D2\u7EDD\u975E\u539F\u5B50\u6E05\u7A7A\u672C\u673A\u4F1A\u8BDD\u5386\u53F2");await Hn(()=>M.clearConversationHistory(l,j===void 0?void 0:pn(j),U));}let ie=s.get(l),ge=ie?.conversationType===_?.conversationType&&ie?.conversationId===_?.conversationId&&ie?.readCursor===_?.readCursor&&ie?.readCursorSortKey===_?.readCursorSortKey&&ie?.unreadCount===_?.unreadCount&&ie?.mentionUnreadCount===_?.mentionUnreadCount;U!==void 0&&ge&&Yn(U,false);for(let[ce,le]of g){let re=n.get(ce);re!==void 0&&Lt(le,re)&&n.delete(l,ce);}let ye=n.getByConversation(l);for(let ce of w)ce.clearConversation(l)&&ce.applyIncoming(ye);A(l),o.get(l)!==void 0&&wa(Jt(l,ye,"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function wl(d,l={}){let g=typeof d=="string"?d:d.conversationId,h=o.get(d),_=c.get(d),U=typeof d=="string"?h!==void 0?{conversationType:h.type,conversationId:g}:_===void 0?void 0:Dt(_):d;if(U===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${g}`);Qn(U);let j=n.getByConversation(U).length;un(U),A(U),o.delete(d),i.delete(d),U.conversationType==="channel"&&(x(U.conversationId),u.delete(U.conversationId)),s.delete(d),n.deleteByConversation(d),c.clear(d);let ie=m(U);if(l.terminal===true){k.add(ie);let ge=G.delete(ie);I.delete(ie),I.delete(g),ge&&xe(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:U,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:j}}));}else I.add(ie);for(let ge of w)Ne(ge,U)&&ge.reset();e.emitter.emit({type:"session:removed",conversationId:g,conversation:U}),_n(),l.terminal===true&&Re(),M!==void 0&&Hn(async()=>{await ln([M.deleteConversationMessages(U),M.deleteSession(U),M.deleteReadState(U),M.removePinnedMessage(U)]);}).catch(ge=>q("\u5220\u9664\u4F1A\u8BDD\u6301\u4E45\u6570\u636E\u5931\u8D25",ge));}function fy(d){wl(d);}function Pa(d,l){wl(d,{terminal:true,terminalReason:l});}function py(d){let l=wn(d);if(fe(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let g=o.get(l);if(g!==void 0)return g;let h={...d,id:l.conversationId,type:l.conversationType,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}},...d.extensions===void 0?{}:{extensions:{...d.extensions}}},_=W(l);return _.deleted&&_n(),_.terminal&&Re(),o.set(h),i.delete(l),oe(h),Jn(h),h}function Un(d){if(typeof d=="string"){let l=[...o.getAll(),...i.getAll()].filter(g=>g.id===d);if(l.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${d}`);return l[0]}return o.get(d)??i.get(d)}function $n(d){let l=wn(d);o.get(l)!==void 0?(o.set(d),oe(d),Jn(d)):(i.set(d),e.emitter.emit({type:"conversation-context:updated",conversation:l}));}function yy(d,l={}){let g=wn(d);if(g.conversationType==="supergroup")throw new Error("prepareConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let h=Un(g);if(h!==void 0){let _=h.title||d.title,U=h.avatar??d.avatar;(_!==h.title||U!==h.avatar)&&$n({...h,title:_,avatar:U});return}if(D(g)){if(l.membershipConfirmed!==true)throw new Error("\u51C6\u5907\u804A\u5929\u5931\u8D25\uFF1A\u9700\u8981\u91CD\u65B0\u786E\u8BA4\u6210\u5458\u8D44\u683C");k.delete(m(g)),k.delete(g.conversationId),Re();}$n({...d,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}}}),(s.get(g)?.unreadCount??0)>0&&!S(g)&&Gn(g,true);}function Iy(d){return Pf(o.getAll(),d)}async function Cy(d=()=>true){if(!(M===void 0||!d())){he=true;try{let l=await M.getMeta(Vc);if(!d())return;if(l!==null)for(let le of l)I.add(le);let g=await M.getMeta(Oc);if(!d())return;if(g!==null)for(let le of g)k.add(le);let h=await M.getMeta(Kc);if(!d())return;if(h!==null)for(let[le,re]of h)typeof le=="string"&&typeof re=="string"&&G.set(le,re);let _=await M.getMeta(Lc);if(!d())return;if(_!==null)for(let le of _){let re=ve(le);t.set(re,[...t.get(re)??[],le]);}let U=await M.getMeta(Zc);if(!d())return;if(Array.isArray(U))for(let le of U){if(typeof le!="object"||le===null)continue;let re=Reflect.get(le,"serialNumber"),Be=Reflect.get(le,"status"),Me=Reflect.get(le,"occurredTime");typeof re!="string"||re.trim()===""||Be!==0&&Be!==1&&Be!==2&&Be!==3||Me!==void 0&&(typeof Me!="number"||!Number.isFinite(Me)||Me<=0)||r.set(re,{serialNumber:re,status:Be,...Me===void 0?{}:{occurredTime:Me}});}let j=await M.getPinnedMessages();if(!d())return;for(let le of j){if(!d())return;S({conversationType:le.conversationType,conversationId:le.conversationId})||c.set(le)&&e.emitter.emit({type:"pinned-message:updated",conversationId:le.conversationId,conversation:Dt(le),pinnedMessage:le,reason:"hydrate"});}let ie=(await M.getSessions()).filter(le=>!S({conversationType:le.type,conversationId:le.id}));if(!d())return;for(let le of ie){if(!d())return;let re=wn(le),Be=Jt(re,[],"preserve",le),Me=wn(Be),We=o.get(Me);o.set(Be),i.delete(Me),(We===void 0||!Ho(We,Be))&&oe(Be);}let ge=await M.getReadStates();if(!d())return;for(let le of ge)le.conversationType==="channel"&&x(le.conversationId),s.set(le);let ye=Y,ce=await M.getDrafts();if(!d()||ye!==Y)return;for(let le of ce){if(!d())return;if(!Number.isFinite(le.updatedAt)||le.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${le.updatedAt}`);let re=ht(le.ref,le,le.updatedAt);if(S(re.ref)){try{if(await M.deleteDraft(re.ref),!d())return}catch(We){if(!d())return;q("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",We);}continue}let Be=fe(re.ref);N.set(Be,Math.max(N.get(Be)??0,re.updatedAt));let Me=a.get(re.ref);Me!==null&&Me.updatedAt===re.updatedAt&&Ht(Me,re)||(a.set(re),e.emitter.emit({type:"draft:updated",conversation:re.ref,draft:re}));}for(let le of ie){if(!d())return;let re=wn(le),Be=(await M.getMessages(re,{limit:Qh})).filter(Le=>fe(Ke(Le))===fe(re)).filter(de);if(!d())return;let Me=[],We=Be.map(Le=>{let gn=ti(_t(Le));return gn!==Le&&Me.push(gn),gn});if(bl(We,d),!d())return;if(Me.length>0)try{if(await M.saveMessages(Me),!d())return}catch(Le){if(!d())return;q("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Le);}if(!d())return;Gn(re);}}catch(l){d()&&q("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",l);}finally{he=false,d()&&F("offline");}}}async function Sy(d,l){if(M===void 0)return [];try{let g=await M.getMessages(d,l),h=typeof d=="string"?g.filter(de):g.filter(j=>fe(Ke(j))===fe(d)).filter(de),_=he;he=!0;let U;try{U=bl(h);}finally{he=_;}return he||F("offline"),U.map(j=>z(Ke(j),j.id)??j)}catch(g){return q("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",g),[]}}function hy(d,l){let g=l?.match(ai(d));return {message:d,ranges:g?.ranges.map(({start:h,end:_})=>[h,_])??[]}}async function Ay(d,l){let g=l.keyword?.trim()??"",h=l.contentTypes;if(g===""&&(h===void 0||h.length===0))return {results:[],exhausted:true};let _=g===""?void 0:await qa(g),U=Me=>{let We=h===void 0||h.includes(Me.contentType),Le=_===void 0||_.match(ai(Me))!==null;return We&&Le},j=(Me,We)=>Me.sortKey<We.sortKey?1:Me.sortKey>We.sortKey?-1:0,ie=Me=>hy(Me,_),ge=()=>{let Me=n.getByConversation(d).filter(U).sort(j),Le=(l.beforeSortKey===void 0?Me:Me.filter(Yt=>Yt.sortKey<l.beforeSortKey)).slice(0,l.limit),gn=Le.length<l.limit;return {results:Le.map(ie),exhausted:gn,...gn?{}:{nextBeforeSortKey:Le.at(-1)?.sortKey}}};if(M===void 0)return ge();let ye;try{ye=await M.searchMessages(d,{...l.keyword!==void 0?{keyword:l.keyword}:{},...h!==void 0?{contentTypes:h}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(Me){throw q("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Me),Me}let ce=ye.exhausted?void 0:ye.nextBeforeSortKey,le=new Map(n.getByConversation(d).map(Me=>[Me.id,Me])),re=new Map;for(let Me of ye.items){let We=Nl(Me);fe(Ke(We))===fe(d)&&re.set(We.id,le.get(We.id)??We);}for(let Me of le.values()){let We=l.beforeSortKey===void 0||Me.sortKey<l.beforeSortKey,Le=ce===void 0||Me.sortKey>=ce;We&&Le&&U(Me)&&re.set(Me.id,Me);}return {results:[...re.values()].filter(U).sort(j).map(ie),exhausted:ye.exhausted,...ye.exhausted?{}:{nextBeforeSortKey:ye.nextBeforeSortKey}}}function Ry(d,l,g){let h=z(d,l);h!==void 0&&Xn([{...h,recalled:g,body:{}}],"live");}function My(d,l,g){let h=z(d,l);h===void 0||h.conversationType!=="channel"||Xn([{...h,recalled:void 0,deletedForEveryone:g,body:{}}],"live");}function Ey(d,l,g,h){let _=z(d,l);if(_===void 0)return;let U={..._,body:g,edited:true};h!==void 0?U.mention=h:delete U.mention,Xn([U],"live");}async function Ty(d,l,g){let h=r.get(d),_={serialNumber:d,status:l,...g===void 0?{}:{occurredTime:g}},U=Z(h,_);r.set(U.serialNumber,U),await Ge();let j=new Map;for(let ie of ya(n.getAll(),d,U.status,U.occurredTime))j.set(ie.id,ie);for(let ie of o.getAll()){let ge=ee({conversationType:ie.type,conversationId:ie.id});for(let ye of ya(ge,d,U.status,U.occurredTime))j.set(ye.id,ye);}j.size!==0&&Xn([...j.values()],"live");}return {upsertMessages:Xn,applyReaction:R,rollbackReaction:C,appendDirectContactRequiredNotice:_l,appendDirectMessageRefusedNotice:$p,appendDirectContactRequiredTextFailure:ey,reconcileDirectContactEstablishedNotice:ry,recallMessage:Ry,deleteChannelMessageForEveryone:My,editMessage:Ey,applyTransferStatusBySerialNumber:Ty,getMessage:d=>n.get(d),getConversationMessage:z,getLoadedMessagesByConversation:ee,resolveConversationMessage:jp,getMessages:()=>n.getAll(),getMessagesByConversation:d=>n.getByConversation(d),deleteLocalMessage:xl,clearLocalConversationHistory:my,commitChannelSyncPage:kt,saveChannelSyncCheckpoint:dt,waitForChannelSyncPersistence:Xe,getSession:d=>o.get(d),getConversationContext:Un,isMembershipTerminated:D,prepareConversation:yy,ensureConversation:py,getSessions:()=>o.getAll(),getConversationList:St,getReadState:d=>s.get(d),getPinnedMessage:d=>c.get(d),setPinnedMessage:Wp,clearPinnedMessage:Hp,isPinnedMessage:(d,l)=>c.isPinnedMessage(d,l),setReadState:d=>{let l=d.conversationType===void 0?o.get(d.conversationId):void 0,g=d.conversationType===void 0&&l!==void 0?{...d,conversationType:l.type}:d;g.conversationType==="channel"&&x(g.conversationId),s.set(g),pe(g);},markConversationUnread:iy,clearConversationManualUnread:Dl,advanceRead:oy,applyServerUnread:Gl,applyChannelReadPosition:Ul,getChannelReadRevision:d=>p.get(d.conversationId)??y,hasPendingChannelRead:d=>u.has(d.conversationId),applyChannelReadSummary:(d,l)=>Gl(d,l.unreadCount,void 0,l.readCursor,l.hasUnreadMention),beginChannelReadTransaction:sy,applyChannelReadOptimistically:kl,applyChannelConversationReadOptimistically:ay,commitChannelReadTransaction:dy,rollbackChannelReadTransaction:cy,setGroupRestriction:ly,setChannelRestriction:Fa,setPinned:uy,setMuted:gy,removeConversation:fy,removeConversationForMembershipTermination:Pa,refreshConversationProfile:Jp,recoverChannelFromProfile:Yp,updateConversationProfile:Xp,getTotalUnread:Iy,getDraft:cn,saveDraft:an,clearDraft:Dn,clearDraftIfUnchanged:Bn,invalidateAndDrainDraftOperations:Ga,clearSession(){sn+=1,P+=1,Y+=1,Ba+=1,Ar.clear(),Q.clear(),Se.clear(),n.clear(),o.clear(),i.clear(),s.clear(),a.clear(),b.clear(),N.clear(),L.clear(),u.clear(),p.clear(),y+=1,c.clearAll(),I.clear(),k.clear(),G.clear(),t.clear();for(let d of w)d.reset();},hydrate:Cy,loadOlderMessages:Sy,searchMessages:Ay,messageWindow:ne,createMessageWindow:te}}var Jh=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function Yh(e){let n=new Set,t=new Map,r=new Map,o=true;function i(u){let p=u.extensions?.channelSequence,y=typeof p=="string"?p:u.raw?.channelNotify?.sequence;if(y===void 0||!/^\d+$/.test(y))return;let x=BigInt(y);return x>0n?x:void 0}function s(u){return n.has(u)?false:(n.add(u),n.size>2048&&n.delete(n.values().next().value),true)}function a(u,p,y,x){x!==void 0&&r.set(u,x),e.clearChannelKey(u),e.stopChannelHistory(u),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:u},y);}function c(u){let p=e.domainState.getSession(u);e.domainState.setChannelRestriction(u,p?.channelState??"unknown_restricted",p?.channelState===void 0?"channel_access_requires_refresh":p.sendDisabledReason);}return {handleMessage(u,p={source:"live"}){if(!o||u.conversationType!=="channel"||u.contentType!=="system"||u.body.system===void 0||p.source!=="live"&&p.applyLifecycleEffects!==true||!s(u.id))return;let y=u.conversationId,x=u.body.system,v=x.targetUserIds?.includes(e.getSelfId())??false,I=x.targetUserIds===void 0||x.targetUserIds.length===0,k=i(u),G=t.get(y);if(k!==void 0){if(G!==void 0&&k<=G)return;t.set(y,k);}switch(x.eventType){case "channel_member_left":v?a(y,"left","channel_left",k):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_removed":v?a(y,"removed","channel_removed",k):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_dismissed":a(y,"dismissed","channel_dismissed",k);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!v){e.domainState.refreshConversationProfile(y,"channel");return}let M=e.domainState.getSession(y)?.channelState;if(M==="dismissed")return;if(M==="left"||M==="removed"){let T=r.get(y);if(!(k!==void 0&&T!==void 0&&k>T)){e.domainState.recoverChannelFromProfile(y).then(N=>{!o||!N||(r.delete(y),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y));});return}r.delete(y);}if(!o)return;e.domainState.setChannelRestriction(y,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y),e.domainState.refreshConversationProfile(y,"channel");return}case "channel_all_muted":case "channel_all_unmuted":c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(v||I)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_admin_added":case "channel_admin_removed":(v||I)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_owner_transferred":(v||I||x.operatorId===e.getSelfId())&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;default:Jh.has(x.eventType)&&e.domainState.refreshConversationProfile(y,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function Xh(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let s=i.body.system;if(i.contentType==="system"&&s!==void 0){if(s.eventType==="group_info_changed"||s.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let a=gc(s,t());if(a===null)return;a.state==="active"?(n.setGroupRestriction(i.conversationId,a.state,a.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let a=mc(i.failure?.code);a!==null?(o(i.conversationId),a.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason):n.setGroupRestriction(i.conversationId,a.state,a.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function zh(e){return {handleMessage(n){let t={conversationType:n.conversationType,conversationId:n.conversationId},r=n.body.system?.pinnedMessageAction;if(r!==void 0){if(r.type==="pin"){e.domainState.setPinnedMessage(r.pinnedMessage,"notify:pin");return}if(r.type==="unpin"){e.domainState.clearPinnedMessage(t,"notify:unpin");return}e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u7F6E\u9876\u6D88\u606F\u901A\u77E5 payload \u89E3\u6790\u5931\u8D25",cause:{conversationId:n.conversationId,notifyMessageId:n.id,code:r.code}}}),e.requestReconcile(n.conversationId);return}if(n.contentType!=="system"&&e.domainState.isPinnedMessage(t,n.id)){let o=e.domainState.getPinnedMessage(t);o!==void 0&&e.domainState.setPinnedMessage({...o,preview:{state:"ready",message:n}},"message:updated");}}}}function qh(e){let n={callKind:e.callKind,outcome:e.outcome,durationMs:e.durationMs,outgoing:e.outgoing};return {id:e.callId,conversationId:e.peerId,conversationType:"direct",senderId:e.outgoing?e.selfId:e.peerId,contentType:"call",body:{call:n},createdAt:e.createdAt,sortKey:we(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function Qt(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([qh(n)],"live");}var pr=3e4,Kf=0,Lf=1,Zf=0;function Qf(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var jh=5,$h=6,Wf=1,Hf=2;function Qc(e){return e==="video"?$h:jh}function Jf(e){return e==="audio"?Lf:Kf}function Yf(e){if(e===Lf)return "audio";if(e===Kf)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Sa(e,n,t=pr){if(!Number.isFinite(e)||e<=0)throw new Error(`call signaling: msgTime \u975E\u6CD5\uFF08${String(e)}\uFF09`);if(!Number.isFinite(n)||n<=0)throw new Error(`call signaling: now \u975E\u6CD5\uFF08${String(n)}\uFF09`);return n-e>t}function Xf(e){if(e===32768)return "accept";if(e===33792||e===0)return "reject";if(e===33793)return "busy";if(e===33796)return "token-failed";if(e===33797)return "connect-failed";throw new Error(`call signaling: \u5E94\u7B54 errcode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function zf(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function Wc(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function ha(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Ue(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function In(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function je(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var eA=new Set([33281,33299]);function yr(e){return {conversationType:"direct",conversationId:e}}function qf(e){return e==="accepted"||e==="connected"}function nA(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let Z=e.getSelfId();if(Z.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return Z}function i(Z){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${Z}`);return o()}function s(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function a(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function c(Z,K){e.emitter.emit({type:"call:hangup",conversation:yr(Z.peerId),callId:Z.callId,peerId:Z.peerId,outcome:K});}function u(Z,K=r(),f=true){if(t===void 0)return;let A=t;return a(),y(A,Z,K),t=void 0,f&&c(A,Z),A}function p(Z,K){return Z.connectedAt===void 0?0:Math.max(0,K-Z.connectedAt)}function y(Z,K,f,A){Qt(e.domainState,{callId:Z.callId,peerId:Z.peerId,selfId:o(),callKind:Z.callKind,outcome:K,durationMs:p(Z,f),outgoing:Z.direction==="outgoing",createdAt:f,...A});}function x(Z,K){n!==void 0&&y(n,Z,K);}function v(Z,K=r(),f=true){if(n===void 0)return;let A=n;return s(),x(Z,K),n=void 0,f&&c(A,Z),t!==void 0&&(n=t,t=void 0),A}function I(Z,K,f){let A=Z===16387?co.encode(co.create({sUserId:K,sMsgId:f})):Z===16391?uo.encode(uo.create({sUserId:K,sMsgId:f})):Z===16399?mo.encode(mo.create({sUserId:K,sMsgId:f})):Z===16403?po.encode(po.create({sUserId:K,sMsgId:f})):go.encode(go.create({sUserId:K,sMsgId:f}));e.sendFrame(ae({command:Z,body:A}));}function k(Z){return setTimeout(Z,pr)}function G(){return ke(xn())}function M(Z,K,f,A){let R=ao.encode(ao.create({sInviteId:Ue(K,"peerId"),sFromId:Ue(Z,"selfId"),sMsgId:G(),msgTime:BigInt(r()),encrypt:Zf,sContent:Qf(),callType:Jf(A),scallId:f}));e.sendFrame(ae({command:16385,body:R}));}function T(Z,K,f,A){let R=lo.encode(lo.create({sToId:Ue(K,"peerId"),sFromId:Ue(Z,"selfId"),sMsgId:G(),msgTime:BigInt(r()),errcode:zf(A),scallId:f}));e.sendFrame(ae({command:16389,body:R}));}function b(Z,K,f,A){let R=ir.encode(ir.create({sToId:Ue(K,"peerId"),sFromId:Ue(Z,"selfId"),sMsgId:G(),msgTime:BigInt(r()),scallId:f,hangupReasonCode:Wc(A)}));e.sendFrame(ae({command:16397,body:R}));}function N(Z,K){let f=je(Z.callId);if(Ue(Z.peerId,"peerId"),n===void 0||n.callId!==f||n.peerId!==Z.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${K}`);return n}function L(Z){let K=i("\u53D1\u8D77\u901A\u8BDD"),f=Z.callKind??"audio",A=String(Ue(Z.peerId,"peerId"));if(A===K)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let R=je(Z.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let C=r();return n={callId:R,peerId:A,callKind:f,direction:"outgoing",phase:"outgoing-ringing",startedAt:C},M(K,A,R,f),n.ringTimer=k(()=>{n?.callId!==R||n.phase!=="outgoing-ringing"||(b(K,A,R,"no-answer"),v("cancelled"));}),{callId:R,conversation:yr(A)}}function Y(Z){let K=i("\u63A5\u542C"),f=je(Z.callId);if(Ue(Z.peerId,"peerId"),t!==void 0&&t.callId===f&&t.peerId===Z.peerId){if(n!==void 0)throw new Error("call signaling: \u8BF7\u5148\u7ED3\u675F\u5F53\u524D\u901A\u8BDD\u518D\u63A5\u542C\u7B49\u5F85\u6765\u7535");n=t,t=void 0;}let A=N(Z,"\u63A5\u542C");if(A.direction!=="incoming"||A.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");s(),T(K,A.peerId,A.callId,"accept"),A.phase="accepted";}function me(Z){let K=i("\u62D2\u7EDD"),f=je(Z.callId);if(Ue(Z.peerId,"peerId"),t!==void 0&&t.callId===f&&t.peerId===Z.peerId){T(K,t.peerId,t.callId,"reject"),u("rejected");return}let A=N(Z,"\u62D2\u7EDD");if(A.direction!=="incoming"||A.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");T(K,A.peerId,A.callId,"reject"),v("rejected");}function w(Z){let K=i("\u56DE\u5FD9"),f=je(Z.callId),A=String(Ue(Z.peerId,"peerId"));if(T(K,A,f,"busy"),n?.callId===f){v("busy");return}if(t?.callId===f){u("busy");return}Qt(e.domainState,{callId:f,peerId:A,selfId:K,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function X(Z){let K=i("\u6302\u65AD"),f=N(Z,"\u6302\u65AD");b(K,f.peerId,f.callId,Z.reason);let A=f.phase==="connected",R=ha(Wc(Z.reason),f.direction,A);v(R);}function ne(Z,K){let f=K==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",A=i(f),R=N(Z,f);if(R.callKind!==K)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${K==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(R.phase!=="accepted"&&R.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let C=fo.encode(fo.create({sToId:Ue(R.peerId,"peerId"),sFromId:Ue(A,"selfId"),sMsgId:G(),msgTime:BigInt(r()),notifyType:Qc(K),notifyValue:Z.role==="caller"?Wf:Hf,scallId:R.callId}));e.sendFrame(ae({command:16401,body:C}));}function te(Z){ne(Z,"audio");}function se(Z){ne(Z,"video");}function z(Z){let K=Ms.decode(Z);if(K.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let f=o();I(16387,Ue(f,"selfId"),K.sMsgId);let A=je(K.scallId),R=K.sFromId.toString();if(K.sFromId<=0n||K.sInviteId.toString()!==f)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(R===f)return;let C=Number(K.msgTime),B=Yf(K.callType),F=Sa(C,r()),P=yr(R);if(F){Qt(e.domainState,{callId:A,peerId:R,selfId:f,callKind:B,outcome:"missed",durationMs:0,outgoing:false,createdAt:C}),e.emitter.emit({type:"call:incoming",conversation:P,callId:A,peerId:R,callKind:B,createdAt:C,expired:true});return}if(n?.callId===A||t?.callId===A)return;if(n!==void 0&&!qf(n.phase)){T(f,R,A,"busy"),Qt(e.domainState,{callId:A,peerId:R,selfId:f,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:C});return}if(n!==void 0&&n.peerId===R){T(f,R,A,"busy"),Qt(e.domainState,{callId:A,peerId:R,selfId:f,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:C});return}if(t!==void 0){T(f,R,A,"busy"),Qt(e.domainState,{callId:A,peerId:R,selfId:f,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:C});return}let Q={callId:A,peerId:R,callKind:B,direction:"incoming",phase:"incoming-ringing",startedAt:C};if(Q.ringTimer=k(()=>{if(t?.callId===A&&t.phase==="incoming-ringing"){u("missed");return}n?.callId!==A||n.phase!=="incoming-ringing"||v("missed",C);}),n!==void 0&&qf(n.phase)){t=Q,e.emitter.emit({type:"call:incoming",conversation:P,callId:A,peerId:R,callKind:B,createdAt:C,expired:false});return}n=Q,e.emitter.emit({type:"call:incoming",conversation:P,callId:A,peerId:R,callKind:B,createdAt:C,expired:false});}function $(Z){let K=Rs.decode(Z);if(n===void 0||n.direction!=="outgoing"||K.errcode===32768)return;let f=K.errcode===33794?"peer-offline":"ack-error",A=n,R=r();s(),n=void 0,eA.has(K.errcode)?(y(A,"cancelled",R,{status:"failed",failure:{code:K.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(A.peerId,A.callId,R+1)):y(A,"cancelled",R),e.emitter.emit({type:"call:failed",conversation:yr(A.peerId),callId:A.callId,peerId:A.peerId,reason:f});}function ee(Z,K){K!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${Z} ACK \u5931\u8D25`,cause:{errcode:K}}});}function Ne(Z){let K=Ts.decode(Z);if(K.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let f=o();I(16391,Ue(f,"selfId"),K.sMsgId);let A=je(K.scallId);if(n===void 0||n.callId!==A||n.direction!=="outgoing")return;let R=Xf(K.errcode);if(e.emitter.emit({type:"call:answered",conversation:yr(n.peerId),callId:A,peerId:n.peerId,result:R}),R==="accept"){s(),n.phase="accepted";return}v(R==="reject"?"rejected":R==="busy"?"busy":"cancelled");}function he(Z){let K=ir.decode(Z);if(K.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let f=o();I(16399,Ue(f,"selfId"),K.sMsgId);let A=je(K.scallId);if(t!==void 0&&t.callId===A){let C=ha(K.hangupReasonCode,t.direction,false);u(C);return}if(n===void 0||n.callId!==A)return;let R=ha(K.hangupReasonCode,n.direction,n.phase==="connected");v(R);}function ve(Z){let K=_s.decode(Z);if(K.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let f=o();if(I(16403,Ue(f,"selfId"),K.sMsgId),n===void 0||K.notifyType!==Qc(n.callKind))return;let A=je(K.scallId);n.callId===A&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=r()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:yr(n.peerId),callId:A,peerId:n.peerId})));}function Ie(Z){let K=vs.decode(Z);if(K.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");I(16395,Ue(o(),"selfId"),K.sMsgId);}return {handlers:[{command:16388,handler:(Z,K)=>z(K)},{command:16386,handler:(Z,K)=>$(K)},{command:16392,handler:(Z,K)=>Ne(K)},{command:16390,handler:(Z,K)=>ee("answer",Es.decode(K).errcode)},{command:16400,handler:(Z,K)=>he(K)},{command:16398,handler:(Z,K)=>ee("hangup",bs.decode(K).errcode)},{command:16404,handler:(Z,K)=>ve(K)},{command:16402,handler:(Z,K)=>ee("state-notify",Ns.decode(K).errcode)},{command:16396,handler:(Z,K)=>Ie(K)}],invite:L,accept:Y,reject:me,busy:w,hangup:X,notifyPeerAudioBegin:te,notifyPeerVideoBegin:se,dispose(){s(),a(),n=void 0,t=void 0;}}}var tA={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function rA(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return n>>>0}function jf(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>rA(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return Ee(r)}function oA(e){let n=jf(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:ua,contentType:"system",body:{system:{eventType:tA[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:we(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function $f(e,n){let t=jf(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([oA(n)],"live");}var Hc=9;function iA(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function ep(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],i=0;for(let c of t){let u=iA(c),p=new Uint8Array(1+u.length);p[0]=r,p.set(u,1),o.push(p),i+=p.length;}let s=new Uint8Array(e.length+i),a=0;for(let c of o)s.set(c,a),a+=c.length;return s}function Sn(e){return {conversationType:"group",conversationId:e}}function sA(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function aA(e){return e.members.filter(n=>n.status==="in-call").length}function Aa(e){return e.filter(n=>n.status==="in-call").length<=1}function dA(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(R,C,B,F,P){$f(e.domainState,{kind:R,groupId:C,callId:B,createdAt:F,...P===void 0?{}:{operatorId:P}});}function s(){let R=e.getSelfId();if(R.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return R}function a(R){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${R}`);return s()}function c(){return ke(xn())}function u(R){if(R.trim()===""||t.has(R))return false;if(t.add(R),r.push(R),r.length>256){let C=r.shift();C!==void 0&&t.delete(C);}return true}function p(R){let C=n.get(R);return C===void 0?null:sA(C)}function y(R){R.incomingRingTimer!==void 0&&clearTimeout(R.incomingRingTimer),R.incomingRingTimer=void 0;}function x(R,C,B){let F=R.members.find(P=>P.userId===C);if(F!==void 0){F.status=B;return}R.members.push({userId:C,status:B});}function v(R,C){R.members=R.members.filter(B=>B.userId!==C);}function I(R){let C=n.get(R.groupId);C!==void 0&&y(C);let B=[];for(let P of R.inCallIds)B.some(Q=>Q.userId===P)||B.push({userId:P,status:"in-call"});for(let P of R.ringingIds)B.some(Q=>Q.userId===P)||B.push({userId:P,status:"ringing"});let F={groupId:R.groupId,callId:R.callId,inviterId:R.inviterId,createdAt:R.createdAt,members:B};return n.set(R.groupId,F),F}function k(R,C){let B=n.get(R);if(B!==void 0&&!(C!==void 0&&B.callId!==C))return y(B),n.delete(R),B}function G(R,C){for(let B of n.values())if(B.groupId!==C&&B.members.some(F=>In(F.userId,R)))return true;return false}function M(R,C,B){let F=Io.encode(Io.create({userId:C,msgId:B}));e.sendFrame(ae({command:R,body:F}));}function T(R,C,B,F){let P=F.map(Se=>Ue(Se,"inviteId")),Q=ep(yo.encode(yo.create({groupId:Ue(C,"groupId"),userId:Ue(R,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:B,inviteIds:P})),6,P);e.sendFrame(ae({command:16641,body:Q}));}function b(R,C,B,F,P){let Q=F.map(m=>Ue(m,"inviteId")),Se=ep(So.encode(So.create({groupId:Ue(C,"groupId"),userId:Ue(R,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:B,joinType:P?1:0,inviteIds:Q})),5,Q);e.sendFrame(ae({command:16649,body:Se}));}function N(R,C,B,F){let P=Co.encode(Co.create({groupId:Ue(C,"groupId"),userId:Ue(R,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:B,ansType:F?1:0}));e.sendFrame(ae({command:16645,body:P}));}function L(R,C,B){let F=ho.encode(ho.create({groupId:Ue(C,"groupId"),userId:Ue(R,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:B}));e.sendFrame(ae({command:16653,body:F}));}function Y(R,C,B){let F=Ao.encode(Ao.create({groupId:Ue(C,"groupId"),userId:Ue(R,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:B}));e.sendFrame(ae({command:16657,body:F}));}function me(R,C,B){let F=a("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),P=je(C),Q=[...new Set(B.map(m=>m.trim()).filter(m=>m!==""&&!In(m,F)))];if(Q.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(Q.length+1>Hc)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${Hc}`);let Se=n.get(R);if(Se!==void 0&&aA(Se)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");T(F,R,P,Q),I({groupId:R,callId:P,inviterId:F,createdAt:o(),inCallIds:[F],ringingIds:Q}),i("started",R,P,o(),F);}function w(R,C,B,F){let P=a("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),Q=je(C),Se=[...new Set(B.map(S=>S.trim()).filter(S=>S!==""&&!In(S,P)))];b(P,R,Q,Se,F);let m=n.get(R);if(m!==void 0&&m.callId===Q&&(x(m,P,"in-call"),F))for(let S of Se)x(m,S,"ringing");}function X(R,C,B){let F=a("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),P=je(C),Q=n.get(R);if(Q!==void 0&&Q.callId===P&&y(Q),N(F,R,P,B),!(Q===void 0||Q.callId!==P)){if(B){x(Q,F,"in-call");return}v(Q,F),e.emitter.emit({type:"group-call:answered",conversation:Sn(R),callId:P,groupId:R,userId:F,agreed:false});}}function ne(R,C){let B=a("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),F=je(C),P=n.get(R);if(P!==void 0&&P.callId===F&&Aa(P.members)){Y(B,R,F),k(R,F),i("ended",R,F,o()),e.emitter.emit({type:"group-call:finished",conversation:Sn(R),callId:F,groupId:R,userId:B});return}L(B,R,F),P!==void 0&&P.callId===F&&(y(P),v(P,B)),e.emitter.emit({type:"group-call:left",conversation:Sn(R),callId:F,groupId:R,userId:B});}function te(R,C){let B=a("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),F=je(C);Y(B,R,F),k(R,F),i("ended",R,F,o()),e.emitter.emit({type:"group-call:finished",conversation:Sn(R),callId:F,groupId:R,userId:B});}function se(R,C,B,F){let P=a("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),Q=Ro.encode(Ro.create({groupId:Ue(R,"groupId"),userId:Ue(P,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:je(C),statusType:B?1:0,status:F?1:0}));e.sendFrame(ae({command:16661,body:Q}));}function z(R,C,B){let F=a("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),P=Mo.encode(Mo.create({groupId:Ue(R,"groupId"),userId:Ue(F,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:je(C),hintUser:Ue(B,"hintUserId")}));e.sendFrame(ae({command:16669,body:P}));let Q=n.get(R);Q!==void 0&&Q.callId===C&&v(Q,F);}function $(R){let C=Gs.decode(R);if(C.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let B=s();if(M(16643,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId),Se=C.inviteIds.map(E=>E.toString()).filter(E=>E!=="0"),m=Number(C.msgTime),S=Sa(m,o(),pr),D=Sn(F),H=In(P,B),W=Se.some(E=>In(E,B))||Se.length===0&&!H;if(H){I({groupId:F,callId:Q,inviterId:P,createdAt:m,inCallIds:[B],ringingIds:Se.filter(E=>!In(E,B))});return}let De=n.get(F);if(De!==void 0&&De.callId!==Q&&De.members.some(E=>In(E.userId,B)&&E.status==="in-call")){Y(B,F,Q),i("ended",F,Q,Number.isFinite(m)?m:o());return}if(I({groupId:F,callId:Q,inviterId:P,createdAt:m,inCallIds:[P],ringingIds:W?[...new Set([B,...Se.filter(E=>!In(E,P))])]:Se.filter(E=>!In(E,P))}),i("started",F,Q,Number.isFinite(m)?m:o(),P),!W)return;if(S){e.emitter.emit({type:"group-call:incoming",conversation:D,callId:Q,groupId:F,inviterId:P,inviteIds:Se,createdAt:m,expired:true});return}if(G(B,F)){z(F,Q,P);return}let de=n.get(F);de!==void 0&&(de.incomingRingTimer=setTimeout(()=>{let E=n.get(F);if(E===void 0||E.callId!==Q)return;let O=E.members.find(q=>In(q.userId,B));if(!(O===void 0||O.status!=="ringing")){try{X(F,Q,!1);}catch{v(E,B);}i("missed",F,Q,o());}},pr)),e.emitter.emit({type:"group-call:incoming",conversation:D,callId:Q,groupId:F,inviterId:P,inviteIds:Se,createdAt:m,expired:false});}function ee(R){let C=ks.decode(R);if(C.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let B=s();if(M(16647,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId),Se=C.ansType===1,m=n.get(F);m===void 0||m.callId!==Q||(Se?x(m,P,"in-call"):v(m,P),e.emitter.emit({type:"group-call:answered",conversation:Sn(F),callId:Q,groupId:F,userId:P,agreed:Se}));}function Ne(R){let C=ws.decode(R);if(C.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let B=s();if(M(16651,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId),Se=C.inviteIds.map(H=>H.toString()).filter(H=>H!=="0"&&H!==P),m=n.get(F);if(m===void 0||m.callId!==Q)m=I({groupId:F,callId:Q,inviterId:P,createdAt:Number(C.msgTime),inCallIds:[P],ringingIds:Se});else if(x(m,P,"in-call"),C.joinType===1)for(let H of Se)x(m,H,"ringing");e.emitter.emit({type:"group-call:joined",conversation:Sn(F),callId:Q,groupId:F,userId:P,inviteIds:Se,isInvite:C.joinType===1});let S=Se.some(H=>In(H,B))||Se.length===0&&C.joinType===1&&!In(P,B),D=m.members.find(H=>In(H.userId,B));S&&C.joinType===1&&!In(P,B)&&D?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:Sn(F),callId:Q,groupId:F,inviterId:P,inviteIds:Se,createdAt:Number(C.msgTime),expired:false});}function he(R){let C=Fs.decode(R);if(C.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let B=s();if(M(16655,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId),Se=n.get(F);Se===void 0||Se.callId!==Q||(v(Se,P),e.emitter.emit({type:"group-call:left",conversation:Sn(F),callId:Q,groupId:F,userId:P}),Aa(Se.members)&&(k(F,Q),i("ended",F,Q,o()),e.emitter.emit({type:"group-call:finished",conversation:Sn(F),callId:Q,groupId:F,userId:P})));}function ve(R){let C=Vs.decode(R);if(C.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let B=s();if(M(16659,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId);k(F,Q),i("ended",F,Q,Number(C.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:Sn(F),callId:Q,groupId:F,userId:P});}function Ie(R){let C=Qs.decode(R);if(C.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let B=s();if(M(16671,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=C.userId.toString(),Q=je(C.callId),Se=n.get(F);Se!==void 0&&Se.callId===Q&&v(Se,P),e.emitter.emit({type:"group-call:busy",conversation:Sn(F),callId:Q,groupId:F,userId:P,hintUserId:C.hintUser.toString()});}function Ge(R){let C=Ls.decode(R);if(C.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let B=s();if(M(16667,Ue(B,"selfId"),C.msgId),!u(C.msgId))return;let F=C.groupId.toString(),P=je(C.callId),Q=n.get(F);if(!(Q===void 0||Q.callId!==P)){for(let Se of C.users){let m=Se.toString();v(Q,m),e.emitter.emit({type:"group-call:left",conversation:Sn(F),callId:P,groupId:F,userId:m});}Aa(Q.members)&&(k(F,P),i("ended",F,P,o()),e.emitter.emit({type:"group-call:finished",conversation:Sn(F),callId:P,groupId:F,userId:C.userId.toString()}));}}function Z(R){let C=Ks.decode(R);if(C.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");M(16663,Ue(s(),"selfId"),C.msgId);}function K(R){let C=Ds.decode(R);if(C.errCode===32768)return;let B=s();for(let F of n.values()){if(!In(F.inviterId,B))continue;let P=k(F.groupId,F.callId);if(P!==void 0){e.emitter.emit({type:"group-call:failed",conversation:Sn(P.groupId),callId:P.callId,groupId:P.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:C.errCode}}});}function f(R,C){C!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${R} ACK \u5931\u8D25`,cause:{errCode:C}}});}return {commandHandlers:[{command:16644,handler:(R,C)=>$(C)},{command:16642,handler:(R,C)=>K(C)},{command:16648,handler:(R,C)=>ee(C)},{command:16646,handler:(R,C)=>f("answer",Us.decode(C).errCode)},{command:16652,handler:(R,C)=>Ne(C)},{command:16650,handler:(R,C)=>f("join",xs.decode(C).errCode)},{command:16656,handler:(R,C)=>he(C)},{command:16654,handler:(R,C)=>f("hangup",Bs.decode(C).errCode)},{command:16660,handler:(R,C)=>ve(C)},{command:16658,handler:(R,C)=>f("finish",Ps.decode(C).errCode)},{command:16672,handler:(R,C)=>Ie(C)},{command:16670,handler:(R,C)=>f("busy",Zs.decode(C).errCode)},{command:16668,handler:(R,C)=>Ge(C)},{command:16664,handler:(R,C)=>Z(C)},{command:16662,handler:(R,C)=>f("status",Os.decode(C).errCode)}],createRoom:me,joinRoom:w,answer:X,hangup:ne,finish:te,setStatus:se,busy:z,inspectMeeting:p,dispose(){for(let R of n.values())y(R);n.clear();}}}function Ir(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function Jc(e){return [{command:4646,handler:(n,t)=>{let r=Zi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=Wi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=As.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var np=9;function cA(){return {encrypted:true}}function lA(e,n){if(e.length===0)return "empty-input";if(e.length>np)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function uA(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var gA={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function Yc(e,n){let t=e.now??(()=>Date.now()),r=[],o=[];if(n.messages.length===0)return {results:[{ok:false,sourceMessageId:"",targetConversationId:"",targetConversationType:"direct",reason:"empty-input"}],skippedSourceIds:[]};let i=lA(n.targets,e.sendStrategies);if(i!==void 0){for(let a of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let c of n.messages)r.push({ok:false,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let s=[];for(let a of n.messages){let c=e.resolveCurrentMessage===void 0?uA(a)?a:void 0:e.resolveCurrentMessage(a);if(c===void 0||c.id!==a.id||c.conversationId!==a.conversationId||c.conversationType!==a.conversationType){o.push(a.id);continue}if(!(a.itemIndex===void 0?Gc(c):Ia(c))){o.push(a.id);continue}s.push(a.itemIndex===void 0?{message:c}:{message:c,itemIndex:a.itemIndex});}for(let a of n.targets)for(let{message:c,itemIndex:u}of s)try{let p=u===void 0?void 0:Nf(c,u);if(p!==void 0&&!p.ok){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:gA[p.reason]});continue}let y=p?.ok===!0?p.contentType:c.contentType,x=Ko(y);if(x===void 0){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"type-not-allowed"});continue}let v=p?.ok===!0?p.body:x.cloneBody(c),I=cA(),k=x.enqueue({outbox:e.outbox,target:a,source:c,body:v,encryption:I,now:t,contentType:y});r.push({ok:!0,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,newMessageId:k});}catch{r.push({ok:false,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function tp(e,n){if(n.conversationType==="channel")throw new Error("sendGift: CHANNEL \u4E0D\u53D1\u9001\u793C\u7269");if(!ci(n.gift))throw new Error("sendGift: \u793C\u7269\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"gift",body:{gift:n.gift},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var Cr=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function rp(e){let n=new Map;for(let t of e){if(n.has(t.kind))throw new Error(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${t.kind}`);if(!Number.isSafeInteger(t.softMaxBytes)||t.softMaxBytes<=0||!Number.isSafeInteger(t.maxEntries)||t.maxEntries<=0||!Number.isSafeInteger(t.maxEntryBytes)||t.maxEntryBytes<=0||t.maxIdleMs!==void 0&&(!Number.isSafeInteger(t.maxIdleMs)||t.maxIdleMs<=0))throw new RangeError(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u53C2\u6570\u975E\u6CD5\uFF1A${t.kind}`);n.set(t.kind,Object.freeze({...t}));}return Object.freeze({resolve:t=>n.get(t),list:()=>Object.freeze([...n.values()])})}function Jo(e){let n=2166136261,t=2654435761;for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);n=Math.imul(n^o,16777619),t=Math.imul(t^o,2246822507);}return `${(n>>>0).toString(16).padStart(8,"0")}${(t>>>0).toString(16).padStart(8,"0")}`}var op=1,mA=2,Xc=3,fA=3,pA=1440*60*1e3,ip=5,sp=3,ap=6,yA=16*1024*1024,IA=1e3;function zc(e){return Number.isFinite(e)&&e>0}var CA=320,SA=12*1024,dp=20*1024,hA=.9,AA=.72,RA=320,MA=10*1024,tl=16*1024,EA=.84,TA=.68,vA=tl;function qc(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!zc(e.width)||!zc(e.height)||n==="video"&&e.duration!==void 0&&!zc(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>vA)))return {width:e.width,height:e.height,...n==="video"&&e.duration!==void 0?{duration:e.duration}:{},...n==="video"&&e.posterData!==void 0?{thumbData:new Uint8Array(e.posterData)}:{}}}function Ra(e,n){return n===void 0?e:{...e,width:n.width,height:n.height,...n.thumbData===void 0?{}:{thumbData:n.thumbData},...e.duration===void 0&&n.duration!==void 0?{duration:n.duration}:{}}}var jc={contentType:"image",uploadKind:"image",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r),i=await t.imageThumbnail(e,{mimeType:n,maxSize:CA,targetBytes:SA,maxBytes:dp,quality:hA,minQuality:AA},r);return {width:o.width,height:o.height,...i.data.byteLength<=dp?{thumbData:i.data}:{}}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o}){return {image:{url:e,width:n.width,height:n.height,...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},Yo={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:RA,targetBytes:MA,maxBytes:tl,quality:EA,minQuality:TA},r);return {width:o.width,height:o.height,...o.data.byteLength<=tl?{thumbData:o.data}:{},duration:o.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},i){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...i.caption!==void 0&&i.caption!==""?{describe:i.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t,sizeUnit:"bytes"}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},bA={contentType:"voice",uploadKind:"voice",encryptMode:"integral",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){return {voice:{url:e,durationMs:o.durationMs??0,...o.waveform!==void 0&&o.waveform.length>0?{waveform:o.waveform}:{},...n!==void 0?{size:n}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},NA={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r);return {width:o.width,height:o.height}},buildBody({url:e,meta:n,size:t}){return {sticker:{url:e,width:n.width,height:n.height,exprType:2,imageType:1,...t===void 0?{}:{size:t}}}}};function _A(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function DA(e,n){let t=n??"";return t.startsWith("image/")||["jpg","jpeg","png","gif","webp","bmp","heic","svg"].includes(e)?1:t.startsWith("video/")||["mp4","mov","m4v","3gp","avi","mkv","webm","flv"].includes(e)?2:t.startsWith("audio/")||["mp3","m4a","wav","aac","flac","ogg"].includes(e)?3:["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip","rar","7z","apk","json"].includes(e)?4:0}var zo={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",s=_A(i),a=DA(s,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...s!==""?{extension:s}:{},...a!==0?{fileType:a}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},$c={...zo,contentType:"filesAlbum",buildBody(e,n){let t=zo.buildBody(e,n).file;return {filesAlbum:{...n.caption?.trim()?{caption:n.caption}:{},items:[{...t,extension:t.extension??"",fileType:t.fileType??0,...["zip","rar","torrent"].includes(t.extension??"")?{fileType:5}:{},...e.md5===void 0?{}:{md5:e.md5}}]}}}};function Ta(e){switch(e){case "empty":return "media.empty";case "no-crypto":return "media.noCrypto";case "preview-failed":return "media.previewFailed";case "encrypt-failed":return "media.encryptFailed";case "upload-failed":case "offline":return "media.uploadFailed";case "cancelled":return "media.cancelled";case "paused":throw new Error("\u6682\u505C\u4E0D\u662F\u5931\u8D25\u72B6\u6001\uFF0C\u4E0D\u5E94\u751F\u6210\u5931\u8D25\u6587\u6848");case "invalid-duration":return "media.invalidDuration";case "content-too-large":return "media.contentTooLarge"}}function cp(e,n){return e==="video"||n===void 0||n>yA?"large":"small"}function Ea(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function Xo(e){return e.kind==="album"?e.items.flatMap(n=>n.resume===void 0||n.uploaded!==void 0?[]:[{resume:n.resume,kind:n.uploadKind}]):e.resume===void 0?[]:[{resume:e.resume,kind:e.spec.uploadKind}]}function Ma(e){if(e.kind==="album")return {code:ft,reason:"unknown",displayCode:Ta(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file"||e.spec.contentType==="filesAlbum";return {code:ft,reason:"unknown",displayCode:n?"media.uploadInterrupted":Ta(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function GA(e){return typeof e=="function"}function UA(e){return typeof Blob<"u"&&e instanceof Blob}function kA(e){let n=0,t=0,r=[];function o(a){return n<e.total&&(a!=="large"||t<e.largeFiles)}function i(a){n+=1,a==="large"&&(t+=1);let c=false;return ()=>{c||(c=true,n-=1,a==="large"&&(t-=1),s());}}function s(){let a=0;for(;a<r.length;){let c=r[a];if(c.signal.aborted){r.splice(a,1),c.signal.removeEventListener("abort",c.onAbort),c.reject(Ea());continue}if(!o(c.tier)){a+=1;continue}r.splice(a,1),c.signal.removeEventListener("abort",c.onAbort),c.resolve(i(c.tier));}}return {acquire(a,c){return c.aborted?Promise.reject(Ea()):new Promise((u,p)=>{let y={tier:a,signal:c,resolve:u,reject:p,onAbort:()=>{let x=r.indexOf(y);x>=0&&r.splice(x,1),p(Ea());}};r.push(y),c.addEventListener("abort",y.onAbort,{once:true}),s();})}}}function el(e,n){if(!Number.isInteger(e)||e<1||e>ap)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${ap} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function xA(e){if(e===void 0)return {total:ip,largeFiles:sp};if(typeof e=="number")return el(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??ip;el(n,"total");let t=e.largeFiles??Math.min(sp,n);if(el(t,"largeFiles"),t>n)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5927\u6587\u4EF6\u6863\u5E76\u53D1\u6570 ${t} \u4E0D\u80FD\u8D85\u8FC7\u603B\u5E76\u53D1\u6570 ${n}`);return {total:n,largeFiles:t}}function rl(e){let n=kA(xA(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,s=false,a=new Map,c=new Map,u=new Set,p=new Map,y=new Map;function x(m,S){let D=p.get(m)??new Set;p.set(m,D),D.add(S),u.add(S),S.finally(()=>{D.delete(S),u.delete(S),D.size===0&&p.get(m)===D&&p.delete(m),ve(m);});}function v(m){return [...p.get(m)??[]]}let I=new Map,k=new Set,G=new Map,M=new Map,T=new Map,b=new Map,N=new Map,L=new Map,Y=true,me=0,w=0;function X(m){return {conversationType:m.conversationType,conversationId:m.conversationId}}function ne(m,S,D,H){e.mediaTransfer.abandonUpload(m).catch(W=>{e.onMediaTransferError?.({stage:"upload",kind:S,messageId:D,conversation:H,cause:W});});}function te(m,S,D){let H=e.recoveryPort;if(H===void 0)return;let W=v(m),De=Promise.all(W).then(()=>H.remove(X(S),m)).catch(de=>{e.onMediaTransferError?.({stage:"upload",kind:D,messageId:m,conversation:X(S),cause:de});});x(m,De);}function se(m,S,D,H,W,De){if(!Y)return;let de=X(S);G.set(m,{input:X(S),state:D,percent:H,phase:De}),e.emitter.emit({type:"media-task:updated",conversation:de,task:{id:`upload:${m}`,messageId:m,ref:de,direction:"upload",state:D,percent:Math.max(0,Math.min(100,Math.round(H))),attempt:i.get(m)?.attempt??1,maxAttempts:3,...T.get(m),...M.has(m)?{items:Object.freeze(M.get(m).map(E=>Object.freeze({...E,state:E.state==="completed"?"completed":D==="canceled"||D==="failed"?D:E.state})))}:{},...c.get(m),...De===void 0?{}:{phase:De},...W===void 0?{}:{failure:W}}});}function z(m,S){he(),N.delete(m),L.delete(m),N.set(m,S),Ne();}function $(m){let S=i.get(m);if(t.has(m)||I.has(m)||v(m).length>0||S!==void 0&&(S.settled!==true||S.waiting!==void 0))return false;let D=G.get(m)?.state;return D==="failed"||D==="canceled"||D==="paused"&&S?.pauseReason==="manual"}function ee(m,S){let D=X(S.input),H=Xo(S),W=S.kind==="media"?S.spec.uploadKind:"image",De={...Ma(S),displayCode:"media.uploadInterrupted",retryable:false};N.delete(m),L.delete(m),i.delete(m),b.delete(m),T.delete(m),M.delete(m),c.delete(m),a.delete(m),G.delete(m),o.delete(m);for(let E of H)ne(E.resume,E.kind,m,D);if(te(m,D,W),!Y)return;let de=e.domainState.getConversationMessage?.(D,m)??S.message;de.status!=="sent"&&(e.domainState.upsertMessages([{...de,status:"failed",failure:De}],"live"),se(m,D,"failed",0,De));}function Ne(){if(Y)for(let[m,S]of N){if(N.size<=fA)break;$(m)&&ee(m,S);}}function he(){if(!Y)return;let m=Date.now();for(let[S,D]of N){let H=L.get(S);H!==void 0&&m-H>=pA&&$(S)&&ee(S,D);}}function ve(m){Y&&(N.has(m)&&$(m)&&!L.has(m)&&L.set(m,Date.now()),Ne());}async function Ie(m,S,D,H,W,De,de=false){let E=me,O=()=>Y&&E===me;if(!O())return De!==void 0&&D!==void 0&&ne(De,m.uploadKind,D,X(S)),{ok:false,reason:"cancelled"};let q=w,oe=W,Ce=De,Qe,Je=Promise.resolve(void 0),ue,sn=new Set,nn=GA(S.data),be=UA(S.data)?S.data:void 0,hn=nn||be!==void 0?void 0:S.data,Qn=nn||be!==void 0,An=m.streamUpload===true&&be!==void 0,ln=Ze=>{if(be!==void 0)return be;if(Ze===void 0)throw new Error("\u5A92\u4F53\u9884\u89C8\u7F3A\u5C11\u5185\u5BB9\uFF1A\u975E Blob \u8F93\u5165\u5FC5\u987B\u5148\u8BFB\u51FA\u5B57\u8282");return new Blob([Ze],S.mimeType===void 0?void 0:{type:S.mimeType})};if(hn?.length===0||be?.size===0)return {ok:false,reason:"empty"};let Wn=S.encrypted??true;if(Wn&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Xe=qc(S.localPreviewMetadata,m.contentType);if((m.contentType==="video"||m.contentType==="image")&&S.localPreviewMetadata!==void 0&&Xe===void 0)return {ok:false,reason:"preview-failed"};let Ct=D===void 0||H===void 0?e.outbox.allocateMessageIdentity({conversationId:S.conversationId,conversationType:S.conversationType}):{id:D,createdAt:H},{id:J,createdAt:Hn}=Ct,Ut=e.getSelfId(),Cn=Xe??{width:0,height:0};if(!Qn)try{Cn=Ra(await m.buildPreview(ln(hn),S.mimeType,e.mediaPreview),Xe);}catch{}if(!O())return Ce!==void 0&&ne(Ce,m.uploadKind,J,X(S)),{ok:false,reason:"cancelled"};let kt=be?.size??hn?.byteLength,dt={url:S.localPreviewUrl??"",...kt===void 0?{}:{size:kt}},pn={id:J,conversationId:S.conversationId,conversationType:S.conversationType,senderId:Ut,contentType:m.contentType,body:m.buildBody({...dt,meta:Cn},S),createdAt:Hn,sortKey:we(Hn,J),status:"uploading",receipt:"unread",encryption:{encrypted:Wn},...S.refMessageId!==void 0?{refMessageId:S.refMessageId}:{}};e.domainState.upsertMessages([pn],"live",{newOutgoing:true});let Jn=de?0:b.get(J)??0;de&&T.delete(J),b.set(J,Jn),se(J,S,"queued",Jn,void 0,"waiting-upload-slot");let _n=(Ze,$e=false)=>{let en={code:ft,reason:"unknown",displayCode:Qe==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":Qe==="resume-unavailable"?"media.resumeUnavailable":Qe==="timeout"?"media.uploadTimeout":Ta(Ze),mediaKind:m.uploadKind,retryable:$e};if(!O())return {ok:false,reason:Ze};let cn=i.get(J);return cn?.stopped==="paused"?(se(J,S,"paused",b.get(J)??0),{ok:false,reason:Ze}):cn!==void 0&&cn.stopped===void 0&&cn.attempt<3&&(cn.failure==="network"||cn.failure==="timeout"||cn.failure==="credentials-expired"||Ze==="offline"&&e.waitUntilOnline!==void 0)?(se(J,S,"queued",b.get(J)??0,void 0,"waiting-retry"),{ok:false,reason:Ze}):cn?.stopped==="cancelled"||cn!==void 0&&cn.attempt>=3&&(cn.failure==="network"||cn.failure==="timeout"||cn.failure==="credentials-expired")?{ok:false,reason:Ze}:(e.domainState.upsertMessages([{...pn,status:"failed",failure:en}],"live"),se(J,S,Ze==="cancelled"?"canceled":"failed",b.get(J)??0,en),{ok:false,reason:Ze})},Re=async()=>{if(Ce!==void 0)try{await e.mediaTransfer.abandonUpload(Ce),Ce=void 0;}catch(Ze){throw Qe="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:Ze}),Ze}},xe=async Ze=>{if(await Je,await Promise.all([...sn]),Ze==="cancelled"&&i.get(J)?.stopped!=="paused"&&i.get(J)?.retainCheckpoint!==true&&Qe!=="cleanup-unconfirmed")try{await Re();}catch{}return Ze==="cancelled"&&i.get(J)?.stopped!=="paused"&&i.get(J)?.retainCheckpoint!==true&&e.recoveryPort!==void 0&&(await Promise.all([...sn]),await e.recoveryPort.remove(X(S),J).catch($e=>e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:$e}))),O()?(z(J,{kind:"media",spec:m,input:S,createdAt:Hn,message:pn,failureReason:Ze,...i.get(J)?.retainCheckpoint===true?{retainCheckpoint:true}:{},...Qe==="cleanup-unconfirmed"||Qe==="resume-unavailable"?{restartRequired:true}:{},...oe===void 0?{}:{teaKey:oe},...Ce===void 0?{}:{resume:Ce}}),_n(Ze,true)):{ok:false,reason:"cancelled"}},pe=new AbortController;t.set(J,pe),r.set(J,X(S));let _e=i.get(J)?.stopped;_e!==void 0&&pe.abort(_e==="cancelled"&&i.get(J)?.retainCheckpoint?"cancelled-preserve":_e),e.isOnline?.()===false&&R(J,"offline");try{if(de&&(await Re(),!O()))return {ok:!1,reason:"cancelled"};if(be!==void 0&&!(m.contentType==="video"&&Xe?.thumbData!==void 0)){try{Cn=Ra(await m.buildPreview(be,S.mimeType,e.mediaPreview,pe.signal),Xe);}catch{}if(!O())return {ok:!1,reason:"cancelled"};pn={...pn,body:m.buildBody({url:S.localPreviewUrl??"",meta:Cn,size:be.size},S)},e.domainState.upsertMessages([pn],"live");}let Ze=await n.acquire(cp(m.contentType,be?.size??hn?.byteLength),pe.signal);try{se(J,S,"running",b.get(J)??0);let $e;try{An||($e=nn?await S.data():be!==void 0?new Uint8Array(await be.arrayBuffer()):hn);}catch{return _n("upload-failed",!0)}let en=An?be.size:$e.length;if(en===0)return _n("empty");if(nn&&!(m.contentType==="video"&&Xe?.thumbData!==void 0)){try{Cn=Ra(await m.buildPreview(ln($e),S.mimeType,e.mediaPreview,pe.signal),Xe);}catch{}if(!O())return {ok:!1,reason:"cancelled"};pn={...pn,body:m.buildBody({url:S.localPreviewUrl??"",meta:Cn,size:en},S)},e.domainState.upsertMessages([pn],"live");}if(pe.signal.throwIfAborted(),(m.contentType==="video"||m.contentType==="file"||m.contentType==="filesAlbum")&&e.recoveryPort!==void 0&&e.shouldPersistUpload?.(m.uploadKind,en)===!0){ue=new AbortController,y.set(J,ue);let an=ue.signal;c.set(J,{recovery:"session-only",recoveryReason:"fingerprint-pending"}),Je=Promise.resolve().then(()=>e.recoveryPort.fingerprint(An?be:$e,an)).catch(Ye=>{!an.aborted&&O()&&(c.set(J,{recovery:"session-only",recoveryReason:"unavailable"}),e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:Ye}));}),An||await Je;}if(pe.signal.aborted)throw Ea();let cn=An?be:$e,St,ht=op;if(Wn&&e.crypto!==void 0&&m.encryptMode!=="none"){let an=e.crypto;try{oe??=an.randomTeaKey();let Ye=oe;m.encryptMode==="simple"?(cn=An?new Blob([new Uint8Array(an.encryptFileSimple({teaKey:Ye,plain:new Uint8Array(await be.slice(0,32).arrayBuffer())})),be.slice(32)]):an.encryptFileSimple({teaKey:Ye,plain:$e}),ht=mA):An?(St=Dn=>an.encryptSymmetricChunked({teaKey:Ye,plain:Dn,signal:pe.signal}),ht=Xc):(cn=an.encryptSymmetric({teaKey:Ye,plain:$e}),ht=Xc);}catch{return _n("encrypt-failed")}}let Ht;try{e.isOnline?.()===!1&&R(J,"offline"),await e.waitUntilOnline?.(pe.signal),pe.signal.throwIfAborted(),Ht=(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:i.get(J)?.refreshCredentials===!0,data:cn,...St===void 0?{}:{transformPart:St},kind:m.uploadKind,conversationType:S.conversationType,signal:pe.signal,...Ce===void 0?{}:{resume:Ce},onFailure:Ye=>{if(O()&&t.get(J)===pe){Qe=Ye;let Dn=i.get(J);Dn!==void 0&&(Dn.failure=Ye);}},onResumeInvalidated:()=>{O()&&t.get(J)===pe&&(Ce=void 0);},onResumable:Ye=>{if(!(!O()||t.get(J)!==pe)&&(Ce=Ye,(i.get(J)?.stopped!=="cancelled"||i.get(J)?.retainCheckpoint===!0)&&ue!==void 0&&e.recoveryPort!==void 0&&(m.contentType==="video"||m.contentType==="file"||m.contentType==="filesAlbum"))){let Dn=a.get(J)??Date.now();a.set(J,Dn);let Bn=Je.then(async un=>{un===void 0||ue?.signal.aborted||!O()&&!s||t.get(J)!==pe||i.get(J)?.stopped==="cancelled"&&i.get(J)?.retainCheckpoint!==!0&&!s||(await e.recoveryPort.save({version:1,ref:X(S),messageId:J,kind:m.contentType==="video"?"video":"file",createdAt:Hn,savedAt:Dn,source:{...un,...S.filename===void 0?{}:{filename:S.filename},...S.mimeType===void 0?{}:{mimeType:S.mimeType}},encrypted:Wn,...oe===void 0?{}:{teaKey:oe},resume:Ye,...S.caption===void 0?{}:{caption:S.caption},...S.filesAlbum===void 0?{}:{filesAlbum:S.filesAlbum},...S.refMessageId===void 0?{}:{refMessageId:S.refMessageId},...m.contentType==="video"?{preview:Cn}:{}}),t.get(J)===pe&&!ue?.signal.aborted&&c.set(J,{recovery:"available"}));}).catch(un=>{let Ga=typeof un=="object"&&un!==null&&"reason"in un?String(un.reason):"storage";(t.get(J)===pe||N.has(J))&&c.set(J,{recovery:"session-only",recoveryReason:Ga}),e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:un});});sn.add(Bn),x(J,Bn),Bn.finally(()=>{sn.delete(Bn);let un=G.get(J);Y&&un!==void 0&&(un.state==="running"||un.state==="paused"||un.state==="queued")&&se(J,un.input,un.state,un.percent,void 0,un.phase);});}},...S.filename!==void 0?{filename:S.filename}:{},...S.mimeType!==void 0?{mimeType:S.mimeType}:{},onProgress:Ye=>{if(!O()||pe.signal.aborted||t.get(J)!==pe)return;let Dn=Number.isFinite(Ye.percent)?Math.max(0,Math.min(100,Math.round(Ye.percent))):0,Bn=Math.max(b.get(J)??0,Dn);T.set(J,{bytesTransferred:Ye.bytesTransferred,bytesTotal:Ye.bytesTotal}),b.set(J,Bn),e.emitter.emit({type:"media:progress",conversation:X(S),messageId:J,percent:Bn}),!pe.signal.aborted&&t.get(J)===pe&&se(J,S,"running",Bn,void 0,Ye.phase);}})).url;}catch(an){if((!pe.signal.aborted||!(an instanceof Error&&an.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:an}),!O())return {ok:!1,reason:"cancelled"};let Ye=pe.signal.aborted?o.get(J)??"cancelled":"upload-failed";return await xe(Ye)}if(!O())return {ok:!1,reason:"cancelled"};if(pe.signal.aborted){let an=o.get(J)??"cancelled";return await xe(an)}if(q===w&&(m.contentType==="image"||m.contentType==="video")&&e.mediaAssetCache!==void 0){let an=m.contentType,Ye=be??new Blob([$e],S.mimeType===void 0?void 0:{type:S.mimeType}),Dn=Ye.size;e.mediaAssetCache.put({kind:an,messageId:J,resourceVersion:Jo(Ht),blob:Ye,...S.mimeType===void 0?{}:{mimeType:S.mimeType}}).catch(Bn=>{e.onMediaAssetCacheError?.({operation:"put",kind:an,messageId:J,byteLength:Dn,cause:Bn});});}let xt=m.contentType==="filesAlbum"?await e.mediaPreview.fileMd5?.(ln($e),pe.signal):void 0;if(!O())return {ok:!1,reason:"cancelled"};if(pe.signal.throwIfAborted(),m.contentType==="filesAlbum"&&xt===void 0)throw new Error("FILES_ALBUM requires fileMd5");return await Je,await Promise.all([...sn]),O()?(pe.signal.throwIfAborted(),e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:J,conversationId:S.conversationId,conversationType:S.conversationType,contentType:m.contentType,body:m.buildBody({url:Ht,meta:Cn,size:en,...xt===void 0?{}:{md5:xt},...m.encryptMode==="none"?{}:{teaKey:oe,fileEncryptType:ht}},S),encryption:{encrypted:Wn},createdAt:Hn,...S.refMessageId!==void 0?{refMessageId:S.refMessageId}:{}}),await Promise.all([...sn]),e.recoveryPort!==void 0&&await e.recoveryPort.remove(X(S),J).catch(an=>e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:J,conversation:X(S),cause:an})),se(J,S,"completed",100),{ok:!0,messageId:J}):{ok:!1,reason:"cancelled"}}finally{Ze();}}catch{if(!O())return {ok:false,reason:"cancelled"};let Ze=pe.signal.aborted?o.get(J)??"cancelled":"upload-failed";return await xe(Ze)}finally{await Je,await Promise.all([...sn]),y.get(J)===ue&&y.delete(J),!O()&&s&&await Promise.all([...sn]),!O()&&Ce!==void 0&&!(s&&c.get(J)?.recovery==="available")&&ne(Ce,m.uploadKind,J,X(S)),t.get(J)===pe&&(t.delete(J),r.delete(J),N.has(J)||b.delete(J),o.delete(J));}}async function Ge(m){let{conversation:S,encryptWith:D,isCurrentAttempt:H,item:W,onBytesUploaded:De,onPreviewReady:de,onSlotAcquired:E,signal:O,state:q}=m,oe=W.kind==="video"?Yo:jc,Ce=qc(W.localPreviewMetadata,W.kind),Qe=Ce??{width:0,height:0};if(!(W.kind==="video"&&Ce?.thumbData!==void 0))try{Qe=Ra(await oe.buildPreview(W.data,W.mimeType,e.mediaPreview,O),Ce);}catch{}Qe.thumbData===void 0&&q.preview?.thumbData!==void 0&&(Qe=q.preview),q.preview=Qe,de();let Je=await n.acquire(cp(W.kind,W.data.size),O);try{E();let ue,sn=op;if(D!==void 0){q.teaKey??=D.randomTeaKey();let be=q.teaKey;ue=hn=>D.encryptSymmetricChunked({teaKey:be,plain:hn,signal:O}),sn=Xc;}return {url:(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:m.forceRefreshCredentials,data:W.data,...ue===void 0?{}:{transformPart:ue},kind:oe.uploadKind,conversationType:S.conversationType,signal:O,...q.resume===void 0?{}:{resume:q.resume},onFailure:be=>{H()&&m.onFailure(be);},onResumeInvalidated:()=>{H()&&delete q.resume;},onResumable:be=>{!Y||!H()||(q.resume=be);},...W.filename!==void 0?{filename:W.filename}:{},...W.mimeType!==void 0?{mimeType:W.mimeType}:{},onProgress:be=>{!Y||O.aborted||!H()||De(be.bytesTransferred);}})).url,meta:Qe,size:W.data.size,...q.teaKey===void 0?{}:{teaKey:q.teaKey},fileEncryptType:sn}}finally{Je();}}function Z(m,S,D){let H=S.uploaded,W=H?.meta??S.preview??qc(m.localPreviewMetadata,m.kind)??{width:0,height:0};return {kind:m.kind,url:H?.url??m.localPreviewUrl??"",width:W.width,height:W.height,...m.kind==="video"&&W.duration!==void 0&&W.duration>0?{durationMs:Math.max(1,Math.round(W.duration*1e3))}:{},...W.thumbData===void 0?{}:{thumbData:W.thumbData},size:H?.size??m.data.size,...H?.teaKey===void 0?{}:{teaKey:H.teaKey},...H===void 0?{}:{fileEncryptType:H.fileEncryptType},...D===void 0?{}:{hd:D}}}async function K(m,S,D,H,W=false){let De=me,de=()=>Y&&De===me,E=X(m),O=(Re,xe)=>{for(let pe of xe)pe.resume!==void 0&&ne(pe.resume,pe.uploadKind,Re,E);};if(!de())return S!==void 0&&H!==void 0&&O(S,H),{ok:false,reason:"cancelled"};if(m.items.length===0)return {ok:false,reason:"empty"};if(m.items.length>jt)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${jt} \u9879\uFF0C\u6536\u5230 ${m.items.length} \u9879`);let q=m.caption!==void 0&&m.caption.trim()!==""?m.caption:void 0;if(q!==void 0&&q.length>At)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${At} \u5B57\u7B26\uFF0C\u6536\u5230 ${q.length}`);if(m.items.some(Re=>Re.data.size===0))return {ok:false,reason:"empty"};if(H===void 0&&Wa(m)!=="mediaAlbum"){let Re=m.items[0];return Ie(Re.kind==="video"?Yo:jc,{conversationId:m.conversationId,conversationType:m.conversationType,data:Re.data,...Re.mimeType!==void 0?{mimeType:Re.mimeType}:{},...Re.filename!==void 0?{filename:Re.filename}:{},...Re.localPreviewUrl!==void 0?{localPreviewUrl:Re.localPreviewUrl}:{},...Re.localPreviewMetadata!==void 0?{localPreviewMetadata:Re.localPreviewMetadata}:{},...m.encrypted!==void 0?{encrypted:m.encrypted}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}},S,D)}let oe=m.encrypted??true;if(oe&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Ce=oe?e.crypto:void 0,Qe=w,Je=S===void 0||D===void 0?e.outbox.allocateMessageIdentity(E):{id:S,createdAt:D},{id:ue,createdAt:sn}=Je,nn=m.items.map((Re,xe)=>{let pe=H?.[xe];return {uploadKind:Re.kind,...pe?.uploaded===void 0?{}:{uploaded:pe.uploaded},...pe?.preview===void 0?{}:{preview:pe.preview},...pe?.teaKey===void 0?{}:{teaKey:pe.teaKey},...pe?.resume===void 0?{}:{resume:pe.resume}}}),be=nn.map((Re,xe)=>{let pe=m.items[xe].data.size,_e=Re.uploaded!==void 0?pe:W?0:Re.resume?.bytesUploaded??0;return {itemIndex:xe,bytesTransferred:_e,bytesTotal:pe,percent:Re.uploaded!==void 0?100:Math.min(99,Math.floor(_e/pe*100)),state:Re.uploaded!==void 0?"completed":"queued"}});M.set(ue,be);let hn=()=>({...q===void 0?{}:{caption:q},items:m.items.map((Re,xe)=>Z(Re,nn[xe],m.hd))}),Qn={id:ue,conversationId:m.conversationId,conversationType:m.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:hn()},createdAt:sn,sortKey:we(sn,ue),status:"uploading",receipt:"unread",encryption:{encrypted:oe},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}};e.domainState.upsertMessages([Qn],"live",{newOutgoing:true});let An=W?0:b.get(ue)??0;W&&T.delete(ue),b.set(ue,An),se(ue,m,"queued",An,void 0,"waiting-upload-slot");let ln,Wn=(Re,xe)=>{let pe={code:ft,reason:"unknown",displayCode:ln==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":ln==="resume-unavailable"?"media.resumeUnavailable":ln==="timeout"?"media.uploadTimeout":Ta(Re),retryable:xe};if(!de())return {ok:false,reason:Re};let _e=i.get(ue);return _e?.stopped==="paused"?(se(ue,m,"paused",b.get(ue)??0),{ok:false,reason:Re}):_e!==void 0&&_e.stopped===void 0&&_e.attempt<3&&(_e.failure==="network"||_e.failure==="timeout"||_e.failure==="credentials-expired"||Re==="offline"&&e.waitUntilOnline!==void 0)?(se(ue,m,"queued",b.get(ue)??0,void 0,"waiting-retry"),{ok:false,reason:Re}):_e?.stopped==="cancelled"||_e!==void 0&&_e.attempt>=3&&(_e.failure==="network"||_e.failure==="timeout"||_e.failure==="credentials-expired")?{ok:false,reason:Re}:(e.domainState.upsertMessages([{...Qn,status:"failed",failure:pe}],"live"),se(ue,m,Re==="cancelled"?"canceled":"failed",b.get(ue)??0,pe),{ok:false,reason:Re})},Xe=new AbortController;t.set(ue,Xe),r.set(ue,E);let Ct=i.get(ue)?.stopped;Ct!==void 0&&Xe.abort(Ct==="cancelled"&&i.get(ue)?.retainCheckpoint?"cancelled-preserve":Ct),e.isOnline?.()===false&&R(ue,"offline");let J=()=>de()&&t.get(ue)===Xe,Hn=()=>{!de()||!J()||(Qn={...Qn,body:{mediaAlbum:hn()}},e.domainState.upsertMessages([Qn],"live"));},Ut=m.items.reduce((Re,xe)=>Re+xe.data.size,0),Cn=nn.map((Re,xe)=>Re.uploaded!==void 0?m.items[xe].data.size:Re.resume?.bytesUploaded??0),kt=()=>{if(!de()||!J()||Xe.signal.aborted)return;let Re=Cn.reduce((pe,_e)=>pe+_e,0),xe=Math.min(99,Math.max(b.get(ue)??0,Math.floor(Re/Ut*100)));T.set(ue,{bytesTransferred:Re,bytesTotal:Ut}),b.set(ue,xe),e.emitter.emit({type:"media:progress",conversation:E,messageId:ue,percent:xe}),!Xe.signal.aborted&&J()&&se(ue,m,"running",xe,void 0,"transferring");},dt,pn=(Re,xe)=>{dt===void 0&&(dt=Xe.signal.aborted?o.get(ue)??"cancelled":"upload-failed",dt==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:Re,messageId:ue,conversation:E,cause:xe}),Xe.abort("offline"));},Jn=async()=>{let Re=true;return await Promise.all(nn.map(async xe=>{if(xe.resume!==void 0)try{await e.mediaTransfer.abandonUpload(xe.resume),delete xe.resume;}catch(pe){Re=false,ln="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:xe.uploadKind,messageId:ue,conversation:E,cause:pe});}})),Re},_n=Re=>(z(ue,{kind:"album",input:m,createdAt:sn,message:Qn,failureReason:Re,items:nn,...i.get(ue)?.retainCheckpoint===true?{retainCheckpoint:true}:{},...ln==="cleanup-unconfirmed"||ln==="resume-unavailable"?{restartRequired:true}:{}}),Wn(Re,true));try{if(W){let pe=await Jn();if(!de())return {ok:!1,reason:"cancelled"};if(!pe)return _n(o.get(ue)==="cancelled"?"cancelled":"upload-failed");for(let _e=0;_e<nn.length;_e+=1)nn[_e].uploaded===void 0&&(Cn[_e]=0);}if(await Promise.all(m.items.map(async(pe,_e)=>{let Ze=nn[_e];if(Ze.uploaded===void 0)try{e.isOnline?.()===!1&&R(ue,"offline"),await e.waitUntilOnline?.(Xe.signal),Xe.signal.throwIfAborted();let $e=await Ge({item:pe,state:Ze,conversation:E,encryptWith:Ce,signal:Xe.signal,isCurrentAttempt:J,onPreviewReady:Hn,onSlotAcquired:()=>{!de()||!J()||Xe.signal.aborted||(be[_e]={...be[_e],state:"running"},se(ue,m,"running",b.get(ue)??0));},forceRefreshCredentials:i.get(ue)?.refreshCredentials===!0,onFailure:en=>{let cn=en==="cleanup-unconfirmed"||en==="resume-unavailable";if(Xe.signal.aborted&&!cn)return;(en==="cleanup-unconfirmed"||ln!=="cleanup-unconfirmed"&&(en==="resume-unavailable"||ln!=="resume-unavailable"))&&(ln=en);let St=i.get(ue);St!==void 0&&(St.failure=ln);},onBytesUploaded:en=>{Cn[_e]=en,be[_e]={...be[_e],bytesTransferred:en,percent:Math.min(99,Math.floor(en/pe.data.size*100)),state:"running"},kt();}});if(!J())return;Ze.uploaded=$e,be[_e]={...be[_e],bytesTransferred:pe.data.size,percent:100,state:"completed"},Cn[_e]=pe.data.size,kt();}catch($e){J()&&!Xe.signal.aborted&&(be[_e]={...be[_e],state:"failed"}),pn(pe.kind,$e);}})),!de())return {ok:!1,reason:"cancelled"};if(!J())return {ok:!1,reason:"cancelled"};if(o.get(ue)==="cancelled")return ln!=="cleanup-unconfirmed"&&i.get(ue)?.retainCheckpoint!==!0&&await Jn(),de()?_n("cancelled"):{ok:!1,reason:"cancelled"};if(dt!==void 0)return _n(dt);if(Xe.signal.aborted){let pe=o.get(ue)??"cancelled";return _n(pe)}let Re=hn(),xe;try{xe=ii(Mr(Re).content);}catch(pe){return e.onMediaAlbumContentSize?.({messageId:ue,conversation:E,itemCount:Re.items.length,outcome:"rejected",cause:pe}),Wn("content-too-large",!1)}if(xe>=Ha&&e.onMediaAlbumContentSize?.({messageId:ue,conversation:E,itemCount:Re.items.length,contentBytes:xe,outcome:"warn"}),Qe===w&&e.mediaAssetCache!==void 0){let pe=e.mediaAssetCache;m.items.forEach((_e,Ze)=>{let $e=nn[Ze].uploaded;$e!==void 0&&pe.put({kind:_e.kind,messageId:ue,resourceVersion:Jo($e.url),blob:_e.data,..._e.mimeType===void 0?{}:{mimeType:_e.mimeType}}).catch(en=>{e.onMediaAssetCacheError?.({operation:"put",kind:_e.kind,messageId:ue,byteLength:_e.data.size,cause:en});});});}return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:ue,conversationId:m.conversationId,conversationType:m.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:Re},encryption:{encrypted:oe},createdAt:sn,...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}}),se(ue,m,"completed",100),{ok:!0,messageId:ue}}finally{de()||O(ue,nn),t.get(ue)===Xe&&(t.delete(ue),r.delete(ue),N.has(ue)||b.delete(ue),o.delete(ue));}}function f(m,S,D,H=1){let{id:W,createdAt:De}=D??e.outbox.allocateMessageIdentity(X(m)),de={attempt:H};L.delete(W),i.set(W,de);let E,O,q=new Promise((oe,Ce)=>{E=oe,O=Ce;});return de.done=q,(async()=>{let oe=await S(W,De);for(;i.get(W)===de&&de.stopped===void 0&&de.attempt<3;){let Je=N.get(W);if(!Y||oe.ok||Je===void 0||Je.restartRequired||!(de.failure==="network"||de.failure==="timeout"||de.failure==="credentials-expired"||!oe.ok&&oe.reason==="offline"&&e.waitUntilOnline!==void 0))break;let ue=new AbortController;if(de.waiting=ue,await e.waitUntilOnline?.(ue.signal).catch(()=>{}),await new Promise(sn=>{let nn=setTimeout(be,de.attempt===1?1e3:3e3);function be(){clearTimeout(nn),ue.signal.removeEventListener("abort",be),sn();}ue.signal.addEventListener("abort",be,{once:true}),ue.signal.aborted&&be();}),await e.waitUntilOnline?.(ue.signal).catch(()=>{}),delete de.waiting,!Y||de.stopped!==void 0||i.get(W)!==de)break;de.attempt+=1,de.refreshCredentials=de.failure==="credentials-expired",delete de.failure,N.delete(W),L.delete(W),oe=await A(W,Je,false);}let Ce=N.get(W),Qe=de.stopped!=="cancelled"&&de.attempt>=3&&(de.failure==="network"||de.failure==="timeout"||de.failure==="credentials-expired");if(Y&&i.get(W)===de&&Ce!==void 0&&Qe&&e.retainFailedUploads===true){de.stopped="cancelled",de.retainCheckpoint=true,Ce.retainCheckpoint=true;let Je={...Ma(Ce),displayCode:de.failure==="timeout"?"media.uploadTimeout":"media.uploadFailed",retryable:true};e.domainState.upsertMessages([{...Ce.message,status:"failed",failure:Je}],"live"),se(W,Ce.input,"failed",b.get(W)??0,Je);}else if(Y&&i.get(W)===de&&Ce!==void 0&&(de.stopped==="cancelled"||Qe)){de.stopped="cancelled";let Je={...Ma(Ce),displayCode:de.failure==="timeout"?"media.uploadTimeout":"media.cancelled",retryable:de.retainCheckpoint===true&&!Qe};(de.retainCheckpoint!==true||Qe)&&await F(W,Ce),Y&&i.get(W)===de&&(e.domainState.upsertMessages([{...Ce.message,status:"failed",failure:Je}],"live"),se(W,Ce.input,"canceled",b.get(W)??0,Je)),oe={ok:false,reason:"cancelled"};}return de.stopped==="paused"?{ok:false,reason:"paused"}:oe})().then(oe=>{de.settled=true,ve(W),E(oe);},oe=>{de.settled=true,ve(W),O(oe);}),q.then(()=>{i.get(W)===de&&de.stopped!=="paused"&&(i.delete(W),N.has(W)||(b.delete(W),T.delete(W),M.delete(W),c.delete(W),a.delete(W),G.delete(W)));},()=>{i.get(W)===de&&i.delete(W);}),q}function A(m,S,D){return S.kind==="album"?K(S.input,m,S.createdAt,S.items,D):Ie(S.spec,S.input,m,S.createdAt,S.teaKey,S.resume,D)}function R(m,S){let D=i.get(m);if(!Y||D===void 0||D.stopped==="cancelled")return;if(D.stopped==="paused"){S==="pagehide"&&D.pauseReason==="offline"&&(D.pauseReason="pagehide");return}D.stopped="paused",D.pauseReason=S;let H=t.get(m);D.waiting?.abort(),H?.abort("paused");let W=G.get(m);W!==void 0&&i.get(m)===D&&D.stopped==="paused"&&se(m,W.input,"paused",b.get(m)??W.percent);}async function C(m,S="manual"){let D=i.get(m);if(!Y||D===void 0||D.stopped==="cancelled")return false;if(D.stopped==="paused")return (S==="manual"||S==="pagehide"&&D.pauseReason==="offline")&&(D.pauseReason=S),await D.done,ve(m),Y&&i.get(m)===D&&N.has(m);R(m,S),await D.done,await Promise.all(v(m));let H=N.get(m);return !Y||i.get(m)!==D||D.stopped!=="paused"||H===void 0?false:(se(m,H.input,"paused",b.get(m)??0),true)}function B(m){he();let S=i.get(m),D=N.get(m);if(!Y||S?.stopped!=="paused"||S.settled!==true||D===void 0||t.has(m))return false;N.delete(m),L.delete(m);let H=me;return f(D.input,()=>A(m,D,false),{id:m,createdAt:D.createdAt},S.attempt).catch(W=>{Y&&H===me&&e.onMediaTransferError?.({stage:"upload",kind:D.kind==="media"?D.spec.uploadKind:"image",messageId:m,conversation:X(D.input),cause:W});}),true}async function F(m,S){N.delete(m),L.delete(m),c.delete(m),a.delete(m),T.delete(m),M.delete(m),k.add(m);try{await Promise.all(v(m)),await e.recoveryPort?.remove(X(S.input),m).catch(D=>{e.onMediaTransferError?.({stage:"upload",kind:S.kind==="media"?S.spec.uploadKind:"image",messageId:m,conversation:X(S.input),cause:D});}),await Promise.all(Xo(S).map(async D=>{try{await e.mediaTransfer.abandonUpload(D.resume);}catch(H){e.onMediaTransferError?.({stage:"upload",kind:D.kind,messageId:m,conversation:X(S.input),cause:H});}}));}catch(D){e.onMediaTransferError?.({stage:"upload",kind:S.kind==="media"?S.spec.uploadKind:"image",messageId:m,conversation:X(S.input),cause:D});}finally{k.delete(m),c.delete(m),a.delete(m),T.delete(m);}}function P(m,S){if(e.recoveryPort===void 0)return;let D=v(m),H=e.domainState.getConversationMessage?.(S,m)?.contentType==="video"?"video":"file",W=Promise.all(D).then(()=>e.recoveryPort.remove(S,m)).catch(De=>{e.onMediaTransferError?.({stage:"upload",kind:H,messageId:m,conversation:S,cause:De});});x(m,W);}function Q(m,S){if(he(),!Y)return false;let D=i.get(m),H=t.get(m);if(S?.retainCheckpoint!==true&&y.get(m)?.abort(),D!==void 0&&(D.stopped="cancelled",D.retainCheckpoint=S?.retainCheckpoint===true,D.waiting?.abort()),H!==void 0){let de=r.get(m);return de!==void 0&&S?.retainCheckpoint!==true&&P(m,de),o.set(m,"cancelled"),H.abort(S?.retainCheckpoint===true?"cancelled-preserve":"cancelled"),true}let W=N.get(m);if(W===void 0||D===void 0)return D!==void 0&&G.get(m)?.state==="queued";if(S?.retainCheckpoint===true)W.retainCheckpoint=true,W.failureReason="cancelled";else {let de=F(m,W);x(m,de);}let De={...Ma(W),displayCode:"media.cancelled",retryable:S?.retainCheckpoint===true};return e.domainState.upsertMessages([{...W.message,status:"failed",failure:De}],"live"),se(m,W.input,"canceled",b.get(m)??0,De),i.get(m)===D&&i.delete(m),ve(m),S?.retainCheckpoint!==true&&(b.delete(m),M.delete(m),G.delete(m)),true}async function Se(m,S,D,H){he();let W=me,De=v(S);return De.length>0&&await Promise.all(De),!Y||W!==me?{ok:false,reason:"cancelled"}:(a.delete(S),f(H,()=>Ie(m,H,S,D,void 0,void 0,true),{id:S,createdAt:D}))}return {sendImage:m=>f(m,(S,D)=>Ie(jc,m,S,D)),sendVideo:m=>f(m,(S,D)=>Ie(Yo,m,S,D)),replaceVideo:(m,S,D)=>Se(Yo,m,S,D),sendVoice:m=>{let S=m.durationMs;return S===void 0||!Number.isFinite(S)||S<IA?Promise.resolve({ok:false,reason:"invalid-duration"}):f(m,(D,H)=>Ie(bA,m,D,H))},sendFile:m=>m.caption!==void 0&&m.caption.length>At?Promise.resolve({ok:false,reason:"content-too-large"}):f(m,(S,D)=>Ie(m.filesAlbum||m.caption?.trim()?$c:zo,m,S,D)),sendGif:m=>f(m,(S,D)=>Ie(NA,{...m,encrypted:false},S,D)),sendMediaAlbum:m=>f(m,(S,D)=>K(m,S,D)),replaceFile:(m,S,D)=>D.caption!==void 0&&D.caption.length>At?Promise.resolve({ok:false,reason:"content-too-large"}):Se(D.filesAlbum||D.caption?.trim()?$c:zo,m,S,D),cancel:Q,pause:C,async pauseAll(m="pagehide"){for(let{controller:S}of I.values())S.abort();await Promise.all([...i.keys()].map(S=>C(S,m)));},async resumePaused(m,S){await Promise.all([...i.entries()].map(async([D,H])=>{if(S?.aborted||H.stopped!=="paused"||H.pauseReason==="manual"||m===void 0&&H.pauseReason!=="offline")return;let W=G.get(D)?.input;if(m!==void 0&&(W?.conversationType!==m.conversationType||W.conversationId!==m.conversationId))return;await H.done;let De=N.get(D);S?.aborted||i.get(D)!==H||De===void 0||m===void 0&&H.pauseReason!=="offline"||m!==void 0&&(De.input.conversationType!==m.conversationType||De.input.conversationId!==m.conversationId)||B(D);}));},resume:B,cancelConversation(m,S="offline"){for(let D of I.values())D.ref.conversationType===m.conversationType&&D.ref.conversationId===m.conversationId&&D.controller.abort();for(let[D,H]of N)if(H.input.conversationType===m.conversationType&&H.input.conversationId===m.conversationId){if(i.has(D))Q(D);else {for(let W of Xo(H))ne(W.resume,W.kind,D,X(H.input));e.recoveryPort?.remove(X(H.input),D).catch(W=>e.onMediaTransferError?.({stage:"upload",kind:H.kind==="media"?H.spec.uploadKind:"image",messageId:D,conversation:m,cause:W}));}N.delete(D),L.delete(D),M.delete(D),T.delete(D),b.delete(D),G.delete(D);}if(Y)for(let[D,H]of r){if(H.conversationType!==m.conversationType||H.conversationId!==m.conversationId)continue;let W=t.get(D);if(W===void 0)continue;let De=i.get(D);De!==void 0&&(De.stopped="cancelled"),o.set(D,S),y.get(D)?.abort(),W.abort(S);}},cancelAll(m="offline"){if(Y){if(m==="offline"){let S=me;for(let D of i.keys()){let H=G.get(D)?.input;C(D,"offline").catch(W=>{Y&&S===me&&H!==void 0&&e.onMediaTransferError?.({stage:"upload",kind:e.domainState.getConversationMessage?.(H,D)?.contentType==="video"?"video":"file",messageId:D,conversation:H,cause:W});});}return}if(m==="session-ended"){for(let{controller:S}of I.values())S.abort();for(let S of i.values())S.stopped="cancelled",S.waiting?.abort();me+=1,w+=1;}for(let S of y.values())S.abort(m);for(let S of t.values())S.abort(m);}},retry(m,S){if(he(),k.has(m)||!Y)return false;let D=N.get(m);if(D===void 0||i.get(m)?.retainCheckpoint===true&&i.get(m)?.settled!==true||D.restartRequired&&S?.restartUpload!==true)return false;let H=S?.restartUpload===true||D.failureReason==="cancelled"&&D.retainCheckpoint!==true;return N.delete(m),L.delete(m),f(D.input,()=>A(m,D,H),{id:m,createdAt:D.createdAt}),true},expireRetainedUploads:he,invalidateAssetCacheWrites(){w+=1;},async dispose(m){if(!Y)return;s=m?.preserveRecovery===true;for(let{controller:D}of I.values())D.abort();let S=[...i.values()].flatMap(D=>D.done===void 0?[]:[D.done]);for(let D of i.values())D.stopped="cancelled",D.waiting?.abort();if(Y=false,w+=1,!s)for(let D of y.values())D.abort();for(let D of t.values())D.abort(s?"page-preserve":"cancelled");for(let[D,H]of N)if(!(s&&c.get(D)?.recovery==="available"))for(let W of Xo(H))ne(W.resume,W.kind,D,X(H.input));N.clear(),L.clear(),await Promise.allSettled(S),await Promise.all([...u]),t.clear(),b.clear(),o.clear();for(let[D,H]of N)if(!(s&&c.get(D)?.recovery==="available"))for(let W of Xo(H))ne(W.resume,W.kind,D,X(H.input));N.clear(),L.clear(),i.clear(),T.clear(),M.clear(),c.clear(),a.clear(),G.clear(),await e.recoveryPort?.drain();},async recoverUpload(m,S,D){he();let H=e.recoveryPort;if(!Y||H===void 0)throw new Error("IM_MEDIA_RECOVERY_UNAVAILABLE");if(i.has(S)||I.has(S))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let W=new AbortController;I.set(S,{controller:W,ref:m});let De=()=>{if(!Y||W.signal.aborted||I.get(S)?.controller!==W)throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE")},de=(O,q)=>{if(O===void 0||O.senderId!==e.getSelfId()||O.recalled!==void 0||O.deletedForEveryone!==void 0||O.failure?.displayCode==="media.cancelled"&&O.failure.retryable!==true||O.failure?.displayCode==="media.uploadTimeout"&&O.failure.retryable===false||O.status!=="failed"&&O.status!=="uploading")return false;let oe=O.contentType==="video",Ce=O.contentType==="file"||O.contentType==="filesAlbum"&&O.body.filesAlbum?.items.length===1;return (oe||Ce)&&(q===void 0||O.contentType===q)},E;try{E=await H.acquireLease(W.signal),De();let O=e.domainState.getConversationMessage?.(m,S);if(!de(O))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let q=await H.get(m,S);if(De(),q===void 0)throw new Error("IM_MEDIA_RECOVERY_NOT_FOUND");let oe=q.kind==="video"?"video":q.filesAlbum||q.caption?.trim()?"filesAlbum":"file";if(!de(O,oe))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Ce=await H.fingerprint(D,W.signal);if(De(),Ce.size!==q.source.size||Ce.sha256!==q.source.sha256)throw new Error("IM_MEDIA_RECOVERY_FILE_MISMATCH");let Qe=e.domainState.getConversationMessage?.(m,S);if(i.has(S)||!de(Qe,oe))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Je={conversationId:m.conversationId,conversationType:m.conversationType,data:D,encrypted:q.encrypted,filename:q.source.filename,mimeType:q.source.mimeType,caption:q.caption,filesAlbum:q.filesAlbum,refMessageId:q.refMessageId,...q.preview===void 0?{}:{localPreviewMetadata:{width:q.preview.width,height:q.preview.height,duration:q.preview.duration,posterData:q.preview.thumbData}}};return a.set(S,q.savedAt),await f(Je,()=>Ie(q.kind==="video"?Yo:q.filesAlbum||q.caption?.trim()?$c:zo,Je,S,q.createdAt,q.teaKey,q.resume),{id:S,createdAt:q.createdAt})}finally{I.get(S)?.controller===W&&I.delete(S),ve(S),E?.release();}}}}function lp(e,n){if(!$t(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function wA(e){return e.id.trim()!==""&&e.conversation.conversationId.trim()!==""&&e.parentMessageId.trim()!==""&&e.senderId.trim()!==""&&(e.action===0||e.action===1)&&Number.isSafeInteger(e.createdAt)&&e.createdAt>=0}function BA(e,n){return sr.encode(sr.create({emoji:e,action:n}))}function FA(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(p,y){let x=BigInt(e.getSelfId()),v=BigInt(p.conversation.conversationId),I=BA(p.emoji,p.action),k=ke(p.id),G=yn(p.parentMessageId);switch(p.conversation.conversationType){case "direct":{let M=y===4651?Gi:Di,T=M.create({sToId:v,sFromId:x,sMsgId:k,msgType:1,msgTime:BigInt(p.createdAt),encrypt:0,sContent:I,parentMsgId:G});return ae({command:y??4650,body:M.encode(T)})}case "group":{let M=Yr.create({sGrpId:v,sToId:v,sFromId:x,sMsgId:k,msgType:5,msgTime:BigInt(p.createdAt),encrypt:0,sContent:I,parentMsgId:G});return ae({command:8978,body:Yr.encode(M)})}case "channel":{let M=no.create({sRadioId:v,sFromId:x,sMsgId:k,msgTime:BigInt(p.createdAt),encrypt:0,sContent:I,parentMsgId:G});return ae({command:12817,body:no.encode(M)})}}}function s(p,y,x){clearTimeout(p.timer),n.delete(p.event.id),e.domainState.rollbackReaction(p.event.conversation,p.event.parentMessageId,p.event.id),p.resolve({ok:false,reason:y,...x===void 0?{}:{errcode:x}});}function a(p){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let y=e.domainState.getConversationMessage(p.conversation,p.parentMessageId);if(y===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!Uc(y))return Promise.resolve({ok:false,reason:"unsupported-message"});if(p.action===0&&p.conversation.conversationType==="channel"){let v=e.domainState.getConversationContext(p.conversation),I=kc({channelState:v?.type==="channel"?v.channelState??"unknown_restricted":"unknown_restricted",snapshot:v?.type==="channel"?v.channelAccessSnapshot:void 0,permissions:v?.type==="channel"?v.channelPermissions:void 0,nowMs:t()});if(I.channelState!=="active"||!I.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!Go(p.emoji)||Uo(p.emoji)||e.isEmojiSupported?.(p.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let x=Object.freeze({id:xn(),conversation:Object.freeze({...p.conversation}),parentMessageId:p.parentMessageId,senderId:e.getSelfId(),emoji:p.emoji,action:p.action,createdAt:t()});return e.domainState.applyReaction(x,"live"),new Promise(v=>{let I=setTimeout(()=>{let k=n.get(x.id);k!==void 0&&s(k,"timeout");},r);n.set(x.id,{event:x,resolve:v,timer:I});try{e.sendFrame(i(x));}catch(k){e.logger?.("reaction-send-frame-failed",{eventId:x.id,cause:k});let G=n.get(x.id);G!==void 0&&s(G,"failed");}})}function c(p){let x=e.domainState.getConversationMessage(p.conversation,p.parentMessageId)?.reactions?.currentUserEmoji===p.emoji?1:0;return a({...p,action:x})}function u(p){let y=n.get(p.eventId);if(y!==void 0){if(p.errcode!==32768&&p.errcode!==0){s(y,"failed",p.errcode);return}if(clearTimeout(y.timer),n.delete(y.event.id),y.event.conversation.conversationType==="direct")try{e.sendFrame(i(y.event,4651));}catch(x){e.logger?.("reaction-opposite-end-send-failed",{eventId:y.event.id,cause:x});}y.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(y.event.emoji).catch(x=>e.logger?.("reaction-report-failed",{emoji:y.event.emoji,cause:x})),y.resolve({ok:true,event:y.event});}}return {set:a,toggle:c,onAck:u,ingest:(p,y="live")=>!wA(p)||!Go(p.emoji)||Uo(p.emoji)||e.isEmojiSupported?.(p.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:p.id,parentMessageId:p.parentMessageId,emoji:p.emoji}),"ignored"):e.domainState.applyReaction(p,y),dispose(){o=true;for(let p of [...n.values()])s(p,"disconnected");}}}function PA(e){return [{command:4652,handler:(n,t)=>{let r=Ui.decode(t);e.manager.onAck({eventId:Ee(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=xo(ki.decode(t),e.getSelfId());e.manager.ingest(r,"live"),e.logger?.("direct-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:8979,handler:(n,t)=>{let r=$i.decode(t);e.manager.onAck({eventId:Ee(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=wo(es.decode(t));e.manager.ingest(r,"live"),e.logger?.("group-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:12818,handler:(n,t)=>{let r=ds.decode(t);e.manager.onAck({eventId:Ee(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=rc(cs.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function VA(e){return [{command:12806,handler:(n,t)=>{let r=Cs.decode(t);try{e.logger?.("channel-sync-read-ack",{errcode:r.errcode});}catch{}r.errcode!==32768&&e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08cmdId=${n}, errcode=${r.errcode}\uFF09`}});}},{command:12807,handler:(n,t)=>{let r=Ss.decode(t),o=r.sUserId.toString();if(r.sUserId<=0n||o!==e.getSelfId())throw new Error(`CHANNEL 0x3207 \u7528\u6237\u4E0D\u5339\u914D\uFF08received=${o}\uFF09`);if(r.radioId<=0n)throw new Error("CHANNEL 0x3207 \u9891\u9053 id \u7F3A\u5931\u6216\u975E\u6CD5");let i=r.lastReadIndex.trim();if(i==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:i});}}]}function OA(e){let n=new Map,t=new Map,r=new Map,o=0;function i(T,b){let N={conversationType:"channel",conversationId:T},L=e.domainState.getConversationContext(N);if(L===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${T}\uFF09`);if(L.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${L.type}\uFF08channelId=${T}\uFF09`);if(b.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${T}\uFF09`);let Y=e.domainState.getConversationMessage(N,b),me=e.domainState.getLoadedMessagesByConversation(N).find(ne=>ne.extensions?.historyCursor===b),X=(Y===void 0?void 0:qo(Y))??(me===void 0?void 0:qo(me));if(X===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${T}, cursor=${b}\uFF09`);return X}function s(T){let b={conversationType:"channel",conversationId:T},N=e.domainState.getReadState(b);if(N?.readCursor!==void 0&&N.readCursor!==""){let L=e.domainState.getLoadedMessagesByConversation(b).find(Y=>Y.extensions?.historyCursor===N.readCursor);if(L!==void 0){let Y=qo(L);if(Y!==void 0)return Y}}return N?.readCursorSortKey===void 0?void 0:{sortKey:N.readCursorSortKey}}function a(T,b){return Zo(T,b)}function c(T,b){let N=r.get(T),L=N===void 0?s(T):N.committed;return L!==void 0&&a(L,b)>=0}function u(T,b){let N=r.get(T),L=b.settleConversation===true?e.domainState.applyChannelConversationReadOptimistically:e.domainState.applyChannelReadOptimistically;if(N!==void 0){let w=a(N.optimistic,b);if(w>0){if(b.settleConversation===true)throw new Error(`CHANNEL \u6574\u4F1A\u8BDD\u76EE\u6807\u65E9\u4E8E\u6B63\u5728\u7ED3\u7B97\u7684\u4F4D\u7F6E\uFF08channelId=${T}\uFF09`);return}if(w===0&&(b.settleConversation!==true||N.optimistic.settleConversation===true))return;L(N.transaction,b.messageId,b.cursor),N.optimistic=b,w===0?N.steps[N.steps.length-1]=b:N.steps.push(b);return}let Y=s(T),me=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:T});L(me,b.messageId,b.cursor),r.set(T,{transaction:me,committed:Y,optimistic:b,steps:[b]});}function p(T,b){let N=n.get(T);(N===void 0||a(b,N)>0||a(b,N)===0&&b.settleConversation===true)&&n.set(T,b);}function y(T,b){if(e.syncRead!==void 0)try{let N=so.encode(so.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(T),lastReadIndex:b}));e.syncRead.sendFrame(ae({command:12805,body:N}));}catch(N){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${T}\uFF09`,cause:N}});}}function x(T,b){try{e.onReadCommitted?.({channelId:T,readCursor:b});}catch(N){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u6821\u51C6\u672A\u542F\u52A8\uFF08channelId=${T}\uFF09`,cause:N}});}}async function v(T,b){let N;try{for(;;){if(b!==o)return;let L=n.get(T);if(L===void 0)return;if(n.delete(T),c(T,L)){let w=r.get(T);L.settleConversation===!0&&w!==void 0&&(e.domainState.commitChannelReadTransaction(w.transaction,L.cursor),a(w.optimistic,L)===0&&r.delete(T));continue}try{await e.updateReadIndex({channelId:T,readCursor:L.cursor});}catch(w){if(b!==o)return;let X=r.get(T);throw X!==void 0&&(e.domainState.rollbackChannelReadTransaction(X.transaction),r.delete(T)),p(T,L),w}if(b!==o)return;if(c(T,L))continue;let Y=r.get(T);Y!==void 0&&e.domainState.commitChannelReadTransaction(Y.transaction,L.cursor)||e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T},L.messageId,L.cursor),Y!==void 0&&(Y.committed=L,a(Y.optimistic,L)===0&&r.delete(T)),e.logger?.("channel-read-index",{channelId:T,cursor:L.cursor}),y(T,L.cursor),N=L.cursor;}}finally{if(b===o){N!==void 0&&x(T,N);try{e.onReadSettled?.({channelId:T});}catch(L){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u7B49\u5F85\u672A\u89E3\u9664\uFF08channelId=${T}\uFF09`,cause:L}});}}}}function I(T,b){let N=Promise.resolve().then(()=>v(T,b)).then(()=>{if(t.get(T)===N&&(t.delete(T),b===o&&n.has(T)))return I(T,b)},L=>{throw t.get(T)===N&&t.delete(T),L});return t.set(T,N),N}function k(T,b){let N;try{if(N=i(T.conversationId,T.readCursor),b&&(N.settleConversation=!0),!b&&c(T.conversationId,N))return Promise.resolve();let Y=s(T.conversationId);if(b&&Y!==void 0&&a(Y,N)>0)throw new Error(`CHANNEL \u6574\u4F1A\u8BDD\u76EE\u6807\u65E9\u4E8E\u5F53\u524D\u5DF2\u8BFB\u4F4D\u7F6E\uFF08channelId=${T.conversationId}\uFF09`);let me=n.get(T.conversationId);if(me!==void 0&&!r.has(T.conversationId)){let w=a(me,N);w===0&&me.settleConversation===!0&&(N=me),w<0&&!c(T.conversationId,me)&&u(T.conversationId,me),u(T.conversationId,N),w>0&&u(T.conversationId,me);}else u(T.conversationId,N);}catch(Y){return Promise.reject(Y)}p(T.conversationId,N);let L=t.get(T.conversationId);return L!==void 0?L:I(T.conversationId,o)}function G(T){let b=i(T.conversationId,T.readCursor);if(c(T.conversationId,b))return;let N=r.get(T.conversationId);if(N!==void 0&&N.steps.some(L=>L.settleConversation===true)&&a(b,N.optimistic)<0){e.domainState.rollbackChannelReadTransaction(N.transaction),r.delete(T.conversationId),e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T.conversationId},b.messageId,b.cursor);for(let L of N.steps)a(L,b)>0&&u(T.conversationId,L);x(T.conversationId,b.cursor);return}e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:T.conversationId},b.messageId,b.cursor),r.delete(T.conversationId),x(T.conversationId,b.cursor);}function M(){o+=1;for(let T of r.values())e.domainState.rollbackChannelReadTransaction(T.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:T=>k(T,false),settleConversationRead:T=>k(T,true),applyRemoteRead:G,reset:M}}function KA(e){return e===void 0?void 0:qo(e)?.cursor}function qo(e){let n=e.extensions?.historyCursor;if(!(typeof n!="string"||n.trim()===""))return {cursor:n,messageId:e.id,...Lo(e)}}function LA(e){let n;for(let t of e){let r=qo(t);r!==void 0&&(n===void 0||Zo(r,n)>0)&&(n=r);}return n?.cursor}var va=50;function up(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function ZA(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:Pn(e.id)}function QA(e,n,t,r){let o=up(e,n,r);if(o===void 0)return;let i=up(e,n,t),s=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(a=>ZA(a)&&a.senderId!==s&&a.sortKey<=o&&(i===void 0||a.sortKey>i)).map(a=>a.id)}function ol(e){let n=new Set,t=new Map,r=new Map;function o(s){let a=r.get(s);if(a===void 0||a.size===0||!e.isAuthenticated())return;for(let u of a)Pn(u)||a.delete(u);if(a.size===0){r.delete(s);return}let c=[...a];for(let u=0;u<c.length;u+=va){let p=c.slice(u,u+va);try{let y=Kt.encode(Kt.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:p.map(ke)}));e.sendFrame(ae({command:4117,body:y}));for(let x of p)a.delete(x);}catch(y){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${s}\uFF09`,cause:y}});break}}a.size===0&&r.delete(s);}function i(s){let a=e.domainState.getReadState({conversationType:"direct",conversationId:s})?.readCursor??"";if(a===""||!e.isAuthenticated())return;let c=QA(e,s,t.get(s),a);if(c===void 0)return;if(c.length===0){t.set(s,a);return}let u,p=true;for(let y=0;y<c.length;y+=va){let x=c.slice(y,y+va),v=x.map(ke);try{let I=Kt.encode(Kt.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:v}));e.sendFrame(ae({command:4117,body:I})),u=x.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:s,count:v.length,offset:y});}catch(I){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${s}\uFF09`,cause:I}}),p=false;break}}p?t.set(s,a):u!==void 0&&t.set(s,u);}return {report(s){n.add(s),i(s);},reportConsumedMedia(s,a){let c=e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},a);if(c===void 0||c.senderId===e.getSelfId()||c.contentType!=="voice"&&c.contentType!=="video")return;n.add(s);let u=r.get(s);u===void 0&&(u=new Set,r.set(s,u)),u.add(a),o(s);},onAck({errcode:s}){e.logger?.("direct-sync-read-ack",{errcode:s}),s!==32768&&s!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${s}\uFF09`,code:4118}});},onDeliver({userId:s,peerId:a,msgIdList:c}){if(s!==e.getSelfId())return;let p=c.map(y=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},Ee(y))).filter(y=>y!==void 0).sort((y,x)=>y.sortKey<x.sortKey?-1:y.sortKey>x.sortKey?1:0).at(-1);p!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:a},p.id);},onAuthenticated(){for(let s of n)i(s),o(s);},reset(){}}}function WA(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:Pn(e.id)}var il=50;function HA(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function s(c,u){let{syncRead:p}=e;if(p===void 0||!i())return;let y=p.getSelfId(),x=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:c}),v=x.find(N=>N.id===u);if(v===void 0)return;let I=o.get(c),k=I===void 0?void 0:x.find(N=>N.id===I)?.sortKey,G=x.filter(N=>WA(N)&&N.senderId!==y&&N.sortKey<=v.sortKey&&(k===void 0||N.sortKey>k));if(G.length===0){o.set(c,u);return}let M=G.map(N=>ke(N.id)),T,b=true;for(let N=0;N<M.length;N+=il){let L=M.slice(N,N+il);try{let Y=Xr.encode(Xr.create({sUserId:BigInt(y),msgIdList:L,groupId:BigInt(c)}));p.sendFrame(ae({command:8967,body:Y})),T=G[Math.min(N+il,G.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:c,count:L.length,offset:N});}catch(Y){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:Y}}),b=false;break}}b?o.set(c,u):T!==void 0&&o.set(c,T);}async function a(c){if(!(t.has(c)||!i())){t.add(c);try{for(;i();){let u=n.get(c);if(u===void 0)return;if(n.delete(c),r.get(c)!==u){s(c,u);try{await e.markGroupReadAll(c),r.set(c,u);}catch(p){if(!i()){n.has(c)||n.set(c,u);return}n.get(c)===u&&n.delete(c),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:p}});return}}}}finally{t.delete(c),i()&&n.has(c)&&a(c);}}}return {conversationType:"group",markRead({conversationId:c,readCursor:u}){e.domainState.applyServerUnread({conversationType:"group",conversationId:c},0,u),e.logger?.("grp-read-all",{groupId:c}),n.set(c,u),a(c);},onAuthenticated(){for(let c of n.keys())a(c);}}}function JA(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u5DF2\u8BFB\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r),onAuthenticated:()=>{for(let r of n.values())r.onAuthenticated?.();}}}function YA(e){return {conversationType:"robot",markRead:({conversationId:n,readCursor:t})=>{e.domainState.advanceRead({conversationType:"robot",conversationId:n},t);}}}function gp(e){let n=Kr.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:ke(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return ae({command:4107,body:Kr.encode(n)})}function mp(e){let n=Zr.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:ke(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return ae({command:8197,body:Zr.encode(n)})}function fp(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:ke(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function pp(e){let n=ro.create(fp(e));return ae({command:12297,body:ro.encode(n)})}function yp(e){let n=to.create(fp(e));return ae({command:12293,body:to.encode(n)})}var XA=15e3;function sl(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let s=t.get(o);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),t.delete(o),s.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let s;try{s=ke(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let a=t.get(s);if(a!==void 0)return a.promise;let c,u=new Promise(y=>{c=y;}),p={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:c,promise:u};return t.set(s,p),e.resolveProfile(i.conversationId).then(y=>{if(t.get(s)===p){if(y===null||y.role!=="admin"&&y.role!=="owner"){r(s,{ok:false,reason:"forbidden"});return}p.timer=setTimeout(()=>r(s,{ok:false,reason:"timeout"}),XA),e.sendFrame(yp({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>{t.get(s)===p&&r(s,{ok:false,reason:"failed"});}),u},onDeleteAck({sMsgId:o,errcode:i}){let s=t.get(o);if(s!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:s.channelId,conversationType:"channel"},s.messageId,{by:e.getSelfId(),at:s.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(s.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var Sr=300*1e3;function Ip(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u64A4\u56DE\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Cp(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>Sr)return "expired"}function Sp(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:Sr,prepare(e,n,t){let r=Cp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:gp({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function hp(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:Sr,prepare(e,n,t){let r=Cp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:mp({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function zA(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:Sr,async prepare(n,t,r){if(n.conversationId!==t.conversationId||t.conversationType!=="channel")return {ok:false,reason:"not-found"};if(t.senderId!==r.selfId)return {ok:false,reason:"not-own"};let o=t.serverTime??t.createdAt;if(r.now-o>Sr)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:pp({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function al(){return Ip([Sp(),hp()])}var Ap=15e3;function dl(e){let n=e.now??(()=>Date.now()),t=e.strategies??al(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {recall(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(s.recalled!==void 0)return Promise.resolve({ok:true});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let a=t.resolve(i.conversationType);if(a===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let c=e.getSelfId();if(a.ownMessageOnly===true&&s.senderId!==c)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let u=n();if(a.recallWindowMs!==void 0&&u-(s.serverTime??s.createdAt)>a.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let p=ke(i.messageId),y=r.get(p);if(y!==void 0)return y.promise;let x=a.prepare(i,s,{selfId:c,now:u});function v(M){if(!M.ok)return Promise.resolve(M);let T,b=new Promise(L=>{T=L;}),N=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),Ap);return r.set(p,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:M.recalledAt,resolve:T,timer:N,promise:b}),e.sendFrame(M.frame),b}if(!(x instanceof Promise))return v(x);let I,k=new Promise(M=>{I=M;}),G={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:u,resolve:I,promise:k};return r.set(p,G),x.then(M=>{if(r.get(p)===G){if(!M.ok){o(p,M);return}G.cancelTime=M.recalledAt,G.timer=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),Ap),e.sendFrame(M.frame);}}).catch(()=>{r.get(p)===G&&o(p,{ok:false,reason:"failed"});}),k},onRecallAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a===void 0)return;if(s===32768||s===0){e.domainState.recallMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{by:e.getSelfId(),at:a.cancelTime}),o(i,{ok:true});return}let c=s===33284?"server-expired":"failed";o(i,a.conversationType==="channel"?{ok:false,reason:c,errcode:s}:{ok:false,reason:c});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function cl(e){function n(r){let o=Oi.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([sc(o,e.getSelfId())],"live");let i=Lr.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(ae({command:4109,body:Lr.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let s=(o?gs:ps).decode(r);if(s.sFromId<=0n||s.sRadioId<=0n||s.sMsgId.trim()==="")return;let a=o?us:fs,c=o?12295:12299,u=a.create({sFromId:s.sFromId,sRadioId:s.sRadioId,sMsgId:s.sMsgId,sIndex:s.sIndex});e.sendFrame(ae({command:c,body:a.encode(u)})),e.domainState.upsertMessages([o?dc(s):ac(s)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:s.sMsgId,sFromId:s.sFromId.toString(),sRadioId:s.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=Vi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=Ki.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=ms.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=ls.decode(o);e.onChannelMessageDeletionAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function ll(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function qA(e){let n=e.getSelfId().trim();if(!/^[1-9]\d*$/.test(n))throw new Error("channel application: \u5F53\u524D\u8D26\u53F7 id \u7F3A\u5931\u6216\u975E\u6CD5");return BigInt(n).toString()}function jA(e){let n=ll(e.sFromId,"applicant"),t=ll(e.sToId,"recipient"),r=ll(e.sRadioId,"channel"),o=e.sMsgId.trim();if(o==="")throw new Error("channel application: message id \u7F3A\u5931");return {messageId:o,applicantId:n,recipientId:t,channelId:r,messageTime:e.msgTime.toString(),extend:e.extend,selfIntroduction:e.sSelfIntroduce,description:e.sDesc}}function $A(e){function n(t){let r=ys.decode(t),o=qA(e),i=jA(r),s=oo.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(ae({command:12547,body:oo.encode(s)}));}catch(a){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:a}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function eR(e){if(e.sFromId<0n)throw new Error("channel notify: sender id \u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.sId.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931")}function nR(e){function n(i){let s=io.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(ae({command:12803,body:io.encode(s)}));}function t(i,s,a,c="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${c}\uFF08channelId=${s.sRadioId.toString()}, messageId=${s.sMsgId}\uFF09`,cause:a}});}function r(i){if(i.encrypt===0)return Te.decode(i.sContent);if(i.encrypt===1){if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 Web \u79C1\u94A5\u89E3\u5BC6\u4F9D\u8D56");let c=e.decrypt.resolveUserPrivateKey?.()??null;if(c===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let u=He.decode(i.sContent);if(u.secretKey.length===0||u.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return Te.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:u.secretKey,cipherData:u.cipherData,privateKey:c}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let s=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(s===null||s.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let a=He.decode(i.sContent);if(a.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return Te.decode(e.decrypt.crypto.decryptSymmetric({teaKey:s,cipherData:a.cipherData}))}function o(i,s){let a=Is.decode(s);eR(a);try{n(a);}catch(u){t("transport",a,u,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let c;try{c=r(a);}catch(u){t(a.encrypt===0?"protocol":"crypto",a,u);let p=Rt(a,Te.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:a.encrypt!==0});e.domainState.upsertMessages([p],"live"),(a.encrypt===1||a.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:a.encrypt,sContent:a.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let u=Do({channelId:a.sRadioId,messageId:a.sMsgId,occurredAt:a.msgTime,notifyType:c.type,operatorId:c.oprUserId,targetUserIds:c.mnpledUserId,content:c.content,historyCursor:a.sId,sequence:a.nIncrId,encrypted:a.encrypt!==0,extend:a.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live"),e.logger?.("channel-notify-deliver",{channelId:a.sRadioId.toString(),messageId:a.sMsgId,notifyType:c.type});}catch(u){t("protocol",a,u);}}return [{command:12804,handler:(i,s)=>o(i,s)}]}function tR(e){let t=new Map([[34049,"channelDismissed"],[34050,"channelMuted"],[34051,"channelNotMember"],[34052,"channelAdminRequired"]]).get(e);return t===void 0?void 0:{code:e,reason:"rejected",displayCode:t,retryable:false}}function rR(e){switch(e){case 34049:return {state:"dismissed",reason:"channel_dismissed"};case 34050:return {state:"muted",reason:"channel_muted"};case 34051:return {state:"unknown_restricted",reason:"channel_not_member"};default:return}}function Rp(e,n=true){if(e.sFromId<=0n&&e.botId.trim()==="")throw new Error("channel deliver: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel deliver: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel deliver: message id \u7F3A\u5931");if(n&&e.sId.trim()==="")throw new Error("channel deliver: history cursor \u7F3A\u5931")}function oR(e){function n(c){let u=ss.decode(c),p={...u.sIndex===""?{}:{historyCursor:u.sIndex},...u.nIncrId===0n?{}:{channelSequence:u.nIncrId.toString()}},y=tR(u.errcode);e.outbox.onChatAck({id:Ee(u.sMsgId),serverTime:Number(u.msgTime),errcode:u.errcode,...Object.keys(p).length===0?{}:{extensions:p},...y===void 0?{}:{failure:y}});let x=rR(u.errcode);x!==void 0&&u.sRadioId>0n&&e.domainState.setChannelRestriction(u.sRadioId.toString(),x.state,x.reason),e.logger?.("channel-chat-ack",{messageId:u.sMsgId,channelId:u.sRadioId.toString(),errcode:u.errcode});}function t(c){let u=eo.create({sFromId:c.sFromId,sRadioId:c.sRadioId,sMsgId:c.sMsgId,sIndex:c.sId});e.sendFrame(ae({command:12291,body:eo.encode(u)}));}function r(c,u,p){let y=c.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:u,messageId:c.sMsgId,channelId:y,encrypt:c.encrypt,payloadByteLength:c.sContent.length,...p}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${p.reason}, channelId=${y}\uFF09`,...p.cause===void 0?{}:{cause:p.cause}}});}function o(c,u){let p;if(c.encrypt===0)try{p=Te.decode(c.sContent);}catch(y){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${c.sRadioId.toString()}\uFF09`,cause:y}});return}else if(c.encrypt===1&&e.decrypt!==void 0){let y=e.decrypt.resolveUserPrivateKey?.()??null;if(y===null){r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let x;try{if(x=He.decode(c.sContent),x.secretKey.length===0||x.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:I});return}let v;try{v=e.decrypt.crypto.decryptEndToEnd({secretKey:x.secretKey,cipherData:x.cipherData,privateKey:y});}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:x.cipherData.length,cause:I});return}try{p=Te.decode(v);}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:x.cipherData.length,decryptedByteLength:v.length,cause:I});return}}else if(c.encrypt===2&&e.decrypt!==void 0){let y=e.decrypt.resolveChannelKey(c.sRadioId.toString());if(y===null||y.length!==16){r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:y?.length??0,keySource:y===null?"miss":"cache"});return}let x;try{let I=He.decode(c.sContent);if(I.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");x=I.cipherData;}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:y.length,keySource:"cache",cause:I});return}let v;try{v=e.decrypt.crypto.decryptSymmetric({teaKey:y,cipherData:x});}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:x.length,cause:I});return}try{p=Te.decode(v);}catch(I){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:x.length,decryptedByteLength:v.length,cause:I});return}}else {r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return p}function i(c,u){let p=Rt(c,Te.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:u,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([p],"live"),(c.encrypt===1||c.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:c.encrypt,sContent:c.sContent.slice(),cmdId:u,source:"live",createdAt:Date.now()});}function s(c,u){let p=as.decode(u);Rp(p),t(p);let y=o(p,"live-deliver");if(y===void 0){i(p,c);return}let x=Bo({channelId:p.sRadioId,senderId:p.sFromId,msgTime:p.msgTime,encrypt:p.encrypt},y);if(x!==null){e.domainState.upsertMessages([x],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:p.sMsgId,targetMessageId:x.id,channelId:p.sRadioId.toString(),operation:x.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:c});return}let v=Rt(p,y,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw});e.domainState.upsertMessages([v],"live"),e.logger?.("channel-chat-deliver",{messageId:p.sMsgId,channelId:p.sRadioId.toString(),encrypt:p.encrypt,command:c});}function a(c,u){let p=ut.decode(u);if(Rp(p,false),p.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(p.isEdit===""||p.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(p.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let y=Ee(p.oldMsgId),x=o(p,"live-edit");if(x===void 0){let I={conversationType:"channel",conversationId:p.sRadioId.toString()};if(e.domainState.getConversationMessage(I,y)===void 0){let k=Rt(p,Te.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...k,id:y}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:I,messageId:y,wireEncrypt:2,sContent:p.sContent.slice(),cmdId:c,source:"live",createdAt:Date.now()});return}let v=Rt(p,x,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,edited:true});if(v.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:v.conversationId},y,v.body,v.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:v.conversationId},y)===void 0&&e.domainState.upsertMessages([{...v,id:y,edited:true,extensions:{...v.extensions,editOperationMessageId:v.id,previousMessageId:y}}],"live");}return [{command:12290,handler:(c,u)=>n(u)},{command:12292,handler:(c,u)=>s(c,u)},{command:12816,handler:(c,u)=>s(c,u)},{command:12808,handler:(c,u)=>a(c,u)}]}function ul(){let e=new Map;return {register(n,t){if(e.has(n))throw new Error(`\u6536\u5305\u547D\u4EE4\u5904\u7406\u5668\u91CD\u590D\u6CE8\u518C\uFF1AcmdId=${n}`);e.set(n,t);},resolve:n=>e.get(n)}}function iR(e){if(e.extend.trim()==="")return false;try{let n=JSON.parse(e.extend);if(n===null||typeof n!="object")return !1;let t=n.friend_info;if(t===null||typeof t!="object")return !1;let r=t.user_id;return (typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&String(r).trim()===e.sFromId.toString()}catch{return false}}function sR(e){return [{command:4360,handler:(n,t)=>{let r=Pi.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application answer: \u5904\u7406\u4EBA\u3001\u7533\u8BF7\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(ae({command:4359,body:Or.encode(Or.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),s=r.errcode===32768||r.errcode===33300||iR(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";s==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:s}});}}]}function aR(e){return [{command:4356,handler:(n,t)=>{let r=Fi.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application: \u7533\u8BF7\u4EBA\u3001\u63A5\u6536\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(ae({command:4355,body:Vr.encode(Vr.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=Number(r.msgTime);if(!Number.isSafeInteger(i)||i<=0)throw new Error("contact application: \u6D88\u606F\u65F6\u95F4\u975E\u6CD5");e.emitter.emit({type:"contact-application:received",notification:{applicantId:r.sFromId.toString(),recipientId:o,messageId:r.sMsgId,createdAt:i}});}}]}function gl(e){function n(v){let I=vt.create({sFromId:v.sFromId,sToId:v.sToId,sMsgId:v.sMsgId,msgTime:v.msgTime});e.sendFrame(ae({command:4099,body:vt.encode(I)}));}function t(v){let I=fc(Ti.decode(v));e.logger?.("chat-ack",{id:I.id,errcode:I.errcode,serverTime:I.serverTime}),e.outbox.onChatAck(I);}function r(v,I,k){let G=ur(v,Te.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:I,keepRaw:e.keepRaw,decryptFailed:true,edited:k});e.domainState.upsertMessages([G],"live"),v.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:G.conversationId},messageId:G.id,wireEncrypt:1,sContent:v.sContent.slice(),...v.encryptVersion===""?{}:{encryptVersion:v.encryptVersion},cmdId:I,source:"live",createdAt:Date.now()});}function o(v,I,k=false){let G=vi.decode(I),M;if(G.encrypt===0)M=Te.decode(G.sContent);else if(G.encrypt===1&&e.decrypt!==void 0){let b=e.decrypt.resolvePrivateKey({msgType:G.msgType,encrypt:G.encrypt,encryptVersion:G.encryptVersion});if(b===null){e.decrypt.onDecryptError?.({msgId:G.sMsgId,fromId:String(G.sFromId),toId:String(G.sToId),msgType:G.msgType,cmdId:v,encrypt:G.encrypt,encryptVersion:G.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${G.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(G,v,k);return}try{let N=He.decode(G.sContent);if(N.secretKey.length===0||N.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${N.secretKey.length}B cipherData=${N.cipherData.length}B`);let L=e.decrypt.crypto.decryptEndToEnd({secretKey:N.secretKey,cipherData:N.cipherData,privateKey:b});M=Te.decode(L);}catch(N){e.decrypt.onDecryptError?.({msgId:G.sMsgId,fromId:String(G.sFromId),toId:String(G.sToId),msgType:G.msgType,cmdId:v,encrypt:G.encrypt,encryptVersion:G.encryptVersion,reason:"decrypt-failed",cause:N}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${G.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:N}}),r(G,v,k);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${G.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(G,v,k);return}let T=ur(G,M,{selfId:e.getSelfId(),cmdId:v,keepRaw:e.keepRaw,edited:k});e.domainState.upsertMessages([T],"live"),n(G),e.logger?.("chat-deliver",{sMsgId:G.sMsgId,sFromId:String(G.sFromId),sToId:String(G.sToId),encrypt:G.encrypt});}function i(v){let I=Qr.create({sUserId:v.sToId,sMsgId:v.sMsgId});e.sendFrame(ae({command:4101,body:Qr.encode(I)})),e.logger?.("delivered-notif-ack",{sUserId:String(I.sUserId),sMsgId:I.sMsgId});}function s(v,I){let k=Hi.decode(I);if(e.logger?.("delivered-notif",{sMsgId:k.sMsgId,sFromId:String(k.sFromId),sToId:String(k.sToId)}),k.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}i(k),e.emitter.emit({type:"notification",cmdId:v,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function a(v){let I=Hr.create({sUserId:v.sToId,sMsgId:v.sMsgId});e.sendFrame(ae({command:4105,body:Hr.encode(I)})),e.logger?.("read-deliver-ack",{sUserId:String(I.sUserId),sMsgId:I.sMsgId});}function c(v,I){let k=e.getSelfId(),G=[];for(let M of I){let T=e.domainState.getConversationMessage({conversationType:"direct",conversationId:v},Ee(M.sMsgId));T!==void 0&&T.senderId===k&&T.receipt!=="read"&&G.push({...T,receipt:"read"});}G.length>0&&e.domainState.upsertMessages(G,"live");}function u(v,I){let k=Yi.decode(I);if(e.logger?.("read-deliver",{sMsgId:k.sMsgId,sFromId:String(k.sFromId),sToId:String(k.sToId),readResults:k.readResults.length,readReceiptOff:k.readReceiptOff}),k.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_READ_DELIVER(4106) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}if(a(k),k.readReceiptOff!==1){let G=e.getSelfId(),M=k.sFromId.toString(),T=k.sToId.toString();c(M===G?T:M,k.readResults);}e.emitter.emit({type:"notification",cmdId:v,name:"MES_CHAT_READ_DELIVER"});}function p(v){let I=Ji.decode(v);e.logger?.("read-report-ack",{notifyId:I.sMsgId,sUserId:String(I.sUserId),errcode:I.errcode}),e.onReadAck?.({notifyId:I.sMsgId,errcode:I.errcode});}function y(v){let I=Xi.decode(v);e.logger?.("direct-sync-read-ack",{errcode:I.errcode}),e.onSyncReadAck?.({errcode:I.errcode});}function x(v,I){let k=zi.decode(I),G=k.sUserId.toString(),M=k.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:G,peerId:M,msgIds:k.msgIdList.length}),e.onSyncReadDeliver?.({userId:G,peerId:M,msgIdList:k.msgIdList}),e.emitter.emit({type:"notification",cmdId:v,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(v,I)=>t(I)},{command:4100,handler:(v,I)=>o(v,I)},{command:4644,handler:(v,I)=>o(v,I,true)},{command:4102,handler:(v,I)=>s(v,I)},{command:4106,handler:(v,I)=>u(v,I)},{command:4104,handler:(v,I)=>p(I)},{command:4118,handler:(v,I)=>y(I)},{command:4119,handler:(v,I)=>x(v,I)}]}function dR(e){function n(t){let r=xi.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Fr.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(ae({command:4632,body:Fr.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:s}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),s=r.friendNotifyType===0,a=r.friendNotifyType===1&&r.blackStatus===2;(s||a)&&(e.onRelationshipChanged?.(i,s?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:c}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:i}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function cR(e){function n(i,s){let a=or.decode(s),c=e.getSelfId(),u=Po(a,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live");let p=zr.create({sUserId:BigInt(c),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(ae({command:8707,body:zr.encode(p)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:a.sGrpId.toString(),sMsgId:a.sMsgId,notifyType:a.notifyType});}function t(i,s){let a=rs.decode(s),c=qr.create({sUserId:BigInt(e.getSelfId()),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(ae({command:8451,body:qr.encode(c)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:a.sGrpId.toString(),sMsgId:a.sMsgId});}function r(i){let s=os.decode(i),a=jr.create({sFromId:BigInt(e.getSelfId()),sToId:s.sFromId,sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(ae({command:8963,body:jr.encode(a)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:s.sMsgId});}function o(i){let s=is.decode(i),a=$r.create({sUserId:BigInt(e.getSelfId()),sMsgId:s.sMsgId});e.sendFrame(ae({command:8965,body:$r.encode(a)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:s.sMsgId});}return [{command:8708,handler:(i,s)=>n(i,s)},{command:8452,handler:(i,s)=>t(i,s)},{command:8964,handler:(i,s)=>r(s)},{command:8966,handler:(i,s)=>o(s)}]}function lR(e){let n=new Map;function t(I){let k=qi.decode(I),G={id:Ee(k.sMsgId),serverTime:Number(k.sendtime),errcode:k.errcode};e.logger?.("grp-chat-ack",{id:G.id,errcode:G.errcode,serverTime:G.serverTime}),e.outbox.onChatAck(G);}function r(I){let k=Jr.create({sFromId:BigInt(e.getSelfId()),sGrpId:I.sGrpId,sMsgId:I.sMsgId});e.sendFrame(ae({command:8195,body:Jr.encode(k)}));}function o(){return e.isActive?.()??true}function i(I,k,G,M,T=false){let b=I.sGrpId.toString(),N=bt(I,Te.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:k,keepRaw:e.keepRaw,decryptFailed:true,edited:T});e.domainState.upsertMessages([N],"live"),I.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:b},messageId:N.id,wireEncrypt:1,sContent:I.sContent.slice(),...I.encryptVersion===""?{}:{encryptVersion:I.encryptVersion},cmdId:k,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:I.sMsgId,groupId:b,fromId:String(I.sFromId),msgType:I.msgType,cmdId:k,encrypt:I.encrypt,encryptVersion:I.encryptVersion,reason:G,...M===void 0?{}:{cause:M}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:G==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${I.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u7FA4\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`:`\u5B9E\u65F6\u7FA4\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${I.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...M===void 0?{}:{cause:M}}});}function s(I,k,G,M){let T=bt(I,G,{selfId:e.getSelfId(),cmdId:k,keepRaw:e.keepRaw,edited:M});e.domainState.upsertMessages([T],"live"),r(I),e.logger?.("grp-chat-deliver",{sMsgId:I.sMsgId,sGrpId:String(I.sGrpId),sFromId:String(I.sFromId),encrypt:I.encrypt});}function a(I,k){let G=He.decode(I.sContent);if(G.secretKey.length===0||G.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${G.secretKey.length}B cipherData=${G.cipherData.length}B`);let M=e.decrypt.crypto.decryptEndToEnd({secretKey:G.secretKey,cipherData:G.cipherData,privateKey:k});return Te.decode(M)}async function c(I,k,G){if(!o())return;if(I.encrypt===0){try{s(I,k,Te.decode(I.sContent),G);}catch(L){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u660E\u6587\u6295\u9012\u89E3\u6790\u6216\u63D0\u4EA4\u5931\u8D25",cause:L}});}return}if(I.encrypt!==1||e.decrypt===void 0){i(I,k,"no-key",void 0,G);return}let T={groupId:I.sGrpId.toString(),msgType:I.msgType,encrypt:I.encrypt,encryptVersion:I.encryptVersion},b;try{b=e.decrypt.resolvePrivateKey(T),b===null&&e.decrypt.preparePrivateKey!==void 0&&(b=await e.decrypt.preparePrivateKey(T));}catch(L){o()&&i(I,k,"no-key",L,G);return}if(!o())return;if(b===null){i(I,k,"no-key",void 0,G);return}let N;try{N=a(I,b);}catch(L){i(I,k,"decrypt-failed",L,G);return}if(o())try{s(I,k,N,G);}catch(L){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:L}});}}function u(I,k,G){let M=I.sGrpId.toString(),b=(n.get(M)??Promise.resolve()).then(()=>c(I,k,G));n.set(M,b),b.finally(()=>{n.get(M)===b&&n.delete(M);});}function p(I,k,G=false){let M=ji.decode(k),T=M.sGrpId.toString();if(n.has(T)){u(M,I,G);return}if(M.encrypt===0){s(M,I,Te.decode(M.sContent),G);return}if(M.encrypt!==1||e.decrypt===void 0){i(M,I,"no-key",void 0,G);return}let b={groupId:T,msgType:M.msgType,encrypt:M.encrypt,encryptVersion:M.encryptVersion},N=e.decrypt.resolvePrivateKey(b);if(N===null){if(e.decrypt.preparePrivateKey!==void 0){u(M,I,G);return}i(M,I,"no-key",void 0,G);return}let L;try{L=a(M,N);}catch(Y){i(M,I,"decrypt-failed",Y,G);return}s(M,I,L,G);}function y(I){let k=ns.decode(I);e.logger?.("grp-sync-read-ack",{errcode:k.errcode});}function x(I,k){for(let G=k.length-1;G>=0;G-=1){let M=k[G];if(M===void 0||M==="")continue;let T=Ee(M),b=e.domainState.getConversationMessage({conversationType:"group",conversationId:I},T);if(b!==void 0&&b.conversationId===I)return T}}function v(I,k){let G=ts.decode(k),M=G.groupId.toString();if(G.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:M,sUserId:String(G.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:M,sUserId:String(G.sUserId),msgIds:G.msgIdList.length});let T=x(M,G.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:M},0,T),e.emitter.emit({type:"notification",cmdId:I,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(I,k)=>t(k)},{command:8196,handler:(I,k)=>p(I,k)},{command:8976,handler:(I,k)=>p(I,k,true)},{command:8968,handler:(I,k)=>y(k)},{command:8969,handler:(I,k)=>v(I,k)}]}function uR(e){function n(o){let i=yc(bi.decode(o));e.logger?.("robot-ack",{id:i.id,errcode:i.errcode}),e.outbox.onChatAck(i);}function t(o,i){let s=Ni.decode(i),a=pc(s,{selfId:e.getSelfId(),cmdId:o,keepRaw:e.keepRaw});e.domainState.upsertMessages([a],"live");let c=vt.create({sFromId:BigInt(s.robotId),sToId:s.userId,sMsgId:s.sMsgId,msgTime:s.msgTime});e.sendFrame(ae({command:4099,body:vt.encode(c)}));}function r(o){let i=_i.decode(o);if(i.robotId.trim()==="")throw new Error("robot delete: robotId \u7F3A\u5931");e.domainState.removeConversation({conversationType:"robot",conversationId:i.robotId}),e.emitter.emit({type:"notification",cmdId:24579,name:"BOT_MSG_ROBOT_DELETE_SEND"});}return [{command:4648,handler:(o,i)=>n(i)},{command:4649,handler:(o,i)=>t(o,i)},{command:24579,handler:(o,i)=>r(i)}]}function gR(e){function n(t){let r=wi.decode(t);if(r.userId<=0n)throw new Error("session favorite notify: user id \u7F3A\u5931\u6216\u975E\u6CD5");e.getSelfId()===r.userId.toString()&&e.emitter.emit({type:"session-favorites:changed"});}return [{command:4633,handler:(t,r)=>n(r)}]}function mR(e){function n(t){let r=Bi.decode(t),o=()=>e.sendFrame(ae({command:4628,body:Pr.encode(Pr.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=Od.decode(r.sContent),s=i.serialNumber.trim();if(s==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let a=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(s,3,Number.isFinite(a)&&a>0?a:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u6301\u4E45\u5316\u94B1\u5305\u8F6C\u8D26\u72B6\u6001\u5931\u8D25\uFF0C\u672A\u53D1\u9001 ACK",cause:c}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function fR(e){return e.sticker!==void 0&&e.text===void 0&&e.system===void 0&&e.image===void 0&&e.video===void 0&&e.voice===void 0&&e.file===void 0&&e.contact===void 0&&e.miniProgram===void 0&&e.robot===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function pR(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&fR(n.body)&&n.encryption.encrypted===false,o=br({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return of(o);let{crypto:i}=t,{resolveChannelKey:s}=e;return (async()=>{if(i===void 0||s===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let a=await s(n.conversationId);if(a===null||a.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return sf(o,i,a)})()}}}function Mp(e,n){return Oo({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function ml(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=Mp(t,r);if(o.encrypt!==1)return cf(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return uf(o,i,a)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=Mp(t,r);if(o.encrypt!==1)return lf(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return gf(o,i,a)})()}}}function yR(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=No({id:n.id,conversationId:n.conversationId,body:n.body,encryption:n.encryption,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId});if(r.encrypt!==1)return Cf(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let s=await i(n.conversationId);if(s===null||s.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Sf(r,o,s.publicKey,s.version)})()}}}function Ep(e){let n=Br.encode(Br.create({userId:e.userId,robotId:e.robotId,content:e.content,msgTime:e.msgTime,sMsgId:e.sMsgId}));return ae({command:4647,body:n})}function IR(){return {conversationType:"robot",buildOutgoingFrame(e,n){return Ep(Ic({id:e.id,conversationId:e.conversationId,body:e.body,createdAt:e.createdAt,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId}))}}}function Tp(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u53D1\u9001\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function jo(){return Tp([ml()])}function vp(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!fi(n.transfer))throw new Error("sendTransfer: \u8F6C\u8D26\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"transfer",body:{transfer:n.transfer},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function Wt(e){return typeof e=="string"?e:e==null?"":String(e)}function ba(e){let n=typeof e=="number"?e:Number(Wt(e).trim());return Number.isFinite(n)?n:0}function bp(e){if(typeof e!="string")return "";let n=e.trim();return n.startsWith("data:image/")?n:n.includes("://")||n.length<32?"":`data:image/jpeg;base64,${n}`}function CR(...e){for(let n of e){let t=Wt(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function Na(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function SR(e){return e.url!==""||Na(e)!==""}function Np(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=ba(r.mediaType??r.media_type),i=Wt(r.kind).trim(),s={kind:o===2||i==="video"?"video":"image",width:ba(r.width),height:ba(r.height),url:Wt(r.url).trim(),thumbUrl:Wt(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:bp(r.thumbData??r.thumb_data),durationMs:ba(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return SR(s)?[s]:[]}):[]}function hR(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||Wt(e.body.caption).trim()}function _p(e){return Na({url:CR(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:Wt(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:bp(e.thumbData??e.thumb_data??e.thumbBase64)})}function AR(e,n){if(e==="mediaAlbum"){let t=Np(n)[0];return t===void 0?"":Na(t)}return e==="image"||e==="video"?_p(n):""}var RR=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,MR=/^[a-z0-9][a-z0-9._-]{0,63}$/,ER=new Set(["durable","rebuildable","ephemeral"]);function Gp(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!RR.test(e))throw new Error("cache.prefix \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 3-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26\uFF0C\u4E14\u9996\u5C3E\u4E3A\u5B57\u6BCD\u6216\u6570\u5B57");return e}function Dp(e,n){if(!MR.test(e))throw new Error(`cache namespace ${n} \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 1-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26`)}function TR(e){let n=Gp(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,i,s){if(!ER.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return Dp(i,"domain"),Dp(s,"resource"),o==="durable"&&i==="storage"&&s==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${s}`}}}}}function vR(e){return e===32768||e===0}function bR(e,n){if(vR(e))return {type:"success"};switch(e){case 33025:return {type:"auth-invalid",issue:{code:e,reason:"token_expired"}};case 33040:return {type:"auth-invalid",issue:{code:e,reason:"kicked",...n===void 0||n<=0?{}:{lastLoginTime:n}}};case 33026:case 33043:return {type:"auth-invalid",issue:{code:e,reason:"banned"}};default:return {type:"retry",error:{scope:"login",code:e,message:`\u672A\u77E5\u767B\u5F55\u9519\u8BEF\u7801\uFF1A${e}`}}}}function NR(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function _R(e){let n=xr.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return ae({command:257,body:xr.encode(n)})}function Up(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(a,c){if(o===void 0||o.generation!==a)return;clearTimeout(o.timer);let{resolve:u}=o;o=void 0,u(c);}function s(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:a}=o;o=void 0,a({type:"canceled"});}return {async login(){let a=++r;s();let c;try{c=await e.authProvider.getLoginContext();}catch(p){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:p}}}if(a!==r)return {type:"canceled"};if(c===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let u;try{u=_R(c);}catch(p){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:p}}}return new Promise(p=>{let y=setTimeout(()=>{i(a,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:a,resolve:p,timer:y,selfId:c.userId},e.logger?.("connection:login-frame-sent",{userId:c.userId,deviceToken:NR(c.deviceToken),clientType:c.clientType,channelType:c.channelType,tokenLength:c.token.length,generation:a}),e.sendFrame(u);})},onLoginAck(a){if(o===void 0)return;let{generation:c,selfId:u}=o,p;try{let y=Ei.decode(a),x=Number(y.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(y.sUserId),requestUserId:u,errCode:`0x${x.toString(16)}`,isKickedOut:x===33040,lastLoginTime:String(y.nLastLoginTime)}),p=bR(x,Number(y.nLastLoginTime)),p.type==="success"&&(p={type:"success",selfId:u});}catch(y){p={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:y}};}i(c,p);},cancel(){r+=1,s();},get awaitingAck(){return o!==void 0}}}var kp=4294967295,DR=2,GR=2.2,UR=2880;function kR(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function xp(e,n){if(!Number.isSafeInteger(e)||e<=0||e>kp)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${kp} \u7684\u6574\u6570`);return e}function xR(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>GR&&t>UR?DR:0}function fl(e,n){if(e===void 0)throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);let t=e.trim();if(t==="")throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function wR(e,n){return e===void 0?void 0:fl(e,n)}function BR(e){let n=e.trim(),t;try{t=new URL(n);}catch{throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u6709\u6548\u7684 http(s) URL")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!=="")throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u65E0\u51ED\u636E\u7684 http(s) URL");return t.href}function FR(e){let n=e.kind;if(n!=="sticker"&&n!=="gif")throw new Error(`sendExpression: \u4E0D\u652F\u6301\u7684 asset.kind\uFF08${String(n)}\uFF09`);if(e.kind==="gif"&&Object.prototype.hasOwnProperty.call(e,"packageId"))throw new Error("sendExpression: GIF \u4E0D\u5141\u8BB8\u63D0\u4F9B asset.packageId");let t=xp(e.width,"asset.width"),r=xp(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?fl(e.resourceId,"asset.resourceId"):wR(e.resourceId,"asset.resourceId"),s=e.kind==="sticker"?fl(e.packageId,"asset.packageId"):void 0;return {sticker:{url:BR(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:xR(t,r),...i===void 0?{}:{contentId:i},...s===void 0?{}:{packageName:s},...e.size===void 0?{}:{size:kR(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function wp(e,n){let t=FR(n.asset),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"sticker",body:t,encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function PR(){let e=globalThis.crypto;if(e===void 0||typeof e.getRandomValues!="function")throw new Error("sendGame: \u5F53\u524D runtime \u672A\u63D0\u4F9B crypto.getRandomValues\uFF0C\u5FC5\u987B\u6CE8\u5165 randomUint32");return e.getRandomValues(new Uint32Array(1))[0]}function Bp(e,n=PR){if(!Number.isSafeInteger(e)||e<=0||e>4294967296)throw new Error("sendGame: maxExclusive \u975E\u6CD5");let t=Math.floor(4294967296/e)*e;for(let r=0;r<128;r+=1){let o=n();if(!Number.isSafeInteger(o)||o<0||o>=4294967296)throw new Error("sendGame: randomUint32 \u5FC5\u987B\u8FD4\u56DE uint32");if(o<t)return o%e}throw new Error("sendGame: \u968F\u673A\u6E90\u8FDE\u7EED\u843D\u5165\u62D2\u7EDD\u533A\u95F4")}function VR(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:Bp(3,n)+1};if(e==="dice")return {gameType:e,value:Bp(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function Fp(e,n){let t=VR(n.gameType,e.randomUint32),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"game",body:{game:t},encryption:{encrypted:true},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var Pp=new Set([32768,0]),yl=new Set([33281,33299]),Il=33298,OR=new Set([...yl,Il]),_a=-2,KR=-1,Da=-3,pl=-4;function mn(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>mn(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=mn(r);return n}return e}function It(e){return mn(e)}function $o(e){return mn(e)}function Cl(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??jo(),s=new Map,a=new Map,c=new Map,u=new Map,p=0,y=new Set,x=new Map,v=new Set,I=new Set,k=new Set,G=new Map;function M(f){return fe(f)}function T(f,A){return f.createdAt!==A.createdAt?f.createdAt-A.createdAt:f.id<A.id?-1:f.id>A.id?1:0}function b(f){let A=M(f),R=a.get(A);if(R!==void 0)return R;let C=0;for(let B of e.domainState.getMessagesByConversation({conversationType:f.conversationType,conversationId:f.conversationId}))C=Math.max(C,tt(B));for(let B of s.values())M(B)===A&&(C=Math.max(C,B.createdAt));return a.set(A,C),C}function N(f,A){let R=M(f),C=a.get(R)??b(f);A>C&&a.set(R,A);}function L(f){let A=b(f),R=Math.max(o(),A+1);return a.set(M(f),R),{id:xn(),createdAt:R}}function Y(f,A){e.onUpdated?.({messageId:f.id,conversation:{conversationType:f.conversationType,conversationId:f.conversationId},state:A,...f.lastError===void 0?{}:{failure:{reason:f.lastError.reason,retryable:f.lastError.retryable}}});}function me(f){e.storage!==void 0&&e.storage.saveOutboxMessage(It(f)).catch(A=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",A));}function w(f){e.storage!==void 0&&e.storage.removeOutboxMessage(f).catch(A=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",A));}function X(f){let A=c.get(f);A!==void 0&&(clearTimeout(A),c.delete(f));}function ne(f,A,R){let C=R?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,B=e.domainState.getMessage(f);if(B!==void 0){e.domainState.upsertMessages([{...B,...A}],"live",C);return}let F=s.get(f);if(F===void 0)return;let Q={...{id:F.id,conversationId:F.conversationId,conversationType:F.conversationType,senderId:e.getSelfId(),contentType:F.contentType,body:$o(F.body),createdAt:F.createdAt,sortKey:we(F.createdAt,F.id),status:F.status,receipt:"unread",encryption:mn(F.encryption),failure:F.lastError===void 0?void 0:mn(F.lastError),...F.mention!==void 0?{mention:mn(F.mention)}:{},...F.refMessageId!==void 0?{refMessageId:F.refMessageId}:{}},...A};e.domainState.upsertMessages([{...Q,sortKey:rt(Q)}],"live",C);}function te(f){if(!OR.has(f.errcode))return;let A=e.domainState.getMessage(f.id);if(A===void 0||A.conversationType!=="direct"||A.senderId!==e.getSelfId())return;let R=yl.has(f.errcode),C=f.errcode===Il,B=f.failure??ma(f.errcode);R?B={...B,displayCode:"contactRequired",retryable:false}:C&&(B={...B,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...A,status:"failed",failure:B}],"live",{authoritativeOutboxFailure:true}),R?e.domainState.appendDirectContactRequiredNotice(A.conversationId,A.id):C&&e.domainState.appendDirectMessageRefusedNotice(A.conversationId,A.id);}function se(f,A){X(f);let R=s.get(f);R!==void 0&&(R.status="failed",R.lastError=A,ne(f,{status:"failed",failure:A}),me(R),Y(R,"failed"),$(f));}async function z(f){if(u.has(f.id))return;if(y.has(M(f))){se(f.id,{code:pl,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:false});return}let A=Symbol("outbox-dispatch");u.set(f.id,A);let R=p;try{let C=i.resolve(f.conversationType);if(C===void 0){se(f.id,{code:Da,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:f.conversationType},message:Ir(f.conversationType,"outbox.dispatch"),retryable:!1});return}let B;try{let F={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},P=C.buildOutgoingFrames===void 0?C.buildOutgoingFrame(f,F):C.buildOutgoingFrames(f,F);if(P instanceof Uint8Array)B=[P];else if(Array.isArray(P))B=P;else {let Q=await P;B=Q instanceof Uint8Array?[Q]:Q;}if(R!==p)return;if(B.length===0||B.some(Q=>!(Q instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${f.conversationType}\uFF09`)}catch{if(R!==p)return;f.attempts+=1,se(f.id,{code:_a,reason:"unknown"});return}if(y.has(M(f))){se(f.id,{code:pl,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:!1});return}if(!e.isAuthenticated()){f.status="pending",ne(f.id,{status:"pending"}),me(f),Y(f,"queued");return}f.status="sending",f.attempts+=1,ne(f.id,{status:"sending"}),me(f),Y(f,"sending");for(let F of B)e.sendFrame(F);X(f.id),c.set(f.id,setTimeout(()=>se(f.id,{code:KR,reason:"timeout"}),t));}finally{u.get(f.id)===A&&u.delete(f.id);}}function $(f){let A=G.get(f);A!==void 0&&(G.delete(f),A());}function ee(f){let A=s.get(f);return A===void 0||A.status!=="sending"?Promise.resolve():new Promise(R=>G.set(f,R))}function Ne(f){return (f.status==="pending"||f.status==="failed")&&!(f.status==="failed"&&f.lastError?.retryable===false)&&f.resumePolicy!=="manual"&&(f.attempts<r||I.has(f.id))&&i.resolve(f.conversationType)!==void 0}function he(f,A){let R;for(let C of s.values())A.has(C.id)||M(C)!==f||!Ne(C)||(R===void 0||T(C,R)<0)&&(R=C);return R}function ve(f,A=false){let R=M(f);if(A&&k.add(R),x.has(R)){v.add(R);return}Ge(R);}function Ie(){let f=new Set;for(let A of s.values())Ne(A)&&f.add(M(A));for(let A of f)Z(A,true);}async function Ge(f){let A=Symbol("outbox-drain"),R=p;x.set(f,A);try{do{v.delete(f);let C=new Set;for(;R===p&&e.isAuthenticated();){let B=he(f,C);if(B===void 0)break;if(C.add(B.id),I.delete(B.id),await z(B),R!==p)return;k.has(f)&&await ee(B.id);}}while(R===p&&v.has(f)&&e.isAuthenticated())}finally{x.get(f)===A&&(x.delete(f),k.delete(f));}}function Z(f,A=false){if(A&&k.add(f),x.has(f)){v.add(f);return}Ge(f);}function K(f){let A={code:_a,reason:"unknown",displayCode:"sendCanceled",retryable:false};f.lastError=A,ne(f.id,{status:"failed",failure:A}),I.delete(f.id),s.delete(f.id),w(f.id),Y(f,"canceled"),$(f.id);}return {allocateMessageIdentity:L,enqueueText(f){let{id:A,createdAt:R}=L(f),C={encrypted:f.encrypted??false},B=i.resolve(f.conversationType)!==void 0,F=B&&e.isAuthenticated(),P={id:A,conversationId:f.conversationId,conversationType:f.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:f.text},createdAt:R,sortKey:we(R,A),status:"pending",receipt:"unread",encryption:mn(C),...f.mention!==void 0?{mention:mn(f.mention)}:{},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}},Q={id:A,conversationId:f.conversationId,conversationType:f.conversationType,contentType:"text",body:{text:f.text},encryption:mn(C),status:"pending",attempts:0,createdAt:R,...f.mention!==void 0?{mention:mn(f.mention)}:{},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}};return s.set(A,Q),me(Q),Y(Q,"queued"),e.domainState.upsertMessages([P],"live",{newOutgoing:true}),B?(F&&ve(Q),It(Q)):(se(A,{code:Da,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:f.conversationType},message:Ir(f.conversationType,"outbox.enqueueText"),retryable:false}),It(Q))},enqueueContact(f){let A=f.contact.targetId.trim(),R=f.contact.displayName.trim();if(A==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(R==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(f.contact.kind!=="individual"&&f.contact.kind!=="group"&&f.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(f.contact.kind)} \u540D\u7247`);let{id:C,createdAt:B}=L(f),F={encrypted:f.encrypted??false},P=i.resolve(f.conversationType)!==void 0,Q=P&&e.isAuthenticated(),Se={contact:{...f.contact,targetId:A,displayName:R}},m={id:C,conversationId:f.conversationId,conversationType:f.conversationType,senderId:e.getSelfId(),contentType:"contact",body:$o(Se),createdAt:B,sortKey:we(B,C),status:"pending",receipt:"unread",encryption:mn(F),...f.refMessageId===void 0?{}:{refMessageId:f.refMessageId}},S={id:C,conversationId:f.conversationId,conversationType:f.conversationType,contentType:"contact",body:$o(Se),encryption:mn(F),status:"pending",attempts:0,createdAt:B,...f.refMessageId===void 0?{}:{refMessageId:f.refMessageId}};return s.set(C,S),me(S),Y(S,"queued"),e.domainState.upsertMessages([m],"live",{newOutgoing:true}),P?(Q&&ve(S),It(S)):(se(C,{code:Da,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:f.conversationType},message:Ir(f.conversationType,"outbox.enqueueContact"),retryable:false}),It(S))},enqueueMedia(f){let{id:A,createdAt:R}=f,C=$o(f.body);ud(f.contentType,C,"outbox.enqueueMedia"),N(f,R);let B=i.resolve(f.conversationType)!==void 0,F=B&&e.isAuthenticated(),P={id:A,conversationId:f.conversationId,conversationType:f.conversationType,senderId:e.getSelfId(),contentType:f.contentType,body:$o(C),createdAt:R,sortKey:we(R,A),status:"pending",receipt:"unread",encryption:mn(f.encryption),...f.mention!==void 0?{mention:mn(f.mention)}:{},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}},Q={id:A,conversationId:f.conversationId,conversationType:f.conversationType,contentType:f.contentType,body:C,encryption:mn(f.encryption),status:"pending",attempts:0,createdAt:R,...f.mention!==void 0?{mention:mn(f.mention)}:{},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}};return s.set(A,Q),me(Q),Y(Q,"queued"),e.domainState.upsertMessages([P],"live",{newOutgoing:f.optimisticAlreadyCreated!==true}),B?(F&&ve(Q),It(Q)):(se(A,{code:Da,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:f.conversationType},message:Ir(f.conversationType,"outbox.enqueueMedia"),retryable:false}),ve(Q,true),It(Q))},onChatAck(f){X(f.id);let A=s.get(f.id);if(A===void 0){Pp.has(f.errcode)||te(f);return}if(Pp.has(f.errcode))s.delete(f.id),w(f.id),ne(f.id,{status:"sent",serverTime:f.serverTime>0?f.serverTime:void 0,...f.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(f.id)?.extensions,...f.extensions}}}),Y(A,"sent"),$(f.id);else {A.status="failed",A.lastError=f.failure??ma(f.errcode);let R=A.conversationType==="direct"&&yl.has(f.errcode),C=A.conversationType==="direct"&&f.errcode===Il;R?A.lastError={...A.lastError,displayCode:"contactRequired",retryable:false}:C&&(A.lastError={...A.lastError,displayCode:"messageRefused",retryable:false}),ne(f.id,{status:"failed",failure:A.lastError},{authoritativeFailure:true}),R?e.domainState.appendDirectContactRequiredNotice(A.conversationId,A.id):C&&e.domainState.appendDirectMessageRefusedNotice(A.conversationId,A.id),me(A),Y(A,"failed"),$(f.id);}},onAuthenticated(){Ie();},retry(f){let A=s.get(f);return A===void 0?{accepted:false,reason:"not-found"}:A.status==="sending"||u.has(f)?{accepted:false,reason:"in-flight"}:A.status==="failed"&&A.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:A.status!=="failed"&&!(A.status==="pending"&&A.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(A.resumePolicy==="manual"&&(A.resumePolicy="automatic",me(A)),I.add(A.id),ve(A),{accepted:true})},cancel(f){let A=s.get(f);return A===void 0?{accepted:false,reason:"not-found"}:A.status==="sending"||u.has(f)?{accepted:false,reason:"in-flight"}:A.status!=="pending"?{accepted:false,reason:"invalid-state"}:A.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(K(A),{accepted:true})},markConversationTerminated(f,A){let R=M(f);y.add(R);for(let C of [...s.values()])if(M(C)===R){if(C.status==="pending"&&C.attempts===0&&!u.has(C.id)){K(C);continue}se(C.id,{code:pl,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${A}`,retryable:false});}},clearConversationTerminated(f){let A=M(f);y.delete(A),Z(A);},markForLogout(f){for(let A of s.values())if(!(A.status!=="pending"&&A.status!=="sending"&&A.status!=="failed")){if(X(A.id),A.resumePolicy="manual",f.policy==="fail"){let R={code:_a,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};A.status="failed",A.lastError=R,ne(A.id,{status:"failed",failure:R}),Y(A,"failed");}me(A),$(A.id);}},getPending(){return [...s.values()].map(It)},reset(f){f?.discardInFlight&&(p+=1,u.clear(),x.clear(),v.clear(),k.clear());for(let A of [...c.keys()])X(A);for(let A of s.values())A.status==="sending"&&(A.status="pending",ne(A.id,{status:"pending"}),me(A),Y(A,"queued"),$(A.id));},async hydrate(f=()=>true){if(!(e.storage===void 0||!f()))try{let A=await e.storage.getOutbox();if(!f())return;for(let R of A){if(!f())return;let C=It(R);if(C.status==="sent"){w(C.id);continue}try{ud(C.contentType,C.body,`outbox.hydrate(${C.id})`),C.body.video!==void 0&&(C.body={...C.body,video:pi(C.body.video)});}catch(P){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${C.id}\uFF09`,P),!f())return;if(w(C.id),e.domainState.getMessage(C.id)!==void 0){let Q={code:_a,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};ne(C.id,{status:"failed",failure:Q},{authoritativeFailure:!0});}continue}let B=C.status==="sending"?"pending":C.status,F={...C,status:B};if(s.set(C.id,F),N(F,F.createdAt),Y(F,B==="pending"?"queued":B),!f())return;e.domainState.getMessage(C.id)!==void 0&&ne(C.id,{status:B,failure:C.lastError===void 0?void 0:mn(C.lastError)});}}catch(A){f()&&e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",A);}}}}function Vp(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=ul(),r={domainState:e.domainState,outbox:e.outbox,onReadAck:e.onReadAck,onSyncReadAck:e.onSyncReadAck,onSyncReadDeliver:e.onSyncReadDeliver,sendFrame:e.sendFrame,getSelfId:e.getSelfId,emitter:e.emitter,logger:e.logger,keepRaw:e.keepRaw,decrypt:e.decrypt};for(let{command:o,handler:i}of gl(r))t.register(o,i);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,i,s){let a=t.resolve(o);if(a===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return a(o,i,s),!0}catch(c){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,c),false}}}}var LR=new Set([32768,0]);function Sl(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),s=new Map,a=new Map,c=new Map,u=new Set,p=new Map,y=new Map,x=new Map;function v(w,X){let ne=x.get(w);ne===void 0&&(ne=new Set,x.set(w,ne));for(let te of X)ne.add(te);}function I(w,X){let ne=e.domainState.getConversationMessage({conversationType:"direct",conversationId:w},X);return ne?.conversationType==="direct"&&ne.conversationId===w&&G(ne.senderId)&&Pn(ne.id)?ne:void 0}function k(w,X,ne){u.add(w);let te=new Map;for(let z of X){let $=I(w,z);$!==void 0&&!x.get(w)?.has(z)&&(ne?$.contentType==="voice"||$.contentType==="video":M($))&&te.set(z,$.sortKey);}if(e.canSendReadReceipt?.(w)===false){v(w,te.keys()),L(w);return}let se=y.get(w);se===void 0&&(se=new Map,y.set(w,se));for(let[z,$]of te)se.set(z,$);}function G(w){return w!==e.getSelfId()}function M(w){let X=w.body.system?.eventType;return w.contentType==="voice"||w.contentType==="video"?false:!(w.conversationType==="direct"&&(X==="direct_contact_established"||X==="direct_contact_required"||X==="direct_message_refused"))}function T(w,X){if(X!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:w},X)?.sortKey}function b(w,X){let ne=T(w,c.get(w)??""),te=new Set;for(let se of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:w}))M(se)&&G(se.senderId)&&Pn(se.id)&&!x.get(w)?.has(se.id)&&se.sortKey<=X&&(ne===void 0||se.sortKey>ne)&&te.add(se.id);return [...te].sort((se,z)=>{let $=T(w,se)??"",ee=T(w,z)??"";return $<ee?-1:$>ee?1:0})}function N(w){let X=a.get(w);X!==void 0&&(clearTimeout(X.timer),a.delete(w));}function L(w){let X=s.get(w);X!==void 0&&(clearTimeout(X),s.delete(w));let ne=p.get(w),te=ne===void 0?void 0:T(w,ne);te!==void 0&&v(w,b(w,te)),v(w,a.get(w)?.messageIds??[]),N(w),v(w,y.get(w)?.keys()??[]),y.delete(w),p.delete(w);let se=e.domainState.getReadState(w)?.readCursor??"";se!==""&&c.set(w,se);}function Y(w,X){let ne=a.get(w);if(ne===void 0)return;clearTimeout(ne.timer);let te=e.canSendReadReceipt?.(w);if(te===false){L(w);return}if(te===void 0&&e.canSendReadReceipt!==void 0){a.delete(w);return}if(ne.attempts<o&&e.isAuthenticated()){ne.attempts+=1,e.sendFrame(ne.frame),ne.timer=setTimeout(()=>Y(w,"timeout"),r);return}a.delete(w),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${X}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}function me(w){if(a.has(w))return;let X=p.get(w),ne=X===void 0?void 0:T(w,X),te=ne===void 0?[]:b(w,ne);X!==void 0&&ne!==void 0&&te.length===0&&(c.set(w,X),p.delete(w));let se=y.get(w),z=[...se?.keys()??[]],$=[...new Set([...te,...z])].sort((K,f)=>{let A=se?.get(K)??T(w,K)??"",R=se?.get(f)??T(w,f)??"";return A<R?-1:A>R?1:0});if($.length===0)return;let ee=e.canSendReadReceipt?.(w);if(ee===false){L(w);return}if(ee===void 0&&e.canSendReadReceipt!==void 0||!e.isAuthenticated())return;let Ne=$.slice(0,i),he=new Set(te),ve=Ne.filter(K=>he.has(K)),Ie=ve.length===0?void 0:ve.length===te.length?X:ve[ve.length-1],Ge=xn(),Z;try{Z=ae({command:4103,body:Wr.encode(Wr.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(w),sMsgId:Ge,readResults:Ne.map(K=>({sMsgId:ke(K),errcode:0})),readReceiptOff:0}))});}catch(K){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:K}});return}e.sendFrame(Z),e.logger?.("read-report",{conversationId:w,notifyId:Ge,count:Ne.length,remaining:$.length-Ne.length}),a.set(w,{conversationId:w,cursor:Ie,notifyId:Ge,frame:Z,messageIds:Ne,attempts:1,timer:setTimeout(()=>Y(w,"timeout"),r)});}return {report(w){u.add(w);let X=e.domainState.getReadState(w)?.readCursor;X&&p.set(w,X);let ne=s.get(w);if(ne!==void 0&&clearTimeout(ne),e.canSendReadReceipt?.(w)===false){L(w);return}s.set(w,setTimeout(()=>{s.delete(w),me(w);},t));},reportVisible(w,X){k(w,X,false);let ne=s.get(w);ne!==void 0&&clearTimeout(ne),s.set(w,setTimeout(()=>{s.delete(w),me(w);},t));},reportConsumedMedia(w,X){k(w,[X],true),me(w);},onReadAck({notifyId:w,errcode:X}){let ne;for(let te of a.values())if(te.notifyId===w){ne=te;break}if(ne!==void 0)if(e.logger?.("read-report-ack",{conversationId:ne.conversationId,notifyId:w,errcode:X}),LR.has(X)){clearTimeout(ne.timer),a.delete(ne.conversationId),ne.cursor!==void 0&&c.set(ne.conversationId,ne.cursor),v(ne.conversationId,ne.messageIds);let te=y.get(ne.conversationId);for(let se of ne.messageIds)te?.delete(se);te?.size===0&&y.delete(ne.conversationId),me(ne.conversationId);}else Y(ne.conversationId,"rejected");},onAuthenticated(){for(let w of u)me(w);},suppress(w){if(w!==void 0){L(w);return}let X=new Set([...u,...s.keys(),...a.keys()]);for(let ne of X)L(ne);},resume(w){if(!u.has(w))return;let X=s.get(w);X!==void 0&&clearTimeout(X),s.set(w,setTimeout(()=>{s.delete(w),me(w);},t));},reset(){for(let w of s.values())clearTimeout(w);s.clear();for(let w of [...a.keys()])N(w);}}}function Op(e,n){let t=Math.min(n.maxDelayMs,n.baseDelayMs*2**e);return n.jitter?Math.round(t/2+Math.random()*(t/2)):t}function Kp(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,s,a=false,c=0;function u(){s!==void 0&&(clearTimeout(s),s=void 0);}function p(){i!==void 0&&(clearInterval(i),i=void 0),u(),a=false,c=0;}function y(){if(c>=r){p(),e.onUnhealthy();return}e.sendPing(),c+=1;}return {start(){i===void 0&&(c=0,i=setInterval(y,t));},stop:p,onAck(){u(),a=false,c=0;},probe(){i!==void 0&&(a||(a=true,e.sendPing(),c=1,clearInterval(i),i=setInterval(y,t),o!==void 0&&(s=setTimeout(()=>{s=void 0,p(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return c}}}function ZR(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function QR(e,n){if(e.length===0)return n;let t=new Uint8Array(e.length+n.length);return t.set(e,0),t.set(n,e.length),t}function WR(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function HR(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,s=n.heartbeatIntervalMs??1e4,a=n.heartbeatMaxMissed??3,c=n.foregroundProbeTimeoutMs??5e3,u=n.loginTimeoutMs??n.readTimeoutMs??3e4,p={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},y="idle",x=true,v=0,I,k=false,G=new Uint8Array(0),M=false,T=0,b="";function N(E){y!==E&&(e.logger?.("connection:state-transition",{from:y,to:E,selfId:b}),y=E,i.emit({type:"connection:changed",state:E}));}function L(E){i.emit({type:"error",error:E});}function Y(E,O){let q=T;E?.catch(oe=>{q===T&&L({scope:"unknown",message:O,cause:oe});});}function me(E){t.send(ZR(E)).catch(O=>{L({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:O});});}let w=Kp({sendPing:()=>me(ae({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:y,selfId:b}),L({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),P();}},{intervalMs:s,maxMissed:a,probeTimeoutMs:c}),X=Up({authProvider:r,sendFrame:me,logger:e.logger},{timeoutMs:u}),ne=e.sendStrategies??jo(),te=e.domainState?Cl({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,isAuthenticated:()=>y==="authenticated",sendStrategies:ne,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(E,O)=>L({scope:"storage",message:E,cause:O}),onUpdated:E=>e.emitter.emit({type:"outbox:updated",conversation:E.conversation,item:E})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,se=e.domainState?Sl({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,z=e.domainState?ol({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger}):void 0,$=e.domainState?dl({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,isAuthenticated:()=>y==="authenticated",strategies:e.recallStrategies}):void 0,ee=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?sl({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,isAuthenticated:()=>y==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,Ne=e.domainState!==void 0&&$!==void 0?cl({domainState:e.domainState,sendFrame:me,getSelfId:()=>b,onRecallAck:$.onRecallAck,onChannelMessageDeletionAck:E=>ee?.onDeleteAck(E),logger:e.logger}):[],he=e.domainState?Dc({getSelfId:()=>b,sendFrame:me,isAuthenticated:()=>y==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,ve=e.domainState!==void 0&&he!==void 0?Jc({onEditAck:he.onEditAck}):[],Ie=e.domainState!==void 0&&te!==void 0&&e.media!==void 0?rl({getSelfId:()=>b,domainState:e.domainState,outbox:te,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,onMediaAlbumContentSize:e.media.onAlbumContentSize,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads,recoveryPort:e.media.recoveryPort,retainFailedUploads:e.media.retainFailedUploads,shouldPersistUpload:e.media.shouldPersistUpload,waitUntilOnline:e.media.waitUntilOnline,isOnline:e.isOnline}):void 0;function Ge(E,O){return Ie===void 0?Promise.reject(new Error(`${E} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):b===""?Promise.reject(new Error(`${E} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):O(Ie)}function Z(E,O,q,oe){let Ce=e.domainState?.getConversationMessage({conversationId:q.conversationId,conversationType:q.conversationType},O);if(Ce===void 0||Ce.conversationId!==q.conversationId||Ce.conversationType!==q.conversationType||Ce.contentType!==oe&&!(oe==="file"&&Ce.contentType==="filesAlbum"&&Ce.body.filesAlbum?.items.length===1)||Ce.status!=="failed"||Ce.recalled!==void 0||Ce.deletedForEveryone!==void 0||Ce.senderId!==b||!(Ce.failure?.displayCode==="media.uploadInterrupted"||Ce.failure?.displayCode==="media.cancelled"||Ce.failure?.displayCode==="media.uploadTimeout"&&Ce.failure.retryable===false))throw new Error(`${E} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u6E90\u6587\u4EF6\u5DF2\u91CA\u653E\u7684${oe==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Ce}let K=e.domainState&&te?Vp({domainState:e.domainState,outbox:te,onReadAck:se?.onReadAck,onSyncReadAck:z?.onAck,onSyncReadDeliver:z?.onDeliver,sendFrame:me,getSelfId:()=>b,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...Ne,...ve]}):void 0;function f(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function A(){I!==void 0&&(clearTimeout(I),I=void 0);}function R(E){return E!==null&&E.userId.trim()!==""&&E.token.trim()!==""}async function C(){try{return R(await r.getLoginContext())?"available":"missing"}catch(E){return L({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:E}),"unavailable"}}function B(E,O){L({scope:"transport",message:E,cause:O}),w.stop(),N("disconnected");}function F(){if(I!==void 0)return;let E=Op(v,p);v+=1,I=setTimeout(()=>{I=void 0,H();},E);}function P(){if(y==="reconnecting"||y==="suspended")return;let E=++T;w.stop(),X.cancel(),te?.reset(),se?.reset(),$?.reset(),ee?.reset(),he?.reset(),N("reconnecting"),f(),C().then(O=>{if(!(y!=="reconnecting"||E!==T)){if(O==="missing"){m({code:0,reason:"token_expired"});return}F();}});}function Q(E="offline"){let O=y==="idle"||y==="disconnected"||y==="disconnecting";if(E==="offline"&&(O||y==="suspended")){Y(Ie?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25");return}A(),T+=1,E==="offline"&&Y(Ie?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),w.stop(),X.cancel(),E==="session-ended"&&Ie?.cancelAll("session-ended"),te?.reset({discardInFlight:E==="session-ended"}),se?.reset(),$?.reset(),ee?.reset(),he?.reset(),O||N("suspended"),f();}function Se(){if(!(y!=="suspended"||!x)){if(e.isOnline?.()===false){N("offline");return}v=0,H();}}function m(E){y==="idle"||y==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:E.reason,code:`0x${E.code.toString(16)}`,stateBefore:y,selfId:b}),A(),T+=1,w.stop(),X.cancel(),N("disconnected"),f(),Ie?.cancelAll("session-ended"),te?.reset({discardInFlight:true}),se?.reset(),$?.reset(),ee?.reset(),he?.reset(),i.emit({type:"auth:invalid",issue:E}),Promise.resolve().then(()=>r.onAuthInvalid?.(E)).catch(O=>L({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:O})));}function S(E){switch(E.type){case "success":v=0,M=false,E.selfId&&(b=E.selfId),N("authenticated"),w.start(),te?.onAuthenticated(),Y(Ie?.resumePaused(),"\u7F51\u7EDC\u6062\u590D\u540E\u7EE7\u7EED\u4E0A\u4F20\u5931\u8D25"),se?.onAuthenticated(),z?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(E.issue.reason==="token_expired"&&E.issue.code!==0&&!M){M=true,L({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),P();return}m(E.issue);break;case "retry":L(E.error),P();break;}}async function D(){let E=await X.login();E.type!=="canceled"&&y==="authenticating"&&S(E);}async function H(){if(!x){A(),N("suspended");return}if(e.isOnline?.()===false){A(),w.stop(),Y(Ie?.pauseAll("offline"),"\u79BB\u7EBF\u63A2\u9488\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),N("offline");return}let E=++T;N("connecting"),k=false,G=new Uint8Array(0);let O=await C();if(E!==T)return;if(O==="missing"){m({code:0,reason:"token_expired"});return}if(O==="unavailable"){P();return}let q;try{q=await o.getEndpoints();}catch(Ce){if(E!==T)return;B("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Ce);return}if(E!==T)return;let oe=q[0];if(oe===void 0){B("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!WR(oe.url)){B(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${oe.url}`);return}try{await t.connect([oe]);}catch(Ce){if(E!==T)return;L({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Ce}),P();return}E!==T&&f();}function W(E,O,q){switch(E){case 258:X.onLoginAck(O);break;case 2:w.onAck();break;case 264:if(e.logger!==void 0)try{let oe=Vd.decode(O);e.logger("connection:kickout-received",{kickedUserId:String(oe.sUserId),selfId:b,matchesSelf:String(oe.sUserId)===b,entryIp:oe.ip,entryPort:oe.port,stateBefore:y});}catch(oe){e.logger("connection:kickout-decode-failed",{message:oe?.message,stateBefore:y});}m({code:33040,reason:"kicked"});break;default:K?.route(E,O,{msgSeq:q});break}}function De(){return y==="authenticating"||y==="authenticated"}function de(E){if(!De())return;let O=T;G=QR(G,new Uint8Array(E));let q;try{let oe=Xd(G);q=oe.frames,G=oe.remainder;}catch(oe){L({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:oe}),P();return}for(let oe of q){if(!De()||O!==T)return;W(oe.header.command,oe.body,oe.header.msgSeq);}}return t.on("open",()=>{y==="connecting"&&(N("authenticating"),D());}),t.on("message",({data:E})=>de(E)),t.on("error",({error:E})=>{L({scope:"transport",message:"transport \u9519\u8BEF",cause:E});}),t.on("close",({code:E,reason:O,wasClean:q})=>{if(w.stop(),e.logger?.("connection:transport-closed",{code:E,reason:O,wasClean:q,stateBefore:y,intentionalClose:k,nextPath:k||y==="disconnecting"?"disconnected":y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"?"ignored":"reconnect"}),k||y==="disconnecting"){k=false,N("disconnected");return}y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"||P();}),{get state(){return y},setConnectionAllowed(E){x!==E&&(x=E,E||Q("session-ended"));},async connect(){y==="connecting"||y==="authenticating"||y==="authenticated"||(A(),v=0,await H());},disconnect(){if(A(),T+=1,w.stop(),X.cancel(),te?.reset(),se?.reset(),$?.reset(),ee?.reset(),he?.reset(),k=true,y==="idle"||y==="disconnected"){N("disconnected");return}N("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&N("disconnected");},notifyOnline(){if(y==="offline"){v=0,H();return}y==="reconnecting"&&(A(),H());},notifyOffline(){Y(Ie?.pauseAll("offline"),"\u7F51\u7EDC\u79BB\u7EBF\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),!(y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||y==="offline")&&(A(),T+=1,w.stop(),X.cancel(),te?.reset(),se?.reset(),$?.reset(),ee?.reset(),he?.reset(),N("offline"),f());},notifyVisible(){if(y==="suspended"){Se();return}if(y==="offline"&&e.isOnline?.()===true){v=0,H();return}if(y==="reconnecting"){A(),H();return}if(y==="authenticated"){let E=T;C().then(O=>{if(!(y!=="authenticated"||E!==T)){if(O==="missing"){m({code:0,reason:"token_expired"});return}w.probe();}});}},suspendForPageLifecycle:Q,resumeFromPageLifecycle:Se,suppressDirectReadReceipts(E){se?.suppress(E);},resumeDirectReadReceipts(E){se?.resume(E);},reportDirectMediaConsumed(E,O){se?.reportConsumedMedia(E,O),z?.reportConsumedMedia?.(E,O);},sendText(E){if(te===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendText \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return te.enqueueText(E)},sendContact(E){if(te===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendContact \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return te.enqueueContact(E)},forwardMessages(E){if(te===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let O=e.domainState;if(O===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("forwardMessages \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Yc({outbox:te,sendStrategies:ne,resolveCurrentMessage:q=>O.getConversationMessage(q,q.id)},E)},recallMessage(E){return $===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):$.recall(E)},deleteChannelMessageForEveryone(E){return ee===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):ee.deleteForEveryone(E)},editMessage(E){return he===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):he.edit(E)},sendImage(E){return Ge("sendImage",O=>O.sendImage(E))},sendVideo(E){return Ge("sendVideo",O=>O.sendVideo(E))},sendVoice(E){return Ge("sendVoice",O=>O.sendVoice(E))},sendFile(E){return Ge("sendFile",O=>O.sendFile(E))},sendGif(E){return Ge("sendGif",O=>O.sendGif(E))},sendMediaAlbum(E){return Ge("sendMediaAlbum",O=>O.sendMediaAlbum(E))},sendExpression(E){if(te===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendExpression \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return wp({outbox:te},E)},sendGame(E){if(te===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendGame \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Fp({outbox:te,randomUint32:e.randomUint32},E)},sendMiniProgram(E){if(te===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendMiniProgram \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return lp({outbox:te},E)},sendTransfer(E){if(te===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendTransfer \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return vp({outbox:te},E)},sendGift(E){if(te===void 0)throw new Error("sendGift \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(b==="")throw new Error("sendGift \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return tp({outbox:te},E)},replaceInterruptedVideo(E,O){return Ge("replaceInterruptedVideo",q=>{let oe=Z("replaceInterruptedVideo",E,O,"video");return q.replaceVideo(E,oe.createdAt,{...O,...O.caption===void 0&&oe.body.video?.describe!==void 0?{caption:oe.body.video.describe}:{},...O.refMessageId===void 0&&oe.refMessageId!==void 0?{refMessageId:oe.refMessageId}:{}})})},replaceInterruptedFile(E,O){return Ge("replaceInterruptedFile",q=>{let oe=Z("replaceInterruptedFile",E,O,"file");return q.replaceFile(E,oe.createdAt,{...O,...oe.contentType==="filesAlbum"?{filesAlbum:true,caption:oe.body.filesAlbum?.caption}:{},...O.refMessageId===void 0&&oe.refMessageId!==void 0?{refMessageId:oe.refMessageId}:{}})})},cancelMedia(E){Ie?.cancel(E);},cancelMediaUpload(E,O){return Ie?.cancel(E,O)??false},pauseMediaUpload(E){return Ie?.pause(E)??Promise.resolve(false)},resumeMediaUpload(E){return Ie?.resume(E)??false},resumePausedMediaUploads(E,O){return Ie?.resumePaused(E,O)??Promise.resolve()},retryMediaUpload(E,O){return Ie?.retry(E,O)??false},expireRetainedUploads(){Ie?.expireRetainedUploads();},invalidateMediaAssetCacheWrites(){Ie?.invalidateAssetCacheWrites();},async disposeMediaTasks(E){await Ie?.dispose(E);},recoverMediaUpload(E,O,q){return Ie===void 0?Promise.reject(new Error("IM_MEDIA_RECOVERY_UNAVAILABLE")):Ge("recoverMediaUpload",oe=>oe.recoverUpload(E,O,q))},retryMessage(E){Ie?.retry(E)!==true&&te?.retry(E);},retryOutboxMessage(E){return te?.retry(E)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(E){return te?.cancel(E)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(E,O){te?.markConversationTerminated(E,O);},clearOutboxConversationTerminated(E){te?.clearConversationTerminated(E);},terminateConversationSending(E,O){Ie?.cancelConversation(E),te?.markConversationTerminated(E,O);},settleConversationRead(E,O){if(e.domainState===void 0)throw new Error("\u4F1A\u8BDD\u5DF2\u8BFB\u4E0D\u53EF\u7528\uFF1A\u672A\u6CE8\u5165 domainState");if(E.conversationType==="direct"){e.domainState.advanceRead(E,O),z?.report(E.conversationId);return}let q=e.readStrategies?.resolve(E.conversationType);if(q===void 0)throw new Error(`\u4F1A\u8BDD\u5DF2\u8BFB\u672A\u652F\u6301\u7C7B\u578B\uFF1A${E.conversationType}`);let oe={conversationId:E.conversationId,readCursor:O};if(E.conversationType==="channel"){if(q.settleConversationRead===void 0)throw new Error("CHANNEL \u6574\u4F1A\u8BDD\u5DF2\u8BFB\u5C1A\u672A\u88C5\u914D");return q.settleConversationRead(oe)}return q.markRead(oe)},reportVisibleMessages(E,O){if(!(E.conversationType==="group"||E.conversationType==="channel")){if(E.conversationType!=="direct")throw new Error(`\u53EF\u89C1\u6D88\u606F\u56DE\u6267\u672A\u652F\u6301\u7C7B\u578B\uFF1A${E.conversationType}`);if(se===void 0)throw new Error("\u53EF\u89C1\u6D88\u606F\u56DE\u6267\u4E0D\u53EF\u7528\uFF1A\u672A\u6CE8\u5165 domainState");se.reportVisible(E.conversationId,O);}},markRead(E,O,q){if(e.domainState===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let oe=q??e.domainState.getSession(E)?.type;if(oe===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${E}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(oe==="direct"){if(se===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(E,O),se.report(E),z?.report(E);return}let Ce=e.readStrategies?.resolve(oe);if(Ce===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${oe}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Ce.markRead({conversationId:E,readCursor:O})},sendFrame(E){me(E);},onChatAck(E){te?.onChatAck(E);},getPendingOutbox(){return te?.getPending()??[]},async hydrateOutbox(E){await te?.hydrate(E);},markOutboxForLogout(E){te?.markForLogout({policy:E});}}}var Lp={error:0,warn:1,info:2,debug:3,trace:4},JR=8,hl=50,Al=100,YR="[REDACTED]",XR="[REDACTED_PRIVATE_KEY]",zR="[SIGNED_URL_REDACTED]",qR=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,jR=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,$R=/(["'])(authorization|cookie|set[_-]?cookie|password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)\1(\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}]+)/gi,eM=/\b(password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)(\s*[:=]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;]+)/gi,nM=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function tM(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function rM(e){let n=tM(e);return n==="authorization"||n==="cookie"||n==="setcookie"||n==="password"||n==="passwd"||n.includes("apikey")||n.includes("accesskey")||n==="token"||n.endsWith("token")||n.includes("secret")||n.includes("privatekey")||n.includes("secretkey")||n.includes("sessionkey")||n.includes("teakey")||n.includes("signature")||n.includes("credential")}function oM(e){try{let n=new URL(e);return n.protocol!=="http:"&&n.protocol!=="https:"?!1:[...n.searchParams.keys()].some(t=>{let r=t.toLowerCase();return r==="signature"||r==="sig"||r==="token"||/^x-(?:amz|goog)-(?:signature|credential|security-token)$/.test(r)})}catch{return false}}function iM(e){return e.replace(qR,n=>oM(n)?zR:n)}function Rl(e){return iM(e).replace(nM,XR).replace(jR,"$1$2[REDACTED]").replace($R,"$1$2$1$3[REDACTED]").replace(eM,"$1$2[REDACTED]")}function sM(e){if(e instanceof ArrayBuffer)return {type:"ArrayBuffer",byteLength:e.byteLength};if(ArrayBuffer.isView(e))return {type:e.constructor.name,byteLength:e.byteLength};if(typeof Blob<"u"&&e instanceof Blob){let n={type:e.constructor.name,byteLength:e.size,mimeType:e.type};return typeof File<"u"&&e instanceof File&&(n.name=e.name,n.lastModified=e.lastModified),n}}function Ml(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&rM(i))return YR;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return Rl(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=JR)return "[MAX_DEPTH]";let s=sM(r);if(s!==void 0)return s;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let u=r;return {name:u.name,message:Rl(u.message),...u.code===void 0?{}:{code:u.code},...u.category===void 0?{}:{category:u.category},...u.retryable===void 0?{}:{retryable:u.retryable},...u.stack===void 0?{}:{stack:Rl(u.stack)},...u.data===void 0?{}:{data:t(u.data,o+1,"data")}}}if(typeof r!="object")return String(r);if(n.has(r))return "[CIRCULAR]";if(n.add(r),Array.isArray(r)){let u=r.slice(0,hl).map(p=>t(p,o+1));return r.length>hl&&u.push({omittedItems:r.length-hl}),u}let a=Object.entries(r),c={};for(let[u,p]of a.slice(0,Al))c[u]=t(p,o+1,u);return a.length>Al&&(c.omittedKeys=a.length-Al),c}return t(e,0)}function aM(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function s(c,u){return e.enabled&&o!==void 0&&Lp[c]<=Lp[e.level]&&n.has(u)}function a(c){if(i||e.fallbackSink===void 0)return;i=true;let u={message:"diagnostic-sink-failed"};try{u={message:"diagnostic-sink-failed",data:Ml(c)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:u}));}catch{}}return {isEnabled:s,record(c,u,p,y,x){if(!s(c,p))return;let v;try{v={...e.getRuntimeContext?.(),...x?.()};}catch(M){v={error:{message:"diagnostic-payload-factory-failed",data:M}};}let I;try{I=t();}catch{I=Date.now();}let k=++r,G;try{G=Ml({timestamp:I,sequence:k,level:c,layer:u,category:p,event:y,...v});}catch{G={timestamp:I,sequence:k,level:c,layer:u,category:p,event:y,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(G));}catch(M){o=void 0,a(M);}}}}function dM(e){return (n,t)=>{let r=n.includes("crypto")?"crypto":n.includes("sync")?"sync":n.includes("read")?"message":n.includes("outbox")?"outbox":n.includes("chat")||n.includes("message")||n.includes("deliver")?"message":"protocol";e.record("trace","core",r,n,()=>({data:t}));}}function cM(){let e=new Set;function n(t){for(let r of [...e])try{r(t);}catch(o){t.type!=="error"&&n({type:"error",error:{scope:"unknown",message:"\u4E8B\u4EF6\u8BA2\u9605\u8005\u56DE\u8C03\u5F02\u5E38",cause:o}});}}return {emit:n,subscribe(t){return e.add(t),()=>{e.delete(t);}},clear(){e.clear();}}}function Zp(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let s=t.get(i);if(s!==void 0)return clearTimeout(s.timer),t.delete(i),s}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,s){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((a,c)=>{let u=setTimeout(()=>{t.delete(i),c(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${s??n}ms \u65E0\u54CD\u5E94`));},s??n);t.set(i,{resolve:a,reject:c,timer:u});})},resolve(i,s){let a=o(i);return a?.resolve(s),a!==void 0},reject(i,s){let a=o(i);return a?.reject(s),a!==void 0},rejectAll(i){for(let s of [...t.values()])clearTimeout(s.timer),s.reject(i);t.clear();},get pendingCount(){return t.size}}}function lM(e){let n=false,t=false,r=false,o,i,s=Zp(),a,c,u={status:"idle"},p=new Set;function y(M){try{M({...u});}catch{e.onListenerError();}}function x(M){u=M;for(let T of [...p])y(T);}function v(){c&&clearTimeout(c.timer),c=void 0;}function I(M,T){v(),r=M!=="server-rejected";let b={status:"error",error:M,requiresReconnect:r,...T===void 0?{}:{serverCode:T}};o=r?b:void 0,x(i?b:{status:"idle"});}function k(){if(t||r||c||!i)return;if(!n){x({status:"pending"});return}if(i.token===a?.token){x(a.snapshot);return}let M=i,T=s.nextSeq(),b=ae({command:261,msgSeq:T,body:wr.encode(wr.create({sUserId:BigInt(M.userId),nPushType:20,nPushTokenType:0,sPushToken:M.token}))}),N={...M,msgSeq:T,timer:setTimeout(()=>I("timeout"),e.timeoutMs??3e4)};if(c=N,x({status:"syncing"}),!(c!==N||t||!n)){if(!i){v();return}try{e.sendFrame(b);}catch{c===N&&I("send-failed");}}}return {api:{setWebSubscription({userId:M,subscription:T}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(M)||M!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:b,keys:N,expirationTime:L}=T;if(!b||!N?.p256dh||!N.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let Y=new URL(b);if(Y.protocol!=="https:"||Y.username||Y.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(L!=null&&(!Number.isFinite(L)||L<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let me=JSON.stringify({endpoint:b,expirationTime:L??null,keys:{p256dh:N.p256dh,auth:N.auth}});i={userId:M,token:me},o?x(o):c&&x({status:"syncing"}),k();},clear(){t||(i=void 0,a=void 0,x({status:"idle"}));},snapshot:()=>({...u}),subscribe(M){return t||p.add(M),y(M),()=>{p.delete(M);}}},commandHandlers:[{command:262,handler(M,T,b){if(!c||!n||t||r||b?.msgSeq!==c.msgSeq)return;let N;try{N=Mi.decode(T);}catch{I("invalid-ack");return}let L=N.nErr===0&&(String(N.sUserId)===c.userId||String(N.sUserId)==="0");if(!L&&String(N.sUserId)!==c.userId)return;let Y=c;if(v(),!L&&N.nErr!==32768){I("server-rejected",Number(N.nErr));return}if(a={token:Y.token,snapshot:L?{status:"unconfirmed",serverCode:Number(N.nErr)}:{status:"synced"}},!i){x({status:"idle"});return}k();}}],setAuthenticated(M){t||n===M||(n=M,v(),a=void 0,r=false,o=void 0,i&&k());},dispose(){t||(t=true,v(),i=void 0,a=void 0,x({status:"disposed"}),p.clear());}}}var uM=200,gM=20;function mM(e){return e instanceof Cr&&e.status>=500}function fM(e){let n=e.maxBatchesPerEndpoint??uM,t=e.reducedBatchLimit??gM,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function s(c,u){let p=[],y="",x=0,v;async function I(){try{return await c.pullBatch({deliveredMsgInfos:p,...v===void 0?{}:{limit:v}})}catch(k){if(v!==void 0||!mM(k))throw k;return v=t,e.logger?.("sync-batch-reduced",{endpoint:c.endpoint,limit:v,status:k.status}),await c.pullBatch({deliveredMsgInfos:p,limit:v})}}for(let k=1;;k++){if(k>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${c.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let G=await I();if(G.messages.length>0){e.domainState.upsertMessages(G.messages,"offline"),x+=G.messages.length;for(let b of G.messages){let N={conversationType:b.conversationType,conversationId:b.conversationId};u.set(fe(N),N);}}let M=G.batchSize>0;if(e.logger?.("sync-batch",{endpoint:c.endpoint,batchNo:k,fetched:G.batchSize,newMessages:G.messages.length,responseBytes:G.responseBytes,endpointTotal:x,hasMore:M}),!M)break;let T=G.deliveredMsgInfos.at(-1)?.msgId??"";if(T!==""&&T===y)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${c.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${T}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);y=T,p=G.deliveredMsgInfos,await r();}return x}async function a(){let c=new Map,u=0;for(let p of e.pullers)u+=await s(p,c);e.logger?.("sync-done",{totalMessages:u,conversations:c.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...c.values()]});}return {async sync(){if(o){i=true;return}o=true;try{do{i=!1;try{await a();}catch(c){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:c}});}}while(i)}finally{o=false;}}}}
2
+ export{BS as $,hp as $a,oa as A,Uc as Aa,fM as Ab,NC as B,Ca as Ba,Gm as C,kc as Ca,Do as D,Yh as Da,tS as E,Ke as Ea,dS as F,wn as Fa,Pm as G,Dt as Ga,cS as H,fe as Ha,lS as I,wc as Ia,Vm as J,Bc as Ja,uS as K,Qo as Ka,gS as L,xc as La,mS as M,Pf as Ma,fS as N,Hh as Na,pS as O,Xh as Oa,SS as P,zh as Pa,hS as Q,FA as Qa,RS as R,PA as Ra,MS as S,VA as Sa,ES as T,OA as Ta,TS as U,KA as Ua,vS as V,LA as Va,bS as W,HA as Wa,NS as X,JA as Xa,_S as Y,YA as Ya,DS as Z,Ip as Za,kS as _,Sp as _a,Gp as a,FS as aa,zA as ab,TR as b,PS as ba,$A as bb,Te as c,qS as ca,nR as cb,He as d,ah as da,oR as db,Eo as e,ai as ea,sR as eb,sC as f,Fy as fa,aR as fb,aC as g,qa as ga,dR as gb,Nn as h,at as ha,cR as hb,vo as i,Ch as ia,lR as ib,xn as j,hh as ja,uR as jb,tt as k,_t as ka,gR as kb,rt as l,Vy as la,mR as lb,dn as m,Mc as ma,pR as mb,nA as n,Ef as na,ml as nb,ci as o,Tf as oa,yR as ob,At as p,vf as pa,IR as pb,jt as q,vh as qa,Tp as qb,Wa as r,bf as ra,HR as rb,iI as s,Kh as sa,aM as sb,$t as t,Ia as ta,dM as tb,Ya as u,_f as ua,cM as ub,fi as v,Gc as va,lM as vb,fn as w,Cr as wa,Na as wb,ra as x,rp as xa,Np as xb,bC as y,Jo as ya,hR as yb,dA as z,Df as za,AR as zb};