HashNavigation 改名 Navigation(src/lib/navigation.js),接口不变,内部改用真实路径: parseUrlHash/composeUrlHash 改名 parseUrl/composeUrl;navigateTo/navigateReplace 改调 pushState/replaceState 后手动派发 popstate(pushState/replaceState 不会像赋值 location.hash 那样自动触发事件,这里复用 navigateReplace 早就在用的同一个手动 dispatch 手法);goBack() 不用改,history.back() 本来就是真实浏览器历史机制。新增 Navigation.currentUrl() 替代调用方 原本直接读的 window.location.hash(这个类从来没包装过这个读取)。 一处需要专门处理的边界情况:当 path[0] 是空字符串("不选中侧栏视图、只开一个会话"这个仓库里 的合法状态)时,拼出的真实路径开头会变成双斜杠,被浏览器当协议相对地址解析、试图跳到一个叫 会话id的host,pushState 直接抛 SecurityError。composeUrl/parseUrl 内部用占位 token "_" 处理 这种情况,对外的调用方(19个文件)完全无感。 tinode-web.jsx 的 handleHashRoute 改名 handleRouteChange,监听从 hashchange 换成 popstate; service-worker.js 的推送通知点击跳转手动改写成同样的路径格式(这个文件在打包之外单独执行, 没法 import Navigation)。index.html/index-dev.html 加了 <base href="/">——所有静态资源引用 都是相对路径,hash 路由下页面路径永远是 /,换真实路径后深层地址刷新会按当前目录解析出错误 资源地址导致白屏,这一行是标准修法。nginx.conf 的 try_files 兜底规则本来就适用两种路由,只 更新了注释。 实机验证:地址栏不再有 #;点击会话/设置等各类视图正常跳转;浏览器前进后退和应用内"返回" 按钮都正常;收藏页内部的类型 tab 切换(navigateReplace)确认不产生新的历史记录;在会话页/ 个人中心页刷新、直接用完整深层路径打开新标签页都能正确恢复到位,资源正常加载不白屏。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3 lines
978 KiB
JavaScript
3 lines
978 KiB
JavaScript
/*! For license information please see index.prod.js.LICENSE.txt */
|
||
!function(){var e,n,t,s,i={3272:function(e,n,t){"use strict";const s="MeetingIM",i=s+"/0.25.3",o={hosted:"web.118im.com",local:"localhost:6060"},a=o.hosted;t.d(n,["C3",0,i,"HX",0,a,"Lq",0,"AQAAAAABAAAoeOI7tA3HsYvdzDhYhZJy","S",0,{type:"patt",index:0,path:"img/bkg/"},"SE",0,o,"Uv",0,"application/json","Yd",0,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=","iv",0,s,"kA",0,["http","https","ftp","ftps"],"qy",0,1<<23])},7981:function(e,n,t){"use strict";t.d(n,{$Z:function(){return p},CO:function(){return d},F8:function(){return x},Pv:function(){return f},QJ:function(){return j},Sk:function(){return u},ae:function(){return r},ag:function(){return c},bB:function(){return h},i:function(){return m},iJ:function(){return g},to:function(){return a}});var s=t(4532);const i=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],o=["jpg","gif","png","svg","svg"];function a(e){if(e&&"object"==typeof e){if(e.ref)return e.ref;if(e.data&&e.type)return"data:"+(e.type.startsWith("image/")?e.type:"image/"+e.type)+";base64,"+e.data}return null}function r(e,n,t,s,i){if(n|=0,t|=0,s|=0,(e|=0)<=0||n<=0||t<=0||s<=0)return null;i&&(t=s=Math.min(t,s));const o=Math.min(Math.min(e,t)/e,Math.min(n,s)/n),a={dstWidth:e*o|0,dstHeight:n*o|0};return i?(a.dstWidth=a.dstHeight=Math.min(a.dstWidth,a.dstHeight),a.srcWidth=a.srcHeight=Math.min(e,n),a.xoffset=(e-a.srcWidth)/2|0,a.yoffset=(n-a.srcWidth)/2|0):(a.xoffset=a.yoffset=0,a.srcWidth=e,a.srcHeight=n),a}function l(e,n){const t=i.indexOf(n);if(t<0||!e)return e;const s=o[t],a=e.lastIndexOf(".");return a>=0&&(e=e.substring(0,a)),e+"."+s}function c(e,n,t,s,o){return new Promise((a,c)=>{const d=new Image;d.crossOrigin="Anonymous",d.onerror=function(e){c(new Error("Image format unrecognized"))},d.onload=async function(){URL.revokeObjectURL(d.src);const h=r(d.width,d.height,n,t,o);if(!h)return void c(new Error("Invalid image"));let u=document.createElement("canvas");u.width=h.dstWidth,u.height=h.dstHeight;let g=u.getContext("2d");g.imageSmoothingEnabled=!0,g.drawImage(d,h.xoffset,h.yoffset,h.srcWidth,h.srcHeight,0,0,h.dstWidth,h.dstHeight);const p=i.includes(e.type)?e.type:"image/jpeg";let m=await new Promise(e=>u.toBlob(e,p));if(m){for(;s>0&&m.length>s;)h.dstWidth=.70710678118*h.dstWidth|0,h.dstHeight=.70710678118*h.dstHeight|0,u.width=h.dstWidth,u.height=h.dstHeight,g=u.getContext("2d"),g.clearRect(0,0,u.width,u.height),g.drawImage(d,h.xoffset,h.yoffset,h.srcWidth,h.srcHeight,0,0,h.dstWidth,h.dstHeight),m=await new Promise(e=>u.toBlob(e,p));u=null,a({mime:p,blob:m,width:h.dstWidth,height:h.dstHeight,name:l(e.name,p)})}else c(new Error("Unsupported image format"))},d.src=URL.createObjectURL(e)})}function d(e,n,t,s,o,a,r){return new Promise((l,c)=>{const d=new Image;d.crossOrigin="Anonymous",d.onerror=e=>{c(new Error("Image format unrecognized"))},d.onload=n=>{URL.revokeObjectURL(d.src);let h=document.createElement("canvas");h.width=o*r,h.height=a*r;let u=h.getContext("2d");u.imageSmoothingEnabled=!0,u.drawImage(d,t,s,o,a,0,0,h.width,h.height),e=i.includes(e)?e:"image/jpeg",h.toBlob(n=>{h=null,n?l({mime:e,blob:n,width:o,height:a}):c(new Error("Unsupported image format"))},e)},d.src=n})}function h(e){return new Promise((n,t)=>{const s=new FileReader;s.onerror=e=>{t(s.error)},s.onload=t=>{n({mime:e.type,bits:s.result.split(",")[1],name:e.name})},s.readAsDataURL(e)})}function u(e){return new Promise((n,t)=>{const s=new FileReader;s.onerror=e=>{t(s.error)},s.onload=t=>{n({mime:e.type,bits:s.result.split(",")[1]})},s.readAsDataURL(e)})}function g(e,n,t,s){const i=(e.clipboardData||e.originalEvent.clipboardData||{}).items;if(!i||!i.length)return!1;for(let e in i){const o=i[e];if("file"===o.kind){const e=o.getAsFile();if(!e){console.error("Failed to get file object from pasted file item",o.kind,o.type),s("Failed to get file object from pasted file item");continue}return e.type&&"image"==e.type.split("/")[0]?n(e):t(e),!0}}return!1}function p(e){if(e){e=e.replace(/-/g,"+").replace(/_/g,"/");try{e=btoa(atob(e))}catch(n){console.error("Failed to base64 re-encode string.",n),e=null}}return e}function m(e,n){if(!e)return null;try{const t=atob(e),s=t.length,i=new ArrayBuffer(s),o=new Uint8Array(i);for(let e=0;e<s;e++)o[e]=t.charCodeAt(e);return new Blob([i],{type:n})}catch(e){console.error("Failed to convert base64 to blob: ",e)}return null}function f(e){if(!Array.isArray(e))return null;try{let n="";return new Uint8Array(e).forEach(e=>n+=String.fromCharCode(e)),window.btoa(n)}catch(e){}return null}function x(e){const n=[];try{return[...window.atob(e)].forEach(e=>{n.push(e.charCodeAt(0))}),n}catch(e){}return null}function j(e){return new Promise((n,t)=>{const i=new FileReader;i.onerror=e=>{t(i.error)},i.onload=e=>{const o=s.TheCard.importVCard(i.result);o?n(o):t(new Error("Failed to parse vCard"))},i.readAsText(e)})}},2067:function(e,n,t){"use strict";t.d(n,{e3:function(){return C},TU:function(){return S},NV:function(){return q}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(8492),l=t(7256),c=t(4848);class d extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),n="material-icons medium "+(e?"red":"green"),t=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made",s=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"calls_incoming",defaultMessage:"Incoming call",description:"Incoming call label"}):(0,c.jsx)(o.FormattedMessage,{id:"calls_outgoing",defaultMessage:"Outgoing call",description:"Outgoing call label"});let i;if(e)switch(this.props.callState){case"busy":i=(0,c.jsx)(o.FormattedMessage,{id:"call_busy",defaultMessage:"busy",description:"Label for busy call line"});break;case"declined":i=(0,c.jsx)(o.FormattedMessage,{id:"call_declined",defaultMessage:"declined",description:"Label for declined call"});break;case"missed":i=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"call_missed",defaultMessage:"missed",description:"Label for missed incoming call"}):(0,c.jsx)(o.FormattedMessage,{id:"call_cancelled",defaultMessage:"cancelled",description:"Label for cancelled outgoing call"});break;default:i=(0,c.jsx)(o.FormattedMessage,{id:"call_disconnected",defaultMessage:"disconnected",description:"Label for disconnected call"})}else i=["accepted","started"].includes(this.props.callState)&&!this.props.duration?(0,c.jsx)(o.FormattedMessage,{id:"call_in_progress",defaultMessage:"in progress",description:"Label for call in progress"}):(0,c.jsx)("span",{children:(0,l.Ye)(this.props.duration/1e3)});return(0,c.jsxs)("div",{className:"call-message",children:[(0,c.jsx)("div",{children:(0,c.jsx)("i",{className:"material-icons big gray",children:"call"})}),(0,c.jsxs)("div",{className:"flex-column narrow",children:[(0,c.jsx)("div",{children:s}),(0,c.jsxs)("div",{className:"duration",children:[(0,c.jsx)("i",{className:n,children:t})," ",i]})]})]})}}class h extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),n=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made";let t;if(e)switch(this.props.callState){case"busy":t=(0,c.jsx)(o.FormattedMessage,{id:"call_busy",defaultMessage:"busy",description:"Label for busy call line"});break;case"declined":t=(0,c.jsx)(o.FormattedMessage,{id:"call_declined",defaultMessage:"declined",description:"Label for declined call"});break;case"missed":t=this.props.incoming?(0,c.jsx)(o.FormattedMessage,{id:"call_missed",defaultMessage:"missed",description:"Label for missed incoming call"}):(0,c.jsx)(o.FormattedMessage,{id:"call_cancelled",defaultMessage:"cancelled",description:"Label for cancelled outgoing call"});break;default:t=(0,c.jsx)(o.FormattedMessage,{id:"call_disconnected",defaultMessage:"disconnected",description:"Label for disconnected call"})}else t=["accepted","started"].includes(this.props.callState)&&!this.props.duration?(0,c.jsx)(o.FormattedMessage,{id:"call_in_progress",defaultMessage:"in progress",description:"Label for call in progress"}):(0,c.jsx)("span",{children:(0,l.Ye)(this.props.duration/1e3)});return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"composed-material",children:[(0,c.jsx)("i",{className:"material-icons",children:"call"}),(0,c.jsx)("i",{className:"material-icons second",children:n})]})," ",t]})}}class u extends i().PureComponent{constructor(e){super(e),this.videoRef=i().createRef(),this.handleClick=this.handleClick.bind(this)}handleClick(e){this.props.onClick&&this.props.onClick(e)}render(){const e=(0,l.Ye)(this.props["data-duration"]/1e3),n="inline-video"+(this.props.onClick?" image-clickable":"");return(0,c.jsxs)("div",{className:n,children:[i().createElement("img",this.props),(0,c.jsx)("div",{className:"play-control",children:this.props.onClick?(0,c.jsx)("i",{className:"material-icons white x-big",children:"play_arrow"}):(0,c.jsx)("img",{src:"img/broken_video.png",style:{filter:"invert(100%)"},width:"36",height:"36"})}),e?(0,c.jsx)("div",{className:"duration",children:e}):null]})}}class g extends i().PureComponent{constructor(e){super(e),this.state={src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:Object.assign({padding:"4px"},this.props.style),className:this.props.className,alt:this.props.alt,onClick:this.props.onClick}}componentDidMount(){this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"}))}componentWillUnmount(){this.props.whenDone.cancel()}componentDidUpdate(e){e.whenDone!=this.props.whenDone&&(this.setState({src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:{...this.state.style,padding:"4px"}}),this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"})))}render(){return i().createElement("img",this.state)}}var p=t(5247);const m=(0,o.defineMessages)({unknown_name:{id:"unknown_name",defaultMessage:"Unknown",description:"Name to show when the name is missing"}});class f extends i().PureComponent{constructor(e){super(e),this.handleDownload=this.handleDownload.bind(this),this.handleMessage=this.handleMessage.bind(this)}handleDownload(e){e.preventDefault();try{const e=a.TheCard.exportVCard(this.props.content),n=new Blob([e],{type:"text/vcard"}),t=URL.createObjectURL(n),s=document.createElement("a");s.style.display="none",s.href=t,s.download=(this.props.content.fn||"contact")+".vcf",document.body.appendChild(s),s.click(),window.URL.revokeObjectURL(t),document.body.removeChild(s)}catch(e){console.error("Failed to download vcard",e),this.props.onError&&this.props.onError("Failed to download vcard","err")}}handleMessage(e){}render(){const e=this.props.content;if(!e)return null;const n=a.TheCard.getFirstTinodeID(e),t=a.TheCard.getEmails(e).concat(a.TheCard.getPhones(e)),s=a.TheCard.getOrg(e);return(0,c.jsxs)("div",{className:"contact-card",children:[(0,c.jsxs)("div",{className:"contact-body",children:[(0,c.jsx)("div",{className:"avatar-box",children:(0,c.jsx)(p.A,{authorizeURL:this.props.authorizeURL,topic:n||"usr123XXX",avatar:a.TheCard.getPhotoUrl(e)||!0,title:e.fn})}),(0,c.jsxs)("div",{className:"name-box",children:[(0,c.jsx)("div",{className:"name",children:e.fn||(0,c.jsx)(o.FormattedMessage,{...m.unknown_name})}),s&&(0,c.jsx)("div",{className:"org",children:s})]})]}),(0,c.jsxs)("div",{className:"contact-actions",children:[n?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("a",{className:"flat-button","data-val":n,onClick:this.props.onChatClick,children:(0,c.jsx)(o.FormattedMessage,{id:"chat_now",defaultMessage:"Chat",description:"Label for message button in contact card"})}),(0,c.jsx)("div",{className:"divider"})]}):t.length>0?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("a",{className:"flat-button","data-val":t.join(","),onClick:this.props.onFindClick,children:(0,c.jsx)(o.FormattedMessage,{id:"find_user",defaultMessage:"Find",description:"Label for search button in contact card"})}),(0,c.jsx)("div",{className:"divider"})]}):null,(0,c.jsx)("a",{className:"flat-button",onClick:this.handleDownload,children:(0,c.jsx)(o.FormattedMessage,{id:"save_action",defaultMessage:"Save",description:"Label for Save button"})})]})]})}}var x=(0,o.injectIntl)(f),j=t(4752);class b extends i().PureComponent{constructor(e){super(e)}render(){return(0,c.jsxs)("div",{className:"inline-image",children:[i().createElement("img",this.props),(0,c.jsx)("div",{className:"rounded-container",children:(0,c.jsx)(j.A,{progress:this.props.progress,onCancel:this.props.onCancelUpload})})]})}}var y=t(3272),w=t(7981),v=t(7849);const k=(0,o.defineMessages)({drafty_form:{id:"drafty_form",defaultMessage:"Form: ",description:"Comment for form in Drafty"},drafty_attachment:{id:"drafty_attachment",defaultMessage:"Attachment",description:"Comment for attachment in Drafty"},drafty_image:{id:"drafty_image",defaultMessage:"Picture",description:"Comment for embedded images in Drafty"},drafty_video:{id:"drafty_video",defaultMessage:"Video recording",description:"Comment for videos embedded in Drafty"},drafty_unknown:{id:"drafty_unknown",defaultMessage:"Unsupported",description:"Unsupported entity in drafty"}});function C(e,n,t,s,o){if(o.includes("QQ"))return B.call(this,e,n,t,s);if(!e)return t;let c=a.Drafty.tagName(e),h=a.Drafty.attrValue(e,n)||{};switch(h.key=s,e){case"AU":h.src&&(h.src=this.authorizeURL((0,v.wk)(h.src,"audio")),h.duration=n.duration>0?0|n.duration:void 0,h.preview=n.preview,h.loading="lazy",h.onPlay=this.onVoicePlayed),c=r.A,t=null;break;case"BR":t=null;break;case"EX":case"RW":break;case"HL":h.className="highlight";break;case"HD":c=null,t=null;break;case"IM":c=z.call(this,c,n,h),t=null;break;case"BN":h.onClick=e=>this.onHandleClick(e,"form_button");let e=i().Children.map(t,e=>"string"==typeof e?e:void 0);e&&0!=e.length||(e=[h.name]),h["data-title"]=e.join("");break;case"LN":h&&(h.href="string"==typeof h.href?(0,v.Jf)(h.href,y.kA):"");break;case"MN":h.className="mention",n&&(h.className+=" "+(0,l.kJ)(n.val,!1,!0));break;case"FM":h.className="bot-form";break;case"QQ":h.className="reply-quote",h.onClick=e=>this.onHandleClick(e,"quote");break;case"TC":c=x,h.content=n,h.authorizeURL=this.authorizeURL,h.onChatClick=e=>this.onHandleClick(e,"contact_chat"),h.onFindClick=e=>this.onHandleClick(e,"contact_find"),t=null;break;case"VC":c=d,t=null,n&&(h.callState=n.state,h.incoming=n.incoming,h.duration=n.duration);break;case"VD":c=_.call(this,c,n,h),t=null;break;default:if(!c){c=i().Fragment,h={key:s};let e=t;Array.isArray(t)&&t.join("").trim()||(e=[i().createElement("span",{key:"x1",className:"gray"},this.formatMessage(k.drafty_unknown))]),t=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," "].concat(e)}}return c?i().createElement(c,h,t):t}function z(e,n,t){if(!n)return t.src="img/broken_image.png",t.style={width:"36px",height:"36px"},e;t.className="inline-image";const s=(0,w.ae)(n.width,n.height,this.viewportWidth>0?Math.min(this.viewportWidth-84.5,448.5):448.5,312,!1)||{dstWidth:32,dstHeight:32};return t.style={width:s.dstWidth+"px",height:s.dstHeight+"px",minWidth:s.dstWidth+"px",minHeight:s.dstHeight+"px"},a.Drafty.isProcessing(n)?e=b:(t.src=this.authorizeURL((0,v.wk)(t.src,"image")),t.alt=n.name,t.src?(Math.max(n.width||0,n.height||0)>36&&(t.onClick=e=>this.onHandleClick(e,"image"),t.className+=" image-clickable"),t.loading="lazy"):t.src=null),e}function _(e,n,t){if(!n)return t.src="img/broken_video.png",t.style={width:"36px",height:"36px"},e;t.className="inline-image";const s=(0,w.ae)(n.width,n.height,this.viewportWidth>0?Math.min(this.viewportWidth-84.5,448.5):448.5,312,!1)||{dstWidth:128,dstHeight:128};return t.style={width:s.dstWidth+"px",height:s.dstHeight+"px",minWidth:s.dstWidth+"px",minHeight:s.dstHeight+"px"},a.Drafty.isProcessing(n)?e=b:(t.src=this.authorizeURL((0,v.wk)(t.src,"image")),t.alt=n.name,(n.ref||n.val)&&(t.onClick=e=>this.onHandleClick(e,"video"),t.loading="lazy"),e=u),e}function S(e,n,t,s){if(!e)return t;let o=a.Drafty.tagName(e);const r={key:s};switch(e){case"AU":o=i().Fragment,t=[i().createElement("i",{key:"au",className:"material-icons"},"mic")," ",(0,l.Ye)(n.duration/1e3)];break;case"BR":o=i().Fragment,t=[" "];break;case"HL":r.className="highlight preview";break;case"LN":case"MN":o="span";break;case"IM":o=i().Fragment,t=[i().createElement("i",{key:"im",className:"material-icons"},"photo")," ",this.formatMessage(k.drafty_image)];break;case"BN":o="span",r.className="flat-button faux";break;case"FM":o=i().Fragment,t=[i().createElement("i",{key:"fm",className:"material-icons"},"dashboard"),this.formatMessage(k.drafty_form)].concat(" ",t||[]);break;case"RW":o=i().Fragment;break;case"EX":if(n){if(a.Drafty.isFormResponseType(n.mime))return null;delete n.val,delete n.ref}o=i().Fragment,t=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment")," ",this.formatMessage(k.drafty_attachment)];break;case"VC":o=h,n&&(r.callState=n.state,r.incoming=n.incoming,r.duration=n.duration),t=null;break;case"QQ":case"HD":o=null,t=null;break;case"TC":o=i().Fragment,t=[i().createElement("i",{key:"tc",className:"material-icons"},"contact_mail")," ",a.TheCard.getFn(n)||this.formatMessage(k.drafty_unknown)];break;case"VD":o=i().Fragment,t=[i().createElement("i",{key:"im",className:"material-icons"},"play_circle_outline")," ",this.formatMessage(k.drafty_video)];break;default:o||(o=i().Fragment,t=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," ",this.formatMessage(k.drafty_unknown)])}return o?i().createElement(o,r,t):t}function N(e,n){return e.style={width:"36px",height:"36px",maxWidth:"36px",maxHeight:"36px"},e.className="inline-image",e.alt=this.formatMessage(k.drafty_image),e.src=n&&e.src||"img/broken_image.png",e.title=e.alt,e}function T(e,n){const t=(0,w.ae)(n.width,n.height,48,36);return e.style={width:t.width+"px",height:t.height+"px",maxWidth:"48px",maxHeight:"36px"},e.className="inline-image",e.alt=this.formatMessage(k.drafty_video),e.title=e.alt,e.src=n&&e.src||"img/broken_video.png",e}function B(e,n,t,s){if(["BR","EX","IM","MN","VD"].includes(e)){let o=a.Drafty.tagName(e),r=a.Drafty.attrValue(e,n)||{};switch(r.key=s,e){case"BR":t=null;break;case"IM":r=N.call(this,r,n),t=[i().createElement("img",r,null)," ",r.alt],o=i().Fragment,r={key:s};break;case"VD":r=T.call(this,r,n),t=[i().createElement("img",r,null)," ",r.alt],o=i().Fragment,r={key:s};break;case"MN":o="span",r.className="mention",n&&(r.className+=" "+(0,l.kJ)(n.val,!1,!0));break;case"EX":let e;if(n){if(a.Drafty.isFormResponseType(n.mime))return null;e=n.name,delete n.val,delete n.ref}o=i().Fragment,t=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment"),(0,l.Tu)(e,16)||this.formatMessage(k.drafty_attachment)]}return i().createElement(o,r,t)}return S.call(this,e,n,t,s)}function P(e,n){let t,s,i,o;if(n?(s=e.preview,o=e.premime||"image/jpeg",i=e.preref):(s=e.val,o=e.mime,i=e.ref),s){const e=(0,w.i)(s,o);if(!e)throw new Error("Invalid image");t=Promise.resolve(e)}else{if(!i)throw new Error("Missing image data");t=fetch(this.authorizeURL((0,v.wk)(i,"image"))).then(e=>{if(e.ok)return e.blob();throw new Error(`Image fetch unsuccessful: ${e.status} ${e.statusText}`)})}return t.then(e=>(0,w.ag)(e,n?48:36,36,-1,!n)).then(t=>(n?e.premime=t.mime:e.mime=t.mime,e.size=t.blob.size,e.width=t.width,e.height=t.height,delete e.ref,delete e.preref,e.src=URL.createObjectURL(t.blob),(0,w.Sk)(t.blob))).then(t=>(n?e.preview=t.bits:e.val=t.bits,e)).catch(n=>{throw delete e.val,delete e.preview,delete e.src,e.width=36,e.height=36,n})}function q(e,n,t,s,o){if("IM"==e||"VD"==e){const o="IM"==e?N.call(this,{key:s},n):T.call(this,{key:s},n);let a;try{a=(0,v.iE)(P.call(this,n,"VD"==e))}catch(e){console.warn("Failed to quote image:",e.message),a=(0,v.iE)(e)}return o.whenDone=a,t=[i().createElement(g,o,null)," ",o.alt],i().createElement(i().Fragment,{key:s},t)}if("QQ"==e){if(o.includes("QQ"))return i().createElement("span",{key:s},[i().createElement("i",{key:"qq",className:"material-icons"},"format_quote")," "]);const e=a.Drafty.attrValue("QQ",n)||{};return e.key=s,e.className="reply-quote",i().createElement(a.Drafty.tagName("QQ"),e,t)}return B.call(this,e,n,t,s)}},8353:function(e,n,t){"use strict";t.d(n,{E6:function(){return d},Ey:function(){return b},II:function(){return O},Jh:function(){return W},Jv:function(){return R},Lf:function(){return T},R4:function(){return U},RE:function(){return D},WJ:function(){return K},_B:function(){return H},aQ:function(){return E},cd:function(){return $},jP:function(){return M},jp:function(){return L},lX:function(){return P},mO:function(){return B},pI:function(){return x},q8:function(){return A},r8:function(){return V},rD:function(){return N},rW:function(){return _},sd:function(){return I},uX:function(){return F},w8:function(){return G}});var s=t(3272),i=t(99);const o="/v1/im",a="/v0/file";class r extends Error{constructor(e,n,t,s){super(e),this.reason=n,this.status=t,this.details=s}}const l={API_KEY_REQUIRED:"服务暂不可用,请刷新页面重试",METHOD_NOT_ALLOWED:"请求方式有误,请刷新页面重试",TENANT_UNAVAILABLE:"企业码不存在或已停用",TENANT_MISMATCH:"登录状态异常,请重新进入企业码",AUTH_FAILED:"账号或密码错误",TOKEN_EXPIRED:"登录已过期,请重新登录",ACCOUNT_DISABLED:"账号已被禁用",RATE_LIMITED:"操作过于频繁,请稍后再试",VALIDATION_FAILED:"提交的内容不符合要求",IDEMPOTENCY_CONFLICT:"内容已发生变化,请刷新后重试",RESOURCE_NOT_FOUND:"内容不存在或已被删除",PERMISSION_DENIED:"没有权限执行此操作",NOT_FOUND:"内容不存在或已被删除",VERSION_CONFLICT:"内容已被修改,请刷新后重试",MALFORMED_REQUEST:"请求内容有误,请稍后重试",AUTH_REQUIRED:"请先登录",ACTION_TOKEN_INVALID:"操作凭证已失效,请重新操作",SCHEMA_UNSUPPORTED:"当前版本过旧,请刷新页面后重试",IDEMPOTENCY_IN_PROGRESS:"上一次操作正在处理中,请稍后再试",INTERNAL_ERROR:"服务器繁忙,请稍后重试",UNSUPPORTED_MEDIA_TYPE:"不支持的文件类型",CHALLENGE_EXPIRED:"验证码已过期,请重新获取",SMS_DELIVERY_FAILED:"短信发送失败,请稍后重试",PASSWORD_POLICY_VIOLATION:"密码不符合安全要求",VERIFICATION_RATE_LIMITED:e=>e&&e.retry_after_seconds?`操作过于频繁,请 ${e.retry_after_seconds} 秒后重试`:"操作过于频繁,请稍后再试",ALREADY_GROUP_MEMBER:"对方已经是群成员",DESCRIPTION_REQUIRED:"请填写简介内容",DESCRIPTION_TOO_LONG:"简介内容过长",GROUP_ADMIN_LIMIT_EXCEEDED:"群管理员数量已达上限",INVALID_CREDIT_CODE:"统一社会信用代码格式不正确",INVALID_EMAIL:"邮箱格式不正确",MAILBOX_UNAVAILABLE:"总经理信箱暂不可用",TOO_MANY_FILES:"文件数量超出限制",FRIEND_RELATION_REQUIRED:"需要先添加对方为好友",MESSAGE_NOT_ALLOWED:"当前状态无法发送消息",GROUP_MUTED:"你已被禁言,无法发言",GROUP_MEMBER_LIMIT_EXCEEDED:"群成员数量已达上限",TENANT_USER_QUOTA_EXCEEDED:"企业账号数已达上限",TENANT_GROUP_QUOTA_EXCEEDED:"企业群组数已达上限",FILE_TOO_LARGE:"文件大小超出限制",FILE_FORBIDDEN:"没有权限访问此文件",FILE_UNAVAILABLE:"文件暂不可用",STORAGE_QUOTA_EXCEEDED:"存储空间已达上限",REALNAME_REQUIRED:"需要先完成实名认证",YOUTH_MODE_RESTRICTED:"青少年模式下无法使用此功能",RISK_CONFIRMATION_REQUIRED:"需要先完成安全确认",RISK_ACTION_BLOCKED:"该操作已被安全策略拦截",CODE_INVALID:"验证码或独立密码不正确",TOO_MANY_ATTEMPTS:e=>e&&e.retry_after_seconds?`连续输错次数过多,请 ${e.retry_after_seconds} 秒后重试`:"连续输错次数过多,请稍后重试"};function c(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"web_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2)}function d(){return i.A.getObject("im-tenant")}function h(){const e=d();return e&&e.code||"default"}function u(){const e=d();return(e&&e.endpoints&&e.endpoints.api||o).replace(/\/$/,"")}function g(){const e=d();return(e&&e.endpoints&&e.endpoints.file||a).replace(/\/$/,"")}function p(){return sessionStorage.getItem("im-session-token")||""}function m(e){return e&&0===e.code&&void 0!==e.data?e.data:e}async function f(e,{method:n="GET",body:t,headers:i,auth:o=!0,tenantCodeOverride:a}={}){const l={"Content-Type":"application/json","X-MeetingIM-APIKey":s.Lq,"X-IM-Schema":"1","X-Tenant-Code":a||h(),"X-Request-ID":c(),...i};if(o){const e=p();e&&(l.Authorization="Bearer "+e)}const d=await fetch(u()+e,{method:n,headers:l,body:void 0!==t?JSON.stringify(t):void 0}),g=await d.text();let f={};if(g)try{f=JSON.parse(g)}catch(e){throw new r(d.ok?"接口返回非 JSON 数据":d.statusText||"接口请求失败","NON_JSON_RESPONSE",d.status,g.slice(0,160))}if(!d.ok||f&&f.code&&0!==f.code){const e=x(f.reason,f.details);throw new r(e||f.message||f.reason||d.statusText||"请求失败",f.reason,d.status,f.details)}return m(f)}function x(e,n){const t=e&&l[e];return("function"==typeof t?t(n):t)||null}const j=()=>({"Idempotency-Key":c()});async function b(e,n=""){let t=n,s=[];for(;;){const n=await e(t);s=s.concat(n&&n.items||[]);const i=n&&n.next_cursor||"";if(!i||i===t)break;t=i}return s}const y=(e,n)=>f(e,n),w=(e,n,t={})=>f(e,{method:"POST",body:n,headers:j(),...t}),v=(e,n,t={})=>f(e,{method:"PATCH",body:n,headers:j(),...t}),k=(e,n,t={})=>f(e,{method:"PUT",body:n,headers:j(),...t}),C=(e,n={})=>f(e,{method:"DELETE",headers:j(),...n});function z(e){const n=new URLSearchParams;Object.entries(e||{}).forEach(([e,t])=>{null!=t&&""!==t&&n.set(e,t)});const t=n.toString();return t?"?"+t:""}async function _(e,n,t){const i=new FormData;return i.append("purpose",n),i.append("file",e),new Promise((e,n)=>{const o=new XMLHttpRequest;o.open("POST",u()+"/public/uploads"),o.setRequestHeader("X-MeetingIM-APIKey",s.Lq),o.setRequestHeader("X-IM-Schema","1"),o.setRequestHeader("X-Tenant-Code",h()),o.setRequestHeader("X-Request-ID",c()),t&&(o.upload.onprogress=e=>t(e.lengthComputable?e.loaded/e.total:0)),o.onload=()=>{let t={};try{t=JSON.parse(o.responseText)}catch(e){}o.status>=200&&o.status<300&&0===t.code?e(m(t)):n(new r(t.message||t.reason||"上传失败",t.reason,o.status,t.details))},o.onerror=()=>n(new r("网络错误,上传失败","NETWORK_ERROR",0)),o.send(i)})}const S={"too large":"文件大小超出限制",malformed:"请求内容有误,请稍后重试","permission denied":"没有权限执行此操作",gone:"内容不存在或已被删除","not found":"内容不存在或已被删除"};function N(e,n,t){const i=e&&e.getAuthToken&&e.getAuthToken();if(!i)return Promise.reject(new r("尚未登录,无法上传文件","AUTH_REQUIRED",401));const o=new FormData;return o.append("file",n),o.set("id",e.getNextUniqueId()),new Promise((e,n)=>{const a=new XMLHttpRequest;a.open("POST",g()+"/u/"),a.setRequestHeader("X-MeetingIM-APIKey",s.Lq),a.setRequestHeader("Authorization","Token "+i.token),t&&(a.upload.onprogress=e=>t(e.lengthComputable?e.loaded/e.total:0)),a.onload=()=>{let t={};try{t=JSON.parse(a.responseText)}catch(e){}const s=t.ctrl||{};if(a.status>=200&&a.status<300&&s.params&&s.params.url){const n=s.params.url;e({fileId:n.slice(n.lastIndexOf("/")+1),url:n,expires:s.params.expires})}else{const e=s.text&&S[s.text.trim().toLowerCase()];n(new r(e||s.text||"上传失败","UPLOAD_FAILED",a.status))}},a.onerror=()=>n(new r("网络错误,上传失败","NETWORK_ERROR",0)),a.send(o)})}function T(e){const n=[];return{onProgress:null,upload(t){const i=this,o=e&&e.getAuthToken&&e.getAuthToken();return o?new Promise((a,l)=>{const c=new FormData;c.append("file",t),c.set("id",e.getNextUniqueId());const d=new XMLHttpRequest;n.push(d),d.open("POST",g()+"/u/"),d.setRequestHeader("X-MeetingIM-APIKey",s.Lq),d.setRequestHeader("Authorization","Token "+o.token),d.upload.onprogress=e=>{e.lengthComputable&&i.onProgress&&i.onProgress(e.loaded/e.total)},d.onload=()=>{let e={};try{e=JSON.parse(d.responseText)}catch(e){}const n=e.ctrl||{};if(d.status>=200&&d.status<300&&n.params&&n.params.url)a(n.params.url);else{const e=n.text&&S[n.text.trim().toLowerCase()];l(new r(e||n.text||"上传失败","UPLOAD_FAILED",d.status))}},d.onerror=()=>l(new r("网络错误,上传失败","NETWORK_ERROR",0)),d.send(c)}):Promise.reject(new r("尚未登录,无法上传文件","AUTH_REQUIRED",401))},cancel(){n.forEach(e=>{e.readyState<4&&e.abort()})}}}function B(e){const n=[];return{download(t,i,o,a,l){const c=e&&e.getAuthToken&&e.getAuthToken();if(!c){const e=new r("尚未登录,无法下载文件","AUTH_REQUIRED",401);return l&&l(e),Promise.reject(e)}return new Promise((e,d)=>{const h=new XMLHttpRequest;n.push(h),h.open("GET",t,!0),h.setRequestHeader("X-MeetingIM-APIKey",s.Lq),h.setRequestHeader("Authorization","Token "+c.token),h.responseType="blob",h.onprogress=e=>{a&&a(e.loaded)},h.onload=()=>{if(200===h.status){const n=document.createElement("a");n.href=window.URL.createObjectURL(new Blob([h.response],{type:o})),n.style.display="none",n.setAttribute("download",i),document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(n.href),e()}else{const e=new FileReader;e.onload=function(){let e;try{const n=JSON.parse(this.result),t=n.ctrl&&n.ctrl.text,s=t&&S[t.trim().toLowerCase()];e=new r(s||t||"下载失败","DOWNLOAD_FAILED",h.status)}catch(n){e=new r("下载失败","DOWNLOAD_FAILED",h.status)}l&&l(e),d(e)},e.readAsText(h.response)}},h.onerror=()=>{const e=new r("网络错误,下载失败","NETWORK_ERROR",0);l&&l(e),d(e)},h.send()})},cancel(){n.forEach(e=>{e.readyState<4&&e.abort()})}}}function P(e){return f("/tenants/resolve",{method:"POST",auth:!1,tenantCodeOverride:e,body:{tenant_code:e,platform:"web",app_version:"0.25.3"}})}function q(){return{platform:"web",app_version:"0.25.3",user_agent:"undefined"!=typeof navigator&&navigator.userAgent||"",language:"undefined"!=typeof navigator&&navigator.language||"",network:"undefined"!=typeof navigator&&navigator.connection&&navigator.connection.effectiveType||void 0}}function M(e){return f("/tenant-applications",{method:"POST",auth:!1,headers:j(),body:{client_context:q(),...e}})}function A(e){return f("/tenant-entry-feedback",{method:"POST",auth:!1,headers:j(),body:{client_context:q(),...e}})}function E(e,n){return f("/auth/verification-codes",{method:"POST",auth:!1,headers:j(),body:{scene:e,phone:n}})}function I(e,n){return f("/auth/verification-codes/"+encodeURIComponent(e)+"/verify",{method:"POST",auth:!1,body:{code:n}})}function D(e,n){return f("/auth/password-reset/challenges/"+encodeURIComponent(e)+"/verify",{method:"POST",auth:!1,body:{code:n}})}function U(e,n){return f("/auth/password-reset/confirm",{method:"POST",auth:!1,headers:j(),body:{reset_token:e,new_password:n}})}function R(){return f("/bootstrap")}function L(){return f("/me")}function O(){return f("/security/realname")}function F(e){return w("/security/realname/submissions",e)}function $(e){return w("/security/challenges",{scene:e,channel:"sms"})}function V(e,n){return w("/security/challenges/"+encodeURIComponent(e)+"/verify",{code:n})}function H(e,n,t){return w("/settings/independent-password",{password:e,purpose:n,action_token:t})}function W(e,n,t){return w("/settings/independent-password/verify",{password:e,purpose:n,action:t})}function K(e){return e?g()+"/s/"+encodeURIComponent(e):null}const X=new Map;function G(e){if(!e)return Promise.resolve(null);if(X.has(e))return X.get(e);const n={"X-MeetingIM-APIKey":s.Lq,"X-IM-Schema":"1","X-Tenant-Code":h(),"X-Request-ID":c()},t=p();t&&(n.Authorization="Token "+t);const i=fetch(K(e),{headers:n}).then(e=>{if(!e.ok)throw new r("文件加载失败","FILE_FETCH_FAILED",e.status);return e.blob()}).then(e=>URL.createObjectURL(e)).catch(n=>{throw X.delete(e),n});return X.set(e,i),i}t.d(n,["A0",0,e=>C("/friends/"+encodeURIComponent(e)),"BK",0,(e,n="")=>y("/organization/departments/"+encodeURIComponent(e)+"/members"+z({cursor:n})),"BT",0,()=>y("/me/privacy"),"Bc",0,e=>w("/favorites/batch",{messages:e.map(e=>({...e,seq:String(e.seq)}))}),"By",0,(e,{fileId:n,fileName:t="",mimeType:s="",fileType:i="",fileSize:o=0,sourceTopic:a="",sourceSeq:r}={})=>w("/groups/"+encodeURIComponent(e)+"/files",{file_id:n,file_name:t,mime_type:s,file_type:i,file_size:o,source_topic:a,source_seq:r}),"C5",0,e=>C("/favorites/"+encodeURIComponent(e)),"DU",0,(e,n)=>w("/reports/monthly/"+encodeURIComponent(e)+"/reopen",{version:n}),"E5",0,(e,n,t="时间冲突")=>w("/meetings/"+encodeURIComponent(e)+"/cancel",{version:n,reason:t}),"EA",0,(e,n)=>v("/conversations/"+encodeURIComponent(e)+"/settings",n),"EC",0,(e,n="",t="search",s="")=>w("/friend-requests",{target_user_id:e,message:n,source:t,source_topic:s}),"FI",0,(e="",n=20)=>y("/meetings"+z({limit:n,cursor:e})),"Fo",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/join-requests/"+encodeURIComponent(n)+"/accept",t?{version:t}:{}),"Hw",0,(e,n)=>v("/groups/"+encodeURIComponent(e)+"/governance",n),"IW",0,(e,n,t="")=>w("/groups/"+encodeURIComponent(e)+"/invitations",{user_ids:n,message:t}),"Iv",0,(e,n="favorite")=>w("/security/urls/check",{url:e,source:n}),"K2",0,()=>y("/settings/youth-mode"),"KN",0,()=>y("/feedback/config"),"M7",0,(e="",n="",t="")=>y("/friends"+z({query:e,cursor:n,initial:t})),"N1",0,(e,n,t=1,s="mistake")=>w("/topics/"+encodeURIComponent(e)+"/messages/"+encodeURIComponent(n)+"/recall",{version:t,reason:s}),"NZ",0,(e,n,t)=>k("/meetings/"+encodeURIComponent(e)+"/my-response",{response:n,version:t}),"Nk",0,(e,{query:n="",cursor:t="",role:s="",eligibleRole:i="",mentionable:o,muteEligible:a}={})=>y("/groups/"+encodeURIComponent(e)+"/members"+z({query:n,cursor:t,role:s,eligible_role:i,mentionable:o?"true":"",mute_eligible:a?"true":""})),"Q2",0,(e="",n=20)=>y("/system-notifications"+z({cursor:e,limit:n})),"Ql",0,(e,n="")=>y("/groups/"+encodeURIComponent(e)+"/mutes"+z({cursor:n})),"Qq",0,(e,n,t)=>k("/groups/"+encodeURIComponent(e)+"/announcements/current",{content:n,version:t}),"RH",0,({query:e="",departmentId:n="",cursor:t="",limit:s=""}={})=>y("/organization/members"+z({q:e,department_id:n,cursor:t,limit:s})),"RM",0,e=>y("/conversations/"+encodeURIComponent(e)+"/settings"),"Ro",0,(e="inbound",n="all",t="")=>y("/friend-requests"+z({direction:e,status:n,cursor:t})),"S",0,e=>w("/reports/daily",{report_date:e}),"Sk",0,(e,n)=>v("/friends/"+encodeURIComponent(e),{remark:n}),"T0",0,e=>y("/favorites/"+encodeURIComponent(e)),"Tr",0,(e="")=>y("/blocks"+z({cursor:e})),"U3",0,(e,{pinned:n,mute_notifications:t})=>v("/groups/"+encodeURIComponent(e)+"/member-settings",{pinned:n,mute_notifications:t}),"V6",0,e=>y("/topics/"+encodeURIComponent(e)+"/draft"),"VM",0,e=>y("/users/"+encodeURIComponent(e)+"/profile"),"VX",0,e=>v("/me/profile",e),"Vw",0,(e,{query:n="",type:t="",cursor:s=""}={})=>y("/groups/"+encodeURIComponent(e)+"/files"+z({q:n,type:t,cursor:s})),"W",0,(e,n=86400)=>w("/users/"+encodeURIComponent(e)+"/qrcodes",{purpose:"add_friend",expires_in_seconds:n}),"Wj",0,e=>v("/me/privacy",e),"Wx",0,e=>y("/groups/"+encodeURIComponent(e)),"Wz",0,e=>w("/feedback",{client_context:q(),...e}),"YU",0,(e,n)=>w("/settings/youth-mode/enable",{policy_version:e,action_token:n}),"Yx",0,e=>y("/groups/"+encodeURIComponent(e)+"/announcements/latest"),"ZV",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/admins/batch",{user_ids:n,version:t}),"ZY",0,e=>w("/settings/youth-mode/disable",{},{headers:{...j(),"X-Action-Token":e}}),"Zo",0,(e,n)=>w("/reports/daily/"+encodeURIComponent(e)+"/submit",{version:n}),"aE",0,e=>w("/reports/monthly",{month:e}),"aY",0,(e,n,t,s=[])=>k("/reports/daily/"+encodeURIComponent(e)+"/draft",{content:n,attachments:s,version:t}),"ae",0,(e,n,t,s,i=[])=>k("/reports/monthly/"+encodeURIComponent(e)+"/draft",{work_summary:n,next_plan:t,attachments:i,version:s}),"af",0,(e,n,t)=>k("/groups/"+encodeURIComponent(e)+"/members/me/profile",{nickname:n,version:t}),"ap",0,e=>y("/reports/daily/"+encodeURIComponent(e)),"bL",0,e=>w("/favorites/batch-delete",{favorite_ids:e}),"bo",0,e=>w("/group-invitations/"+encodeURIComponent(e)+"/accept",{}),"cB",0,(e,n,t)=>C("/groups/"+encodeURIComponent(e)+"/admins/"+encodeURIComponent(n),t?{headers:{...j(),"If-Match":String(t)}}:{}),"cR",0,(e,n)=>C("/groups/"+encodeURIComponent(e)+"/mutes/"+encodeURIComponent(n)),"dv",0,(e,n)=>C("/groups/"+encodeURIComponent(e)+"/files/"+encodeURIComponent(n)),"eO",0,(e,{query:n="",type:t="all",cursor:s=""}={})=>y("/topics/"+encodeURIComponent(e)+"/messages/search"+z({q:n,type:t,cursor:s})),"er",0,e=>y("/reports/monthly/"+encodeURIComponent(e)),"f",0,({category:e="joined",query:n="",cursor:t=""}={})=>y("/groups"+z({category:e,query:n,cursor:t})),"fi",0,e=>w("/meetings/"+encodeURIComponent(e)+"/reminders",{}),"hO",0,(e,{message:n="",source:t="qr",qrToken:s=""}={})=>w("/groups/"+encodeURIComponent(e)+"/join-requests",{message:n,source:t,qr_token:s}),"iH",0,(e,n,t)=>w("/groups/"+encodeURIComponent(e)+"/join-requests/"+encodeURIComponent(n)+"/reject",t?{version:t}:{}),"iK",0,(e,n,t,s="")=>w("/groups/"+encodeURIComponent(e)+"/owner-transfer",{target_user_id:n,version:t},s?{headers:{...j(),"X-Action-Token":s}}:{}),"ig",0,(e,n)=>w("/reports/monthly/"+encodeURIComponent(e)+"/submit",{version:n}),"j",0,e=>w("/groups/"+encodeURIComponent(e)+"/leave",{}),"jx",0,(e=86400)=>w("/me/qrcodes",{purpose:"add_friend",expires_in_seconds:e}),"k8",0,(e,n,t,s)=>k("/topics/"+encodeURIComponent(e)+"/draft",{content:n,entities:t,version:s}),"kV",0,e=>C("/blocks/"+encodeURIComponent(e)),"kX",0,e=>y("/meetings/"+encodeURIComponent(e)),"kY",0,(e,n,t="")=>w("/groups/"+encodeURIComponent(e)+"/mutes",{members:n,reason:t}),"lB",0,(e,n="")=>y("/reports/daily/statistics"+z({date:e,department_id:n})),"lD",0,(e,n=[])=>w("/reports/daily/reminders",{date:e,user_ids:n}),"lL",0,()=>y("/executive-mailbox/config"),"le",0,(e,n,t=20,s=20)=>y("/topics/"+encodeURIComponent(e)+"/messages/"+encodeURIComponent(n)+"/context"+z({before:t,after:s})),"ly",0,e=>y("/groups/"+encodeURIComponent(e)+"/members/me/profile"),"nI",0,(e,n)=>w("/groups/"+encodeURIComponent(e)+"/announcements/"+encodeURIComponent(n)+"/read",{}),"nW",0,(e,n="")=>y("/reports/monthly/statistics"+z({month:e,department_id:n})),"no",0,e=>y("/groups/"+encodeURIComponent(e)+"/settings"),"oI",0,(e="",n="department,user",t="")=>y("/organization/search"+z({q:e,types:n,cursor:t})),"ob",0,(e="user")=>y("/reports/abuse/reasons"+z({target_type:e})),"oo",0,(e,n=86400)=>w("/groups/"+encodeURIComponent(e)+"/qrcodes",{expires_in_seconds:n}),"pl",0,e=>y("/conversations/"+encodeURIComponent(e)+"/context"),"ps",0,(e,n="add_friend")=>w("/qrcodes/resolve",{token:e,purpose:n}),"qM",0,({type:e="all",query:n="",cursor:t="",limit:s}={})=>y("/favorites"+z({type:e,q:n,cursor:t,limit:s})),"qm",0,()=>y("/workbench"),"qr",0,e=>w("/meetings",e),"rF",0,(e,n="continue")=>w("/security/risk-challenges/"+encodeURIComponent(e)+"/confirm",{decision:n}),"rX",0,(e,n)=>y("/groups/"+encodeURIComponent(e)+"/members/"+encodeURIComponent(n)+"/profile"),"rn",0,e=>k("/blocks/"+encodeURIComponent(e),{}),"s7",0,(e,n="pending",t="")=>y("/groups/"+encodeURIComponent(e)+"/join-requests"+z({status:n,cursor:t})),"t$",0,(e,n,t="")=>w("/favorites/forward",{favorite_ids:e,target_topics:n,comment:t}),"tb",0,e=>w("/reports/abuse",e),"uT",0,(e,n,t,s="")=>w("/messages/forward",{mode:e,sources:n,target_topics:t,comment:s}),"uj",0,e=>y("/groups/"+encodeURIComponent(e)+"/governance"),"uv",0,e=>w("/executive-mailbox/submissions",e),"v",0,(e="root",n="")=>y("/organization/departments"+z({parent_id:e,cursor:n})),"vW",0,(e,n)=>v("/groups/"+encodeURIComponent(e),n),"w",0,()=>y("/me/profile"),"w4",0,e=>w("/system-notifications/"+encodeURIComponent(e)+"/read",{read_at:(new Date).toISOString()}),"wI",0,(e,n)=>w("/friend-requests/"+encodeURIComponent(e)+"/accept",n?{version:n}:{}),"wj",0,({name:e,description:n="",memberUserIds:t=[],avatarFileId:s=""})=>w("/groups",{name:e,description:n,member_user_ids:t,avatar_file_id:s}),"x5",0,(e,n="account",t="")=>y("/users/search"+z({q:e,type:n,cursor:t})),"xn",0,({scope:e="mine",fromMonth:n="",toMonth:t="",status:s="",cursor:i=""}={})=>y("/reports/monthly"+z({scope:e,from_month:n,to_month:t,status:s,cursor:i})),"xz",0,(e,n)=>w("/friend-requests/"+encodeURIComponent(e)+"/reject",n?{version:n}:{}),"yP",0,(e,n="image",t="")=>y("/topics/"+encodeURIComponent(e)+"/media"+z({type:n,cursor:t})),"zY",0,({scope:e="mine",from:n="",to:t="",status:s="",cursor:i=""}={})=>y("/reports/daily"+z({scope:e,from:n,to:t,status:s,cursor:i}))])},99:function(e,n,t){"use strict";t.d(n,{A:function(){return s}});class s{static setObject(e,n){localStorage.setItem(e,JSON.stringify(n))}static getObject(e){const n=localStorage.getItem(e);return n&&JSON.parse(n)}static updateObject(e,n){const t=this.getObject(e);this.setObject(e,Object.assign(t||{},n))}static removeItem(e){localStorage.removeItem(e)}}},184:function(e,n,t){"use strict";t.d(n,{A:function(){return i}});let s=0;class i{static parseUrl(e){const n=e.split("?",2),t={};let s=[];return n[0]&&(s=n[0].replace(/^\//,"").split("/"),s.length>1&&"_"===s[0]&&(s[0]="")),n[1]&&n[1].split("&").forEach(e=>{const n=e.indexOf("=");n>0&&(t[e.slice(0,n)]=decodeURIComponent(e.slice(n+1)))}),{path:s,params:t}}static currentUrl(){return window.location.pathname+window.location.search}static navigateTo(e){s++,window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate"))}static navigateReplace(e){window.history.replaceState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate"))}static goBack(){return s>0&&(s--,window.history.back(),!0)}static composeUrl(e,n){let t=e;t.length>1&&!t[0]&&(t=["_",...t.slice(1)]);let s="/"+t.join("/");const i=[];for(const e in n)n.hasOwnProperty(e)&&void 0!==n[e]&&i.push(e+"="+encodeURIComponent(n[e]));return i.length>0&&(s+="?"+i.join("&")),s}static addUrlParam(e,n,t){const s=i.parseUrl(e);return s.params[n]=t,i.composeUrl(s.path,s.params)}static removeUrlParam(e,n){const t=i.parseUrl(e);return delete t.params[n],i.composeUrl(t.path,t.params)}static removeUrlParams(e,n){Array.isArray(n)||(n=[n]);const t=i.parseUrl(e);for(const e of n)delete t.params[e];return i.composeUrl(t.path,t.params)}static setUrlSidePanel(e,n){const t=i.parseUrl(e);return t.path[0]=n,i.composeUrl(t.path,t.params)}static setUrlInfoPanel(e,n){const t=i.parseUrl(e);return n?t.params.info=n:delete t.params.info,i.composeUrl(t.path,t.params)}static setUrlTopic(e,n){const t=i.parseUrl(e);return t.path[1]=n,delete t.params.info,i.composeUrl(t.path,t.params)}}},7256:function(e,n,t){"use strict";function s(e,n){n=n||window.navigator.userLanguage||window.navigator.language;const t=new Date;return e.getFullYear()==t.getFullYear()?e.getMonth()==t.getMonth()&&e.getDate()==t.getDate()?e.toLocaleTimeString(n,{hour12:!1,hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(n,{hour12:!1,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(n,{year:"numeric",month:"short",day:"numeric"})}function i(e,n){n=n||window.navigator.userLanguage||window.navigator.language;const t=new Date,s=Math.floor((e.getTime()-6e4*e.getTimezoneOffset())/864e5)-Math.floor((t.getTime()-6e4*t.getTimezoneOffset())/864e5);return Math.abs(s)<2?new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(s,"day"):new Intl.DateTimeFormat(n).format(e)}function o(e,n){if("number"!=typeof e)return"";let t=(0|Math.floor(e/60))%60,s=0|Math.floor(e/3600);(n||s>0)&&(t=t<10?`0${t}`:t);let i=(0|e)%60;return i=i<10?`0${i}`:i,0==s?`${t}:${i}`:`${s}:${t}:${i}`}function a(e){if(!e||0==e)return"0 Bytes";const n=["Bytes","KB","MB","GB","TB","PB"],t=Math.min(0|Math.floor(Math.log2(e)/10),n.length-1),s=e/Math.pow(1024,t),i=t>0?s<3?2:s<30?1:0:0;return s.toFixed(i)+" "+n[t]}function r(e,n){return"string"!=typeof e?e:e.length>n?e.slice(0,n/2-1)+"…"+e.slice(1-n/2):e}function l(e,n,t){return(n?"lt-":"dk-")+(t?"fg-":"bg-")+(s=e,Math.abs(function(e){let n=0;e=""+e;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n&=n;return n}(s))%16);var s}function c(e){const n=e.toUpperCase().split("").map(e=>127397+e.charCodeAt());return String.fromCodePoint(...n)}function d(e,n){return"string"!=typeof e||e.length<=n?e:/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/.test(e)?"…"+e.slice(0,n-1):e.slice(0,n-1)+"…"}t.d(n,{Tu:function(){return r},W5:function(){return d},Ye:function(){return o},cq:function(){return s},kJ:function(){return l},lX:function(){return a},lb:function(){return c},mf:function(){return i}})},2795:function(e,n,t){"use strict";t.d(n,{Ug:function(){return l},o_:function(){return c},sK:function(){return a},ze:function(){return r}});var s=t(1594),i=t.n(s);const o=new Map;function a(e,n,t){const[s,a]=i().useState(()=>e?o.get(e):void 0),[r,l]=i().useState(()=>!!e&&!o.has(e));return i().useEffect(()=>{if(!e)return;let t=!0,s=!1;l(!o.has(e));const i=()=>n().then(n=>{t&&(o.set(e,n),a(n),l(!1))}).catch(()=>{if(t)return s||o.has(e)?void l(!1):(s=!0,void window.setTimeout(()=>{t&&i()},3e3))});return i(),()=>{t=!1}},[e,...t||[]]),[s,r]}function r(e){return e?o.get(e):void 0}function l(e,n){e&&o.set(e,n)}function c(e,n=300){const[t,s]=i().useState(e);return i().useEffect(()=>{if(e===t)return;const i=window.setTimeout(()=>s(e),n);return()=>window.clearTimeout(i)},[e,n,t]),t}},7849:function(e,n,t){"use strict";t.d(n,{FH:function(){return p},Jf:function(){return u},Jt:function(){return c},KY:function(){return x},LO:function(){return m},MC:function(){return b},OM:function(){return a},TP:function(){return o},YO:function(){return h},af:function(){return l},iE:function(){return f},k6:function(){return r},t7:function(){return j},wk:function(){return g},xH:function(){return d}});var s=t(4532),i=t(3272);function o(e,n,t){return n&&n.fn||(n&&s.Tinode.isGroupTopicName(e)&&n.name?n.name:s.Tinode.isSelfTopicName(e)?"已保存的消息":t)}function a(e){const n=document.getElementById("shortcut-icon"),t=document.head||document.getElementsByTagName("head")[0],s=document.createElement("link");s.type="image/png",s.id="shortcut-icon",s.rel="shortcut icon",s.href="img/logo32x32"+(e>0?"a":"")+".png",n&&t.removeChild(n),t.appendChild(s),document.title=(e>0?"("+e+") ":"")+i.iv}function r(e,n,t,i){let o=null;if((e=e&&e.trim())&&(o={fn:e}),"string"==typeof(i=i&&i.trim())&&(o=o||{},o.note=i||s.Tinode.DEL_CHAR),n){o=o||{};let e=t;const i=/^data:(image\/[-a-z0-9+.]+)?(;base64)?,/i.exec(n);i?(e=i[1],o.photo={data:n.substring(n.indexOf(",")+1),ref:s.Tinode.DEL_CHAR}):o.photo={data:s.Tinode.DEL_CHAR,ref:n},o.photo.type=(e||"image/jpeg").substring(6)}return o}function l(e,n){if(e===n)return!0;if(!Array.isArray(e)||!Array.isArray(n))return!1;if(e.length!=n.length)return!1;e.sort(),n.sort();for(let t=0,s=e.length;t<s;t++)if(e[t]!==n[t])return!1;return!0}function c(e){return e=e.trim(),/^(?:\+?(\d{1,3}))?[- (.]*(\d{3})[- ).]*(\d{3})[- .]*(\d{2})[- .]*(\d{2})?$/.test(e)?e.replaceAll(/[- ().]*/g,""):null}function d(e){return e=e.trim(),/^[a-z0-9_.+-]+@[a-z0-9-]+(\.[a-z0-9-]+)+$/i.test(e)?e:null}function h(e){return e&&!/^\s*([a-z][a-z0-9+.-]*:|\/\/)/im.test(e.replace(/\\/g,"/"))}function u(e,n){if("string"!=typeof e)return e;if(e=(e=e.replace(/[^\x21-\x7E]/gim,"").trim()).replace(/\\/g,"/"),!/^([a-z][a-z0-9+.-]*:|\/\/)/i.test(e))return e;if(/^blob:http/.test(e))return e;const t=Array.isArray(n)?n.join("|"):"http|https";return new RegExp("^(("+t+"):|//)","i").test(e)?e:null}function g(e,n){if(!e)return null;const t=u(e);return t||(new RegExp(`data:${n}/[-+.a-z0-9]+;base64,`,"i").test(e.trim())?e:null)}function p(e){if(e.startsWith("data:")||e.startsWith("blob:"))return e;let n="",t="";const s=e.indexOf("#");s>0&&(t=e.substring(s+1),e=e.substring(0,s));const i=e.indexOf("?");i>0&&(n=e.substring(i+1),e=e.substring(0,i));const o=new URLSearchParams(n);return o.append("asatt","1"),`${e}?${o.toString()}`+(t?`#${t}`:"")}function m(e){switch(e){case s.Tinode.MESSAGE_STATUS_SENDING:return{name:"access_time"};case s.Tinode.MESSAGE_STATUS_FAILED:case s.Tinode.MESSAGE_STATUS_FATAL:return{name:"warning",color:"red"};case s.Tinode.MESSAGE_STATUS_SENT:return{name:"done"};case s.Tinode.MESSAGE_STATUS_RECEIVED:return{name:"done_all"};case s.Tinode.MESSAGE_STATUS_READ:return{name:"done_all",color:"blue"}}return null}function f(e){let n=!1;return{promise:e instanceof Error?Promise.reject(e):new Promise((t,s)=>{e.then(e=>n?s({isCanceled:!0}):t(e),e=>s(n?{isCanceled:!0}:e))}),cancel(){n=!0}}}function x(){const e=t(1781)[i.S.type][i.S.index];return{name:`../${i.S.path}${e.name}`,size:e.size}}function j(e){const n=e.split("/");return n[n.length-1]}function b(e){const n=j(e),s=t(1781);for(const e in s)for(let t=0;t<s[e].length;t++)if(s[e][t].name==n)return e;return null}},781:function(e,n,t){"use strict";t.d(n,{Ay:function(){return j},wW:function(){return p}});var s=t(1594),i=t.n(s),o=t(184),a=t(8353),r=t(2795),l=t(4848);const c=(e,n)=>{let t=o.A.setUrlSidePanel(o.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?o.A.addUrlParam(t,e,n):o.A.removeUrlParam(t,e)}),o.A.navigateTo(t)};function d({children:e}){return(0,l.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function h({title:e,back:n}){return(0,l.jsxs)("header",{className:"support-header",children:[(0,l.jsx)("button",{type:"button",onClick:()=>{o.A.goBack()||c(n)},"aria-label":"返回",children:(0,l.jsx)(d,{children:"arrow_back_ios_new"})}),(0,l.jsx)("h1",{children:e}),(0,l.jsx)("span",{})]})}function u({message:e,onDone:n}){return i().useEffect(()=>{if(!e)return;const t=window.setTimeout(n,2200);return()=>window.clearTimeout(t)},[e,n]),e?(0,l.jsx)("div",{className:"support-toast",role:"status",children:e}):null}function g({secondary:e}){return(0,l.jsxs)("div",{className:"support-page risk-warning-page",children:[(0,l.jsx)(h,{title:"安全提醒",back:e?"fraud-risk-warning":"personal-center"}),(0,l.jsxs)("main",{className:"risk-info-page risk-dialog",children:[(0,l.jsx)("span",{className:"risk-symbol",children:(0,l.jsx)(d,{children:e?"warning_amber":"verified_user"})}),e?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{className:"risk-emphasis",children:"您发送的内容可能涉及诈骗风险,请注意甄别。"}),(0,l.jsx)("p",{children:"切勿轻信陌生人的投资理财、兼职刷单、网络贷款等信息,谨防上当受骗。"}),(0,l.jsxs)("aside",{children:[(0,l.jsx)(d,{children:"phone_in_talk"}),(0,l.jsx)("span",{children:"如遇诈骗请立即拨打 110 报警。"})]})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{children:"为保障您的账号及资金安全,请您注意:"}),(0,l.jsxs)("ul",{children:[(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"receipt_long"}),"不参与刷单返利活动"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"currency_yuan"}),"不轻信高收益投资、理财信息"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"person_off"}),"不出租、出借、出售账号及实名信息"]}),(0,l.jsxs)("li",{children:[(0,l.jsx)(d,{children:"lock"}),"不向任何人泄露验证码、密码等敏感信息"]})]}),(0,l.jsx)("p",{className:"risk-emphasis",children:"请提高安全防范意识,谨防电信网络诈骗。"})]}),(0,l.jsx)("button",{type:"button",className:"primary",onClick:()=>c(e?"fraud-risk-warning":"personal-center"),children:e?"我已知晓":"我已阅读并知晓"})]})]})}function p({level:e,blocked:n,onConfirm:t,onCancel:s}){return(0,l.jsx)("div",{className:"risk-overlay",children:(0,l.jsxs)("section",{className:"risk-dialog secondary",role:"alertdialog","aria-modal":"true",children:[(0,l.jsx)("span",{className:"risk-symbol",children:(0,l.jsx)(d,{children:n?"block":"warning_amber"})}),(0,l.jsx)("h2",{children:"安全提醒"}),n?(0,l.jsx)("p",{className:"risk-emphasis",children:"检测到该内容存在较高安全风险,暂无法发送。"}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("p",{className:"risk-emphasis",children:"您发送的内容可能涉及诈骗风险,请注意甄别。"}),(0,l.jsx)("p",{children:"切勿轻信陌生人的投资理财、兼职刷单、网络贷款等信息,谨防上当受骗。如遇诈骗请立即拨打 110 报警。"})]}),n?(0,l.jsx)("button",{type:"button",onClick:s,children:"我已知晓"}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("button",{type:"button",className:"danger",onClick:t,children:"我已知晓,继续发送"}),(0,l.jsx)("button",{type:"button",onClick:s,children:"取消发送"})]})]})})}function m({hashParams:e,onToast:n}){const t=e&&e.target_type||"user",s=e&&e.target_name||"",[o,r]=i().useState(null);return i().useEffect(()=>{(0,a.ob)(t).then(e=>r(Array.isArray(e)?e:e&&(e.reasons||e.items)||[])).catch(e=>{n(e.message||"加载失败"),r([])})},[t]),(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"举报",back:"messages-home"}),(0,l.jsxs)("main",{className:"report-reasons",children:[s?(0,l.jsxs)("section",{className:"report-target",children:[(0,l.jsx)(d,{children:"account_circle"}),(0,l.jsxs)("span",{children:[(0,l.jsxs)("strong",{children:["举报",s]}),(0,l.jsx)("small",{children:"举报人身份不会向对方公开"})]})]}):null,(0,l.jsx)("h2",{children:"请选择举报原因"}),null===o?(0,l.jsx)("p",{className:"report-loading",children:"加载中…"}):(0,l.jsx)("section",{className:"report-reason-list",children:o.map(n=>(0,l.jsxs)("button",{type:"button",onClick:()=>(n=>c("abuse-report-details",{...e,reason_code:n.reason_code||n.code,reason_label:n.label,requires_description:n.requires_description?"1":""}))(n),children:[(0,l.jsx)("span",{children:(0,l.jsx)("strong",{children:n.label})}),(0,l.jsx)(d,{children:"chevron_right"})]},n.reason_code||n.code))})]})]})}function f({hashParams:e,tinode:n,onToast:t}){const s=e&&e.reason_label||"",o=e&&e.reason_code||"",r="1"===(e&&e.requires_description),[u,g]=i().useState(""),[p,m]=i().useState([]),[f,x]=i().useState(!1),[j,b]=i().useState(!1),[y,w]=i().useState(null),v=i().useRef(null);return(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"举报",back:"abuse-report-reasons"}),y?(0,l.jsxs)("main",{className:"support-success",children:[(0,l.jsx)(d,{children:"task_alt"}),(0,l.jsx)("h2",{children:"举报已受理"}),(0,l.jsx)("p",{children:"我们会依据平台规则核实处理,举报人身份不会向被举报方公开。"}),(0,l.jsx)("dl",{children:(0,l.jsxs)("div",{children:[(0,l.jsx)("dt",{children:"受理编号"}),(0,l.jsx)("dd",{children:y.report_id})]})}),(0,l.jsx)("button",{type:"button",onClick:()=>c("messages-home"),children:"完成"})]}):(0,l.jsxs)("main",{className:"report-details",children:[(0,l.jsxs)("section",{className:"report-selected-reason",children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("small",{children:"举报原因"}),(0,l.jsx)("strong",{children:s})]}),(0,l.jsx)("button",{type:"button",onClick:()=>c("abuse-report-reasons",e),children:"修改"})]}),(0,l.jsxs)("label",{className:"support-textarea",children:[(0,l.jsxs)("span",{children:["问题描述",r?(0,l.jsx)("b",{children:"*"}):null]}),(0,l.jsx)("textarea",{value:u,maxLength:"500",onChange:e=>g(e.target.value),placeholder:"请描述具体情况、发生时间和相关行为"}),(0,l.jsxs)("small",{children:[u.length,"/500"]})]}),(0,l.jsxs)("section",{className:"evidence-section",children:[(0,l.jsxs)("header",{children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("strong",{children:"证据材料"}),(0,l.jsx)("small",{children:"图片或文件,最多 9 个"})]}),(0,l.jsxs)("em",{children:[p.length,"/9"]})]}),(0,l.jsxs)("div",{children:[p.map(e=>(0,l.jsxs)("article",{children:[(0,l.jsx)(d,{children:"image"}),(0,l.jsx)("span",{children:e.name}),(0,l.jsx)("button",{type:"button",onClick:()=>m(n=>n.filter(n=>n.id!==e.id)),"aria-label":"删除证据",children:(0,l.jsx)(d,{children:"close"})})]},e.id)),(0,l.jsxs)("button",{type:"button",className:"evidence-upload",disabled:f,onClick:()=>v.current&&v.current.click(),children:[(0,l.jsx)(d,{children:"add_photo_alternate"}),(0,l.jsx)("span",{children:f?"上传中…":"添加证据"})]}),(0,l.jsx)("input",{ref:v,type:"file",accept:"image/*",style:{display:"none"},onChange:e=>{const s=e.target.files&&e.target.files[0];e.target.value="",s&&n&&(p.length>=9?t("最多上传 9 个证据文件"):(x(!0),(0,a.rD)(n,s).then(({fileId:e})=>m(n=>n.concat({id:e,name:s.name}))).catch(e=>t(e.message||"上传失败")).finally(()=>x(!1))))}})]})]}),(0,l.jsxs)("aside",{className:"report-privacy-note",children:[(0,l.jsx)(d,{children:"lock"}),(0,l.jsx)("span",{children:"证据仅用于平台审核,将按照安全策略保存和访问。"})]})]}),y?null:(0,l.jsx)("footer",{className:"support-submit-bar",children:(0,l.jsx)("button",{type:"button",disabled:j,onClick:()=>{if(r&&!u.trim())return void t("请补充问题描述");const n={type:e.target_type||"user"};"message"===e.target_type?(n.topic=e.topic,n.seq=String(e.seq)):"group"===e.target_type?n.topic=e.topic||e.target_id:n.user_id=e.target_id,b(!0),(0,a.tb)({target:n,reason_code:o,description:u.trim(),evidence_file_ids:p.map(e=>e.id)}).then(e=>w(e)).catch(e=>t(e.message||"提交失败")).finally(()=>b(!1))},children:j?"提交中…":"提交举报"})})]})}function x({tinode:e,onToast:n}){const t=(0,r.ze)("feedback-config"),[s]=(0,r.sK)("feedback-config",a.KN,[]),[o,u]=i().useState(()=>t&&t.categories&&t.categories[0]||""),[g,p]=i().useState(""),[m,f]=i().useState([]),[x,j]=i().useState(!1),[b,y]=i().useState(!1),[w,v]=i().useState(!1),[k,C]=i().useState(null),z=i().useRef(null),_=s&&s.attachment_policy&&s.attachment_policy.max_files||5,S=s&&s.max_length||300;i().useEffect(()=>{s&&s.categories&&s.categories.length&&!o&&u(s.categories[0])},[s]);const N={bug:"功能异常",suggestion:"产品建议",complaint:"服务投诉",other:"其他"};return k?(0,l.jsxs)("div",{className:"support-page",children:[(0,l.jsx)(h,{title:"意见反馈",back:"personal-center"}),(0,l.jsxs)("main",{className:"support-success",children:[(0,l.jsx)(d,{children:"mark_email_read"}),(0,l.jsx)("h2",{children:"反馈已受理"}),(0,l.jsx)("p",{children:"感谢你的反馈,我们会尽快查看并用于改进产品。"}),(0,l.jsx)("dl",{children:(0,l.jsxs)("div",{children:[(0,l.jsx)("dt",{children:"反馈编号"}),(0,l.jsx)("dd",{children:k.feedback_id})]})}),(0,l.jsx)("button",{type:"button",onClick:()=>c("personal-center"),children:"返回我的"})]})]}):(0,l.jsxs)("div",{className:"support-page feedback-page",children:[(0,l.jsx)(h,{title:"意见反馈",back:"personal-center"}),(0,l.jsxs)("main",{children:[s&&s.categories&&s.categories.length>1?(0,l.jsxs)("section",{className:"feedback-categories",children:[(0,l.jsx)("h2",{children:"反馈类型"}),(0,l.jsx)("div",{children:s.categories.map(e=>(0,l.jsx)("button",{type:"button",className:o===e?"active":"",onClick:()=>u(e),children:N[e]||e},e))})]}):null,(0,l.jsxs)("label",{className:"support-textarea",children:[(0,l.jsxs)("span",{children:["问题反馈",(0,l.jsx)("b",{children:"*"})]}),(0,l.jsx)("textarea",{value:g,maxLength:S,onChange:e=>p(e.target.value),placeholder:"为了更好的帮您解决问题,请在提交问题时上传截图信息,方便我们更快速的帮助您解决问题。"}),(0,l.jsxs)("small",{children:[g.length,"/",S]})]}),(0,l.jsxs)("section",{className:"feedback-upload",children:[(0,l.jsx)("header",{children:(0,l.jsxs)("strong",{children:["图片(",m.length,"/",_,")"]})}),(0,l.jsxs)("button",{type:"button",disabled:x,onClick:()=>z.current&&z.current.click(),children:[(0,l.jsx)(d,{children:"add_a_photo"}),(0,l.jsx)("span",{children:x?"上传中…":"点击上传"})]}),(0,l.jsx)("input",{ref:z,type:"file",accept:"image/*",style:{display:"none"},onChange:t=>{const s=t.target.files&&t.target.files[0];t.target.value="",s&&e&&(m.length>=_?n(`最多上传 ${_} 张图片`):(j(!0),(0,a.rD)(e,s).then(({fileId:e})=>f(n=>n.concat({id:e}))).catch(e=>n(e.message||"上传失败")).finally(()=>j(!1))))}})]}),s&&s.diagnostics_notice?(0,l.jsxs)("label",{className:"diagnostics-consent",children:[(0,l.jsx)("input",{type:"checkbox",checked:b,onChange:e=>y(e.target.checked)}),(0,l.jsxs)("span",{children:[(0,l.jsx)("strong",{children:"同意上传脱敏诊断信息"}),(0,l.jsx)("small",{children:s.diagnostics_notice})]})]}):null]}),(0,l.jsx)("footer",{className:"support-submit-bar",children:(0,l.jsx)("button",{type:"button",disabled:w,onClick:()=>{g.trim()?o?(v(!0),(0,a.Wz)({category:o,content:g.trim(),attachment_file_ids:m.map(e=>e.id),include_diagnostics:b}).then(e=>C(e)).catch(e=>n(e.message||"提交失败")).finally(()=>v(!1))):n("请选择反馈类型"):n("请填写反馈内容")},children:w?"提交中…":"提交"})})]})}function j({view:e,hashParams:n,tinode:t}){const[s,o]=i().useState("");let a;return a="fraud-risk-warning"===e||"fraud-risk-confirmation"===e?(0,l.jsx)(g,{secondary:"fraud-risk-confirmation"===e}):"abuse-report-reasons"===e?(0,l.jsx)(m,{hashParams:n,onToast:o}):"abuse-report-details"===e?(0,l.jsx)(f,{hashParams:n,tinode:t,onToast:o}):(0,l.jsx)(x,{tinode:t,onToast:o}),(0,l.jsxs)(l.Fragment,{children:[a,(0,l.jsx)(u,{message:s,onDone:()=>o("")})]})}t.d(n,["oq",0,["fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback"]])},6916:function(e,n,t){"use strict";t.d(n,{A:function(){return y}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(995),l=t(3889),c=t(6948),d=t(1192),h=t(3272),u=t(7981),g=t(8353),p=t(7256),m=t(7849),f=t(4848);const x=(0,o.defineMessages)({alias_invalid:{id:"alias_invalid",defaultMessage:"(invalid)",description:"Error message for invalid alias"},alias_already_taken:{id:"alias_already_taken",defaultMessage:"(already taken)",description:"Error message for alias already taken"},self_topic_name:{id:"self_topic_name",defaultMessage:"Saved messages",description:"Name of self topic for UI"},self_topic_comment:{id:"self_topic_comment",defaultMessage:"Notes, messages, links, files saved for posterity",description:"Comment for self topic for UI"}});class j extends i().Component{constructor(e){super(e);const n=this.props.tinode.getTopic(this.props.topic),t=n.getAccessMode(),s=a.Tinode.isSelfTopicName(this.props.topic);this.state={isMe:a.Tinode.isMeTopicName(this.props.topic),isSelf:s,owner:t&&t.isOwner(),fullName:n.public?n.public.fn:s?this.props.intl.formatMessage(x.self_topic_name):null,private:n.private?n.private.comment:null,description:n.public?n.public.note:s?this.props.intl.formatMessage(x.self_topic_comment):null,avatar:(0,u.to)(n.public?n.public.photo:null),tags:n.tags()||[],newAvatar:null,newAvatarMime:null,aliasError:""},this.previousOnTags=null,this.aliasCheckTimer=null,this.aliasCheckPromise=null,this.tnNewTags=this.tnNewTags.bind(this),this.handleFullNameUpdate=this.handleFullNameUpdate.bind(this),this.handleImageUpdated=this.handleImageUpdated.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handlePrivateUpdate=this.handlePrivateUpdate.bind(this),this.handleAliasUpdate=this.handleAliasUpdate.bind(this),this.handleDescriptionUpdate=this.handleDescriptionUpdate.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this),this.validateAlias=this.validateAlias.bind(this),this.cancelValidator=this.cancelValidator.bind(this)}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnTags=e.onTagsUpdated,e.onTagsUpdated=this.tnNewTags}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousOnTags,this.cancelValidator()}tnNewTags(e){this.setState({tags:e})}handleFullNameUpdate(e){(e=(0,p.W5)(e.trim(),60))&&this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(e,null)))}handlePrivateUpdate(e){e=e.trim().substring(0,60),this.state.private!==e&&(this.setState({private:e}),this.props.onUpdateTopicDesc(this.props.topic,null,e||a.Tinode.DEL_CHAR))}handleDescriptionUpdate(e){(e=e.trim().substring(0,360))&&(this.setState({description:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,null,null,e)))}handleImageUpdated(e,n){this.setState({newAvatar:n,newAvatarMime:e}),n||(this.setState({avatar:null}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,a.Tinode.DEL_CHAR)))}handleAvatarCropped(e,n,t,s){const i=n?URL.createObjectURL(n):null;this.setState({avatar:i,newAvatar:null,newAvatarMime:null}),n&&this.uploadAvatar(e,n,t,s)}uploadAvatar(e,n,t,s){const i=e=>{let{mime:n,blob:t}=e;t.size>4096?(0,g.Lf)(this.props.tinode).upload(t).then(e=>this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,e))).catch(e=>this.props.onError(e.message,"err")):(0,u.Sk)(t).then(e=>{const t=(0,u.to)({data:e.bits,type:n});this.setState({source:t}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,t))})};t>384||s>384||t!=s?(0,u.ag)(n,384,384,h.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:n,width:t,height:s})}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}handleAliasUpdate(e){const n=(e=(e||"").trim())?a.Tinode.setUniqueTag(this.state.tags,a.Tinode.TAG_ALIAS+e.toLowerCase()):a.Tinode.clearTagPrefix(this.state.tags,a.Tinode.TAG_ALIAS);this.handleTagsUpdated(n)}validateAlias(e){if(this.cancelValidator(),!(e=e.trim()))return this.setState({aliasError:""}),!0;if(!a.Tinode.isValidTagValue(e))return this.setState({aliasError:this.props.intl.formatMessage(x.alias_invalid)}),!1;this.setState({aliasError:""});const n=this.props.tinode.getFndTopic();if(!n)return this.setState({aliasError:""}),!0;this.aliasCheckPromise={};const t=new Promise((e,n)=>{this.aliasCheckPromise.resolve=e,this.aliasCheckPromise.reject=n});return this.aliasCheckTimer=setTimeout(t=>{this.aliasCheckTimer=null,n.checkTagUniqueness(`${a.Tinode.TAG_ALIAS}${e}`,this.props.topic).then(e=>{this.aliasCheckPromise.resolve(e),this.setState({aliasError:e?"":this.props.intl.formatMessage(x.alias_already_taken)})}).catch(e=>{this.aliasCheckPromise.reject(e),this.setState({aliasError:e.message})})},1e3),t}cancelValidator(){this.aliasCheckTimer&&(clearTimeout(this.aliasCheckTimer),this.aliasCheckTimer=null,this.aliasCheckPromise.reject(null))}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}render(){if(this.state.newAvatar)return(0,f.jsx)(r.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});const e=this.state.isMe||this.state.owner&&!this.state.isSelf;let n=this.state.tags&&this.state.tags.find(e=>e.startsWith("alias:"));return n&&(n=n.substring(6)),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"panel-form-column",children:[(0,f.jsx)("center",{children:(0,f.jsx)(l.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!e,uid:this.props.topic,title:this.state.fullName,onImageUpdated:this.handleImageUpdated,onError:this.props.onError})}),this.state.isMe?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name",description:"Label for full name editing"})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"full_name_prompt",defaultMessage:"Full name, e.g. John Doe",description:"Input placeholder for person's full name",children:e=>(0,f.jsx)(c.A,{placeholder:e,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})})})]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name",description:"Label for editing topic name"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group",description:"Prompt for entering topic name",children:n=>(0,f.jsx)(c.A,{placeholder:n,readOnly:!e,value:this.state.fullName,required:!0,maxLength:32,onFinished:this.handleFullNameUpdate})})})]}),(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_private",defaultMessage:"Private comment",description:"Label for editing 'private'"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only",description:"Placeholder for editing 'private'",children:e=>(0,f.jsx)(c.A,{placeholder:e,value:this.state.private,onFinished:this.handlePrivateUpdate})})})]})]}),e||n?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsxs)("label",{className:"small "+(this.state.aliasError?"invalid":""),children:[(0,f.jsx)(o.FormattedMessage,{id:"label_alias_edit",defaultMessage:"Alias",description:"Label for editing user or topic alias"})," ",this.state.aliasError]})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"alias_editing_placeholder",defaultMessage:"Alias (optional)",description:"Placeholder for editing user or topic alias",children:t=>(0,f.jsx)(c.A,{placeholder:t,readOnly:!e,value:n,validator:this.validateAlias,iconLeft:"alternate_email",maxLength:24,spellCheck:!1,onFinished:this.handleAliasUpdate})})})]}):null,e||this.state.description?(0,f.jsxs)("div",{className:"group",children:[(0,f.jsx)("div",{children:(0,f.jsx)("label",{className:"small",children:(0,f.jsx)(o.FormattedMessage,{id:"label_description",defaultMessage:"Description",description:"Label for description of user or topic"})})}),(0,f.jsx)("div",{children:(0,f.jsx)(o.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:"Description (optional)",description:"Placeholder for editing topic description",children:n=>(0,f.jsx)(c.A,{placeholder:n,readOnly:!e,value:this.state.description,multiline:2,onFinished:this.handleDescriptionUpdate})})})]}):null]}),e&&!this.state.isMe?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"hr"}),(0,f.jsx)(o.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (search & discovery)",description:"Section title for TagManager",children:e=>(0,f.jsx)(d.A,{tinode:this.props.tinode,title:e,activated:!1,tags:this.state.tags,onSubmit:this.handleTagsUpdated})})]}):null]})}}var b=(0,o.injectIntl)(j);class y extends i().Component{constructor(e){super(e),this.props.tinode.getTopic(this.props.topic).getAccessMode(),this.state={tags:[]},this.previousTagsUpdated=void 0,this.onTagsUpdated=this.onTagsUpdated.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this)}componentDidUpdate(e){const n=this.props.tinode.getTopic(e.topic);n&&(n.onTagsUpdated!=this.onTagsUpdated&&("grp"==n.getType()?(this.previousTagsUpdated=n.onTagsUpdated,n.onTagsUpdated=this.onTagsUpdated):this.previousTagsUpdated=void 0),this.state.topic!=e.topic&&this.setState({topic:e.topic}))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousTagsUpdated}onTagsUpdated(e){this.setState({tags:e}),this.previousTagsUpdated&&this.previousTagsUpdated!=this.onTagsUpdated&&this.previousTagsUpdated(e)}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTagsRequest(this.props.topic,e)}render(){return(0,f.jsx)("div",{className:"scrollable-panel",children:(0,f.jsx)(b,{tinode:this.props.tinode,topic:this.props.topic,onUpdateTopicDesc:this.props.onUpdateTopicDesc,onUpdateTags:this.handleTagsUpdated,onError:this.props.onError})})}}},8492:function(e,n,t){"use strict";var s=t(1594),i=t.n(s),o=t(8181),a=t(7256),r=t(7981),l=t(4848);const c="#666C";let d=null;const h=(0,o.defineMessages)({icon_title_play:{id:"icon_title_play",defaultMessage:"Play recording",description:"Icon tool tip for starting audio playback"}});class u extends i().PureComponent{constructor(e){super(e);let n=(0,r.F8)(this.props.preview);(!Array.isArray(n)||n.length<16)&&(n=null),this.state={canPlay:!1,playing:!1,currentTime:"0:00",duration:this.props.duration>0?(0,a.Ye)(this.props.duration/1e3):"-:--",longMin:this.props.duration>=6e5,preview:n},this.initAudio=this.initAudio.bind(this),this.initCanvas=this.initCanvas.bind(this),this.resampleBars=this.resampleBars.bind(this),this.visualize=this.visualize.bind(this),this.handlePlay=this.handlePlay.bind(this),this.handleSeek=this.handleSeek.bind(this),this.handleError=this.handleError.bind(this),this.audioPlayer=null,this.viewBuffer=[],this.canvasRef=i().createRef()}componentDidMount(){this.props.src&&this.initAudio(),this.initCanvas()}componentWillUnmount(){d===this&&(d=null),this.audioPlayer&&(this.audioPlayer.onloadedmetadata=null,this.audioPlayer.ontimeupdate=null,this.audioPlayer.onended=null,this.audioPlayer.pause(),this.audioPlayer=null)}pauseForOtherPlayer(){this.audioPlayer&&this.audioPlayer.pause(),this.setState({playing:!1})}componentDidUpdate(e){if(this.props.src!=e.src&&this.initAudio(),this.props.preview!=e.preview){let e=(0,r.F8)(this.props.preview);(!Array.isArray(e)||e.length<16)&&(e=null),this.setState({preview:e},this.initCanvas)}}initAudio(){this.audioPlayer=new Audio(this.props.src),this.audioPlayer.onloadedmetadata=e=>this.setState({canPlay:!0}),this.audioPlayer.ontimeupdate=e=>this.setState({currentTime:(0,a.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.audioPlayer.onended=e=>{this.audioPlayer.currentTime=0,this.setState({playing:!1,currentTime:(0,a.Ye)(0,this.state.longMin)}),d===this&&(d=null)}}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.viewBuffer=this.resampleBars(this.state.preview),this.visualize()}visualize(){if(!this.canvasRef.current)return;const e=this.effectiveWidth,n=this.canvasRef.current.height;this.canvasContext.lineWidth=6;const t=s=>{if(this.canvasRef.current&&this.audioPlayer&&(this.canvasContext.clearRect(0,0,this.canvasRef.current.width,n),this.viewBuffer)){this.state.playing&&window.requestAnimationFrame(t);const s=this.props.duration?Math.max(0,Math.min(1e3*this.audioPlayer.currentTime/this.props.duration,1))*(e-12):-1;this.canvasContext.beginPath(),this.canvasContext.strokeStyle=c;for(let e=0;e<this.viewBuffer.length;e++){let t=1+10*e+3,i=Math.max(this.viewBuffer[e]*n*.9,1);const o=t<s?c:"#888A";this.canvasContext.strokeStyle!=o&&(this.canvasContext.stroke(),this.canvasContext.beginPath(),this.canvasContext.strokeStyle=o),this.canvasContext.moveTo(t,.5*(n-i)),this.canvasContext.lineTo(t,.5*(n+i))}this.canvasContext.stroke(),this.props.duration&&(this.canvasContext.beginPath(),this.canvasContext.arc(s+12,.5*n,12,0,2*Math.PI),this.canvasContext.fillStyle="#1781d7",this.canvasContext.fill())}};t()}resampleBars(e){const n=(this.canvasRef.current.width-4)/10|0;if(this.effectiveWidth=10*n+4,!Array.isArray(e)||0==e.length)return Array.apply(null,Array(n)).map(e=>.01);const t=e.length/n;let s=[],i=-1;for(let o=0;o<n;o++){let n=o*t|0,a=(o+1)*t|0;if(a==n)s[o]=e[n];else{let t=0;for(let s=n;s<a;s++)t+=e[s];s[o]=Math.max(0,t/(a-n))}i=Math.max(s[o],i)}return i>0?s.map(e=>e/i):Array.apply(null,Array(n)).map(e=>.01)}handlePlay(e){e.preventDefault(),this.state.canPlay&&(this.state.playing?(this.audioPlayer.pause(),this.setState({playing:!1})):this.audioPlayer.readyState>=2&&(d&&d!==this&&d.pauseForOtherPlayer(),d=this,this.audioPlayer.play(),this.setState({playing:!0},this.visualize),this.props.onPlay&&this.props.onPlay()))}handleError(e){console.error(e)}handleSeek(e){if(e.preventDefault(),e.target&&this.props.duration){const n=e.target.getBoundingClientRect(),t=(e.clientX-n.left)/this.effectiveWidth*2;this.audioPlayer.currentTime=this.props.duration*t/1e3,this.setState({currentTime:(0,a.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.state.playing||this.visualize()}}render(){const e="material-icons"+(this.props.short?"":" large")+(this.state.canPlay?"":" disabled"),n=(0,l.jsx)("a",{href:"#",onClick:this.handlePlay,title:this.props.intl.formatMessage(h.icon_title_play),children:(0,l.jsx)("i",{className:e,children:this.state.playing?"pause_circle":this.state.canPlay?"play_circle":"not_interested"})});return(0,l.jsx)("div",{className:"audio-player",children:this.props.short?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),n]}):(0,l.jsxs)(l.Fragment,{children:[n,(0,l.jsxs)("div",{className:"playback-row",children:[(0,l.jsx)("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),(0,l.jsxs)("div",{className:"timer",children:[this.state.currentTime,"/",this.state.duration]})]})]})})}}n.A=(0,o.injectIntl)(u)},995:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);class r extends i().Component{constructor(e){super(e),this.state={panX:0,panY:0,originX:0,originY:0,zoom:1,minZoom:.001,maxZoom:8},this.overlay=i().createRef(),this.cutout=i().createRef(),this.preview=i().createRef(),this.boundingBox=i().createRef(),this.imageWidth=0,this.imageHeight=0,this.mouseX=0,this.mouseY=0,this.prevDistance=0,this.cutoutRect={},this.bBoxRect={},this.originX=0,this.originY=0,this.initScaling=this.initScaling.bind(this),this.onZoom=this.onZoom.bind(this),this.handleZoom=this.handleZoom.bind(this),this.mouseDown=this.mouseDown.bind(this),this.mouseUp=this.mouseUp.bind(this),this.mouseMove=this.mouseMove.bind(this),this.mouseTouch=this.mouseTouch.bind(this),this.positionAll=this.positionAll.bind(this),this.translate=this.translate.bind(this)}componentDidMount(){this.overlay.current.addEventListener("mousedown",this.mouseDown,{passive:!0}),this.overlay.current.addEventListener("touchstart",this.mouseDown,{passive:!0}),this.bBoxRect=this.boundingBox.current.getBoundingClientRect(),this.originX=this.bBoxRect.width/2,this.originY=this.bBoxRect.height/2,this.cutoutRect=this.cutout.current.getBoundingClientRect()}componentWillUnmount(){this.overlay.current&&(this.overlay.current.removeEventListener("mousedown",this.mouseDown),this.overlay.current.removeEventListener("touchstart",this.mouseDown))}positionAll(e,n,t){this.setState({panX:e,panY:n,zoom:t,originX:this.originX-e,originY:this.originY-n});const s=(this.originX-e)*t-this.originX,i=(this.originY-n)*t-this.originY;this.props.onChange((s+this.cutoutRect.left-this.bBoxRect.left)/t,(i+this.cutoutRect.top-this.bBoxRect.top)/t,this.cutoutRect.width/t,this.cutoutRect.height/t,t)}static checkBound(e,n,t,s){let i=Math.min(0,t[0]-n[0]-s,n[1]-t[1]+s);return(0==i||Math.min(0,t[0]-n[0],n[1]-t[1])<i)&&(e+=s),e}initScaling(){const e=this.preview.current.getBoundingClientRect();this.imageWidth=e.width,this.imageHeight=e.height;const n=Math.max(this.cutoutRect.width/e.width,this.cutoutRect.height/e.height);this.setState({minZoom:n,maxZoom:8*n});const t=Math.max(this.bBoxRect.width/e.width,this.bBoxRect.height/e.height),s=this.cutoutRect.left-this.bBoxRect.left-(e.width-this.cutoutRect.width)/2,i=this.cutoutRect.top-this.bBoxRect.top-(e.height-this.cutoutRect.height)/2;this.positionAll(s,i,t)}onZoom(e){this.handleZoom(e.target.value)}handleZoom(e){let n=this.state.panX,t=this.state.panY;const s=this.originX-(this.originX-n)*e,i=s+this.imageWidth*e,o=this.originY-(this.originY-t)*e,a=o+this.imageHeight*e,r=this.cutoutRect.left-this.bBoxRect.left,l=r+this.cutoutRect.width,c=this.cutoutRect.top-this.bBoxRect.top,d=c+this.cutoutRect.height;r<s?n-=(s-r)/e:l>i&&(n+=(l-i)/e),c<o?t-=(o-c)/e:d>a&&(t+=(d-a)/e),this.positionAll(n,t,e)}mouseDown(e){e.touches?(this.mouseX=e.touches[0].pageX,this.mouseY=e.touches[0].pageY):(this.mouseX=e.pageX,this.mouseY=e.pageY),window.addEventListener("mousemove",this.mouseMove,{passive:!1}),window.addEventListener("touchmove",this.mouseTouch,{passive:!1}),window.addEventListener("mouseup",this.mouseUp,{passive:!0}),window.addEventListener("touchend",this.mouseUp,{passive:!0}),document.body.style.userSelect="none"}translate(e,n){const t=(e-this.mouseX)/this.state.zoom,s=(n-this.mouseY)/this.state.zoom;this.mouseX=e,this.mouseY=n;const i=this.preview.current.getBoundingClientRect(),o=r.checkBound(this.state.panX,[i.left,i.right],[this.cutoutRect.left,this.cutoutRect.right],t),a=r.checkBound(this.state.panY,[i.top,i.bottom],[this.cutoutRect.top,this.cutoutRect.bottom],s);this.positionAll(o,a,this.state.zoom)}mouseMove(e){e.preventDefault(),this.translate(e.pageX,e.pageY)}mouseTouch(e){if(e.preventDefault(),1==e.touches.length)return void this.translate(e.touches[0].pageX,e.touches[0].pageY);const[n,t]=e.touches,s=Math.sqrt((n.pageX-t.pageX)*(n.pageX-t.pageX)+(n.pageY-t.pageY)*(n.pageY-t.pageY));this.prevDistance||(this.prevDistance=s/this.state.zoom);let i=s/this.prevDistance;this.handleZoom(Math.max(this.minZoom,Math.min(this.maxZoom,i)))}mouseUp(e){window.removeEventListener("mousemove",this.mouseMove),window.removeEventListener("touchmove",this.mouseTouch),window.removeEventListener("mouseup",this.mouseUp),window.removeEventListener("touchend",this.mouseUp),document.body.style.userSelect="",this.positionAll(this.state.panX,this.state.panY,this.state.zoom)}render(){const e=`translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`,n=`${this.state.originX}px ${this.state.originY}px`,t={top:this.originY-this.state.originY*this.state.zoom+"px",left:this.originX-this.state.originX*this.state.zoom+"px",width:this.imageWidth*this.state.zoom+"px",height:this.imageHeight*this.state.zoom+"px"};return(0,a.jsxs)("div",{className:"cropper",children:[(0,a.jsxs)("div",{className:"bounding-box",ref:this.boundingBox,children:[(0,a.jsx)("img",{src:this.props.source,className:"preview",alt:"",style:{transform:e,transformOrigin:n},ref:this.preview,onLoad:this.initScaling}),(0,a.jsx)("div",{className:"cutout circle",ref:this.cutout}),(0,a.jsx)("div",{className:"overlay",style:t,ref:this.overlay})]}),(0,a.jsx)("div",{className:"zoom-wrapper",children:(0,a.jsx)("input",{type:"range",className:"zoomer",step:"0.001",min:this.state.minZoom,max:this.state.maxZoom,value:this.state.zoom,onChange:this.onZoom})})]})}}var l=t(7981);class c extends i().PureComponent{constructor(e){super(e),this.state={top:0,left:0,width:0,height:0,scale:1},this.handleSubmit=this.handleSubmit.bind(this),this.handleChange=this.handleChange.bind(this)}handleChange(e,n,t,s,i){this.setState({left:e,top:n,width:t,height:s,scale:i})}handleSubmit(){(0,l.CO)(this.props.mime,this.props.avatar,this.state.left,this.state.top,this.state.width,this.state.height,this.state.scale).then(e=>{this.props.onSubmit(e.mime,e.blob,e.width,e.height)}).catch(e=>{this.props.onError(e)})}render(){return(0,a.jsxs)("div",{className:"panel-form",children:[(0,a.jsx)("div",{className:"panel-form-row",children:(0,a.jsx)(r,{source:this.props.avatar,onChange:this.handleChange})}),(0,a.jsxs)("div",{className:"dialog-buttons",children:[this.props.onCancel?(0,a.jsx)("button",{className:"secondary",onClick:this.props.onCancel,children:(0,a.jsx)(o.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}):null,(0,a.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,a.jsx)(o.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})})]})]})}}},3889:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(5247),a=t(9304),r=t(7849),l=(t(3272),t(4848));class c extends i().Component{constructor(e){super(e),this.state={source:e.avatar},this.handleFileReceived=this.handleFileReceived.bind(this)}componentDidUpdate(e){this.props.avatar!=e.avatar&&this.setState({source:this.props.avatar})}handleFileReceived(e){const n=e.target.files[0];this.props.onImageUpdated(n.type,URL.createObjectURL(n),n.name),e.target.value=""}render(){const e="file-input-avatar-"+(""+Math.random()).substring(0,4),n="avatar-upload"+(this.props.readOnly?" read-only":"");return(0,l.jsxs)("div",{className:n,children:[this.props.readOnly||!this.state.source?null:(0,l.jsx)("a",{href:"#",className:"clear-avatar",onClick:e=>{e.preventDefault(),this.props.onImageUpdated()},children:(0,l.jsx)("i",{className:"material-icons",children:"clear"})}),this.state.source?(0,l.jsx)("img",{src:this.props.tinode.authorizeURL((0,r.wk)(this.state.source,"image")),className:"preview"}):this.props.readOnly&&this.props.uid?(0,l.jsx)("div",{className:"avatar-box",children:(0,l.jsx)(o.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:!0,topic:this.props.uid,title:this.props.title})}):(0,l.jsxs)("div",{className:"blank",children:[384,"×",384]}),this.props.readOnly?null:(0,l.jsx)("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileReceived}),this.props.readOnly?null:(0,l.jsx)("label",{htmlFor:e,className:"round",children:(0,l.jsx)("i",{className:"material-icons",children:"file_upload"})}),(0,l.jsx)(a.A,{show:this.props.uploading,large:!0,clear:!0,centered:!0})]})}}},6686:function(e,n,t){"use strict";var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);const r={staff:"verified_user"},l=(0,o.defineMessages)({badge_verified:{id:"badge_verified",defaultMessage:"Verified/official",description:"Explanation of a verified account or topic badge"},badge_staff:{id:"badge_staff",defaultMessage:"Staff-managed",description:"Explanation of a staff-managed account or topic badge"},badge_danger:{id:"badge_danger",defaultMessage:"Untrustworthy",description:"Suspicious or untrustworthy account or topic badge"}});class c extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl;let n=null;return this.props.trustedBadges&&this.props.trustedBadges.length>0?(n=[],this.props.trustedBadges.forEach(t=>{const s=this.props.short?null:e(l["badge_"+t]),i="material-icons "+t+"-color";n.push((0,a.jsxs)("div",{className:"trusted-badge",children:[(0,a.jsx)("i",{className:i,children:r[t]||t})," ",s]},t))}),(0,a.jsx)(a.Fragment,{children:n})):null}}n.A=(0,o.injectIntl)(c)},3207:function(e,n,t){"use strict";t.d(n,{A:function(){return o}});var s=t(1594),i=t.n(s);class o extends i().PureComponent{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}handleChange(){this.props.onChange(this.props.name,!this.props.checked)}render(){let e,n=["material-icons"];Array.isArray(this.props.className)?n.push(...this.props.className):this.props.className&&n.push(this.props.className),this.props.onChange?this.props.checked?(n.push("blue","clickable"),e="check_box"):!1===this.props.checked?(n.push("blue","clickable"),e="check_box_outline_blank"):(n.push("lt-blue"),e="indeterminate_check_box"):e=this.props.checked?"check_box":"check_box_outline_blank";let t={className:n.join(" "),id:this.props.id};return this.props.onChange&&(t.onClick=this.handleChange),i().createElement("i",t,e)}}},4306:function(e,n,t){"use strict";t.d(n,{A:function(){return c}});var s=t(1594),i=t.n(s),o=t(5247),a=t(4848);class r extends i().PureComponent{constructor(e){super(e),this.handleCancel=this.handleCancel.bind(this)}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.topic,this.props.index)}render(){const e=this.props.title||this.props.topic,n=this.props.invalid?"chip invalid":"chip";return(0,a.jsxs)("div",{className:n,children:[this.props.noAvatar?(0,a.jsx)("span",{className:"spacer"}):(0,a.jsx)("div",{className:"avatar-box",children:(0,a.jsx)(o.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})}),(0,a.jsx)("span",{children:e}),this.props.onCancel&&!this.props.required?(0,a.jsx)("a",{href:"#",onClick:this.handleCancel,children:"×"}):(0,a.jsx)("span",{className:"spacer"})]})}}var l=t(7981);class c extends i().Component{constructor(e){super(e),this.state=c.deriveStateFromProps(e),this.state.input="",this.state.focused=!1,this.handleTextInput=this.handleTextInput.bind(this),this.removeChipAt=this.removeChipAt.bind(this),this.handleChipCancel=this.handleChipCancel.bind(this),this.handleFocusGained=this.handleFocusGained.bind(this),this.handleFocusLost=this.handleFocusLost.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}static deriveStateFromProps(e){return{sortedChips:c.sortChips(e.chips,e.staticMembers),chipIndex:c.indexChips(e.chips)}}componentDidUpdate(e,n){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(c.deriveStateFromProps(this.props)),(!n||this.props.chips.length>n.sortedChips.length)&&this.setState({input:""})}static indexChips(e){const n={};let t=0;return e.forEach(e=>{n[e.user]=t,t++}),n}static sortChips(e,n){const t=[],s=[];return e.forEach(e=>{n&&n.includes(e.user)?t.push(e):s.push(e)}),t.concat(s)}handleTextInput(e){this.setState({input:e.target.value}),this.props.filterFunc&&this.props.filterFunc(e.target.value)}removeChipAt(e){const n=this.state.sortedChips[e];this.props.onChipRemoved(n.user,this.state.chipIndex[n.user])}handleChipCancel(e,n){this.removeChipAt(n)}handleFocusGained(){this.setState({focused:!0})}handleFocusLost(){this.setState({focused:!1}),this.props.onFocusLost&&this.props.onFocusLost(this.state.input)}handleKeyDown(e){if("Backspace"===e.key){if(0==this.state.input.length&&this.state.sortedChips.length>0){const e=this.state.sortedChips.length-1;this.state.sortedChips[e].user!==this.props.staticMembers&&this.removeChipAt(e)}}else"Enter"===e.key?this.props.onEnter&&this.props.onEnter(this.state.input):"Escape"===e.key&&this.props.onCancel&&this.props.onCancel()}render(){const e=[];let n=0;const t=this.props.staticMembers||[];this.state.sortedChips.forEach(s=>{e.push((0,a.jsx)(r,{tinode:this.props.tinode,onCancel:this.handleChipCancel,avatar:(0,l.to)(s.public?s.public.photo:null),title:s.public?s.public.fn:void 0,noAvatar:this.props.avatarDisabled,topic:s.user,required:t.includes(s.user),invalid:s.invalid,index:n},s.user)),n++});const s="chip-input"+(this.state.focused?" focused":""),i=!(this.props.tabIndex>0);return(0,a.jsxs)("div",{className:s,children:[e,(0,a.jsx)("input",{type:"text",placeholder:this.props.prompt,onChange:this.handleTextInput,onFocus:this.handleFocusGained,onBlur:this.handleFocusLost,onKeyDown:this.handleKeyDown,value:this.state.input,tabIndex:this.props.tabIndex,autoFocus:i})]})}}},6565:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(4848);const a={muted:"notifications_off",banned:"block",staff:"verified_user"};class r extends i().PureComponent{render(){let e=null;return this.props.badges&&this.props.badges.length>0?(e=[],this.props.badges.forEach(n=>{const t=n.color?" "+n.color:"";n.icon?e.push((0,o.jsx)("i",{className:"material-icons as-badge"+t,children:a[n.icon]||n.icon},n.key||n.icon)):e.push((0,o.jsx)("span",{className:"badge"+t,children:n.name},n.key||n.name))}),(0,o.jsx)(o.Fragment,{children:e})):null}}},3717:function(e,n,t){"use strict";t.d(n,{A:function(){return m}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(1974),l=t(4848);class c extends i().PureComponent{constructor(e){super(e),this.handleClick=this.handleClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onAction(this.props.action)}render(){const{formatMessage:e}=this.props.intl;return(0,l.jsx)("li",{onClick:this.handleClick,className:"action",children:(0,l.jsx)("div",{className:"action-text",children:e(this.props.title,this.props.values)})})}}var d=(0,o.injectIntl)(c),h=t(7981),u=t(7849);t(3272);const g=(0,o.defineMessages)({badge_you:{id:"badge_you",defaultMessage:"you",description:"Badge for indicating the current user"},badge_owner:{id:"badge_owner",defaultMessage:"owner",description:"Badge for indicating the owner"}});class p extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl,n=Array.isArray(this.props.topicSelected),t=[];let s=0;if(this.props.showSelfTopic){const e=n?this.props.topicSelected.some(a.Tinode.isSelfTopicName):a.Tinode.isSelfTopicName(this.props.topicSelected);t.push((0,l.jsx)(r.A,{tinode:this.props.tinode,avatar:!0,showMode:this.props.showMode,selected:e,showCheckmark:n,onSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,index:t.length,item:"slf"},"slf")),s++}if(this.props.contacts&&this.props.contacts.length>0){const i={};this.props.contacts.forEach(o=>{if(o.action)t.push((0,l.jsx)(d,{title:o.title,action:o.action,values:o.values,onAction:this.props.onAction},o.action));else{const c=this.props.showMode?o.user:o.topic||o.user;if(i[c])return;if(i[c]=!0,this.props.filterFunc&&this.props.filter){const e=[c];o.private&&o.private.comment&&e.push((""+o.private.comment).toLowerCase());const n=(0,u.TP)(c,o.public,null);if(n&&e.push((""+n).toLowerCase()),!this.props.filterFunc(this.props.filter,e))return}const d=a.Tinode.isChannelTopicName(c),p=!d&&a.Tinode.isGroupTopicName(c),m=n?this.props.topicSelected.indexOf(c)>-1:this.props.topicSelected===c,f=[];this.props.showMode&&(c==this.props.myUserId&&f.push({name:e(g.badge_you),color:"green"}),o.acs&&o.acs.isOwner()&&f.push({name:e(g.badge_owner),color:"blue"}));const x=Array.isArray(o.private)?o.private.join(","):o.private?o.private.comment:null;let j,b,y,w;if(!this.props.showMode&&o.latestMessage){const e=o.latestMessage();e&&(b=e.head?e.head.forwarded:null,w=e._status||o.msgStatus(e,!0),y=e.from!=this.props.myUserId,e.content&&(j="string"==typeof e.content?e.content.substr(0,80):a.Drafty.preview(e.content,80)))}t.push((0,l.jsx)(r.A,{tinode:this.props.tinode,title:o.public?(0,u.TP)(c,o.public,null):null,avatar:(0,h.to)(o.public?o.public.photo:null),comment:x,preview:j,previewIsResponse:y,forwarded:b,received:w,unread:this.props.showUnread?o.unread:0,now:o.online&&this.props.connected,acs:o.acs,showMode:this.props.showMode,badges:f,showCheckmark:n,selected:m,pinned:o.pinned,showOnline:this.props.showOnline&&!d,isChannel:d,isGroup:p,showContextMenu:this.props.showContextMenu,isVerified:o.trusted&&o.trusted.verified,isStaff:o.trusted&&o.trusted.staff,isDangerous:o.trusted&&o.trusted.danger,deleted:o._deleted,onSelected:this.props.onTopicSelected,item:c,index:t.length},c)),s++}},this)}return(0,l.jsxs)("div",{className:this.props.noScroll?null:"scrollable-panel",children:[0==s?(0,l.jsx)("div",{className:"center-medium-text",style:{whiteSpace:"pre-line"},children:this.props.emptyListMessage}):null,t.length>0?(0,l.jsx)("ul",{className:"contact-box",children:t}):null]})}}var m=(0,o.injectIntl)(p)},1974:function(e,n,t){"use strict";t.d(n,{A:function(){return f}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4532),r=t(6565),l=t(5247),c=t(4848);class d extends i().PureComponent{render(){return this.props.count>0?(0,c.jsx)("span",{className:"unread",children:this.props.count>9?"9+":this.props.count}):null}}var h=t(2067),u=t(7849),g=t(7256);const p=(0,o.defineMessages)({self_topic_name:{id:"self_topic_name",defaultMessage:"Saved messages",description:"Name of self topic for UI"},self_topic_comment:{id:"self_topic_comment",defaultMessage:"Notes, messages, links, files saved for posterity",description:"Comment for self topic for UI"}});class m extends i().Component{constructor(e){super(e),this.handleClick=this.handleClick.bind(this),this.handleContextClick=this.handleContextClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onSelected&&this.props.onSelected(this.props.item,this.props.index)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.props.item,topicTitle:this.props.title,y:e.pageY,x:e.pageX})}render(){let e=this.props.title;const n=a.Tinode.isSelfTopicName(this.props.item);e?e.length>30&&(e=(0,g.W5)(e,30)):e=n?this.props.intl.formatMessage(p.self_topic_name):(0,c.jsx)("i",{children:(0,c.jsx)(o.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed",description:"Title shown when the topic has no name"})});const t=this.props.now?"online":"offline",s=!this.props.avatar||this.props.avatar,m=this.props.badges?this.props.badges.slice():[],f=[];let x;this.props.isVerified&&f.push({icon:"verified",color:"verified-color"}),this.props.isStaff&&f.push({icon:"staff",color:"staff-color"}),this.props.isDangerous&&f.push({icon:"dangerous",color:"danger-color"}),this.props.acs&&(this.props.showMode&&m.push({name:this.props.acs.getMode(),key:"mode"}),this.props.acs.isMuted()&&f.push({icon:"muted"}),this.props.acs.isJoiner()||f.push({icon:"banned"})),"string"==typeof this.props.preview?x=this.props.preview:a.Drafty.isValid(this.props.preview)?x=i().createElement(i().Fragment,null,a.Drafty.format(this.props.preview,h.TU,{formatMessage:this.props.intl.formatMessage,previewIsResponse:this.props.previewIsResponse})):this.props.preview&&(x=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("i",{className:"material-icons gray",children:"warning_amber"})," ",(0,c.jsx)("i",{className:"gray",children:(0,c.jsx)(o.FormattedMessage,{id:"invalid_content",defaultMessage:"invalid content",description:"Shown when the message is unreadable"})})]}));const j=(0,u.LO)(this.props.received),b=j?(0,c.jsx)("i",{className:"material-icons small space-right"+(j.color?" "+j.color:""),children:j.name}):null,y="contact-title"+(this.props.deleted?" deleted":""),w=x||this.props.comment||(n?this.props.intl.formatMessage(p.self_topic_comment):" "),v=this.props.showCheckmark?null:this.props.selected?"selected":this.props.pinned?"tpinned":null;return(0,c.jsxs)("li",{className:v,onClick:this.handleClick,children:[(0,c.jsxs)("div",{className:"avatar-box",children:[(0,c.jsx)(l.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:s,title:this.props.title,topic:this.props.item,deleted:this.props.deleted}),this.props.deleted?(0,c.jsx)("i",{className:"deleted material-icons",children:"cancel"}):!n&&this.props.showOnline?(0,c.jsx)("span",{className:t}):this.props.showCheckmark&&this.props.selected?(0,c.jsx)("i",{className:"checkmark material-icons",children:"check_circle"}):null]}),(0,c.jsxs)("div",{className:"text-box",children:[(0,c.jsxs)("div",{children:[(0,c.jsx)("span",{className:y,children:e}),this.props.isGroup?(0,c.jsx)("i",{className:"material-icons as-badge",children:"group"}):null,this.props.isChannel?(0,c.jsx)("i",{className:"material-icons as-badge",children:"podcasts"}):null,n?null:(0,c.jsx)(r.A,{badges:f}),this.props.deleted?null:(0,c.jsx)(d,{count:this.props.unread})]}),this.props.showMode?(0,c.jsx)("span",{children:(0,c.jsx)(r.A,{badges:m})}):this.props.small?null:(0,c.jsxs)("div",{className:"contact-comment",children:[b,(0,c.jsx)("span",{children:w})]})]}),this.props.showContextMenu?(0,c.jsx)("span",{className:"menuTrigger",children:(0,c.jsx)("a",{href:"#",onClick:this.handleContextClick,children:(0,c.jsx)("i",{className:"material-icons",children:"expand_more"})})}):null]})}}var f=(0,o.injectIntl)(m)},3405:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(5370),a=t(4848);class r extends i().PureComponent{constructor(e){super(e),this.state={show:!1},this.hide=this.hide.bind(this)}componentDidUpdate(e){e.level!==this.props.level&&this.setState({show:!!this.props.level})}hide(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}render(){const e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",n="info-box "+e;return(0,a.jsxs)("div",{className:n,children:[(0,a.jsx)("div",{className:"icon",children:(0,a.jsx)("i",{className:"material-icons",children:e})}),(0,a.jsxs)("span",{children:[this.props.text,this.props.action?(0,a.jsxs)(a.Fragment,{children:[" ",(0,a.jsx)("a",{href:"#",style:{whiteSpace:"nowrap"},onClick:e=>{e.preventDefault(),this.props.action()},children:this.props.actionText})]}):null]}),(0,a.jsx)("div",{className:"cancel",children:(0,a.jsx)(o.A,{onCancel:this.hide})})]})}}},4752:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4848);class r extends i().PureComponent{render(){return(0,a.jsxs)("div",{className:"uploader",children:[(0,a.jsx)("div",{children:(0,a.jsx)("span",{style:{width:100*this.props.progress+"%"}})}),this.props.progress<.999?(0,a.jsxs)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()},children:[(0,a.jsx)("i",{className:"material-icons",children:"close"})," ",(0,a.jsx)(o.FormattedMessage,{id:"action_cancel",defaultMessage:"cancel",description:"Call to action [cancel]"})]}):(0,a.jsx)(o.FormattedMessage,{id:"upload_finishing",defaultMessage:"finishing...",description:"Notification that upload is finishing"})]})}}},6948:function(e,n,t){"use strict";t.d(n,{A:function(){return r}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{constructor(e){super(e),this.inputRef=i().createRef(),this.state={value:this.props.value||"",visible:!1},this.handleVisibility=this.handleVisibility.bind(this),this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this)}componentDidMount(){this.props.autoFocus&&this.inputRef.current.focus()}handeTextChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e)}handleVisibility(e){e.preventDefault(),this.setState({visible:!this.state.visible})}handleKeyDown(e){27==e.keyCode?(this.setState({value:this.props.value||"",visible:!1}),this.props.onFinished&&this.props.onFinished()):13==e.keyCode&&this.handleEditingFinished()}handleEditingFinished(e){if(e){let n=e.currentTarget;setTimeout(e=>{n.contains(document.activeElement)||this.props.onFinished&&this.props.onFinished(this.state.value)},0)}else this.props.onFinished&&this.props.onFinished(this.state.value.trim())}render(){return(0,o.jsxs)("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished,children:[(0,o.jsx)("input",{className:"with-icon-right",type:this.state.visible?"text":"password",value:this.state.value,placeholder:this.props.placeholder,maxLength:32,required:this.props.required?"required":"",autoFocus:this.props.autoFocus?"autoFocus":"",autoComplete:this.props.autoComplete,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown,ref:this.inputRef}),(0,o.jsx)("span",{onClick:this.handleVisibility,children:(0,o.jsx)("i",{className:"material-icons clickable light-gray",children:this.state.visible?"visibility":"visibility_off"})})]})}}class r extends i().Component{constructor(e){super(e),this.selfRef=i().createRef(),this.state={active:e.active,initialValue:e.value||"",value:e.value||"",valid:!0},this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleStartEditing=this.handleStartEditing.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handlePasswordFinished=this.handlePasswordFinished.bind(this)}componentDidUpdate(e,n){const t=this.props.value||"";n.initialValue==t||n.active||this.setState({initialValue:t,value:t})}handeTextChange(e){this.setState({value:e.target.value||""}),this.props.validator&&Promise.resolve(this.props.validator(e.target.value)).then(e=>{this.setState({valid:e})}).catch(e=>{e&&this.setState({valid:!1})})}handleKeyDown(e){27===e.keyCode?this.setState({value:this.props.value,active:!1}):13===e.keyCode&&this.handleEditingFinished(e)}handleStartEditing(){this.props.readOnly||this.setState({active:!0},e=>{this.selfRef.current&&this.selfRef.current.focus()})}handleEditingFinished(e){const n=this.state.value.trim();!this.props.required||e.target.checkValidity()&&n?(this.setState({active:!1}),(n||this.props.value)&&n!==this.props.value&&this.state.valid&&this.props.onFinished(n)):this.setState({value:this.props.value,active:!1})}handlePasswordFinished(e){this.setState({active:!1}),e&&e!==this.props.value&&this.props.onFinished(e)}render(){if(!this.state.active){let e="password"==this.props.type?"••••••••":this.state.value,n="in-place-edit"+(this.props.readOnly?" disabled":"");return e||(e=this.props.placeholder,n+=" placeholder"),this.props.multiline&&1!=this.props.multiline||(n+=" short"),(0,o.jsxs)("span",{className:n,onClick:this.handleStartEditing,children:[this.props.iconLeft&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconLeft}),(0,o.jsx)("span",{children:e}),this.props.iconRight&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconRight})]})}let e;const n={};return"password"==this.props.type?(e=a,n.onFinished=this.handlePasswordFinished):(this.props.multiline>1?(e="textarea",n.rows=this.props.multiline,n.className="in-place-edit"):(e="input",n.type=this.props.type||"text",n.className="in-place-edit"+(this.props.iconLeft?" with-icon-left":this.props.iconRight?" with-icon-right":""),this.props.maxLength&&(n.maxLength=this.props.maxLength)),n.value=this.state.value,n.className+=this.state.valid?"":" invalid",n.ref=this.selfRef,n.onChange=this.handeTextChange,n.onKeyDown=this.handleKeyDown,n.onBlur=this.handleEditingFinished),n.placeholder=this.props.placeholder,n.required=this.props.required?"required":"",n.autoComplete=this.props.autoComplete,n.autoFocus=!0,void 0!==this.props.spellCheck&&(n.spellCheck=this.props.spellCheck?"true":"false"),this.props.iconLeft||this.props.iconRight?(0,o.jsxs)(o.Fragment,{children:[this.props.iconLeft&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconLeft}),i().createElement(e,n,null),this.props.iconRight&&(0,o.jsx)("i",{className:"material-icons light-gray",children:this.props.iconRight})]}):i().createElement(e,n,null)}}},5247:function(e,n,t){"use strict";t.d(n,{A:function(){return d}});var s=t(1594),i=t.n(s),o=t(4532),a=t(7256),r=t(7849),l=t(3272),c=t(4848);class d extends i().PureComponent{render(){let e;if(!0===this.props.avatar)if(o.Tinode.isSelfTopicName(this.props.topic))e=(0,c.jsx)("img",{className:"avatar self",alt:"avatar",src:l.Yd});else{const n=o.Tinode.isGroupTopicName(this.props.topic),t=(0,a.kJ)(this.props.topic,n);if(this.props.topic&&this.props.title&&this.props.title.trim()){const n=this.props.title.trim().charAt(0),s="lettertile "+t+(this.props.deleted?" disabled":"");e=(0,c.jsx)("div",{className:s,children:(0,c.jsx)("div",{children:n})})}else{const s="material-icons "+t+(this.props.deleted?" disabled":"");e=n?(0,c.jsx)("i",{className:s,children:"group"}):(0,c.jsx)("i",{className:s,children:"person"})}}else if(this.props.avatar){const n=this.props.authorizeURL((0,r.wk)(this.props.avatar,"image")),t="avatar"+(this.props.deleted?" deleted":"");e=(0,c.jsx)("img",{className:t,alt:"avatar",src:n,onError:e=>{e.target.onerror=null,e.target.src="img/broken_image.png"}})}else e=null;return e}}},9304:function(e,n,t){"use strict";t.d(n,{A:function(){return a}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{render(){const e="load-spinner-box"+(this.props.large?" large":"")+(this.props.clear?" clear":"")+(this.props.centered?" centered":"");return this.props.show?(0,o.jsx)("div",{className:e,children:(0,o.jsx)("div",{className:"loader-spinner"})}):null}}},5370:function(e,n,t){"use strict";t.d(n,{A:function(){return a}});var s=t(1594),i=t.n(s),o=t(4848);class a extends i().PureComponent{render(){return(0,o.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()},children:(0,o.jsx)("i",{className:"material-icons",children:"close"})})}}},1192:function(e,n,t){"use strict";t.d(n,{A:function(){return d}});var s=t(1594),i=t.n(s),o=t(8181),a=t(4306),r=t(4532),l=(t(3272),t(7849)),c=t(4848);class d extends i().Component{constructor(e){super(e),this.state={tags:this.props.tags||[],alias:r.Tinode.tagByPrefix(this.props.tags,r.Tinode.TAG_ALIAS)||"",tagInput:"",activated:this.props.activated},this.handleTagInput=this.handleTagInput.bind(this),this.handleAddTag=this.handleAddTag.bind(this),this.handleRemoveTag=this.handleRemoveTag.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,n){const t=e.tags||[];return(0,l.af)(t,n.tags)||n.activated?null:{tags:t||[],alias:r.Tinode.tagByPrefix(t,r.Tinode.TAG_ALIAS)||""}}handleTagInput(e){if(this.setState({tagInput:e}),e.length>0){const n=e[e.length-1];'"'==e[0]?e.length>1&&'"'==n&&this.handleAddTag(e.substring(1,e.length-1)):","!=n&&" "!=n&&";"!=n&&'"'!=n||this.handleAddTag(e.substring(0,e.length-1).trim())}}handleAddTag(e){const n=this.props.tinode.getServerParam(r.Tinode.MAX_TAG_COUNT,16);if(e.length>0&&this.state.tags.length<n){const n=this.state.tags.slice(0);return n.push(e),this.setState({tags:n,tagInput:""}),this.props.onTagsChanged&&this.props.onTagsChanged(n),n}return this.state.tags}handleRemoveTag(e,n){const t=this.state.tags.slice(0);t.splice(n,1),this.setState({tags:t}),this.props.onTagsChanged&&this.props.onTagsChanged(t)}handleSubmit(){let e=this.handleAddTag(this.state.tagInput.trim());e=r.Tinode.setUniqueTag(e,this.state.alias),this.props.onSubmit(e),this.setState({activated:!1,tags:this.props.tags||[]})}handleCancel(){this.setState({activated:!1,tagInput:"",tags:this.props.tags||[]}),this.props.onCancel&&this.props.onCancel()}render(){const e=this.props.tinode.getServerParam(r.Tinode.MIN_TAG_LENGTH,2),n=this.props.tinode.getServerParam(r.Tinode.MAX_TAG_LENGTH,96);let t=[];return this.state.activated?this.state.tags.forEach(s=>{s!=this.state.alias&&t.push({user:s,invalid:s.length<e||s.length>n})}):(this.state.tags.forEach(e=>{e!=this.state.alias&&t.push((0,c.jsx)("span",{className:"badge",children:e},t.length))}),0==t.length&&(t=(0,c.jsx)("i",{children:(0,c.jsx)(o.FormattedMessage,{id:"tags_not_found",defaultMessage:"No tags defined. Add some.",description:""})}))),(0,c.jsxs)("div",{className:"panel-form-column",children:[(0,c.jsx)("div",{className:"panel-form-row",children:(0,c.jsx)("label",{className:"small",children:this.props.title})}),this.state.activated?(0,c.jsxs)("div",{children:[(0,c.jsx)(o.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:"Add some tags",description:"Tag editor prompt when no tags are found.",children:e=>(0,c.jsx)(a.A,{tinode:this.props.tinode,chips:t,avatarDisabled:!0,prompt:e,tabIndex:this.props.tabIndex,onEnter:this.handleAddTag,onFocusLost:this.handleAddTag,onCancel:this.handleCancel,onChipRemoved:this.handleRemoveTag,filterFunc:this.handleTagInput})}),this.props.onSubmit||this.props.onCancel?(0,c.jsxs)("div",{id:"tag-manager-buttons",className:"dialog-buttons panel-form-row",children:[(0,c.jsx)("button",{className:"outline",onClick:this.handleCancel,children:(0,c.jsx)(o.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}),(0,c.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,c.jsx)(o.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})})]}):null]}):(0,c.jsxs)("div",{className:"quoted",children:[(0,c.jsxs)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.setState({activated:!0})},children:[(0,c.jsx)("i",{className:"material-icons",children:"edit"})," ",(0,c.jsx)(o.FormattedMessage,{id:"title_manage_tags",defaultMessage:"Manage",description:"Section title for the list of tags"})]}),(0,c.jsx)(c.Fragment,{children:t})]})]})}}},6624:function(e){var n;"undefined"!=typeof self&&self,n=function(){return function(e){var n={};function t(s){if(n[s])return n[s].exports;var i=n[s]={i:s,l:!1,exports:{}};return e[s].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=n,t.d=function(e,n,s){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=3)}([function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(e,n){this.width=n,this.height=e.length/n,this.data=e}return e.createEmpty=function(n,t){return new e(new Uint8ClampedArray(n*t),n)},e.prototype.get=function(e,n){return!(e<0||e>=this.width||n<0||n>=this.height||!this.data[n*this.width+e])},e.prototype.set=function(e,n,t){this.data[n*this.width+e]=t?1:0},e.prototype.setRegion=function(e,n,t,s,i){for(var o=n;o<n+s;o++)for(var a=e;a<e+t;a++)this.set(a,o,!!i)},e}();n.BitMatrix=s},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(2);n.addOrSubtractGF=function(e,n){return e^n};var i=function(){function e(e,n,t){this.primitive=e,this.size=n,this.generatorBase=t,this.expTable=new Array(this.size),this.logTable=new Array(this.size);for(var i=1,o=0;o<this.size;o++)this.expTable[o]=i,(i*=2)>=this.size&&(i=(i^this.primitive)&this.size-1);for(o=0;o<this.size-1;o++)this.logTable[this.expTable[o]]=o;this.zero=new s.default(this,Uint8ClampedArray.from([0])),this.one=new s.default(this,Uint8ClampedArray.from([1]))}return e.prototype.multiply=function(e,n){return 0===e||0===n?0:this.expTable[(this.logTable[e]+this.logTable[n])%(this.size-1)]},e.prototype.inverse=function(e){if(0===e)throw new Error("Can't invert 0");return this.expTable[this.size-this.logTable[e]-1]},e.prototype.buildMonomial=function(e,n){if(e<0)throw new Error("Invalid monomial degree less than 0");if(0===n)return this.zero;var t=new Uint8ClampedArray(e+1);return t[0]=n,new s.default(this,t)},e.prototype.log=function(e){if(0===e)throw new Error("Can't take log(0)");return this.logTable[e]},e.prototype.exp=function(e){return this.expTable[e]},e}();n.default=i},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(1),i=function(){function e(e,n){if(0===n.length)throw new Error("No coefficients.");this.field=e;var t=n.length;if(t>1&&0===n[0]){for(var s=1;s<t&&0===n[s];)s++;if(s===t)this.coefficients=e.zero.coefficients;else{this.coefficients=new Uint8ClampedArray(t-s);for(var i=0;i<this.coefficients.length;i++)this.coefficients[i]=n[s+i]}}else this.coefficients=n}return e.prototype.degree=function(){return this.coefficients.length-1},e.prototype.isZero=function(){return 0===this.coefficients[0]},e.prototype.getCoefficient=function(e){return this.coefficients[this.coefficients.length-1-e]},e.prototype.addOrSubtract=function(n){var t;if(this.isZero())return n;if(n.isZero())return this;var i=this.coefficients,o=n.coefficients;i.length>o.length&&(i=(t=[o,i])[0],o=t[1]);for(var a=new Uint8ClampedArray(o.length),r=o.length-i.length,l=0;l<r;l++)a[l]=o[l];for(l=r;l<o.length;l++)a[l]=s.addOrSubtractGF(i[l-r],o[l]);return new e(this.field,a)},e.prototype.multiply=function(n){if(0===n)return this.field.zero;if(1===n)return this;for(var t=this.coefficients.length,s=new Uint8ClampedArray(t),i=0;i<t;i++)s[i]=this.field.multiply(this.coefficients[i],n);return new e(this.field,s)},e.prototype.multiplyPoly=function(n){if(this.isZero()||n.isZero())return this.field.zero;for(var t=this.coefficients,i=t.length,o=n.coefficients,a=o.length,r=new Uint8ClampedArray(i+a-1),l=0;l<i;l++)for(var c=t[l],d=0;d<a;d++)r[l+d]=s.addOrSubtractGF(r[l+d],this.field.multiply(c,o[d]));return new e(this.field,r)},e.prototype.multiplyByMonomial=function(n,t){if(n<0)throw new Error("Invalid degree less than 0");if(0===t)return this.field.zero;for(var s=this.coefficients.length,i=new Uint8ClampedArray(s+n),o=0;o<s;o++)i[o]=this.field.multiply(this.coefficients[o],t);return new e(this.field,i)},e.prototype.evaluateAt=function(e){var n=0;if(0===e)return this.getCoefficient(0);var t=this.coefficients.length;if(1===e)return this.coefficients.forEach(function(e){n=s.addOrSubtractGF(n,e)}),n;n=this.coefficients[0];for(var i=1;i<t;i++)n=s.addOrSubtractGF(this.field.multiply(e,n),this.coefficients[i]);return n},e}();n.default=i},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(4),i=t(5),o=t(11),a=t(12);function r(e){var n=a.locate(e);if(!n)return null;for(var t=0,s=n;t<s.length;t++){var r=s[t],l=o.extract(e,r),c=i.decode(l.matrix);if(c)return{binaryData:c.bytes,data:c.text,chunks:c.chunks,version:c.version,location:{topRightCorner:l.mappingFunction(r.dimension,0),topLeftCorner:l.mappingFunction(0,0),bottomRightCorner:l.mappingFunction(r.dimension,r.dimension),bottomLeftCorner:l.mappingFunction(0,r.dimension),topRightFinderPattern:r.topRight,topLeftFinderPattern:r.topLeft,bottomLeftFinderPattern:r.bottomLeft,bottomRightAlignmentPattern:r.alignmentPattern}}}return null}var l={inversionAttempts:"attemptBoth"};function c(e,n,t,i){void 0===i&&(i={});var o=l;Object.keys(o||{}).forEach(function(e){o[e]=i[e]||o[e]});var a="attemptBoth"===o.inversionAttempts||"invertFirst"===o.inversionAttempts,c="onlyInvert"===o.inversionAttempts||"invertFirst"===o.inversionAttempts,d=s.binarize(e,n,t,a),h=d.binarized,u=d.inverted,g=r(c?u:h);return g||"attemptBoth"!==o.inversionAttempts&&"invertFirst"!==o.inversionAttempts||(g=r(c?h:u)),g}c.default=c,n.default=c},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0);function i(e,n,t){return e<n?n:e>t?t:e}var o=function(){function e(e,n){this.width=e,this.data=new Uint8ClampedArray(e*n)}return e.prototype.get=function(e,n){return this.data[n*this.width+e]},e.prototype.set=function(e,n,t){this.data[n*this.width+e]=t},e}();n.binarize=function(e,n,t,a){if(e.length!==n*t*4)throw new Error("Malformed data passed to binarizer.");for(var r=new o(n,t),l=0;l<n;l++)for(var c=0;c<t;c++){var d=e[4*(c*n+l)+0],h=e[4*(c*n+l)+1],u=e[4*(c*n+l)+2];r.set(l,c,.2126*d+.7152*h+.0722*u)}for(var g=Math.ceil(n/8),p=Math.ceil(t/8),m=new o(g,p),f=0;f<p;f++)for(var x=0;x<g;x++){var j=0,b=1/0,y=0;for(c=0;c<8;c++)for(l=0;l<8;l++){var w=r.get(8*x+l,8*f+c);j+=w,b=Math.min(b,w),y=Math.max(y,w)}var v=j/Math.pow(8,2);if(y-b<=24&&(v=b/2,f>0&&x>0)){var k=(m.get(x,f-1)+2*m.get(x-1,f)+m.get(x-1,f-1))/4;b<k&&(v=k)}m.set(x,f,v)}var C=s.BitMatrix.createEmpty(n,t),z=null;for(a&&(z=s.BitMatrix.createEmpty(n,t)),f=0;f<p;f++)for(x=0;x<g;x++){for(var _=i(x,2,g-3),S=i(f,2,p-3),N=(j=0,-2);N<=2;N++)for(var T=-2;T<=2;T++)j+=m.get(_+N,S+T);var B=j/25;for(N=0;N<8;N++)for(T=0;T<8;T++){l=8*x+N,c=8*f+T;var P=r.get(l,c);C.set(l,c,P<=B),a&&z.set(l,c,!(P<=B))}}return a?{binarized:C,inverted:z}:{binarized:C}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0),i=t(6),o=t(9),a=t(10);function r(e,n){for(var t=e^n,s=0;t;)s++,t&=t-1;return s}function l(e,n){return n<<1|e}var c=[{bits:21522,formatInfo:{errorCorrectionLevel:1,dataMask:0}},{bits:20773,formatInfo:{errorCorrectionLevel:1,dataMask:1}},{bits:24188,formatInfo:{errorCorrectionLevel:1,dataMask:2}},{bits:23371,formatInfo:{errorCorrectionLevel:1,dataMask:3}},{bits:17913,formatInfo:{errorCorrectionLevel:1,dataMask:4}},{bits:16590,formatInfo:{errorCorrectionLevel:1,dataMask:5}},{bits:20375,formatInfo:{errorCorrectionLevel:1,dataMask:6}},{bits:19104,formatInfo:{errorCorrectionLevel:1,dataMask:7}},{bits:30660,formatInfo:{errorCorrectionLevel:0,dataMask:0}},{bits:29427,formatInfo:{errorCorrectionLevel:0,dataMask:1}},{bits:32170,formatInfo:{errorCorrectionLevel:0,dataMask:2}},{bits:30877,formatInfo:{errorCorrectionLevel:0,dataMask:3}},{bits:26159,formatInfo:{errorCorrectionLevel:0,dataMask:4}},{bits:25368,formatInfo:{errorCorrectionLevel:0,dataMask:5}},{bits:27713,formatInfo:{errorCorrectionLevel:0,dataMask:6}},{bits:26998,formatInfo:{errorCorrectionLevel:0,dataMask:7}},{bits:5769,formatInfo:{errorCorrectionLevel:3,dataMask:0}},{bits:5054,formatInfo:{errorCorrectionLevel:3,dataMask:1}},{bits:7399,formatInfo:{errorCorrectionLevel:3,dataMask:2}},{bits:6608,formatInfo:{errorCorrectionLevel:3,dataMask:3}},{bits:1890,formatInfo:{errorCorrectionLevel:3,dataMask:4}},{bits:597,formatInfo:{errorCorrectionLevel:3,dataMask:5}},{bits:3340,formatInfo:{errorCorrectionLevel:3,dataMask:6}},{bits:2107,formatInfo:{errorCorrectionLevel:3,dataMask:7}},{bits:13663,formatInfo:{errorCorrectionLevel:2,dataMask:0}},{bits:12392,formatInfo:{errorCorrectionLevel:2,dataMask:1}},{bits:16177,formatInfo:{errorCorrectionLevel:2,dataMask:2}},{bits:14854,formatInfo:{errorCorrectionLevel:2,dataMask:3}},{bits:9396,formatInfo:{errorCorrectionLevel:2,dataMask:4}},{bits:8579,formatInfo:{errorCorrectionLevel:2,dataMask:5}},{bits:11994,formatInfo:{errorCorrectionLevel:2,dataMask:6}},{bits:11245,formatInfo:{errorCorrectionLevel:2,dataMask:7}}],d=[function(e){return(e.y+e.x)%2==0},function(e){return e.y%2==0},function(e){return e.x%3==0},function(e){return(e.y+e.x)%3==0},function(e){return(Math.floor(e.y/2)+Math.floor(e.x/3))%2==0},function(e){return e.x*e.y%2+e.x*e.y%3==0},function(e){return(e.y*e.x%2+e.y*e.x%3)%2==0},function(e){return((e.y+e.x)%2+e.y*e.x%3)%2==0}];function h(e){var n=function(e){var n=e.height,t=Math.floor((n-17)/4);if(t<=6)return a.VERSIONS[t-1];for(var s=0,i=5;i>=0;i--)for(var o=n-9;o>=n-11;o--)s=l(e.get(o,i),s);var c=0;for(o=5;o>=0;o--)for(i=n-9;i>=n-11;i--)c=l(e.get(o,i),c);for(var d,h=1/0,u=0,g=a.VERSIONS;u<g.length;u++){var p=g[u];if(p.infoBits===s||p.infoBits===c)return p;var m=r(s,p.infoBits);m<h&&(d=p,h=m),(m=r(c,p.infoBits))<h&&(d=p,h=m)}return h<=3?d:void 0}(e);if(!n)return null;var t=function(e){for(var n=0,t=0;t<=8;t++)6!==t&&(n=l(e.get(t,8),n));for(var s=7;s>=0;s--)6!==s&&(n=l(e.get(8,s),n));var i=e.height,o=0;for(s=i-1;s>=i-7;s--)o=l(e.get(8,s),o);for(t=i-8;t<i;t++)o=l(e.get(t,8),o);for(var a=1/0,d=null,h=0,u=c;h<u.length;h++){var g=u[h],p=g.bits,m=g.formatInfo;if(p===n||p===o)return m;var f=r(n,p);f<a&&(d=m,a=f),n!==o&&(f=r(o,p))<a&&(d=m,a=f)}return a<=3?d:null}(e);if(!t)return null;var h=function(e,n,t){var s=n.errorCorrectionLevels[t],i=[],o=0;if(s.ecBlocks.forEach(function(e){for(var n=0;n<e.numBlocks;n++)i.push({numDataCodewords:e.dataCodewordsPerBlock,codewords:[]}),o+=e.dataCodewordsPerBlock+s.ecCodewordsPerBlock}),e.length<o)return null;e=e.slice(0,o);for(var a=s.ecBlocks[0].dataCodewordsPerBlock,r=0;r<a;r++)for(var l=0,c=i;l<c.length;l++)c[l].codewords.push(e.shift());if(s.ecBlocks.length>1){var d=s.ecBlocks[0].numBlocks,h=s.ecBlocks[1].numBlocks;for(r=0;r<h;r++)i[d+r].codewords.push(e.shift())}for(;e.length>0;)for(var u=0,g=i;u<g.length;u++)g[u].codewords.push(e.shift());return i}(function(e,n,t){for(var i=d[t.dataMask],o=e.height,a=function(e){var n=17+4*e.versionNumber,t=s.BitMatrix.createEmpty(n,n);t.setRegion(0,0,9,9,!0),t.setRegion(n-8,0,8,9,!0),t.setRegion(0,n-8,9,8,!0);for(var i=0,o=e.alignmentPatternCenters;i<o.length;i++)for(var a=o[i],r=0,l=e.alignmentPatternCenters;r<l.length;r++){var c=l[r];6===a&&6===c||6===a&&c===n-7||a===n-7&&6===c||t.setRegion(a-2,c-2,5,5,!0)}return t.setRegion(6,9,1,n-17,!0),t.setRegion(9,6,n-17,1,!0),e.versionNumber>6&&(t.setRegion(n-11,0,3,6,!0),t.setRegion(0,n-11,6,3,!0)),t}(n),r=[],c=0,h=0,u=!0,g=o-1;g>0;g-=2){6===g&&g--;for(var p=0;p<o;p++)for(var m=u?o-1-p:p,f=0;f<2;f++){var x=g-f;if(!a.get(x,m)){h++;var j=e.get(x,m);i({y:m,x:x})&&(j=!j),c=l(j,c),8===h&&(r.push(c),h=0,c=0)}}u=!u}return r}(e,n,t),n,t.errorCorrectionLevel);if(!h)return null;for(var u=h.reduce(function(e,n){return e+n.numDataCodewords},0),g=new Uint8ClampedArray(u),p=0,m=0,f=h;m<f.length;m++){var x=f[m],j=o.decode(x.codewords,x.codewords.length-x.numDataCodewords);if(!j)return null;for(var b=0;b<x.numDataCodewords;b++)g[p++]=j[b]}try{return i.decode(g,n.versionNumber)}catch(e){return null}}n.decode=function(e){if(null==e)return null;var n=h(e);if(n)return n;for(var t=0;t<e.width;t++)for(var s=t+1;s<e.height;s++)e.get(t,s)!==e.get(s,t)&&(e.set(t,s,!e.get(t,s)),e.set(s,t,!e.get(s,t)));return h(e)}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s,i,o=t(7),a=t(8);function r(e,n){for(var t=[],s="",i=[10,12,14][n],o=e.readBits(i);o>=3;){if((c=e.readBits(10))>=1e3)throw new Error("Invalid numeric value above 999");var a=Math.floor(c/100),r=Math.floor(c/10)%10,l=c%10;t.push(48+a,48+r,48+l),s+=a.toString()+r.toString()+l.toString(),o-=3}if(2===o){if((c=e.readBits(7))>=100)throw new Error("Invalid numeric value above 99");a=Math.floor(c/10),r=c%10,t.push(48+a,48+r),s+=a.toString()+r.toString()}else if(1===o){var c;if((c=e.readBits(4))>=10)throw new Error("Invalid numeric value above 9");t.push(48+c),s+=c.toString()}return{bytes:t,text:s}}!function(e){e.Numeric="numeric",e.Alphanumeric="alphanumeric",e.Byte="byte",e.Kanji="kanji",e.ECI="eci"}(s=n.Mode||(n.Mode={})),function(e){e[e.Terminator=0]="Terminator",e[e.Numeric=1]="Numeric",e[e.Alphanumeric=2]="Alphanumeric",e[e.Byte=4]="Byte",e[e.Kanji=8]="Kanji",e[e.ECI=7]="ECI"}(i||(i={}));var l=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function c(e,n){for(var t=[],s="",i=[9,11,13][n],o=e.readBits(i);o>=2;){var a=e.readBits(11),r=Math.floor(a/45),c=a%45;t.push(l[r].charCodeAt(0),l[c].charCodeAt(0)),s+=l[r]+l[c],o-=2}return 1===o&&(r=e.readBits(6),t.push(l[r].charCodeAt(0)),s+=l[r]),{bytes:t,text:s}}function d(e,n){for(var t=[],s="",i=[8,16,16][n],o=e.readBits(i),a=0;a<o;a++){var r=e.readBits(8);t.push(r)}try{s+=decodeURIComponent(t.map(function(e){return"%"+("0"+e.toString(16)).substr(-2)}).join(""))}catch(e){}return{bytes:t,text:s}}function h(e,n){for(var t=[],s="",i=[8,10,12][n],o=e.readBits(i),r=0;r<o;r++){var l=e.readBits(13),c=Math.floor(l/192)<<8|l%192;c+=c<7936?33088:49472,t.push(c>>8,255&c),s+=String.fromCharCode(a.shiftJISTable[c])}return{bytes:t,text:s}}n.decode=function(e,n){for(var t,a,l,u,g=new o.BitStream(e),p=n<=9?0:n<=26?1:2,m={text:"",bytes:[],chunks:[],version:n};g.available()>=4;){var f=g.readBits(4);if(f===i.Terminator)return m;if(f===i.ECI)0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(7)}):0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(14)}):0===g.readBits(1)?m.chunks.push({type:s.ECI,assignmentNumber:g.readBits(21)}):m.chunks.push({type:s.ECI,assignmentNumber:-1});else if(f===i.Numeric){var x=r(g,p);m.text+=x.text,(t=m.bytes).push.apply(t,x.bytes),m.chunks.push({type:s.Numeric,text:x.text})}else if(f===i.Alphanumeric){var j=c(g,p);m.text+=j.text,(a=m.bytes).push.apply(a,j.bytes),m.chunks.push({type:s.Alphanumeric,text:j.text})}else if(f===i.Byte){var b=d(g,p);m.text+=b.text,(l=m.bytes).push.apply(l,b.bytes),m.chunks.push({type:s.Byte,bytes:b.bytes,text:b.text})}else if(f===i.Kanji){var y=h(g,p);m.text+=y.text,(u=m.bytes).push.apply(u,y.bytes),m.chunks.push({type:s.Kanji,bytes:y.bytes,text:y.text})}}if(0===g.available()||0===g.readBits(g.available()))return m}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(e){this.byteOffset=0,this.bitOffset=0,this.bytes=e}return e.prototype.readBits=function(e){if(e<1||e>32||e>this.available())throw new Error("Cannot read "+e.toString()+" bits");var n=0;if(this.bitOffset>0){var t=8-this.bitOffset,s=e<t?e:t,i=255>>8-s<<(o=t-s);n=(this.bytes[this.byteOffset]&i)>>o,e-=s,this.bitOffset+=s,8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(e>0){for(;e>=8;)n=n<<8|255&this.bytes[this.byteOffset],this.byteOffset++,e-=8;var o;e>0&&(i=255>>(o=8-e)<<o,n=n<<e|(this.bytes[this.byteOffset]&i)>>o,this.bitOffset+=e)}return n},e.prototype.available=function(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset},e}();n.BitStream=s},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.shiftJISTable={32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:165,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:8254,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:92,33120:12316,33121:8214,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:8722,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:162,33170:163,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:172,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(1),i=t(2);n.decode=function(e,n){var t=new Uint8ClampedArray(e.length);t.set(e);for(var o=new s.default(285,256,0),a=new i.default(o,t),r=new Uint8ClampedArray(n),l=!1,c=0;c<n;c++){var d=a.evaluateAt(o.exp(c+o.generatorBase));r[r.length-1-c]=d,0!==d&&(l=!0)}if(!l)return t;var h=new i.default(o,r),u=function(e,n,t,s){var i;n.degree()<t.degree()&&(n=(i=[t,n])[0],t=i[1]);for(var o=n,a=t,r=e.zero,l=e.one;a.degree()>=s/2;){var c=o,d=r;if(r=l,(o=a).isZero())return null;a=c;for(var h=e.zero,u=o.getCoefficient(o.degree()),g=e.inverse(u);a.degree()>=o.degree()&&!a.isZero();){var p=a.degree()-o.degree(),m=e.multiply(a.getCoefficient(a.degree()),g);h=h.addOrSubtract(e.buildMonomial(p,m)),a=a.addOrSubtract(o.multiplyByMonomial(p,m))}if(l=h.multiplyPoly(r).addOrSubtract(d),a.degree()>=o.degree())return null}var f=l.getCoefficient(0);if(0===f)return null;var x=e.inverse(f);return[l.multiply(x),a.multiply(x)]}(o,o.buildMonomial(n,1),h,n);if(null===u)return null;var g=function(e,n){var t=n.degree();if(1===t)return[n.getCoefficient(1)];for(var s=new Array(t),i=0,o=1;o<e.size&&i<t;o++)0===n.evaluateAt(o)&&(s[i]=e.inverse(o),i++);return i!==t?null:s}(o,u[0]);if(null==g)return null;for(var p=function(e,n,t){for(var i=t.length,o=new Array(i),a=0;a<i;a++){for(var r=e.inverse(t[a]),l=1,c=0;c<i;c++)a!==c&&(l=e.multiply(l,s.addOrSubtractGF(1,e.multiply(t[c],r))));o[a]=e.multiply(n.evaluateAt(r),e.inverse(l)),0!==e.generatorBase&&(o[a]=e.multiply(o[a],r))}return o}(o,u[1],g),m=0;m<g.length;m++){var f=t.length-1-o.log(g[m]);if(f<0)return null;t[f]=s.addOrSubtractGF(t[f],p[m])}return t}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.VERSIONS=[{infoBits:null,versionNumber:1,alignmentPatternCenters:[],errorCorrectionLevels:[{ecCodewordsPerBlock:7,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:13,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:13}]},{ecCodewordsPerBlock:17,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:2,alignmentPatternCenters:[6,18],errorCorrectionLevels:[{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:34}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:28}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]}]},{infoBits:null,versionNumber:3,alignmentPatternCenters:[6,22],errorCorrectionLevels:[{ecCodewordsPerBlock:15,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:55}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:13}]}]},{infoBits:null,versionNumber:4,alignmentPatternCenters:[6,26],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:80}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:32}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:5,alignmentPatternCenters:[6,30],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:43}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:11},{numBlocks:2,dataCodewordsPerBlock:12}]}]},{infoBits:null,versionNumber:6,alignmentPatternCenters:[6,34],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:27}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:31892,versionNumber:7,alignmentPatternCenters:[6,22,38],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:78}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:31}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:13},{numBlocks:1,dataCodewordsPerBlock:14}]}]},{infoBits:34236,versionNumber:8,alignmentPatternCenters:[6,24,42],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:97}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:38},{numBlocks:2,dataCodewordsPerBlock:39}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:18},{numBlocks:2,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:14},{numBlocks:2,dataCodewordsPerBlock:15}]}]},{infoBits:39577,versionNumber:9,alignmentPatternCenters:[6,26,46],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:12},{numBlocks:4,dataCodewordsPerBlock:13}]}]},{infoBits:42195,versionNumber:10,alignmentPatternCenters:[6,28,50],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68},{numBlocks:2,dataCodewordsPerBlock:69}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:43},{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]}]},{infoBits:48118,versionNumber:11,alignmentPatternCenters:[6,30,54],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:81}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:50},{numBlocks:4,dataCodewordsPerBlock:51}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:22},{numBlocks:4,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:12},{numBlocks:8,dataCodewordsPerBlock:13}]}]},{infoBits:51042,versionNumber:12,alignmentPatternCenters:[6,32,58],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:92},{numBlocks:2,dataCodewordsPerBlock:93}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:20},{numBlocks:6,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:55367,versionNumber:13,alignmentPatternCenters:[6,34,62],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:37},{numBlocks:1,dataCodewordsPerBlock:38}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:20},{numBlocks:4,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:11},{numBlocks:4,dataCodewordsPerBlock:12}]}]},{infoBits:58893,versionNumber:14,alignmentPatternCenters:[6,26,46,66],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:40},{numBlocks:5,dataCodewordsPerBlock:41}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:16},{numBlocks:5,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:5,dataCodewordsPerBlock:13}]}]},{infoBits:63784,versionNumber:15,alignmentPatternCenters:[6,26,48,70],errorCorrectionLevels:[{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:87},{numBlocks:1,dataCodewordsPerBlock:88}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:41},{numBlocks:5,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:7,dataCodewordsPerBlock:13}]}]},{infoBits:68472,versionNumber:16,alignmentPatternCenters:[6,26,50,74],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:98},{numBlocks:1,dataCodewordsPerBlock:99}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:70749,versionNumber:17,alignmentPatternCenters:[6,30,54,78],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:1,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22},{numBlocks:15,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:17,dataCodewordsPerBlock:15}]}]},{infoBits:76311,versionNumber:18,alignmentPatternCenters:[6,30,56,82],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:120},{numBlocks:1,dataCodewordsPerBlock:121}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:43},{numBlocks:4,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:1,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:19,dataCodewordsPerBlock:15}]}]},{infoBits:79154,versionNumber:19,alignmentPatternCenters:[6,30,58,86],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:113},{numBlocks:4,dataCodewordsPerBlock:114}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:44},{numBlocks:11,dataCodewordsPerBlock:45}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:21},{numBlocks:4,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:13},{numBlocks:16,dataCodewordsPerBlock:14}]}]},{infoBits:84390,versionNumber:20,alignmentPatternCenters:[6,34,62,90],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:41},{numBlocks:13,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:5,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:15},{numBlocks:10,dataCodewordsPerBlock:16}]}]},{infoBits:87683,versionNumber:21,alignmentPatternCenters:[6,28,50,72,94],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:116},{numBlocks:4,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:16},{numBlocks:6,dataCodewordsPerBlock:17}]}]},{infoBits:92361,versionNumber:22,alignmentPatternCenters:[6,26,50,74,98],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:111},{numBlocks:7,dataCodewordsPerBlock:112}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:13}]}]},{infoBits:96236,versionNumber:23,alignmentPatternCenters:[6,30,54,74,102],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:121},{numBlocks:5,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:47},{numBlocks:14,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:16,dataCodewordsPerBlock:15},{numBlocks:14,dataCodewordsPerBlock:16}]}]},{infoBits:102084,versionNumber:24,alignmentPatternCenters:[6,28,54,80,106],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:45},{numBlocks:14,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:30,dataCodewordsPerBlock:16},{numBlocks:2,dataCodewordsPerBlock:17}]}]},{infoBits:102881,versionNumber:25,alignmentPatternCenters:[6,32,58,84,110],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:106},{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:47},{numBlocks:13,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:110507,versionNumber:26,alignmentPatternCenters:[6,30,58,86,114],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:114},{numBlocks:2,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:46},{numBlocks:4,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:28,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:33,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]}]},{infoBits:110734,versionNumber:27,alignmentPatternCenters:[6,34,62,90,118],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:23},{numBlocks:26,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:117786,versionNumber:28,alignmentPatternCenters:[6,26,50,74,98,122],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:117},{numBlocks:10,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:45},{numBlocks:23,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:24},{numBlocks:31,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:31,dataCodewordsPerBlock:16}]}]},{infoBits:119615,versionNumber:29,alignmentPatternCenters:[6,30,54,78,102,126],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:116},{numBlocks:7,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:21,dataCodewordsPerBlock:45},{numBlocks:7,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:23},{numBlocks:37,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:26,dataCodewordsPerBlock:16}]}]},{infoBits:126325,versionNumber:30,alignmentPatternCenters:[6,26,52,78,104,130],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:115},{numBlocks:10,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:47},{numBlocks:10,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:25,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:25,dataCodewordsPerBlock:16}]}]},{infoBits:127568,versionNumber:31,alignmentPatternCenters:[6,30,56,82,108,134],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:3,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:46},{numBlocks:29,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:24},{numBlocks:1,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:133589,versionNumber:32,alignmentPatternCenters:[6,34,60,86,112,138],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:24},{numBlocks:35,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:35,dataCodewordsPerBlock:16}]}]},{infoBits:136944,versionNumber:33,alignmentPatternCenters:[6,30,58,86,114,142],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:21,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:24},{numBlocks:19,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:141498,versionNumber:34,alignmentPatternCenters:[6,34,62,90,118,146],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:6,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:44,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:59,dataCodewordsPerBlock:16},{numBlocks:1,dataCodewordsPerBlock:17}]}]},{infoBits:145311,versionNumber:35,alignmentPatternCenters:[6,30,54,78,102,126,150],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:121},{numBlocks:7,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:47},{numBlocks:26,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:39,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:41,dataCodewordsPerBlock:16}]}]},{infoBits:150283,versionNumber:36,alignmentPatternCenters:[6,24,50,76,102,128,154],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:121},{numBlocks:14,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:47},{numBlocks:34,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:46,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:64,dataCodewordsPerBlock:16}]}]},{infoBits:152622,versionNumber:37,alignmentPatternCenters:[6,28,54,80,106,132,158],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:46},{numBlocks:14,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:49,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:24,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:158308,versionNumber:38,alignmentPatternCenters:[6,32,58,84,110,136,162],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:122},{numBlocks:18,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:46},{numBlocks:32,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:48,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:15},{numBlocks:32,dataCodewordsPerBlock:16}]}]},{infoBits:161089,versionNumber:39,alignmentPatternCenters:[6,26,54,82,110,138,166],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:40,dataCodewordsPerBlock:47},{numBlocks:7,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:43,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:15},{numBlocks:67,dataCodewordsPerBlock:16}]}]},{infoBits:167017,versionNumber:40,alignmentPatternCenters:[6,30,58,86,114,142,170],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:118},{numBlocks:6,dataCodewordsPerBlock:119}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:18,dataCodewordsPerBlock:47},{numBlocks:31,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:24},{numBlocks:34,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:15},{numBlocks:61,dataCodewordsPerBlock:16}]}]}]},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=t(0);function i(e,n,t,s){var i=e.x-n.x+t.x-s.x,o=e.y-n.y+t.y-s.y;if(0===i&&0===o)return{a11:n.x-e.x,a12:n.y-e.y,a13:0,a21:t.x-n.x,a22:t.y-n.y,a23:0,a31:e.x,a32:e.y,a33:1};var a=n.x-t.x,r=s.x-t.x,l=n.y-t.y,c=s.y-t.y,d=a*c-r*l,h=(i*c-r*o)/d,u=(a*o-i*l)/d;return{a11:n.x-e.x+h*n.x,a12:n.y-e.y+h*n.y,a13:h,a21:s.x-e.x+u*s.x,a22:s.y-e.y+u*s.y,a23:u,a31:e.x,a32:e.y,a33:1}}n.extract=function(e,n){for(var t,o,a=function(e,n,t,s){var o=i({x:3.5,y:3.5},n,t,s);return{a11:o.a22*o.a33-o.a23*o.a32,a12:o.a13*o.a32-o.a12*o.a33,a13:o.a12*o.a23-o.a13*o.a22,a21:o.a23*o.a31-o.a21*o.a33,a22:o.a11*o.a33-o.a13*o.a31,a23:o.a13*o.a21-o.a11*o.a23,a31:o.a21*o.a32-o.a22*o.a31,a32:o.a12*o.a31-o.a11*o.a32,a33:o.a11*o.a22-o.a12*o.a21}}(0,{x:n.dimension-3.5,y:3.5},{x:n.dimension-6.5,y:n.dimension-6.5},{x:3.5,y:n.dimension-3.5}),r=(o=a,{a11:(t=i(n.topLeft,n.topRight,n.alignmentPattern,n.bottomLeft)).a11*o.a11+t.a21*o.a12+t.a31*o.a13,a12:t.a12*o.a11+t.a22*o.a12+t.a32*o.a13,a13:t.a13*o.a11+t.a23*o.a12+t.a33*o.a13,a21:t.a11*o.a21+t.a21*o.a22+t.a31*o.a23,a22:t.a12*o.a21+t.a22*o.a22+t.a32*o.a23,a23:t.a13*o.a21+t.a23*o.a22+t.a33*o.a23,a31:t.a11*o.a31+t.a21*o.a32+t.a31*o.a33,a32:t.a12*o.a31+t.a22*o.a32+t.a32*o.a33,a33:t.a13*o.a31+t.a23*o.a32+t.a33*o.a33}),l=s.BitMatrix.createEmpty(n.dimension,n.dimension),c=function(e,n){var t=r.a13*e+r.a23*n+r.a33;return{x:(r.a11*e+r.a21*n+r.a31)/t,y:(r.a12*e+r.a22*n+r.a32)/t}},d=0;d<n.dimension;d++)for(var h=0;h<n.dimension;h++){var u=c(h+.5,d+.5);l.set(h,d,e.get(Math.floor(u.x),Math.floor(u.y)))}return{matrix:l,mappingFunction:c}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=function(e,n){return Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2))};function i(e){return e.reduce(function(e,n){return e+n})}function o(e,n,t,i){var o,a,r,l,c=[{x:Math.floor(e.x),y:Math.floor(e.y)}],d=Math.abs(n.y-e.y)>Math.abs(n.x-e.x);d?(o=Math.floor(e.y),a=Math.floor(e.x),r=Math.floor(n.y),l=Math.floor(n.x)):(o=Math.floor(e.x),a=Math.floor(e.y),r=Math.floor(n.x),l=Math.floor(n.y));for(var h=Math.abs(r-o),u=Math.abs(l-a),g=Math.floor(-h/2),p=o<r?1:-1,m=a<l?1:-1,f=!0,x=o,j=a;x!==r+p;x+=p){var b=d?j:x,y=d?x:j;if(t.get(b,y)!==f&&(f=!f,c.push({x:b,y:y}),c.length===i+1))break;if((g+=u)>0){if(j===l)break;j+=m,g-=h}}for(var w=[],v=0;v<i;v++)c[v]&&c[v+1]?w.push(s(c[v],c[v+1])):w.push(0);return w}function a(e,n,t,s){var i,a=n.y-e.y,r=n.x-e.x,l=o(e,n,t,Math.ceil(s/2)),c=o(e,{x:e.x-r,y:e.y-a},t,Math.ceil(s/2)),d=l.shift()+c.shift()-1;return(i=c.concat(d)).concat.apply(i,l)}function r(e,n){var t=i(e)/i(n),s=0;return n.forEach(function(n,i){s+=Math.pow(e[i]-n*t,2)}),{averageSize:t,error:s}}function l(e,n,t){try{var s=a(e,{x:-1,y:e.y},t,n.length),i=a(e,{x:e.x,y:-1},t,n.length),o=a(e,{x:Math.max(0,e.x-e.y)-1,y:Math.max(0,e.y-e.x)-1},t,n.length),l=a(e,{x:Math.min(t.width,e.x+e.y)+1,y:Math.min(t.height,e.y+e.x)+1},t,n.length),c=r(s,n),d=r(i,n),h=r(o,n),u=r(l,n),g=Math.sqrt(c.error*c.error+d.error*d.error+h.error*h.error+u.error*u.error),p=(c.averageSize+d.averageSize+h.averageSize+u.averageSize)/4;return g+(Math.pow(c.averageSize-p,2)+Math.pow(d.averageSize-p,2)+Math.pow(h.averageSize-p,2)+Math.pow(u.averageSize-p,2))/p}catch(e){return 1/0}}function c(e,n){for(var t=Math.round(n.x);e.get(t,Math.round(n.y));)t--;for(var s=Math.round(n.x);e.get(s,Math.round(n.y));)s++;for(var i=(t+s)/2,o=Math.round(n.y);e.get(Math.round(i),o);)o--;for(var a=Math.round(n.y);e.get(Math.round(i),a);)a++;return{x:i,y:(o+a)/2}}function d(e,n,t,o,r){var c,d,h;try{c=function(e,n,t,o){var r=(i(a(e,t,o,5))/7+i(a(e,n,o,5))/7+i(a(t,e,o,5))/7+i(a(n,e,o,5))/7)/4;if(r<1)throw new Error("Invalid module size");var l=Math.round(s(e,n)/r),c=Math.round(s(e,t)/r),d=Math.floor((l+c)/2)+7;switch(d%4){case 0:d++;break;case 2:d--}return{dimension:d,moduleSize:r}}(o,t,r,e),d=c.dimension,h=c.moduleSize}catch(e){return null}var u=t.x-o.x+r.x,g=t.y-o.y+r.y,p=(s(o,r)+s(o,t))/2/h,m=1-3/p,f={x:o.x+m*(u-o.x),y:o.y+m*(g-o.y)},x=n.map(function(n){var t=(n.top.startX+n.top.endX+n.bottom.startX+n.bottom.endX)/4,o=(n.top.y+n.bottom.y+1)/2;if(e.get(Math.floor(t),Math.floor(o)))return i([n.top.endX-n.top.startX,n.bottom.endX-n.bottom.startX,n.bottom.y-n.top.y+1]),{x:t,y:o,score:l({x:Math.floor(t),y:Math.floor(o)},[1,1,1],e)+s({x:t,y:o},f)}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score});return{alignmentPattern:p>=15&&x.length?x[0]:f,dimension:d}}n.locate=function(e){for(var n=[],t=[],o=[],a=[],r=function(s){for(var r=0,l=!1,c=[0,0,0,0,0],d=function(n){var o=e.get(n,s);if(o===l)r++;else{c=[c[1],c[2],c[3],c[4],r],r=1,l=o;var d=i(c)/7,h=Math.abs(c[0]-d)<d&&Math.abs(c[1]-d)<d&&Math.abs(c[2]-3*d)<3*d&&Math.abs(c[3]-d)<d&&Math.abs(c[4]-d)<d&&!o,u=i(c.slice(-3))/3,g=Math.abs(c[2]-u)<u&&Math.abs(c[3]-u)<u&&Math.abs(c[4]-u)<u&&o;if(h){var p=n-c[3]-c[4],m=p-c[2],f={startX:m,endX:p,y:s};(x=t.filter(function(e){return m>=e.bottom.startX&&m<=e.bottom.endX||p>=e.bottom.startX&&m<=e.bottom.endX||m<=e.bottom.startX&&p>=e.bottom.endX&&c[2]/(e.bottom.endX-e.bottom.startX)<1.5&&c[2]/(e.bottom.endX-e.bottom.startX)>.5})).length>0?x[0].bottom=f:t.push({top:f,bottom:f})}if(g){var x,j=n-c[4],b=j-c[3];f={startX:b,y:s,endX:j},(x=a.filter(function(e){return b>=e.bottom.startX&&b<=e.bottom.endX||j>=e.bottom.startX&&b<=e.bottom.endX||b<=e.bottom.startX&&j>=e.bottom.endX&&c[2]/(e.bottom.endX-e.bottom.startX)<1.5&&c[2]/(e.bottom.endX-e.bottom.startX)>.5})).length>0?x[0].bottom=f:a.push({top:f,bottom:f})}}},h=-1;h<=e.width;h++)d(h);n.push.apply(n,t.filter(function(e){return e.bottom.y!==s&&e.bottom.y-e.top.y>=2})),t=t.filter(function(e){return e.bottom.y===s}),o.push.apply(o,a.filter(function(e){return e.bottom.y!==s})),a=a.filter(function(e){return e.bottom.y===s})},h=0;h<=e.height;h++)r(h);n.push.apply(n,t.filter(function(e){return e.bottom.y-e.top.y>=2})),o.push.apply(o,a);var u=n.filter(function(e){return e.bottom.y-e.top.y>=2}).map(function(n){var t=(n.top.startX+n.top.endX+n.bottom.startX+n.bottom.endX)/4,s=(n.top.y+n.bottom.y+1)/2;if(e.get(Math.round(t),Math.round(s))){var o=[n.top.endX-n.top.startX,n.bottom.endX-n.bottom.startX,n.bottom.y-n.top.y+1],a=i(o)/o.length;return{score:l({x:Math.round(t),y:Math.round(s)},[1,1,3,1,1],e),x:t,y:s,size:a}}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score}).map(function(e,n,t){if(n>4)return null;var s=t.filter(function(e,t){return n!==t}).map(function(n){return{x:n.x,y:n.y,score:n.score+Math.pow(n.size-e.size,2)/e.size,size:n.size}}).sort(function(e,n){return e.score-n.score});if(s.length<2)return null;var i=e.score+s[0].score+s[1].score;return{points:[e].concat(s.slice(0,2)),score:i}}).filter(function(e){return!!e}).sort(function(e,n){return e.score-n.score});if(0===u.length)return null;var g=function(e,n,t){var i,o,a,r,l,c,d,h=s(e,n),u=s(n,t),g=s(e,t);return u>=h&&u>=g?(l=(i=[n,e,t])[0],c=i[1],d=i[2]):g>=u&&g>=h?(l=(o=[e,n,t])[0],c=o[1],d=o[2]):(l=(a=[e,t,n])[0],c=a[1],d=a[2]),(d.x-c.x)*(l.y-c.y)-(d.y-c.y)*(l.x-c.x)<0&&(l=(r=[d,l])[0],d=r[1]),{bottomLeft:l,topLeft:c,topRight:d}}(u[0].points[0],u[0].points[1],u[0].points[2]),p=g.topRight,m=g.topLeft,f=g.bottomLeft,x=d(e,o,p,m,f),j=[];x&&j.push({alignmentPattern:{x:x.alignmentPattern.x,y:x.alignmentPattern.y},bottomLeft:{x:f.x,y:f.y},dimension:x.dimension,topLeft:{x:m.x,y:m.y},topRight:{x:p.x,y:p.y}});var b=c(e,p),y=c(e,m),w=c(e,f),v=d(e,o,b,y,w);return v&&j.push({alignmentPattern:{x:v.alignmentPattern.x,y:v.alignmentPattern.y},bottomLeft:{x:w.x,y:w.y},topLeft:{x:y.x,y:y.y},topRight:{x:b.x,y:b.y},dimension:v.dimension}),0===j.length?null:j}}]).default},e.exports=n()},5338:function(e,n,t){"use strict";var s=t(5206);n.H=s.createRoot,s.hydrateRoot},1020:function(e,n,t){"use strict";var s=t(1594),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,r=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,n,t){var s,o={},c=null,d=null;for(s in void 0!==t&&(c=""+t),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(d=n.ref),n)a.call(n,s)&&!l.hasOwnProperty(s)&&(o[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===o[s]&&(o[s]=n[s]);return{$$typeof:i,type:e,key:c,ref:d,props:o,_owner:r.current}}n.Fragment=o,n.jsx=c,n.jsxs=c},4848:function(e,n,t){"use strict";e.exports=t(1020)},9593:function(e){"use strict";e.exports=QRCode},1594:function(e){"use strict";e.exports=React},5206:function(e){"use strict";e.exports=ReactDOM},8181:function(e){"use strict";e.exports=ReactIntl},4532:function(e){"use strict";e.exports=tinode},1781:function(e){"use strict";e.exports=JSON.parse('{"patt":[{"name":"a00.png","size":200},{"name":"a01.jpg","size":384},{"name":"a02.jpg","size":384},{"name":"a03.jpg","size":384},{"name":"a04.png","size":400},{"name":"a05.jpg","size":400},{"name":"a06.jpg","size":256},{"name":"a07.jpg","size":384},{"name":"a08.jpg","size":384},{"name":"a09.jpg","size":400},{"name":"a10.jpg","size":256},{"name":"a11.png","size":200}],"img":[{"name":"w01.jpg","pr":"p01.jpg"},{"name":"w02.jpg","pr":"p02.jpg"},{"name":"w03.jpg","pr":"p03.jpg"},{"name":"w04.jpg","pr":"p04.jpg"},{"name":"w05.jpg","pr":"p05.jpg"},{"name":"w06.jpg","pr":"p06.jpg"},{"name":"w07.jpg","pr":"p07.jpg"},{"name":"w08.jpg","pr":"p08.jpg"},{"name":"w09.jpg","pr":"p09.jpg"},{"name":"w10.jpg","pr":"p10.jpg"},{"name":"w11.jpg","pr":"p11.jpg"},{"name":"w12.jpg","pr":"p12.jpg"},{"name":"w13.jpg","pr":"p13.jpg"},{"name":"w14.jpg","pr":"p14.jpg"},{"name":"w15.jpg","pr":"p15.jpg"},{"name":"w16.jpg","pr":"p16.jpg"},{"name":"w17.jpg","pr":"p17.jpg"},{"name":"w18.jpg","pr":"p18.jpg"},{"name":"w19.jpg","pr":"p19.jpg"},{"name":"w20.jpg","pr":"p20.jpg"},{"name":"w21.jpg","pr":"p21.jpg"},{"name":"w22.jpg","pr":"p22.jpg"},{"name":"w23.jpg","pr":"p23.jpg"},{"name":"w24.jpg","pr":"p24.jpg"}]}')}},o={};function a(e){var n=o[e];if(void 0!==n)return n.exports;var t=o[e]={exports:{}};return i[e].call(t.exports,t,t.exports,a),t.exports}a.m=i,a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,{a:n}),n},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},a.t=function(t,s){if(1&s&&(t=this(t)),8&s)return t;if("object"==typeof t&&t){if(4&s&&t.__esModule)return t;if(16&s&&"function"==typeof t.then)return t}var i=Object.create(null);a.r(i);var o={};e=e||[null,n({}),n([]),n(n)];for(var r=2&s&&t;("object"==typeof r||"function"==typeof r)&&!~e.indexOf(r);r=n(r))Object.getOwnPropertyNames(r).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},a.d(i,o),i},a.d=function(e,n){if(Array.isArray(n))for(var t=0;t<n.length;){var s=n[t++],i=n[t++];a.o(e,s)?0===i&&t++:0===i?Object.defineProperty(e,s,{enumerable:!0,value:n[t++]}):Object.defineProperty(e,s,{enumerable:!0,get:i})}else for(var s in n)a.o(n,s)&&!a.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:n[s]})},a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce(function(n,t){return a.f[t](e,n),n},[]))},a.u=function(e){return e+".prod.js"},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t={},s="tinode-webapp:",a.l=function(e,n,i,o){if(t[e])t[e].push(n);else{var r,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var h=c[d];if(h.getAttribute("src")==e||h.getAttribute("data-webpack")==s+i){r=h;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",a.nc&&r.setAttribute("nonce",a.nc),r.setAttribute("data-webpack",s+i),r.src=e),t[e]=[n];var u=function(n,s){r.onerror=r.onload=null,clearTimeout(g);var i=t[e];if(delete t[e],r.parentNode&&r.parentNode.removeChild(r),i&&i.forEach(function(e){return e(s)}),n)return n(s)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),l&&document.head.appendChild(r)}},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.dn=function(e){(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},a.p="/umd/",function(){var e={57:0};a.f.j=function(n,t){var s=a.o(e,n)?e[n]:void 0;if(0!==s)if(s)t.push(s[2]);else{var i=new Promise(function(t,i){s=e[n]=[t,i]});t.push(s[2]=i);var o=a.p+a.u(n),r=new Error;a.l(o,function(t){if(a.o(e,n)&&(0!==(s=e[n])&&(e[n]=void 0),s)){var i=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;r.message="Loading chunk "+n+" failed.\n("+i+": "+o+")",r.name="ChunkLoadError",r.type=i,r.request=o,s[1](r)}},"chunk-"+n,n)}};var n=function(n,t){var s,i,o=t[0],r=t[1],l=t[2],c=0;if(o.some(function(n){return 0!==e[n]})){for(s in r)a.o(r,s)&&(a.m[s]=r[s]);l&&l(a)}for(n&&n(t);c<o.length;c++)i=o[c],a.o(e,i)&&e[i]&&e[i][0](),e[i]=0},t=self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}(),function(){"use strict";var e=a(1594),n=a.n(e),t=a(5338),s=a(8181);const i=function(e){const n=[];let t=0;for(let s=0;s<e.length;s++){let i=e.charCodeAt(s);i<128?n[t++]=i:i<2048?(n[t++]=i>>6|192,n[t++]=63&i|128):55296==(64512&i)&&s+1<e.length&&56320==(64512&e.charCodeAt(s+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++s)),n[t++]=i>>18|240,n[t++]=i>>12&63|128,n[t++]=i>>6&63|128,n[t++]=63&i|128):(n[t++]=i>>12|224,n[t++]=i>>6&63|128,n[t++]=63&i|128)}return n},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,n){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const t=n?this.byteToCharMapWebSafe_:this.byteToCharMap_,s=[];for(let n=0;n<e.length;n+=3){const i=e[n],o=n+1<e.length,a=o?e[n+1]:0,r=n+2<e.length,l=r?e[n+2]:0,c=i>>2,d=(3&i)<<4|a>>4;let h=(15&a)<<2|l>>6,u=63&l;r||(u=64,o||(h=64)),s.push(t[c],t[d],t[h],t[u])}return s.join("")},encodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(e):this.encodeByteArray(i(e),n)},decodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?atob(e):function(e){const n=[];let t=0,s=0;for(;t<e.length;){const i=e[t++];if(i<128)n[s++]=String.fromCharCode(i);else if(i>191&&i<224){const o=e[t++];n[s++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){const o=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536;n[s++]=String.fromCharCode(55296+(o>>10)),n[s++]=String.fromCharCode(56320+(1023&o))}else{const o=e[t++],a=e[t++];n[s++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}}return n.join("")}(this.decodeStringToByteArray(e,n))},decodeStringToByteArray(e,n){this.init_();const t=n?this.charToByteMapWebSafe_:this.charToByteMap_,s=[];for(let n=0;n<e.length;){const i=t[e.charAt(n++)],o=n<e.length?t[e.charAt(n)]:0;++n;const a=n<e.length?t[e.charAt(n)]:64;++n;const l=n<e.length?t[e.charAt(n)]:64;if(++n,null==i||null==o||null==a||null==l)throw new r;const c=i<<2|o>>4;if(s.push(c),64!==a){const e=o<<4&240|a>>2;if(s.push(e),64!==l){const e=a<<6&192|l;s.push(e)}}}return s},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class r extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(e){return function(e){const n=i(e);return o.encodeByteArray(n,!0)}(e).replace(/\./g,"")},c=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==a.g)return a.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const n=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return n&&JSON.parse(n)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},d=()=>c()?.config;class h{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,t)=>{n?this.reject(n):this.resolve(t),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(n):e(n,t))}}}function u(){try{return"object"==typeof indexedDB}catch(e){return!1}}function g(){return new Promise((e,n)=>{try{let t=!0;const s="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(s);i.onsuccess=()=>{i.result.close(),t||self.indexedDB.deleteDatabase(s),e(!0)},i.onupgradeneeded=()=>{t=!1},i.onerror=()=>{n(i.error?.message||"")}}catch(e){n(e)}})}class p extends Error{constructor(e,n,t){super(n),this.code=e,this.customData=t,this.name="FirebaseError",Object.setPrototypeOf(this,p.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,n,t){this.service=e,this.serviceName=n,this.errors=t}create(e,...n){const t=n[0]||{},s=`${this.service}/${e}`,i=this.errors[e],o=i?function(e,n){return e.replace(f,(e,t)=>{const s=n[t];return null!=s?String(s):`<${t}?>`})}(i,t):"Error",a=`${this.serviceName}: ${o} (${s}).`;return new p(s,a,t)}}const f=/\{\$([^}]+)}/g;function x(e,n){if(e===n)return!0;const t=Object.keys(e),s=Object.keys(n);for(const i of t){if(!s.includes(i))return!1;const t=e[i],o=n[i];if(j(t)&&j(o)){if(!x(t,o))return!1}else if(t!==o)return!1}for(const e of s)if(!t.includes(e))return!1;return!0}function j(e){return null!==e&&"object"==typeof e}function b(e){return e&&e._delegate?e._delegate:e}class y{constructor(e,n,t){this.name=e,this.instanceFactory=n,this.type=t,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const w="[DEFAULT]";class v{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const e=new h;if(this.instancesDeferred.set(n,e),this.isInitialized(n)||this.shouldAutoInitialize())try{const t=this.getOrInitializeService({instanceIdentifier:n});t&&e.resolve(t)}catch(e){}}return this.instancesDeferred.get(n).promise}getImmediate(e){const n=this.normalizeInstanceIdentifier(e?.identifier),t=e?.optional??!1;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(t)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(t)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:w})}catch(e){}for(const[e,n]of this.instancesDeferred.entries()){const t=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:t});n.resolve(e)}catch(e){}}}}clearInstance(e=w){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=w){return this.instances.has(e)}getOptions(e=w){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,t=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(t))throw Error(`${this.name}(${t}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const s=this.getOrInitializeService({instanceIdentifier:t,options:n});for(const[e,n]of this.instancesDeferred.entries())t===this.normalizeInstanceIdentifier(e)&&n.resolve(s);return s}onInit(e,n){const t=this.normalizeInstanceIdentifier(n),s=this.onInitCallbacks.get(t)??new Set;s.add(e),this.onInitCallbacks.set(t,s);const i=this.instances.get(t);return i&&e(i,t),()=>{s.delete(e)}}invokeOnInitCallbacks(e,n){const t=this.onInitCallbacks.get(n);if(t)for(const s of t)try{s(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let t=this.instances.get(e);if(!t&&this.component&&(t=this.component.instanceFactory(this.container,{instanceIdentifier:(s=e,s===w?void 0:s),options:n}),this.instances.set(e,t),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(t,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,t)}catch{}var s;return t||null}normalizeInstanceIdentifier(e=w){return this.component?this.component.multipleInstances?e:w:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class k{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new v(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}const C=[];var z;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(z||(z={}));const _={debug:z.DEBUG,verbose:z.VERBOSE,info:z.INFO,warn:z.WARN,error:z.ERROR,silent:z.SILENT},S=z.INFO,N={[z.DEBUG]:"log",[z.VERBOSE]:"log",[z.INFO]:"info",[z.WARN]:"warn",[z.ERROR]:"error"},T=(e,n,...t)=>{if(n<e.logLevel)return;const s=(new Date).toISOString(),i=N[n];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${n})`);console[i](`[${s}] ${e.name}:`,...t)};let B,P;const q=new WeakMap,M=new WeakMap,A=new WeakMap,E=new WeakMap,I=new WeakMap;let D={get(e,n,t){if(e instanceof IDBTransaction){if("done"===n)return M.get(e);if("objectStoreNames"===n)return e.objectStoreNames||A.get(e);if("store"===n)return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return R(e[n])},set(e,n,t){return e[n]=t,!0},has(e,n){return e instanceof IDBTransaction&&("done"===n||"store"===n)||n in e}};function U(e){return"function"==typeof e?(n=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(P||(P=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(n)?function(...e){return n.apply(L(this),e),R(q.get(this))}:function(...e){return R(n.apply(L(this),e))}:function(e,...t){const s=n.call(L(this),e,...t);return A.set(s,e.sort?e.sort():[e]),R(s)}:(e instanceof IDBTransaction&&function(e){if(M.has(e))return;const n=new Promise((n,t)=>{const s=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",o),e.removeEventListener("abort",o)},i=()=>{n(),s()},o=()=>{t(e.error||new DOMException("AbortError","AbortError")),s()};e.addEventListener("complete",i),e.addEventListener("error",o),e.addEventListener("abort",o)});M.set(e,n)}(e),t=e,(B||(B=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,D):e);var n,t}function R(e){if(e instanceof IDBRequest)return function(e){const n=new Promise((n,t)=>{const s=()=>{e.removeEventListener("success",i),e.removeEventListener("error",o)},i=()=>{n(R(e.result)),s()},o=()=>{t(e.error),s()};e.addEventListener("success",i),e.addEventListener("error",o)});return n.then(n=>{n instanceof IDBCursor&&q.set(n,e)}).catch(()=>{}),I.set(n,e),n}(e);if(E.has(e))return E.get(e);const n=U(e);return n!==e&&(E.set(e,n),I.set(n,e)),n}const L=e=>I.get(e);function O(e,n,{blocked:t,upgrade:s,blocking:i,terminated:o}={}){const a=indexedDB.open(e,n),r=R(a);return s&&a.addEventListener("upgradeneeded",e=>{s(R(a.result),e.oldVersion,e.newVersion,R(a.transaction),e)}),t&&a.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),r.then(e=>{o&&e.addEventListener("close",()=>o()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),r}function F(e,{blocked:n}={}){const t=indexedDB.deleteDatabase(e);return n&&t.addEventListener("blocked",e=>n(e.oldVersion,e)),R(t).then(()=>{})}const $=["get","getKey","getAll","getAllKeys","count"],V=["put","add","delete","clear"],H=new Map;function W(e,n){if(!(e instanceof IDBDatabase)||n in e||"string"!=typeof n)return;if(H.get(n))return H.get(n);const t=n.replace(/FromIndex$/,""),s=n!==t,i=V.includes(t);if(!(t in(s?IDBIndex:IDBObjectStore).prototype)||!i&&!$.includes(t))return;const o=async function(e,...n){const o=this.transaction(e,i?"readwrite":"readonly");let a=o.store;return s&&(a=a.index(n.shift())),(await Promise.all([a[t](...n),i&&o.done]))[0]};return H.set(n,o),o}var K;K=D,D={...K,get:(e,n,t)=>W(e,n)||K.get(e,n,t),has:(e,n)=>!!W(e,n)||K.has(e,n)};class X{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const n=e.getComponent();return"VERSION"===n?.type}(e)){const n=e.getImmediate();return`${n.library}/${n.version}`}return null}).filter(e=>e).join(" ")}}const G="@firebase/app",J="0.15.0",Y=new class{constructor(e){this.name=e,this._logLevel=S,this._logHandler=T,this._userLogHandler=null,C.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in z))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?_[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,z.DEBUG,...e),this._logHandler(this,z.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,z.VERBOSE,...e),this._logHandler(this,z.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,z.INFO,...e),this._logHandler(this,z.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,z.WARN,...e),this._logHandler(this,z.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,z.ERROR,...e),this._logHandler(this,z.ERROR,...e)}}("@firebase/app"),Z="@firebase/app-compat",Q="@firebase/analytics-compat",ee="@firebase/analytics",ne="@firebase/app-check-compat",te="@firebase/app-check",se="@firebase/auth",ie="@firebase/auth-compat",oe="@firebase/database",ae="@firebase/data-connect",re="@firebase/database-compat",le="@firebase/functions",ce="@firebase/functions-compat",de="@firebase/installations",he="@firebase/installations-compat",ue="@firebase/messaging",ge="@firebase/messaging-compat",pe="@firebase/performance",me="@firebase/performance-compat",fe="@firebase/remote-config",xe="@firebase/remote-config-compat",je="@firebase/storage",be="@firebase/storage-compat",ye="@firebase/firestore",we="@firebase/ai",ve="@firebase/firestore-compat",ke="firebase",Ce="[DEFAULT]",ze={[G]:"fire-core",[Z]:"fire-core-compat",[ee]:"fire-analytics",[Q]:"fire-analytics-compat",[te]:"fire-app-check",[ne]:"fire-app-check-compat",[se]:"fire-auth",[ie]:"fire-auth-compat",[oe]:"fire-rtdb",[ae]:"fire-data-connect",[re]:"fire-rtdb-compat",[le]:"fire-fn",[ce]:"fire-fn-compat",[de]:"fire-iid",[he]:"fire-iid-compat",[ue]:"fire-fcm",[ge]:"fire-fcm-compat",[pe]:"fire-perf",[me]:"fire-perf-compat",[fe]:"fire-rc",[xe]:"fire-rc-compat",[je]:"fire-gcs",[be]:"fire-gcs-compat",[ye]:"fire-fst",[ve]:"fire-fst-compat",[we]:"fire-vertex","fire-js":"fire-js",[ke]:"fire-js-all"},_e=new Map,Se=new Map,Ne=new Map;function Te(e,n){try{e.container.addComponent(n)}catch(t){Y.debug(`Component ${n.name} failed to register with FirebaseApp ${e.name}`,t)}}function Be(e){const n=e.name;if(Ne.has(n))return Y.debug(`There were multiple attempts to register component ${n}.`),!1;Ne.set(n,e);for(const n of _e.values())Te(n,e);for(const n of Se.values())Te(n,e);return!0}function Pe(e,n){const t=e.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),e.container.getProvider(n)}const qe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Me{constructor(e,n,t){this._isDeleted=!1,this._options={...e},this._config={...n},this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=t,this.container.addComponent(new y("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw qe.create("app-deleted",{appName:this._name})}}function Ae(e,n={}){let t=e;"object"!=typeof n&&(n={name:n});const s={name:Ce,automaticDataCollectionEnabled:!0,...n},i=s.name;if("string"!=typeof i||!i)throw qe.create("bad-app-name",{appName:String(i)});if(t||(t=d()),!t)throw qe.create("no-options");const o=_e.get(i);if(o){if(x(t,o.options)&&x(s,o.config))return o;throw qe.create("duplicate-app",{appName:i})}const a=new k(i);for(const e of Ne.values())a.addComponent(e);const r=new Me(t,s,a);return _e.set(i,r),r}function Ee(e,n,t){let s=ze[e]??e;t&&(s+=`-${t}`);const i=s.match(/\s|\//),o=n.match(/\s|\//);if(i||o){const e=[`Unable to register library "${s}" with version "${n}":`];return i&&e.push(`library name "${s}" contains illegal characters (whitespace or "/")`),i&&o&&e.push("and"),o&&e.push(`version name "${n}" contains illegal characters (whitespace or "/")`),void Y.warn(e.join(" "))}Be(new y(`${s}-version`,()=>({library:s,version:n}),"VERSION"))}const Ie="firebase-heartbeat-store";let De=null;function Ue(){return De||(De=O("firebase-heartbeat-database",1,{upgrade:(e,n)=>{if(0===n)try{e.createObjectStore(Ie)}catch(e){console.warn(e)}}}).catch(e=>{throw qe.create("idb-open",{originalErrorMessage:e.message})})),De}async function Re(e,n){try{const t=(await Ue()).transaction(Ie,"readwrite"),s=t.objectStore(Ie);await s.put(n,Le(e)),await t.done}catch(e){if(e instanceof p)Y.warn(e.message);else{const n=qe.create("idb-set",{originalErrorMessage:e?.message});Y.warn(n.message)}}}function Le(e){return`${e.name}!${e.options.appId}`}class Oe{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new $e(n),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{const e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Fe();if(null==this._heartbeatsCache?.heartbeats&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats))return;if(this._heartbeatsCache.lastSentHeartbeatDate===n||this._heartbeatsCache.heartbeats.some(e=>e.date===n))return;if(this._heartbeatsCache.heartbeats.push({date:n,agent:e}),this._heartbeatsCache.heartbeats.length>30){const e=function(e){if(0===e.length)return-1;let n=0,t=e[0].date;for(let s=1;s<e.length;s++)e[s].date<t&&(t=e[s].date,n=s);return n}(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(e,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){Y.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)return"";const e=Fe(),{heartbeatsToSend:n,unsentEntries:t}=function(e,n=1024){const t=[];let s=e.slice();for(const i of e){const e=t.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),Ve(t)>n){e.dates.pop();break}}else if(t.push({agent:i.agent,dates:[i.date]}),Ve(t)>n){t.pop();break}s=s.slice(1)}return{heartbeatsToSend:t,unsentEntries:s}}(this._heartbeatsCache.heartbeats),s=l(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=e,t.length>0?(this._heartbeatsCache.heartbeats=t,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),s}catch(e){return Y.warn(e),""}}}function Fe(){return(new Date).toISOString().substring(0,10)}class $e{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!u()&&g().then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const n=(await Ue()).transaction(Ie),t=await n.objectStore(Ie).get(Le(e));return await n.done,t}catch(e){if(e instanceof p)Y.warn(e.message);else{const n=qe.create("idb-get",{originalErrorMessage:e?.message});Y.warn(n.message)}}}(this.app);return e?.heartbeats?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){const n=await this.read();return Re(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){const n=await this.read();return Re(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Ve(e){return l(JSON.stringify({version:2,heartbeats:e})).length}Be(new y("platform-logger",e=>new X(e),"PRIVATE")),Be(new y("heartbeat",e=>new Oe(e),"PRIVATE")),Ee(G,J,""),Ee(G,J,"esm2020"),Ee("fire-js",""),Ee("firebase","12.15.0","app");const He="@firebase/installations",We="0.6.22",Ke=`w:${We}`,Xe="FIS_v2",Ge=new m("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function Je(e){return e instanceof p&&e.code.includes("request-failed")}function Ye({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function Ze(e){return{token:e.token,requestStatus:2,expiresIn:(n=e.expiresIn,Number(n.replace("s","000"))),creationTime:Date.now()};var n}async function Qe(e,n){const t=(await n.json()).error;return Ge.create("request-failed",{requestName:e,serverCode:t.code,serverMessage:t.message,serverStatus:t.status})}function en({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function nn(e){const n=await e();return n.status>=500&&n.status<600?e():n}function tn(e){return new Promise(n=>{setTimeout(n,e)})}const sn=/^[cdef][\w-]{21}$/;function on(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const n=function(e){var n;return(n=e,btoa(String.fromCharCode(...n)).replace(/\+/g,"-").replace(/\//g,"_")).substr(0,22)}(e);return sn.test(n)?n:""}catch{return""}}function an(e){return`${e.appName}!${e.appId}`}const rn=new Map;function ln(e,n){const t=an(e);cn(t,n),function(e,n){const t=hn();t&&t.postMessage({key:e,fid:n}),un()}(t,n)}function cn(e,n){const t=rn.get(e);if(t)for(const e of t)e(n)}let dn=null;function hn(){return!dn&&"BroadcastChannel"in self&&(dn=new BroadcastChannel("[Firebase] FID Change"),dn.onmessage=e=>{cn(e.data.key,e.data.fid)}),dn}function un(){0===rn.size&&dn&&(dn.close(),dn=null)}const gn="firebase-installations-store";let pn=null;function mn(){return pn||(pn=O("firebase-installations-database",1,{upgrade:(e,n)=>{0===n&&e.createObjectStore(gn)}})),pn}async function fn(e,n){const t=an(e),s=(await mn()).transaction(gn,"readwrite"),i=s.objectStore(gn),o=await i.get(t);return await i.put(n,t),await s.done,o&&o.fid===n.fid||ln(e,n.fid),n}async function xn(e){const n=an(e),t=(await mn()).transaction(gn,"readwrite");await t.objectStore(gn).delete(n),await t.done}async function jn(e,n){const t=an(e),s=(await mn()).transaction(gn,"readwrite"),i=s.objectStore(gn),o=await i.get(t),a=n(o);return void 0===a?await i.delete(t):await i.put(a,t),await s.done,!a||o&&o.fid===a.fid||ln(e,a.fid),a}async function bn(e){let n;const t=await jn(e.appConfig,t=>{const s=function(e){return vn(e||{fid:on(),registrationStatus:0})}(t),i=function(e,n){if(0===n.registrationStatus){if(!navigator.onLine)return{installationEntry:n,registrationPromise:Promise.reject(Ge.create("app-offline"))};const t={fid:n.fid,registrationStatus:1,registrationTime:Date.now()},s=async function(e,n){try{const t=await async function({appConfig:e,heartbeatServiceProvider:n},{fid:t}){const s=Ye(e),i=en(e),o=n.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const a={fid:t,authVersion:Xe,appId:e.appId,sdkVersion:Ke},r={method:"POST",headers:i,body:JSON.stringify(a)},l=await nn(()=>fetch(s,r));if(l.ok){const e=await l.json();return{fid:e.fid||t,registrationStatus:2,refreshToken:e.refreshToken,authToken:Ze(e.authToken)}}throw await Qe("Create Installation",l)}(e,n);return fn(e.appConfig,t)}catch(t){throw Je(t)&&409===t.customData.serverCode?await xn(e.appConfig):await fn(e.appConfig,{fid:n.fid,registrationStatus:0}),t}}(e,t);return{installationEntry:t,registrationPromise:s}}return 1===n.registrationStatus?{installationEntry:n,registrationPromise:yn(e)}:{installationEntry:n}}(e,s);return n=i.registrationPromise,i.installationEntry});return""===t.fid?{installationEntry:await n}:{installationEntry:t,registrationPromise:n}}async function yn(e){let n=await wn(e.appConfig);for(;1===n.registrationStatus;)await tn(100),n=await wn(e.appConfig);if(0===n.registrationStatus){const{installationEntry:n,registrationPromise:t}=await bn(e);return t||n}return n}function wn(e){return jn(e,e=>{if(!e)throw Ge.create("installation-not-found");return vn(e)})}function vn(e){return 1===(n=e).registrationStatus&&n.registrationTime+1e4<Date.now()?{fid:e.fid,registrationStatus:0}:e;var n}async function kn({appConfig:e,heartbeatServiceProvider:n},t){const s=function(e,{fid:n}){return`${Ye(e)}/${n}/authTokens:generate`}(e,t),i=function(e,{refreshToken:n}){const t=en(e);return t.append("Authorization",function(e){return`${Xe} ${e}`}(n)),t}(e,t),o=n.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const a={installation:{sdkVersion:Ke,appId:e.appId}},r={method:"POST",headers:i,body:JSON.stringify(a)},l=await nn(()=>fetch(s,r));if(l.ok)return Ze(await l.json());throw await Qe("Generate Auth Token",l)}async function Cn(e,n=!1){let t;const s=await jn(e.appConfig,s=>{if(!_n(s))throw Ge.create("not-registered");const i=s.authToken;if(!n&&(2===(o=i).requestStatus&&!function(e){const n=Date.now();return n<e.creationTime||e.creationTime+e.expiresIn<n+36e5}(o)))return s;var o;if(1===i.requestStatus)return t=async function(e,n){let t=await zn(e.appConfig);for(;1===t.authToken.requestStatus;)await tn(100),t=await zn(e.appConfig);const s=t.authToken;return 0===s.requestStatus?Cn(e,n):s}(e,n),s;{if(!navigator.onLine)throw Ge.create("app-offline");const n=function(e){return{...e,authToken:{requestStatus:1,requestTime:Date.now()}}}(s);return t=async function(e,n){try{const t=await kn(e,n),s={...n,authToken:t};return await fn(e.appConfig,s),t}catch(t){if(!Je(t)||401!==t.customData.serverCode&&404!==t.customData.serverCode){const t={...n,authToken:{requestStatus:0}};await fn(e.appConfig,t)}else await xn(e.appConfig);throw t}}(e,n),n}});return t?await t:s.authToken}function zn(e){return jn(e,e=>{if(!_n(e))throw Ge.create("not-registered");return 1===(n=e.authToken).requestStatus&&n.requestTime+1e4<Date.now()?{...e,authToken:{requestStatus:0}}:e;var n})}function _n(e){return void 0!==e&&2===e.registrationStatus}function Sn(e){return Ge.create("missing-app-config-values",{valueName:e})}const Nn="installations";Be(new y(Nn,e=>{const n=e.getProvider("app").getImmediate(),t=function(e){if(!e||!e.options)throw Sn("App Configuration");if(!e.name)throw Sn("App Name");const n=["projectId","apiKey","appId"];for(const t of n)if(!e.options[t])throw Sn(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(n);return{app:n,appConfig:t,heartbeatServiceProvider:Pe(n,"heartbeat"),_delete:()=>Promise.resolve()}},"PUBLIC")),Be(new y("installations-internal",e=>{const n=Pe(e.getProvider("app").getImmediate(),Nn).getImmediate();return{getId:()=>async function(e){const n=e,{installationEntry:t,registrationPromise:s}=await bn(n);return s?s.catch(console.error):Cn(n).catch(console.error),t.fid}(n),getToken:e=>async function(e,n=!1){const t=e;return await async function(e){const{registrationPromise:n}=await bn(e);n&&await n}(t),(await Cn(t,n)).token}(n,e)}},"PRIVATE")),Ee(He,We),Ee(He,We,"esm2020");const Tn="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Bn="google.c.a.c_id";var Pn,qn;function Mn(e){const n=new Uint8Array(e);return btoa(String.fromCharCode(...n)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function An(e){const n=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),t=atob(n),s=new Uint8Array(t.length);for(let e=0;e<t.length;++e)s[e]=t.charCodeAt(e);return s}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(Pn||(Pn={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked",e.FID_REGISTERED="fid-registered"}(qn||(qn={}));const En="fcm_token_details_db",In="fcm_token_object_Store",Dn=new m("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","fid-registration-failed":"A problem occurred while creating an FCM registration via FID: {$errorInfo}","fid-unregister-failed":"A problem occurred while unregistering the FCM registration via FID: {$errorInfo}","fid-registration-idb-schema-unavailable":"Unable to read or persist FID registration metadata because the messaging IndexedDB schema is unavailable (for example, the database could not be upgraded to the latest version).","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used.","invalid-on-registered-handler":"No onRegistered callback handler was provided or registered. Implement onRegistered() before register()."}),Un="firebase-messaging-database",Rn="firebase-messaging-store",Ln="firebase-messaging-fid-registration-store";let On={openDB:O,deleteDB:F},Fn=null;function $n(e){return{upgrade:(n,t)=>{!function(e,n,t){switch(n){case 0:if(e.createObjectStore(Rn),1===t)break;case 1:2===t&&e.createObjectStore(Ln)}}(n,t,e)},blocked:()=>{},blocking:(e,n,t)=>{Fn=null,t.target?.close()},terminated:()=>{Fn=null}}}function Vn(){if(!Fn){const e=On.openDB(Un,2,$n(2));Fn=e.catch(()=>On.openDB(Un,1,$n(1)))}return Fn}function Hn(e,n){return e.objectStoreNames.contains(n)}function Wn(e){if(!Hn(e,Ln))throw Dn.create("fid-registration-idb-schema-unavailable")}async function Kn(e){const n=Jn(e),t=await Vn(),s=await t.transaction(Rn).objectStore(Rn).get(n);if(s)return s;{const n=await async function(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map(e=>e.name);if(!e.includes(En))return null}let n=null;return(await O(En,5,{upgrade:async(t,s,i,o)=>{if(s<2)return;if(!t.objectStoreNames.contains(In))return;const a=o.objectStore(In),r=await a.index("fcmSenderId").get(e);if(await a.clear(),r)if(2===s){const e=r;if(!e.auth||!e.p256dh||!e.endpoint)return;n={token:e.fcmToken,createTime:e.createTime??Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:Mn(e.vapidKey)}}}else if(3===s){const e=r;n={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Mn(e.auth),p256dh:Mn(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Mn(e.vapidKey)}}}else if(4===s){const e=r;n={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Mn(e.auth),p256dh:Mn(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Mn(e.vapidKey)}}}}})).close(),await F(En),await F("fcm_vapid_details_db"),await F("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:n}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof n.auth&&n.auth.length>0&&"string"==typeof n.p256dh&&n.p256dh.length>0&&"string"==typeof n.endpoint&&n.endpoint.length>0&&"string"==typeof n.swScope&&n.swScope.length>0&&"string"==typeof n.vapidKey&&n.vapidKey.length>0}(n)?n:null}(e.appConfig.senderId);if(n)return await Xn(e,n),n}}async function Xn(e,n){const t=Jn(e),s=await Vn(),i=[Rn],o=Hn(s,Ln);o&&i.push(Ln);const a=s.transaction(i,"readwrite");return await a.objectStore(Rn).put(n,t),o&&await a.objectStore(Ln).delete(t),await a.done,n}async function Gn(e){const n=Jn(e),t=await Vn();return Wn(t),await t.transaction(Ln).objectStore(Ln).get(n)}function Jn({appConfig:e}){return e.appId}const Yn="@firebase/messaging",Zn="0.13.0";async function Qn(e,n){const t=await st(e),s=ot(n,e.appConfig.appName,!0),i={method:"POST",headers:t,body:JSON.stringify(s)};let o,a;try{o=await async function(e){let n;for(let t=0;t<3;t++)try{return await e()}catch(e){if(n=e,t<2){const e=1e3*Math.pow(2,t);await new Promise(n=>setTimeout(n,e))}}throw n}(()=>fetch(tt(e.appConfig),i))}catch(e){throw Dn.create("fid-registration-failed",{errorInfo:e?.toString()})}if(o.ok){const e=await async function(e){const n=await e.text();if(!n.trim())throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is empty"});let t;try{t=JSON.parse(n)}catch{throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response body is not valid JSON"})}const s=t.name;if("string"!=typeof s||0===s.length)throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response did not include a non-empty name"});return function(e){const n=e.indexOf(et);if(-1!==n){const t=e.slice(n+et.length);if(t.length>0)return t}throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration succeeded but response name is not a valid registration resource name"})}(s)}(o);return{responseFid:e}}try{a=await o.json()}catch(e){throw Dn.create("fid-registration-failed",{errorInfo:o.statusText})}const r=a.error?.message??o.statusText;throw Dn.create("fid-registration-failed",{errorInfo:r})}const et="/registrations/";async function nt(e,n){const t={method:"DELETE",headers:await st(e)};try{const s=await fetch(`${tt(e.appConfig)}/${n}`,t),i=await s.json();if(i.error){const e=i.error.message;throw Dn.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw Dn.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function tt({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function st({appConfig:e,installations:n}){const t=await n.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${t}`})}function it(e,n){try{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e))return new URL(e).host}catch{}try{if("undefined"!=typeof self&&self.location?.href)return new URL(e,self.location.origin).host}catch{}return"undefined"!=typeof self&&self.location?.host?self.location.host:n}function ot({p256dh:e,auth:n,endpoint:t,vapidKey:s,swScope:i},o,a){const r={web:{origin:it(i,o),endpoint:t,auth:n,p256dh:e}};return a&&(r.fcm_sdk_version=Zn),s!==Tn&&(r.web.applicationPubKey=s),r}async function at(e){const n=await Kn(e.firebaseDependencies);n?await async function(e,n){await nt(e.firebaseDependencies,n.token),await async function(e){const n=Jn(e),t=(await Vn()).transaction(Rn,"readwrite");await t.objectStore(Rn).delete(n),await t.done}(e.firebaseDependencies),await lt(e.firebaseDependencies)}(e,n):await async function(e){const n=await Gn(e.firebaseDependencies).catch(()=>{}),t=n?.fid;t&&await async function(e,n){const t={method:"DELETE",headers:await st(e)};let s;try{s=await fetch(`${tt(e.appConfig)}/${n}`,t)}catch(e){throw Dn.create("fid-unregister-failed",{errorInfo:e?.toString()})}if(!s.ok)try{const e=await s.json();throw e.error?.message??s.statusText}catch(e){throw Dn.create("fid-unregister-failed",{errorInfo:"string"==typeof e&&e||s.statusText||e?.toString()})}}(e.firebaseDependencies,t),await lt(e.firebaseDependencies),t&&function(e,n){const t=e.onUnregisteredHandler;t&&("function"==typeof t?t(n):t.next(n))}(e,t)}(e);const t=await e.swRegistration.pushManager.getSubscription();return!t||t.unsubscribe()}async function rt(e,n){const t=await async function(e,n){const t=await st(e),s=ot(n,e.appConfig.appName,!1),i={method:"POST",headers:t,body:JSON.stringify(s)};let o;try{const n=await fetch(tt(e.appConfig),i);o=await n.json()}catch(e){throw Dn.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(o.error){const e=o.error.message;throw Dn.create("token-subscribe-failed",{errorInfo:e})}if(!o.token)throw Dn.create("token-subscribe-no-token");return o.token}(e,n),s={token:t,createTime:Date.now(),subscriptionOptions:n};return await Xn(e,s),s.token}async function lt(e){try{await async function(e){const n=Jn(e),t=await Vn();Wn(t);const s=t.transaction(Ln,"readwrite");await s.objectStore(Ln).delete(n),await s.done}(e)}catch{}}async function ct(e){try{e.swRegistration=await navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}),e.swRegistration.update().catch(()=>{}),await async function(e){return new Promise((n,t)=>{const s=setTimeout(()=>t(new Error("Service worker not registered after 10000 ms")),1e4),i=e.installing||e.waiting;e.active?(clearTimeout(s),n()):i?i.onstatechange=e=>{"activated"===e.target?.state&&(i.onstatechange=null,clearTimeout(s),n())}:(clearTimeout(s),t(new Error("No incoming service worker found.")))})}(e.swRegistration)}catch(e){throw Dn.create("failed-service-worker-registration",{browserErrorMessage:e?.message})}}async function dt(e,n){if(n||e.swRegistration||await ct(e),n||!e.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw Dn.create("invalid-sw-registration");e.swRegistration=n}}async function ht(e,n){n?e.vapidKey=n:e.vapidKey||(e.vapidKey=Tn)}async function ut(e,n){if(!navigator)throw Dn.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw Dn.create("permission-blocked");if(!e.onRegisteredHandler)throw Dn.create("invalid-on-registered-handler");await ht(e,n?.vapidKey),await dt(e,n?.serviceWorkerRegistration);const t=e._registerNotifyChain.catch(()=>{});return e._registerNotifyChain=t.then(async()=>{const n=await e.firebaseDependencies.installations.getId(),t=await Gn(e.firebaseDependencies),s=Date.now();if((!t||t.fid!==n||s>=t.lastRegisterTime+6048e5)&&(await async function(e,n){const t=await async function(e,n){return await e.pushManager.getSubscription()||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:An(n)})}(e.swRegistration,e.vapidKey),s={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:Mn(t.getKey("auth")),p256dh:Mn(t.getKey("p256dh"))},i=e.firebaseDependencies.installations;for(let t=0;t<3;t++){const{responseFid:o}=await Qn(e.firebaseDependencies,s);if(o===n)return;t<2&&await i.getToken(!0)}throw Dn.create("fid-registration-failed",{errorInfo:"CreateRegistration response FID does not match Firebase Installation ID"})}(e,n),await async function(e,n){const t=Jn(e),s=await Vn();Wn(s);const i=s.transaction([Rn,Ln],"readwrite");return await i.objectStore(Ln).put(n,t),await i.objectStore(Rn).delete(t),await i.done,n}(e.firebaseDependencies,{fid:n,lastRegisterTime:s,vapidKey:e.vapidKey})),!e.onRegisteredHandler)throw Dn.create("invalid-on-registered-handler");!function(e,n){const t=e.onRegisteredHandler;t&&("function"==typeof t?t(n):t.next(n))}(e,n)}),e._registerNotifyChain}function gt(e){const n={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function(e,n){if(!n.notification)return;e.notification={};const t=n.notification.title;t&&(e.notification.title=t);const s=n.notification.body;s&&(e.notification.body=s);const i=n.notification.image;i&&(e.notification.image=i);const o=n.notification.icon;o&&(e.notification.icon=o)}(n,e),function(e,n){n.data&&(e.data=n.data)}(n,e),function(e,n){if(!n.fcmOptions&&!n.notification?.click_action)return;e.fcmOptions={};const t=n.fcmOptions?.link??n.notification?.click_action;t&&(e.fcmOptions.link=t);const s=n.fcmOptions?.analytics_label;s&&(e.fcmOptions.analyticsLabel=s)}(n,e),n}function pt(e){return Dn.create("missing-app-config-values",{valueName:e})}!function(e,n){const t=[];for(let s=0;s<20;s++)t.push(e.charAt(s)),s<19&&t.push(n.charAt(s));t.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class mt{constructor(e,n,t){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.onRegisteredHandler=null,this.onUnregisteredHandler=null,this._registerNotifyChain=Promise.resolve(),this._fidChangeUnsubscribe=null,this.logEvents=[],this.logQueue={state:"stopped"};const s=function(e){if(!e||!e.options)throw pt("App Configuration Object");if(!e.name)throw pt("App Name");const n=["projectId","apiKey","appId","messagingSenderId"],{options:t}=e;for(const e of n)if(!t[e])throw pt(e);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:s,installations:n,analyticsProvider:t}}_delete(){return this._fidChangeUnsubscribe&&(this._fidChangeUnsubscribe(),this._fidChangeUnsubscribe=null),"scheduled"===this.logQueue.state&&clearTimeout(this.logQueue.timerId),this.logQueue={state:"stopped"},Promise.resolve()}}async function ft(e,n){if(!navigator)throw Dn.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw Dn.create("permission-blocked");return await ht(e,n?.vapidKey),await dt(e,n?.serviceWorkerRegistration),async function(e){const n=await async function(e,n){return await e.pushManager.getSubscription()||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:An(n)})}(e.swRegistration,e.vapidKey),t={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:n.endpoint,auth:Mn(n.getKey("auth")),p256dh:Mn(n.getKey("p256dh"))},s=await Kn(e.firebaseDependencies);if(s){if(function(e,n){const t=n.vapidKey===e.vapidKey,s=n.endpoint===e.endpoint,i=n.auth===e.auth,o=n.p256dh===e.p256dh;return t&&s&&i&&o}(s.subscriptionOptions,t))return Date.now()>=s.createTime+6048e5?async function(e,n){try{const t=await async function(e,n){const t=await st(e),s=ot(n.subscriptionOptions,e.appConfig.appName,!1),i={method:"PATCH",headers:t,body:JSON.stringify(s)};let o;try{const t=await fetch(`${tt(e.appConfig)}/${n.token}`,i);o=await t.json()}catch(e){throw Dn.create("token-update-failed",{errorInfo:e?.toString()})}if(o.error){const e=o.error.message;throw Dn.create("token-update-failed",{errorInfo:e})}if(!o.token)throw Dn.create("token-update-no-token");return o.token}(e.firebaseDependencies,n),s={...n,token:t,createTime:Date.now()};return await Xn(e.firebaseDependencies,s),t}catch(e){throw e}}(e,{token:s.token,createTime:Date.now(),subscriptionOptions:t}):s.token;try{await nt(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}return rt(e.firebaseDependencies,t)}return rt(e.firebaseDependencies,t)}(e)}async function xt(e,n){const t=n.data;if(!t.isFirebaseMessaging)return;if(e.onMessageHandler&&t.messageType===qn.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(gt(t)):e.onMessageHandler.next(gt(t))),e.onRegisteredHandler&&t.messageType===qn.FID_REGISTERED){const n=t.fid;"function"==typeof e.onRegisteredHandler?e.onRegisteredHandler(n):e.onRegisteredHandler.next(n)}const s=t.data;var i;"object"==typeof(i=s)&&i&&Bn in i&&"1"===s["google.c.a.e"]&&await async function(e,n,t){const s=function(e){switch(e){case qn.NOTIFICATION_CLICKED:return"notification_open";case qn.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(n);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(s,{message_id:t[Bn],message_name:t["google.c.a.c_l"],message_time:t["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}(e,t.messageType,s)}function jt(e=function(e=Ce){const n=_e.get(e);if(!n&&e===Ce&&d())return Ae();if(!n)throw qe.create("no-app",{appName:e});return n}()){return async function(){try{await g()}catch(e){return!1}return"undefined"!=typeof window&&u()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}().then(e=>{if(!e)throw Dn.create("unsupported-browser")},e=>{throw Dn.create("indexed-db-unsupported")}),Pe(b(e),"messaging").getImmediate()}async function bt(e,n){return ft(e=b(e),n)}function yt(e){return async function(e){if(!navigator)throw Dn.create("only-available-in-window");return e.swRegistration||await ct(e),at(e)}(e=b(e))}Be(new y("messaging",e=>{const n=new mt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>xt(n,e)),n._fidChangeUnsubscribe=function(e,n){return function(e,n){const{appConfig:t}=e;return function(e,n){hn();const t=an(e);let s=rn.get(t);s||(s=new Set,rn.set(t,s)),s.add(n)}(t,n),()=>{!function(e,n){const t=an(e),s=rn.get(t);s&&(s.delete(n),0===s.size&&rn.delete(t),un())}(t,n)}}(n,()=>{(async()=>{e.onRegisteredHandler&&await Gn(e.firebaseDependencies)&&await ut(e).catch(()=>{})})()})}(n,e.getProvider("installations").getImmediate()),n},"PUBLIC")),Be(new y("messaging-internal",e=>{const n=e.getProvider("messaging").getImmediate();return{getToken:e=>ft(n,e),register:e=>ut(n,e)}},"PRIVATE")),Ee(Yn,Zn),Ee(Yn,Zn,"esm2020");var wt=a(4532),vt=a(4848);class kt extends n().PureComponent{render(){return(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"alert",children:[(0,vt.jsx)("div",{className:"title",children:this.props.title}),(0,vt.jsx)("div",{className:"content",children:this.props.content}),(0,vt.jsxs)("div",{className:"dialog-buttons",children:[this.props.onReject?(0,vt.jsx)("button",{className:"outline",onClick:this.props.onReject,children:this.props.reject||(0,vt.jsx)(s.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}):null,this.props.onConfirm?(0,vt.jsx)("button",{className:"primary",onClick:this.props.onConfirm,children:this.props.confirm||(0,vt.jsx)(s.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"})}):null]})]})})}}var Ct=a(3272),zt=a(8353);const _t=new Map;function St(e,n){return e+":"+n}function Nt(e,n){return(0,zt.qM)({type:"all"}).then(t=>(t.items||[]).find(t=>t.source&&t.source.topic===e&&String(t.source.seq)===String(n)))}const Tt=(0,s.defineMessages)({info:{id:"menu_item_info",defaultMessage:"Info",description:"Show extended topic information"},clear_messages:{id:"menu_item_clear_messages",defaultMessage:"Clear messages",description:"Delete all messages"},clear_for_all:{id:"menu_item_clear_messages_for_all",defaultMessage:"Clear for All",description:"Delete all message(s) for all members"},delete:{id:"menu_item_delete",defaultMessage:"Delete",description:"Delete selected messages"},delete_for_all:{id:"menu_item_delete_for_all",defaultMessage:"Delete for All",description:"Delete selected message(s) for all members"},send_retry:{id:"menu_item_send_retry",defaultMessage:"Retry",description:"Retry sending message"},mute:{id:"menu_item_mute",defaultMessage:"Mute",description:"Turn off notifications"},unmute:{id:"menu_item_unmute",defaultMessage:"Unmute",description:"Turn notifications on"},reply:{id:"menu_item_reply",defaultMessage:"Reply",description:"Reply to message"},forward:{id:"menu_item_forward",defaultMessage:"Forward",description:"Forward message"},edit:{id:"menu_item_edit",defaultMessage:"Edit",description:"Edit message"},topic_delete:{id:"menu_item_delete_topic",defaultMessage:"Delete",description:"Delete entire topic"},topic_delete_warning:{id:"topic_delete_warning",defaultMessage:"Are you sure you want to delete this conversation? It cannot be undone.",description:"Alert warning when deleting entire topic"},delete_messages_warning:{id:"delete_messages_warning",defaultMessage:"Are you sure you want to delete all messages for everyone? It cannot be undone.",description:"Alert dialog warning when hard-deleting all messages."},unblock:{id:"menu_item_unblock",defaultMessage:"Unblock",description:"Unblock topic or user"},block:{id:"menu_item_block",defaultMessage:"Block",description:"Block topic or user"},topic_block_warning:{id:"topic_block_warning",defaultMessage:"Are you sure you want to block this conversation?",description:"Alert warning when blocking a topic."},member_delete:{id:"menu_item_member_delete",defaultMessage:"Remove",description:"Remove user from topic"},archive:{id:"menu_item_archive_topic",defaultMessage:"Archive",description:"Move topic from the list of active chats to archive"},unarchive:{id:"menu_item_restore_topic",defaultMessage:"Restore",description:"Restore topic from archive"},edit_permissions:{id:"menu_item_edit_permissions",defaultMessage:"Edit permissions",description:"Menu item [Edit permissions]"},clear_messages_warning:{id:"clear_messages_warning",defaultMessage:"Are you sure you want to clear all messages? It cannot be undone.",description:"Alert dialog warning when deleting all messages."},pin_message:{id:"pin_message",defaultMessage:"Pin",description:"Menu item [Pin] for pinning message to the top."},unpin_message:{id:"unpin_message",defaultMessage:"Unpin",description:"Menu item [Unpin] for un-pinning the message."},pin_chat:{id:"pin_chat",defaultMessage:"Pin",description:"Menu item [Pin] for pinning chat to the top."},unpin_chat:{id:"unpin_chat",defaultMessage:"Unpin",description:"Menu item [Unpin] for un-pinning the chat."}});class Bt extends n().Component{constructor(e){super(e),this.selfRef=n().createRef();const{formatMessage:t}=e.intl;this.handlePageClick=this.handlePageClick.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClick=this.handleClick.bind(this),this.MenuItems={topic_info:{id:"topic_info",title:t(Tt.info),handler:null},messages_clear:{id:"messages_clear",title:t(Tt.clear_messages),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.clear_messages),t(Tt.clear_messages_warning),e=>{this.deleteMessages(!0,!1,n,s)},null,!0,null)},messages_clear_hard:{id:"messages_clear_hard",title:t(Tt.clear_for_all),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.clear_for_all),t(Tt.delete_messages_warning),e=>this.deleteMessages(!0,!0,n,s),null,!0,null)},message_delete:{id:"message_delete",title:t(Tt.delete),handler:(e,n)=>this.deleteMessages(!1,!1,e,n)},message_delete_hard:{id:"message_delete_hard",title:t(Tt.delete_for_all),handler:(e,n)=>this.deleteMessages(!1,!0,e,n)},message_delete_generic:{id:"message_delete_generic",title:t(Tt.delete),handler:(e,n)=>this.deleteMessages(!1,!0,e,n)},menu_item_send_retry:{id:"menu_item_send_retry",title:t(Tt.send_retry),handler:(e,n)=>this.retryMessage(e,n)},menu_item_reply:{id:"menu_item_reply",title:t(Tt.reply),handler:(e,n)=>this.replyToMessage(e,n)},menu_item_forward:{id:"menu_item_forward",title:t(Tt.forward),handler:e=>{}},menu_item_copy:{id:"menu_item_copy",title:"复制",handler:(e,n)=>this.copyMessageText(e,n)},menu_item_favorite:{id:"menu_item_favorite",title:_t.has(St(e.params&&e.params.topicName,e.params&&e.params.seq))?"取消收藏":"收藏",handler:(e,n)=>_t.has(St(e.topicName,e.seq))?this.removeFavorite(e,n):this.addFavorite(e,n)},menu_item_recall:{id:"menu_item_recall",title:"撤回",handler:(e,n)=>this.recallOwnMessage(e,n)},menu_item_select:{id:"menu_item_select",title:"多选",handler:e=>{}},menu_item_edit:{id:"menu_item_edit",title:t(Tt.edit),handler:(e,n)=>this.editMessage(e,n)},menu_item_pin:{id:"menu_item_pin",title:t(Tt.pin_message),handler:(e,n)=>this.pinMessage(!0,e,n)},menu_item_unpin:{id:"menu_item_unpin",title:t(Tt.unpin_message),handler:(e,n)=>this.pinMessage(!1,e,n)},topic_unmute:{id:"topic_unmute",title:t(Tt.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},topic_mute:{id:"topic_mute",title:t(Tt.mute),handler:this.topicPermissionSetter.bind(this,"-P")},topic_unblock:{id:"topic_unblock",title:t(Tt.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")},topic_block:{id:"topic_block",title:t(Tt.block),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.block),t(Tt.topic_block_warning),e=>this.topicPermissionSetter("-JP",n,s).then(e=>(this.props.onTopicRemoved(n.topicName),e)),null,!0,null)},topic_delete:{id:"topic_delete",title:t(Tt.topic_delete),handler:(n,s)=>e.onShowAlert(n.topicTitle||t(Tt.topic_delete),t(Tt.topic_delete_warning),e=>{const t=this.props.tinode.getTopic(n.topicName);if(t)return t.delTopic(!0).catch(e=>{s&&s(e.message,"err")});console.warn("Topic not found: ",n.topicName)},null,!0,null)},topic_archive:{id:"topic_archive",title:t(Tt.archive),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t)return t.archive(!0).catch(e=>{n&&n(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_restore:{id:"topic_restore",title:t(Tt.unarchive),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t)return t.archive(!1).catch(e=>{n&&n(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_pin:{id:"topic_pin",title:t(Tt.pin_chat),handler:(e,n)=>{const t=this.props.tinode.getMeTopic();if(t)return t.pinTopic(e.topicName,!0).catch(e=>{n&&n(e.message,"err")});console.warn("'me' topic not found")}},topic_unpin:{id:"topic_unpin",title:t(Tt.unpin_chat),handler:(e,n)=>{const t=this.props.tinode.getMeTopic();if(t)return t.pinTopic(e.topicName,!1).catch(e=>{n&&n(e.message,"err")});console.warn("'me' topic not found")}},permissions:{id:"permissions",title:t(Tt.edit_permissions),handler:null},member_delete:{id:"member_delete",title:t(Tt.member_delete),handler:(e,n)=>{const t=this.props.tinode.getTopic(e.topicName);if(t&&e.user)return t.delSubscription(e.user).catch(e=>{n&&n(e.message,"err")});console.warn("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{id:"member_mute",title:t(Tt.mute),handler:this.topicPermissionSetter.bind(this,"-P")},member_unmute:{id:"member_unmute",title:t(Tt.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},member_block:{id:"member_block",title:t(Tt.block),handler:this.topicPermissionSetter.bind(this,"-JP")},member_unblock:{id:"member_unblock",title:t(Tt.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")}}}componentDidMount(){document.addEventListener("mousedown",this.handlePageClick,!1),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("mousedown",this.handlePageClick,!1),document.removeEventListener("keyup",this.handleEscapeKey,!1)}handlePageClick(e){this.selfRef.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),this.props.hide())}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.hide();let n=this.props.items[e.currentTarget.dataset.id];"string"==typeof n&&(n=this.MenuItems[n]),n?this.props.onAction(n.id,n.handler(this.props.params,this.props.onError),this.props.params):console.error("Invalid menu item ID",e.currentTarget.dataset.id)}deleteMessages(e,n,t,s){const i=this.props.tinode.getTopic(t.topicName);if(i){if(e||!i.cancelSend(t.seq))return(e?i.delMessagesAll(n):t.replace>0?i.delMessagesEdits(t.replace,n):i.delMessagesList([t.seq],n)).catch(e=>{s&&s(e.message,"err")})}else console.warn("Topic not found: ",t.topicName)}copyMessageText(e,n){const t="string"==typeof e.content?e.content:wt.Drafty.toPlainText(e.content);return navigator.clipboard.writeText(t||"").catch(e=>{n&&n(e.message,"err")})}addFavorite(e,n){return(0,zt.Bc)([{topic:e.topicName,seq:e.seq}]).then(t=>{const s=t&&t.failed&&t.failed[0];if(s)return void(n&&n("NOT_FOUND"===s.reason?"收藏失败,该消息暂无法收藏,请稍后重试":"收藏失败","err"));const i=St(e.topicName,e.seq);_t.set(i,!0),Nt(e.topicName,e.seq).then(e=>{e&&_t.set(i,e.favorite_id)}).catch(()=>{})}).catch(e=>{n&&n(e.message,"err")})}removeFavorite(e,n){const t=St(e.topicName,e.seq),s=_t.get(t);return(s&&!0!==s?Promise.resolve(s):Nt(e.topicName,e.seq).then(e=>e&&e.favorite_id)).then(e=>{if(e)return(e=>(0,zt.C5)(e).then(()=>_t.delete(t)))(e);n&&n("未找到对应收藏","err")}).catch(e=>{n&&n(e.message||"取消收藏失败","err")})}recallOwnMessage(e,n){return(0,zt.N1)(e.topicName,e.seq).then(t=>this.deleteMessages(!1,!0,e,n)).catch(e=>{n&&n(e.message,"err")})}retryMessage(e,n){const t=this.props.tinode.getTopic(e.topicName);if(!t||!t.flushMessage(e.seq))return;const s=t.createMessage(e.content,!1);return e.head&&(s.head=Object.assign(s.head||{},e.head)),t.publishDraft(s).catch(e=>{n&&n(e.message,"err")})}pinMessage(e,n,t){const s=this.props.tinode.getTopic(n.topicName);s&&s.pinMessage(n.seq,e).catch(e=>t?t(e.message,"err"):null)}topicPermissionSetter(e,n,t){const s=this.props.tinode.getTopic(n.topicName);if(!s)return void console.warn("Topic not found",n.topicName);let i=s.updateMode(n.user,e);return t&&(i=i.catch(e=>t(e.message,"err"))),i}replyToMessage(e,n){e.pickReply(e.seq,e.content,e.userFrom,e.userName,n)}editMessage(e,n){e.editMessage(e.replace||e.seq,e.content,n)}render(){const e=[];let n=0;this.props.items.forEach(t=>{if("string"==typeof t&&(t=this.MenuItems[t]),t&&t.title){const s=t.disabled?"disabled":void 0;e.push("-"==t.title?(0,vt.jsx)("li",{className:"separator"},n):(0,vt.jsx)("li",{className:s,onClick:this.handleClick,"data-id":n,children:t.title},n))}n++});const t=13*(.7+2.5*e.length),s={left:(this.props.bounds.right-this.props.clickAt.x<156?this.props.clickAt.x-this.props.bounds.left-156:this.props.clickAt.x-this.props.bounds.left)+"px",top:(this.props.bounds.bottom-this.props.clickAt.y<t?this.props.clickAt.y-this.props.bounds.top-t:this.props.clickAt.y-this.props.bounds.top)+"px"};return(0,vt.jsx)("ul",{className:"menu",style:s,ref:this.selfRef,children:e})}}var Pt=(0,s.injectIntl)(Bt),qt=a(3717);class Mt extends n().PureComponent{constructor(e){super(e),this.state={edited:!1,search:this.props.initialQuery||""},this.handleSearchChange=this.handleSearchChange.bind(this),this.handleSearch=this.handleSearch.bind(this),this.handleClear=this.handleClear.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentWillUnmount(){this.state.edited&&(this.setState({search:"",edited:!1}),this.props.onSearchContacts(wt.Tinode.DEL_CHAR))}handleSearchChange(e){this.setState({search:e.target.value})}handleSearch(e){e.preventDefault();const n=this.state.search.trim();this.setState({edited:n.length>0}),this.props.onSearchContacts(n.length>0?n:wt.Tinode.DEL_CHAR)}handleClear(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(wt.Tinode.DEL_CHAR),this.setState({search:"",edited:!1})}handleKeyDown(e){"Enter"===e.key?this.handleSearch(e):"Escape"===e.key&&(e.stopPropagation(),this.handleClear(e))}render(){return(0,vt.jsx)("div",{className:"panel-form",children:(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("i",{className:"material-icons search",children:"search"}),(0,vt.jsx)("input",{className:"search",type:"text",placeholder:this.props.placeholder,value:this.state.search,onChange:this.handleSearchChange,onKeyDown:this.handleKeyDown,required:!0,autoFocus:!0}),this.state.search?(0,vt.jsx)("a",{href:"#",onClick:this.handleClear,children:(0,vt.jsx)("i",{className:"material-icons",children:"highlight_off"})}):(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:" "})})]})})}}class At extends n().Component{constructor(e){super(e),this.state={query:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this)}componentDidMount(){this.props.onInitFind()}handleEscapeKey(e){27===e.keyCode&&this.props.hide(!1)}handleClose(e){e.preventDefault(),this.props.hide(!1)}handleSearchContacts(e){this.setState({query:wt.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleContactSelected(e){this.props.onTopicSelected(e),this.props.hide(!0)}render(){let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog",children:[(0,vt.jsxs)("div",{className:"title with-control",children:[(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"forward_to",defaultMessage:"Forward to",desription:"Title of the contact selector dialog when forwarding a message"})}),(0,vt.jsx)("div",{children:(0,vt.jsx)("a",{href:"#",onClick:this.handleClose,children:(0,vt.jsx)("i",{className:"material-icons",children:"close"})})})]}),(0,vt.jsx)(s.FormattedMessage,{id:"forward_to_search_placeholder",defaultMessage:"Search contacts",description:"Contact search prompt when forwarding a message.",children:e=>(0,vt.jsx)(Mt,{placeholder:e,onSearchContacts:this.handleSearchContacts})}),(0,vt.jsx)(s.FormattedMessage,{id:"search_no_results",defaultMessage:"Search returned no results",description:"Text shown in contacts view when query returned no results.",children:n=>(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:n,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected})})]})})}}var Et=a(7849),It=a(2795);class Dt extends n().Component{constructor(e){super(e),this.state={query:null,multiSelect:!1,selectedTargets:[],confirmTargets:null,comment:"",sending:!1,error:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this),this.handleToggleMultiSelect=this.handleToggleMultiSelect.bind(this),this.handleConfirmTargets=this.handleConfirmTargets.bind(this),this.handleCancelConfirm=this.handleCancelConfirm.bind(this),this.handleSend=this.handleSend.bind(this),this.handleCommentChange=this.handleCommentChange.bind(this)}componentDidMount(){this.props.onInitFind(),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("keyup",this.handleEscapeKey,!1)}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClose(e){e.preventDefault(),this.props.hide()}handleSearchContacts(e){this.setState({query:wt.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleToggleMultiSelect(e){e.preventDefault(),this.setState(e=>({multiSelect:!e.multiSelect,selectedTargets:[]}))}handleContactSelected(e){this.state.multiSelect?this.setState(n=>{if(n.selectedTargets.includes(e))return{selectedTargets:n.selectedTargets.filter(n=>n!=e),error:null};const t=this.forwardTargetLimit();return n.selectedTargets.length>=t?{error:`最多同时转发给 ${t} 个会话`}:{selectedTargets:n.selectedTargets.concat(e),error:null}}):this.setState({confirmTargets:[e]})}forwardTargetLimit(){const e=this.props.myUserId?(0,It.ze)("bootstrap:"+this.props.myUserId):null,n=e&&e.limits&&Number(e.limits.max_forward_targets);return n>0?Math.min(n,20):20}handleConfirmTargets(e){e.preventDefault(),this.state.selectedTargets.length&&this.setState({confirmTargets:this.state.selectedTargets.slice()})}forwardMode(){return this.state.multiSelect?"bundle":"separate"}handleCancelConfirm(){this.setState({confirmTargets:null,error:null})}handleCommentChange(e){this.setState({comment:e.target.value})}handleSend(){const e=this.props.seqs.map(e=>({topic:this.props.topicName,seq:String(e)}));e.length>100?this.setState({error:`一次最多转发 100 条消息,当前已选 ${e.length} 条`}):(this.setState({sending:!0,error:null}),(0,zt.uT)(this.forwardMode(),e,this.state.confirmTargets,this.state.comment.trim()).then(e=>{const n=e&&e.failed||[];n.length?this.setState({sending:!1,error:`${n.length} 条转发失败,请重试`}):this.props.hide(!0)}).catch(e=>{this.setState({sending:!1,error:e.message||"转发失败"})}))}render(){if(this.state.confirmTargets){const e=this.state.confirmTargets.map(e=>this.props.tinode.getTopic(e)||{name:e,public:null});return(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog batch-forward-confirm",children:[(0,vt.jsx)("div",{className:"title",children:"发送给"}),(0,vt.jsx)("ul",{className:"contact-box",children:e.map(e=>(0,vt.jsxs)("li",{className:"batch-forward-target",children:[(0,vt.jsx)("span",{children:wt.Tinode.isSelfTopicName(e.name)?"已保存的消息":(0,Et.TP)(e.name,e.public,e.name)}),(0,vt.jsx)("i",{className:"material-icons",children:"chevron_right"})]},e.name))}),(0,vt.jsx)("input",{className:"batch-forward-comment",type:"text",value:this.state.comment,onChange:this.handleCommentChange,disabled:this.state.sending,placeholder:("bundle"===this.forwardMode()?"[合并转发]共":"[逐条转发]共")+this.props.seqs.length+"条消息"}),this.state.error?(0,vt.jsx)("div",{className:"auth-field-error",children:this.state.error}):null,(0,vt.jsxs)("div",{className:"batch-forward-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:this.handleCancelConfirm,disabled:this.state.sending,children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:this.handleSend,disabled:this.state.sending,children:this.state.sending?"发送中…":"发送"})]})]})})}let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),(0,vt.jsx)("div",{className:"alert-container",children:(0,vt.jsxs)("div",{className:"forward-dialog",children:[(0,vt.jsxs)("div",{className:"title with-control",children:[(0,vt.jsx)("div",{children:"转发"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:this.handleToggleMultiSelect,children:this.state.multiSelect?"":"多选"}),this.state.multiSelect?(0,vt.jsx)("a",{href:"#",onClick:this.handleConfirmTargets,className:this.state.selectedTargets.length?"":"disabled",children:"确定"}):null,(0,vt.jsx)("a",{href:"#",onClick:this.handleClose,children:(0,vt.jsx)("i",{className:"material-icons",children:"close"})})]})]}),(0,vt.jsx)(Mt,{placeholder:"搜索联系人",onSearchContacts:this.handleSearchContacts}),this.state.error?(0,vt.jsx)("div",{className:"auth-field-error",children:this.state.error}):null,(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:"搜索返回任何结果",showOnline:!1,showUnread:!1,showContextMenu:!1,topicSelected:this.state.multiSelect?this.state.selectedTargets:null,onTopicSelected:this.handleContactSelected})]})})}}var Ut=a(6686),Rt=a(5247),Lt=a(7981),Ot=a(7256);const Ft=new Audio("audio/call-in.m4a");class $t extends n().Component{constructor(e){super(e),this.state={topic:null,fullName:void 0,avatar:null,trustedBadges:[],previousMetaDesc:void 0},this.resetDesc=this.resetDesc.bind(this),this.onMetaDesc=this.onMetaDesc.bind(this),this.handleRejectCall=this.handleRejectCall.bind(this),this.handleAcceptCall=this.handleAcceptCall.bind(this),this.ringTimer=null}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);e&&(this.resetDesc(e),2==this.props.callState&&(Ft.play().catch(e=>{}),this.ringTimer=setInterval(e=>{Ft.play().catch(e=>{})},2e3),this.props.onRinging(this.props.topic,this.props.seq)))}componentDidUpdate(e){const n=this.props.tinode.getTopic(e.topic);n&&(this.onMetaDesc!=n.onMetaDesc&&(this.previousMetaDesc=n.onMetaDesc,n.onMetaDesc=this.onMetaDesc),this.state.topic!=e.topic&&(this.setState({topic:e.topic}),this.resetDesc(n,e)))}componentWillUnmount(){null!=this.ringTimer&&(clearInterval(this.ringTimer),Ft.pause());const e=this.props.tinode.getTopic(this.props.topic);e&&(this.setState({topic:null}),e.onMetaDesc=this.previousMetaDesc)}resetDesc(e){const n=[];if(e.trusted)for(const[t,s]of Object.entries(e.trusted))s&&n.push(t);this.setState({fullName:(0,Ot.W5)(e.public?e.public.fn:void 0,60),avatar:(0,Lt.to)(e.public?e.public.photo:null),trustedBadges:n})}onMetaDesc(e){const n=this.props.tinode.getTopic(this.props.topic);n&&(this.resetDesc(n),this.previousMetaDesc&&this.previousMetaDesc!=this.onMetaDesc&&this.previousMetaDesc(e))}handleAcceptCall(){this.props.onAcceptCall(this.props.topic)}handleRejectCall(){this.props.onReject(this.props.topic,this.props.seq),this.props.onClose()}render(){const e=!!this.props.audioOnly,n=2==this.props.callState,t=e?"call-audio-surface":"call-video-surface",s=this.state.avatar?{"--incoming-call-photo":`url(${this.state.avatar})`}:null;return(0,vt.jsxs)("div",{className:`call-fullscreen incoming-call-overlay ${t} incoming`,children:[(0,vt.jsx)("div",{className:"call-ambient"}),this.state.avatar&&(0,vt.jsx)("div",{className:"incoming-call-photo-blur",style:s}),(0,vt.jsxs)("div",{className:"call-peer-card",children:[(0,vt.jsx)("div",{className:"avatar-box call-product-avatar",children:(0,vt.jsx)(Rt.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:this.state.avatar||!0,topic:this.props.topic,title:this.state.fullName})}),(0,vt.jsxs)("h1",{children:[(0,vt.jsx)("span",{children:(0,Ot.W5)(this.state.fullName,24)}),(0,vt.jsx)(Ut.A,{short:!0,trustedBadges:this.state.trustedBadges})]}),(0,vt.jsx)("p",{children:e?"对方邀请你语音通话...":"对方邀请你视频通话..."}),n&&(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]})]}),(0,vt.jsx)("footer",{className:"call-incoming-actions",children:n?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("button",{type:"button",className:"call-control danger",onClick:this.handleRejectCall,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:"call_end"})}),(0,vt.jsx)("small",{children:"拒绝"})]}),(0,vt.jsxs)("button",{type:"button",className:"call-control",onClick:this.handleAcceptCall,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)("i",{className:"material-icons",children:e?"call":"videocam"})}),(0,vt.jsx)("small",{children:"接听"})]})]}):null})]})}}var Vt=a(6624),Ht=a.n(Vt);function Wt({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}const Kt={inversionAttempts:"dontInvert"};class Xt extends n().Component{constructor(e){super(e),this.state={status:"starting",errorText:""},this.videoRef=n().createRef(),this.canvas=document.createElement("canvas"),this.stream=null,this.timer=null,this.detected=!1,this.start=this.start.bind(this),this.stopStream=this.stopStream.bind(this),this.tick=this.tick.bind(this)}componentDidMount(){this.start()}componentWillUnmount(){this.stopStream()}start(){navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?(this.detected=!1,this.setState({status:"starting",errorText:""}),navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"},audio:!1}).then(e=>{this.stream=e;const n=this.videoRef.current;n?(n.srcObject=e,n.play().catch(()=>{}),this.setState({status:"scanning"}),this.timer=window.setInterval(this.tick,200)):e.getTracks().forEach(e=>e.stop())}).catch(e=>{const n=e&&e.name,t="NotAllowedError"===n?"未获得摄像头权限,请在浏览器设置中允许访问摄像头":"NotFoundError"===n?"未检测到可用摄像头":"NotReadableError"===n?"摄像头正被其他程序占用":"摄像头启动失败,请重试";this.setState({status:"error",errorText:t})})):this.setState({status:"error",errorText:"当前浏览器不支持摄像头访问"})}stopStream(){this.timer&&(window.clearInterval(this.timer),this.timer=null),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=null)}tick(){if(this.detected)return;const e=this.videoRef.current;if(!e||e.readyState!==e.HAVE_ENOUGH_DATA)return;const n=e.videoWidth,t=e.videoHeight;if(!n||!t)return;const s=Math.min(1,480/Math.max(n,t)),i=Math.round(n*s),o=Math.round(t*s);this.canvas.width=i,this.canvas.height=o;const a=this.canvas.getContext("2d",{willReadFrequently:!0});let r;a.drawImage(e,0,0,i,o);try{r=a.getImageData(0,0,i,o)}catch(e){return}const l=Ht()(r.data,i,o,Kt);l&&l.data&&(this.detected=!0,this.setState({status:"resolving"}),this.stopStream(),this.props.onDetect(l.data))}render(){const{status:e,errorText:n}=this.state;return(0,vt.jsxs)("div",{className:"qr-scan-view",children:[(0,vt.jsx)("video",{ref:this.videoRef,className:"qr-scan-video",muted:!0,playsInline:!0,autoPlay:!0}),(0,vt.jsx)("div",{className:"qr-scan-mask",children:(0,vt.jsxs)("div",{className:"qr-scan-frame",children:[(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-tl"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-tr"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-bl"}),(0,vt.jsx)("i",{className:"qr-scan-corner qr-scan-corner-br"})]})}),(0,vt.jsxs)("header",{className:"qr-scan-header",children:[(0,vt.jsx)("button",{type:"button",onClick:this.props.onClose,"aria-label":"返回",children:(0,vt.jsx)(Wt,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"扫一扫"}),(0,vt.jsx)("span",{})]}),"starting"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"正在启动摄像头…"}):null,"scanning"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"将二维码放入框内,即可自动扫描"}):null,"resolving"===e?(0,vt.jsx)("p",{className:"qr-scan-hint",children:"识别中…"}):null,"error"===e?(0,vt.jsxs)("div",{className:"qr-scan-error",children:[(0,vt.jsx)(Wt,{children:"error_outline"}),(0,vt.jsx)("p",{children:n}),(0,vt.jsx)("button",{type:"button",onClick:this.start,children:"重试"})]}):null]})}}function Gt({group:e,onSubmit:t,onCancel:s}){const[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(null);return n().useEffect(()=>{if(!e.avatar_file_id)return;let n=!0;return(0,zt.w8)(e.avatar_file_id).then(e=>{n&&c(e)}).catch(()=>{}),()=>{n=!1}},[e.avatar_file_id]),(0,vt.jsx)("div",{className:"qr-join-backdrop",children:(0,vt.jsxs)("section",{className:"qr-join-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("span",{className:"qr-join-avatar",children:l?(0,vt.jsx)("img",{src:l,alt:""}):(0,vt.jsx)(Wt,{children:"group"})}),(0,vt.jsx)("h2",{children:e.name||"群聊"}),(0,vt.jsxs)("p",{children:[e.member_count||0," 人"]}),(0,vt.jsx)("input",{value:i,onChange:e=>o(e.target.value),placeholder:"验证消息(选填)",maxLength:60,disabled:a}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:a,onClick:()=>{r(!0),Promise.resolve(t(i.trim())).finally(()=>r(!1))},children:a?"提交中…":"申请加入"}),(0,vt.jsx)("button",{type:"button",onClick:s,disabled:a,children:"取消"})]})})}var Jt=a(3405),Yt=a(9304);class Zt extends n().PureComponent{render(){return(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onBack()},children:(0,vt.jsx)("i",{className:"material-icons",children:"arrow_back"})})}}var Qt=a(6565);class es extends n().PureComponent{render(){return(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onNewTopic()},children:(0,vt.jsx)("i",{className:"material-icons",children:"chat"})})," ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()},children:(0,vt.jsx)("i",{className:"material-icons",children:"settings"})})]})}}class ns extends n().PureComponent{render(){return(0,vt.jsxs)("div",{children:[(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSignUp()},children:(0,vt.jsx)("i",{className:"material-icons",children:"person_add"})})," ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()},children:(0,vt.jsx)("i",{className:"material-icons",children:"settings"})})]})}}class ts extends n().PureComponent{render(){const e=[];this.props.trustedBadges&&this.props.trustedBadges.forEach(n=>{e.push({icon:n,color:"badge-inv"})});let n=null;return this.props.tinode&&(n=this.props.tinode.authorizeURL((0,Et.wk)(this.props.avatar,"image"))),(0,vt.jsxs)("div",{id:"side-caption-panel",className:"caption-panel",children:[this.props.onCancel?(0,vt.jsx)(Zt,{onBack:this.props.onCancel}):null,n?(0,vt.jsx)("div",{id:"self-avatar",className:"avatar-box",children:(0,vt.jsx)(Rt.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:n,topic:this.props.myUserId,title:this.props.title})}):null,(0,vt.jsxs)("div",{id:"sidepanel-title",className:"panel-title",children:[this.props.title,(0,vt.jsx)(Qt.A,{badges:e})]}),"login"===this.props.state?(0,vt.jsx)(ns,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?(0,vt.jsx)(es,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null]})}}var ss=a(6916),is=a(184);const os=/^[a-z0-9]{1,10}$/,as=/^\d{11}$/,rs=/^[A-Za-z]{5}$/,ls=/^[0-9A-Z]{18}$/,cs=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ds=(e,n)=>is.A.navigateTo(is.A.composeUrl([e],n||{}));function hs({children:e,className:n=""}){return(0,vt.jsx)("i",{className:"material-icons "+n,"aria-hidden":"true",children:e})}function us({tenantName:e}){return(0,vt.jsxs)("div",{className:"auth-brand",children:[(0,vt.jsx)("div",{className:"auth-logo",children:(0,vt.jsx)("span",{children:Ct.iv[0]})}),(0,vt.jsx)("h1",{children:e||Ct.iv})]})}function gs({title:e,back:n="tenant"}){return(0,vt.jsxs)("header",{className:"auth-header",children:[(0,vt.jsx)("button",{type:"button",className:"auth-icon-button",onClick:()=>{is.A.goBack()||ds(n)},"aria-label":"返回",children:(0,vt.jsx)(hs,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),(0,vt.jsx)("span",{className:"auth-header-spacer"})]})}function ps({icon:e,onIconClick:n,action:t,error:s,className:i="",...o}){return(0,vt.jsxs)("div",{className:"auth-field-wrap "+i,children:[(0,vt.jsxs)("div",{className:"auth-field"+(s?" invalid":""),children:[e?n?(0,vt.jsx)("button",{type:"button",className:"auth-field-icon-button",onClick:n,children:(0,vt.jsx)(hs,{children:e})}):(0,vt.jsx)(hs,{className:"auth-field-icon",children:e}):null,(0,vt.jsx)("input",{...o}),t]}),s?(0,vt.jsx)("div",{className:"auth-field-error",children:s}):null]})}function ms(e){const[t,s]=n().useState(!1);return(0,vt.jsx)(ps,{...e,type:t?"text":"password",action:(0,vt.jsx)("button",{type:"button",className:"auth-inline-icon",onClick:()=>s(!t),"aria-label":t?"隐藏密码":"显示密码",children:(0,vt.jsx)(hs,{children:t?"visibility":"visibility_off"})})})}function fs({checked:e,onChange:n,prefix:t=`同意${Ct.iv}`}){return(0,vt.jsxs)("label",{className:"auth-agreement",children:[(0,vt.jsx)("input",{type:"checkbox",checked:e,onChange:e=>n(e.target.checked)}),(0,vt.jsxs)("span",{children:[t," ",(0,vt.jsx)("a",{href:"#agreement",onClick:e=>e.preventDefault(),children:"《用户协议》"})," 和 ",(0,vt.jsx)("a",{href:"#privacy",onClick:e=>e.preventDefault(),children:"《隐私政策》"})]})]})}function xs({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2800);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsxs)("div",{className:"auth-toast",role:"status",children:[(0,vt.jsx)(hs,{children:"check_circle"}),e]}):null}function js({text:e}){return e?(0,vt.jsxs)("div",{className:"auth-form-alert",children:[(0,vt.jsx)(hs,{children:"error_outline"}),e]}):null}function bs({onTenantResolved:e}){const[t,s]=n().useState(sessionStorage.getItem("im-tenant-code")||""),[i,o]=n().useState(""),[a,r]=n().useState(!1);return(0,vt.jsxs)("div",{className:"auth-landing",children:[(0,vt.jsx)("button",{className:"auth-top-link",type:"button",onClick:()=>ds("enterprise-register"),children:"企业注册"}),(0,vt.jsxs)("form",{className:"auth-landing-form",onSubmit:async n=>{n.preventDefault();const s=t.trim();if(!s||s.length>64)o(s?"企业码不能超过 64 个字符":"请输入企业码");else{r(!0),o("");try{const n=await(0,zt.lX)(s);sessionStorage.setItem("im-tenant-code",n.tenant.code||s),sessionStorage.setItem("im-tenant-name",n.tenant.name||n.tenant.code||s),e(n,s),ds("login")}catch(e){o("企业码不存在或已停用,请核实后重试")}finally{r(!1)}}},children:[(0,vt.jsx)(us,{}),(0,vt.jsx)(ps,{value:t,onChange:e=>{s(e.target.value),o("")},placeholder:"请输入企业码",autoComplete:"organization",maxLength:"64",error:i,autoFocus:!0}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!t.trim()||a,children:a?"进入中…":"进入企业"})]}),(0,vt.jsx)("button",{className:"auth-bottom-link",type:"button",onClick:()=>ds("enterprise-feedback"),children:"遇到问题?"})]})}function ys({tenantName:e,login:t,loginDisabled:s,persist:i,errorText:o,errorLevel:a,onLoginRequest:r,onPersistenceChange:l,onError:c}){const[d,h]=n().useState(t||""),[u,g]=n().useState(""),[p,m]=n().useState(!1);return n().useEffect(()=>{i||l(!0)},[]),n().useEffect(()=>{"err"===a&&o&&g("")},[o,a]),(0,vt.jsxs)("div",{className:"auth-landing auth-login-page",children:[(0,vt.jsxs)("button",{type:"button",className:"auth-back-link",onClick:()=>{c&&c(),ds("tenant")},children:[(0,vt.jsx)(hs,{children:"arrow_back_ios_new"}),"切换企业"]}),(0,vt.jsxs)("form",{className:"auth-landing-form",onSubmit:e=>{e.preventDefault(),d.trim()&&u&&p&&!s&&r(d.trim(),u)},children:[(0,vt.jsx)(us,{tenantName:e}),(0,vt.jsx)(js,{text:"err"===a?o:""}),(0,vt.jsx)(ps,{value:d,onChange:e=>h(e.target.value),placeholder:"请输入用户名/手机号",autoComplete:"username"}),(0,vt.jsx)(ms,{value:u,onChange:e=>g(e.target.value),placeholder:"请输入密码",autoComplete:"current-password"}),(0,vt.jsx)("div",{className:"auth-row auth-row-end",children:(0,vt.jsx)("button",{type:"button",className:"auth-text-button",onClick:()=>ds("reset"),children:"忘记密码"})}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!d.trim()||!u||!p||s,children:s?"登录中…":"登录"}),(0,vt.jsxs)("p",{className:"auth-switch",children:["没有账户? ",(0,vt.jsx)("button",{type:"button",onClick:()=>ds("register"),children:"马上注册"})]})]}),(0,vt.jsx)(fs,{checked:p,onChange:m})]})}function ws(){const[e,t]=n().useState(""),[s,i]=n().useState(""),[o,a]=n().useState(null),[r,l]=n().useState({}),[c,d]=n().useState(!1),[h,u]=n().useState(!1),[g,p]=n().useState(1),[m,f]=n().useState("");return n().useEffect(()=>()=>o&&URL.revokeObjectURL(o.url),[o]),(0,vt.jsxs)("div",{className:"auth-page",children:[(0,vt.jsx)(gs,{title:"企业注册"}),(0,vt.jsxs)("main",{className:"auth-content auth-content-narrow",children:[(0,vt.jsxs)("ol",{className:"auth-steps",children:[(0,vt.jsxs)("li",{className:"active",children:[(0,vt.jsx)("span",{children:"1"}),(0,vt.jsx)("b",{children:"填写企业信息"})]}),(0,vt.jsxs)("li",{className:h?"active":"",children:[(0,vt.jsx)("span",{children:"2"}),(0,vt.jsx)("b",{children:"确定信息"})]}),(0,vt.jsxs)("li",{className:h?"active":"",children:[(0,vt.jsx)("span",{children:"3"}),(0,vt.jsx)("b",{children:"提交审核"})]})]}),(0,vt.jsxs)("form",{className:"auth-form",onSubmit:async n=>{n.preventDefault();const t={};if(ls.test(e)||(t.creditCode="请输入 18 位统一社会信用代码"),s&&!cs.test(s)&&(t.email="请输入有效的企业邮箱"),l(t),!Object.keys(t).length){d(!0);try{let n="";o&&(n=(await(0,zt.rW)(o.blob,"enterprise_license")).file_id);const t=await(0,zt.jP)({credit_code:e,enterprise_email:s,license_file_id:n,tenant_code_hint:sessionStorage.getItem("im-tenant-code")||""});p(Math.max(1,Math.round((t.estimated_review_hours||24)/24))),u(!0),f("提交成功,我们会尽快联系你")}catch(e){l({...t,form:e.message||"提交失败,请稍后重试"})}finally{d(!1)}}},children:[(0,vt.jsx)(js,{text:r.form}),(0,vt.jsx)("label",{className:"auth-label",children:"统一社会信用代码"}),(0,vt.jsx)(ps,{value:e,onChange:e=>t(e.target.value.trim().toUpperCase().replace(/[^0-9A-Z]/g,"")),placeholder:"请输入18位统一社会信用代码",maxLength:"18",error:r.creditCode,action:(0,vt.jsx)("button",{type:"button",className:"auth-inline-icon",onClick:()=>f("扫码识别暂不可用,请手动输入"),children:(0,vt.jsx)(hs,{children:"qr_code_scanner"})})}),(0,vt.jsx)("p",{className:"auth-help",children:"请填写营业执照上的统一社会信用代码"}),(0,vt.jsxs)("label",{className:"auth-label",children:["上传营业执照 ",(0,vt.jsx)("span",{children:"选填"})]}),(0,vt.jsxs)("label",{className:"auth-upload"+(r.file?" invalid":""),children:[(0,vt.jsx)("input",{type:"file",accept:"image/jpeg,image/png,image/webp,application/pdf",onChange:e=>{const n=e.target.files[0];n&&(n.size>10485760||!["image/jpeg","image/png","image/webp","application/pdf"].includes(n.type)?l({...r,file:"支持 JPG、PNG、WebP、PDF,文件不超过 10MB"}):(o&&URL.revokeObjectURL(o.url),a({name:n.name,type:n.type,url:URL.createObjectURL(n),blob:n}),l({...r,file:""})))}}),o&&"application/pdf"!==o.type?(0,vt.jsx)("img",{src:o.url,alt:"营业执照预览"}):(0,vt.jsx)(hs,{children:"add_photo_alternate"}),(0,vt.jsx)("strong",{children:o?o.name:"点击上传营业执照"}),(0,vt.jsx)("small",{children:"支持 JPG、PNG、WebP、PDF,不超过 10MB"})]}),o?(0,vt.jsx)("button",{type:"button",className:"auth-remove-file",onClick:()=>{URL.revokeObjectURL(o.url),a(null)},children:"移除文件"}):null,r.file?(0,vt.jsx)("div",{className:"auth-field-error",children:r.file}):null,(0,vt.jsxs)("label",{className:"auth-label",children:["企业邮箱 ",(0,vt.jsx)("span",{children:"选填"})]}),(0,vt.jsx)(ps,{icon:"mail_outline",value:s,onChange:e=>i(e.target.value),placeholder:"请输入企业邮箱",type:"email",error:r.email}),(0,vt.jsx)("p",{className:"auth-help",children:"用于接收审核结果及企业通知"}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:h||c||18!==e.length,children:h?"已提交":c?"提交中…":"提交资料"}),(0,vt.jsxs)("p",{className:"auth-review-time",children:[(0,vt.jsx)(hs,{children:"schedule"}),"资料提交后,预计 ",g," 个工作日完成审核"]})]})]}),(0,vt.jsx)(xs,{message:m,onDone:()=>f("")})]})}function vs(){const[e,t]=n().useState(""),[s,i]=n().useState([]),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState("");return(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg",children:[(0,vt.jsx)(gs,{title:"意见反馈"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow",children:(0,vt.jsxs)("form",{className:"auth-form",onSubmit:async n=>{n.preventDefault();const o=e.trim().length;if(o<10||o>300)a("问题描述需为 10 至 300 个字符");else{l(!0);try{const n=[];for(const e of s){const t=await(0,zt.rW)(e.blob,"tenant_entry_feedback");n.push(t.file_id)}await(0,zt.q8)({description:e.trim(),tenant_code_hint:sessionStorage.getItem("im-tenant-code")||"",screenshot_file_ids:n}),d("已收到反馈,我们会尽快处理"),s.forEach(e=>URL.revokeObjectURL(e.url)),t(""),i([]),a("")}catch(e){a(e.message||"提交失败,请稍后重试")}finally{l(!1)}}},children:[(0,vt.jsx)("label",{className:"auth-label",children:"问题反馈"}),(0,vt.jsx)("textarea",{value:e,maxLength:"300",onChange:e=>{t(e.target.value),a("")},placeholder:"为了更好的帮您解决问题,请在提交问题时上传截图信息,方便我们更快速的帮助您解决问题。",className:o?"invalid":""}),(0,vt.jsxs)("div",{className:"auth-counter",children:[e.length,"/300"]}),o?(0,vt.jsx)("div",{className:"auth-field-error",children:o}):null,(0,vt.jsxs)("label",{className:"auth-label",children:["图片(",s.length,"/9)"]}),(0,vt.jsxs)("div",{className:"auth-screenshot-grid",children:[s.map((e,n)=>(0,vt.jsxs)("div",{className:"auth-screenshot",children:[(0,vt.jsx)("img",{src:e.url,alt:e.name}),(0,vt.jsx)("button",{type:"button",onClick:()=>{URL.revokeObjectURL(e.url),i(s.filter((e,t)=>t!==n))},"aria-label":"删除截图",children:(0,vt.jsx)(hs,{children:"close"})})]},e.url)),s.length<9?(0,vt.jsxs)("label",{className:"auth-add-screenshot",children:[(0,vt.jsx)("input",{type:"file",multiple:!0,accept:"image/jpeg,image/png,image/webp",onChange:e=>{const n=Array.from(e.target.files||[]).slice(0,9-s.length).filter(e=>e.size<=10485760&&["image/jpeg","image/png","image/webp"].includes(e.type));i(s.concat(n.map(e=>({name:e.name,url:URL.createObjectURL(e),blob:e}))))}}),(0,vt.jsx)(hs,{children:"photo_camera"}),(0,vt.jsx)("span",{children:"点击上传"})]}):null]}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:e.trim().length<10||r,children:r?"提交中…":"提交"})]})}),(0,vt.jsx)(xs,{message:c,onDone:()=>d("")})]})}function ks({phone:e,scene:t="register",onChallenge:s,onError:i}){const[o,a]=n().useState(0),[r,l]=n().useState(!1);return n().useEffect(()=>{if(!o)return;const e=window.setTimeout(()=>a(e=>e-1),1e3);return()=>window.clearTimeout(e)},[o]),(0,vt.jsx)("button",{type:"button",className:"auth-code-button",disabled:r||o>0||!as.test(e),onClick:async()=>{if(!(r||o>0)&&as.test(e)){l(!0);try{const n=await(0,zt.aQ)(t,e);s(n.challenge_id),a(n.resend_after_seconds||60)}catch(e){i&&i(e.message||"获取验证码失败"),e.details&&e.details.retry_after_seconds&&a(e.details.retry_after_seconds),e.details&&e.details.challenge_id&&s(e.details.challenge_id)}finally{l(!1)}}},children:o>0?`${o}s`:r?"发送中…":"获取验证码"})}function Cs({errorText:e,errorLevel:t,persist:s,onImRegisterRequest:i,onPersistenceChange:o}){const[a,r]=n().useState({username:"",phone:"",code:"",password:"",invite:""}),[l,c]=n().useState(""),[d,h]=n().useState(!1),[u,g]=n().useState({}),[p,m]=n().useState(!1),f=!!a.phone;return n().useEffect(()=>{s||o(!0)},[]),n().useEffect(()=>{"err"===t&&e&&m(!1)},[e,t]),(0,vt.jsxs)("div",{className:"auth-landing auth-register-page",children:[(0,vt.jsxs)("form",{className:"auth-landing-form auth-register-form",onSubmit:async e=>{e.preventDefault();const n={};if(a.username||a.phone||(n.username="用户名和手机号至少填写一项"),a.username&&!os.test(a.username)&&(n.username="用户名仅支持 1-10 位小写字母或数字"),f?(as.test(a.phone)||(n.phone="请输入 11 位手机号"),l?/^\d{6}$/.test(a.code)||(n.code="请输入 6 位验证码"):n.code="请先获取验证码"):rs.test(a.invite)||(n.invite="用户名注册需填写 5 位字母邀请码"),a.password.length<8&&(n.password="密码至少 8 位"),g(n),!Object.keys(n).length){m(!0);try{if(f){const e=await(0,zt.sd)(l,a.code),n=a.username||"+86"+a.phone;i(n,a.password,a.username||"",{username:a.username||"",phone:a.phone,invite_code:a.invite||""},{meth:"tel",val:a.phone,resp:e.verification_token,params:{challenge_id:l}})}else i(a.username,a.password,a.username,{username:a.username,phone:"",invite_code:a.invite},null)}catch(e){g({...n,code:e.message||"验证码错误或已过期"}),m(!1)}}},children:[(0,vt.jsx)(us,{tenantName:sessionStorage.getItem("im-tenant-name")||Ct.iv}),(0,vt.jsx)(js,{text:"err"===t?e:""}),(0,vt.jsx)(ps,{value:a.username,onChange:e=>r({...a,username:e.target.value.replace(/[^a-z0-9]/g,"").slice(0,10)}),placeholder:"请输入用户名",error:u.username,autoComplete:"username"}),(0,vt.jsx)(ps,{value:a.phone,onChange:e=>r({...a,phone:e.target.value.replace(/\D/g,"").slice(0,11)}),placeholder:"请输入手机号",error:u.phone,inputMode:"numeric"}),(0,vt.jsx)(ps,{value:a.code,onChange:e=>r({...a,code:e.target.value.replace(/\D/g,"").slice(0,6)}),placeholder:"请输入短信验证码",inputMode:"numeric",error:u.code,action:(0,vt.jsx)(ks,{phone:a.phone,scene:"register",onChallenge:c,onError:e=>g(n=>({...n,code:e}))})}),(0,vt.jsx)(ms,{value:a.password,onChange:(x="password",e=>r({...a,[x]:e.target.value})),placeholder:"请输入密码",autoComplete:"new-password",error:u.password}),(0,vt.jsx)(ps,{value:a.invite,onChange:e=>r({...a,invite:e.target.value.replace(/[^A-Za-z]/g,"").slice(0,5)}),placeholder:"请输入邀请码(非必填)",error:u.invite,autoCapitalize:"off",autoCorrect:"off"}),f?null:(0,vt.jsx)("p",{className:"auth-help",children:"未绑定手机号无法自助找回密码,忘记密码后只能联系企业管理员重置"}),(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!a.username&&!a.phone||!a.password||!d||p,children:p?"注册中…":"注册"}),(0,vt.jsxs)("p",{className:"auth-switch",children:["已有",Ct.iv,"账号? ",(0,vt.jsx)("button",{type:"button",onClick:()=>ds("login"),children:"登录"})]})]}),(0,vt.jsx)(fs,{checked:d,onChange:h,prefix:`注册即认同${Ct.iv}`})]});var x}function zs(){const[e,t]=n().useState({phone:"",code:"",password:"",confirm:""}),[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState(""),h=n=>s=>t({...e,[n]:s.target.value});return(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg",children:[(0,vt.jsx)(gs,{title:"忘记密码",back:"login"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow auth-reset-content",children:(0,vt.jsxs)("form",{className:"auth-list-form",onSubmit:async n=>{if(n.preventDefault(),!as.test(e.phone))return a("请输入 11 位手机号");if(!s||!/^\d{6}$/.test(e.code))return a("请先获取并输入 6 位验证码");if(e.password.length<8)return a("密码至少 8 位");if(e.password!==e.confirm)return a("两次输入的密码不一致");l(!0),a("");try{const n=await(0,zt.RE)(s,e.code);await(0,zt.R4)(n.reset_token,e.password),d("密码修改成功,请重新登录"),window.setTimeout(()=>ds("login"),1200)}catch(e){a(e.message||"验证码错误或已过期"),l(!1)}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"手机号"}),(0,vt.jsx)("input",{value:e.phone,onChange:n=>t({...e,phone:n.target.value.replace(/\D/g,"").slice(0,11)}),placeholder:"请输入手机号",inputMode:"numeric"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证码"}),(0,vt.jsx)("input",{value:e.code,onChange:n=>t({...e,code:n.target.value.replace(/\D/g,"").slice(0,6)}),placeholder:"请输入验证码",inputMode:"numeric"}),(0,vt.jsx)(ks,{phone:e.phone,scene:"reset_password",onChallenge:i,onError:a})]}),(0,vt.jsx)("div",{className:"auth-list-gap"}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"设置密码"}),(0,vt.jsx)("input",{type:"password",value:e.password,onChange:h("password"),placeholder:"至少 8 位"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"再次输入"}),(0,vt.jsx)("input",{type:"password",value:e.confirm,onChange:h("confirm"),placeholder:"请再次确定密码"})]}),o?(0,vt.jsxs)("div",{className:"auth-form-alert",children:[(0,vt.jsx)(hs,{children:"error_outline"}),o]}):null,(0,vt.jsx)("button",{className:"auth-primary auth-sticky-action",type:"submit",disabled:!e.phone||!e.code||!e.password||!e.confirm||r,children:r?"提交中…":"修改密码"})]})}),(0,vt.jsx)(xs,{message:c,onDone:()=>d("")})]})}const _s="set_independent_password";function Ss({authenticated:e,hashParams:t}){const s=t&&t.ym,[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(0),[u,g]=n().useState(!1),[p,m]=n().useState("");n().useEffect(()=>{if(!d)return;const e=window.setTimeout(()=>h(e=>e-1),1e3);return()=>window.clearTimeout(e)},[d]);const f=n().useCallback(async()=>{g(!0),m("");try{const e=await(0,zt.cd)(_s);r(e.challenge_id),o(e.phone_mask),h(e.resend_after_seconds||60)}catch(e){m("REALNAME_REQUIRED"===e.reason?"需要先完成实名认证并绑定手机号":e.message||"获取验证码失败"),e.details&&e.details.retry_after_seconds&&h(e.details.retry_after_seconds),e.details&&e.details.challenge_id&&r(e.details.challenge_id),e.details&&e.details.phone_mask&&o(e.details.phone_mask)}finally{g(!1)}},[]);return n().useEffect(()=>{f()},[f]),(0,vt.jsxs)("div",{className:"auth-page auth-soft-bg auth-identity-check-page",children:[(0,vt.jsx)(gs,{title:"身份验证",back:e?"security":"login"}),(0,vt.jsx)("main",{className:"auth-content auth-content-narrow auth-reset-content",children:(0,vt.jsxs)("form",{className:"auth-list-form",onSubmit:async e=>{if(e.preventDefault(),a&&6===l.length&&!u){g(!0);try{const e=await(0,zt.r8)(a,l);sessionStorage.setItem("im-action-token:"+_s,JSON.stringify(e)),ds("independent-password",s?{ym:s}:void 0)}catch(e){m(e.message||"验证码错误")}finally{g(!1)}}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"手机号"}),(0,vt.jsx)("input",{value:i,readOnly:!0,placeholder:"获取中…"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证码"}),(0,vt.jsx)("input",{value:l,onChange:e=>c(e.target.value.replace(/\D/g,"").slice(0,6)),placeholder:"请输入验证码",inputMode:"numeric"}),(0,vt.jsx)("button",{type:"button",className:"auth-code-button",disabled:u||d>0,onClick:f,children:d>0?`${d}s`:"获取验证码"})]}),p?(0,vt.jsx)("div",{className:"auth-field-error",children:p}):null,(0,vt.jsx)("button",{className:"auth-primary auth-sticky-action",type:"submit",disabled:6!==l.length||u,children:"确定"})]})})]})}function Ns({authenticated:e=!1}){const[t,s]=n().useState("loading"),[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(!1);n().useEffect(()=>{(0,zt.II)().then(e=>{s(e.status),o(e.masked_name||""),r(e.masked_id_number||"")}).catch(e=>{g(e.message||"加载实名状态失败"),s("load_error")})},[]);const f="unverified"===t||"rejected"===t;return"loading"===t||"load_error"===t?(0,vt.jsxs)("div",{className:"auth-page auth-realname-page",children:[(0,vt.jsx)(gs,{title:"实名认证",back:e?"security":"login"}),(0,vt.jsx)("p",{className:"auth-privacy-note",style:{margin:"2rem 1rem"},children:"load_error"===t?u||"加载失败,请重试":"加载中…"})]}):(0,vt.jsxs)("div",{className:"auth-page auth-realname-page",children:[(0,vt.jsx)(gs,{title:"实名认证",back:e?"security":"login"}),(0,vt.jsxs)("div",{className:"auth-realname-hero",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"实名认证"}),(0,vt.jsx)("span",{children:"更加真实,更受欢迎"})]}),(0,vt.jsx)(hs,{children:"verified_user"})]}),(0,vt.jsxs)("main",{className:"auth-realname-content",children:[(0,vt.jsx)("h2",{children:"请您使用有效身份证信息认证"}),(0,vt.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),l.trim().length<2||!/^\d{17}[\dXx]$/.test(d))g("请输入有效姓名和 18 位身份证号码");else{m(!0);try{const e=await(0,zt.uX)({name:l.trim(),id_type:"cn_id",id_number:d.toUpperCase()});s(e.status||"pending"),g(""),(0,zt.II)().then(e=>{e.masked_name&&o(e.masked_name),e.masked_id_number&&r(e.masked_id_number)}).catch(()=>{})}catch(e){g(e.message||"提交失败,请稍后重试")}finally{m(!1)}}},children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"姓名"}),(0,vt.jsx)("input",{value:f?l:i||l,onChange:e=>c(e.target.value),readOnly:!f,placeholder:"请输入真实姓名"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"证件号码"}),(0,vt.jsx)("input",{value:f?d:a||d,onChange:e=>h(e.target.value),readOnly:!f,placeholder:"请输入证件号码"})]}),u?(0,vt.jsx)("div",{className:"auth-field-error",children:u}):null,(0,vt.jsx)("button",{className:"auth-primary",type:"submit",disabled:!f||p,children:"verified"===t?"已实名":"pending"===t?"审核中":p?"提交中…":"提交"})]}),(0,vt.jsxs)("p",{className:"auth-privacy-note",children:[(0,vt.jsx)(hs,{children:"info"}),"我们将获取您的姓名、证件号用于认证,信息会被严格保护"]})]})]})}function Ts(){return(0,vt.jsxs)("div",{className:"auth-page auth-reminder-demo",children:[(0,vt.jsxs)("div",{className:"auth-demo-chat",children:[(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsxs)("div",{className:"auth-demo-search",children:[(0,vt.jsx)(hs,{children:"search"}),"搜索"]}),["系统消息","文件助手","项目协作群","陈经理"].map((e,n)=>(0,vt.jsxs)("div",{className:"auth-demo-row",children:[(0,vt.jsx)("span",{children:e[0]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("b",{children:e}),(0,vt.jsx)("small",{children:n?"最近一条消息内容":"安全通知与账号动态"})]})]},e))]}),(0,vt.jsx)("div",{className:"auth-modal-backdrop",children:(0,vt.jsxs)("div",{className:"auth-modal",children:[(0,vt.jsx)("h2",{children:"实名认证提醒"}),(0,vt.jsx)("p",{children:"根据国家法律法规要求,您需先进行实名认证才能使用该项 APP"}),(0,vt.jsx)("button",{className:"auth-primary",onClick:()=>ds("realname"),children:"去实名认证"})]})})]})}function Bs({authenticated:e,hashParams:t}){const s=t&&t.ym,[i,o]=n().useState(""),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(!1),u=["0000","1111","2222","3333","4444","5555","6666","7777","8888","9999","0123","1234","2345","3456","4567","5678","6789","9876","8765","7654","6543","5432","4321","3210"];return(0,vt.jsxs)("div",{className:"auth-page",children:[(0,vt.jsx)(gs,{title:"",back:e?"security":"login"}),(0,vt.jsxs)("main",{className:"auth-pin-content",children:[(0,vt.jsx)("h1",{children:"设置独立密码"}),(0,vt.jsxs)("div",{className:"auth-pin-wrap",children:[(0,vt.jsx)("div",{className:"auth-pin-boxes","aria-hidden":"true",children:[0,1,2,3].map(e=>(0,vt.jsx)("span",{children:i[e]?"●":""},e))}),(0,vt.jsx)("input",{className:"auth-pin-input",type:"text",value:i,onChange:e=>o(e.target.value.replace(/\D/g,"").slice(0,4)),inputMode:"numeric",autoComplete:"off","aria-label":"四位独立密码",autoFocus:!0})]}),a?(0,vt.jsx)("div",{className:"auth-field-error",children:a}):null,(0,vt.jsx)("button",{className:"auth-primary",disabled:4!==i.length||d,onClick:async e=>{if(e.preventDefault(),u.includes(i))return void r("请勿使用连续或重复数字");const n=sessionStorage.getItem("im-action-token:"+_s),t=n&&JSON.parse(n).action_token;if(t){h(!0);try{const e=await(0,zt._B)(i,"youth_mode",t);sessionStorage.removeItem("im-action-token:"+_s),o("");const n=e&&e.enable_action_token;if(n&&"enable"===s)try{const e=await(0,zt.K2)();return await(0,zt.YU)(e.policy_version,n),r(""),c("青少年模式已开启"),void window.setTimeout(()=>ds("youth-mode-on"),600)}catch(e){return r("独立密码已设置,但自动开启未成功:"+(e.message||"请返回重试")),void window.setTimeout(()=>ds("youth-mode-off"),1200)}if("disable"===s)return r(""),c("独立密码已重置,请使用新密码关闭青少年模式"),void window.setTimeout(()=>ds("youth-mode-verify",{ym:"disable"}),800);r(""),c("独立密码设置成功")}catch(e){r(e.message||"设置失败,请返回重新验证身份")}finally{h(!1)}}else r("身份验证已过期,请返回重新验证")},children:d?"提交中…":"确定"})]}),(0,vt.jsx)(xs,{message:l,onDone:()=>c("")})]})}function Ps({view:e,hashParams:t,onTenantResolved:s,authenticated:i=!1,login:o,loginDisabled:a,persist:r,errorText:l,errorLevel:c,onLoginRequest:d,onPersistenceChange:h,onImRegisterRequest:u,onError:g}){const p=sessionStorage.getItem("im-tenant-name")||"";switch(n().useEffect(()=>{g&&g()},[e]),e){case"tenant":default:return(0,vt.jsx)(bs,{onTenantResolved:s||(()=>{})});case"login":return(0,vt.jsx)(ys,{tenantName:p,login:o,loginDisabled:a,persist:r,errorText:l,errorLevel:c,onLoginRequest:d,onPersistenceChange:h,onError:g});case"enterprise-register":return(0,vt.jsx)(ws,{});case"enterprise-feedback":return(0,vt.jsx)(vs,{});case"register":return(0,vt.jsx)(Cs,{errorText:l,errorLevel:c,persist:r,onImRegisterRequest:u,onPersistenceChange:h});case"reset":return(0,vt.jsx)(zs,{});case"identity-check":return(0,vt.jsx)(Ss,{authenticated:i,hashParams:t});case"realname":case"realname-verified":return(0,vt.jsx)(Ns,{authenticated:i});case"realname-reminder":return(0,vt.jsx)(Ts,{});case"independent-password":return(0,vt.jsx)(Bs,{authenticated:i,hashParams:t})}}const qs=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"topic",n):is.A.removeUrlParam(t,"topic"),is.A.navigateTo(t)},Ms=[{id:"quote",icon:"format_quote",label:"引用"},{id:"copy",icon:"content_copy",label:"复制"},{id:"favorite",icon:"inventory_2",label:"收藏"},{id:"translate",icon:"translate",label:"翻译"},{id:"forward",icon:"reply",label:"转发"},{id:"recall",icon:"undo",label:"撤回",gated:!0},{id:"delete",icon:"delete_outline",label:"删除",gated:!0},{id:"select",icon:"select_all",label:"多选"},{id:"group_recall",icon:"restart_alt",label:"群撤回"}];function As({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Es({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2200);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"messages-toast",role:"status",children:e}):null}function Is({item:e,small:n=!1}){const t="messages-avatar "+(n?"small ":"")+"tone-"+(e.tone||"blue");return(0,vt.jsxs)("div",{className:t,children:[e.avatar?(0,vt.jsx)("img",{src:e.avatar,alt:""}):(0,vt.jsx)(As,{children:e.icon||"person"}),void 0!==e.online?(0,vt.jsx)("span",{className:e.online?"online":"offline"}):null]})}function Ds(e){if(!e)return"";const n=new Date(e),t=new Date,s=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),i=Math.round((s(t)-s(n))/864e5),o=()=>n.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"});return 0===i?o():1===i?"昨天"+o():i<7?["周日","周一","周二","周三","周四","周五","周六"][n.getDay()]:n.toLocaleDateString("zh-CN",{month:"numeric",day:"numeric"})}function Us(e){const n=new Date(e),t=String(n.getHours()).padStart(2,"0"),s=String(n.getMinutes()).padStart(2,"0");return`${n.getMonth()+1}月${n.getDate()}日 ${t}:${s}`}function Rs(){return(0,vt.jsxs)("nav",{className:"messages-bottom-nav","aria-label":"主导航",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),"workbench")),children:[(0,vt.jsx)(As,{children:"dashboard"}),(0,vt.jsx)("span",{children:"工作台"})]}),(0,vt.jsxs)("button",{type:"button",className:"active",children:[(0,vt.jsx)(As,{children:"person"}),(0,vt.jsx)("span",{children:"消息"})]})]})}function Ls({onClose:e,onAction:n,permissions:t}){const s=[{id:"friends",icon:"group",label:"朋友"},{id:"profile",icon:"person_outline",label:"我的"},{id:"create-group",icon:"add_comment",label:"创建群组",permission:"create_group"},{id:"add-friend",icon:"person_add_alt",label:"添加好友",permission:"user_search"},{id:"scan",icon:"qr_code_scanner",label:"扫一扫",permission:"scan_qr"}].filter(e=>!e.permission||!t||!1!==t[e.permission]);return(0,vt.jsx)("div",{className:"messages-menu-backdrop",onMouseDown:e,children:(0,vt.jsx)("div",{className:"messages-quick-menu",onMouseDown:e=>e.stopPropagation(),role:"menu",children:s.map(e=>(0,vt.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>n(e),children:[(0,vt.jsx)(As,{children:e.icon}),(0,vt.jsx)("span",{children:e.label})]},e.id))})})}function Os({allowSkip:e,onDismiss:n}){return(0,vt.jsx)("div",{className:"auth-modal-backdrop",onClick:e?n:void 0,children:(0,vt.jsxs)("div",{className:"auth-modal",onClick:e=>e.stopPropagation(),children:[e?(0,vt.jsx)("button",{type:"button",className:"auth-modal-close","aria-label":"关闭",onClick:n,children:(0,vt.jsx)(As,{children:"close"})}):null,(0,vt.jsx)("h2",{children:"实名认证提醒"}),(0,vt.jsx)("p",{children:"根据国家法律法规要求,您需先进行实名认证才能使用该项 APP"}),(0,vt.jsx)("button",{className:"auth-primary",onClick:()=>qs("realname"),children:"去实名认证"})]})})}function Fs({view:e,connected:t,chatList:s,myUserId:i,onTopicSelected:o,onOpenScanner:a}){const[r,l]=n().useState(""),[c,d]=n().useState("messages-menu"===e),[h,u]=n().useState(""),[g]=(0,It.sK)(i?"bootstrap:"+i:null,zt.Jv,[i]),p="messages-offline"===e||!i||!1===t,m=function(e,n){return e&&0!==e.length?e.map((e,t)=>{const s="function"==typeof e.latestMessage?e.latestMessage():null;let i=e.private&&e.private.comment?e.private.comment:"暂无消息";s&&(i=function(e){if("string"==typeof e||null==e)return e||"";if(Array.isArray(e.ent)&&e.ent.length){const n={IM:"[图片]",VD:"[视频]",AU:"[语音]",EX:"[文件]",TC:"[名片]",VC:"[通话]"}[e.ent[0].tp];if(n)return n}return"string"==typeof e.text&&e.text?e.text:"string"==typeof e.comment&&e.comment?e.comment:"string"==typeof e.title&&e.title?"[聊天记录] "+e.title:e.txt||"[消息]"}(s.content)),s&&s.from===n&&(i="我:"+i);const o="string"==typeof e.topic&&e.topic.startsWith("grp");return{id:e.topic||e.user||String(t),title:(0,Et.TP)(e.topic,e.public,"未命名会话"),summary:i,time:Ds(e.touched),unread:Math.max(Number(e.unread)||0,0),avatar:(0,Lt.to)(e.public&&e.public.photo),icon:o?"group":"person",online:o?void 0:!!e.online,muted:!!(e.acs&&e.acs.isMuted&&e.acs.isMuted()),pinned:!(!e.private||!e.private.pinned)}}):[]}(s,i).sort((e,n)=>(n.pinned?1:0)-(e.pinned?1:0)),f=function(e){if(!e||!e.entries)return[];const n=[],t=e.entries.system_messages;t&&t.enabled&&n.push({id:"system",title:"系统消息",summary:"最新公告",icon:"notifications",tone:"orange",system:!0,unread:t.unread_count||0});const s=e.entries.file_assistant;return s&&s.enabled&&n.push({id:"files",title:"文件助手",summary:"你上传1份文件",icon:"folder",tone:"green",fileAssistant:!0,topic:s.topic,unread:s.unread_count||0}),n}(g).concat(m),x=f.filter(e=>`${e.title}${e.summary}`.toLowerCase().includes(r.trim().toLowerCase())),j=function(e){return e&&0!==e.length?e.filter(e=>e.topic&&wt.Tinode.isP2PTopicName(e.topic)).slice().sort((e,n)=>new Date(n.touched||0).getTime()-new Date(e.touched||0).getTime()).slice(0,8).map(e=>({id:e.topic,name:e.public&&e.public.fn||"未命名",avatar:(0,Lt.to)(e.public&&e.public.photo),online:!!e.online})):[]}(s),b=g&&g.security&&g.security.realname,[y]=(0,It.sK)(i?"realname-status:"+i:null,zt.II,[i]),[w,v]=n().useState(!1),k=i&&y?`realname-reminder-dismissed:${i}:${y.submission_id||y.status}`:null;let C=0;try{C=k?Number(localStorage.getItem(k)||0):0}catch(e){}const z=C>0&&Date.now()-C<function(e){const n=/^(\d+)\s*([hdm])$/i.exec(String(e||"").trim());if(!n)return 864e5;const t=Number(n[1]);return"d"===n[2].toLowerCase()?864e5*t:"h"===n[2].toLowerCase()?36e5*t:6e4*t}(b&&b.remind_after),_=!(!y||w||z||"unverified"!==y.status&&"rejected"!==y.status);return(0,vt.jsxs)("div",{className:"messages-product-page",children:[(0,vt.jsxs)("header",{className:"messages-home-header",children:[p?(0,vt.jsxs)("div",{className:"messages-connection",children:[(0,vt.jsx)("span",{className:"messages-spinner"}),"加载中"]}):(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsx)("button",{type:"button",className:"messages-menu-button",onClick:()=>d(!0),"aria-label":"更多功能",children:(0,vt.jsx)(As,{children:"menu"})})]}),(0,vt.jsxs)("main",{className:"messages-home-content",children:[(0,vt.jsxs)("label",{className:"messages-search",children:[(0,vt.jsx)(As,{children:"search"}),(0,vt.jsx)("input",{value:r,onChange:e=>l(e.target.value),placeholder:"搜索"})]}),j.length>0?(0,vt.jsxs)("section",{className:"messages-frequent",children:[(0,vt.jsx)("h2",{children:"常联系的人"}),(0,vt.jsx)("div",{className:"messages-frequent-scroll",children:j.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>o&&o(e.id),children:[(0,vt.jsx)(Is,{item:e,small:!0}),(0,vt.jsx)("span",{children:e.name})]},e.id))})]}):null,(0,vt.jsxs)("section",{className:"messages-conversations","aria-label":"会话列表",children:[x.map(e=>(0,vt.jsxs)("button",{type:"button",className:"messages-conversation"+(e.pinned?" pinned":""),onClick:()=>(e=>{e.system?qs("system-messages"):e.fileAssistant&&e.topic&&o?o(e.topic):s&&s.length&&o?o(e.id):qs("chat-standard")})(e),children:[(0,vt.jsx)(Is,{item:e}),(0,vt.jsxs)("span",{className:"messages-conversation-copy",children:[(0,vt.jsx)("strong",{children:e.title}),(0,vt.jsx)("small",{children:e.summary})]}),(0,vt.jsxs)("span",{className:"messages-conversation-meta",children:[(0,vt.jsx)("time",{children:e.time}),e.unread?(0,vt.jsx)("b",{children:e.unread>99?"99+":e.unread}):e.muted?(0,vt.jsx)(As,{children:"notifications_off"}):null]})]},e.id)),0===x.length?r.trim()?(0,vt.jsxs)("div",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"search_off"}),(0,vt.jsx)("p",{children:"未找到相关会话"})]}):(0,vt.jsxs)("div",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"forum"}),(0,vt.jsx)("p",{children:"暂无会话"})]}):null]})]}),(0,vt.jsx)(Rs,{}),c?(0,vt.jsx)(Ls,{onClose:()=>d(!1),onAction:e=>(d(!1),"friends"===e.id?qs("address-book"):"profile"===e.id?qs("personal-center"):"create-group"===e.id?qs("group-list"):"add-friend"===e.id?qs("add-friend"):"scan"===e.id&&a?a():void u("scan"===e.id?"扫码功能暂不可用":`${e.label}页面将在对应章节中提供`)),permissions:g&&g.permissions}):null,(0,vt.jsx)(Es,{message:h,onDone:()=>u("")}),_?(0,vt.jsx)(Os,{allowSkip:!(!b||!b.allow_skip),onDismiss:()=>{if(k)try{localStorage.setItem(k,String(Date.now()))}catch(e){}v(!0)}}):null]})}function $s(){const[e,t]=n().useState(!0),[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(null);n().useEffect(()=>{(0,zt.Jv)().then(e=>l(e.message_policy&&e.message_policy.supported_actions)).catch(()=>{})},[]);const c=Ms.filter(e=>!e.gated||!r||r.includes(e.id));return(0,vt.jsxs)("div",{className:"message-actions-page",children:[(0,vt.jsxs)("header",{className:"messages-sub-header",children:[(0,vt.jsx)("button",{onClick:()=>qs("messages-home"),"aria-label":"返回",children:(0,vt.jsx)(As,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"项目协作群"}),(0,vt.jsx)("span",{})]}),(0,vt.jsxs)("main",{className:"message-actions-chat",children:[(0,vt.jsx)("p",{className:"message-time",children:"今天 10:24"}),(0,vt.jsxs)("div",{className:"message-demo-row",children:[(0,vt.jsx)(Is,{item:{avatar:"img/bkg/p09.jpg"}}),(0,vt.jsx)("button",{type:"button",className:"message-demo-bubble",onContextMenu:e=>{e.preventDefault(),t(!0)},children:"明天上午十点开项目会,请准时参加。"})]}),(0,vt.jsxs)("div",{className:"message-demo-row mine",children:[(0,vt.jsx)("button",{type:"button",className:"message-demo-bubble mine",onContextMenu:e=>{e.preventDefault(),t(!0)},children:"收到,我会提前准备材料。"}),(0,vt.jsx)(Is,{item:{avatar:"img/bkg/p05.jpg"}})]}),o?(0,vt.jsxs)("p",{className:"message-operation-result",children:["已选择:",Ms.find(e=>e.id===o).label]}):null]}),(0,vt.jsxs)("footer",{className:"message-demo-composer",children:[(0,vt.jsx)(As,{children:"mic_none"}),(0,vt.jsx)("span",{children:"输入消息"}),(0,vt.jsx)(As,{children:"sentiment_satisfied_alt"}),(0,vt.jsx)(As,{children:"add_circle_outline"})]}),e?(0,vt.jsx)("div",{className:"message-action-backdrop",onMouseDown:()=>t(!1),children:(0,vt.jsx)("div",{className:"message-action-menu",onMouseDown:e=>e.stopPropagation(),role:"menu",children:c.map(e=>(0,vt.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>(e=>{a(e.id),"copy"===e.id&&navigator.clipboard&&navigator.clipboard.writeText("明天上午十点开项目会,请准时参加。").catch(()=>{}),i(`${e.label}操作已选择`),t(!1)})(e),children:[(0,vt.jsx)("span",{children:e.label}),(0,vt.jsx)(As,{children:e.icon})]},e.id))})}):null,(0,vt.jsx)(Es,{message:s,onDone:()=>i("")})]})}const Vs={"group.created":"你创建了一个新群聊","group.join_request.created":"有人申请加入你管理的群聊","group.announcement.updated":"群公告有更新","group.member.joined":"有成员加入了群聊","group.member.left":"有成员退出了群聊","group.member.updated":"群成员资料有更新","group.mute.updated":"群禁言设置有变更","group.owner.transferred":"群主已转让","group.role.updated":"群成员角色有变更","group.settings.updated":"群设置有更新","group.join_request.accepted":"你的入群申请已通过","group.join_request.rejected":"你的入群申请被拒绝",accepted:"对方已通过你的好友申请",rejected:"对方拒绝了你的好友申请",continue:"你确认继续了一次安全风险提示",cancel:"你取消了一次风险操作确认"};function Hs(e){const n=(e.summary||"").trim();return Vs[n]||Vs[e.event_type]||n||"您有一条新的系统通知。"}function Ws({authenticated:e}){const[t,s]=n().useState([]),[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(!0),[d,h]=n().useState(""),[u,g]=n().useState("");return n().useEffect(()=>{(0,zt.Q2)().then(e=>{s(e.items||[]),o(e.next_cursor||"")}).catch(e=>h(e.message||"加载失败")).finally(()=>c(!1))},[]),(0,vt.jsxs)("div",{className:"system-messages-page",children:[(0,vt.jsxs)("header",{className:"messages-sub-header",children:[(0,vt.jsx)("button",{onClick:()=>{is.A.goBack()||qs("messages-home")},"aria-label":"返回",children:(0,vt.jsx)(As,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"系统消息"}),(0,vt.jsx)("span",{})]}),(0,vt.jsxs)("main",{className:"system-notification-list",children:[l?(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"hourglass_empty"}),"加载中…"]}):null,d?(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"error_outline"}),d]}):null,l||d||0!==t.length?null:(0,vt.jsxs)("p",{className:"messages-empty",children:[(0,vt.jsx)(As,{children:"notifications_none"}),"暂无系统消息"]}),t.map(n=>(0,vt.jsxs)("article",{className:n.read_at?"read":"",onClick:()=>(e=>{e.read_at||(s(n=>n.map(n=>n.id===e.id?{...n,read_at:(new Date).toISOString()}:n)),(0,zt.w4)(e.id).catch(()=>{s(n=>n.map(n=>n.id===e.id?{...n,read_at:null}:n))}))})(n),children:[(0,vt.jsx)("time",{children:Us(n.created_at)}),(0,vt.jsxs)("div",{className:"system-notification-card",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsx)("h2",{children:n.title}),n.read_at?null:(0,vt.jsx)("span",{children:"新"})]}),(0,vt.jsx)("p",{children:Hs(n)}),n.action&&n.action.device?(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"设备:"}),(0,vt.jsx)("dd",{children:n.action.device})]}),n.action.ip?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"IP地址:"}),(0,vt.jsx)("dd",{children:n.action.ip})]}):null]}):null,n.action&&"string"==typeof n.action.topic&&n.action.topic.startsWith("grp")?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:e=>{e.stopPropagation(),qs("group-settings",n.action.topic)},children:["查看群聊 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):"friend.request.created"===n.event_type?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:e=>{e.stopPropagation(),qs("friend-requests")},children:["查看新朋友 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):n.action&&(n.action.device||n.action.ip)?(0,vt.jsxs)("button",{type:"button",className:"system-security-link",onClick:n=>{n.stopPropagation(),qs(e?"security":"identity-check")},children:["前往安全设置 ",(0,vt.jsx)(As,{children:"chevron_right"})]}):null,(0,vt.jsxs)("footer",{children:["保持警惕",(0,vt.jsx)("br",{}),Ct.iv,"安全团队"]})]})]},n.id)),i?(0,vt.jsx)("button",{type:"button",className:"system-notification-load-more",disabled:a,onClick:()=>{!a&&i&&(r(!0),(0,zt.Q2)(i).then(e=>{s(n=>n.concat(e.items||[])),o(e.next_cursor||"")}).catch(()=>{}).finally(()=>r(!1)))},children:a?"加载中…":"加载更多"}):null]}),(0,vt.jsx)(Es,{message:u,onDone:()=>g("")})]})}function Ks(e){switch(e.view){case"system-messages":return(0,vt.jsx)(Ws,{authenticated:!!e.myUserId});case"message-actions":return(0,vt.jsx)($s,{});default:return(0,vt.jsx)(Fs,{...e})}}const Xs=e=>is.A.navigateTo(e),Gs={"chat-inbound-request":{relationship:"pending_inbound",variant:"inbound-request"},"chat-inbound-message":{relationship:"pending_inbound",variant:"inbound-message"},"chat-outbound-request":{relationship:"pending_outbound",variant:"outbound-request"},"chat-status":{relationship:"friend",variant:"status"},"chat-friend":{relationship:"friend",variant:"friend"},"chat-media":{relationship:"friend",variant:"media"},"chat-blocked":{relationship:"blocked_by_peer",variant:"blocked"},"chat-deleted":{relationship:"none",variant:"deleted"},"chat-standard":{relationship:"friend",variant:"standard"},"chat-attachments":{relationship:"friend",variant:"attachments"},"chat-mixed":{relationship:"friend",variant:"mixed"},"chat-contact-card":{relationship:"friend",variant:"contact-card"}},Js=[{id:"photo",icon:"image",label:"照片"},{id:"camera",icon:"photo_camera",label:"拍摄"},{id:"call",icon:"call",label:"视频语音"},{id:"card",icon:"contact_page",label:"名片"},{id:"file",icon:"folder",label:"文件"},{id:"favorite",icon:"bookmark",label:"收藏"},{id:"video",icon:"videocam",label:"视频通话"}];function Ys({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Zs({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2200);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function Qs({mine:e=!1,peer:n=!1}){return(0,vt.jsx)("div",{className:"chat-avatar",children:(0,vt.jsx)("img",{src:e?"img/bkg/p05.jpg":n?"img/bkg/p09.jpg":"img/bkg/p14.jpg",alt:""})})}function ei({value:e,failedReason:n}){return e||n?(0,vt.jsxs)("div",{className:"chat-message-status"+(n?" failed":""),children:[n?(0,vt.jsx)(Ys,{children:"error"}):null,(0,vt.jsx)("span",{children:n||e})]}):null}function ni(){return(0,vt.jsxs)("div",{className:"chat-file-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"365天艾宾浩斯记忆曲线复习计划.pdf"}),(0,vt.jsx)("small",{children:"115KB"})]}),(0,vt.jsx)("span",{className:"chat-file-icon",children:"P"})]})}function ti({onOpen:e}){return(0,vt.jsxs)("button",{type:"button",className:"chat-contact-card",onClick:e,children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("img",{src:"img/bkg/p15.jpg",alt:""}),(0,vt.jsx)("strong",{children:"栗子来了"})]}),(0,vt.jsx)("small",{children:"个人名片 · 账号 QL1024"})]})}function si({duration:e=6,playing:n=!1}){return(0,vt.jsxs)("div",{className:"chat-voice-message",children:[(0,vt.jsx)(Ys,{children:n?"graphic_eq":"volume_up"}),(0,vt.jsxs)("strong",{children:[e,"″"]}),(0,vt.jsx)("span",{})]})}function ii({progress:e}){return(0,vt.jsxs)("div",{className:"chat-image-message",children:[(0,vt.jsx)("img",{src:"img/bkg/p22.jpg",alt:"会话图片"}),e<100?(0,vt.jsxs)("div",{className:"chat-upload-progress",children:[(0,vt.jsx)("progress",{value:e,max:"100"}),(0,vt.jsxs)("strong",{children:[e,"%"]})]}):null]})}function oi({mine:e=!1,children:n,status:t,failedReason:s,type:i="text",onOpenCard:o}){return(0,vt.jsxs)("div",{className:"chat-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(Qs,{peer:!0}),(0,vt.jsxs)("div",{className:"chat-message-stack",children:["file"===i?(0,vt.jsx)(ni,{}):"card"===i?(0,vt.jsx)(ti,{onOpen:o}):(0,vt.jsx)("div",{className:"chat-bubble "+i+(e?" mine":""),children:n}),(0,vt.jsx)(ei,{value:t,failedReason:s})]}),e?(0,vt.jsx)(Qs,{mine:!0}):null]})}function ai({children:e,action:n,onAction:t}){return(0,vt.jsxs)("div",{className:"chat-relation-notice",children:[(0,vt.jsx)("span",{children:e}),n?(0,vt.jsx)("button",{type:"button",onClick:t,children:n}):null]})}function ri({variant:e,uploadProgress:n,sendStatus:t,onRetry:s,onOpenCard:i,onFriendAction:o}){if("inbound-request"===e||"inbound-message"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{children:"inbound-request"===e?"请求添加你为好友":"我是祈万事安好"}),(0,vt.jsx)(ai,{children:"以上是打招呼的消息"}),(0,vt.jsxs)("div",{className:"chat-request-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>o("declined"),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:()=>o("accepted"),children:"通过申请"})]})]});if("outbound-request"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已发送",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"好友申请已发送,等待对方处理"})]});if("status"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:t,children:"我是祈万事安好"}),(0,vt.jsx)(ai,{children:"你已添加安妮,现在可以开始聊天。"})]});if("friend"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"8月27日 11:11"}),(0,vt.jsx)(ai,{children:"你们已成为好友,现在可以开始聊天"}),(0,vt.jsx)(oi,{children:"我们已成为好友,现在我们可以开始聊天"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你还好吗?"})]});if("media"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"8月27日 11:11"}),(0,vt.jsx)(ai,{children:"接雨彤创建群聊"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你还好吗?"}),(0,vt.jsx)(oi,{mine:!0,type:"image",children:(0,vt.jsx)(ii,{progress:n})}),(0,vt.jsx)(oi,{mine:!0,type:"voice",children:(0,vt.jsx)(si,{duration:6,playing:!0})}),(0,vt.jsx)(oi,{type:"voice",children:(0,vt.jsx)(si,{duration:6})})]});if("blocked"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"你已添加了安妮,现在可以开始聊天。"}),(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这边在网上看见你的留言,你想了解什么课程了"}),(0,vt.jsx)(oi,{children:"有课程辅导的老师?对新手友好吗?"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"消息已发送,但被对方拒收了",children:"这个不用担心特别好上手,学起来特别简单"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"消息已发送,但被对方拒收了",children:"拉黑我这么速度,真的牛"})]});if("deleted"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你好我是XXX推荐过来的,这边想了解课程是吗"}),(0,vt.jsx)(oi,{children:"这边目前找到更好的课程,不考虑你们家,谢谢"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这是我们导师名片,你可以加一下,对比一下价格"}),(0,vt.jsx)(ai,{action:"发送朋友验证",onAction:()=>o("resent"),children:"你还不是他(她)朋友。"}),(0,vt.jsx)(oi,{mine:!0,failedReason:"发送失败,需重新添加好友",children:"这么突然把我删了,真心累了"}),(0,vt.jsx)(ai,{action:"发送朋友验证",onAction:()=>o("resent"),children:"你还不是他(她)朋友。"})]});const a=(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 11:40"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"请求添加你为好友"}),(0,vt.jsx)(ai,{children:"你已添加了安妮,现在可以开始聊天。"}),(0,vt.jsx)("p",{className:"chat-time",children:"7月30日 13:00"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"你好,我是王珊珊,很高兴认识你,你怎么称呼"}),(0,vt.jsx)(oi,{children:"你好,我是安妮,想跟你咨询一下设计课程,方便?"})]});return"standard"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,status:"未读",children:"非常方便,这是我们的课程目录,你可以看看了解一下"}),(0,vt.jsx)(oi,{mine:!0,type:"file",status:"未读"})]}):"mixed"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,type:"file",status:"已送达"}),(0,vt.jsx)(oi,{type:"card",onOpenCard:i})]}):"contact-card"===e?(0,vt.jsxs)(vt.Fragment,{children:[a,(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"这是我们导师名片,你可以加一下,有问题随时联系他"}),(0,vt.jsx)(oi,{mine:!0,type:"card",status:"已送达",onOpenCard:i}),(0,vt.jsx)(oi,{children:"好的,非常感谢,那我这边就直接联系他吧"}),(0,vt.jsx)(oi,{mine:!0,status:"已读",children:"没问题的,有疑问随时沟通"})]}):a}function li({onChoose:e}){return(0,vt.jsx)("div",{className:"chat-attachment-panel",children:Js.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>e(n),children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Ys,{children:n.icon})}),(0,vt.jsx)("small",{children:n.label})]},n.id))})}function ci({relationship:e,attachmentOpen:t,setAttachmentOpen:s,onSend:i}){const[o,a]=n().useState(sessionStorage.getItem("im-chat-draft")||""),r="friend"===e,l=e=>{a(e),sessionStorage.setItem("im-chat-draft",e)};return(0,vt.jsxs)("form",{className:"chat-composer"+(r?"":" locked"),onSubmit:e=>{e.preventDefault(),r&&o.trim()&&(i(o.trim()),l(""))},children:[(0,vt.jsx)("button",{type:"button","aria-label":"语音",disabled:!r,onClick:()=>Xs("voice-ready"),children:(0,vt.jsx)(Ys,{children:"record_voice_over"})}),(0,vt.jsx)("input",{value:o,onChange:e=>l(e.target.value),placeholder:r?"输入消息":"pending_inbound"===e?"请先处理好友申请":"pending_outbound"===e?"等待对方通过好友申请":"当前无法发送消息",disabled:!r}),(0,vt.jsx)("button",{type:"button","aria-label":"表情",disabled:!r,onClick:()=>Xs("emoji-panel"),children:(0,vt.jsx)(Ys,{children:"sentiment_satisfied_alt"})}),o.trim()?(0,vt.jsx)("button",{type:"submit",className:"chat-send-button",children:"发送"}):(0,vt.jsx)("button",{type:"button","aria-label":"更多",disabled:!r,onClick:()=>s(!t),children:(0,vt.jsx)(Ys,{children:t?"keyboard":"add_circle_outline"})})]})}function di({view:e}){const t=Gs[e]||Gs["chat-standard"],[s,i]=n().useState(t.relationship),[o,a]=n().useState(t.variant),[r,l]=n().useState("attachments"===t.variant),[c,d]=n().useState("media"===t.variant?76:100),[h,u]=n().useState("发送中"),[g,p]=n().useState([]),[m,f]=n().useState("");return n().useEffect(()=>{if("status"!==o)return;const e=["已发送","已送达","已读"].map((e,n)=>window.setTimeout(()=>u(e),600*(n+1)));return()=>e.forEach(e=>window.clearTimeout(e))},[o]),n().useEffect(()=>{if("media"!==o||c>=100)return;const e=window.setTimeout(()=>d(e=>Math.min(e+4,100)),350);return()=>window.clearTimeout(e)},[o,c]),(0,vt.jsxs)("div",{className:"chat-product-page",children:[(0,vt.jsxs)("header",{className:"chat-product-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Xs("messages-home"),"aria-label":"返回消息",children:(0,vt.jsx)(Ys,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:"接语彤"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("i",{}),"在线"]})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>Xs("friend-settings"),"aria-label":"会话设置",children:(0,vt.jsx)(Ys,{children:"more_vert"})})]}),(0,vt.jsxs)("main",{className:"chat-product-timeline",children:[(0,vt.jsx)(ri,{variant:o,uploadProgress:c,sendStatus:h,onRetry:()=>f("正在重试发送"),onOpenCard:()=>Xs("friend-profile"),onFriendAction:e=>{"declined"===e?(i("none"),f("已拒绝好友申请")):(i("accepted"===e?"friend":"pending_outbound"),"accepted"===e&&a("friend"),f("accepted"===e?"好友申请已通过":"好友验证已发送"))}}),g.map(e=>(0,vt.jsx)(oi,{mine:!0,status:e.status,children:e.text},e.id))]}),"friend"===s?null:(0,vt.jsxs)("div",{className:"chat-permission-banner",children:[(0,vt.jsx)(Ys,{children:"info_outline"}),"pending_inbound"===s?"通过好友申请后即可发送消息":"pending_outbound"===s?"好友申请正在等待处理":"none"===s?"对方已不是你的好友,发送消息前需重新验证":"当前关系状态下无法发送消息"]}),(0,vt.jsx)(ci,{relationship:s,attachmentOpen:r,setAttachmentOpen:l,onSend:e=>{const n=Date.now();p(t=>t.concat({id:n,text:e,status:"发送中"})),window.setTimeout(()=>p(e=>e.map(e=>e.id===n?{...e,status:"已发送"}:e)),600)}}),r&&"friend"===s?(0,vt.jsx)(li,{onChoose:e=>{f(`已选择${e.label},上传接口将在联调阶段接入`),"card"===e.id&&Xs("chat-contact-card"),"photo"!==e.id&&"camera"!==e.id||Xs("media-uploading"),"call"!==e.id&&"video"!==e.id||Xs("call-history"),"file"===e.id&&Xs("upload-file"),"favorite"===e.id&&Xs("favorites")}}):null,(0,vt.jsx)(Zs,{message:m,onDone:()=>f("")})]})}const hi=e=>is.A.navigateTo(e),ui=["compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle"],gi=[{id:"all",name:"所有人",note:"提醒群内所有成员",avatar:"campaign"},{id:"annie",name:"安妮",note:"产品设计组",image:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",note:"前端开发组",image:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",note:"市场运营组",image:"img/bkg/p14.jpg"},{id:"chen",name:"陈晨",note:"项目管理组",image:"img/bkg/p05.jpg"}],pi=[{id:"file",name:"文件助手",note:"仅自己可见",icon:"folder_special"},{id:"team",name:"产品研发群",note:"18人",image:"img/bkg/p22.jpg"},{id:"annie",name:"安妮",note:"在线",image:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",note:"刚刚活跃",image:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",note:"市场运营组",image:"img/bkg/p14.jpg"}],mi=["😀","😄","😂","🥰","😎","🤔","👍","👏","🎉","❤️","🔥","💡","✅","🙏","💪","🌟","📌","🚀"];function fi({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function xi({item:e}){return(0,vt.jsx)("span",{className:"compose-avatar",children:e.image?(0,vt.jsx)("img",{src:e.image,alt:""}):(0,vt.jsx)(fi,{children:e.icon||e.avatar||"person"})})}function ji({title:e="产品研发群",subtitle:n="18人",onMore:t}){return(0,vt.jsxs)("header",{className:"chat-product-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("messages-home"),"aria-label":"返回消息",children:(0,vt.jsx)(fi,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:e}),n?(0,vt.jsx)("span",{children:n}):null]}),(0,vt.jsx)("button",{type:"button",onClick:t,"aria-label":"会话设置",children:(0,vt.jsx)(fi,{children:"more_vert"})})]})}function bi({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function yi({mine:e=!1,duration:n=8,unread:t=!1}){return(0,vt.jsxs)("div",{className:"compose-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(xi,{item:gi[1]}),(0,vt.jsxs)("button",{type:"button",className:"compose-voice-bubble"+(e?" mine":""),"aria-label":`播放${n}秒语音`,children:[(0,vt.jsx)(fi,{children:"graphic_eq"}),(0,vt.jsx)("span",{className:"compose-wave"}),(0,vt.jsxs)("strong",{children:[n,"″"]}),t?(0,vt.jsx)("i",{}):null]}),e?(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}}):null]})}function wi({mine:e=!1,children:n,selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":t?"取消选择":"选择消息",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row"+(e?" mine":""),children:[e?null:(0,vt.jsx)(xi,{item:gi[2]}),(0,vt.jsx)("div",{className:"compose-text-bubble"+(e?" mine":""),children:n}),e?(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}}):null]})]})}function vi({progress:e,failed:n=!1,selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":"选择图片",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row mine",children:[(0,vt.jsxs)("div",{className:"compose-media-card",children:[(0,vt.jsx)("img",{src:"img/bkg/p22.jpg",alt:"会议白板照片"}),e<100||n?(0,vt.jsxs)("div",{className:"compose-media-state",children:[(0,vt.jsx)(fi,{children:n?"refresh":"cloud_upload"}),(0,vt.jsx)("strong",{children:n?"上传失败,点击重试":`${e}%`}),n?null:(0,vt.jsx)("progress",{value:e,max:"100"})]}):null]}),(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}})]})]})}function ki(){return(0,vt.jsxs)("div",{className:"compose-message-row",children:[(0,vt.jsx)(xi,{item:gi[3]}),(0,vt.jsxs)("button",{type:"button",className:"compose-video-card","aria-label":"播放视频",children:[(0,vt.jsx)("img",{src:"img/bkg/p23.jpg",alt:"项目讨论视频封面"}),(0,vt.jsx)(fi,{children:"play_circle"}),(0,vt.jsx)("small",{children:"00:24"})]})]})}function Ci({progress:e=100,name:n="产品需求说明书.pdf",selected:t,onSelect:s}){return(0,vt.jsxs)("div",{className:"compose-select-row"+(void 0!==t?" selectable":""),children:[void 0!==t?(0,vt.jsx)("button",{type:"button",className:"compose-check"+(t?" checked":""),onClick:s,"aria-label":"选择文件",children:(0,vt.jsx)(fi,{children:t?"check":""})}):null,(0,vt.jsxs)("div",{className:"compose-message-row mine",children:[(0,vt.jsxs)("div",{className:"compose-file-card",children:[(0,vt.jsx)("span",{className:"compose-file-type",children:"PDF"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:n}),(0,vt.jsxs)("small",{children:["2.4 MB · ",e<100?`上传中 ${e}%`:"已发送"]}),e<100?(0,vt.jsx)("progress",{value:e,max:"100"}):null]}),(0,vt.jsx)(fi,{children:e<100?"close":"download"})]}),(0,vt.jsx)(xi,{item:{image:"img/bkg/p05.jpg"}})]})]})}function zi({mode:e,uploadProgress:n,selected:t,toggleSelected:s}){const i="message-multiselect"===e||"favorite-success"===e;return(0,vt.jsxs)("main",{className:"chat-product-timeline compose-timeline",children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),(0,vt.jsx)(wi,{children:"上午的评审结论已经整理好了,大家有空看一下。"}),(0,vt.jsx)(wi,{mine:!0,selected:i?t.includes("text"):void 0,onSelect:()=>s("text"),children:"好的,我补充一下交互细节。"}),"mentions-message"===e?(0,vt.jsxs)(wi,{children:[(0,vt.jsx)("strong",{className:"compose-mention",children:"@安妮 @栗子来了"})," 下午三点一起确认新版流程。"]}):null,["media-uploading","media-gallery","media-retry"].includes(e)?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(yi,{duration:6}),(0,vt.jsx)(vi,{progress:"media-retry"===e?48:n,failed:"media-retry"===e}),"media-gallery"===e?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(yi,{mine:!0,duration:12,unread:!0}),(0,vt.jsx)(ki,{})]}):null]}):null,["file-message","message-multiselect","favorite-success"].includes(e)?(0,vt.jsx)(Ci,{selected:i?t.includes("file"):void 0,onSelect:()=>s("file")}):null,i?(0,vt.jsx)(vi,{progress:100,selected:t.includes("image"),onSelect:()=>s("image")}):null]})}function _i({onEmoji:e,onDelete:n}){return(0,vt.jsxs)("section",{className:"compose-emoji-panel","aria-label":"表情面板",children:[(0,vt.jsxs)("nav",{children:[(0,vt.jsx)("button",{type:"button",className:"active","aria-label":"最近使用",children:(0,vt.jsx)(fi,{children:"schedule"})}),(0,vt.jsx)("button",{type:"button","aria-label":"笑脸",children:(0,vt.jsx)(fi,{children:"sentiment_satisfied_alt"})}),(0,vt.jsx)("button",{type:"button","aria-label":"收藏表情",children:(0,vt.jsx)(fi,{children:"favorite_border"})})]}),(0,vt.jsx)("div",{children:mi.map(n=>(0,vt.jsx)("button",{type:"button",onClick:()=>e(n),children:n},n))}),(0,vt.jsx)("button",{type:"button",className:"compose-emoji-delete",onClick:n,"aria-label":"删除字符",children:(0,vt.jsx)(fi,{children:"backspace"})})]})}function Si({mode:e,draft:n,setDraft:t,onSend:s,setMode:i}){const o=["voice-ready","voice-hold","voice-recording"].includes(e),a=["emoji-panel","emoji-message"].includes(e);return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("form",{className:"compose-toolbar",onSubmit:e=>{e.preventDefault(),s()},children:[(0,vt.jsx)("button",{type:"button",onClick:()=>i(o?"compose-keyboard":"voice-ready"),"aria-label":o?"切换键盘":"切换语音",children:(0,vt.jsx)(fi,{children:o?"keyboard":"record_voice_over"})}),o?(0,vt.jsx)("button",{type:"button",className:"compose-hold-button",onPointerDown:()=>i("voice-hold"),onPointerUp:()=>i("media-uploading"),children:"按住说话"}):(0,vt.jsx)("input",{autoFocus:"compose-keyboard"===e,value:n,onChange:e=>t(e.target.value),onKeyDown:n=>{"@"===n.key&&"mentions-message"!==e&&window.setTimeout(()=>hi("mentions-select"),0)},placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",onClick:()=>i(a?"compose-keyboard":"emoji-panel"),"aria-label":"表情",children:(0,vt.jsx)(fi,{children:"sentiment_satisfied_alt"})}),n.trim()&&!o?(0,vt.jsx)("button",{type:"submit",className:"compose-send",children:"发送"}):(0,vt.jsx)("button",{type:"button",onClick:()=>hi("upload-file"),"aria-label":"更多",children:(0,vt.jsx)(fi,{children:"add_circle_outline"})})]}),a?(0,vt.jsx)(_i,{onEmoji:e=>t(n+e),onDelete:()=>t(n.slice(0,-1))}):null]})}function Ni({cancel:e=!1}){return(0,vt.jsxs)("div",{className:"compose-record-overlay"+(e?" cancel":""),role:"status",children:[(0,vt.jsx)(fi,{children:e?"delete_outline":"mic"}),(0,vt.jsx)("div",{className:"compose-meter",children:[2,5,8,12,9,6,11,4].map((e,n)=>(0,vt.jsx)("i",{style:{height:2*e+"px"}},n))}),(0,vt.jsx)("strong",{children:e?"松开手指,取消发送":"手指上滑,取消发送"}),(0,vt.jsx)("small",{children:"00:08"})]})}function Ti({complete:e}){const[t,s]=n().useState(""),[i,o]=n().useState(e?["annie","lizi"]:[]),a=gi.filter(e=>e.name.includes(t)||e.note.includes(t));return(0,vt.jsxs)("div",{className:"compose-picker-page",children:[(0,vt.jsxs)("header",{className:"compose-picker-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("compose-keyboard"),children:(0,vt.jsx)(fi,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"选择提醒人"}),(0,vt.jsxs)("button",{type:"button",className:"text",disabled:!i.length,onClick:()=>{sessionStorage.setItem("im-mentions",JSON.stringify(i)),hi("mentions-message")},children:["完成",i.length?`(${i.length})`:""]})]}),(0,vt.jsxs)("label",{className:"compose-search",children:[(0,vt.jsx)(fi,{children:"search"}),(0,vt.jsx)("input",{value:t,onChange:e=>s(e.target.value),placeholder:"搜索群成员"})]}),(0,vt.jsx)("p",{className:"compose-section-title",children:"群成员"}),(0,vt.jsx)("div",{className:"compose-picker-list",children:a.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.id,o(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n));var n},children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsx)("small",{children:e.note})]}),(0,vt.jsx)("i",{className:"compose-checkbox"+(i.includes(e.id)?" checked":""),children:i.includes(e.id)?(0,vt.jsx)(fi,{children:"check"}):null})]},e.id))})]})}function Bi({onToast:e}){const[t,s]=n().useState([{name:"产品需求说明书.pdf",size:"2.4 MB",progress:64}]);return n().useEffect(()=>{if(t.every(e=>e.progress>=100))return;const e=window.setTimeout(()=>s(e=>e.map(e=>({...e,progress:Math.min(100,e.progress+6)}))),300);return()=>window.clearTimeout(e)},[t]),(0,vt.jsxs)("div",{className:"compose-upload-page",children:[(0,vt.jsx)(ji,{title:"上传文件",subtitle:"最多选择 9 个文件",onMore:()=>e("单个文件最大 100 MB")}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"compose-upload-drop",children:[(0,vt.jsx)("input",{type:"file",multiple:!0,onChange:e=>s(Array.from(e.target.files).map(e=>({name:e.name,size:`${Math.max(1,e.size/1024/1024).toFixed(1)} MB`,progress:1})))}),(0,vt.jsx)(fi,{children:"cloud_upload"}),(0,vt.jsx)("strong",{children:"选择文件"}),(0,vt.jsx)("small",{children:"支持文档、压缩包及常用媒体格式"})]}),(0,vt.jsxs)("section",{className:"compose-upload-list",children:[(0,vt.jsx)("h2",{children:"待发送文件"}),t.map(e=>(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{className:"compose-file-type",children:e.name.split(".").pop().slice(0,4).toUpperCase()}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsxs)("small",{children:[e.size," · ",e.progress<100?`上传中 ${e.progress}%`:"上传完成"]}),(0,vt.jsx)("progress",{value:e.progress,max:"100"})]}),(0,vt.jsx)("button",{type:"button","aria-label":"移除文件",onClick:()=>s(n=>n.filter(n=>n.name!==e.name)),children:(0,vt.jsx)(fi,{children:"close"})})]},e.name))]})]}),(0,vt.jsx)("footer",{children:(0,vt.jsxs)("button",{type:"button",disabled:!t.length,onClick:()=>hi("file-message"),children:["发送",t.length?` (${t.length})`:""]})})]})}function Pi({mode:e,onToast:t}){const s="forward-select"!==e,i="forward-individual"===e||"forward-bundle"===e,[o,a]=n().useState(()=>{if(!i)return[];try{return JSON.parse(sessionStorage.getItem("im-forward-targets"))||["team","annie"]}catch(e){return["team","annie"]}}),[r,l]=n().useState(""),[c,d]=n().useState(""),h=pi.filter(e=>e.name.includes(r)||e.note.includes(r));return(0,vt.jsxs)("div",{className:"compose-forward-page",children:[(0,vt.jsxs)("header",{className:"compose-picker-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("message-multiselect"),children:(0,vt.jsx)(fi,{children:"close"})}),(0,vt.jsx)("h1",{children:i?"forward-bundle"===e?"合并转发":"逐条转发":"选择转发对象"}),i?(0,vt.jsx)("span",{}):(0,vt.jsx)("button",{type:"button",className:"text",onClick:()=>hi(s?"forward-select":"forward-multiple"),children:s?"单选":"多选"})]}),i?(0,vt.jsxs)("main",{className:"compose-forward-confirm",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h2",{children:"发送给"}),(0,vt.jsx)("div",{className:"compose-target-summary",children:pi.filter(e=>o.includes(e.id)).map(e=>(0,vt.jsxs)("span",{children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsx)("small",{children:e.name})]},e.id))})]}),(0,vt.jsxs)("section",{className:"compose-forward-preview",children:[(0,vt.jsx)("h2",{children:"forward-bundle"===e?"产品研发群的聊天记录":"将逐条发送 3 条消息"}),(0,vt.jsx)("p",{children:"栗子来了:上午的评审结论已经整理好了"}),(0,vt.jsx)("p",{children:"我:好的,我补充一下交互细节。"}),(0,vt.jsx)("p",{children:"我:[图片]"})]}),(0,vt.jsx)("textarea",{value:c,onChange:e=>d(e.target.value),placeholder:"给朋友留言"}),(0,vt.jsxs)("div",{className:"compose-forward-mode",children:[(0,vt.jsx)("button",{type:"button",className:"forward-individual"===e?"active":"",onClick:()=>hi("forward-individual"),children:"逐条转发"}),(0,vt.jsx)("button",{type:"button",className:"forward-bundle"===e?"active":"",onClick:()=>hi("forward-bundle"),children:"合并转发"})]}),(0,vt.jsx)("button",{type:"button",className:"compose-confirm-send",onClick:()=>{t(`已发送给 ${o.length} 个会话`),window.setTimeout(()=>hi("chat-standard"),900)},children:"发送"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsxs)("label",{className:"compose-search",children:[(0,vt.jsx)(fi,{children:"search"}),(0,vt.jsx)("input",{value:r,onChange:e=>l(e.target.value),placeholder:"搜索会话或联系人"})]}),(0,vt.jsx)("p",{className:"compose-section-title",children:"最近会话"}),(0,vt.jsx)("div",{className:"compose-picker-list",children:h.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{var n;n=e.id,a(e=>e.includes(n)?e.filter(e=>e!==n):s?e.concat(n).slice(0,9):[n]),s||(sessionStorage.setItem("im-forward-targets",JSON.stringify([e.id])),window.setTimeout(()=>hi("forward-individual"),0))},children:[(0,vt.jsx)(xi,{item:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.name}),(0,vt.jsx)("small",{children:e.note})]}),(0,vt.jsx)("i",{className:"compose-checkbox"+(o.includes(e.id)?" checked":""),children:o.includes(e.id)?(0,vt.jsx)(fi,{children:"check"}):null})]},e.id))}),s?(0,vt.jsxs)("footer",{className:"compose-target-footer",children:[(0,vt.jsxs)("span",{children:["已选择 ",o.length,"/9 个会话"]}),(0,vt.jsx)("button",{type:"button",disabled:!o.length,onClick:()=>{sessionStorage.setItem("im-forward-targets",JSON.stringify(o)),hi("forward-individual")},children:"下一步"})]}):null]})]})}function qi({view:e}){const[t,s]=n().useState(e),[i,o]=n().useState(()=>sessionStorage.getItem("im-message-composer-draft")||("emoji-message"===e?"收到啦 ":"")),[a,r]=n().useState("media-uploading"===e?22:100),[l,c]=n().useState("favorite-success"===e?["text","file","image"]:["text","image"]),[d,h]=n().useState("favorite-success"===e?"已收藏 3 条消息":""),u=e=>{o(e),sessionStorage.setItem("im-message-composer-draft",e)};if(n().useEffect(()=>{if("media-uploading"!==t||a>=100)return;const e=window.setTimeout(()=>r(e=>Math.min(100,e+5)),350);return()=>window.clearTimeout(e)},[t,a]),"mentions-select"===e||"mentions-complete"===e)return(0,vt.jsx)(Ti,{complete:"mentions-complete"===e});if("upload-file"===e)return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Bi,{onToast:h}),(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]});if(["forward-select","forward-multiple","forward-individual","forward-bundle"].includes(e))return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Pi,{mode:e,onToast:h}),(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]});const g="voice-hold"===t||"voice-recording"===t,p="message-multiselect"===t||"favorite-success"===t;return(0,vt.jsxs)("div",{className:"chat-product-page message-composer-page",children:[(0,vt.jsx)(ji,{onMore:()=>h("会话设置")}),p?(0,vt.jsxs)("div",{className:"compose-selection-bar",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>hi("chat-standard"),children:(0,vt.jsx)(fi,{children:"close"})}),(0,vt.jsxs)("strong",{children:["已选择 ",l.length," 条"]}),(0,vt.jsx)("button",{type:"button",onClick:()=>c(l.length?[]:["text","file","image"]),children:l.length?"取消全选":"全选"})]}):null,(0,vt.jsx)(zi,{mode:t,uploadProgress:a,selected:l,toggleSelected:e=>c(n=>n.includes(e)?n.filter(n=>n!==e):n.concat(e))}),p?(0,vt.jsxs)("nav",{className:"compose-batch-actions",children:[(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>hi("forward-select"),children:[(0,vt.jsx)(fi,{children:"forward"}),(0,vt.jsx)("span",{children:"转发"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>{s("favorite-success"),h(`已收藏 ${l.length} 条消息`)},children:[(0,vt.jsx)(fi,{children:"bookmark_border"}),(0,vt.jsx)("span",{children:"收藏"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!l.length,onClick:()=>{c([]),h("已删除所选消息")},children:[(0,vt.jsx)(fi,{children:"delete_outline"}),(0,vt.jsx)("span",{children:"删除"})]})]}):(0,vt.jsx)(Si,{mode:t,draft:i,setDraft:u,setMode:s,onSend:()=>{i.trim()&&(h("消息已发送"),u(""))}}),g?(0,vt.jsx)(Ni,{cancel:!1}):null,(0,vt.jsx)(bi,{message:d,onDone:()=>h("")})]})}var Mi=a(9593),Ai=a.n(Mi);const Ei=/^[\uD800-\uDBFF]$/,Ii=/^[\uDC00-\uDFFF]$/,Di=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var Ui;!function(e){e[e.Unknown=1e-13]="Unknown",e[e.Rule=1e-12]="Rule",e[e.DICT=2e-8]="DICT",e[e.Surname=1]="Surname",e[e.Custom=1]="Custom"}(Ui||(Ui={}));function Ri(e){var n;return e.length-((null===(n=e.match(Di))||void 0===n?void 0:n.length)||0)}function Li(e){if(Di.lastIndex=0,!Di.test(e))return e.split("");const n=[];let t=0;for(;t<e.length;){const s=e[t];Ei.test(s)&&Ii.test(e[t+1])?(n.push(e.substring(t,t+2)),t+=2):(n.push(s),t+=1)}return n}class Oi{constructor(){this.NumberDICT=[],this.StringDICT=new Map}get(e){if(e.length>1)return this.StringDICT.get(e);{const n=e.charCodeAt(0);return this.NumberDICT[n]}}set(e,n){if(e.length>1)this.StringDICT.set(e,n);else{const t=e.charCodeAt(0);this.NumberDICT[t]=n}}clear(){this.NumberDICT=[],this.StringDICT.clear()}}const Fi=["zh","ch","sh","z","c","s","b","p","m","f","d","t","n","l","g","k","h","j","q","x","r","y","w",""],$i=["j","q","x"],Vi=["uān","uán","uǎn","uàn","uan","uē","ué","uě","uè","ue","ūn","ún","ǔn","ùn","un","ū","ú","ǔ","ù","u"],Hi={"uān":"üān","uán":"üán","uǎn":"üǎn","uàn":"üàn",uan:"üan","uē":"üē","ué":"üé","uě":"üě","uè":"üè",ue:"üe","ūn":"ǖn","ún":"ǘn","ǔn":"ǚn","ùn":"ǜn",un:"ün","ū":"ǖ","ú":"ǘ","ǔ":"ǚ","ù":"ǜ",u:"ü"},Wi=["ia","ian","iang","iao","ie","iu","iong","ua","uai","uan","uang","ue","ui","uo","üan","üe","van","ve"],Ki={"一":"yì","二":"èr","三":"sān","四":"sì","五":"wǔ","六":"liù","七":"qī","八":"bā","九":"jiǔ","十":"shí","百":"bǎi","千":"qiān","万":"wàn","亿":"yì","单":"dān","两":"liǎng","双":"shuāng","多":"duō","几":"jǐ","十一":"shí yī","零一":"líng yī","第一":"dì yī","一十":"yī shí","一十一":"yī shí yī"},Xi={"重":"chóng","行":"háng","斗":"dǒu","更":"gēng"},Gi=function(){const e={"零一":"líng yī","〇一":"líng yī","十一":"shí yī","一十":"yī shí","第一":"dì yī","一十一":"yī shí yī"};for(let n in Ki)for(let t in Xi){const s=`${Ki[n]} ${Xi[t]}`;e[`${n}${t}`]=s}return e}(),Ji=Object.keys(Gi).map(e=>({zh:e,pinyin:Gi[e],probability:1e-12,length:Ri(e),priority:1,dict:Symbol("rule")})),Yi={"不":{"bú":[4]},"一":{"yí":[4],"yì":[1,2,3]}},Zi={"不":["的","而","之","后","也","还","地"],"一":["的","而","之","后","也","还","是"]},Qi=Object.keys(Yi),eo={"bǎng páng pāng":["膀"],"líng":["〇","伶","凌","刢","囹","坽","夌","姈","婈","孁","岺","彾","掕","昤","朎","柃","棂","櫺","欞","泠","淩","澪","灵","燯","爧","狑","玲","琌","瓴","皊","砱","祾","秢","竛","笭","紷","綾","绫","羐","羚","翎","聆","舲","苓","菱","蓤","蔆","蕶","蛉","衑","裬","詅","跉","軨","輘","酃","醽","鈴","錂","铃","閝","陵","零","霊","霗","霛","霝","靈","駖","魿","鯪","鲮","鴒","鸰","鹷","麢","齡","齢","龄","龗","㥄"],"yī":["一","乊","伊","依","医","吚","咿","噫","壱","壹","夁","嫛","嬄","弌","揖","撎","檹","毉","洢","渏","漪","瑿","畩","祎","禕","稦","繄","蛜","衤","譩","辷","郼","醫","銥","铱","鷖","鹥","黟","黳"],"dīng zhēng":["丁"],"kǎo qiǎo yú":["丂"],"qī":["七","倛","僛","凄","嘁","墄","娸","悽","慼","慽","戚","捿","柒","桤","桼","棲","榿","欺","沏","淒","漆","紪","緀","萋","褄","諆","迉","郪","鏚","霋","魌","鶈"],"shàng":["丄","尙","尚","恦","緔","绱"],"xià":["丅","下","乤","圷","夏","夓","懗","梺","疜","睱","罅","鎼","鏬"],"hǎn":["丆","喊","浫","罕","豃","㘎"],"wàn mò":["万"],"zhàng":["丈","仗","墇","嶂","帐","帳","幛","扙","杖","涱","痮","瘬","瘴","瞕","粀","胀","脹","賬","账","障"],"sān":["三","厁","叁","弎","毵","毶","毿","犙","鬖"],"shàng shǎng shang":["上"],"qí jī":["丌","其","奇"],"bù fǒu":["不"],"yǔ yù yú":["与"],"miǎn":["丏","偭","免","冕","勉","勔","喕","娩","愐","汅","沔","湎","睌","緬","缅","腼","葂","靦","鮸","𩾃"],"gài":["丐","乢","匃","匄","戤","概","槩","槪","溉","漑","瓂","葢","鈣","钙","𬮿"],"chǒu":["丑","丒","侴","吜","杽","瞅","矁","醜","魗"],"zhuān":["专","叀","嫥","専","專","瑼","甎","砖","磗","磚","蟤","諯","鄟","顓","颛","鱄","䏝"],"qiě jū":["且"],"pī":["丕","伓","伾","噼","坯","岯","憵","批","披","炋","狉","狓","砒","磇","礔","礕","秛","秠","耚","豾","邳","鈚","鉟","銔","錃","錍","霹","駓","髬","魾","𬳵"],"shì":["世","丗","亊","事","仕","侍","冟","势","勢","卋","呩","嗜","噬","士","奭","嬕","室","市","式","弑","弒","恀","恃","戺","拭","揓","是","昰","枾","柿","栻","澨","烒","煶","眂","眎","眡","睗","示","礻","筮","簭","舐","舓","襫","視","视","觢","試","誓","諡","謚","试","谥","貰","贳","軾","轼","逝","遾","釈","释","釋","鈰","鉃","鉽","铈","飾","餙","餝","饰","鰘","䏡","𬤊"],"qiū":["丘","丠","坵","媝","恘","恷","楸","秋","秌","穐","篍","緧","萩","蘒","蚯","蝵","蟗","蠤","趥","邱","鞦","鞧","鰌","鰍","鳅","鶖","鹙","龝"],"bǐng":["丙","屛","怲","抦","昞","昺","柄","棅","炳","禀","秉","稟","苪","蛃","邴","鈵","陃","鞆","餅","餠","饼"],"yè":["业","亱","僷","墷","夜","嶪","嶫","抴","捙","擛","擪","擫","晔","曄","曅","曗","曳","曵","枼","枽","業","洂","液","澲","烨","燁","爗","璍","皣","瞱","瞸","礏","腋","葉","謁","谒","邺","鄴","鍱","鐷","靥","靨","頁","页","餣","饁","馌","驜","鵺","鸈"],"cóng":["丛","从","叢","婃","孮","従","徔","徖","悰","樷","欉","淙","灇","爜","琮","藂","誴","賨","賩","錝"],"dōng":["东","倲","冬","咚","埬","岽","崬","徚","昸","東","氡","氭","涷","笗","苳","菄","蝀","鮗","鯟","鶇","鶫","鸫","鼕","𬟽"],"sī":["丝","俬","凘","厮","司","咝","嘶","噝","媤","廝","恖","撕","斯","楒","泀","澌","燍","禗","禠","私","糹","絲","緦","纟","缌","罳","蕬","虒","蛳","蜤","螄","蟖","蟴","鉰","銯","鍶","鐁","锶","颸","飔","騦","鷥","鸶","鼶","㟃"],"chéng":["丞","呈","城","埕","堘","塍","塖","宬","峸","惩","懲","成","承","挰","掁","揨","枨","棖","橙","檙","洆","溗","澂","珵","珹","畻","程","窚","筬","絾","脭","荿","誠","诚","郕","酲","鋮","铖","騬","鯎"],"diū":["丟","丢","銩","铥"],"liǎng":["両","两","兩","唡","啢","掚","緉","脼","蜽","裲","魉","魎","𬜯"],"yǒu":["丣","卣","友","梄","湵","牖","禉","羑","聈","苃","莠","蜏","酉","銪","铕","黝"],"yán":["严","厳","啱","喦","嚴","塩","壛","壧","妍","姸","娫","娮","岩","嵒","嵓","巌","巖","巗","延","揅","昖","楌","檐","櫩","欕","沿","炎","炏","狿","琂","盐","碞","筵","簷","莚","蔅","虤","蜒","言","訁","訮","詽","讠","郔","閆","閻","闫","阎","顏","顔","颜","鹽","麣","𫄧"],"bìng":["並","併","倂","傡","垪","摒","栤","病","窉","竝","誁","靐","鮩"],"sàng sāng":["丧"],"gǔn":["丨","惃","滚","滾","磙","緄","绲","蓘","蔉","衮","袞","輥","辊","鮌","鯀","鲧"],"jiū":["丩","勼","啾","揪","揫","朻","究","糾","纠","萛","赳","阄","鬏","鬮","鳩","鸠"],"gè gě":["个","個","各"],"yā":["丫","圧","孲","庘","押","枒","桠","椏","錏","鐚","鴉","鴨","鵶","鸦","鸭"],"pán":["丬","媻","幋","槃","洀","瀊","爿","盘","盤","磐","縏","蒰","蟠","蹒","蹣","鎜","鞶"],"zhōng zhòng":["中"],"jǐ":["丮","妀","己","戟","挤","掎","撠","擠","橶","泲","犱","脊","虮","蟣","魢","鱾","麂"],"jiè":["丯","介","借","唶","堺","屆","届","岕","庎","徣","戒","楐","犗","玠","琾","界","畍","疥","砎","蚧","蛶","衸","褯","誡","诫","鎅","骱","魪"],"fēng":["丰","仹","偑","僼","凨","凬","凮","妦","寷","封","峯","峰","崶","枫","楓","檒","沣","沨","渢","灃","烽","犎","猦","琒","疯","瘋","盽","砜","碸","篈","蘴","蜂","蠭","豐","鄷","酆","鋒","鎽","鏠","锋","霻","靊","飌","麷"],"guàn kuàng":["丱"],"chuàn":["串","汌","玔","賗","釧","钏"],"chǎn":["丳","产","冁","剷","囅","嵼","旵","浐","滻","灛","產","産","簅","蒇","蕆","諂","譂","讇","谄","鏟","铲","閳","闡","阐","骣","𬊤"],"lín":["临","冧","壣","崊","嶙","斴","晽","暽","林","潾","瀶","燐","琳","璘","瞵","碄","磷","粦","粼","繗","翷","臨","轔","辚","遴","邻","鄰","鏻","阾","隣","霖","驎","鱗","鳞","麐","麟","𬴊","𬭸"],"zhuó":["丵","劅","卓","啄","圴","妰","娺","撯","擆","擢","斫","斮","斱","斲","斵","晫","椓","浊","浞","濁","灼","烵","琸","硺","禚","窡","籗","籱","罬","茁","蠗","蠿","諁","諑","謶","诼","酌","鐲","镯","鵫","鷟","䓬","𬸦"],"zhǔ":["丶","主","劯","嘱","囑","宔","帾","拄","渚","濐","煑","煮","燝","瞩","矚","罜","詝","陼","鸀","麈","𬣞"],"bā":["丷","仈","八","叭","哵","夿","岜","巴","捌","朳","玐","疤","笆","粑","羓","芭","蚆","豝","釟"],"wán":["丸","刓","完","岏","抏","捖","汍","烷","玩","琓","笂","紈","纨","翫","芄","貦","頑","顽"],"dān":["丹","勯","匰","単","妉","媅","殚","殫","甔","眈","砃","箪","簞","耼","耽","聃","聸","褝","襌","躭","郸","鄲","酖","頕"],"wèi wéi":["为"],"jǐng dǎn":["丼"],"lì lí":["丽"],"jǔ":["举","弆","挙","擧","椇","榉","榘","櫸","欅","矩","筥","聥","舉","莒","蒟","襷","踽","齟","龃"],"piě":["丿","苤","鐅","𬭯"],"fú":["乀","伏","俘","凫","刜","匐","咈","哹","垘","孚","岪","巿","帗","幅","幞","弗","彿","怫","扶","柫","栿","桴","氟","泭","浮","涪","澓","炥","玸","甶","畉","癁","祓","福","稪","符","箙","紱","紼","絥","綍","绂","绋","罘","罦","翇","艀","芙","芣","苻","茀","茯","菔","葍","虙","蚨","蜉","蝠","袚","袱","襆","襥","諨","豧","踾","輻","辐","郛","鉘","鉜","韍","韨","颫","髴","鮄","鮲","鳧","鳬","鴔","鵩","黻"],"yí jí":["乁"],"yì":["乂","义","亄","亦","亿","伇","伿","佾","俋","億","兿","刈","劓","劮","勚","勩","匇","呓","呭","呹","唈","囈","圛","坄","垼","埸","奕","嫕","嬑","寱","屹","峄","嶧","帟","帠","幆","廙","异","弈","弋","役","忆","怈","怿","悒","意","憶","懌","懿","抑","挹","敡","易","晹","曀","曎","杙","枍","棭","榏","槸","檍","歝","殔","殪","殹","毅","浂","浥","浳","湙","溢","潩","澺","瀷","炈","焲","熠","熤","熼","燚","燡","燱","獈","玴","異","疫","痬","瘗","瘞","瘱","癔","益","瞖","穓","竩","篒","縊","繶","繹","绎","缢","義","羿","翊","翌","翳","翼","耴","肄","肊","膉","臆","艗","艺","芅","苅","萟","蓺","薏","藙","藝","蘙","虉","蜴","螠","衪","袣","裔","裛","褹","襼","訲","訳","詍","詣","誼","譯","議","讛","议","译","诣","谊","豙","豛","豷","貖","贀","跇","轶","逸","邑","鄓","醷","釴","鈠","鎰","鐿","镒","镱","阣","隿","霬","饐","駅","驛","驿","骮","鮨","鶂","鶃","鶍","鷁","鷊","鷧","鷾","鸃","鹝","鹢","黓","齸","𬬩","㑊","𫄷","𬟁"],"nǎi":["乃","倷","奶","嬭","廼","氖","疓","艿","迺","釢"],"wǔ":["乄","五","仵","伍","侮","倵","儛","午","啎","妩","娬","嫵","庑","廡","忤","怃","憮","摀","武","潕","熓","牾","玝","珷","瑦","甒","碔","舞","躌","迕","逜","陚","鵡","鹉","𣲘"],"jiǔ":["久","乆","九","乣","奺","杦","汣","灸","玖","紤","舏","酒","镹","韭","韮"],"tuō zhé":["乇","杔","馲"],"me mó ma yāo":["么"],"zhī":["之","倁","卮","巵","搘","支","栀","梔","椥","榰","汁","泜","疷","祗","祬","秓","稙","綕","肢","胑","胝","脂","芝","蘵","蜘","衼","隻","鳷","鴲","鼅","𦭜"],"wū wù":["乌"],"zhà":["乍","咤","宱","搾","榨","溠","痄","蚱","詐","诈","醡","霅","䃎"],"hū":["乎","乯","匢","匫","呼","唿","嘑","垀","寣","幠","忽","惚","昒","歑","泘","淴","滹","烀","苸","虍","虖","謼","軤","轷","雐"],"fá":["乏","伐","傠","坺","垡","墢","姂","栰","浌","瞂","笩","筏","罚","罰","罸","藅","閥","阀"],"lè yuè yào lào":["乐","樂"],"yín":["乑","吟","噖","嚚","圁","垠","夤","婬","寅","峾","崟","崯","檭","殥","泿","淫","滛","烎","犾","狺","璌","硍","碒","荶","蔩","訔","訚","訡","誾","鄞","鈝","銀","银","霪","鷣","齦"],"pīng":["乒","俜","娉","涄","甹","砯","聠","艵","頩"],"pāng":["乓","滂","胮","膖","雱","霶"],"qiáo":["乔","侨","僑","嫶","憔","桥","槗","樵","橋","櫵","犞","瞧","硚","礄","荍","荞","蕎","藮","譙","趫","鐈","鞒","鞽","顦"],"hǔ":["乕","琥","萀","虎","虝","錿","鯱"],"guāi":["乖"],"chéng shèng":["乗","乘","娍"],"yǐ":["乙","乛","以","倚","偯","嬟","崺","已","庡","扆","攺","敼","旑","旖","檥","矣","礒","笖","舣","艤","苡","苢","蚁","螘","蟻","裿","踦","輢","轙","逘","酏","釔","鈘","鉯","钇","顗","鳦","齮","𫖮","𬺈"],"háo yǐ":["乚"],"niè miē":["乜"],"qǐ":["乞","企","启","唘","啓","啔","啟","婍","屺","杞","棨","玘","盀","綺","绮","芑","諬","起","邔","闙"],"yě":["也","冶","嘢","埜","壄","漜","野"],"xí":["习","喺","媳","嶍","席","椺","檄","漝","習","蓆","袭","襲","覡","觋","謵","趘","郋","鎴","隰","霫","飁","騱","騽","驨","鰼","鳛","𠅤","𫘬"],"xiāng":["乡","厢","廂","忀","楿","欀","湘","瓖","稥","箱","緗","缃","膷","芗","萫","葙","薌","襄","郷","鄉","鄊","鄕","鑲","镶","香","驤","骧","鱜","麘","𬙋"],"shū":["书","倏","倐","儵","叔","姝","尗","抒","掓","摅","攄","書","枢","梳","樞","殊","殳","毹","毺","淑","瀭","焂","疎","疏","紓","綀","纾","舒","菽","蔬","踈","軗","輸","输","鄃","陎","鮛","鵨"],"dǒu":["乧","抖","枓","蚪","鈄","阧","陡"],"shǐ":["乨","使","兘","史","始","宩","屎","榁","矢","笶","豕","鉂","駛","驶"],"jī":["乩","僟","击","刉","刏","剞","叽","唧","喞","嗘","嘰","圾","基","墼","姬","屐","嵆","嵇","撃","擊","朞","机","枅","樭","機","毄","激","犄","玑","璣","畸","畿","癪","矶","磯","积","積","笄","筓","箕","簊","緁","羁","羇","羈","耭","肌","芨","虀","覉","覊","譏","譤","讥","賫","賷","赍","跻","踑","躋","躸","銈","錤","鐖","鑇","鑙","隮","雞","鞿","韲","飢","饑","饥","魕","鳮","鶏","鶺","鷄","鸄","鸡","齎","齏","齑","𬯀","𫓯","𫓹","𫌀"],"náng":["乪","嚢","欜","蠰","饢"],"jiā":["乫","佳","傢","加","嘉","抸","枷","梜","毠","泇","浃","浹","犌","猳","珈","痂","笳","糘","耞","腵","葭","袈","豭","貑","跏","迦","鉫","鎵","镓","鴐","麚","𬂩"],"jù":["乬","倨","倶","具","剧","劇","勮","埧","埾","壉","姖","屦","屨","岠","巨","巪","怇","惧","愳","懅","懼","拒","拠","昛","歫","洰","澽","炬","烥","犋","秬","窭","窶","簴","粔","耟","聚","虡","蚷","詎","讵","豦","距","踞","躆","遽","邭","醵","鉅","鐻","钜","颶","飓","駏","鮔"],"shí":["乭","十","埘","塒","姼","实","実","寔","實","峕","嵵","时","旹","時","榯","湜","溡","炻","祏","竍","蚀","蝕","辻","遈","鉐","飠","饣","鮖","鰣","鲥","鼫","鼭"],"mǎo":["乮","冇","卯","峁","戼","昴","泖","笷","蓩","鉚","铆"],"mǎi":["买","嘪","荬","蕒","買","鷶"],"luàn":["乱","亂","釠"],"rǔ":["乳","擩","汝","肗","辱","鄏"],"xué":["乴","学","學","峃","嶨","斈","泶","澩","燢","穴","茓","袕","踅","鷽","鸴"],"yǎn":["䶮","乵","俨","偃","儼","兖","兗","厣","厴","噞","孍","嵃","巘","巚","弇","愝","戭","扊","抁","掩","揜","曮","椼","檿","沇","渷","演","琰","甗","眼","罨","萒","蝘","衍","褗","躽","遃","郾","隒","顩","魇","魘","鰋","鶠","黡","黤","黬","黭","黶","鼴","鼹","齴","龑","𬸘","𬙂","𪩘"],"fǔ":["乶","俌","俛","俯","府","弣","抚","拊","撫","斧","椨","滏","焤","甫","盙","簠","腐","腑","蜅","輔","辅","郙","釜","釡","阝","頫","鬴","黼","㕮","𫖯"],"shā":["乷","唦","杀","桬","殺","毮","猀","痧","砂","硰","紗","繺","纱","蔱","裟","鎩","铩","閷","髿","魦","鯊","鯋","鲨"],"nǎ":["乸","雫"],"qián":["乹","亁","仱","偂","前","墘","媊","岒","拑","掮","榩","橬","歬","潛","潜","濳","灊","箝","葥","虔","軡","鈐","鉗","銭","錢","鎆","钤","钱","钳","靬","騚","騝","鰬","黔","黚"],"suǒ":["乺","唢","嗩","所","暛","溑","溹","琐","琑","瑣","索","褨","鎖","鎻","鏁","锁"],"yú":["乻","于","亐","伃","余","堣","堬","妤","娛","娯","娱","嬩","崳","嵎","嵛","愚","扵","揄","旟","楡","楰","榆","欤","歈","歟","歶","渔","渝","湡","漁","澞","牏","狳","玗","玙","瑜","璵","盂","睮","窬","竽","籅","羭","腴","臾","舁","舆","艅","茰","萮","萸","蕍","蘛","虞","虶","蝓","螸","衧","褕","覦","觎","諛","謣","谀","踰","輿","轝","逾","邘","酑","鍝","隅","雓","雩","餘","馀","騟","骬","髃","魚","魣","鮽","鯲","鰅","鱼","鷠","鸆","齵"],"zhù":["乼","伫","佇","住","坾","墸","壴","嵀","拀","杼","柱","樦","殶","注","炷","疰","眝","祝","祩","竚","筯","箸","篫","簗","紵","紸","纻","羜","翥","苎","莇","蛀","註","貯","贮","跓","軴","鉒","鋳","鑄","铸","馵","駐","驻"],"zhě":["乽","者","褶","襵","赭","踷","鍺","锗"],"qián gān":["乾"],"zhì luàn":["乿"],"guī":["亀","圭","妫","媯","嫢","嬀","帰","归","摫","椝","槻","槼","櫷","歸","珪","瑰","璝","瓌","皈","瞡","硅","茥","蘬","規","规","邽","郌","閨","闺","騩","鬶","鬹"],"lǐn lìn":["亃"],"jué":["亅","决","刔","劂","匷","厥","噊","孒","孓","崛","崫","嶥","彏","憠","憰","戄","抉","挗","掘","攫","桷","橛","橜","欮","氒","決","灍","焳","熦","爑","爴","爵","獗","玃","玦","玨","珏","瑴","瘚","矍","矡","砄","絕","絶","绝","臄","芵","蕝","蕨","虳","蟨","蟩","觖","觮","觼","訣","譎","诀","谲","貜","赽","趉","蹷","躩","鈌","鐍","鐝","钁","镢","鴂","鴃","鷢","𫘝","㵐","𫔎"],"le liǎo":["了"],"gè mā":["亇"],"yǔ yú":["予","懙"],"zhēng":["争","佂","凧","姃","媜","峥","崝","崢","征","徰","炡","烝","爭","狰","猙","癥","眐","睁","睜","筝","箏","篜","聇","脀","蒸","踭","鉦","錚","鏳","鬇"],"èr":["二","刵","咡","弍","弐","樲","誀","貮","貳","贰","髶"],"chù":["亍","傗","儊","怵","憷","搐","斶","歜","珿","琡","矗","竌","絀","绌","臅","触","觸","豖","鄐","閦","黜"],"kuī":["亏","刲","岿","巋","盔","窥","窺","聧","虧","闚","顝"],"yún":["云","伝","勻","匀","囩","妘","愪","抣","昀","橒","沄","涢","溳","澐","熉","畇","秐","筼","篔","紜","縜","纭","耘","芸","蒷","蕓","郧","鄖","鋆","雲"],"hù":["互","冱","嗀","嚛","婟","嫭","嫮","岵","帍","弖","怙","戶","户","戸","戽","扈","护","昈","槴","沍","沪","滬","熩","瓠","祜","笏","簄","粐","綔","蔰","護","豰","鄠","鍙","頀","鱯","鳠","鳸","鸌","鹱"],"qí":["亓","剘","埼","岐","岓","崎","嵜","愭","掑","斉","斊","旂","旗","棊","棋","檱","櫀","歧","淇","濝","猉","玂","琦","琪","璂","畦","疧","碁","碕","祁","祈","祺","禥","竒","簯","簱","籏","粸","綥","綦","肵","脐","臍","艩","芪","萁","萕","蕲","藄","蘄","蚑","蚚","蛴","蜝","蜞","螧","蠐","褀","軝","鄿","釮","錡","锜","陭","頎","颀","騎","騏","騹","骐","骑","鬐","鬿","鯕","鰭","鲯","鳍","鵸","鶀","麒","麡","𨙸","𬨂","䓫"],"jǐng":["井","儆","刭","剄","坓","宑","幜","憬","暻","殌","汫","汬","澋","璄","璟","璥","穽","肼","蟼","警","阱","頚","頸"],"sì":["亖","佀","価","儩","兕","嗣","四","姒","娰","孠","寺","巳","柶","榹","汜","泗","泤","洍","洠","涘","瀃","牭","祀","禩","竢","笥","耜","肂","肆","蕼","覗","貄","釲","鈶","鈻","飤","飼","饲","駟","騃","驷"],"suì":["亗","嬘","岁","嵗","旞","檖","歲","歳","澻","煫","燧","璲","砕","碎","祟","禭","穂","穗","穟","繀","繐","繸","襚","誶","譢","谇","賥","邃","鐆","鐩","隧","韢","𫟦","𬭼"],"gèn":["亘","亙","揯","搄","茛"],"yà":["亚","亜","俹","冴","劜","圔","圠","埡","娅","婭","揠","氩","氬","犽","砑","稏","聐","襾","覀","訝","讶","迓","齾"],"xiē suò":["些"],"qí zhāi":["亝","齊"],"yā yà":["亞","压","垭","壓","铔"],"jí qì":["亟","焏"],"tóu":["亠","投","頭","骰"],"wáng wú":["亡"],"kàng háng gāng":["亢"],"dà":["亣","眔"],"jiāo":["交","僬","娇","嬌","峧","嶕","嶣","憍","椒","浇","澆","焦","礁","穚","簥","胶","膠","膲","茭","茮","蕉","虠","蛟","蟭","跤","轇","郊","鐎","驕","骄","鮫","鲛","鵁","鷦","鷮","鹪","䴔"],"hài":["亥","嗐","害","氦","餀","饚","駭","駴","骇"],"hēng pēng":["亨"],"mǔ":["亩","姆","峔","拇","母","牡","牳","畂","畆","畒","畝","畞","畮","砪","胟","踇","鉧","𬭁","𧿹"],ye:["亪"],"xiǎng":["享","亯","响","想","晑","蚃","蠁","響","飨","餉","饗","饷","鮝","鯗","鱶","鲞"],"jīng":["京","亰","兢","坕","坙","婛","惊","旌","旍","晶","橸","泾","涇","猄","睛","秔","稉","粳","精","経","經","綡","聙","腈","茎","荆","荊","菁","葏","驚","鯨","鲸","鶁","鶄","麖","麠","鼱","䴖"],"tíng":["亭","停","婷","嵉","庭","廷","楟","榳","筳","聤","莛","葶","蜓","蝏","諪","邒","霆","鼮","䗴"],"liàng":["亮","喨","悢","晾","湸","諒","谅","輌","輛","辆","鍄"],"qīn qìng":["亲","親"],"bó":["亳","仢","侼","僰","博","帛","愽","懪","挬","搏","欂","浡","淿","渤","煿","牔","狛","瓝","礴","秡","箔","簙","糪","胉","脖","膊","舶","艊","萡","葧","袯","襏","襮","謈","踣","郣","鈸","鉑","鋍","鎛","鑮","钹","铂","镈","餺","馎","馛","馞","駁","駮","驳","髆","鵓","鹁"],"yòu":["亴","佑","佦","侑","又","右","哊","唀","囿","姷","宥","峟","幼","狖","祐","蚴","誘","诱","貁","迶","酭","釉","鼬"],"xiè":["亵","伳","偞","偰","僁","卨","卸","噧","塮","夑","媟","屑","屧","廨","徢","懈","暬","械","榍","榭","泻","洩","渫","澥","瀉","瀣","灺","炧","炨","燮","爕","獬","祄","禼","糏","紲","絏","絬","繲","纈","绁","缷","薢","薤","蟹","蠏","褉","褻","謝","谢","躞","邂","靾","韰","齂","齘","齛","齥","𬹼","𤫉"],"dǎn dàn":["亶","馾"],"lián":["亷","劆","匲","匳","嗹","噒","奁","奩","嫾","帘","廉","怜","憐","涟","漣","濂","濓","瀮","熑","燫","簾","籢","籨","縺","翴","联","聨","聫","聮","聯","臁","莲","蓮","薕","螊","蠊","裢","褳","覝","謰","蹥","连","連","鎌","鐮","镰","鬑","鰱","鲢"],"duǒ":["亸","哚","嚲","埵","崜","朵","朶","綞","缍","趓","躱","躲","軃"],"wěi mén":["亹","斖"],"rén":["人","亻","仁","壬","忈","忎","朲","秂","芢","魜","鵀"],"jí":["亼","亽","伋","佶","偮","卙","即","卽","及","叝","吉","堲","塉","姞","嫉","岌","嵴","嶯","彶","忣","急","愱","戢","揤","极","棘","楫","極","槉","檝","殛","汲","湒","潗","疾","瘠","皍","笈","箿","籍","級","级","膌","艥","蒺","蕀","蕺","蝍","螏","襋","觙","谻","踖","蹐","躤","輯","轚","辑","郆","銡","鍓","鏶","集","雧","霵","鹡","㴔"],"wáng":["亾","仼","兦","莣","蚟"],"shén shí":["什"],"lè":["仂","叻","忇","氻","泐","玏","砳","簕","艻","阞","韷","餎","鰳","鱳","鳓"],"dīng":["仃","叮","帄","玎","疔","盯","耵","虰","靪"],"zè":["仄","崱","庂","捑","昃","昗","汄"],"jǐn jìn":["仅","僅","嫤"],"pú pū":["仆"],"chóu qiú":["仇"],"zhǎng":["仉","幥","掌","礃"],"jīn":["今","堻","巾","惍","斤","津","珒","琻","璡","砛","筋","荕","衿","襟","觔","金","釒","釿","钅","鹶","黅","𬬱"],"bīng":["仌","仒","兵","冫","冰","掤","氷","鋲"],"réng":["仍","礽","芿","辸","陾"],"fó":["仏","坲","梻"],"jīn sǎn":["仐"],"lún":["仑","伦","侖","倫","囵","圇","婨","崘","崙","棆","沦","淪","磮","腀","菕","蜦","踚","輪","轮","錀","陯","鯩","𬬭"],"cāng":["仓","仺","倉","凔","嵢","沧","滄","濸","獊","舱","艙","苍","蒼","螥","鸧"],"zǎi zǐ zī":["仔"],"tā":["他","塌","它","榙","溻","牠","祂","褟","趿","遢","闧"],"fù":["付","偩","傅","冨","副","咐","坿","复","妇","婦","媍","嬔","富","復","椱","祔","禣","竎","緮","縛","缚","腹","萯","蕧","蚹","蛗","蝜","蝮","袝","複","覄","覆","訃","詂","讣","負","賦","賻","负","赋","赙","赴","輹","鍑","鍢","阜","附","馥","駙","驸","鮒","鰒","鲋","鳆","㳇"],"xiān":["仙","仚","佡","僊","僲","先","嘕","奾","屳","廯","忺","憸","掀","暹","杴","氙","珗","祆","秈","籼","繊","纎","纖","苮","褼","襳","跹","蹮","躚","酰","鍁","锨","韯","韱","馦","鱻","鶱","𬸣"],"tuō chà duó":["仛"],"hóng":["仜","吰","垬","妅","娂","宏","宖","弘","彋","汯","泓","洪","浤","渱","潂","玒","玜","竑","竤","篊","粠","紘","紭","綋","纮","翃","翝","耾","苰","荭","葒","葓","谹","谼","鈜","鉷","鋐","閎","闳","霐","霟","鞃","魟","鴻","鸿","黉","黌","𫟹","𬭎"],"tóng":["仝","佟","哃","峂","峝","庝","彤","晍","曈","桐","氃","浵","潼","犝","獞","眮","瞳","砼","秱","童","粡","膧","茼","蚒","詷","赨","酮","鉖","鉵","銅","铜","餇","鮦","鲖","𫍣","𦒍"],"rèn":["仞","仭","刃","刄","妊","姙","屻","岃","扨","牣","祍","紉","紝","絍","纫","纴","肕","腍","衽","袵","訒","認","认","讱","軔","轫","鈓","靭","靱","韌","韧","飪","餁","饪"],"qiān":["仟","佥","僉","千","圲","奷","孯","岍","悭","愆","慳","扦","拪","搴","撁","攐","攑","攓","杄","櫏","汘","汧","牵","牽","竏","签","簽","籖","籤","粁","芊","茾","蚈","褰","諐","謙","谦","谸","迁","遷","釺","鈆","鉛","鏲","钎","阡","韆","顅","騫","骞","鬜","鬝","鵮","鹐"],"gǎn hàn":["仠"],"yì gē":["仡"],"dài":["代","侢","叇","垈","埭","岱","帒","带","帯","帶","廗","怠","戴","曃","柋","殆","瀻","玳","瑇","甙","簤","紿","緿","绐","艜","蝳","袋","襶","貣","贷","蹛","軑","軚","軩","轪","迨","霴","靆","鴏","黛","黱"],"lìng líng lǐng":["令"],"chào":["仦","耖","觘"],"cháng zhǎng":["仧","兏","長","长"],"sā":["仨"],"cháng":["仩","偿","償","嘗","嚐","嫦","尝","常","徜","瑺","瓺","甞","肠","腸","膓","苌","萇","镸","鱨","鲿"],"yí":["仪","侇","儀","冝","匜","咦","圯","夷","姨","宐","宜","宧","寲","峓","嶬","嶷","巸","彛","彜","彝","彞","怡","恞","扅","暆","栘","椬","椸","沂","洟","熪","瓵","痍","移","簃","籎","羠","胰","萓","蛦","螔","觺","謻","貽","贻","跠","迻","遺","鏔","頉","頤","頥","顊","颐","饴","鮧","鴺"],"mù":["仫","凩","募","墓","幕","幙","慔","慕","暮","暯","木","楘","毣","沐","炑","牧","狇","目","睦","穆","艒","苜","莯","蚞","鉬","钼","雮","霂"],"men mén":["们"],"fǎn":["仮","反","橎","返"],"chào miǎo":["仯"],"yǎng áng":["仰"],"zhòng":["仲","众","堹","妕","媑","狆","眾","祌","筗","茽","蚛","衆","衶","諥"],"pǐ pí":["仳"],"wò":["仴","偓","卧","媉","幄","握","楃","沃","渥","濣","瓁","瞃","硪","肟","腛","臥","齷","龌"],"jiàn":["件","俴","健","僭","剑","剣","剱","劍","劎","劒","劔","墹","寋","建","徤","擶","旔","楗","毽","洊","涧","澗","牮","珔","瞷","磵","礀","箭","糋","繝","腱","臶","舰","艦","荐","薦","覸","諓","諫","譛","谏","賎","賤","贱","趝","践","踐","踺","轞","鉴","鍳","鍵","鐱","鑑","鑒","鑬","鑳","键","間","餞","饯","𬣡"],"jià jiè jie":["价"],"yǎo fó":["仸"],"rèn rén":["任"],"fèn bīn":["份"],"dī":["仾","低","啲","埞","堤","岻","彽","樀","滴","磾","秪","羝","袛","趆","隄","鞮","䃅"],"fǎng":["仿","倣","旊","昉","昘","瓬","眆","紡","纺","舫","訪","访","髣","鶭"],"zhōng":["伀","刣","妐","幒","彸","忠","柊","汷","泈","炂","盅","籦","終","终","舯","蔠","蜙","螤","螽","衳","衷","蹱","鈡","鍾","鐘","钟","锺","鴤","鼨"],"pèi":["伂","佩","姵","帔","斾","旆","沛","浿","珮","蓜","轡","辔","配","霈","馷"],"diào":["伄","吊","弔","掉","瘹","盄","窎","窵","竨","訋","釣","鈟","銱","鋽","鑃","钓","铞","雿","魡"],"dùn":["伅","潡","炖","燉","盾","砘","碷","踲","逇","遁","遯","鈍","钝"],"wěn":["伆","刎","吻","呅","抆","桽","稳","穏","穩","紊","肳","脗"],"xǐn":["伈"],"kàng":["伉","匟","囥","抗","炕","鈧","钪"],"ài":["伌","僾","塧","壒","嫒","嬡","愛","懓","暧","曖","爱","瑷","璦","皧","瞹","砹","硋","碍","礙","薆","譺","賹","鑀","隘","靉","餲","馤","鱫","鴱"],"jì qí":["伎","薺"],"xiū xǔ":["休"],"jìn yín":["伒"],"dǎn":["伔","刐","撢","玬","瓭","紞","胆","膽","衴","賧","赕","黕","𬘘"],"fū":["伕","呋","娐","孵","尃","怤","懯","敷","旉","玞","砆","稃","筟","糐","綒","肤","膚","荂","荴","衭","趺","跗","邞","鄜","酜","鈇","麩","麬","麱","麸","𫓧"],"tǎng":["伖","傥","儻","埫","戃","曭","爣","矘","躺","鎲","钂","镋"],"yōu":["优","優","呦","嚘","峳","幽","忧","悠","憂","攸","櫌","滺","瀀","纋","羪","耰","逌","鄾","麀"],"huǒ":["伙","夥","火","煷","邩","鈥","钬"],"huì kuài":["会","會","浍","璯"],"yǔ":["伛","俁","俣","偊","傴","匬","噳","圄","圉","宇","寙","屿","嶼","庾","挧","敔","斞","楀","瑀","瘐","祤","禹","穥","窳","羽","與","萭","貐","鄅","頨","麌","齬","龉","㺄"],"cuì":["伜","啛","忰","悴","毳","淬","焠","疩","瘁","竁","粋","粹","紣","綷","翆","翠","脃","脆","脺","膬","膵","臎","萃","襊","顇"],"sǎn":["伞","傘","糤","繖","饊","馓"],"wěi":["伟","伪","偉","偽","僞","儰","娓","寪","屗","崣","嶉","徫","愇","捤","暐","梶","洧","浘","渨","炜","煒","猥","玮","瑋","痿","緯","纬","腲","艉","芛","苇","荱","萎","葦","蒍","蔿","蜼","諉","诿","踓","鍡","韑","韙","韡","韪","頠","颹","骩","骪","骫","鮪","鲔","𫇭","𬀩","𬱟"],"chuán zhuàn":["传","傳"],"chē jū":["伡","俥","车"],"jū chē":["車"],"yá":["伢","厑","厓","堐","岈","崕","崖","涯","漄","牙","玡","琊","睚","笌","芽","蚜","衙","齖"],"qiàn":["伣","俔","倩","儙","刋","壍","嬱","悓","棈","椠","槧","欠","歉","皘","篏","篟","縴","芡","蒨","蔳","輤","𬘬"],"shāng":["伤","傷","商","墒","慯","殇","殤","滳","漡","熵","蔏","螪","觞","觴","謪","鬺"],"chāng":["伥","倀","娼","昌","椙","淐","猖","琩","菖","裮","錩","锠","閶","阊","鯧","鲳","鼚"],"chen cāng":["伧"],"xùn":["伨","侚","卂","噀","巺","巽","徇","愻","殉","殾","汛","潠","狥","蕈","訊","訓","訙","训","讯","迅","迿","逊","遜","鑂","顨","馴","驯"],"xìn":["伩","囟","孞","脪","舋","衅","訫","釁","阠","顖"],"chǐ":["伬","侈","卶","叺","呎","垑","恥","歯","耻","肔","胣","蚇","裭","褫","豉","鉹","齒","齿"],"xián xuán":["伭"],"nú nǔ":["伮"],"bó bǎi":["伯"],"gū gù":["估"],"nǐ":["伱","你","儞","孴","拟","擬","旎","晲","狔","苨","薿","隬"],"nì ní":["伲"],"bàn":["伴","办","半","姅","怑","扮","瓣","秚","絆","绊","辦","鉡","靽"],"xù":["伵","侐","勖","勗","卹","叙","垿","壻","婿","序","恤","敍","敘","旭","昫","朂","槒","欰","殈","汿","沀","洫","溆","漵","潊","烅","烼","煦","獝","珬","盢","瞁","稸","絮","続","緒","緖","續","绪","续","聓","聟","蓄","藚","訹","賉","酗","頊","鱮","㳚"],"zhòu":["伷","僽","冑","呪","咒","咮","宙","昼","晝","甃","皱","皺","籀","籒","籕","粙","紂","縐","纣","绉","胄","荮","葤","詋","酎","駎","驟","骤","㤘","㑇"],"shēn":["伸","侁","兟","呻","堔","妽","娠","屾","峷","扟","敒","曑","柛","氠","深","燊","珅","甡","甧","申","眒","砷","穼","籶","籸","糂","紳","绅","罙","罧","葠","蓡","蔘","薓","裑","訷","詵","诜","身","駪","鯓","鯵","鰺","鲹","鵢","𬳽"],"qū":["伹","佉","匤","呿","坥","屈","岖","岴","嶇","憈","抾","敺","浀","煀","祛","筁","粬","胠","蛆","蛐","袪","覻","詘","诎","趍","躯","軀","阹","駆","駈","驅","驱","髷","魼","鰸","鱋","鶌","麯","麴","麹","黢","㭕","𪨰","䓛"],"sì cì":["伺"],"bēng":["伻","嘣","奟","崩","嵭","閍"],"sì shì":["似"],"jiā qié gā":["伽"],"yǐ chì":["佁"],"diàn tián":["佃","钿"],"hān gàn":["佄"],"mài":["佅","劢","勱","卖","唛","売","脈","衇","賣","迈","邁","霡","霢","麥","麦","鿏"],"dàn":["但","僤","啖","啗","啿","噉","嚪","帎","憺","旦","柦","氮","沊","泹","淡","狚","疍","癚","禫","窞","腅","萏","蓞","蛋","蜑","觛","訑","誕","诞","贉","霮","餤","饏","駳","髧","鴠","𫢸"],"bù":["佈","勏","吥","咘","埗","埠","布","廍","怖","悑","步","歨","歩","瓿","篰","荹","蔀","踄","部","郶","鈈","钚","餢"],"bǐ":["佊","俾","匕","夶","妣","彼","朼","柀","比","毞","沘","疕","秕","笔","筆","粃","聛","舭","貏","鄙"],"zhāo shào":["佋"],"cǐ":["佌","此","泚","皉","𫚖"],"wèi":["位","卫","味","喂","墛","媦","慰","懀","未","渭","煟","熭","犚","猬","畏","緭","罻","胃","苿","菋","藯","蘶","蝟","螱","衛","衞","褽","謂","讆","讏","谓","躗","躛","軎","轊","鏏","霨","餧","餵","饖","魏","鮇","鳚"],"zuǒ":["佐","左","繓"],"yǎng":["佒","傟","养","坱","岟","慃","懩","攁","氧","氱","炴","痒","癢","礢","紻","蝆","軮","養","駚"],"tǐ tī":["体","體"],"zhàn":["佔","偡","嶘","战","戦","戰","栈","桟","棧","湛","站","綻","绽","菚","蘸","虥","虦","譧","轏","驏"],"hé hē hè":["何"],"bì":["佖","咇","哔","嗶","坒","堛","壁","奰","妼","婢","嬖","币","幣","幤","庇","庳","廦","弊","弻","弼","彃","必","怭","愊","愎","敝","斃","梐","毕","毖","毙","湢","滗","滭","潷","煏","熚","狴","獘","獙","珌","璧","畀","畢","疪","痹","痺","皕","睤","碧","筚","箅","箆","篦","篳","粊","綼","縪","繴","罼","腷","苾","荜","萆","萞","蓖","蓽","蔽","薜","蜌","袐","襅","襞","襣","觱","詖","诐","貱","贔","赑","跸","蹕","躃","躄","避","邲","鄨","鄪","鉍","鏎","鐴","铋","閇","閉","閟","闭","陛","韠","飶","饆","馝","駜","驆","髀","魓","鮅","鷝","鷩","鼊"],"tuó":["佗","坨","堶","岮","槖","橐","沱","砣","砤","碢","紽","詑","跎","酡","阤","陀","陁","駝","駞","騨","驒","驝","驼","鮀","鴕","鸵","鼉","鼍","鼧","𬶍"],"shé":["佘","舌","虵","蛥"],"yì dié":["佚","昳","泆","軼"],"fó fú bì bó":["佛"],"zuò zuō":["作"],"gōu":["佝","沟","溝","痀","篝","簼","緱","缑","袧","褠","鈎","鉤","钩","鞲","韝"],"nìng":["佞","侫","倿","寕","泞","澝","濘"],"qú":["佢","劬","戵","斪","欋","欔","氍","淭","灈","爠","璖","璩","癯","磲","籧","絇","胊","臞","菃","葋","蕖","蘧","蟝","蠷","蠼","衐","衢","躣","軥","鑺","鴝","鸜","鸲","鼩"],"yōng yòng":["佣"],"wǎ":["佤","咓","砙","邷"],"kǎ":["佧","垰","胩","裃","鉲"],"bāo":["佨","勹","包","孢","煲","笣","胞","苞","蕔","裦","褒","襃","闁","齙","龅"],"huái huí":["佪"],"gé hè":["佫"],"lǎo":["佬","咾","恅","栳","狫","珯","硓","老","耂","荖","蛯","轑","銠","铑","鮱"],"xiáng":["佭","庠","栙","祥","絴","翔","詳","跭"],"gé":["佮","匌","呄","嗝","塥","愅","挌","搿","槅","櫊","滆","膈","臵","茖","觡","諽","輵","轕","閣","阁","隔","鞷","韐","韚","騔","骼","鮯"],"yáng":["佯","劷","垟","崸","徉","扬","揚","敭","旸","昜","暘","杨","楊","洋","炀","珜","疡","瘍","眻","蛘","諹","輰","鍚","钖","阦","阳","陽","霷","颺","飏","鰑","鴹","鸉"],"bǎi":["佰","捭","摆","擺","栢","百","竡","粨","襬"],"fǎ":["佱","峜","法","灋","砝","鍅"],"mǐng":["佲","凕","姳","慏","酩"],"èr nài":["佴"],"hěn":["佷","很","狠","詪","𬣳"],"huó":["佸","活"],"guǐ":["佹","匦","匭","厬","垝","姽","宄","庋","庪","恑","晷","湀","癸","祪","簋","蛫","蟡","觤","詭","诡","軌","轨","陒","鬼"],"quán":["佺","全","啳","埢","姾","峑","巏","拳","搼","权","楾","権","權","泉","洤","湶","牷","犈","瑔","痊","硂","筌","縓","荃","葲","蜷","蠸","觠","詮","诠","跧","踡","輇","辁","醛","銓","铨","闎","顴","颧","駩","騡","鬈","鰁","鳈","齤"],"tiāo":["佻","庣","旫","祧","聎"],"jiǎo":["佼","儌","孂","挢","搅","撟","撹","攪","敫","敽","敿","晈","暞","曒","灚","燞","狡","璬","皎","皦","絞","纐","绞","腳","臫","蟜","譑","賋","踋","鉸","铰","餃","饺","鱎","龣"],"cì":["佽","刾","庛","朿","栨","次","絘","茦","莿","蛓","螆","賜","赐"],"xíng":["侀","刑","哘","型","娙","形","洐","硎","蛵","邢","郉","鈃","鉶","銒","钘","铏","陉","陘","餳","𫰛"],"tuō":["侂","咃","咜","圫","托","拕","拖","汑","脫","脱","莌","袥","託","讬","飥","饦","魠","鮵"],"kǎn":["侃","偘","冚","坎","惂","砍","莰","輡","轗","顑"],"zhí":["侄","値","值","埴","執","姪","嬂","戠","执","摭","植","樴","淔","漐","直","禃","絷","縶","聀","职","職","膱","蟙","跖","踯","蹠","躑","軄","釞","馽"],"gāi":["侅","垓","姟","峐","晐","畡","祴","荄","該","该","豥","賅","賌","赅","陔"],"lái":["來","俫","倈","崃","崍","庲","来","梾","棶","涞","淶","猍","琜","筙","箂","莱","萊","逨","郲","錸","铼","騋","鯠","鶆","麳"],"kuǎ":["侉","咵","垮","銙"],"gōng":["侊","公","功","匑","匔","塨","宫","宮","工","幊","弓","恭","攻","杛","碽","糼","糿","肱","觥","觵","躬","躳","髸","龔","龚","䢼"],"lì":["例","俐","俪","傈","儮","儷","凓","利","力","励","勵","历","厉","厤","厯","厲","叓","吏","呖","唎","唳","嚦","囇","坜","塛","壢","娳","婯","屴","岦","悧","悷","慄","戾","搮","暦","曆","曞","朸","枥","栃","栗","栛","檪","櫔","櫪","欐","歴","歷","沥","沴","涖","溧","濿","瀝","爏","犡","猁","珕","瑮","瓅","瓑","瓥","疬","痢","癧","盭","睙","砅","砺","砾","磿","礪","礫","礰","禲","秝","立","笠","篥","粒","粝","糲","脷","苈","茘","荔","莅","莉","蒚","蒞","藶","蚸","蛎","蛠","蜧","蝷","蠇","蠣","詈","讈","赲","轢","轣","轹","酈","鉝","隶","隷","雳","靂","靋","鬁","鳨","鴗","鷅","麜","𫵷","𬍛"],"yīn":["侌","凐","喑","噾","囙","因","垔","堙","姻","婣","愔","慇","栶","氤","洇","溵","濦","瘖","禋","秵","筃","絪","緸","茵","蒑","蔭","裀","諲","銦","铟","闉","阥","阴","陰","陻","隂","霒","霠","鞇","音","韾","駰","骃","齗","𬘡","𬤇","𬮱"],"mǐ":["侎","孊","弭","敉","洣","渳","灖","米","粎","羋","脒","芈","葞","蔝","銤"],"zhū":["侏","株","槠","橥","櫧","櫫","洙","潴","瀦","猪","珠","硃","秼","絑","茱","蕏","蛛","蝫","蠩","袾","誅","諸","诛","诸","豬","跦","邾","銖","铢","駯","鮢","鯺","鴸","鼄"],"ān":["侒","偣","媕","安","峖","庵","桉","氨","盦","盫","腤","菴","萻","葊","蓭","誝","諳","谙","鞌","鞍","韽","馣","鮟","鵪","鶕","鹌","𩽾"],"lù":["侓","僇","勎","勠","圥","坴","塶","娽","峍","廘","彔","录","戮","摝","椂","樚","淕","淥","渌","漉","潞","琭","璐","甪","盝","睩","硉","祿","禄","稑","穋","箓","簏","簬","簵","簶","籙","粶","蔍","蕗","虂","螰","賂","赂","趢","路","踛","蹗","輅","轆","辂","辘","逯","醁","錄","録","錴","鏴","陸","騄","騼","鯥","鴼","鵦","鵱","鷺","鹭","鹿","麓","𫘧"],"móu":["侔","劺","恈","眸","蛑","謀","谋","踎","鍪","鴾","麰"],"ér":["侕","儿","児","兒","峏","栭","洏","粫","而","胹","荋","袻","輀","轜","陑","隭","髵","鮞","鲕","鴯","鸸"],"dòng tǒng tóng":["侗"],"chà":["侘","奼","姹","岔","汊","詫","诧"],"chì":["侙","傺","勅","勑","叱","啻","彳","恜","慗","憏","懘","抶","敕","斥","杘","湁","灻","炽","烾","熾","痓","痸","瘛","翄","翅","翤","翨","腟","赤","趩","遫","鉓","雴","飭","饬","鶒","鷘"],"gòng gōng":["供","共"],"zhōu":["侜","周","喌","州","徟","洲","淍","炿","烐","珘","矪","舟","謅","譸","诌","賙","赒","輈","輖","辀","週","郮","銂","霌","駲","騆","鵃","鸼"],"rú":["侞","儒","嚅","如","嬬","孺","帤","曘","桇","渪","濡","筎","茹","蕠","薷","蝡","蠕","袽","襦","邚","醹","銣","铷","顬","颥","鱬","鴑","鴽"],"jiàn cún":["侟"],"xiá":["侠","俠","匣","峡","峽","敮","暇","柙","炠","烚","狎","狭","狹","珨","瑕","硖","硤","碬","祫","筪","縖","翈","舝","舺","蕸","赮","轄","辖","遐","鍜","鎋","陜","陿","霞","騢","魻","鶷","黠"],"lǚ":["侣","侶","儢","吕","呂","屡","屢","履","挔","捛","旅","梠","焒","祣","稆","穭","絽","縷","缕","膂","膐","褛","褸","郘","鋁","铝"],ta:["侤"],"jiǎo yáo":["侥","僥","徺"],"zhēn":["侦","偵","寊","帧","帪","幀","搸","斟","桢","楨","榛","樼","殝","浈","湞","潧","澵","獉","珍","珎","瑧","甄","眞","真","砧","碪","祯","禎","禛","箴","胗","臻","葴","蒖","蓁","薽","貞","贞","轃","遉","酙","針","鉁","錱","鍼","针","鱵"],"cè zè zhāi":["侧","側"],"kuài":["侩","儈","凷","哙","噲","圦","块","塊","巜","廥","快","旝","欳","狯","獪","筷","糩","脍","膾","郐","鄶","鱠","鲙"],"chái":["侪","儕","喍","柴","犲","祡","豺"],"nóng":["侬","儂","农","哝","噥","檂","欁","浓","濃","燶","禯","秾","穠","脓","膿","蕽","襛","譨","農","辳","醲","鬞","𬪩"],"jǐn":["侭","儘","卺","厪","巹","槿","漌","瑾","紧","緊","菫","蓳","謹","谨","錦","锦","饉","馑"],"hóu hòu":["侯","矦"],"jiǒng":["侰","僒","冏","囧","泂","澃","炯","烱","煚","煛","熲","燛","窘","綗","褧","迥","逈","顈","颎","䌹"],"chěng tǐng":["侱"],"zhèn zhēn":["侲","揕"],"zuò":["侳","做","唑","坐","岝","岞","座","祚","糳","胙","葃","葄","蓙","袏","阼"],"qīn":["侵","兓","媇","嵚","嶔","欽","衾","誛","钦","顉","駸","骎","鮼"],"jú":["侷","啹","婅","局","巈","椈","橘","泦","淗","湨","焗","犑","狊","粷","菊","蘜","趜","跼","蹫","輂","郹","閰","駶","驧","鵙","鵴","鶪","鼰","鼳","䴗"],"shù dōu":["侸"],"tǐng":["侹","圢","娗","挺","涏","烶","珽","脡","艇","誔","頲","颋"],"shèn":["侺","愼","慎","昚","涁","渗","滲","瘆","瘮","眘","祳","肾","胂","脤","腎","蜃","蜄","鋠"],"tuì tuó":["侻"],"nán":["侽","喃","娚","抩","暔","枏","柟","楠","男","畘","莮","萳","遖"],"xiāo":["侾","哓","嘵","嚻","囂","婋","宯","宵","庨","彇","揱","枭","枵","梟","櫹","歊","毊","消","潇","瀟","灱","灲","烋","焇","猇","獢","痚","痟","硝","硣","窙","箫","簘","簫","綃","绡","翛","膮","萧","蕭","虈","虓","蟂","蟏","蟰","蠨","踃","逍","銷","销","霄","颵","驍","骁","髇","髐","魈","鴞","鴵","鷍","鸮"],"biàn pián":["便","緶","缏"],"tuǐ":["俀","腿","蹆","骽"],"xì":["係","匸","卌","呬","墍","屃","屓","屭","忥","怬","恄","椞","潝","潟","澙","熂","犔","磶","禊","細","綌","縘","细","绤","舃","舄","蕮","虩","衋","覤","赩","趇","郤","釳","阋","隙","隟","霼","餼","饩","鬩","黖"],"cù":["促","媨","憱","猝","瘄","瘯","簇","縬","脨","蔟","誎","趗","踧","踿","蹙","蹴","蹵","醋","顣","鼀"],"é":["俄","囮","娥","峉","峨","峩","涐","珴","皒","睋","磀","莪","訛","誐","譌","讹","迗","鈋","鋨","锇","頟","額","额","魤","鵝","鵞","鹅"],"qiú":["俅","叴","唒","囚","崷","巯","巰","扏","梂","殏","毬","求","汓","泅","浗","湭","煪","犰","玌","球","璆","皳","盚","紌","絿","肍","芁","莍","虬","虯","蛷","裘","觓","觩","訄","訅","賕","赇","逎","逑","遒","酋","釚","釻","銶","頄","鮂","鯄","鰽","鼽","𨱇"],"xú":["俆","徐","禑"],"guàng kuāng":["俇"],"kù":["俈","喾","嚳","库","庫","廤","瘔","絝","绔","袴","裤","褲","酷"],"wù":["俉","务","務","勿","卼","坞","塢","奦","婺","寤","屼","岉","嵨","忢","悞","悟","悮","戊","扤","晤","杌","溩","焐","熃","物","痦","矹","窹","粅","蘁","誤","误","鋈","阢","隖","雾","霚","霧","靰","騖","骛","鶩","鹜","鼿","齀"],"jùn":["俊","儁","呁","埈","寯","峻","懏","捃","攟","晙","棞","燇","珺","畯","竣","箟","蜠","賐","郡","陖","餕","馂","駿","骏","鵔","鵕","鵘","䐃"],"liáng":["俍","墚","梁","椋","樑","粮","粱","糧","良","輬","辌","𫟅"],"zǔ":["俎","唨","爼","祖","組","组","詛","诅","鎺","阻","靻"],"qiào xiào":["俏"],"yǒng":["俑","勇","勈","咏","埇","塎","嵱","彮","怺","恿","悀","惥","愑","愹","慂","柡","栐","永","泳","湧","甬","蛹","詠","踊","踴","鯒","鲬"],"hùn":["俒","倱","圂","尡","慁","掍","溷","焝","睴","觨","諢","诨"],"jìng":["俓","傹","境","妌","婙","婧","弪","弳","径","徑","敬","曔","桱","梷","浄","瀞","獍","痉","痙","竞","竟","竫","競","竸","胫","脛","莖","誩","踁","迳","逕","鏡","镜","靖","静","靜","鵛"],"sàn":["俕","閐"],"pěi":["俖"],"sú":["俗"],"xī":["俙","僖","兮","凞","卥","厀","吸","唏","唽","嘻","噏","嚱","夕","奚","嬆","嬉","屖","嵠","巇","希","徆","徯","息","悉","悕","惁","惜","昔","晞","晰","晳","曦","析","桸","榽","樨","橀","欷","氥","汐","浠","淅","渓","溪","烯","焁","焈","焟","熄","熈","熙","熹","熺","熻","燨","爔","牺","犀","犠","犧","琋","瘜","皙","睎","瞦","矽","硒","磎","礂","稀","穸","窸","粞","糦","緆","繥","羲","翕","翖","肸","肹","膝","舾","莃","菥","蒠","蜥","螅","蟋","蠵","西","觹","觽","觿","譆","谿","豀","豨","豯","貕","赥","邜","鄎","酅","醯","釸","錫","鏭","鐊","鑴","锡","隵","餏","饎","饻","鯑","鵗","鸂","鼷"],"lǐ":["俚","娌","峢","峲","李","欚","浬","澧","理","礼","禮","粴","裏","裡","豊","逦","邐","醴","鋰","锂","鯉","鱧","鱱","鲤","鳢"],"bǎo":["保","堢","媬","宝","寚","寳","寶","珤","緥","葆","藵","褓","賲","靌","飹","飽","饱","駂","鳵","鴇","鸨"],"yú shù yù":["俞"],"sì qí":["俟"],"xìn shēn":["信"],"xiū":["俢","修","咻","庥","樇","烌","羞","脙","脩","臹","貅","銝","鎀","飍","饈","馐","髤","髹","鮴","鱃","鵂","鸺","䗛"],"dì":["俤","偙","僀","埊","墑","墬","娣","帝","怟","旳","梊","焍","玓","甋","眱","睇","碲","祶","禘","第","締","缔","腣","菂","蒂","蔕","蝃","蝭","螮","諦","谛","踶","递","逓","遞","遰","鉪","𤧛","䗖"],"chóu":["俦","儔","嬦","惆","愁","懤","栦","燽","畴","疇","皗","稠","筹","籌","絒","綢","绸","菗","詶","讎","讐","踌","躊","酧","酬","醻","雔","雠","雦"],"zhì":["俧","偫","儨","制","劕","垁","娡","寘","帙","帜","幟","庢","庤","廌","彘","徏","徝","志","忮","懥","懫","挃","挚","掷","摯","擲","旘","晊","智","栉","桎","梽","櫍","櫛","治","洷","滍","滞","滯","潌","瀄","炙","熫","狾","猘","璏","瓆","痔","痣","礩","祑","秩","秷","稚","稺","穉","窒","紩","緻","置","翐","膣","至","致","芖","蛭","袟","袠","製","覟","觗","觯","觶","誌","豑","豒","貭","質","贄","质","贽","跱","踬","躓","輊","轾","郅","銍","鋕","鑕","铚","锧","陟","隲","雉","駤","騭","騺","驇","骘","鯯","鴙","鷙","鸷","𬃊"],"liǎ liǎng":["俩"],"jiǎn":["俭","倹","儉","减","剪","堿","弿","彅","戩","戬","拣","挸","捡","揀","撿","枧","柬","梘","检","検","檢","減","湕","瀽","瑐","睑","瞼","硷","碱","礆","笕","筧","简","簡","絸","繭","翦","茧","藆","蠒","裥","襇","襉","襺","詃","謇","謭","譾","谫","趼","蹇","鐗","鬋","鰎","鹸","鹻","鹼"],"huò":["俰","咟","嚯","嚿","奯","彠","惑","或","擭","旤","曤","檴","沎","湱","瀖","獲","癨","眓","矐","祸","禍","穫","窢","耯","臛","艧","获","蒦","藿","蠖","謋","貨","货","鍃","鑊","镬","雘","霍","靃","韄","㸌"],"jù jū":["俱","据","鋸","锯"],"xiào":["俲","傚","効","咲","哮","啸","嘋","嘨","嘯","孝","效","斅","斆","歗","涍","熽","笑","詨","誟"],"pái":["俳","徘","牌","犤","猅","簰","簲","輫"],"biào":["俵","鰾","鳔"],"chù tì":["俶"],"fèi":["俷","剕","厞","吠","屝","废","廃","廢","昲","曊","櫠","沸","濷","狒","癈","肺","萉","費","费","鐨","镄","陫","靅","鼣"],"fèng":["俸","凤","奉","湗","焨","煈","賵","赗","鳯","鳳","鴌"],"ǎn":["俺","唵","埯","揞","罯","銨","铵"],"bèi":["俻","倍","偝","偹","備","僃","备","悖","惫","愂","憊","昁","梖","焙","牬","犕","狈","狽","珼","琲","碚","禙","糒","苝","蓓","蛽","褙","貝","贝","軰","輩","辈","邶","郥","鄁","鋇","鐾","钡","鞁","鞴","𬇙"],"yù":["俼","儥","喅","喩","喻","域","堉","妪","嫗","寓","峪","嶎","庽","彧","御","愈","慾","戫","昱","棛","棜","棫","櫲","欎","欝","欲","毓","浴","淯","滪","潏","澦","灪","焴","煜","燏","燠","爩","狱","獄","玉","琙","瘉","癒","砡","硢","硲","礇","礖","礜","禦","秗","稢","稶","篽","籞","籲","粖","緎","罭","聿","肀","艈","芋","芌","茟","蒮","蓣","蓹","蕷","蘌","蜟","蜮","袬","裕","誉","諭","譽","谕","豫","軉","輍","逳","遇","遹","郁","醧","鈺","鋊","錥","鐭","钰","閾","阈","雤","霱","預","预","飫","饇","饫","馭","驈","驭","鬰","鬱","鬻","魊","鱊","鳿","鴥","鴧","鴪","鵒","鷸","鸒","鹆","鹬"],"xīn":["俽","噺","妡","嬜","廞","心","忄","忻","惞","新","昕","杺","欣","歆","炘","盺","薪","訢","辛","邤","鈊","鋅","鑫","锌","馨","馫","䜣","𫷷"],"hǔ chí":["俿"],"jiù":["倃","僦","匓","匛","匶","厩","咎","就","廄","廏","廐","慦","捄","救","旧","柩","柾","桕","欍","殧","疚","臼","舅","舊","鯦","鷲","鹫","麔","齨","㠇"],"yáo":["倄","傜","嗂","垚","堯","姚","媱","尧","尭","峣","嶢","嶤","徭","揺","搖","摇","摿","暚","榣","烑","爻","猺","珧","瑤","瑶","磘","窑","窯","窰","肴","蘨","謠","謡","谣","軺","轺","遙","遥","邎","顤","颻","飖","餆","餚","鰩","鱙","鳐"],"cuì zú":["倅"],"liǎng liǎ":["倆"],"wǎn":["倇","唍","婉","惋","挽","晚","晥","晩","晼","梚","椀","琬","畹","皖","盌","碗","綩","綰","绾","脘","萖","踠","輓","鋔"],"zǒng":["倊","偬","傯","嵸","总","惣","捴","搃","摠","燪","総","緫","縂","總","蓗"],"guān":["倌","关","官","棺","瘝","癏","窤","蒄","関","闗","關","鰥","鱞","鳏"],"tiǎn":["倎","唺","忝","悿","晪","殄","淟","睓","腆","舔","覥","觍","賟","錪","餂"],"mén":["們","扪","捫","璊","菛","虋","鍆","钔","門","閅","门","𫞩"],"dǎo dào":["倒"],"tán tàn":["倓","埮"],"juè jué":["倔"],"chuí":["倕","垂","埀","捶","搥","桘","棰","槌","箠","腄","菙","錘","鎚","锤","陲","顀"],"xìng":["倖","姓","婞","嬹","幸","性","悻","杏","涬","緈","臖","荇","莕","葕"],"péng":["倗","傰","塜","塳","弸","憉","捀","朋","棚","椖","樥","硼","稝","竼","篷","纄","膨","芃","蓬","蘕","蟚","蟛","袶","輣","錋","鑝","韸","韼","騯","髼","鬅","鬔","鵬","鹏"],"tǎng cháng":["倘"],"hòu":["候","厚","后","垕","堠","後","洉","茩","豞","逅","郈","鮜","鱟","鲎","鲘"],"tì":["倜","剃","嚏","嚔","屉","屜","悌","悐","惕","惖","戻","掦","替","朑","歒","殢","涕","瓋","笹","籊","薙","褅","逖","逷","髰","鬀","鬄"],"gàn":["倝","凎","幹","榦","檊","淦","灨","盰","紺","绀","詌","贑","赣","骭","㽏"],"liàng jìng":["倞","靓"],"suī":["倠","哸","夊","滖","濉","眭","睢","芕","荽","荾","虽","雖","鞖"],"chàng chāng":["倡"],"jié":["倢","偼","傑","刦","刧","刼","劫","劼","卩","卪","婕","媫","孑","岊","崨","嵥","嶻","巀","幯","截","捷","掶","擮","昅","杢","杰","桀","桝","楬","楶","榤","洁","滐","潔","狤","睫","礍","竭","節","羯","莭","蓵","蛣","蜐","蠘","蠞","蠽","衱","袺","訐","詰","誱","讦","踕","迼","鉣","鍻","镼","頡","鮚","鲒","㛃"],"kǒng kōng":["倥"],"juàn":["倦","劵","奆","慻","桊","淃","狷","獧","眷","睊","睠","絭","絹","绢","罥","羂","腃","蔨","鄄","餋"],"zōng":["倧","堫","宗","嵏","嵕","惾","朡","棕","椶","熧","猣","磫","緃","翪","腙","葼","蝬","豵","踨","踪","蹤","鍐","鑁","騌","騣","骔","鬃","鬉","鬷","鯮","鯼"],"ní":["倪","坭","埿","尼","屔","怩","淣","猊","籾","聣","蚭","蜺","觬","貎","跜","輗","郳","鈮","铌","霓","馜","鯢","鲵","麑","齯","𫐐","𫠜"],"zhuō":["倬","拙","捉","桌","梲","棁","棳","槕","涿","窧","鐯","䦃"],"wō wēi":["倭"],"luǒ":["倮","剆","曪","瘰","癳","臝","蓏","蠃","裸","躶"],"sōng":["倯","凇","娀","崧","嵩","庺","憽","松","枀","枩","柗","梥","檧","淞","濍","硹","菘","鬆"],"lèng":["倰","堎","愣","睖","踜"],"zì":["倳","剚","字","恣","渍","漬","牸","眥","眦","胔","胾","自","茡","荢"],"bèn":["倴","坌","捹","撪","渀","笨","逩"],"cǎi":["倸","啋","婇","彩","採","棌","毝","睬","綵","跴","踩"],"zhài":["债","債","寨","瘵","砦"],"yē":["倻","吔","噎","擨","暍","椰","歋","潱","蠮"],"shà":["倽","唼","喢","歃","箑","翜","翣","萐","閯","霎"],"qīng":["倾","傾","卿","圊","寈","氢","氫","淸","清","蜻","軽","輕","轻","郬","錆","鑋","靑","青","鯖"],"yīng":["偀","嘤","噟","嚶","婴","媖","嫈","嬰","孆","孾","愥","撄","攖","朠","桜","樱","櫻","渶","煐","珱","瑛","璎","瓔","甇","甖","碤","礯","緓","纓","绬","缨","罂","罃","罌","膺","英","莺","蘡","蝧","蠳","褮","譻","賏","軈","鑍","锳","霙","韺","鴬","鶑","鶧","鶯","鷪","鷹","鸎","鸚","鹦","鹰","䓨"],"chēng chèn":["偁","爯"],"ruǎn":["偄","朊","瑌","瓀","碝","礝","腝","軟","輭","软","阮"],"zhòng tóng":["偅"],"chǔn":["偆","惷","睶","萶","蠢","賰"],"jiǎ jià":["假"],"jì jié":["偈"],"bǐng bìng":["偋"],"ruò":["偌","叒","嵶","弱","楉","焫","爇","箬","篛","蒻","鄀","鰙","鰯","鶸"],"tí":["偍","厗","啼","嗁","崹","漽","瑅","睼","禵","稊","緹","缇","罤","蕛","褆","謕","趧","蹄","蹏","醍","鍗","題","题","騠","鮷","鯷","鳀","鵜","鷤","鹈","𫘨"],"wēi":["偎","危","喴","威","媙","嶶","巍","微","愄","揋","揻","椳","楲","溦","烓","煨","燰","癓","縅","葨","葳","薇","蜲","蝛","覣","詴","逶","隇","隈","霺","鰃","鰄","鳂"],"piān":["偏","囨","媥","楄","犏","篇","翩","鍂"],"yàn":["偐","厌","厭","唁","喭","嚈","嚥","堰","妟","姲","嬊","嬿","宴","彥","彦","敥","晏","暥","曕","曣","滟","灎","灔","灧","灩","焔","焰","焱","熖","燄","牪","猒","砚","硯","艳","艶","艷","覎","觃","觾","諺","讌","讞","谚","谳","豓","豔","贋","贗","赝","軅","酀","酽","醼","釅","雁","餍","饜","騐","験","騴","驗","驠","验","鬳","鳫","鴈","鴳","鷃","鷰","齞"],"tǎng dàng":["偒"],"è":["偔","匎","卾","厄","呝","咢","噩","垩","堊","堮","岋","崿","廅","悪","愕","戹","扼","搤","搹","擜","櫮","歞","歺","湂","琧","砈","砐","硆","腭","苊","萼","蕚","蚅","蝁","覨","諤","讍","谔","豟","軛","軶","轭","遌","遏","遻","鄂","鈪","鍔","鑩","锷","阨","阸","頞","顎","颚","餓","餩","饿","鰐","鰪","鱷","鳄","鶚","鹗","齃","齶","𫫇","𥔲"],"xié":["偕","勰","协","協","嗋","垥","奊","恊","愶","拹","携","撷","擕","擷","攜","斜","旪","熁","燲","綊","緳","縀","缬","翓","胁","脅","脇","脋","膎","蝢","衺","襭","諧","讗","谐","鞋","鞵","龤","㙦"],"chě":["偖","扯","撦"],"shěng":["偗","渻","眚"],"chā":["偛","嗏","扠","挿","插","揷","疀","臿","艖","銟","鍤","锸","餷"],"huáng":["偟","凰","喤","堭","墴","媓","崲","徨","惶","楻","湟","煌","獚","瑝","璜","癀","皇","磺","穔","篁","簧","艎","葟","蝗","蟥","諻","趪","遑","鍠","鐄","锽","隍","韹","餭","騜","鰉","鱑","鳇","鷬","黃","黄","𨱑"],"yǎo":["偠","咬","婹","宎","岆","杳","柼","榚","溔","狕","窅","窈","舀","苭","闄","騕","鷕","齩"],"chǒu qiào":["偢"],"yóu":["偤","尤","庮","怣","沋","油","浟","游","犹","猶","猷","由","疣","秞","肬","莜","莸","蕕","蚰","蝣","訧","輏","輶","逰","遊","邮","郵","鈾","铀","駀","魷","鮋","鱿","鲉","𬨎"],"xū":["偦","墟","媭","嬃","楈","欨","歔","燸","疞","盱","綇","縃","繻","胥","蕦","虗","虚","虛","蝑","裇","訏","許","諝","譃","谞","鑐","需","須","须","顼","驉","鬚","魆","魖","𬣙","𦈡"],"zhā":["偧","哳","抯","挓","揸","摣","樝","渣","皶","觰","譇","齄","齇"],"cī":["偨","疵","蠀","趀","骴","髊","齹"],"bī":["偪","屄","楅","毴","豍","逼","鰏","鲾","鵖"],"xún":["偱","噚","寻","尋","峋","巡","廵","循","恂","揗","攳","旬","杊","栒","桪","樳","洵","浔","潯","燅","燖","珣","璕","畃","紃","荀","蟳","詢","询","鄩","鱏","鱘","鲟","𬘓","𬩽","𬍤","𬊈"],"cāi sī":["偲"],"duān":["偳","媏","端","褍","鍴"],"ǒu":["偶","吘","嘔","耦","腢","蕅","藕","𬉼","𠙶"],"tōu":["偷","偸","鍮"],"zán zá zǎ":["偺"],"lǚ lóu":["偻","僂"],"fèn":["偾","僨","奋","奮","弅","忿","愤","憤","瀵","瞓","秎","粪","糞","膹","鱝","鲼"],"kuǐ guī":["傀"],"sǒu":["傁","叜","叟","嗾","櫢","瞍","薮","藪"],"zhì sī tí":["傂"],"sù":["傃","僳","嗉","塐","塑","夙","嫊","愫","憟","榡","樎","樕","殐","泝","涑","溯","溸","潚","潥","玊","珟","璛","簌","粛","粟","素","縤","肃","肅","膆","蔌","藗","觫","訴","謖","诉","谡","趚","蹜","速","遡","遬","鋉","餗","驌","骕","鱐","鷫","鹔","𫗧"],"xiā":["傄","煆","瞎","虲","谺","颬","鰕"],"yuàn yuán":["傆","媛"],"rǒng":["傇","冗","宂","氄","軵"],"nù":["傉","怒"],"yùn":["傊","孕","恽","惲","愠","慍","枟","腪","蕴","薀","藴","蘊","褞","貟","运","運","郓","鄆","酝","醖","醞","韗","韞","韵","韻","餫"],"gòu jiǎng":["傋"],"mà":["傌","嘜","榪","睰","祃","禡","罵","閁","駡","骂","鬕"],"bàng":["傍","塝","棒","玤","稖","艕","蒡","蜯","謗","谤","鎊","镑"],"diān":["傎","厧","嵮","巅","巓","巔","掂","攧","敁","槇","滇","癫","癲","蹎","顚","顛","颠","齻"],"táng":["傏","唐","啺","坣","堂","塘","搪","棠","榶","溏","漟","煻","瑭","磄","禟","篖","糃","糖","糛","膅","膛","蓎","螗","螳","赯","踼","鄌","醣","鎕","隚","餹","饄","鶶","䣘"],"hào":["傐","哠","恏","昊","昦","晧","暠","暤","暭","曍","浩","淏","澔","灏","灝","皓","皜","皞","皡","皥","耗","聕","薃","號","鄗","顥","颢","鰝"],"xī xì":["傒"],"shān":["傓","删","刪","剼","圸","山","挻","搧","柵","檆","潸","澘","煽","狦","珊","笘","縿","羴","羶","脠","舢","芟","衫","跚","軕","邖","閊","鯅"],"qiàn jiān":["傔"],"què jué":["傕","埆"],"cāng chen":["傖"],"róng":["傛","媶","嫆","嬫","容","峵","嵘","嶸","戎","搈","曧","栄","榕","榮","榵","毧","溶","瀜","烿","熔","狨","瑢","穁","絨","绒","羢","肜","茙","茸","荣","蓉","蝾","融","螎","蠑","褣","鎔","镕","駥"],"tà tàn":["傝"],"suō":["傞","唆","嗍","嗦","娑","摍","桫","梭","睃","簑","簔","羧","莏","蓑","趖","鮻"],"dǎi":["傣","歹"],"zài":["傤","儎","再","在","扗","洅","載","酨"],"gǔ":["傦","古","啒","尳","愲","榖","榾","汩","淈","濲","瀔","牯","皷","皼","盬","瞽","穀","罟","羖","股","脵","臌","薣","蛊","蠱","詁","诂","轂","逧","鈷","钴","餶","馉","鼓","鼔","𦙶"],"bīn":["傧","宾","彬","斌","椕","滨","濒","濱","濵","瀕","繽","缤","虨","豩","豳","賓","賔","邠","鑌","镔","霦","顮"],"chǔ":["储","儲","杵","椘","楚","楮","檚","濋","璴","础","礎","禇","處","齭","齼","𬺓"],"nuó":["傩","儺","挪","梛","橠"],"cān càn":["傪"],"lěi":["傫","儡","厽","垒","塁","壘","壨","櫐","灅","癗","矋","磊","礨","耒","蕌","蕾","藟","蘽","蠝","誄","讄","诔","鑸","鸓"],"cuī":["催","凗","墔","崔","嵟","慛","摧","榱","獕","磪","鏙"],"yōng":["傭","嗈","墉","壅","嫞","庸","廱","慵","拥","擁","滽","灉","牅","痈","癕","癰","臃","邕","郺","鄘","鏞","镛","雍","雝","饔","鱅","鳙","鷛"],"zāo cáo":["傮"],"sǒng":["傱","嵷","怂","悚","愯","慫","竦","耸","聳","駷","㧐"],"ào":["傲","坳","垇","墺","奡","嫯","岙","岰","嶴","懊","擙","澳","鏊","驁","骜"],"qī còu":["傶"],"chuǎng":["傸","磢","闖","闯"],"shǎ":["傻","儍"],"hàn":["傼","垾","悍","憾","扞","捍","撖","撼","旱","晘","暵","汉","涆","漢","瀚","焊","猂","皔","睅","翰","莟","菡","蛿","蜭","螒","譀","輚","釬","銲","鋎","雗","頷","顄","颔","駻","鶾"],"zhāng":["傽","嫜","张","張","彰","慞","暲","樟","漳","獐","璋","章","粻","蔁","蟑","遧","鄣","鏱","餦","騿","鱆","麞"],"yān yàn":["傿","墕","嬮"],"piào biāo":["僄","骠"],"liàn":["僆","堜","媡","恋","戀","楝","殓","殮","湅","潋","澰","瀲","炼","煉","瑓","練","纞","练","萰","錬","鍊","鏈","链","鰊","𬶠"],"màn":["㵘","僈","墁","幔","慢","曼","漫","澷","熳","獌","縵","缦","蔄","蘰","鄤","鏝","镘","𬜬"],"tàn tǎn":["僋"],"yíng":["僌","営","塋","嬴","攍","楹","櫿","溁","溋","滢","潆","濙","濚","濴","瀅","瀛","瀠","瀯","灐","灜","熒","營","瑩","盁","盈","禜","籝","籯","縈","茔","荧","莹","萤","营","萦","萾","蓥","藀","蛍","蝇","蝿","螢","蠅","謍","贏","赢","迎","鎣"],"dòng":["働","冻","凍","动","動","姛","戙","挏","栋","棟","湩","硐","胨","胴","腖","迵","霘","駧"],"zhuàn":["僎","啭","囀","堟","撰","灷","瑑","篆","腞","蒃","襈","譔","饌","馔"],"xiàng":["像","勨","向","嚮","姠","嶑","曏","橡","珦","缿","蟓","衖","襐","象","鐌","項","项","鱌"],"shàn":["僐","善","墠","墡","嬗","擅","敾","椫","樿","歚","汕","灗","疝","磰","繕","缮","膳","蟮","蟺","訕","謆","譱","讪","贍","赡","赸","鄯","鐥","饍","騸","骟","鱓","鱔","鳝","𫮃"],"tuí tuǐ":["僓"],"zǔn":["僔","噂","撙","譐"],"pú":["僕","匍","圤","墣","濮","獛","璞","瞨","穙","莆","菐","菩","葡","蒱","蒲","贌","酺","鏷","镤"],"láo":["僗","劳","労","勞","哰","崂","嶗","憥","朥","浶","牢","痨","癆","窂","簩","醪","鐒","铹","顟","髝","𫭼"],"chǎng":["僘","厰","廠","敞","昶","氅","鋹","𬬮"],"guāng":["僙","光","咣","垙","姯","洸","灮","炗","炚","炛","烡","珖","胱","茪","輄","銧","黆","𨐈"],"liáo":["僚","嘹","嫽","寥","寮","尞","屪","嵺","嶚","嶛","廫","憀","敹","暸","橑","獠","璙","疗","療","竂","簝","繚","缭","聊","膋","膫","藔","蟟","豂","賿","蹘","辽","遼","飉","髎","鷯","鹩"],"dèng":["僜","凳","墱","嶝","櫈","瞪","磴","覴","邓","鄧","隥"],"chán zhàn zhuàn":["僝"],"bō":["僠","嶓","拨","撥","播","波","溊","玻","癶","盋","砵","碆","礡","缽","菠","袰","蹳","鉢","钵","餑","饽","驋","鱍","𬭛"],"huì":["僡","匯","卉","喙","嘒","嚖","圚","嬒","寭","屶","屷","彗","彙","彚","徻","恚","恵","惠","慧","憓","懳","晦","暳","槥","橞","檅","櫘","汇","泋","滙","潓","烩","燴","獩","璤","瞺","硊","秽","穢","篲","絵","繪","绘","翙","翽","荟","蔧","蕙","薈","薉","蟪","詯","誨","諱","譓","譿","讳","诲","賄","贿","鐬","闠","阓","靧","頮","顪","颒","餯","𬤝","𬭬"],"chuǎn":["僢","喘","舛","荈","踳"],"tiě jiàn":["僣"],"sēng":["僧","鬙"],"xiàn":["僩","僴","哯","垷","塪","姭","娊","宪","岘","峴","憲","撊","晛","橌","橺","涀","瀗","献","獻","现","現","県","睍","粯","糮","絤","綫","線","线","缐","羡","羨","腺","臔","臽","苋","莧","誢","豏","鋧","錎","限","陥","陷","霰","餡","馅","麲","鼸","𬀪","𪾢"],"yù jú":["僪"],"è wū":["僫"],"tóng zhuàng":["僮"],"lǐn":["僯","凛","凜","廩","廪","懍","懔","撛","檁","檩","澟","癛","癝"],"gù":["僱","凅","固","堌","崓","崮","故","梏","棝","牿","痼","祻","錮","锢","雇","顧","顾","鯝","鲴"],"jiāng":["僵","壃","姜","橿","殭","江","畕","疅","礓","繮","缰","翞","茳","葁","薑","螀","螿","豇","韁","鱂","鳉"],"mǐn":["僶","冺","刡","勄","悯","惽","愍","慜","憫","抿","敃","敏","敯","泯","潣","皿","笢","笽","簢","蠠","閔","閩","闵","闽","鰵","鳘","黽"],"jìn":["僸","凚","噤","嚍","墐","壗","妗","嬧","搢","晉","晋","枃","殣","浕","浸","溍","濅","濜","烬","煡","燼","琎","瑨","璶","盡","祲","縉","缙","荩","藎","覲","觐","賮","贐","赆","近","进","進","靳","齽"],"jià jie":["價"],"qiào":["僺","峭","帩","撬","殻","窍","竅","誚","诮","躈","陗","鞩","韒","髚"],"pì":["僻","媲","嫓","屁","澼","甓","疈","譬","闢","鷿","鸊","䴙"],"sài":["僿","簺","賽","赛"],"chán tǎn shàn":["儃"],"dāng dàng":["儅","当","闣"],"xuān":["儇","喧","塇","媗","宣","愃","愋","揎","昍","暄","煊","煖","瑄","睻","矎","禤","箮","翧","翾","萱","萲","蓒","蕿","藼","蘐","蝖","蠉","諠","諼","譞","谖","軒","轩","鍹","駽","鰚","𫓶","𫍽"],"dān dàn":["儋","擔","瘅"],"càn":["儏","澯","灿","燦","璨","粲","薒","謲"],"bīn bìn":["儐"],"án àn":["儑"],"tái":["儓","坮","嬯","抬","擡","檯","炱","炲","籉","臺","薹","跆","邰","颱","鮐","鲐"],"lán":["儖","兰","囒","婪","岚","嵐","幱","拦","攔","斓","斕","栏","欄","欗","澜","瀾","灆","灡","燣","燷","璼","篮","籃","籣","繿","葻","蓝","藍","蘫","蘭","褴","襕","襤","襴","襽","譋","讕","谰","躝","鑭","镧","闌","阑","韊","𬒗"],"nǐ yì ài yí":["儗"],"méng":["儚","幪","曚","朦","橗","檬","氋","溕","濛","甍","甿","盟","礞","艨","莔","萌","蕄","虻","蝱","鄳","鄸","霿","靀","顭","饛","鯍","鸏","鹲","𫑡","㠓"],"níng":["儜","凝","咛","嚀","嬣","柠","橣","檸","狞","獰","聍","聹","薴","鑏","鬡","鸋"],"qióng":["儝","卭","宆","惸","憌","桏","橩","焪","焭","煢","熍","琼","瓊","睘","穷","穹","窮","竆","笻","筇","舼","茕","藑","藭","蛩","蛬","赹","跫","邛","銎","䓖"],"liè":["儠","冽","列","劣","劽","埒","埓","姴","峛","巤","挒","捩","栵","洌","浖","烈","烮","煭","犣","猎","猟","獵","聗","脟","茢","蛚","趔","躐","迾","颲","鬛","鬣","鮤","鱲","鴷","䴕","𫚭"],"kuǎng":["儣","夼","懭"],"bào":["儤","勽","報","忁","报","抱","曓","爆","犦","菢","虣","蚫","豹","鉋","鑤","铇","骲","髱","鮑","鲍"],"biāo":["儦","墂","幖","彪","标","標","滮","瀌","熛","爂","猋","瘭","磦","膘","臕","謤","贆","鏢","鑣","镖","镳","颮","颷","飆","飇","飈","飊","飑","飙","飚","驫","骉","髟"],"zǎn":["儧","儹","噆","攅","昝","趱","趲"],"háo":["儫","嗥","嘷","噑","嚎","壕","椃","毜","毫","濠","獆","獔","竓","籇","蚝","蠔","譹","豪"],"qìng":["儬","凊","庆","慶","櫦","濪","碃","磬","罄","靘"],"chèn":["儭","嚫","榇","櫬","疢","衬","襯","讖","谶","趁","趂","齓","齔","龀"],"téng":["儯","幐","滕","漛","疼","籐","籘","縢","腾","藤","虅","螣","誊","謄","邆","駦","騰","驣","鰧","䲢"],"lǒng lóng lòng":["儱"],"chán chàn":["儳"],"ráng xiāng":["儴","勷"],"huì xié":["儶"],"luó":["儸","攞","椤","欏","猡","玀","箩","籮","罗","羅","脶","腡","萝","蘿","螺","覼","逻","邏","鏍","鑼","锣","镙","饠","騾","驘","骡","鸁"],"léi":["儽","嫘","檑","欙","瓃","畾","縲","纍","纝","缧","罍","羸","蔂","蘲","虆","轠","鐳","鑘","镭","雷","靁","鱩","鼺"],"nàng nāng":["儾"],"wù wū":["兀"],"yǔn":["允","喗","夽","抎","殒","殞","狁","磒","荺","賱","鈗","阭","陨","隕","霣","馻","齫","齳"],"zān":["兂","橵","簪","簮","糌","鐕","鐟","鵤"],"yuán":["元","円","原","厡","厵","园","圆","圎","園","圓","垣","塬","媴","嫄","援","榞","榬","橼","櫞","沅","湲","源","溒","爰","猨","猿","笎","緣","縁","缘","羱","茒","薗","蝝","蝯","螈","袁","褤","謜","轅","辕","邍","邧","酛","鈨","鎱","騵","魭","鶢","鶰","黿","鼋","𫘪"],"xiōng":["兄","兇","凶","匂","匈","哅","忷","恟","汹","洶","胷","胸","芎","訩","詾","讻"],"chōng":["充","嘃","忡","憃","憧","摏","沖","浺","珫","罿","翀","舂","艟","茺","衝","蹖","㳘"],"zhào":["兆","垗","旐","曌","枛","櫂","照","燳","狣","瞾","笊","罀","罩","羄","肁","肇","肈","詔","诏","赵","趙","鮡","𬶐"],"duì ruì yuè":["兊","兌","兑"],"kè":["克","刻","勀","勊","堁","娔","客","恪","愙","氪","溘","碦","緙","缂","艐","衉","課","课","錁","锞","騍","骒"],"tù":["兎","兔","堍","迌","鵵"],"dǎng":["党","攩","欓","譡","讜","谠","黨","𣗋"],"dōu":["兜","兠","唗","橷","篼","蔸"],"huǎng":["兤","奛","幌","怳","恍","晄","炾","熀","縨","詤","謊","谎"],"rù":["入","嗕","媷","扖","杁","洳","溽","縟","缛","蓐","褥","鳰"],"nèi":["內","氝","氞","錗"],"yú shù":["兪"],"liù lù":["六"],han:["兯","爳"],"tiān":["兲","天","婖","添","酟","靔","靝","黇"],"xīng xìng":["兴"],"diǎn":["典","嚸","奌","婰","敟","椣","点","碘","蒧","蕇","踮","點"],"zī cí":["兹"],"jiān":["兼","冿","囏","坚","堅","奸","姦","姧","尖","幵","惤","戋","戔","搛","椾","樫","櫼","歼","殱","殲","湔","瀐","瀸","煎","熞","熸","牋","瑊","睷","礛","礷","笺","箋","緘","縑","缄","缣","肩","艰","艱","菅","菺","葌","蒹","蔪","蕑","蕳","虃","譼","豜","鑯","雃","鞯","韀","韉","餰","馢","鰔","鰜","鰹","鲣","鳒","鵑","鵳","鶼","鹣","麉"],"shòu":["兽","受","售","壽","夀","寿","授","狩","獣","獸","痩","瘦","綬","绶","膄"],"jì":["兾","冀","剂","剤","劑","勣","坖","垍","塈","妓","季","寂","寄","廭","彑","徛","忌","悸","惎","懻","技","旡","既","旣","暨","暩","曁","梞","檕","檵","洎","漃","漈","瀱","痵","癠","禝","稩","稷","穄","穊","穧","紀","継","績","繋","繼","继","绩","罽","臮","芰","茍","茤","葪","蓟","蔇","薊","蘎","蘮","蘻","裚","襀","覬","觊","計","記","誋","计","记","跡","跽","蹟","迹","际","際","霁","霽","驥","骥","髻","鬾","魝","魥","鯚","鯽","鰶","鰿","鱀","鱭","鲚","鲫","鵋","鷑","齌","𪟝","𬶨","𬶭"],"jiōng":["冂","冋","坰","埛","扃","蘏","蘔","駉","駫","𬳶"],"mào":["冃","冐","媢","帽","愗","懋","暓","柕","楙","毷","瑁","皃","眊","瞀","耄","茂","萺","蝐","袤","覒","貌","貿","贸","鄚","鄮"],"rǎn":["冄","冉","姌","媣","染","珃","苒","蒅","䎃"],"nèi nà":["内"],"gāng":["冈","冮","刚","剛","堈","堽","岡","掆","摃","棡","牨","犅","疘","綱","纲","缸","罁","罡","肛","釭","鎠","㭎"],"cè":["冊","册","厕","厠","夨","廁","恻","惻","憡","敇","测","測","笧","策","筞","筴","箣","荝","萗","萴","蓛"],"guǎ":["冎","剐","剮","叧","寡"],"mào mò":["冒"],"gòu":["冓","啂","坸","垢","够","夠","媾","彀","搆","撀","构","構","煹","覯","觏","訽","詬","诟","購","购","遘","雊"],"xǔ":["冔","喣","暊","栩","珝","盨","糈","詡","諿","诩","鄦","醑"],"mì":["冖","冪","嘧","塓","宻","密","峚","幂","幎","幦","怽","榓","樒","櫁","汨","淧","滵","漞","濗","熐","羃","蔤","蜜","覓","覔","覛","觅","謐","谧","鼏"],"yóu yín":["冘"],"xiě":["写","冩","藛"],"jūn":["军","君","均","桾","汮","皲","皸","皹","碅","莙","蚐","袀","覠","軍","鈞","銁","銞","鍕","钧","頵","鮶","鲪","麏"],"mí":["冞","擟","瀰","爢","猕","獼","祢","禰","縻","蒾","藌","蘪","蘼","袮","詸","謎","迷","醚","醾","醿","釄","镾","鸍","麊","麋","麛"],"guān guàn":["冠","覌","観","觀","观"],"měng":["冡","勐","懵","掹","猛","獴","艋","蜢","蠓","錳","锰","鯭","鼆"],"zhǒng":["冢","塚","尰","歱","煄","瘇","肿","腫","踵"],"zuì":["冣","嶵","晬","最","栬","槜","檇","檌","祽","絊","罪","蕞","辠","酔","酻","醉","錊"],"yuān":["冤","剈","囦","嬽","寃","棩","淵","渁","渆","渊","渕","灁","眢","肙","葾","蒬","蜎","蜵","駌","鳶","鴛","鵷","鸢","鸳","鹓","鼘","鼝"],"míng":["冥","名","明","暝","朙","榠","洺","溟","猽","眀","眳","瞑","茗","螟","覭","詺","鄍","銘","铭","鳴","鸣"],"kòu":["冦","叩","宼","寇","扣","敂","滱","窛","筘","簆","蔲","蔻","釦","鷇"],"tài":["冭","太","夳","忲","态","態","汰","汱","泰","溙","肽","舦","酞","鈦","钛"],"féng píng":["冯","馮"],"chōng chòng":["冲"],"kuàng":["况","圹","壙","岲","懬","旷","昿","曠","框","況","爌","眖","眶","矿","砿","礦","穬","絋","絖","纊","纩","貺","贶","軦","邝","鄺","鉱","鋛","鑛","黋"],"lěng":["冷"],"pàn":["冸","判","叛","沜","泮","溿","炍","牉","畔","盼","聁","袢","襻","詊","鋬","鑻","頖","鵥"],"fā":["冹","彂","沷","発","發"],"xiǎn":["冼","尟","尠","崄","嶮","幰","攇","显","櫶","毨","灦","烍","燹","狝","猃","獫","獮","玁","禒","筅","箲","藓","蘚","蚬","蜆","譣","赻","跣","鍌","险","険","險","韅","顕","顯","㬎"],"qià":["冾","圶","帢","恰","殎","洽","硈","胢","髂"],"jìng chēng":["净","凈","淨"],"sōu":["凁","嗖","廀","廋","捜","搜","摉","溲","獀","艘","蒐","螋","鄋","醙","鎪","锼","颼","飕","餿","馊","騪"],"měi":["凂","媄","媺","嬍","嵄","挴","毎","每","浼","渼","燘","美","躾","鎂","镁","黣"],"tú":["凃","図","图","圖","圗","塗","屠","峹","嵞","庩","廜","徒","悇","揬","涂","瘏","筡","腯","荼","蒤","跿","途","酴","鈯","鍎","馟","駼","鵌","鶟","鷋","鷵","𬳿"],"zhǔn":["准","凖","埻","準","𬘯"],"liáng liàng":["凉","涼","量"],"diāo":["凋","刁","刟","叼","奝","弴","彫","汈","琱","碉","簓","虭","蛁","貂","錭","雕","鮉","鯛","鲷","鵰","鼦"],"còu":["凑","湊","腠","輳","辏"],"ái":["凒","啀","嘊","捱","溰","癌","皑","皚"],"duó":["凙","剫","夺","奪","痥","踱","鈬","鐸","铎"],"dú":["凟","匵","嬻","椟","櫝","殰","涜","牍","牘","犊","犢","独","獨","瓄","皾","裻","読","讀","讟","豄","贕","錖","鑟","韇","韣","韥","騳","髑","黩","黷"],"jǐ jī":["几"],"fán":["凡","凢","凣","匥","墦","杋","柉","棥","樊","瀿","烦","煩","燔","璠","矾","礬","笲","籵","緐","羳","舤","舧","薠","蘩","蠜","襎","蹯","釩","鐇","鐢","钒","鷭","𫔍","𬸪"],"jū":["凥","匊","娵","婮","居","崌","抅","挶","掬","梮","椐","檋","毩","毱","泃","涺","狙","琚","疽","砠","罝","腒","艍","蜛","裾","諊","跔","踘","躹","陱","雎","鞠","鞫","駒","驹","鮈","鴡","鶋","𬶋"],"chù chǔ":["処","处"],"zhǐ":["凪","劧","咫","址","坧","帋","恉","扺","指","旨","枳","止","汦","沚","洔","淽","疻","砋","祉","秖","紙","纸","芷","藢","衹","襧","訨","趾","軹","轵","酯","阯","黹"],"píng":["凭","凴","呯","坪","塀","岼","帡","帲","幈","平","慿","憑","枰","洴","焩","玶","瓶","甁","竮","箳","簈","缾","荓","萍","蓱","蚲","蛢","評","评","軿","輧","郱","鮃","鲆"],"kǎi":["凯","凱","剀","剴","垲","塏","恺","愷","慨","暟","蒈","輆","鍇","鎧","铠","锴","闓","闿","颽"],"gān":["凲","坩","尲","尴","尶","尷","柑","泔","漧","玕","甘","疳","矸","竿","筸","粓","肝","苷","迀","酐","魐"],"kǎn qiǎn":["凵"],"tū":["凸","堗","嶀","捸","涋","湥","痜","禿","秃","突","葖","鋵","鵚","鼵","㻬"],"āo wā":["凹"],"chū":["出","初","岀","摴","榋","樗","貙","齣","䢺","䝙"],"dàng":["凼","圵","垱","壋","档","檔","氹","璗","瓽","盪","瞊","砀","碭","礑","簜","荡","菪","蕩","蘯","趤","逿","雼","𬍡"],"hán":["函","凾","含","圅","娢","寒","崡","晗","梒","浛","涵","澏","焓","琀","甝","筨","蜬","邗","邯","鋡","韓","韩"],"záo":["凿","鑿"],"dāo":["刀","刂","忉","氘","舠","螩","釖","魛","鱽"],"chuāng":["刅","摐","牎","牕","疮","瘡","窓","窗","窻"],"fēn fèn":["分"],"qiè qiē":["切"],"kān":["刊","勘","堪","戡","栞","龕","龛"],"cǔn":["刌","忖"],"chú":["刍","厨","幮","廚","橱","櫉","櫥","滁","犓","篨","耡","芻","蒢","蒭","蜍","蟵","豠","趎","蹰","躇","躕","鉏","鋤","锄","除","雏","雛","鶵"],"huà huá":["划"],"lí":["刕","剓","剺","劙","厘","喱","嚟","囄","嫠","孷","廲","悡","梨","梸","棃","漓","灕","犁","犂","狸","琍","璃","瓈","盠","睝","离","穲","竰","筣","篱","籬","糎","縭","缡","罹","艃","荲","菞","蓠","蔾","藜","蘺","蜊","蟍","蟸","蠫","褵","謧","貍","醨","鋫","錅","鏫","鑗","離","驪","骊","鯏","鯬","鱺","鲡","鵹","鸝","鹂","黎","黧","㰀"],"yuè":["刖","嬳","岄","岳","嶽","恱","悅","悦","戉","抈","捳","月","樾","瀹","爚","玥","礿","禴","篗","籆","籥","籰","粤","粵","蘥","蚎","蚏","説","越","跀","跃","躍","軏","鈅","鉞","鑰","钺","閱","閲","阅","鸑","鸙","黦","龠","𫐄","𬸚"],"liú":["刘","劉","嚠","媹","嵧","旈","旒","榴","橊","流","浏","瀏","琉","瑠","瑬","璢","畄","留","畱","疁","瘤","癅","硫","蒥","蓅","蟉","裗","鎏","鏐","鐂","镠","飀","飅","飗","駠","駵","騮","驑","骝","鰡","鶹","鹠","麍"],"zé":["则","則","啧","嘖","嫧","帻","幘","択","樍","歵","沢","泎","溭","皟","瞔","矠","礋","箦","簀","舴","蔶","蠌","襗","謮","賾","赜","迮","鸅","齚","齰"],"chuàng chuāng":["创","創"],"qù":["刞","厺","去","閴","闃","阒","麮","鼁"],"bié biè":["別","别"],"páo bào":["刨"],"chǎn chàn":["刬","剗","幝"],"guā":["刮","劀","桰","歄","煱","瓜","胍","踻","颪","颳","騧","鴰","鸹"],"gēng":["刯","庚","椩","浭","焿","畊","絚","羮","羹","耕","菮","賡","赓","鶊","鹒"],"dào":["到","噵","悼","椡","檤","燾","瓙","盗","盜","稲","稻","纛","翿","艔","菿","衜","衟","軇","道"],"chuàng":["刱","剏","剙","怆","愴"],"kū":["刳","哭","圐","堀","枯","桍","矻","窟","跍","郀","骷","鮬"],"duò":["刴","剁","墯","尮","惰","憜","挅","桗","舵","跥","跺","陊","陏","飿","饳","鵽"],"shuā shuà":["刷"],"quàn xuàn":["券"],"chà shā":["刹","剎"],"cì cī":["刺"],"guì":["刽","刿","劊","劌","撌","攰","昋","桂","椢","槶","樻","櫃","猤","禬","筀","蓕","襘","貴","贵","跪","鐀","鑎","鞼","鱖","鱥"],"lóu":["剅","娄","婁","廔","楼","樓","溇","漊","熡","耧","耬","艛","蒌","蔞","蝼","螻","謱","軁","遱","鞻","髅","髏","𪣻"],"cuò":["剉","剒","厝","夎","挫","措","棤","莝","莡","蓌","逪","銼","錯","锉","错"],"xiāo xuē":["削"],"kēi kè":["剋","尅"],"là lá":["剌"],"tī":["剔","梯","踢","銻","锑","鷈","鷉","䏲","䴘"],"pōu":["剖"],"wān":["剜","塆","壪","帵","弯","彎","湾","潫","灣","睕","蜿","豌"],"bāo bō":["剝","剥"],"duō":["剟","咄","哆","嚉","多","夛","掇","毲","畓","裰","㙍"],"qíng":["剠","勍","夝","情","擎","晴","暒","棾","樈","檠","氰","甠","硘","葝","黥"],"yǎn shàn":["剡"],"dū zhuó":["剢"],"yān":["剦","嫣","崦","嶖","恹","懕","懨","樮","淊","淹","漹","烟","焉","焑","煙","珚","篶","胭","臙","菸","鄢","醃","閹","阉","黫"],"huō":["剨","劐","吙","攉","秴","耠","锪","騞","𬴃"],"shèng":["剩","剰","勝","圣","墭","嵊","晠","榺","橳","琞","聖","蕂","貹","賸"],"duān zhì":["剬"],"wū":["剭","呜","嗚","圬","屋","巫","弙","杇","歍","汙","汚","污","洿","烏","窏","箼","螐","誈","誣","诬","邬","鄔","鎢","钨","鰞","鴮"],"gē":["割","哥","圪","彁","戈","戓","戨","歌","滒","犵","肐","袼","謌","鎶","鴚","鴿","鸽"],"dá zhá":["剳"],"chuán":["剶","暷","椽","篅","舡","舩","船","輲","遄"],"tuán zhuān":["剸","漙","篿"],"lù jiū":["剹"],"pēng":["剻","匉","嘭","怦","恲","抨","梈","烹","砰","軯","駍"],"piāo":["剽","勡","慓","旚","犥","翲","螵","飃","飄","飘","魒"],"kōu":["剾","彄","抠","摳","眍","瞘","芤","𫸩"],"jiǎo chāo":["剿","劋","勦","摷"],"qiāo":["劁","勪","墝","幧","敲","橇","毃","燆","硗","磽","繑","趬","跷","踍","蹺","蹻","郻","鄡","鄥","鍫","鍬","鐰","锹","頝"],"huá huà":["劃"],"zhā zhá":["劄"],"pī pǐ":["劈","悂"],"tāng":["劏","嘡","羰","薚","蝪","蹚","鞺","鼞"],"chán":["劖","嚵","壥","婵","嬋","巉","廛","棎","毚","湹","潹","潺","澶","瀍","瀺","煘","獑","磛","緾","纏","纒","缠","艬","蝉","蟐","蟬","蟾","誗","讒","谗","躔","鄽","酁","鋋","鑱","镵","饞","馋"],"zuān":["劗","躜","躦","鉆","鑚"],"mó":["劘","嫫","嬤","嬷","尛","摹","擵","橅","糢","膜","藦","蘑","謨","謩","谟","饃","饝","馍","髍","魔","魹"],"zhú":["劚","斸","曯","欘","灟","炢","烛","燭","爥","瘃","竹","笁","笜","舳","茿","蓫","蠋","蠾","躅","逐","逫","钃","鱁"],"quàn":["劝","勧","勸","牶","韏"],"jìn jìng":["劤","劲","勁"],"kēng":["劥","坑","牼","硁","硜","誙","銵","鍞","鏗","铿","阬"],"xié liè":["劦"],"zhù chú":["助"],"nǔ":["努","弩","砮","胬"],"shào":["劭","卲","哨","潲","紹","綤","绍","袑","邵"],"miǎo":["劰","杪","淼","渺","眇","秒","篎","緲","缈","藐","邈"],"kǒu":["劶","口"],"wā":["劸","娲","媧","屲","挖","攨","洼","溛","漥","瓾","畖","穵","窊","窪","蛙","韈","鼃"],"kuāng":["劻","匡","匩","哐","恇","洭","筐","筺","誆","诓","軭","邼"],"hé":["劾","咊","啝","姀","峆","敆","曷","柇","楁","毼","河","涸","渮","澕","熆","皬","盇","盉","盍","盒","禾","篕","籺","粭","翮","菏","萂","覈","訸","詥","郃","釛","鉌","鑉","閡","闔","阂","阖","鞨","頜","餄","饸","魺","鹖","麧","齕","龁","龢","𬌗"],"gào":["勂","吿","告","峼","祮","祰","禞","筶","誥","诰","郜","鋯","锆"],"bó bèi":["勃"],"láng":["勆","嫏","廊","斏","桹","榔","樃","欴","狼","琅","瑯","硠","稂","艆","蓈","蜋","螂","躴","郒","郞","鋃","鎯","锒"],"xūn":["勋","勛","勲","勳","嚑","坃","埙","塤","壎","壦","曛","燻","獯","矄","纁","臐","薫","薰","蘍","醺","𫄸"],"juàn juān":["勌","瓹"],"lè lēi":["勒"],"kài":["勓","炌","烗","鎎"],"wěng yǎng":["勜"],"qín":["勤","嗪","噙","嶜","庈","懃","懄","捦","擒","斳","檎","澿","珡","琴","琹","瘽","禽","秦","耹","芩","芹","菦","螓","蠄","鈙","鈫","雂","靲","鳹","鵭"],"jiàng":["勥","匞","匠","嵹","弜","弶","摾","櫤","洚","滰","犟","糡","糨","絳","绛","謽","酱","醤","醬"],"fān":["勫","嬏","帆","幡","忛","憣","旙","旛","繙","翻","藩","轓","颿","飜","鱕"],"juān":["勬","姢","娟","捐","涓","蠲","裐","鎸","鐫","镌","鹃"],"tóng dòng":["勭","烔","燑","狪"],"lǜ":["勴","垏","嵂","律","慮","氯","滤","濾","爈","箻","綠","繂","膟","葎","虑","鑢"],"chè":["勶","坼","彻","徹","掣","撤","澈","烢","爡","瞮","硩","聅","迠","頙","㬚"],"sháo":["勺","玿","韶"],"gōu gòu":["勾"],"cōng":["匆","囪","囱","忩","怱","悤","暰","樬","漗","瑽","璁","瞛","篵","繱","聡","聦","聪","聰","苁","茐","葱","蓯","蔥","蟌","鍯","鏓","鏦","騘","驄","骢"],"táo yáo":["匋","陶"],"páo":["匏","咆","垉","庖","爮","狍","袍","褜","軳","鞄","麅"],"dá":["匒","妲","怛","炟","燵","畣","笪","羍","荙","薘","蟽","詚","达","迏","迖","迚","逹","達","鐽","靼","鞑","韃","龖","龘","𫟼"],"huà huā":["化"],"běi bèi":["北"],"nǎo":["匘","垴","堖","嫐","恼","悩","惱","瑙","碯","脑","脳","腦"],"chí shi":["匙"],"fāng":["匚","堏","方","淓","牥","芳","邡","鈁","錺","钫","鴋"],"zā":["匝","咂","帀","沞","臜","臢","迊","鉔","魳"],"qiè":["匧","厒","妾","怯","悏","惬","愜","挈","穕","窃","竊","笡","箧","篋","籡","踥","鍥","锲","鯜"],"zāng cáng":["匨"],"fěi":["匪","奜","悱","棐","榧","篚","翡","蕜","誹","诽"],"kuì guì":["匮","匱"],"suǎn":["匴"],"pǐ":["匹","噽","嚭","圮","庀","痞","癖","脴","苉","銢","鴄"],"qū ōu":["区","區"],"kē qià":["匼"],"yǎn yàn":["匽","棪"],"biǎn":["匾","惼","揙","碥","稨","窆","藊","褊","貶","贬","鴘"],"nì":["匿","堄","嫟","嬺","惄","愵","昵","暱","氼","眤","睨","縌","胒","腻","膩","逆","𨺙"],"niàn":["卄","唸","埝","廿","念","惗","艌"],"sà":["卅","櫒","脎","萨","蕯","薩","鈒","隡","颯","飒","馺"],"zú":["卆","哫","崪","族","箤","足","踤","镞"],"shēng":["升","呏","声","斘","昇","曻","枡","殅","泩","湦","焺","牲","珄","生","甥","竔","笙","聲","鉎","鍟","阩","陞","陹","鵿","鼪"],"wàn":["卍","卐","忨","杤","瞣","脕","腕","萬","蟃","贎","輐","錽","𬇕"],"huá huà huā":["华","華"],"bēi":["卑","悲","揹","杯","桮","盃","碑","藣","鵯","鹎"],"zú cù":["卒"],"dān shàn chán":["单","單"],"nán nā":["南"],"shuài lǜ":["卛"],"bǔ bo pú":["卜"],"kuàng guàn":["卝"],"biàn":["卞","变","変","峅","弁","徧","忭","抃","昪","汳","汴","玣","艑","苄","覍","諚","變","辡","辧","辨","辩","辫","辮","辯","遍","釆","𨚕"],"bǔ":["卟","哺","捕","补","補","鸔","𬷕"],"zhàn zhān":["占","覱"],"kǎ qiǎ":["卡"],"lú":["卢","嚧","垆","壚","庐","廬","曥","枦","栌","櫨","泸","瀘","炉","爐","獹","玈","瓐","盧","矑","籚","纑","罏","胪","臚","舮","舻","艫","芦","蘆","蠦","轤","轳","鈩","鑪","顱","颅","馿","髗","魲","鱸","鲈","鸕","鸬","黸","𬬻"],"lǔ":["卤","塷","掳","擄","樐","橹","櫓","氌","滷","澛","瀂","硵","磠","穞","艣","艪","蓾","虏","虜","鏀","鐪","鑥","镥","魯","鲁","鹵"],"guà":["卦","啩","挂","掛","罣","褂","詿","诖"],"áng yǎng":["卬"],"yìn":["印","垽","堷","廕","慭","憖","憗","懚","洕","湚","猌","癊","胤","茚","酳","鮣","䲟"],"què":["却","卻","塙","崅","悫","愨","慤","搉","榷","燩","琷","皵","确","確","礭","闋","阕","鵲","鹊","𬒈"],"luǎn":["卵"],"juàn juǎn":["卷","巻"],"chǎng ān hàn":["厂"],"wěi yán":["厃"],"tīng":["厅","厛","听","庁","廰","廳","汀","烃","烴","綎","耓","聴","聼","聽","鞓","𬘩"],"zhé zhái":["厇"],"hàn àn":["厈","屽"],"yǎ":["厊","唖","庌","痖","瘂","蕥"],"shè":["厍","厙","弽","慑","慴","懾","摂","欇","涉","涻","渉","滠","灄","社","舎","蔎","蠂","設","设","赦","騇","麝"],"dǐ":["厎","呧","坘","弤","抵","拞","掋","牴","砥","菧","觝","詆","诋","軧","邸","阺","骶","鯳"],"zhǎ zhǎi":["厏"],"páng":["厐","嫎","庞","徬","舽","螃","逄","鰟","鳑","龎","龐"],"zhì shī":["厔"],"máng":["厖","吂","哤","娏","忙","恾","杗","杧","汒","浝","牻","痝","盲","硭","笀","芒","茫","蘉","邙","釯","鋩","铓","駹"],"zuī":["厜","樶","纗","蟕"],"shà xià":["厦","廈"],"áo":["厫","嗷","嗸","廒","敖","滶","獒","獓","璈","翱","翶","翺","聱","蔜","螯","謷","謸","遨","鏖","隞","鰲","鳌","鷔","鼇"],"lán qiān":["厱"],"sī mǒu":["厶"],"gōng hóng":["厷"],"lín miǎo":["厸"],"qiú róu":["厹"],"dū":["厾","嘟","督","醏"],"xiàn xuán":["县","縣"],"cān shēn cēn sān":["参","參","叄","叅"],"ài yǐ":["叆"],"chā chà chǎ chá":["叉"],"shuāng":["双","孀","孇","欆","礵","艭","雙","霜","騻","驦","骦","鷞","鸘","鹴"],"shōu":["収","收"],"guái":["叏"],"bá":["叐","妭","抜","拔","炦","癹","胈","茇","菝","詙","跋","軷","魃","鼥"],"fā fà":["发"],"zhuó yǐ lì jué":["叕"],"qǔ":["取","娶","竬","蝺","詓","齲","龋"],"jiǎ xiá":["叚","徦"],"wèi yù":["叞","尉","蔚"],"dié":["叠","垤","堞","峌","幉","恎","惵","戜","曡","殜","氎","牃","牒","瓞","畳","疂","疉","疊","碟","絰","绖","耊","耋","胅","艓","苵","蜨","蝶","褋","詄","諜","谍","跮","蹀","迭","镻","鰈","鲽","鴩","𫶇"],"ruì":["叡","枘","汭","瑞","睿","芮","蚋","蜹","銳","鋭","锐"],"jù gōu":["句"],"lìng":["另","呤","炩","蘦"],"dāo dáo tāo":["叨"],"zhī zhǐ":["只"],"jiào":["叫","呌","嘂","嘦","噍","嬓","斍","斠","滘","漖","獥","珓","皭","窖","藠","訆","譥","趭","較","轎","轿","较","酵","醮","釂"],"zhào shào":["召"],"kě kè":["可"],"tái tāi":["台","苔"],"pǒ":["叵","尀","笸","箥","鉕","钷","駊"],"yè xié":["叶"],"hào háo":["号"],"tàn":["叹","嘆","探","歎","湠","炭","碳","舕"],"hōng hóng":["叿"],"miē":["吀","咩","哶","孭"],"xū yū yù":["吁"],"chī":["吃","哧","喫","嗤","噄","妛","媸","彨","彲","摛","攡","殦","瓻","痴","癡","眵","瞝","笞","粚","胵","蚩","螭","訵","魑","鴟","鵄","鸱","黐","齝","𫄨"],"xuān sòng":["吅"],"yāo":["吆","喓","夭","妖","幺","楆","殀","祅","腰","葽","訞","邀","鴁","鴢","㙘"],"zǐ":["吇","姉","姊","子","杍","梓","榟","橴","滓","矷","秭","笫","籽","紫","耔","虸","訿","釨"],"hé gě":["合","鲄"],"cùn dòu":["吋"],"tóng tòng":["同"],"tǔ tù":["吐","唋"],"zhà zhā":["吒","奓"],"xià hè":["吓"],"ā yā":["吖"],"ma má mǎ":["吗"],"lìn":["吝","恡","悋","橉","焛","甐","膦","蔺","藺","賃","赁","蹸","躏","躙","躪","轥","閵"],"tūn":["吞","暾","朜","焞"],"bǐ pǐ":["吡"],"qìn":["吢","吣","唚","抋","揿","搇","撳","沁","瀙","菣","藽"],"jiè gè":["吤"],"fǒu pǐ":["否"],"ba bā":["吧"],"dūn":["吨","噸","墩","墪","惇","撉","撴","犜","獤","礅","蜳","蹾","驐"],"fēn":["吩","帉","昐","朆","梤","棻","氛","竕","紛","纷","翂","芬","衯","訜","躮","酚","鈖","雰","餴","饙","馚"],"é huā":["吪"],"kēng háng":["吭","妔"],"shǔn":["吮"],"zhī zī":["吱"],"yǐn shěn":["吲"],"wú":["吳","吴","呉","墲","峿","梧","橆","毋","洖","浯","無","珸","璑","祦","芜","茣","莁","蕪","蜈","蟱","譕","郚","鋙","铻","鯃","鵐","鷡","鹀","鼯"],"chǎo chāo":["吵"],"nà nè":["吶"],"xuè chuò jué":["吷"],"chuī":["吹","炊","龡"],"dōu rú":["吺"],"hǒu":["吼","犼"],"hōng hǒu ōu":["吽"],"wú yù":["吾"],"ya yā":["呀"],"è e":["呃"],"dāi":["呆","懛","獃"],"mèn qǐ":["呇"],"hōng":["呍","嚝","揈","灴","烘","焢","硡","薨","訇","谾","軣","輷","轟","轰","鍧"],"nà":["呐","捺","笝","納","纳","肭","蒳","衲","豽","貀","軜","郍","鈉","钠","靹","魶"],"tūn tiān":["呑"],"fǔ ḿ":["呒","嘸"],"dāi tǎi":["呔"],"ǒu ōu òu":["呕"],"bài bei":["呗"],"yuán yún yùn":["员","員"],"guō":["呙","啯","嘓","埚","堝","墎","崞","彉","彍","懖","猓","瘑","聒","蝈","蟈","郭","鈛","鍋","锅"],"huá qì":["呚"],"qiàng qiāng":["呛","跄"],"shī":["呞","失","尸","屍","师","師","施","浉","湤","湿","溮","溼","濕","狮","獅","瑡","絁","葹","蒒","蓍","虱","蝨","褷","襹","詩","诗","邿","釃","鉇","鍦","鯴","鰤","鲺","鳲","鳾","鶳","鸤","䴓","𫚕"],"juǎn":["呟","埍","臇","菤","錈","锩"],"pěn":["呠","翸"],"wěn mǐn":["呡"],"ne ní":["呢"],"ḿ m̀ móu":["呣"],"rán":["呥","嘫","然","燃","繎","肰","蚦","蚺","衻","袇","袡","髥","髯"],"tiè chè":["呫"],"qì zhī":["呮"],"zǐ cī":["呰"],"guā gū guǎ":["呱"],"cī zī":["呲"],"hǒu xǔ gòu":["呴"],"hē ā á ǎ à a":["呵"],"náo":["呶","夒","峱","嶩","巎","挠","撓","猱","硇","蛲","蟯","詉","譊","鐃","铙"],"xiā gā":["呷"],"pēi":["呸","怌","肧","胚","衃","醅"],"háo xiāo":["呺"],"mìng":["命","掵"],"dá dàn":["呾"],"zuǐ jǔ":["咀"],"xián gān":["咁"],"pǒu":["咅","哣","犃"],"yǎng yāng":["咉"],"zǎ zé zhā":["咋"],"hé hè huó huò hú":["和"],"hāi":["咍"],"dā":["咑","哒","噠","墶","搭","撘","耷","褡","鎝","𨱏"],"kǎ kā":["咔"],"gū":["咕","唂","唃","姑","嫴","孤","巬","巭","柧","橭","沽","泒","稒","笟","箍","箛","篐","罛","苽","菇","菰","蓇","觚","軱","軲","轱","辜","酤","鈲","鮕","鴣","鸪"],"kā gā":["咖"],zuo:["咗"],"lóng":["咙","嚨","嶐","巃","巄","昽","曨","朧","栊","槞","櫳","湰","滝","漋","爖","珑","瓏","癃","眬","矓","砻","礱","礲","窿","竜","聋","聾","胧","茏","蘢","蠪","蠬","襱","豅","鏧","鑨","霳","靇","驡","鸗","龍","龒","龙"],"xiàn xián":["咞"],"qì":["咠","唭","噐","器","夡","弃","憇","憩","暣","棄","欫","气","気","氣","汔","汽","泣","湆","湇","炁","甈","盵","矵","碛","碶","磜","磧","罊","芞","葺","藒","蟿","訖","讫","迄","鐑"],"xì dié":["咥"],"liē liě lié lie":["咧"],"zī":["咨","嗞","姕","姿","孜","孳","孶","崰","嵫","栥","椔","淄","湽","滋","澬","玆","禌","秶","粢","紎","緇","緕","纃","缁","茊","茲","葘","諮","谘","貲","資","赀","资","赼","趑","趦","輜","輺","辎","鄑","鈭","錙","鍿","鎡","锱","镃","頾","頿","髭","鯔","鰦","鲻","鶅","鼒","齍","齜","龇"],"mī":["咪"],"jī xī qià":["咭"],"gē luò kǎ lo":["咯"],"shù xún":["咰"],"zán zá zǎ zan":["咱"],"hāi ké":["咳"],"huī":["咴","噅","噕","婎","媈","幑","徽","恢","拻","挥","揮","晖","暉","楎","洃","瀈","灰","灳","烣","睳","禈","翚","翬","蘳","袆","褘","詼","诙","豗","輝","辉","鰴","麾","㧑"],"huài shì":["咶"],"táo":["咷","啕","桃","檮","洮","淘","祹","綯","绹","萄","蜪","裪","迯","逃","醄","鋾","鞀","鞉","饀","駣","騊","鼗","𫘦"],"xián":["咸","啣","娴","娹","婱","嫌","嫺","嫻","弦","挦","撏","涎","湺","澖","甉","痫","癇","癎","絃","胘","舷","藖","蚿","蛝","衔","衘","誸","諴","賢","贒","贤","輱","醎","銜","鑦","閑","闲","鷳","鷴","鷼","鹇","鹹","麙","𫍯"],"è àn":["咹"],"xuān xuǎn":["咺","烜"],"wāi hé wǒ guǎ guō":["咼"],"yàn yè yān":["咽"],"āi":["哀","哎","埃","溾","銰","鎄","锿"],"pǐn":["品","榀"],"shěn":["哂","婶","嬸","审","宷","審","弞","曋","渖","瀋","瞫","矤","矧","覾","訠","諗","讅","谂","谉","邥","頣","魫"],"hǒng hōng hòng":["哄"],"wā wa":["哇"],"hā hǎ hà":["哈"],"zāi":["哉","栽","渽","溨","災","灾","烖","睵","賳"],"dì diè":["哋"],"pài":["哌","沠","派","渒","湃","蒎","鎃"],"gén hěn":["哏"],"yǎ yā":["哑","雅"],"yuě huì":["哕","噦"],"nián":["哖","年","秊","秥","鮎","鯰","鲇","鲶","鵇","黏"],"huá huā":["哗","嘩"],"jì jiē zhāi":["哜","嚌"],"mōu":["哞"],"yō yo":["哟","喲"],"lòng":["哢","梇","贚"],"ò ó é":["哦"],"lī lǐ li":["哩"],"nǎ na nǎi né něi":["哪"],"hè":["哬","垎","壑","寉","惒","焃","煂","燺","爀","癋","碋","翯","褐","謞","賀","贺","赫","靍","靎","靏","鶴","鸖","鹤"],"bō pò bā":["哱"],"zhé":["哲","啠","喆","嚞","埑","悊","摺","晢","晣","歽","矺","砓","磔","籷","粍","虴","蛰","蟄","袩","詟","謫","謺","讁","讋","谪","輒","輙","轍","辄","辙","鮿"],"liàng láng":["哴"],"liè lǜ":["哷"],"hān":["哻","憨","蚶","谽","酣","頇","顸","馠","魽","鼾"],"hēng hng":["哼"],"gěng":["哽","埂","峺","挭","梗","綆","绠","耿","莄","郠","骾","鯁","鲠","𬒔"],"chuò yuè":["哾"],"gě jiā":["哿"],"bei bài":["唄"],"hán hàn":["唅"],"chún":["唇","浱","湻","滣","漘","犉","純","纯","脣","莼","蒓","蓴","醇","醕","錞","陙","鯙","鶉","鹑","𬭚"],"ài āi":["唉"],"jiá qiǎn":["唊"],"yán dàn xián":["唌"],"chē":["唓","砗","硨","莗","蛼"],"wú ńg ń":["唔"],"zào":["唕","唣","噪","慥","梍","灶","煰","燥","皁","皂","竃","竈","簉","艁","譟","趮","躁","造","𥖨"],"dí":["唙","啇","嘀","嚁","嫡","廸","敌","敵","梑","涤","滌","狄","笛","籴","糴","苖","荻","蔋","蔐","藡","覿","觌","豴","迪","靮","頔","馰","髢","鸐","𬱖"],"gòng hǒng gǒng":["唝","嗊"],"dóu":["唞"],"lào láo":["唠","嘮","憦"],"huàn":["唤","喚","奂","奐","宦","嵈","幻","患","愌","换","換","擐","攌","梙","槵","浣","涣","渙","漶","澣","烉","焕","煥","瑍","痪","瘓","睆","肒","藧","豢","轘","逭","鯇","鯶","鰀","鲩"],"léng":["唥","塄","楞","碐","薐"],"wō wěi":["唩"],"fěng":["唪","覂","諷","讽"],"yín jìn":["唫"],"hǔ xià":["唬"],"wéi":["唯","围","圍","壝","峗","峞","嵬","帏","帷","幃","惟","桅","沩","洈","涠","湋","溈","潍","潙","潿","濰","犩","矀","維","维","蓶","覹","违","違","鄬","醀","鍏","闈","闱","韋","韦","鮠","𣲗","𬶏"],"shuā":["唰"],"chàng":["唱","怅","悵","暢","焻","畅","畼","誯","韔","鬯"],"ér wā":["唲"],"qiàng":["唴","炝","熗","羻"],"yō":["唷"],"yū":["唹","淤","瘀","盓","箊","紆","纡","込","迂","迃","陓"],"lài":["唻","濑","瀨","瀬","癞","癩","睐","睞","籁","籟","藾","賚","賴","赉","赖","頼","顂","鵣"],"tuò":["唾","嶞","柝","毤","毻","箨","籜","萚","蘀","跅"],"zhōu zhāo tiào":["啁"],"kěn":["啃","垦","墾","恳","懇","肎","肯","肻","豤","錹"],"zhuó zhào":["啅","濯"],"hēng hèng":["啈","悙"],"lín lán":["啉"],"a ā á ǎ à":["啊"],"qiāng":["啌","嗴","嶈","戕","摤","斨","枪","槍","溬","牄","猐","獇","羌","羗","腔","蜣","謒","鏘","锖","锵"],"tūn zhūn xiāng duǐ":["啍"],"wèn":["問","妏","揾","搵","璺","问","顐"],"cuì qi":["啐"],"dié shà jié tì":["啑"],"yuē wā":["啘"],"zǐ cǐ":["啙"],"bǐ tú":["啚"],"chuò chuài":["啜"],"yǎ yā è":["啞"],"fēi":["啡","婓","婔","扉","暃","渄","猆","緋","绯","裶","霏","非","靟","飛","飝","飞","餥","馡","騑","騛","鯡","鲱","𬴂"],"pí":["啤","壀","枇","毗","毘","焷","琵","疲","皮","篺","罴","羆","脾","腗","膍","蚍","蚽","蜱","螷","蠯","豼","貔","郫","鈹","阰","陴","隦","魮","鮍","鲏","鵧","鼙"],"shá":["啥"],"lā la":["啦"],"yīng qíng":["啨"],"pā":["啪","妑","舥","葩","趴"],"zhě shì":["啫"],"sè":["啬","嗇","懎","擌","栜","歮","涩","渋","澀","澁","濇","濏","瀒","瑟","璱","瘷","穑","穡","穯","繬","譅","轖","銫","鏼","铯","飋"],"niè":["啮","嗫","噛","嚙","囁","囓","圼","孼","孽","嵲","嶭","巕","帇","敜","枿","槷","櫱","涅","湼","痆","篞","籋","糱","糵","聂","聶","臬","臲","蘖","蠥","讘","踂","踗","踙","蹑","躡","錜","鎳","鑈","鑷","钀","镊","镍","闑","陧","隉","顳","颞","齧","𫔶"],"luō luó luo":["啰","囉"],"tān chǎn tuō":["啴"],bo:["啵","蔔"],"dìng":["啶","定","椗","矴","碇","碠","磸","聢","腚","萣","蝊","訂","订","錠","锭","顁","飣","饤"],"lāng":["啷"],"án ān":["啽"],"kā":["喀","擖"],"yóng yú":["喁"],"lā lá lǎ":["喇"],"jiē":["喈","喼","嗟","堦","媘","接","掲","擑","湝","煯","疖","痎","癤","皆","秸","稭","脻","蝔","街","謯","阶","階","鞂","鶛"],"hóu":["喉","帿","猴","瘊","睺","篌","糇","翭","葔","鄇","鍭","餱","骺","鯸","𬭤"],"dié zhá":["喋"],"wāi":["喎","歪","竵"],"nuò rě":["喏"],"xù huò guó":["喐"],"zán":["喒"],"wō ō":["喔"],"hú":["喖","嘝","囫","壶","壷","壺","媩","弧","搰","斛","楜","槲","湖","瀫","焀","煳","狐","猢","瑚","瓳","箶","絗","縠","胡","葫","蔛","蝴","螜","衚","觳","醐","鍸","頶","餬","鬍","魱","鰗","鵠","鶘","鶦","鹕"],"huàn yuán xuǎn hé":["喛"],"xǐ":["喜","囍","壐","屣","徙","憙","枲","橲","歖","漇","玺","璽","矖","禧","縰","葈","葸","蓰","蟢","謑","蹝","躧","鈢","鉨","鉩","鱚","𬭳","𬶮"],"hē hè yè":["喝"],"kuì":["喟","嘳","媿","嬇","愦","愧","憒","篑","簣","籄","聩","聭","聵","膭","蕢","謉","餽","饋","馈"],"zhǒng chuáng":["喠"],"wéi wèi":["喡","為","爲"],"duó zhà":["喥"],"sāng sàng":["喪"],"qiáo jiāo":["喬"],"pèn bēn":["喯"],"cān sūn qī":["喰"],"zhā chā":["喳"],"miāo":["喵"],"pēn pèn":["喷"],"kuí":["喹","夔","奎","巙","戣","揆","晆","暌","楏","楑","櫆","犪","睽","葵","藈","蘷","虁","蝰","躨","逵","鄈","鍨","鍷","頯","馗","騤","骙","魁"],"lou lóu":["喽"],"zào qiāo":["喿"],"hè xiāo xiào hù":["嗃"],"á shà":["嗄"],"xiù":["嗅","岫","峀","溴","珛","琇","璓","秀","綉","繍","繡","绣","螑","袖","褎","褏","銹","鏥","鏽","锈","齅"],"qiāng qiàng":["嗆","戗","戧","蹌","蹡"],"ài yì":["嗌","艾"],"má mǎ ma":["嗎"],"kè kē":["嗑"],"dā tà":["嗒","鎉"],"sǎng":["嗓","搡","磉","褬","鎟","顙","颡"],"chēn":["嗔","抻","琛","瞋","諃","謓","賝","郴","𬘭"],"wā gǔ":["嗗"],"pǎng bēng":["嗙"],"xián qiǎn qiān":["嗛"],"lào":["嗠","嫪","橯","涝","澇","耢","耮","躼","軂","酪"],"wēng":["嗡","翁","聬","螉","鎓","鶲","鹟","𬭩"],"wà":["嗢","腽","膃","袜","襪","韤"],"hēi hāi":["嗨"],"hē":["嗬","欱","蠚","訶","诃"],zi:["嗭"],"sǎi":["嗮"],"ǹg ńg ňg":["嗯"],"gě":["嗰","舸"],"ná":["嗱","拏","拿","鎿","镎"],"diǎ":["嗲"],"ài ǎi āi":["嗳"],"tōng":["嗵","樋","炵","蓪"],"zuī suī":["嗺"],"zhē zhè zhù zhe":["嗻"],"mò":["嗼","圽","塻","墨","妺","嫼","寞","帞","昩","末","枺","歿","殁","沫","漠","爅","獏","瘼","皌","眽","眿","瞐","瞙","砞","礳","秣","絈","纆","耱","茉","莈","蓦","蛨","蟔","貃","貊","貘","銆","鏌","镆","陌","靺","驀","魩","默","黙","𬙊"],"sòu":["嗽","瘶"],"tǎn":["嗿","坦","忐","憳","憻","暺","毯","璮","菼","袒","襢","醓","鉭","钽"],"jiào dǎo":["嘄"],"kǎi gě":["嘅"],"shān càn":["嘇"],"cáo":["嘈","嶆","曹","曺","槽","漕","艚","蓸","螬","褿","鏪","𥕢"],"piào":["嘌","徱","蔈","驃"],"lóu lou":["嘍"],"gǎ":["尕","玍"],"gǔ jiǎ":["嘏"],"jiāo xiāo":["嘐"],"xū shī":["嘘","噓"],"pó":["嘙","嚩","婆","櫇","皤","鄱"],"dē dēi":["嘚"],"ma má":["嘛"],"lē lei":["嘞"],"gā gá gǎ":["嘠"],"sāi":["嘥","噻","毢","腮","顋","鰓"],"zuō chuài":["嘬"],"cháo zhāo":["嘲","朝","鼂"],"zuǐ":["嘴","噿","嶊","璻"],"qiáo qiào":["嘺","翹","谯"],"chù xù shòu":["嘼"],"tān chǎn":["嘽"],"dàn tán":["嘾","弾","彈","惔","澹"],"hēi mò":["嘿"],"ě":["噁","砨","頋","騀","鵈"],"fān bo":["噃"],"chuáng":["噇","床","牀"],"cù zā hé":["噈"],"tūn kuò":["噋"],"cēng chēng":["噌"],"dēng":["噔","嬁","灯","燈","璒","登","竳","簦","艠","豋"],"pū":["噗","扑","撲","攴","攵","潽","炇","陠"],"juē":["噘","屩","屫","撧"],"lū":["噜","嚕","撸","擼","謢"],"zhān":["噡","岾","惉","旃","旜","枬","栴","毡","氈","氊","沾","瞻","薝","蛅","詀","詹","譫","谵","趈","邅","閚","霑","飦","饘","驙","魙","鱣","鸇","鹯","𫗴"],"ō":["噢"],"zhòu zhuó":["噣"],"jiào qiào chī":["噭"],"yuàn":["噮","妴","怨","愿","掾","瑗","禐","苑","衏","裫","褑","院","願"],"ǎi ài āi":["噯"],"yōng yǒng":["噰","澭"],"jué xué":["噱"],"pēn pèn fèn":["噴"],"gá":["噶","尜","釓","錷","钆"],"xīn hěn hèn":["噷"],"dāng":["噹","澢","珰","璫","筜","簹","艡","蟷","裆","襠"],"làn":["嚂","滥","濫","烂","燗","爁","爛","爤","瓓","糷","钄"],"tà":["嚃","嚺","崉","挞","搨","撻","榻","橽","毾","涾","澾","濌","禢","粏","誻","譶","蹋","蹹","躂","躢","遝","錔","闒","闥","闼","阘","鞜","鞳"],"huō huò ǒ":["嚄"],"hāo":["嚆","茠","蒿","薅"],"hè xià":["嚇"],"xiù pì":["嚊"],"zhōu chóu":["嚋","盩","诪"],"mē":["嚒"],"chā cā":["嚓"],"bó pào bào":["嚗"],"me mèi mò":["嚜"],"xié hái":["嚡"],"áo xiāo":["嚣"],"mō":["嚤","摸"],"pín":["嚬","娦","嫔","嬪","玭","矉","薲","蠙","貧","贫","顰","颦","𬞟"],"mè":["嚰","濹"],"rǎng rāng":["嚷"],"lá":["嚹","旯"],"jiáo jué jiào":["嚼"],"chuò":["嚽","娖","擉","歠","涰","磭","踀","輟","辍","辵","辶","酫","鑡","餟","齪","龊"],"huān huàn":["嚾"],"zá cà":["囃"],"chài":["囆","虿","蠆","袃","訍"],"náng nāng":["囊"],"zá zàn cān":["囋"],"sū":["囌","櫯","甦","稣","穌","窣","蘇","蘓","酥","鯂"],"zèng":["囎","熷","甑","贈","赠","鋥","锃"],"zá niè yàn":["囐"],"nāng":["囔"],"luó luō luo":["囖"],"wéi guó":["囗"],"huí":["囘","回","囬","廻","廽","恛","洄","痐","茴","蚘","蛔","蛕","蜖","迴","逥","鮰"],"nín":["囜","您","脌"],"jiǎn nān":["囝"],"nān":["囡"],"tuán":["团","団","團","慱","抟","摶","檲","糰","鏄","鷒","鷻"],"tún dùn":["囤","坉"],"guó":["囯","囶","囻","国","圀","國","帼","幗","慖","摑","漍","聝","腘","膕","蔮","虢","馘","𬇹"],"kùn":["困","涃","睏"],"wéi tōng":["囲"],"qūn":["囷","夋","逡"],"rì":["囸","日","衵","鈤","馹","驲"],"tāi":["囼","孡","胎"],"pǔ":["圃","圑","擈","普","暜","樸","檏","氆","浦","溥","烳","諩","譜","谱","蹼","鐠","镨"],"quān juàn juān":["圈","圏"],"chuí chuán":["圌"],"tuǎn":["圕","畽","疃"],"lüè":["圙","掠","略","畧","稤","鋝","鋢","锊","䂮"],"huán yuán":["圜"],"luán":["圝","圞","奱","娈","孌","孪","孿","峦","巒","挛","攣","曫","栾","欒","滦","灤","癴","癵","羉","脔","臠","虊","銮","鑾","鵉","鸞","鸾"],"tǔ":["土","圡","釷","钍"],"xū wéi":["圩"],"dì de":["地","嶳"],"qiān sú":["圱"],"zhèn":["圳","塦","挋","振","朕","栚","甽","眹","紖","絼","纼","誫","賑","赈","鋴","鎭","鎮","镇","阵","陣","震","鴆","鸩"],"chǎng cháng":["场","場","塲"],"qí yín":["圻"],"jiá":["圿","忦","恝","戞","扴","脥","荚","莢","蛱","蛺","裌","跲","郏","郟","鋏","铗","頬","頰","颊","鴶","鵊"],"zhǐ zhì":["坁"],"bǎn":["坂","岅","昄","板","版","瓪","粄","舨","蝂","鈑","钣","阪","魬"],"qǐn":["坅","寑","寝","寢","昑","梫","笉","螼","赾","鋟","锓"],"méi fén":["坆"],"rǒng kēng":["坈"],"fāng fáng":["坊"],"fèn bèn":["坋"],"tān":["坍","怹","摊","擹","攤","滩","灘","瘫","癱","舑","貪","贪"],"huài pēi pī péi":["坏"],"dì làn":["坔"],"tán":["坛","墰","墵","壇","壜","婒","憛","昙","曇","榃","檀","潭","燂","痰","磹","罈","罎","藫","談","譚","譠","谈","谭","貚","郯","醰","錟","顃"],"bà":["坝","垻","壩","弝","欛","灞","爸","矲","覇","霸","鮁","鲅"],"fén":["坟","墳","妢","岎","幩","枌","棼","汾","焚","燌","燓","羒","羵","蒶","蕡","蚠","蚡","豮","豶","轒","鐼","隫","馩","魵","黂","鼖","鼢","𣸣"],"zhuì":["坠","墜","惴","甀","畷","礈","綴","縋","缀","缒","腏","膇","諈","贅","赘","醊","錣","鑆"],"pō":["坡","岥","泼","溌","潑","釙","鏺","钋","頗","颇","䥽"],"pǎn bàn":["坢"],"kūn":["坤","堃","堒","崐","崑","昆","晜","潉","焜","熴","猑","琨","瑻","菎","蜫","裈","裩","褌","醌","錕","锟","騉","髠","髡","髨","鯤","鲲","鵾","鶤","鹍"],"diàn":["坫","垫","墊","壂","奠","婝","店","惦","扂","橂","殿","淀","澱","玷","琔","电","癜","簟","蜔","鈿","電","靛","驔"],"mù mǔ":["坶"],"kē kě":["坷","軻"],"xuè":["坹","岤","桖","瀥","狘","瞲","謔","谑","趐"],"dǐ chí":["坻","柢"],"lā":["垃","柆","菈","邋"],"lǒng":["垄","垅","壟","壠","拢","攏","竉","陇","隴","𬕂"],"mín":["垊","姄","岷","崏","捪","旻","旼","民","珉","琘","琝","瑉","痻","盿","砇","緍","緡","缗","罠","苠","鈱","錉","鍲","鴖"],"dòng tóng":["垌","峒","洞"],"cí":["垐","嬨","慈","柌","濨","珁","瓷","甆","磁","礠","祠","糍","茨","詞","词","辝","辞","辤","辭","雌","飺","餈","鴜","鶿","鷀","鹚"],"duī":["垖","堆","塠","痽","磓","鐓","鐜","鴭"],"duò duǒ":["垛"],"duǒ duò":["垜","挆"],"chá":["垞","察","嵖","搽","槎","檫","猹","茬","茶","詧","靫","𥻗"],"shǎng":["垧","晌","樉","賞","贘","赏","鋿","鏛","鑜"],"shǒu":["垨","守","手","扌","艏","首"],da:["垯","繨","跶"],"háng":["垳","斻","杭","筕","絎","绗","航","苀","蚢","裄","貥","迒","頏","颃","魧"],"ān ǎn":["垵"],"xīng":["垶","惺","星","曐","煋","猩","瑆","皨","篂","腥","興","觪","觲","謃","騂","骍","鮏","鯹"],"yuàn huán":["垸"],"bāng":["垹","帮","幇","幚","幫","捠","梆","浜","邦","邫","鞤","𠳐"],"póu fú":["垺"],"cén":["埁","岑","涔"],"běng fēng":["埄"],"dì fáng":["埅"],"xiá jiā":["埉"],"mái mán":["埋"],"làng":["埌","崀","浪","蒗","閬","㫰"],"shān yán":["埏"],"qín jīn":["埐"],"pǔ bù":["埔"],"huā":["埖","婲","椛","硴","糀","花","蒊","蘤","誮","錵"],"suì sù":["埣"],"pí pì":["埤"],"qīng zhēng":["埥","鲭"],"wǎn wān":["埦"],"lǔn":["埨","稐","𫭢"],"zhēng chéng":["埩"],"kōng":["埪","崆","箜","躻","錓","鵼"],"cǎi cài":["埰","寀","采"],"chù tòu":["埱"],"běng":["埲","琫","菶","鞛"],"kǎn xiàn":["埳"],"yì shì":["埶","醳"],"péi":["培","毰","裴","裵","賠","赔","錇","锫","阫","陪"],"sào sǎo":["埽"],"jǐn qīn jìn":["堇"],"péng bèng":["堋"],"qiàn zàn jiàn":["堑"],"àn":["堓","屵","岸","按","暗","案","胺","荌","豻","貋","錌","闇","隌","黯"],"duò huī":["堕","墮"],"huán":["堚","寏","寰","峘","桓","洹","澴","獂","环","環","糫","繯","缳","羦","荁","萈","萑","豲","鍰","鐶","锾","镮","闤","阛","雈","鬟","鹮","𬘫","𤩽"],"bǎo bǔ pù":["堡"],"máo móu wǔ":["堥"],"ruán":["堧","壖","撋"],"ài è yè":["堨"],"gèng":["堩","暅"],"méi":["堳","塺","媒","嵋","徾","攗","枚","栂","梅","楣","楳","槑","湄","湈","煤","猸","玫","珻","瑂","眉","睂","禖","脄","脢","腜","苺","莓","葿","郿","酶","鎇","镅","霉","鶥","鹛","黴"],"dǔ":["堵","琽","睹","笃","篤","覩","賭","赌"],"féng":["堸","綘","艂","逢"],"hèng":["堼"],"chūn":["堾","媋","旾","春","暙","杶","椿","槆","橁","櫄","瑃","箺","萅","蝽","輴","鰆","鶞","䲠"],"jiǎng":["塂","奖","奨","奬","桨","槳","獎","耩","膙","蒋","蔣","講","讲","顜"],"huāng":["塃","巟","慌","肓","荒","衁"],"duàn":["塅","断","斷","椴","段","毈","煅","瑖","碫","簖","籪","緞","缎","腶","葮","躖","鍛","锻"],"tǎ":["塔","墖","獭","獺","鮙","鰨","鳎"],"wěng":["塕","奣","嵡","攚","暡","瞈","蓊"],"sāi sài sè":["塞"],"zàng":["塟","弉","臓","臟","葬","蔵","銺"],"tián":["塡","屇","恬","沺","湉","璳","甛","甜","田","畋","畑","碵","磌","胋","闐","阗","鴫","鷆","鷏"],"zhèng":["塣","幁","政","証","諍","證","证","诤","郑","鄭","靕","鴊"],"tián zhèn":["填"],"wēn":["塭","昷","榲","殟","温","溫","瑥","瘟","蕰","豱","輼","轀","辒","鎾","饂","鰛","鰮","鳁"],"liù":["塯","廇","磟","翏","雡","霤","餾","鬸","鷚","鹨"],"hǎi":["塰","海","烸","酼","醢"],"lǎng":["塱","朖","朗","朤","烺","蓢","㮾"],"bèng":["塴","揼","泵","甏","綳","蹦","迸","逬","鏰","镚"],"chén":["塵","宸","尘","忱","敐","敶","晨","曟","栕","樄","沉","煁","瘎","臣","茞","莀","莐","蔯","薼","螴","訦","諶","軙","辰","迧","鈂","陈","陳","霃","鷐","麎"],"ōu qiū":["塸"],"qiàn jiàn":["塹"],"zhuān tuán":["塼"],"shuǎng":["塽","慡","漺","爽","縔","鏯"],"shú":["塾","婌","孰","璹","秫","贖","赎"],"lǒu":["塿","嵝","嶁","甊","篓","簍"],"chí":["墀","弛","持","池","漦","竾","筂","箎","篪","茌","荎","蚳","謘","貾","赿","踟","迟","迡","遅","遟","遲","鍉","馳","驰"],"shù":["墅","庶","庻","怷","恕","戍","束","树","樹","沭","漱","潄","濖","竖","竪","絉","腧","荗","蒁","虪","術","裋","豎","述","鉥","錰","鏣","霔","鶐","𬬸"],"dì zhì":["墆","疐"],"kàn":["墈","崁","瞰","矙","磡","衎","鬫"],"chěn":["墋","夦","硶","碜","磣","贂","趻","踸","鍖"],"zhǐ zhuó":["墌"],"qiǎng":["墏","繈","繦","羥","襁"],"zēng":["増","增","憎","璔","矰","磳","罾","譄","鄫","鱛","䎖"],"qiáng":["墙","墻","嫱","嬙","樯","檣","漒","牆","艢","蔃","蔷","蘠"],"kuài tuí":["墤"],"tuǎn dǒng":["墥"],"qiáo què":["墧"],"zūn dūn":["墫"],"qiāo áo":["墽"],"yì tú":["墿"],"xué bó jué":["壆"],"lǎn":["壈","嬾","孄","孏","懒","懶","揽","擥","攬","榄","欖","浨","漤","灠","纜","缆","罱","覧","覽","览","醂","顲"],"huài":["壊","壞","蘾"],"rǎng":["壌","壤","攘","爙"],"làn xiàn":["壏"],"dǎo":["壔","导","導","岛","島","嶋","嶌","嶹","捣","搗","擣","槝","祷","禂","禱","蹈","陦","隝","隯"],"ruǐ":["壡","桵","橤","繠","蕊","蕋","蘂","蘃"],san:["壭"],"zhuàng":["壮","壯","壵","撞","焋","状","狀"],"ké qiào":["壳","殼"],"kǔn":["壸","壼","悃","捆","梱","硱","祵","稇","稛","綑","裍","閫","閸","阃"],"mǎng":["壾","漭","茻","莽","莾","蠎"],"cún":["壿","存"],"zhǐ zhōng":["夂"],"gǔ yíng":["夃"],"jiàng xiáng":["夅","降"],"páng féng fēng":["夆"],"zhāi":["夈","捚","摘","斋","斎","榸","粂","齋"],"xuàn xiòng":["夐"],"wài":["外","顡"],"wǎn yuàn wān yuān":["夗"],"mǎo wǎn":["夘"],"mèng":["夢","夣","孟","梦","癦","霥"],"dà dài":["大"],"fū fú":["夫","姇","枎","粰"],"guài":["夬","怪","恠"],"yāng":["央","姎","抰","殃","泱","秧","胦","鉠","鍈","雵","鴦","鸯"],"hāng bèn":["夯"],"gǎo":["夰","搞","杲","槀","槁","檺","稁","稾","稿","縞","缟","菒","藁","藳"],"tāo běn":["夲"],"tóu tou":["头"],"yǎn tāo":["夵"],"kuā kuà":["夸","誇"],"jiá jiā gā xiá":["夹"],"huà":["夻","婳","嫿","嬅","崋","摦","杹","枠","桦","槬","樺","澅","画","畫","畵","繣","舙","話","諙","譮","话","黊"],"jiā jiá gā xiá":["夾"],"ēn":["奀","恩","蒽"],"dī tì":["奃"],"yǎn yān":["奄","渰"],"pào":["奅","疱","皰","砲","礟","礮","靤","麭"],"nài":["奈","柰","渿","耐","萘","褦","錼","鼐"],"quān juàn":["奍","弮","棬"],"zòu":["奏","揍"],"qì qiè xiè":["契"],"kāi":["奒","开","揩","鐦","锎","開"],"bēn bèn":["奔","泍"],"tào":["套"],"zàng zhuǎng":["奘"],"běn":["奙","本","楍","畚","翉","苯"],"xùn zhuì":["奞"],"shē":["奢","檨","猞","畭","畲","賒","賖","赊","輋","𪨶"],"hǎ pò tǎi":["奤"],"ào yù":["奥","奧","澚"],"yūn":["奫","氲","氳","蒀","蒕","蝹","贇","赟","𫖳"],"duǒ chě":["奲"],"nǚ rǔ":["女"],"nú":["奴","孥","笯","駑","驽"],"dīng dǐng tiǎn":["奵"],"tā jiě":["她"],"nuán":["奻"],"hǎo hào":["好"],"fàn":["奿","嬎","梵","汎","泛","滼","瀪","犯","畈","盕","笵","範","范","訉","販","贩","軬","輽","飯","飰","饭"],"shuò":["妁","搠","朔","槊","烁","爍","矟","蒴","鎙","鑠","铄"],"fēi pèi":["妃"],"wàng":["妄","忘","旺","望","朢"],"zhuāng":["妆","妝","娤","庄","庒","桩","梉","樁","粧","糚","荘","莊","装","裝"],"mā":["妈","媽"],"fū yōu":["妋"],"hài jiè":["妎"],"dù":["妒","妬","杜","殬","渡","秺","芏","荰","螙","蠧","蠹","鍍","镀","靯","𬭊"],"miào":["妙","庙","庿","廟","玅","竗"],"fǒu pēi pī":["妚"],"yuè jué":["妜"],"niū":["妞"],"nà nàn":["妠"],"tuǒ":["妥","嫷","庹","椭","楕","橢","鬌","鰖","鵎"],"wàn yuán":["妧"],"fáng":["妨","房","肪","防","魴","鲂"],"nī":["妮"],"zhóu":["妯","碡"],"zhāo":["妱","巶","招","昭","釗","鉊","鍣","钊","駋","𬬿"],"nǎi nǐ":["妳"],"tǒu":["妵","敨","紏","蘣","黈"],"xián xuán xù":["妶"],"zhí yì":["妷","秇"],"ē":["妸","妿","婀","屙"],"mèi":["妹","媚","寐","抺","旀","昧","沬","煝","痗","眛","睸","祙","篃","蝞","袂","跊","鬽","魅"],"qī qì":["妻"],"xū xǔ":["姁","稰"],"shān shàn":["姍","姗","苫","釤","钐"],"mán":["姏","慲","樠","蛮","蠻","謾","饅","馒","鬗","鬘","鰻","鳗"],"jiě":["姐","媎","檞","毑","飷"],"wěi wēi":["委"],"pīn":["姘","拼","礗","穦","馪","驞"],"huá huó":["姡"],"jiāo xiáo":["姣"],"gòu dù":["姤"],"lǎo mǔ":["姥"],"nián niàn":["姩"],"zhěn":["姫","屒","弫","抮","昣","枕","畛","疹","眕","稹","縝","縥","缜","聄","萙","袗","裖","覙","診","诊","軫","轸","辴","駗","鬒"],"héng":["姮","恆","恒","烆","珩","胻","蘅","衡","鑅","鴴","鵆","鸻"],"jūn xún":["姰"],"kuā hù":["姱"],"è yà":["姶"],"xiān shēn":["姺"],"wá":["娃"],"ráo rǎo":["娆","嬈"],"shào shāo":["娋"],"xiē":["娎","揳","楔","歇","蝎","蠍"],"wǔ méi mǔ":["娒"],"chuò lài":["娕"],"niáng":["娘","嬢","孃"],"nà nuó":["娜","𦰡"],"pōu bǐ":["娝"],"něi suī":["娞"],"tuì":["娧","煺","蛻","蜕","退","駾"],"mǎn":["娨","屘","満","满","滿","螨","蟎","襔","鏋"],"wú wù yú":["娪"],"xī āi":["娭"],"zhuì shuì":["娷"],"dōng dòng":["娻"],"ǎi ái è":["娾"],"ē ě":["娿"],"mián":["婂","嬵","宀","杣","棉","檰","櫋","眠","矈","矊","矏","綿","緜","绵","芇","蝒"],"pǒu péi bù":["婄"],"biǎo":["婊","脿","表","裱","褾","諘","錶"],"fù fàn":["婏"],"wǒ":["婐","婑","我"],"ní nǐ":["婗","棿"],"quán juàn":["婘","惓"],"hūn":["婚","昏","昬","棔","涽","睧","睯","碈","荤","葷","蔒","轋","閽","阍"],"qiān jǐn":["婜"],"wān wà":["婠"],"lái lài":["婡","徕","徠"],"zhōu chōu":["婤"],"chuò nào":["婥"],"nüè àn":["婩"],"hùn kūn":["婫"],"dàng yáng":["婸"],"nàn":["婻"],"ruò chuò":["婼"],"jiǎ":["婽","岬","斚","斝","榎","槚","檟","玾","甲","胛","鉀","钾"],"tōu yú":["婾","媮"],"yù yú":["媀"],"wéi wěi":["媁"],"dì tí":["媂","珶","苐"],"róu":["媃","揉","柔","渘","煣","瑈","瓇","禸","粈","糅","脜","腬","葇","蝚","蹂","輮","鍒","鞣","騥","鰇","鶔","𫐓"],"ruǎn nèn":["媆"],"miáo":["媌","嫹","描","瞄","苗","鶓","鹋"],"yí pèi":["媐"],"mián miǎn":["媔"],"tí shì":["媞","惿"],"duò tuó":["媠","沲"],"ǎo":["媪","媼","艹","芺","袄","襖","镺"],"chú zòu":["媰"],"yìng":["媵","映","暎","硬","膡","鱦"],"qín shēn":["嫀"],"jià":["嫁","幏","架","榢","稼","駕","驾"],"sǎo":["嫂"],"zhēn zhěn":["嫃"],"jiē suǒ":["嫅"],"míng mǐng":["嫇"],"niǎo":["嫋","嬝","嬲","茑","蔦","袅","裊","褭","鸟"],"tāo":["嫍","幍","弢","慆","掏","搯","槄","涛","滔","濤","瑫","絛","縚","縧","绦","詜","謟","轁","鞱","韜","韬","飸","饕"],"biáo":["嫑"],"piáo piāo":["嫖","薸"],"xuán":["嫙","悬","懸","暶","檈","漩","玄","璇","璿","痃","蜁","𫠊"],"màn mān":["嫚"],"kāng":["嫝","嵻","康","慷","槺","漮","砊","穅","糠","躿","鏮","鱇","𡐓","𩾌"],"hān nǎn":["嫨"],"nèn":["嫩","嫰"],"zhē":["嫬","遮"],"mā má":["嫲"],"piè":["嫳"],"zhǎn":["嫸","展","搌","斩","斬","琖","盏","盞","輾","醆","颭","飐"],"xiān yǎn jìn":["嬐"],"liǎn":["嬚","敛","斂","琏","璉","羷","脸","臉","蔹","蘝","蘞","裣","襝","鄻"],"qióng huán xuān":["嬛"],"dǒng":["嬞","懂","箽","董","蕫","諌"],"cān":["嬠","湌","爘","飡","餐","驂","骖"],"tiǎo":["嬥","宨","晀","朓","窱","脁"],"bí":["嬶","荸","鼻"],"liǔ":["嬼","柳","栁","桞","桺","橮","熮","珋","綹","绺","罶","羀","鋶","锍"],"qiān xiān":["孅","欦"],"xié huī":["孈"],"huān quán":["孉"],"lí lì":["孋","麗"],"zhú chuò":["孎"],"kǒng":["孔","恐"],"mā zī":["孖"],"sūn xùn":["孙","孫"],"bèi bó":["孛","誖"],"yòu niū":["孧"],"zhuǎn":["孨","竱","轉"],"hái":["孩","骸"],"nāo":["孬"],"chán càn":["孱"],"bò":["孹","檗","蘗","譒"],"nái":["孻","腉"],"níng nìng":["宁","寍","寗","寜","寧","甯"],"zhái":["宅"],"tū jiā":["宊"],"sòng":["宋","訟","誦","讼","诵","送","鎹","頌","颂","餸"],"ròu":["宍","肉","譳"],"zhūn":["宒","窀","衠","諄","谆","迍"],"mì fú":["宓"],"dàng tàn":["宕"],"wǎn yuān":["宛"],"chǒng":["宠","寵"],"qún":["宭","峮","帬","羣","群","裙","裠"],"zǎi":["宰","崽"],"bǎo shí":["宲"],"jiā jia jie":["家"],"huāng huǎng":["宺"],"kuān":["宽","寛","寬","臗","鑧","髋","髖"],"sù xiǔ xiù":["宿"],"jié zǎn":["寁"],"bìng bǐng":["寎"],"jìn qǐn":["寖"],"lóu jù":["寠"],"xiě xiè":["寫"],"qīn qìn":["寴"],"cùn":["寸","籿"],"duì":["对","対","對","怼","憝","懟","濧","瀩","碓","祋","綐","薱","譈","譵","轛","队","陮"],"lüè luó":["寽"],"shè yè yì":["射"],"jiāng jiàng qiāng":["将"],"jiāng jiàng":["將","浆","漿","畺"],"zūn":["尊","嶟","樽","罇","遵","鐏","鱒","鳟","鶎","鷷","𨱔"],"shù zhù":["尌","澍"],"xiǎo":["小","晓","暁","曉","皛","皢","筱","筿","篠","謏","𫍲"],"jié jí":["尐","诘","鞊"],"shǎo shào":["少"],"ěr":["尒","尓","尔","栮","毦","洱","爾","珥","耳","薾","衈","趰","迩","邇","鉺","铒","餌","饵","駬"],"wāng yóu":["尢"],"wāng":["尣","尩","尪","尫","汪"],"liào":["尥","尦","廖","撂","料","炓","窷","鐐","镣","𪤗"],"méng máng lóng páng":["尨"],"gà":["尬","魀"],"kuì kuǐ":["尯"],"tuí":["尵","弚","穨","蘈","蹪","隤","頹","頺","頽","颓","魋","𬯎"],"yǐn":["尹","嶾","引","朄","檃","檼","櫽","淾","濥","瘾","癮","粌","蘟","蚓","螾","讔","赺","趛","輑","鈏","靷"],"chǐ chě":["尺"],"kāo":["尻","髛"],"jìn jǐn":["尽"],"wěi yǐ":["尾"],"niào suī":["尿"],"céng":["层","層","嶒","驓"],"diǎo":["屌"],"píng bǐng bīng":["屏"],"lòu":["屚","漏","瘘","瘺","瘻","鏤","镂","陋"],"shǔ zhǔ":["属","屬"],"xiè tì":["屟"],"chè cǎo":["屮"],"tún zhūn":["屯"],"nì jǐ":["屰"],"hóng lóng":["屸"],"qǐ kǎi":["岂","豈"],"áng":["岇","昂","昻"],"gǎng gāng":["岗","崗"],"kě":["岢","敤","渇","渴","炣"],"gǒu":["岣","狗","玽","笱","耇","耈","耉","苟","豿"],"tiáo":["岧","岹","樤","祒","笤","芀","萔","蓚","蓨","蜩","迢","鋚","鎥","鞗","髫","鯈","鰷","鲦","齠","龆"],"qū jū":["岨"],"lǐng":["岭","嶺","領","领"],"pò":["岶","敀","洦","湐","烞","珀","破","砶","粕","蒪","魄"],"bā kè":["峇"],"luò":["峈","摞","洛","洜","犖","珞","笿","纙","荦","詻","雒","駱","骆","鵅"],"fù niè":["峊"],"ěn":["峎"],"zhì shì":["峙","崻"],"qiǎ":["峠","跒","酠","鞐"],"qiáo jiào":["峤","癄"],"xié yé":["峫"],"bū":["峬","庯","晡","誧","逋","鈽","錻","钸","餔","鵏"],"chóng":["崇","崈","爞","虫","蝩","蟲","褈","隀"],"zú cuì":["崒","椊"],"líng léng":["崚"],"dòng dōng":["崠"],"xiáo":["崤","洨","淆","訤","誵"],"pí bǐ":["崥","芘"],"zhǎn chán":["崭","嶃","嶄"],"wǎi wēi":["崴"],"yáng dàng":["崵"],"shì dié":["崼"],"yào":["崾","曜","熎","燿","矅","穾","窔","筄","耀","艞","药","葯","薬","藥","袎","覞","詏","讑","靿","鷂","鹞","鼼"],"kān zhàn":["嵁"],"hán dǎng":["嵅"],"qiàn kàn":["嵌"],"wù máo":["嵍"],"kě jié":["嵑","嶱"],"wēi wěi":["嵔"],"kē":["嵙","柯","棵","榼","樖","牁","牱","犐","珂","疴","瞌","磕","礚","科","稞","窠","萪","薖","蚵","蝌","趷","轲","醘","鈳","钶","頦","顆","颗","髁"],"dàng táng":["嵣"],"róng yíng":["嵤","爃"],"ái kǎi":["嵦"],"kāo qiāo":["嵪"],"cuó":["嵯","嵳","痤","矬","蒫","蔖","虘","鹺","鹾"],"qiǎn qīn":["嵰"],"dì dié":["嵽"],"cēn":["嵾"],"dǐng":["嵿","艼","薡","鐤","頂","顶","鼎","鼑"],"áo ào":["嶅"],"pǐ pèi":["嶏"],"jiào qiáo":["嶠","潐"],"jué guì":["嶡","鳜"],"zhān shàn":["嶦","鳣"],"xiè jiè":["嶰"],"guī xī juàn":["嶲"],"rū":["嶿"],"lì liè":["巁","棙","爄","綟"],"xī guī juàn":["巂"],"yíng hōng":["巆"],"yǐng":["巊","廮","影","摬","梬","潁","瘿","癭","矨","穎","郢","鐛","頴","颍","颕","颖"],"chǎo":["巐","炒","煼","眧","麨"],"cuán":["巑","櫕","欑"],"chuān":["巛","川","氚","瑏","穿"],"jīng xíng":["巠"],"cháo":["巢","巣","晁","漅","潮","牊","窲","罺","謿","轈","鄛","鼌"],"qiǎo":["巧","愀","髜"],"gǒng":["巩","廾","拱","拲","栱","汞","珙","輁","鞏"],"chà chā chāi cī":["差"],"xiàng hàng":["巷"],"shuài":["帅","帥","蟀"],"pà":["帊","帕","怕","袙"],"tǎng nú":["帑"],"mò wà":["帓"],"tiē tiě tiè":["帖"],"zhǒu":["帚","晭","疛","睭","箒","肘","菷","鯞"],"juǎn juàn":["帣"],"shuì":["帨","涗","涚","睡","稅","税","裞"],"chóu dào":["帱","幬"],"jiǎn jiān sàn":["帴"],"shà qiè":["帹"],"qí jì":["帺","荠"],"shān qiāo shēn":["幓"],"zhuàng chuáng":["幢"],"chān chàn":["幨"],"miè":["幭","懱","搣","滅","灭","烕","礣","篾","蔑","薎","蠛","衊","鑖","鱴","鴓"],"gān gàn":["干"],"bìng bīng":["并","幷"],"jī jǐ":["幾"],"guǎng ān":["广"],"guǎng":["広","廣","犷","獷"],me:["庅"],"dùn tún":["庉"],"bài tīng":["庍"],"yìng yīng":["应"],"dǐ de":["底"],"dù duó":["度"],"máng méng páng":["庬"],"bìng píng":["庰"],"chěng":["庱","悜","睈","逞","騁","骋"],"jī cuò":["庴"],"qǐng":["庼","廎","檾","漀","苘","請","謦","请","頃","顷"],"guī wěi huì":["廆"],"jǐn qín":["廑"],"kuò":["廓","扩","拡","擴","濶","筈","萿","葀","蛞","闊","阔","霩","鞟","鞹","韕","頢","鬠"],"qiáng sè":["廧","薔"],"yǐn yìn":["廴","隐","隠","隱","飮","飲","饮"],"pò pǎi":["廹","迫"],"nòng lòng":["弄"],"dì tì tuí":["弟"],"jué zhāng":["弡"],"mí mǐ":["弥","彌","靡"],"chāo":["弨","怊","抄","欩","訬","超","鈔","钞"],yi:["弬"],"shāo":["弰","旓","烧","焼","燒","筲","艄","萷","蕱","輎","髾","鮹"],"xuān yuān":["弲"],"qiáng qiǎng jiàng":["強","强"],"tán dàn":["弹","醈"],"biè":["彆"],"qiáng jiàng qiǎng":["彊"],"jì xuě":["彐"],"tuàn":["彖","褖"],"yuē":["彟","曰","曱","矱"],"shān xiǎn":["彡"],"wén":["彣","文","炆","珳","瘒","繧","聞","芠","蚉","蚊","螡","蟁","閺","閿","闅","闦","闻","阌","雯","馼","駇","魰","鳼","鴍","鼤","𫘜"],"péng bāng":["彭"],"piāo piào":["彯"],"zhuó bó":["彴"],"tuǒ yí":["彵"],"páng fǎng":["彷"],"wǎng":["彺","往","徃","惘","枉","棢","網","网","罒","罓","罔","罖","菵","蛧","蝄","誷","輞","辋","魍"],"cú":["徂","殂"],"dài dāi":["待"],"huái":["徊","怀","懐","懷","槐","淮","耲","蘹","褢","褱","踝"],"wā wàng jiā":["徍"],"chěng zhèng":["徎"],"dé děi de":["得"],"cóng zòng":["從"],"shì tǐ":["徥"],"tí chí":["徲","鶗","鶙"],"dé":["徳","德","恴","悳","惪","淂","鍀","锝"],"zhǐ zhēng":["徴","徵"],"bié":["徶","癿","莂","蛂","襒","蹩"],"chōng zhǒng":["徸"],"jiǎo jiào":["徼","笅","筊"],"lòng lǒng":["徿"],"qú jù":["忂","渠","瞿","螶"],"dìng tìng":["忊"],"gǎi":["忋","改"],"rěn":["忍","栠","栣","秹","稔","綛","荏","荵","躵"],"chàn":["忏","懴","懺","硟","羼","韂","顫"],"tè":["忑","慝","特","蟘","鋱","铽"],"tè tēi tuī":["忒"],"gān hàn":["忓","攼"],"yì qì":["忔"],"tài shì":["忕"],"xī liě":["忚"],"yīng yìng":["応","應","譍"],"mǐn wěn mín":["忞","忟"],"sōng zhōng":["忪"],"yù shū":["忬","悆"],"qí shì":["忯","耆"],"tún zhūn dùn":["忳"],"qián qín":["忴","扲"],"hún":["忶","浑","渾","餛","馄","魂","鼲"],"niǔ":["忸","扭","炄","狃","紐","纽","莥","鈕","钮","靵"],"kuáng wǎng":["忹"],"kāng hàng":["忼"],"kài xì":["忾","愾"],"òu":["怄","慪"],"bǎo bào":["怉"],"mín mén":["怋"],"zuò zhà":["怍"],"zěn":["怎"],"yàng":["怏","恙","样","様","樣","漾","羕","詇"],"kòu jù":["怐"],"náo niú":["怓"],"zhēng zhèng":["怔","掙","钲","铮"],"tiē zhān":["怗"],"hù gù":["怘"],"cū jù zū":["怚"],"sī sāi":["思"],"yóu chóu":["怞"],"tū dié":["怢"],"yōu yào":["怮"],"xuàn":["怰","昡","楦","泫","渲","炫","琄","眩","碹","絢","縼","繏","绚","蔙","衒","袨","贙","鉉","鏇","铉","镟","颴"],"xù xuè":["怴"],"bì pī":["怶"],"xī shù":["怸"],"nèn nín":["恁"],"tiāo yáo":["恌"],"xī qī xù":["恓"],"xiào jiǎo":["恔"],"hū kuā":["恗"],"nǜ":["恧","朒","衂","衄"],"hèn":["恨"],"dòng tōng":["恫"],"quán zhuān":["恮"],"è wù ě wū":["恶","惡"],"tòng":["恸","慟","憅","痛","衕"],"yuān juàn":["悁"],"qiāo qiǎo":["悄"],"jiè kè":["悈"],"hào jiào":["悎"],"huǐ":["悔","檓","毀","毁","毇","燬","譭"],"mán mèn":["悗","鞔"],"yī yì":["悘","衣"],"quān":["悛","箞","鐉","𨟠"],"kuī lǐ":["悝"],"yì niàn":["悥"],"mèn mēn":["悶"],"guàn":["悹","悺","惯","慣","掼","摜","樌","欟","泴","涫","潅","灌","爟","瓘","盥","礶","祼","罆","罐","貫","贯","躀","遦","鏆","鑵","鱹","鸛","鹳"],"kōng kǒng":["悾"],"lǔn lùn":["惀"],"guǒ":["惈","果","椁","槨","粿","綶","菓","蜾","裹","褁","輠","餜","馃"],"yuān wǎn":["惌","箢"],"lán lín":["惏"],"yù xù":["惐","淢"],"chuò chuì":["惙"],"hūn mèn":["惛"],"chǎng tǎng":["惝"],"suǒ ruǐ":["惢"],"cǎn":["惨","慘","憯","黪","黲","䅟"],"cán":["惭","慙","慚","残","殘","蚕","蝅","蠶","蠺"],"dàn dá":["惮","憚"],"rě":["惹"],"yú tōu":["愉"],"kài qì":["愒"],"dàng táng shāng yáng":["愓"],"chén xìn dān":["愖"],"kè qià":["愘"],"nuò":["愞","懦","懧","掿","搦","榒","稬","穤","糑","糥","糯","諾","诺","蹃","逽","鍩","锘"],"gǎn":["感","擀","敢","桿","橄","澉","澸","皯","秆","稈","笴","芉","衦","赶","趕","鱤","鳡"],"còng sōng":["愡"],"sāi sī sǐ":["愢"],"gōng gòng hǒng":["愩","慐"],"shuò sù":["愬","洬"],"yáo yào":["愮"],"huàng":["愰","曂","榥","滉","皝","皩","鎤","㿠"],"zhěng":["愸","抍","拯","整","晸"],"cǎo":["愺","艸","草","騲"],"xì xié":["慀"],"cǎo sāo":["慅"],"xù chù":["慉"],"qiè qiàn":["慊"],"cáo cóng":["慒"],"ào áo":["慠"],"lián liǎn":["慩","梿","槤","櫣"],"jìn qín jǐn":["慬"],"dì chì":["慸"],"zhí zhé":["慹"],"lóu lǚ":["慺","鷜"],"còng":["憁","謥"],"zhī zhì":["憄","知","織","织"],"chēng":["憆","摚","撐","撑","晿","柽","棦","橕","檉","泟","浾","琤","瞠","碀","緽","罉","蛏","蟶","赪","赬","鏿","鐣","阷","靗","頳","饓"],"biē":["憋","虌","鱉","鳖","鼈","龞"],"chéng dèng zhèng":["憕"],"xǐ xī":["憘"],"duì dùn tūn":["憞"],"xiāo jiāo":["憢"],"xián xiàn":["憪"],"liáo liǎo":["憭","燎","爎","爒"],"shéng":["憴","縄","繉","繩","绳","譝"],"náo nǎo náng":["憹"],"jǐng jìng":["憼"],"jǐ jiǎo":["憿"],"xuān huān":["懁"],"cǎo sāo sào":["懆"],"mèn":["懑","懣","暪","焖","燜"],"mèng méng měng":["懜"],"ài yì nǐ":["懝"],"méng měng":["懞","瞢","矒"],"qí jī jì":["懠"],"mǒ":["懡"],"lán xiàn":["懢"],"yōu yǒu":["懮"],"liú liǔ":["懰","藰"],"ràng":["懹","譲","讓","让"],"huān":["懽","欢","歓","歡","獾","讙","貛","酄","驩","鴅","鵍"],"nǎn":["戁","揇","湳","煵","腩","蝻","赧"],"mí mó":["戂"],"gàng zhuàng":["戅","戆"],"zhuàng gàng":["戇"],"xū qu":["戌"],"xì hū":["戏","戯","戲"],"jiá gā":["戛"],"zéi":["戝","蠈","賊","贼","鰂","鱡","鲗"],"děng":["戥","等"],"hū xì":["戱"],"chuō":["戳","踔","逴"],"biǎn piān":["扁"],"shǎng jiōng":["扄"],"shàn shān":["扇"],"cái":["才","材","纔","裁","財","财"],"zhā zā zhá":["扎"],"lè lì cái":["扐"],"bā pá":["扒"],"dǎ dá":["打"],"rēng":["扔"],"fǎn fú":["払"],"diǎo dí yuē lì":["扚"],"káng gāng":["扛"],"yū wū":["扜"],"yū wū kū":["扝"],"tuō chǐ yǐ":["扡"],"gǔ jié xì gē":["扢"],"dèn":["扥","扽"],"sǎo sào":["扫","掃"],"rǎo":["扰","擾","隢"],"xī chā qì":["扱"],"bān pān":["扳"],"bā ào":["扷"],"xī zhé":["扸"],"zhì sǔn kǎn":["扻"],"zhǎo":["找","沼","瑵"],"kuáng wǎng zài":["抂"],"hú gǔ":["抇","鹄","鹘"],"bǎ bà":["把"],"dǎn shěn":["抌"],"nè nì ruì nà":["抐"],"zhuā":["抓","檛","簻","膼","髽"],"póu":["抔","裒"],"zhé shé zhē":["折"],"póu pōu fū":["抙","捊"],"pāo":["抛","拋","脬","萢"],"ǎo ào niù":["抝"],"lūn lún":["抡","掄"],"qiǎng qiāng chēng":["抢"],"zhǐ zhǎi":["抧"],"bù pū":["抪","柨"],"yǎo tāo":["抭"],"hē hè qiā":["抲"],"nǐ ní":["抳"],"pī pēi":["抷"],"mǒ mò mā":["抹"],"chōu":["抽","犨","犫","瘳","篘"],"jiā yá":["拁"],"fú bì":["拂","畐","鶝"],"zhǎ":["拃","眨","砟","鮺","鲝"],"dān dàn dǎn":["担"],"chāi cā":["拆"],"niān":["拈","蔫"],"lā lá lǎ là":["拉"],"bàn pàn":["拌"],"pāi":["拍"],"līn":["拎"],"guǎi":["拐","枴","柺"],"tuò tà zhí":["拓"],"ào ǎo niù":["拗"],"jū gōu":["拘"],"pīn pàn fān":["拚"],"bài bái":["拜"],"bài":["拝","敗","稗","粺","薭","贁","败","韛"],"qiá":["拤"],"nǐng níng nìng":["拧"],"zé zhái":["择","擇"],"hén":["拫","痕","鞎"],"kuò guā":["括"],"jié jiá":["拮"],"nǐn":["拰"],"shuān":["拴","栓","閂","闩"],"cún zùn":["拵"],"zā zǎn":["拶","桚"],"kǎo":["拷","攷","栲","烤","考"],"yí chǐ hài":["拸"],"cè sè chuò":["拺"],"zhuài zhuāi yè":["拽"],"shí shè":["拾"],"bāi":["挀","掰"],"kuò guāng":["挄"],"nòng":["挊","挵","齈"],"jiào jiāo":["挍","敎","教"],"kuà kū":["挎"],"ná rú":["挐"],"tiāo tiǎo":["挑"],"dié shè":["挕"],"liě":["挘","毟"],"yà yǎ":["挜","掗"],"wō zhuā":["挝"],"xié jiā":["挟","挾"],"dǎng dàng":["挡","擋"],"zhèng zhēng":["挣","正","症"],"āi ái":["挨"],"tuō shuì":["挩","捝"],"tǐ tì":["挮"],"suō shā":["挱"],"sā shā suō":["挲"],"kēng qiān":["挳","摼"],"bàng péng":["挷"],"ruó ruá":["挼"],"jiǎo kù":["捁"],"wǔ wú":["捂"],"tǒng":["捅","桶","筒","筩","統","綂","统","㛚"],"huò chì":["捇"],"tú shū chá":["捈"],"lǚ luō":["捋"],"shāo shào":["捎","稍"],"niē":["捏","揑"],"shù sǒng sōu":["捒"],"yé yú":["捓"],"jué zhuó":["捔"],"bù pú zhì":["捗"],"zùn":["捘","銌"],"lāo":["捞","撈","粩"],"sǔn":["损","損","榫","笋","筍","箰","鎨","隼"],"wàn wǎn wān yù":["捥"],"pěng":["捧","淎","皏"],"shě":["捨"],"fǔ fù bǔ":["捬"],"dáo":["捯"],"luò luǒ wǒ":["捰"],"juǎn quán":["捲"],"chēn tiǎn":["捵"],"niǎn niē":["捻"],"ruó wěi ré":["捼"],"zuó":["捽","昨","秨","稓","筰","莋","鈼"],"wò xiá":["捾"],"qìng qiàn":["掅"],"póu pǒu":["掊"],"qiā":["掐","葜"],"pái pǎi":["排"],"qiān wàn":["掔"],"yè yē":["掖"],"niè nǐ yì":["掜"],"huò xù":["掝"],"yàn shàn yǎn":["掞"],"zhěng dìng":["掟"],"kòng":["控","鞚"],"tuī":["推","蓷","藬"],"zōu zhōu chōu":["掫"],"tiàn":["掭","舚"],"kèn":["掯","裉","褃"],"pá":["掱","杷","潖","爬","琶","筢"],"guó guāi":["掴"],"dǎn shàn":["掸","撣"],"chān xiān càn shǎn":["掺"],"sāo":["掻","搔","溞","繅","缫","螦","騒","騷","鰠","鱢","鳋"],"pèng":["掽","椪","槰","碰","踫"],"zhēng kēng":["揁"],"jiū yóu":["揂"],"jiān jiǎn":["揃","籛"],"pì chè":["揊"],"sāi zǒng cāi":["揌"],"tí dī dǐ":["提"],"zǒng sōng":["揔"],"huáng yóng":["揘"],"zǎn zuàn":["揝"],"xū jū":["揟"],"ké qiā":["揢"],"chuāi chuǎi chuài tuán zhuī":["揣"],"dì tì":["揥"],"lá là":["揦"],"là":["揧","楋","溂","瓎","瘌","翋","臘","蝋","蝲","蠟","辢","辣","鑞","镴","鬎","鯻","𬶟"],"jiē qì":["揭"],"chòng dǒng":["揰"],"dié shé yè":["揲"],"jiàn qián jiǎn":["揵"],"yé":["揶","爷","爺","瑘","鋣","鎁","铘"],"chān":["搀","摻","攙","裧","襜","覘","觇","辿","鋓"],"gē gé":["搁","擱"],"lǒu lōu":["搂","摟"],"chōu zǒu":["搊"],"chuāi":["搋"],"sūn":["搎","槂","狲","猻","荪","蓀","蕵","薞","飧","飱"],"róng náng nǎng":["搑"],"péng bàng":["搒"],"cuō":["搓","瑳","磋","蹉","遳","醝"],"kē è":["搕"],"nù nuò nòu":["搙"],"lā xié xiàn":["搚"],"qiǔ":["搝","糗"],"xiǎn xiān":["搟"],"jié zhé":["搩"],"pán bān pó":["搫"],"bān":["搬","攽","斑","斒","班","瘢","癍","肦","螁","螌","褩","辬","頒","颁","𨭉"],"zhì nái":["搱"],"wā wǎ wà":["搲"],"huá":["搳","撶","滑","猾","蕐","螖","譁","鏵","铧","驊","骅","鷨"],"qiāng qiǎng chēng":["搶"],"tián shēn":["搷"],"ná nuò":["搻"],"èn":["摁"],"shè niè":["摄","攝"],"bìn":["摈","擯","殡","殯","膑","臏","髌","髕","髩","鬂","鬓","鬢"],"shā sà shǎi":["摋"],"chǎn sùn":["摌"],"jiū liú liáo jiǎo náo":["摎"],"féng pěng":["摓"],"shuāi":["摔"],"dì tú zhí":["摕"],"qì jì chá":["摖"],"sōu sǒng":["摗"],"liǎn liàn":["摙"],"gài xì":["摡"],"hù chū":["摢"],"tàng":["摥","烫","燙","鐋"],"nái zhì":["摨"],"mó mā":["摩"],"jiāng qiàng":["摪"],"áo qiáo":["摮"],"niè chè":["摰"],"mán màn":["摱"],"chàn cán":["摲"],"sè mí sù":["摵"],"biāo biào":["摽"],"juē jué":["撅"],"piē":["撆","暼","氕","瞥"],"piě piē":["撇"],"zǎn zān zēn qián":["撍"],"sā sǎ":["撒"],"hòng":["撔","訌","讧","闀","鬨"],"héng guàng":["撗"],"niǎn":["撚","撵","攆","涊","焾","碾","簐","蹍","蹨","躎","輦","辇"],"chéng zhěng":["撜"],"huī wéi":["撝"],"cāo":["撡","操","糙"],"xiāo sōu":["撨"],"liáo liāo":["撩"],"cuō zuǒ":["撮"],"wěi tuǒ":["撱"],"cuān":["撺","攛","汆","蹿","躥","鑹","镩"],"qiào yāo jī":["撽"],"zhuā wō":["撾"],"lèi léi":["擂"],"nǎng":["擃","攮","曩","灢"],"qíng jǐng":["擏"],"kuǎi":["擓","蒯","㧟"],"pǐ bò":["擗"],"bò bāi":["擘"],"jù jǐ":["據"],"mēng":["擝"],"sǒu sòu":["擞"],"xǐng":["擤","箵","醒"],"cā":["擦"],"níng nǐng nìng":["擰"],"zhì jié":["擳"],"là liè":["擸","爉"],"sòu sǒu":["擻"],"lì luò yuè":["擽"],"tī zhāi zhì":["擿"],"pān":["攀","潘","眅","萠"],"lèi":["攂","泪","涙","淚","禷","类","纇","蘱","酹","銇","錑","頛","頪","類","颣"],"cā sǎ":["攃"],"jùn pèi":["攈"],"lì luò":["攊","躒"],"là lài":["攋","櫴"],"lú luó":["攎"],"zǎn cuán":["攒"],"xiān jiān":["攕"],"mí mǐ mó":["攠"],"zǎn cuán zàn zuān":["攢"],"zuàn":["攥"],"lì shài":["攦"],"lì luǒ":["攭"],"guǐ guì":["攱"],"jī qī yǐ":["攲"],"fàng":["放"],"wù móu":["敄"],"chù shōu":["敊"],"gé guó è":["敋"],"duó duì":["敓","敚"],"duō què":["敠","敪"],"sàn sǎn":["散"],"dūn duì":["敦","镦"],"qī yǐ jī":["敧"],"xiào xué":["敩"],"shù shǔ shuò":["数","數"],"ái zhú":["敱","敳"],"xiòng xuàn":["敻"],"zhuó zhú":["斀"],"yì dù":["斁"],"lí tái":["斄"],"fěi fēi":["斐"],"yǔ zhōng":["斔"],"dòu dǒu":["斗"],"wò guǎn":["斡"],"tǒu tiǎo":["斢"],"dòu":["斣","梪","浢","痘","窦","竇","脰","荳","豆","逗","郖","酘","閗","闘","餖","饾","鬥","鬦","鬪","鬬","鬭"],"yín zhì":["斦"],"chǎn jiè":["斺"],"wū yū yú":["於"],"yóu liú":["斿"],"páng bàng":["旁"],"máo mào":["旄"],"pī bì":["旇"],"xuán xuàn":["旋"],"wú mó":["无"],"zǎo":["早","枣","栆","棗","澡","璪","薻","藻","蚤"],"gā":["旮"],"gàn hàn":["旰"],"tái yīng":["旲"],"xū xù":["旴"],"tūn zhùn":["旽"],"wù wǔ":["旿"],"pò pèi":["昢"],"zòng":["昮","猔","疭","瘲","粽","糉","糭","縦"],"ǎi":["昹","毐","矮","蔼","藹","譪","躷","霭","靄"],"huàng huǎng":["晃"],"xuǎn":["晅","癣","癬","选","選"],"xù kuā":["晇"],"hǒng":["晎"],"shài":["晒","曬"],"yūn yùn":["晕","煴"],"shèng chéng":["晟","椉","盛"],"jǐng yǐng":["景"],"shǎn":["晱","熌","睒","覢","閃","闪","陕","陝"],"qǐ dù":["晵"],"ǎn àn yǎn":["晻"],"wǎng wàng":["暀"],"zàn":["暂","暫","瓉","瓒","瓚","禶","襸","讃","讚","賛","贊","赞","蹔","鄼","錾","鏨","饡"],"yùn yūn":["暈"],"mín mǐn":["暋"],"dǔ shǔ":["暏"],"shǔ":["暑","曙","潻","癙","糬","署","薥","薯","藷","蜀","蠴","襡","襩","鱪","鱰","黍","鼠","鼡"],"jiǎn lán":["暕"],"nuǎn":["暖","煗","餪"],"bào pù":["暴"],"xī xǐ":["暿"],"pù bào":["曝","瀑"],"qū qǔ":["紶"],"qǔ qū":["曲"],"gèng gēng":["更"],"hū hù":["曶","雽"],"zēng céng":["曽","橧"],"céng zēng":["曾","竲"],"cǎn qián jiàn":["朁"],"qiè hé":["朅"],"bì pí":["朇","禆","笓","裨"],"yǒu yòu":["有"],"bān fén":["朌","鳻"],"fú fù":["服","洑"],"fěi kū":["朏","胐"],"qú xù chǔn":["朐"],"juān zuī":["朘"],"huāng máng wáng":["朚"],"qī jī":["期"],"tóng chuáng":["朣","橦"],"zhá":["札","牐","箚","蚻","譗","鍘","铡","閘","闸"],"zhú shù shú":["朮"],"shù shú zhú":["术"],"zhū shú":["朱"],"pǔ pò pō piáo":["朴"],"dāo tiáo mù":["朷"],"guǐ qiú":["朹"],"xiǔ":["朽","滫","潃","糔"],"chéng chēng":["朾"],"zá":["杂","沯","砸","襍","雑","雜","雥","韴"],"yú wū":["杅"],"gān gǎn":["杆"],"chā chà":["杈"],"shān shā":["杉"],"cūn":["村","皴","竴","膥","踆","邨"],"rèn ér":["杒","梕"],"sháo biāo":["杓"],"dì duò":["杕","枤"],"gū gài":["杚"],"yí zhì lí duò":["杝"],"gàng gāng":["杠"],"tiáo tiāo":["条","條"],"mà mǎ":["杩"],"sì zhǐ xǐ":["杫"],"yuán wán":["杬","蚖"],"bèi fèi":["杮"],"shū duì":["杸"],"niǔ chǒu":["杻"],"wò yuè":["枂","臒"],"máo":["枆","毛","氂","渵","牦","矛","罞","茅","茆","蝥","蟊","軞","酕","鉾","錨","锚","髦","鶜"],"pī mì":["枈"],"àng":["枊","盎","醠"],"fāng bìng":["枋"],"hù dǐ":["枑"],"xín":["枔","襑","鐔","鬵"],"yāo yǎo":["枖"],"ě è":["枙"],"zhī qí":["枝"],"cōng zōng":["枞","樅"],"xiān zhēn":["枮"],"tái sì":["枱"],"gǒu jǔ gōu":["枸"],"bāo fú":["枹"],"yì xiè":["枻","栧"],"tuó duò":["柁","馱","駄","驮"],"yí duò lí":["柂"],"nǐ chì":["柅"],"pán bàn":["柈","跘"],"yǎng yàng yāng yīng":["柍"],"fù fū fǔ":["柎"],"bǎi bó bò":["柏"],"mǒu":["某"],"sháo shào":["柖"],"zhè":["柘","樜","浙","淛","蔗","蟅","這","鷓","鹧","䗪"],"yòu yóu":["柚","櫾"],"guì jǔ":["柜"],"zhà zuò":["柞"],"dié zhì":["柣","眰"],"zhā zǔ zū":["柤"],"chá zhā":["查","査"],"āo ào":["柪","軪"],"bā fú pèi bó biē":["柭"],"duò zuó wù":["柮"],"bì bié":["柲"],"zhù chù":["柷"],"bēi pēi":["柸"],"shì fèi":["柹"],"shān zhà shi cè":["栅"],"lì yuè":["栎","櫟"],"qì qiè":["栔","砌"],"qī xī":["栖","蹊"],"guā kuò":["栝"],"bīng bēn":["栟"],"xiào jiào":["校"],"jiàn zùn":["栫","袸"],"yǒu yù":["栯"],"hé hú":["核"],"gēn":["根","跟"],"zhī yì":["栺"],"gé gē":["格"],"héng háng":["桁"],"guàng guāng":["桄"],"yí tí":["桋","荑"],"sāng":["桑","桒","槡"],"jú jié":["桔"],"yú móu":["桙"],"ráo náo":["桡","橈"],"guì huì":["桧","檜"],"chén zhèn":["桭"],"tīng yíng":["桯"],"bó po":["桲"],"bèn fàn":["桳"],"fēng fèng":["桻","葑"],"sù yìn":["梀"],"tǐng tìng":["梃"],"xuān juān xié":["梋"],"tú chá":["梌"],"āo yòu":["梎"],"kuǎn":["梡","欵","款","歀"],"shāo sào":["梢"],"qín chén cén":["梣"],"lí sì qǐ":["梩"],"chān yán":["梴"],"bīn bīng":["梹","槟","檳"],"táo chóu dào":["梼"],"cōng sōng":["棇"],"gùn hùn":["棍"],"dé zhé":["棏"],"pái bèi pèi":["棑"],"bàng pǒu bèi bēi":["棓"],"dì dài tì":["棣"],"sēn":["森","椮","槮","襂"],"rěn shěn":["棯"],"léng lēng líng":["棱"],"fú sù":["棴"],"zōu sǒu":["棷"],"zōu":["棸","箃","緅","諏","诹","邹","郰","鄒","鄹","陬","騶","驺","鯫","鲰","黀","齱","齺"],"zhào zhuō":["棹"],"chēn shēn":["棽"],"jiē qiè":["椄"],"yǐ yī":["椅"],"chóu zhòu diāo":["椆"],"qiāng kōng":["椌"],"zhuī chuí":["椎"],"bēi pí":["椑"],"mēn":["椚"],"quān juàn quán":["椦"],"duǒ chuán":["椯"],"wěi huī":["椲"],"jiǎ jiā":["椵"],"hán jiān":["椷"],"shèn zhēn":["椹"],"yàn yà":["椻"],"zhā chá":["楂"],"guō kuǎ":["楇"],"jí zhì":["楖"],"kǔ hù":["楛"],"yóu yǒu":["楢"],"sǒng cōng":["楤"],"yuán xuàn":["楥"],"yǎng yàng yīng":["楧"],"pián":["楩","胼","腁","賆","蹁","駢","騈","骈","骿","㛹"],"dié yè":["楪"],"dùn shǔn":["楯"],"còu zòu":["楱"],"dì dǐ shì":["楴"],"kǎi jiē":["楷"],"róu ròu":["楺"],"lè yuè":["楽"],"wēn yùn":["榅","鞰"],"lǘ":["榈","櫚","氀","膢","藘","閭","闾","驢","驴"],"shén":["榊","神","鉮","鰰","𬬹"],"bī pi":["榌"],"zhǎn niǎn zhèn":["榐"],"fú fù bó":["榑"],"jiàn jìn":["榗"],"bǎng bàng":["榜"],"shā xiè":["榝","樧"],"nòu":["槈","耨","鎒","鐞"],"qiǎn lián xiàn":["槏"],"gàng":["槓","焵","焹","筻","鿍"],"gāo":["槔","槹","橰","櫜","睾","篙","糕","羔","臯","韟","餻","高","髙","鷎","鷱","鼛"],"diān zhěn zhēn":["槙"],"kǎn jiàn":["槛"],"xí dié":["槢"],"jī guī":["槣"],"róng yōng":["槦"],"tuán shuàn quán":["槫"],"qì sè":["槭"],"cuī zhǐ":["槯"],"yǒu chǎo":["槱"],"màn wàn":["槾"],"lí chī":["樆"],"léi lěi":["樏","櫑","礌"],"cháo jiǎo chāo":["樔"],"chēng táng":["樘"],"jiū liáo":["樛"],"mó mú":["模"],"niǎo mù":["樢"],"héng hèng":["横","橫"],"xuě":["樰","膤","艝","轌","雪","鱈","鳕"],"fá fèi":["橃"],"rùn":["橍","润","潤","膶","閏","閠","闰"],"zhǎn jiǎn":["橏"],"shùn":["橓","瞚","瞬","舜","蕣","順","顺","鬊"],"tuí dūn":["橔"],"táng chēng":["橖"],"sù qiū":["橚"],"tán diàn":["橝"],"fén fèn fèi":["橨"],"rǎn yān":["橪"],"cū chu":["橻"],"shū qiāo":["橾"],"píng bò":["檘"],"zhái shì tú":["檡"],"biǎo biāo":["檦"],"qiān lián":["檶"],"nǐ mí":["檷"],"jiàn kǎn":["檻"],"nòu ruǎn rú":["檽"],"jī jì":["櫅","禨"],"huǎng guǒ gǔ":["櫎"],"lǜ chū":["櫖"],"miè mèi":["櫗"],"ōu":["櫙","欧","歐","殴","毆","瓯","甌","膒","藲","謳","讴","鏂","鴎","鷗","鸥"],"zhù zhuó":["櫡"],"jué jì":["櫭"],"huái guī":["櫰"],"chán zhàn":["欃"],"wéi zuì":["欈"],"cáng":["欌","鑶"],"yù yì":["欥"],"chù qù xì":["欪"],"kài ài":["欬"],"yì yīn":["欭"],"xì kài":["欯"],"shuò sòu":["欶"],"ǎi ēi éi ěi èi ê̄ ế ê̌ ề":["欸"],"qī yī":["欹"],"chuā xū":["欻"],"chǐ chuài":["欼"],"kǎn qiàn":["欿"],"kǎn kè":["歁"],"chuǎn chuán":["歂"],"yīn yān":["歅"],"jìn qūn":["歏"],"pēn":["歕"],"xū chuā":["歘"],"xī shè":["歙"],"liǎn hān":["歛"],"zhì chí":["歭"],"sè shà":["歰"],"sǐ":["死"],"wěn mò":["歾"],"piǎo":["殍","皫","瞟","醥","顠"],"qíng jìng":["殑"],"fǒu bó":["殕"],"zhí shi":["殖"],"yè yān yàn":["殗"],"hūn mèi":["殙"],"chòu":["殠","臰","遚"],"kuì huì":["殨","溃","潰"],"cuàn":["殩","熶","爨","窜","竄","篡","簒"],"yīn yān yǐn":["殷"],"qìng kēng shēng":["殸"],"yáo xiáo xiào":["殽"],"gū gǔ":["毂","蛄"],"guàn wān":["毌"],"dú dài":["毒"],"xún xùn":["毥"],"mú":["毪","氁"],"dòu nuò":["毭"],"sāi suī":["毸"],lu:["氇"],"sào":["氉","瘙","矂","髞"],"shì zhī":["氏"],"dī dǐ":["氐"],"máng méng":["氓"],"yáng rì":["氜"],"shuǐ":["水","氵","氺","閖"],"zhěng chéng zhèng":["氶"],"tǔn":["氽"],"fán fàn":["氾"],"guǐ jiǔ":["氿"],"bīn pà pā":["汃"],"zhuó què":["汋"],"dà tài":["汏"],"pìn":["汖","牝","聘"],"hàn hán":["汗","馯"],tu:["汢"],"tāng shāng":["汤","湯"],"zhī jì":["汥"],"gàn hán cén":["汵"],"wèn mén":["汶"],"fāng pāng":["汸"],"hǔ huǎng":["汻"],"niú yóu":["汼"],"hàng":["沆"],"shěn chén":["沈"],"dùn zhuàn":["沌"],"nǜ niǔ":["沑"],"méi mò":["沒","没"],"tà dá":["沓"],"mì wù":["沕"],"hóng pāng":["沗"],"shā shà":["沙"],"zhuǐ zǐ":["沝"],"ōu òu":["沤","漚"],"jǔ jù":["沮"],"tuō duó":["沰"],"mǐ lì":["沵"],"yí chí":["沶"],"xiè yì":["泄"],"bó pō":["泊"],"mì bì":["泌","秘"],"chù shè":["泏"],"yōu yòu āo":["泑"],"pēng píng":["泙","硑"],"pào pāo":["泡"],"ní nì":["泥","秜"],"yuè sà":["泧"],"jué xuè":["泬","疦"],"lóng shuāng":["泷","瀧"],"luò pō":["泺","濼"],"zé shì":["泽","澤"],"sǎ xǐ":["洒"],"sè qì zì":["洓"],"xǐ xiǎn":["洗"],"kǎo kào":["洘"],"àn yàn è":["洝"],"lěi lèi":["洡"],"qiè jié":["洯"],"qiǎn jiān":["浅"],"jì jǐ":["济","済","濟","纪"],"hǔ xǔ":["浒","滸"],"jùn xùn":["浚","濬"],"yǐng chéng yíng":["浧"],"liàn lì":["浰"],"féng hóng":["浲","溄"],"jiǒng jiōng":["浻"],"suī něi":["浽"],"yǒng chōng":["涌"],"tūn yūn":["涒"],"wō guō":["涡","渦"],"hēng":["涥","脝"],"zhǎng zhàng":["涨","漲"],"shòu tāo":["涭"],"shuàn":["涮","腨"],"kōng náng":["涳"],"wò wǎn yuān":["涴"],"tuō tuò":["涶"],"wō":["涹","猧","窝","窩","莴","萵","蜗","蝸","踒"],"qiè jí":["淁"],"guǒ guàn":["淉"],"lín lìn":["淋","獜","疄"],"tǎng chǎng":["淌"],"nào chuò zhuō":["淖"],"péng píng":["淜"],"féi":["淝","肥","腓","蜰"],"pì pèi":["淠"],"niǎn shěn":["淰"],"biāo hǔ":["淲"],"chún zhūn":["淳"],"hùn hún":["混"],"qiǎn":["淺","繾","缱","肷","膁","蜸","譴","谴","遣","鑓"],"wèn mín":["渂"],"rè ruò luò":["渃"],"dú dòu":["渎","瀆","读"],"jiàn jiān":["渐","溅","漸","濺"],"miǎn shéng":["渑","澠"],"nuǎn nuán":["渜"],"qiú wù":["渞"],"tíng tīng":["渟"],"dì tí dī":["渧"],"gǎng jiǎng":["港"],"hōng qìng":["渹"],"tuān":["湍","煓"],"huì mǐn xū":["湏"],"xǔ xù":["湑"],"pén":["湓","瓫","盆","葐"],"mǐn hūn":["湣"],"tuàn nuǎn":["湪"],"qiū jiǎo":["湫","湬"],"yān yīn":["湮"],"bàn pán":["湴"],"zhuāng hún":["湷"],"yàn guì":["溎"],"lián liǎn nián xián xiàn":["溓"],"dá tǎ":["溚","鿎"],"liū liù":["溜","澑","蹓"],"lùn":["溣"],"mǎ":["溤","犸","獁","玛","瑪","码","碼","遤","鎷","馬","马","鰢","鷌"],"zhēn qín":["溱"],"nì niào":["溺"],"chù xù":["滀","畜"],"wěng wēng":["滃"],"hào xuè":["滈"],"qì xì xiē":["滊"],"xíng yíng":["滎"],"zé hào":["滜"],"piāo piào piǎo":["漂"],"cóng sǒng":["漎"],"féng péng":["漨"],"luò tà":["漯"],"pēng bēn":["漰"],"chóng shuāng":["漴"],"huǒ kuò huò":["漷"],"liáo liú":["漻"],"cuǐ cuī":["漼"],"cóng zǒng":["潀"],"cóng zōng":["潈"],"pì piē":["潎"],"dàng xiàng":["潒"],"huáng guāng":["潢"],"liáo lào lǎo":["潦"],"cōng zòng":["潨"],"zhí zhì":["潪"],"tān shàn":["潬"],"tú zhā":["潳"],"sàn sǎ":["潵"],"hēi":["潶","黑","黒","𬭶"],"chéng dèng":["澄","瀓"],"cūn cún":["澊"],"péng pēng":["澎"],"hòng gǒng":["澒","銾"],"wàn màn":["澫"],"kuài huì":["澮"],"guō wō":["濄"],"pēn fén":["濆"],"jí shà":["濈"],"huì huò":["濊"],"dǐng tìng":["濎"],"mǐ nǐ":["濔"],"bì pì":["濞"],"cuì zuǐ":["濢"],"hù huò":["濩"],"ǎi kài kè":["濭"],"wěi duì":["濻","瀢"],"zàn cuán":["濽","灒"],"yǎng yàng":["瀁"],"wǎng wāng":["瀇"],"mò miè":["瀎","眜"],"suǐ":["瀡","膸","髓"],"huái wāi":["瀤"],"zùn jiàn":["瀳"],"yīng yǐng yìng":["瀴"],"ráng ràng":["瀼"],"shuàng":["灀"],"zhuó jiào zé":["灂"],"sǎ":["灑","訯","靸"],"luán luàn":["灓"],"dǎng tǎng":["灙"],"xún quán quàn":["灥"],"huǒ biāo":["灬"],"zhà yù":["灹"],"fén bèn":["炃"],"jiǒng guì":["炅"],"pàng fēng":["炐"],"quē":["炔","缺","缼","蒛"],"biān":["炞","煸","甂","砭","笾","箯","籩","編","编","蝙","邉","邊","鍽","鞭","鯾","鯿","鳊"],"zhāo zhào":["炤"],"zhuō chù":["炪"],"pào páo bāo":["炮"],"páo fǒu":["炰"],"shǎn qián shān":["炶"],"zhà zhá":["炸"],"jiǎo yào":["烄"],"quǎn":["烇","犬","犭","畎","綣","绻","虇"],"yàng yáng":["烊"],"lào luò":["烙"],"huí huǐ":["烠"],"rè":["热","熱"],"fú páo":["烰"],"xiè chè":["烲","焎"],"yàn shān":["烻"],"hūn xūn":["焄"],"kào":["焅","犒","銬","铐","靠","鮳","鯌","鲓","㸆"],"juān yè":["焆"],"jùn qū":["焌"],"tāo dào":["焘"],"chǎo jù":["焣"],"wò ài":["焥"],"zǒng cōng":["焧"],"xī yì":["焬"],"xìn xīn":["焮"],"chāo zhuō":["焯"],"xiǒng yīng":["焸","焽"],"kuǐ":["煃","跬","蹞","頍","𫠆"],"huī yùn xūn":["煇"],"jiǎo qiāo":["煍"],"qián shǎn shān":["煔"],"xī yí":["煕"],"shà shā":["煞"],"yè zhá":["煠"],"yáng yàng":["煬"],"ēn yūn":["煾"],"yūn yǔn":["熅"],"hè xiāo":["熇"],"xióng":["熊","熋","雄"],"xūn xùn":["熏","爋"],"gòng":["熕","貢","贡"],"liū":["熘"],"cōng zǒng":["熜"],"lù āo":["熝"],"shú shóu":["熟"],"fēng péng":["熢"],"cuǐ suī":["熣"],"tēng":["熥","膯","鼟"],"yùn yù":["熨"],"áo āo":["熬"],"hàn rǎn":["熯"],"ōu ǒu":["熰"],"huáng huǎng":["熿"],"chǎn dǎn chàn":["燀"],"jiāo zhuó qiáo jué":["燋"],"yàn yān":["燕"],"tài liè":["燤"],"āo":["爊"],"yàn xún":["爓"],"jué jiào":["爝","覐","覚","覺","觉"],"lǎn làn":["爦"],"zhuǎ zhǎo":["爪"],"zhǎo zhuǎ":["爫"],"fù fǔ":["父"],"diē":["爹","褺","跌"],"zāng":["牂","羘","臧","賍","賘","贓","贜","赃","髒"],"piàn piān":["片"],"biān miàn":["牑"],"bǎng":["牓","綁","绑"],"yǒu yōng":["牗"],"chēng chèng":["牚","竀"],"niú":["牛","牜"],"jiū lè":["牞"],"mù móu":["牟"],"māng":["牤"],"gē qiú":["牫"],"yòu chōu":["牰"],"tè zhí":["犆"],"bēn":["犇","錛","锛"],"jiān qián":["犍","玪"],"má":["犘","痲","蔴","蟇","麻"],"máo lí":["犛"],"bá quǎn":["犮"],"zhuó bào":["犳"],"àn hān":["犴"],"kàng gǎng":["犺"],"pèi fèi":["犻"],"fān huān":["犿"],"kuáng":["狂","狅","誑","诳","軖","軠","鵟","𫛭"],"yí quán chí":["狋"],"xīng shēng":["狌"],"tuó yí":["狏"],"kǔ":["狜","苦"],"huán huān":["狟"],"hé mò":["狢"],"tà shì":["狧"],"máng dòu":["狵"],"xī shǐ":["狶"],"suān":["狻","痠","酸"],"bài pí":["猈"],"jiān yàn":["猏","豣"],"yī yǐ":["猗"],"yá wèi":["猚"],"cāi":["猜"],"māo máo":["猫","貓"],"chuàn chuān":["猭"],"tuān tuàn":["猯","貒"],"yà jiá qiè":["猰"],"hè xiē gé hài":["猲"],"biān piàn":["猵","獱"],"bó pò":["猼"],"háo gāo":["獋"],"fén fèn":["獖"],"yào xiāo":["獟"],"shuò xī":["獡"],"gé liè xiē":["獦"],"nòu rú":["獳"],"náo nǎo yōu":["獶"],"ráng":["獽","瓤","禳","穣","穰","蘘","躟","鬤"],"náo yōu":["獿"],"lǜ shuài":["率"],"wáng wàng":["王"],"yáng chàng":["玚"],"mín wén":["玟"],"bīn fēn":["玢"],"mén yǔn":["玧"],"qiāng cāng":["玱","瑲","篬"],"án gān":["玵"],"xuán xián":["玹"],"cī cǐ":["玼","跐"],"yí tāi":["珆"],"zǔ jù":["珇"],"fà":["珐","琺","蕟","髪","髮"],"yín kèn":["珢"],"huī hún":["珲"],"xuán qióng":["琁"],"fú fū":["琈"],"bǐng pín":["琕"],"cuì sè":["琗"],"yù wéi":["琟"],"tiǎn tiàn":["琠"],"zhuó zuó":["琢"],"běng pěi":["琣"],"guǎn":["琯","璭","痯","筦","管","舘","輨","錧","館","馆","鳤"],"hún huī":["琿"],"xié jiē":["瑎"],"chàng dàng yáng":["瑒"],"tiàn zhèn":["瑱"],"bīn pián":["瑸","璸"],"tú shū":["瑹"],"cuǐ":["璀","皠","趡"],"zǎo suǒ":["璅"],"jué qióng":["璚"],"lú fū":["璷"],"jì zī":["璾"],"suí":["瓍","綏","绥","遀","随","隨","髄"],"mí xǐ":["瓕"],"qióng wěi wèi":["瓗"],"huán yè yà":["瓛"],"bó páo":["瓟"],"zhí hú":["瓡"],"piáo":["瓢","闝"],"wǎ wà":["瓦"],"xiáng hóng":["瓨"],"wèng":["瓮","甕","罋","蕹","齆"],"shèn shén":["甚"],"ruí":["甤","緌","蕤"],"yòng":["用","砽","苚","蒏","醟","㶲"],"shuǎi":["甩"],"béng":["甭","甮"],"yóu zhá":["甴"],"diàn tián shèng":["甸"],"tǐng dīng":["町","甼"],"zāi zī":["甾"],"bì qí":["畁"],"dá fú":["畗"],"cè jì":["畟"],"zāi zī tián":["畠"],"zhì chóu shì":["畤"],"fān pān":["畨","番"],"shē yú":["畬"],"dāng dàng dǎng":["當"],"jiāng qiáng":["疆"],"pǐ yǎ shū":["疋"],"jié qiè":["疌"],"yí nǐ":["疑"],"nè":["疒","眲","訥","讷"],"gē yì":["疙"],"nüè yào":["疟","瘧"],"lì lài":["疠","癘"],"yǎ xiā":["疨"],"xuē":["疶","蒆","薛","辥","辪","靴","鞾"],"dǎn da":["疸"],"fá biǎn":["疺"],"fèi féi":["疿","痱"],"shān diàn":["痁"],"téng chóng":["痋"],"tōng tóng":["痌"],"wěi yòu yù":["痏"],"tān shǐ":["痑"],"pū pù":["痡","鋪"],"bēng péng":["痭"],"má lìn":["痳"],"tiǎn diàn":["痶"],"ān yè è":["痷"],"kē ē":["痾"],"zhì chì":["瘈"],"jiǎ xiá xiā":["瘕"],"lěi huì":["瘣"],"chài cuó":["瘥"],"diān chēn":["瘨"],"da dá":["瘩"],"biě biē":["瘪"],"qué":["瘸"],"dàn dān":["癉"],"guì wēi":["癐"],"nòng nóng":["癑"],"biē biě":["癟"],"bō bǒ":["癷"],"bái":["白"],"jí bī":["皀"],"de dì dí dī":["的"],"pā bà":["皅"],"gāo háo":["皋"],"gāo yáo":["皐"],"lì luò bō":["皪"],"zhā cǔ":["皻"],"zhāo zhǎn dǎn":["皽"],"jiān jiàn":["监","監","鋻","间","鞬"],"gài gě hé":["盖"],"máng wàng":["盳"],"yuǎn":["盶","逺","遠"],"tián xián":["盷"],"xiāng xiàng":["相"],"dǔn":["盹","趸","躉"],"xì pǎn":["盻"],"shěng xǐng":["省"],"yún hùn":["眃"],"miǎn miàn":["眄"],"kàn kān":["看"],"yìng yāng yǎng":["眏"],"yǎo āo ǎo":["眑"],"jū xū kōu":["眗"],"yí chì":["眙"],"dié tì":["眣"],"bǐng fǎng":["眪"],"pàng pán":["眫"],"mī mí":["眯","瞇"],"xuàn shùn xún":["眴"],"tiào":["眺","粜","糶","覜","趒"],"zhe zhuó zháo zhāo":["着"],"qiáo shào xiāo":["睄"],"cuó zhuài":["睉"],"gùn":["睔","謴"],"suì zuì":["睟"],"pì bì":["睥","稫","辟"],"yì zé gāo":["睪"],"xǐng xìng":["睲"],"guì wèi kuì":["瞆"],"kòu jì":["瞉"],"qióng huán":["瞏"],"mán mén":["瞒","瞞"],"diāo dōu":["瞗"],"lou lóu lǘ":["瞜"],"shùn rún":["瞤"],"liào liǎo":["瞭","钌"],"jiàn xián":["瞯"],"wǔ mí":["瞴"],"guì kuì":["瞶"],"nǐng chēng":["矃"],"huò yuè":["矆"],"mēng méng":["矇"],"kuàng guō":["矌"],"guàn quán":["矔"],"mǎn mán":["矕"],"jīn guān qín":["矜"],"jīn qín guān":["矝"],"yù xù jué":["矞"],"jiǎo jiáo":["矫","矯"],"duǎn":["短"],"shí dàn":["石"],"gāng qiāng kòng":["矼"],"huā xū":["砉"],"pīn bīn fēn":["砏"],"yán yàn":["研","硏"],"luǒ kē":["砢"],"fú fèi":["砩","笰"],"zhǔ zhù":["砫"],"lá lì lā":["砬"],"kuāng guāng":["硄"],"gè luò":["硌"],"shuò shí":["硕","碩"],"wèi wéi ái":["硙"],"què kè kù":["硞"],"mǎng bàng":["硥"],"luò lòng":["硦"],"yǒng tóng":["硧"],"nüè":["硸","虐"],"kēng kěng":["硻"],"yān yǎn":["硽"],"zhuì chuí duǒ":["硾"],"kōng kòng":["硿"],"zòng cóng":["碂"],"jiān zhàn":["碊"],"lù liù":["碌","陆"],"què xī":["碏"],"lún lǔn lùn":["碖"],"náo gāng":["碙"],"jié yà":["碣"],"wèi wěi":["碨"],"tí dī":["碮"],"chá chā":["碴"],"qiāo què":["碻"],"sù xiè":["碿"],"liú liù":["磂","遛","鎦","馏"],"sī tí":["磃"],"bàng páng":["磅"],"huá kě gū":["磆"],"wěi kuǐ":["磈"],"xiá qià yà":["磍"],"lián qiān":["磏"],"wèi ái gài":["磑"],"lá lā":["磖"],"áo qiāo":["磝"],"pēng pèng":["磞","閛"],"yīn yǐn":["磤"],"lěi léi":["磥"],"mó mò":["磨"],"qì zhú":["磩"],"láo luò":["磱"],"pán bō":["磻"],"jí shé":["磼"],"hé qiāo qiào":["礉"],"kè huò":["礊"],"què hú":["礐"],"è qì":["礘"],"cǎ":["礤","礸"],"xián xín":["礥"],"léi lěi lèi":["礧"],"yán yǎn":["礹"],"qí zhǐ":["祇","蚔"],"bēng fāng":["祊"],"bì mì":["祕"],"suàn":["祘","笇","筭","算","蒜"],"piào piāo":["票"],"jì zhài":["祭"],"shuì lèi":["祱"],"jìn jīn":["禁"],"chán shàn":["禅"],"yáng shāng":["禓"],"zhī zhǐ tí":["禔"],"shàn chán":["禪"],"yú yù ǒu":["禺"],"zǐ zì":["秄"],"chá ná":["秅"],"zhǒng zhòng chóng":["种"],"hào mào":["秏"],"kù kū":["秙"],"zū":["租","葅"],"chèng":["秤","穪"],"huó kuò":["秮","秳"],"chēng chèn chèng":["称","稱"],"shì zhì":["秲","銴"],"fù pū":["秿"],"xùn zè":["稄"],"tú shǔ":["稌"],"zhùn zhǔn":["稕"],"jī qí":["稘","綨","觭"],"léng líng":["稜"],"zuì zú sū":["稡"],"xì qiè":["稧","郄"],"zhǒng zhòng":["種"],"zōng zǒng":["稯"],"xián jiān liàn":["稴"],"zī jiū":["稵"],"jī qǐ":["稽"],"ròng":["穃"],"shān cǎn cēn":["穇"],"mén méi":["穈"],"jǐ jì":["穖"],"xiāo rào":["穘"],"zhuō bó":["穛"],"tóng zhǒng zhòng":["穜"],"zuō":["穝"],"biāo pāo":["穮","藨"],"zhuō jué":["穱"],"cuán zàn":["穳"],"kōng kòng kǒng":["空"],"yū yǔ":["穻"],"zhǎi":["窄","鉙"],"báo":["窇","雹"],"kū zhú":["窋"],"jiào liáo liù":["窌"],"wā guī":["窐"],"tiǎo yáo":["窕"],"xūn yìn":["窨"],"yà yē":["窫"],"tián diān yǎn":["窴"],"chāo kē":["窼"],"kuǎn cuàn":["窽","窾"],"chù qì":["竐"],"qǔ kǒu":["竘"],"jìng zhěn":["竧"],"kǎn kàn":["竷"],"zhú dǔ":["竺"],"lè jīn":["竻"],"zhuì ruì":["笍"],"háng hàng":["笐"],"cén jìn hán":["笒"],"dā xiá nà":["笚"],"zé zuó":["笮"],"lóng lǒng":["笼","篭","籠","躘","龓"],"zhù zhú":["筑","築"],"dá dā":["答","荅"],"shāi":["筛","篩","簁","籭"],"yún jūn":["筠"],"láng làng":["筤","郎","阆"],"zhì zhǐ":["筫"],o:["筽"],"póu bù fú pú":["箁"],"pái bēi":["箄"],"gè":["箇","虼","鉻","铬"],"tái chí":["箈"],"guǎi dài":["箉"],"zhào dào":["箌"],"jīng qìng":["箐"],"lín lǐn":["箖"],"jùn qūn":["箘"],"shī yí":["箷","釶"],"yuē yào chuò":["箹"],"xiāo shuò qiào":["箾"],"gōng gǎn lǒng":["篢"],"páng péng":["篣"],"zhuó huò":["篧"],"jiǎn jiān":["篯"],"dí zhú":["篴"],"zān cēn cǎn":["篸"],"zhuàn suǎn zuàn":["篹"],"piǎo biāo":["篻"],"guó guì":["簂"],"cè jí":["簎"],"mì miè":["簚"],"shāi sī":["簛"],"sǔn zhuàn":["簨"],"gàn gǎn":["簳"],"bò bǒ":["簸"],"bó bù":["簿"],shi:["籂"],"zhēn jiān":["籈"],"zhuàn zuǎn":["籑"],"fān pān biān":["籓"],"sǒu shǔ":["籔"],"zuǎn":["籫","繤","纂","纉","纘","缵"],"nǚ":["籹","釹","钕"],"shā chǎo":["粆"],"kāng jīng":["粇"],"fěn":["粉","黺"],"cū":["粗","觕","麁","麄","麤"],"nián zhān":["粘"],"cè sè":["粣"],"zhōu yù":["粥"],"shēn sǎn":["糁"],"biān biǎn":["糄","萹"],"miàn":["糆","面","靣","麪","麫","麵","麺"],"hú hū hù":["糊"],"gǔ gòu":["糓"],"mí méi":["糜"],"sǎn shēn":["糝","糣"],"zāo":["糟","蹧","遭","醩"],"mì sī":["糸"],"jiū jiǔ":["糺"],"xì jì":["系","繫"],"zhēng zhěng":["糽"],"chà chǎ":["紁","衩"],"yuē yāo":["約","约"],"hóng gōng":["紅","红"],"hé gē":["紇","纥"],"wén wèn":["紋","纹"],"fóu":["紑"],"jì jié jiè":["紒"],"pī pí bǐ":["紕","纰"],"jīn jìn":["紟"],"zhā zā":["紥","紮"],"hā":["紦"],"fū fù":["紨"],"chōu chóu":["紬"],"lèi léi lěi":["累"],"bō bì":["紴"],"tiǎn zhěn":["紾"],"jiōng jiǒng":["絅"],"jié jiē":["結","结","节"],"guà kuā":["絓"],"bǎi mò":["絔"],"gēng huán":["絙"],"jié xié":["絜"],"quán shuān":["絟"],"gǎi ǎi":["絠"],"luò lào":["絡","络"],"bīng bēng pēng":["絣"],"gěi jǐ":["給","给"],"tóng tōng dòng":["絧"],"tiào diào dào":["絩"],"lěi lèi léi":["絫"],"gāi hài":["絯"],"chī zhǐ":["絺"],"wèn miǎn mán wàn":["絻"],"huán huàn wàn":["綄"],"qīn xiān":["綅"],"tì tí":["綈"],"yán xiàn":["綖"],"zōng zèng zòng":["綜"],"chēn lín":["綝"],"zhǔn zhùn":["綧"],"qiàn qīng zhēng":["綪"],"qìng qǐ":["綮"],"lún guān":["綸","纶"],"chuò chāo":["綽","绰"],"tián tǎn chān":["緂"],"lǜ lù":["緑","绿"],"ruǎn ruàn":["緛"],"jí qī":["緝"],"zhòng chóng":["緟","重"],"miáo máo":["緢"],"xiè yè":["緤"],"huǎn":["緩","缓","㬊"],"gēng gèng":["緪","縆"],"tōu xū shū":["緰"],"zōng zòng":["緵","繌"],"yùn gǔn":["緷"],"guā wō":["緺"],"yùn yūn wēn":["緼","縕"],"bāng bàng":["縍"],"gǔ hú":["縎","鶻"],"cī cuò suǒ":["縒"],"cuī shuāi":["縗"],"róng rǒng ròng":["縙"],"zài zēng":["縡"],"cài":["縩","菜","蔡"],"féng fèng":["縫"],"suō sù":["縮","缩"],"yǎn yǐn":["縯","酓"],"zòng zǒng":["縱","纵"],"zhuàn juàn":["縳"],"mò mù":["縸","莫"],"piǎo piāo":["縹","缥"],"fán pó":["繁"],"bēng bèng":["繃"],"móu miù miào liǎo":["繆"],"yáo yóu zhòu":["繇"],"zēng zèng":["繒","缯"],"jú jué":["繘"],"chuō chuò":["繛"],"zūn zǔn":["繜"],"rào":["繞","绕","遶"],"chǎn chán":["繟"],"huì huí":["繢","缋","藱"],"qiāo sāo zǎo":["繰"],"jiǎo zhuó":["繳","缴"],"dàn tán chán":["繵"],"nǒng":["繷"],"pú fú":["纀"],"yào lì":["纅"],"rǎng xiāng":["纕"],"lí sǎ xǐ lǐ":["纚"],"xiān qiàn":["纤"],"jīng jìng":["经"],"tí tì":["绨"],"bēng běng bèng":["绷"],"zōng zèng":["综"],"jī qī":["缉"],"wēn yùn yūn":["缊"],"fèng féng":["缝"],"shuāi cuī suī":["缞"],"miù móu liáo miào mù":["缪"],"qiāo sāo":["缲"],"fǒu":["缶","缹","缻","雬","鴀"],"bà ba pí":["罢","罷"],"guà guǎi":["罫"],"yáng xiáng":["羊","羏"],"měi gāo":["羙"],"yì xī":["羛"],"qiǎng qiān":["羟"],"qiāng kòng":["羫"],"qián xián yán":["羬"],"nóu":["羺"],"hóng gòng":["羾"],"pī bì pō":["翍"],"qú yù":["翑"],"ké":["翗"],"qiào qiáo":["翘"],"zhái dí":["翟"],"dào zhōu":["翢"],"hóu qú":["翵"],"shuǎ":["耍"],"ruǎn nuò":["耎"],"ér nài":["耏"],"zhuān duān":["耑"],"pá bà":["耙"],"chí sì":["耛"],"qù chú":["耝"],"lún lǔn":["耣"],"jí jiè":["耤"],"tāng tǎng":["耥"],"pǎng":["耪","覫"],"zhá zé":["耫"],"yē yé":["耶"],"yún yíng":["耺"],"wà tuǐ zhuó":["聉"],"ér nǜ":["聏"],"tiē zhé":["聑"],"dǐ zhì":["聜"],"qié":["聺"],"nǐ jiàn":["聻"],"lèi lē":["肋"],"cào":["肏","襙","鄵","鼜"],"bó dí":["肑"],"xiào xiāo":["肖"],"dù dǔ":["肚"],"chāi":["肞","釵","钗"],"hán qín hàn":["肣"],"pàng pán pàn":["肨","胖"],"zhūn chún":["肫"],"āng":["肮","骯"],"yù yō":["育"],"pí bǐ bì":["肶"],"fèi bì":["胇"],"bèi bēi":["背"],"fèi zǐ":["胏"],"píng pēng":["胓","苹"],"fū fú zhǒu":["胕"],"shèng shēng":["胜"],"kuà":["胯","跨","骻"],"gǎi hǎi":["胲"],"gē gé gā":["胳"],"néng nài":["能"],"guī kuì":["胿"],"mài mò":["脉"],"zāng zàng":["脏"],"jiǎo jué":["脚","角"],"cuǒ":["脞"],"de te":["脦"],"zuī juān":["脧"],"něi":["脮","腇","餒","馁","鮾","鯘"],"pú fǔ":["脯"],"niào":["脲"],"shuí":["脽"],"guò":["腂","過","鐹"],"là xī":["腊"],"yān ā":["腌"],"gāo gào":["膏"],"lù biāo":["膔"],"chuái":["膗"],"zhuān chuán chún zhuǎn":["膞"],"chuài":["膪","踹"],"fán pán":["膰"],"wǔ hū":["膴"],"shān dàn":["膻"],"tún":["臀","臋","蛌","豘","豚","軘","霕","飩","饨","魨","鲀","黗"],"bì bei":["臂"],"là gé":["臈"],"sào sāo":["臊"],"nào":["臑","閙","闹","鬧"],"ní luán":["臡"],"qiān xián":["臤"],"guàng jiǒng":["臦"],"guǎng jiǒng":["臩"],"chòu xiù":["臭"],"mián biān":["臱"],"dié zhí":["臷"],"zhī jìn":["臸"],"shè shě":["舍"],"pù":["舖","舗"],"bān bō pán":["般"],"kuā":["舿"],"gèn gěn":["艮"],"sè shǎi":["色"],"fú bó":["艴"],"jiāo qiú":["艽"],"chāi chā":["芆"],"sháo què":["芍"],"hù xià":["芐"],"zì zǐ":["芓"],"huì hū":["芔"],"tún chūn":["芚"],"jiè gài":["芥"],"xù zhù":["芧"],"yuán yán":["芫"],"xīn xìn":["芯"],"lún huā":["芲"],"wù hū":["芴"],"gōu gǒu":["芶"],"mào máo":["芼"],"fèi fú":["芾"],"chán yín":["苂"],"qiē":["苆"],"sū sù":["苏"],"tiáo sháo":["苕"],"lì jī":["苙"],"kē hē":["苛"],"jù qǔ":["苣"],"ruò rě":["若"],"zhù níng":["苧"],"pā bó":["苩"],"xiú":["苬"],"zhǎ zuó":["苲"],"jū chá":["苴"],"nié":["苶"],"shēng ruí":["苼"],"qié jiā":["茄"],"zǐ cí":["茈"],"qiàn xī":["茜"],"chǎi":["茝"],"fá pèi":["茷"],"ráo":["荛","蕘","襓","饒","饶"],"yíng xíng":["荥"],"qián xún":["荨","蕁"],"yìn yīn":["荫"],"hé hè":["荷"],"shā suō":["莎"],"péng fēng":["莑"],"shēn xīn":["莘"],"wǎn guān guǎn":["莞"],"yóu sù":["莤"],"shāo xiāo":["莦","蛸"],"làng liáng":["莨"],"piǎo fú":["莩"],"wèn wǎn miǎn":["莬"],"shì shí":["莳","蒔"],"tù tú":["莵"],"xiān liǎn":["莶","薟"],"wǎn yù":["菀"],"zōu chù":["菆"],"lù lǜ":["菉"],"jūn jùn":["菌"],"niè rěn":["菍"],"zī zì zāi":["菑"],"tú tù":["菟"],"jiē shà":["菨"],"qiáo zhǎo":["菬"],"tái zhī chí":["菭"],"fēi fěi":["菲","蜚"],"qín qīn jīn":["菳"],"zū jù":["菹","蒩"],"lǐn má":["菻"],"tián tiàn":["菾"],"tiē":["萜","貼","贴"],"luò là lào luō":["落"],"zhù zhuó zhe":["著"],"shèn rèn":["葚"],"gě gé":["葛"],"jùn suǒ":["葰"],"kuì kuài":["蒉"],"rú ná":["蒘"],"méng mēng měng":["蒙"],"yuán huán":["蒝"],"xú shú":["蒣"],"xí xì":["蒵"],"mì míng":["蓂"],"sōu sǒu":["蓃"],"gài gě hé hài":["蓋"],"yǎo zhuó":["蓔"],"diào tiáo dí":["蓧"],"xū qiū fū":["蓲"],"zí jú":["蓻"],"liǎo lù":["蓼"],xu:["蓿"],"hàn hǎn":["蔊"],"màn wàn mán":["蔓"],"pó bò":["蔢"],"fān fán bō":["蕃"],"hóng hòng":["蕻"],"yù ào":["薁","隩"],"xí xiào":["薂"],"báo bó bò":["薄"],"cí zī":["薋"],"wàn luàn":["薍"],"kǎo hāo":["薧"],"yuǎn wěi":["薳"],"zhòu chóu":["薵"],"wō mái":["薶"],"xiāo hào":["藃"],"yù xù xū":["藇"],"jiè jí":["藉"],"diào zhuó":["藋"],"cáng zàng":["藏"],"lǎ":["藞"],"chú zhū":["藸"],"pín píng":["蘋"],"gān hán":["虷"],"hóng jiàng":["虹"],"huī huǐ":["虺"],"xiā há":["虾"],"mǎ mà mā":["蚂"],"fāng bàng":["蚄"],"bàng bèng":["蚌"],"jué quē":["蚗"],"qín qián":["蚙"],"gōng zhōng":["蚣"],"fǔ fù":["蚥"],"dài dé":["蚮"],"gǒu qú xù":["蚼"],"bǒ pí":["蚾"],"shé yí":["蛇"],"tiě":["蛈","鉄","銕","鐡","鐵","铁","驖"],"gé luò":["蛒"],"máng bàng":["蛖"],"yì xǔ":["蛡"],"há gé":["蛤"],"qiè ní":["蛪"],"é yǐ":["蛾"],"zhē zhé":["蜇"],"là zhà":["蜡"],"suò":["蜶","逤"],"yóu qiú":["蝤"],"xiā hā":["蝦"],"xī qī":["螇"],"bī pí":["螕"],"nài něng":["螚"],"hé xiá":["螛"],"guì huǐ":["螝"],"mǎ mā mà":["螞"],"shì zhē":["螫"],"zhì dié":["螲"],"jiàn chán":["螹"],"ma má mò":["蟆"],"mǎng měng":["蟒"],"biē bié":["蟞"],"bēn fèi":["蟦"],"láo liáo":["蟧"],"yín xún":["蟫"],"lí lǐ":["蠡"],"xuè xiě":["血"],"xíng háng hàng héng":["行"],"shuāi cuī":["衰"],"tuó tuō":["袉"],"lǐng líng":["袊"],"bào páo pào":["袌"],"jù jiē":["袓"],"hè kè":["袔"],"yí yì":["袘","貤"],"nà jué":["袦"],"bèi pī":["被"],"chǐ nuǒ":["袲"],"chǐ qǐ duǒ nuǒ":["袳"],"jiá qiā jié":["袷"],"bó mò":["袹"],"guī guà":["袿"],"liè liě":["裂"],"chéng chěng":["裎"],"jiē gé":["裓"],"dāo chóu":["裯"],"shang cháng":["裳"],"yuān gǔn":["裷"],"yǎn ān":["裺"],"tì xī":["裼"],"fù fú":["褔"],"chǔ zhǔ":["褚"],"tuì tùn":["褪"],"lǎi":["襰"],"yào yāo":["要"],"qín tán":["覃"],"jiàn xiàn":["見","见"],"piǎn":["覑","諞","谝","貵","𡎚"],"piē miè":["覕"],"yíng yǐng":["覮"],"qù qū":["覰","覷","觑"],"jiàn biǎn":["覵"],"luó luǎn":["覶"],"zī zuǐ":["觜"],"huà xiè":["觟"],"jiě jiè xiè":["解","觧"],"xué hù":["觷"],"lì lù":["觻"],"tǎo":["討","讨"],"zhùn":["訰"],"zī zǐ":["訾"],"yí dài":["詒","诒"],"xiòng":["詗","诇"],"diào tiǎo":["誂"],"yí chǐ chì":["誃"],"lǎng làng":["誏"],"ēi éi ěi èi xī":["誒","诶"],"shuà":["誜"],"yǔ yù":["語","语","雨"],"shuō shuì yuè":["說","说"],"shuí shéi":["誰","谁"],"qū juè":["誳"],"chī lài":["誺"],"nì ná":["誽"],"diào tiáo":["調"],"pǐ bēi":["諀"],"jì jī":["諅"],"zé zuò zhǎ cuò":["諎"],"chù jí":["諔"],"háo xià":["諕"],"lùn lún":["論","论"],"shì dì":["諟"],"huà guā":["諣"],"xǐ shāi āi":["諰"],"nán nàn":["諵","難"],"miù":["謬","谬"],"zèn":["譖","谮"],"shí zhì":["識","识"],"juàn xuān":["讂"],"yí tuī":["讉"],"zhán":["讝"],"xǔ hǔ":["许"],"xiáng yáng":["详"],"tiáo diào zhōu":["调"],"chén shèn":["谌"],"mí mèi":["谜"],"màn mán":["谩"],"gǔ yù":["谷"],"huō huò huá":["豁"],"zhì zhài":["豸"],"huān huán":["貆"],"kěn kūn":["貇"],"mò hé":["貈"],"mò hé háo":["貉"],"jù lóu":["貗"],"zé zhài":["責","责"],"dài tè":["貸"],"bì bēn":["賁"],"jiǎ gǔ jià":["賈"],"xiōng mín":["賯"],"càng":["賶"],"zhuàn zuàn":["賺","赚"],"wàn zhuàn":["贃"],"gàn gòng zhuàng":["贛"],"yuán yùn":["贠"],"bēn bì":["贲"],"jiǎ gǔ":["贾"],"zǒu":["走","赱","鯐"],"dié tú":["趃"],"jū qiè":["趄"],"qū cù":["趋","趨"],"jí jié":["趌"],"guā huó":["趏"],"què qì jí":["趞"],"tàng tāng":["趟"],"chuō zhuó":["趠"],"qù cù":["趣"],"yuè tì":["趯"],"bō bào":["趵"],"kuà wù":["趶"],"guì jué":["趹"],"fāng fàng páng":["趽"],"páo bà":["跁"],"qí qǐ":["跂"],"jiàn chén":["跈"],"pǎo páo":["跑"],"diǎn diē tiē":["跕"],"jū jù qiè":["跙"],"bǒ":["跛"],"luò lì":["跞"],"dài duò duō chí":["跢"],"zhuǎi":["跩"],"bèng pián":["跰"],"tiào táo":["跳"],"shū chōu":["跾"],"liàng liáng":["踉"],"tà tā":["踏"],"chǎ":["蹅","鑔","镲"],"dí zhí":["蹢"],"dēng dèng":["蹬","鐙","镫"],"cèng":["蹭"],"dūn cún":["蹲"],"juě jué":["蹶"],"liāo":["蹽"],"xiè sǎ":["躠"],"tǐ":["躰","軆","骵"],"yà zhá gá":["轧","軋"],"xìn xiàn":["軐"],"fàn guǐ":["軓"],"zhuàn zhuǎn":["転"],"zhóu zhòu":["軸","轴"],"bú":["轐","醭","鳪"],"zhuǎn zhuàn zhuǎi":["转"],"zǎi zài":["载"],"niǎn zhǎn":["辗"],"biān bian":["边"],"dào biān":["辺"],"yǐ yí":["迆","迤","迱"],"guò guo guō":["过"],"wàng kuāng":["迋"],"hái huán":["还"],"zhè zhèi":["这"],"yuǎn yuàn":["远"],"zhì lì":["迣"],"zhù wǎng":["迬"],"zhuī duī":["追"],"shì kuò":["适"],"tòu":["透"],"tōng tòng":["通"],"guàng":["逛"],"dǎi dài":["逮"],"suì suí":["遂"],"tí dì":["遆"],"yí wèi":["遗"],"shì dí zhé":["適"],"cà":["遪"],"huán hái":["還"],"lí chí":["邌"],"kàng háng":["邟"],"nà nèi nā":["那"],"xié yá yé yú xú":["邪"],"gāi hái":["郂"],"huán xún":["郇"],"chī xī":["郗"],"hǎo":["郝"],"lì zhí":["郦"],"xiáo ǎo":["郩"],"dōu dū":["都"],"liǎo":["曢","鄝","镽"],"zàn cuán cuó":["酂","酇"],"dīng dǐng":["酊"],"cù zuò":["酢"],"fā pō":["酦"],"shāi shī":["酾"],"niàng":["酿","醸"],"qiú chōu":["醔"],"pō fā":["醗","醱"],"chǎn chěn":["醦"],"yàn liǎn xiān":["醶"],"niàng niáng":["釀"],"lǐ li":["里"],"lí xǐ xī":["釐"],"liǎo liào":["釕"],"dīng dìng":["釘","钉"],"qiǎo jiǎo":["釥"],"yú huá":["釪"],"huá wū":["釫"],"rì rèn jiàn":["釰","釼"],"dì dài":["釱"],"pī zhāo":["釽"],"yá yé":["釾"],"bǎ pá":["鈀","钯"],"tā tuó":["鉈","铊"],"běi":["鉳"],"bǐng píng":["鉼"],"hā kē":["鉿","铪"],"chòng":["銃","铳"],"xiǎng jiōng":["銄"],"yù sì":["銉"],"xù huì":["銊"],"rén rěn":["銋"],"shàn shuò":["銏"],"chì lì":["銐"],"xiǎn xǐ":["銑","铣"],"hóu xiàng":["銗"],"diào tiáo yáo":["銚"],"xiān kuò tiǎn guā":["銛","銽","铦"],"zhé niè":["銸"],"zhōng yōng":["銿"],"tōu tù dòu":["鋀"],"méi méng":["鋂"],"wàn jiǎn":["鋄","鎫"],"tǐng dìng":["鋌","铤"],"juān jiān cuān":["鋑"],"sī tuó":["鋖"],"juān xuān juàn":["鋗"],"wú huá wū":["鋘"],"zhuó chuò":["鋜"],"xíng xìng jīng":["鋞"],"jū jú":["鋦","锔"],"zuì niè":["鋷"],"yuān yuǎn wǎn wān":["鋺"],"gāng gàng":["鋼","钢"],"zhuī":["錐","锥","騅","骓","鵻"],"ā":["錒","锕"],"cuō chā":["鎈"],"suǒ sè":["鎍"],"yáo zú":["鎐"],"yè tà gé":["鎑"],"qiāng chēng":["鎗"],"gé lì":["鎘","镉","鬲"],"bī pī bì":["鎞"],"gǎo hào":["鎬"],"zú chuò":["鏃"],"xiū xiù":["鏅"],"shòu sōu":["鏉"],"dí dī":["鏑","镝"],"qiāo sǎn càn":["鏒"],"lù áo":["鏕"],"tāng táng":["鏜"],"jiàn zàn":["鏩"],"huì suì ruì":["鏸"],"qiǎng qiāng":["鏹","镪"],"sǎn xiàn sà":["鏾"],"jiǎn jiàn":["鐧","锏"],"dāng chēng":["鐺","铛"],"zuān zuàn":["鑽"],"sà xì":["钑"],"yào yuè":["钥"],"tǒu dǒu":["钭"],"zuàn zuān":["钻"],"qiān yán":["铅"],"pí pī":["铍"],"yáo diào tiáo":["铫"],"tāng tàng":["铴"],"pù pū":["铺"],"tán xiān":["锬"],"liù liú":["镏"],"hào gǎo":["镐"],"táng tāng":["镗"],"tán chán xín":["镡"],"huò shǎn":["閄"],"hàn bì":["閈","闬"],"kāng kàng":["閌","闶"],"xián jiàn jiān jiǎn":["閒"],"xiā xiǎ":["閕"],"xiǎ kě":["閜"],"biàn guān":["閞"],"hé gé":["閤","颌"],"hòng xiàng":["閧"],"sē xī":["閪"],"tíng tǐng":["閮"],"è yān":["閼","阏"],"hòng juǎn xiàng":["闂"],"bǎn pàn":["闆"],"dū shé":["闍","阇"],"què quē":["闕"],"tāng táng chāng":["闛"],"kàn hǎn":["闞","阚"],"xì sè tà":["闟"],"mēn mèn":["闷"],"quē què":["阙"],"yán diàn":["阽"],"ā ē":["阿"],"bēi pō pí":["陂"],"yàn yǎn":["隁"],"yú yáo shù":["隃"],"lóng lōng":["隆"],"duì zhuì":["隊"],"suí duò":["隋"],"gāi qí ái":["隑"],"huī duò":["隓","隳"],"wěi kuí":["隗"],"lì dài":["隸"],"zhuī cuī wéi":["隹"],"hè hú":["隺","鶮"],"jùn juàn":["隽","雋"],"nán nàn nuó":["难"],"què qiāo qiǎo":["雀"],"guàn huán":["雚"],"guī xī":["雟"],"sè xí":["雭"],"án":["雸"],"wù méng":["雺"],"tèng":["霯"],"lù lòu":["露"],"mái":["霾"],"jìng liàng":["靚"],"gé jí":["革"],"bǎ":["靶"],"yāng yàng":["鞅"],"gé tà sǎ":["鞈"],"biān yìng":["鞕"],"qiào shāo":["鞘"],"juān xuān":["鞙"],"shàng zhǎng":["鞝"],"pí bǐng bì bēi":["鞞"],la:["鞡"],"xiè dié":["鞢"],"ēng":["鞥"],"móu mù":["鞪"],"bì bǐng":["鞸"],"mèi wà":["韎"],"rǒu":["韖"],"shè xiè":["韘"],"yùn wēn":["韫"],"dùn dú":["頓","顿"],"duǐ":["頧"],"luō":["頱"],"bīn pín":["頻"],"yóng":["顒","颙","鰫"],"mān":["顢","颟"],"jǐng gěng":["颈"],"jié xié jiá":["颉"],"kē ké":["颏"],"pín bīn":["频"],"chàn zhàn":["颤"],"fēng fěng":["風","风"],"biāo diū":["颩"],"bá fú":["颰"],"sāo sōu":["颾"],"liù liáo":["飂"],"shí sì yì":["食"],"yǎng juàn":["飬"],"zhù tǒu":["飳"],"yí sì":["飴"],"zuò zé zhā":["飵"],"tiè":["飻","餮"],"xiǎng náng":["饟"],"táng xíng":["饧"],"gē le":["饹"],"chā zha":["馇"],"náng nǎng":["馕"],"yūn wò":["馧"],"zhī shì":["馶"],"xìn jìn":["馸"],"kuài jué":["駃"],"zǎng":["駔","驵"],"tái dài":["駘"],"xún xuān":["駨"],"liáng láng":["駺"],"piàn":["騗","騙","骗","魸"],"dài tái":["骀"],"sāo sǎo":["骚"],"gǔ gū":["骨"],"bèi mó":["骳"],"xiāo qiāo":["骹"],"bǎng pǎng":["髈"],"bó jué":["髉"],"bì pǒ":["髲"],"máo méng":["髳"],"kuò yuè":["髺"],"bā bà":["魞","鲃"],"jì cǐ":["鮆"],"bó bà":["鮊"],"zhǎ zhà":["鮓","鲊"],"chóu dài":["鮘"],"luò gé":["鮥"],"guī xié wā kuí":["鮭"],"xiān xiǎn":["鮮","鲜"],"pū bū":["鯆"],"yì sī":["鯣"],"bà bó":["鲌"],"guī xié":["鲑"],"sāi xǐ":["鳃"],"niǎo diǎo":["鳥"],"diāo zhāo":["鳭"],"gān hàn yàn":["鳱"],"fū guī":["鳺"],"jiān qiān zhān":["鳽"],"hé jiè":["鶡"],"piān biǎn":["鶣"],"chuàn zhì":["鶨"],"cāng qiāng":["鶬"],"sǔn xùn":["鶽"],"biāo páo":["麃"],"zhù cū":["麆"],"jūn qún":["麇","麕"],chi:["麶"],"mó me":["麼"],"mó me ma":["麽"],"mí mǒ":["麿"],"dàn shèn":["黮"],"zhěn yān":["黰"],"dǎn zhǎn":["黵"],"miǎn mǐn měng":["黾"],"hōu":["齁"],"nàng":["齉"],"qí jì zī zhāi":["齐"],"yín kěn yǎn":["龂"],"yín kěn":["龈"],"gōng wò":["龏"],"guī jūn qiū":["龜","龟"],"kuí wā":["䖯"],"lōu":["䁖"],"ōu qū":["𫭟"],"lóu lǘ":["𦝼"],"gǎ gā gá":["嘎"],"wā guà":["坬"],"zhǐ dǐ":["茋"],"gǒng hóng":["硔"],"yáo xiào":["滧"]},no=new Oi;Object.keys(eo).forEach(e=>{const n=eo[e];for(let t of n)no.set(t,e)});const to=new Oi,so=(new Oi,{"南宫":"nán gōng","第五":"dì wǔ","万俟":"mò qí","司马":"sī mǎ","上官":"shàng guān","欧阳":"ōu yáng","夏侯":"xià hóu","诸葛":"zhū gě","闻人":"wén rén","东方":"dōng fāng","赫连":"hè lián","皇甫":"huáng fǔ","尉迟":"yù chí","公羊":"gōng yáng","澹台":"tán tái","公冶":"gōng yě","宗政":"zōng zhèng","濮阳":"pú yáng","淳于":"chún yú","太叔":"tài shū","申屠":"shēn tú","公孙":"gōng sūn","仲孙":"zhòng sūn","轩辕":"xuān yuán","令狐":"líng hú","钟离":"zhōng lí","宇文":"yǔ wén","长孙":"zhǎng sūn","慕容":"mù róng","鲜于":"xiān yú","闾丘":"lǘ qiū","司徒":"sī tú","司空":"sī kōng","亓官":"qí guān","司寇":"sī kòu","仉督":"zhǎng dū","子车":"zǐ jū","颛孙":"zhuān sūn","端木":"duān mù","巫马":"wū mǎ","公西":"gōng xī","漆雕":"qī diāo","乐正":"yuè zhèng","壤驷":"rǎng sì","公良":"gōng liáng","拓跋":"tuò bá","夹谷":"jiá gǔ","宰父":"zǎi fǔ","榖梁":"gǔ liáng","段干":"duàn gān","百里":"bǎi lǐ","东郭":"dōng guō","南门":"nán mén","呼延":"hū yán","羊舌":"yáng shé","梁丘":"liáng qiū","左丘":"zuǒ qiū","东门":"dōng mén","西门":"xī mén","句龙":"gōu lóng","毌丘":"guàn qiū","赵":"zhào","钱":"qián","孙":"sūn","李":"lǐ","周":"zhōu","吴":"wú","郑":"zhèng","王":"wáng","冯":"féng","陈":"chén","褚":"chǔ","卫":"wèi","蒋":"jiǎng","沈":"shěn","韩":"hán","杨":"yáng","朱":"zhū","秦":"qín","尤":"yóu","许":"xǔ","何":"hé","吕":"lǚ","施":"shī","张":"zhāng","孔":"kǒng","曹":"cáo","严":"yán","华":"huà","金":"jīn","魏":"wèi","陶":"táo","姜":"jiāng","戚":"qī","谢":"xiè","邹":"zōu","喻":"yù","柏":"bǎi","水":"shuǐ","窦":"dòu","章":"zhāng","云":"yún","苏":"sū","潘":"pān","葛":"gě","奚":"xī","范":"fàn","彭":"péng","郎":"láng","鲁":"lǔ","韦":"wéi","昌":"chāng","马":"mǎ","苗":"miáo","凤":"fèng","花":"huā","方":"fāng","俞":"yú","任":"rén","袁":"yuán","柳":"liǔ","酆":"fēng","鲍":"bào","史":"shǐ","唐":"táng","费":"fèi","廉":"lián","岑":"cén","薛":"xuē","雷":"léi","贺":"hè","倪":"ní","汤":"tāng","滕":"téng","殷":"yīn","罗":"luó","毕":"bì","郝":"hǎo","邬":"wū","安":"ān","常":"cháng","乐":"yuè","于":"yú","时":"shí","傅":"fù","皮":"pí","卞":"biàn","齐":"qí","康":"kāng","伍":"wǔ","余":"yú","元":"yuán","卜":"bǔ","顾":"gù","孟":"mèng","平":"píng","黄":"huáng","和":"hé","穆":"mù","萧":"xiāo","尹":"yǐn","姚":"yáo","邵":"shào","湛":"zhàn","汪":"wāng","祁":"qí","毛":"máo","禹":"yǔ","狄":"dí","米":"mǐ","贝":"bèi","明":"míng","臧":"zāng","计":"jì","伏":"fú","成":"chéng","戴":"dài","谈":"tán","宋":"sòng","茅":"máo","庞":"páng","熊":"xióng","纪":"jǐ","舒":"shū","屈":"qū","项":"xiàng","祝":"zhù","董":"dǒng","梁":"liáng","杜":"dù","阮":"ruǎn","蓝":"lán","闵":"mǐn","席":"xí","季":"jì","麻":"má","强":"qiáng","贾":"jiǎ","路":"lù","娄":"lóu","危":"wēi","江":"jiāng","童":"tóng","颜":"yán","郭":"guō","梅":"méi","盛":"shèng","林":"lín","刁":"diāo","钟":"zhōng","徐":"xú","邱":"qiū","骆":"luò","高":"gāo","夏":"xià","蔡":"cài","田":"tián","樊":"fán","胡":"hú","凌":"líng","霍":"huò","虞":"yú","万":"wàn","支":"zhī","柯":"kē","昝":"zǎn","管":"guǎn","卢":"lú","莫":"mò","经":"jīng","房":"fáng","裘":"qiú","缪":"miào","干":"gān","解":"xiè","应":"yīng","宗":"zōng","丁":"dīng","宣":"xuān","贲":"bēn","邓":"dèng","郁":"yù","单":"shàn","杭":"háng","洪":"hóng","包":"bāo","诸":"zhū","左":"zuǒ","石":"shí","崔":"cuī","吉":"jí","钮":"niǔ","龚":"gōng","程":"chéng","嵇":"jī","邢":"xíng","滑":"huá","裴":"péi","陆":"lù","荣":"róng","翁":"wēng","荀":"xún","羊":"yáng","於":"yū","惠":"huì","甄":"zhēn","曲":"qū","家":"jiā","封":"fēng","芮":"ruì","羿":"yì","储":"chǔ","靳":"jìn","汲":"jí","邴":"bǐng","糜":"mí","松":"sōng","井":"jǐng","段":"duàn","富":"fù","巫":"wū","乌":"wū","焦":"jiāo","巴":"bā","弓":"gōng","牧":"mù","隗":"wěi","山":"shān","谷":"gǔ","车":"chē","侯":"hóu","宓":"mì","蓬":"péng","全":"quán","郗":"xī","班":"bān","仰":"yǎng","秋":"qiū","仲":"zhòng","伊":"yī","宫":"gōng","宁":"nìng","仇":"qiú","栾":"luán","暴":"bào","甘":"gān","钭":"tǒu","厉":"lì","戎":"róng","祖":"zǔ","武":"wǔ","符":"fú","刘":"liú","景":"jǐng","詹":"zhān","束":"shù","龙":"lóng","叶":"yè","幸":"xìng","司":"sī","韶":"sháo","郜":"gào","黎":"lí","蓟":"jì","薄":"bó","印":"yìn","宿":"sù","白":"bái","怀":"huái","蒲":"pú","邰":"tái","从":"cóng","鄂":"è","索":"suǒ","咸":"xián","籍":"jí","赖":"lài","卓":"zhuó","蔺":"lìn","屠":"tú","蒙":"méng","池":"chí","乔":"qiáo","阴":"yīn","鬱":"yù","胥":"xū","能":"nài","苍":"cāng","双":"shuāng","闻":"wén","莘":"shēn","党":"dǎng","翟":"zhái","谭":"tán","贡":"gòng","劳":"láo","逄":"páng","姬":"jī","申":"shēn","扶":"fú","堵":"dǔ","冉":"rǎn","宰":"zǎi","郦":"lì","雍":"yōng","郤":"xì","璩":"qú","桑":"sāng","桂":"guì","濮":"pú","牛":"niú","寿":"shòu","通":"tōng","边":"biān","扈":"hù","燕":"yān","冀":"jì","郏":"jiá","浦":"pǔ","尚":"shàng","农":"nóng","温":"wēn","别":"bié","庄":"zhuāng","晏":"yàn","柴":"chái","瞿":"qú","阎":"yán","充":"chōng","慕":"mù","连":"lián","茹":"rú","习":"xí","宦":"huàn","艾":"ài","鱼":"yú","容":"róng","向":"xiàng","古":"gǔ","易":"yì","慎":"shèn","戈":"gē","廖":"liào","庾":"yǔ","终":"zhōng","暨":"jì","居":"jū","衡":"héng","步":"bù","都":"dū","耿":"gěng","满":"mǎn","弘":"hóng","匡":"kuāng","国":"guó","文":"wén","寇":"kòu","广":"guǎng","禄":"lù","阙":"quē","东":"dōng","欧":"ōu","殳":"shū","沃":"wò","利":"lì","蔚":"wèi","越":"yuè","夔":"kuí","隆":"lóng","师":"shī","巩":"gǒng","厍":"shè","聂":"niè","晁":"cháo","勾":"gōu","敖":"áo","融":"róng","冷":"lěng","訾":"zī","辛":"xīn","阚":"kàn","那":"nā","简":"jiǎn","饶":"ráo","空":"kōng","曾":"zēng","母":"mǔ","沙":"shā","乜":"niè","养":"yǎng","鞠":"jū","须":"xū","丰":"fēng","巢":"cháo","关":"guān","蒯":"kuǎi","相":"xiàng","查":"zhā","后":"hòu","荆":"jīng","红":"hóng","游":"yóu","竺":"zhú","权":"quán","逯":"lù","盖":"gě","益":"yì","桓":"huán","公":"gōng","牟":"móu","哈":"hǎ","言":"yán","福":"fú","肖":"xiāo","区":"ōu","覃":"qín","朴":"piáo","繁":"pó","员":"yùn","句":"gōu","要":"yāo","过":"guō","钻":"zuān","谌":"chén","折":"shé","召":"shào","郄":"qiè","撒":"sǎ","甯":"nìng","六":"lù","啜":"chuài","行":"xíng"}),io=Object.keys(so).map(e=>({zh:e,pinyin:so[e],probability:1+Ri(e),length:Ri(e),priority:10,dict:Symbol("surname")})),oo=(e,n="off")=>{let t=no.get(e)?no.get(e).split(" "):[];if(to.get(e))t=to.get(e).split(" ");else if("off"!==n){const n=so[e];n&&(t=[n].concat(t.filter(e=>e!==n)))}return t},ao={"这个":"zhè ge","成为":"chéng wéi","认为":"rèn wéi","作为":"zuò wéi","部分":"bù fen","要求":"yāo qiú","应该":"yīng gāi","增长":"zēng zhǎng","提供":"tí gōng","觉得":"jué de","任务":"rèn wu","那个":"nà ge","称为":"chēng wéi","为主":"wéi zhǔ","了解":"liǎo jiě","处理":"chǔ lǐ","皇上":"huáng shang","只要":"zhǐ yào","大量":"dà liàng","力量":"lì liàng","几乎":"jī hū","干部":"gàn bù","目的":"mù dì","行为":"xíng wéi","只见":"zhǐ jiàn","认识":"rèn shi","市长":"shì zhǎng","师父":"shī fu","调查":"diào chá","重新":"chóng xīn","分为":"fēn wéi","知识":"zhī shi","导弹":"dǎo dàn","质量":"zhì liàng","行款":"háng kuǎn","行列":"háng liè","行话":"háng huà","行业":"háng yè","隔行":"gé háng","在行":"zài háng","行家":"háng jia","内行":"nèi háng","外行":"wài háng","同行":"tóng háng","本行":"běn háng","行伍":"háng wǔ","洋行":"yáng háng","银行":"yín háng","商行":"shāng háng","支行":"zhī háng","总行":"zǒng háng","行情":"háng qíng","懂行":"dǒng háng","行规":"háng guī","行当":"háng dang","行货":"háng huò","太行":"tài háng","入行":"rù háng","中行":"zhōng háng","农行":"nóng háng","工行":"gōng háng","建行":"jiàn háng","各行":"gè háng","行号":"háng hào","行高":"háng gāo","行首":"háng shǒu","行尾":"háng wěi","行末":"háng mò","行长":"háng zhǎng","行距":"háng jù","换行":"huàn háng","行会":"háng huì","行辈":"háng bèi","行道":"háng dào","道行":"dào heng","参与":"cān yù","充分":"chōng fèn","尽管":"jǐn guǎn","生长":"shēng zhǎng","数量":"shù liàng","应当":"yīng dāng","院长":"yuàn zhǎng","强调":"qiáng diào","只能":"zhǐ néng","音乐":"yīn yuè","以为":"yǐ wéi","处于":"chǔ yú","部长":"bù zhǎng","蒙古":"měng gǔ","只有":"zhǐ yǒu","适当":"shì dàng","只好":"zhǐ hǎo","成长":"chéng zhǎng","高兴":"gāo xìng","不了":"bù liǎo","产量":"chǎn liàng","胖子":"pàng zi","显得":"xiǎn de","只是":"zhǐ shì","似的":"shì de","率领":"shuài lǐng","改为":"gǎi wéi","不禁":"bù jīn","成分":"chéng fèn","答应":"dā ying","少年":"shào nián","兴趣":"xìng qù","太监":"tài jian","休息":"xiū xi","校长":"xiào zhǎng","更新":"gēng xīn","合同":"hé tong","喝道":"hè dào","重庆":"chóng qìng","重建":"chóng jiàn","使得":"shǐ de","审查":"shěn chá","累计":"lěi jì","给予":"jǐ yǔ","极为":"jí wéi","冠军":"guàn jūn","仿佛":"fǎng fú","头发":"tóu fa","投降":"tóu xiáng","家长":"jiā zhǎng","仔细":"zǐ xì","要是":"yào shi","将领":"jiàng lǐng","含量":"hán liàng","更为":"gèng wéi","积累":"jī lěi","地处":"dì chǔ","县长":"xiàn zhǎng","少女":"shào nǚ","路上":"lù shang","只怕":"zhǐ pà","能量":"néng liàng","储量":"chǔ liàng","供应":"gōng yìng","挑战":"tiǎo zhàn","西藏":"xī zàng","记得":"jì de","总量":"zǒng liàng","当真":"dàng zhēn","将士":"jiàng shì","差别":"chā bié","较为":"jiào wéi","长老":"zhǎng lǎo","大夫":"dài fu","差异":"chā yì","懂得":"dǒng de","尽量":"jǐn liàng","模样":"mú yàng","的确":"dí què","为首":"wéi shǒu","便宜":"pián yi","更名":"gēng míng","石头":"shí tou","州长":"zhōu zhǎng","为止":"wéi zhǐ","漂亮":"piào liang","炮弹":"pào dàn","藏族":"zàng zú","角色":"jué sè","当作":"dàng zuò","尽快":"jǐn kuài","人为":"rén wéi","重复":"chóng fù","胡同":"hú tòng","差距":"chā jù","弟兄":"dì xiong","大将":"dà jiàng","睡觉":"shuì jiào","一觉":"yí jiào","团长":"tuán zhǎng","队长":"duì zhǎng","区长":"qū zhǎng","难得":"nán dé","丫头":"yā tou","会长":"huì zhǎng","弟弟":"dì di","王爷":"wáng ye","重量":"zhòng liàng","誉为":"yù wéi","家伙":"jiā huo","华山":"huà shān","椅子":"yǐ zi","流量":"liú liàng","长大":"zhǎng dà","勉强":"miǎn qiǎng","会计":"kuài jì","过分":"guò fèn","济南":"jǐ nán","调动":"diào dòng","燕京":"yān jīng","少将":"shào jiàng","中毒":"zhòng dú","晓得":"xiǎo de","变更":"biàn gēng","打更":"dǎ gēng","认得":"rèn de","苹果":"píng guǒ","念头":"niàn tou","挣扎":"zhēng zhá","三藏":"sān zàng","剥削":"bō xuē","丞相":"chéng xiàng","少量":"shǎo liàng","寻思":"xún si","夺得":"duó dé","干线":"gàn xiàn","呼吁":"hū yù","处罚":"chǔ fá","长官":"zhǎng guān","柏林":"bó lín","亲戚":"qīn qi","身分":"shēn fèn","胳膊":"gē bo","着手":"zhuó shǒu","炸弹":"zhà dàn","咳嗽":"ké sou","叶子":"yè zi","外长":"wài zhǎng","供给":"gōng jǐ","师长":"shī zhǎng","变量":"biàn liàng","应有":"yīng yǒu","下载":"xià zài","乐器":"yuè qì","间接":"jiàn jiē","底下":"dǐ xià","打扮":"dǎ bàn","子弹":"zǐ dàn","弹药":"dàn yào","热量":"rè liàng","削弱":"xuē ruò","骨干":"gǔ gàn","容量":"róng liàng","模糊":"mó hu","转动":"zhuàn dòng","称呼":"chēng hu","科长":"kē zhǎng","处置":"chǔ zhì","着重":"zhuó zhòng","着急":"zháo jí","强迫":"qiǎng pò","庭长":"tíng zhǎng","首相":"shǒu xiàng","喇嘛":"lǎ ma","镇长":"zhèn zhǎng","只管":"zhǐ guǎn","重重":"chóng chóng","免得":"miǎn de","着实":"zhuó shí","度假":"dù jià","真相":"zhēn xiàng","相貌":"xiàng mào","处分":"chǔ fèn","委屈":"wěi qu","为期":"wéi qī","伯伯":"bó bo","伯子":"bǎi zi","圈子":"quān zi","见识":"jiàn shi","笼罩":"lǒng zhào","与会":"yù huì","都督":"dū du","都市":"dū shì","成都":"chéng dū","首都":"shǒu dū","帝都":"dì dū","王都":"wáng dū","东都":"dōng dū","都护":"dū hù","都城":"dū chéng","建都":"jiàn dū","迁都":"qiān dū","故都":"gù dū","定都":"dìng dū","中都":"zhōng dū","六安":"lù ān","宰相":"zǎi xiàng","较量":"jiào liàng","对称":"duì chèn","总长":"zǒng zhǎng","相公":"xiàng gong","空白":"kòng bái","打量":"dǎ liang","水分":"shuǐ fèn","舌头":"shé tou","没收":"mò shōu","行李":"xíng li","判处":"pàn chǔ","散文":"sǎn wén","处境":"chǔ jìng","孙子":"sūn zi","拳头":"quán tou","打发":"dǎ fā","组长":"zǔ zhǎng","骨头":"gǔ tou","宁可":"nìng kě","更换":"gēng huàn","薄弱":"bó ruò","还原":"huán yuán","重修":"chóng xiū","重来":"chóng lái","只顾":"zhǐ gù","爱好":"ài hào","馒头":"mán tou","军长":"jūn zhǎng","首长":"shǒu zhǎng","厂长":"chǎng zhǎng","司长":"sī zhǎng","长子":"zhǎng zǐ","强劲":"qiáng jìng","恰当":"qià dàng","头儿":"tóu er","站长":"zhàn zhǎng","折腾":"zhē teng","相处":"xiāng chǔ","统率":"tǒng shuài","中将":"zhōng jiàng","命中":"mìng zhòng","名将":"míng jiàng","木头":"mù tou","动弹":"dòng tan","地壳":"dì qiào","干活":"gàn huó","少爷":"shào ye","水量":"shuǐ liàng","补给":"bǔ jǐ","尾巴":"wěi ba","来得":"lái de","好奇":"hào qí","钥匙":"yào shi","当做":"dàng zuò","沉着":"chén zhuó","哑巴":"yǎ ba","车子":"chē zi","上将":"shàng jiàng","恶心":"ě xīn","担子":"dàn zi","应届":"yīng jiè","主角":"zhǔ jué","运转":"yùn zhuǎn","兄长":"xiōng zhǎng","格式":"gé shì","正月":"zhēng yuè","营长":"yíng zhǎng","当成":"dàng chéng","女婿":"nǚ xu","咽喉":"yān hóu","重阳":"chóng yáng","化为":"huà wéi","吐蕃":"tǔ bō","钻进":"zuān jìn","乐队":"yuè duì","亮相":"liàng xiàng","被子":"bèi zi","舍得":"shě de","杉木":"shā mù","击中":"jī zhòng","排长":"pái zhǎng","假期":"jià qī","分量":"fèn liàng","数次":"shù cì","提防":"dī fáng","吆喝":"yāo he","查处":"chá chǔ","量子":"liàng zǐ","里头":"lǐ tou","调研":"diào yán","伺候":"cì hou","重申":"chóng shēn","枕头":"zhěn tou","拚命":"pīn mìng","社长":"shè zhǎng","归还":"guī huán","批量":"pī liàng","畜牧":"xù mù","点着":"diǎn zháo","甚为":"shèn wéi","小将":"xiǎo jiàng","着眼":"zhuó yǎn","处死":"chǔ sǐ","厌恶":"yàn wù","鼓乐":"gǔ yuè","树干":"shù gàn","秘鲁":"bì lǔ","大方":"dà fāng","外头":"wài tou","班长":"bān zhǎng","星宿":"xīng xiù","宁愿":"nìng yuàn","钦差":"qīn chāi","为数":"wéi shù","勾当":"gòu dàng","削减":"xuē jiǎn","间谍":"jiàn dié","埋怨":"mán yuàn","结实":"jiē shi","计量":"jì liáng","淹没":"yān mò","村长":"cūn zhǎng","连长":"lián zhǎng","自给":"zì jǐ","武将":"wǔ jiàng","温差":"wēn chā","直奔":"zhí bèn","供求":"gōng qiú","剂量":"jì liàng","道长":"dào zhǎng","泄露":"xiè lòu","王八":"wáng ba","切割":"qiē gē","间隔":"jiàn gé","一晃":"yì huǎng","长假":"cháng jià","令狐":"líng hú","为害":"wéi hài","句子":"jù zi","偿还":"cháng huán","疙瘩":"gē da","燕山":"yān shān","堵塞":"dǔ sè","夺冠":"duó guàn","扎实":"zhā shi","电荷":"diàn hè","看守":"kān shǒu","复辟":"fù bì","郁闷":"yù mèn","尽早":"jǐn zǎo","切断":"qiē duàn","指头":"zhǐ tou","为生":"wéi shēng","畜生":"chù sheng","切除":"qiē chú","着力":"zhuó lì","着想":"zhuó xiǎng","级差":"jí chā","投奔":"tóu bèn","棍子":"gùn zi","含糊":"hán hu","少妇":"shào fù","兴致":"xìng zhì","纳闷":"nà mèn","干流":"gàn liú","卷起":"juǎn qǐ","扇子":"shàn zi","更改":"gēng gǎi","笼络":"lǒng luò","喇叭":"lǎ ba","载荷":"zài hè","妥当":"tuǒ dàng","为难":"wéi nán","着陆":"zhuó lù","燕子":"yàn zi","干吗":"gàn má","白发":"bái fà","总得":"zǒng děi","夹击":"jiā jī","曝光":"bào guāng","曲调":"qǔ diào","相机":"xiàng jī","叫化":"jiào huà","角逐":"jué zhú","啊哟":"ā yō","载重":"zài zhòng","长辈":"zhǎng bèi","出差":"chū chāi","垛口":"duǒ kǒu","撇开":"piē kāi","厅长":"tīng zhǎng","组分":"zǔ fèn","误差":"wù chā","家当":"jiā dàng","传记":"zhuàn jì","个子":"gè zi","铺设":"pū shè","干事":"gàn shì","杆菌":"gǎn jūn","定量":"dìng liàng","运载":"yùn zài","会儿":"huì er","酋长":"qiú zhǎng","重返":"chóng fǎn","差额":"chā é","露面":"lòu miàn","钻研":"zuān yán","大城":"dài chéng","上当":"shàng dàng","销量":"xiāo liàng","作坊":"zuō fang","照相":"zhào xiàng","哎呀":"āi yā","调集":"diào jí","看中":"kàn zhòng","议长":"yì zhǎng","风筝":"fēng zheng","辟邪":"bì xié","空隙":"kòng xì","更迭":"gēng dié","偏差":"piān chā","声调":"shēng diào","适量":"shì liàng","屯子":"tún zi","无量":"wú liàng","空地":"kòng dì","调度":"diào dù","散射":"sǎn shè","创伤":"chuāng shāng","海参":"hǎi shēn","满载":"mǎn zài","重叠":"chóng dié","落差":"luò chā","单调":"dān diào","老将":"lǎo jiàng","人参":"rén shēn","间断":"jiàn duàn","重现":"chóng xiàn","夹杂":"jiā zá","调用":"diào yòng","萝卜":"luó bo","附着":"fù zhuó","应声":"yìng shēng","主将":"zhǔ jiàng","罪过":"zuì guo","咀嚼":"jǔ jué","为政":"wéi zhèng","过量":"guò liàng","乐曲":"yuè qǔ","负荷":"fù hè","枪弹":"qiāng dàn","悄然":"qiǎo rán","处方":"chǔ fāng","悄声":"qiǎo shēng","曲子":"qǔ zi","情调":"qíng diào","挑衅":"tiǎo xìn","代为":"dài wéi","了结":"liǎo jié","打中":"dǎ zhòng","酒吧":"jiǔ bā","懒得":"lǎn de","增量":"zēng liàng","衣着":"yī zhuó","部将":"bù jiàng","要塞":"yào sài","茶几":"chá jī","杠杆":"gàng gǎn","出没":"chū mò","鲜有":"xiǎn yǒu","间隙":"jiàn xì","重担":"zhòng dàn","重演":"chóng yǎn","重试":"chóng shì","应酬":"yìng chou","只当":"zhǐ dāng","毋宁":"wú nìng","包扎":"bāo zā","前头":"qián tou","卷烟":"juǎn yān","非得":"fēi děi","弹道":"dàn dào","杆子":"gān zi","门将":"mén jiàng","后头":"hòu tou","喝彩":"hè cǎi","暖和":"nuǎn huo","累积":"lěi jī","调遣":"diào qiǎn","倔强":"jué jiàng","宝藏":"bǎo zàng","丧事":"sāng shì","约莫":"yuē mo","纤夫":"qiàn fū","更替":"gēng tì","装载":"zhuāng zài","背包":"bēi bāo","帖子":"tiě zi","松散":"sōng sǎn","呼喝":"hū hè","可恶":"kě wù","自转":"zì zhuàn","供电":"gōng diàn","反省":"fǎn xǐng","坦率":"tǎn shuài","苏打":"sū dá","本分":"běn fèn","落得":"luò de","鄙薄":"bǐ bó","相间":"xiāng jiàn","单薄":"dān bó","混蛋":"hún dàn","贞观":"zhēn guān","附和":"fù hè","能耐":"néng nài","吓唬":"xià hu","未了":"wèi liǎo","引着":"yǐn zháo","抽调":"chōu diào","沙子":"shā zi","席卷":"xí juǎn","标的":"biāo dì","别扭":"biè niu","思量":"sī liang","喝采":"hè cǎi","论语":"lún yǔ","盖子":"gài zi","分外":"fèn wài","弄堂":"lòng táng","乐舞":"yuè wǔ","雨量":"yǔ liàng","毛发":"máo fà","差遣":"chāi qiǎn","背负":"bēi fù","转速":"zhuàn sù","声乐":"shēng yuè","夹攻":"jiā gōng","供水":"gōng shuǐ","主干":"zhǔ gàn","惩处":"chéng chǔ","长相":"zhǎng xiàng","公差":"gōng chāi","榴弹":"liú dàn","省得":"shěng de","条子":"tiáo zi","重围":"chóng wéi","阻塞":"zǔ sè","劲风":"jìng fēng","纠葛":"jiū gé","颠簸":"diān bǒ","点中":"diǎn zhòng","重创":"zhòng chuāng","姥姥":"lǎo lao","迷糊":"mí hu","公家":"gōng jia","几率":"jī lǜ","苦闷":"kǔ mèn","度量":"dù liàng","差错":"chā cuò","暑假":"shǔ jià","参差":"cēn cī","搭载":"dā zài","助长":"zhù zhǎng","相称":"xiāng chèn","红晕":"hóng yùn","舍命":"shě mìng","喜好":"xǐ hào","列传":"liè zhuàn","劲敌":"jìng dí","蛤蟆":"há ma","请假":"qǐng jià","钉子":"dīng zi","沉没":"chén mò","高丽":"gāo lí","休假":"xiū jià","无为":"wú wéi","巴结":"bā jie","了得":"liǎo dé","变相":"biàn xiàng","核弹":"hé dàn","亲家":"qìng jia","承载":"chéng zài","喝问":"hè wèn","还击":"huán jī","交还":"jiāo huán","将令":"jiàng lìng","单于":"chán yú","空缺":"kòng quē","绿林":"lù lín","胆量":"dǎn liàng","执着":"zhí zhuó","低调":"dī diào","闭塞":"bì sè","轻薄":"qīng bó","得当":"dé dàng","占卜":"zhān bǔ","扫帚":"sào zhou","龟兹":"qiū cí","年长":"nián zhǎng","外传":"wài zhuàn","头子":"tóu zi","裁缝":"cái feng","礼乐":"lǐ yuè","血泊":"xuè pō","散乱":"sǎn luàn","动量":"dòng liàng","倒腾":"dǎo teng","取舍":"qǔ shě","咱家":"zán jiā","长发":"cháng fà","爪哇":"zhǎo wā","弹壳":"dàn ké","省悟":"xǐng wù","嚷嚷":"rāng rang","连累":"lián lèi","应得":"yīng dé","族长":"zú zhǎng","柜子":"guì zi","擂鼓":"léi gǔ","眩晕":"xuàn yùn","调配":"tiáo pèi","躯干":"qū gàn","差役":"chāi yì","坎坷":"kǎn kě","少儿":"shào ér","乐团":"yuè tuán","养分":"yǎng fèn","退还":"tuì huán","格调":"gé diào","语调":"yǔ diào","音调":"yīn diào","乐府":"yuè fǔ","古朴":"gǔ pǔ","打点":"dǎ diǎn","差使":"chāi shǐ","匀称":"yún chèn","瘦削":"shòu xuē","膏药":"gāo yao","吞没":"tūn mò","调任":"diào rèn","散居":"sǎn jū","上头":"shàng tóu","风靡":"fēng mǐ","放假":"fàng jià","估量":"gū liang","失当":"shī dàng","中弹":"zhòng dàn","妄为":"wàng wéi","长者":"zhǎng zhě","起哄":"qǐ hòng","末了":"mò liǎo","相声":"xiàng sheng","校正":"jiào zhèng","劝降":"quàn xiáng","矢量":"shǐ liàng","沉闷":"chén mèn","给与":"jǐ yǔ","解法":"jiě fǎ","塞外":"sài wài","将校":"jiàng xiào","嗜好":"shì hào","没落":"mò luò","朴刀":"pō dāo","片子":"piān zi","切削":"qiē xiāo","弹丸":"dàn wán","稀薄":"xī bó","亏得":"kuī dé","间歇":"jiàn xiē","翘首":"qiáo shǒu","色调":"sè diào","处决":"chǔ jué","表率":"biǎo shuài","尺子":"chǐ zi","招降":"zhāo xiáng","称职":"chèn zhí","斗篷":"dǒu peng","铺子":"pù zi","底子":"dǐ zi","负载":"fù zài","干警":"gàn jǐng","倒数":"dào shǔ","将官":"jiàng guān","锄头":"chú tou","归降":"guī xiáng","疟疾":"nüè ji","唠叨":"láo dao","限量":"xiàn liàng","屏息":"bǐng xī","重逢":"chóng féng","器乐":"qì yuè","氢弹":"qīng dàn","脖颈":"bó gěng","妃子":"fēi zi","处事":"chǔ shì","参量":"cān liàng","轻率":"qīng shuài","缥缈":"piāo miǎo","中奖":"zhòng jiǎng","才干":"cái gàn","施舍":"shī shě","卷子":"juàn zi","游说":"yóu shuì","巷子":"xiàng zi","膀胱":"páng guāng","切勿":"qiè wù","看管":"kān guǎn","风头":"fēng tou","精干":"jīng gàn","高差":"gāo chā","恐吓":"kǒng hè","扁担":"biǎn dàn","给养":"jǐ yǎng","格子":"gé zi","供需":"gōng xū","反差":"fǎn chā","飞弹":"fēi dàn","微薄":"wēi bó","发型":"fà xíng","即兴":"jí xìng","攒动":"cuán dòng","间或":"jiàn huò","浅薄":"qiǎn bó","乐章":"yuè zhāng","顺差":"shùn chā","调子":"diào zi","相位":"xiàng wèi","转子":"zhuàn zǐ","劲旅":"jìng lǚ","咔嚓":"kā chā","了事":"liǎo shì","转悠":"zhuàn you","当铺":"dàng pù","爪子":"zhuǎ zi","单子":"dān zi","好战":"hào zhàn","燕麦":"yàn mài","只许":"zhǐ xǔ","干练":"gàn liàn","女将":"nǚ jiàng","酒量":"jiǔ liàng","划船":"huá chuán","伎俩":"jì liǎng","挑拨":"tiǎo bō","少校":"shào xiào","着落":"zhuó luò","憎恶":"zēng wù","刻薄":"kè bó","要挟":"yāo xié","用处":"yòng chu","还手":"huán shǒu","模具":"mú jù","执著":"zhí zhuó","喝令":"hè lìng","保长":"bǎo zhǎng","吸着":"xī zhe","症结":"zhēng jié","公转":"gōng zhuàn","校勘":"jiào kān","重提":"chóng tí","扫兴":"sǎo xìng","铺盖":"pū gài","长史":"zhǎng shǐ","差价":"chā jià","压根":"yà gēn","怔住":"zhèng zhù","应允":"yīng yǔn","切入":"qiē rù","战将":"zhàn jiàng","年少":"nián shào","舍身":"shě shēn","执拗":"zhí niù","处世":"chǔ shì","中风":"zhòng fēng","等量":"děng liàng","放量":"fàng liàng","腔调":"qiāng diào","老少":"lǎo shào","没入":"mò rù","瓜葛":"guā gé","将帅":"jiàng shuài","车载":"chē zài","窝囊":"wō nang","长进":"zhǎng jìn","可汗":"kè hán","并州":"bīng zhōu","供销":"gōng xiāo","切片":"qiē piàn","差事":"chāi shì","知会":"zhī hui","鹰爪":"yīng zhǎo","处女":"chǔ nǚ","切磋":"qiē cuō","日头":"rì tou","押解":"yā jiè","滋长":"zī zhǎng","道观":"dào guàn","脚色":"jué sè","当量":"dāng liàng","婆家":"pó jia","缘分":"yuán fèn","空闲":"kòng xián","好色":"hào sè","怒喝":"nù hè","笼统":"lǒng tǒng","边塞":"biān sài","何曾":"hé céng","重合":"chóng hé","零散":"líng sǎn","轰隆":"hōng lōng","化子":"huà zi","内蒙":"nèi měng","数落":"shǔ luò","逆差":"nì chā","牟利":"móu lì","栅栏":"zhà lan","中标":"zhòng biāo","调档":"diào dàng","佝偻":"gōu lóu","场子":"chǎng zi","甲壳":"jiǎ qiào","重温":"chóng wēn","炮制":"páo zhì","返还":"fǎn huán","自传":"zì zhuàn","高调":"gāo diào","殷红":"yān hóng","固着":"gù zhuó","强求":"qiǎng qiú","本相":"běn xiàng","骄横":"jiāo hèng","草率":"cǎo shuài","气闷":"qì mèn","着色":"zhuó sè","宁肯":"nìng kěn","兴头":"xìng tou","拘泥":"jū nì","夹角":"jiā jiǎo","发髻":"fà jì","猛将":"měng jiàng","约摸":"yuē mo","拖累":"tuō lěi","呢绒":"ní róng","钻探":"zuān tàn","夹层":"jiā céng","落魄":"luò pò","巷道":"hàng dào","运量":"yùn liàng","解闷":"jiě mèn","空儿":"kòng er","估摸":"gū mo","好客":"hào kè","钻孔":"zuān kǒng","糊弄":"hù nòng","荥阳":"xíng yáng","烦闷":"fán mèn","仓卒":"cāng cù","分叉":"fēn chà","厂子":"chǎng zi","小调":"xiǎo diào","少阳":"shào yáng","受降":"shòu xiáng","染坊":"rǎn fáng","胳臂":"gē bei","将门":"jiàng mén","模板":"mú bǎn","配给":"pèi jǐ","为伍":"wéi wǔ","跟头":"gēn tou","划算":"huá suàn","累赘":"léi zhui","哄笑":"hōng xiào","晕眩":"yūn xuàn","干掉":"gàn diào","缝制":"féng zhì","难处":"nán chù","着意":"zhuó yì","蛮横":"mán hèng","奇数":"jī shù","短发":"duǎn fà","生还":"shēng huán","还清":"huán qīng","看护":"kān hù","直率":"zhí shuài","奏乐":"zòu yuè","载客":"zài kè","专横":"zhuān hèng","湮没":"yān mò","空格":"kòng gé","铺垫":"pū diàn","良将":"liáng jiàng","哗啦":"huā lā","散漫":"sǎn màn","脱发":"tuō fà","送还":"sòng huán","埋没":"mái mò","累及":"lěi jí","薄雾":"bó wù","调离":"diào lí","舌苔":"shé tāi","机长":"jī zhǎng","栓塞":"shuān sè","配角":"pèi jué","切口":"qiē kǒu","创口":"chuāng kǒu","哈欠":"hā qian","实弹":"shí dàn","铺平":"pū píng","哈达":"hǎ dá","懒散":"lǎn sǎn","实干":"shí gàn","填空":"tián kòng","刁钻":"diāo zuān","乐师":"yuè shī","量变":"liàng biàn","诱降":"yòu xiáng","搪塞":"táng sè","征调":"zhēng diào","夹道":"jiā dào","干咳":"gān ké","止咳":"zhǐ ké","乐工":"yuè gōng","划过":"huá guò","着火":"zháo huǒ","更正":"gēng zhèng","给付":"jǐ fù","空子":"kòng zi","哪吒":"né zhā","正着":"zhèng zháo","刷子":"shuā zi","丧葬":"sāng zàng","夹带":"jiā dài","安分":"ān fèn","中意":"zhòng yì","长孙":"zhǎng sūn","校订":"jiào dìng","卷曲":"juǎn qū","载运":"zài yùn","投弹":"tóu dàn","柞蚕":"zuò cán","份量":"fèn liàng","调换":"diào huàn","了然":"liǎo rán","咧嘴":"liě zuǐ","典当":"diǎn dàng","寒假":"hán jià","长兄":"zhǎng xiōng","给水":"jǐ shuǐ","须发":"xū fà","枝干":"zhī gàn","属相":"shǔ xiàng","哄抢":"hōng qiǎng","刻划":"kè huà","塞子":"sāi zi","单干":"dān gàn","还乡":"huán xiāng","兆头":"zhào tou","寺观":"sì guàn","督率":"dū shuài","啊哈":"ā ha","割舍":"gē shě","抹布":"mā bù","好恶":"hào wù","下处":"xià chǔ","消长":"xiāo zhǎng","离间":"lí jiàn","准头":"zhǔn tou","校对":"jiào duì","什物":"shí wù","番禺":"pān yú","佛爷":"fó ye","吗啡":"mǎ fēi","盐分":"yán fèn","虎将":"hǔ jiàng","薄荷":"bò he","独处":"dú chǔ","空位":"kòng wèi","铺路":"pū lù","乌拉":"wū lā","调回":"diào huí","来头":"lái tou","闲散":"xián sǎn","胶卷":"jiāo juǎn","冒失":"mào shi","干劲":"gàn jìn","弦乐":"xián yuè","相国":"xiàng guó","丹参":"dān shēn","助兴":"zhù xìng","铺开":"pū kāi","次长":"cì zhǎng","发卡":"fà qiǎ","拮据":"jié jū","刹车":"shā chē","生发":"shēng fà","重播":"chóng bō","缝合":"féng hé","音量":"yīn liàng","少尉":"shào wèi","冲压":"chòng yā","苍劲":"cāng jìng","厚薄":"hòu báo","威吓":"wēi hè","外相":"wài xiàng","呼号":"hū háo","着迷":"zháo mí","挑担":"tiāo dàn","纹路":"wén lù","还俗":"huán sú","强横":"qiáng hèng","着数":"zhāo shù","降顺":"xiáng shùn","挑明":"tiǎo míng","眯缝":"mī feng","分内":"fèn nèi","更衣":"gēng yī","软和":"ruǎn huo","尽兴":"jìn xìng","号子":"hào zi","爪牙":"zhǎo yá","败将":"bài jiàng","猜中":"cāi zhòng","结扎":"jié zā","没空":"méi kòng","夹缝":"jiā fèng","拾掇":"shí duo","掺和":"chān huo","簸箕":"bò ji","电量":"diàn liàng","荷载":"hè zǎi","调式":"diào shì","处身":"chǔ shēn","打手":"dǎ shǒu","弹弓":"dàn gōng","横蛮":"hèng mán","能干":"néng gàn","校点":"jiào diǎn","加载":"jiā zài","干校":"gàn xiào","哄传":"hōng chuán","校注":"jiào zhù","淤塞":"yū sè","马扎":"mǎ zhá","月氏":"yuè zhī","高干":"gāo gàn","经传":"jīng zhuàn","曾孙":"zēng sūn","好斗":"hào dòu","关卡":"guān qiǎ","逃奔":"táo bèn","磨蹭":"mó ceng","牟取":"móu qǔ","颤栗":"zhàn lì","蚂蚱":"mà zha","撮合":"cuō he","趔趄":"liè qie","摔打":"shuāi dǎ","台子":"tái zi","分得":"fēn de","粘着":"nián zhuó","采邑":"cài yì","散装":"sǎn zhuāng","婀娜":"ē nuó","兴味":"xìng wèi","行头":"xíng tou","气量":"qì liàng","调运":"diào yùn","处治":"chǔ zhì","乐音":"yuè yīn","充塞":"chōng sè","恫吓":"dòng hè","论调":"lùn diào","相中":"xiāng zhòng","民乐":"mín yuè","炮仗":"pào zhang","丧服":"sāng fú","骁将":"xiāo jiàng","量刑":"liàng xíng","缝补":"féng bǔ","财会":"cái kuài","大干":"dà gàn","历数":"lì shǔ","校场":"jiào chǎng","塞北":"sài běi","识相":"shí xiàng","辱没":"rǔ mò","鲜亮":"xiān liàng","语塞":"yǔ sè","露脸":"lòu liǎn","凉快":"liáng kuai","腰杆":"yāo gǎn","溜达":"liū da","嘎嘎":"gā gā","公干":"gōng gàn","桔梗":"jié gěng","挑逗":"tiǎo dòu","看门":"kān mén","乐歌":"yuè gē","拓片":"tà piàn","挑动":"tiǎo dòng","准将":"zhǔn jiàng","遒劲":"qiú jìng","磨坊":"mò fáng","逶迤":"wēi yí","搅和":"jiǎo huo","摩挲":"mó suō","作弄":"zuò nòng","苗头":"miáo tou","打颤":"dǎ zhàn","大藏":"dà zàng","畜牲":"chù shēng","勾搭":"gōu da","树荫":"shù yīn","树杈":"shù chà","铁杆":"tiě gǎn","将相":"jiàng xiàng","份子":"fèn zi","视差":"shì chā","绿荫":"lǜ yīn","枪杆":"qiāng gǎn","缝纫":"féng rèn","愁闷":"chóu mèn","点将":"diǎn jiàng","华佗":"huà tuó","劲射":"jìng shè","箱笼":"xiāng lǒng","终了":"zhōng liǎo","鬓发":"bìn fà","结巴":"jiē ba","苦干":"kǔ gàn","看家":"kān jiā","正旦":"zhēng dàn","中肯":"zhòng kěn","厦门":"xià mén","东莞":"dōng guǎn","食量":"shí liàng","宫调":"gōng diào","间作":"jiàn zuò","弹片":"dàn piàn","差池":"chā chí","漂白":"piǎo bái","杠子":"gàng zi","调处":"tiáo chǔ","好动":"hào dòng","转炉":"zhuàn lú","屏气":"bǐng qì","夹板":"jiā bǎn","哀乐":"āi yuè","干道":"gàn dào","苦处":"kǔ chù","劈柴":"pǐ chái","长势":"zhǎng shì","天华":"tiān huá","共处":"gòng chǔ","校验":"jiào yàn","出塞":"chū sài","磨盘":"mò pán","萎靡":"wěi mǐ","奔丧":"bēn sāng","唱和":"chàng hè","大调":"dà diào","非分":"fēi fèn","钻营":"zuān yíng","夹子":"jiā zi","超载":"chāo zài","更始":"gēng shǐ","铃铛":"líng dang","披散":"pī sàn","发还":"fā huán","转轮":"zhuàn lún","横财":"hèng cái","泡桐":"pāo tóng","抛撒":"pāo sǎ","天呀":"tiān yā","糊糊":"hū hu","躯壳":"qū qiào","通量":"tōng liàng","奉还":"fèng huán","午觉":"wǔ jiào","闷棍":"mèn gùn","浪头":"làng tou","砚台":"yàn tái","油坊":"yóu fáng","学长":"xué zhǎng","过载":"guò zài","笔调":"bǐ diào","衣被":"yī bèi","畜产":"xù chǎn","调阅":"diào yuè","蛮干":"mán gàn","曾祖":"zēng zǔ","提干":"tí gàn","变调":"biàn diào","覆没":"fù mò","模子":"mú zi","乐律":"yuè lǜ","称心":"chèn xīn","木杆":"mù gān","重印":"chóng yìn","自省":"zì xǐng","提调":"tí diào","看相":"kàn xiàng","芋头":"yù tou","下切":"xià qiē","塞上":"sài shàng","铺张":"pū zhāng","藤蔓":"téng wàn","薄幸":"bó xìng","解数":"xiè shù","褪去":"tuì qù","霰弹":"xiàn dàn","柚木":"yóu mù","痕量":"hén liàng","雅乐":"yǎ yuè","号哭":"háo kū","诈降":"zhà xiáng","猪圈":"zhū juàn","咋舌":"zé shé","铣床":"xǐ chuáng","防弹":"fáng dàn","健将":"jiàn jiàng","丽水":"lí shuǐ","削发":"xuē fà","空当":"kòng dāng","多相":"duō xiàng","鲜见":"xiǎn jiàn","划桨":"huá jiǎng","载波":"zài bō","跳蚤":"tiào zao","俏皮":"qiào pí","吧嗒":"bā dā","结发":"jié fà","了断":"liǎo duàn","同调":"tóng diào","石磨":"shí mò","时差":"shí chā","鼻塞":"bí sè","挑子":"tiāo zi","推磨":"tuī mò","武侯":"wǔ hóu","抹煞":"mǒ shā","调转":"diào zhuǎn","籍没":"jí mò","还债":"huán zhài","调演":"diào yǎn","分划":"fēn huá","奇偶":"jī ǒu","断喝":"duàn hè","闷雷":"mèn léi","狼藉":"láng jí","饭量":"fàn liàng","还礼":"huán lǐ","转调":"zhuǎn diào","星相":"xīng xiàng","手相":"shǒu xiàng","配乐":"pèi yuè","盖头":"gài tou","连杆":"lián gǎn","簿记":"bù jì","刀把":"dāo bà","量词":"liàng cí","名角":"míng jué","步调":"bù diào","校本":"jiào běn","账簿":"zhàng bù","隽永":"juàn yǒng","稍为":"shāo wéi","易传":"yì zhuàn","乐谱":"yuè pǔ","牵累":"qiān lěi","答理":"dā li","喝斥":"hè chì","吟哦":"yín é","干渠":"gàn qú","海量":"hǎi liàng","精当":"jīng dàng","着床":"zhuó chuáng","月相":"yuè xiàng","庶几":"shù jī","宫观":"gōng guàn","论处":"lùn chǔ","征辟":"zhēng bì","厚朴":"hòu pò","介壳":"jiè qiào","吭哧":"kēng chī","咯血":"kǎ xiě","铺陈":"pū chén","重生":"chóng shēng","乐理":"yuè lǐ","哀号":"āi háo","藏历":"zàng lì","刚劲":"gāng jìng","削平":"xuē píng","浓荫":"nóng yīn","城垛":"chéng duǒ","当差":"dāng chāi","正传":"zhèng zhuàn","并处":"bìng chǔ","创面":"chuāng miàn","旦角":"dàn jué","薄礼":"bó lǐ","晃荡":"huàng dang","臊子":"sào zi","家什":"jiā shí","闷头":"mēn tóu","美发":"měi fà","度数":"dù shu","着凉":"zháo liáng","闯将":"chuǎng jiàng","几案":"jī àn","姘头":"pīn tou","差数":"chā shù","散碎":"sǎn suì","壅塞":"yōng sè","寒颤":"hán zhàn","牵强":"qiān qiǎng","无间":"wú jiàn","轮转":"lún zhuàn","号叫":"háo jiào","铺排":"pū pái","降伏":"xiáng fú","轧钢":"zhá gāng","东阿":"dōng ē","病假":"bìng jià","累加":"lěi jiā","梗塞":"gěng sè","弹夹":"dàn jiā","钻心":"zuān xīn","晃眼":"huǎng yǎn","魔爪":"mó zhǎo","标量":"biāo liàng","憋闷":"biē mèn","猜度":"cāi duó","处士":"chǔ shì","官差":"guān chāi","讨还":"tǎo huán","长门":"cháng mén","馏分":"liú fēn","里弄":"lǐ lòng","色相":"sè xiàng","雅兴":"yǎ xìng","角力":"jué lì","弹坑":"dàn kēng","枝杈":"zhī chà","夹具":"jiā jù","处刑":"chǔ xíng","悍将":"hàn jiàng","好学":"hào xué","好好":"hǎo hǎo","银发":"yín fà","扫把":"sào bǎ","法相":"fǎ xiàng","贵干":"guì gàn","供气":"gōng qì","空余":"kòng yú","捆扎":"kǔn zā","瘠薄":"jí bó","浆糊":"jiàng hu","嘎吱":"gā zhī","调令":"diào lìng","法帖":"fǎ tiè","淋病":"lìn bìng","调派":"diào pài","转盘":"zhuàn pán","供稿":"gōng gǎo","差官":"chāi guān","忧闷":"yōu mèn","教长":"jiào zhǎng","重唱":"chóng chàng","酒兴":"jiǔ xìng","乐坛":"yuè tán","花呢":"huā ní","叱喝":"chì hè","膀臂":"bǎng bì","得空":"dé kòng","转圈":"zhuàn quān","横暴":"hèng bào","哄抬":"hōng tái","引吭":"yǐn háng","载货":"zài huò","中计":"zhòng jì","官长":"guān zhǎng","相面":"xiàng miàn","看头":"kàn tou","盼头":"pàn tou","意兴":"yì xìng","军乐":"jūn yuè","累次":"lěi cì","骨嘟":"gǔ dū","燕赵":"yān zhào","报丧":"bào sāng","弥撒":"mí sa","挨斗":"ái dòu","扁舟":"piān zhōu","丑角":"chǒu jué","吊丧":"diào sāng","强将":"qiáng jiàng","重奏":"chóng zòu","发辫":"fà biàn","着魔":"zháo mó","着法":"zhāo fǎ","盛放":"shèng fàng","填塞":"tián sè","凶横":"xiōng hèng","稽首":"qǐ shǒu","碑帖":"bēi tiè","冲量":"chōng liàng","发菜":"fà cài","假发":"jiǎ fà","翻卷":"fān juǎn","小量":"xiǎo liàng","胶着":"jiāo zhuó","里子":"lǐ zi","调调":"diào diao","散兵":"sǎn bīng","高挑":"gāo tiǎo","播撒":"bō sǎ","夹心":"jiā xīn","扇动":"shān dòng","叨扰":"tāo rǎo","霓裳":"ní cháng","捻子":"niǎn zi","弥缝":"mí féng","撒布":"sǎ bù","场院":"cháng yuàn","省亲":"xǐng qīn","提拉":"tí lā","惯量":"guàn liàng","强逼":"qiáng bī","强征":"qiáng zhēng","晕车":"yùn chē","数道":"shù dào","带累":"dài lèi","拓本":"tà běn","嫌恶":"xián wù","宿将":"sù jiàng","龟裂":"jūn liè","缠夹":"chán jiā","发式":"fà shì","隔扇":"gé shàn","天分":"tiān fèn","癖好":"pǐ hào","四通":"sì tōng","白术":"bái zhú","划伤":"huá shāng","角斗":"jué dòu","听差":"tīng chāi","岁差":"suì chā","丧礼":"sāng lǐ","脉脉":"mò mò","削瘦":"xuē shòu","撒播":"sǎ bō","莎草":"suō cǎo","犍为":"qián wéi","调头":"diào tóu","龙卷":"lóng juǎn","外调":"wài diào","字帖":"zì tiè","卷发":"juǎn fà","揣度":"chuǎi duó","洋相":"yáng xiàng","散光":"sǎn guāng","骨碌":"gū lu","薄命":"bó mìng","笼头":"lóng tóu","咽炎":"yān yán","碌碡":"liù zhou","片儿":"piàn er","纤手":"qiàn shǒu","散体":"sǎn tǐ","内省":"nèi xǐng","强留":"qiáng liú","解送":"jiè sòng","反间":"fǎn jiàn","少壮":"shào zhuàng","留空":"liú kōng","告假":"gào jià","咳血":"ké xuè","薄暮":"bó mù","铺轨":"pū guǐ","磨削":"mó xuē","治丧":"zhì sāng","叉子":"chā zi","哄动":"hōng dòng","蛾子":"é zi","出落":"chū luò","股长":"gǔ zhǎng","贵处":"guì chù","还魂":"huán hún","例假":"lì jià","刹住":"shā zhù","身量":"shēn liàng","同好":"tóng hào","模量":"mó liàng","更生":"gēng shēng","服丧":"fú sāng","率直":"shuài zhí","字模":"zì mú","散架":"sǎn jià","答腔":"dā qiāng","交恶":"jiāo wù","薄情":"bó qíng","眼泡":"yǎn pāo","袅娜":"niǎo nuó","草垛":"cǎo duò","冲劲":"chòng jìn","呢喃":"ní nán","切中":"qiè zhòng","挑灯":"tiǎo dēng","还愿":"huán yuàn","激将":"jī jiàng","更鼓":"gēng gǔ","没药":"mò yào","败兴":"bài xìng","切面":"qiē miàn","散户":"sǎn hù","累进":"lěi jìn","背带":"bēi dài","秤杆":"chèng gǎn","碾坊":"niǎn fáng","簿子":"bù zi","扳手":"bān shǒu","铅山":"yán shān","儒将":"rú jiàng","重光":"chóng guāng","剪发":"jiǎn fà","长上":"zhǎng shàng","小传":"xiǎo zhuàn","压轴":"yā zhòu","弱冠":"ruò guàn","花卷":"huā juǎn","横祸":"hèng huò","夹克":"jiā kè","光晕":"guāng yùn","披靡":"pī mǐ","对调":"duì diào","夹持":"jiā chí","空额":"kòng é","平调":"píng diào","铺床":"pū chuáng","丧钟":"sāng zhōng","作乐":"zuò lè","少府":"shào fǔ","数数":"shuò shuò","奔头":"bèn tou","进给":"jìn jǐ","率性":"shuài xìng","乐子":"lè zi","绑扎":"bǎng zā","挑唆":"tiǎo suō","漂洗":"piǎo xǐ","夹墙":"jiā qiáng","咳喘":"ké chuǎn","乜斜":"miē xie","错处":"cuò chù","闷酒":"mèn jiǔ","时调":"shí diào","重孙":"chóng sūn","经幢":"jīng chuáng","圩场":"xū chǎng","调门":"diào mén","花头":"huā tóu","划拉":"huá la","套色":"tào shǎi","粗率":"cū shuài","相率":"xiāng shuài","款识":"kuǎn zhì","吁请":"yù qǐng","荫蔽":"yīn bì","文蛤":"wén gé","嘀嗒":"dī dā","调取":"diào qǔ","交差":"jiāo chāi","落子":"luò zǐ","相册":"xiàng cè","絮叨":"xù dao","落发":"luò fà","异相":"yì xiàng","浸没":"jìn mò","角抵":"jué dǐ","卸载":"xiè zài","春卷":"chūn juǎn","扎挣":"zhá zheng","畜养":"xù yǎng","吡咯":"bǐ luò","垛子":"duò zi","恶少":"è shào","发际":"fà jì","红苕":"hóng sháo","糨糊":"jiàng hu","哭丧":"kū sāng","稍息":"shào xī","晕船":"yùn chuán","校样":"jiào yàng","外差":"wài chā","脚爪":"jiǎo zhǎo","铺展":"pū zhǎn","芫荽":"yán sui","夹紧":"jiā jǐn","尿泡":"suī pào","丧乱":"sāng luàn","凶相":"xiōng xiàng","华发":"huá fà","打场":"dǎ cháng","云量":"yún liàng","正切":"zhèng qiē","划拳":"huá quán","划艇":"huá tǐng","评传":"píng zhuàn","拉纤":"lā qiàn","句读":"jù dòu","散剂":"sǎn jì","骨殖":"gǔ shi","塞音":"sè yīn","铺叙":"pū xù","阏氏":"yān zhī","冷颤":"lěng zhàn","煞住":"shā zhù","少男":"shào nán","管乐":"guǎn yuè","号啕":"háo táo","纳降":"nà xiáng","拥塞":"yōng sè","万乘":"wàn shèng","杆儿":"gǎn ér","葛藤":"gé téng","簿籍":"bù jí","皮夹":"pí jiā","校准":"jiào zhǔn","允当":"yǔn dàng","器量":"qì liàng","选调":"xuǎn diào","扮相":"bàn xiàng","干才":"gàn cái","基干":"jī gàn","割切":"gē qiē","国乐":"guó yuè","卡壳":"qiǎ ké","辟谷":"bì gǔ","磨房":"mò fáng","咿呀":"yī yā","芥末":"jiè mo","薄技":"bó jì","产假":"chǎn jià","诗兴":"shī xìng","重出":"chóng chū","转椅":"zhuàn yǐ","酌量":"zhuó liang","簿册":"bù cè","藏青":"zàng qīng","的士":"dī shì","调人":"diào rén","解元":"jiè yuán","茎干":"jīng gàn","巨量":"jù liàng","榔头":"láng tou","率真":"shuài zhēn","喷香":"pèn xiāng","锁钥":"suǒ yuè","虾蟆":"há má","相图":"xiàng tú","兴会":"xìng huì","灶头":"zào tóu","重婚":"chóng hūn","钻洞":"zuān dòng","忖度":"cǔn duó","党参":"dǎng shēn","调温":"diào wēn","杆塔":"gān tǎ","葛布":"gé bù","拱券":"gǒng xuàn","夹生":"jiā shēng","露馅":"lòu xiàn","恰切":"qià qiè","散见":"sǎn jiàn","哨卡":"shào qiǎ","烫发":"tàng fà","体量":"tǐ liàng","挺括":"tǐng kuò","系带":"jì dài","相士":"xiàng shì","羊圈":"yáng juàn","转矩":"zhuàn jǔ","吧台":"bā tái","苍术":"cāng zhú","菲薄":"fěi bó","蛤蚧":"gé jiè","蛤蜊":"gé lí","瓜蔓":"guā wàn","怪相":"guài xiàng","临帖":"lín tiè","女红":"nǚ gōng","刨床":"bào chuáng","翘楚":"qiáo chǔ","数九":"shǔ jiǔ","谈兴":"tán xìng","雄劲":"xióng jìng","扎染":"zā rǎn","遮荫":"zhē yīn","周正":"zhōu zhèng","赚头":"zhuàn tou","扒手":"pá shǒu","搀和":"chān huo","诚朴":"chéng pǔ","肚量":"dù liàng","干结":"gān jié","工尺":"gōng chě","家累":"jiā lěi","曲水":"qū shuǐ","沙参":"shā shēn","挑花":"tiǎo huā","阿门":"ā mén","背篓":"bēi lǒu","瘪三":"biē sān","裁处":"cái chǔ","创痛":"chuāng tòng","福相":"fú xiàng","更动":"gēng dòng","豪兴":"háo xìng","还阳":"huán yáng","还嘴":"huán zuǐ","借调":"jiè diào","卷云":"juǎn yún","流弹":"liú dàn","想头":"xiǎng tou","削价":"xuē jià","校阅":"jiào yuè","雅量":"yǎ liàng","别传":"bié zhuàn","薄酒":"bó jiǔ","春假":"chūn jià","发妻":"fà qī","哗哗":"huā huā","宽绰":"kuān chuo","了悟":"liǎo wù","切花":"qiē huā","审度":"shěn duó","应许":"yīng xǔ","转台":"zhuàn tái","仔猪":"zǐ zhū","裁量":"cái liáng","藏戏":"zàng xì","乘兴":"chéng xìng","绸缪":"chóu móu","摧折":"cuī zhé","调经":"tiáo jīng","调职":"diào zhí","缝缀":"féng zhuì","骨朵":"gū duǒ","核儿":"hú er","恒量":"héng liàng","还价":"huán jià","浑朴":"hún pǔ","苦差":"kǔ chāi","面糊":"miàn hù","煞车":"shā chē","省视":"xǐng shì","什锦":"shí jǐn","信差":"xìn chāi","余切":"yú qiē","攒眉":"cuán méi","炸糕":"zhá gāo","钻杆":"zuàn gǎn","扒灰":"pá huī","拌和":"bàn huò","长调":"cháng diào","大溜":"dà liù","抖搂":"dǒu lōu","飞转":"fēi zhuàn","干仗":"gàn zhàng","好胜":"hào shèng","画片":"huà piàn","搅混":"jiǎo hún","螺杆":"luó gǎn","木模":"mù mú","怒号":"nù háo","频数":"pín shù","无宁":"wú níng","遗少":"yí shào","邮差":"yóu chāi","占卦":"zhān guà","占星":"zhān xīng","重审":"chóng shěn","自量":"zì liàng","调防":"diào fáng","发廊":"fà láng","反调":"fǎn diào","缝子":"fèng zi","更夫":"gēng fū","骨子":"gǔ zi","光杆":"guāng gǎn","夹棍":"jiā gùn","居丧":"jū sāng","巨贾":"jù gǔ","看押":"kān yā","空转":"kōng zhuàn","量力":"liàng lì","炮烙":"páo luò","赔还":"péi huán","扑扇":"pū shān","散记":"sǎn jì","散件":"sǎn jiàn","删削":"shān xuē","射干":"shè gàn","条几":"tiáo jī","偷空":"tōu kòng","削壁":"xuē bì","校核":"jiào hé","阴干":"yīn gān","择菜":"zhái cài","重九":"chóng jiǔ","主调":"zhǔ diào","自禁":"zì jīn","吧唧":"bā jī","便溺":"biàn niào","词调":"cí diào","叨咕":"dáo gu","落枕":"lào zhěn","铺砌":"pū qì","刷白":"shuà bái","委靡":"wěi mǐ","系泊":"xì bó","相马":"xiàng mǎ","熨帖":"yù tiē","转筋":"zhuàn jīn","棒喝":"bàng hè","傧相":"bīn xiàng","镐头":"gǎo tóu","间苗":"jiàn miáo","乐池":"yuè chí","卖相":"mài xiàng","屏弃":"bǐng qì","铅弹":"qiān dàn","切变":"qiē biàn","请调":"qǐng diào","群氓":"qún méng","散板":"sǎn bǎn","省察":"xǐng chá","事假":"shì jià","纤绳":"qiàn shéng","重影":"chóng yǐng","耕种":"gēng zhòng","种地":"zhòng dì","种菜":"zhòng cài","栽种":"zāi zhòng","接种":"jiē zhòng","垦种":"kěn zhòng","种殖":"zhòng zhí","种瓜":"zhòng guā","种豆":"zhòng dòu","种树":"zhòng shù","睡着":"shuì zháo","笼子":"lóng zi","重启":"chóng qǐ","重整":"chóng zhěng","重弹":"chóng tán","重足":"chóng zú","重山":"chóng shān","重游":"chóng yóu","重峦":"chóng luán","爷爷":"yé ye","奶奶":"nǎi nai","姥爷":"lǎo ye","爸爸":"bà ba","妈妈":"mā ma","婶婶":"shěn shen","舅舅":"jiù jiu","姑姑":"gū gu","叔叔":"shū shu","姨夫":"yí fu","舅母":"jiù mu","姑父":"gū fu","姐夫":"jiě fu","婆婆":"pó po","公公":"gōng gong","舅子":"jiù zi","姐姐":"jiě jie","哥哥":"gē ge","妹妹":"mèi mei","妹夫":"mèi fu","姨子":"yí zi","宝宝":"bǎo bao","娃娃":"wá wa","孩子":"hái zi","日子":"rì zi","样子":"yàng zi","狮子":"shī zi","身子":"shēn zi","架子":"jià zi","嫂子":"sǎo zi","鼻子":"bí zi","亭子":"tíng zi","折子":"zhé zi","面子":"miàn zi","脖子":"bó zi","辈子":"bèi zi","帽子":"mào zi","拍子":"pāi zi","柱子":"zhù zi","辫子":"biàn zi","鸽子":"gē zi","房子":"fáng zi","丸子":"wán zi","摊子":"tān zi","牌子":"pái zi","胡子":"hú zi","鬼子":"guǐ zi","矮子":"ǎi zi","鸭子":"yā zi","小子":"xiǎo zi","影子":"yǐng zi","屋子":"wū zi","对子":"duì zi","点子":"diǎn zi","本子":"běn zi","种子":"zhǒng zi","儿子":"ér zi","兔子":"tù zi","骗子":"piàn zi","院子":"yuàn zi","猴子":"hóu zi","嗓子":"sǎng zi","侄子":"zhí zi","柿子":"shì zi","钳子":"qián zi","虱子":"shī zi","瓶子":"píng zi","豹子":"bào zi","筷子":"kuài zi","篮子":"lán zi","绳子":"shéng zi","嘴巴":"zuǐ ba","耳朵":"ěr duo","茄子":"qié zi","蚌埠":"bèng bù","崆峒":"kōng tóng","琵琶":"pí pa","蘑菇":"mó gu","葫芦":"hú lu","狐狸":"hú li","桔子":"jú zi","盒子":"hé zi","桌子":"zhuō zi","竹子":"zhú zi","师傅":"shī fu","衣服":"yī fu","袜子":"wà zi","杯子":"bēi zi","刺猬":"cì wei","麦子":"mài zi","队伍":"duì wu","知了":"zhī liǎo","鱼儿":"yú er","馄饨":"hún tun","灯笼":"dēng long","庄稼":"zhuāng jia","聪明":"cōng ming","镜子":"jìng zi","银子":"yín zi","盘子":"pán zi","了却":"liǎo què","力气":"lì qi","席子":"xí zi","林子":"lín zi","朝霞":"zhāo xiá","朝夕":"zhāo xī","朝气":"zhāo qì","翅膀":"chì bǎng","省长":"shěng zhǎng","臧否":"zāng pǐ","否泰":"pǐ tài","变得":"biàn de","丈夫":"zhàng fu","豆腐":"dòu fu","笔杆":"bǐ gǎn","枞阳":"zōng yáng","行人":"xíng rén","打着":"dǎ zhe","第一":"dì yī","万一":"wàn yī","之一":"zhī yī","得之":"dé zhī","统一":"tǒng yī","唯一":"wéi yī","专一":"zhuān yī","单一":"dān yī","如一":"rú yī","其一":"qí yī","合一":"hé yī","逐一":"zhú yī","周一":"zhōu yī","初一":"chū yī","研一":"yán yī","归一":"guī yī","假一":"jiǎ yī","闻一":"wén yī","了了":"liǎo liǎo","公了":"gōng liǎo","私了":"sī liǎo","一月":"yī yuè","一号":"yī hào","一级":"yī jí","一等":"yī děng","一哥":"yī gē","月一":"yuè yī","一一":"yī yī","二一":"èr yī","三一":"sān yī","四一":"sì yī","五一":"wǔ yī","六一":"liù yī","七一":"qī yī","八一":"bā yī","九一":"jiǔ yī","一〇":"yī líng","一零":"yī líng","一二":"yī èr","一三":"yī sān","一四":"yī sì","一五":"yī wǔ","一六":"yī liù","一七":"yī qī","一八":"yī bā","一九":"yī jiǔ","一又":"yī yòu","一饼":"yī bǐng","一楼":"yī lóu","为例":"wéi lì","为准":"wéi zhǔn","沧海":"cāng hǎi","难为":"nán wéi","责难":"zé nàn","患难":"huàn nàn","磨难":"mó nàn","大难":"dà nàn","刁难":"diāo nàn","殉难":"xùn nàn","落难":"luò nàn","罹难":"lí nàn","灾难":"zāi nàn","难民":"nàn mín","苦难":"kǔ nàn","危难":"wēi nàn","发难":"fā nàn","逃难":"táo nàn","避难":"bì nàn","遇难":"yù nàn","阻难":"zǔ nàn","厄难":"è nàn","徇难":"xùn nàn","空难":"kōng nàn","喜欢":"xǐ huan","朝朝":"zhāo zhāo","不行":"bù xíng","轧轧":"yà yà","弯曲":"wān qū","扭曲":"niǔ qū","曲直":"qū zhí","委曲":"wěi qū","酒曲":"jiǔ qū","曲径":"qū jìng","曲解":"qū jiě","歪曲":"wāi qū","曲线":"qū xiàn","曲阜":"qū fù","九曲":"jiǔ qū","曲折":"qū zhé","曲肱":"qū gōng","曲意":"qū yì","仡佬":"gē lǎo"},ro=Object.keys(ao).map(e=>({zh:e,pinyin:ao[e],probability:2e-8,length:2,priority:1,dict:Symbol("dict2")})),lo={"为什么":"wèi shén me","实际上":"shí jì shang","检察长":"jiǎn chá zhǎng","干什么":"gàn shén me","这会儿":"zhè huì er","尽可能":"jǐn kě néng","董事长":"dǒng shì zhǎng","了不起":"liǎo bù qǐ","参谋长":"cān móu zhǎng","朝鲜族":"cháo xiǎn zú","海内外":"hǎi nèi wài","禁不住":"jīn bú zhù","柏拉图":"bó lā tú","不在乎":"bú zài hu","洛杉矶":"luò shān jī","有点儿":"yǒu diǎn er","迫击炮":"pǎi jī pào","不得了":"bù dé liǎo","马尾松":"mǎ wěi sōng","运输量":"yùn shū liàng","发脾气":"fā pí qi","士大夫":"shì dà fū","鸭绿江":"yā lù jiāng","压根儿":"yà gēn er","对得起":"duì de qǐ","那会儿":"nà huì er","自个儿":"zì gě er","物理量":"wù lǐ liàng","怎么着":"zěn me zhāo","明晃晃":"míng huǎng huǎng","节假日":"jié jià rì","心里话":"xīn lǐ huà","发行量":"fā xíng liàng","兴冲冲":"xìng chōng chōng","分子量":"fēn zǐ liàng","国子监":"guó zǐ jiàn","老大难":"lǎo dà nán","党内外":"dǎng nèi wài","这么着":"zhè me zhāo","少奶奶":"shào nǎi nai","暗地里":"àn dì lǐ","更年期":"gēng nián qī","工作量":"gōng zuò liàng","背地里":"bèi dì lǐ","山里红":"shān li hóng","好好儿":"hǎo hāo er","交响乐":"jiāo xiǎng yuè","好意思":"hǎo yì si","吐谷浑":"tǔ yù hún","没意思":"méi yì si","理发师":"lǐ fà shī","塔什干":"tǎ shí gān","充其量":"chōng qí liàng","靠得住":"kào de zhù","车行道":"chē xíng dào","人行道":"rén xíng dào","中郎将":"zhōng láng jiàng","照明弹":"zhào míng dàn","烟幕弹":"yān mù dàn","没奈何":"mò nài hé","乱哄哄":"luàn hōng hōng","惠更斯":"huì gēng sī","载重量":"zài zhòng liàng","瞧得起":"qiáo de qǐ","纪传体":"jì zhuàn tǐ","阿房宫":"ē páng gōng","卷心菜":"juǎn xīn cài","戏班子":"xì bān zi","过得去":"guò de qù","花岗石":"huā gāng shí","外甥女":"wài sheng nǚ","团团转":"tuán tuán zhuàn","大堡礁":"dà bǎo jiāo","燃烧弹":"rán shāo dàn","劳什子":"láo shí zi","摇滚乐":"yáo gǔn yuè","夹竹桃":"jiā zhú táo","闹哄哄":"nào hōng hōng","三连冠":"sān lián guàn","重头戏":"zhòng tóu xì","二人转":"èr rén zhuàn","节骨眼":"jiē gǔ yǎn","知识面":"zhī shi miàn","护士长":"hù shi zhǎng","信号弹":"xìn hào dàn","干电池":"gān diàn chí","枪杆子":"qiāng gǎn zi","哭丧棒":"kū sāng bàng","鼻咽癌":"bí yān ái","瓦岗军":"wǎ gāng jūn","买得起":"mǎi de qǐ","癞蛤蟆":"lài há ma","脊梁骨":"jǐ liang gǔ","子母弹":"zǐ mǔ dàn","开小差":"kāi xiǎo chāi","女强人":"nǚ qiáng rén","英雄传":"yīng xióng zhuàn","爵士乐":"jué shì yuè","说笑话":"shuō xiào hua","碰头会":"pèng tóu huì","玻璃钢":"bō li gāng","曳光弹":"yè guāng dàn","少林拳":"shào lín quán","咏叹调":"yǒng tàn diào","少先队":"shào xiān duì","灵长目":"líng zhǎng mù","对着干":"duì zhe gàn","蒙蒙亮":"méng méng liàng","软骨头":"ruǎn gǔ tou","铺盖卷":"pū gài juǎn","和稀泥":"huò xī ní","背黑锅":"bēi hēi guō","红彤彤":"hóng tōng tōng","武侯祠":"wǔ hóu cí","打哆嗦":"dǎ duō suo","户口簿":"hù kǒu bù","马尾藻":"mǎ wěi zǎo","夜猫子":"yè māo zi","打手势":"dǎ shǒu shì","龙王爷":"lóng wáng yé","气头上":"qì tóu shang","糊涂虫":"hú tu chóng","笔杆子":"bǐ gǎn zi","占便宜":"zhàn pián yi","打主意":"dǎ zhǔ yì","多弹头":"duō dàn tóu","露一手":"lòu yì shǒu","堰塞湖":"yàn sè hú","保得住":"bǎo de zhù","趵突泉":"bào tū quán","奥得河":"ào de hé","司务长":"sī wù zhǎng","禁不起":"jīn bù qǐ","什刹海":"shí chà hǎi","莲花落":"lián huā lào","见世面":"jiàn shì miàn","豁出去":"huō chū qù","电位差":"diàn wèi chā","挨个儿":"āi gè er","那阵儿":"nà zhèn er","肺活量":"fèi huó liàng","大师傅":"dà shī fu","掷弹筒":"zhì dàn tǒng","打呼噜":"dǎ hū lu","广渠门":"ān qú mén","未见得":"wèi jiàn dé","大婶儿":"dà shěn er","谈得来":"tán de lái","脚丫子":"jiǎo yā zi","空包弹":"kōng bāo dàn","窝里斗":"wō li dòu","弹着点":"dàn zhuó diǎn","个头儿":"gè tóu er","看得起":"kàn de qǐ","糊涂账":"hú tu zhàng","大猩猩":"dà xīng xing","禁得起":"jīn de qǐ","法相宗":"fǎ xiàng zōng","可怜相":"kě lián xiàng","吃得下":"chī de xià","汉堡包":"hàn bǎo bāo","闹嚷嚷":"nào rāng rāng","数来宝":"shǔ lái bǎo","合得来":"hé de lái","干性油":"gān xìng yóu","闷葫芦":"mèn hú lu","呱呱叫":"guā guā jiào","西洋参":"xī yáng shēn","林荫道":"lín yīn dào","拉家常":"lā jiā cháng","卷铺盖":"juǎn pū gài","过得硬":"guò de yìng","飞将军":"fēi jiāng jūn","挑大梁":"tiǎo dà liáng","哈巴狗":"hǎ ba gǒu","过家家":"guò jiā jiā","催泪弹":"cuī lèi dàn","雨夹雪":"yǔ jiā xuě","敲竹杠":"qiāo zhú gàng","列车长":"liè chē zhǎng","华达呢":"huá dá ní","犯得着":"fàn de zháo","土疙瘩":"tǔ gē da","煞风景":"shā fēng jǐng","轻量级":"qīng liàng jí","羞答答":"xiū dā dā","石子儿":"shí zǐ er","达姆弹":"dá mǔ dàn","科教片":"kē jiào piān","侃大山":"kǎn dà shān","丁点儿":"dīng diǎn er","吃得消":"chī de xiāo","捋虎须":"luō hǔ xū","高丽参":"gāo lí shēn","众生相":"zhòng shēng xiàng","咽峡炎":"yān xiá yán","禁得住":"jīn de zhù","吃得开":"chī de kāi","柞丝绸":"zuò sī chóu","应声虫":"yìng shēng chóng","数得着":"shǔ de zháo","傻劲儿":"shǎ jìn er","铅玻璃":"qiān bō li","可的松":"kě dì sōng","划得来":"huá de lái","晕乎乎":"yūn hū hū","屎壳郎":"shǐ ke làng","尥蹶子":"liào juě zi","藏红花":"zàng hóng huā","闷罐车":"mèn guàn chē","卡脖子":"qiǎ bó zi","红澄澄":"hóng deng deng","赶得及":"gǎn de jí","当间儿":"dāng jiàn er","露马脚":"lòu mǎ jiǎo","鸡内金":"jī nèi jīn","犯得上":"fàn de shàng","钉齿耙":"dīng chǐ bà","饱和点":"bǎo hé diǎn","龙爪槐":"lóng zhǎo huái","喝倒彩":"hè dào cǎi","定冠词":"dìng guàn cí","担担面":"dàn dan miàn","吃得住":"chī de zhù","爪尖儿":"zhuǎ jiān er","支着儿":"zhī zhāo er","折跟头":"zhē gēn tou","阴着儿":"yīn zhāo er","烟卷儿":"yān juǎn er","宣传弹":"xuān chuán dàn","信皮儿":"xìn pí er","弦切角":"xián qiē jiǎo","缩砂密":"sù shā mì","说得来":"shuō de lái","水漂儿":"shuǐ piāo er","耍笔杆":"shuǎ bǐ gǎn","数得上":"shǔ de shàng","数不着":"shǔ bù zháo","数不清":"shǔ bù qīng","什件儿":"shí jiàn er","生死簿":"shēng sǐ bù","扇风机":"shān fēng jī","撒呓挣":"sā yì zheng","日记簿":"rì jì bù","热得快":"rè de kuài","亲家公":"qìng jia gōng","奇函数":"jī hán shù","拍纸簿":"pāi zhǐ bù","努劲儿":"nǔ jìn er","泥娃娃":"ní wá wa","内切圆":"nèi qiē yuán","哪会儿":"nǎ huì er","闷头儿":"mēn tóu er","没谱儿":"méi pǔ er","铆劲儿":"mǎo jìn er","溜肩膀":"liū jiān bǎng","了望台":"liào wàng tái","老来少":"lǎo lái shào","坤角儿":"kūn jué er","考勤簿":"kǎo qín bù","卷笔刀":"juǎn bǐ dāo","进给量":"jìn jǐ liàng","划不来":"huá bù lái","汗褂儿":"hàn guà er","鼓囊囊":"gǔ nāng nāng","够劲儿":"gòu jìn er","公切线":"gōng qiē xiàn","搁得住":"gé de zhù","赶浪头":"gǎn làng tóu","赶得上":"gǎn de shàng","干酵母":"gān jiào mǔ","嘎渣儿":"gā zhā er","嘎嘣脆":"gā bēng cuì","对得住":"duì de zhù","逗闷子":"dòu mèn zi","顶呱呱":"dǐng guā guā","滴溜儿":"dī liù er","大轴子":"dà zhòu zi","打板子":"dǎ bǎn zi","寸劲儿":"cùn jìn er","醋劲儿":"cù jìn er","揣手儿":"chuāi shǒu er","冲劲儿":"chòng jìn er","吃得来":"chī de lái","不更事":"bù gēng shì","奔头儿":"bèn tou er","百夫长":"bǎi fū zhǎng","娃娃亲":"wá wa qīn","死劲儿":"sǐ jìn er","骨朵儿":"gū duǒ er","功劳簿":"gōng láo bù","都江堰":"dū jiāng yàn","一担水":"yí dàn shuǐ","否极泰":"pǐ jí tài","泰来否":"tài lái pǐ","咳特灵":"ké tè líng","开户行":"kāi hù háng","郦食其":"lì yì jī","花事了":"huā shì liǎo","一更更":"yì gēng gēng","一重山":"yì chóng shān","风一更":"fēng yì gēng","雪一更":"xuě yì gēng","归一码":"guī yì mǎ","星期一":"xīng qī yī","礼拜一":"lǐ bài yī","一季度":"yī jì dù","一月一":"yī yuè yī","一字马":"yī zì mǎ","一是一":"yī shì yī","一次方":"yī cì fāng","一阳指":"yī yáng zhǐ","一字决":"yī zì jué","一年级":"yī nián jí","一不做":"yī bú zuò","屈戌儿":"qū qu ér","难为水":"nán wéi shuǐ","难为情":"nán wéi qíng","行一行":"xíng yì háng","别别的":"biè bié de","干哪行":"gàn nǎ háng","干一行":"gàn yì háng","曲别针":"qū bié zhēn"},co=Object.keys(lo).map(e=>({zh:e,pinyin:lo[e],probability:2e-8,length:3,priority:1,dict:Symbol("dict3")})),ho={"成吉思汗":"chéng jí sī hán","四通八达":"sì tōng bā dá","一模一样":"yì mú yí yàng","青藏高原":"qīng zàng gāo yuán","阿弥陀佛":"ē mí tuó fó","解放思想":"jiè fàng sī xiǎng","所作所为":"suǒ zuò suǒ wéi","迷迷糊糊":"mí mí hu hū","荷枪实弹":"hè qiāng shí dàn","兴高采烈":"xìng gāo cǎi liè","无能为力":"wú néng wéi lì","布鲁塞尔":"bù lǔ sài ěr","为所欲为":"wéi suǒ yù wéi","克什米尔":"kè shí mǐ ěr","没完没了":"méi wán méi liǎo","不为人知":"bù wéi rén zhī","结结巴巴":"jiē jiē bā bā","前仆后继":"qián pū hòu jì","铺天盖地":"pū tiān gài dì","直截了当":"zhí jié liǎo dàng","供不应求":"gōng bú yìng qiú","御史大夫":"yù shǐ dà fū","不为瓦全":"bù wéi wǎ quán","不可收拾":"bù kě shōu shi","胡作非为":"hú zuò fēi wéi","分毫不差":"fēn háo bú chà","模模糊糊":"mó mó hu hū","不足为奇":"bù zú wéi qí","悄无声息":"qiǎo wú shēng xī","了如指掌":"liǎo rú zhǐ zhǎng","深恶痛绝":"shēn wù tòng jué","高高兴兴":"gāo gāo xìng xìng","唉声叹气":"āi shēng tàn qì","汉藏语系":"hàn zàng yǔ xì","处心积虑":"chǔ xīn jī lǜ","泣不成声":"qì bù chéng shēng","半夜三更":"bàn yè sān gēng","失魂落魄":"shī hún luò pò","二十八宿":"èr shí bā xiù","转来转去":"zhuàn lái zhuàn qù","数以万计":"shǔ yǐ wàn jì","相依为命":"xiāng yī wéi mìng","恋恋不舍":"liàn liàn bù shě","屈指可数":"qū zhǐ kě shǔ","神出鬼没":"shén chū guǐ mò","结结实实":"jiē jiē shí shí","有的放矢":"yǒu dì fàng shǐ","叽哩咕噜":"jī lǐ gū lū","调兵遣将":"diào bīng qiǎn jiàng","载歌载舞":"zài gē zài wǔ","转危为安":"zhuǎn wēi wéi ān","踏踏实实":"tā tā shi shí","桑给巴尔":"sāng jǐ bā ěr","装模作样":"zhuāng mú zuò yàng","见义勇为":"jiàn yì yǒng wéi","相差无几":"xiāng chā wú jǐ","叹为观止":"tàn wéi guān zhǐ","闷闷不乐":"mèn mèn bú lè","喜怒哀乐":"xǐ nù āi lè","鲜为人知":"xiǎn wéi rén zhī","张牙舞爪":"zhāng yá wǔ zhǎo","为非作歹":"wéi fēi zuò dǎi","含糊其辞":"hán hú qí cí","疲于奔命":"pí yú bēn mìng","勉为其难":"miǎn wéi qí nán","依依不舍":"yī yī bù shě","顶头上司":"dǐng tóu shàng si","不着边际":"bù zhuó biān jì","大模大样":"dà mú dà yàng","寻欢作乐":"xún huān zuò lè","一走了之":"yì zǒu liǎo zhī","字里行间":"zì lǐ háng jiān","含含糊糊":"hán hán hu hū","恰如其分":"qià rú qí fèn","破涕为笑":"pò tì wéi xiào","深更半夜":"shēn gēng bàn yè","千差万别":"qiān chā wàn bié","数不胜数":"shǔ bú shèng shǔ","据为己有":"jù wéi jǐ yǒu","天旋地转":"tiān xuán dì zhuàn","养尊处优":"yǎng zūn chǔ yōu","玻璃纤维":"bō li xiān wéi","吵吵闹闹":"chāo chao nào nào","晕头转向":"yūn tóu zhuàn xiàng","土生土长":"tǔ shēng tǔ zhǎng","宁死不屈":"nìng sǐ bù qū","不省人事":"bù xǐng rén shì","尽力而为":"jìn lì ér wéi","精明强干":"jīng míng qiáng gàn","唠唠叨叨":"láo lao dāo dāo","叽叽喳喳":"jī ji zhā zhā","功不可没":"gōng bù kě mò","锲而不舍":"qiè ér bù shě","排忧解难":"pái yōu jiě nàn","稀里糊涂":"xī li hú tú","各有所长":"gè yǒu suǒ cháng","的的确确":"dí dí què què","哄堂大笑":"hōng táng dà xiào","听而不闻":"tīng ér bù wén","刀耕火种":"dāo gēng huǒ zhòng","内分泌腺":"nèi fèn mì xiàn","化险为夷":"huà xiǎn wéi yí","百发百中":"bǎi fā bǎi zhòng","重见天日":"chóng jiàn tiān rì","反败为胜":"fǎn bài wéi shèng","一了百了":"yì liǎo bǎi liǎo","大大咧咧":"dà da liē liē","心急火燎":"xīn jí huǒ liǎo","粗心大意":"cū xīn dà yi","鸡皮疙瘩":"jī pí gē da","夷为平地":"yí wéi píng dì","日积月累":"rì jī yuè lěi","设身处地":"shè shēn chǔ dì","投其所好":"tóu qí suǒ hào","间不容发":"jiān bù róng fà","人满为患":"rén mǎn wéi huàn","穷追不舍":"qióng zhuī bù shě","为时已晚":"wéi shí yǐ wǎn","如数家珍":"rú shǔ jiā zhēn","心里有数":"xīn lǐ yǒu shù","以牙还牙":"yǐ yá huán yá","神不守舍":"shén bù shǒu shě","孟什维克":"mèng shí wéi kè","各自为战":"gè zì wéi zhàn","怨声载道":"yuàn shēng zài dào","救苦救难":"jiù kǔ jiù nàn","好好先生":"hǎo hǎo xiān sheng","怪模怪样":"guài mú guài yàng","抛头露面":"pāo tóu lù miàn","游手好闲":"yóu shǒu hào xián","无所不为":"wú suǒ bù wéi","调虎离山":"diào hǔ lí shān","步步为营":"bù bù wéi yíng","好大喜功":"hào dà xǐ gōng","众矢之的":"zhòng shǐ zhī dì","长生不死":"cháng shēng bù sǐ","蔚为壮观":"wèi wéi zhuàng guān","不可胜数":"bù kě shèng shǔ","鬼使神差":"guǐ shǐ shén chāi","洁身自好":"jié shēn zì hào","敢作敢为":"gǎn zuò gǎn wéi","茅塞顿开":"máo sè dùn kāi","走马换将":"zǒu mǎ huàn jiàng","为时过早":"wéi shí guò zǎo","为人师表":"wéi rén shī biǎo","阴差阳错":"yīn chā yáng cuò","油腔滑调":"yóu qiāng huá diào","重蹈覆辙":"chóng dǎo fù zhé","骂骂咧咧":"mà ma liē liē","絮絮叨叨":"xù xù dāo dāo","如履薄冰":"rú lǚ bó bīng","损兵折将":"sǔn bīng zhé jiàng","拐弯抹角":"guǎi wān mò jiǎo","像模像样":"xiàng mú xiàng yàng","供过于求":"gōng guò yú qiú","开花结果":"kāi huā jiē guǒ","仔仔细细":"zǐ zǐ xì xì","川藏公路":"chuān zàng gōng lù","河北梆子":"hé běi bāng zi","长年累月":"cháng nián lěi yuè","正儿八经":"zhèng er bā jīng","不识抬举":"bù shí tái ju","重振旗鼓":"chóng zhèn qí gǔ","气息奄奄":"qì xī yān yān","紧追不舍":"jǐn zhuī bù shě","服服帖帖":"fú fu tiē tiē","强词夺理":"qiǎng cí duó lǐ","噼里啪啦":"pī li pā lā","人才济济":"rén cái jǐ jǐ","发人深省":"fā rén shēn xǐng","不足为凭":"bù zú wéi píng","为富不仁":"wéi fù bù rén","连篇累牍":"lián piān lěi dú","呼天抢地":"hū tiān qiāng dì","落落大方":"luò luò dà fāng","自吹自擂":"zì chuī zì léi","乐善好施":"lè shàn hào shī","以攻为守":"yǐ gōng wéi shǒu","磨磨蹭蹭":"mó mó cèng cèng","削铁如泥":"xuē tiě rú ní","助纣为虐":"zhù zhòu wéi nüè","以退为进":"yǐ tuì wéi jìn","嘁嘁喳喳":"qī qī chā chā","枪林弹雨":"qiāng lín dàn yǔ","令人发指":"lìng rén fà zhǐ","转败为胜":"zhuǎn bài wéi shèng","转弯抹角":"zhuǎn wān mò jiǎo","在劫难逃":"zài jié nán táo","正当防卫":"zhèng dàng fáng wèi","不足为怪":"bù zú wéi guài","难兄难弟":"nàn xiōng nàn dì","咿咿呀呀":"yī yī yā yā","弹尽粮绝":"dàn jìn liáng jué","阿谀奉承":"ē yú fèng chéng","稀里哗啦":"xī li huā lā","返老还童":"fǎn lǎo huán tóng","好高骛远":"hào gāo wù yuǎn","鹿死谁手":"lù sǐ shéi shǒu","差强人意":"chā qiáng rén yì","大吹大擂":"dà chuī dà léi","成家立业":"chéng jiā lì yè","自怨自艾":"zì yuàn zì yì","负债累累":"fù zhài lěi lěi","古为今用":"gǔ wéi jīn yòng","入土为安":"rù tǔ wéi ān","下不为例":"xià bù wéi lì","一哄而上":"yì hōng ér shàng","没头苍蝇":"méi tóu cāng ying","天差地远":"tiān chā dì yuǎn","风卷残云":"fēng juǎn cán yún","多灾多难":"duō zāi duō nàn","乳臭未干":"rǔ xiù wèi gān","行家里手":"háng jiā lǐ shǒu","狼狈为奸":"láng bèi wéi jiān","处变不惊":"chǔ biàn bù jīng","一唱一和":"yí chàng yí hè","一念之差":"yí niàn zhī chā","金蝉脱壳":"jīn chán tuō qiào","滴滴答答":"dī dī dā dā","硕果累累":"shuò guǒ léi léi","好整以暇":"hào zhěng yǐ xiá","红得发紫":"hóng de fā zǐ","传为美谈":"chuán wéi měi tán","富商大贾":"fù shāng dà gǔ","四海为家":"sì hǎi wéi jiā","了若指掌":"liǎo ruò zhǐ zhǎng","大有可为":"dà yǒu kě wéi","出头露面":"chū tóu lù miàn","鼓鼓囊囊":"gǔ gu nāng nāng","窗明几净":"chuāng míng jī jìng","泰然处之":"tài rán chǔ zhī","怒发冲冠":"nù fà chōng guān","有机玻璃":"yǒu jī bō li","骨头架子":"gǔ tou jià zi","义薄云天":"yì bó yún tiān","一丁点儿":"yī dīng diǎn er","时来运转":"shí lái yùn zhuǎn","陈词滥调":"chén cí làn diào","化整为零":"huà zhěng wéi líng","火烧火燎":"huǒ shāo huǒ liǎo","干脆利索":"gàn cuì lì suǒ","吊儿郎当":"diào er láng dāng","广种薄收":"guǎng zhòng bó shōu","种瓜得瓜":"zhòng guā dé guā","种豆得豆":"zhòng dòu dé dòu","难舍难分":"nán shě nán fēn","歃血为盟":"shà xuè wéi méng","奋发有为":"fèn fā yǒu wéi","阴错阳差":"yīn cuò yáng chā","东躲西藏":"dōng duǒ xī cáng","烟熏火燎":"yān xūn huǒ liǎo","钻牛角尖":"zuān niú jiǎo jiān","乔装打扮":"qiáo zhuāng dǎ bàn","改弦更张":"gǎi xián gēng zhāng","河南梆子":"hé nán bāng zi","好吃懒做":"hào chī lǎn zuò","何乐不为":"hé lè bù wéi","大出风头":"dà chū fēng tóu","攻城掠地":"gōng chéng lüè dì","漂漂亮亮":"piào piào liang liang","折衷主义":"zhé zhōng zhǔ yì","大马哈鱼":"dà mǎ hǎ yú","绿树成荫":"lǜ shù chéng yīn","率先垂范":"shuài xiān chuí fàn","家长里短":"jiā cháng lǐ duǎn","宽大为怀":"kuān dà wéi huái","左膀右臂":"zuǒ bǎng yòu bì","一笑了之":"yí xiào liǎo zhī","天下为公":"tiān xià wéi gōng","还我河山":"huán wǒ hé shān","何足为奇":"hé zú wéi qí","好自为之":"hǎo zì wéi zhī","风姿绰约":"fēng zī chuò yuē","大雨滂沱":"dà yǔ pāng tuó","传为佳话":"chuán wéi jiā huà","吃里扒外":"chī lǐ pá wài","重操旧业":"chóng cāo jiù yè","小家子气":"xiǎo jiā zi qì","少不更事":"shào bù gēng shì","难分难舍":"nán fēn nán shě","添砖加瓦":"tiān zhuān jiā wǎ","是非分明":"shì fēi fēn míng","舍我其谁":"shě wǒ qí shuí","偏听偏信":"piān tīng piān xìn","量入为出":"liàng rù wéi chū","降龙伏虎":"xiáng lóng fú hǔ","钢化玻璃":"gāng huà bō li","正中下怀":"zhèng zhòng xià huái","以身许国":"yǐ shēn xǔ guó","一语中的":"yì yǔ zhòng dì","丧魂落魄":"sàng hún luò pò","三座大山":"sān zuò dà shān","济济一堂":"jǐ jǐ yì táng","好事之徒":"hào shì zhī tú","干净利索":"gàn jìng lì suǒ","出将入相":"chū jiàng rù xiàng","袅袅娜娜":"niǎo niǎo nuó nuó","狐狸尾巴":"hú li wěi ba","好逸恶劳":"hào yì wù láo","大而无当":"dà ér wú dàng","打马虎眼":"dǎ mǎ hu yǎn","板上钉钉":"bǎn shàng dìng dīng","吆五喝六":"yāo wǔ hè liù","虾兵蟹将":"xiā bīng xiè jiàng","水调歌头":"shuǐ diào gē tóu","数典忘祖":"shǔ diǎn wàng zǔ","人事不省":"rén shì bù xǐng","曲高和寡":"qǔ gāo hè guǎ","屡教不改":"lǚ jiào bù gǎi","互为因果":"hù wéi yīn guǒ","互为表里":"hù wéi biǎo lǐ","厚此薄彼":"hòu cǐ bó bǐ","过关斩将":"guò guān zhǎn jiàng","疙疙瘩瘩":"gē ge dā dā","大腹便便":"dà fù pián pián","走为上策":"zǒu wéi shàng cè","冤家对头":"yuān jia duì tóu","有隙可乘":"yǒu xì kě chèng","一鳞半爪":"yì lín bàn zhǎo","片言只语":"piàn yán zhǐ yǔ","开花结实":"kāi huā jié shí","经年累月":"jīng nián lěi yuè","含糊其词":"hán hú qí cí","寡廉鲜耻":"guǎ lián xiǎn chǐ","成年累月":"chéng nián lěi yuè","不徇私情":"bú xùn sī qíng","不当人子":"bù dāng rén zǐ","膀大腰圆":"bǎng dà yāo yuán","指腹为婚":"zhǐ fù wéi hūn","这么点儿":"zhè me diǎn er","意兴索然":"yì xīng suǒ rán","绣花枕头":"xiù huā zhěn tou","无的放矢":"wú dì fàng shǐ","望闻问切":"wàng wén wèn qiè","舍己为人":"shě jǐ wèi rén","穷年累月":"qióng nián lěi yuè","排难解纷":"pái nàn jiě fēn","处之泰然":"chǔ zhī tài rán","指鹿为马":"zhǐ lù wéi mǎ","危如累卵":"wēi rú lěi luǎn","天兵天将":"tiān bīng tiān jiàng","舍近求远":"shě jìn qiú yuǎn","南腔北调":"nán qiāng běi diào","苦中作乐":"kǔ zhōng zuò lè","厚积薄发":"hòu jī bó fā","臭味相投":"xiù wèi xiāng tóu","长幼有序":"zhǎng yòu yǒu xù","逼良为娼":"bī liáng wéi chāng","悲悲切切":"bēi bēi qiè qiē","败军之将":"bài jūn zhī jiàng","欺行霸市":"qī háng bà shì","削足适履":"xuē zú shì lǚ","先睹为快":"xiān dǔ wéi kuài","啼饥号寒":"tí jī háo hán","疏不间亲":"shū bú jiàn qīn","神差鬼使":"shén chāi guǐ shǐ","敲敲打打":"qiāo qiāo dǎ dǎ","平铺直叙":"píng pū zhí xù","没头没尾":"méi tóu mò wěi","寥寥可数":"liáo liáo kě shǔ","哼哈二将":"hēng hā èr jiàng","鹤发童颜":"hè fà tóng yán","各奔前程":"gè bèn qián chéng","弹无虚发":"dàn wú xū fā","大人先生":"dà rén xiān sheng","与民更始":"yǔ mín gēng shǐ","树碑立传":"shù bēi lì zhuàn","是非得失":"shì fēi dé shī","实逼处此":"shí bī chǔ cǐ","塞翁失马":"sài wēng shī mǎ","日薄西山":"rì bó xī shān","切身体会":"qiè shēn tǐ huì","片言只字":"piàn yán zhǐ zì","跑马卖解":"pǎo mǎ mài xiè","宁折不弯":"nìng zhé bù wān","零零散散":"líng líng sǎn sǎn","量体裁衣":"liàng tǐ cái yī","连中三元":"lián zhòng sān yuán","礼崩乐坏":"lǐ bēng yuè huài","不为已甚":"bù wéi yǐ shèn","转悲为喜":"zhuǎn bēi wéi xǐ","以眼还眼":"yǐ yǎn huán yǎn","蔚为大观":"wèi wéi dà guān","未为不可":"wèi wéi bù kě","童颜鹤发":"tóng yán hè fà","朋比为奸":"péng bǐ wéi jiān","莫此为甚":"mò cǐ wéi shèn","夹枪带棒":"jiā qiāng dài bàng","富商巨贾":"fù shāng jù jiǎ","淡然处之":"dàn rán chǔ zhī","箪食壶浆":"dān shí hú jiāng","创巨痛深":"chuāng jù tòng shēn","草长莺飞":"cǎo zhǎng yīng fēi","坐视不救":"zuò shī bú jiù","以己度人":"yǐ jǐ duó rén","随行就市":"suí háng jiù shì","文以载道":"wén yǐ zài dào","文不对题":"wén bú duì tí","铁板钉钉":"tiě bǎn dìng dīng","身体发肤":"shēn tǐ fà fū","缺吃少穿":"quē chī shǎo chuān","目无尊长":"mù wú zūn zhǎng","吉人天相":"jí rén tiān xiàng","毁家纾难":"huǐ jiā shū nàn","钢筋铁骨":"gāng jīn tiě gǔ","丢卒保车":"diū zú bǎo jū","丢三落四":"diū sān là sì","闭目塞听":"bì mù sè tīng","削尖脑袋":"xuē jiān nǎo dài","为非作恶":"wéi fēi zuò è","人才难得":"rén cái nán dé","情非得已":"qíng fēi dé yǐ","切中要害":"qiè zhòng yào hài","火急火燎":"huǒ jí huǒ liǎo","画地为牢":"huà dì wéi láo","好酒贪杯":"hào jiǔ tān bēi","长歌当哭":"cháng gē dàng kū","载沉载浮":"zài chén zài fú","遇难呈祥":"yù nàn chéng xiáng","榆木疙瘩":"yú mù gē da","以邻为壑":"yǐ lín wéi hè","洋为中用":"yáng wéi zhōng yòng","言为心声":"yán wéi xīn shēng","言必有中":"yán bì yǒu zhòng","图穷匕见":"tú qióng bǐ xiàn","滂沱大雨":"páng tuó dà yǔ","目不暇给":"mù bù xiá jǐ","量才录用":"liàng cái lù yòng","教学相长":"jiào xué xiāng zhǎng","悔不当初":"huǐ bù dāng chū","呼幺喝六":"hū yāo hè liù","不足为训":"bù zú wéi xùn","不拘形迹":"bù jū xíng jī","傍若无人":"páng ruò wú rén","罪责难逃":"zuì zé nán táo","自我吹嘘":"zì wǒ chuī xū","转祸为福":"zhuǎn huò wéi fú","勇冠三军":"yǒng guàn sān jūn","易地而处":"yì dì ér chǔ","卸磨杀驴":"xiè mò shā lǘ","玩儿不转":"wán ér bú zhuàn","天道好还":"tiān dào hǎo huán","身单力薄":"shēn dān lì bó","撒豆成兵":"sǎ dòu chéng bīng","片纸只字":"piàn zhǐ zhī zì","宁缺毋滥":"nìng quē wú làn","没没无闻":"mò mò wú wén","量力而为":"liàng lì ér wéi","历历可数":"lì lì kě shǔ","口碑载道":"kǒu bēi zài dào","君子好逑":"jūn zǐ hǎo qiú","好为人师":"hào wéi rén shī","豪商巨贾":"háo shāng jù jiǎ","各有所好":"gè yǒu suǒ hào","度德量力":"duó dé liàng lì","指天为誓":"zhǐ tiān wéi shì","逸兴遄飞":"yì xìng chuán fēi","心宽体胖":"xīn kuān tǐ pán","为德不卒":"wéi dé bù zú","天下为家":"tiān xià wéi jiā","视为畏途":"shì wéi wèi tú","三灾八难":"sān zāi bā nàn","沐猴而冠":"mù hóu ér guàn","哩哩啦啦":"lī li lā lā","见缝就钻":"jiàn fèng jiù zuān","夹层玻璃":"jiā céng bō li","急公好义":"jí gōng hào yì","积年累月":"jī nián lěi yuè","划地为牢":"huá dì wéi láo","更名改姓":"gēng míng gǎi xìng","奉为圭臬":"fèng wéi guī niè","多难兴邦":"duō nàn xīng bāng","不破不立":"bú pò bú lì","坐地自划":"zuò dì zì huá","坐不重席":"zuò bù chóng xí","坐不窥堂":"zuò bù kuī táng","作嫁衣裳":"zuò jià yī shang","左枝右梧":"zuǒ zhī yòu wú","左宜右有":"zuǒ yí yòu yǒu","钻头觅缝":"zuān tóu mì fèng","钻天打洞":"zuān tiān dǎ dòng","钻皮出羽":"zuān pí chū yǔ","钻火得冰":"zuān huǒ dé bīng","钻洞觅缝":"zuàn dòng mì féng","钻冰求火":"zuān bīng qiú huǒ","子为父隐":"zǐ wéi fù yǐn","擢发难数":"zhuó fà nán shǔ","着人先鞭":"zhuó rén xiān biān","斫雕为朴":"zhuó diāo wéi pǔ","锥处囊中":"zhuī chǔ náng zhōng","椎心饮泣":"chuí xīn yǐn qì","椎心泣血":"chuí xīn qì xuè","椎牛飨士":"chuí niú xiǎng shì","椎牛歃血":"chuí niú shà xuè","椎牛发冢":"chuí niú fà zhǒng","椎埋屠狗":"chuí mái tú gǒu","椎埋狗窃":"chuí mái gǒu qiè","壮发冲冠":"zhuàng fā chōng guàn","庄严宝相":"zhuāng yán bǎo xiàng","转愁为喜":"zhuǎn chóu wéi xǐ","转嗔为喜":"zhuǎn chēn wéi xǐ","拽巷啰街":"zhuài xiàng luó jiē","拽耙扶犁":"zhuāi pá fú lí","拽布拖麻":"zhuài bù tuō má","箸长碗短":"zhù cháng wǎn duǎn","铸剑为犁":"zhù jiàn wéi lí","杼柚其空":"zhù yòu qí kōng","杼柚空虚":"zhù yòu kōng xū","助天为虐":"zhù tiān wéi nüè","属垣有耳":"zhǔ yuán yǒu ěr","属毛离里":"zhǔ máo lí lǐ","属辞比事":"zhǔ cí bǐ shì","逐物不还":"zhú wù bù huán","铢量寸度":"zhū liáng cùn duó","铢两悉称":"zhū liǎng xī chèn","侏儒观戏":"zhū rú guān xì","朱轓皁盖":"zhū fān zào gài","昼度夜思":"zhòu duó yè sī","诪张为幻":"zhōu zhāng wéi huàn","重明继焰":"chóng míng jì yàn","众啄同音":"zhòng zhuó tóng yīn","众毛攒裘":"zhòng máo cuán qiú","众好众恶":"zhòng hào zhòng wù","擿埴索涂":"zhāi zhí suǒ tú","稚齿婑媠":"zhì chǐ wǒ tuó","至当不易":"zhì dàng bú yì","指皂为白":"zhǐ zào wéi bái","指雁为羹":"zhǐ yàn wéi gēng","指树为姓":"zhǐ shù wéi xìng","指山说磨":"zhǐ shān shuō mò","止戈为武":"zhǐ gē wéi wǔ","枝干相持":"zhī gàn xiāng chí","枝大于本":"zh dà yú běn","支吾其词":"zhī wú qí cí","正身率下":"zhèng shēn shuài xià","正冠李下":"zhèng guàn lǐ xià","整冠纳履":"zhěng guān nà lǚ","整躬率物":"zhěng gōng shuài wù","整顿干坤":"zhěng dùn gàn kūn","针头削铁":"zhēn tóu xuē tiě","贞松劲柏":"zhēn sōng jìng bǎi","赭衣塞路":"zhě yī sè lù","折箭为誓":"shé jiàn wéi shì","折而族之":"zhé ér zú zhī","昭德塞违":"zhāo dé sè wéi","章句小儒":"zhāng jù xiǎo rú","湛恩汪濊":"zhàn ēn wāng huì","占风望气":"zhān fēng wàng qì","斩将搴旗":"zhǎn jiàng qiān qí","曾母投杼":"zēng mǔ tóu zhù","曾参杀人":"zēng shēn shā rén","造谣中伤":"zào yáo zhòng shāng","早占勿药":"zǎo zhān wù yào","凿龟数策":"záo guī shǔ cè","攒三聚五":"cuán sān jù wǔ","攒眉蹙额":"cuán mei cù é","攒零合整":"cuán líng hé zhěng","攒锋聚镝":"cuán fēng jù dí","载笑载言":"zài xiào zài yán","载酒问字":"zài jiǔ wèn zì","殒身不恤":"yǔn shēn bú xù","云舒霞卷":"yún shū xiá juǎn","月中折桂":"yuè zhōng shé guì","月落参横":"yuè luò shēn héng","鬻驽窃价":"yù nú qiè jià","鬻鸡为凤":"yù jī wéi fèng","遇难成祥":"yù nàn chéng xiáng","郁郁累累":"yù yù lěi lěi","玉卮无当":"yù zhī wú dàng","语笑喧阗":"yǔ xiào xuān tián","与世沉浮":"yǔ shì chén fú","与时消息":"yǔ shí xiāo xi","逾墙钻隙":"yú qiáng zuān xì","渔夺侵牟":"yú duó qīn móu","杅穿皮蠹":"yú chuān pí dù","余勇可贾":"yú yǒng kě gǔ","予智予雄":"yú zhì yú xióng","予取予求":"yú qǔ yú qiú","于家为国":"yú jiā wéi guó","有借无还":"yǒu jiè wú huán","有加无已":"yǒu jiā wú yǐ","有国难投":"yǒu guó nán tóu","游必有方":"yóu bì yǒu fāng","油干灯尽":"yóu gàn dēng jìn","尤云殢雨":"yóu yún tì yǔ","庸中皦皦":"yōng zhōng jiǎo jiǎo","郢书燕说":"yǐng shū yān shuō","营蝇斐锦":"yíng yíng fēi jǐn","鹰心雁爪":"yīng xīn yàn zhǎo","莺吟燕儛":"yīng yín yàn wǔ","应天顺时":"yīng tiān shùn shí","印累绶若":"yìn léi shòu ruò","隐占身体":"yǐn zhàn shēn tǐ","饮犊上流":"yìn dú shàng liú","引绳切墨":"yǐn shéng qiē mò","龈齿弹舌":"yín chǐ dàn shé","因缘为市":"yīn yuán wéi shì","因树为屋":"yīn shù wéi wū","溢美溢恶":"yì měi yì wù","抑塞磊落":"yì sè lěi luò","倚闾望切":"yǐ lǘ wàng qiē","以意为之":"yǐ yì wéi zhī","以言为讳":"yǐ yán wéi huì","以疏间亲":"yǐ shū jiàn qīn","以水济水":"yǐ shuǐ jǐ shuǐ","以书为御":"yǐ shū wéi yù","以守为攻":"yǐ shǒu wéi gōng","以升量石":"yǐ shēng liáng dàn","以慎为键":"yǐ shèn wéi jiàn","以筌为鱼":"yǐ quán wéi yú","以利累形":"yǐ lì lěi xíng","以毁为罚":"yǐ huǐ wéi fá","以黑为白":"yǐ hēi wéi bái","以规为瑱":"yǐ guī wéi tiàn","以古为鉴":"yǐ gǔ wéi jiàn","以宫笑角":"yǐ gōng xiào jué","以法为教":"yǐ fǎ wéi jiào","以大恶细":"yǐ dà wù xì","遗世忘累":"yí shì wàng lěi","遗寝载怀":"yí qǐn zài huái","移的就箭":"yí dì jiù jiàn","依头缕当":"yī tóu lǚ dàng","衣租食税":"yì zū shí shuì","衣轻乘肥":"yì qīng chéng féi","衣裳之会":"yī shang zhī huì","衣单食薄":"yī dān shí bó","一还一报":"yì huán yí bào","叶公好龙":"yè gōng hào lóng","野调无腔":"yě diào wú qiāng","瑶池女使":"yáo chí nǚ shǐ","幺麽小丑":"yāo mó xiǎo chǒu","养精畜锐":"yǎng jīng xù ruì","卬首信眉":"áng shǒu shēn méi","洋洋纚纚":"yáng yáng sǎ sǎ","羊羔美酒":"yáng gāo měi jiǔ","扬风扢雅":"yáng fēng jié yǎ","燕昭市骏":"yān zhāo shì jùn","燕昭好马":"yān zhāo hǎo mǎ","燕石妄珍":"yān shí wàng zhēn","燕骏千金":"yān jùn qiān jīn","燕金募秀":"yān jīn mù xiù","燕驾越毂":"yān jià yuè gǔ","燕歌赵舞":"yān gē zhào wǔ","燕岱之石":"yān dài zhī shí","燕处危巢":"yàn chǔ wēi cháo","掞藻飞声":"shàn zǎo fēi shēng","偃革为轩":"yǎn gé wéi xuān","妍蚩好恶":"yán chī hǎo è","压良为贱":"yā liáng wéi jiàn","搀行夺市":"chān háng duó shì","泣数行下":"qì shù háng xià","当行出色":"dāng háng chū sè","秀出班行":"xiù chū bān háng","儿女成行":"ér nǚ chéng háng","大行大市":"dà háng dà shì","寻行数墨":"xún háng shǔ mò","埙篪相和":"xūn chí xiāng hè","血债累累":"xuè zhài lěi lěi","炫玉贾石":"xuàn yù gǔ shí","炫石为玉":"xuàn shí wéi yù","悬石程书":"xuán dàn chéng shū","悬狟素飡":"xuán huán sù cān","悬龟系鱼":"xuán guī xì yú","揎拳捋袖":"xuān quán luō xiù","轩鹤冠猴":"xuān hè guàn hóu","畜妻养子":"xù qī yǎng zǐ","羞人答答":"xiū rén dā dā","修鳞养爪":"xiū lín yǎng zhǎo","熊据虎跱":"xióng jù hǔ zhì","兄死弟及":"xiōng sǐ dì jí","腥闻在上":"xīng wén zài shàng","兴文匽武":"xīng wén yǎn wǔ","兴观群怨":"xìng guān qún yuàn","兴高彩烈":"xìng gāo cǎi liè","心手相应":"xīn shǒu xiāng yìng","心口相应":"xīn kǒu xiāng yīng","挟势弄权":"xié shì nòng quán","胁肩累足":"xié jiān lěi zú","校短量长":"jiào duǎn liáng cháng","小眼薄皮":"xiǎo yǎn bó pí","硝云弹雨":"xiāo yún dàn yǔ","鸮鸣鼠暴":"xiāo míng shǔ bào","削株掘根":"xuē zhū jué gēn","削铁无声":"xuē tiě wú shēng","削职为民":"xuē zhí wéi mín","削木为吏":"xuē mù wéi lì","想望风褱":"xiǎng wàng fēng huái","香培玉琢":"xiang pei yu zhuó","相鼠有皮":"xiàng shǔ yǒu pí","相时而动":"xiàng shí ér dòng","相切相磋":"xiāng qiē xiāng cuō","相女配夫":"xiàng nǚ pèi fū","相门有相":"xiàng mén yǒu xiàng","挦章撦句":"xián zhāng chě jù","先我着鞭":"xiān wǒ zhuó biān","习焉不察":"xí yān bù chá","歙漆阿胶":"shè qī ē jiāo","晰毛辨发":"xī máo biàn fà","悉索薄赋":"xī suǒ bó fù","雾鳞云爪":"wù lín yún zhǎo","物稀为贵":"wù xī wéi guì","碔砆混玉":"wǔ fū hùn yù","武断专横":"wǔ duàn zhuān héng","五石六鹢":"wǔ shí liù yì","五色相宣":"wǔ sè xiāng xuān","五侯七贵":"wǔ hóu qī guì","五侯蜡烛":"wǔ hòu là zhú","五羖大夫":"wǔ gǔ dà fū","吾自有处":"wú zì yǒu chǔ","无下箸处":"wú xià zhù chǔ","无伤无臭":"wú shāng wú xiù","无能为役":"wú néng wéi yì","无寇暴死":"wú kòu bào sǐ","无孔不钻":"wú kǒng bú zuàn","无间可乘":"wú jiān kě chéng","无间冬夏":"wú jiān dōng xià","无恶不为":"wú è bù wéi","无动为大":"wú dòng wéi dà","诬良为盗":"wū liáng wéi dào","握拳透爪":"wò quán tòu zhǎo","文武差事":"wén wǔ chāi shì","委委佗佗":"wēi wēi tuó tuó","惟日为岁":"wéi rì wéi suì","帷薄不修":"wéi bó bù xiū","为善最乐":"wéi shàn zuì lè","为山止篑":"wéi shān zhǐ kuì","为仁不富":"wéi rén bú fù","为裘为箕":"wéi qiú wéi jī","为民父母":"wéi mín fù mǔ","为虺弗摧":"wéi huǐ fú cuī","为好成歉":"wéi hǎo chéng qiàn","为鬼为蜮":"wéi guǐ wéi yù","望风响应":"wàng fēng xiǎng yīng","望尘僄声":"wàng chén piào shēng","往渚还汀":"wǎng zhǔ huán tīng","王贡弹冠":"wáng gòng dàn guàn","亡国大夫":"wáng guó dà fū","万贯家私":"wàn guàn jiā sī","晚食当肉":"wǎn shí dàng ròu","晚节不保":"wǎn jié bù bǎo","玩岁愒时":"wán suì kài shí","蛙蟆胜负":"wā má shèng fù","吞言咽理":"tūn yán yàn lǐ","颓垣断堑":"tuí yuán duàn qiàn","推干就湿":"tuī gàn jiù shī","剸繁决剧":"tuán fán jué jù","团头聚面":"tuán tóu jù miàn","兔丝燕麦":"tù sī yàn mài","兔头麞脑":"tù tóu zhāng nǎo","兔葵燕麦":"tù kuí yàn mài","吐哺握发":"tǔ bǔ wò fà","投传而去":"tóu zhuàn ér qù","头没杯案":"tóu mò bēi àn","头昏脑闷":"tóu hūn nǎo mèn","头会箕敛":"tóu kuài jī liǎn","头出头没":"tóu chū tóu mò","痛自创艾":"tòng zì chuāng yì","同恶相助":"tóng wù xiāng zhù","同恶相恤":"tóng wù xiāng xù","痌瘝在抱":"tōng guān zài bào","通文调武":"tōng wén diào wǔ","停留长智":"tíng liú zhǎng zhì","铁树开华":"tiě shù kāi huā","条贯部分":"tiáo guàn bù fēn","挑牙料唇":"tiǎo yá liào chún","挑么挑六":"tiāo yāo tiāo liù","挑唇料嘴":"tiǎo chún liào zuǐ","恬不为意":"tián bù wéi yì","恬不为怪":"tián bù wéi guài","天下为笼":"tiān xià wéi lóng","天台路迷":"tiān tái lù mí","天年不遂":"tiān nián bú suì","探囊胠箧":"tàn náng qū qiè","谭言微中":"tán yán wēi zhòng","谈言微中":"tán yán wēi zhòng","狧穅及米":"shì kāng jí mǐ","随物应机":"suí wù yīng jī","搜岩采干":"sōu yán cǎi gàn","宋斤鲁削":"sòng jīn lǔ xuē","松筠之节":"sōng yún zhī jié","四亭八当":"sì tíng bā dàng","四马攒蹄":"sì mǎ cuán tí","四不拗六":"sì bú niù liù","思所逐之":"sī suǒ zhú zhī","丝恩发怨":"sī ēn fà yuàn","硕望宿德":"shuò wàng xiǔ dé","铄古切今":"shuò gǔ qiē jīn","顺风而呼":"shùn fēng ér hū","顺风吹火":"shùn fēng chuī huǒ","水中著盐":"shuǐ zhōng zhuó yán","双柑斗酒":"shuāng gān dǒu jiǔ","数米而炊":"shǔ mǐ ér chuī","数米量柴":"shǔ mǐ liáng chái","数理逻辑":"shù lǐ luó ji","数黑论黄":"shǔ hēi lùn huáng","数白论黄":"shǔ bái lùn huáng","束缊还妇":"shù yūn huán fù","束蒲为脯":"shù pú wéi pú","束椽为柱":"shù chuán wéi zhù","书缺有间":"shū quē yǒu jiàn","手足重茧":"shǒu zú chóng jiǎn","手足异处":"shǒu zú yì chǔ","手脚干净":"shǒu jiǎo gàn jìng","手不应心":"shǒu bù yīng xīn","螫手解腕":"shì shǒu jiě wàn","释知遗形":"shì zhī yí xíng","适时应务":"shì shí yīng wù","适情率意":"shì qíng shuài yì","适当其冲":"shì dāng qí chōng","视为知己":"shì wéi zhī jǐ","使羊将狼":"shǐ yáng jiàng láng","食为民天":"shí wéi mín tiān","拾掇无遗":"shí duō wú yí","实与有力":"shí yù yǒu lì","石英玻璃":"shí yīng bō li","石室金匮":"shí shì jīn guì","什袭珍藏":"shí xí zhēn cáng","什伍东西":"shí wǔ dōng xī","什围伍攻":"shí wéi wǔ gōng","十魔九难":"shí mó jiǔ nàn","诗书发冢":"shī shū fà zhǒng","虱处裈中":"shī chǔ kūn zhōng","师直为壮":"shī zhí wéi zhuàng","尸居龙见":"shī jū lóng xiàn","圣经贤传":"shèng jīng xián zhuàn","圣君贤相":"shèng jūn xián xiàng","生拖死拽":"shēng tuō sǐ zhuài","审己度人":"shěn jǐ duó rén","神武挂冠":"shén wǔ guà guàn","神龙失埶":"shén lóng shī shì","深文曲折":"shēn wén qǔ shé","深厉浅揭":"shēn lì qiǎn qì","深谷为陵":"shēn gǔ wéi líng","深恶痛疾":"shēn wù tòng jí","深仇宿怨":"shēn chóu xiǔ yuàn","舍己为公":"shě jǐ wèi gōng","舍短取长":"shě duǎn qǔ cháng","舍策追羊":"shě cè zhuī yáng","蛇蝎为心":"shé xiē wéi xīn","少成若性":"shào chéng ruò xìng","上当学乖":"shàng dàng xué guāi","赏不当功":"shǎng bù dāng gōng","善自为谋":"shàn zì wéi móu","善为说辞":"shàn wéi shuō cí","善善恶恶":"shàn shàn wù è","善财难舍":"shàn cái nán shě","苫眼铺眉":"shān yǎn pū méi","讪牙闲嗑":"shàn yá xián kē","山阴乘兴":"shān yīn chéng xīng","山殽野湋":"shān yáo yě wéi","山溜穿石":"shān liù chuān shí","山节藻棁":"shān jié zǎo zhuō","杀鸡为黍":"shā jī wéi shǔ","色厉胆薄":"sè lì dǎn bó","桑荫未移":"sāng yīn wèi yí","桑荫不徙":"sāng yīn bù xǐ","桑土绸缪":"sāng tǔ chóu miù","桑户棬枢":"sāng hù juàn shū","三战三北":"sān zhàn sān běi","三瓦两舍":"sān wǎ liǎng shě","三人为众":"sān rén wèi zhòng","三差两错":"sān chā liǎng cuò","塞井焚舍":"sāi jǐng fén shě","洒心更始":"sǎ xīn gèng shǐ","洒扫应对":"sǎ sǎo yìng duì","软红香土":"ruǎn hóng xiāng tǔ","入吾彀中":"rù wú gòu zhōng","入铁主簿":"rù tiě zhǔ bù","入理切情":"rù lǐ qiē qíng","汝成人耶":"rǔ chéng rén yé","如水投石":"rú shuǐ tóu shí","如切如磋":"rú qiē rú cuō","如登春台":"rú dēng chūn tái","肉薄骨并":"ròu bó gǔ bìng","柔情绰态":"róu qíng chuò tài","戎马劻勷":"róng mǎ kuāng ráng","日中为市":"rì zhōng wéi shì","日月参辰":"rì yuè shēn chén","日省月修":"rì xǐng yuè xiū","日削月割":"rì xuē yuè gē","日省月试":"rì xǐng yuè shì","任达不拘":"rèn dá bù jū","人言藉藉":"rén yán jí jí","人模狗样":"rén mú gǒu yàng","人莫予毒":"rén mò yú dú","热熬翻饼":"rè áo fān bǐng","圈牢养物":"juàn láo yǎng wù","取予有节":"qǔ yǔ yǒu jié","诎要桡腘":"qū yāo ráo guó","穷形尽相":"qióng xíng jìn xiàng","情凄意切":"qíng qī yì qiè","情见势屈":"qíng xiàn shì qū","情见乎辞":"qíng xiàn hū cí","清都绛阙":"qīng dōu jiàng què","倾肠倒肚":"qīng cháng dào dǔ","青紫被体":"qīng zǐ pī tǐ","青林黑塞":"qīng lín hēi sài","螓首蛾眉":"qín shǒu é méi","琴瑟之好":"qín sè zhī hào","且住为佳":"qiě zhù wéi jiā","切树倒根":"qiē shù dǎo gēn","切理餍心":"qiē lǐ yàn xīn","切近的当":"qiē jìn de dāng","翘足引领":"qiáo zú yǐn lǐng","巧发奇中":"qiǎo fā qí zhòng","强嘴拗舌":"jiàng zuǐ niù shé","强直自遂":"qiáng zhí zì suí","强死强活":"qiǎng sǐ qiǎng huó","强食自爱":"qiǎng shí zì ài","强食靡角":"qiǎng shí mí jiǎo","强弓劲弩":"qiáng gōng jìng nǔ","强聒不舍":"qiǎng guō bù shě","强凫变鹤":"qiáng fú biàn hè","强而后可":"qiǎng ér hòu kě","强得易贫":"qiǎng dé yì pín","遣兴陶情":"qiǎn xìng táo qíng","牵羊担酒":"qiān yáng dān jiǔ","千了百当":"qiān liǎo bǎi dàng","泣下如雨":"qì xià rú yǔ","起偃为竖":"qǐ yǎn wéi shù","岂弟君子":"kǎi tì jūn zǐ","綦溪利跂":"qí xī lì qí","棋输先著":"qí shū xiān zhuó","齐王舍牛":"qí wáng shě niú","欺天诳地":"qī tiān kuáng dì","普天率土":"pǔ tiān shuài tǔ","铺胸纳地":"pū xiōng nà dì","铺锦列绣":"pū jǐn liè xiù","破家为国":"pò jiā wèi guó","破觚为圜":"pò gū wéi yuán","萍飘蓬转":"píng piāo péng zhuàn","帡天极地":"píng tiān jí dì","屏声息气":"bǐng shēng xī qì","凭几据杖":"píng jī jù zhàng","贫嘴薄舌":"pín zuǐ bó shé","片语只辞":"piàn yǔ zhī cí","披发文身":"pī fà wén shēn","烹龙炮凤":"pēng lóng páo fèng","炰鳖脍鲤":"fǒu biē kuài lǐ","庞眉皓发":"páng méi hào fà","攀花折柳":"pān huā zhé liǔ","攀蟾折桂":"pān chán shé guì","女大难留":"nǚ dà nán liú","弄玉吹箫":"nòng yù chuī xiāo","弄管调弦":"nòng guǎn tiáo xián","弄粉调朱":"nòng fěn diào zhū","浓抹淡妆":"nóng mò dàn zhuāng","捻土为香":"niǎn tǔ wéi xiāng","年谊世好":"nián yì shì hǎo","年华垂暮":"nián huá chuí mù","儗不于伦":"nǐ bù yú lún","泥而不滓":"ní ér bù zǐ","能者为师":"néng zhě wéi shī","能不称官":"néng bú chèn guān","挠直为曲":"náo zhí wéi qū","难进易退":"nán jìn yì tuì","难得糊涂":"nán dé hú tú","南蛮鴂舌":"nán mán jué shé","南贩北贾":"nán fàn běi gǔ","牧猪奴戏":"mù zhū nú xì","目眢心忳":"mù yuān xīn tún","目挑心招":"mù tiǎo xīn zhāo","目量意营":"mù liàng yì yíng","木头木脑":"mù tóu mù nǎo","木干鸟栖":"mù gàn niǎo qī","侔色揣称":"móu sè chuǎi chèn","莫予毒也":"mò yú dú yě","抹粉施脂":"mò fěn shī zhī","磨砻镌切":"mó lóng juān qiē","磨棱刓角":"mó léng wán jiǎo","摸门不着":"mō mén bù zháo","摸不着边":"mō bù zhuó biān","命中注定":"mìng zhōng zhù dìng","鸣鹤之应":"míng hè zhī yìng","明效大验":"míng xiào dà yàn","名我固当":"míng wǒ gù dāng","邈处欿视":"miǎo chǔ kǎn shì","黾穴鸲巢":"měng xué qú cháo","绵里薄材":"mián lǐ bó cái","靡有孑遗":"mǐ yǒu jié yí","靡衣偷食":"mǐ yī tōu shí","迷恋骸骨":"mí liàn hái gǔ","扪参历井":"mén shēn lì jǐng","门单户薄":"mén dān hù bó","昧旦晨兴":"mèi dàn chén xīng","冒名接脚":"mào míng jiē jiǎo","毛遂堕井":"máo suí duò jǐng","毛发倒竖":"máo fā dǎo shù","卖文为生":"mài wén wéi shēng","卖李钻核":"mài lǐ zuān hé","买椟还珠":"mǎi dú huán zhū","埋三怨四":"mán sān yuàn sì","马入华山":"mǎ rù huá shān","落魄江湖":"luò pò jiāng hú","落落难合":"luò luò nán hé","落草为寇":"luò cǎo wéi kòu","罗织构陷":"luó zhī gòu xiàn","鸾凤和鸣":"luán fèng hè míng","率由旧章":"shuài yóu jiù zhāng","率土同庆":"shuài tǔ tóng qìng","率兽食人":"shuài shòu shí rén","率土归心":"shuài tǔ guī xīn","率马以骥":"shuài mǎ yǐ jì","率尔成章":"shuài ěr chéng zhāng","鲁斤燕削":"lǔ jīn yàn xuē","漏尽更阑":"lòu jìn gēng lán","笼鸟槛猿":"lóng niǎo jiàn yuán","笼鸟池鱼":"lóng niǎo chí yú","龙游曲沼":"lóng yóu qū zhǎo","龙血玄黄":"lóng xuè xuán huáng","龙雕凤咀":"lóng diāo fèng jǔ","六尺之讬":"liù chǐ zhī tuō","令原之戚":"líng yuán zhī qī","令人捧腹":"lìng rén pěng fù","陵劲淬砺":"líng jìng cuì lì","临敌易将":"lín dí yì jiàng","裂裳衣疮":"liè shang yī chuāng","裂冠毁冕":"liè guàn huǐ miǎn","了无惧色":"liǎo wú jù sè","了身达命":"liǎo shēn dá mìng","了然无闻":"liǎo rán wú wén","了不可见":"liǎo bù kě jiàn","了不长进":"liǎo bù zhǎng jìn","燎发摧枯":"liǎo fà cuī kū","审时度势":"shěn shí duó shì","量小力微":"liàng xiǎo lì wēi","相时度力":"xiāng shí duó lì","量枘制凿":"liàng ruì zhì záo","量如江海":"liàng rú jiāng hǎi","量金买赋":"liàng jīn mǎi fù","量己审分":"liàng jǐ shěn fēn","敛骨吹魂":"liǎn gǔ chuī hún","詈夷为跖":"lì yí wéi zhí","利令志惛":"lì lìng zhì hūn","李广不侯":"lǐ guǎng bú hòu","礼为情貌":"lǐ wéi qíng mào","礼让为国":"lǐ ràng wéi guó","犁生骍角":"lí shēng xīng jiǎo","离本徼末":"lí běn jiǎo mò","楞眉横眼":"léng méi hèng yǎn","擂天倒地":"léi tiān dǎo dì","累足成步":"lěi zú chéng bù","累瓦结绳":"lěi wǎ jié shéng","累土至山":"lěi tǔ zhì shān","累土聚沙":"lěi tǔ jù shā","累卵之危":"lěi luǎn zhī wēi","累累如珠":"lěi lěi rú zhū","累块积苏":"lěi kuài jī sū","乐山乐水":"lè shān lè shuǐ","潦原浸天":"lǎo yuán jìn tiān","老师宿儒":"lǎo shī xiǔ rú","牢什古子":"láo shí gǔ zi","琅嬛福地":"láng huán fú dì","揆情度理":"kuí qíng duó lǐ","旷日累时":"kuàng rì lěi shí","匡救弥缝":"kuāng jiù mí fèng","枯树生华":"kū shù shēng huā","口轻舌薄":"kǒu qīng shé bó","口角生风":"kǒu jiǎo shēng fēng","口角春风":"kǒu jiǎo chūn fēng","口角风情":"kǒu jiǎo fēng qíng","口干舌焦":"kǒu gān shé jiāo","口腹之累":"kǒu fù zhī lěi","空腹便便":"kōng fù pián pián","嗑牙料嘴":"kē yá liào zuǐ","刻木为鹄":"kè mù wéi hú","咳珠唾玉":"ké zhū tuò yù","咳唾成珠":"ké tuò chéng zhū","抗颜为师":"kàng yán wéi shī","开华结果":"kāi huā jié guǒ","峻阪盐车":"jùn bǎn yán chē","嚼铁咀金":"jiáo tiě jǔ jīn","嚼墨喷纸":"jué mò pēn zhǐ","倔头强脑":"juè tóu jiàng nǎo","倔头倔脑":"juè tóu juè nǎo","倦鸟知还":"juàn niǎo zhī huán","卷席而葬":"juǎn xí ér zàng","卷甲倍道":"juǎn jiǎ bèi dào","聚米为山":"jù mǐ wéi shān","举手相庆":"jǔ shǒu xiāng qìng","举世混浊":"jǔ shì hún zhuó","鞠为茂草":"jū wéi mào cǎo","拘神遣将":"jū shén qiǎn jiàng","居下讪上":"jū xià shàn shàng","久要不忘":"jiǔ yāo bú wàng","九转功成":"jiǔ zhuǎn gōng chéng","九蒸三熯":"jiǔ zhēng sān hàn","敬业乐群":"jìng yè lè qún","井底虾蟆":"jǐng dǐ xiā má","旌旗卷舒":"jīng qí juǎn shū","荆棘载途":"jīng jí zài tú","禁舍开塞":"jìn shě kāi sāi","祲威盛容":"jìn wēi shèng róng","进退消长":"jìn tuì xiāo cháng","进退应矩":"jìn tuì yīng jǔ","进退触籓":"jìn tuì chù fān","进退跋疐":"jìn tuì bá zhì","尽多尽少":"jǐn duō jǐn shǎo","锦囊还矢":"jǐn náng huán shǐ","矜己自饰":"jīn jǐ zì shì","矜功负气":"jīn gōng fù qì","津关险塞":"jīn guān xiǎn sài","金吾不禁":"jīn wú bú jìn","金翅擘海":"jīn chì bāi hǎi","解衣衣人":"jiě yī yī rén","解人难得":"jiě rén nán dé","解铃系铃":"jiě líng xì líng","解发佯狂":"jiě fà yáng kuáng","诘屈磝碻":"jié qū áo qiāo","教猱升木":"jiāo náo shēng mù","较瘦量肥":"jiào shòu liàng féi","角立杰出":"jiǎo lì jié chū","焦沙烂石":"jiāo shā làn shí","骄儿騃女":"jiāo ér sì nǚ","浇风薄俗":"jiāo fēng bó sú","降妖捉怪":"xiáng yāo zhuō guài","将取固予":"jiāng qǔ gù yǔ","将门有将":"jiàng mén yǒu jiàng","将夺固与":"jiāng duó gù yǔ","槛花笼鹤":"jiàn huā lóng hè","鉴影度形":"jiàn yǐng duó xíng","渐不可长":"jiàn bù kě zhǎng","见素抱朴":"xiàn sù bào pǔ","见弃于人":"jiàn qì yú rén","简丝数米":"jiǎn sī shǔ mǐ","俭不中礼":"jiǎn bú zhòng lǐ","间见层出":"jiàn xiàn céng chū","尖嘴薄舌":"jiān zuǐ bó shé","甲冠天下":"jiǎ guàn tiān xià","葭莩之亲":"jiā fú zhī qīn","家累千金":"jiā lèi qiān jīn","家给人足":"jiā jǐ rén zú","家道从容":"jiā dào cóng róng","夹袋人物":"jiā dài rén wù","霁风朗月":"jì fēng lǎng yuè","寄兴寓情":"jì xìng yù qíng","计深虑远":"jì shēn lǜ yuǎn","计功量罪":"jì gōng liàng zuì","掎裳连襼":"jǐ shang lián yì","虮虱相吊":"jǐ shī xiāng diào","疾不可为":"jí bù kě wéi","极深研几":"jí shēn yán jī","及宾有鱼":"jí bīn yǒu yú","激薄停浇":"jī bó tíng jiāo","积素累旧":"jī sù lěi jiù","积时累日":"jī shí lěi rì","积露为波":"jī lù wéi bō","积德累功":"jī dé lěi gōng","积谗糜骨":"jī chán méi gǔ","击排冒没":"jī pái mào mò","祸为福先":"huò wéi fú xiān","祸福相依":"huò fú xiāng yī","获隽公车":"huò jùn gōng chē","混应滥应":"hùn yīng làn yīng","毁舟为杕":"huǐ zhōu wéi duò","毁钟为铎":"huǐ zhōng wéi duó","毁冠裂裳":"huǐ guān liè cháng","晦盲否塞":"huì máng pǐ sè","回船转舵":"huí chuán zhuàn duò","潢池盗弄":"huáng chí dào nòng","黄冠草履":"huáng guàn cǎo lǚ","黄发儿齿":"huáng fà ér chǐ","黄发垂髫":"huáng fà chuí tiáo","还珠返璧":"huán zhū fǎn bì","还年驻色":"huán nián zhù sè","还年却老":"huán nián què lǎo","坏裳为裤":"huài shang wéi kù","画荻和丸":"huà dí huò wán","化枭为鸠":"huà xiāo wéi jiū","化腐为奇":"huà fǔ wéi qí","化鸱为凤":"huà chī wéi fèng","花不棱登":"huā bu lēng dēng","户限为穿":"hù xiàn wéi chuān","呼卢喝雉":"hū lú hè zhì","呼来喝去":"hū lái hè qù","呼不给吸":"hū bù jǐ xī","厚味腊毒":"hòu wèi xī dú","厚德载物":"hòu dé zài wù","鸿渐于干":"hóng jiàn yú gàn","洪炉燎发":"hóng lú liáo fà","红绳系足":"hóng shéng jì zú","红不棱登":"hóng bu lēng dēng","横抢硬夺":"hèng qiǎng yìng duó","横恩滥赏":"hèng ēn làn shǎng","恨海难填":"hèn hǎi nán tián","鹤发鸡皮":"hè fà jī pí","涸思干虑":"hé sī gān lǜ","河涸海干":"hé hé hǎi gān","和颜说色":"hé yán yuè sè","合从连衡":"hé zòng lián héng","浩浩汤汤":"hào hào shāng shāng","好勇斗狠":"hào yǒng dòu hěn","好问则裕":"hào wèn zé yù","好为事端":"hào wéi shì duān","好问决疑":"hào wèn jué yí","好生之德":"hào shēng zhī dé","好奇尚异":"hǎo qí shàng yì","好恶不同":"hǎo è bù tóng","好丹非素":"hào dān fēi sù","豪干暴取":"háo gàn bào qǔ","毫发不爽":"háo fà bù shuǎng","寒酸落魄":"hán suān luò pò","含英咀华":"hán yīng jǔ huá","含糊不明":"hán hú bù míng","过为已甚":"guò wéi yǐ shèn","桂折兰摧":"guì shé lán cuī","规旋矩折":"guī xuán jǔ shé","广文先生":"guǎng wén xiān sheng","广陵散绝":"guǎng líng sǎn jué","冠山戴粒":"guàn shān dài lì","冠屦倒施":"guàn jù dǎo shī","挂席为门":"guà xí wéi mén","寡见鲜闻":"guǎ jiàn xiǎn wén","瓜葛相连":"guā gé xiāng lián","鼓吻奋爪":"gǔ wěn fèn zhǎo","古调单弹":"gǔ diào dān tán","古调不弹":"gǔ diào bù tán","姑射神人":"gū yè shén rén","苟合取容":"gǒu hé qǔ róng","狗续侯冠":"gǒu xù hòu guàn","钩爪锯牙":"gōu zhǎo jù yá","共枝别干":"gòng zhī bié gàn","共为唇齿":"gòng wéi chún chǐ","拱手而降":"gǒng shǒu ér xiáng","拱肩缩背":"gǒng jiān suō bèi","功薄蝉翼":"gōng bó chán yì","弓调马服":"gōng diào mǎ fú","更姓改物":"gēng xìng gǎi wù","更仆难数":"gēng pú nán shǔ","更令明号":"gēng lìng míng hào","更待干罢":"gèng dài gàn bà","更唱迭和":"gēng chàng dié hé","更长梦短":"gēng cháng mèng duǎn","各色名样":"gè sè míng yàng","格格不纳":"gé gé bú nà","格格不吐":"gé gé bù tǔ","告朔饩羊":"gù shuò xì yáng","膏车秣马":"gào chē mò mǎ","高义薄云":"gāo yì bó yún","岗头泽底":"gāng tóu zé dǐ","敢为敢做":"gǎn wéi gǎn zuò","甘分随时":"gān fèn suí shí","甘处下流":"gān chǔ xià liú","干啼湿哭":"gàn tí shī kū","干名犯义":"gàn míng fàn yì","干将莫邪":"gān jiāng mò yé","干城之将":"gān chéng zhī jiàng","腹载五车":"fù zài wǔ chē","父债子还":"fù zhài zǐ huán","父为子隐":"fù wéi zǐ yǐn","辅世长民":"fǔ shì zhǎng mín","福为祸始":"fú wéi huò shǐ","符号逻辑":"fú hào luó jí","浮收勒折":"fú shōu lè shé","肤受之愬":"fū shòu zhī sù","否终则泰":"pǐ zhōng zé tài","佛头著粪":"fó tóu zhuó fèn","奉为楷模":"fèng wéi kǎi mó","凤靡鸾吪":"fèng mǐ luán é","封豨修蛇":"fēng xī xiū shé","风影敷衍":"fēng yǐng fū yǎn","丰屋蔀家":"fēng wū bù jiā","粪土不如":"fèn tǔ bù rú","分风劈流":"fēn fēng pǐ liú","沸沸汤汤":"fèi fèi shāng shāng","菲食薄衣":"fěi shí bó yī","飞将数奇":"fēi jiàng shù qí","放辟邪侈":"fàng pì xié chǐ","方领圆冠":"fāng lǐng yuán guàn","犯而不校":"fàn ér bú jiào","返本还源":"fǎn běn huán yuán","反劳为逸":"fǎn láo wéi yì","法轮常转":"fǎ lún cháng zhuàn","罚不当罪":"fá bù dāng zuì","发引千钧":"fà yǐn qiān jūn","发奸擿伏":"fā jiān tī fú","发短心长":"fà duǎn xīn cháng","二竖为虐":"èr shù wéi nüè","儿女心肠":"ér nǚ xīn cháng","儿女亲家":"ér nǚ qìng jiā","遏恶扬善":"è wù yáng shàn","饿殍枕藉":"è piǎo zhěn jí","饿殍载道":"è piǎo zài dào","恶醉强酒":"wù zuì qiǎng jiǔ","恶意中伤":"è yì zhòng shāng","恶湿居下":"wù shī jū xià","恶居下流":"wù jū xià liú","恶不去善":"wù bú qù shàn","扼吭夺食":"è háng duó shí","扼襟控咽":"è jīn kòng yān","峨峨汤汤":"é é shāng shāng","屙金溺银":"ē jīn niào yín","朵颐大嚼":"duǒ yí dà jiáo","夺人所好":"duó rén suǒ hào","多言数穷":"duō yán shuò qióng","多文为富":"duō wén wéi fù","多端寡要":"duō duān guǎ yào","多财善贾":"duō cái shàn gǔ","遁世无闷":"dùn shì wú mèn","遁迹黄冠":"dùn jì huáng guàn","堆案盈几":"duī àn yíng jī","断还归宗":"duàn huán guī zōng","短见薄识":"duǎn jiàn bó shí","蠹居棊处":"dù jū qí chǔ","度己以绳":"duó jǐ yǐ shéng","杜默为诗":"dù mò wéi shī","杜鹃啼血":"dù juān tí xuè","笃近举远":"dǔ jìn jǔ yuǎn","独有千秋":"dú yǒu qiān qiū","读书得间":"dú shū dé jiàn","斗转参横":"dǒu zhuǎn shēn héng","兜肚连肠":"dōu dǔ lián cháng","洞见症结":"dòng jiàn zhèng jié","恫疑虚喝":"dòng yí xū hè","动中窾要":"dòng zhōng kuǎn yào","东鸣西应":"dōng míng xī yīng","东鳞西爪":"dōng lín xī zhǎo","东量西折":"dōng liàng xī shé","东家西舍":"dōng jiā xī shè","东扯西拽":"dōng chě xī zhuāi","鼎铛有耳":"dǐng chēng yǒu ěr","鼎铛玉石":"dǐng chēng yù shí","钉头磷磷":"dīng tóu lín lín","跌宕不羁":"diē dàng bù jī","跌弹斑鸠":"diē dàn bān jiū","雕心雁爪":"diāo xīn yàn zhǎo","颠倒衣裳":"diān dǎo yī cháng","德薄能鲜":"dé bó néng xiǎn","得马折足":"dé mǎ shé zú","蹈其覆辙":"dǎo qí fù zhé","捣虚撇抗":"dǎo xū piē kàng","倒载干戈":"dào zài gān gē","倒裳索领":"dào cháng suǒ lǐng","倒果为因":"dào guǒ wéi yīn","叨在知己":"tāo zài zhī jǐ","叨陪末座":"tāo péi mò zuò","党豺为虐":"dǎng chái wéi nüè","当轴处中":"dāng zhóu chǔ zhōng","当着不着":"dāng zhuó bù zhuó","当务始终":"dāng wù shǐ zhōng","淡汝浓抹":"dàn rǔ nóng mǒ","弹丸脱手":"tán wán tuō shǒu","弹铗无鱼":"dàn jiá wú yú","箪食瓢饮":"dān sì piáo yǐn","大璞不完":"dà pú bù wán","大明法度":"dà míng fǎ dù","大车以载":"dà chē yǐ zài","打闷葫芦":"dǎ mèn hú lu","沓来踵至":"tà lái zhǒng zhì","厝火燎原":"cuò huǒ liǎo yuán","撮科打哄":"cuō kē dǎ hòng","寸积铢累":"cùn jī zhū lěi","啛啛喳喳":"cuì cuì chā chā","摧折豪强":"cuī zhé háo qiáng","摧刚为柔":"cuī gāng wéi róu","从俗就简":"cóng sú jiù jiǎn","此发彼应":"cǐ fā bǐ yīng","此唱彼和":"cǐ chàng bǐ hè","慈悲为本":"cí bēi wéi běn","纯属骗局":"chún shǔ piàn jú","春笋怒发":"chūn sǔn nù fā","垂头搨翼":"chuí tóu tà yì","传为笑谈":"chuán wéi xiào tán","传风扇火":"chuán fēng shān huǒ","穿红着绿":"chuān hóng zhuó lǜ","触处机来":"chù chǔ jī lái","处尊居显":"chǔ zūn jū xiǎn","处堂燕雀":"chǔ táng yàn què","处实效功":"chǔ shí xiào gōng","处高临深":"chǔ gāo lín shēn","出入无间":"chū rù wú jiān","出门应辙":"chū mén yīng zhé","出处语默":"chū chǔ yǔ mò","出处殊途":"chū chǔ shū tú","出处进退":"chū chǔ jìn tuì","愁山闷海":"chóu shān mèn hǎi","冲冠眦裂":"chōng guàn zì liè","齿牙为祸":"chǐ yá wéi huò","尺二冤家":"chǐ èr yuān jia","尺短寸长":"chǐ duǎn cùn cháng","尺寸之功":"chǐ cùn zhī gōng","城北徐公":"chéng běi xú gōng","成败兴废":"chéng bài xīng fèi","趁水和泥":"chèn shuǐ huò ní","称雨道晴":"chēng yǔ dào qíng","称体载衣":"chēng tǐ zài yī","称体裁衣":"chèn tǐ cái yī","称家有无":"chèn jiā yǒu wú","称德度功":"chēng dé duó gōng","沉吟章句":"chén yín zhāng jù","沉吟不决":"chén yín bù jué","沉疴宿疾":"chén kē sù jí","扯纤拉烟":"chě qiàn lā yān","扯顺风旗":"chě shùn fēng qí","车载船装":"chē zǎi chuán zhuāng","朝升暮合":"zhāo shēng mù gě","朝攀暮折":"zhāo pān mù shé","超今冠古":"chāo jīn guàn gǔ","倡而不和":"chàng ér bú hè","畅所欲为":"chàng suǒ yù wéi","苌弘碧血":"cháng hóng bì xiě","长幼尊卑":"zhǎng yòu zūn bēi","长绳系日":"cháng shéng jì rì","长年三老":"zhǎng nián sān lǎo","长春不老":"cháng chūn bù lǎo","长傲饰非":"zhǎng ào shì fēi","昌亭旅食":"chāng tíng lǚ shí","禅絮沾泥":"chán xù zhān ní","差三错四":"chā sān cuò sì","层台累榭":"céng tái lěi xiè","层见迭出":"céng xiàn dié chū","藏踪蹑迹":"cáng zōng niè jì","苍蝇见血":"cāng yíng jiàn xiě","餐松啖柏":"cān sōng dàn bó","骖风驷霞":"cān fēng sì xiá","参伍错综":"cēn wǔ cuò zōng","参辰卯酉":"shēn chén mǎo yǒu","材优干济":"cái yōu gān jǐ","材薄质衰":"cái bó zhì shuāi","才大难用":"cái dà nán yòng","才薄智浅":"cái bó zhì qiǎn","不足为意":"bù zú wéi yì","不足为据":"bù zú wéi jù","不足为法":"bù zú wéi fǎ","不足齿数":"bù zú chǐ shǔ","不着疼热":"bù zhuó téng rè","不知薡蕫":"bù zhī dǐng dǒng","不越雷池":"bú yuè léi chí","不相为谋":"bù xiāng wéi móu","不贪为宝":"bù tān wéi bǎo","不了而了":"bù liǎo ér liǎo","不可揆度":"bù kě kuí duó","不遑启处":"bù huáng qǐ chǔ","不当不正":"bù dāng bú zhèng","不差什么":"bú chà shén me","不差累黍":"bù chā lěi shǔ","擘两分星":"bò liǎng fēn xīng","簸土扬沙":"bǒ tǔ yáng shā","薄物细故":"bó wù xì gù","薄寒中人":"bó hán zhòng rén","博文约礼":"bó wén yuē lǐ","播糠眯目":"bō kāng mí mù","剥皮抽筋":"bō pí chōu jīn","剥肤椎髓":"bō fū chuí suǐ","波属云委":"bō zhǔ yún wěi","波骇云属":"bō hài yún zhǔ","兵微将寡":"bīng wēi jiàng guǎ","兵强将勇":"bīng qiáng jiàng yǒng","兵多将广":"bīng duō jiàng guǎng","兵不由将":"bīng bù yóu jiàng","冰解的破":"bīng jiě dì pò","彬彬济济":"bīn bīn jǐ jǐ","摽梅之年":"biào méi zhī nián","表里为奸":"biǎo lǐ wéi jiān","飙发电举":"biāo fā diàn jǔ","变贪厉薄":"biàn tān lì bó","敝盖不弃":"bì gài bú qì","秕言谬说":"bǐ yán miù shuō","比物属事":"bǐ wù zhǔ shì","被山带河":"pī shān dài hé","被甲枕戈":"pī jiǎ zhěn gē","被甲据鞍":"pī jiǎ jù ān","被褐怀玉":"pī hè huái yù","被发缨冠":"pī fà yīng guàn","背曲腰躬":"bèi qǔ yāo gōng","北窗高卧":"běi chuāng gāo wò","北辰星拱":"běi chén xīng gǒng","北鄙之音":"běi bǐ zhī yīn","卑宫菲食":"bēi gōng fěi shí","暴衣露冠":"pù yī lù guàn","暴腮龙门":"pù sāi lóng mén","暴露文学":"bào lù wén xué","暴虎冯河":"bào hǔ píng hé","抱蔓摘瓜":"bào wàn zhāi guā","抱法处势":"bào fǎ chǔ shì","褒贬与夺":"bāo biǎn yǔ duó","帮闲钻懒":"bāng xián zuān lǎn","拜将封侯":"bài jiàng fēng hóu","百兽率舞":"bǎi shòu shuài wǔ","百孔千创":"bǎi kǒng qiān chuāng","白衣卿相":"bái yī qīng xiàng","白首为郎":"bái shǒu wéi láng","白首相知":"bái shǒu xiāng zhī","把玩无厌":"bǎ wán wú yàn","拔锅卷席":"bá guō juǎn xí","拔本塞源":"bá běn sè yuán","傲不可长":"ào bù kě zhǎng","熬更守夜":"áo gēng shǒu yè","安时处顺":"ān shí chǔ shùn","安身为乐":"ān shēn wéi lè","安老怀少":"ān lǎo huái shào","安步当车":"ān bù dàng chē","爱人好士":"ài rén hào shì","矮人观场":"ǎi rén guān chǎng","捱风缉缝":"ái fēng jī fèng","挨山塞海":"āi shān sè hǎi","阿家阿翁":"ā jiā ā wēng","阿党相为":"ē dǎng xiāng wéi","追亡逐北":"zhuī wáng zhú běi","竹篮打水":"zhú lán dá shuǐ","知疼着热":"zhī téng zháo rè","语不惊人":"yǔ bù jīng rén","于今为烈":"yú jīn wéi liè","一日三省":"yí rì sān xǐng","穴居野处":"xué jū yě chǔ","五脊六兽":"wǔ jǐ liù shòu","无声无臭":"wú shēng wú xiù","谓予不信":"wèi yú bú xìn","舍身为国":"shě shēn wéi guó","杀妻求将":"shā qī qiú jiàng","强作解人":"qiǎng zuò jiě rén","气冲斗牛":"qì chōng dǒu niú","临深履薄":"lín shēn lǚ bó","钧天广乐":"jūn tiān guǎng yuè","艰难竭蹶":"jiān nán jié jué","夹七夹八":"jiā qī jiā bā","混混噩噩":"hún hún è è","厚古薄今":"hòu gǔ bó jīn","鬼怕恶人":"guǐ pà è rén","伽马射线":"gā mǎ shè xiàn","佛头着粪":"fó tóu zhuó fèn","奉为至宝":"fèng wéi zhì bǎo","登坛拜将":"dēng tán bài jiàng","晨昏定省":"chén hūn dìng xǐng","察察为明":"chá chá wéi míng","博闻强识":"bó wén qiáng zhì","避难就易":"bì nán jiù yì","了无生机":"liǎo wú shēng jī","有一说一":"yǒu yī shuō yī","独一无二":"dú yī wú èr","说一不二":"shuō yī bù èr","举一反三":"jǔ yī fǎn sān","数一数二":"shǔ yī shǔ èr","杀一儆百":"shā yī jǐng bǎi","丁一卯二":"dīng yī mǎo èr","丁一确二":"dīng yī què èr","不一而止":"bù yī ér zhǐ","无一幸免":"wú yī xìng miǎn","表里不一":"biǎo lǐ bù yī","良莠不一":"liáng yǒu bù yī","心口不一":"xīn kǒu bù yī","言行不一":"yán xíng bù yī","政令不一":"zhèng lìng bù yī","参差不一":"cēn cī bù yī","纷纷不一":"fēn fēn bù yī","毁誉不一":"huǐ yù bù yī","不一而三":"bù yī ér sān","百不一遇":"bǎi bù yī yù","言行抱一":"yán xíng bào yī","瑜百瑕一":"yú bǎi xiá yī","背城借一":"bèi chéng jiè yī","凭城借一":"píng chéng jiè yī","劝百讽一":"quàn bǎi fěng yī","群居和一":"qún jū hé yī","百不获一":"bǎi bù huò yī","百不失一":"bǎi bù shī yī","百无失一":"bǎi wú shī yī","万不失一":"wàn bù shī yī","万无失一":"wàn wú shī yī","合而为一":"hé ér wéi yī","合两为一":"hé liǎng wéi yī","合二为一":"hé èr wéi yī","天下为一":"tiān xià wéi yī","相与为一":"xiāng yǔ wéi yī","较若画一":"jiào ruò huà yī","较如画一":"jiào rú huà yī","斠若画一":"jiào ruò huà yī","言行若一":"yán xíng ruò yī","始终若一":"shǐ zhōng ruò yī","终始若一":"zhōng shǐ ruò yī","惟精惟一":"wéi jīng wéi yī","众多非一":"zhòng duō fēi yī","不能赞一":"bù néng zàn yī","问一答十":"wèn yī dá shí","一不扭众":"yī bù niǔ zhòng","一以贯之":"yī yǐ guàn zhī","一以当百":"yī yǐ dāng bǎi","百不当一":"bǎi bù dāng yī","十不当一":"shí bù dāng yī","以一警百":"yǐ yī jǐng bǎi","以一奉百":"yǐ yī fèng bǎi","以一持万":"yǐ yī chí wàn","以一知万":"yǐ yī zhī wàn","百里挑一":"bǎi lǐ tiāo yī","整齐划一":"zhěng qí huà yī","一来二去":"yī lái èr qù","一路公交":"yī lù gōng jiāo","一路汽车":"yī lù qì chē","一路巴士":"yī lù bā shì","朝朝朝落":"zhāo cháo zhāo luò","曲意逢迎":"qū yì féng yíng","一行不行":"yì háng bù xíng","行行不行":"háng háng bù xíng"},uo=Object.keys(ho).map(e=>({zh:e,pinyin:ho[e],probability:2e-8,length:4,priority:1,dict:Symbol("dict4")})),go={"巴尔干半岛":"bā ěr gàn bàn dǎo","巴尔喀什湖":"bā ěr kā shí hú","不幸而言中":"bú xìng ér yán zhòng","布尔什维克":"bù ěr shí wéi kè","何乐而不为":"hé lè ér bù wéi","苛政猛于虎":"kē zhèng měng yú hǔ","蒙得维的亚":"méng dé wéi dì yà","民以食为天":"mín yǐ shí wéi tiān","事后诸葛亮":"shì hòu zhū gě liàng","物以稀为贵":"wù yǐ xī wéi guì","先下手为强":"xiān xià shǒu wéi qiáng","行行出状元":"háng háng chū zhuàng yuan","亚得里亚海":"yà dé lǐ yà hǎi","眼不见为净":"yǎn bú jiàn wéi jìng","竹筒倒豆子":"zhú tǒng dào dòu zi"},po=[...Object.keys(go).map(e=>({zh:e,pinyin:go[e],probability:2e-8,length:5,priority:1,dict:Symbol("dict5")})),...uo,...co,...ro,...Ji,...io];function mo(e,n){return e&&(e.decimal<n.decimal||e.decimal===n.decimal&&e.probability>n.probability)?e:n}function fo(e){e.probability<1e-300&&(e.probability*=1e300,e.decimal+=1)}function xo(e){return 100===e.priority?-e.length*e.length*100:10===e.priority?-e.length*e.length*10:0}function jo(e,n){return e&&e.count<=n.count?e:n}function bo(e){return 100===e.priority?-e.length*e.length*1e5:10===e.priority?-e.length*e.length*100:1}function yo(e,n){return!(n.index+n.length<=e.index||n.priority>e.priority||n.priority===e.priority&&n.length>e.length)}var wo;!function(e){e[e.ReverseMaxMatch=1]="ReverseMaxMatch",e[e.MaxProbability=2]="MaxProbability",e[e.MinTokenization=3]="MinTokenization"}(wo||(wo={}));class vo{constructor(e,n=""){this.children=new Map,this.fail=null,this.patterns=[],this.parent=e,this.key=n}}let ko=!1;const Co=new class{constructor(){this.dictMap=new Map,this.queues=[],this.root=new vo(null)}build(e){this.buildTrie(e),this.buildFailPointer()}buildTrie(e){for(let n of e){const e=Li(n.zh);let t=this.root;for(let n=0;n<e.length;n++){let s=e[n];if(!t.children.has(s)){const e=new vo(t,s);t.children.set(s,e),this.addNodeToQueues(e,n+1)}t=t.children.get(s)}this.insertPattern(t.patterns,n),n.node=t,this.addPatternToDictMap(n)}}buildFailPointer(){let e=[],n=0;for(this.queues.forEach(n=>{e=e.concat(n)}),this.queues=[];e.length>n;){let t=e[n++],s=t.parent&&t.parent.fail,i=t.key;for(;s&&!s.children.has(i);)s=s.fail;t.fail=s?s.children.get(i):this.root}}addPatternToDictMap(e){this.dictMap.has(e.dict)||this.dictMap.set(e.dict,new Set),this.dictMap.get(e.dict).add(e)}addNodeToQueues(e,n){this.queues[n]||(this.queues[n]=[]),this.queues[n].push(e)}insertPattern(e,n){for(let t=e.length-1;t>=0;t--){const s=e[t];if(n.priority===s.priority&&n.probability>=s.probability)e[t+1]=s;else{if(!(n.priority>s.priority))return void(e[t+1]=n);e[t+1]=s}}e[0]=n}removeDict(e){this.dictMap.has(e)&&(this.dictMap.get(e).forEach(e=>{e.node.patterns=e.node.patterns.filter(n=>n!==e)}),this.dictMap.delete(e))}match(e,n,t=Li(e)){let s=this.root,i=[];for(let e=0;e<t.length;e++){let o=t[e],a=s.children.size?s.children.get(o):void 0;for(;!a&&s!==this.root;){if(!s.fail){s=this.root;break}s=s.fail,a=s.children.size?s.children.get(o):void 0}if(a){s=a;const t=s.patterns.find(t=>"off"===n?10!==t.priority:"head"!==n||t.length-1-e==0);t&&i.push(Object.assign(Object.assign({},t),{index:e-t.length+1}));let o=s.fail;for(;null!==o;){const t=o.patterns.find(t=>"off"===n?10!==t.priority:"head"!==n||t.length-1-e==0);t&&i.push(Object.assign(Object.assign({},t),{index:e-t.length+1})),o=o.fail}}}return i}search(e,n,t=2,s=Li(e)){const i=this.match(e,n,s);return 1===t?function(e){const n=[];for(let t=e.length-1;t>=0;){const{index:s}=e[t];let i=t-1;for(;i>=0&&yo(e[t],e[i]);)i--;(i<0||e[i].index+e[i].length<=s)&&n.push(e[t]),t=i}return n.reverse()}(i):3===t?function(e,n){const t=[];let s=e.length-1,i=e[s];for(let o=n-1;o>=0;o--){const a=o+1>=n?{count:0,patterns:[]}:t[o+1];for(;i&&i.index+i.length-1===o;){const n=i.index,o={count:bo(i)+a.count,patterns:a.patterns,concatPattern:i};t[n]=jo(t[n],o),i=e[--s]}const r={count:1+a.count,patterns:a.patterns};t[o]=jo(t[o],r),t[o].concatPattern&&(t[o].patterns=t[o].patterns.concat(t[o].concatPattern),t[o].concatPattern=void 0,delete t[o+1])}return t[0].patterns.reverse()}(i,s.length):function(e,n){const t=[],s={probability:1,decimal:0,nextIndex:n};let i=e.length-1,o=e[i];for(let a=n-1;a>=0;a--){const r=a+1>=n?s:t[a+1],l=r.pattern?a+1:r.nextIndex;for(;o&&o.index+o.length-1===a;){const n=o.index,s={probability:o.probability*r.probability,decimal:r.decimal+xo(o),pattern:o,nextIndex:l};fo(s),t[n]=mo(t[n],s),o=e[--i]}const c={probability:1e-13*r.probability,decimal:0,nextIndex:l};fo(c),t[a]=mo(t[a],c)}const a=[];let r=0;for(;r<n;){const e=t[r];e.pattern&&a.push(e.pattern),r=e.nextIndex}return a}(i,s.length)}};function zo(){ko||(Co.build(po),ko=!0)}"function"==typeof requestIdleCallback?requestIdleCallback(()=>zo()):setTimeout(zo,0);const _o=[];function So(){return _o}const No=e=>{const n=no.get(e);if(!n)return e;const t=n.indexOf(" ");return-1===t?n:n.slice(0,t)},To=e=>e.replace(/(ā|á|ǎ|à)/g,"a").replace(/(ō|ó|ǒ|ò)/g,"o").replace(/(ē|é|ě|è)/g,"e").replace(/(ī|í|ǐ|ì)/g,"i").replace(/(ū|ú|ǔ|ù)/g,"u").replace(/(ǖ|ǘ|ǚ|ǜ)/g,"ü").replace(/(n̄|ń|ň|ǹ)/g,"n").replace(/(m̄|ḿ|m̌|m̀)/g,"m").replace(/(ê̄|ế|ê̌|ề)/g,"ê"),Bo=(e,n)=>{const t=e.split(" "),s=[],i=[];for(let e of t)for(let n of Fi)if(e.startsWith(n)){let t=e.slice(n.length);-1!==$i.indexOf(n)&&-1!==Vi.indexOf(t)&&(t=Hi[t]),s.push(n),i.push(t);break}return"standard"===n&&s.forEach((e,n)=>{"y"!==e&&"w"!==e||(s[n]="")}),{final:i.join(" "),initial:s.join(" ")}};function Po(e){let n="",t="",s="";return-1!==Wi.indexOf(To(e))?(n=e[0],t=e[1],s=e.slice(2)):(t=e[0]||"",s=e.slice(1)||""),{head:n,body:t,tail:s}}const qo=e=>{const{final:n}=Bo(e);return Po(n)},Mo=e=>{const n=/(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/,t=/(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/,s=/(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/,i=/(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/,o=/(a|o|e|i|u|ü|ê)/,a=/(n|m)$/,r=[];return e.split(" ").forEach(e=>{n.test(e)?r.push("1"):t.test(e)?r.push("2"):s.test(e)?r.push("3"):i.test(e)?r.push("4"):o.test(e)||a.test(e)?r.push("0"):r.push("")}),r.join(" ")},Ao=(e,n)=>{const t=[];return e.split(" ").forEach(e=>{t.push(n?e[0]:e)}),t.join(" ")};function Eo(e,n,t){if(-1===Qi.indexOf(e))return No(e);if(n===t&&n&&No(n)!==n)return To(No(e));if(t&&!Zi[e].includes(t)){const n=No(t);if(n!==t){const t=Mo(n),s=Yi[e];for(let e in s)if(-1!==s[e].indexOf(Number(t)))return e}}}function Io(e,n,t){if(!("了"!==e||n&&no.get(n)))return"liǎo"}function Do(e,n,t){if("々"===e)return n&&no.get(n)?no.get(n).split(" ")[0]:"tóng"}function Uo(e,n,t,s){for(let i of s){const s=i(e,n,t);if(s)return s}return No(e)}function Ro(e,n){return!(n instanceof RegExp)||((n.global||n.sticky)&&(n.lastIndex=0),n.test(e))}const Lo={pattern:"pinyin",toneType:"symbol",type:"string",multiple:!1,mode:"normal",removeNonZh:!1,nonZh:"spaced",v:!1,separator:" ",toneSandhi:!0,segmentit:2};function Oo(e,n){n=Object.assign(Object.assign({},Lo),n||{});const t=(e=>"string"==typeof e||(console.error("The first param of pinyin is error: "+e+' is not assignable to type "string".'),!1))(e);if(!t)return e;if(""===e)return"array"===n.type||"all"===n.type?[]:"";void 0===n.surname&&("surname"===n.mode?n.surname="all":n.surname="off"),"all"===n.type&&(n.pattern="pinyin"),"num"===n.pattern&&(n.toneType="none"),n.removeNonZh&&(n.nonZh="removed");const s=Li(e);let i=Array(s.length),{list:o}=((e,n,t,s,i,o=Li(e))=>{zo();const a=i?(e=>{const n=[],t=So();for(let s=0;s<e.length;s++){const i=e[s],o=i.charCodeAt(0);t[o]?n[s]=t[o]:n[s]=i}return n.join("")})(e):e,r=i?Li(a):o,l=Co.search(a,t,s,r);let c=0;const d=function(e){const n=[];return e.includes("々")&&n.push(Do),n.push(Io),n.push(Eo),n}(e);for(let e=0;e<o.length;){const t=l[c];if(t&&e===t.index){if(1===t.length&&t.priority<=1){const s=o[e];t.zh=s;let i="";i=Uo(s,o[e-1],o[e+1],d),n[e]={origin:s,result:i,isZh:i!==s,originPinyin:i},e++,c++;continue}const s=t.pinyin.split(" ");let a=0;i&&(t.zh=o.slice(t.index,t.index+t.length).join(""));for(let i=0;i<t.length;i++)n[e+i]={origin:o[i+t.index],result:s[a]||"",isZh:!0,originPinyin:s[a]||""},a++;e+=t.length,c++}else{const t=o[e];let s="";s=Uo(t,o[e-1],o[e+1],d),n[e]={origin:t,result:s,isZh:s!==t,originPinyin:s},e++}}return{list:n,matches:l}})(e,i,n.surname,n.segmentit,n.traditional,s);o=((e,n)=>(!1===n&&e.forEach(e=>{"一"===e.origin?e.result=e.originPinyin="yī":"不"===e.origin&&(e.result=e.originPinyin="bù")}),e))(o,n.toneSandhi),o=((e,n)=>{let t=n.nonZh;if("removed"===t)return e.filter(e=>e.isZh||!Ro(e.origin,n.nonZhScope));if("consecutive"===t){for(let t=e.length-2;t>=0;t--){const s=e[t],i=e[t+1];!s.isZh&&!i.isZh&&Ro(s.origin,n.nonZhScope)&&Ro(i.origin,n.nonZhScope)&&(s.origin+=i.origin,s.result+=i.result,i.delete=!0)}return e.filter(e=>!e.delete)}return e})(o,n);const a=((e,n)=>!(!n.multiple||1!==Ri(e))&&((e,n="off")=>{let t=oo(e,n);return t.length>0?t.map(n=>({origin:e,result:n,isZh:!0,originPinyin:n})):[{origin:e,result:e,isZh:!1,originPinyin:e}]})(e,n.surname))(e,n);return a&&(o=a),((e,n)=>{switch(n.pattern){case"pinyin":break;case"num":e.forEach(e=>{e.result=e.isZh?Mo(e.result):""});break;case"initial":e.forEach(e=>{e.result=e.isZh?Bo(e.result,n.initialPattern).initial:""});break;case"final":e.forEach(e=>{e.result=e.isZh?Bo(e.result,n.initialPattern).final:""});break;case"first":e.forEach(e=>{e.result=Ao(e.result,e.isZh)});break;case"finalHead":e.forEach(e=>{e.result=e.isZh?qo(e.result).head:""});break;case"finalBody":e.forEach(e=>{e.result=e.isZh?qo(e.result).body:""});break;case"finalTail":e.forEach(e=>{e.result=e.isZh?qo(e.result).tail:""})}})(o,n),((e,n)=>{switch(n.toneType){case"symbol":break;case"none":e.forEach(e=>{e.isZh&&(e.result=To(e.result))});break;case"num":e.forEach(e=>{e.isZh&&(e.result=((e,n)=>{const t=To(e).split(" "),s=Mo(n).split(" "),i=[];return t.forEach((e,n)=>{i.push(`${e}${s[n]}`)}),i.join(" ")})(e.result,e.originPinyin))})}})(o,n),((e,n)=>{n.v&&e.forEach(e=>{e.isZh&&(e.result=e.result.replace(/ü/g,"string"==typeof n.v?n.v:"v"))})})(o,n),((e,n,t)=>{if(n.multiple&&1===Ri(t)){let n="";e=e.filter(e=>{const t=e.result!==n;return n=e.result,t})}return"array"===n.type?e.map(e=>e.result):"all"===n.type?e.map(e=>{const t=e.isZh?e.result:"",{initial:s,final:i}=Bo(t,n.initialPattern),{head:o,body:a,tail:r}=Po(i);let l=[];return""!==t&&(l=[t].concat(oo(e.origin,n.surname).filter(e=>e!==t))),{origin:e.origin,pinyin:t,initial:s,final:i,first:Ao(e.result,e.isZh),finalHead:o,finalBody:a,finalTail:r,num:Number(Mo(e.originPinyin)),isZh:e.isZh,polyphonic:l,inZhRange:!!no.get(e.origin),result:e.result}}):e.map(e=>e.result).join(n.separator)})(o,n,e)}const Fo=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"uid",n):is.A.removeUrlParam(t,"uid"),is.A.navigateTo(t)},$o=["address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm"];function Vo({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Ho({title:e,back:n="messages-home",backUid:t,right:s,onRight:i}){return(0,vt.jsxs)("header",{className:"people-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||Fo(n,t)},"aria-label":"返回",children:(0,vt.jsx)(Vo,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),s?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,children:s}):(0,vt.jsx)("span",{})]})}function Wo({person:e,icon:t}){const s=e&&e.avatar_file_id,[i,o]=n().useState(null);return n().useEffect(()=>{if(!s)return void o(null);let e=!0;return(0,zt.w8)(s).then(n=>{e&&o(n)}).catch(()=>{}),()=>{e=!1}},[s]),(0,vt.jsx)("span",{className:"people-avatar",children:i?(0,vt.jsx)("img",{src:i,alt:""}):(0,vt.jsx)(Vo,{children:t||"person"})})}function Ko({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function Xo({value:e,onChange:n,placeholder:t,onSubmit:s}){return(0,vt.jsxs)("label",{className:"people-search",children:[(0,vt.jsx)(Vo,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&s&&s()},placeholder:t})]})}function Go({payload:e,profile:t,loading:s}){const i=n().useRef(null);return n().useEffect(()=>{i.current&&e&&(i.current.innerHTML="",new(Ai())(i.current,{text:e,width:190,height:190,correctLevel:Ai().CorrectLevel.M}))},[e]),(0,vt.jsxs)("section",{className:"people-qr-card",children:[(0,vt.jsxs)("div",{className:"people-qr-profile",children:[(0,vt.jsx)(Wo,{person:t}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t&&t.display_name||""}),(0,vt.jsx)("small",{children:t&&t.public_account?"账号 "+t.public_account:""})]})]}),(0,vt.jsx)("div",{className:"people-qrcode",ref:i}),s?(0,vt.jsx)("p",{children:"正在生成二维码…"}):(0,vt.jsx)("p",{children:"扫一扫上面的二维码,加我为好友"}),(0,vt.jsx)("small",{children:"二维码 24 小时内有效"})]})}function Jo({myUserId:e,onTopicSelected:t}){const[s,i]=n().useState(""),o=e?"friends:"+e:null,[a,r]=n().useState(()=>o&&(0,It.ze)(o)||[]),[l,c]=n().useState(0),[d,h]=n().useState(()=>!(o&&(0,It.ze)(o))),[u,g]=n().useState(!1),[p]=(0,It.sK)(e?"bootstrap:"+e:null,zt.Jv,[e]),m=p&&p.entries&&p.entries.file_assistant&&p.entries.file_assistant.topic;n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.M7)("",e)).then(e=>{o&&(0,It.Ug)(o,e),r(e)}).catch(()=>g(!0)).finally(()=>h(!1)),(0,zt.Ey)(e=>(0,zt.Ro)("inbound","pending",e)).then(e=>c(e.length)).catch(()=>{})},[]);const f=a.filter(e=>`${e.display_name}${e.remark||""}`.toLowerCase().includes(s.toLowerCase())).reduce((e,n)=>{const t=function(e){const n=(e||"").trim()[0]||"#";if(/[A-Za-z]/.test(n))return n.toUpperCase();if(/[一-龥]/.test(n)){const e=Oo(n,{pattern:"first",toneType:"none"});return/[a-z]/i.test(e)?e.toUpperCase():"#"}return"#"}(n.remark||n.display_name);return{...e,[t]:(e[t]||[]).concat(n)}},{}),x=Object.keys(f).sort(),j=[{icon:"person_add_alt",label:"新朋友",route:"friend-requests",badge:l||null,tone:"blue"},{icon:"group",label:"群组",route:"group-list",tone:"green"},{icon:"folder_special",label:"文件助手",route:"chat-standard",tone:"orange",fileAssistant:!0},{icon:"notifications",label:"系统消息",route:"system-messages",tone:"red"}];return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"通讯录",right:"添加",onRight:()=>Fo("add-friend")}),(0,vt.jsx)(Xo,{value:s,onChange:i,placeholder:"搜索联系人"}),(0,vt.jsxs)("main",{className:"people-scroll",children:[(0,vt.jsx)("section",{className:"people-entry-list",children:j.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>(e=>{e.fileAssistant&&m&&t?t(m):Fo(e.route)})(e),children:[(0,vt.jsx)(Wo,{icon:e.icon}),(0,vt.jsx)("strong",{children:e.label}),e.badge?(0,vt.jsx)("em",{children:e.badge}):null,(0,vt.jsx)(Vo,{children:"chevron_right"})]},e.label))}),(0,vt.jsx)("h3",{className:"people-section-title",children:"好友通讯录"}),d?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):0===x.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:u?"通讯录加载失败":"暂无好友"}):null,x.map(e=>(0,vt.jsxs)("section",{className:"people-group",id:"people-group-"+e,children:[(0,vt.jsx)("h2",{children:e}),f[e].map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{na(e),Fo("friend-profile",e.user_id)},children:[(0,vt.jsx)(Wo,{person:e}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e.remark||e.display_name}),e.remark&&e.remark!==e.display_name?(0,vt.jsx)("small",{children:e.display_name}):null]})]},e.user_id))]},e))]}),(0,vt.jsx)("nav",{className:"people-index",children:x.map(e=>(0,vt.jsx)("a",{href:"#",onClick:n=>{n.preventDefault(),(e=>{const n=document.getElementById("people-group-"+e);n&&n.scrollIntoView({behavior:"smooth",block:"start"})})(e)},children:e},e))})]})}function Yo(e){return"pending"===e.status?"outbound"===e.direction?"已发送":null:"accepted"===e.status?"已添加":"rejected"===e.status?"已拒绝":"expired"===e.status?"已过期":null}function Zo({onToast:e,onTopicSelected:t,onCreateTopic:s}){const[i,o]=n().useState([]),[a,r]=n().useState(!0),[l,c]=n().useState(!1);n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.Ro)("all","all",e)).then(o).catch(()=>c(!0)).finally(()=>r(!1))},[]);const d=(n,t)=>{const s=t?"accepted":"rejected";o(e=>e.map(e=>e.request_id===n.request_id?{...e,status:s}:e)),(t?(0,zt.wI)(n.request_id):(0,zt.xz)(n.request_id)).then(()=>e(t?"已通过好友申请":"已拒绝好友申请")).catch(t=>{o(e=>e.map(e=>e.request_id===n.request_id?{...e,status:n.status}:e)),e(t.message||"操作失败")})};return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"新朋友",back:"address-book"}),(0,vt.jsxs)("main",{className:"people-request-list",children:[a?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):0===i.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:l?"加载失败,请重试":"暂无新朋友申请"}):null,i.map(e=>(0,vt.jsxs)("article",{role:"button",tabIndex:0,onClick:()=>(e=>(s||t)&&(s||t)("inbound"===e.direction?e.applicant_id:e.target_user_id))(e),children:[(0,vt.jsx)(Wo,{person:e.peer}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e.peer&&e.peer.display_name||e.applicant_id}),(0,vt.jsx)("p",{children:e.message||"请求添加您为好友"}),(0,vt.jsx)("small",{children:new Date(e.created_at).toLocaleString()})]}),"pending"===e.status&&"inbound"===e.direction?(0,vt.jsxs)("span",{children:[(0,vt.jsx)("button",{type:"button",onClick:n=>{n.stopPropagation(),d(e,!1)},children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:n=>{n.stopPropagation(),d(e,!0)},children:"通过验证"})]}):(0,vt.jsx)("em",{children:Yo(e)})]},e.request_id))]})]})}const Qo=/^1[3-9]\d{9}$/,ea={male:"男",female:"女",other:"其他"};function na(e){e&&e.user_id&&(0,It.Ug)("profile-seed:"+e.user_id,{...e,capabilities:{can_add_friend:!!e.can_add}})}function ta({result:e=!1,onToast:t,onOpenScanner:s}){const[i,o]=n().useState(""),[a,r]=n().useState(!1),[l,c]=n().useState(e),[d,h]=n().useState([]),u=e=>"friend"===e.relationship?"已是好友":"pending_outbound"===e.relationship?"已申请":"pending_inbound"===e.relationship?"待通过":"blocked_by_me"===e.relationship?"已拉黑":"blocked_by_peer"===e.relationship?"无法添加":"添加";return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"添加好友",back:"address-book"}),(0,vt.jsx)(Xo,{value:i,onChange:e=>{o(e),e.trim()||(c(!1),h([]))},placeholder:"查找账号",onSubmit:()=>(e=>{const n=e.trim();if(!n)return c(!1),void h([]);r(!0),c(!0);const{query:t,type:s}=function(e){if(e.startsWith("+"))return{query:e.replace(/[\s-]/g,""),type:"phone"};const n=e.replace(/[\s-]/g,"");return Qo.test(n)?{query:"+86"+n,type:"phone"}:{query:e,type:"exact_account"}}(n);(0,zt.x5)(t,s).then(e=>h(e.items||[])).catch(()=>h([])).finally(()=>r(!1))})(i)}),(0,vt.jsx)("main",{children:l?(0,vt.jsxs)("section",{className:"people-search-result",children:[(0,vt.jsx)("h2",{children:"查找人"}),a?(0,vt.jsx)("p",{className:"people-empty-hint",children:"搜索中…"}):0===d.length?(0,vt.jsx)("p",{className:"people-empty-hint",children:"未找到相关用户"}):d.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{na(e),"friend"===e.relationship?Fo("friend-profile",e.user_id):Fo("group-member-profile",e.user_id)},children:[(0,vt.jsx)(Wo,{person:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.display_name})}),(0,vt.jsx)("em",{className:"none"===e.relationship?"people-add-cta":"",children:u(e)})]},e.user_id))]}):(0,vt.jsxs)("section",{className:"people-add-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>Fo("my-friend-qr"),children:[(0,vt.jsx)(Vo,{children:"qr_code"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"我的二维码"}),(0,vt.jsx)("small",{children:"让朋友扫一扫添加我"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>s?s():t("暂不支持扫码,请使用账号搜索添加好友"),children:[(0,vt.jsx)(Vo,{children:"qr_code_scanner"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"扫一扫"}),(0,vt.jsx)("small",{children:"扫描好友或群二维码"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{(0,zt.jx)().then(e=>{const n=`加我为好友:${e.qr_payload}`;return navigator.share?navigator.share({title:"添加好友",text:n}).catch(()=>{}):navigator.clipboard?navigator.clipboard.writeText(n).then(()=>t("邀请链接已复制")).catch(()=>t("复制失败,请手动分享二维码")):void t("当前浏览器不支持分享,请使用二维码")}).catch(e=>t(e.message||"生成邀请链接失败"))},children:[(0,vt.jsx)(Vo,{children:"share"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"分享给好友"}),(0,vt.jsx)("small",{children:"分享链接给好友,一起来玩吧"})]}),(0,vt.jsx)(Vo,{children:"chevron_right"})]})]})})]})}function sa({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState(null);return n().useEffect(()=>{(0,zt.jx)().then(e=>{s(e.qr_payload),o(e.display_profile)}).catch(()=>e("二维码生成失败"))},[]),(0,vt.jsxs)("div",{className:"people-page people-qr-page",children:[(0,vt.jsx)(Ho,{title:"我的二维码",back:"add-friend"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Go,{payload:t,profile:i,loading:!t}),(0,vt.jsxs)("div",{className:"people-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&t?navigator.share({title:"添加好友",text:t}).then(()=>e("二维码名片已分享")).catch(()=>{}):navigator.clipboard&&t&&(navigator.clipboard.writeText(t),e("链接已复制"))},children:[(0,vt.jsx)(Vo,{children:"share"}),(0,vt.jsx)("span",{children:"分享好友"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const n=document.querySelector(".people-qrcode canvas");if(!n)return void e("二维码尚未生成");const t=document.createElement("a");t.href=n.toDataURL("image/png"),t.download="我的二维码.png",t.click(),e("二维码已保存到相册")},children:[(0,vt.jsx)(Vo,{children:"download"}),(0,vt.jsx)("span",{children:"保存到相册"})]})]})]})]})}function ia({uid:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(null);return n().useEffect(()=>{e&&(0,zt.W)(e).then(e=>{i(e.qr_payload),a(e.display_profile)}).catch(()=>t("二维码生成失败"))},[e]),(0,vt.jsxs)("div",{className:"people-page people-qr-page",children:[(0,vt.jsx)(Ho,{title:"二维码",back:"friend-profile",backUid:e}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Go,{payload:s,profile:o,loading:!s}),(0,vt.jsx)("div",{className:"people-qr-actions",children:(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=document.querySelector(".people-qrcode canvas");if(!e)return void t("二维码尚未生成");const n=document.createElement("a");n.href=e.toDataURL("image/png"),n.download="好友二维码.png",n.click(),t("二维码已保存到相册")},children:[(0,vt.jsx)(Vo,{children:"download"}),(0,vt.jsx)("span",{children:"保存到相册"})]})})]})]})}function oa({uid:e,onToast:t}){const[s,i]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[o,a]=n().useState(""),[r,l]=n().useState(!1),[c,d]=n().useState(!1);n().useEffect(()=>{e&&((0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),i(n)}).catch(()=>{}),(0,zt.pl)(e).then(e=>{e&&e.relationship&&i(n=>n?{...n,relationship:e.relationship}:n)}).catch(()=>{}))},[e]);const h=s&&("pending_outbound"===s.relationship||"pending_inbound"===s.relationship),u=s&&"friend"===s.relationship;return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"好友验证",back:"group-member-profile",backUid:e}),(0,vt.jsxs)("main",{className:"people-verify",children:[(0,vt.jsx)(Wo,{person:s}),(0,vt.jsx)("h2",{children:s&&s.display_name||""}),u?(0,vt.jsx)("p",{className:"people-empty-hint",children:"你们已经是好友了"}):h||c?(0,vt.jsx)("p",{className:"people-empty-hint",children:"好友申请正在等待验证"}):(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"验证留言"}),(0,vt.jsx)("textarea",{value:o,maxLength:"50",placeholder:"我是祈万事安好",onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/50"]})]}),u||h||c?null:(0,vt.jsxs)("div",{className:"people-verify-actions",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Fo("group-member-profile",e),children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"people-primary",disabled:r,onClick:()=>{l(!0),(0,zt.EC)(e,o.trim(),"search").then(()=>{t("好友申请已发送"),d(!0);const n=(0,It.ze)("profile-seed:"+e)||{};(0,It.Ug)("profile-seed:"+e,{...n,relationship:"pending_outbound",capabilities:{...n.capabilities,can_add_friend:!1}}),window.setTimeout(()=>Fo("group-member-profile",e),800)}).catch(e=>t(e.message||"发送失败")).finally(()=>l(!1))},children:r?"发送中…":"发送"})]})]})]})}function aa({uid:e,friend:t,onTopicSelected:s,onCreateTopic:i,onToast:o}){const[a,r]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[l,c]=n().useState(!1);if(n().useEffect(()=>{e&&((0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),r(n)}).catch(()=>{r(e=>(e||(o("资料加载失败"),c(!0)),e))}),(0,zt.pl)(e).then(e=>{e&&e.relationship&&r(n=>n?{...n,relationship:e.relationship,capabilities:e.capabilities||n.capabilities}:n)}).catch(()=>{}))},[e]),n().useEffect(()=>{if(!e)return;const n=n=>{if(n.detail&&n.detail.uid===e){const n=(0,It.ze)("profile-seed:"+e);n&&r(n)}};return window.addEventListener("profile-seed-updated",n),()=>window.removeEventListener("profile-seed-updated",n)},[e]),!a)return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"个人资料",back:t?"address-book":"chat-standard"}),(0,vt.jsx)("main",{className:"people-profile",children:(0,vt.jsx)("p",{className:"people-empty-hint",children:l?"资料加载失败,请重试":"加载中…"})})]});const d=a.capabilities&&a.capabilities.can_add_friend,h="friend"===a.relationship,u="blocked_by_peer"===a.relationship?"对方已将你拉黑,无法添加为好友":"blocked_by_me"===a.relationship?"你已拉黑对方,需先取消拉黑才能添加为好友":"pending_inbound"===a.relationship?'对方已向你发送好友申请,请前往"新朋友"处理':"好友申请正在等待验证",g=()=>(i||s)(e);return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"个人资料",back:t?"address-book":"chat-standard",right:h?"设置":null,onRight:()=>Fo("friend-settings",e)}),(0,vt.jsxs)("main",{className:"people-profile",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)(Wo,{person:a}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h2",{children:a.display_name}),a.public_account?(0,vt.jsxs)("p",{children:["用户名:",a.public_account]}):null,a.region?(0,vt.jsxs)("p",{children:["地区:",a.region]}):null]})]}),(0,vt.jsxs)("button",{type:"button",className:"people-profile-qr-row",onClick:()=>Fo("friend-qr",e),children:[(0,vt.jsx)("span",{children:"二维码"}),(0,vt.jsx)(Vo,{children:"qr_code"})]}),(0,vt.jsxs)("dl",{children:[a.gender?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"性别"}),(0,vt.jsx)("dd",{children:ea[a.gender]||a.gender})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"个性签名"}),(0,vt.jsx)("dd",{className:a.signature?"":"muted",children:a.signature||"此人很懒什么都没留下~"})]})]}),h?(0,vt.jsxs)("div",{className:"people-profile-actions",children:[(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:g,children:[(0,vt.jsx)(Vo,{children:"chat_bubble_outline"}),"发消息"]}),(0,vt.jsxs)("button",{type:"button",onClick:g,children:[(0,vt.jsx)(Vo,{children:"call"}),"音视频通话"]})]}):d?(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:()=>Fo("friend-verification",e),children:[(0,vt.jsx)(Vo,{children:"person_add_alt"}),"添加好友"]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("p",{className:"people-empty-hint",children:u}),(0,vt.jsxs)("button",{type:"button",className:"people-primary",onClick:g,children:[(0,vt.jsx)(Vo,{children:"chat_bubble_outline"}),"查看聊天"]})]})]})]})}function ra({checked:e,onChange:n,disabled:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:t,className:"people-switch"+(e?" checked":""),onClick:()=>n(!e),children:(0,vt.jsx)("i",{})})}function la({uid:e,initialBlocked:t,pinBlocked:s,onToast:i}){const[o,a]=n().useState(()=>e?(0,It.ze)("profile-seed:"+e):null),[r,l]=n().useState(t),[c,d]=n().useState(null),[h,u]=n().useState(!1),[g,p]=n().useState(!1),[m,f]=n().useState(!1),[x,j]=n().useState(""),[b,y]=n().useState("");return n().useEffect(()=>{e&&((0,zt.RM)(e).then(e=>{u(!!e.pinned),p(!!e.mute_notifications),d(e.version)}).catch(()=>{}),(0,zt.VM)(e).then(n=>{(0,It.Ug)("profile-seed:"+e,n),a(n),s||l("blocked_by_me"===n.relationship)}).catch(()=>{s||(0,zt.pl)(e).then(e=>{e&&e.relationship&&l("blocked_by_me"===e.relationship)}).catch(()=>{})}),(0,zt.Ey)(e=>(0,zt.M7)("",e)).then(n=>{const t=n.find(n=>n.user_id===e);t&&j(t.remark||"")}).catch(()=>{}))},[e]),(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"聊天设置",back:"friend-profile",backUid:e}),(0,vt.jsxs)("main",{className:"people-settings",children:[(0,vt.jsxs)("section",{className:"people-settings-profile",children:[(0,vt.jsx)(Wo,{person:o}),(0,vt.jsx)("strong",{children:o&&o.display_name||""})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>is.A.navigateTo(is.A.addUrlParam(is.A.setUrlSidePanel(is.A.currentUrl(),"history-search"),"topic",e)),children:[(0,vt.jsx)("span",{children:"查看聊天记录"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息传输方式"}),(0,vt.jsx)("small",{children:"已启动加密传输"})]})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"置顶聊天"}),(0,vt.jsx)(ra,{checked:h,disabled:null===c,onChange:n=>{const t=h;u(n),(0,zt.EA)(e,{pinned:n,version:c}).then(e=>d(e.version)).catch(e=>{u(t),i(e.message||"设置失败")})}})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息免打扰"}),(0,vt.jsx)(ra,{checked:g,disabled:null===c,onChange:n=>{const t=g;p(n),(0,zt.EA)(e,{mute_notifications:n,version:c}).then(e=>d(e.version)).catch(e=>{p(t),i(e.message||"设置失败")})}})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>Fo("clear-chat-confirm",e),children:[(0,vt.jsx)("span",{children:"清空聊天记录"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]}),m?(0,vt.jsxs)("div",{className:"people-remark-edit",children:[(0,vt.jsx)("input",{value:b,maxLength:"64",onChange:e=>y(e.target.value),autoFocus:!0}),(0,vt.jsx)("button",{type:"button",onClick:()=>{const n=b.trim();(0,zt.Sk)(e,n).then(()=>{j(n),f(!1),i("备注已更新")}).catch(e=>i(e.message||"备注更新失败"))},children:"保存"})]}):(0,vt.jsxs)("button",{type:"button",onClick:()=>{y(x),f(!0)},children:[(0,vt.jsx)("span",{children:"备注"}),x?(0,vt.jsx)("small",{children:x}):null,(0,vt.jsx)(Vo,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:r?"取消拉黑":"拉黑"}),(0,vt.jsx)(ra,{checked:!!r,onChange:n=>{n?Fo("block-confirm",e):(0,zt.kV)(e).then(()=>{l(!1),i("已移出黑名单")}).catch(e=>i(e.message||"操作失败"))}})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{let n=is.A.setUrlSidePanel(is.A.currentUrl(),"abuse-report-reasons");n=is.A.addUrlParam(n,"target_type","user"),n=is.A.addUrlParam(n,"target_id",e),n=is.A.addUrlParam(n,"target_name",o&&o.display_name||e),is.A.navigateTo(n)},children:[(0,vt.jsx)("span",{children:"投诉与举报"}),(0,vt.jsx)(Vo,{children:"chevron_right"})]})]}),r?null:(0,vt.jsx)("button",{type:"button",className:"people-danger",onClick:()=>Fo("friend-delete-confirm",e),children:"删除好友"})]})]})}function ca({onToast:e}){const[t,s]=n().useState([]),[i,o]=n().useState(!0),[a,r]=n().useState(!1);return n().useEffect(()=>{(0,zt.Ey)(e=>(0,zt.Tr)(e)).then(s).catch(()=>r(!0)).finally(()=>o(!1))},[]),(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(Ho,{title:"黑名单",back:"android-settings"}),(0,vt.jsx)("main",{className:"people-block-list",children:i?(0,vt.jsx)("p",{className:"people-empty-hint",children:"加载中…"}):t.length?t.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Wo,{person:n.user}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.user&&n.user.display_name||n.user_id}),(0,vt.jsx)("small",{children:"已阻止消息和通话"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return t=n.user_id,void(0,zt.kV)(t).then(()=>{s(e=>e.filter(e=>e.user_id!==t)),e("已移出黑名单")}).catch(n=>e(n.message||"操作失败"));var t},children:"移出"})]},n.user_id)):(0,vt.jsxs)("div",{className:"people-empty",children:[(0,vt.jsx)(Vo,{children:"person_off"}),(0,vt.jsx)("strong",{children:a?"黑名单加载失败":"黑名单为空"})]})})]})}function da({type:e,uid:t,tinode:s,onToast:i}){const[o,a]=n().useState(!1),r={delete:{title:"删除好友",text:"删除后将解除好友关系,对方将无法继续向你发送消息。聊天记录仍会保留。",action:"确认删除",route:"address-book",toast:"好友已删除",keepUid:!1},block:{title:"黑名单",text:'拉黑后将不会收到对方的消息,可在"设置"—"黑名单"查看人员名单',action:"确定",route:"friend-settings-blocked",toast:"已加入黑名单",keepUid:!0},clear:{title:"清除聊天记录",text:"清空后不可找回,确定要清空当前会话的历史记录吗?",action:"确定",route:"friend-settings",toast:"聊天记录已清除",keepUid:!0}}[e];return(0,vt.jsxs)("div",{className:"people-page",children:[(0,vt.jsx)(la,{uid:t,initialBlocked:"block"===e,pinBlocked:!0,onToast:i}),(0,vt.jsx)("div",{className:"people-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"people-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("h2",{children:r.title}),(0,vt.jsx)("p",{children:r.text}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:o,onClick:()=>{let n;if(a(!0),"delete"===e)n=(0,zt.A0)(t);else if("block"===e)n=(0,zt.rn)(t);else{const e=s?s.getTopic(t):null;n=e?e.delMessagesAll(!1):Promise.resolve()}n.then(()=>{i(r.toast),Fo(r.route,r.keepUid?t:void 0)}).catch(e=>i(e.message||"操作失败")).finally(()=>a(!1))},children:r.action}),(0,vt.jsx)("button",{type:"button",onClick:()=>Fo("friend-settings",t),children:"取消"})]})})]})}function ha({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o,onCreateTopic:a,onOpenScanner:r}){const[l,c]=n().useState(""),d=t&&t.uid;let h;return h="address-book"===e?(0,vt.jsx)(Jo,{myUserId:s,onTopicSelected:o}):"friend-requests"===e?(0,vt.jsx)(Zo,{onToast:c,onTopicSelected:o,onCreateTopic:a}):"add-friend"===e||"friend-search-result"===e?(0,vt.jsx)(ta,{result:"friend-search-result"===e,onToast:c,onOpenScanner:r}):"my-friend-qr"===e?(0,vt.jsx)(sa,{onToast:c}):"friend-qr"===e?(0,vt.jsx)(ia,{uid:d,onToast:c}):"friend-verification"===e?(0,vt.jsx)(oa,{uid:d,onToast:c}):"friend-profile"===e||"group-member-profile"===e?(0,vt.jsx)(aa,{uid:d,friend:"friend-profile"===e,onTopicSelected:o,onCreateTopic:a,onToast:c}):"friend-settings"===e||"friend-settings-blocked"===e?(0,vt.jsx)(la,{uid:d,initialBlocked:"friend-settings-blocked"===e,onToast:c}):"block-list"===e?(0,vt.jsx)(ca,{onToast:c}):"friend-delete-confirm"===e?(0,vt.jsx)(da,{type:"delete",uid:d,tinode:i,onToast:c}):"block-confirm"===e?(0,vt.jsx)(da,{type:"block",uid:d,tinode:i,onToast:c}):(0,vt.jsx)(da,{type:"clear",uid:d,tinode:i,onToast:c}),(0,vt.jsxs)(vt.Fragment,{children:[h,(0,vt.jsx)(Ko,{message:l,onDone:()=>c("")})]})}const ua=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);t=n?is.A.addUrlParam(t,"topic",n):is.A.removeUrlParam(t,"topic"),is.A.navigateTo(t)},ga=(e,n,t)=>{t&&n&&(0,It.Ug)("profile-seed:"+n,{user_id:n,display_name:t.group_nickname||t.display_name||n,avatar_file_id:t.avatar_file_id,...t.signature?{signature:t.signature}:{},...t.region?{region:t.region}:{},...t.gender?{gender:t.gender}:{}}),is.A.navigateTo(is.A.addUrlParam(is.A.setUrlSidePanel(is.A.currentUrl(),"group-member-profile"),"uid",n)),e&&n&&(0,zt.rX)(e,n).then(e=>{const t=(0,It.ze)("profile-seed:"+n)||{};(0,It.Ug)("profile-seed:"+n,{...t,...e}),window.dispatchEvent(new CustomEvent("profile-seed-updated",{detail:{uid:n}}))}).catch(()=>{})},pa=["group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload","group-invite-friends"];function ma(e){const n=(e||"").trim()[0]||"#";if(/[A-Za-z]/.test(n))return n.toUpperCase();if(/[一-龥]/.test(n)){const e=Oo(n,{pattern:"first",toneType:"none"});return/[a-z]/i.test(e)?e.toUpperCase():"#"}return"#"}function fa(e,n){const t={};return e.forEach(e=>{const s=n(e);(t[s]||(t[s]=[])).push(e)}),Object.keys(t).sort().map(e=>[e,t[e]])}function xa(e,n){if(n.name&&n.name!==n.topic)return n.name;const t=e&&e.getTopic?e.getTopic(n.topic):null,s=t&&t.public;return s&&(s.name||s.display_name||s.fn)||n.name||n.topic}function ja(e,n){if(n.member_count)return n.member_count;const t=e&&e.getTopic?e.getTopic(n.topic):null;return t&&t.subcnt||0}function ba(e){if(!e)return"";const n=new Date(e);return`${n.getMonth()+1}-${String(n.getDate()).padStart(2,"0")}`}const ya=[{id:"annie",name:"安妮",role:"管理员",avatar:"img/bkg/p09.jpg"},{id:"lizi",name:"栗子来了",role:"成员",avatar:"img/bkg/p15.jpg"},{id:"wang",name:"王珊珊",role:"成员",avatar:"img/bkg/p14.jpg"},{id:"sun",name:"孙光洪",role:"成员",avatar:"img/bkg/p03.jpg"},{id:"lin",name:"林间风",role:"成员",avatar:"img/bkg/p18.jpg"}],wa={owned:[{id:"product",name:"产品研发群",count:18,avatar:"img/bkg/p22.jpg"}]};function va({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function ka({title:e,back:n="group-list",backTopic:t,onBack:s,right:i,onRight:o}){return(0,vt.jsxs)("header",{className:"group-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||(s?s():ua(n,t))},"aria-label":"返回",children:(0,vt.jsx)(va,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),i?(0,vt.jsx)("button",{type:"button",className:"text",onClick:o,children:i}):(0,vt.jsx)("span",{})]})}function Ca({item:e,icon:t}){const s=e&&e.avatar_file_id,[i,o]=n().useState(null);return n().useEffect(()=>{if(!s)return void o(null);let e=!0;return(0,zt.w8)(s).then(n=>{e&&o(n)}).catch(()=>{}),()=>{e=!1}},[s]),(0,vt.jsx)("span",{className:"group-avatar",children:i?(0,vt.jsx)("img",{src:i,alt:""}):(0,vt.jsx)(va,{children:t||"group"})})}function za({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function _a({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,1400);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsxs)("div",{className:"group-toast-center",role:"status",children:[(0,vt.jsx)(va,{children:"check_circle"}),(0,vt.jsx)("span",{children:e})]}):null}function Sa({value:e,onChange:n,placeholder:t="搜索"}){return(0,vt.jsxs)("label",{className:"group-search",children:[(0,vt.jsx)(va,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),placeholder:t})]})}function Na({checked:e,onChange:n,disabled:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:t,className:"group-switch"+(e?" checked":""),onClick:()=>!t&&n(!e),children:(0,vt.jsx)("i",{})})}function Ta({tinode:e,onToast:t}){const[s,i]=n().useState(()=>(0,It.ze)("groups")||{owned:null,managed:null,joined:null}),[o,a]=n().useState({owned:!1,managed:!1,joined:!1}),[r,l]=n().useState("owned"),[c,d]=n().useState(""),h=(0,It.o_)(c,300),[u,g]=n().useState(!1),[p,m]=n().useState(""),[f,x]=n().useState(!1),j=n().useCallback(()=>{["owned","managed","joined"].forEach(e=>{(0,zt.f)({category:e,query:h}).then(n=>{const t=n.items||[];i(n=>{const s={...n,[e]:t};return h||(0,It.Ug)("groups",s),s})}).catch(()=>{t("加载失败"),a(n=>({...n,[e]:!0}))})})},[h]);n().useEffect(()=>{j()},[j]);const b=s[r];return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊",back:"address-book",right:"创建",onRight:()=>g(!0)}),(0,vt.jsx)(Sa,{value:c,onChange:d,placeholder:"搜索群聊"}),(0,vt.jsx)("nav",{className:"group-tabs",children:[["owned","我创建的"],["managed","我管理的"],["joined","我加入的"]].map(([e,n])=>(0,vt.jsxs)("button",{type:"button",className:r===e?"active":"",onClick:()=>l(e),children:[n,"(",(s[e]||[]).length,")"]},e))}),(0,vt.jsx)("main",{className:"group-list",children:null===b?(0,vt.jsx)("p",{className:"group-inline-empty",children:o[r]?"群列表加载失败":"加载中…"}):b.length?b.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-settings",n.topic),children:[(0,vt.jsx)(Ca,{item:n}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:xa(e,n)}),(0,vt.jsxs)("small",{children:[ja(e,n)," 位成员"]})]}),(0,vt.jsx)(va,{children:"chevron_right"})]},n.topic)):(0,vt.jsxs)("div",{className:"group-empty",children:[(0,vt.jsx)(va,{children:"groups"}),(0,vt.jsx)("strong",{children:"这里还没有群聊"}),(0,vt.jsx)("p",{children:"owned"===r?"创建一个群聊,邀请成员一起沟通":"加入或被设置为管理员后会显示在这里"}),(0,vt.jsx)("button",{type:"button",onClick:()=>g(!0),children:"创建群聊"})]})}),u?(0,vt.jsx)("div",{className:"group-modal-backdrop",children:(0,vt.jsxs)("section",{className:"group-modal",children:[(0,vt.jsx)("h2",{children:"创建群聊"}),(0,vt.jsxs)("label",{children:["群名称",(0,vt.jsx)("input",{autoFocus:!0,value:p,maxLength:"11",onChange:e=>m(e.target.value),placeholder:"输入群名称"})]}),(0,vt.jsx)("p",{children:"创建后可继续邀请成员和设置群资料。"}),(0,vt.jsxs)("footer",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>g(!1),children:"取消"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:!p.trim()||f,onClick:()=>{p.trim()&&!f&&(x(!0),(0,zt.wj)({name:p.trim()}).then(()=>{g(!1),m(""),t("群聊创建成功"),j()}).catch(e=>t(e.message||"创建失败")).finally(()=>x(!1)))},children:"创建"})]})]})}):null]})}function Ba(){return(0,vt.jsxs)("header",{className:"group-chat-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-list"),children:(0,vt.jsx)(va,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("h1",{children:"产品研发群"}),(0,vt.jsx)("small",{children:"18人"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-settings"),children:(0,vt.jsx)(va,{children:"more_vert"})})]})}function Pa({children:e}){return(0,vt.jsx)("p",{className:"group-system-event",children:e})}function qa({mode:e,onToast:t}){const[s,i]=n().useState(!1);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(Ba,{}),["group-new-request","group-summary"].includes(e)?(0,vt.jsxs)("button",{type:"button",className:"group-top-notice",onClick:()=>ua("group-join-requests"),children:[(0,vt.jsx)(va,{children:"person_add_alt"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"新的进群申请"}),(0,vt.jsx)("small",{children:"2 条申请等待处理"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}):null,["group-announcement","group-summary"].includes(e)?(0,vt.jsxs)("button",{type:"button",className:"group-top-notice announcement",onClick:()=>ua("group-announcement-detail"),children:[(0,vt.jsx)(va,{children:"campaign"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"群公告"}),(0,vt.jsx)("small",{children:"下午三点进行版本评审,请准时参加"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}):null,(0,vt.jsxs)("main",{className:"group-chat-timeline",children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),"group-invite"===e?(0,vt.jsxs)("article",{className:"group-invite-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)(Ca,{item:wa.owned[0]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"产品研发群"}),(0,vt.jsx)("small",{children:"安妮邀请你加入群聊"})]})]}),(0,vt.jsx)("p",{children:"一起参与新版产品的设计与研发讨论"}),(0,vt.jsx)("button",{type:"button",disabled:s,onClick:()=>{i(!0),t("已加入产品研发群")},children:s?"已加入":"立即加入"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Pa,{children:"安妮邀请栗子来了加入群聊"}),(0,vt.jsx)(Pa,{children:"管理员通过了王珊珊的进群申请"}),(0,vt.jsxs)("div",{className:"group-chat-message",children:[(0,vt.jsx)(Ca,{item:ya[0]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:["安妮 ",(0,vt.jsx)("em",{children:"管理员"})]}),(0,vt.jsx)("p",{children:"下午评审前请大家把问题同步到文档里。"})]})]}),(0,vt.jsxs)("div",{className:"group-chat-message owner",children:[(0,vt.jsx)(Ca,{item:{...ya[3],avatar:"img/bkg/p05.jpg"}}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:["陈晨 ",(0,vt.jsx)("em",{children:"群主"})]}),(0,vt.jsx)("p",{children:"收到,我会在两点前整理一版。"})]})]})]})]}),(0,vt.jsxs)("div",{className:"group-chat-composer",children:[(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"record_voice_over"})}),(0,vt.jsx)("input",{placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"sentiment_satisfied_alt"})}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(va,{children:"add_circle_outline"})})]})]})}function Ma({topic:e,fromChat:t,onToast:s}){const i=n().useCallback(()=>{is.A.navigateTo(is.A.setUrlTopic(is.A.setUrlSidePanel("",""),e))},[e]),[o,a]=n().useState(()=>e&&(0,It.ze)("group-join-requests:"+e)||null),[r,l]=n().useState({}),[c,d]=n().useState(!1),h=n().useRef(new Set),u=n().useCallback(()=>{e&&(0,zt.s7)(e,"all").then(n=>{const t=n.items||[];(0,It.Ug)("group-join-requests:"+e,t),a(t);const s=new Set;t.forEach(e=>{s.add(e.user_id),e.inviter_id&&s.add(e.inviter_id)}),s.forEach(e=>{h.current.has(e)||(h.current.add(e),(0,zt.VM)(e).then(n=>l(t=>({...t,[e]:n}))).catch(()=>{h.current.delete(e)}))})}).catch(()=>{s("加载失败"),d(!0)})},[e]);n().useEffect(()=>{a(e&&(0,It.ze)("group-join-requests:"+e)||null),u()},[e,u]);const g=(n,t)=>{(t?(0,zt.Fo)(e,n.request_id,n.version):(0,zt.iH)(e,n.request_id,n.version)).then(()=>{s(t?"已同意进群申请":"已拒绝进群申请"),u()}).catch(e=>s(e.message||"操作失败"))},p=e=>r[e]&&r[e].display_name||e,m={accepted:"已确定",approved:"已确定",rejected:"已拒绝",expired:"已过期"};return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"邀请进群申请",back:t?void 0:"group-governance",backTopic:e,onBack:t?i:void 0}),(0,vt.jsx)("main",{className:"group-request-list",children:null===o?(0,vt.jsx)("p",{className:"group-inline-empty",children:c?"申请列表加载失败":"加载中…"}):o.length?o.map(e=>{return(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:r[e.user_id]||{}}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:(n=e,"qr"===n.source?`${p(n.user_id)}通过二维码分享进群`:n.inviter_id?`${p(n.inviter_id)}邀请${p(n.user_id)}进群`:`${p(n.user_id)}申请加入群聊`)}),(0,vt.jsx)("small",{children:ba(e.created_at)})]}),"pending"===e.status?(0,vt.jsxs)("span",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>g(e,!1),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",onClick:()=>g(e,!0),children:"确定"})]}):(0,vt.jsx)("em",{children:m[e.status]||e.status})]},e.request_id);var n}):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无进群申请"})})]})}function Aa({topic:e,myRole:t,fromChat:s,onToast:i}){const o=e&&(0,It.ze)("group-announcement:"+e),[a,r]=n().useState(()=>o||null),[l,c]=n().useState(()=>o&&o.content||""),[d,h]=n().useState(!1),[u,g]=n().useState(!1),[p,m]=n().useState(!1),f="owner"===t||"admin"===t,x=n().useCallback(()=>{is.A.navigateTo(is.A.setUrlTopic(is.A.setUrlSidePanel("",""),e))},[e]);n().useEffect(()=>{if(!e)return;const n=(0,It.ze)("group-announcement:"+e);n&&(r(n),c(n.content||"")),(0,zt.Yx)(e).then(n=>{(0,It.Ug)("group-announcement:"+e,n),r(n),c(n.content||"")}).catch(()=>{i("加载失败"),m(!0)})},[e]);const j=n().useRef(null);return n().useEffect(()=>{const n=a&&a.announcement_id;n&&e&&j.current!==n&&(j.current=n,(0,zt.nI)(e,n).catch(()=>{}))},[e,a]),a?(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群公告",back:s?void 0:"group-settings",backTopic:e,onBack:s?x:void 0,right:f?"发布":null,onRight:f?()=>{l.trim()&&!u&&(g(!0),(0,zt.Qq)(e,l.trim(),a?a.version:0).then(n=>{(0,It.Ug)("group-announcement:"+e,n),r(n),h(!1),i("群公告已发布")}).catch(e=>i(e.message||"发布失败")).finally(()=>g(!1)))}:void 0}),(0,vt.jsxs)("main",{className:"group-announcement-detail",children:[f?(0,vt.jsx)("textarea",{autoFocus:d,value:l,maxLength:2e3,onChange:e=>c(e.target.value),onFocus:()=>h(!0),placeholder:"请输入群公告内容"}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(va,{children:"campaign"}),(0,vt.jsx)("p",{children:a.content||"暂无群公告"})]}),f?null:(0,vt.jsx)("small",{className:"group-inline-hint",children:"仅群主及群管理员可编辑"})]})]}):(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群公告",back:s?void 0:"group-settings",backTopic:e,onBack:s?x:void 0}),(0,vt.jsx)("main",{className:"group-announcement-detail",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:p?"群公告加载失败":"加载中…"})})]})}function Ea({topic:e,myUserId:t,tinode:s,onToast:i}){const[o,a]=n().useState(()=>e&&(0,It.ze)("group-settings:"+e)||null),[r,l]=n().useState(!1),[c,d]=n().useState(()=>{const n=e&&(0,It.ze)("group-members:"+e);return n?n.slice(0,9):[]}),[h,u]=n().useState(()=>{const n=e&&(0,It.ze)("group-announcement:"+e);return n&&n.content?n:null});n().useEffect(()=>{if(!e)return;a((0,It.ze)("group-settings:"+e)||null),d(((0,It.ze)("group-members:"+e)||[]).slice(0,9));const n=(0,It.ze)("group-announcement:"+e);u(n&&n.content?n:null),(0,zt.no)(e).then(n=>{(0,It.Ug)("group-settings:"+e,n),a(n)}).catch(()=>{i("加载失败"),l(!0)}),(0,zt.Nk)(e).then(n=>{const t=n.items||[];(0,It.Ug)("group-members:"+e,t),d(t.slice(0,9))}).catch(()=>{}),(0,zt.Yx)(e).then(n=>{(0,It.Ug)("group-announcement:"+e,n),u(n&&n.content?n:null)}).catch(()=>{})},[e]);const g=n=>{(0,zt.U3)(e,{pinned:o.pinned,mute_notifications:o.mute_notifications,...n}).then(()=>a(t=>{const s={...t,...n};return(0,It.Ug)("group-settings:"+e,s),s})).catch(e=>i(e.message||"设置失败"))};if(!o)return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊设置",back:"group-list"}),(0,vt.jsx)("main",{className:"group-settings",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:r?"群组信息加载失败":"加载中…"})})]});const p=o.permissions&&o.permissions.can_manage_settings,m=[["group-profile","群资料",o.name],["group-announcement-detail","群公告",h?h.content:"暂无群公告"],["group-files","群文件",""],["group-my-nickname","我在本群的昵称",""]];return p&&m.splice(3,0,["group-governance","群组管理",""]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群聊设置",back:"group-list",right:p?"管理":null,onRight:p?()=>ua("group-governance",e):void 0}),(0,vt.jsxs)("main",{className:"group-settings",children:[(0,vt.jsxs)("button",{type:"button",className:"group-settings-header",onClick:()=>ua("group-profile",e),children:[(0,vt.jsx)(Ca,{item:o}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o.name}),(0,vt.jsx)("small",{children:o.description||"群主很懒,还没有群简介"})]}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("section",{className:"group-member-section",children:[(0,vt.jsxs)("button",{type:"button",className:"group-member-section-title",onClick:()=>ua("group-members",e),children:[(0,vt.jsx)("strong",{children:"群成员"}),(0,vt.jsxs)("small",{children:["共 ",o.member_count," 位成员"]}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("div",{className:"group-member-grid",children:[c.slice(0,9).map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ga(e,n.user_id,n),children:[(0,vt.jsx)(Ca,{item:n,icon:"person"}),(0,vt.jsx)("small",{children:n.group_nickname||n.display_name})]},n.user_id)),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-invite-friends",e),children:[(0,vt.jsx)("span",{className:"group-member-tile-action",children:(0,vt.jsx)(va,{children:"add"})}),(0,vt.jsx)("small",{children:"添加"})]})]})]}),(0,vt.jsx)("section",{children:m.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ua(n[0],e),children:[(0,vt.jsx)("span",{children:n[1]}),(0,vt.jsx)("small",{children:n[2]}),(0,vt.jsx)(va,{children:"chevron_right"})]},n[0]))}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"置顶聊天"}),(0,vt.jsx)(Na,{checked:!!o.pinned,onChange:e=>g({pinned:e})})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"消息免打扰"}),(0,vt.jsx)(Na,{checked:!!o.mute_notifications,onChange:e=>g({mute_notifications:e})})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("history-search",e),children:[(0,vt.jsx)("span",{children:"查看聊天记录"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const n=s?s.getTopic(e):null;(n?n.delMessagesAll(!1):Promise.resolve()).then(()=>i("聊天记录已清除")).catch(e=>i(e.message||"操作失败"))},children:[(0,vt.jsx)("span",{children:"清空聊天记录"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{let n=is.A.setUrlSidePanel("","abuse-report-reasons");n=is.A.addUrlParam(n,"target_type","group"),n=is.A.addUrlParam(n,"target_id",e),n=is.A.addUrlParam(n,"target_name",o&&o.name||e),is.A.navigateTo(n)},children:[(0,vt.jsx)("span",{children:"投诉/举报"}),(0,vt.jsx)(va,{children:"chevron_right"})]})]}),(0,vt.jsx)("button",{type:"button",className:"group-danger",onClick:()=>{o&&"owner"===o.my_role?i("群主需先转让群主或解散群聊"):(0,zt.j)(e).then(()=>{i("已退出群聊"),ua("group-list")}).catch(e=>i(e.message||"操作失败"))},children:"退出群组"})]})]})}function Ia({topic:e,myUserId:t,onToast:s}){const[i,o]=n().useState(()=>e&&(0,It.ze)("group:"+e)||null),[a,r]=n().useState(!1),[l,c]=n().useState("");if(n().useEffect(()=>{e&&(o((0,It.ze)("group:"+e)||null),(0,zt.Wx)(e).then(n=>{(0,It.Ug)("group:"+e,n),o(n)}).catch(()=>{s("加载失败"),r(!0)}))},[e]),n().useEffect(()=>{e&&(0,zt.ly)(e).then(e=>{c(e.nickname||"")}).catch(()=>{})},[e]),!i)return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群资料",back:"group-settings",backTopic:e}),(0,vt.jsx)("main",{className:"group-profile",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:a?"群组信息加载失败":"加载中…"})})]});const d=i.permissions&&i.permissions.can_edit_profile,h=l||"未设置";return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群资料",back:"group-settings",backTopic:e}),(0,vt.jsxs)("main",{className:"group-profile",children:[(0,vt.jsxs)("button",{type:"button",className:"group-profile-avatar",disabled:!d,onClick:()=>d&&ua("group-avatar",e),children:[(0,vt.jsx)(Ca,{item:i}),(0,vt.jsx)("span",{children:"群头像"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-my-nickname",e),children:[(0,vt.jsx)("span",{children:"群昵称"}),(0,vt.jsx)("small",{children:h}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!d,onClick:()=>d&&ua("group-nickname",e),children:[(0,vt.jsx)("span",{children:"群名称"}),(0,vt.jsx)("small",{children:i.name}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!d,onClick:()=>d&&ua("group-description",e),children:[(0,vt.jsx)("span",{children:"群简介"}),(0,vt.jsx)("small",{children:i.description||"群主很懒,还没有群简介"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",className:"group-profile-qr",onClick:()=>ua("group-qr",e),children:[(0,vt.jsx)("span",{children:"群二维码"}),(0,vt.jsx)(va,{children:"qr_code"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-members",e),children:[(0,vt.jsx)("span",{children:"群成员"}),(0,vt.jsxs)("small",{children:["共",i.member_count,"位成员"]}),(0,vt.jsx)(va,{children:"chevron_right"})]})]})]})}function Da({topic:e,myUserId:t,tinode:s,onToast:i}){const o=n().useRef(null),[a,r]=n().useState(!1);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(Ia,{topic:e,onToast:i}),(0,vt.jsx)("input",{ref:o,type:"file",accept:"image/*",style:{display:"none"},onChange:n=>{const t=n.target.files&&n.target.files[0];n.target.value="",t&&s&&(r(!0),(0,zt.rD)(s,t).then(({fileId:n})=>(0,zt.Wx)(e).then(t=>(0,zt.vW)(e,{avatar_file_id:n,version:t.version}))).then(()=>{i("群头像已更新"),ua("group-profile",e)}).catch(e=>i(e.message||"上传失败")).finally(()=>r(!1)))}}),(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-source-sheet",children:[(0,vt.jsx)("h2",{children:"设置群头像"}),(0,vt.jsxs)("button",{type:"button",disabled:a,onClick:()=>o.current&&o.current.click(),children:[(0,vt.jsx)(va,{children:"photo_library"}),a?"正在上传…":"从相册选择"]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ua("group-profile",e),children:"取消"})]})})]})}function Ua({topic:e,onToast:t}){const s=n().useRef(null),[i,o]=n().useState(null);n().useEffect(()=>{e&&(0,zt.oo)(e).then(o).catch(()=>t("二维码生成失败"))},[e]),n().useEffect(()=>{s.current&&i&&(s.current.innerHTML="",new(Ai())(s.current,{text:i.qr_payload,width:190,height:190,correctLevel:Ai().CorrectLevel.M}))},[i]);const a=i&&i.group_snapshot;return(0,vt.jsxs)("div",{className:"group-page group-qr-page",children:[(0,vt.jsx)(ka,{title:"群二维码",back:"group-profile",backTopic:e}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"group-qr-card",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)(Ca,{item:a||{}}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:a?a.name:""}),(0,vt.jsxs)("small",{children:[a?a.member_count:0," 位成员"]})]})]}),(0,vt.jsx)("div",{className:"group-qrcode",ref:s}),(0,vt.jsx)("p",{children:"使用APP扫码二维码,加入群聊"})]}),(0,vt.jsxs)("div",{className:"group-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&i?navigator.share({title:a&&a.name,text:"扫码加入群聊",url:i.qr_payload}).catch(()=>{}):i&&navigator.clipboard.writeText(i.qr_payload).then(()=>t("链接已复制")).catch(()=>t("分享失败"))},children:[(0,vt.jsx)(va,{children:"share"}),"分享好友"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=s.current&&s.current.querySelector("canvas");if(!e)return void t("保存失败");const n=document.createElement("a");n.href=e.toDataURL("image/png"),n.download=(a?a.name:"group")+"-qrcode.png",n.click(),t("群二维码已保存")},children:[(0,vt.jsx)(va,{children:"download"}),"保存至相册"]})]})]})]})}const Ra=[["join_approval","进群验证","开启后,他人申请加入群聊需群主或管理员同意"],["mute_all","全体禁言","开启后,仅群主和管理员可以发言"],["member_upload_files","群成员文件上传","关闭后,普通成员将无法上传群文件"],["member_invite","群成员邀请","关闭后,仅群主和管理员可以邀请新成员进群"],["member_private_chat","群成员私信权限","关闭后,不允许发送名片消息,且普通成员在群聊界面、群组信息内点击头像无反应。"]];function La({topic:e,myRole:t,tinode:s,onToast:i}){const[o,a]=n().useState(()=>e&&(0,It.ze)("group-governance:"+e)||null),[r,l]=n().useState(!1),[c,d]=n().useState(!1),[h,u]=n().useState(!1);return n().useEffect(()=>{e&&(a((0,It.ze)("group-governance:"+e)||null),(0,zt.uj)(e).then(n=>{(0,It.Ug)("group-governance:"+e,n),a(n)}).catch(()=>{i("加载失败"),u(!0)}))},[e]),o?(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群组管理",back:"group-settings",backTopic:e}),(0,vt.jsxs)("main",{className:"group-governance",children:[(0,vt.jsx)("section",{children:(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-avatar",e),children:[(0,vt.jsx)("span",{children:"设置群头像"}),(0,vt.jsx)(va,{children:"chevron_right"})]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-join-requests",e),children:[(0,vt.jsx)("span",{children:"邀请进群申请"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-muted",e),children:[(0,vt.jsx)("span",{children:"禁言的群成员"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-admins",e),children:[(0,vt.jsx)("span",{children:"设置管理员"}),(0,vt.jsx)(va,{children:"chevron_right"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ua("group-owner-select",e),children:[(0,vt.jsx)("span",{children:"群主管理权转让"}),(0,vt.jsx)(va,{children:"chevron_right"})]})]}),(0,vt.jsx)("section",{children:Ra.map(([n,t,s])=>(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t}),(0,vt.jsx)("small",{children:s})]}),(0,vt.jsx)(Na,{checked:!!o[n],disabled:!1===o[n+"_editable"],onChange:t=>((n,t)=>{(0,zt.Hw)(e,{[n]:t,version:o?o.version:0}).then(n=>{(0,It.Ug)("group-governance:"+e,n),a(n)}).catch(e=>i(e.message||"设置失败"))})(n,t)})]},n))}),(0,vt.jsx)("button",{type:"button",className:"group-danger",disabled:r||"owner"!==t,onClick:()=>{"owner"===t&&d(!0)},children:"解散群组"})]}),c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"解散群组"}),(0,vt.jsx)("p",{children:"解散后群聊将无法恢复,确定要解散该群聊吗?"}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:r,onClick:()=>{const n=s?s.getTopic(e):null;n?(l(!0),n.delTopic(!0).then(()=>{i("群聊已解散"),ua("group-list")}).catch(e=>{i(e.message||"解散失败"),d(!1)}).finally(()=>l(!1))):d(!1)},children:r?"处理中…":"确定"}),(0,vt.jsx)("button",{type:"button",disabled:r,onClick:()=>d(!1),children:"取消"})]})}):null]}):(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群组管理",back:"group-settings",backTopic:e}),(0,vt.jsx)("main",{className:"group-governance",children:(0,vt.jsx)("p",{className:"group-inline-empty",children:h?"群组管理加载失败":"加载中…"})})]})}function Oa(e){return{owner:e.find(e=>"owner"===e.role)||null,admins:e.filter(e=>"admin"===e.role)}}function Fa({topic:e,onToast:t}){const s=e&&(0,It.ze)("group-members:"+e),i=s?Oa(s):{owner:null,admins:null},[o,a]=n().useState(()=>i.owner),[r,l]=n().useState(()=>i.admins),[c,d]=n().useState(""),[h,u]=n().useState(!1),g=n().useCallback(()=>{if(!e)return;const n=(0,It.ze)("group-members:"+e);if(n){const e=Oa(n);a(e.owner),l(e.admins)}(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(n=>{(0,It.Ug)("group-members:"+e,n);const t=Oa(n);a(t.owner),l(t.admins)}).catch(()=>{t("加载失败"),u(!0)})},[e]);return n().useEffect(()=>{g()},[g]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"设置群管理员",back:"group-governance",backTopic:e,right:"添加",onRight:()=>ua("group-admin-add",e)}),(0,vt.jsxs)("main",{className:"group-admin-page",children:[(0,vt.jsxs)("aside",{children:[(0,vt.jsx)(va,{children:"info_outline"}),(0,vt.jsx)("p",{children:"管理员可协助审批进群申请、管理公告和群成员。最多设置 10 名管理员。"})]}),o?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("h2",{children:"群主"}),(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:o}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o.group_nickname||o.display_name}),(0,vt.jsx)("small",{children:"群主"})]})]})]}):null,(0,vt.jsxs)("h2",{children:["管理员 ",r?r.length:0,"/10"]}),null===r?(0,vt.jsx)("p",{className:"group-inline-empty",children:h?"成员列表加载失败":"加载中…"}):r.length?r.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:n}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.group_nickname||n.display_name}),(0,vt.jsx)("small",{children:"管理员"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return s=n.user_id,void(0,zt.cB)(e,s).then(()=>{d("管理员已移除"),l(e=>e?e.filter(e=>e.user_id!==s):e);const n=(0,It.ze)("group-members:"+e);n&&(0,It.Ug)("group-members:"+e,n.map(e=>e.user_id===s?{...e,role:"member"}:e))}).catch(e=>t(e.message||"操作失败"));var s},children:"移除"})]},n.user_id)):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无管理员"})]}),(0,vt.jsx)(_a,{message:c,onDone:()=>d("")})]})}function $a({topic:e,onToast:t}){const[s,i]=n().useState(()=>e&&(0,It.ze)("group-members:"+e)||null),[o,a]=n().useState(""),[r,l]=n().useState(!1);n().useEffect(()=>{e&&(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(n=>{(0,It.Ug)("group-members:"+e,n),i(n)}).catch(()=>{t("加载失败"),l(!0)})},[e]);const c=fa((s||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(o.toLowerCase())),e=>ma(e.group_nickname||e.display_name)),d=e=>"owner"===e?"群主":"admin"===e?"管理员":"";return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群成员",back:"group-settings",backTopic:e}),(0,vt.jsx)(Sa,{value:o,onChange:a,placeholder:"搜索群成员"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:r?"成员列表加载失败":"加载中…"}):c.map(([t,s])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:t}),s.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>ga(e,n.user_id,n),children:[(0,vt.jsx)(Ca,{item:n,icon:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n.group_nickname||n.display_name}),d(n.role)?(0,vt.jsx)("small",{children:d(n.role)}):null]})]},n.user_id))]},t))})]})}function Va({type:e,topic:t,onToast:s}){const i="mute-add"===e,o=i?"group-muted":"group-admins",[a,r]=n().useState(null),[l,c]=n().useState([]),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(!1);n().useEffect(()=>{t&&(0,zt.Ey)(e=>(0,zt.Nk)(t,{cursor:e,...i?{muteEligible:!0}:{eligibleRole:"admin"}})).then(e=>r(e.filter(e=>!1!==e.eligible))).catch(()=>{s("加载失败"),x(!0)})},[t,i]);const j=fa((a||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(d.toLowerCase())),e=>ma(e.group_nickname||e.display_name));return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:i?"添加禁言成员":"添加管理员",back:o,backTopic:t,right:"完成"+(l.length?`(${l.length})`:""),onRight:l.length?()=>{l.length&&!p&&(m(!0),(i?(0,zt.kY)(t,l.map(e=>({user_id:e}))):(0,zt.ZV)(t,l)).then(e=>{let n;if(i){const t=e&&Array.isArray(e.items)?e.items.length:l.length;n=Math.max(l.length-t,0)}else n=e&&Array.isArray(e.succeeded)?e.succeeded.filter(e=>!e.ok).length:0;g(n?`成功设置 ${l.length-n} 人,${n} 人设置失败`:"设置成功"),window.setTimeout(()=>ua(o,t),1500)}).catch(e=>s(e.message||"设置失败")).finally(()=>m(!1)))}:void 0}),(0,vt.jsx)(Sa,{value:d,onChange:h,placeholder:"搜索群成员"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===a?(0,vt.jsx)("p",{className:"group-inline-empty",children:f?"成员列表加载失败":"加载中…"}):j.map(([e,t])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:e}),t.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.user_id,c(e=>e.includes(n)?e.filter(e=>e!=n):e.concat(n));var n},children:[(0,vt.jsx)(Ca,{item:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.group_nickname||e.display_name})}),(0,vt.jsx)("i",{className:"group-check"+(l.includes(e.user_id)?" checked":""),children:l.includes(e.user_id)?(0,vt.jsx)(va,{children:"check"}):null})]},e.user_id))]},e))}),(0,vt.jsx)(_a,{message:u,onDone:()=>g("")})]})}function Ha({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(null),[r,l]=n().useState([]),[c,d]=n().useState(""),[h,u]=n().useState(""),[g,p]=n().useState(!1),[m,f]=n().useState(!1);n().useEffect(()=>{e&&((0,zt.Ey)(e=>(0,zt.M7)("",e)).then(i).catch(()=>{t("加载失败"),f(!0)}),(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(e=>a(new Set(e.map(e=>e.user_id)))).catch(()=>a(new Set)))},[e]);const x=fa((s||[]).filter(e=>!o||!o.has(e.user_id)).filter(e=>(e.remark||e.display_name||"").toLowerCase().includes(c.toLowerCase())),e=>ma(e.remark||e.display_name));return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"邀请好友",back:"group-settings",backTopic:e,right:"完成"+(r.length?`(${r.length})`:""),onRight:r.length?()=>{r.length&&!g&&(p(!0),(0,zt.IW)(e,r).then(n=>{const t=n&&n.items||[],s=t.filter(e=>"already_member"===e.status).length,i=t.filter(e=>"pending"===e.status).length,o=Math.max(r.length-i-s,0),a=[];i&&a.push(`已发送 ${i} 条邀请`),s&&a.push(`${s} 人已在群内`),o&&a.push(`${o} 人邀请失败`),u(a.join(",")||"邀请已发送"),window.setTimeout(()=>ua("group-settings",e),1500)}).catch(e=>t(e.message||"邀请失败")).finally(()=>p(!1)))}:void 0}),(0,vt.jsx)(Sa,{value:c,onChange:d,placeholder:"搜索好友"}),(0,vt.jsx)("main",{className:"group-member-picker",children:null===s||null===o?(0,vt.jsx)("p",{className:"group-inline-empty",children:m?"好友列表加载失败":"加载中…"}):0===x.length?(0,vt.jsx)("p",{className:"group-inline-empty",children:s.length?"好友都已在群里了":"暂无可邀请的好友"}):x.map(([e,t])=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:e}),t.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.user_id,l(e=>e.includes(n)?e.filter(e=>e!=n):e.concat(n));var n},children:[(0,vt.jsx)(Ca,{item:e,icon:"person"}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.remark||e.display_name})}),(0,vt.jsx)("i",{className:"group-check"+(r.includes(e.user_id)?" checked":""),children:r.includes(e.user_id)?(0,vt.jsx)(va,{children:"check"}):null})]},e.user_id))]},e))}),(0,vt.jsx)(_a,{message:h,onDone:()=>u("")})]})}function Wa({topic:e,onToast:t}){const[s,i]=n().useState(()=>e&&(0,It.ze)("group-muted:"+e)||null),[o,a]=n().useState({}),[r,l]=n().useState({}),[c,d]=n().useState(!1),h=n().useCallback(()=>{e&&((0,zt.Ey)(n=>(0,zt.Ql)(e,n)).then(n=>{(0,It.Ug)("group-muted:"+e,n),i(n)}).catch(()=>{t("加载失败"),d(!0)}),(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n})).then(e=>{const n={},t={};e.forEach(e=>{n[e.user_id]=e.group_nickname||e.display_name||e.user_id,e.avatar_file_id&&(t[e.user_id]={avatar_file_id:e.avatar_file_id})}),a(n),l(t)}).catch(()=>{}))},[e]);return n().useEffect(()=>{i(e&&(0,It.ze)("group-muted:"+e)||null),h()},[e,h]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"禁言的群成员",back:"group-governance",backTopic:e,right:"添加",onRight:()=>ua("group-mute-add",e)}),(0,vt.jsxs)("main",{className:"group-muted-list",children:[null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:c?"成员列表加载失败":"加载中…"}):s.length?s.map(n=>(0,vt.jsxs)("article",{children:[(0,vt.jsx)(Ca,{item:r[n.user_id]||{},icon:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:o[n.user_id]||n.user_id}),(0,vt.jsx)("small",{children:n.expires_at?`禁言至 ${ba(n.expires_at)}`:"永久禁言"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return s=n.user_id,void(0,zt.cR)(e,s).then(()=>{t("已解除禁言"),h()}).catch(e=>t(e.message||"操作失败"));var s},children:"解除"})]},n.user_id)):(0,vt.jsx)("div",{className:"group-inline-empty",children:"暂无禁言成员"}),s&&s.length?(0,vt.jsx)("p",{className:"group-inline-note",children:"以上成员不允许发言"}):null]})]})}function Ka({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState(""),[r,l]=n().useState(null),[c,d]=n().useState(!1),[h,u]=n().useState(""),[g,p]=n().useState(!1),[m,f]=n().useState(!1);n().useEffect(()=>{e&&(0,zt.Ey)(n=>(0,zt.Nk)(e,{cursor:n,eligibleRole:"owner"})).then(e=>i(e.filter(e=>!1!==e.eligible))).catch(()=>{t("加载失败"),f(!0)})},[e]);const x=(s||[]).filter(e=>(e.group_nickname||e.display_name||"").toLowerCase().includes(o.toLowerCase())),j=x.filter(e=>"admin"===e.role),b=x.filter(e=>"admin"!==e.role),y=()=>{l(null),d(!1),u("")},w=e=>(0,vt.jsxs)("article",{role:"button",tabIndex:0,onClick:()=>l(e),children:[(0,vt.jsx)(Ca,{item:e}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:e.group_nickname||e.display_name})})]},e.user_id);return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"选择新群主",back:"group-governance",backTopic:e}),(0,vt.jsx)(Sa,{value:o,onChange:a,placeholder:"搜索"}),(0,vt.jsx)("main",{className:"group-request-list",children:null===s?(0,vt.jsx)("p",{className:"group-inline-empty",children:m?"成员列表加载失败":"加载中…"}):(0,vt.jsxs)(vt.Fragment,{children:[j.length?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:"管理员"}),j.map(w)]}):null,b.length?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("div",{className:"group-section-title",children:"群成员"}),b.map(w)]}):null]})}),r&&!c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"选择新群主"}),(0,vt.jsxs)("p",{children:[r.group_nickname||r.display_name,"成为新群主,确定后你将立即失去群主身份"]}),(0,vt.jsx)("button",{type:"button",className:"danger",onClick:()=>d(!0),children:"确定"}),(0,vt.jsx)("button",{type:"button",onClick:y,children:"取消"})]})}):null,r&&c?(0,vt.jsx)("div",{className:"group-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"group-confirm-sheet",children:[(0,vt.jsx)("h2",{children:"输入密码确认转让"}),(0,vt.jsxs)("p",{children:["请输入登录密码以确认将群主转让给",r.group_nickname||r.display_name,"(该操作立即生效,不可撤销)。"]}),(0,vt.jsx)("input",{type:"password",autoFocus:!0,className:"group-password-input",value:h,onChange:e=>u(e.target.value),placeholder:"登录密码"}),(0,vt.jsx)("button",{type:"button",className:"danger",disabled:g,onClick:()=>{h?!g&&r&&(p(!0),(0,zt.Wx)(e).then(n=>(0,zt.iK)(e,r.user_id,n.version)).then(()=>{t("群主已转让"),ua("group-governance",e)}).catch(e=>t(e.message||"转让失败")).finally(()=>p(!1))):t("请输入密码以确认")},children:g?"处理中…":"确定"}),(0,vt.jsx)("button",{type:"button",onClick:y,children:"取消"})]})}):null]})}const Xa={image:["image","#3ba55c"],video:["videocam","#3b82c4"],audio:["audiotrack","#8b5cf6"],document:["description","#e05d44"],file:["insert_drive_file","#8a8f98"]},Ga=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt"];function Ja(e,n){const t=(e||"").split("/")[0];if("image"===t||"video"===t||"audio"===t)return t;const s=(/\.([a-zA-Z0-9]+)$/.exec(n||"")||[])[1];return"application/pdf"===e||Ga.includes((s||"").toLowerCase())?"document":"file"}function Ya({topic:e,tinode:t,onToast:s}){const[i,o]=n().useState(""),a=(0,It.o_)(i,300),[r,l]=n().useState(()=>e&&(0,It.ze)("group-files:"+e)||null),[c,d]=n().useState(!1),[h,u]=n().useState(null),[g,p]=n().useState(!1),[m,f]=n().useState({}),x={file:n().useRef(null),image:n().useRef(null),video:n().useRef(null)},j=n().useCallback(()=>{e&&(0,zt.Vw)(e,{}).then(n=>{const t=n.items||[];(0,It.Ug)("group-files:"+e,t),l(t)}).catch(()=>{s("加载失败"),p(!0)})},[e]);n().useEffect(()=>{j()},[j]),n().useEffect(()=>{e&&(0,zt.Nk)(e).then(e=>{const n={};(e.items||[]).forEach(e=>{n[e.user_id]=e.group_nickname||e.display_name||e.user_id}),f(n)}).catch(()=>{})},[e]);const b=n().useMemo(()=>{const e=r||[],n=a.trim().toLowerCase();return n?e.filter(e=>(e.file_name||"").toLowerCase().includes(n)||(m[e.uploader_id]||"").toLowerCase().includes(n)):e},[r,a,m]),y=(r||[]).reduce((e,n)=>e+(n.file_size||0),0),w=e=>{d(!1),x[e].current&&x[e].current.click()},v=n=>{const i=n.target.files&&n.target.files[0];n.target.value="",i&&t&&(u({name:i.name,progress:0}),(0,zt.rD)(t,i,e=>u(n=>n?{...n,progress:Math.round(100*e)}:n)).then(({fileId:n})=>(0,zt.By)(e,{fileId:n,fileName:i.name,mimeType:i.type,fileSize:i.size,fileType:Ja(i.type,i.name)})).then(()=>{u(null),j()}).catch(e=>{u(null),s(e.message||"上传失败")}))};return(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群文件",back:"group-settings",backTopic:e,right:(0,vt.jsx)(va,{children:"add"}),onRight:()=>d(e=>!e)}),(0,vt.jsx)("input",{ref:x.file,type:"file",style:{display:"none"},onChange:v}),(0,vt.jsx)("input",{ref:x.image,type:"file",accept:"image/*",style:{display:"none"},onChange:v}),(0,vt.jsx)("input",{ref:x.video,type:"file",accept:"video/*",style:{display:"none"},onChange:v}),c?(0,vt.jsxs)("div",{className:"group-upload-menu",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>w("file"),children:[(0,vt.jsx)(va,{children:"upload_file"}),"上传文件"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>w("image"),children:[(0,vt.jsx)(va,{children:"image"}),"上传照片"]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>w("video"),children:[(0,vt.jsx)(va,{children:"play_circle_outline"}),"上传视频"]})]}):null,(0,vt.jsx)(Sa,{value:i,onChange:o,placeholder:"搜索文件名或者上传者"}),(0,vt.jsxs)("p",{className:"group-inline-hint",children:["共",(r||[]).length,"个文件(已使用",(k=y,(k/1024**3).toFixed(2)),"GB)"]}),(0,vt.jsxs)("main",{className:"group-file-list",children:[h?(0,vt.jsxs)("article",{className:"uploading",children:[(0,vt.jsx)("span",{className:"group-file-type",style:{backgroundColor:"#8a8f98"},children:(0,vt.jsx)(va,{children:"upload_file"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:h.name}),(0,vt.jsxs)("small",{children:["上传中 ",h.progress,"%"]}),(0,vt.jsx)("progress",{value:h.progress,max:"100"})]})]}):null,null===r?(0,vt.jsx)("p",{className:"group-inline-empty",children:g?"文件列表加载失败":"加载中…"}):0===b.length&&a.trim()?(0,vt.jsx)("p",{className:"group-inline-empty",children:"未找到匹配的文件"}):b.map(n=>{const[t,i]=Xa[n.file_type]||Xa.file;return(0,vt.jsxs)("article",{children:[(0,vt.jsx)("span",{className:"group-file-type",style:{backgroundColor:i},children:(0,vt.jsx)(va,{children:t})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:n.file_name||"未命名文件"}),(0,vt.jsxs)("small",{children:["来自 ",m[n.uploader_id]||n.uploader_id," · ",(o=n.file_size,o?o<1048576?(o/1024).toFixed(1)+" KB":o<1073741824?(o/1048576).toFixed(1)+" MB":(o/1073741824).toFixed(2)+" GB":"0 KB")]})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>{return t=n.group_file_id,void(0,zt.dv)(e,t).then(()=>j()).catch(e=>s(e.message||"删除失败"));var t},children:(0,vt.jsx)(va,{children:"delete_outline"})})]},n.group_file_id);var o})]})]});var k}function Za({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState("");return n().useEffect(()=>{e&&(0,zt.Wx)(e).then(e=>{i(e),a(e.name)}).catch(()=>t("加载失败"))},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群昵称",back:"group-profile",backTopic:e,right:"完成",onRight:()=>{o.trim()&&(0,zt.vW)(e,{name:o.trim(),version:s?s.version:0}).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-profile",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("input",{autoFocus:!0,value:o,maxLength:11,onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/11"]})]})]})}function Qa({topic:e,onToast:t}){const[s,i]=n().useState(null),[o,a]=n().useState("");return n().useEffect(()=>{e&&(0,zt.Wx)(e).then(e=>{i(e),a(e.description||"")}).catch(()=>t("加载失败"))},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"群简介",back:"group-profile",backTopic:e,right:"发布",onRight:()=>{(0,zt.vW)(e,{description:o.trim(),version:s?s.version:0}).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-profile",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("textarea",{autoFocus:!0,value:o,maxLength:200,placeholder:"请输入群简介内容",onChange:e=>a(e.target.value)}),(0,vt.jsxs)("small",{children:[o.length,"/200"]})]})]})}function er({topic:e,onToast:t}){const[s,i]=n().useState(""),[o,a]=n().useState(0);return n().useEffect(()=>{e&&(0,zt.ly)(e).then(e=>{i(e.nickname||""),a(e.version||0)}).catch(()=>{})},[e]),(0,vt.jsxs)("div",{className:"group-page",children:[(0,vt.jsx)(ka,{title:"我在本群的昵称",back:"group-settings",backTopic:e,right:"完成",onRight:()=>{(0,zt.af)(e,s.trim(),o).then(()=>{t("保存成功"),window.setTimeout(()=>ua("group-settings",e),600)}).catch(e=>t(e.message||"保存失败"))}}),(0,vt.jsxs)("main",{className:"group-edit-text",children:[(0,vt.jsx)("input",{autoFocus:!0,value:s,maxLength:32,onChange:e=>i(e.target.value)}),(0,vt.jsx)("small",{children:"群昵称仅在当前群内显示。"})]})]})}function nr({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o}){const[a,r]=n().useState(""),l=t&&t.topic,c=l&&s?`group-my-role:${l}:${s}`:null,[d,h]=n().useState(()=>c&&(0,It.ze)(c)||null);let u;return n().useEffect(()=>{if(!l||!s)return void h(null);const e=`group-my-role:${l}:${s}`;h((0,It.ze)(e)||null),(0,zt.Wx)(l).then(n=>{const t=n?n.my_role:null;(0,It.Ug)(e,t),h(t)}).catch(()=>{})},[l,s]),u="group-list"===e||"group-empty"===e?(0,vt.jsx)(Ta,{tinode:i,onToast:r}):["group-invite","group-events","group-new-request","group-announcement","group-summary","group-role-message"].includes(e)?(0,vt.jsx)(qa,{mode:e,onToast:r}):"group-join-requests"===e?(0,vt.jsx)(Ma,{topic:l,fromChat:t&&"chat"===t.from,onToast:r}):"group-announcement-detail"===e?(0,vt.jsx)(Aa,{topic:l,myRole:d,fromChat:t&&"chat"===t.from,onToast:r}):"group-settings"===e?(0,vt.jsx)(Ea,{topic:l,myUserId:s,tinode:i,onToast:r}):"group-profile"===e?(0,vt.jsx)(Ia,{topic:l,myUserId:s,onToast:r}):"group-avatar"===e?(0,vt.jsx)(Da,{topic:l,myUserId:s,tinode:i,onToast:r}):"group-nickname"===e?(0,vt.jsx)(Za,{topic:l,onToast:r}):"group-description"===e?(0,vt.jsx)(Qa,{topic:l,onToast:r}):"group-my-nickname"===e?(0,vt.jsx)(er,{topic:l,myUserId:s,onToast:r}):"group-members"===e?(0,vt.jsx)($a,{topic:l,onToast:r}):"group-qr"===e?(0,vt.jsx)(Ua,{topic:l,onToast:r}):"group-governance"===e?(0,vt.jsx)(La,{topic:l,myRole:d,tinode:i,onToast:r}):["group-admins","group-admin-success","group-admin-partial","group-admin-removed"].includes(e)?(0,vt.jsx)(Fa,{topic:l,onToast:r}):"group-admin-add"===e?(0,vt.jsx)(Va,{type:"admin-add",topic:l,onToast:r}):"group-mute-add"===e?(0,vt.jsx)(Va,{type:"mute-add",topic:l,onToast:r}):"group-invite-friends"===e?(0,vt.jsx)(Ha,{topic:l,onToast:r}):"group-muted"===e?(0,vt.jsx)(Wa,{topic:l,onToast:r}):["group-owner-select","group-owner-confirm"].includes(e)?(0,vt.jsx)(Ka,{topic:l,onToast:r}):(0,vt.jsx)(Ya,{topic:l,tinode:i,onToast:r}),(0,vt.jsxs)(vt.Fragment,{children:[u,(0,vt.jsx)(za,{message:a,onDone:()=>r("")})]})}var tr=a(8492);const sr=new Map,ir=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},or=e=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),e)),ar=["favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos"];function rr({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function lr({title:e,back:n="messages-home",backParams:t,right:s,onRight:i}){return(0,vt.jsxs)("header",{className:"library-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||ir(n,t)},"aria-label":"返回",children:(0,vt.jsx)(rr,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),s?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,children:s}):(0,vt.jsx)("span",{})]})}function cr({item:e}){return(0,vt.jsx)("span",{className:"library-avatar",children:e&&e.image?(0,vt.jsx)("img",{src:e.image,alt:""}):(0,vt.jsx)(rr,{children:e&&e.icon||"person"})})}function dr({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2e3);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"chat-toast",role:"status",children:e}):null}function hr({value:e,onChange:n,placeholder:t="搜索"}){return(0,vt.jsxs)("label",{className:"library-search",children:[(0,vt.jsx)(rr,{children:"search"}),(0,vt.jsx)("input",{value:e,onChange:e=>n(e.target.value),placeholder:t})]})}function ur(e){return wt.Drafty.isValid(e)?e:null}const gr=["IM","VD","AU","EX"];function pr(e){const n=ur(e);if(!n)return null;let t=null;return wt.Drafty.entities(n,(e,n,s)=>!(t||!e||!gr.includes(s)||(t=e,0))),t}function mr(e){if(!e)return Promise.resolve(null);const n=wt.Drafty.getDownloadUrl(e);return n?n.startsWith("blob:")||n.startsWith("data:")?Promise.resolve(n):(0,zt.w8)(n.slice(n.lastIndexOf("/")+1)).catch(()=>null):Promise.resolve(null)}function fr(e){return e&&e.preview?"data:"+(e.premime||"image/jpeg")+";base64,"+e.preview:null}function xr(e){return e&&(e.ent||e.fmt||void 0!==e.txt)?pr({txt:e.txt,fmt:e.fmt,ent:e.ent}):null}function jr(e,n){if("string"==typeof e)return e;const t=ur(e);return t?wt.Drafty.toPlainText(t):n||""}const br={image:["image","#3ba55c"],video:["videocam","#3b82c4"],audio:["audiotrack","#8b5cf6"],document:["description","#e05d44"],file:["insert_drive_file","#8a8f98"]},yr=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt"];function wr(e){const n=/\.([a-zA-Z0-9]+)$/.exec(e||"");return n?n[1].toUpperCase():""}function vr({name:e,size:n,mime:t,sender:s,removed:i,onOpen:o}){const a=wr(e),[,r]=br[function(e,n){const t=(e||"").split("/")[0];if("image"===t||"video"===t||"audio"===t)return t;const s=wr(n).toLowerCase();return"application/pdf"===e||yr.includes(s)?"document":"file"}(t,e)];return(0,vt.jsxs)("button",{type:"button",className:"library-file-card"+(i?" removed":""),onClick:i?void 0:o,children:[(0,vt.jsx)("span",{style:{backgroundColor:r},children:a||(t||"").split("/")[0].toUpperCase()||"?"}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:e||"未命名文件"}),(0,vt.jsxs)("small",{children:["number"==typeof n?(0,Ot.lX)(n):n||"未知大小",s?` · ${s}`:""]})]}),i?(0,vt.jsx)("em",{children:"文件已失效"}):(0,vt.jsx)(rr,{children:"chevron_right"})]})}function kr({att:e,head:t,removed:s}){const[i,o]=n().useState(null);n().useEffect(()=>{s||mr(e).then(o)},[e,s]);const a=e&&e.duration||t&&t.duration||0;return s?(0,vt.jsxs)("div",{className:"library-voice-card removed",children:[(0,vt.jsx)(rr,{children:"block"}),(0,vt.jsx)("em",{children:"语音已失效"})]}):(0,vt.jsx)("div",{className:"library-voice-card",children:i?(0,vt.jsx)(tr.A,{short:!0,src:i,duration:a,preview:e&&e.preview}):(0,vt.jsx)(rr,{children:"hourglass_empty"})})}function Cr({url:e,onOpen:n,removed:t}){return t?(0,vt.jsxs)("div",{className:"library-link-text removed",children:[(0,vt.jsx)(rr,{children:"link_off"}),(0,vt.jsx)("em",{children:"链接已失效"})]}):(0,vt.jsxs)("button",{type:"button",className:"library-link-text",onClick:()=>n&&n(e),children:[(0,vt.jsx)(rr,{children:"link"}),(0,vt.jsx)("span",{children:e})]})}function zr({text:e,query:t,onToast:s}){const[i,o]=n().useState(!1),[a,r]=n().useState(!1),l=n().useRef(null);return n().useEffect(()=>{const e=l.current;e&&r(e.scrollHeight-e.clientHeight>1)},[e]),(0,vt.jsxs)("div",{className:"library-text-wrap",children:[(0,vt.jsx)("p",{ref:l,className:"library-text-content"+(i?"":" clamped"),children:(0,vt.jsx)(Mr,{text:e,query:t})}),(0,vt.jsxs)("div",{className:"library-text-actions",children:[a?(0,vt.jsx)("button",{type:"button",onClick:()=>o(e=>!e),children:i?"收起":"展开"}):null,(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(e||"").then(()=>s("已复制")).catch(()=>s("复制失败"))},children:[(0,vt.jsx)(rr,{children:"content_copy"}),"复制"]})]})]})}function _r({url:e,poster:n,video:t,duration:s,onOpen:i,removed:o}){if(o)return(0,vt.jsxs)("div",{className:"library-media-thumb removed",children:[(0,vt.jsx)(rr,{children:t?"videocam_off":"broken_image"}),(0,vt.jsx)("em",{children:t?"视频已失效":"图片已失效"})]});const a=t?n:e;return(0,vt.jsxs)("button",{type:"button",className:"library-media-thumb",onClick:i,children:[a?(0,vt.jsx)("img",{src:a,alt:t?"视频缩略图":"图片缩略图"}):(0,vt.jsx)(rr,{children:t?"videocam":"image"}),t?(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(rr,{children:"play_circle"}),s>0?(0,vt.jsx)("small",{children:(0,Ot.Ye)(s/1e3)}):null]}):null]})}function Sr({item:e,onOpen:n,selecting:t,selected:s,onSelect:i,query:o,onToast:a}){const r=pr(e.snapshot&&e.snapshot.content),l=e.source_display||e.source&&e.source.topic||"";return(0,vt.jsxs)("article",{className:"library-favorite-item"+(t?" selecting":""),children:[t?(0,vt.jsx)("button",{type:"button",className:"library-check"+(s?" checked":""),onClick:i,"aria-label":"选择收藏",children:(0,vt.jsx)(rr,{children:s?"check":""})}):null,(0,vt.jsxs)("div",{className:"library-favorite-content",children:["text"===e.type?"removed"===e.availability?(0,vt.jsxs)("p",{className:"library-text-content removed",children:[(0,vt.jsx)(rr,{children:"block"}),(0,vt.jsx)("em",{children:"文本已失效"})]}):(0,vt.jsx)(zr,{text:jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text),query:o,onToast:a}):null,"file"===e.type?(0,vt.jsx)(vr,{name:r&&r.name,size:r&&wt.Drafty.getEntitySize(r),mime:r&&r.mime,removed:"removed"===e.availability,onOpen:n}):null,"voice"===e.type?(0,vt.jsx)(kr,{att:r,head:e.snapshot&&e.snapshot.head,removed:"removed"===e.availability}):null,"link"===e.type?(0,vt.jsx)(Cr,{url:e.snapshot&&e.snapshot.content&&e.snapshot.content.url||jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text),onOpen:n,removed:"removed"===e.availability}):null,"image"===e.type||"video"===e.type?(0,vt.jsx)(_r,{url:e._thumbUrl,poster:"video"===e.type?fr(r):null,video:"video"===e.type,duration:r&&r.duration,onOpen:n,removed:"removed"===e.availability}):null,(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("span",{children:["来自 ",l]}),(0,vt.jsx)("time",{children:(0,Ot.cq)(new Date(e.collected_at))})]})]})]})}const Nr={all:"favorites-mixed",file:"favorites-files",text:"favorites-text",voice:"favorites-voice",link:"favorites-links",image:"favorites-image",video:"favorites-video"},Tr=[["all","全部"],["image","图片"],["video","视频"],["file","文件"],["voice","语音"],["text","文本"],["link","链接"]];function Br({view:e,hashParams:t,tinode:s,onToast:i}){const o="favorites-files"===e?"file":"favorites-text"===e?"text":"favorites-voice"===e?"voice":"favorites-links"===e?"link":"favorites-image"===e?"image":"favorites-video"===e?"video":"all",a="favorites-select"===e,[r,l]=n().useState(a?t&&t.type||"file":o),[c,d]=n().useState(""),h=(0,It.o_)(c,300),[u,g]=n().useState([]),[p,m]=n().useState(()=>(0,It.ze)("favorites:"+r)||null),[f,x]=n().useState(""),[j,b]=n().useState(!1),[y,w]=n().useState(!1),[v,k]=n().useState({}),[C,z]=n().useState({}),_=n().useRef(0),S=n().useCallback(e=>{const n=++_.current;(0,zt.qM)({type:r,query:h,cursor:e?f:""}).then(t=>{_.current===n&&(w(!1),m(n=>{const s=e?(n||[]).concat(t.items||[]):t.items||[];return h||(0,It.Ug)("favorites:"+r,s),s}),x(t.next_cursor||""),b(!!t.next_cursor))}).catch(t=>{_.current===n&&(i(t.message||"加载失败"),e||w(!0))})},[r,h,f]);n().useEffect(()=>{w(!1),m(!h&&(0,It.ze)("favorites:"+r)||null),S(!1)},[r,h]),n().useEffect(()=>{(p||[]).forEach(e=>{"image"!==e.type&&"video"!==e.type||v[e.favorite_id]||mr(pr(e.snapshot&&e.snapshot.content)).then(n=>{n&&k(t=>({...t,[e.favorite_id]:n}))})})},[p]),n().useEffect(()=>{(p||[]).forEach(e=>{const n=e.source&&e.source.topic;n&&!C[n]&&function(e,n){if(e){if(!sr.has(e))return wt.Tinode.isSelfTopicName(e)?(sr.set(e,"已保存的消息"),void n("已保存的消息")):void(e.startsWith("grp")?(0,zt.Wx)(e).then(e=>e.name):(0,zt.pl)(e).then(e=>e.peer&&(0,Et.TP)(e.peer_user_id,e.peer.public,e.peer_user_id))).then(t=>{t&&(sr.set(e,t),n(t))}).catch(()=>{});n(sr.get(e))}}(n,e=>e&&z(t=>({...t,[n]:e})))})},[p]);const[N,T]=n().useState(!1),B=p||[];return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:a?`已选择 ${u.length} 项`:"我的收藏",back:a?Nr[r]||"favorites-files":"messages-home",right:a?"取消":"多选",onRight:()=>ir(a?Nr[r]||"favorites-files":"favorites-select",a?void 0:{type:r})}),(0,vt.jsx)(hr,{value:c,onChange:d,placeholder:"搜索收藏内容"}),(0,vt.jsx)("nav",{className:"library-type-tabs",children:Tr.map(([e,n])=>(0,vt.jsx)("button",{type:"button",className:r===e?"active":"",onClick:()=>{l(e),g([]),Nr[e]&&!a&&or(Nr[e])},children:n},e))}),(0,vt.jsx)("main",{className:"library-favorite-list",children:null===p?(0,vt.jsx)("p",{className:"library-empty-hint",children:y?"加载失败,请重试":"加载中…"}):B.length?(0,vt.jsxs)(vt.Fragment,{children:[B.map(e=>(0,vt.jsx)(Sr,{item:{...e,_thumbUrl:v[e.favorite_id],source_display:C[e.source&&e.source.topic]},selecting:a,selected:u.includes(e.favorite_id),onSelect:()=>{return n=e.favorite_id,g(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n));var n},onOpen:()=>(e=>{if("file"!==e.type){if("link"===e.type){const n=e.snapshot&&e.snapshot.content&&e.snapshot.content.url||jr(e.snapshot&&e.snapshot.content,e.snapshot&&e.snapshot.text);return void(0,zt.Iv)(n,"favorite").then(e=>{"allow"===e.decision?window.open(n,"_blank","noopener,noreferrer"):i("block"===e.decision?"该链接存在风险,已被拦截":"该链接可能存在风险,请谨慎访问")}).catch(()=>i("链接安全校验失败"))}"image"!==e.type&&"video"!==e.type?i("暂不支持预览此类收藏"):e._thumbUrl?window.open(e._thumbUrl,"_blank","noopener,noreferrer"):i("正在加载,请稍后重试")}else ir("file-download",{favoriteId:e.favorite_id,fromType:r})})(e),query:h,onToast:i},e.favorite_id)),j?(0,vt.jsx)("button",{type:"button",className:"library-load-more",onClick:()=>S(!0),children:"加载更多"}):null]}):(0,vt.jsxs)("div",{className:"library-empty",children:[(0,vt.jsx)(rr,{children:"bookmark_border"}),(0,vt.jsx)("strong",{children:"暂无此类收藏"})]})}),a?(0,vt.jsxs)("nav",{className:"library-batch-bar",children:[(0,vt.jsxs)("button",{type:"button",disabled:!u.length,onClick:()=>ir("favorite-share",{ids:u.join(",")}),children:[(0,vt.jsx)(rr,{children:"share"}),(0,vt.jsx)("span",{children:"转发"})]}),(0,vt.jsxs)("button",{type:"button",disabled:!u.length,onClick:()=>T(!0),children:[(0,vt.jsx)(rr,{children:"delete_outline"}),(0,vt.jsx)("span",{children:"删除"})]})]}):null,N?(0,vt.jsx)("div",{className:"library-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"library-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)(rr,{children:"delete_outline"}),(0,vt.jsx)("h2",{children:"删除收藏"}),(0,vt.jsxs)("p",{children:["确定删除已选择的 ",u.length," 项收藏吗?"]}),(0,vt.jsx)("button",{type:"button",className:"danger",onClick:()=>{T(!1),(0,zt.bL)(u).then(e=>{const n=new Set((e&&e.items||[]).filter(e=>e.ok).map(e=>e.favorite_id));m(e=>{const t=e.filter(e=>!n.has(e.favorite_id));return h||(0,It.Ug)("favorites:"+r,t),t}),g(e=>e.filter(e=>!n.has(e))),i(n.size===u.length?"已删除所选收藏":`已删除 ${n.size}/${u.length} 项,部分删除失败`)}).catch(e=>i(e.message||"删除失败"))},children:"确定"}),(0,vt.jsx)("button",{type:"button",onClick:()=>T(!1),children:"取消"})]})}):null]})}function Pr({hashParams:e,myUserId:t,chatList:s,onToast:i}){const o=(e&&e.ids?e.ids.split(","):[]).filter(Boolean),[a,r]=n().useState(""),[l,c]=n().useState([]),[d,h]=n().useState(!1),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(null);n().useEffect(()=>{o[0]&&(0,zt.T0)(o[0]).then(x).catch(()=>{})},[]);const j=f&&pr(f.snapshot&&f.snapshot.content),b=(s||[]).filter(e=>e.acs&&e.acs.isJoiner()&&e.acs.isWriter()&&(!a||(0,Et.TP)(e.name,e.public,e.name||"").toLowerCase().includes(a.toLowerCase()))),y=e=>{const n=b.find(n=>n.name===e);return n&&(0,Et.TP)(n.name,n.public,e)||e};return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"分享",back:"favorites-select",backParams:f?{type:f.type}:void 0}),d?(0,vt.jsxs)("main",{className:"library-share-confirm",children:[(0,vt.jsx)("h2",{children:"发送给"}),(0,vt.jsx)("div",{className:"library-target-summary",children:l.map(e=>(0,vt.jsxs)("span",{children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsx)("small",{children:y(e)})]},e))}),f?(0,vt.jsxs)("section",{children:[j?(0,vt.jsx)(vr,{name:j.name,size:wt.Drafty.getEntitySize(j),onOpen:()=>{}}):(0,vt.jsx)("p",{className:"library-text-content",children:jr(f.snapshot&&f.snapshot.content,f.snapshot&&f.snapshot.text)}),(0,vt.jsx)("p",{children:"收藏原件会继续保留,并在目标会话中生成一条新消息。"})]}):null,(0,vt.jsx)("textarea",{value:u,onChange:e=>g(e.target.value),placeholder:"给朋友留言"}),(0,vt.jsx)("button",{type:"button",disabled:p,onClick:()=>{p||(m(!0),(0,zt.t$)(o,l,u.trim()).then(e=>{const n=e&&e.items||[],t=l.filter(e=>{const t=n.filter(n=>n.target_topic===e);return t.length>0&&t.every(e=>"sent"===e.status)}).length;i(t===l.length?`已分享给 ${l.length} 个会话`:`${t}/${l.length} 个会话分享成功`),window.setTimeout(()=>ir(Nr[f&&f.type]||"favorites-files"),700)}).catch(e=>i(e.message||"分享失败")).finally(()=>m(!1)))},children:"发送"})]}):(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(hr,{value:a,onChange:r,placeholder:"搜索联系人或群聊"}),(0,vt.jsx)("p",{className:"library-section-title",children:"最近聊天"}),(0,vt.jsx)("main",{className:"library-target-list",children:b.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return n=e.name,c(e=>e.includes(n)?e.filter(e=>e!==n):e.concat(n).slice(0,9));var n},children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsx)("span",{children:(0,vt.jsx)("strong",{children:(0,Et.TP)(e.name,e.public,e.name)})}),(0,vt.jsx)("i",{className:"library-check"+(l.includes(e.name)?" checked":""),children:(0,vt.jsx)(rr,{children:l.includes(e.name)?"check":""})})]},e.name))}),(0,vt.jsxs)("footer",{className:"library-next-bar",children:[(0,vt.jsxs)("span",{children:["已选择 ",l.length,"/9"]}),(0,vt.jsx)("button",{type:"button",disabled:!l.length,onClick:()=>h(!0),children:"确定"})]})]})]})}function qr({hashParams:e,tinode:t,onToast:s}){const[i,o]=n().useState(null),[a,r]=n().useState(!1),[l,c]=n().useState("ready"),[d,h]=n().useState(0),u=n().useRef(null),{favoriteId:g,topic:p,seq:m,fromType:f}=e||{},x=g?Nr[f]||"favorites-files":"history-files",j=g?void 0:{topic:p};return n().useEffect(()=>{const e=e=>{const n=pr(e);if(!n)return s("文件信息加载失败"),void r(!0);const t=wt.Drafty.getDownloadUrl(n),i=t&&(t.startsWith("blob:")||t.startsWith("data:"))?t:(0,zt.WJ)(t&&t.slice(t.lastIndexOf("/")+1));o({name:n.name,mime:n.mime,size:wt.Drafty.getEntitySize(n),url:i})};g?(0,zt.T0)(g).then(n=>e(n.snapshot&&n.snapshot.content)).catch(e=>{s(e.message||"加载失败"),r(!0)}):p&&m&&(0,zt.le)(p,m,0,0).then(n=>{const t=(n.items||[]).find(e=>String(e.seq)===String(m))||n.items[0];e(t&&t.content)}).catch(e=>{s(e.message||"加载失败"),r(!0)})},[e]),i?(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"文件",back:x,backParams:j}),(0,vt.jsxs)("main",{className:"library-download",children:[(0,vt.jsx)("span",{className:"library-download-icon",children:wr(i.name)||"?"}),(0,vt.jsx)("h2",{children:i.name}),(0,vt.jsx)("p",{children:"该文件不支持在线预览"}),"loading"===l?(0,vt.jsxs)("section",{className:"library-download-progress",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:"下载中..."}),(0,vt.jsxs)("strong",{children:[d,"%"]})]}),(0,vt.jsx)("progress",{value:d,max:"100"}),(0,vt.jsxs)("small",{children:[(0,Ot.lX)(i.size*d/100)," / ",(0,Ot.lX)(i.size)]})]}):null,"ready"===l?(0,vt.jsxs)("button",{type:"button",className:"library-primary",onClick:()=>{if(!i||!t)return;if(i.url&&(i.url.startsWith("blob:")||i.url.startsWith("data:"))){const e=document.createElement("a");return e.href=i.url,e.download=i.name||"file",document.body.appendChild(e),e.click(),document.body.removeChild(e),void c("done")}const e=(0,zt.mO)(t);if(!e)return void s("当前环境不支持下载");u.current=e,c("loading"),h(0);const n=e.download(i.url,i.name,i.mime,e=>h(i.size?Math.min(100,Math.round(e/i.size*100)):0),e=>{c("ready"),s(e&&e.message||"下载失败")});n&&n.then&&n.then(()=>c("done")).catch(()=>{})},children:[(0,vt.jsx)(rr,{children:"download"}),"立即下载(",(0,Ot.lX)(i.size),")"]}):"loading"===l?(0,vt.jsx)("div",{className:"library-download-actions",children:(0,vt.jsxs)("button",{type:"button",onClick:()=>{u.current&&u.current.cancel(),c("ready"),h(0)},children:[(0,vt.jsx)(rr,{children:"close"}),"取消"]})}):(0,vt.jsx)("div",{className:"library-download-actions",children:(0,vt.jsxs)("button",{type:"button",className:"primary",onClick:()=>s("已保存,可在浏览器下载列表中查看"),children:[(0,vt.jsx)(rr,{children:"open_in_new"}),"用其他应用打开"]})})]})]}):(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:"文件",back:x,backParams:j}),(0,vt.jsx)("main",{className:"library-download",children:(0,vt.jsx)("p",{className:"library-empty-hint",children:a?"文件不存在或已被删除":"加载中…"})})]})}function Mr({text:e,query:n}){const t=(n||"").trim();if(!t||!e)return e;const s=[],i=e.toLowerCase(),o=t.toLowerCase();let a=0;for(let n=i.indexOf(o);-1!==n;n=i.indexOf(o,n+o.length))n>a&&s.push(e.slice(a,n)),s.push((0,vt.jsx)("mark",{children:e.slice(n,n+t.length)},n)),a=n+t.length;return s.length?(a<e.length&&s.push(e.slice(a)),s):e}function Ar({active:e}){return(0,vt.jsx)("nav",{className:"library-history-tabs",children:[["history-search","聊天记录"],["history-images","图片"],["history-videos","视频"],["history-files","文件"],["history-links","链接"]].map(n=>(0,vt.jsx)("button",{type:"button",className:e===n[0]?"active":"",onClick:()=>or(n[0]),children:n[1]},n[0]))})}const Er={"history-search":"查找聊天记录","history-files":"文件","history-links":"链接","history-images":"图片","history-videos":"视频"},Ir={"history-search":"all","history-files":"file","history-links":"link","history-images":"image","history-videos":"video"},Dr={image:"[图片]",video:"[视频]",voice:"[语音]",file:"[文件]",link:"[链接]"};function Ur({view:e,hashParams:t,myUserId:s,onToast:i}){const o=t&&t.topic,a=o?`history:${o}:${e}`:null,[r,l]=n().useState(""),c=(0,It.o_)(r,300),[d,h]=n().useState(()=>a&&(0,It.ze)(a)||null),[u,g]=n().useState(""),[p,m]=n().useState(!1),[f,x]=n().useState(!1),[j,b]=n().useState({}),[y,w]=n().useState({}),v=n().useRef(0),k=n().useCallback(n=>{if(!o)return;const t=++v.current,s=Ir[e];("history-search"===e?(0,zt.eO)(o,{query:c,type:s,cursor:n?u:""}):(0,zt.yP)(o,s,n?u:"")).then(e=>{v.current===t&&(x(!1),h(t=>{const s=n?(t||[]).concat(e.items||[]):e.items||[];return!c&&a&&(0,It.Ug)(a,s),s}),g(e.next_cursor||""),m(!!e.next_cursor))}).catch(e=>{v.current===t&&(i(e.message||"加载失败"),n||x(!0))})},[o,e,c,u]);n().useEffect(()=>{x(!1),h(!c&&a&&(0,It.ze)(a)||null),k(!1)},[o,e,c]),n().useEffect(()=>{"history-images"!==e&&"history-videos"!==e||(d||[]).forEach(e=>{j[e.seq]||mr(xr(e)).then(n=>{n&&b(t=>({...t,[e.seq]:n}))})})},[d,e]),n().useEffect(()=>{(d||[]).forEach(e=>{const n=e.from;n&&!y[n]&&n!==s&&"usr"+n!==s&&(0,zt.VM)(n.startsWith("usr")?n:"usr"+n).then(e=>{w(t=>({...t,[n]:e.display_name}))}).catch(()=>{})})},[d]);const C=e=>is.A.navigateTo(is.A.addUrlParam(is.A.setUrlTopic("",o),"jumpseq",e)),z=e=>e?e===s||"usr"+e===s?"我":y[e]||e:"",_=e=>{(0,zt.Iv)(e,"message").then(n=>{"allow"===n.decision?window.open(e,"_blank","noopener,noreferrer"):i("block"===n.decision?"该链接存在风险,已被拦截":"该链接可能存在风险,请谨慎访问")}).catch(()=>i("链接安全校验失败"))},S=d||[];return(0,vt.jsxs)("div",{className:"library-page",children:[(0,vt.jsx)(lr,{title:Er[e],back:o&&o.startsWith("grp")?"group-settings":"friend-settings",backParams:o&&o.startsWith("grp")?{topic:o}:{uid:o}}),"history-search"===e?(0,vt.jsx)(hr,{value:r,onChange:l,placeholder:"搜索当前会话"}):null,(0,vt.jsx)(Ar,{active:e}),(0,vt.jsxs)("main",{className:"library-history-content",children:[null===d?(0,vt.jsx)("p",{className:"library-empty-hint",children:f?"加载失败,请重试":"加载中…"}):S.length?"history-search"===e?(0,vt.jsx)("section",{className:"library-message-results",children:S.map(e=>(0,vt.jsxs)("button",{type:"button",onClick:()=>C(e.seq),children:[(0,vt.jsx)(cr,{item:{}}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("p",{children:"text"===e.type?"removed"===e.availability?"文本已失效":(0,vt.jsx)(Mr,{text:e.snippet||"",query:c}):Dr[e.type]||e.snippet||""}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(rr,{children:"chevron_right"})]},e.seq))}):"history-files"===e?(0,vt.jsx)("section",{className:"library-record-files",children:S.map(e=>{const t=xr(e);return(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsxs)("div",{className:"library-record-header",children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(vr,{name:t?t.name:e.name,size:t?wt.Drafty.getEntitySize(t):e.size,mime:t&&t.mime,removed:"removed"===e.availability,onOpen:()=>ir("file-download",{topic:o,seq:e.seq})})]},e.seq)})}):"history-links"===e?(0,vt.jsx)("section",{className:"library-record-links",children:S.map(e=>(0,vt.jsxs)(n().Fragment,{children:[(0,vt.jsxs)("button",{type:"button",className:"library-record-header",onClick:()=>C(e.seq),children:[(0,vt.jsx)("strong",{children:z(e.from)}),(0,vt.jsx)("small",{children:(0,Ot.cq)(new Date(e.ts))})]}),(0,vt.jsx)(Cr,{url:e.url||jr(void 0!==e.txt?{txt:e.txt,fmt:e.fmt,ent:e.ent}:void 0,e.text),onOpen:_,removed:"removed"===e.availability})]},e.seq))}):(0,vt.jsx)("section",{className:"library-media-grid",children:S.map(n=>{const t="history-videos"===e?xr(n):null;return(0,vt.jsx)(_r,{url:j[n.seq],poster:t?fr(t):null,video:"history-videos"===e,duration:t&&t.duration,onOpen:()=>C(n.seq),removed:"removed"===n.availability},n.seq)})}):(0,vt.jsxs)("div",{className:"library-empty",children:[(0,vt.jsx)(rr,{children:"history-search"===e?"search_off":"inbox"}),(0,vt.jsx)("strong",{children:"暂无内容"})]}),p?(0,vt.jsx)("button",{type:"button",className:"library-load-more",onClick:()=>k(!0),children:"加载更多"}):null]})]})}function Rr({view:e,hashParams:t,tinode:s,myUserId:i,onTopicSelected:o,chatList:a}){const[r,l]=n().useState("");let c;return c=e.startsWith("favorites")?(0,vt.jsx)(Br,{view:e,hashParams:t,tinode:s,onToast:l}):"favorite-share"===e?(0,vt.jsx)(Pr,{hashParams:t,myUserId:i,chatList:a,onToast:l}):e.startsWith("file-download")?(0,vt.jsx)(qr,{hashParams:t,tinode:s,onToast:l}):(0,vt.jsx)(Ur,{view:e,hashParams:t,myUserId:i,onToast:l}),(0,vt.jsxs)(vt.Fragment,{children:[c,(0,vt.jsx)(dr,{message:r,onDone:()=>l("")})]})}const Lr=e=>is.A.navigateTo(e),Or=["call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized"],Fr="安妮",$r="img/bkg/p09.jpg",Vr=[{id:1,type:"video",direction:"outgoing",state:"cancelled",label:"已取消",time:"今天 10:24"},{id:2,type:"audio",direction:"incoming",state:"declined",label:"已拒绝",time:"昨天 21:03"},{id:3,type:"video",direction:"incoming",state:"missed",label:"未接听",time:"昨天 18:42"},{id:4,type:"audio",direction:"outgoing",state:"busy",label:"对方忙线",time:"星期一 15:10"},{id:5,type:"audio",direction:"outgoing",state:"finished",label:"通话时长 12:36",time:"8月20日"}];function Hr({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Wr({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,1800);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"call-toast",role:"status",children:e}):null}function Kr({small:e=!1}){return(0,vt.jsx)("span",{className:"call-product-avatar"+(e?" small":""),children:(0,vt.jsx)("img",{src:$r,alt:""})})}function Xr({onMinimize:e,light:n=!1}){return(0,vt.jsxs)("header",{className:"call-product-header"+(n?" light":""),children:[(0,vt.jsx)("button",{type:"button",onClick:e,"aria-label":"最小化通话",children:(0,vt.jsx)(Hr,{children:"keyboard_arrow_down"})}),(0,vt.jsx)("span",{children:"端到端加密通话"}),(0,vt.jsx)("button",{type:"button","aria-label":"更多通话设置",children:(0,vt.jsx)(Hr,{children:"more_vert"})})]})}function Gr({icon:e,label:n,active:t,danger:s,onClick:i}){return(0,vt.jsxs)("button",{type:"button",className:"call-control"+(t?" active":"")+(s?" danger":""),onClick:i,children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Hr,{children:e})}),(0,vt.jsx)("small",{children:n})]})}function Jr(){return(0,vt.jsxs)("div",{className:"call-history-page",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("chat-standard"),"aria-label":"返回会话",children:(0,vt.jsx)(Hr,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:"安妮"}),(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("friend-profile"),"aria-label":"个人资料",children:(0,vt.jsx)(Hr,{children:"person_outline"})})]}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("p",{className:"chat-time",children:"最近通话"}),Vr.map(e=>(0,vt.jsxs)("button",{type:"button",className:"call-record "+e.state,onClick:()=>Lr("audio"===e.type?"audio-call-ringing":"video-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"audio"===e.type?"call":"videocam"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"audio"===e.type?"语音通话":"视频通话"}),(0,vt.jsx)("small",{children:e.label})]}),(0,vt.jsx)("time",{children:e.time}),(0,vt.jsx)(Hr,{children:"incoming"===e.direction?"call_received":"call_made"})]},e.id))]}),(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>Lr("audio-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"call"}),(0,vt.jsx)("span",{children:"语音通话"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>Lr("video-call-ringing"),children:[(0,vt.jsx)(Hr,{children:"videocam"}),(0,vt.jsx)("span",{children:"视频通话"})]})]})]})}function Yr({onToast:e}){return(0,vt.jsxs)("div",{className:"call-fullscreen call-audio-surface incoming",children:[(0,vt.jsx)("div",{className:"call-ambient"}),(0,vt.jsx)(Xr,{onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("main",{className:"call-peer-card",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:"邀请你进行视频通话"}),(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]})]}),(0,vt.jsxs)("footer",{className:"call-incoming-actions",children:[(0,vt.jsx)(Gr,{icon:"call_end",label:"拒绝",danger:!0,onClick:()=>{e("已拒绝视频通话"),window.setTimeout(()=>Lr("call-history"),600)}}),(0,vt.jsx)(Gr,{icon:"videocam",label:"接听",active:!0,onClick:()=>Lr("video-call-active")})]})]})}function Zr(e){return`${Math.floor(e/60).toString().padStart(2,"0")}:${(e%60).toString().padStart(2,"0")}`}function Qr({view:e,onToast:t}){const s="audio-call-ringing"===e,[i,o]=n().useState(s?0:68),[a,r]=n().useState("audio-call-muted"!==e),[l,c]=n().useState("audio-call-speaker"===e);n().useEffect(()=>{if(s)return;const e=window.setInterval(()=>o(e=>e+1),1e3);return()=>window.clearInterval(e)},[s]);const d=()=>{t(s?"已取消呼叫":`通话结束 ${Zr(i)}`),window.setTimeout(()=>Lr("call-history"),650)};return(0,vt.jsxs)("div",{className:"call-fullscreen call-audio-surface",children:[(0,vt.jsx)("div",{className:"call-ambient"}),(0,vt.jsx)(Xr,{onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("main",{className:"call-peer-card",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:s?"正在等待对方接听…":Zr(i)}),s?(0,vt.jsxs)("span",{className:"call-ringing-dots",children:[(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{}),(0,vt.jsx)("i",{})]}):(0,vt.jsxs)("small",{className:"call-network",children:[(0,vt.jsx)("i",{}),"网络良好"]})]}),s?(0,vt.jsx)("footer",{className:"call-single-action",children:(0,vt.jsx)(Gr,{icon:"call_end",label:"取消",danger:!0,onClick:d})}):(0,vt.jsxs)("footer",{className:"call-active-controls",children:[(0,vt.jsx)(Gr,{icon:a?"mic":"mic_off",label:a?"麦克风":"麦克风已关",active:a,onClick:()=>{r(!a),t(a?"麦克风已关闭":"麦克风已开启")}}),(0,vt.jsx)(Gr,{icon:l?"volume_up":"hearing",label:l?"扬声器":"听筒",active:l,onClick:()=>{c(!l),t(l?"已切换到听筒":"扬声器已开启")}}),(0,vt.jsx)(Gr,{icon:"call_end",label:"挂断",danger:!0,onClick:d})]})]})}function el({cameraOff:e,peerOff:n}){return n?(0,vt.jsxs)("div",{className:"call-video-off",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("strong",{children:"对方摄像头已关闭"}),(0,vt.jsx)("small",{children:"语音通话仍在继续"})]}):e?(0,vt.jsxs)("div",{className:"call-video-off local",children:[(0,vt.jsx)(Kr,{}),(0,vt.jsx)("strong",{children:"摄像头已关闭"})]}):(0,vt.jsx)("img",{className:"call-video-backdrop",src:"img/bkg/w06.jpg",alt:"视频通话画面"})}function nl({view:e,onToast:t}){const s="video-call-ringing"===e||"video-call-camera-off"===e,[i,o]=n().useState("video-call-camera-off"!==e),[a,r]=n().useState(!0),[l,c]=n().useState(s?0:128),d="video-call-peer-camera-off"===e;return n().useEffect(()=>{if(s)return;const e=window.setInterval(()=>c(e=>e+1),1e3);return()=>window.clearInterval(e)},[s]),(0,vt.jsxs)("div",{className:"call-fullscreen call-video-surface",children:[(0,vt.jsx)(el,{cameraOff:s&&!i,peerOff:d}),(0,vt.jsx)("div",{className:"call-video-shade"}),(0,vt.jsx)(Xr,{light:!0,onMinimize:()=>Lr("call-minimized")}),(0,vt.jsxs)("div",{className:"call-video-status",children:[(0,vt.jsx)("h1",{children:Fr}),(0,vt.jsx)("p",{children:s?"正在等待对方接听…":Zr(l)})]}),s?null:(0,vt.jsxs)("button",{type:"button",className:"call-local-preview","aria-label":"本地视频预览",children:[(0,vt.jsx)("img",{src:i?"img/bkg/p05.jpg":$r,alt:""}),i?null:(0,vt.jsx)(Hr,{children:"videocam_off"})]}),(0,vt.jsxs)("footer",{className:"call-video-controls",children:[(0,vt.jsx)(Gr,{icon:"flip_camera_android",label:"翻转",onClick:()=>t("已切换摄像头")}),(0,vt.jsx)(Gr,{icon:i?"videocam":"videocam_off",label:i?"摄像头":"摄像头已关",active:i,onClick:()=>{o(!i),t(i?"摄像头已关闭":"摄像头已开启")}}),(0,vt.jsx)(Gr,{icon:"call_end",label:s?"取消":"挂断",danger:!0,onClick:()=>{t(s?"已取消视频呼叫":`视频通话结束 ${Zr(l)}`),window.setTimeout(()=>Lr("call-history"),650)}}),s?null:(0,vt.jsx)(Gr,{icon:a?"mic":"mic_off",label:a?"麦克风":"麦克风已关",active:a,onClick:()=>r(!a)})]})]})}function tl({onToast:e}){const[t,s]=n().useState(()=>({x:Math.max(16,window.innerWidth-134),y:168})),i=n().useRef(null);return(0,vt.jsxs)("div",{className:"call-minimized-page",children:[(0,vt.jsxs)("header",{className:"call-chat-preview-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>Lr("messages-home"),children:(0,vt.jsx)(Hr,{children:"arrow_back_ios_new"})}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"安妮"}),(0,vt.jsx)("small",{children:"在线"})]}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(Hr,{children:"more_vert"})})]}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("p",{className:"chat-time",children:"今天 10:24"}),(0,vt.jsx)("div",{className:"call-chat-preview-message",children:"下午的评审材料我已经发到群里了。"})]}),(0,vt.jsxs)("button",{type:"button",className:"call-floating-window",style:{transform:`translate(${t.x}px, ${t.y}px)`},onPointerDown:e=>{i.current={x:e.clientX-t.x,y:e.clientY-t.y},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{i.current&&s({x:Math.max(8,Math.min(window.innerWidth-132,e.clientX-i.current.x)),y:Math.max(70,Math.min(window.innerHeight-190,e.clientY-i.current.y))})},onPointerUp:()=>{i.current=null},onClick:()=>Lr("video-call-active"),"aria-label":"返回全屏通话",children:[(0,vt.jsx)("img",{src:"img/bkg/w06.jpg",alt:"视频通话悬浮画面"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("i",{}),"02:18"]})]}),(0,vt.jsxs)("footer",{className:"call-chat-composer",children:[(0,vt.jsx)("input",{placeholder:"输入消息"}),(0,vt.jsx)("button",{type:"button",children:(0,vt.jsx)(Hr,{children:"add_circle_outline"})})]}),(0,vt.jsx)("button",{type:"button",className:"call-mini-hangup",onClick:()=>{e("通话已结束"),window.setTimeout(()=>Lr("call-history"),600)},"aria-label":"挂断通话",children:(0,vt.jsx)(Hr,{children:"call_end"})})]})}function sl({view:e}){const[t,s]=n().useState("");let i;return i="call-history"===e?(0,vt.jsx)(Jr,{}):"call-incoming"===e?(0,vt.jsx)(Yr,{onToast:s}):e.startsWith("audio-call")?(0,vt.jsx)(Qr,{view:e,onToast:s}):"call-minimized"===e?(0,vt.jsx)(tl,{onToast:s}):(0,vt.jsx)(nl,{view:e,onToast:s}),(0,vt.jsxs)(vt.Fragment,{children:[i,(0,vt.jsx)(Wr,{message:t,onDone:()=>s("")})]})}const il=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},ol=e=>is.A.navigateReplace(is.A.setUrlSidePanel(is.A.currentUrl(),e)),al=["workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice"];function rl({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function ll({title:e,back:n="workbench",action:t,actionLabel:s,onAction:i,actionDisabled:o}){return(0,vt.jsxs)("header",{className:"workplace-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||il(n)},"aria-label":"返回",children:(0,vt.jsx)(rl,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),t?(0,vt.jsx)("button",{type:"button",onClick:i,"aria-label":s||"操作",disabled:o,children:(0,vt.jsx)(rl,{children:t})}):(0,vt.jsx)("span",{})]})}function cl({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2100);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"workplace-toast",role:"status",children:e}):null}const dl=["周日","周一","周二","周三","周四","周五","周六"];function hl(e){const n=new Date,t=Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(n.getFullYear(),n.getMonth(),n.getDate()))/864e5),s=0===t?"(今天)":1===t?"(明天)":-1===t?"(昨天)":"";return`${e.getMonth()+1}月${e.getDate()}日 ${dl[e.getDay()]}${s}`}function ul(e){return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function gl(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}const pl=new Map;function ml(e,t){const[s,i]=n().useState({});return n().useEffect(()=>{(e||[]).forEach(e=>{if(!e||void 0!==s[e])return;const n=e.startsWith("usr")?e:"usr"+e;t&&n===t?i(n=>({...n,[e]:"我"})):function(e,n){if(!e)return;if(pl.has(e))return void n(pl.get(e));const t=e.startsWith("usr")?null:"usr"+e;(0,zt.VM)(e).catch(e=>t?(0,zt.VM)(t):Promise.reject(e)).then(t=>{const s=t&&(t.display_name||t.nickname||t.public_account)||e;pl.set(e,s),n(s)}).catch(()=>{pl.set(e,e),n(e)})}(e,n=>i(t=>({...t,[e]:n})))})},[JSON.stringify(e),t]),s}const fl={organization:"red",attendance:"orange",meetings:"blue",daily_reports:"orange",monthly_reports:"violet",executive_mailbox:"green"},xl={organization:"account_tree",attendance:"schedule",meetings:"notifications_active",daily_reports:"task_alt",monthly_reports:"event_note",executive_mailbox:"mail_outline"},jl={organization:"organization-directory",meetings:"meeting-attendee",daily_reports:"daily-report-mine",monthly_reports:"monthly-report-mine",executive_mailbox:"executive-mailbox"};function bl({onToast:e}){const[t]=(0,It.sK)("me",zt.jp,[]),[s,i]=n().useState(()=>(0,It.ze)("workbench-modules")||[]),[o,a]=n().useState({}),[r,l]=n().useState(null);n().useEffect(()=>{(0,zt.qm)().then(e=>{const n=e&&e.modules||[];(0,It.Ug)("workbench-modules",n),i(n),n.forEach(e=>{e.icon_file_id&&(0,zt.w8)(e.icon_file_id).then(n=>n&&a(t=>({...t,[e.code]:n}))).catch(()=>{})})}).catch(e=>l(e.message||"工作台加载失败"))},[]);const c=t&&t.profile;return(0,vt.jsxs)("div",{className:"workplace-page workbench-page",children:[(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"workbench-profile",children:[c&&c.avatar_file_id?(0,vt.jsx)(yl,{fileId:c.avatar_file_id}):(0,vt.jsx)("span",{className:"workbench-avatar-fallback",children:(0,vt.jsx)(rl,{children:"person"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:c&&(c.nickname||c.public_account)||"…"}),(0,vt.jsx)("small",{children:"员工"})]}),(0,vt.jsx)("button",{type:"button","aria-label":"工作台设置",onClick:()=>il("personal-center"),children:(0,vt.jsx)(rl,{children:"tune"})})]}),(0,vt.jsxs)("section",{className:"workbench-banner",children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("strong",{children:"提高效率,从工作台开始"}),(0,vt.jsx)("small",{children:"Business applications start from the workbench"})]}),(0,vt.jsx)(rl,{children:"business_center"})]}),r?(0,vt.jsx)("p",{className:"workplace-error",children:r}):null,(0,vt.jsx)("section",{className:"workbench-apps","aria-label":"办公应用",children:s.filter(e=>e.enabled).map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>(n=>{jl[n.code]?il(jl[n.code]):e&&e("该功能暂未开放")})(n),children:[(0,vt.jsxs)("span",{className:"tone-"+(fl[n.code]||"blue"),children:[o[n.code]?(0,vt.jsx)("img",{src:o[n.code],alt:""}):(0,vt.jsx)(rl,{children:xl[n.code]||"apps"}),n.unread_count?(0,vt.jsx)("em",{children:n.unread_count>99?"99+":n.unread_count}):null]}),(0,vt.jsx)("strong",{children:n.name})]},n.code))})]}),(0,vt.jsxs)("nav",{className:"workplace-bottom-nav","aria-label":"主导航",children:[(0,vt.jsxs)("button",{type:"button",className:"active",children:[(0,vt.jsx)(rl,{children:"dashboard"}),(0,vt.jsx)("span",{children:"工作台"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>ol("messages-home"),children:[(0,vt.jsx)(rl,{children:"chat_bubble_outline"}),(0,vt.jsx)("span",{children:"消息"})]})]})]})}function yl({fileId:e,className:t}){const[s,i]=n().useState(null);return n().useEffect(()=>{let n=!0;return(0,zt.w8)(e).then(e=>n&&i(e)).catch(()=>{}),()=>{n=!1}},[e]),s?(0,vt.jsx)("img",{className:t,src:s,alt:""}):(0,vt.jsx)("span",{className:t})}const wl=["一","二","三","四","五","六","七","八","九","十"],vl=e=>wl[e-1]||String(e),kl=(e,n)=>e===n||"usr"+e===n;function Cl({dept:e,depth:n,expanded:t,containsMe:s,onToggle:i}){const o=0===n?"business":"diamond";return(0,vt.jsxs)("button",{type:"button",className:`organization-department depth-${n}${s?" me":""}`,style:{paddingLeft:1+1.1*n+"rem"},onClick:i,children:[(0,vt.jsx)(rl,{children:o}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.name,"number"==typeof e.member_count?`${e.member_count}人`:"","(",vl(n+1),"级)"]})}),(0,vt.jsx)(rl,{children:t?"expand_more":"chevron_right"})]})}function zl({dept:e}){return(0,vt.jsxs)("div",{className:"organization-department depth-0",style:{paddingLeft:"1rem"},children:[(0,vt.jsx)(rl,{children:"business"}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.name,"number"==typeof e.member_count?`(${e.member_count}人)`:""]})})]})}function _l({person:e,depth:n,isMe:t,level:s}){return(0,vt.jsxs)("button",{type:"button",className:"organization-person"+(t?" me":""),style:{paddingLeft:1+1.1*n+"rem"},onClick:()=>il("group-member-profile",{uid:e.user_id}),children:[(0,vt.jsx)(rl,{children:"radio_button_unchecked"}),(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:[e.display_name,"(",vl(s),"级)"]})}),(0,vt.jsx)(rl,{children:"chevron_right"})]})}function Sl({dept:e,depth:t,myUserId:s}){const[i,o]=n().useState(0===t),[a,r]=n().useState(null),[l,c]=n().useState(null),[d,h]=n().useState(!1),[u,g]=n().useState(!1),p=()=>{null==a&&(h(!0),g(!1),Promise.all([e.child_count?(0,zt.v)(e.department_id).then(e=>e.departments||e.items||[]):Promise.resolve([]),e.member_count?(0,zt.BK)(e.department_id).then(e=>e.members||e.items||[]):Promise.resolve([])]).then(([e,n])=>{r(e),c(n)}).catch(()=>g(!0)).finally(()=>h(!1)))};n().useEffect(()=>{i&&p()},[]);const m=(l||[]).some(e=>kl(e.user_id,s));return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(Cl,{dept:e,depth:t,expanded:i,containsMe:m,onToggle:()=>{const e=!i;o(e),e&&p()}}),i&&d?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):null,i&&!d&&u?(0,vt.jsxs)("p",{className:"organization-loading",children:["加载失败 ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),p()},children:"重试"})]}):null,!i||d||u?null:(0,vt.jsxs)(vt.Fragment,{children:[(a||[]).map(e=>(0,vt.jsx)(Sl,{dept:e,depth:t+1,myUserId:s},e.department_id)),(l||[]).map(e=>(0,vt.jsx)(_l,{person:e,depth:t+1,level:t+2,isMe:kl(e.user_id,s)},e.user_id))]})]})}function Nl(e,n){const t=Math.round((new Date(n)-new Date(e))/6e4);return t<=0?"":t%60==0?t/60+"小时":t<60?`${t}分钟`:`${Math.floor(t/60)}小时${t%60}分钟`}const Tl={accepted:"已接受",declined:"已拒绝",tentative:"待定"};function Bl({meeting:e,myUserId:t,onRespond:s,onToast:i}){const o=e.organizer&&e.organizer.display_name||e.organizer_display_name||e.organizer_id,a=(e.participants||[]).map(e=>e.display_name||e.user_id).join("、"),r=e.organizer_id===t,[l,c]=n().useState(!1),d=n=>{c(!0),(0,zt.kX)(e.meeting_id).then(e=>(0,zt.NZ)(e.meeting_id,n,e.version)).then(e=>{s(),i("accepted"===n?"已接受会议邀请":"declined"===n?"已拒绝会议邀请":"已标记为待定")}).catch(e=>i(e.message||"操作失败")).finally(()=>c(!1))};return(0,vt.jsxs)("article",{className:"meeting-card",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsxs)("small",{children:[hl(new Date(e.start_at))," ",ul(new Date(e.start_at))]}),(0,vt.jsxs)("strong",{children:["会议主题:",e.title]})]}),(0,vt.jsxs)("button",{type:"button",className:"meeting-more",onClick:()=>il("meeting-detail",{meeting_id:e.meeting_id}),children:["查看更多",(0,vt.jsx)(rl,{children:"chevron_right"})]})]}),(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"发起人"}),(0,vt.jsx)("dd",{children:o})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"时间"}),(0,vt.jsx)("dd",{children:hl(new Date(e.start_at))})]}),e.location?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"地点"}),(0,vt.jsx)("dd",{children:e.location})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"参会人"}),(0,vt.jsx)("dd",{className:"meeting-attendees",children:a||"无"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"会议时间"}),(0,vt.jsx)("dd",{children:Nl(e.start_at,e.end_at)})]})]}),r?null:e.my_response&&"pending"!==e.my_response?(0,vt.jsx)("footer",{children:(0,vt.jsx)("button",{type:"button",className:"meeting-responded",disabled:!0,children:Tl[e.my_response]||e.my_response})}):e.permissions&&e.permissions.can_respond?(0,vt.jsxs)("footer",{className:"meeting-response",children:[(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>d("declined"),children:"拒绝"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:l,onClick:()=>d("accepted"),children:"接受"})]}):null]})}function Pl({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("meetings")||null),[i]=(0,It.sK)("me",zt.jp,[]),o=i&&i.user_id,a=()=>(0,zt.FI)().then(e=>{const n=e.meetings||e.items||[];(0,It.Ug)("meetings",n),s(n)}).catch(()=>s(e=>e||[]));return n().useEffect(()=>{a()},[]),(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议通知",action:"add",actionLabel:"发起会议",onAction:()=>il("meeting-create")}),(0,vt.jsx)("main",{className:"meeting-list",children:null==t?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===t.length?(0,vt.jsx)("p",{className:"organization-loading",children:"暂无会议通知"}):t.map(n=>(0,vt.jsx)(Bl,{meeting:n,myUserId:o,onRespond:a,onToast:e},n.meeting_id))})]})}function ql({hashParams:e,onToast:t}){const s=e&&e.meeting_id,[i,o]=n().useState(()=>s&&(0,It.ze)("meeting:"+s)||null),[a]=(0,It.sK)("me",zt.jp,[]),r=a&&a.user_id,[l,c]=n().useState(!1),[d,h]=n().useState(!1),u=(i&&i.participants||[]).map(e=>e.user_id),g=ml(i?[i.organizer_id,...u]:[],r),p=(e,n)=>n&&n!==e?n:e&&g[e]||n||e,m=()=>s&&(0,zt.kX)(s).then(e=>{(0,It.Ug)("meeting:"+s,e),o(e)}).catch(e=>{t(e.message||"加载失败"),h(!0)});if(n().useEffect(()=>{s&&o((0,It.ze)("meeting:"+s)||null),m()},[s]),!i)return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议详情",back:"meeting-attendee"}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:d?"会议信息加载失败":"加载中…"})})]});const f={accepted:0,pending:0,declined:0,tentative:0};(i.participants||[]).forEach(e=>{f[e.response]=(f[e.response]||0)+1});const x=i.organizer_id===r,j=e=>{c(!0),(0,zt.kX)(i.meeting_id).then(n=>(0,zt.NZ)(n.meeting_id,e,n.version)).then(n=>{t("accepted"===e?"已接受会议邀请":"declined"===e?"已拒绝会议邀请":"已标记为待定"),m()}).catch(e=>t(e.message||"操作失败")).finally(()=>c(!1))};return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"会议详情",back:"meeting-attendee"}),(0,vt.jsxs)("main",{className:"meeting-list",children:[(0,vt.jsxs)("article",{className:"meeting-card",children:[(0,vt.jsx)("header",{children:(0,vt.jsxs)("span",{children:[(0,vt.jsxs)("small",{children:[hl(new Date(i.start_at))," ",ul(new Date(i.start_at))]}),(0,vt.jsxs)("strong",{children:["会议主题:",i.title]})]})}),(0,vt.jsxs)("dl",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"发起人"}),(0,vt.jsx)("dd",{children:p(i.organizer_id,i.organizer&&i.organizer.display_name||i.organizer_display_name)})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"时间"}),(0,vt.jsxs)("dd",{children:[hl(new Date(i.start_at))," ",ul(new Date(i.start_at))," - ",ul(new Date(i.end_at))]})]}),i.location?(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"地点"}),(0,vt.jsx)("dd",{children:i.location})]}):null,(0,vt.jsxs)("div",{children:[(0,vt.jsx)("dt",{children:"会议时间"}),(0,vt.jsx)("dd",{children:Nl(i.start_at,i.end_at)})]})]}),(0,vt.jsx)("ul",{className:"meeting-participant-list",children:(i.participants||[]).map(e=>(0,vt.jsxs)("li",{children:[(0,vt.jsx)("span",{children:p(e.user_id,e.display_name)}),(0,vt.jsx)("em",{className:e.response,children:Tl[e.response]||"待确认"})]},e.user_id))}),x||!i.permissions||!i.permissions.can_respond||i.my_response&&"pending"!==i.my_response?null:(0,vt.jsxs)("footer",{className:"meeting-response",children:[(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>j("declined"),children:"无法参加"}),(0,vt.jsx)("button",{type:"button",disabled:l,onClick:()=>j("tentative"),children:"待定"}),(0,vt.jsx)("button",{type:"button",className:"primary",disabled:l,onClick:()=>j("accepted"),children:"接受"})]})]}),x?(0,vt.jsxs)("section",{className:"meeting-status",children:[(0,vt.jsx)("h2",{children:"参会确认"}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.accepted}),(0,vt.jsx)("small",{children:"已接受"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.pending}),(0,vt.jsx)("small",{children:"待响应"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.declined}),(0,vt.jsx)("small",{children:"已拒绝"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:f.tentative}),(0,vt.jsx)("small",{children:"待定"})]})]}),(0,vt.jsxs)("footer",{children:[i.permissions&&i.permissions.can_remind?(0,vt.jsxs)("button",{type:"button",disabled:l,onClick:()=>{c(!0),(0,zt.fi)(i.meeting_id).then(e=>t("已提醒未响应成员")).catch(e=>t(e.message||"提醒失败")).finally(()=>c(!1))},children:[(0,vt.jsx)(rl,{children:"notifications"}),"提醒未响应"]}):null,i.permissions&&i.permissions.can_cancel&&"canceled"!==i.state?(0,vt.jsx)("button",{type:"button",className:"danger",disabled:l,onClick:()=>{c(!0),(0,zt.kX)(i.meeting_id).then(e=>(0,zt.E5)(e.meeting_id,e.version)).then(e=>{t("会议已取消"),m()}).catch(e=>t(e.message||"取消失败")).finally(()=>c(!1))},children:"取消会议"}):null]})]}):null]})]})}function Ml({myUserId:e,tinode:t,onToast:s}){const[i,o]=n().useState(""),[a,r]=n().useState(gl(new Date)),[l,c]=n().useState(""),[d,h]=n().useState(""),[u,g]=n().useState(""),[p,m]=n().useState(""),[f,x]=n().useState([]),[j,b]=n().useState([]),[y,w]=n().useState({}),[v,k]=n().useState(!1);n().useEffect(()=>{const e=window.setTimeout(()=>{(0,zt.RH)({query:p}).then(e=>x(e.members||e.items||[])).catch(()=>x([]))},300);return()=>window.clearTimeout(e)},[p]);const C=e=>{b(n=>n.includes(e)?n.filter(n=>n!=e):n.concat(e));const n=f.find(n=>n.user_id===e);n&&w(t=>({...t,[e]:n.display_name}))},z=f.map(e=>({user:e.user_id,public:{fn:e.display_name}}));return(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"发起会议",back:"meeting-attendee"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"会议主题"]}),(0,vt.jsx)("input",{type:"text",value:i,maxLength:"80",onChange:e=>o(e.target.value),placeholder:"请输入会议主题"})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"日期"]}),(0,vt.jsx)("input",{type:"date",value:a,onChange:e=>r(e.target.value)})]}),(0,vt.jsxs)("div",{className:"meeting-time-range",children:[(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"开始时间"]}),(0,vt.jsx)("input",{type:"time",value:l,onChange:e=>c(e.target.value)})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"结束时间"]}),(0,vt.jsx)("input",{type:"time",value:d,onChange:e=>h(e.target.value)})]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"地点"}),(0,vt.jsx)("input",{type:"text",value:u,maxLength:"60",onChange:e=>g(e.target.value),placeholder:"请输入会议地点(可选)"})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"参会人"]}),(0,vt.jsx)("input",{type:"text",value:p,onChange:e=>m(e.target.value),placeholder:"搜索姓名添加参会人"})]}),j.length?(0,vt.jsx)("div",{className:"meeting-selected-attendees",children:j.map(e=>(0,vt.jsxs)("span",{children:[y[e]||e,(0,vt.jsx)("i",{className:"material-icons",onClick:()=>C(e),children:"close"})]},e))}):null,t?(0,vt.jsx)(qt.A,{tinode:t,contacts:z,myUserId:e,emptyListMessage:"搜索同事姓名",showOnline:!1,showUnread:!1,showContextMenu:!1,topicSelected:j,onTopicSelected:C}):null]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:v,onClick:()=>{if(!(i.trim()&&a&&l&&d&&0!==j.length))return void s("请完善会议主题、时间与参会人");const e=new Date(`${a}T${l}:00`).toISOString(),n=new Date(`${a}T${d}:00`).toISOString();n<=e?s("结束时间需晚于开始时间"):(k(!0),(0,zt.qr)({title:i.trim(),start_at:e,end_at:n,location:u.trim(),attendee_user_ids:j}).then(e=>{s("会议已发起"),il("meeting-attendee")}).catch(e=>s(e.details&&"end_at"===e.details.field?"结束时间需晚于开始时间":e.message||"发起会议失败")).finally(()=>k(!1)))},children:v?"发起中…":"发起会议"})})]})}function Al({myUserId:e}){const[t,s]=n().useState(""),[i,o]=n().useState(null),[a,r]=n().useState(()=>(0,It.ze)("org-roots")||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),u=n().useCallback(()=>{c(!1),(0,zt.v)("root").then(e=>{const n=e.departments||e.items||[];(0,It.Ug)("org-roots",n),r(n)}).catch(()=>{r(e=>e||[]),c(!0)})},[]);return n().useEffect(()=>{u();try{const e=JSON.parse(window.localStorage.getItem("im-tenant")||"{}");h(e.name||"")}catch(e){}},[]),n().useEffect(()=>{if(!t.trim())return void o(null);const e=window.setTimeout(()=>{(0,zt.oI)(t).then(e=>o(e.items||[])).catch(()=>o([]))},300);return()=>window.clearTimeout(e)},[t]),(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"部门组织框架",back:"workbench"}),(0,vt.jsxs)("main",{className:"organization-content",children:[(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:t,onChange:e=>s(e.target.value),placeholder:"搜索成员或部门"})]}),i?(0,vt.jsx)("section",{className:"organization-tree",children:0===i.length?(0,vt.jsx)("p",{className:"organization-loading",children:"未找到匹配的成员"}):i.map((n,t)=>"department"===n.type?(0,vt.jsx)(zl,{dept:n.department},"d"+(n.department&&n.department.department_id||t)):(0,vt.jsx)(_l,{person:n.user,depth:0,level:3,isMe:!(!n.user||!kl(n.user.user_id,e))},"u"+(n.user&&n.user.user_id||t)))}):(0,vt.jsx)("section",{className:"organization-tree",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===a.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?(0,vt.jsxs)(vt.Fragment,{children:["加载失败 ",(0,vt.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),u()},children:"重试"})]}):"暂无组织架构数据"}):a.map(n=>(0,vt.jsx)(Sl,{dept:n,depth:0,myUserId:e},n.department_id))})]})]})}function El(e){return e.filter(e=>e.content.trim()).map(e=>(e.start&&e.end?`${e.start}-${e.end}\n`:"")+e.content.trim()).join("\n\n")}function Il({onToast:e}){const t=gl(new Date),s="daily-report-editor:"+t,i=(0,It.ze)(s),[o,a]=n().useState(i?i.reportId:null),[r,l]=n().useState(i?i.version:null),c=n().useRef(i?i.version:null),d=e=>{c.current=e,l(e)},[h,u]=n().useState(i?i.blocks:[{start:"",end:"",content:""}]),[g,p]=n().useState(!1),[m,f]=n().useState(!1),[x,j]=n().useState(!1),b=n().useRef(Promise.resolve()),y=n().useRef(null),w=n().useCallback(e=>{const n=b.current.then(()=>(0,zt.aY)(o,El(e),c.current,[]).then(n=>(d(n.version),p(!0),f(!1),(0,It.Ug)(s,{reportId:o,version:n.version,blocks:e}),n)));return b.current=n.catch(()=>{}),n},[o]);n().useEffect(()=>{(0,zt.S)(t).then(e=>{if(e.permissions&&!1===e.permissions.can_edit)return void il("daily-report-detail",{report_id:e.report_id});const n=e.content?[{start:"",end:"",content:e.content}]:[{start:"",end:"",content:""}];a(e.report_id),d(e.version),u(n),(0,It.Ug)(s,{reportId:e.report_id,version:e.version,blocks:n})}).catch(n=>e(n.message||"创建日报失败"))},[]),n().useEffect(()=>{if(o)return p(!1),y.current=window.setTimeout(()=>{y.current=null,w(h).catch(()=>f(!0))},600),()=>window.clearTimeout(y.current)},[h,o,w]);const v=(e,n,t)=>u(s=>s.map((s,i)=>i===e?{...s,[n]:t}:s));return(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"日报",back:"daily-report-mine"}),(0,vt.jsxs)("main",{children:[h.map((e,n)=>(0,vt.jsxs)("section",{className:"daily-report-block",children:[(0,vt.jsxs)("div",{className:"daily-report-block-header",children:[(0,vt.jsx)("strong",{children:"日报"}),h.length>1?(0,vt.jsx)("button",{type:"button",onClick:()=>(e=>u(n=>n.length>1?n.filter((n,t)=>t!==e):n))(n),"aria-label":"删除",children:(0,vt.jsx)(rl,{children:"close"})}):null]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"起止时间"}),(0,vt.jsx)("small",{className:"daily-report-date",children:hl(new Date(t))}),(0,vt.jsxs)("div",{className:"meeting-time-range",children:[(0,vt.jsx)("input",{type:"time",value:e.start,onChange:e=>v(n,"start",e.target.value)}),(0,vt.jsx)("span",{children:"至"}),(0,vt.jsx)("input",{type:"time",value:e.end,onChange:e=>v(n,"end",e.target.value)})]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsx)("span",{children:"今日工作总结"}),(0,vt.jsx)("textarea",{value:e.content,maxLength:"1000",placeholder:"请输入",onChange:e=>v(n,"content",e.target.value)}),(0,vt.jsxs)("small",{children:[e.content.length,"/1000"]})]})]},n)),(0,vt.jsxs)("button",{type:"button",className:"daily-report-add-block",onClick:()=>u(e=>e.concat({start:"",end:"",content:""})),children:[(0,vt.jsx)(rl,{children:"add"}),"添加时间段"]}),(0,vt.jsx)("p",{className:"report-draft-status",children:m?"草稿保存失败,请检查网络后重新编辑":g?"草稿已自动保存":"正在保存草稿…"})]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:x||!o,onClick:()=>{El(h).trim()?(j(!0),y.current&&(window.clearTimeout(y.current),y.current=null),w(h).then(e=>(0,zt.Zo)(o,e.version)).then(n=>{e("日报已提交"),window.setTimeout(()=>il("daily-report-detail",{report_id:o}),500)}).catch(n=>e(n.message||"提交失败")).finally(()=>j(!1))):e("请填写今日工作总结")},children:x?"提交中…":"提交"})})]})}const Dl={submitted:"已提交",draft:"未提交"};function Ul({report:e,names:n,team:t}){return(0,vt.jsxs)("article",{children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n[e.author_id]||e.author_id}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:e.status,children:Dl[e.status]||e.status})]}),(0,vt.jsx)("p",{children:e.content_short||"(未填写内容)"}),(0,vt.jsxs)("footer",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)(rl,{children:"schedule"}),e.report_date]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>il("daily-report-detail",{report_id:e.report_id,team:t?"1":""}),children:["查看详情",(0,vt.jsx)(rl,{children:"chevron_right"})]})]})]})}function Rl({team:e,myUserId:t,onToast:s}){const i="daily-reports:"+(e?"managed":"mine"),o="daily-stats:"+gl(new Date),[a,r]=n().useState(()=>(0,It.ze)(i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),[u,g]=n().useState(()=>e&&(0,It.ze)(o)||null),p=ml((a||[]).map(e=>e.author_id),t);n().useEffect(()=>{c(!1),(0,zt.zY)({scope:e?"managed":"mine"}).then(e=>{const n=e.reports||e.items||[];(0,It.Ug)(i,n),r(n)}).catch(e=>{s(e.message||"日报列表加载失败"),c(!0),r(e=>e||[])}),e&&(0,zt.lB)(gl(new Date)).then(e=>{(0,It.Ug)(o,e),g(e)}).catch(()=>{})},[e]);const m=(a||[]).filter(n=>(e?`${p[n.author_id]||""}${n.content_short||""}`:n.report_date).includes(d));return(0,vt.jsxs)("div",{className:"workplace-page report-list-page",children:[(0,vt.jsx)(ll,{title:"日报",action:"add",actionLabel:"填写日报",onAction:()=>il("daily-report-editor"),back:e?"daily-report-mine":"workbench"}),(0,vt.jsxs)("main",{children:[e&&u?(0,vt.jsxs)("section",{className:"report-statistics",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("small",{children:hl(new Date)}),(0,vt.jsx)("strong",{children:"全公司"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("daily-report-mine"),children:"我的日报"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.expected_count||0}),(0,vt.jsx)("small",{children:"应提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.submitted_count||0}),(0,vt.jsx)("small",{children:"已提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:(u.expected_count||0)-(u.submitted_count||0)}),(0,vt.jsx)("small",{children:"未提交"})]})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{const e=(n,t)=>(0,zt.RH)({cursor:n,limit:100}).then(n=>{const s=t.concat((n.items||[]).map(e=>e.user_id));return n.has_more&&n.next_cursor?e(n.next_cursor,s):s});e("",[]).then(e=>{if(e.length)return(0,zt.lD)(gl(new Date),e).then(e=>s("已提醒未提交成员"));s("组织架构里没有可提醒的成员")}).catch(e=>s(e.message||"提醒失败"))},children:[(0,vt.jsx)(rl,{children:"notifications_active"}),"提醒未提交成员"]})]}):null,(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:d,onChange:e=>h(e.target.value),placeholder:e?"搜索姓名或内容":"搜索日期"})]}),e?null:(0,vt.jsxs)("nav",{className:"report-role-switch",children:[(0,vt.jsx)("button",{type:"button",className:"active",children:"我的日报"}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("daily-report-team"),children:"团队统计"})]}),(0,vt.jsx)("section",{className:"report-cards",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===m.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?"日报列表加载失败":"暂无日报"}):m.map(n=>(0,vt.jsx)(Ul,{report:n,names:p,team:e},n.report_id))})]})]})}function Ll({hashParams:e,myUserId:t,onToast:s}){const i=e&&e.report_id,o=e&&e.team?"daily-report-team":"daily-report-mine",[a,r]=n().useState(()=>i&&(0,It.ze)("daily-report:"+i)||null),[l,c]=n().useState(!1),d=ml(a?[a.author_id]:[],t);return n().useEffect(()=>{i&&(r((0,It.ze)("daily-report:"+i)||null),(0,zt.ap)(i).then(e=>{(0,It.Ug)("daily-report:"+i,e),r(e)}).catch(e=>{s(e.message||"日报加载失败"),c(!0)}))},[i]),a?(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsxs)("main",{className:"report-detail",children:[(0,vt.jsxs)("section",{className:"report-author",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:d[a.author_id]||"…"}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:a.status,children:Dl[a.status]||a.status})]}),(0,vt.jsx)("section",{children:(0,vt.jsxs)("small",{children:[(0,vt.jsx)(rl,{children:"schedule"}),a.report_date]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"今日工作总结"}),(0,vt.jsx)("p",{children:a.content||"未填写"})]})]})]}):(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:l?"日报加载失败":"加载中…"})})]})}function Ol(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}`}function Fl(e){const[n,t]=e.split("-");return`${n} 年 ${parseInt(t,10)} 月`}function $l({onToast:e}){const t=Ol(new Date),s="monthly-report-editor:"+t,i=(0,It.ze)(s),[o,a]=n().useState(i?i.reportId:null),[r,l]=n().useState(i?i.version:null),c=n().useRef(i?i.version:null),d=e=>{c.current=e,l(e)},[h,u]=n().useState(i?i.summary:""),[g,p]=n().useState(i?i.plan:""),[m,f]=n().useState(1e3),[x,j]=n().useState(!i),[b,y]=n().useState(!1),[w,v]=n().useState(!1),[k,C]=n().useState(!1),z=n().useRef(Promise.resolve()),_=n().useRef(null),S=n().useCallback((e,n)=>{const t=z.current.then(()=>(0,zt.ae)(o,e,n,c.current,[]).then(t=>(d(t.version),y(!0),v(!1),(0,It.Ug)(s,{reportId:o,version:t.version,summary:e,plan:n}),t)));return z.current=t.catch(()=>{}),t},[o]);return n().useEffect(()=>{(0,zt.aE)(t).then(e=>{if(e.permissions&&!1===e.permissions.can_edit)return void il("monthly-report-detail",{report_id:e.report_id});const n=e.work_summary||"",t=e.next_plan||"";a(e.report_id),d(e.version),u(n),p(t),e.validation&&e.validation.max_length&&f(e.validation.max_length),(0,It.Ug)(s,{reportId:e.report_id,version:e.version,summary:n,plan:t}),j(!0)}).catch(n=>e(n.message||"创建月报失败"))},[]),n().useEffect(()=>{if(o&&x)return y(!1),_.current=window.setTimeout(()=>{_.current=null,S(h,g).catch(()=>v(!0))},600),()=>window.clearTimeout(_.current)},[h,g,o,x,S]),(0,vt.jsxs)("div",{className:"workplace-page report-editor-page",children:[(0,vt.jsx)(ll,{title:"月报",back:"monthly-report-mine"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)("section",{className:"daily-report-block-header",children:(0,vt.jsx)("strong",{children:"月报汇总"})}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"本月工作总结"]}),(0,vt.jsx)("textarea",{value:h,maxLength:m,placeholder:"请输入",onChange:e=>u(e.target.value)}),(0,vt.jsxs)("small",{children:[h.length,"/",m]})]}),(0,vt.jsxs)("label",{className:"report-field",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:"*"}),"下月工作计划"]}),(0,vt.jsx)("textarea",{value:g,maxLength:m,placeholder:"请输入",onChange:e=>p(e.target.value)}),(0,vt.jsxs)("small",{children:[g.length,"/",m]})]}),(0,vt.jsx)("p",{className:"report-draft-status",children:w?"草稿保存失败,请检查网络后重新编辑":b?"草稿已自动保存":"正在保存草稿…"})]}),(0,vt.jsx)("footer",{className:"workplace-submit-bar",children:(0,vt.jsx)("button",{type:"button",disabled:k||!o,onClick:()=>{h.trim()&&g.trim()?(C(!0),_.current&&(window.clearTimeout(_.current),_.current=null),S(h,g).then(e=>(0,zt.ig)(o,e.version)).then(n=>{e("月报已提交"),window.setTimeout(()=>il("monthly-report-detail",{report_id:o}),500)}).catch(n=>e(n.message||"提交失败")).finally(()=>C(!1))):e("请完成必填内容")},children:k?"提交中…":"提交"})})]})}function Vl({team:e,myUserId:t,onToast:s}){const i="monthly-reports:"+(e?"managed":"mine"),o="monthly-stats:"+Ol(new Date),[a,r]=n().useState(()=>(0,It.ze)(i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(""),[u,g]=n().useState(()=>e&&(0,It.ze)(o)||null),p=ml((a||[]).map(e=>e.author_id),t);n().useEffect(()=>{c(!1),(0,zt.xn)({scope:e?"managed":"mine"}).then(e=>{const n=e.reports||e.items||[];(0,It.Ug)(i,n),r(n)}).catch(e=>{s(e.message||"月报列表加载失败"),c(!0),r(e=>e||[])}),e&&(0,zt.nW)(Ol(new Date)).then(e=>{(0,It.Ug)(o,e),g(e)}).catch(()=>{})},[e]);const m=(a||[]).filter(n=>((e?`${p[n.author_id]||""}${n.work_summary_short||""}`:n.month)||"").includes(d));return(0,vt.jsxs)("div",{className:"workplace-page report-list-page",children:[(0,vt.jsx)(ll,{title:"月报",action:"add",actionLabel:"填写月报",onAction:()=>il("monthly-report-editor"),back:e?"monthly-report-mine":"workbench"}),(0,vt.jsxs)("main",{children:[e&&u?(0,vt.jsxs)("section",{className:"report-statistics",children:[(0,vt.jsxs)("header",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("small",{children:Fl(Ol(new Date))}),(0,vt.jsx)("strong",{children:"全公司"})]}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("monthly-report-mine"),children:"我的月报"})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.expected_count||0}),(0,vt.jsx)("small",{children:"应提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:u.submitted_count||0}),(0,vt.jsx)("small",{children:"已提交"})]}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("b",{children:(u.expected_count||0)-(u.submitted_count||0)}),(0,vt.jsx)("small",{children:"未提交"})]})]})]}):null,(0,vt.jsxs)("label",{className:"workplace-search",children:[(0,vt.jsx)(rl,{children:"search"}),(0,vt.jsx)("input",{value:d,onChange:e=>h(e.target.value),placeholder:e?"搜索姓名或内容":"搜索月份或内容"})]}),e?null:(0,vt.jsxs)("nav",{className:"report-role-switch",children:[(0,vt.jsx)("button",{type:"button",className:"active",children:"我的月报"}),(0,vt.jsx)("button",{type:"button",onClick:()=>ol("monthly-report-team"),children:"团队统计"})]}),(0,vt.jsx)("section",{className:"report-cards",children:null==a?(0,vt.jsx)("p",{className:"organization-loading",children:"加载中…"}):0===m.length?(0,vt.jsx)("p",{className:"organization-loading",children:l?"月报列表加载失败":"暂无月报"}):m.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>il("view"===(n.action||("submitted"===n.status?"view":"edit"))?"monthly-report-detail":"monthly-report-editor",{report_id:n.report_id,team:e?"1":""}),children:[(0,vt.jsx)("span",{className:"report-month",children:(0,vt.jsx)(rl,{children:"calendar_month"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e?p[n.author_id]||n.author_id:Fl(n.month)}),(0,vt.jsx)("small",{children:e?Fl(n.month):"工作总结与下月计划"})]}),(0,vt.jsx)("em",{className:n.status,children:Dl[n.status]||n.status}),(0,vt.jsx)(rl,{children:"chevron_right"})]},n.report_id))})]})]})}function Hl({hashParams:e,myUserId:t,onToast:s}){const i=e&&e.report_id,o=e&&e.team?"monthly-report-team":"monthly-report-mine",[a,r]=n().useState(()=>i&&(0,It.ze)("monthly-report:"+i)||null),[l,c]=n().useState(!1),[d,h]=n().useState(!1),u=ml(a?[a.author_id]:[],t);if(n().useEffect(()=>{i&&(r((0,It.ze)("monthly-report:"+i)||null),(0,zt.er)(i).then(e=>{(0,It.Ug)("monthly-report:"+i,e),r(e)}).catch(e=>{s(e.message||"月报加载失败"),c(!0)}))},[i]),!a)return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:l?"月报加载失败":"加载中…"})})]});const g=a.author_id===t&&"submitted"===a.status;return(0,vt.jsxs)("div",{className:"workplace-page",children:[(0,vt.jsx)(ll,{title:"查看详情",back:o}),(0,vt.jsxs)("main",{className:"report-detail",children:[(0,vt.jsxs)("section",{className:"report-author",children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:u[a.author_id]||"…"}),(0,vt.jsx)("small",{className:"role-badge",children:"员工"})]}),(0,vt.jsx)("em",{className:a.status,children:Dl[a.status]||a.status})]}),(0,vt.jsx)("section",{children:(0,vt.jsxs)("small",{children:[(0,vt.jsx)(rl,{children:"schedule"}),Fl(a.month)]})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"本月工作总结"}),(0,vt.jsx)("p",{children:a.work_summary||"未填写"})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)("h3",{children:"下月工作计划"}),(0,vt.jsx)("p",{children:a.next_plan||"未填写"})]}),g?(0,vt.jsx)("section",{children:(0,vt.jsx)("button",{type:"button",className:"workplace-primary",disabled:d,onClick:()=>{h(!0),(0,zt.DU)(a.report_id,a.version).then(()=>{s("已重新打开,可继续编辑"),il("monthly-report-editor")}).catch(e=>s(e.message||"重新打开失败")).finally(()=>h(!1))},children:d?"处理中…":"重新编辑"})}):null]})]})}function Wl(e){const n=e.trim().split("\n")[0];return n.length>30?n.slice(0,30)+"…":n}function Kl({tinode:e,noticeOnly:t,onToast:s}){const[i,o]=n().useState(()=>(0,It.ze)("executive-mailbox-config")||null),[a,r]=n().useState(""),[l,c]=n().useState(null),[d,h]=n().useState([]),[u,g]=n().useState(!1),[p,m]=n().useState(!1),[f,x]=n().useState(!!t),j=n().useRef(null);n().useEffect(()=>{(0,zt.lL)().then(e=>{(0,It.Ug)("executive-mailbox-config",e),o(e)}).catch(()=>o(e=>e||{enabled:!1}))},[]);const b=i&&i.attachment_policy||{},y=b.max_files||b.max_count||5;return i&&!i.enabled?(0,vt.jsxs)("div",{className:"workplace-page mailbox-page",children:[(0,vt.jsx)(ll,{title:"总经理信箱",back:"workbench"}),(0,vt.jsx)("main",{children:(0,vt.jsx)("p",{className:"organization-loading",children:"总经理信箱当前不可用"})})]}):(0,vt.jsxs)("div",{className:"workplace-page mailbox-page",children:[(0,vt.jsx)(ll,{title:"总经理信箱",back:"workbench",action:i&&i.notice?"info_outline":null,actionLabel:"查看使用说明",onAction:()=>x(!0)}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{className:"mailbox-content",children:[(0,vt.jsx)("span",{children:"反馈内容"}),(0,vt.jsx)("textarea",{value:a,maxLength:i&&i.max_length||1e3,placeholder:"请输入",onChange:e=>r(e.target.value)}),(0,vt.jsxs)("small",{children:[a.length,"/",i&&i.max_length||1e3]})]}),(0,vt.jsxs)("span",{children:["附件(",d.length,"/",y,")"]}),(0,vt.jsxs)("button",{type:"button",className:"mailbox-upload",onClick:()=>{d.length>=y?s(`最多上传 ${y} 个附件`):j.current&&j.current.click()},disabled:u||d.length>=y,children:[(0,vt.jsx)(rl,{children:u?"hourglass_top":"upload_file"}),(0,vt.jsx)("span",{children:u?"上传中…":"上传文件"})]}),(0,vt.jsx)("input",{ref:j,type:"file",style:{display:"none"},onChange:n=>{const t=n.target.files&&n.target.files[0];n.target.value="",t&&e&&(d.length>=y?s(`最多上传 ${y} 个附件`):(g(!0),(0,zt.rD)(e,t).then(({fileId:e})=>{h(n=>n.concat({fileId:e,name:t.name}))}).catch(e=>s(e.message||"附件上传失败")).finally(()=>g(!1))))}}),d.length?(0,vt.jsx)("ul",{className:"mailbox-attachment-list",children:d.map((e,n)=>(0,vt.jsxs)("li",{children:[e.name,(0,vt.jsx)("i",{className:"material-icons",onClick:()=>h(e=>e.filter((e,t)=>t!==n)),children:"close"})]},e.fileId))}):null,(0,vt.jsx)("button",{type:"button",className:"workplace-primary",disabled:p||null==i,onClick:()=>{a.trim()?i&&i.allow_anonymous&&!l?s("请选择实名反馈或匿名反馈"):(m(!0),(0,zt.uv)({subject:Wl(a),content:a.trim(),anonymous:"anonymous"===l,attachment_file_ids:d.map(e=>e.fileId)}).then(e=>{s("反馈成功"),r(""),h([]),c(null)}).catch(e=>s(e.message||"提交失败")).finally(()=>m(!1))):s("请填写反馈内容")},children:p?"提交中…":"提交"}),(0,vt.jsxs)("div",{className:"mailbox-anonymous-choice",children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("input",{type:"radio",name:"mailbox-anon",checked:"named"===l,onChange:()=>c("named")}),(0,vt.jsx)("span",{children:"实名反馈"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("input",{type:"radio",name:"mailbox-anon",checked:"anonymous"===l,onChange:()=>c("anonymous"),disabled:i&&!i.allow_anonymous}),(0,vt.jsx)("span",{children:"匿名反馈"})]})]})]}),f&&i&&i.notice?(0,vt.jsx)("div",{className:"mailbox-notice-backdrop",children:(0,vt.jsxs)("section",{role:"dialog","aria-modal":"true",className:"mailbox-notice-dialog",children:[(0,vt.jsx)(rl,{children:"policy"}),(0,vt.jsx)("h2",{children:i.notice.title||"信箱使用与隐私说明"}),(0,vt.jsx)("p",{children:i.notice.content}),(0,vt.jsx)("button",{type:"button",onClick:()=>{x(!1),t&&il("executive-mailbox")},children:"我已了解"})]})}):null]})}function Xl({view:e,hashParams:t,myUserId:s,tinode:i,onTopicSelected:o}){const[a,r]=n().useState("");let l;return l="workbench"===e?(0,vt.jsx)(bl,{onToast:r}):"organization-directory"===e?(0,vt.jsx)(Al,{myUserId:s}):"meeting-organizer"===e||"meeting-attendee"===e?(0,vt.jsx)(Pl,{onToast:r}):"meeting-create"===e?(0,vt.jsx)(Ml,{myUserId:s,tinode:i,onToast:r}):"meeting-detail"===e?(0,vt.jsx)(ql,{hashParams:t,onToast:r}):"daily-report-editor"===e?(0,vt.jsx)(Il,{onToast:r}):"monthly-report-editor"===e?(0,vt.jsx)($l,{onToast:r}):"daily-report-mine"===e||"daily-report-team"===e?(0,vt.jsx)(Rl,{team:"daily-report-team"===e,myUserId:s,onToast:r}):"monthly-report-mine"===e||"monthly-report-team"===e?(0,vt.jsx)(Vl,{team:"monthly-report-team"===e,myUserId:s,onToast:r}):"daily-report-detail"===e?(0,vt.jsx)(Ll,{hashParams:t,myUserId:s,onToast:r}):"monthly-report-detail"===e?(0,vt.jsx)(Hl,{hashParams:t,myUserId:s,onToast:r}):(0,vt.jsx)(Kl,{tinode:i,noticeOnly:"executive-mailbox-notice"===e,onToast:r}),(0,vt.jsxs)(vt.Fragment,{children:[l,(0,vt.jsx)(cl,{message:a,onDone:()=>r("")})]})}const Gl=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateTo(t)},Jl=(e,n)=>{let t=is.A.setUrlSidePanel(is.A.currentUrl(),e);Object.entries(n||{}).forEach(([e,n])=>{t=n?is.A.addUrlParam(t,e,n):is.A.removeUrlParam(t,e)}),is.A.navigateReplace(t)},Yl=["personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info"];function Zl({children:e}){return(0,vt.jsx)("i",{className:"material-icons","aria-hidden":"true",children:e})}function Ql({title:e,back:n="personal-center",action:t,actionLabel:s,onAction:i,actionDisabled:o}){return(0,vt.jsxs)("header",{className:"personal-header",children:[(0,vt.jsx)("button",{type:"button",onClick:()=>{is.A.goBack()||Gl(n)},"aria-label":"返回",children:(0,vt.jsx)(Zl,{children:"arrow_back_ios_new"})}),(0,vt.jsx)("h1",{children:e}),t?(0,vt.jsx)("button",{type:"button",className:"text",onClick:i,disabled:o,children:s||t}):(0,vt.jsx)("span",{})]})}function ec({message:e,onDone:t}){return n().useEffect(()=>{if(!e)return;const n=window.setTimeout(t,2100);return()=>window.clearTimeout(n)},[e,t]),e?(0,vt.jsx)("div",{className:"personal-toast",role:"status",children:e}):null}function nc({checked:e,disabled:n,onChange:t}){return(0,vt.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:n,className:"personal-switch"+(e?" checked":""),onClick:()=>t(!e),children:(0,vt.jsx)("i",{})})}function tc({icon:e,title:n,value:t,route:s,onClick:i,danger:o}){return(0,vt.jsxs)("button",{type:"button",className:"personal-menu-row"+(o?" danger":""),onClick:i||(()=>s&&Gl(s)),children:[e?(0,vt.jsx)(Zl,{children:e}):null,(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:n}),t?(0,vt.jsx)("small",{children:t}):null]}),s||i?(0,vt.jsx)(Zl,{children:"chevron_right"}):null]})}function sc(){try{return JSON.parse(window.localStorage.getItem("im-tenant")||"{}").name||""}catch(e){return""}}function ic({fileId:e,className:t}){const[s,i]=n().useState(null);return n().useEffect(()=>{let n=!0;return(0,zt.w8)(e).then(e=>n&&i(e)).catch(()=>{}),()=>{n=!1}},[e]),s?(0,vt.jsx)("img",{className:t,src:s,alt:""}):(0,vt.jsx)("span",{className:t})}function oc(){const[e]=(0,It.sK)("me-profile",zt.w,[]);return(0,vt.jsxs)("div",{className:"personal-page personal-center-page",children:[(0,vt.jsx)(Ql,{title:"我的",back:"messages-home"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("button",{type:"button",className:"personal-identity",onClick:()=>Gl("personal-profile"),children:[e&&e.avatar_file_id?(0,vt.jsx)(ic,{fileId:e.avatar_file_id}):(0,vt.jsx)("span",{className:"personal-avatar-fallback",children:(0,vt.jsx)(Zl,{children:"person"})}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:e&&(e.nickname||e.public_account)||"…"}),(0,vt.jsxs)("small",{children:["企业名称:",sc()||"…"]}),(0,vt.jsxs)("small",{children:["ID: ",e&&e.public_account||"…"]})]}),(0,vt.jsx)(Zl,{children:"chevron_right"})]}),(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{icon:"qr_code",title:"我的二维码",route:"personal-qrcode"})}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"bookmark_border",title:"我的收藏",route:"favorites"}),(0,vt.jsx)(tc,{icon:"report_problem",title:"关于我们",route:"app-version"}),(0,vt.jsx)(tc,{icon:"feedback",title:"意见反馈",route:"user-feedback"}),(0,vt.jsx)(tc,{icon:"settings",title:"设置",route:"android-settings"})]})]})]})}function ac({onToast:e,tinode:t}){const[s,i]=n().useState(()=>(0,It.ze)("me-profile")||null),o=n().useRef(null),[a,r]=n().useState(!1),l=()=>(0,zt.w)().then(e=>{(0,It.Ug)("me-profile",e),i(e)}).catch(()=>{});n().useEffect(()=>{l()},[]);const c={male:"男",female:"女",other:"其他"}[s&&s.gender]||"未设置";return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"个人信息"}),(0,vt.jsxs)("main",{className:"personal-profile-list",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>o.current&&o.current.click(),disabled:a,children:[(0,vt.jsx)("strong",{children:"头像"}),s&&s.avatar_file_id?(0,vt.jsx)(ic,{fileId:s.avatar_file_id}):(0,vt.jsx)(Zl,{children:"person"}),(0,vt.jsx)(Zl,{children:"chevron_right"})]}),(0,vt.jsx)("input",{ref:o,type:"file",accept:"image/*",style:{display:"none"},onChange:n=>{const i=n.target.files&&n.target.files[0];n.target.value="",i&&t&&(r(!0),(0,zt.rD)(t,i).then(({fileId:e})=>(0,zt.VX)({avatar_file_id:e,version:s.version})).then(l).then(()=>e("头像已更新")).catch(n=>e(n.message||"头像上传失败")).finally(()=>r(!1)))}}),(0,vt.jsx)(tc,{title:"昵称",value:s&&(s.nickname||"未设置"),route:"profile-nickname"}),(0,vt.jsx)(tc,{title:"性别",value:c,route:"profile-gender"}),(0,vt.jsx)(tc,{title:"出生日期",value:s&&s.birth_date||"未设置",route:"profile-birth-date"}),(0,vt.jsx)(tc,{title:"二维码名片",route:"personal-qrcode"}),(0,vt.jsx)(tc,{title:"地区",value:s&&s.region||"未设置",route:"profile-region"}),(0,vt.jsx)(tc,{title:"个性签名",value:s&&s.signature||"此人很懒什么都没留下~",route:"profile-signature"})]})]})}const rc={nickname:32,signature:120};function lc({field:e,multiline:t,title:s,onToast:i}){const[o,a]=n().useState(null),[r,l]=n().useState(""),[c,d]=n().useState(!1);n().useEffect(()=>{(0,zt.w)().then(n=>{a(n),l(n[e]||"")}).catch(()=>{})},[e]);const h=rc[e];return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:s,back:"personal-profile",action:"完成",onAction:()=>{const n=r.trim();"nickname"!==e||n?(d(!0),(0,zt.VX)({[e]:n,version:o.version}).then(e=>{i("资料已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(e=>i(e.message||"保存失败")).finally(()=>d(!1))):i("昵称不能为空")},actionDisabled:!o||c}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("label",{children:[t?(0,vt.jsx)("textarea",{value:r,maxLength:h,autoFocus:!0,placeholder:"请输入……",onChange:e=>l(e.target.value)}):(0,vt.jsx)("input",{value:r,maxLength:h,autoFocus:!0,onChange:e=>l(e.target.value)}),(0,vt.jsxs)("small",{children:[r.length,"/",h]}),r?(0,vt.jsx)("button",{type:"button",onClick:()=>l(""),"aria-label":"清空",children:(0,vt.jsx)(Zl,{children:"cancel"})}):null]}),(0,vt.jsx)("p",{children:"nickname"===e?"昵称将展示在联系人资料和聊天页面中":"签名将展示在你的个人资料页"})]})]})}function cc({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState("");n().useEffect(()=>{(0,zt.w)().then(e=>{s(e),o(e.birth_date||"")}).catch(()=>{})},[]);const a=(new Date).toISOString().slice(0,10);return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"出生日期",back:"personal-profile",action:"完成",onAction:()=>{(0,zt.VX)({birth_date:i,version:t.version}).then(n=>{e("出生日期已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(n=>e(n.message||"保存失败"))},actionDisabled:!t}),(0,vt.jsxs)("main",{className:"birth-date-editor",children:[(0,vt.jsx)(Zl,{children:"cake"}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"选择出生日期"}),(0,vt.jsx)("input",{type:"date",value:i,max:a,min:"1900-01-01",onChange:e=>o(e.target.value)})]}),(0,vt.jsx)("p",{children:"出生日期的可见范围由隐私设置决定"})]})]})}const dc=[{value:"male",label:"男"},{value:"female",label:"女"},{value:"other",label:"其他"}];function hc({onToast:e}){const[t,s]=n().useState(null);return n().useEffect(()=>{(0,zt.w)().then(s).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"性别",back:"personal-profile"}),(0,vt.jsx)("main",{className:"gender-option-list",children:dc.map(n=>(0,vt.jsxs)("button",{type:"button",onClick:()=>{return s=n.value,void(0,zt.VX)({gender:s,version:t.version}).then(n=>{e("性别已更新"),window.setTimeout(()=>Gl("personal-profile"),400)}).catch(n=>e(n.message||"保存失败"));var s},disabled:!t,children:[(0,vt.jsx)("strong",{children:n.label}),t&&t.gender===n.value?(0,vt.jsx)(Zl,{children:"check"}):null]},n.value))})]})}function uc({onToast:e}){const[t,s]=n().useState(null),[i,o]=n().useState("");return n().useEffect(()=>{(0,zt.w)().then(e=>{s(e),o(e.region||"")}).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"地区",back:"personal-profile",action:"完成",onAction:()=>{(0,zt.VX)({region:i.trim(),version:t.version}).then(n=>{e("地区已保存"),window.setTimeout(()=>Gl("personal-profile"),500)}).catch(n=>e(n.message||"保存失败"))},actionDisabled:!t}),(0,vt.jsx)("main",{children:(0,vt.jsx)("label",{children:(0,vt.jsx)("input",{value:i,maxLength:60,autoFocus:!0,placeholder:"省份/城市",onChange:e=>o(e.target.value)})})})]})}function gc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-profile")||null),[i,o]=n().useState(null),a=n().useRef(null),r=()=>{(0,zt.jx)().then(o).catch(n=>e(n.message||"二维码生成失败"))};return n().useEffect(()=>{(0,zt.w)().then(e=>{(0,It.Ug)("me-profile",e),s(e)}).catch(()=>{}),r()},[]),n().useEffect(()=>{i&&a.current&&(a.current.innerHTML="",new(Ai())(a.current,{text:i.qr_payload||i.qr_token,width:210,height:210,correctLevel:Ai().CorrectLevel.M}))},[i]),(0,vt.jsxs)("div",{className:"personal-page personal-qr-page",children:[(0,vt.jsx)(Ql,{title:"我的二维码"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{className:"personal-qr-profile",children:[t&&t.avatar_file_id?(0,vt.jsx)(ic,{fileId:t.avatar_file_id}):(0,vt.jsx)(Zl,{children:"person"}),(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:t&&t.nickname||t&&t.public_account}),(0,vt.jsx)("small",{children:sc()})]})]}),(0,vt.jsx)("div",{className:"personal-qrcode",ref:a}),(0,vt.jsx)("p",{children:"扫一扫上面的二维码,加我为好友"}),i&&i.expires_at?(0,vt.jsxs)("small",{children:["二维码将于 ",new Date(i.expires_at).toLocaleString()," 失效"]}):null]}),(0,vt.jsxs)("div",{className:"personal-qr-actions",children:[(0,vt.jsxs)("button",{type:"button",onClick:()=>{r(),e("二维码已刷新")},children:[(0,vt.jsx)(Zl,{children:"refresh"}),(0,vt.jsx)("span",{children:"刷新"})]}),(0,vt.jsxs)("button",{type:"button",onClick:()=>{navigator.share&&i?navigator.share({title:"我的名片",text:i.qr_payload||i.qr_token}).catch(()=>{}):e("当前环境不支持分享")},children:[(0,vt.jsx)(Zl,{children:"share"}),(0,vt.jsx)("span",{children:"分享"})]})]})]})]})}function pc({onToast:e,onLogout:t,tinode:s,chatList:i,onDeleteAccount:o}){const[a,r]=n().useState(()=>(0,It.ze)("youth-mode")||null),[l,c]=n().useState(()=>(0,It.ze)("me-realname")||null),[d,h]=n().useState(null);n().useEffect(()=>{(0,zt.K2)().then(e=>{(0,It.Ug)("youth-mode",e),r(e)}).catch(()=>{}),(0,zt.II)().then(e=>{(0,It.Ug)("me-realname",e),c(e)}).catch(()=>{})},[]);const u=a?a.enabled:null,g={verified:"已认证",pending:"审核中",rejected:"未通过"}[l?l.status:null]||"未认证";return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"设置"}),(0,vt.jsxs)("main",{className:"android-settings-list",children:[(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"delete_sweep",title:"清除缓存",onClick:()=>h("cache")}),(0,vt.jsx)(tc,{icon:"mark_chat_read",title:"清除所有聊天记录",onClick:()=>h("history")}),(0,vt.jsx)(tc,{icon:"password",title:"修改密码",route:"change-password"})]}),(0,vt.jsxs)("section",{children:[(0,vt.jsx)(tc,{icon:"lock_outline",title:"隐私设置",route:"privacy-settings"}),(0,vt.jsx)(tc,{icon:"block",title:"黑名单",route:"block-list"}),(0,vt.jsx)(tc,{icon:"child_care",title:"青少年模式",value:null==u?"…":u?"已开启":"未开启",route:u?"youth-mode-on":"youth-mode-off"}),(0,vt.jsx)(tc,{icon:"verified_user",title:"实名认证",value:g,route:"realname"}),(0,vt.jsx)(tc,{icon:"shield",title:"安全教育",route:"fraud-risk-warning"})]}),(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{icon:"no_accounts",title:"注销账号",onClick:()=>h("delete"),danger:!0})}),(0,vt.jsx)("button",{type:"button",className:"personal-logout",onClick:()=>h("logout"),children:"退出当前登录"})]}),"cache"===d?(0,vt.jsx)(xc,{onToast:e,onClose:()=>h(null)}):null,"history"===d?(0,vt.jsx)(jc,{onToast:e,tinode:s,chatList:i,onClose:()=>h(null)}):null,"delete"===d?(0,vt.jsx)(yc,{onToast:e,onDeleteAccount:o,onClose:()=>h(null)}):null,"logout"===d?(0,vt.jsx)(fc,{onToast:e,onLogout:t,onClose:()=>h(null)}):null]})}function mc({icon:e,title:n,body:t,confirmLabel:s="确认",confirmDanger:i=!0,busy:o,onConfirm:a,onCancel:r,children:l}){return(0,vt.jsx)("div",{className:"personal-sheet-backdrop",children:(0,vt.jsxs)("section",{className:"personal-confirm-sheet",role:"dialog","aria-modal":"true",children:[(0,vt.jsx)(Zl,{children:e}),(0,vt.jsx)("h2",{children:n}),(0,vt.jsx)("p",{children:t}),l,(0,vt.jsx)("button",{type:"button",className:i?"danger":"primary",disabled:o,onClick:a,children:o?"处理中…":s}),(0,vt.jsx)("button",{type:"button",onClick:r,disabled:o,children:"取消"})]})})}function fc({onLogout:e,onToast:n,onClose:t}){return(0,vt.jsx)(mc,{icon:"logout",title:"退出登录",body:"确定要退出当前登录吗?",onConfirm:()=>{t(),e?e():n("当前环境不支持退出登录")},onCancel:t})}function xc({onToast:e,onClose:t}){const[s,i]=n().useState(!1),[o,a]=n().useState(!1),[r,l]=n().useState(0);return(0,vt.jsx)(mc,{icon:o?"check_circle":"delete_sweep",title:o?"缓存已清理":"清空缓存",body:o?`已释放约 ${(r/1048576).toFixed(1)} MB 存储空间。`:"确定清空本地的缓存数据?将清除缩略图、临时文件和可重新下载的数据,不会删除聊天记录、收藏或登录信息。",confirmLabel:o?"完成":"确定",confirmDanger:!o,busy:s,onConfirm:o?t:async()=>{i(!0);try{let e=0;if("undefined"!=typeof caches){const n=await caches.keys();for(const t of n){const n=await caches.open(t),s=await n.keys();for(const t of s){const s=await n.match(t);s&&(e+=(await s.clone().blob().catch(()=>null))?.size||0)}}await Promise.all(n.map(e=>caches.delete(e)))}l(e),a(!0)}catch(n){e(n.message||"清理失败,请重试")}finally{i(!1)}},onCancel:t})}function jc({tinode:e,chatList:t,onToast:s,onClose:i}){const[o,a]=n().useState(!1);return(0,vt.jsx)(mc,{icon:"mark_chat_read",title:"清除所有聊天记录",body:"确定清除所有聊天记录?此操作不可恢复,但不会影响好友/群聊关系和收藏内容。",busy:o,onConfirm:()=>{if(!e||!t||!t.length)return s("没有可清除的会话"),void i();a(!0),Promise.all(t.map(n=>{const t=e.getTopic(n.name);return t?t.delMessagesAll(!1).catch(()=>{}):Promise.resolve()})).then(()=>{s("聊天记录已清空"),i()}).finally(()=>a(!1))},onCancel:i})}function bc({onUpdatePassword:e,onToast:t}){const[s,i]=n().useState(""),[o,a]=n().useState(""),[r,l]=n().useState(""),[c,d]=n().useState(!1);return(0,vt.jsxs)("div",{className:"personal-page profile-editor-page",children:[(0,vt.jsx)(Ql,{title:"修改密码",back:"android-settings",action:"完成",actionLabel:c?"处理中…":"完成",actionDisabled:c,onAction:()=>{!s||o.length<6?t("请输入原密码,新密码至少6位"):o===r?e?c||(d(!0),Promise.resolve(e(o)).then(()=>{t("密码已更新"),window.setTimeout(()=>Gl("android-settings"),500)}).catch(e=>{t(e&&e.message||"修改失败,请重试"),d(!1)})):t("当前环境不支持修改密码"):t("两次输入的新密码不一致")}}),(0,vt.jsxs)("main",{className:"change-password-fields",children:[(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"原密码"}),(0,vt.jsx)("input",{type:"password",value:s,onChange:e=>i(e.target.value),placeholder:"请输入当前密码"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"新密码"}),(0,vt.jsx)("input",{type:"password",value:o,onChange:e=>a(e.target.value),placeholder:"至少6位"})]}),(0,vt.jsxs)("label",{children:[(0,vt.jsx)("span",{children:"确认新密码"}),(0,vt.jsx)("input",{type:"password",value:r,onChange:e=>l(e.target.value),placeholder:"再次输入新密码"})]})]})]})}function yc({onDeleteAccount:e,onToast:t,onClose:s}){const[i,o]=n().useState(1),[a,r]=n().useState(""),[l,c]=n().useState(!1);return 1===i?(0,vt.jsx)(mc,{icon:"warning",title:"注销账号",body:"注销后账号数据将被永久删除且无法恢复,包括聊天记录、好友关系和收藏内容。如果你是某些群的群主,这些群也将被永久解散,其他成员将无法继续使用。确定要继续吗?",confirmLabel:"继续",onConfirm:()=>o(2),onCancel:s}):(0,vt.jsx)(mc,{icon:"no_accounts",title:"输入密码确认注销",body:"请输入登录密码以确认注销账号(该操作立即生效,不可撤销)。",busy:l,onConfirm:()=>{a?e?(c(!0),Promise.resolve(e()).catch(e=>{t(e.message||"注销失败"),c(!1)})):t("当前环境不支持注销账号"):t("请输入密码以确认")},onCancel:s,children:(0,vt.jsx)("input",{type:"password",autoFocus:!0,value:a,onChange:e=>r(e.target.value),placeholder:"登录密码"})})}function wc({onToast:e}){return(0,vt.jsxs)("div",{className:"personal-page app-version-page",children:[(0,vt.jsx)(Ql,{title:"关于我们",back:"android-settings"}),(0,vt.jsxs)("main",{children:[(0,vt.jsxs)("section",{className:"app-brand",children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Zl,{children:"forum"})}),(0,vt.jsx)("h2",{children:Ct.iv}),(0,vt.jsxs)("p",{children:["版本 ","0.25.3"]})]}),(0,vt.jsxs)("section",{className:"personal-menu-section",children:[(0,vt.jsx)(tc,{title:"用户条款",onClick:()=>e("用户条款")}),(0,vt.jsx)(tc,{title:"隐私协议",onClick:()=>e("隐私协议")}),(0,vt.jsx)(tc,{title:"联系我们",onClick:()=>e("联系我们")})]})]})]})}function vc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-privacy")||null);n().useEffect(()=>{(0,zt.BT)().then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(()=>{})},[]);const i=(n,i)=>{const o=t;s({...t,[n]:i}),(0,zt.Wj)({[n]:i,version:t.version}).then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(n=>{e(n.message||"保存失败"),s(o),(0,It.Ug)("me-privacy",o)})},o=e=>!(!t||!t.editable||!1!==t.editable[e]);return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"隐私设置",back:"android-settings"}),(0,vt.jsxs)("main",{className:"privacy-list",children:[(0,vt.jsx)("section",{children:(0,vt.jsx)(tc,{title:"添加我的方式",value:(()=>{if(!t)return"";const e={account:"账号",phone:"手机号",qr:"二维码",group:"群聊"},n=Object.entries(t.add_me_methods||{}).filter(([,e])=>e).map(([n])=>e[n]||n);return 4===n.length?"全部允许":n.length?n.join("、"):"全部关闭"})(),route:"friend-discovery-settings"})}),t?(0,vt.jsxs)("section",{children:[(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"显示消息已读状态"}),(0,vt.jsx)("small",{children:o("read_receipts")?"该项由企业统一设置,不可修改":"关闭后你也无法查看对方的已读状态"})]}),(0,vt.jsx)(nc,{checked:!!t.read_receipts,disabled:o("read_receipts"),onChange:e=>i("read_receipts",e)})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"展示最后在线时间"}),(0,vt.jsx)("small",{children:o("last_seen_visibility")?"该项由企业统一设置,不可修改":"仅向联系人显示"})]}),(0,vt.jsx)(nc,{checked:"nobody"!==t.last_seen_visibility,disabled:o("last_seen_visibility"),onChange:e=>i("last_seen_visibility",e?"friends":"nobody")})]}),(0,vt.jsxs)("div",{children:[(0,vt.jsxs)("span",{children:[(0,vt.jsx)("strong",{children:"允许好友查看我的资料"}),(0,vt.jsx)("small",{children:o("profile_visibility")?"该项由企业统一设置,不可修改":"关闭后仅你自己可见"})]}),(0,vt.jsx)(nc,{checked:"nobody"!==t.profile_visibility,disabled:o("profile_visibility"),onChange:e=>i("profile_visibility",e?"friends":"nobody")})]})]}):null]})]})}function kc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("me-privacy")||null);n().useEffect(()=>{(0,zt.BT)().then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(()=>{})},[]);const i=!(!t||!t.editable||!1!==t.editable.add_me_methods);return(0,vt.jsxs)("div",{className:"personal-page",children:[(0,vt.jsx)(Ql,{title:"添加我的方式",back:"privacy-settings"}),(0,vt.jsxs)("main",{className:"privacy-list",children:[(0,vt.jsx)("p",{className:"privacy-note",children:i?"添加方式由企业统一设置,不可修改。":"关闭某种方式后,其他人将无法通过该渠道搜索或添加你。"}),t?(0,vt.jsx)("section",{children:[{key:"account",title:"账号"},{key:"phone",title:"手机号"},{key:"qr",title:"二维码"},{key:"group",title:"群聊"}].map(n=>(0,vt.jsxs)("div",{children:[(0,vt.jsx)("span",{children:(0,vt.jsxs)("strong",{children:["可通过",n.title,"添加我"]})}),(0,vt.jsx)(nc,{checked:!!(t.add_me_methods||{})[n.key],disabled:i,onChange:i=>((n,i)=>{const o=t,a={...t.add_me_methods||{},[n]:i};s({...t,add_me_methods:a}),(0,zt.Wj)({add_me_methods:a,version:t.version}).then(e=>{(0,It.Ug)("me-privacy",e),s(e)}).catch(n=>{e(n.message||"保存失败"),s(o),(0,It.Ug)("me-privacy",o)})})(n.key,i)})]},n.key))}):null]})]})}const Cc=[`为呵护未成年人健康成长,${Ct.iv}推出青少年模式。该模式下部分功能将受限制使用`,"每天开启后使用时长不超过 40 分钟","限制加好友/群聊次数(主动/被动加好友或群聊每日最多各 4 次)"],zc="im-youth-mode-usage";function _c(e){const n=Math.floor(e/3600),t=Math.floor(e%3600/60),s=e%60,i=e=>String(e).padStart(2,"0");return`${i(n)}:${i(t)}:${i(s)}`}function Sc({onToast:e}){const[t,s]=n().useState(()=>(0,It.ze)("youth-mode")||null),i=function(e){const[t,s]=n().useState(0);return n().useEffect(()=>{const n=(new Date).toISOString().slice(0,10);let t={};try{t=JSON.parse(window.localStorage.getItem(zc)||"{}")}catch(e){}if(t.date!==n&&(t={date:n,seconds:0}),s(t.seconds||0),!e)return;const i=window.setInterval(()=>{s(e=>{const t=e+1;return window.localStorage.setItem(zc,JSON.stringify({date:n,seconds:t})),t})},1e3);return()=>window.clearInterval(i)},[e]),t}(t&&t.enabled);return n().useEffect(()=>{s((0,It.ze)("youth-mode")||null),(0,zt.K2)().then(e=>{(0,It.Ug)("youth-mode",e),s(e)}).catch(n=>e(n.message||"加载失败"))},[]),t?(0,vt.jsxs)("div",{className:"personal-page youth-mode-page",children:[(0,vt.jsx)(Ql,{title:"青少年模式",back:"android-settings"}),(0,vt.jsxs)("main",{children:[(0,vt.jsx)(Zl,{children:t.enabled?"verified_user":"child_care"}),(0,vt.jsx)("h2",{children:t.enabled?"青少年模式已开启":"青少年模式未开启"}),(0,vt.jsx)("ul",{children:Cc.map(e=>(0,vt.jsx)("li",{children:e},e))}),t.enabled?(0,vt.jsxs)("p",{className:"youth-usage",children:["今日已使用:",_c(i)]}):null]}),(0,vt.jsxs)("footer",{children:[(0,vt.jsx)("button",{type:"button",className:t.enabled?"outline":"",onClick:()=>t.enabled?Jl("youth-mode-verify",{ym:"disable"}):(()=>{if(t)return t.password_set?void Jl("youth-mode-verify",{ym:"enable"}):(e("请先设置独立密码"),void window.setTimeout(()=>Gl("identity-check",{ym:"enable"}),400))})(),children:t.enabled?"关闭青少年模式":"开启青少年模式"}),(0,vt.jsx)("small",{children:"可在设置中查看青少年模式状态"})]})]}):(0,vt.jsx)("div",{className:"personal-page youth-mode-page",children:(0,vt.jsx)(Ql,{title:"青少年模式",back:"android-settings"})})}function Nc({hashParams:e,onToast:t}){const s=e&&e.ym||"disable",[i,o]=n().useState(null),[a,r]=n().useState(""),[l,c]=n().useState(""),[d,h]=n().useState(!1),[u,g]=n().useState(0),[p,m]=n().useState(Date.now()),f=u?Math.max(0,Math.ceil((u-p)/1e3)):0;return n().useEffect(()=>{if(f<=0)return;const e=window.setTimeout(()=>m(Date.now()),1e3);return()=>window.clearTimeout(e)},[f]),n().useEffect(()=>{(0,zt.K2)().then(o).catch(()=>{})},[]),(0,vt.jsxs)("div",{className:"personal-page youth-mode-page",children:[(0,vt.jsx)(Ql,{title:"enable"===s?"开启青少年模式":"关闭青少年模式",back:"enable"===s?"youth-mode-off":"youth-mode-on"}),(0,vt.jsxs)("main",{className:"youth-password-gate",children:[(0,vt.jsxs)("div",{className:"auth-pin-wrap",children:[(0,vt.jsx)("div",{className:"auth-pin-boxes","aria-hidden":"true",children:[0,1,2,3].map(e=>(0,vt.jsx)("span",{children:a[e]?"●":""},e))}),(0,vt.jsx)("input",{className:"auth-pin-input",type:"text",inputMode:"numeric",autoComplete:"off",autoFocus:!0,value:a,onChange:e=>r(e.target.value.replace(/\D/g,"").slice(0,4)),"aria-label":"独立密码"})]}),l?(0,vt.jsx)("div",{className:"auth-field-error",children:l}):null,(0,vt.jsx)("button",{type:"button",className:"auth-primary",disabled:4!==a.length||d||f>0,onClick:()=>{if(4!==a.length)return void c("请输入4位独立密码");if(f>0)return;h(!0),c("");const e="enable"===s?"enable_youth_mode":"close_youth_mode";(0,zt.Jh)(a,"youth_mode",e).then(({action_token:e})=>"enable"===s?(0,zt.YU)(i.policy_version,e):(0,zt.ZY)(e)).then(e=>{i&&(0,It.Ug)("youth-mode",{...i,enabled:"enable"===s}),t("enable"===s?"青少年模式已开启":"青少年模式已关闭"),window.setTimeout(()=>Jl("enable"===s?"youth-mode-on":"youth-mode-off"),400)}).catch(e=>{"TOO_MANY_ATTEMPTS"===e.reason&&e.details&&e.details.retry_after_seconds&&(g(Date.now()+1e3*e.details.retry_after_seconds),m(Date.now())),c(e.message||"验证失败")}).finally(()=>h(!1))},children:d?"验证中…":f>0?`请 ${f} 秒后重试`:"确定"}),(0,vt.jsx)("button",{type:"button",className:"auth-text-button",onClick:()=>Gl("identity-check",{ym:s}),children:"忘记独立密码?"})]})]})}const Tc={notification:{icon:"notifications_active",title:"获取推送权限",text:"向您及时送达重要通知、活动提醒、个性化内容更新等信息。",action:"开启通知",route:"permission-settings-reminder"},reminder:{icon:"settings",title:"消息推送暂未开启",text:"前往【设置 - 通知管理】一键开启吧!",action:"好的",secondaryAction:"暂不开启",route:"android-settings"},camera:{icon:"photo_camera",title:"相机权限使用说明",text:"调用相机拍摄/扫码,为您提供拍照、扫码识别等服务。",action:"继续授权",route:"messages-home"},microphone:{icon:"mic",title:"麦克风权限使用说明",text:"用于语音消息、语音输入和音视频通话,未授权时不会创建录音文件。",action:"继续授权",route:"messages-home"}};function Bc({type:e,onToast:n}){const t=Tc[e];return(0,vt.jsxs)("div",{className:"personal-page permission-guide-page",children:[(0,vt.jsx)("div",{className:"permission-preview",children:(0,vt.jsxs)("header",{children:[(0,vt.jsx)("h1",{children:"消息"}),(0,vt.jsx)(Zl,{children:"menu"})]})}),(0,vt.jsx)("div",{className:"permission-overlay",children:(0,vt.jsxs)("section",{role:"dialog","aria-modal":"true",children:[(0,vt.jsx)("span",{children:(0,vt.jsx)(Zl,{children:t.icon})}),(0,vt.jsx)("h2",{children:t.title}),(0,vt.jsx)("p",{children:t.text}),(0,vt.jsx)("button",{type:"button",onClick:()=>{"notification"===e&&"Notification"in window?Notification.requestPermission().then(()=>Gl(t.route)):(n("reminder"===e?"请前往系统设置开启通知":"等待系统授权结果"),window.setTimeout(()=>Gl(t.route),500))},children:t.action}),t.secondaryAction?(0,vt.jsx)("button",{type:"button",onClick:()=>Gl("messages-home"),children:t.secondaryAction}):null]})})]})}function Pc({view:e,hashParams:t,myUserId:s,tinode:i,chatList:o,onUpdatePassword:a,onDeleteAccount:r,onLogout:l}){const[c,d]=n().useState("");let h;return h="personal-center"===e?(0,vt.jsx)(oc,{}):"personal-profile"===e?(0,vt.jsx)(ac,{onToast:d,tinode:i}):"profile-nickname"===e?(0,vt.jsx)(lc,{field:"nickname",title:"设置昵称",onToast:d}):"profile-signature"===e?(0,vt.jsx)(lc,{field:"signature",title:"个性签名",multiline:!0,onToast:d}):"profile-birth-date"===e?(0,vt.jsx)(cc,{onToast:d}):"profile-gender"===e?(0,vt.jsx)(hc,{onToast:d}):"profile-region"===e?(0,vt.jsx)(uc,{onToast:d}):"personal-qrcode"===e?(0,vt.jsx)(gc,{onToast:d}):"android-settings"===e?(0,vt.jsx)(pc,{onToast:d,onLogout:l,tinode:i,chatList:o,onDeleteAccount:r}):"change-password"===e?(0,vt.jsx)(bc,{onToast:d,onUpdatePassword:a}):"app-version"===e?(0,vt.jsx)(wc,{onToast:d}):"privacy-settings"===e?(0,vt.jsx)(vc,{onToast:d}):"friend-discovery-settings"===e?(0,vt.jsx)(kc,{onToast:d}):"youth-mode-off"===e||"youth-mode-on"===e?(0,vt.jsx)(Sc,{onToast:d}):"youth-mode-verify"===e?(0,vt.jsx)(Nc,{hashParams:t,onToast:d}):(0,vt.jsx)(Bc,{type:"notification-permission"===e?"notification":"permission-settings-reminder"===e?"reminder":"camera-permission-info"===e?"camera":"microphone",onToast:d}),(0,vt.jsxs)(vt.Fragment,{children:[h,(0,vt.jsx)(ec,{message:c,onDone:()=>d("")})]})}var qc=a(781);const Mc=(0,s.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:"Archived contacts ({count})",description:"Label for archived chats"}});class Ac extends n().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.state=Ac.deriveStateFromProps(e)}static deriveStateFromProps(e){const n=[];let t=0,s=0;const i=e.tinode.getMeTopic();return e.chatList.forEach(o=>{const a=o.acs&&!o.acs.isJoiner();o.pinned=i.pinnedTopicRank(o.topic),a&&e.blocked&&n.push(o),a||e.blocked||(o.private&&o.private.arch?e.archive?n.push(o):s++:e.archive||(n.push(o),t+=o.unread>0?1:0))}),n.sort((e,n)=>{const t=n.pinned-e.pinned;return 0!=t?t:(n.touched||0)-(e.touched||0)}),s>0&&n.push({action:"archive",title:Mc.archived_contacts_title,values:{count:s}}),{contactList:n,unreadThreads:t}}componentDidUpdate(e,n){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive||e.blocked!=this.props.blocked){const e=Ac.deriveStateFromProps(this.props);this.setState(e),e.unreadThreads!=n.unreadThreads&&(0,Et.OM)(e.unreadThreads)}}handleAction(e){this.props.onShowArchive()}render(){return(0,vt.jsx)(s.FormattedMessage,{id:"contacts_not_found",defaultMessage:"You have no chats\\n¯∖_(ツ)_/¯",description:"HTML message shown in ContactList when no contacts are found",children:e=>(0,vt.jsx)(qt.A,{tinode:this.props.tinode,connected:this.props.connected,contacts:this.state.contactList,emptyListMessage:e,topicSelected:this.props.topicSelected,myUserId:this.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,onAction:this.handleAction})})}}class Ec extends n().PureComponent{constructor(e){super(e),this.state={colorSchema:e.colorSchema||"auto",textSize:10*e.textSize||"100",sendOnEnter:e.sendOnEnter||"plain"},this.isMac=(navigator.userAgentData&&navigator.userAgentData.platform||navigator.platform).toLowerCase().startsWith("mac"),this.handleColorSchemaSelected=this.handleColorSchemaSelected.bind(this),this.handleTextSizeChanged=this.handleTextSizeChanged.bind(this),this.handleSendOnEnterSelected=this.handleSendOnEnterSelected.bind(this)}handleColorSchemaSelected(e){this.setState({colorSchema:e.currentTarget.value}),this.props.onChangeColorSchema(e.currentTarget.value)}handleTextSizeChanged(e){this.setState({textSize:e.currentTarget.value}),this.props.onTextSizeChanged(e.currentTarget.value/10|0)}handleSendOnEnterSelected(e){this.setState({sendOnEnter:e.currentTarget.value}),this.props.onSendOnEnterChanged(e.currentTarget.value)}render(){return(0,vt.jsxs)("div",{id:"settings-form",className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_color_schema",defaultMessage:"Theme:",description:"Label for selecting color scheme (dark, light) in Settings"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("ul",{className:"quoted",children:[(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"system",name:"color-scheme-select",value:"auto",checked:"auto"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"system",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_system",defaultMessage:"System default",description:"Name of the color schema"})," ",(0,vt.jsx)("img",{src:"img/routine.svg",style:{verticalAlign:"top",width:"1.6rem",height:"1.6rem"}})]})]},"system"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"light",name:"color-scheme-select",value:"light",checked:"light"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"light",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_light",defaultMessage:"Light",description:"Name of the color schema"})," ",(0,vt.jsx)("i",{className:"material-icons orange large",children:"light_mode"})]})]},"light"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"dark",name:"color-scheme-select",value:"dark",checked:"dark"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",(0,vt.jsxs)("label",{htmlFor:"dark",children:[(0,vt.jsx)(s.FormattedMessage,{id:"color_schema_dark",defaultMessage:"Dark",description:"Name of the color schema"})," ",(0,vt.jsx)("i",{className:"material-icons blue large",children:"dark_mode"})]})]},"dark")]})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsx)("div",{className:"panel-form-row clean-clickable",children:(0,vt.jsxs)("a",{onClick:this.props.onSelectWallpapers,className:"flat-button",children:[(0,vt.jsx)("i",{className:"material-icons",children:"wallpaper"})," ",(0,vt.jsx)(s.FormattedMessage,{id:"wallpapers",defaultMessage:"Wallpapers",description:"Link or title for working with wallpapers."})]})}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_text_size",defaultMessage:"Text size:",description:"Label adjusting text size"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("input",{type:"range",id:"text_size",name:"text_size",min:"80",max:"120",step:"10",list:"text_size_options",value:this.state.textSize,onChange:this.handleTextSizeChanged})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("datalist",{id:"text_size_options",children:[(0,vt.jsx)("option",{value:"80",label:"80%"}),(0,vt.jsx)("option",{value:"90",label:"90%"}),(0,vt.jsx)("option",{value:"100",label:"100%"}),(0,vt.jsx)("option",{value:"110",label:"110%"}),(0,vt.jsx)("option",{value:"120",label:"120%"})]})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_keyboard",defaultMessage:"Keyboard:",description:"Label for send on enter settings"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsxs)("ul",{className:"quoted",children:[(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"plain",name:"send-select",value:"plain",checked:"plain"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",(0,vt.jsxs)("label",{htmlFor:"send_plain",children:[(0,vt.jsx)(s.FormattedMessage,{id:"send_plain",defaultMessage:"Send on Enter",description:"Config option to send message on hitting Enter"})," "]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("span",{className:"small gray",children:(0,vt.jsx)(s.FormattedMessage,{id:"send_plain_explained",defaultMessage:"Press Shift + Enter for new line",description:"Explanation how to enter newline when [Send on Enter] is enabled"})})})]},"plain"),(0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:"command",name:"send-select",value:"command",checked:"command"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",(0,vt.jsxs)("label",{htmlFor:"send_command",children:[(0,vt.jsx)(s.FormattedMessage,{id:"send_command",defaultMessage:"Send on {key}",values:{key:this.isMac?"⌘ + Enter":"Ctrl + Enter"},description:"Config option to send message on hitting CTRL(or Cmd)-Enter"})," "]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("span",{className:"small gray",children:(0,vt.jsx)(s.FormattedMessage,{id:"send_command_explained",defaultMessage:"Press Enter for new line",description:"Explanation how to enter newline when [Send on CTRL-Enter] is enabled"})})})]},"command")]})})]})}}var Ic=a(3207);class Dc extends n().PureComponent{constructor(e){super(e),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handleCheckboxClick(e,n){"sound"==e?this.props.onToggleMessageSounds(n):"alert"==e&&this.props.onTogglePushNotifications(n)}render(){return(0,vt.jsxs)("div",{className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{htmlFor:"message-sound",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_message_sound",defaultMessage:"Message sound:",description:"Label for message sounds toggle"})}),(0,vt.jsx)(Ic.A,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{htmlFor:"desktop-alerts",children:this.props.desktopAlertsEnabled?(0,vt.jsx)(s.FormattedMessage,{id:"label_push_notifications",defaultMessage:"Notification alerts:",description:"Label for push notifications switch"}):(0,vt.jsx)(s.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:"Notification alerts (requires HTTPS):",description:"Label for push notifications switch"})}),(0,vt.jsx)(Ic.A,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})]})]})}}function Uc({href:e,icon:n,children:t}){return e?(0,vt.jsxs)("a",{href:e,className:"flat-button",target:"_blank",children:[(0,vt.jsx)("i",{className:"material-icons",children:n})," ",t]}):(0,vt.jsxs)("span",{className:"flat-button",children:[(0,vt.jsx)("i",{className:"material-icons",children:n})," ",t]})}class Rc extends n().PureComponent{render(){return(0,vt.jsxs)("div",{className:"scrollable-panel",children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)(Uc,{href:null,icon:"email",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_contact_us",defaultMessage:"Contact Us",description:"Ancor text for contacting us by email"})}),(0,vt.jsx)(Uc,{href:null,icon:"description",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_terms_of_service",defaultMessage:"Terms of Service",description:"Ancor text for terms of service link"})}),(0,vt.jsx)(Uc,{href:null,icon:"policy",children:(0,vt.jsx)(s.FormattedMessage,{id:"link_privacy_policy",defaultMessage:"Privacy Policy",description:"Ancor text for privacy policy link"})})]}),(0,vt.jsx)("div",{className:"hr"}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_client",defaultMessage:"Client:",description:"Label for a client version"})}),Ct.C3]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server",defaultMessage:"Server:",description:"Label for a server version"})}),this.props.serverVersion]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server_address",defaultMessage:"Server address:"})}),this.props.serverAddress]})]})]})}}const Lc=(0,s.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:"Invalid ID",description:"Error message"}});class Oc extends n().PureComponent{constructor(e){super(e),this.qrCodeRef=n().createRef(),this.state={groupId:""},this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){new(Ai())(this.qrCodeRef.current,{text:this.props.myURI,width:128,height:128})}handleChange(e){this.setState({groupId:e.target.value})}handleKeyPress(e){"Enter"===e.key&&this.handleSubmit(e)}handleSubmit(e){if(e.preventDefault(),this.state.groupId){const e=this.state.groupId.trim(),n=e.substring(0,3);e.length>3&&["usr","grp","chn"].includes(n)?this.props.onSubmit(e):this.props.onError(this.props.intl.formatMessage(Lc.invalid_id),"err")}}render(){return(0,vt.jsxs)("div",{className:"panel-form",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:"Group or User ID",description:"Prompt for entering user or group ID",children:e=>(0,vt.jsx)("input",{type:"text",placeholder:e,value:this.state.groupId,onChange:this.handleChange,onKeyDown:this.handleKeyPress,required:!0,autoFocus:!0})})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_subscribe",defaultMessage:"Subscribe",description:"Button [Subscribe]"})})}),(0,vt.jsx)("br",{}),(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_scan_id",defaultMessage:"Scan my ID:",description:"Label [Scan my ID:]"})}),(0,vt.jsx)("div",{className:"qr-code",ref:this.qrCodeRef})]})]})}}var Fc=(0,s.injectIntl)(Oc),$c=a(995),Vc=a(3889),Hc=a(1192);class Wc extends n().PureComponent{constructor(e){super(e),this.fullName=n().createRef(),this.state={fullName:"",private:"",description:"",imageUrl:null,tags:[],isChannel:!1,newAvatar:null,newAvatarMime:null},this.handleFieldEdit=this.handleFieldEdit.bind(this),this.handleImageChanged=this.handleImageChanged.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handleTagsChanged=this.handleTagsChanged.bind(this),this.handleChannelToggle=this.handleChannelToggle.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){}handleFieldEdit(e,n){this.setState({[e]:n.target.value||""})}handleImageChanged(e,n){this.setState({newAvatar:n,newAvatarMime:e})}handleAvatarCropped(e,n,t,s){const i=n?URL.createObjectURL(n):null;this.setState({imageUrl:i,newAvatar:null,newAvatarMime:null}),n&&this.uploadAvatar(e,n,t,s)}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}uploadAvatar(e,n,t,s){const i=e=>{let{mime:n,blob:t}=e;t.size>4096?(0,zt.Lf)(this.props.tinode).upload(t).then(e=>this.setState({imageUrl:e})).catch(e=>this.props.onError(e.message,"err")):(0,Lt.Sk)(t).then(e=>this.setState({imageUrl:(0,Lt.to)({data:e.bits,type:n})}))};t>384||s>384||t!=s?(0,Lt.ag)(n,384,384,Ct.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:n,width:t,height:s})}handleTagsChanged(e){this.setState({tags:e})}handleChannelToggle(){this.setState({isChannel:!this.state.isChannel})}handleSubmit(e){e.preventDefault();const n=(0,Ot.W5)(this.state.fullName.trim(),60),t=(0,Ot.W5)(this.state.private.trim(),60),s=(0,Ot.W5)(this.state.description.trim(),360);n&&this.props.onSubmit(n,s,this.state.imageUrl,t,this.state.tags,this.state.isChannel)}render(){if(this.state.newAvatar)return(0,vt.jsx)($c.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});let e="primary";return this.props.disabled&&(e+=" disabled"),(0,vt.jsxs)("form",{className:"panel-form",onSubmit:this.handleSubmit,children:[(0,vt.jsxs)("div",{className:"panel-form-column",children:[(0,vt.jsx)("center",{children:(0,vt.jsx)(Vc.A,{tinode:this.props.tinode,avatar:this.state.imageUrl,onError:this.props.onError,onImageUpdated:this.handleImageChanged})}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-fn",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name",description:"Label for editing topic name"})}),(0,vt.jsx)(s.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group",description:"Prompt for entering topic name",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-fn",placeholder:e,ref:this.fullName,value:this.state.fullName,onChange:this.handleFieldEdit.bind(this,"fullName"),autoFocus:!0,required:!0,tabIndex:0})})]}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-priv",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_private",defaultMessage:"Private comment",description:"Label for editing 'private'"})}),(0,vt.jsx)(s.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only",description:"Placeholder for editing 'private'",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-priv",placeholder:e,value:this.state.private,onChange:this.handleFieldEdit.bind(this,"private"),tabIndex:1})})]}),(0,vt.jsxs)("div",{className:"group",children:[(0,vt.jsx)("label",{className:"small",htmlFor:"new-topic-desc",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_description",defaultMessage:"Description",description:"Label for description of user or topic"})}),(0,vt.jsx)(s.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:"Description (optional)",description:"Placeholder for editing topic description",children:e=>(0,vt.jsx)("input",{type:"text",id:"new-topic-desc",placeholder:e,value:this.state.description,onChange:this.handleFieldEdit.bind(this,"description"),tabIndex:2})})]})]}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)(Ic.A,{checked:this.state.isChannel,tabIndex:3,onChange:this.handleChannelToggle})," ",(0,vt.jsx)("label",{onClick:this.handleChannelToggle,children:(0,vt.jsx)(s.FormattedMessage,{id:"channel_prompt",defaultMessage:"This is a channel",description:"Checkbox label when creating a channel"})})]}),(0,vt.jsx)(s.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (search & discovery)",description:"Section title for TagManager",children:e=>(0,vt.jsx)(Hc.A,{tinode:this.props.tinode,tags:this.state.tags,activated:!0,onTagsChanged:this.handleTagsChanged,tabIndex:4,title:e})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{className:e,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_create",defaultMessage:"Create",description:"Button [Create]"})})})]})}}const Kc=(0,s.defineMessages)({search_for_contacts:{id:"search_for_contacts",defaultMessage:"Use search to find contacts",description:"Text shown in contacts view when user entered no search query."},search_no_results:{id:"search_no_results",defaultMessage:"Search returned no results",description:"Text shown in contacts view when query returned no results."},search_placeholder:{id:"search_placeholder",defaultMessage:"List like alice@example.com, +17025550003...",description:"Placeholder in contacts search field"}});class Xc extends n().Component{constructor(e){super(e);const n=is.A.parseUrl(is.A.currentUrl()).params,t=n.tab||"find",s="find"==t&&n.q||null;this.state={tabSelected:t,searchQuery:s},this.handleTabClick=this.handleTabClick.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleSearchResultSelected=this.handleSearchResultSelected.bind(this),this.handleNewGroupSubmit=this.handleNewGroupSubmit.bind(this),this.handleGroupByID=this.handleGroupByID.bind(this)}componentDidMount(){this.props.onInitFind()}handleTabClick(e){e.preventDefault(),is.A.navigateReplace(is.A.addUrlParam(is.A.currentUrl(),"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}handleSearchContacts(e){if(e=e.trim()||wt.Tinode.DEL_CHAR,!/[\s,:]/.test(e)&&e!=wt.Tinode.DEL_CHAR){const n=(0,Et.xH)(e);if(n)e=`${wt.Tinode.TAG_EMAIL}${n}`;else{const n=(0,Et.Jt)(e);n?e=`${wt.Tinode.TAG_PHONE}${n}`:("@"==e[0]&&(e=e.substring(1)),e=`${wt.Tinode.TAG_ALIAS}${e},${e}`)}}this.props.onSearchContacts(e),this.setState({searchQuery:wt.Tinode.isNullValue(e)?null:e})}handleSearchResultSelected(e){"find"==this.state.tabSelected&&(is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(e))}handleNewGroupSubmit(e,n,t,s,i,o){is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(void 0,{public:(0,Et.k6)(e,t,null,n),private:s,tags:i},o)}handleGroupByID(e){is.A.navigateTo(is.A.removeUrlParams(is.A.currentUrl(),["tab","q"])),this.props.onCreateTopic(e)}render(){const{formatMessage:e}=this.props.intl,n=e(this.state.searchQuery?Kc.search_no_results:Kc.search_for_contacts),t=e(Kc.search_placeholder);return(0,vt.jsxs)("div",{className:"flex-column",children:[(0,vt.jsxs)("ul",{className:"tabbar",children:[(0,vt.jsx)("li",{className:"find"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"find",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:"find",description:"Tab title Find"})})}),(0,vt.jsx)("li",{className:"grp"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"grp",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:"new group",description:"Tab title New Group"})})}),(0,vt.jsx)("li",{className:"byid"===this.state.tabSelected?"active":null,children:(0,vt.jsx)("a",{href:"#","data-id":"byid",onClick:this.handleTabClick,children:(0,vt.jsx)(s.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:"by id",description:"Tab title Find topic by ID"})})})]}),"grp"===this.state.tabSelected?(0,vt.jsx)(Wc,{tinode:this.props.tinode,onSubmit:this.handleNewGroupSubmit,onError:this.props.onError}):"byid"===this.state.tabSelected?(0,vt.jsx)(Fc,{myURI:wt.Tinode.URI_TOPIC_ID_PREFIX+this.props.tinode.getCurrentUserID(),onSubmit:this.handleGroupByID,onError:this.props.onError}):(0,vt.jsxs)("div",{className:"flex-column",children:[(0,vt.jsx)(Mt,{placeholder:t,initialQuery:this.state.searchQuery||"",onSearchContacts:this.handleSearchContacts}),(0,vt.jsx)(qt.A,{tinode:this.props.tinode,contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:n,showSelfTopic:!this.state.searchQuery,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleSearchResultSelected})]})]})}}var Gc=(0,s.injectIntl)(Xc);class Jc extends n().PureComponent{constructor(e){super(e),this.state={hostName:e.serverAddress,changed:!1},this.handleHostNameChange=this.handleHostNameChange.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}handleHostNameChange(e){this.setState({hostName:e.target.value,changed:!0})}handleEditingFinished(){this.state.changed&&(this.setState({changed:!1}),this.props.onServerAddressChange(this.state.hostName.trim()))}handleKeyDown(e){"Enter"==e.key&&this.handleEditingFinished()}render(){const e=[];for(let n in Ct.SE){let t=Ct.SE[n];e.push((0,vt.jsx)("option",{value:t},t))}return(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)("input",{type:"search",id:"host-name",placeholder:this.props.hostName,list:"known-hosts",className:"quoted",value:this.state.hostName,onChange:this.handleHostNameChange,onBlur:this.handleEditingFinished,onKeyDown:this.handleKeyDown,required:!0}),(0,vt.jsx)("datalist",{id:"known-hosts",children:e})]})}}class Yc extends n().PureComponent{constructor(e){super(e),this.state={transport:e.transport||"def",serverAddress:e.serverAddress,secureConnection:e.secureConnection},this.handleSubmit=this.handleSubmit.bind(this),this.handleTransportSelected=this.handleTransportSelected.bind(this),this.handleServerAddressChange=this.handleServerAddressChange.bind(this),this.handleToggleSecure=this.handleToggleSecure.bind(this)}handleSubmit(e){e.preventDefault(),this.props.onUpdate({transport:this.state.transport,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection})}handleTransportSelected(e){this.setState({transport:e.currentTarget.value})}handleServerAddressChange(e){this.setState({serverAddress:e})}handleToggleSecure(e){this.setState({secureConnection:!this.state.secureConnection})}render(){const e={def:"default",ws:"websocket",lp:"long polling"},n=[];return["def","ws","lp"].forEach(t=>{const s="transport-"+t,i=e[t];n.push((0,vt.jsxs)("li",{children:[(0,vt.jsx)("input",{type:"radio",id:s,name:"transport-select",value:t,checked:this.state.transport===t,onChange:this.handleTransportSelected}),(0,vt.jsx)("label",{htmlFor:s,children:i})]},t))}),(0,vt.jsxs)("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit,children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_server_to_use",defaultMessage:"Server to use:",description:"Label for server selector in SettingsView"})})}),(0,vt.jsx)(Jc,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),(0,vt.jsxs)("div",{className:"panel-form-row",children:[(0,vt.jsx)(Ic.A,{id:"secure-connection",name:"secure-connection",checked:this.state.secureConnection,className:"quoted",onChange:this.handleToggleSecure}),(0,vt.jsx)("label",{htmlFor:"secure-connection",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_use_secure_connection",defaultMessage:"Use secure connection",description:"Label for WS/WSS connection type in SettingsView"})})]}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small",children:(0,vt.jsx)(s.FormattedMessage,{id:"label_wire_transport",defaultMessage:"Wire transport:",description:"Label for wire transport selection in SettingsView"})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("ul",{className:"quoted",children:n})}),(0,vt.jsx)("div",{className:"dialog-buttons",children:(0,vt.jsx)("button",{type:"submit",className:"primary",children:(0,vt.jsx)(s.FormattedMessage,{id:"button_update",defaultMessage:"Update",description:"Button [Update]"})})})]})}}const Zc=(0,s.defineMessages)({phone:{id:"phone_dative",defaultMessage:"phone",description:"Dative case of 'phone', i.e. 'phone' in 'by phone'"},email:{id:"email_dative",defaultMessage:"email",description:"Dative case of 'email', i.e. 'email' in 'by email'"}});class Qc extends n().PureComponent{constructor(e){super(e),this.state={code:e.credCode||"",codeReceived:e.credCode},this.handleCodeChange=this.handleCodeChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,n){return e.credCode!=n.codeReceived?{code:e.credCode||"",codeReceived:e.credCode}:n}componentDidMount(){this.props.credCode&&this.props.onSubmit(this.props.credMethod,this.props.credCode,this.props.credToken)}componentDidUpdate(e,n){this.state.codeReceived&&this.state.code&&this.state.code!=n.code&&this.props.onSubmit(this.props.credMethod,this.state.code,this.props.credToken)}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleKeyPress(e){"Enter"===e.key?this.handleSubmit(e):"Escape"==e.key&&this.handleCancel(e)}handleSubmit(e){e.preventDefault(),this.state.code&&this.state.code.trim()&&this.props.onSubmit(this.props.credMethod,this.state.code.trim(),this.props.credToken)}handleCancel(e){e.preventDefault(),this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,n={email:e(Zc.email),tel:e(Zc.phone)}[this.props.credMethod]||this.props.credMethod;return(0,vt.jsxs)("div",{className:"panel-form",children:[(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)("label",{className:"small gray",htmlFor:"enter-confirmation-code",children:(0,vt.jsx)(s.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:"Confirmation code",description:"Request to enter confirmation code",values:{method:n}})})}),(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:"Numbers only",description:"Prompt for numeric conformation code",children:e=>(0,vt.jsx)("input",{type:"text",id:"enter-confirmation-code",placeholder:e,value:this.state.code,onChange:this.handleCodeChange,onKeyDown:this.handleKeyPress,required:!0})})}),(0,vt.jsxs)("div",{className:"dialog-buttons",children:[(0,vt.jsx)("button",{className:"secondary",onClick:this.handleCancel,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"})}),(0,vt.jsx)("button",{className:"primary",onClick:this.handleSubmit,children:(0,vt.jsx)(s.FormattedMessage,{id:"button_confirm",defaultMessage:"Confirm",description:"Button [Confirm]"})})]})]})}}var ed=(0,s.injectIntl)(Qc);const nd=n().lazy(e=>Promise.all([a.e(892),a.e(330),a.e(691)]).then(a.bind(a,5691))),td=n().lazy(e=>a.e(331).then(a.bind(a,6331))),sd=n().lazy(e=>a.e(686).then(a.bind(a,3686))),id=(0,s.defineMessages)({login:{id:"sidepanel_title_login",description:"Sidepanel title for LoginView.",defaultMessage:"Sign In"},register:{id:"sidepanel_title_register",description:"Sidepanel title for CreateAccountView.",defaultMessage:"Create Account"},settings:{id:"sidepanel_title_settings",description:"Sidepanel title for SettingsView.",defaultMessage:"Settings"},edit:{id:"sidepanel_title_account_settings",description:"Sidepanel title for AccountSettingsView.",defaultMessage:"Account Settings"},general:{id:"panel_title_general",description:"Title for TopicCommon.",defaultMessage:"General"},security:{id:"panel_title_security",description:"Title for TopicSecirity and AccSecurity.",defaultMessage:"Security"},crop:{id:"panel_title_crop",description:"Title for AvatarCropView.",defaultMessage:"Drag to Adjust"},notif:{id:"sidepanel_title_acc_notifications",description:"Sidepanel title for AccNotificationsView.",defaultMessage:"Notifications"},acc_general:{id:"sidepanel_title_acc_general",description:"Sidepanel title for AccGeneralView.",defaultMessage:"General"},support:{id:"sidepanel_title_acc_support",description:"Sidepanel title for AccSupportView.",defaultMessage:"Support"},newtpk:{id:"sidepanel_title_newtpk",description:"Sidepanel title for NewTopicView.",defaultMessage:"Start New Chat"},cred:{id:"sidepanel_title_cred",description:"Sidepanel title for ValidationView.",defaultMessage:"Confirm Credentials"},reset:{id:"sidepanel_title_reset",description:"Sidepanel title for PasswordResetView.",defaultMessage:"Reset Password"},archive:{id:"sidepanel_title_archive",description:"Sidepanel title for ContactsView-Archive.",defaultMessage:"Archived Chats"},blocked:{id:"sidepanel_title_blocked",description:"Sidepanel title for ContactsView-Blocked.",defaultMessage:"Blocked Chats"},wallpapers:{id:"wallpapers",description:"Link or title for working with wallpapers.",defaultMessage:"Wallpapers"}});class od extends n().PureComponent{constructor(e){super(e),this.handleNewTopic=this.handleNewTopic.bind(this)}handleNewTopic(){this.props.onNavigate("newtpk")}render(){const{formatMessage:n}=this.props.intl,t=this.props.state||(this.props.myUserId?"messages-home":"tenant");if(["tenant","login","enterprise-register","enterprise-feedback","register","reset","identity-check","realname","realname-verified","realname-reminder","independent-password"].includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"auth-onboarding-panel",children:(0,vt.jsx)(Ps,{view:t,hashParams:this.props.hashParams,authenticated:!!this.props.myUserId,login:this.props.login,loginDisabled:this.props.loginDisabled,persist:this.props.persist,errorText:this.props.errorText,errorLevel:this.props.errorLevel,onLoginRequest:this.props.onLoginRequest,onPersistenceChange:this.props.onPersistenceChange,onCreateAccount:this.props.onCreateAccount,onImRegisterRequest:this.props.onImRegisterRequest,onTenantResolved:this.props.onTenantResolved,onError:this.props.onError})});if(["messages-home","messages-offline","messages-menu","message-actions","system-messages"].includes(t)){const e=!this.props.myUserId||"messages-home"!==t;return(0,vt.jsxs)("div",{id:"sidepanel",className:"message-center-panel"+(e?" full-page":""),children:[(0,vt.jsx)(Ks,{view:t,connected:this.props.connected,chatList:this.props.chatList,myUserId:this.props.myUserId,onTopicSelected:this.props.onTopicSelected,onOpenScanner:this.props.onOpenScanner},t),(0,vt.jsx)(Jt.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError})]})}if(["chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card"].includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"direct-message-panel",children:(0,vt.jsx)(di,{view:t},t)});if(ui.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"message-composer-panel",children:(0,vt.jsx)(qi,{view:t},t)});if($o.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"contact-management-panel",children:(0,vt.jsx)(ha,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected,onCreateTopic:this.props.onCreateTopic,onOpenScanner:this.props.onOpenScanner},t)});if(pa.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"group-management-panel",children:(0,vt.jsx)(nr,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected},t)});if(ar.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"content-library-panel",children:(0,vt.jsx)(Rr,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected,chatList:this.props.chatList},t)});if(Or.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"call-experience-panel",children:(0,vt.jsx)(sl,{view:t},t)});if(al.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"workplace-collaboration-panel",children:(0,vt.jsx)(Xl,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,onTopicSelected:this.props.onTopicSelected},t)});if(Yl.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"personal-settings-panel",children:(0,vt.jsx)(Pc,{view:t,hashParams:this.props.hashParams,myUserId:this.props.myUserId,tinode:this.props.tinode,chatList:this.props.chatList,onUpdatePassword:this.props.onUpdatePassword,onDeleteAccount:this.props.onDeleteAccount,onLogout:this.props.onLogout},t)});if(qc.oq.includes(t))return(0,vt.jsx)("div",{id:"sidepanel",className:"security-support-panel",children:(0,vt.jsx)(qc.Ay,{view:t,hashParams:this.props.hashParams,tinode:this.props.tinode},t)});let i,o,a,r;return"contacts"==t?(i=this.props.title,o=!this.props.avatar||this.props.avatar,a=this.props.trustedBadges):(i=n(id[t]),o=!1,a=null),-1==["login","contacts"].indexOf(t)&&(r=this.props.onCancel),(0,vt.jsxs)("div",{id:"sidepanel",children:[(0,vt.jsx)(ts,{state:t,title:i,avatar:o,tinode:this.props.tinode,trustedBadges:a,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.handleNewTopic,onCancel:r}),(0,vt.jsx)(Jt.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),(0,vt.jsx)(Yt.A,{show:this.props.loadSpinnerVisible}),"settings"===t?(0,vt.jsx)(Yc,{transport:this.props.transport,serverAddress:this.props.serverAddress,secureConnection:this.props.secureConnection,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(nd,{tinode:this.props.tinode,myUserId:this.props.myUserId,trustedBadges:this.props.trustedBadges,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onNavigate:this.props.onNavigate,onCredAdd:this.props.onCredAdd,onCredDelete:this.props.onCredDelete,onCredConfirm:this.props.onCredConfirm,onError:this.props.onError})}):"general"===t||"crop"===t?(0,vt.jsx)(ss.A,{topic:"me",tinode:this.props.tinode,myUserId:this.props.myUserId,reqCredMethod:this.props.reqCredMethod,onUpdateTopicDesc:this.props.onUpdateAccountDesc,onUpdateTagsRequest:this.props.onUpdateAccountTags,onError:this.props.onError}):"acc_general"===t?(0,vt.jsx)(Ec,{colorSchema:this.props.colorSchema,onSelectWallpapers:this.props.onSelectWallpapers,textSize:this.props.textSize,sendOnEnter:this.props.sendOnEnter,onChangeColorSchema:this.props.onChangeColorSchema,onTextSizeChanged:this.props.onTextSizeChanged,onSendOnEnterChanged:this.props.onSendOnEnterChanged}):"notif"===t?(0,vt.jsx)(Dc,{messageSounds:this.props.messageSounds,desktopAlerts:this.props.desktopAlerts,desktopAlertsEnabled:this.props.desktopAlertsEnabled,onTogglePushNotifications:this.props.onTogglePushNotifications,onToggleMessageSounds:this.props.onToggleMessageSounds}):"security"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(td,{tinode:this.props.tinode,incognitoMode:this.props.incognitoMode,onNavigate:this.props.onNavigate,onUpdateAccountDesc:this.props.onUpdateAccountDesc,onUpdatePassword:this.props.onUpdatePassword,onLogout:this.props.onLogout,onDeleteAccount:this.props.onDeleteAccount,onShowAlert:this.props.onShowAlert,onShowBlocked:this.props.onShowBlocked,onToggleIncognitoMode:this.props.onToggleIncognitoMode})}):"support"===t?(0,vt.jsx)(Rc,{serverAddress:this.props.serverAddress,serverVersion:this.props.serverVersion}):"wallpapers"===t?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{className:"panel-form-row",children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(sd,{wallpaper:this.props.wallpaper,wallpaperSize:this.props.wallpaperSize,wallpaperBlur:this.props.wallpaperBlur,colorSchema:"auto"!==this.props.colorSchema?this.props.colorSchema:this.props.systemColorSchema,onWallpaperSelected:this.props.onWallpaperSelected})}):"contacts"===t||"archive"==t||"blocked"==t?(0,vt.jsx)(Ac,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,archive:"archive"==t,blocked:"blocked"==t,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected,onShowArchive:this.props.onShowArchive}):"newtpk"===t?(0,vt.jsx)(Gc,{tinode:this.props.tinode,searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===t?(0,vt.jsx)(ed,{credCode:this.props.credCode,credMethod:this.props.credMethod,credToken:this.props.credToken,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel}):null]})}}var ad=(0,s.injectIntl)(od);const rd="started";function ld(){let e=Ct.HX;return"object"==typeof window.location&&("file:"==window.location.protocol?e=Ct.SE.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e}function cd(){return"object"==typeof window.location&&"https:"==window.location.protocol}var dd=a(99);const hd=n().lazy(e=>a.e(125).then(a.bind(a,9125))),ud=n().lazy(e=>a.e(158).then(a.bind(a,158))),gd=n().lazy(e=>a.e(280).then(a.bind(a,9280))),pd=new Audio("audio/msg.m4a"),md=(0,s.defineMessages)({reconnect_countdown:{id:"reconnect_countdown",defaultMessage:"Disconnected. Reconnecting in {seconds}…",description:"Message shown when an app update is available."},reconnect_now:{id:"reconnect_now",defaultMessage:"Try now",description:"Prompt for reconnecting now"},push_init_failed:{id:"push_init_failed",defaultMessage:"Failed to initialize push notifications",description:"Error message when push notifications have failed to initialize."},invalid_security_token:{id:"invalid_security_token",defaultMessage:"Invalid security token",description:"Error message when resetting password."},no_connection:{id:"no_connection",defaultMessage:"No connection",description:"Warning that the user is offline."},code_doesnot_match:{id:"code_doesnot_match",defaultMessage:"Code does not match",description:"Error message when the credential validation code is incorrect."},menu_item_info:{id:"menu_item_info",defaultMessage:"Info",description:"Show extended topic information"},menu_item_audio_call:{id:"menu_item_audio_call",defaultMessage:"Call",description:"Start audio call"},menu_item_video_call:{id:"menu_item_video_call",defaultMessage:"Video call",description:"Start video call"},cred_confirmed_successfully:{id:"cred_confirmed_successfully",defaultMessage:"Confirmed successfully",description:"Notification message that the credential was successfully validated."},password_reset_success:{id:"password_reset_success",defaultMessage:"Password reset successfully",description:"Notification message that the password was successfully reset."},select_country:{id:"select_country",defaultMessage:"Select country",description:"Placeholder for the country selector"}}),fd=["acc_general","archive","blocked","contacts","cred","crop","edit","general","newtpk","notif","register","reset","security","settings","support","wallpapers","tenant","login","enterprise-register","enterprise-feedback","identity-check","realname","realname-verified","realname-reminder","independent-password","messages-home","messages-offline","messages-menu","message-actions","system-messages","chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card","compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle","address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm","group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload","group-invite-friends","favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos","call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized","workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice","personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info","fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback",""],xd=["tenant","login","register","reset","cred","enterprise-register","enterprise-feedback"],jd={"authentication failed":"账号或密码错误","authentication required":"请先登录","unknown authentication scheme":"登录方式不受支持,请刷新页面重试","policy violation":"当前操作不符合安全策略要求","permission denied":"没有权限执行此操作,请重新登录","internal error":"服务器繁忙,请稍后重试"};function bd(e){const n=e&&e.message;if(!n)return null;const t=n.replace(/\s*\(\d+\)\s*$/,"").trim().toLowerCase();return jd[t]||null}const yd={INVITE_CODE_REQUIRED:"请填写邀请码",INVITE_CODE_INVALID:"邀请码错误,请重新输入",INVITE_CODE_REVOKED:"邀请码已被撤销,请联系管理员获取新的邀请码",INVITE_CODE_EXPIRED:"邀请码已过期,请联系管理员获取新的邀请码"};function wd(e){const n=e&&e.reason;return n&&yd[n]||"注册信息校验未通过,请检查后重试"}class vd extends n().Component{constructor(e){super(e),this.selfRef=n().createRef(),this.previewPrefetchAttempted=new Set,this.state=this.getBlankState(),this.handleResize=this.handleResize.bind(this),this.handleRouteChange=this.handleRouteChange.bind(this),this.handleOnline=this.handleOnline.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleColorSchemeChange=this.handleColorSchemeChange.bind(this),this.checkForAppUpdate=this.checkForAppUpdate.bind(this),this.handleVisibilityEvent=this.handleVisibilityEvent.bind(this),this.handleError=this.handleError.bind(this),this.handleLoginRequest=this.handleLoginRequest.bind(this),this.handlePersistenceChange=this.handlePersistenceChange.bind(this),this.handleConnected=this.handleConnected.bind(this),this.handleAutoreconnectIteration=this.handleAutoreconnectIteration.bind(this),this.doLogin=this.doLogin.bind(this),this.handleLoginSuccessful=this.handleLoginSuccessful.bind(this),this.handleTenantResolved=this.handleTenantResolved.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.tnMeMetaDesc=this.tnMeMetaDesc.bind(this),this.tnMeContactUpdate=this.tnMeContactUpdate.bind(this),this.tnMeSubsUpdated=this.tnMeSubsUpdated.bind(this),this.resetContactList=this.resetContactList.bind(this),this.tnInitFind=this.tnInitFind.bind(this),this.tnFndSubsUpdated=this.tnFndSubsUpdated.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleTopicSelected=this.handleTopicSelected.bind(this),this.handleHideMessagesView=this.handleHideMessagesView.bind(this),this.handleSendMessage=this.handleSendMessage.bind(this),this.handleNewChatInvitation=this.handleNewChatInvitation.bind(this),this.handleNewAccount=this.handleNewAccount.bind(this),this.handleNewAccountRequest=this.handleNewAccountRequest.bind(this),this.handleImRegisterRequest=this.handleImRegisterRequest.bind(this),this.handleUpdatePasswordRequest=this.handleUpdatePasswordRequest.bind(this),this.handleUpdateAccountTagsRequest=this.handleUpdateAccountTagsRequest.bind(this),this.handleToggleIncognitoMode=this.handleToggleIncognitoMode.bind(this),this.handleChangeColorSchema=this.handleChangeColorSchema.bind(this),this.handleChangeTextSize=this.handleChangeTextSize.bind(this),this.handleSendOnEnter=this.handleSendOnEnter.bind(this),this.handleSelectWallpapers=this.handleSelectWallpapers.bind(this),this.handleWallpaperSelected=this.handleWallpaperSelected.bind(this),this.handleSettings=this.handleSettings.bind(this),this.handleGlobalSettings=this.handleGlobalSettings.bind(this),this.handleShowArchive=this.handleShowArchive.bind(this),this.handleShowBlocked=this.handleShowBlocked.bind(this),this.handleToggleMessageSounds=this.handleToggleMessageSounds.bind(this),this.handleCredAdd=this.handleCredAdd.bind(this),this.handleCredDelete=this.handleCredDelete.bind(this),this.handleCredConfirm=this.handleCredConfirm.bind(this),this.initFCMessaging=this.initFCMessaging.bind(this),this.toggleFCMToken=this.toggleFCMToken.bind(this),this.handlePushMessage=this.handlePushMessage.bind(this),this.handleSidepanelCancel=this.handleSidepanelCancel.bind(this),this.handleStartTopicRequest=this.handleStartTopicRequest.bind(this),this.handleNewTopicCreated=this.handleNewTopicCreated.bind(this),this.handleTopicUpdateRequest=this.handleTopicUpdateRequest.bind(this),this.handleUnarchive=this.handleUnarchive.bind(this),this.handleChangePermissions=this.handleChangePermissions.bind(this),this.handleTagsUpdateRequest=this.handleTagsUpdateRequest.bind(this),this.handleLogout=this.handleLogout.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleDeleteTopicRequest=this.handleDeleteTopicRequest.bind(this),this.handleDeleteMessagesRequest=this.handleDeleteMessagesRequest.bind(this),this.handleLeaveUnsubRequest=this.handleLeaveUnsubRequest.bind(this),this.handleBlockTopicRequest=this.handleBlockTopicRequest.bind(this),this.handleReportTopic=this.handleReportTopic.bind(this),this.handleShareTheCard=this.handleShareTheCard.bind(this),this.handleShowContextMenu=this.handleShowContextMenu.bind(this),this.defaultTopicContextMenu=this.defaultTopicContextMenu.bind(this),this.handleHideContextMenu=this.handleHideContextMenu.bind(this),this.handleShowAlert=this.handleShowAlert.bind(this),this.handleShowInfoView=this.handleShowInfoView.bind(this),this.handleMemberUpdateRequest=this.handleMemberUpdateRequest.bind(this),this.handleValidateCredentialsRequest=this.handleValidateCredentialsRequest.bind(this),this.handlePasswordResetRequest=this.handlePasswordResetRequest.bind(this),this.handleResetPassword=this.handleResetPassword.bind(this),this.handleContextMenuAction=this.handleContextMenuAction.bind(this),this.handleShowCountrySelector=this.handleShowCountrySelector.bind(this),this.handleShowForwardDialog=this.handleShowForwardDialog.bind(this),this.handleHideForwardDialog=this.handleHideForwardDialog.bind(this),this.handleEnterSelectMode=this.handleEnterSelectMode.bind(this),this.handleToggleMessageSelect=this.handleToggleMessageSelect.bind(this),this.handleExitSelectMode=this.handleExitSelectMode.bind(this),this.handleShowBatchForward=this.handleShowBatchForward.bind(this),this.handleHideBatchForward=this.handleHideBatchForward.bind(this),this.handleOpenScanner=this.handleOpenScanner.bind(this),this.handleCloseScanner=this.handleCloseScanner.bind(this),this.handleQrDetected=this.handleQrDetected.bind(this),this.handleSubmitGroupJoinRequest=this.handleSubmitGroupJoinRequest.bind(this),this.handleCancelGroupJoinPreview=this.handleCancelGroupJoinPreview.bind(this),this.handleStartVideoCall=this.handleStartVideoCall.bind(this),this.handleStartAudioCall=this.handleStartAudioCall.bind(this),this.handleInfoMessage=this.handleInfoMessage.bind(this),this.handleDataMessage=this.handleDataMessage.bind(this),this.handleCallClose=this.handleCallClose.bind(this),this.handleCallInvite=this.handleCallInvite.bind(this),this.handleCallRinging=this.handleCallRinging.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.handleCallSendOffer=this.handleCallSendOffer.bind(this),this.handleCallIceCandidate=this.handleCallIceCandidate.bind(this),this.handleCallSendAnswer=this.handleCallSendAnswer.bind(this),this.handleCallAccept=this.handleCallAccept.bind(this),this.sendMessageToTopic=this.sendMessageToTopic.bind(this),this.callTimeoutTimer=null}getBlankState(){const e=dd.A.getObject("settings")||{},n=!!dd.A.getObject("keep-logged-in");if(!e.wallpaper){const n=(0,Et.KY)();e.wallpaper=n.name||"",e.wallpaperSize=n.size||0,e.wallpaperBlur=0}return{connected:!1,ready:!1,autoLogin:!1,transport:e.transport||null,serverAddress:e.serverAddress||ld(),secureConnection:void 0===e.secureConnection?cd():e.secureConnection,serverVersion:"no connection",messageSounds:!e.messageSoundsOff,incognitoMode:!1,colorSchema:e.colorSchema||"auto",systemColorSchema:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",wallpaper:e.wallpaper,wallpaperSize:e.wallpaperSize,wallpaperBlur:0,textSize:e.textSize||10,sendOnEnter:e.sendOnEnter||"plain",desktopAlerts:n&&!!e.desktopAlerts,desktopAlertsEnabled:(cd()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==Ae&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:n?dd.A.getObject("firebase-token"):null,applicationVisible:!document.hidden,errorText:"",errorLevel:null,errorAction:void 0,errorActionText:null,sidePanelSelected:"tenant",sidePanelParams:{},sidePanelTitle:null,sidePanelAvatar:null,myTrustedBadges:[],loadSpinnerVisible:!1,login:"",password:"",persist:n,myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=640,infoPanel:void 0,mobilePanel:"sidepanel",callTopic:void 0,callState:0,callAudioOnly:void 0,callShouldStart:!1,contextMenuVisible:!1,contextMenuBounds:null,contextMenuClickAt:null,contextMenuParams:null,contextMenuItems:[],forwardDialogVisible:!1,forwardMessage:null,selectMode:!1,selectModeTopic:null,selectedSeqs:[],batchForwardVisible:!1,scannerOpen:!1,groupJoinPreview:null,alertVisible:!1,alertParams:{},chatList:[],searchResults:[],searchableContacts:[],reqCredMethod:void 0,credMethod:void 0,credCode:void 0,credToken:void 0,requestedTopic:void 0}}componentDidMount(){window.addEventListener("resize",this.handleResize),this.handleOnlineOn=e=>{this.handleOnline(!0)},window.addEventListener("online",this.handleOnlineOn),this.handleOnlineOff=e=>{this.handleOnline(!1)},window.addEventListener("offline",this.handleOnlineOff),window.addEventListener("popstate",this.handleRouteChange),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.handleColorSchemeChange),document.addEventListener("visibilitychange",this.handleVisibilityEvent),document.addEventListener("keydown",this.handleEscapeKey),document.documentElement.style.colorScheme="auto"==this.state.colorSchema?"light dark":this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`),this.applyWallpaperSettings(this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema),"function"==typeof BroadcastChannel?new BroadcastChannel("tinode-sw").addEventListener("message",this.handlePushMessage):console.warn("Your browser does not support BroadcastChannel. Some features will not be available"),this.lastWakeUpCheck=(new Date).getTime(),this.wakeUpTicker=setInterval(e=>{const n=(new Date).getTime();n-this.lastWakeUpCheck>8e4&&this.handleOnlineOn(),this.lastWakeUpCheck=n},1e3),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),new Promise((e,n)=>{this.tinode=vd.tnSetup(this.state.serverAddress,this.state.secureConnection,this.state.transport,this.props.intl.locale,this.state.persist,e),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage}).then(e=>{this.state.desktopAlertsEnabled&&this.initFCMessaging().catch(e=>{}),this.resetContactList();const n=this.state.persist?dd.A.getObject("auth-token"):void 0;n&&(this.setState({autoLogin:!0}),n.expires=new Date(n.expires),this.tinode.setAuthToken(n),this.tinode.connect().catch(e=>{this.handleError(e.message,"err")}));const t=is.A.parseUrl(is.A.currentUrl());if(fd.includes(t.path[0])&&t.path[0])this.handleRouteChange();else{this.setState({requestedTopic:t.path[1]});const e=t.params&&t.params.cred_done?is.A.addUrlParam("","cred_done",t.params.cred_done):"";is.A.navigateTo(e)}})}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("popstate",this.handleRouteChange),window.removeEventListener("online",this.handleOnlineOn),window.removeEventListener("offline",this.handleOnlineOff),window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",this.handleColorSchemeChange),document.removeEventListener("visibilitychange",this.handleVisibilityEvent),document.removeEventListener("keydown",this.handleEscapeKey),clearInterval(this.wakeUpTicker)}static tnSetup(e,n,t,s,i,o){const a=new wt.Tinode({appName:Ct.C3,host:e,apiKey:Ct.Lq,transport:t,secure:n,persist:i},o);return a.setHumanLanguage(s),a.enableLogging(!0,!0),vd.installTenantHiPatch(a),a}static installTenantHiPatch(e){const n=e&&e._connection;if(!n||n.__tenantPatched)return;const t=n.sendText.bind(n);n.sendText=n=>{if("string"==typeof n&&(n.indexOf('"hi":')>=0||n.indexOf('"acc":')>=0))try{const t=JSON.parse(n);if(t.hi){const e=(0,zt.E6)();e&&e.code&&(t.hi.tenant=e.code,n=JSON.stringify(t))}else t.acc&&e.__pendingAccExtra&&(Object.assign(t.acc,e.__pendingAccExtra),e.__pendingAccExtra=null,n=JSON.stringify(t))}catch(e){}return t(n)},n.__tenantPatched=!0}handlePushMessage(e){this.tinode.oobNotification(e.data||{})}initFCMessaging(){const{locale:e}=this.props.intl,n=(e,n)=>{console.error(e,n),this.setState({firebaseToken:null}),dd.A.updateObject("settings",{desktopAlerts:!1})};try{return this.fcm=jt(Ae(FIREBASE_INIT,Ct.iv)),navigator.serviceWorker.getRegistration("/service-worker.js").then(e=>e||navigator.serviceWorker.register("/service-worker.js").then(e=>(this.checkForAppUpdate(e),e))).then(n=>((n.active||n.installing).postMessage(JSON.stringify({locale:e,version:"0.25.3"})),vd.requestFCMToken(this.fcm,n))).then(e=>{const n=dd.A.getObject("keep-logged-in");var t,s;e!=this.state.firebaseToken&&(this.tinode.setDeviceToken(e),n&&dd.A.setObject("firebase-token",e)),this.setState({firebaseToken:e,desktopAlerts:!0}),n&&dd.A.updateObject("settings",{desktopAlerts:!0}),t=this.fcm,s=e=>{this.handlePushMessage(e)},function(e,n){if(!navigator)throw Dn.create("only-available-in-window");e.onMessageHandler=n}(t=b(t),s)}).catch(e=>{throw n(e),e})}catch(e){return n(e),Promise.reject(e)}}static requestFCMToken(e,n){return bt(e,{serviceWorkerRegistration:n,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(t=>{if(t)return t;if("undefined"!=typeof Notification)return Notification.requestPermission().then(t=>{if("granted"===t)return bt(e,{serviceWorkerRegistration:n,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(e=>{if(e)return e;throw new Error("Failed to initialize notifications")});throw new Error("No permission to send notifications: "+t)});throw new Error("Notifications are not supported")})}handleResize(){const e=document.documentElement.clientWidth<=640;this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.state.displayMobile!=e&&this.setState({displayMobile:e})}handleEscapeKey(e){"Escape"!==e.key&&27!==e.keyCode||(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null,contextMenuVisible:!1,forwardDialogVisible:!1,alertVisible:!1}),is.A.navigateTo(is.A.setUrlTopic("",null)))}checkForAppUpdate(e){e.onupdatefound=n=>{const t=e.installing;t.onstatechange=e=>{if("installed"==t.state&&navigator.serviceWorker.controller){const e=(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(s.FormattedMessage,{id:"update_available",defaultMessage:"Update available.",description:"Message shown when an app update is available."})," ",(0,vt.jsx)("a",{href:"",children:(0,vt.jsx)(s.FormattedMessage,{id:"reload_update",defaultMessage:"Reload",description:"Call to action to reload application when update is available."})}),"."]});this.handleError(e,"info")}}}}handleRouteChange(){const e=is.A.parseUrl(is.A.currentUrl());if(e.path&&xd.includes(e.path[0])&&this.tinode.isAuthenticated())return void is.A.navigateTo("");const n={infoPanel:e.params.info,newTopicTabSelected:e.params.tab};if(e.path&&e.path.length>0){fd.includes(e.path[0])?(n.sidePanelSelected=e.path[0],n.sidePanelParams=e.params):console.warn("Unknown sidepanel view",e.path[0]);let t=e.path[1]||null;t!=this.state.topicSelected&&(wt.Tinode.topicType(t)&&this.tinode.isAuthenticated()?n.mobilePanel="topic-view":(t=null,n.mobilePanel="sidepanel"),Object.assign(n,{topicSelected:t,topicSelectedAcs:this.tinode.getTopicAccessMode(t)}))}else Object.assign(n,{sidePanelSelected:"",sidePanelParams:{},topicSelected:null});e.params.method&&(n.credMethod=e.params.method),e.params.code&&(n.credCode=e.params.code),e.params.token&&(n.credToken=e.params.token),e.params.cred_done&&Object.assign(n,vd.stateForError(this.props.intl.formatMessage(md.cred_confirmed_successfully),"info")),this.setState(n)}handleOnline(e){e?(this.handleError(),clearInterval(this.reconnectCountdown),this.tinode.reconnect()):this.handleError(this.props.intl.formatMessage(md.no_connection),"warn"),this.setState({liveConnection:e})}handleVisibilityEvent(){this.setState({applicationVisible:!document.hidden})}static stateForError(e,n,t,s){return{errorText:e,errorLevel:n,errorAction:t,errorActionText:s,callShouldStart:!1}}handleError(e,n,t,s){this.setState(vd.stateForError(e,n,t,s))}handleLoginRequest(e,n){this.setState({loginDisabled:!0,login:e,password:n,loadSpinnerVisible:!0,autoLogin:!0}),this.handleError("",null),this.tinode.isConnected()?this.doLogin(e,n,null,{meth:this.state.credMethod,resp:this.state.credCode}):this.tinode.connect().catch(e=>{this.setState({loginDisabled:!1,autoLogin:!1,loadSpinnerVisible:!1}),this.handleError(e.message,"err")}),this.state.desktopAlertsEnabled&&!this.state.firebaseToken&&this.initFCMessaging()}handlePersistenceChange(e){e?this.tinode.initStorage().then(e=>{dd.A.setObject("keep-logged-in",!0),this.setState({persist:!0})}):this.tinode.clearStorage().then(e=>{dd.A.setObject("keep-logged-in",!1),this.setState({persist:!1})})}handleConnected(){clearInterval(this.reconnectCountdown),this.handleError();const e=this.tinode.getServerInfo();this.setState({serverVersion:e.ver+" "+(e.build?e.build:"none"),reqCredMethod:((e.reqCred||{}).auth||[])[0]||"email"}),this.state.autoLogin&&this.doLogin(this.state.login,this.state.password,null,{meth:this.state.credMethod,resp:this.state.credCode})}handleAutoreconnectIteration(e,n){if(clearInterval(this.reconnectCountdown),e<0)return void this.handleError();if(n)return void n.then(e=>{this.handleError()}).catch(e=>{this.handleError(e.message,"err")});const{formatMessage:t}=this.props.intl;let s=e/1e3;s|=s,this.reconnectCountdown=setInterval(e=>{if(s<-10)return clearInterval(this.reconnectCountdown),void this.tinode.reconnect();const n=s>99?(0,Ot.Ye)(s):s;this.handleError(t(md.reconnect_countdown,{seconds:n}),"warn",e=>{clearInterval(this.reconnectCountdown),this.tinode.reconnect()},t(md.reconnect_now)),s-=1},1e3)}handleDisconnect(e){const n=bd(e);this.setState({connected:!1,ready:!1,topicSelectedOnline:!1,errorText:n||(e&&e.message?e.message:"Disconnected"),errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,forwardDialogVisible:!1,serverVersion:"no connection"})}doLogin(e,n,t,s){if(this.tinode.isAuthenticated())return void is.A.navigateTo("");let i=t||(this.tinode.getAuthToken()||{}).token;if(!(e&&n||i))return is.A.navigateTo(""),void this.setState({loginDisabled:!1});s=wt.Tinode.credential(s);let o,a=this.tinode.isConnected()?Promise.resolve():this.tinode.connect();e&&n?(i=null,this.setState({password:null}),o=a.then(t=>this.tinode.loginBasic(e,n,s))):o=a.then(e=>this.tinode.loginToken(i,s)),o.then(e=>{e.code>=300&&"validate credentials"===e.text?(this.setState({loadSpinnerVisible:!1}),s&&this.handleError(this.props.intl.formatMessage(md.code_doesnot_match),"warn"),vd.navigateToCredentialsView(e.params)||s||this.handleError(wd(e.params),"err")):this.handleLoginSuccessful()}).catch(e=>{const n=e.code>=500;this.setState({loginDisabled:!1,credMethod:void 0,credCode:void 0,loadSpinnerVisible:!1,autoLogin:n}),this.handleError(function(e){return bd(e)||(!e||401!==e.code&&403!==e.code?e&&e.message||"登录失败,请重试":"账号或密码错误")}(e),"err"),console.warn("Login failed",e),n||i&&(this.handleLogout(),is.A.navigateTo(""))})}static navigateToCredentialsView(e){if(!Array.isArray(e.cred)||!e.cred.length)return!1;const n=is.A.parseUrl(is.A.currentUrl());return n.path[0]="cred",n.params.method=e.cred[0],n.params.token=e.token,n.params.code=e.code,is.A.navigateTo(is.A.composeUrl(n.path,n.params)),!0}handleLoginSuccessful(){this.handleError(),dd.A.getObject("keep-logged-in")&&dd.A.setObject("auth-token",this.tinode.getAuthToken());const e=this.tinode.getAuthToken();sessionStorage.setItem("im-session-token",e?e.token:"");const n=this.state.requestedTopic||this.state.topicSelected,t=this.tinode.getMeTopic();t.onMetaDesc=this.tnMeMetaDesc,t.onContactUpdate=this.tnMeContactUpdate,t.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,loginDisabled:!1,credMethod:void 0,credCode:void 0,credToken:void 0,myUserId:this.tinode.getCurrentUserID(),autoLogin:!0,requestedTopic:void 0}),t.subscribe(t.startMetaQuery().withLaterSub().withDesc().withTags().withCred().build()).catch(e=>{this.tinode.disconnect(),localStorage.removeItem("auth-token"),this.handleError(e.message,"err"),is.A.navigateTo("")}).finally(e=>{this.setState({loadSpinnerVisible:!1})});const s=is.A.parseUrl(is.A.currentUrl()).path[0];let i=s&&!xd.includes(s)&&fd.includes(s)?is.A.currentUrl():is.A.setUrlSidePanel(is.A.currentUrl(),"workbench");n&&(i=is.A.setUrlTopic(i,n)),is.A.navigateTo(i)}tnMeMetaDesc(e){if(e){if(e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:(0,Lt.to)(e.public.photo)}),e.trusted){const n=[];for(const[t,s]of Object.entries(e.trusted))s&&n.push(t);this.setState({myTrustedBadges:n})}e.acs&&this.setState({incognitoMode:!e.acs.isPresencer()}),vd.checkIfPinsUpdated(e,this.state.chatList)&&this.resetContactList()}}tnMeContactUpdate(e,n){if("on"==e||"off"==e)this.resetContactList(),this.state.topicSelected==n.topic&&this.setState({topicSelectedOnline:"on"==e});else if("read"==e)this.resetContactList();else if("msg"==e&&n){const e=this.tinode.getTopic(n.topic),t=e&&e.isArchived();n.unread>0&&this.state.messageSounds&&!t&&(document.hidden||this.state.topicSelected!=n.topic)&&pd.play().catch(e=>{}),this.resetContactList()}else"recv"==e||("gone"==e||"unsub"==e?(this.state.topicSelected==n.topic&&this.handleTopicSelected(null),this.resetContactList()):"acs"==e?this.state.topicSelected==n.topic&&this.setState({topicSelectedAcs:n.acs}):"del"==e||"upd"==e||"call"==e||console.info("Unsupported (yet) presence update:",e,"in",(n||{}).topic))}tnMeSubsUpdated(e){this.resetContactList()}static prepareSearchableContacts(e,n){const t={};for(const n of e)wt.Tinode.isP2PTopicName(n.topic)&&(t[n.topic]={user:n.topic,updated:n.updated,public:n.public,private:n.private,acs:n.acs});for(const e of n)t[e.user]||(t[e.user]=e);return Object.values(t)}resetContactList(){const e={chatList:[]};this.state.ready||(e.ready=!0);const n=this.tinode.getMeTopic();n.contacts(n=>{n.topic||n.user||(n.topic=n.name),e.chatList.push(n),this.state.topicSelected==n.topic&&(e.topicSelectedOnline=n.online,e.topicSelectedAcs=n.acs)}),this.prefetchLatestMessagePreviews(e.chatList);const t=new Date(0);e.chatList.sort((e,s)=>{const i=n.pinnedTopicRank(s.topic)-n.pinnedTopicRank(e.topic);return 0!=i?i:(s.touched||t).getTime()-(e.touched||t).getTime()}),e.searchableContacts=vd.prepareSearchableContacts(e.chatList,this.state.searchResults),this.setState(e)}prefetchLatestMessagePreviews(e){if(this.tinode.isConnected())for(const n of e)!n.topic||n.seq<=0||n.latestMessage()||this.previewPrefetchAttempted.has(n.topic)||(this.previewPrefetchAttempted.add(n.topic),n.subscribe(n.startMetaQuery().withLaterData(1).build()).catch(e=>{console.warn(`Failed to prefetch latest message for '${n.topic}'`,e)}))}static checkIfPinsUpdated(e,n){for(let t=0;t<n.length;t++){const s=n[t];if(!!e.pinnedTopicRank(s.topic)!=s.pinned)return!0}return!1}tnInitFind(){const e=this.tinode.getFndTopic();e.onSubsUpdated=this.tnFndSubsUpdated,e.isSubscribed()?this.tnFndSubsUpdated():e.subscribe(e.startMetaQuery().withSub().build()).catch(e=>{this.handleError(e.message,"err")})}tnFndSubsUpdated(){const e=[];this.tinode.getFndTopic().contacts(n=>{e.push(n)}),this.setState({searchResults:e,searchableContacts:vd.prepareSearchableContacts(this.state.chatList,e)})}handleSearchContacts(e){const n=this.tinode.getFndTopic();n.setMeta({desc:{public:e}}).then(e=>n.getMeta(n.startMetaQuery().withSub().build())).catch(e=>this.handleError(e.message,"err"))}handleTopicSelected(e){this.state.newTopicParams&&this.state.newTopicParams._topicName!=e&&this.setState({newTopicParams:null}),e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",infoPanel:void 0}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:this.tinode.isTopicOnline(e),topicSelectedAcs:this.tinode.getTopicAccessMode(e),forwardMessage:null}),is.A.navigateTo(is.A.setUrlTopic("",e)))):(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null}),is.A.navigateTo(is.A.setUrlTopic("",null)))}handleHideMessagesView(){this.setState({mobilePanel:"sidepanel"}),is.A.goBack()||is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),null))}handleSendMessage(e,n,t,s){const i=this.tinode.getTopic(this.state.topicSelected);return this.sendMessageToTopic(i,e,n,t,s)}sendMessageToTopic(e,n,t,s,i){(n=e.createMessage(n,!1))._uploader=s,i&&(n.head=Object.assign(n.head||{},i));const o=[];if(t&&o.push(t),!e.isSubscribed()){const t=e.subscribe().then(t=>{let s=[];e.queuedMessages(t=>{t._sending||t.seq==n.seq||(t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&e.publishMessage(t))}),s.length>0&&e.delMessagesList(s,!0)});o.push(t)}return e.publishDraft(n,Promise.all(o)).then(n=>(e.isArchived()&&e.archive(!1),n)).catch(e=>this.handleError(e.message,"err"))}handleNewChatInvitation(e,n){const t=this.tinode.getTopic(e);let s=null;switch(n){case"accept":const i=t.getAccessMode().getGiven();s=t.setMeta({sub:{mode:i}}),t.isP2PType()&&(s=s.then(n=>t.setMeta({sub:{user:e,mode:i}})));break;case"delete":s=t.delTopic(!0);break;case"block":const o=t.getAccessMode().updateWant("-JP").getWant();s=t.setMeta({sub:{mode:o}}).then(e=>this.handleTopicSelected(null));break;default:console.warn("Unknown invitation action",'"'+n+'""')}null!=s&&s.catch(e=>this.handleError(e.message,"err"))}handleNewAccount(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"register"))}handleNewAccountRequest(e,n,t,s,i){this.handleError(),this.tinode.connect(this.state.serverAddress).then(o=>{let a;return t&&t.photo&&t.photo.ref&&(a=[t.photo.ref]),this.tinode.createAccountBasic(e,n,{public:t,tags:i,cred:s?wt.Tinode.credential(s):void 0,attachments:a})}).then(e=>{e.code>=300&&"validate credentials"==e.text?vd.navigateToCredentialsView(e.params)||this.handleError(wd(e.params),"err"):this.handleLoginSuccessful(this)}).catch(e=>{const n=bd(e);this.handleError(n||e&&e.message||"注册失败,请稍后重试","err")})}handleImRegisterRequest(e,n,t,s,i){this.tinode.__pendingAccExtra=s,this.handleNewAccountRequest(e,n,(0,Et.k6)(t,null),i)}handleToggleIncognitoMode(e){this.setState({incognitoMode:null});const n=this.tinode.getMeTopic(),t=n.getAccessMode().updateWant(e?"-P":"+P").getWant();n.setMeta({sub:{mode:t}}).catch(n=>{this.setState({incognitoMode:!e}),this.handleError(n.message,"err")})}handleChangeColorSchema(e){this.setState({colorSchema:e}),dd.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme="auto"==e?"light dark":e,this.applyColorSchema(e,this.state.systemColorSchema,this.state.wallpaperSize)}handleColorSchemeChange(e){const n=e.matches?"dark":"light";this.setState({systemColorSchema:n}),this.applyColorSchema(this.state.colorSchema,n,this.state.wallpaperSize)}applyColorSchema(e,n,t){const s="auto"==e?n:e;document.documentElement.style.setProperty("--wallpaper-invert","dark"==s&&t?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=s||t?"1":"0.5")}handleSelectWallpapers(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"wallpapers"))}applyWallpaperSettings(e,n,t,s){document.documentElement.style.setProperty("--wallpaper-url",`url('${e}')`),document.documentElement.style.setProperty("--wallpaper-repeat",n?"repeat":"no-repeat"),document.documentElement.style.setProperty("--wallpaper-blur",n?"0px":`${t}px`),document.documentElement.style.setProperty("--wallpaper-size",n?`${n}px`:"cover"),document.documentElement.style.setProperty("--wallpaper-position",n?"unset":"center"),document.documentElement.style.setProperty("--wallpaper-invert","dark"==s&&n?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=s||n?"1":"0.5")}handleWallpaperSelected(e,n,t){this.handleError(),dd.A.updateObject("settings",{wallpaper:e,wallpaperSize:n,wallpaperBlur:t}),this.setState({wallpaper:e,wallpaperSize:n,wallpaperBlur:t}),this.applyWallpaperSettings(e,n,t,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema)}handleChangeTextSize(e){this.setState({textSize:0|e}),dd.A.updateObject("settings",{textSize:e}),document.documentElement.style.setProperty("--message-text-size",`${e}pt`)}handleSendOnEnter(e){this.setState({sendOnEnter:e}),dd.A.updateObject("settings",{sendOnEnter:e})}handleUpdateAccountTagsRequest(e,n){this.tinode.getMeTopic().setMeta({tags:n}).catch(e=>this.handleError(e.message,"err"))}handleSettings(){this.handleError(),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"edit":"settings"))}handleGlobalSettings(e){const n=e.serverAddress||this.state.serverAddress,t=e.transport||this.state.transport,s=void 0===e.secureConnection?this.state.secureConnection:e.secureConnection;this.tinode&&(this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=vd.tnSetup(n,s,t,this.props.intl.locale,dd.A.getObject("keep-logged-in")),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,this.setState({serverAddress:n,transport:t,secureConnection:s}),dd.A.setObject("settings",{serverAddress:n,transport:t,secureConnection:s}),is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),""))}handleTenantResolved(e,n){const t=e.tenant||{},s=e.endpoints||{};dd.A.setObject("im-tenant",{code:t.code||n,name:t.name||t.code||n,endpoints:s});let i=this.state.serverAddress,o=this.state.secureConnection;if(s.websocket)try{const e=new URL(s.websocket);i=e.host,o="wss:"===e.protocol}catch(e){}!i||i===this.state.serverAddress&&o===this.state.secureConnection||this.handleGlobalSettings({serverAddress:i,secureConnection:o})}handleShowArchive(){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"archive":""))}handleShowBlocked(){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),this.state.myUserId?"blocked":""))}toggleFCMToken(e){e?(this.setState({desktopAlerts:null}),this.state.firebaseToken?(this.setState({desktopAlerts:!0}),dd.A.getObject("keep-logged-in")&&dd.A.updateObject("settings",{desktopAlerts:!0})):this.initFCMessaging()):this.state.firebaseToken&&this.fcm?yt(this.fcm).catch(e=>{console.error("Unable to delete token.",e)}).finally(e=>{dd.A.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),this.setState({desktopAlerts:!1,firebaseToken:null}),this.tinode.setDeviceToken(null)}):(this.setState({desktopAlerts:!1,firebaseToken:null}),dd.A.updateObject("settings",{desktopAlerts:!1}))}handleToggleMessageSounds(e){this.setState({messageSounds:e}),dd.A.updateObject("settings",{messageSoundsOff:!e})}handleCredAdd(e,n){this.tinode.getMeTopic().setMeta({cred:{meth:e,val:n}}).catch(e=>this.handleError(e.message,"err"))}handleCredDelete(e,n){this.tinode.getMeTopic().delCredential(e,n).catch(e=>this.handleError(e.message,"err"))}handleCredConfirm(e,n){vd.navigateToCredentialsView({cred:[e],code:n})}handleSidepanelCancel(){const e=is.A.parseUrl(is.A.currentUrl());let n="";["security","support","general","notif","acc_general"].includes(e.path[0])?n="edit":"crop"==e.path[0]?n="general":"blocked"==e.path[0]?n="security":"wallpapers"==e.path[0]?n="acc_general":this.state.myUserId&&(n="contacts"),e.path[0]=n,e.params&&(delete e.params.code,delete e.params.method,delete e.params.tab,delete e.params.scheme,delete e.params.token),is.A.navigateTo(is.A.composeUrl(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}basicNavigator(e){is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),e))}infoNavigator(e){is.A.navigateTo(is.A.setUrlInfoPanel(is.A.currentUrl(),e))}handleStartTopicRequest(e,n,t){if(e&&this.tinode.isTopicCached(e))return void this.handleTopicSelected(e);const s={};wt.Tinode.isP2PTopicName(e)?(s.sub={mode:"JRWPS"},s.desc={defacs:{auth:"JRWPS"}}):(e=e||this.tinode.newGroupTopicName(t),n&&(s.desc={public:n.public,private:{comment:n.private}},s.tags=n.tags)),s._topicName=e,this.setState({newTopicParams:s},n=>{this.handleTopicSelected(e)})}handleNewTopicCreated(e,n){let t={};this.state.callShouldStart&&(t={callState:3,callShouldStart:!1}),this.state.topicSelected==e&&e!=n&&(t.topicSelected=n),this.setState(t,e=>{is.A.navigateTo(is.A.setUrlTopic("",n))})}handleTopicUpdateRequest(e,n,t,s){this.handleError();const i=this.tinode.getTopic(e);if(i){const e={};let o;n&&(n.photo&&(n.photo.ref&&n.photo.ref!=wt.Tinode.DEL_CHAR?o=[n.photo.ref]:n.photo.data&&n.photo.data!=wt.Tinode.DEL_CHAR||(n.photo=wt.Tinode.DEL_CHAR)),e.public=n),"string"==typeof t&&(e.private=t===wt.Tinode.DEL_CHAR?wt.Tinode.DEL_CHAR:{comment:t}),s&&(e.defacs=s),i.setMeta({desc:e,attachments:o}).catch(e=>this.handleError(e.message,"err"))}}handleUnarchive(e){const n=this.tinode.getTopic(e);n&&n.archive(!1).catch(e=>this.handleError(e.message,"err"))}handleUpdatePasswordRequest(e){return this.handleError(),e?this.tinode.updateAccountBasic(null,this.tinode.getCurrentLogin(),e).catch(e=>{throw this.handleError(e.message,"err"),e}):Promise.reject(new Error("密码不能为空"))}handleChangePermissions(e,n,t){const s=this.tinode.getTopic(e);if(s){const e=s.getAccessMode();t?(e.updateGiven(n),n=e.getGiven()):(e.updateWant(n),n=e.getWant()),s.setMeta({sub:{user:t,mode:n}}).catch(e=>this.handleError(e.message,"err"))}}handleTagsUpdateRequest(e,n){const t=this.tinode.getTopic(e);t&&t.setMeta({tags:n}).catch(e=>this.handleError(e.message,"err"))}handleLogout(){let e;(0,Et.OM)(0),localStorage.removeItem("auth-token"),localStorage.removeItem("firebase-token"),localStorage.removeItem("settings"),sessionStorage.removeItem("im-session-token"),this.state.firebaseToken&&this.fcm&&yt(this.fcm).catch(e=>{console.warn("Failed to delete FCM token on logout",e)}),document.documentElement.style.colorScheme="light dark",document.documentElement.style.setProperty("--message-text-size","10pt"),clearInterval(this.reconnectCountdown),this.tinode?(e=this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()):e=Promise.resolve(),this.setState(this.getBlankState()),e.then(e=>{this.tinode=vd.tnSetup(this.state.serverAddress,this.state.secureConnection,this.state.transport,this.props.intl.locale,dd.A.getObject("keep-logged-in"),e=>{this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,is.A.navigateTo("")})})}handleDeleteAccount(){return this.tinode.delCurrentUser(!0).then(e=>{this.handleLogout()})}handleDeleteTopicRequest(e){const n=this.tinode.getTopic(e);n&&n.delTopic(!0).then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>{this.handleError(e.message,"err")})}handleDeleteMessagesRequest(e){const n=this.tinode.getTopic(e);n&&n.delMessagesAll(!0).catch(e=>this.handleError(e.message,"err"))}handleLeaveUnsubRequest(e){const n=this.tinode.getTopic(e);n&&n.leave(!0).then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>{this.handleError(e.message,"err")})}handleBlockTopicRequest(e){const n=this.tinode.getTopic(e);n&&n.updateMode(null,"-JP").then(e=>{is.A.navigateTo(is.A.setUrlTopic(is.A.currentUrl(),""))}).catch(e=>this.handleError(e.message,"err"))}handleReportTopic(e){const n=this.tinode.getTopic(e);if(!n)return;const t=n.isP2PType(),s=(0,Et.TP)(e,n.public,e),i=t?{target_type:"user",target_id:e,target_name:s}:{target_type:"group",target_id:e,topic:e,target_name:s};n.updateMode(null,"-JP").then(e=>{let n=is.A.setUrlTopic(is.A.currentUrl(),"");n=is.A.setUrlSidePanel(n,"abuse-report-reasons"),Object.entries(i).forEach(([e,t])=>{n=is.A.addUrlParam(n,e,t)}),is.A.navigateTo(n)}).catch(e=>this.handleError(e.message,"err"))}handleShowContextMenu(e,n){this.setState({contextMenuVisible:!0,contextMenuClickAt:{x:e.x,y:e.y},contextMenuParams:e,contextMenuItems:n||this.defaultTopicContextMenu(e.topicName),contextMenuBounds:this.selfRef.current.getBoundingClientRect()})}handleShowForwardDialog(e){"newtpk"==this.state.sidePanelSelected&&this.handleSidepanelCancel();const n=e.userName?"➦ "+e.userName:"",t="string"==typeof e.content?wt.Drafty.init(e.content):wt.Drafty.forwardedContent(e.content),s=wt.Drafty.preview(t,84,!0),i=wt.Drafty.append(wt.Drafty.appendLineBreak(wt.Drafty.mention(n,e.userFrom)),t),o=wt.Drafty.quote(n,e.userFrom,s),a={forwarded:e.topicName+":"+e.seq};this.setState({forwardDialogVisible:!0,forwardMessage:{head:a,msg:i,preview:o}})}handleShareTheCard(e){this.setState({forwardDialogVisible:!0,forwardMessage:{content:e,type:e.contentType}})}canStartCall(e){if(0!=this.state.callState)return!1;const n=this.tinode.getTopic(e);if(!n||n._deleted||!wt.Tinode.isP2PTopicName(e))return!1;const t=n.getAccessMode(),s=!(!t||!t.isWriter()),i=this.state.myUserId?(0,It.ze)("bootstrap:"+this.state.myUserId):null,o=!i||!i.features||!1!==i.features.audio_call&&!1!==i.features.video_call;return s&&o&&!!this.tinode.getServerParam("iceServers")}defaultTopicContextMenu(e){const n=this.tinode.getTopic(e);if(n._deleted)return["topic_delete"];const t=this.tinode.getMeTopic();let s=!1,i=!1,o=!1,a=!1,r=!1,l=!1,c=!1,d=!1,h=!1,u=!1;if(n){a=n.isSubscribed(),l=n.isArchived(),c=t.pinnedTopicRank(e)>0;const d=n.getAccessMode();d&&(s=d.isMuted(),i=!d.isJoiner(),o=!d.isJoiner("want"),r=d.isDeleter())}return d=this.canStartCall(e),h=wt.Tinode.isP2PTopicName(e),u=wt.Tinode.isSelfTopicName(e),[a?{title:this.props.intl.formatMessage(md.menu_item_info),handler:this.handleShowInfoView}:null,a&&h&&d?{title:this.props.intl.formatMessage(md.menu_item_audio_call),handler:this.handleStartAudioCall}:null,a&&h&&d?{title:this.props.intl.formatMessage(md.menu_item_video_call),handler:this.handleStartVideoCall}:null,a?"messages_clear":null,a&&r&&!u?"messages_clear_hard":null,u?null:s?i?null:"topic_unmute":"topic_mute",u?null:o?"topic_unblock":"topic_block",c?"topic_unpin":"topic_pin",l?"topic_restore":"topic_archive","topic_delete"]}handleHideContextMenu(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}handleHideForwardDialog(e){this.setState({forwardDialogVisible:!1,forwardMessage:e?this.state.forwardMessage:null})}handleContextMenuAction(e,n,t){"topic_archive"==e?n&&t.topicName&&t.topicName==this.state.topicSelected&&n.then(e=>{this.handleTopicSelected(null)}):"menu_item_forward"==e?this.handleShowForwardDialog(t):"menu_item_select"==e&&this.handleEnterSelectMode(t)}handleEnterSelectMode(e){this.setState({selectMode:!0,selectModeTopic:e.topicName,selectedSeqs:[e.seq]})}handleToggleMessageSelect(e){const n=this.state.selectedSeqs.includes(e)?this.state.selectedSeqs.filter(n=>n!=e):this.state.selectedSeqs.concat(e);this.setState({selectedSeqs:n})}handleExitSelectMode(){this.setState({selectMode:!1,selectModeTopic:null,selectedSeqs:[],batchForwardVisible:!1})}handleShowBatchForward(){this.setState({batchForwardVisible:!0})}handleHideBatchForward(){this.setState({batchForwardVisible:!1})}handleOpenScanner(){this.setState({scannerOpen:!0})}handleCloseScanner(){this.setState({scannerOpen:!1})}handleQrDetected(e){const n="string"==typeof e&&0===e.indexOf("im://qr")?new URLSearchParams(e.slice(e.indexOf("?")+1)):null,t=n?n.get("token"):null,s=n?n.get("purpose"):null;if(!t)return this.setState({scannerOpen:!1}),void this.handleError("无法识别的二维码","err");(0,zt.ps)(t,s).then(e=>{if("join_group"===e.purpose&&e.group)"joined"===e.status?(this.setState({scannerOpen:!1}),this.handleTopicSelected(e.group.topic)):this.setState({scannerOpen:!1,groupJoinPreview:{...e.group,qrToken:t}});else{if(e.user){this.setState({scannerOpen:!1}),(0,It.Ug)("profile-seed:"+e.user.user_id,{...e.user,capabilities:{can_add_friend:!!e.user.can_add}});let n=is.A.setUrlTopic(is.A.currentUrl(),"");return n=is.A.setUrlSidePanel(n,"friend"===e.user.relationship?"friend-profile":"group-member-profile"),n=is.A.addUrlParam(n,"uid",e.user.user_id),void is.A.navigateTo(n)}this.setState({scannerOpen:!1}),this.handleError("无法识别的二维码","err")}}).catch(e=>{this.setState({scannerOpen:!1}),this.handleError(e.message||"二维码已失效","err")})}handleSubmitGroupJoinRequest(e){const n=this.state.groupJoinPreview;return n?(0,zt.hO)(n.topic,{message:e,source:"qr",qrToken:n.qrToken}).then(()=>{this.setState({groupJoinPreview:null}),this.handleError("申请已提交,等待管理员通过","info")}).catch(e=>{this.handleError(e.message||"申请提交失败","err")}):Promise.resolve()}handleCancelGroupJoinPreview(){this.setState({groupJoinPreview:null})}handleShowAlert(e,n,t,s,i,o){this.setState({alertVisible:!0,alertParams:{title:e,content:n,onConfirm:t,confirm:s,onReject:i,reject:o}})}handleShowInfoView(){const e=this.state.topicSelected;if(wt.Tinode.isP2PTopicName(e)){let n=is.A.setUrlSidePanel("","friend-settings");return n=is.A.addUrlParam(n,"uid",e),void is.A.navigateTo(n)}if(!wt.Tinode.isSelfTopicName(e)){let n=is.A.setUrlSidePanel("","group-settings");return n=is.A.addUrlParam(n,"topic",e),void is.A.navigateTo(n)}is.A.navigateTo(is.A.addUrlParam(is.A.currentUrl(),"info","info")),this.setState({infoPanel:"info"})}handleMemberUpdateRequest(e,n,t){if(!e)return;const s=this.tinode.getTopic(e);s&&(n&&n.length>0&&n.forEach(e=>{s.invite(e,null).catch(e=>this.handleError(e.message,"err"))}),t&&t.length>0&&t.forEach(e=>{s.delSubscription(e).catch(e=>this.handleError(e.message,"err"))}))}handleValidateCredentialsRequest(e,n,t){this.tinode.isAuthenticated()?this.tinode.getMeTopic().setMeta({cred:{meth:e,resp:n}}).then(e=>is.A.navigateTo(is.A.setUrlSidePanel(is.A.currentUrl(),"contacts"))).catch(e=>this.handleError(e.message,"err")):(this.setState({credMethod:e,credCode:n,credToken:t}),this.doLogin(null,null,t,{meth:e,resp:n}))}handlePasswordResetRequest(e,n){return this.tinode.connect().then(t=>this.tinode.requestResetAuthSecret("basic",e,n)).catch(e=>{this.handleError(e.message,"err")})}handleResetPassword(e,n){const t=(0,Lt.$Z)(n.secret);t&&n.scheme?this.tinode.connect().then(s=>this.tinode.updateAccountBasic(null,null,e,{scheme:n.scheme,secret:t})).then(e=>{this.handleError(this.props.intl.formatMessage(md.password_reset_success),"info"),is.A.navigateTo("")}).catch(e=>{this.handleError(e.message,"err")}):this.handleError(this.props.intl.formatMessage(md.invalid_security_token),"err")}handleShowCountrySelector(n,t,i){this.handleShowAlert(this.props.intl.formatMessage(md.select_country),(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(hd,{selected:n,onSubmit:(e,n)=>{this.setState({alertVisible:!1}),i(e,n)}})}),null,null,e=>{},null)}handleStartVideoCall(){this.armCallRingTimeout(),this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!1})}handleStartAudioCall(){this.armCallRingTimeout(),this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!0})}armCallRingTimeout(){clearTimeout(this.callTimeoutTimer),this.callTimeoutTimer=setTimeout(()=>{this.callTimeoutTimer=null,1==this.state.callState&&(this.handleCallHangup(this.state.callTopic,this.state.callSeq),this.handleCallClose())},6e4)}handleCallInvite(e,n,t,s){switch(t){case 1:const t={webrtc:rd,aonly:!!s};return this.handleSendMessage(wt.Drafty.videoCall(s),void 0,void 0,t).then(e=>!e||e.code<200||e.code>=300||!e.params||!e.params.seq?(this.handleError("通话发起失败,请稍后重试","err"),this.handleCallClose(),e):(this.setState({callSeq:e.params.seq}),e)).catch(e=>{this.handleError(e&&e.message||"通话发起失败,请稍后重试","err"),this.handleCallClose()});case 3:const i=this.tinode.getTopic(e);if(!i)return;i.videoCall("accept",n)}}sendCallSignal(e,n,t,s){const i=this.tinode.getTopic(e);if(i&&this.tinode.isConnected())try{i.videoCall(n,t,s)}catch(e){console.warn(`Failed to send call signal '${n}'`,e)}}handleCallRinging(e,n){this.sendCallSignal(e,"ringing",n)}handleCallHangup(e,n){this.sendCallSignal(e,"hang-up",n)}handleCallSendOffer(e,n,t){this.sendCallSignal(e,"offer",n,t)}handleCallIceCandidate(e,n,t){this.sendCallSignal(e,"ice-candidate",n,t)}handleCallSendAnswer(e,n,t){this.sendCallSignal(e,"answer",n,t)}handleCallClose(){this.callTimeoutTimer&&clearTimeout(this.callTimeoutTimer),this.setState({callTopic:void 0,callState:0,callAudioOnly:void 0,callSeq:void 0,callShouldStart:!1})}handleCallAccept(e,n,t){clearTimeout(this.callTimeoutTimer);const s=this.tinode.getTopic(e);if(s)if(s.isSubscribed()){this.handleTopicSelected(n?e:this.state.callTopic);const s={callState:3};n&&(s.callTopic=e,s.callSeq=t),this.setState(s)}else this.setState({callShouldStart:!0},e=>this.handleTopicSelected(this.state.callTopic))}handleInfoMessage(e){if("call"==e.what)switch(e.event){case"accept":if(clearTimeout(this.callTimeoutTimer),wt.Tinode.isMeTopicName(e.topic)&&this.tinode.isMe(e.from))return void this.setState({callTopic:null,callState:0,callSeq:null,callAudioOnly:void 0,callShouldStart:!1});e.topic==this.state.callTopic&&this.setState({callState:3});break;case"hang-up":this.handleCallClose()}}handleDataMessage(e){if(e.head&&e.head.webrtc&&e.head.webrtc==rd&&wt.Tinode.isP2PTopicName(e.topic)){const n=this.tinode.getTopic(e.topic);if(n){const t=n.latestMsgVersion(e.seq)||e;t.head&&t.head.webrtc&&t.head.webrtc==rd&&e.from!=this.state.myUserId&&(0==this.state.callState?this.setState({callTopic:e.topic,callState:2,callSeq:e.seq,callAudioOnly:!!t.head.aonly}):this.handleCallHangup(e.topic,e.seq))}else console.warn("Received vc data message from unknown topic",e.topic)}}render(){const n="auto"!==this.state.colorSchema?this.state.colorSchema:this.state.systemColorSchema,t=this.state.sidePanelSelected||(this.state.myUserId?"messages-home":"tenant"),i=["tenant","login","enterprise-register","enterprise-feedback","register","reset","identity-check","realname","realname-verified","realname-reminder","independent-password"].includes(t),o=["messages-offline","messages-menu","message-actions","system-messages"].includes(t)||!this.state.myUserId&&"messages-home"===t,a=["chat-inbound-request","chat-inbound-message","chat-outbound-request","chat-status","chat-friend","chat-media","chat-blocked","chat-deleted","chat-standard","chat-attachments","chat-mixed","chat-contact-card"].includes(t),r=["compose-keyboard","mentions-select","mentions-complete","mentions-message","emoji-panel","emoji-message","voice-ready","voice-hold","voice-recording","media-uploading","media-gallery","media-retry","upload-file","file-message","message-multiselect","favorite-success","forward-select","forward-multiple","forward-individual","forward-bundle"].includes(t),l=["address-book","friend-requests","add-friend","my-friend-qr","friend-qr","friend-search-result","friend-verification","friend-profile","group-member-profile","friend-settings","friend-settings-blocked","friend-delete-confirm","block-list","block-confirm","clear-chat-confirm"].includes(t),c=["group-list","group-empty","group-invite","group-events","group-join-requests","group-new-request","group-announcement","group-summary","group-announcement-detail","group-settings","group-profile","group-avatar","group-nickname","group-description","group-my-nickname","group-members","group-role-message","group-qr","group-governance","group-admins","group-admin-add","group-admin-success","group-admin-partial","group-admin-removed","group-mute-add","group-muted","group-owner-select","group-owner-confirm","group-files","group-file-upload"].includes(t),d=["favorites","favorites-mixed","favorites-files","favorites-text","favorites-voice","favorites-links","favorites-image","favorites-video","favorites-select","favorite-share","file-download","file-downloading","file-downloaded","history-search","history-files","history-links","history-images","history-videos"].includes(t),h=["call-history","call-incoming","audio-call-ringing","audio-call-active","audio-call-muted","audio-call-speaker","video-call-ringing","video-call-camera-off","video-call-active","video-call-peer-camera-off","call-minimized"].includes(t),u=["workbench","organization-directory","meeting-organizer","meeting-attendee","meeting-create","meeting-detail","daily-report-editor","daily-report-mine","daily-report-team","daily-report-detail","monthly-report-editor","monthly-report-mine","monthly-report-team","monthly-report-detail","executive-mailbox","executive-mailbox-notice"].includes(t),g=["personal-center","personal-profile","profile-nickname","profile-birth-date","profile-signature","profile-gender","profile-region","personal-qrcode","android-settings","change-password","app-version","privacy-settings","friend-discovery-settings","youth-mode-off","youth-mode-on","youth-mode-verify","notification-permission","permission-settings-reminder","camera-permission-info","microphone-permission-info"].includes(t),p=["fraud-risk-warning","fraud-risk-confirmation","abuse-report-reasons","abuse-report-details","user-feedback"].includes(t);return(0,vt.jsxs)("div",{id:"app-container",ref:this.selfRef,children:[this.state.contextMenuVisible?(0,vt.jsx)(Pt,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onShowAlert:this.handleShowAlert,onAction:this.handleContextMenuAction,onTopicRemoved:e=>{e==this.state.topicSelected&&this.handleTopicSelected(null)},onError:this.handleError}):null,this.state.forwardDialogVisible?(0,vt.jsx)(At,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,hide:this.handleHideForwardDialog,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,onTopicSelected:this.handleStartTopicRequest}):null,this.state.batchForwardVisible?(0,vt.jsx)(Dt,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,topicName:this.state.selectModeTopic,seqs:this.state.selectedSeqs,hide:e=>{this.handleHideBatchForward(),e&&this.handleExitSelectMode()},onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts}):null,this.state.callTopic&&2==this.state.callState?(0,vt.jsx)($t,{tinode:this.tinode,topic:this.state.callTopic,seq:this.state.callSeq,callState:this.state.callState,audioOnly:this.state.callAudioOnly,onClose:this.handleCallClose,onRinging:this.handleCallRinging,onAcceptCall:this.handleCallAccept,onReject:this.handleCallHangup}):null,this.state.scannerOpen?(0,vt.jsx)(Xt,{onDetect:this.handleQrDetected,onClose:this.handleCloseScanner}):null,this.state.groupJoinPreview?(0,vt.jsx)(Gt,{group:this.state.groupJoinPreview,onSubmit:this.handleSubmitGroupJoinRequest,onCancel:this.handleCancelGroupJoinPreview}):null,this.state.alertVisible?(0,vt.jsx)(kt,{title:this.state.alertParams.title,content:this.state.alertParams.content,onReject:this.state.alertParams.onReject?e=>this.setState({alertVisible:!1}):null,reject:this.state.alertParams.reject,onConfirm:this.state.alertParams.onConfirm?e=>{this.setState({alertVisible:!1}),this.state.alertParams.onConfirm()}:null,confirm:this.state.alertParams.confirm}):null,this.state.displayMobile&&"sidepanel"!=this.state.mobilePanel?null:(0,vt.jsx)(ad,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,state:this.state.sidePanelSelected,hashParams:this.state.sidePanelParams,title:this.state.sidePanelTitle,avatar:this.state.sidePanelAvatar,trustedBadges:this.state.myTrustedBadges,login:this.state.login,persist:this.state.persist,myUserId:this.state.myUserId,loginDisabled:this.state.loginDisabled,loadSpinnerVisible:this.state.loadSpinnerVisible,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,topicSelected:this.state.topicSelected,chatList:this.state.chatList,credMethod:this.state.credMethod,credCode:this.state.credCode,credToken:this.state.credToken,transport:this.state.transport,messageSounds:this.state.messageSounds,desktopAlerts:this.state.desktopAlerts,desktopAlertsEnabled:this.state.desktopAlertsEnabled,incognitoMode:this.state.incognitoMode,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection,serverVersion:this.state.serverVersion,reqCredMethod:this.state.reqCredMethod,textSize:this.state.textSize,colorSchema:this.state.colorSchema,wallpaper:this.state.wallpaper,wallpaperSize:this.state.wallpaperSize,wallpaperBlur:this.state.wallpaperBlur,systemColorSchema:this.state.systemColorSchema,sendOnEnter:this.state.sendOnEnter,onGlobalSettings:this.handleGlobalSettings,onSignUp:this.handleNewAccount,onSettings:this.handleSettings,onNavigate:this.basicNavigator,onLoginRequest:this.handleLoginRequest,onTenantResolved:this.handleTenantResolved,onPersistenceChange:this.handlePersistenceChange,onCreateAccount:this.handleNewAccountRequest,onImRegisterRequest:this.handleImRegisterRequest,onUpdateAccountDesc:this.handleTopicUpdateRequest,onUpdatePassword:this.handleUpdatePasswordRequest,onUpdateAccountTags:this.handleUpdateAccountTagsRequest,onTogglePushNotifications:this.toggleFCMToken,onToggleMessageSounds:this.handleToggleMessageSounds,onToggleIncognitoMode:this.handleToggleIncognitoMode,onChangeColorSchema:this.handleChangeColorSchema,onTextSizeChanged:this.handleChangeTextSize,onSendOnEnterChanged:this.handleSendOnEnter,onSelectWallpapers:this.handleSelectWallpapers,onWallpaperSelected:this.handleWallpaperSelected,onCredAdd:this.handleCredAdd,onCredDelete:this.handleCredDelete,onCredConfirm:this.handleCredConfirm,onTopicSelected:this.handleTopicSelected,onOpenScanner:this.handleOpenScanner,onCreateTopic:this.handleStartTopicRequest,onLogout:this.handleLogout,onDeleteAccount:this.handleDeleteAccount,onShowAlert:this.handleShowAlert,onCancel:this.handleSidepanelCancel,onError:this.handleError,onValidateCredentials:this.handleValidateCredentialsRequest,onPasswordResetRequest:this.handlePasswordResetRequest,onResetPassword:this.handleResetPassword,onShowArchive:this.handleShowArchive,onShowBlocked:this.handleShowBlocked,onShowCountrySelector:this.handleShowCountrySelector,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),i||o||a||r||l||c||d||h||u||g||p||this.state.displayMobile&&("topic-view"!=this.state.mobilePanel||this.state.infoPanel)?null:(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(gd,{tinode:this.tinode,connected:this.state.connected,ready:this.state.ready,online:this.state.topicSelectedOnline,acs:this.state.topicSelectedAcs,displayMobile:this.state.displayMobile,viewportWidth:this.state.viewportWidth,viewportHeight:this.state.viewportHeight,topic:this.state.topicSelected,jumpToSeq:this.state.sidePanelParams&&this.state.sidePanelParams.jumpseq,myUserId:this.state.myUserId,myUserName:this.state.sidePanelTitle,serverVersion:this.state.serverVersion,serverAddress:this.state.serverAddress,applicationVisible:this.state.applicationVisible,colorSchema:n,sendOnEnter:this.state.sendOnEnter,wallpaper:this.state.wallpaper,forwardMessage:this.state.forwardMessage,onCancelForwardMessage:this.handleHideForwardDialog,selectMode:this.state.selectMode&&this.state.selectModeTopic==this.state.topicSelected,selectedSeqs:this.state.selectedSeqs,onToggleMessageSelect:this.handleToggleMessageSelect,onExitSelectMode:this.handleExitSelectMode,onShowBatchForward:this.handleShowBatchForward,callTopic:this.state.callTopic,callSeq:this.state.callSeq,callState:this.state.callState,callAudioOnly:this.state.callAudioOnly,onCallHangup:this.handleCallHangup,onAcceptCall:this.handleCallAccept,onCallInvite:this.handleCallInvite,onCallSendOffer:this.handleCallSendOffer,onCallIceCandidate:this.handleCallIceCandidate,onCallSendAnswer:this.handleCallSendAnswer,canStartCall:!!this.state.topicSelected&&this.canStartCall(this.state.topicSelected),onStartAudioCall:this.handleStartAudioCall,onStartVideoCall:this.handleStartVideoCall,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,newTopicParams:this.state.newTopicParams,onHideMessagesView:this.handleHideMessagesView,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,showContextMenu:this.handleShowContextMenu,onChangePermissions:this.handleChangePermissions,onNewChat:this.handleNewChatInvitation,sendMessage:this.handleSendMessage,onVideoCallClosed:this.handleCallClose})}),this.state.infoPanel?(0,vt.jsx)(e.Suspense,{fallback:(0,vt.jsx)("div",{children:(0,vt.jsx)(s.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"})}),children:(0,vt.jsx)(ud,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,topic:this.state.topicSelected,searchableContacts:this.state.searchableContacts,myUserId:this.state.myUserId,panel:this.state.infoPanel,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,onNavigate:this.infoNavigator,onTopicDescUpdateRequest:this.handleTopicUpdateRequest,onShowAlert:this.handleShowAlert,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onDeleteTopic:this.handleDeleteTopicRequest,onDeleteMessages:this.handleDeleteMessagesRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onBlockTopic:this.handleBlockTopicRequest,onReportTopic:this.handleReportTopic,onShareTheCard:this.handleShareTheCard,onTopicTagsUpdateRequest:this.handleTagsUpdateRequest,onTopicUnArchive:this.handleUnarchive,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu})}):null]})}}var kd=(0,s.injectIntl)(vd);if("undefined"!=typeof FIREBASE_INIT&&FIREBASE_INIT&&FIREBASE_INIT.measurementId){const qd=document.getElementsByTagName("head")[0];let Md=document.createElement("script");function Ad(){dataLayer.push(arguments)}Md.src="https://www.googletagmanager.com/gtag/js?id="+FIREBASE_INIT.measurementId,Md.async=!0,qd.prepend(Md),window.dataLayer=window.dataLayer||[],Ad("js",new Date),Ad("config",FIREBASE_INIT.measurementId)}const Cd={ar:e=>a.e(143).then(a.t.bind(a,7143,19)),de:e=>a.e(175).then(a.t.bind(a,2175,19)),en:e=>a.e(399).then(a.t.bind(a,3399,19)),es:e=>a.e(64).then(a.t.bind(a,6064,19)),fr:e=>a.e(500).then(a.t.bind(a,2500,19)),it:e=>a.e(197).then(a.t.bind(a,7197,19)),ko:e=>a.e(186).then(a.t.bind(a,1186,19)),ro:e=>a.e(780).then(a.t.bind(a,8399,19)),ru:e=>a.e(553).then(a.t.bind(a,5553,19)),th:e=>a.e(536).then(a.t.bind(a,2536,19)),uk:e=>a.e(552).then(a.t.bind(a,4552,19)),vi:e=>a.e(297).then(a.t.bind(a,6297,19)),zh:e=>a.e(570).then(a.t.bind(a,570,19)),"zh-TW":e=>a.e(744).then(a.t.bind(a,5744,19))},{params:zd}=is.A.parseUrl(is.A.currentUrl()),_d=zd&&zd.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Sd=_d.replace("_","-"),Nd=Sd.split("-")[0].toLowerCase(),Td=Cd[Sd]?_d:Cd[Nd]?Nd:"en",Bd=document.getElementsByTagName("html")[0];Bd.setAttribute("lang",Td),["ar","fa","he","ur"].includes(Nd)&&Bd.setAttribute("dir","rtl");const Pd=(0,t.H)(document.getElementById("mountPoint"));Cd[Td]().then(e=>Pd.render(n().createElement(s.IntlProvider,{locale:_d,messages:e,textComponent:n().Fragment},n().createElement(kd,null))))}()}();
|
||
//# sourceMappingURL=index.prod.js.map
|