@forsion/extend 0.9.8 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -1,72 +1,72 @@
1
- "use strict";var __fxExtend=(()=>{var Da=Object.defineProperty;var Of=Object.getOwnPropertyDescriptor;var Ff=Object.getOwnPropertyNames;var $f=Object.prototype.hasOwnProperty;var Bf=(e,t)=>{for(var n in t)Da(e,n,{get:t[n],enumerable:!0})},Uf=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ff(t))!$f.call(e,a)&&a!==n&&Da(e,a,{get:()=>t[a],enumerable:!(o=Of(t,a))||o.enumerable});return e};var Hf=e=>Uf(Da({},"__esModule",{value:!0}),e);var qy={};Bf(qy,{dispose:()=>_f});function qf(e,t){this.v=e,this.k=t}function sl(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function Wf(e){if(Array.isArray(e))return e}function Vf(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var o,a,i,s,l=[],c=!0,d=!1;try{if(i=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(o=i.call(n)).done)&&(l.push(o.value),l.length!==t);c=!0);}catch(m){d=!0,a=m}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw a}}return l}}function jf(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Gf(e,t){return Wf(e)||Vf(e,t)||Jf(e,t)||jf()}function Jf(e,t){if(e){if(typeof e=="string")return sl(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sl(e,t):void 0}}function Ro(e){var t,n;function o(i,s){try{var l=e[i](s),c=l.value,d=c instanceof qf;Promise.resolve(d?c.v:c).then(function(m){if(d){var u=i==="return"&&c.k?i:"next";if(!c.k||m.done)return o(u,m);m=e[u](m).value}a(!!l.done,m)},function(m){o("throw",m)})}catch(m){a(2,m)}}function a(i,s){i===2?t.reject(s):t.resolve({value:s,done:i}),(t=t.next)?o(t.key,t.arg):n=null}this._invoke=function(i,s){return new Promise(function(l,c){var d={key:i,arg:s,resolve:l,reject:c,next:null};n?n=n.next=d:(t=n=d,o(i,s))})},typeof e.return!="function"&&(this.return=void 0)}Ro.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Ro.prototype.next=function(e){return this._invoke("next",e)},Ro.prototype.throw=function(e){return this._invoke("throw",e)},Ro.prototype.return=function(e){return this._invoke("return",e)};var wl=Object.entries,ll=Object.setPrototypeOf,Kf=Object.isFrozen,Xf=Object.getPrototypeOf,Yf=Object.getOwnPropertyDescriptor,lt=Object.freeze,ut=Object.seal,Ar=Object.create,zl=typeof Reflect<"u"&&Reflect,Ha=zl.apply,qa=zl.construct;lt||(lt=function(t){return t});ut||(ut=function(t){return t});Ha||(Ha=function(t,n){for(var o=arguments.length,a=new Array(o>2?o-2:0),i=2;i<o;i++)a[i-2]=arguments[i];return t.apply(n,a)});qa||(qa=function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];return new t(...o)});var or=ot(Array.prototype.forEach);Array.prototype.indexOf;var Zf=ot(Array.prototype.lastIndexOf),cl=ot(Array.prototype.pop),Gr=ot(Array.prototype.push);Array.prototype.slice;var Qf=ot(Array.prototype.splice),Er=Array.isArray,Xr=ot(String.prototype.toLowerCase),Na=ot(String.prototype.toString),dl=ot(String.prototype.match),Jr=ot(String.prototype.replace),ul=ot(String.prototype.indexOf),em=ot(String.prototype.trim),tm=ot(Number.prototype.toString),nm=ot(Boolean.prototype.toString),pl=typeof BigInt>"u"?null:ot(BigInt.prototype.toString),fl=typeof Symbol>"u"?null:ot(Symbol.prototype.toString),Rt=ot(Object.prototype.hasOwnProperty),Kr=ot(Object.prototype.toString),zt=ot(RegExp.prototype.test),Wn=rm(TypeError);function ot(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];return Ha(e,t,o)}}function rm(e){return function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return qa(e,n)}}function Ae(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Xr;if(ll&&ll(e,null),!Er(t))return e;let o=t.length;for(;o--;){let a=t[o];if(typeof a=="string"){let i=n(a);i!==a&&(Kf(t)||(t[o]=i),a=i)}e[a]=!0}return e}function om(e){for(let t=0;t<e.length;t++)Rt(e,t)||(e[t]=null);return e}function qt(e){let t=Ar(null);for(let o of wl(e)){var n=Gf(o,2);let a=n[0],i=n[1];Rt(e,a)&&(Er(i)?t[a]=om(i):i&&typeof i=="object"&&i.constructor===Object?t[a]=qt(i):t[a]=i)}return t}function am(e){switch(typeof e){case"string":return e;case"number":return tm(e);case"boolean":return nm(e);case"bigint":return pl?pl(e):"0";case"symbol":return fl?fl(e):"Symbol()";case"undefined":return Kr(e);case"function":case"object":{if(e===null)return Kr(e);let t=e,n=en(t,"toString");if(typeof n=="function"){let o=n(t);return typeof o=="string"?o:Kr(o)}return Kr(e)}default:return Kr(e)}}function en(e,t){for(;e!==null;){let o=Yf(e,t);if(o){if(o.get)return ot(o.get);if(typeof o.value=="function")return ot(o.value)}e=Xf(e)}function n(){return null}return n}function im(e){try{return zt(e,""),!0}catch{return!1}}var ml=lt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Oa=lt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Fa=lt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),sm=lt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),$a=lt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),lm=lt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),gl=lt(["#text"]),hl=lt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Ba=lt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),vl=lt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Io=lt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),cm=ut(/{{[\w\W]*|^[\w\W]*}}/g),dm=ut(/<%[\w\W]*|^[\w\W]*%>/g),um=ut(/\${[\w\W]*/g),pm=ut(/^data-[\-\w.\u00B7-\uFFFF]+$/),fm=ut(/^aria-[\-\w]+$/),bl=ut(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),mm=ut(/^(?:\w+script|data):/i),gm=ut(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),hm=ut(/^html$/i),vm=ut(/^[a-z][.\w]*(-[.\w]+)+$/i),yl=ut(/<[/\w!]/g),xl=ut(/<[/\w]/g),bm=ut(/<\/no(script|embed|frames)/i),ym=ut(/\/>/i),Ht={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Sl=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],xm=lt(Ae({},Sl)),km=(function(){let e={};return or(Sl,t=>{e[t]=ut(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),lt(e)})(),wm=function(){return typeof window>"u"?null:window},zm=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let o=null,a="data-tt-policy-suffix";n&&n.hasAttribute(a)&&(o=n.getAttribute(a));let i="dompurify"+(o?"#"+o:"");try{return t.createPolicy(i,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},kl=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Vn=function(t,n,o,a){return Rt(t,n)&&Er(t[n])?Ae(a.base?qt(a.base):{},t[n],a.transform):o},Ua=function(t,n,o){let a=Rt(t,n)?t[n]:void 0;return a&&typeof a=="object"?qt(a):o()};function _l(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:wm(),t=V=>_l(V);if(t.version="3.4.16",t.removed=[],!e||!e.document||e.document.nodeType!==Ht.document||!e.Element)return t.isSupported=!1,t;let n=e.document,o=n,a=o.currentScript;e.DocumentFragment;let i=e.HTMLTemplateElement,s=e.Node,l=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let d=e.DOMParser,m=e.trustedTypes,u=l.prototype,p=en(u,"cloneNode"),g=en(u,"remove"),f=en(u,"removeAttributeNode"),h=en(u,"nextSibling"),k=en(u,"childNodes"),x=en(u,"parentNode"),S=en(u,"shadowRoot"),w=en(u,"attributes"),T=s&&s.prototype?en(s.prototype,"nodeType"):null,R=s&&s.prototype?en(s.prototype,"nodeName"):null,B=s&&s.prototype?en(s.prototype,"ownerDocument"):null,U=function(v){return T?T(v):v.nodeType},N=function(v){return R?R(v):v.nodeName};if(typeof i=="function"){let V=n.createElement("template");V.content&&V.content.ownerDocument&&(n=V.content.ownerDocument)}let G,z="",P,F=!1,L=0,ae=function(){if(L>0)throw Wn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},b=function(v){ae(),L++;try{return G.createHTML(v)}finally{L--}},_=function(v){ae(),L++;try{return G.createScriptURL(v)}finally{L--}},I=function(){return F||(P=zm(m,a),F=!0),P},H=n,Q=H.implementation,$=H.createNodeIterator,te=H.createDocumentFragment,ce=H.getElementsByTagName,We=o.importNode,pe=kl();t.isSupported=typeof wl=="function"&&typeof x=="function"&&Q&&Q.createHTMLDocument!==void 0;let Be=cm,ht=dm,he=um,at=pm,yn=fm,dt=mm,Ye=gm,nn=vm,Jt=bl,Ce=null,rn=Ae({},[...ml,...Oa,...Fa,...$a,...gl]),Pe=null,Ft=Ae({},[...hl,...Ba,...vl,...Io]),vt=Object.seal(Ar(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Tn=null,Kt=null,Xt=Object.seal(Ar(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),bt=!0,Ze=!0,$t=!1,on=!0,Pt=!1,et=!0,Bt=!1,xn=!1,it=null,$n=null,Yt=!1,Mt=!1,st=!1,Bn=!1,Un=!0,er=!1,An="user-content-",D=!0,re=!1,ve={},Ne=null,kt=Ae({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),tt=null,je=Ae({},["audio","video","img","source","image","track"]),an=null,ke=Ae({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ke="http://www.w3.org/1998/Math/MathML",wt="http://www.w3.org/2000/svg",Ie="http://www.w3.org/1999/xhtml",yt=Ie,Zt=!1,tr=null,Ma=Ae({},[Ke,wt,Ie],Na),So=lt(["mi","mo","mn","ms","mtext"]),y=Ae({},So),A=lt(["annotation-xml"]),M=Ae({},A),ee=Ae({},["title","style","font","a","script"]),j=null,ue=["application/xhtml+xml","text/html"],we="text/html",se=null,_e=null,_o=n.createElement("form"),nr=function(v){return v instanceof RegExp||v instanceof Function},Sr=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(_e&&_e===v)return;(!v||typeof v!="object")&&(v={}),v=qt(v),j=ue.indexOf(v.PARSER_MEDIA_TYPE)===-1?we:v.PARSER_MEDIA_TYPE,se=j==="application/xhtml+xml"?Na:Xr,Ce=Vn(v,"ALLOWED_TAGS",rn,{transform:se}),Pe=Vn(v,"ALLOWED_ATTR",Ft,{transform:se}),tr=Vn(v,"ALLOWED_NAMESPACES",Ma,{transform:Na}),an=Vn(v,"ADD_URI_SAFE_ATTR",ke,{transform:se,base:ke}),tt=Vn(v,"ADD_DATA_URI_TAGS",je,{transform:se,base:je}),Ne=Vn(v,"FORBID_CONTENTS",kt,{transform:se}),Tn=Vn(v,"FORBID_TAGS",qt({}),{transform:se}),Kt=Vn(v,"FORBID_ATTR",qt({}),{transform:se}),ve=Rt(v,"USE_PROFILES")?v.USE_PROFILES&&typeof v.USE_PROFILES=="object"?qt(v.USE_PROFILES):v.USE_PROFILES:!1,bt=v.ALLOW_ARIA_ATTR!==!1,Ze=v.ALLOW_DATA_ATTR!==!1,$t=v.ALLOW_UNKNOWN_PROTOCOLS||!1,on=v.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Pt=v.SAFE_FOR_TEMPLATES||!1,et=v.SAFE_FOR_XML!==!1,Bt=v.WHOLE_DOCUMENT||!1,Mt=v.RETURN_DOM||!1,st=v.RETURN_DOM_FRAGMENT||!1,Bn=v.RETURN_TRUSTED_TYPE||!1,Yt=v.FORCE_BODY||!1,Un=v.SANITIZE_DOM!==!1,er=v.SANITIZE_NAMED_PROPS||!1,D=v.KEEP_CONTENT!==!1,re=v.IN_PLACE||!1,Jt=im(v.ALLOWED_URI_REGEXP)?v.ALLOWED_URI_REGEXP:bl,yt=typeof v.NAMESPACE=="string"?v.NAMESPACE:Ie,y=Ua(v,"MATHML_TEXT_INTEGRATION_POINTS",()=>Ae({},So)),M=Ua(v,"HTML_INTEGRATION_POINTS",()=>Ae({},A));let E=Ua(v,"CUSTOM_ELEMENT_HANDLING",()=>Ar(null));if(vt=Ar(null),Rt(E,"tagNameCheck")&&nr(E.tagNameCheck)&&(vt.tagNameCheck=E.tagNameCheck),Rt(E,"attributeNameCheck")&&nr(E.attributeNameCheck)&&(vt.attributeNameCheck=E.attributeNameCheck),Rt(E,"allowCustomizedBuiltInElements")&&typeof E.allowCustomizedBuiltInElements=="boolean"&&(vt.allowCustomizedBuiltInElements=E.allowCustomizedBuiltInElements),ut(vt),Pt&&(Ze=!1),st&&(Mt=!0),ve&&(Ce=Ae({},gl),Pe=Ar(null),ve.html===!0&&(Ae(Ce,ml),Ae(Pe,hl)),ve.svg===!0&&(Ae(Ce,Oa),Ae(Pe,Ba),Ae(Pe,Io)),ve.svgFilters===!0&&(Ae(Ce,Fa),Ae(Pe,Ba),Ae(Pe,Io)),ve.mathMl===!0&&(Ae(Ce,$a),Ae(Pe,vl),Ae(Pe,Io))),Xt.tagCheck=null,Xt.attributeCheck=null,Rt(v,"ADD_TAGS")&&(typeof v.ADD_TAGS=="function"?Xt.tagCheck=v.ADD_TAGS:Er(v.ADD_TAGS)&&(Ce===rn&&(Ce=qt(Ce)),Ae(Ce,v.ADD_TAGS,se))),Rt(v,"ADD_ATTR")&&(typeof v.ADD_ATTR=="function"?Xt.attributeCheck=v.ADD_ATTR:Er(v.ADD_ATTR)&&(Pe===Ft&&(Pe=qt(Pe)),Ae(Pe,v.ADD_ATTR,se))),Rt(v,"ADD_FORBID_CONTENTS")&&Er(v.ADD_FORBID_CONTENTS)&&(Ne===kt&&(Ne=qt(Ne)),Ae(Ne,v.ADD_FORBID_CONTENTS,se)),D&&(Ce["#text"]=!0),Bt&&Ae(Ce,["html","head","body"]),Ce.table&&(Ae(Ce,["tbody"]),delete Tn.tbody),v.TRUSTED_TYPES_POLICY){if(typeof v.TRUSTED_TYPES_POLICY.createHTML!="function")throw Wn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof v.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Wn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let q=G;G=v.TRUSTED_TYPES_POLICY;try{z=b("")}catch(K){throw G=q,K}}else v.TRUSTED_TYPES_POLICY===null?(G=void 0,z=""):(G===void 0&&(G=I()),G&&typeof z=="string"&&(z=b("")));lt&&lt(v),_e=v},Hn=Ae({},[...Oa,...Fa,...sm]),Xs=Ae({},[...$a,...lm]),Cf=function(v,E,q){return E.namespaceURI===Ie?v==="svg":E.namespaceURI===Ke?v==="svg"&&(q==="annotation-xml"||y[q]):!!Hn[v]},Tf=function(v,E,q){return E.namespaceURI===Ie?v==="math":E.namespaceURI===wt?v==="math"&&M[q]:!!Xs[v]},Af=function(v,E,q){return E.namespaceURI===wt&&!M[q]||E.namespaceURI===Ke&&!y[q]?!1:!Xs[v]&&(ee[v]||!Hn[v])},Ef=function(v){let E=x(v);(!E||!E.tagName)&&(E={namespaceURI:yt,tagName:"template"});let q=Xr(v.tagName),K=Xr(E.tagName);return tr[v.namespaceURI]?v.namespaceURI===wt?Cf(q,E,K):v.namespaceURI===Ke?Tf(q,E,K):v.namespaceURI===Ie?Af(q,E,K):!!(j==="application/xhtml+xml"&&tr[v.namespaceURI]):!1},qn=function(v){Gr(t.removed,{element:v});try{x(v).removeChild(v)}catch{if(g(v),!x(v))throw Wn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ys=function(v,E,q){try{f(v,E)}catch{try{v.removeAttribute(q)}catch{}}},Co=function(v){To(v);let E=k(v);if(E){let K=[];or(E,fe=>{Gr(K,fe)}),or(K,fe=>{try{g(fe)}catch{}})}let q=w(v);if(q)for(let K=q.length-1;K>=0;--K){let fe=q[K],ze=fe&&fe.name;typeof ze=="string"&&Ys(v,fe,ze)}},rr=function(v,E,q){if(!q)try{q=E.getAttributeNode(v)}catch{q=null}Gr(t.removed,{attribute:q||null,from:E});try{q?f(E,q):E.removeAttribute(v)}catch{try{E.removeAttribute(v)}catch{}}if(v==="is")if(Mt||st)try{qn(E)}catch{}else try{E.setAttribute(v,"")}catch{}},Pf=function(v){let E=w(v);if(E)for(let q=E.length-1;q>=0;--q){let K=E[q],fe=K&&K.name;typeof fe!="string"||Pe[se(fe)]||Ys(v,K,fe)}},To=function(v){let E=[v];for(;E.length>0;){let q=E.pop();U(q)===Ht.element&&Pf(q);let K=k(q);if(K)for(let fe=K.length-1;fe>=0;--fe)E.push(K[fe])}},Zs=function(v,E){return et?v==="patchsrc"?!0:v==="for"&&E!=="label"&&E!=="output":!1},Mf=function(v){if(!et)return;let E=[v];for(;E.length>0;){let q=E.pop(),K=U(q);if(K===Ht.processingInstruction||K===Ht.comment&&zt(xl,q.data)){try{g(q)}catch{}continue}if(K===Ht.element){let ze=q,Te=se(N(q));try{ze.hasAttribute&&ze.hasAttribute("patchsrc")&&ze.removeAttribute("patchsrc"),ze.hasAttribute&&ze.hasAttribute("for")&&Zs("for",Te)&&ze.removeAttribute("for")}catch{}}let fe=k(q);if(fe)for(let ze=fe.length-1;ze>=0;--ze)E.push(fe[ze])}},Qs=function(v){let E=null,q=null;if(Yt)v="<remove></remove>"+v;else{let ze=dl(v,/^[\r\n\t ]+/);q=ze&&ze[0]}j==="application/xhtml+xml"&&yt===Ie&&(v='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+v+"</body></html>");let K=G?b(v):v;if(yt===Ie)try{E=new d().parseFromString(K,j)}catch{}if(!E||!E.documentElement){E=Q.createDocument(yt,"template",null);try{E.documentElement.innerHTML=Zt?z:K}catch{}}let fe=E.body||E.documentElement;return v&&q&&fe.insertBefore(n.createTextNode(q),fe.childNodes[0]||null),yt===Ie?ce.call(E,Bt?"html":"body")[0]:Bt?E.documentElement:fe},el=function(v){let E=B?B(v):v.ownerDocument;return $.call(E||v,v,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Ao=function(v){return v=Jr(v,Be," "),v=Jr(v,ht," "),v=Jr(v,he," "),v},Ra=function(v){var E;v.normalize();let q=B?B(v):v.ownerDocument,K=$.call(q||v,v,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),fe=K.nextNode();for(;fe;)fe.data=Ao(fe.data),fe=K.nextNode();let ze=(E=v.querySelectorAll)===null||E===void 0?void 0:E.call(v,"template");ze&&or(ze,Te=>{_r(Te.content)&&Ra(Te.content)})},Eo=function(v){let E=R?R(v):null;return typeof E!="string"||se(E)!=="form"?!1:typeof v.nodeName!="string"||typeof v.textContent!="string"||typeof v.removeChild!="function"||v.attributes!==w(v)||typeof v.removeAttribute!="function"||typeof v.removeAttributeNode!="function"||typeof v.getAttributeNode!="function"||typeof v.setAttribute!="function"||typeof v.namespaceURI!="string"||typeof v.insertBefore!="function"||typeof v.hasChildNodes!="function"||v.nodeType!==T(v)||v.childNodes!==k(v)},_r=function(v){if(!T||typeof v!="object"||v===null)return!1;try{return T(v)===Ht.documentFragment}catch{return!1}},jr=function(v){if(!T||typeof v!="object"||v===null)return!1;try{return typeof T(v)=="number"}catch{return!1}};function kn(V,v,E){V.length!==0&&or(V,q=>{q.call(t,v,E,_e)})}let Rf=function(v,E){return!!(et&&v.hasChildNodes()&&!jr(v.firstElementChild)&&zt(yl,v.textContent)&&zt(yl,v.innerHTML)||et&&v.namespaceURI===Ie&&xm[E]&&(jr(v.firstElementChild)||typeof v.textContent=="string"&&zt(km[E],v.textContent))||v.nodeType===Ht.processingInstruction||et&&v.nodeType===Ht.comment&&zt(xl,v.data))},Po=function(v,E){if(v instanceof RegExp)return zt(v,E);if(v instanceof Function){for(var q=arguments.length,K=new Array(q>2?q-2:0),fe=2;fe<q;fe++)K[fe-2]=arguments[fe];return!!v(E,...K)}return!1},If=function(v,E,q){if(!Tn[E]&&ol(E)&&Po(vt.tagNameCheck,E))return!1;if(D&&!Ne[E]){let K=x(v),fe=k(v);if(fe&&K){let ze=fe.length;for(let Te=ze-1;Te>=0;--Te){let Qe=v===q?p(fe[Te],!0):fe[Te];K.insertBefore(Qe,h(v))}}}return qn(v),!0},tl=function(v,E,q,K){return v.length===0?E:E===q||E===K?qt(E):E},Cr=function(v,E){return v===E||x(v)!==null?!1:(re&&To(v),!0)},nl=function(v,E){if(kn(pe.beforeSanitizeElements,v,null),Cr(v,E))return!0;if(Eo(v))return qn(v),!0;let q=se(N(v));if(Ce=tl(pe.uponSanitizeElement,Ce,rn,it),kn(pe.uponSanitizeElement,v,{tagName:q,allowedTags:Ce}),Cr(v,E))return!0;if(Rf(v,q))return qn(v),!0;if(Tn[q]||!(Xt.tagCheck instanceof Function&&Xt.tagCheck(q))&&!Ce[q]){let K=If(v,q,E);return K===!1&&(kn(pe.afterSanitizeElements,v,null),Cr(v,E))?!0:K}if(U(v)===Ht.element&&!Ef(v)||(q==="noscript"||q==="noembed"||q==="noframes")&&zt(bm,v.innerHTML))return qn(v),!0;if(Pt&&v.nodeType===Ht.text){let K=Ao(v.textContent);v.textContent!==K&&(Gr(t.removed,{element:v.cloneNode()}),v.textContent=K)}return kn(pe.afterSanitizeElements,v,null),Cr(v,E)},rl=function(v,E,q){if(Kt[E]||Zs(E,v)||Un&&(E==="id"||E==="name")&&(q in n||q in _o))return!1;let K=Pe[E]||Xt.attributeCheck instanceof Function&&Xt.attributeCheck(E,v);return Ze&&zt(at,E)||bt&&zt(yn,E)?!0:K?an[E]||zt(Jt,Jr(q,Ye,""))||(E==="src"||E==="xlink:href"||E==="href")&&v!=="script"&&ul(q,"data:")===0&&tt[v]||$t&&!zt(dt,Jr(q,Ye,""))?!0:!q:ol(v)&&Po(vt.tagNameCheck,v)&&Po(vt.attributeNameCheck,E,v)||E==="is"&&vt.allowCustomizedBuiltInElements&&Po(vt.tagNameCheck,q)},Lf=Ae({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),ol=function(v){return!Lf[Xr(v)]&&zt(nn,v)},Df=function(v,E,q,K){if(G&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!q)switch(m.getAttributeType(v,E)){case"TrustedHTML":return b(K);case"TrustedScriptURL":return _(K)}return K},Nf=function(v,E,q,K){try{return q?v.setAttributeNS(q,E,K):v.setAttribute(E,K),Eo(v)?(qn(v),!1):!0}catch{return rr(E,v),!1}},al=function(v,E){if(kn(pe.beforeSanitizeAttributes,v,null),Cr(v,E))return;let q=v.attributes;if(!q||Eo(v))return;Pe=tl(pe.uponSanitizeAttribute,Pe,Ft,$n);let K={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Pe,forceKeepAttr:void 0},fe=q.length,ze=se(v.nodeName);for(;fe--;){let Te=q[fe],Qe=Te.name,Qt=Te.namespaceURI,Ut=Te.value,Tr=se(Qe),La=Ut,Ct=Qe==="value"?La:em(La),il=!1;if(K.attrName=Tr,K.attrValue=Ct,K.keepAttr=!0,K.forceKeepAttr=void 0,kn(pe.uponSanitizeAttribute,v,K),Ct=K.attrValue,er&&(Tr==="id"||Tr==="name")&&ul(Ct,An)!==0&&(rr(Qe,v,Te),Ct=An+Ct,il=!0),et&&zt(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Ct)){rr(Qe,v,Te);continue}if(Tr==="attributename"&&dl(Ct,"href")){rr(Qe,v,Te);continue}if(!K.forceKeepAttr){if(!K.keepAttr){rr(Qe,v,Te);continue}if(!on&&zt(ym,Ct)){rr(Qe,v,Te);continue}if(Pt&&(Ct=Ao(Ct)),!rl(ze,Tr,Ct)){rr(Qe,v,Te);continue}Ct=Df(ze,Tr,Qt,Ct),Ct!==La&&Nf(v,Qe,Qt,Ct)&&il&&cl(t.removed)}}kn(pe.afterSanitizeAttributes,v,null),Cr(v,E)},Mo=function(v){let E=null,q=el(v);for(kn(pe.beforeSanitizeShadowDOM,v,null);E=q.nextNode();)if(kn(pe.uponSanitizeShadowNode,E,null),nl(E,v),al(E,v),_r(E.content)&&Mo(E.content),U(E)===Ht.element){let K=S(E);_r(K)&&(Ia(K),Mo(K))}kn(pe.afterSanitizeShadowDOM,v,null)},Ia=function(v){let E=[{node:v,shadow:null}];for(;E.length>0;){let q=E.pop();if(q.shadow){Mo(q.shadow);continue}let K=q.node,fe=U(K)===Ht.element,ze=k(K);if(ze)for(let Te=ze.length-1;Te>=0;--Te)E.push({node:ze[Te],shadow:null});if(fe){let Te=R?R(K):null;if(typeof Te=="string"&&se(Te)==="template"){let Qe=K.content;_r(Qe)&&E.push({node:Qe,shadow:null})}}if(fe){let Te=S(K);_r(Te)&&E.push({node:null,shadow:Te},{node:Te,shadow:null})}}};return t.sanitize=function(V){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=null,q=null,K=null,fe=null;if(Zt=!V,Zt&&(V="<!-->"),typeof V!="string"&&!jr(V)&&(V=am(V),typeof V!="string"))throw Wn("dirty is not a string, aborting");if(!t.isSupported)return V;xn?(Ce=it,Pe=$n):Sr(v),(pe.uponSanitizeElement.length>0||pe.uponSanitizeAttribute.length>0)&&(Ce=qt(Ce)),pe.uponSanitizeAttribute.length>0&&(Pe=qt(Pe)),t.removed=[];let ze=re&&typeof V!="string"&&jr(V);if(ze){Mf(V);let Qt=N(V);if(typeof Qt=="string"){let Ut=se(Qt);if(!Ce[Ut]||Tn[Ut])throw Co(V),Wn("root node is forbidden and cannot be sanitized in-place")}if(Eo(V))throw Co(V),Wn("root node is clobbered and cannot be sanitized in-place");try{Ia(V)}catch(Ut){throw Co(V),Ut}}else if(jr(V))E=Qs("<!---->"),q=E.ownerDocument.importNode(V,!0),q.nodeType===Ht.element&&q.nodeName==="BODY"||q.nodeName==="HTML"?E=q:E.appendChild(q),Ia(E);else{if(!Mt&&!Pt&&!Bt&&V.indexOf("<")===-1)return G&&Bn?b(V):V;if(E=Qs(V),!E)return Mt?null:Bn?z:""}E&&Yt&&qn(E.firstChild);let Te=ze?V:E;try{let Qt=el(Te);for(;K=Qt.nextNode();)nl(K,Te),al(K,Te),_r(K.content)&&Mo(K.content)}catch(Qt){throw ze&&(Co(V),or(t.removed,Ut=>{Ut.element&&To(Ut.element)})),Qt}if(ze){let Qt=!1;if(or(t.removed,Ut=>{Ut.element&&(Ut.element===V&&(Qt=!0),To(Ut.element))}),Qt)throw Wn("a node selected for removal could not be safely returned; refusing to sanitize in place");return Pt&&Ra(V),V}if(Mt){if(Pt&&Ra(E),st)for(fe=te.call(E.ownerDocument);E.firstChild;)fe.appendChild(E.firstChild);else fe=E;return(Pe.shadowroot||Pe.shadowrootmode)&&(fe=We.call(o,fe,!0)),fe}let Qe=Bt?E.outerHTML:E.innerHTML;return Bt&&Ce["!doctype"]&&E.ownerDocument&&E.ownerDocument.doctype&&E.ownerDocument.doctype.name&&zt(hm,E.ownerDocument.doctype.name)&&(Qe="<!DOCTYPE "+E.ownerDocument.doctype.name+`>
3
- `+Qe),Pt&&(Qe=Ao(Qe)),G&&Bn?b(Qe):Qe},t.setConfig=function(){let V=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Sr(V),xn=!0,it=Ce,$n=Pe},t.clearConfig=function(){_e=null,xn=!1,it=null,$n=null,G=P,z=""},t.isValidAttribute=function(V,v,E){_e||Sr({});let q=se(V),K=se(v);return rl(q,K,E)},t.addHook=function(V,v){typeof v=="function"&&Rt(pe,V)&&Gr(pe[V],v)},t.removeHook=function(V,v){if(Rt(pe,V)){if(v!==void 0){let E=Zf(pe[V],v);return E===-1?void 0:Qf(pe[V],E,1)[0]}return cl(pe[V])}},t.removeHooks=function(V){Rt(pe,V)&&(pe[V]=[])},t.removeAllHooks=function(){pe=kl()},t}var Wa=_l();function Ja(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var sr=Ja();function Nl(e){sr=e}var ar={exec:()=>null};function Pr(e){let t=[];return n=>{let o=Math.max(0,Math.min(3,n-1)),a=t[o];return a||(a=e(o),t[o]=a),a}}function ye(e,t=""){let n=typeof e=="string"?e:e.source,o={replace:(a,i)=>{let s=typeof i=="string"?i:i.source;return s=s.replace(xt.caret,"$1"),n=n.replace(a,s),o},getRegex:()=>new RegExp(n,t)};return o}var Sm=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),xt={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Pr(e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Pr(e=>new RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Pr(e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Pr(e=>new RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Pr(e=>new RegExp(`^ {0,${e}}(?:</?(?:${eo})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,"i")),blockquoteBeginRegex:Pr(e=>new RegExp(`^ {0,${e}}>`))},_m=/^(?:[ \t]*(?:\n|$))+/,Cm=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Tm=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Qr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Am=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ka=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ol=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Fl=ye(Ol).replace(/bull/g,Ka).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Em=ye(Ol).replace(/bull/g,Ka).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Xa=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Pm=/^[^\n]+/,Ya=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Mm=ye(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ya).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Rm=ye(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Ka).getRegex(),eo="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Za=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Im=ye("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Za).replace("tag",eo).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),$l=e=>ye(Xa).replace("hr",Qr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",eo).getRegex(),Lm=$l(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Dm=$l(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Nm=ye(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Dm).getRegex(),Qa={blockquote:Nm,code:Cm,def:Mm,fences:Tm,heading:Am,hr:Qr,html:Im,lheading:Fl,list:Rm,newline:_m,paragraph:Lm,table:ar,text:Pm},Cl=ye("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Qr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",eo).getRegex(),Om={...Qa,lheading:Em,table:Cl,paragraph:ye(Xa).replace("hr",Qr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Cl).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",eo).getRegex()},Fm={...Qa,html:ye(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Za).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ar,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ye(Xa).replace("hr",Qr).replace("heading",` *#{1,6} *[^
4
- ]`).replace("lheading",Fl).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},$m=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Bm=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Bl=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,Um=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,En=/[\p{P}\p{S}]/u,Mr=/[\s\p{P}\p{S}]/u,to=/[^\s\p{P}\p{S}]/u,Hm=ye(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Mr).getRegex(),qm=/[\p{Pi}\p{Ps}"']/u,Ul=/(?!~)[\p{P}\p{S}]/u,Wm=/(?!~)[\s\p{P}\p{S}]/u,Vm=/(?:[^\s\p{P}\p{S}]|~)/u,jm=ye(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Sm?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Hl=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Gm=ye(Hl,"u").replace(/punct/g,En).getRegex(),Jm=ye(Hl,"u").replace(/punct/g,Ul).getRegex(),Km=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,Xm=ye(Km,"u").replace(/openQuote/g,qm).replace(/punct/g,En).getRegex(),ql="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ym=ye(ql,"gu").replace(/notPunctSpace/g,to).replace(/punctSpace/g,Mr).replace(/punct/g,En).getRegex(),Zm=ye(ql,"gu").replace(/notPunctSpace/g,Vm).replace(/punctSpace/g,Wm).replace(/punct/g,Ul).getRegex(),Qm="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",eg=ye(Qm,"gu").replace(/notPunctSpace/g,to).replace(/punctSpace/g,Mr).replace(/punct/g,En).getRegex(),tg=ye("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,to).replace(/punctSpace/g,Mr).replace(/punct/g,En).getRegex(),ng="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",rg=ye(ng,"gu").replace(/notPunctSpace/g,to).replace(/punctSpace/g,Mr).replace(/punct/g,En).getRegex(),og=ye(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,En).getRegex(),ag="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ig=ye(ag,"gu").replace(/notPunctSpace/g,to).replace(/punctSpace/g,Mr).replace(/punct/g,En).getRegex(),sg=ye(/\\(punct)/,"gu").replace(/punct/g,En).getRegex(),lg=ye(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cg=ye(Za).replace("(?:-->|$)","-->").getRegex(),dg=ye("^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cg).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Wl=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,Do=ye(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace("brackets",Wl).getRegex(),ug=ye(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Do).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pg=ye(/^!?\[(label)\]\[(ref)\]/).replace("label",Do).replace("ref",Ya).getRegex(),fg=ye(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ya).getRegex(),Tl=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,mg=ye(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace("brackets",Wl).getRegex(),gg=ye("reflink|nolink(?!\\()","g").replace("reflink",ye(/^!?\[(label)\]\[(ref)\]/).replace("label",mg).replace("ref",Tl).getRegex()).replace("nolink",ye(/^!?\[(ref)\](?:\[\])?/).replace("ref",Tl).getRegex()).getRegex(),Al=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,hg=/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/,vg=ye(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,hg).getRegex(),ei={_backpedal:ar,anyPunctuation:sg,autolink:lg,blockSkip:jm,br:Bl,code:Bm,del:ar,delLDelim:ar,delRDelim:ar,emStrongLDelim:Gm,emStrongRDelimAst:Ym,emStrongRDelimUnd:tg,escape:$m,link:ug,nolink:fg,punctuation:Hm,reflink:pg,reflinkSearch:gg,tag:dg,text:Um,url:ar},bg={...ei,emStrongLDelim:Xm,emStrongRDelimAst:eg,emStrongRDelimUnd:rg,link:ye(/^!?\[(label)\]\((.*?)\)/).replace("label",Do).getRegex(),reflink:ye(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Do).getRegex()},Va={...ei,emStrongRDelimAst:Zm,emStrongLDelim:Jm,delLDelim:og,delRDelim:ig,url:ye(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol",vg).replace("protocol",Al).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ye(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol",Al).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},yg={...Va,br:ye(Bl).replace("{2,}","*").getRegex(),text:ye(Va.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Lo={normal:Qa,gfm:Om,pedantic:Fm},Yr={normal:ei,gfm:Va,breaks:yg,pedantic:bg},xg={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},El=e=>xg[e];function Wt(e,t){if(t){if(xt.escapeTest.test(e))return e.replace(xt.escapeReplace,El)}else if(xt.escapeTestNoEncode.test(e))return e.replace(xt.escapeReplaceNoEncode,El);return e}function kg(e){return e.replace(xt.numericCharacterReference,(t,n,o)=>{let a=n===void 0?Number.parseInt(o,16):Number.parseInt(n,10);return a===0||a>1114111||a>=55296&&a<=57343?"\uFFFD":String.fromCodePoint(a)})}function Pl(e){try{e=encodeURI(e).replace(xt.percentDecode,"%")}catch{return null}return e}function Ml(e,t){let n=e.replace(xt.findPipe,(i,s,l)=>{let c=!1,d=s;for(;--d>=0&&l[d]==="\\";)c=!c;return c?"|":" |"}),o=n.split(xt.splitPipe),a=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),t)if(o.length>t)o.splice(t);else for(;o.length<t;)o.push("");for(;a<o.length;a++)o[a]=o[a].trim().replace(xt.slashPipe,"|");return o}function jn(e,t,n){let o=e.length;if(o===0)return"";let a=0;for(;a<o;){let i=e.charAt(o-a-1);if(i===t&&!n)a++;else if(i!==t&&n)a++;else break}return e.slice(0,o-a)}function Rl(e){let t=e.split(`
5
- `),n=t.length-1;for(;n>=0&&xt.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
6
- `)}function No(e){return e.trim().toLowerCase().toUpperCase().toLowerCase()}function wg(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let o=0;o<e.length;o++)if(e[o]==="\\")o++;else if(e[o]===t[0])n++;else if(e[o]===t[1]&&(n--,n<0))return o;return n>0?-2:-1}function Il(e,t=0){let n=t,o="";for(let a of e)if(a===" "){let i=4-n%4;o+=" ".repeat(i),n+=i}else o+=a,n++;return o}function Ll(e,t,n,o,a){let i=t.href,s=t.title||null,l=e[1].replace(a.other.outputLinkReplace,"$1"),c=e[0].charAt(0)==="!";o.state.inLink=!0;let d=o.state.linkEmitted,m=o.state.inRawBlock;o.state.linkEmitted=!1;let u=o.inlineTokens(l),p=o.state.linkEmitted;if(o.state.linkEmitted=d,o.state.inLink=!1,!c){if(p){o.state.inRawBlock=m;return}o.state.linkEmitted=!0}return{type:c?"image":"link",raw:n,href:i,title:s,text:l,tokens:u}}function zg(e,t,n){let o=e.match(n.other.indentCodeCompensation);if(o===null)return t;let a=o[1];return t.split(`
7
- `).map(i=>{let s=i.match(n.other.beginningSpace);if(s===null)return i;let[l]=s;return i.slice(Math.min(l.length,a.length))}).join(`
8
- `)}function Dl(e,t,n,o){if(!t.includes("<"))return!1;for(let a=0;a<t.length;a++){if(t[a]==="\\"){a++;continue}if(t[a]==="`"){let l=o.inline.code.exec(t.slice(a));if(l){a+=l[0].length-1;continue}}if(t[a]!=="<")continue;let i=e.slice(n+a),s=o.inline.tag.exec(i)||o.inline.autolink.exec(i);if(s){if(s[0].length>t.length-a)return!0;a+=s[0].length-1}}return!1}var Oo=class{options;rules;lexer;constructor(e){this.options=e||sr}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Rl(t[0]),o=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:o}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],o=zg(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:o}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let o=jn(n,"#");(this.options.pedantic||!o||this.rules.other.endingSpaceTabChar.test(o))&&(n=o.trim())}return{type:"heading",raw:jn(t[0],`
9
- `),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:jn(t[0],`
10
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=jn(t[0],`
1
+ "use strict";var __fxExtend=(()=>{var Ka=Object.defineProperty;var km=Object.getOwnPropertyDescriptor;var wm=Object.getOwnPropertyNames;var zm=Object.prototype.hasOwnProperty;var Sm=(e,t)=>{for(var o in t)Ka(e,o,{get:t[o],enumerable:!0})},_m=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of wm(t))!zm.call(e,a)&&a!==o&&Ka(e,a,{get:()=>t[a],enumerable:!(r=km(t,a))||r.enumerable});return e};var Cm=e=>_m(Ka({},"__esModule",{value:!0}),e);var Jx={};Sm(Jx,{dispose:()=>cm});function Am(e,t){this.v=e,this.k=t}function El(e,t){(t==null||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o<t;o++)r[o]=e[o];return r}function Tm(e){if(Array.isArray(e))return e}function Em(e,t){var o=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(o!=null){var r,a,i,s,l=[],c=!0,d=!1;try{if(i=(o=o.call(e)).next,t===0){if(Object(o)!==o)return;c=!1}else for(;!(c=(r=i.call(o)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(f){d=!0,a=f}finally{try{if(!c&&o.return!=null&&(s=o.return(),Object(s)!==s))return}finally{if(d)throw a}}return l}}function Pm(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mm(e,t){return Tm(e)||Em(e,t)||Im(e,t)||Pm()}function Im(e,t){if(e){if(typeof e=="string")return El(e,t);var o={}.toString.call(e).slice(8,-1);return o==="Object"&&e.constructor&&(o=e.constructor.name),o==="Map"||o==="Set"?Array.from(e):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?El(e,t):void 0}}function qr(e){var t,o;function r(i,s){try{var l=e[i](s),c=l.value,d=c instanceof Am;Promise.resolve(d?c.v:c).then(function(f){if(d){var u=i==="return"&&c.k?i:"next";if(!c.k||f.done)return r(u,f);f=e[u](f).value}a(!!l.done,f)},function(f){r("throw",f)})}catch(f){a(2,f)}}function a(i,s){i===2?t.reject(s):t.resolve({value:s,done:i}),(t=t.next)?r(t.key,t.arg):o=null}this._invoke=function(i,s){return new Promise(function(l,c){var d={key:i,arg:s,resolve:l,reject:c,next:null};o?o=o.next=d:(t=o=d,r(i,s))})},typeof e.return!="function"&&(this.return=void 0)}qr.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},qr.prototype.next=function(e){return this._invoke("next",e)},qr.prototype.throw=function(e){return this._invoke("throw",e)},qr.prototype.return=function(e){return this._invoke("return",e)};var Vl=Object.entries,Pl=Object.setPrototypeOf,Rm=Object.isFrozen,Lm=Object.getPrototypeOf,Dm=Object.getOwnPropertyDescriptor,_t=Object.freeze,Tt=Object.seal,Io=Object.create,Wl=typeof Reflect<"u"&&Reflect,oi=Wl.apply,ri=Wl.construct;_t||(_t=function(t){return t});Tt||(Tt=function(t){return t});oi||(oi=function(t,o){for(var r=arguments.length,a=new Array(r>2?r-2:0),i=2;i<r;i++)a[i-2]=arguments[i];return t.apply(o,a)});ri||(ri=function(t){for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];return new t(...r)});var so=wt(Array.prototype.forEach);Array.prototype.indexOf;var Nm=wt(Array.prototype.lastIndexOf),Ml=wt(Array.prototype.pop),tr=wt(Array.prototype.push);Array.prototype.slice;var Om=wt(Array.prototype.splice),Ro=Array.isArray,rr=wt(String.prototype.toLowerCase),Ya=wt(String.prototype.toString),Il=wt(String.prototype.match),nr=wt(String.prototype.replace),Rl=wt(String.prototype.indexOf),Fm=wt(String.prototype.trim),$m=wt(Number.prototype.toString),Bm=wt(Boolean.prototype.toString),Ll=typeof BigInt>"u"?null:wt(BigInt.prototype.toString),Dl=typeof Symbol>"u"?null:wt(Symbol.prototype.toString),Xt=wt(Object.prototype.hasOwnProperty),or=wt(Object.prototype.toString),Ft=wt(RegExp.prototype.test),Gn=Um(TypeError);function wt(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];return oi(e,t,r)}}function Um(e){return function(){for(var t=arguments.length,o=new Array(t),r=0;r<t;r++)o[r]=arguments[r];return ri(e,o)}}function Fe(e,t){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:rr;if(Pl&&Pl(e,null),!Ro(t))return e;let r=t.length;for(;r--;){let a=t[r];if(typeof a=="string"){let i=o(a);i!==a&&(Rm(t)||(t[r]=i),a=i)}e[a]=!0}return e}function Hm(e){for(let t=0;t<e.length;t++)Xt(e,t)||(e[t]=null);return e}function nn(e){let t=Io(null);for(let r of Vl(e)){var o=Mm(r,2);let a=o[0],i=o[1];Xt(e,a)&&(Ro(i)?t[a]=Hm(i):i&&typeof i=="object"&&i.constructor===Object?t[a]=nn(i):t[a]=i)}return t}function qm(e){switch(typeof e){case"string":return e;case"number":return $m(e);case"boolean":return Bm(e);case"bigint":return Ll?Ll(e):"0";case"symbol":return Dl?Dl(e):"Symbol()";case"undefined":return or(e);case"function":case"object":{if(e===null)return or(e);let t=e,o=gn(t,"toString");if(typeof o=="function"){let r=o(t);return typeof r=="string"?r:or(r)}return or(e)}default:return or(e)}}function gn(e,t){for(;e!==null;){let r=Dm(e,t);if(r){if(r.get)return wt(r.get);if(typeof r.value=="function")return wt(r.value)}e=Lm(e)}function o(){return null}return o}function Vm(e){try{return Ft(e,""),!0}catch{return!1}}var Nl=_t(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Za=_t(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Qa=_t(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Wm=_t(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ei=_t(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),jm=_t(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ol=_t(["#text"]),Fl=_t(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),ti=_t(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),$l=_t(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Vr=_t(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Gm=Tt(/{{[\w\W]*|^[\w\W]*}}/g),Jm=Tt(/<%[\w\W]*|^[\w\W]*%>/g),Xm=Tt(/\${[\w\W]*/g),Km=Tt(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ym=Tt(/^aria-[\-\w]+$/),Bl=Tt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Zm=Tt(/^(?:\w+script|data):/i),Qm=Tt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),eg=Tt(/^html$/i),tg=Tt(/^[a-z][.\w]*(-[.\w]+)+$/i),Ul=Tt(/<[/\w!]/g),Hl=Tt(/<[/\w]/g),ng=Tt(/<\/no(script|embed|frames)/i),og=Tt(/\/>/i),tn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},jl=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],rg=_t(Fe({},jl)),ag=(function(){let e={};return so(jl,t=>{e[t]=Tt(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),_t(e)})(),ig=function(){return typeof window>"u"?null:window},sg=function(t,o){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,a="data-tt-policy-suffix";o&&o.hasAttribute(a)&&(r=o.getAttribute(a));let i="dompurify"+(r?"#"+r:"");try{return t.createPolicy(i,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},ql=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Jn=function(t,o,r,a){return Xt(t,o)&&Ro(t[o])?Fe(a.base?nn(a.base):{},t[o],a.transform):r},ni=function(t,o,r){let a=Xt(t,o)?t[o]:void 0;return a&&typeof a=="object"?nn(a):r()};function Gl(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ig(),t=G=>Gl(G);if(t.version="3.4.16",t.removed=[],!e||!e.document||e.document.nodeType!==tn.document||!e.Element)return t.isSupported=!1,t;let o=e.document,r=o,a=r.currentScript;e.DocumentFragment;let i=e.HTMLTemplateElement,s=e.Node,l=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let d=e.DOMParser,f=e.trustedTypes,u=l.prototype,p=gn(u,"cloneNode"),m=gn(u,"remove"),g=gn(u,"removeAttributeNode"),h=gn(u,"nextSibling"),k=gn(u,"childNodes"),y=gn(u,"parentNode"),x=gn(u,"shadowRoot"),w=gn(u,"attributes"),C=s&&s.prototype?gn(s.prototype,"nodeType"):null,M=s&&s.prototype?gn(s.prototype,"nodeName"):null,$=s&&s.prototype?gn(s.prototype,"ownerDocument"):null,U=function(b){return C?C(b):b.nodeType},O=function(b){return M?M(b):b.nodeName};if(typeof i=="function"){let G=o.createElement("template");G.content&&G.content.ownerDocument&&(o=G.content.ownerDocument)}let j,_="",L,B=!1,P=0,J=function(){if(P>0)throw Gn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},v=function(b){J(),P++;try{return j.createHTML(b)}finally{P--}},A=function(b){J(),P++;try{return j.createScriptURL(b)}finally{P--}},N=function(){return B||(L=sg(f,a),B=!0),L},X=o,Q=X.implementation,H=X.createNodeIterator,oe=X.createDocumentFragment,ge=X.getElementsByTagName,He=r.importNode,pe=ql();t.isSupported=typeof Vl=="function"&&typeof y=="function"&&Q&&Q.createHTMLDocument!==void 0;let Le=Gm,Qe=Jm,be=Xm,Ke=Km,It=Ym,V=Zm,ue=Qm,ke=tg,Pe=Bl,fe=null,ot=Fe({},[...Nl,...Za,...Qa,...ei,...Ol]),Ce=null,pt=Fe({},[...Fl,...ti,...$l,...Vr]),rt=Object.seal(Io(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),un=null,Gt=null,Jt=Object.seal(Io(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),kt=!0,at=!0,Ht=!1,Zt=!0,ft=!1,et=!0,Dt=!1,pn=!1,bt=null,bn=null,it=!1,At=!1,ce=!1,Ye=!1,We=!0,Qt=!1,ct="user-content-",D=!0,le=!1,Se={},je=null,Nt=Fe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),vt=null,st=Fe({},["audio","video","img","source","image","track"]),vn=null,Te=Fe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),dt="http://www.w3.org/1998/Math/MathML",Ot="http://www.w3.org/2000/svg",qe="http://www.w3.org/1999/xhtml",Rt=qe,fn=!1,ro=null,ja=Fe({},[dt,Ot,qe],Ya),Dr=_t(["mi","mo","mn","ms","mtext"]),z=Fe({},Dr),T=_t(["annotation-xml"]),I=Fe({},T),re=Fe({},["title","style","font","a","script"]),K=null,ve=["application/xhtml+xml","text/html"],Ee="text/html",de=null,De=null,Nr=o.createElement("form"),ao=function(b){return b instanceof RegExp||b instanceof Function},To=function(){let b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(De&&De===b)return;(!b||typeof b!="object")&&(b={}),b=nn(b),K=ve.indexOf(b.PARSER_MEDIA_TYPE)===-1?Ee:b.PARSER_MEDIA_TYPE,de=K==="application/xhtml+xml"?Ya:rr,fe=Jn(b,"ALLOWED_TAGS",ot,{transform:de}),Ce=Jn(b,"ALLOWED_ATTR",pt,{transform:de}),ro=Jn(b,"ALLOWED_NAMESPACES",ja,{transform:Ya}),vn=Jn(b,"ADD_URI_SAFE_ATTR",Te,{transform:de,base:Te}),vt=Jn(b,"ADD_DATA_URI_TAGS",st,{transform:de,base:st}),je=Jn(b,"FORBID_CONTENTS",Nt,{transform:de}),un=Jn(b,"FORBID_TAGS",nn({}),{transform:de}),Gt=Jn(b,"FORBID_ATTR",nn({}),{transform:de}),Se=Xt(b,"USE_PROFILES")?b.USE_PROFILES&&typeof b.USE_PROFILES=="object"?nn(b.USE_PROFILES):b.USE_PROFILES:!1,kt=b.ALLOW_ARIA_ATTR!==!1,at=b.ALLOW_DATA_ATTR!==!1,Ht=b.ALLOW_UNKNOWN_PROTOCOLS||!1,Zt=b.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ft=b.SAFE_FOR_TEMPLATES||!1,et=b.SAFE_FOR_XML!==!1,Dt=b.WHOLE_DOCUMENT||!1,At=b.RETURN_DOM||!1,ce=b.RETURN_DOM_FRAGMENT||!1,Ye=b.RETURN_TRUSTED_TYPE||!1,it=b.FORCE_BODY||!1,We=b.SANITIZE_DOM!==!1,Qt=b.SANITIZE_NAMED_PROPS||!1,D=b.KEEP_CONTENT!==!1,le=b.IN_PLACE||!1,Pe=Vm(b.ALLOWED_URI_REGEXP)?b.ALLOWED_URI_REGEXP:Bl,Rt=typeof b.NAMESPACE=="string"?b.NAMESPACE:qe,z=ni(b,"MATHML_TEXT_INTEGRATION_POINTS",()=>Fe({},Dr)),I=ni(b,"HTML_INTEGRATION_POINTS",()=>Fe({},T));let E=ni(b,"CUSTOM_ELEMENT_HANDLING",()=>Io(null));if(rt=Io(null),Xt(E,"tagNameCheck")&&ao(E.tagNameCheck)&&(rt.tagNameCheck=E.tagNameCheck),Xt(E,"attributeNameCheck")&&ao(E.attributeNameCheck)&&(rt.attributeNameCheck=E.attributeNameCheck),Xt(E,"allowCustomizedBuiltInElements")&&typeof E.allowCustomizedBuiltInElements=="boolean"&&(rt.allowCustomizedBuiltInElements=E.allowCustomizedBuiltInElements),Tt(rt),ft&&(at=!1),ce&&(At=!0),Se&&(fe=Fe({},Ol),Ce=Io(null),Se.html===!0&&(Fe(fe,Nl),Fe(Ce,Fl)),Se.svg===!0&&(Fe(fe,Za),Fe(Ce,ti),Fe(Ce,Vr)),Se.svgFilters===!0&&(Fe(fe,Qa),Fe(Ce,ti),Fe(Ce,Vr)),Se.mathMl===!0&&(Fe(fe,ei),Fe(Ce,$l),Fe(Ce,Vr))),Jt.tagCheck=null,Jt.attributeCheck=null,Xt(b,"ADD_TAGS")&&(typeof b.ADD_TAGS=="function"?Jt.tagCheck=b.ADD_TAGS:Ro(b.ADD_TAGS)&&(fe===ot&&(fe=nn(fe)),Fe(fe,b.ADD_TAGS,de))),Xt(b,"ADD_ATTR")&&(typeof b.ADD_ATTR=="function"?Jt.attributeCheck=b.ADD_ATTR:Ro(b.ADD_ATTR)&&(Ce===pt&&(Ce=nn(Ce)),Fe(Ce,b.ADD_ATTR,de))),Xt(b,"ADD_FORBID_CONTENTS")&&Ro(b.ADD_FORBID_CONTENTS)&&(je===Nt&&(je=nn(je)),Fe(je,b.ADD_FORBID_CONTENTS,de)),D&&(fe["#text"]=!0),Dt&&Fe(fe,["html","head","body"]),fe.table&&(Fe(fe,["tbody"]),delete un.tbody),b.TRUSTED_TYPES_POLICY){if(typeof b.TRUSTED_TYPES_POLICY.createHTML!="function")throw Gn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof b.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Gn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let q=j;j=b.TRUSTED_TYPES_POLICY;try{_=v("")}catch(ee){throw j=q,ee}}else b.TRUSTED_TYPES_POLICY===null?(j=void 0,_=""):(j===void 0&&(j=N()),j&&typeof _=="string"&&(_=v("")));_t&&_t(b),De=b},Wn=Fe({},[...Za,...Qa,...Wm]),vl=Fe({},[...ei,...jm]),dm=function(b,E,q){return E.namespaceURI===qe?b==="svg":E.namespaceURI===dt?b==="svg"&&(q==="annotation-xml"||z[q]):!!Wn[b]},um=function(b,E,q){return E.namespaceURI===qe?b==="math":E.namespaceURI===Ot?b==="math"&&I[q]:!!vl[b]},pm=function(b,E,q){return E.namespaceURI===Ot&&!I[q]||E.namespaceURI===dt&&!z[q]?!1:!vl[b]&&(re[b]||!Wn[b])},fm=function(b){let E=y(b);(!E||!E.tagName)&&(E={namespaceURI:Rt,tagName:"template"});let q=rr(b.tagName),ee=rr(E.tagName);return ro[b.namespaceURI]?b.namespaceURI===Ot?dm(q,E,ee):b.namespaceURI===dt?um(q,E,ee):b.namespaceURI===qe?pm(q,E,ee):!!(K==="application/xhtml+xml"&&ro[b.namespaceURI]):!1},jn=function(b){tr(t.removed,{element:b});try{y(b).removeChild(b)}catch{if(m(b),!y(b))throw Gn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},yl=function(b,E,q){try{g(b,E)}catch{try{b.removeAttribute(q)}catch{}}},Or=function(b){Fr(b);let E=k(b);if(E){let ee=[];so(E,ye=>{tr(ee,ye)}),so(ee,ye=>{try{m(ye)}catch{}})}let q=w(b);if(q)for(let ee=q.length-1;ee>=0;--ee){let ye=q[ee],Me=ye&&ye.name;typeof Me=="string"&&yl(b,ye,Me)}},io=function(b,E,q){if(!q)try{q=E.getAttributeNode(b)}catch{q=null}tr(t.removed,{attribute:q||null,from:E});try{q?g(E,q):E.removeAttribute(b)}catch{try{E.removeAttribute(b)}catch{}}if(b==="is")if(At||ce)try{jn(E)}catch{}else try{E.setAttribute(b,"")}catch{}},mm=function(b){let E=w(b);if(E)for(let q=E.length-1;q>=0;--q){let ee=E[q],ye=ee&&ee.name;typeof ye!="string"||Ce[de(ye)]||yl(b,ee,ye)}},Fr=function(b){let E=[b];for(;E.length>0;){let q=E.pop();U(q)===tn.element&&mm(q);let ee=k(q);if(ee)for(let ye=ee.length-1;ye>=0;--ye)E.push(ee[ye])}},xl=function(b,E){return et?b==="patchsrc"?!0:b==="for"&&E!=="label"&&E!=="output":!1},gm=function(b){if(!et)return;let E=[b];for(;E.length>0;){let q=E.pop(),ee=U(q);if(ee===tn.processingInstruction||ee===tn.comment&&Ft(Hl,q.data)){try{m(q)}catch{}continue}if(ee===tn.element){let Me=q,Oe=de(O(q));try{Me.hasAttribute&&Me.hasAttribute("patchsrc")&&Me.removeAttribute("patchsrc"),Me.hasAttribute&&Me.hasAttribute("for")&&xl("for",Oe)&&Me.removeAttribute("for")}catch{}}let ye=k(q);if(ye)for(let Me=ye.length-1;Me>=0;--Me)E.push(ye[Me])}},kl=function(b){let E=null,q=null;if(it)b="<remove></remove>"+b;else{let Me=Il(b,/^[\r\n\t ]+/);q=Me&&Me[0]}K==="application/xhtml+xml"&&Rt===qe&&(b='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+b+"</body></html>");let ee=j?v(b):b;if(Rt===qe)try{E=new d().parseFromString(ee,K)}catch{}if(!E||!E.documentElement){E=Q.createDocument(Rt,"template",null);try{E.documentElement.innerHTML=fn?_:ee}catch{}}let ye=E.body||E.documentElement;return b&&q&&ye.insertBefore(o.createTextNode(q),ye.childNodes[0]||null),Rt===qe?ge.call(E,Dt?"html":"body")[0]:Dt?E.documentElement:ye},wl=function(b){let E=$?$(b):b.ownerDocument;return H.call(E||b,b,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},$r=function(b){return b=nr(b,Le," "),b=nr(b,Qe," "),b=nr(b,be," "),b},Ga=function(b){var E;b.normalize();let q=$?$(b):b.ownerDocument,ee=H.call(q||b,b,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),ye=ee.nextNode();for(;ye;)ye.data=$r(ye.data),ye=ee.nextNode();let Me=(E=b.querySelectorAll)===null||E===void 0?void 0:E.call(b,"template");Me&&so(Me,Oe=>{Eo(Oe.content)&&Ga(Oe.content)})},Br=function(b){let E=M?M(b):null;return typeof E!="string"||de(E)!=="form"?!1:typeof b.nodeName!="string"||typeof b.textContent!="string"||typeof b.removeChild!="function"||b.attributes!==w(b)||typeof b.removeAttribute!="function"||typeof b.removeAttributeNode!="function"||typeof b.getAttributeNode!="function"||typeof b.setAttribute!="function"||typeof b.namespaceURI!="string"||typeof b.insertBefore!="function"||typeof b.hasChildNodes!="function"||b.nodeType!==C(b)||b.childNodes!==k(b)},Eo=function(b){if(!C||typeof b!="object"||b===null)return!1;try{return C(b)===tn.documentFragment}catch{return!1}},er=function(b){if(!C||typeof b!="object"||b===null)return!1;try{return typeof C(b)=="number"}catch{return!1}};function En(G,b,E){G.length!==0&&so(G,q=>{q.call(t,b,E,De)})}let hm=function(b,E){return!!(et&&b.hasChildNodes()&&!er(b.firstElementChild)&&Ft(Ul,b.textContent)&&Ft(Ul,b.innerHTML)||et&&b.namespaceURI===qe&&rg[E]&&(er(b.firstElementChild)||typeof b.textContent=="string"&&Ft(ag[E],b.textContent))||b.nodeType===tn.processingInstruction||et&&b.nodeType===tn.comment&&Ft(Hl,b.data))},Ur=function(b,E){if(b instanceof RegExp)return Ft(b,E);if(b instanceof Function){for(var q=arguments.length,ee=new Array(q>2?q-2:0),ye=2;ye<q;ye++)ee[ye-2]=arguments[ye];return!!b(E,...ee)}return!1},bm=function(b,E,q){if(!un[E]&&Cl(E)&&Ur(rt.tagNameCheck,E))return!1;if(D&&!je[E]){let ee=y(b),ye=k(b);if(ye&&ee){let Me=ye.length;for(let Oe=Me-1;Oe>=0;--Oe){let mt=b===q?p(ye[Oe],!0):ye[Oe];ee.insertBefore(mt,h(b))}}}return jn(b),!0},zl=function(b,E,q,ee){return b.length===0?E:E===q||E===ee?nn(E):E},Po=function(b,E){return b===E||y(b)!==null?!1:(le&&Fr(b),!0)},Sl=function(b,E){if(En(pe.beforeSanitizeElements,b,null),Po(b,E))return!0;if(Br(b))return jn(b),!0;let q=de(O(b));if(fe=zl(pe.uponSanitizeElement,fe,ot,bt),En(pe.uponSanitizeElement,b,{tagName:q,allowedTags:fe}),Po(b,E))return!0;if(hm(b,q))return jn(b),!0;if(un[q]||!(Jt.tagCheck instanceof Function&&Jt.tagCheck(q))&&!fe[q]){let ee=bm(b,q,E);return ee===!1&&(En(pe.afterSanitizeElements,b,null),Po(b,E))?!0:ee}if(U(b)===tn.element&&!fm(b)||(q==="noscript"||q==="noembed"||q==="noframes")&&Ft(ng,b.innerHTML))return jn(b),!0;if(ft&&b.nodeType===tn.text){let ee=$r(b.textContent);b.textContent!==ee&&(tr(t.removed,{element:b.cloneNode()}),b.textContent=ee)}return En(pe.afterSanitizeElements,b,null),Po(b,E)},_l=function(b,E,q){if(Gt[E]||xl(E,b)||We&&(E==="id"||E==="name")&&(q in o||q in Nr))return!1;let ee=Ce[E]||Jt.attributeCheck instanceof Function&&Jt.attributeCheck(E,b);return at&&Ft(Ke,E)||kt&&Ft(It,E)?!0:ee?vn[E]||Ft(Pe,nr(q,ue,""))||(E==="src"||E==="xlink:href"||E==="href")&&b!=="script"&&Rl(q,"data:")===0&&vt[b]||Ht&&!Ft(V,nr(q,ue,""))?!0:!q:Cl(b)&&Ur(rt.tagNameCheck,b)&&Ur(rt.attributeNameCheck,E,b)||E==="is"&&rt.allowCustomizedBuiltInElements&&Ur(rt.tagNameCheck,q)},vm=Fe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Cl=function(b){return!vm[rr(b)]&&Ft(ke,b)},ym=function(b,E,q,ee){if(j&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!q)switch(f.getAttributeType(b,E)){case"TrustedHTML":return v(ee);case"TrustedScriptURL":return A(ee)}return ee},xm=function(b,E,q,ee){try{return q?b.setAttributeNS(q,E,ee):b.setAttribute(E,ee),Br(b)?(jn(b),!1):!0}catch{return io(E,b),!1}},Al=function(b,E){if(En(pe.beforeSanitizeAttributes,b,null),Po(b,E))return;let q=b.attributes;if(!q||Br(b))return;Ce=zl(pe.uponSanitizeAttribute,Ce,pt,bn);let ee={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ce,forceKeepAttr:void 0},ye=q.length,Me=de(b.nodeName);for(;ye--;){let Oe=q[ye],mt=Oe.name,mn=Oe.namespaceURI,en=Oe.value,Mo=de(mt),Xa=en,qt=mt==="value"?Xa:Fm(Xa),Tl=!1;if(ee.attrName=Mo,ee.attrValue=qt,ee.keepAttr=!0,ee.forceKeepAttr=void 0,En(pe.uponSanitizeAttribute,b,ee),qt=ee.attrValue,Qt&&(Mo==="id"||Mo==="name")&&Rl(qt,ct)!==0&&(io(mt,b,Oe),qt=ct+qt,Tl=!0),et&&Ft(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,qt)){io(mt,b,Oe);continue}if(Mo==="attributename"&&Il(qt,"href")){io(mt,b,Oe);continue}if(!ee.forceKeepAttr){if(!ee.keepAttr){io(mt,b,Oe);continue}if(!Zt&&Ft(og,qt)){io(mt,b,Oe);continue}if(ft&&(qt=$r(qt)),!_l(Me,Mo,qt)){io(mt,b,Oe);continue}qt=ym(Me,Mo,mn,qt),qt!==Xa&&xm(b,mt,mn,qt)&&Tl&&Ml(t.removed)}}En(pe.afterSanitizeAttributes,b,null),Po(b,E)},Hr=function(b){let E=null,q=wl(b);for(En(pe.beforeSanitizeShadowDOM,b,null);E=q.nextNode();)if(En(pe.uponSanitizeShadowNode,E,null),Sl(E,b),Al(E,b),Eo(E.content)&&Hr(E.content),U(E)===tn.element){let ee=x(E);Eo(ee)&&(Ja(ee),Hr(ee))}En(pe.afterSanitizeShadowDOM,b,null)},Ja=function(b){let E=[{node:b,shadow:null}];for(;E.length>0;){let q=E.pop();if(q.shadow){Hr(q.shadow);continue}let ee=q.node,ye=U(ee)===tn.element,Me=k(ee);if(Me)for(let Oe=Me.length-1;Oe>=0;--Oe)E.push({node:Me[Oe],shadow:null});if(ye){let Oe=M?M(ee):null;if(typeof Oe=="string"&&de(Oe)==="template"){let mt=ee.content;Eo(mt)&&E.push({node:mt,shadow:null})}}if(ye){let Oe=x(ee);Eo(Oe)&&E.push({node:null,shadow:Oe},{node:Oe,shadow:null})}}};return t.sanitize=function(G){let b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=null,q=null,ee=null,ye=null;if(fn=!G,fn&&(G="<!-->"),typeof G!="string"&&!er(G)&&(G=qm(G),typeof G!="string"))throw Gn("dirty is not a string, aborting");if(!t.isSupported)return G;pn?(fe=bt,Ce=bn):To(b),(pe.uponSanitizeElement.length>0||pe.uponSanitizeAttribute.length>0)&&(fe=nn(fe)),pe.uponSanitizeAttribute.length>0&&(Ce=nn(Ce)),t.removed=[];let Me=le&&typeof G!="string"&&er(G);if(Me){gm(G);let mn=O(G);if(typeof mn=="string"){let en=de(mn);if(!fe[en]||un[en])throw Or(G),Gn("root node is forbidden and cannot be sanitized in-place")}if(Br(G))throw Or(G),Gn("root node is clobbered and cannot be sanitized in-place");try{Ja(G)}catch(en){throw Or(G),en}}else if(er(G))E=kl("<!---->"),q=E.ownerDocument.importNode(G,!0),q.nodeType===tn.element&&q.nodeName==="BODY"||q.nodeName==="HTML"?E=q:E.appendChild(q),Ja(E);else{if(!At&&!ft&&!Dt&&G.indexOf("<")===-1)return j&&Ye?v(G):G;if(E=kl(G),!E)return At?null:Ye?_:""}E&&it&&jn(E.firstChild);let Oe=Me?G:E;try{let mn=wl(Oe);for(;ee=mn.nextNode();)Sl(ee,Oe),Al(ee,Oe),Eo(ee.content)&&Hr(ee.content)}catch(mn){throw Me&&(Or(G),so(t.removed,en=>{en.element&&Fr(en.element)})),mn}if(Me){let mn=!1;if(so(t.removed,en=>{en.element&&(en.element===G&&(mn=!0),Fr(en.element))}),mn)throw Gn("a node selected for removal could not be safely returned; refusing to sanitize in place");return ft&&Ga(G),G}if(At){if(ft&&Ga(E),ce)for(ye=oe.call(E.ownerDocument);E.firstChild;)ye.appendChild(E.firstChild);else ye=E;return(Ce.shadowroot||Ce.shadowrootmode)&&(ye=He.call(r,ye,!0)),ye}let mt=Dt?E.outerHTML:E.innerHTML;return Dt&&fe["!doctype"]&&E.ownerDocument&&E.ownerDocument.doctype&&E.ownerDocument.doctype.name&&Ft(eg,E.ownerDocument.doctype.name)&&(mt="<!DOCTYPE "+E.ownerDocument.doctype.name+`>
3
+ `+mt),ft&&(mt=$r(mt)),j&&Ye?v(mt):mt},t.setConfig=function(){let G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};To(G),pn=!0,bt=fe,bn=Ce},t.clearConfig=function(){De=null,pn=!1,bt=null,bn=null,j=L,_=""},t.isValidAttribute=function(G,b,E){De||To({});let q=de(G),ee=de(b);return _l(q,ee,E)},t.addHook=function(G,b){typeof b=="function"&&Xt(pe,G)&&tr(pe[G],b)},t.removeHook=function(G,b){if(Xt(pe,G)){if(b!==void 0){let E=Nm(pe[G],b);return E===-1?void 0:Om(pe[G],E,1)[0]}return Ml(pe[G])}},t.removeHooks=function(G){Xt(pe,G)&&(pe[G]=[])},t.removeAllHooks=function(){pe=ql()},t}var ai=Gl();function ci(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var uo=ci();function rc(e){uo=e}var lo={exec:()=>null};function Lo(e){let t=[];return o=>{let r=Math.max(0,Math.min(3,o-1)),a=t[r];return a||(a=e(r),t[r]=a),a}}function Ae(e,t=""){let o=typeof e=="string"?e:e.source,r={replace:(a,i)=>{let s=typeof i=="string"?i:i.source;return s=s.replace(Lt.caret,"$1"),o=o.replace(a,s),r},getRegex:()=>new RegExp(o,t)};return r}var lg=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),Lt={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Lo(e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Lo(e=>new RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Lo(e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Lo(e=>new RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Lo(e=>new RegExp(`^ {0,${e}}(?:</?(?:${lr})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,"i")),blockquoteBeginRegex:Lo(e=>new RegExp(`^ {0,${e}}>`))},cg=/^(?:[ \t]*(?:\n|$))+/,dg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ug=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,sr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,pg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,di=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ac=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ic=Ae(ac).replace(/bull/g,di).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),fg=Ae(ac).replace(/bull/g,di).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ui=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,mg=/^[^\n]+/,pi=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,gg=Ae(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",pi).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),hg=Ae(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,di).getRegex(),lr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",fi=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,bg=Ae("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",fi).replace("tag",lr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),sc=e=>Ae(ui).replace("hr",sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lr).getRegex(),vg=sc(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),yg=sc(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),xg=Ae(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",yg).getRegex(),mi={blockquote:xg,code:dg,def:gg,fences:ug,heading:pg,hr:sr,html:bg,lheading:ic,list:hg,newline:cg,paragraph:vg,table:lo,text:mg},Jl=Ae("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lr).getRegex(),kg={...mi,lheading:fg,table:Jl,paragraph:Ae(ui).replace("hr",sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Jl).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lr).getRegex()},wg={...mi,html:Ae(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",fi).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:lo,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Ae(ui).replace("hr",sr).replace("heading",` *#{1,6} *[^
4
+ ]`).replace("lheading",ic).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},zg=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Sg=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,lc=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,_g=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Dn=/[\p{P}\p{S}]/u,Do=/[\s\p{P}\p{S}]/u,cr=/[^\s\p{P}\p{S}]/u,Cg=Ae(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Do).getRegex(),Ag=/[\p{Pi}\p{Ps}"']/u,cc=/(?!~)[\p{P}\p{S}]/u,Tg=/(?!~)[\s\p{P}\p{S}]/u,Eg=/(?:[^\s\p{P}\p{S}]|~)/u,Pg=Ae(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",lg?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),dc=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Mg=Ae(dc,"u").replace(/punct/g,Dn).getRegex(),Ig=Ae(dc,"u").replace(/punct/g,cc).getRegex(),Rg=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,Lg=Ae(Rg,"u").replace(/openQuote/g,Ag).replace(/punct/g,Dn).getRegex(),uc="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Dg=Ae(uc,"gu").replace(/notPunctSpace/g,cr).replace(/punctSpace/g,Do).replace(/punct/g,Dn).getRegex(),Ng=Ae(uc,"gu").replace(/notPunctSpace/g,Eg).replace(/punctSpace/g,Tg).replace(/punct/g,cc).getRegex(),Og="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",Fg=Ae(Og,"gu").replace(/notPunctSpace/g,cr).replace(/punctSpace/g,Do).replace(/punct/g,Dn).getRegex(),$g=Ae("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,cr).replace(/punctSpace/g,Do).replace(/punct/g,Dn).getRegex(),Bg="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",Ug=Ae(Bg,"gu").replace(/notPunctSpace/g,cr).replace(/punctSpace/g,Do).replace(/punct/g,Dn).getRegex(),Hg=Ae(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Dn).getRegex(),qg="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Vg=Ae(qg,"gu").replace(/notPunctSpace/g,cr).replace(/punctSpace/g,Do).replace(/punct/g,Dn).getRegex(),Wg=Ae(/\\(punct)/,"gu").replace(/punct/g,Dn).getRegex(),jg=Ae(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Gg=Ae(fi).replace("(?:-->|$)","-->").getRegex(),Jg=Ae("^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Gg).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),pc=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,jr=Ae(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace("brackets",pc).getRegex(),Xg=Ae(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",jr).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kg=Ae(/^!?\[(label)\]\[(ref)\]/).replace("label",jr).replace("ref",pi).getRegex(),Yg=Ae(/^!?\[(ref)\](?:\[\])?/).replace("ref",pi).getRegex(),Xl=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,Zg=Ae(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace("brackets",pc).getRegex(),Qg=Ae("reflink|nolink(?!\\()","g").replace("reflink",Ae(/^!?\[(label)\]\[(ref)\]/).replace("label",Zg).replace("ref",Xl).getRegex()).replace("nolink",Ae(/^!?\[(ref)\](?:\[\])?/).replace("ref",Xl).getRegex()).getRegex(),Kl=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,eh=/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/,th=Ae(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,eh).getRegex(),gi={_backpedal:lo,anyPunctuation:Wg,autolink:jg,blockSkip:Pg,br:lc,code:Sg,del:lo,delLDelim:lo,delRDelim:lo,emStrongLDelim:Mg,emStrongRDelimAst:Dg,emStrongRDelimUnd:$g,escape:zg,link:Xg,nolink:Yg,punctuation:Cg,reflink:Kg,reflinkSearch:Qg,tag:Jg,text:_g,url:lo},nh={...gi,emStrongLDelim:Lg,emStrongRDelimAst:Fg,emStrongRDelimUnd:Ug,link:Ae(/^!?\[(label)\]\((.*?)\)/).replace("label",jr).getRegex(),reflink:Ae(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",jr).getRegex()},ii={...gi,emStrongRDelimAst:Ng,emStrongLDelim:Ig,delLDelim:Hg,delRDelim:Vg,url:Ae(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol",th).replace("protocol",Kl).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Ae(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol",Kl).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},oh={...ii,br:Ae(lc).replace("{2,}","*").getRegex(),text:Ae(ii.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Wr={normal:mi,gfm:kg,pedantic:wg},ar={normal:gi,gfm:ii,breaks:oh,pedantic:nh},rh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Yl=e=>rh[e];function on(e,t){if(t){if(Lt.escapeTest.test(e))return e.replace(Lt.escapeReplace,Yl)}else if(Lt.escapeTestNoEncode.test(e))return e.replace(Lt.escapeReplaceNoEncode,Yl);return e}function ah(e){return e.replace(Lt.numericCharacterReference,(t,o,r)=>{let a=o===void 0?Number.parseInt(r,16):Number.parseInt(o,10);return a===0||a>1114111||a>=55296&&a<=57343?"\uFFFD":String.fromCodePoint(a)})}function Zl(e){try{e=encodeURI(e).replace(Lt.percentDecode,"%")}catch{return null}return e}function Ql(e,t){let o=e.replace(Lt.findPipe,(i,s,l)=>{let c=!1,d=s;for(;--d>=0&&l[d]==="\\";)c=!c;return c?"|":" |"}),r=o.split(Lt.splitPipe),a=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;a<r.length;a++)r[a]=r[a].trim().replace(Lt.slashPipe,"|");return r}function Xn(e,t,o){let r=e.length;if(r===0)return"";let a=0;for(;a<r;){let i=e.charAt(r-a-1);if(i===t&&!o)a++;else if(i!==t&&o)a++;else break}return e.slice(0,r-a)}function ec(e){let t=e.split(`
5
+ `),o=t.length-1;for(;o>=0&&Lt.blankLine.test(t[o]);)o--;return t.length-o<=2?e:t.slice(0,o+1).join(`
6
+ `)}function Gr(e){return e.trim().toLowerCase().toUpperCase().toLowerCase()}function ih(e,t){if(e.indexOf(t[1])===-1)return-1;let o=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])o++;else if(e[r]===t[1]&&(o--,o<0))return r;return o>0?-2:-1}function tc(e,t=0){let o=t,r="";for(let a of e)if(a===" "){let i=4-o%4;r+=" ".repeat(i),o+=i}else r+=a,o++;return r}function nc(e,t,o,r,a){let i=t.href,s=t.title||null,l=e[1].replace(a.other.outputLinkReplace,"$1"),c=e[0].charAt(0)==="!";r.state.inLink=!0;let d=r.state.linkEmitted,f=r.state.inRawBlock;r.state.linkEmitted=!1;let u=r.inlineTokens(l),p=r.state.linkEmitted;if(r.state.linkEmitted=d,r.state.inLink=!1,!c){if(p){r.state.inRawBlock=f;return}r.state.linkEmitted=!0}return{type:c?"image":"link",raw:o,href:i,title:s,text:l,tokens:u}}function sh(e,t,o){let r=e.match(o.other.indentCodeCompensation);if(r===null)return t;let a=r[1];return t.split(`
7
+ `).map(i=>{let s=i.match(o.other.beginningSpace);if(s===null)return i;let[l]=s;return i.slice(Math.min(l.length,a.length))}).join(`
8
+ `)}function oc(e,t,o,r){if(!t.includes("<"))return!1;for(let a=0;a<t.length;a++){if(t[a]==="\\"){a++;continue}if(t[a]==="`"){let l=r.inline.code.exec(t.slice(a));if(l){a+=l[0].length-1;continue}}if(t[a]!=="<")continue;let i=e.slice(o+a),s=r.inline.tag.exec(i)||r.inline.autolink.exec(i);if(s){if(s[0].length>t.length-a)return!0;a+=s[0].length-1}}return!1}var Jr=class{options;rules;lexer;constructor(e){this.options=e||uo}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let o=this.options.pedantic?t[0]:ec(t[0]),r=o.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:o,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let o=t[0],r=sh(o,t[3]||"",this.rules);return{type:"code",raw:o,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let o=t[2].trim();if(this.rules.other.endingHash.test(o)){let r=Xn(o,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceTabChar.test(r))&&(o=r.trim())}return{type:"heading",raw:Xn(t[0],`
9
+ `),depth:t[1].length,text:o,tokens:this.lexer.inline(o)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Xn(t[0],`
10
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let o=Xn(t[0],`
11
11
  `).split(`
12
- `),o="",a="",i=[];for(;n.length>0;){let s=!1,l=[],c;for(c=0;c<n.length;c++)if(this.rules.other.blockquoteStart.test(n[c]))l.push(n[c]),s=!0;else if(!s)l.push(n[c]);else break;n=n.slice(c);let d=l.join(`
13
- `),m=d.replace(this.rules.other.blockquoteSetextReplace,`
14
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");o=o?`${o}
12
+ `),r="",a="",i=[];for(;o.length>0;){let s=!1,l=[],c;for(c=0;c<o.length;c++)if(this.rules.other.blockquoteStart.test(o[c]))l.push(o[c]),s=!0;else if(!s)l.push(o[c]);else break;o=o.slice(c);let d=l.join(`
13
+ `),f=d.replace(this.rules.other.blockquoteSetextReplace,`
14
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
15
15
  ${d}`:d,a=a?`${a}
16
- ${m}`:m;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(m,i,!0),this.lexer.state.top=u,n.length===0)break;let p=i.at(-1);if(p?.type==="code")break;if(p?.type==="blockquote"){let g=p,f=n.join(`
17
- `),h=g.raw+`
18
- `+f.replace(this.rules.other.blockquoteSetextReplace2,""),k=this.blockquote(h);i[i.length-1]=k;let x=h.substring(k.raw.length).replace(/^\n/,""),S=x?x.split(`
19
- `).length:0,w=S?n.slice(0,-S):n;w.length>0&&(o=`${o}
16
+ ${f}`:f;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(f,i,!0),this.lexer.state.top=u,o.length===0)break;let p=i.at(-1);if(p?.type==="code")break;if(p?.type==="blockquote"){let m=p,g=o.join(`
17
+ `),h=m.raw+`
18
+ `+g.replace(this.rules.other.blockquoteSetextReplace2,""),k=this.blockquote(h);i[i.length-1]=k;let y=h.substring(k.raw.length).replace(/^\n/,""),x=y?y.split(`
19
+ `).length:0,w=x?o.slice(0,-x):o;w.length>0&&(r=`${r}
20
20
  ${w.join(`
21
- `)}`),a=a.substring(0,a.length-g.text.length)+k.text;break}else if(p?.type==="list"){let g=p,f=g.raw+`
22
- `+n.join(`
23
- `),h=this.list(f);i[i.length-1]=h,o=o.substring(0,o.length-p.raw.length)+h.raw,a=a.substring(0,a.length-g.raw.length)+h.raw,n=f.substring(i.at(-1).raw.length).split(`
24
- `);continue}}return{type:"blockquote",raw:o,tokens:i,text:a}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),o=n.length>1,a={type:"list",raw:"",ordered:o,start:o?+n.slice(0,-1):"",loose:!1,items:[]};n=o?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=o?n:"[*+-]");let i=this.rules.other.listItemRegex(n),s=!1;for(;e;){let c=!1,d="",m="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;d=t[0],e=e.substring(d.length);let u=t[2].split(`
25
- `,1)[0],p=t[1].length,g=this.options.pedantic?Il(u,p):u.replace(this.rules.other.leadingSpaceTab,x=>Il(x,p)),f=e.split(`
26
- `,1)[0],h=!g.trim(),k=0;if(this.options.pedantic?(k=2,m=g.trimStart()):h?k=p+1:(k=g.search(this.rules.other.nonSpaceChar),k=k>4?1:k,m=g.slice(k),k+=p),h&&this.rules.other.blankLine.test(f)&&(d+=f+`
27
- `,e=e.substring(f.length+1),c=!0),!c){let x=this.rules.other.nextBulletRegex(k),S=this.rules.other.hrRegex(k),w=this.rules.other.fencesBeginRegex(k),T=this.rules.other.headingBeginRegex(k),R=this.rules.other.htmlBeginRegex(k),B=this.rules.other.blockquoteBeginRegex(k);for(;e;){let U=e.split(`
28
- `,1)[0],N;if(f=U,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),N=f):N=f.replace(this.rules.other.leadingSpaceTab,G=>G.replace(this.rules.other.tabCharGlobal," ")),w.test(f)||T.test(f)||R.test(f)||B.test(f)||x.test(f)||S.test(f))break;if(N.search(this.rules.other.nonSpaceChar)>=k||!f.trim())m+=`
29
- `+N.slice(k);else{if(h||g.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||w.test(g)||T.test(g)||S.test(g))break;m+=`
30
- `+f}h=!f.trim(),d+=U+`
31
- `,e=e.substring(U.length+1),g=N.slice(k)}}a.loose||(s?a.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(s=!0)),a.items.push({type:"list_item",raw:d,task:!!this.options.gfm&&this.rules.other.listIsTask.test(m),loose:!1,text:m,tokens:[]}),a.raw+=d}let l=a.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;a.raw=a.raw.trimEnd();for(let c of a.items)if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),!a.loose){let d=c.tokens.filter(u=>u.type==="space"),m=d.length>0&&d.some(u=>this.rules.other.anyLine.test(u.raw));a.loose=m}for(let c of a.items){let d=c.tokens[0];if(c.task&&(d?.type==="text"||d?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),d.raw=d.raw.replace(this.rules.other.listReplaceTask,""),d.text=d.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let m=this.rules.other.listTaskCheckbox.exec(c.raw);if(m){let u={type:"checkbox",raw:m[0]+" ",checked:m[0]!=="[ ]"};c.checked=u.checked,a.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=u.raw+c.tokens[0].raw,c.tokens[0].text=u.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(u)):c.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):c.tokens.unshift(u)}}else c.task&&(c.task=!1)}if(a.loose)for(let c of a.items){c.loose=!0;for(let d of c.tokens)d.type==="text"&&(d.type="paragraph")}return a}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Rl(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=No(t[1]).replace(this.rules.other.multipleSpaceGlobal," "),o=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:jn(t[0],`
32
- `),href:o,title:a}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Ml(t[1]),o=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),a=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
33
- `):[],i={type:"table",raw:jn(t[0],`
34
- `),header:[],align:[],rows:[]};if(n.length===o.length){for(let s of o)this.rules.other.tableAlignRight.test(s)?i.align.push("right"):this.rules.other.tableAlignCenter.test(s)?i.align.push("center"):this.rules.other.tableAlignLeft.test(s)?i.align.push("left"):i.align.push(null);for(let s=0;s<n.length;s++)i.header.push({text:n[s],tokens:this.lexer.inline(n[s]),header:!0,align:i.align[s]});for(let s of a)i.rows.push(Ml(s,i.header.length).map((l,c)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[c]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:jn(t[0],`
35
- `),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`
36
- `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&Dl(e,t[1],n,this.rules))return;let o=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(o)){if(!this.rules.other.endAngleBracket.test(o))return;let s=jn(o.slice(0,-1),"\\");if((o.length-s.length)%2===0)return}else{let s=wg(t[2],"()");if(s===-2)return;if(s>-1){let l=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,l).trim(),t[3]=""}}let a=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(a);s&&(a=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(o)?a=a.slice(1):a=a.slice(1,-1)),Ll(t,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let o=n[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&Dl(e,n[1],o,this.rules))return;let a=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[No(a)];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return Ll(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let o=this.rules.inline.emStrongLDelim.exec(e);if(!(!o||!o[1]&&!o[2]&&!o[3]&&!o[4]||o[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(o[1]||o[3])||!n||this.rules.inline.punctuation.exec(n))){let a=[...o[0]].length-1,i,s,l=a,c=0,d=o[0][0],m=n===d,u=d==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+a);(o=u.exec(t))!==null;){if(i=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!i)continue;if(s=[...i].length,o[3]||o[4]){l+=s;continue}else if(o[5]||o[6]){if(a%3&&!((a+s)%3)){c+=s;continue}if(m)break}if(l-=s,l>0)continue;s=Math.min(s,s+l+c);let p=[...o[0]][0].length,g=e.slice(0,a+o.index+p+s);if(Math.min(a,s)%2){let h=g.slice(1,-1);return{type:"em",raw:g,text:h,tokens:this.lexer.inlineTokens(h)}}let f=g.slice(2,-2);return{type:"strong",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),o=this.rules.other.nonSpaceChar.test(n),a=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return o&&a&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let o=this.rules.inline.delLDelim.exec(e);if(o&&(!o[1]||!n||this.rules.inline.punctuation.exec(n))){let a=[...o[0]].length-1,i,s,l=a,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+a);(o=c.exec(t))!==null;){if(i=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!i||(s=[...i].length,s!==a))continue;if(o[3]||o[4]){l+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l);let d=[...o[0]][0].length,m=e.slice(0,a+o.index+d+s),u=m.slice(a,-a);return{type:"del",raw:m,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,o;return t[2]==="@"?(n=t[1],o="mailto:"+n):(n=t[1],o=n),{type:"link",raw:t[0],text:n,href:o,autolink:!0,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,o;if(t[2]==="@")n=t[0],o="mailto:"+n;else{let a;do a=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(a!==t[0]);n=t[0],t[1]==="www."?o="http://"+t[0]:o=t[0]}return{type:"link",raw:t[0],text:n,href:o,autolink:!0,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:n?t[0]:kg(t[0]),escaped:n}}}},sn=class ja{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||sr,this.options.tokenizer=this.options.tokenizer||new Oo,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let n={other:xt,block:Lo.normal,inline:Yr.normal};this.options.pedantic?(n.block=Lo.pedantic,n.inline=Yr.pedantic):this.options.gfm&&(n.block=Lo.gfm,this.options.breaks?n.inline=Yr.breaks:n.inline=Yr.gfm),this.tokenizer.rules=n}static get rules(){return{block:Lo,inline:Yr}}static lex(t,n){return new ja(n).lex(t)}static lexInline(t,n){return new ja(n).inlineTokens(t)}lex(t){t=t.replace(xt.carriageReturn,`
37
- `),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let o=this.inlineQueue[n];this.inlineTokens(o.src,o.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],o=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(xt.tabCharGlobal," ").replace(xt.spaceLine,""));let a=1/0;for(;t;){if(t.length<a)a=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(l=>(i=l.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let l=n.at(-1);i.raw.length===1&&l!==void 0?l.raw+=`
38
- `:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let l=n.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
21
+ `)}`),a=a.substring(0,a.length-m.text.length)+k.text;break}else if(p?.type==="list"){let m=p,g=m.raw+`
22
+ `+o.join(`
23
+ `),h=this.list(g);i[i.length-1]=h,r=r.substring(0,r.length-p.raw.length)+h.raw,a=a.substring(0,a.length-m.raw.length)+h.raw,o=g.substring(i.at(-1).raw.length).split(`
24
+ `);continue}}return{type:"blockquote",raw:r,tokens:i,text:a}}}list(e){let t=this.rules.block.list.exec(e);if(t){let o=t[1].trim(),r=o.length>1,a={type:"list",raw:"",ordered:r,start:r?+o.slice(0,-1):"",loose:!1,items:[]};o=r?`\\d{1,9}\\${o.slice(-1)}`:`\\${o}`,this.options.pedantic&&(o=r?o:"[*+-]");let i=this.rules.other.listItemRegex(o),s=!1;for(;e;){let c=!1,d="",f="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;d=t[0],e=e.substring(d.length);let u=t[2].split(`
25
+ `,1)[0],p=t[1].length,m=this.options.pedantic?tc(u,p):u.replace(this.rules.other.leadingSpaceTab,y=>tc(y,p)),g=e.split(`
26
+ `,1)[0],h=!m.trim(),k=0;if(this.options.pedantic?(k=2,f=m.trimStart()):h?k=p+1:(k=m.search(this.rules.other.nonSpaceChar),k=k>4?1:k,f=m.slice(k),k+=p),h&&this.rules.other.blankLine.test(g)&&(d+=g+`
27
+ `,e=e.substring(g.length+1),c=!0),!c){let y=this.rules.other.nextBulletRegex(k),x=this.rules.other.hrRegex(k),w=this.rules.other.fencesBeginRegex(k),C=this.rules.other.headingBeginRegex(k),M=this.rules.other.htmlBeginRegex(k),$=this.rules.other.blockquoteBeginRegex(k);for(;e;){let U=e.split(`
28
+ `,1)[0],O;if(g=U,this.options.pedantic?(g=g.replace(this.rules.other.listReplaceNesting," "),O=g):O=g.replace(this.rules.other.leadingSpaceTab,j=>j.replace(this.rules.other.tabCharGlobal," ")),w.test(g)||C.test(g)||M.test(g)||$.test(g)||y.test(g)||x.test(g))break;if(O.search(this.rules.other.nonSpaceChar)>=k||!g.trim())f+=`
29
+ `+O.slice(k);else{if(h||m.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||w.test(m)||C.test(m)||x.test(m))break;f+=`
30
+ `+g}h=!g.trim(),d+=U+`
31
+ `,e=e.substring(U.length+1),m=O.slice(k)}}a.loose||(s?a.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(s=!0)),a.items.push({type:"list_item",raw:d,task:!!this.options.gfm&&this.rules.other.listIsTask.test(f),loose:!1,text:f,tokens:[]}),a.raw+=d}let l=a.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;a.raw=a.raw.trimEnd();for(let c of a.items)if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),!a.loose){let d=c.tokens.filter(u=>u.type==="space"),f=d.length>0&&d.some(u=>this.rules.other.anyLine.test(u.raw));a.loose=f}for(let c of a.items){let d=c.tokens[0];if(c.task&&(d?.type==="text"||d?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),d.raw=d.raw.replace(this.rules.other.listReplaceTask,""),d.text=d.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let f=this.rules.other.listTaskCheckbox.exec(c.raw);if(f){let u={type:"checkbox",raw:f[0]+" ",checked:f[0]!=="[ ]"};c.checked=u.checked,a.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=u.raw+c.tokens[0].raw,c.tokens[0].text=u.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(u)):c.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):c.tokens.unshift(u)}}else c.task&&(c.task=!1)}if(a.loose)for(let c of a.items){c.loose=!0;for(let d of c.tokens)d.type==="text"&&(d.type="paragraph")}return a}}html(e){let t=this.rules.block.html.exec(e);if(t){let o=ec(t[0]);return{type:"html",block:!0,raw:o,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:o}}}def(e){let t=this.rules.block.def.exec(e);if(t){let o=Gr(t[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:o,raw:Xn(t[0],`
32
+ `),href:r,title:a}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let o=Ql(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),a=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
33
+ `):[],i={type:"table",raw:Xn(t[0],`
34
+ `),header:[],align:[],rows:[]};if(o.length===r.length){for(let s of r)this.rules.other.tableAlignRight.test(s)?i.align.push("right"):this.rules.other.tableAlignCenter.test(s)?i.align.push("center"):this.rules.other.tableAlignLeft.test(s)?i.align.push("left"):i.align.push(null);for(let s=0;s<o.length;s++)i.header.push({text:o[s],tokens:this.lexer.inline(o[s]),header:!0,align:i.align[s]});for(let s of a)i.rows.push(Ql(s,i.header.length).map((l,c)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[c]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let o=t[1].trim();return{type:"heading",raw:Xn(t[0],`
35
+ `),depth:t[2].charAt(0)==="="?1:2,text:o,tokens:this.lexer.inline(o)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let o=t[1].charAt(t[1].length-1)===`
36
+ `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:o,tokens:this.lexer.inline(o)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let o=t[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&oc(e,t[1],o,this.rules))return;let r=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let s=Xn(r.slice(0,-1),"\\");if((r.length-s.length)%2===0)return}else{let s=ih(t[2],"()");if(s===-2)return;if(s>-1){let l=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,l).trim(),t[3]=""}}let a=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(a);s&&(a=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?a=a.slice(1):a=a.slice(1,-1)),nc(t,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let o;if((o=this.rules.inline.reflink.exec(e))||(o=this.rules.inline.nolink.exec(e))){let r=o[0].charAt(0)==="!"?2:1;if(!this.options.pedantic&&oc(e,o[1],r,this.rules))return;let a=(o[2]||o[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[Gr(a)];if(!i){let s=o[0].charAt(0);return{type:"text",raw:s,text:s}}return nc(o,i,o[0],this.lexer,this.rules)}}emStrong(e,t,o=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&o.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!o||this.rules.inline.punctuation.exec(o))){let a=[...r[0]].length-1,i,s,l=a,c=0,d=r[0][0],f=o===d,u=d==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+a);(r=u.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(s=[...i].length,r[3]||r[4]){l+=s;continue}else if(r[5]||r[6]){if(a%3&&!((a+s)%3)){c+=s;continue}if(f)break}if(l-=s,l>0)continue;s=Math.min(s,s+l+c);let p=[...r[0]][0].length,m=e.slice(0,a+r.index+p+s);if(Math.min(a,s)%2){let h=m.slice(1,-1);return{type:"em",raw:m,text:h,tokens:this.lexer.inlineTokens(h)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let o=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(o),a=this.rules.other.startingSpaceChar.test(o)&&this.rules.other.endingSpaceChar.test(o);return r&&a&&(o=o.substring(1,o.length-1)),{type:"codespan",raw:t[0],text:o}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,o=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!o||this.rules.inline.punctuation.exec(o))){let a=[...r[0]].length-1,i,s,l=a,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+a);(r=c.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(s=[...i].length,s!==a))continue;if(r[3]||r[4]){l+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l);let d=[...r[0]][0].length,f=e.slice(0,a+r.index+d+s),u=f.slice(a,-a);return{type:"del",raw:f,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let o,r;return t[2]==="@"?(o=t[1],r="mailto:"+o):(o=t[1],r=o),{type:"link",raw:t[0],text:o,href:r,autolink:!0,tokens:[{type:"text",raw:o,text:o}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let o,r;if(t[2]==="@")o=t[0],r="mailto:"+o;else{let a;do a=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(a!==t[0]);o=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:o,href:r,autolink:!0,tokens:[{type:"text",raw:o,text:o}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let o=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:o?t[0]:ah(t[0]),escaped:o}}}},yn=class si{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||uo,this.options.tokenizer=this.options.tokenizer||new Jr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let o={other:Lt,block:Wr.normal,inline:ar.normal};this.options.pedantic?(o.block=Wr.pedantic,o.inline=ar.pedantic):this.options.gfm&&(o.block=Wr.gfm,this.options.breaks?o.inline=ar.breaks:o.inline=ar.gfm),this.tokenizer.rules=o}static get rules(){return{block:Wr,inline:ar}}static lex(t,o){return new si(o).lex(t)}static lexInline(t,o){return new si(o).inlineTokens(t)}lex(t){t=t.replace(Lt.carriageReturn,`
37
+ `),this.blockTokens(t,this.tokens);for(let o=0;o<this.inlineQueue.length;o++){let r=this.inlineQueue[o];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,o=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(Lt.tabCharGlobal," ").replace(Lt.spaceLine,""));let a=1/0;for(;t;){if(t.length<a)a=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(l=>(i=l.call({lexer:this},t,o))?(t=t.substring(i.raw.length),o.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let l=o.at(-1);i.raw.length===1&&l!==void 0?l.raw+=`
38
+ `:o.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let l=o.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
39
39
  `)?"":`
40
40
  `)+i.raw,l.text+=`
41
- `+i.text,this.inlineQueue.at(-1).src=l.text):n.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length);let l=n.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
41
+ `+i.text,this.inlineQueue.at(-1).src=l.text):o.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length);let l=o.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
42
42
  `)?"":`
43
43
  `)+i.raw,l.text+=`
44
- `+i.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},n.push(i));continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),n.push(i);continue}let s=t;if(this.options.extensions?.startBlock){let l=1/0,c=t.slice(1),d;this.options.extensions.startBlock.forEach(m=>{d=m.call({lexer:this},c),typeof d=="number"&&d>=0&&(l=Math.min(l,d))}),l<1/0&&l>=0&&(s=t.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){let l=n.at(-1);o&&l?.type==="paragraph"?(l.raw+=(l.raw.endsWith(`
44
+ `+i.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},o.push(i));continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),o.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),o.push(i);continue}let s=t;if(this.options.extensions?.startBlock){let l=1/0,c=t.slice(1),d;this.options.extensions.startBlock.forEach(f=>{d=f.call({lexer:this},c),typeof d=="number"&&d>=0&&(l=Math.min(l,d))}),l<1/0&&l>=0&&(s=t.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){let l=o.at(-1);r&&l?.type==="paragraph"?(l.raw+=(l.raw.endsWith(`
45
45
  `)?"":`
46
46
  `)+i.raw,l.text+=`
47
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):n.push(i),o=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let l=n.at(-1);l?.type==="text"?(l.raw+=(l.raw.endsWith(`
47
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):o.push(i),r=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let l=o.at(-1);l?.type==="text"?(l.raw+=(l.raw.endsWith(`
48
48
  `)?"":`
49
49
  `)+i.raw,l.text+=`
50
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):n.push(i);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}linkInText(t){if(!t.includes("["))return!1;let n=this.tokenizer.rules.inline.link;for(let o of t.matchAll(this.tokenizer.rules.inline.blockSkip))if(n.test(o[0])&&t.charAt(o.index-1)!=="!")return!0;for(let o of t.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let a=o[0],i=a.lastIndexOf("[");if(!(a.charAt(0)==="!"||!Object.hasOwn(this.tokens.links,No(a.slice(i+1,-1))))&&!(i>1&&this.linkInText(a.slice(1,i-1))))return!0}return!1}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let o=t;if(this.tokens.links&&t.includes("[")){let l=this.tokenizer.rules.inline.reflinkSearch,c=d=>{let m=d.lastIndexOf("[");if(!Object.hasOwn(this.tokens.links,No(d.slice(m+1,-1))))return d;if(m>1&&d.charAt(0)!=="!"){let u=d.slice(1,m-1);if(this.linkInText(u))return"["+u.replace(l,c)+"]["+"a".repeat(d.length-m-2)+"]"}return"["+"a".repeat(d.length-2)+"]"};o=o.replace(l,c)}o=o.replace(this.tokenizer.rules.inline.anyPunctuation,l=>"+".repeat(l.length)),o=o.replace(this.tokenizer.rules.inline.blockSkip,(l,c,d)=>{let m=d?d.length:0;return l.slice(0,m)+"["+"a".repeat(l.length-m-2)+"]"}),o=this.options.hooks?.emStrongMask?.call({lexer:this},o)??o;let a=!1,i="",s=1/0;for(;t;){if(t.length<s)s=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}a||(i=""),a=!1;let l;if(this.options.extensions?.inline?.some(d=>(l=d.call({lexer:this},t,n))?(t=t.substring(l.raw.length),n.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let d=n.at(-1);l.type==="text"&&d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):n.push(l);continue}if(l=this.tokenizer.emStrong(t,o,i)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.del(t,o,i)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),n.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),n.push(l);continue}let c=t;if(this.options.extensions?.startInline){let d=1/0,m=t.slice(1),u;this.options.extensions.startInline.forEach(p=>{u=p.call({lexer:this},m),typeof u=="number"&&u>=0&&(d=Math.min(d,u))}),d<1/0&&d>=0&&(c=t.substring(0,d+1))}if(l=this.tokenizer.inlineText(c)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(i=l.raw.slice(-1)),a=!0;let d=n.at(-1);d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):n.push(l);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},Fo=class{options;parser;constructor(e){this.options=e||sr}space(e){return""}code({text:e,lang:t,escaped:n}){let o=(t||"").match(xt.notSpaceStart)?.[0],a=e?e.replace(xt.endingNewline,"")+`
51
- `:"";return o?'<pre><code class="language-'+Wt(o)+'">'+(n?a:Wt(a,!0))+`</code></pre>
52
- `:"<pre><code>"+(n?a:Wt(a,!0))+`</code></pre>
50
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):o.push(i);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,o}inline(t,o=[]){return this.inlineQueue.push({src:t,tokens:o}),o}linkInText(t){if(!t.includes("["))return!1;let o=this.tokenizer.rules.inline.link;for(let r of t.matchAll(this.tokenizer.rules.inline.blockSkip))if(o.test(r[0])&&t.charAt(r.index-1)!=="!")return!0;for(let r of t.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let a=r[0],i=a.lastIndexOf("[");if(!(a.charAt(0)==="!"||!Object.hasOwn(this.tokens.links,Gr(a.slice(i+1,-1))))&&!(i>1&&this.linkInText(a.slice(1,i-1))))return!0}return!1}inlineTokens(t,o=[]){this.tokenizer.lexer=this;let r=t;if(this.tokens.links&&t.includes("[")){let l=this.tokenizer.rules.inline.reflinkSearch,c=d=>{let f=d.lastIndexOf("[");if(!Object.hasOwn(this.tokens.links,Gr(d.slice(f+1,-1))))return d;if(f>1&&d.charAt(0)!=="!"){let u=d.slice(1,f-1);if(this.linkInText(u))return"["+u.replace(l,c)+"]["+"a".repeat(d.length-f-2)+"]"}return"["+"a".repeat(d.length-2)+"]"};r=r.replace(l,c)}r=r.replace(this.tokenizer.rules.inline.anyPunctuation,l=>"+".repeat(l.length)),r=r.replace(this.tokenizer.rules.inline.blockSkip,(l,c,d)=>{let f=d?d.length:0;return l.slice(0,f)+"["+"a".repeat(l.length-f-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let a=!1,i="",s=1/0;for(;t;){if(t.length<s)s=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}a||(i=""),a=!1;let l;if(this.options.extensions?.inline?.some(d=>(l=d.call({lexer:this},t,o))?(t=t.substring(l.raw.length),o.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let d=o.at(-1);l.type==="text"&&d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):o.push(l);continue}if(l=this.tokenizer.emStrong(t,r,i)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.del(t,r,i)){t=t.substring(l.raw.length),o.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),o.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),o.push(l);continue}let c=t;if(this.options.extensions?.startInline){let d=1/0,f=t.slice(1),u;this.options.extensions.startInline.forEach(p=>{u=p.call({lexer:this},f),typeof u=="number"&&u>=0&&(d=Math.min(d,u))}),d<1/0&&d>=0&&(c=t.substring(0,d+1))}if(l=this.tokenizer.inlineText(c)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(i=l.raw.slice(-1)),a=!0;let d=o.at(-1);d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):o.push(l);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return o}infiniteLoopError(t){let o="Infinite loop on byte: "+t;if(this.options.silent)console.error(o);else throw new Error(o)}},Xr=class{options;parser;constructor(e){this.options=e||uo}space(e){return""}code({text:e,lang:t,escaped:o}){let r=(t||"").match(Lt.notSpaceStart)?.[0],a=e?e.replace(Lt.endingNewline,"")+`
51
+ `:"";return r?'<pre><code class="language-'+on(r)+'">'+(o?a:on(a,!0))+`</code></pre>
52
+ `:"<pre><code>"+(o?a:on(a,!0))+`</code></pre>
53
53
  `}blockquote({tokens:e}){return`<blockquote>
54
54
  ${this.parser.parse(e)}</blockquote>
55
55
  `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
56
56
  `}hr(e){return`<hr>
57
- `}list(e){let t=e.ordered,n=e.start,o="";for(let s=0;s<e.items.length;s++){let l=e.items[s];o+=this.listitem(l)}let a=t?"ol":"ul",i=t&&n!==1?' start="'+n+'"':"";return"<"+a+i+`>
58
- `+o+"</"+a+`>
57
+ `}list(e){let t=e.ordered,o=e.start,r="";for(let s=0;s<e.items.length;s++){let l=e.items[s];r+=this.listitem(l)}let a=t?"ol":"ul",i=t&&o!==1?' start="'+o+'"':"";return"<"+a+i+`>
58
+ `+r+"</"+a+`>
59
59
  `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
60
60
  `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
61
- `}table(e){let t="",n="";for(let a=0;a<e.header.length;a++)n+=this.tablecell(e.header[a]);t+=this.tablerow({text:n});let o="";for(let a=0;a<e.rows.length;a++){let i=e.rows[a];n="";for(let s=0;s<i.length;s++)n+=this.tablecell(i[s]);o+=this.tablerow({text:n})}return o&&(o=`<tbody>${o}</tbody>`),`<table>
61
+ `}table(e){let t="",o="";for(let a=0;a<e.header.length;a++)o+=this.tablecell(e.header[a]);t+=this.tablerow({text:o});let r="";for(let a=0;a<e.rows.length;a++){let i=e.rows[a];o="";for(let s=0;s<i.length;s++)o+=this.tablecell(i[s]);r+=this.tablerow({text:o})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
62
62
  <thead>
63
63
  `+t+`</thead>
64
- `+o+`</table>
64
+ `+r+`</table>
65
65
  `}tablerow({text:e}){return`<tr>
66
66
  ${e}</tr>
67
- `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
68
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Wt(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:o,autolink:a}){let i=a?Wt(n,!0):this.parser.parseInline(o),s=Pl(e);if(s===null)return i;e=Wt(s,a);let l='<a href="'+e+'"';return t&&(l+=' title="'+Wt(t)+'"'),l+=">"+i+"</a>",l}image({href:e,title:t,text:n,tokens:o}){o&&(n=this.parser.parseInline(o,this.parser.textRenderer));let a=Pl(e);if(a===null)return Wt(n);e=a;let i=`<img src="${Wt(e)}" alt="${Wt(n)}"`;return t&&(i+=` title="${Wt(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:Wt(e.text)}},ti=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},ln=class Ga{options;renderer;textRenderer;constructor(t){this.options=t||sr,this.options.renderer=this.options.renderer||new Fo,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ti}static parse(t,n){return new Ga(n).parse(t)}static parseInline(t,n){return new Ga(n).parseInline(t)}parse(t){this.renderer.parser=this;let n="";for(let o=0;o<t.length;o++){let a=t[o];if(this.options.extensions?.renderers?.[a.type]){let s=a,l=this.options.extensions.renderers[s.type].call({parser:this},s);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(s.type)){n+=l||"";continue}}let i=a;switch(i.type){case"space":{n+=this.renderer.space(i);break}case"hr":{n+=this.renderer.hr(i);break}case"heading":{n+=this.renderer.heading(i);break}case"code":{n+=this.renderer.code(i);break}case"table":{n+=this.renderer.table(i);break}case"blockquote":{n+=this.renderer.blockquote(i);break}case"list":{n+=this.renderer.list(i);break}case"checkbox":{n+=this.renderer.checkbox(i);break}case"html":{n+=this.renderer.html(i);break}case"def":{n+=this.renderer.def(i);break}case"paragraph":{n+=this.renderer.paragraph(i);break}case"text":{n+=this.renderer.text(i);break}default:{let s='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return n}parseInline(t,n=this.renderer){this.renderer.parser=this;let o="";for(let a=0;a<t.length;a++){let i=t[a];if(this.options.extensions?.renderers?.[i.type]){let l=this.options.extensions.renderers[i.type].call({parser:this},i);if(l!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(i.type)){o+=l||"";continue}}let s=i;switch(s.type){case"escape":{o+=n.text(s);break}case"html":{o+=n.html(s);break}case"link":{o+=n.link(s);break}case"image":{o+=n.image(s);break}case"checkbox":{o+=n.checkbox(s);break}case"strong":{o+=n.strong(s);break}case"em":{o+=n.em(s);break}case"codespan":{o+=n.codespan(s);break}case"br":{o+=n.br(s);break}case"del":{o+=n.del(s);break}case"text":{o+=n.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return o}},Zr=class{options;block;constructor(e){this.options=e||sr}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?sn.lex:sn.lexInline}provideParser(e=this.block){return e?ln.parse:ln.parseInline}},ni=class{defaults=Ja();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ln;Renderer=Fo;TextRenderer=ti;Lexer=sn;Tokenizer=Oo;Hooks=Zr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let o of e)switch(n=n.concat(t.call(this,o)),o.type){case"table":{let a=o;for(let i of a.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of a.rows)for(let s of i)n=n.concat(this.walkTokens(s.tokens,t));break}case"list":{let a=o;n=n.concat(this.walkTokens(a.items,t));break}default:{let a=o;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach(i=>{let s=a[i].flat(1/0);n=n.concat(this.walkTokens(s,t))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let o={...n};if(o.async=this.defaults.async||o.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let i=t.renderers[a.name];i?t.renderers[a.name]=function(...s){let l=a.renderer.apply(this,s);return l===!1&&(l=i.apply(this,s)),l}:t.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[a.level];i?i.unshift(a.tokenizer):t[a.level]=[a.tokenizer],a.start&&(a.level==="block"?t.startBlock?t.startBlock.push(a.start):t.startBlock=[a.start]:a.level==="inline"&&(t.startInline?t.startInline.push(a.start):t.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(t.childTokens[a.name]=a.childTokens)}),o.extensions=t),n.renderer){let a=this.defaults.renderer||new Fo(this.defaults);for(let i in n.renderer){if(!(i in a))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let s=i,l=n.renderer[s],c=a[s];a[s]=(...d)=>{let m=l.apply(a,d);return m===!1&&(m=c.apply(a,d)),m||""}}o.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new Oo(this.defaults);for(let i in n.tokenizer){if(!(i in a))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let s=i,l=n.tokenizer[s],c=a[s];a[s]=(...d)=>{let m=l.apply(a,d);return m===!1&&(m=c.apply(a,d)),m}}o.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new Zr;for(let i in n.hooks){if(!(i in a))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let s=i,l=n.hooks[s],c=a[s];Zr.passThroughHooks.has(i)?a[s]=d=>{if(this.defaults.async&&Zr.passThroughHooksRespectAsync.has(i))return(async()=>{let u=await l.call(a,d);return c.call(a,u)})();let m=l.call(a,d);return c.call(a,m)}:a[s]=(...d)=>{if(this.defaults.async)return(async()=>{let u=await l.apply(a,d);return u===!1&&(u=await c.apply(a,d)),u})();let m=l.apply(a,d);return m===!1&&(m=c.apply(a,d)),m}}o.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,i=n.walkTokens;o.walkTokens=function(s){let l=[];return l.push(i.call(this,s)),a&&(l=l.concat(a.call(this,s))),l}}this.defaults={...this.defaults,...o}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return sn.lex(e,t??this.defaults)}parser(e,t){return ln.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let o={...n},a={...this.defaults,...o},i=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&o.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=e),a.async)return(async()=>{let s=a.hooks?await a.hooks.preprocess(t):t,l=await(a.hooks?await a.hooks.provideLexer(e):e?sn.lex:sn.lexInline)(s,a),c=a.hooks?await a.hooks.processAllTokens(l):l;a.walkTokens&&await Promise.all(this.walkTokens(c,a.walkTokens));let d=await(a.hooks?await a.hooks.provideParser(e):e?ln.parse:ln.parseInline)(c,a);return a.hooks?await a.hooks.postprocess(d):d})().catch(i);try{a.hooks&&(t=a.hooks.preprocess(t));let s=(a.hooks?a.hooks.provideLexer(e):e?sn.lex:sn.lexInline)(t,a);a.hooks&&(s=a.hooks.processAllTokens(s)),a.walkTokens&&this.walkTokens(s,a.walkTokens);let l=(a.hooks?a.hooks.provideParser(e):e?ln.parse:ln.parseInline)(s,a);return a.hooks&&(l=a.hooks.postprocess(l)),l}catch(s){return i(s)}}}onError(e,t){return n=>{if(n.message+=`
69
- Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error occurred:</p><pre>"+Wt(n.message+"",!0)+"</pre>";return t?Promise.resolve(o):o}if(t)return Promise.reject(n);throw n}}},ir=new ni;function He(e,t){return ir.parse(e,t)}He.options=He.setOptions=function(e){return ir.setOptions(e),He.defaults=ir.defaults,Nl(He.defaults),He};He.getDefaults=Ja;He.defaults=sr;function Sg(...e){return ir.use(...e),He.defaults=ir.defaults,Nl(He.defaults),He}He.use=Sg;He.walkTokens=function(e,t){return ir.walkTokens(e,t)};He.parseInline=ir.parseInline;He.Parser=ln;He.parser=ln.parse;He.Renderer=Fo;He.TextRenderer=ti;He.Lexer=sn;He.lexer=sn.lex;He.Tokenizer=Oo;He.Hooks=Zr;He.parse=He;var jy=He.options,Gy=He.setOptions,Jy=He.walkTokens,Ky=He.parseInline;var Xy=ln.parse,Yy=sn.lex;var Vo,be,Jl,_g,Gn,Vl,Kl,Xl,ri,Bo,no,Yl,si,oi,ai,Zl,Ho={},qo=[],Cg=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ro=Array.isArray;function Pn(e,t){for(var n in t)e[n]=t[n];return e}function li(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function cr(e,t,n){var o,a,i,s={};for(i in t)i=="key"?o=t[i]:i=="ref"?a=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?Vo.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return Uo(e,s,o,a,null)}function Uo(e,t,n,o,a){var i={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++Jl,__i:-1,__u:0};return a==null&&be.vnode!=null&&be.vnode(i),i}function O(e){return e.children}function cn(e,t){this.props=e,this.context=t}function lr(e,t){if(t==null)return e.__?lr(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?lr(e):null}function Tg(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,o=[],a=[],i=Pn({},t);i.__v=t.__v+1,be.vnode&&be.vnode(i),ci(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,o,n??lr(t),!!(32&t.__u),a),i.__v=t.__v,i.__.__k[i.__i]=i,rc(o,i,a),t.__e=t.__=null,i.__e!=n&&Ql(i)}}function Ql(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),Ql(e)}function ii(e){(!e.__d&&(e.__d=!0)&&Gn.push(e)&&!Wo.__r++||Vl!=be.debounceRendering)&&((Vl=be.debounceRendering)||Kl)(Wo)}function Wo(){try{for(var e,t=1;Gn.length;)Gn.length>t&&Gn.sort(Xl),e=Gn.shift(),t=Gn.length,Tg(e)}finally{Gn.length=Wo.__r=0}}function ec(e,t,n,o,a,i,s,l,c,d,m){var u,p,g,f,h,k,x=o&&o.__k||qo,S=t.length;for(c=Ag(n,t,x,c,S),u=0;u<S;u++)(g=n.__k[u])!=null&&(p=g.__i!=-1&&x[g.__i]||Ho,g.__i=u,k=ci(e,g,p,a,i,s,l,c,d,m),f=g.__e,g.ref&&p.ref!=g.ref&&(p.ref&&di(p.ref,null,g),m.push(g.ref,g.__c||f,g)),h==null&&f!=null&&(h=f),4&g.__u?(c=tc(g,c,e),p.__e&&(p.__e=null)):typeof g.type=="function"&&k!==void 0?c=k:f&&(c=f.nextSibling),g.__u&=-7);return n.__e=h,c}function Ag(e,t,n,o,a){var i,s,l,c,d,m=n.length,u=m,p=0;for(e.__k=new Array(a),i=0;i<a;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[i]=Uo(null,s,null,null,null):ro(s)?s=e.__k[i]=Uo(O,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[i]=Uo(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[i]=s,c=i+p,s.__=e,s.__b=e.__b+1,l=null,(d=s.__i=Eg(s,n,c,u))!=-1&&(u--,(l=n[d])&&(l.__u|=2)),l==null||l.__v==null?(d==-1&&(a>m?p--:a<m&&p++),typeof s.type!="function"&&(s.__u|=4)):d!=c&&(d==c-1?p--:d==c+1?p++:(d>c?p--:p++,s.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<m;i++)(l=n[i])!=null&&(2&l.__u)==0&&(l.__e==o&&(o=lr(l)),ac(l,l));return o}function tc(e,t,n){var o,a;if(typeof e.type=="function"){for(o=e.__k,a=0;o&&a<o.length;a++)o[a]&&(o[a].__=e,t=tc(o[a],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=lr(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function oo(e,t){return t=t||[],e==null||typeof e=="boolean"||(ro(e)?e.some(function(n){oo(n,t)}):t.push(e)),t}function Eg(e,t,n,o){var a,i,s,l=e.key,c=e.type,d=t[n],m=d!=null&&(2&d.__u)==0;if(d===null&&l==null||m&&l==d.key&&c==d.type)return n;if(o>(m?1:0)){for(a=n-1,i=n+1;a>=0||i<t.length;)if((d=t[s=a>=0?a--:i++])!=null&&(2&d.__u)==0&&l==d.key&&c==d.type)return s}return-1}function jl(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Cg.test(t)?n:n+"px"}function $o(e,t,n,o,a){var i,s;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||jl(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||jl(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(Yl,"$1")),s=t.toLowerCase(),t=s in e||t=="onFocusOut"||t=="onFocusIn"?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?o?n[no]=o[no]:(n[no]=si,e.addEventListener(t,i?ai:oi,i)):e.removeEventListener(t,i?ai:oi,i);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Gl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[Bo]==null)t[Bo]=si++;else if(t[Bo]<n[no])return;return n(be.event?be.event(t):t)}}}function ci(e,t,n,o,a,i,s,l,c,d){var m,u,p,g,f,h,k,x,S,w,T,R,B,U,N,G,z=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(c=!!(32&n.__u),i=[l=t.__e=n.__e]),(m=be.__b)&&m(t);e:if(typeof z=="function"){u=s.length;try{if(S=t.props,w=z.prototype&&z.prototype.render,T=(m=z.contextType)&&o[m.__c],R=m?T?T.props.value:m.__:o,n.__c?x=(p=t.__c=n.__c).__=p.__E:(w?t.__c=p=new z(S,R):(t.__c=p=new cn(S,R),p.constructor=z,p.render=Mg),T&&T.sub(p),p.state||(p.state={}),p.__n=o,g=p.__d=!0,p.__h=[],p._sb=[]),w&&p.__s==null&&(p.__s=p.state),w&&z.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=Pn({},p.__s)),Pn(p.__s,z.getDerivedStateFromProps(S,p.__s))),f=p.props,h=p.state,p.__v=t,g)w&&z.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),w&&p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(w&&z.getDerivedStateFromProps==null&&S!==f&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(S,R),t.__v==n.__v||!p.__e&&p.shouldComponentUpdate!=null&&p.shouldComponentUpdate(S,p.__s,R)===!1){t.__v!=n.__v&&(p.props=S,p.state=p.__s,p.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(P){P&&(P.__=t)}),qo.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&s.push(p),l=lr(n);break e}p.componentWillUpdate!=null&&p.componentWillUpdate(S,p.__s,R),w&&p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(f,h,k)})}if(p.context=R,p.props=S,p.__P=e,p.__e=!1,B=be.__r,U=0,w)p.state=p.__s,p.__d=!1,B&&B(t),m=p.render(p.props,p.state,p.context),qo.push.apply(p.__h,p._sb),p._sb=[];else do p.__d=!1,B&&B(t),m=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++U<25);p.state=p.__s,p.getChildContext!=null&&(o=Pn(Pn({},o),p.getChildContext())),w&&!g&&p.getSnapshotBeforeUpdate!=null&&(k=p.getSnapshotBeforeUpdate(f,h)),N=m!=null&&m.type===O&&m.key==null?oc(m.props.children):m,l=ec(e,ro(N)?N:[N],t,n,o,a,i,s,l,c,d),p.base=t.__e,t.__u&=-161,p.__h.length&&s.push(p),x&&(p.__E=p.__=null)}catch(P){if(s.length=u,t.__v=null,c||i!=null){if(P.then){for(t.__u|=c?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;i!=null&&(i[i.indexOf(l)]=null),t.__e=l}else if(i!=null)for(G=i.length;G--;)li(i[G])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),P.then||nc(t),be.__e(P,t,n)}}else i==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=Pg(n.__e,t,n,o,a,i,s,c,d);return(m=be.diffed)&&m(t),128&t.__u?void 0:l}function nc(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(nc))}function rc(e,t,n){for(var o=0;o<n.length;o++)di(n[o],n[++o],n[++o]);be.__c&&be.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(i){i.call(a)})}catch(i){be.__e(i,a.__v)}})}function oc(e){return typeof e!="object"||e==null||e.__b>0?e:ro(e)?e.map(oc):e.constructor!==void 0?null:Pn({},e)}function Pg(e,t,n,o,a,i,s,l,c){var d,m,u,p,g,f,h,k=n.props||Ho,x=t.props,S=t.type;if(S=="svg"?a="http://www.w3.org/2000/svg":S=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),i!=null){for(d=0;d<i.length;d++)if((g=i[d])&&"setAttribute"in g==!!S&&(S?g.localName==S:g.nodeType==3)){e=g,i[d]=null;break}}if(e==null){if(S==null)return document.createTextNode(x);e=document.createElementNS(a,S,x.is&&x),l&&(be.__m&&be.__m(t,i),l=!1),i=null}if(S==null)k===x||l&&e.data==x||(e.data=x);else{if(i=S=="textarea"&&x.defaultValue!=null?null:i&&Vo.call(e.childNodes),!l&&i!=null)for(k={},d=0;d<e.attributes.length;d++)k[(g=e.attributes[d]).name]=g.value;for(d in k)g=k[d],d=="dangerouslySetInnerHTML"?u=g:d=="children"||d in x||d=="value"&&"defaultValue"in x||d=="checked"&&"defaultChecked"in x||$o(e,d,null,g,a);for(d in x)g=x[d],d=="children"?p=g:d=="dangerouslySetInnerHTML"?m=g:d=="value"?f=g:d=="checked"?h=g:l&&typeof g!="function"||k[d]===g||$o(e,d,g,k[d],a);if(m)l||u&&(m.__html==u.__html||m.__html==e.innerHTML)||(e.innerHTML=m.__html),t.__k=[];else if(u&&(e.innerHTML=""),ec(t.type=="template"?e.content:e,ro(p)?p:[p],t,n,o,S=="foreignObject"?"http://www.w3.org/1999/xhtml":a,i,s,i?i[0]:n.__k&&lr(n,0),l,c),i!=null)for(d=i.length;d--;)li(i[d]);l&&S!="textarea"||(d="value",S=="progress"&&f==null?e.removeAttribute("value"):f!=null&&(f!==e[d]||S=="progress"&&!f||S=="option"&&f!=k[d])&&$o(e,d,f,k[d],a),d="checked",h!=null&&h!=e[d]&&$o(e,d,h,k[d],a))}return e}function di(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(a){be.__e(a,n)}}function ac(e,t,n){var o,a;if(be.unmount&&be.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||di(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(i){be.__e(i,t)}o.base=o.__P=o.__n=null}if(o=e.__k)for(a=0;a<o.length;a++)o[a]&&ac(o[a],t,n||typeof e.type!="function");n||li(e.__e),e.__c=e.__=e.__e=void 0}function Mg(e,t,n){return this.constructor(e,n)}function Ee(e,t,n){var o,a,i,s;t==document&&(t=document.documentElement),be.__&&be.__(e,t),a=(o=typeof n=="function")?null:n&&n.__k||t.__k,i=[],s=[],ci(t,e=(!o&&n||t).__k=cr(O,null,[e]),a||Ho,Ho,t.namespaceURI,!o&&n?[n]:a?null:t.firstChild?Vo.call(t.childNodes):null,i,!o&&n?n:a?a.__e:t.firstChild,o,s),rc(i,e,s),e.props.children=null}function jo(e){function t(n){var o,a;return this.getChildContext||(o=new Set,(a={})[t.__c]=this,this.getChildContext=function(){return a},this.componentWillUnmount=function(){o=null},this.shouldComponentUpdate=function(i){this.props.value!=i.value&&o.forEach(function(s){s.__e=!0,ii(s)})},this.sub=function(i){o.add(i);var s=i.componentWillUnmount;i.componentWillUnmount=function(){o&&o.delete(i),s&&s.call(i)}}),n.children}return t.__c="__cC"+Zl++,t.__=e,t.Provider=t.__l=(t.Consumer=function(n,o){return n.children(o)}).contextType=t,t}Vo=qo.slice,be={__e:function(e,t,n,o){for(var a,i,s;t=t.__;)if((a=t.__c)&&!a.__)try{if((i=a.constructor)&&i.getDerivedStateFromError!=null&&(a.setState(i.getDerivedStateFromError(e)),s=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,o||{}),s=a.__d),s)return a.__E=a}catch(l){e=l}throw e}},Jl=0,_g=function(e){return e!=null&&e.constructor===void 0},cn.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Pn({},this.state),typeof e=="function"&&(e=e(Pn({},n),this.props)),e&&Pn(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),ii(this))},cn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ii(this))},cn.prototype.render=O,Gn=[],Kl=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Xl=function(e,t){return e.__v.__b-t.__v.__b},Wo.__r=0,ri=Math.random().toString(8),Bo="__d"+ri,no="__a"+ri,Yl=/(PointerCapture)$|Capture$/i,si=0,oi=Gl(!1),ai=Gl(!0),Zl=0;var Jn,Ve,ui,ic,ao=0,mc=[],nt=be,sc=nt.__b,lc=nt.__r,cc=nt.diffed,dc=nt.__c,uc=nt.unmount,pc=nt.__;function Rr(e,t){nt.__h&&nt.__h(Ve,e,ao||t),ao=0;var n=Ve.__H||(Ve.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function C(e){return ao=1,gc(hc,e)}function gc(e,t,n){var o=Rr(Jn++,2);if(o.t=e,!o.__c&&(o.__=[n?n(t):hc(void 0,t),function(l){var c=o.__N?o.__N[0]:o.__[0],d=o.t(c,l);c!==d&&(o.__N=[d,o.__[1]],o.__c.setState({}))}],o.__c=Ve,!Ve.__f)){var a=function(l,c,d){if(!o.__c.__H)return!0;var m=!1,u=o.__c.props!==l;if(o.__c.__H.__.some(function(g){if(g.__N){m=!0;var f=g.__[0];g.__=g.__N,g.__N=void 0,f!==g.__[0]&&(u=!0)}}),i){var p=i.call(this,l,c,d);return m?p||u:p}return!m||u};Ve.__f=!0;var i=Ve.shouldComponentUpdate,s=Ve.componentWillUpdate;Ve.componentWillUpdate=function(l,c,d){if(this.__e){var m=i;i=void 0,a(l,c,d),i=m}s&&s.call(this,l,c,d)},Ve.shouldComponentUpdate=a}return o.__N||o.__}function X(e,t){var n=Rr(Jn++,3);!nt.__s&&mi(n.__H,t)&&(n.__=e,n.u=t,Ve.__H.__h.push(n))}function Kn(e,t){var n=Rr(Jn++,4);!nt.__s&&mi(n.__H,t)&&(n.__=e,n.u=t,Ve.__h.push(n))}function ie(e){return ao=5,Vt(function(){return{current:e}},[])}function Vt(e,t){var n=Rr(Jn++,7);return mi(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function dn(e,t){return ao=8,Vt(function(){return e},t)}function fi(e){var t=Ve.context[e.__c],n=Rr(Jn++,9);return n.c=e,t?(n.__==null&&(n.__=!0,t.sub(Ve)),t.props.value):e.__}function dr(){var e=Rr(Jn++,11);if(!e.__){for(var t=Ve.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function Rg(){for(var e;e=mc.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Go),t.__h.some(pi),t.__h=[]}catch(n){t.__h=[],nt.__e(n,e.__v)}}}nt.__b=function(e){Ve=null,sc&&sc(e)},nt.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),pc&&pc(e,t)},nt.__r=function(e){lc&&lc(e),Jn=0;var t=(Ve=e.__c).__H;t&&(ui===Ve?(t.__h=[],Ve.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(Go),t.__h.some(pi),t.__h=[],Jn=0)),ui=Ve},nt.diffed=function(e){cc&&cc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(mc.push(t)!==1&&ic===nt.requestAnimationFrame||((ic=nt.requestAnimationFrame)||Ig)(Rg)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),ui=Ve=null},nt.__c=function(e,t){t.some(function(n){try{n.__h.some(Go),n.__h=n.__h.filter(function(o){return!o.__||pi(o)})}catch(o){t.some(function(a){a.__h&&(a.__h=[])}),t=[],nt.__e(o,n.__v)}}),dc&&dc(e,t)},nt.unmount=function(e){uc&&uc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(o){try{Go(o)}catch(a){t=a}}),n.__H=void 0,t&&nt.__e(t,n.__v))};var fc=typeof requestAnimationFrame=="function";function Ig(e){var t,n=function(){clearTimeout(o),fc&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);fc&&(t=requestAnimationFrame(n))}function Go(e){var t=Ve,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),Ve=t}function pi(e){var t=Ve;e.__c=e.__(),Ve=t}function mi(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function hc(e,t){return typeof t=="function"?t(e):t}var gi=null;function vc(e){gi=e}function un(e){return gi&&e&&typeof window<"u"&&e===window.tangu?{...e,...gi}:e}var Mn=e=>!!(e?.unitPage&&e.unitPublicEntry||e?.mobile&&e.extendMobile),pn=e=>!!e&&(!e.unitPage||!!e.unitPublicEntry),oe=()=>un(typeof window<"u"?window.tangu:void 0)||{};function Jo(e){let t=typeof e?.status=="number"?e.status:0;if(t>=200&&t<300)return{ok:!0,status:t,data:e?.json??null};let n=e?.json&&typeof e.json=="object"?e.json:null,o=typeof n?.error=="string"?n.error:typeof n?.code=="string"?n.code:null,a=typeof n?.detail=="string"?n.detail:typeof n?.message=="string"?n.message:null;return{ok:!1,status:t,code:o,detail:a,transport:typeof e?.error=="string"?e.error:null}}var hi=e=>({ok:!1,status:0,code:null,detail:null,transport:e});async function Z(e,t={}){let n=oe().cloudFetch;if(!n)return hi("no_bridge");try{return Jo(await n({path:e,...t}))}catch(o){return hi(String(o?.message||o))}}async function Ko(e,t){if(!e)return t();try{return Jo(await e())}catch(n){return hi(String(n?.message||n))}}var Rn=e=>e.status===401&&(e.transport==="not_signed_in"||e.code===null&&e.detail===null&&e.transport===null);function Tt(e){return String(e?.message??e??"").replace(/^Error invoking remote method '[^']*':\s*/,"").replace(/^(?:[A-Za-z]*Error):\s*/,"").trim()}async function wn(e,t,n){let o=oe().cloudInvoke;if(!o)return!1;let a=e==="membership"&&t?n?[e,t,n]:[e,t]:[e];try{return!!(await o("auth:openPayCenter",...a))?.ok}catch{return!1}}async function ur(e){let t=oe().openAccountCenter;if(!t)return!1;try{return!!(await t(e)).ok}catch{return!1}}var Lg=0;function r(e,t,n,o,a,i){t||(t={});var s,l,c=t;if("ref"in c)for(l in c={},t)l=="ref"?s=t[l]:c[l]=t[l];var d={type:e,props:c,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Lg,__i:-1,__u:0,__source:a,__self:i};if(typeof e=="function"&&(s=e.defaultProps))for(l in s)c[l]===void 0&&(c[l]=s[l]);return be.vnode&&be.vnode(d),d}var Dg={user:"M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z M4 20c.8-3.5 4-5.5 8-5.5s7.2 2 8 5.5",backpack:"M9 5V3h6v2 M6 8a6 6 0 0 1 12 0v12H6V8Z M9 13h6v5H9z M3 11h3v7H3z M18 11h3v7h-3 M10 8h4",gauge:"M4 16a8 8 0 1 1 16 0 M12 16l4-5 M12 16h.01",bug:"M8.5 9.5a3.5 3.5 0 0 1 7 0V15a3.5 3.5 0 0 1-7 0V9.5Z M12 10v8 M4 13h4.5 M15.5 13H20 M5 8.5l3.5 2 M19 8.5l-3.5 2 M5 18.5l3.5-2 M19 18.5l-3.5-2 M10 6L9 4 M14 6l1-2",pointer:"M5 4l13 6.5-5.5 1.5L10.5 18 5 4Z",shield:"M12 3l7 3v5c0 4.5-3 8.2-7 10-4-1.8-7-5.5-7-10V6l7-3Z",chart:"M4 20V10 M10 20V4 M16 20v-7 M21 20H3",message:"M5 4h14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7l-5 4v-4H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z",card:"M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Z M3 10h18 M7 15h4",coins:"M9 11a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z M15.5 9.2A5 5 0 1 1 9.8 16",clock:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M12 7v5l3 2",gift:"M4 11h16v9H4z M3 7h18v4H3z M12 7v13 M12 7c-1.5-3-5-3-5-1s3 1 5 1c2 0 5 1 5-1s-3.5-2-5 1",key:"M8 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z M11 11h10 M17 11v3 M20 11v2",laptop:"M5 5h14v10H5z M3 19h18",alert:"M12 4l9 16H3l9-16Z M12 10v4 M12 17h.01",external:"M14 4h6v6 M20 4l-9 9 M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5",copy:"M9 9h11v11H9z M5 15H4V4h11v1",check:"M5 12.5l4.5 4.5L19 7.5",checkin:"M5 5h14v15H5z M5 10h14 M9 3v4 M15 3v4 M9 15l2 2 4-4",tasks:"M4 6l2 2 3-3 M4 16l2 2 3-3 M12 7h9 M12 17h9",gamepad:"M6 8h12a4 4 0 0 1 4 4v3a3 3 0 0 1-5.4 1.8L15 15H9l-1.6 1.8A3 3 0 0 1 2 15v-3a4 4 0 0 1 4-4Z M7 11v3 M5.5 12.5h3 M15.5 12h.01 M18 13.5h.01",megaphone:"M4 10v4h3l9 4V6l-9 4H4Z M19 10a3 3 0 0 1 0 4 M8 14.5V19h3v-3",play:"M7 5l12 7-12 7V5Z",chevron:"M9 6l6 6-6 6",back:"M15 6l-6 6 6 6",arrowLeft:"M19 12H5M11 6l-6 6 6 6",pencil:"M4 20h4L19 9l-4-4L4 16v4Z M13.5 6.5l4 4",plus:"M12 5v14 M5 12h14",refresh:"M20 11a8 8 0 0 0-14.3-4.9L4 8 M4 4v4h4 M4 13a8 8 0 0 0 14.3 4.9L20 16 M20 20v-4h-4",phone:"M8 3h8a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M11 18h2",mail:"M4 6h16v12H4z M4 7l8 6 8-6",image:"M4 5h16v14H4z M4 16l5-5 4 4 3-3 4 4 M15.5 9.5h.01",x:"M6 6l12 12 M18 6L6 18",logout:"M15 4h4v16h-4 M10 8l-4 4 4 4 M6 12h10",globe:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M3 12h18 M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z",lock:"M6 11h12v9H6z M8.5 11V8a3.5 3.5 0 0 1 7 0v3",palette:"M12 3a9 9 0 0 0 0 18c1.2 0 2-.8 2-1.9 0-.5-.2-.9-.5-1.3-.3-.4-.5-.8-.5-1.3 0-1 .8-1.8 1.8-1.8H17a4 4 0 0 0 4-4c0-4.3-4-7.7-9-7.7Z M7.5 12.5h.01 M9 8.5h.01 M14 7.5h.01",calendar:"M5 5h14v15H5z M5 10h14 M9 3v4 M15 3v4",link:"M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1 M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1",flame:"M12 21a6 6 0 0 0 6-6c0-2.5-1.4-4.4-3-6-.3 1.5-1 2.5-2 3 .3-3-1-6-3.5-8 .2 3-1 4.8-2.2 6.3C6.4 11.5 6 13.2 6 15a6 6 0 0 0 6 6Z",trophy:"M8 4h8v6a4 4 0 0 1-8 0V4Z M8 6H5v1a3 3 0 0 0 3 3 M16 6h3v1a3 3 0 0 1-3 3 M12 14v4 M8.5 20h7",sprout:"M12 20v-8 M12 12c0-3-2-5-6-5 0 3.5 2 5 6 5Z M12 14c0-3 2-5 6-5 0 3.5-2 5-6 5Z",eye:"M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z M12 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",download:"M12 4v11 M7.5 11l4.5 4.5 4.5-4.5 M5 20h14",upload:"M12 16V5 M7.5 9.5 12 5l4.5 4.5 M5 20h14",up:"M12 19V5 M6 11l6-6 6 6",down:"M12 5v14 M6 13l6 6 6-6",sparkles:"M12 4l1.8 4.7 4.7 1.8-4.7 1.8L12 17l-1.8-4.7-4.7-1.8 4.7-1.8L12 4Z M18.5 15.5v4 M16.5 17.5h4",bot:"M6 9h12v10H6z M12 9V5 M12 4.5h.01 M9.5 13.5h.01 M14.5 13.5h.01 M3.5 13v3 M20.5 13v3",box:"M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3Z M4 7.5l8 4.5 8-4.5 M12 12v9",grid:"M4 4h7v7H4z M13 4h7v7h-7z M4 13h7v7H4z M13 13h7v7h-7z",note:"M6 3h9l4 4v14H6z M15 3v4h4 M9 12h6 M9 16h4",puzzle:"M9 3H4v6a3 3 0 1 0 0 6v5h6a3 3 0 1 1 6 0h4v-6a3 3 0 1 0 0-6V3h-5a3 3 0 1 1-6 0Z",home:"M4 11l8-7 8 7 M6 9.5V20h4v-5h4v5h4V9.5",info:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M12 11v5 M12 8h.01",ticket:"M3 8a2 2 0 0 0 0 4v0a2 2 0 0 1 0 4v2h18v-2a2 2 0 0 1 0-4 2 2 0 0 0 0-4V6H3v2Z M14 6v12",at:"M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z M16 12v1.5a2.5 2.5 0 0 0 5 0V12a9 9 0 1 0-3.6 7.2"};function W({name:e,size:t=14,class:n}){return r("svg",{class:n,width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:r("path",{d:Dg[e]})})}function Ir({size:e=12}){return r("svg",{class:"spin",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","aria-hidden":"true",focusable:"false",children:r("path",{d:"M21 12a9 9 0 1 1-6.2-8.56"})})}var Ng={"events.title":"\u6D3B\u52A8","events.back":"\u8FD4\u56DE\u5E94\u7528","events.count":"{n} \u573A\u8FDB\u884C\u4E2D","events.group.active":"\u8FDB\u884C\u4E2D","events.group.notice":"\u516C\u544A","events.group.upcoming":"\u9884\u544A","events.ended":"\u5DF2\u7ED3\u675F\u7684\u6D3B\u52A8","events.endedEmpty":"\u8FD8\u6CA1\u6709\u7ED3\u675F\u7684\u6D3B\u52A8","events.list":"\u5168\u90E8\u6D3B\u52A8","events.kind.checkin":"\u7B7E\u5230","events.kind.tasks":"\u4EFB\u52A1","events.kind.game":"\u5C0F\u6E38\u620F","events.kind.notice":"\u516C\u544A","events.left.days":"\u5269 {n} \u5929","events.left.hours":"\u5269 {n} \u5C0F\u65F6","events.left.long":"\u5269\u4F59 {d} \u5929 {h} \u5C0F\u65F6","events.left.longHours":"\u5269\u4F59 {h} \u5C0F\u65F6","events.time.start":"{date} \u5F00\u59CB","events.time.claim":"\u6D3B\u52A8\u5DF2\u7ED3\u675F\uFF0C{date} \u524D\u9886\u53D6","events.time.claimShort":"{date} \u524D\u9886\u53D6","events.time.ended":"\u5DF2\u4E8E {date} \u7ED3\u675F","events.time.published":"{date} \u53D1\u5E03","events.rewards":"\u6D3B\u52A8\u5956\u52B1","events.checkin.signed":"\u5DF2\u7B7E {n}/{total}","events.checkin.today":"\u4ECA\u5929","events.checkin.day":"\u7B2C {n} \u5929","events.checkin.do":"\u4ECA\u65E5\u7B7E\u5230","events.checkin.done":"\u4ECA\u65E5\u5DF2\u7B7E","events.checkin.finished":"\u5DF2\u5168\u90E8\u7B7E\u5B8C","events.tasks.progress":"\u4EFB\u52A1\u8FDB\u5EA6","events.tasks.claim":"\u9886\u53D6","events.tasks.claimAll":"\u5168\u90E8\u9886\u53D6 ({n})","events.tasks.go":"\u53BB\u5B8C\u6210","events.tasks.closed":"\u6D3B\u52A8\u5DF2\u7ED3\u675F","events.game.board":"\u6392\u884C\u699C","events.game.me":"\u6211","events.game.anon":"\u533F\u540D\u73A9\u5BB6","events.game.enter":"\u8FDB\u5165\u6E38\u620F","events.game.install":"\u53BB\u5546\u5E97\u5B89\u88C5","events.game.empty":"\u8FD8\u6CA1\u6709\u4EBA\u4E0A\u699C","events.notice.more":"\u67E5\u770B\u8BE6\u60C5","events.toast.checkin":"\u5DF2\u7B7E\u5230\uFF0C{reward}","events.toast.claimed":"\u5DF2\u9886\u53D6 {reward}","events.toast.partial":"\u9886\u5230 {n} \u9879\uFF0C{m} \u9879\u6CA1\u9886\u5230\uFF0C\u7A0D\u540E\u518D\u8BD5","events.toast.backpack":"\u67E5\u770B\u80CC\u5305","events.err.failed":"\u6CA1\u9886\u5230\uFF0C\u7F51\u7EDC\u6062\u590D\u540E\u518D\u8BD5\u4E00\u6B21","events.err.notLive":"\u8FD9\u573A\u6D3B\u52A8\u5DF2\u7ECF\u7ED3\u675F","events.err.completed":"\u5DF2\u7ECF\u5168\u90E8\u7B7E\u5B8C","events.err.grantFailed":"\u5956\u52B1\u6CA1\u53D1\u51FA\u53BB\uFF0C\u5DF2\u767B\u8BB0\u8865\u53D1\uFF0C\u4E0D\u7528\u91CD\u590D\u9886\u53D6","events.login.title":"\u767B\u5F55\u540E\u53C2\u4E0E\u6D3B\u52A8","events.login.do":"\u767B\u5F55 Forsion","events.empty":"\u6682\u65F6\u6CA1\u6709\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8","events.error":"\u6D3B\u52A8\u6CA1\u6709\u52A0\u8F7D\u51FA\u6765","events.retry":"\u91CD\u8BD5","events.dot":"\u6709\u5956\u52B1\u53EF\u9886\u6216\u65B0\u6D3B\u52A8","penzor.rules.default":"\u4E91\u7AEF\u9ED8\u8BA4","penzor.rules.off":"\u4E0D\u540C\u6B65","penzor.rules.device":"\u8BBE\u5907","penzor.rules.run":"\u7ACB\u5373\u540C\u6B65","penzor.rules.twoWay":"\u53CC\u5411","penzor.rules.defaultForWeb":"\u9ED8\u8BA4\u76EE\u5F55\u4F9B\u7F51\u9875\u7AEF\u4F7F\u7528","penzor.rules.tab.rules":"\u540C\u6B65\u89C4\u5219","penzor.rules.tab.active":"\u6B63\u5728\u4F20\u8F93","penzor.rules.tab.history":"\u5386\u53F2\u8BB0\u5F55","penzor.rules.enable":"\u5F00\u542F\u5185\u5BB9\u540C\u6B65","penzor.rules.add":"\u6DFB\u52A0\u89C4\u5219","penzor.rules.source":"\u672C\u673A\u6765\u6E90","penzor.rules.destination":"\u4E91\u7AEF\u76EE\u6807","penzor.rules.direction":"\u65B9\u5411","penzor.rules.remove":"\u5220\u9664\u89C4\u5219","penzor.rules.inherit":"\u7A7A\u8DEF\u5F84\u4EE3\u8868\u6574\u4E2A Forsion\u3002\u5B50\u9879\u7EE7\u627F\u4E0A\u7EA7\u89C4\u5219\uFF0C\u6700\u5177\u4F53\u7684\u8DEF\u5F84\u4F18\u5148\uFF1B\u6CA1\u6709\u5339\u914D\u89C4\u5219\u7684\u5185\u5BB9\u4E0D\u540C\u6B65\u3002","penzor.rules.namespace":"\u9ED8\u8BA4\uFF1A\u4E91\u7AEF /Forsion/\uFF1B\u8BBE\u5907\u76EE\u5F55\uFF1A\u4E91\u7AEF /Forsion-\u8BBE\u5907ID/\u3002","penzor.rules.human":"human \u72EC\u7ACB\u9009\u62E9\u8303\u56F4\uFF1B\u9ED8\u8BA4\u65E5\u5386\u4F7F\u7528 human/CALENDAR.db\u3002\u6539\u5230\u8BBE\u5907\u76EE\u5F55\u540E\uFF0C\u7F51\u9875\u9ED8\u8BA4\u65E5\u5386\u4E0D\u8DDF\u968F\u5207\u6362\u3002","penzor.rules.preview":"\u9884\u89C8\u53D8\u66F4","penzor.rules.previewTitle":"\u786E\u8BA4\u672C\u6B21\u540C\u6B65\u8303\u56F4","penzor.rules.previewCounts":"\u4E0A\u4F20 {up} \u9879\uFF0C\u4E0B\u8F7D {down} \u9879\uFF0C{conflicts} \u9879\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u9700\u5408\u5E76\u6216\u4FDD\u7559\u7248\u672C\u3002","penzor.rules.retain":"\u65E7\u76EE\u6807\u4E2D\u7684\u5185\u5BB9\u4FDD\u7559\u3002\u5173\u95ED\u540C\u6B65\u4E0D\u4F1A\u5220\u9664\u672C\u673A\u6216\u4E91\u7AEF\u6587\u4EF6\uFF1B\u6E90\u6587\u4EF6\u53D8\u5316\u540E\u9700\u91CD\u65B0\u9884\u89C8\u3002","penzor.rules.back":"\u8FD4\u56DE\u4FEE\u6539","penzor.rules.apply":"\u786E\u8BA4\u5E76\u5F00\u59CB","penzor.rules.pause":"\u6682\u505C","penzor.rules.resume":"\u7EE7\u7EED","penzor.rules.noActive":"\u5F53\u524D\u6CA1\u6709\u6587\u4EF6\u6B63\u5728\u4F20\u8F93\u3002","penzor.rules.manual":"\u624B\u52A8\u4E0A\u4F20\u4E0E\u4E0B\u8F7D","penzor.rules.historyNote":"\u4FDD\u7559\u6700\u8FD1 200 \u9879\u3002\u51B2\u7A81\u65F6\u4FDD\u7559\u4E24\u4E2A\u7248\u672C\uFF0C\u5176\u4F59\u5185\u5BB9\u7EE7\u7EED\u540C\u6B65\u3002","penzor.rules.retry":"\u91CD\u8BD5\u5931\u8D25\u9879","penzor.rules.noHistory":"\u8FD8\u6CA1\u6709\u540C\u6B65\u8BB0\u5F55\u3002","penzor.rules.details":"\u67E5\u770B\u4F20\u8F93","penzor.rules.plugins":"\u63D2\u4EF6\u6570\u636E\u4ECD\u7531\u5404\u63D2\u4EF6\u7684\u6570\u636E\u540C\u6B65\u7BA1\u7406\u3002","penzor.rules.turnOff":"\u5173\u95ED\u63D2\u4EF6\u6570\u636E\u540C\u6B65","penzor.rules.turnOn":"\u5F00\u542F\u63D2\u4EF6\u6570\u636E\u540C\u6B65","penzor.rules.phase.idle":"\u7B49\u5F85\u4E0B\u6B21\u540C\u6B65","penzor.rules.phase.scanning":"\u6B63\u5728\u6838\u5BF9\u6587\u4EF6","penzor.rules.phase.syncing":"\u6B63\u5728\u540C\u6B65","penzor.rules.phase.paused":"\u5DF2\u6682\u505C","penzor.rules.state.queued":"\u7B49\u5F85\u4E2D","penzor.rules.state.active":"\u4F20\u8F93\u4E2D","penzor.rules.state.done":"\u5DF2\u5B8C\u6210","penzor.rules.state.failed":"\u5931\u8D25","penzor.rules.state.paused":"\u5DF2\u6682\u505C","penzor.rules.state.conflict":"\u5DF2\u4FDD\u7559\u51B2\u7A81\u7248\u672C","penzor.tree.synced":"\u540C\u6B65\u7684\u5185\u5BB9","penzor.tree.thisBackup":"\u8FD9\u53F0\u7535\u8111 \xB7 \u53EA\u5907\u4EFD","penzor.tree.byApp":"\u6309\u5E94\u7528\u770B","penzor.tree.legacy":"\u65E7\u7248\u667A\u5E93\u540C\u6B65","penzor.quota.sourceLimit":"\u8FD9\u4E00\u7C7B\u8FD8\u6709\u5355\u72EC\u4E0A\u9650 {max}\uFF0C\u5DF2\u7528 {used}","penzor.ov.mine":"\u4F60\u653E\u7684","penzor.ov.synced":"\u540C\u6B65\u4E0A\u6765\u7684","penzor.ov.stale":"\u4E0D\u518D\u66F4\u65B0","penzor.ov.uploads":"\u4F60\u81EA\u5DF1\u4E0A\u4F20\u548C\u6574\u7406\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u968F\u4FBF\u6539","penzor.ov.all":"\u7B14\u8BB0\u3001Agents\u3001\u6211\u7684\u8D44\u6599\u3001\u63D2\u4EF6","penzor.ov.allLast":"\u7B14\u8BB0\u3001Agents\u3001\u6211\u7684\u8D44\u6599\u3001\u63D2\u4EF6 \xB7 \u4E0A\u6B21\u540C\u6B65 {time}","penzor.ov.self":"\u53EA\u6709\u8FD9\u53F0\u7535\u8111\u7528\u7684\u90A3\u4EFD","penzor.ov.device":"\u53EA\u5728\u8FD9\u53F0\u7535\u8111\u548C\u5B83\u4E4B\u95F4\u5171\u7528","penzor.ov.agents":"Agent \u7684\u8BBE\u7F6E\u3001\u8BB0\u5FC6\u548C\u65E5\u5FD7","penzor.ov.profile":"\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.ov.sync":"\u7535\u8111\u540C\u6B65\u4E0A\u6765\u7684\u667A\u5E93","penzor.ov.legacy":"\u8FD9\u53F0\u7535\u8111\u5F00\u4E86\u65B0\u540C\u6B65\u540E\u4E0D\u518D\u5199\u5165\uFF0C\u7559\u7740\u4E0D\u5220","penzor.ov.ama":"\u7F51\u9875\u7248\u7684\u7B14\u8BB0\uFF0C\u548C\u540C\u6B65\u4E0A\u6765\u7684\u7B14\u8BB0","penzor.ov.apps":"\u5404\u5E94\u7528\u5B58\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u5220\u3001\u6539\u540D","penzor.ov.plugins":"\u63D2\u4EF6\u81EA\u5DF1\u5B58\u7684\u8BBE\u7F6E\uFF0C\u8FD9\u91CC\u53EA\u663E\u793A\u5360\u7528","penzor.ov.exports":"\u5BFC\u51FA\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u4E0B\u8F7D\u3001\u5220\u9664","penzor.ov.segNotes":"\u7B14\u8BB0","penzor.ov.segSync":"\u8BBE\u5907\u540C\u6B65","penzor.ov.segOther":"\u5176\u4ED6","penzor.content.badge":"\u65B0\u540C\u6B65\u7EF4\u62A4","penzor.content.badgeLast":"\u65B0\u540C\u6B65\u7EF4\u62A4 \xB7 \u4E0A\u6B21\u540C\u6B65 {time}","penzor.content.noteAll":"\u8FD9\u662F\u4E91\u7AEF\u7684\u90A3\u4E00\u4EFD\uFF0C\u4F60\u767B\u5F55\u7684\u6BCF\u53F0\u8BBE\u5907\u548C\u7F51\u9875\u7248\u770B\u5230\u7684\u90FD\u662F\u5B83\u3002\u8981\u6539\u6587\u4EF6\uFF0C\u5728\u7535\u8111\u4E0A\u7684\u7B14\u8BB0\u3001Agents \u91CC\u6539\uFF0C\u6539\u5B8C\u4F1A\u81EA\u52A8\u540C\u6B65\u4E0A\u6765\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.content.noteSelf":"\u53EA\u6709\u8FD9\u53F0\u7535\u8111\u7528\u7684\u90A3\u4E00\u4EFD\uFF0C\u522B\u7684\u8BBE\u5907\u770B\u4E0D\u5230\u3002\u8981\u6539\u6587\u4EF6\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\u6539\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.content.noteDevice":"\u53EA\u5728\u8FD9\u53F0\u7535\u8111\u548C {name} \u4E4B\u95F4\u5171\u7528\u3002\u8981\u6539\u6587\u4EF6\u5728\u7535\u8111\u4E0A\u6539\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.legacy.title":"\u8FD9\u53F0\u7535\u8111\u5F00\u4E86\u65B0\u540C\u6B65\u540E\uFF0C\u5C31\u4E0D\u518D\u5F80\u8FD9\u4E2A\u5E93\u5199\u4E86","penzor.legacy.body":"\u8FD9\u53F0\u7535\u8111\u7684\u7B14\u8BB0\u73B0\u5728\u5728\u300C\u6240\u6709\u8BBE\u5907\u5171\u7528 \u203A \u7B14\u8BB0\u300D\u91CC\u3002\u8FD8\u6CA1\u5347\u7EA7\u7684\u65E7\u7248\u684C\u9762\u53EF\u80FD\u4ECD\u4F1A\u5199\u5230\u8FD9\u91CC\uFF0C\u6240\u4EE5\u8FD9\u4EFD\u7559\u7740\u3001\u4E0D\u5220\u3002","penzor.legacy.go":"\u53BB\u770B\u65B0\u7684\u90A3\u4EFD","penzor.drive.total":"\u6574\u4E2A\u84EC\u6D32\u4E91\u5DF2\u7528 {used} / {max}","penzor.drive.seeAll":"\u67E5\u770B","penzor.cs.statusOff":"\u672A\u5F00","penzor.cs.statusPaused":"\u5DF2\u6682\u505C","penzor.cs.statusRun":"\u540C\u6B65\u4E2D {pct}%","penzor.cs.statusScan":"\u6B63\u5728\u6838\u5BF9\u6587\u4EF6","penzor.cs.statusWarn":"{n} \u9879\u8981\u5904\u7406","penzor.cs.statusOk":"\u5DF2\u540C\u6B65","penzor.cs.statusOkAgo":"\u5DF2\u540C\u6B65 \xB7 {time}","penzor.widget.signedOut":"\u672A\u767B\u5F55 Forsion \u8D26\u53F7","penzor.widget.signInHint":"\u767B\u5F55\u540E\u624D\u80FD\u540C\u6B65","penzor.widget.off":"\u4E91\u540C\u6B65\u6CA1\u5F00","penzor.widget.paused":"\u540C\u6B65\u5DF2\u6682\u505C","penzor.widget.running":"\u6B63\u5728\u540C\u6B65","penzor.widget.problem":"\u540C\u6B65\u9047\u5230\u95EE\u9898","penzor.widget.active":"\u6B63\u5728\u4F20 {n} \u9879","penzor.widget.queued":"\u8FD8\u6709 {n} \u9879\u6392\u961F","penzor.widget.waiting":"{n} \u9879\u7B49\u5F85\u540C\u6B65","penzor.widget.failed":"\u6CA1\u540C\u6B65\u6210\u529F","penzor.widget.error":"\u540C\u6B65\u51FA\u9519\u4E86","penzor.widget.errorMeta":"\u51FA\u9519","penzor.widget.conflict":"\u51B2\u7A81\uFF0C\u4E24\u4EFD\u90FD\u7559\u7740","penzor.widget.more":"\u8FD8\u6709 {n} \u9879\u8981\u770B","penzor.widget.last":"\u4E0A\u6B21\u540C\u6B65 {time}","penzor.widget.pending":"\u4E91\u7AEF\u5DF2\u6709\u4E00\u4EFD\u7B14\u8BB0","penzor.widget.notesFailed":"\u7B14\u8BB0\u5E93\u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.widget.agentsFailed":"Agent \u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.cs.thisComputer":"\u8FD9\u53F0\u7535\u8111\uFF1A{name}","penzor.cs.thisComputerLabel":"\u8FD9\u53F0\u7535\u8111\uFF1A","penzor.cs.rename":"\u6539\u8FD9\u53F0\u7535\u8111\u7684\u540D\u5B57","penzor.cs.renameHint":"\u6539\u4E86\u4EE5\u540E\uFF0C\u522B\u7684\u8BBE\u5907\u4E0A\u4E5F\u663E\u793A\u8FD9\u4E2A\u540D\u5B57 \xB7 \u56DE\u8F66\u4FDD\u5B58","penzor.cs.name.taken":"\u53E6\u4E00\u53F0\u8BBE\u5907\u5DF2\u7ECF\u53EB\u8FD9\u4E2A\u540D\u5B57\uFF0C\u6362\u4E00\u4E2A\u5427","penzor.cs.name.reserved":"macOS\u3001Windows\u3001Linux \u7559\u7ED9\u7CFB\u7EDF\uFF0C\u6362\u4E00\u4E2A\u540D\u5B57\u5427","penzor.cs.name.invalid":"\u540D\u5B57\u6700\u591A 64 \u4E2A\u5B57\uFF0C\u4E0D\u80FD\u5E26\u65B9\u62EC\u53F7","penzor.cs.othersN":"\u53E6\u5916 {n} \u53F0\uFF1A{names}","penzor.cs.noOthers":"\u8FD8\u6CA1\u6709\u522B\u7684\u8BBE\u5907\u767B\u5F55\u8FD9\u4E2A\u8D26\u53F7","penzor.cs.log":"\u6700\u8FD1\u8BB0\u5F55","penzor.cs.more":"\u66F4\u591A","penzor.cs.advanced":"\u9AD8\u7EA7\uFF1A\u6309\u89C4\u5219\u7F16\u8F91","penzor.cs.backSimple":"\u8FD4\u56DE\u540C\u6B65","penzor.cs.firstTitle":"\u628A\u8FD9\u53F0\u7535\u8111\u540C\u6B65\u5230\u84EC\u6D32\u4E91","penzor.cs.firstBody":"\u4E0B\u9762\u662F\u5EFA\u8BAE\u7684\u8303\u56F4\uFF0C\u53EF\u4EE5\u5148\u6539\u3002\u70B9\u300C\u5F00\u59CB\u540C\u6B65\u300D\u4E4B\u524D\u4E0D\u4F1A\u4F20\u4EFB\u4F55\u4E1C\u897F\uFF1B\u4E91\u7AEF\u5DF2\u6709\u7684\u4E0D\u4F1A\u88AB\u8986\u76D6\u6216\u5220\u9664\u3002","penzor.cs.note":"\u60F3\u8BA9\u67D0\u4E2A\u7B14\u8BB0\u6587\u4EF6\u5939\u6216 Agent \u5355\u72EC\u5904\u7406\uFF0C\u70B9\u5B83\u4E0B\u9762\u90A3\u884C\u5C0F\u5B57\u5C31\u80FD\u6539\u3002\u5173\u6389\u5F00\u5173\u53EA\u662F\u4E0D\u518D\u540C\u6B65\uFF0C\u4E0D\u5220\u9664\u4EFB\u4F55\u6587\u4EF6\u3002","penzor.cs.barFirst":"\u6253\u5F00\u540C\u6B65\u4F1A\u4E0A\u4F20 {up} \u4E2A\u6587\u4EF6\u3001\u4E0B\u8F7D {down} \u4E2A","penzor.cs.barChanged":"\u6539\u4E86 {n} \u5904","penzor.cs.barOne":"\u6539\u4E86 1 \u5904\uFF1A\u300C{name}\u300D\u6539\u6210{scope}","penzor.cs.offName":"\u4E0D\u540C\u6B65","penzor.cs.barCounts":"\u4F1A\u4E0A\u4F20 {up} \u4E2A\u6587\u4EF6\u3001\u4E0B\u8F7D {down} \u4E2A \xB7 \u4E0D\u5220\u9664\u4EFB\u4F55\u6587\u4EF6","penzor.cs.barSize":"\u5171 {size}","penzor.cs.noDelete":"\u4E0D\u4F1A\u5220\u9664\u4EFB\u4F55\u6587\u4EF6","penzor.cs.barConflicts":"{n} \u4E2A\u4E24\u8FB9\u90FD\u6539\u8FC7\uFF0C\u4F1A\u5404\u7559\u4E00\u4EFD","penzor.cs.barCounting":"\u6B63\u5728\u7B97\u8981\u4F20\u591A\u5C11\u2026","penzor.cs.barRecount":"\u6587\u4EF6\u521A\u6709\u53D8\u5316\uFF0C\u5DF2\u7ECF\u91CD\u65B0\u7B97\u8FC7\uFF0C\u8BF7\u518D\u786E\u8BA4\u4E00\u6B21","penzor.cs.later":"\u5148\u4E0D\u5F00","penzor.cs.start":"\u5F00\u59CB\u540C\u6B65","penzor.cs.undo":"\u64A4\u9500","penzor.cs.confirm":"\u786E\u8BA4","penzor.cs.up":"\u6B63\u5728\u4E0A\u4F20\u300C{name}\u300D","penzor.cs.down":"\u6B63\u5728\u4E0B\u8F7D\u300C{name}\u300D","penzor.cs.waiting":"\u8FD8\u6709 {n} \u4E2A\u6587\u4EF6\u7B49\u7740\u4F20","penzor.cs.failedN":"{n} \u4E2A\u6587\u4EF6\u6CA1\u4F20\u6210\u529F","penzor.cs.retry":"\u91CD\u8BD5","penzor.cs.seeLog":"\u770B\u8BB0\u5F55","penzor.cs.logEmpty":"\u8FD8\u6CA1\u6709\u540C\u6B65\u8BB0\u5F55\u3002","penzor.cs.logNote":"\u4FDD\u7559\u6700\u8FD1 200 \u9879\u3002\u4E24\u8FB9\u90FD\u6539\u8FC7\u65F6\u4F1A\u5404\u7559\u4E00\u4EFD\u3002","penzor.cat.notes":"\u7B14\u8BB0","penzor.cat.notesDesc":"Amadeus \u91CC\u7684\u667A\u5E93","penzor.cat.agents":"Agents \u4E0E\u8BB0\u5FC6","penzor.cat.agentsDesc":"\u6BCF\u4E2A Agent \u7684\u8BBE\u7F6E\u3001\u8BB0\u5FC6\u548C\u65E5\u5FD7","penzor.cat.profile":"\u6211\u7684\u8D44\u6599","penzor.cat.profileDesc":"\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.cat.profileOn":"\u542B\u9ED8\u8BA4\u65E5\u5386","penzor.cat.plugins":"\u63D2\u4EF6","penzor.cat.pluginsDesc":"\u63D2\u4EF6\u7684\u6587\u4EF6\u5939\u548C\u8BBE\u7F6E","penzor.cat.others":"\u5176\u4ED6\u6587\u4EF6","penzor.cat.othersDesc":"\u5DE5\u4F5C\u6587\u4EF6\u5939\u91CC\u4E0D\u5C5E\u4E8E\u4E0A\u9762\u51E0\u7C7B\u7684\u6587\u4EF6","penzor.cat.files":"{n} \u4E2A\u6587\u4EF6 \xB7 {size}","penzor.agents.pickHint":"\u9010\u4E2A\u9009\uFF0C\u65B0\u5EFA\u7684 Agent \u9ED8\u8BA4\u4E0D\u540C\u6B65 \xB7 \u5DF2\u9009 {n} \u4E2A","penzor.agents.legacyHint":"\u6309\u65E7\u8BBE\u7F6E\uFF0C\u65B0\u5EFA\u7684 Agent \u4E5F\u4F1A\u540C\u6B65 \xB7 \u5DF2\u9009 {n} \u4E2A","penzor.agents.none":"\u8FD9\u53F0\u7535\u8111\u4E0A\u8FD8\u6CA1\u6709 Agent","penzor.agents.muse":"\u535C\u7B97\u5B50","penzor.agents.museDesc":"\u540E\u53F0 Agent\uFF0C\u6BCF\u53F0\u7535\u8111\u5404\u8DD1\u5404\u7684","penzor.agents.locked":"\u6682\u4E0D\u5F00\u653E\u540C\u6B65","penzor.agents.cloudOnly":"\u5728\u4E91\u7AEF \xB7 \u8FD9\u53F0\u7535\u8111\u8FD8\u6CA1\u6709\uFF0C\u6253\u5F00\u5C31\u4E0B\u8F7D","penzor.agents.historianNote":"Historian \u7684\u590D\u76D8\u8349\u7A3F\u7559\u5728\u6BCF\u53F0\u7535\u8111\u4E0A\uFF0C\u4E0D\u540C\u6B65\uFF1B\u5B83\u8BB0\u8FDB\u5404\u4E2A Agent \u65E5\u5FD7\u91CC\u7684\u5185\u5BB9\uFF0C\u8DDF\u7740\u90A3\u4E2A Agent \u8D70\u3002","penzor.agents.archiveRunning":"\u4E91\u7AEF\u7684 Agent \u6B63\u5728\u5B58\u6863\uFF0C\u7A0D\u7B49\u4E00\u4F1A\u513F\u518D\u6253\u5F00","penzor.cs.accountReview":"\u8D26\u53F7\u5DF2\u5207\u6362\u3002\u672C\u673A\u6587\u4EF6\u53EF\u80FD\u5305\u542B\u53E6\u4E00\u4E2A\u8D26\u53F7\u7684\u5185\u5BB9\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u540C\u6B65\u8303\u56F4\u5E76\u786E\u8BA4\u540E\u518D\u540C\u6B65\u3002","penzor.agents.openFailed":"\u6CA1\u80FD\u6253\u5F00\u8FD9\u4E2A Agent \u7684\u540C\u6B65\uFF0C\u5148\u4FDD\u6301\u4E0D\u540C\u6B65\uFF1A{reason}","penzor.archive.title":"Agent \u540C\u6B65\u6539\u6210\u9010\u4E2A\u9009\u4E86","penzor.archive.body":"\u4E4B\u524D\u8DDF\u7740\u603B\u5F00\u5173\u540C\u6B65\u7684 Agent \u90FD\u5DF2\u505C\u4E0B\uFF0C\u4E91\u7AEF\u90A3\u4EFD\u5B58\u8FDB\u4E86\u300C\u6211\u7684\u4E91\u76D8 \u203A {shelf} \u203A {name}\u300D\uFF0C\u53EA\u8BFB\uFF0C\u80FD\u4E0B\u8F7D\u3002\u60F3\u7EE7\u7EED\u540C\u6B65\u7684\uFF0C\u5728\u4E0B\u9762\u9010\u4E2A\u6253\u5F00\u3002","penzor.archive.shelf":"\u5B58\u6863","penzor.archive.ok":"\u77E5\u9053\u4E86","penzor.archive.open":"\u6253\u5F00\u5B58\u6863","penzor.archive.note":"\u8FD9\u662F Agent \u540C\u6B65\u7684\u5B58\u6863\uFF0C\u53EA\u8BFB\uFF1A\u80FD\u4E0B\u8F7D\uFF0C\u80FD\u6574\u4EFD\u5220\u9664\u3002","penzor.ask.title":"{name} \u5728\u4E91\u7AEF\u5DF2\u7ECF\u6709\u4E00\u4EFD","penzor.ask.when":"\u4E91\u7AEF\u90A3\u4EFD\u6700\u540E\u6539\u4E8E {cloud}\uFF0C\u8FD9\u53F0\u6700\u540E\u6539\u4E8E {local}\u3002\u6253\u5F00\u540C\u6B65\u524D\u9009\u4E00\u6B21\uFF0C\u4EE5\u540E\u81EA\u52A8\u5408\u3002","penzor.ask.merge":"\u5408\u5728\u4E00\u8D77","penzor.ask.mergeDesc":"\u8BB0\u5FC6\u3001\u65E5\u5FD7\u3001\u65E5\u7A0B\u6309\u6761\u5408\u5E76\uFF1B\u8BBE\u7F6E\u3001\u6027\u683C\u8FD9\u7C7B\u4E24\u8FB9\u90FD\u6539\u4E86\u7684\uFF0C\u7528\u8F83\u65B0\u7684\u90A3\u4EFD\uFF0C\u53E6\u4E00\u4EFD\u653E\u8FDB\u672C\u673A\u56DE\u6536","penzor.ask.cloud":"\u4EE5\u4E91\u7AEF\u4E3A\u51C6","penzor.ask.cloudDesc":"\u8FD9\u53F0\u7684\u6574\u4EFD\u5148\u653E\u8FDB\u672C\u673A\u56DE\u6536\uFF0C\u518D\u6362\u6210\u4E91\u7AEF\u90A3\u4EFD","penzor.ask.local":"\u4EE5\u8FD9\u53F0\u4E3A\u51C6","penzor.ask.localDesc":"\u4E91\u7AEF\u90A3\u4EFD\u5148\u8FDB\u5B58\u6863\uFF0C\u518D\u6362\u6210\u8FD9\u53F0\u7684","penzor.ask.recommended":"\u5EFA\u8BAE","penzor.ask.foot":"\u56DE\u6536\u5728 agents/.removed\uFF0C\u80FD\u627E\u56DE","penzor.ask.cancel":"\u53D6\u6D88","penzor.ask.confirm":"\u6253\u5F00\u540C\u6B65","penzor.cat.pluginsN":"{n} \u4E2A\u63D2\u4EF6","penzor.cat.custom":"\u53E6\u6709 {n} \u6761\u81EA\u5B9A\u4E49\u89C4\u5219","penzor.cat.notSynced":"\u4E0D\u540C\u6B65 \xB7 \u53EA\u7559\u5728\u8FD9\u53F0\u7535\u8111","penzor.scope.all":"\u6240\u6709\u8BBE\u5907\u5171\u7528","penzor.scope.allDesc":"\u6BCF\u53F0\u767B\u5F55\u7684\u8BBE\u5907\u548C\u7F51\u9875\u7248\u90FD\u662F\u540C\u4E00\u4EFD","penzor.scope.self":"\u53EA\u5907\u4EFD\u8FD9\u53F0\u7535\u8111","penzor.scope.selfDesc":"\u4E91\u7AEF\u5355\u72EC\u5B58\u4E00\u4EFD\uFF0C\u522B\u7684\u8BBE\u5907\u770B\u4E0D\u5230","penzor.scope.with":"\u53EA\u548C {name} \u5171\u7528","penzor.scope.menuTitle":"\u300C{name}\u300D\u548C\u8C01\u5171\u7528","penzor.scope.menuFoot":"\u4E0D\u60F3\u4E0A\u4E91\u5C31\u5173\u6389\u53F3\u8FB9\u7684\u5F00\u5173","penzor.scope.calendarNote":"\u7F51\u9875\u7248\u7684\u9ED8\u8BA4\u65E5\u5386\u4E0D\u4F1A\u8DDF\u7740\u53D8","penzor.unified.stale":"\u5237\u65B0\u5931\u8D25\uFF0C\u4EE5\u4E0B\u4FDD\u7559\u4E0A\u6B21\u7EDF\u8BA1\uFF1B\u5F53\u524D\u7528\u91CF\u672A\u77E5\uFF0C\u8BF7\u91CD\u8BD5\u3002","penzor.unified.uploadTo":"\u4E0A\u4F20\u5230\u300C\u6211\u7684\u6587\u4EF6\u300D","penzor.unified.apps":"\u666E\u901A\u6587\u4EF6\u53EF\u7BA1\u7406 \xB7 \u6765\u6E90\u9650\u5236\u4F18\u5148","penzor.trash.ama":"Amadeus \xB7 \u5F85\u6E05\u7406\u5FEB\u7167","penzor.trash.amaNote":"\u88AB\u5220\u7684\u5F53\u524D\u6587\u4EF6\u4ECD\u8BA1\u5165\u989D\u5EA6\uFF0C\u5386\u53F2\u7248\u672C\u4E0D\u91CD\u590D\u8BA1\u5165\u300230 \u5929\u540E\u7B49\u5F85\u7CFB\u7EDF\u6E05\u7406\uFF1B\u6B64\u5904\u53EA\u8BFB\uFF0C\u4E0D\u53D7\u300C\u6E05\u7A7A\u56DE\u6536\u7AD9\u300D\u5F71\u54CD\u3002","penzor.trash.expires":"\u53EF\u6E05\u7406\u65E5\u671F","penzor.source.openAgents":"\u5728 Agents \u4E2D\u6253\u5F00","penzor.source.openCalendar":"\u6253\u5F00\u65E5\u5386","penzor.source.entryUnavailable":"\u6B64\u5BBF\u4E3B\u6682\u672A\u63D0\u4F9B\u8BE5\u5165\u53E3","penzor.uploads":"\u6211\u7684\u6587\u4EF6","penzor.source.agents":"Agents","penzor.source.profile":"\u6211\u7684\u8D44\u6599","penzor.source.plugins":"\u63D2\u4EF6\u6570\u636E","penzor.source.readonly":"\u540C\u6B65\u6765\u6E90\u4E3A\u53EA\u8BFB\uFF0C\u8BF7\u5728\u539F\u4F4D\u7F6E\u7F16\u8F91\u6216\u5220\u9664\uFF1B\u6B64\u5904\u53EF\u4E0B\u8F7D\u5DF2\u540C\u6B65\u7684\u6587\u4EF6\u3002","penzor.source.appNote":"\u5E94\u7528\u6587\u4EF6\u7531\u539F\u5E94\u7528\u7BA1\u7406\uFF0C\u8BF7\u5728\u5E94\u7528\u4E2D\u7F16\u8F91\u6216\u5220\u9664\u3002","penzor.source.market":"\u5546\u5E97\u6295\u7A3F","penzor.ov.market":"\u4F60\u6295\u5230\u5546\u5E97\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u548C Agent \u5305\uFF0C\u8DDF\u7740\u5546\u5E97\u6761\u76EE\u8D70","penzor.source.marketNote":"\u8FD9\u91CC\u7684\u5305\u8DDF\u7740\u5546\u5E97\u6761\u76EE\u8D70\uFF1A\u5728\u300C\u5546\u5E97 \u2192 \u6211\u7684\u6295\u7A3F\u300D\u5220\u6389\u6761\u76EE\u624D\u4F1A\u91CA\u653E\u3002\u4ECE GitHub\u3001npm \u62C9\u6765\u7684\u5305\u7531\u5546\u5E97\u4EE3\u5B58\uFF0C\u4E0D\u7B97\u4F60\u7684\u7A7A\u95F4\u3002","penzor.market.badge":"\u7531\u5546\u5E97\u7BA1\u7406","penzor.market.meta":"{size} \xB7 {n} \u4E2A\u5305","penzor.market.history":"\u65E7\u7248\u672C {size}\uFF0C\u548C\u522B\u5904\u4E00\u6837\u4E0D\u7B97","penzor.market.older":"\u53E6\u6709\u65E7\u7248\u672C {size}","penzor.market.updating":"\u66F4\u65B0\u5F85\u5BA1\u6838","penzor.market.notCounted":"\u4E0D\u7B97","penzor.market.fromGithub":"\u4ECE GitHub \u62C9\u53D6 \xB7 \u5546\u5E97\u4EE3\u5B58","penzor.market.fromNpm":"\u4ECE npm \u62C9\u53D6 \xB7 \u5546\u5E97\u4EE3\u5B58","penzor.market.type.plugin":"\u63D2\u4EF6","penzor.market.type.skill":"\u6280\u80FD","penzor.market.type.agent":"Agent","penzor.market.type.space":"Space","penzor.market.type.theme":"\u4E3B\u9898","penzor.market.type.amadeusPlugin":"Amadeus \u63D2\u4EF6","penzor.market.status.approved":"\u5DF2\u4E0A\u67B6","penzor.market.status.pending":"\u5F85\u5BA1\u6838","penzor.market.status.rejected":"\u672A\u901A\u8FC7","penzor.col.type":"\u7C7B\u578B","penzor.col.status":"\u72B6\u6001","penzor.source.pluginNote":"\u4EC5\u5C55\u793A\u63D2\u4EF6\u540D\u79F0\u548C\u5360\u7528\uFF1B\u6570\u636E\u53EF\u80FD\u542B\u914D\u7F6E\u6216\u51ED\u636E\uFF0C\u4E0D\u76F4\u63A5\u9884\u89C8\u6216\u4E0B\u8F7D\u3002","penzor.unified.unavailable":"\u7EDF\u8BA1\u4E0D\u53EF\u7528","penzor.unified.incomplete":"\u7EDF\u4E00\u7528\u91CF\u5C1A\u672A\u7EDF\u8BA1\u5B8C\u6574\uFF0C\u4E0D\u80FD\u636E\u6B64\u5224\u65AD\u662F\u5426\u8D85\u989D\u3002\u8BF7\u5237\u65B0\u91CD\u8BD5\u3002","penzor.unified.enforced":"\u7EDF\u4E00\u989D\u5EA6\u5DF2\u542F\u7528\uFF1A\u8D85\u989D\u65F6\u6682\u505C\u65B0\u589E\u5185\u5BB9\u548C\u53D8\u5927\u7684\u6587\u4EF6\uFF1B\u4E0B\u8F7D\u3001\u5220\u9664\u53CA\u4E0D\u589E\u5927\u7684\u8986\u76D6\u4ECD\u53EF\u7528\u3002","penzor.unified.grace":"\u901A\u77E5\u5BBD\u9650\u671F\u81F3 {date}\uFF0C\u76EE\u524D\u4E0D\u65B0\u589E\u7EDF\u4E00\u989D\u5EA6\u62E6\u622A\u3002","penzor.unified.rolloutPolicy":"\u5BB9\u91CF\u653F\u7B56\u901A\u77E5\uFF1A\u6700\u65E9\u5728\u786E\u8BA4\u901A\u77E5 30 \u5929\u540E\uFF0C\u7EDF\u4E00\u989D\u5EA6\u624D\u53EF\u80FD\u9650\u5236\u589E\u957F\u5199\u5165\uFF1B\u5E94\u7528\u6587\u4EF6\u5386\u53F2\u5C06\u4EC5\u4FDD\u7559\u6700\u8FD1 30 \u5929\u5185\u6700\u591A 50 \u4EFD\u3002\u5386\u53F2\u4E0D\u8BA1\u5957\u9910\uFF0C\u6E05\u7406\u524D\u4ECD\u53EF\u4E0B\u8F7D\u5907\u4EFD\uFF0C\u5F53\u524D\u6587\u4EF6\u4E0D\u53D7\u5386\u53F2\u6E05\u7406\u5F71\u54CD\u3002","penzor.unified.ack":"\u5DF2\u9605\u8BFB\u5BB9\u91CF\u4E0E\u5386\u53F2\u4FDD\u7559\u901A\u77E5","penzor.unified.notice":"\u73B0\u5728\u53EA\u662F\u63D0\u9192\uFF0C\u8D85\u4E86\u4E5F\u4E0D\u4F1A\u505C\u6389\u540C\u6B65\u6216\u4E0A\u4F20","penzor.unified.over":"\u5DF2\u8D85\u8FC7\u7EDF\u4E00\u989D\u5EA6\u3002\u76EE\u524D\u53EA\u63D0\u9192\uFF0C\u4E0D\u65B0\u589E\u540C\u6B65\u6216\u4E0A\u4F20\u62E6\u622A\uFF1B\u53EF\u6E05\u7406\u6587\u4EF6\u6216\u5347\u7EA7\u5957\u9910\u3002","penzor.unified.warn":"\u7EDF\u4E00\u7A7A\u95F4\u5373\u5C06\u7528\u6EE1\u3002\u76EE\u524D\u53EA\u63D0\u9192\uFF0C\u4E0D\u65B0\u589E\u540C\u6B65\u6216\u4E0A\u4F20\u62E6\u622A\u3002","penzor.unified.accounting":"\u542B\u56DE\u6536\u7AD9 {trash}\uFF0C\u5386\u53F2\u7248\u672C\u4E0D\u7B97","penzor.unified.writable":"\u53EF\u4E0A\u4F20\u3001\u65B0\u5EFA\u3001\u91CD\u547D\u540D\u548C\u5220\u9664","penzor.unified.readonly":"\u53EA\u8BFB \xB7 \u7531\u6765\u6E90\u7BA1\u7406","penzor.unified.export":"\u53EF\u4E0B\u8F7D\u3001\u91CD\u547D\u540D\u548C\u6C38\u4E45\u5220\u9664","penzor.unified.counted":"\u8BA1\u5165\u7EDF\u4E00\u7528\u91CF \xB7 \u63D0\u9192\u9636\u6BB5","penzor.unified.policy":"\u771F\u8981\u9650\u5236\u4E4B\u524D\uFF0C\u81F3\u5C11\u63D0\u524D 30 \u5929\u544A\u8BC9\u4F60\u3002","penzor.unified.legacySync":"\u539F\u8BBE\u5907\u540C\u6B65\u9650\u5236\uFF1A{used} / {max}","penzor.unified.legacyApps":"\u539F\u5E94\u7528\u6587\u4EF6\u9650\u5236\uFF1A{used} / {max}","sub.identity":"\u63D2\u4EF6 ID","sub.identityHint":"\u63D0\u4EA4\u540E\u81EA\u52A8\u5206\u914D\u552F\u4E00 ID\u3002\u540D\u79F0\u53EF\u4EE5\u91CD\u590D\uFF0C\u66F4\u65B0\u6CBF\u7528\u540C\u4E00\u4E2A ID\u3002","sub.description":"\u8BE6\u7EC6\u63CF\u8FF0","sub.tags":"\u6807\u7B7E","sub.tagsHint":"\u4EE5\u9017\u53F7\u5206\u9694\uFF0C\u6700\u591A 8 \u4E2A","sub.minAppVersion":"\u6700\u4F4E Forsion \u7248\u672C","sub.maxAppVersion":"\u6700\u9AD8\u7248\u672C\uFF08\u4E0D\u542B\uFF09","sub.optional":"\u9009\u586B","sub.platforms":"\u652F\u6301\u7684\u7AEF","sub.requirementsHint":"\u652F\u6301 desktop\u3001macos\u3001windows\u3001linux\u3001android\u3001ios\u3001web\u3002\u7559\u7A7A\u8868\u793A\u672A\u58F0\u660E\u3002ZIP \u6E05\u5355\u4E2D\u7684\u8981\u6C42\u4F1A\u81EA\u52A8\u8BFB\u53D6\uFF0C\u624B\u586B\u503C\u987B\u4E0E\u6E05\u5355\u4E00\u81F4\u3002","sub.err.market_requirements_invalid":"\u7248\u672C\u8981\u6C42\u6216\u5E73\u53F0\u65E0\u6548\u3002","sub.err.market_requirements_mismatch":"\u624B\u586B\u7248\u672C\u8981\u6C42\u4E0E ZIP \u6E05\u5355\u4E0D\u4E00\u81F4\u3002","sub.mine":"\u6211\u7684\u6295\u7A3F","page.submission":"\u63D2\u4EF6\u6295\u7A3F","page.webPages":"\u6211\u7684\u7F51\u9875","web.title":"\u6211\u7684\u7F51\u9875","web.desc":"\u7528 Tangu \u6216 Coding Space \u53D1\u5E03\u7684\u7F51\u9875\u90FD\u5728\u8FD9\u91CC\u3002\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00\uFF1B\u9875\u9762\u5728\u6C99\u7BB1\u91CC\u8FD0\u884C\uFF0C\u62FF\u4E0D\u5230\u8BBF\u5BA2\u7684 Forsion \u767B\u5F55\u6001\u3002","web.refresh":"\u5237\u65B0","web.used":"\u5DF2\u53D1\u5E03 {used} / {limit} \u4E2A","web.full":"\u540D\u989D\u5DF2\u6EE1\uFF0C\u4E0B\u7EBF\u4E00\u4E2A\u6216\u5347\u7EA7\u4F1A\u5458\u540E\u624D\u80FD\u53D1\u65B0\u7684","web.empty":"\u8FD8\u6CA1\u6709\u53D1\u5E03\u8FC7\u7F51\u9875","web.emptyHint":"\u5728\u5BF9\u8BDD\u91CC\u8BA9 Tangu \u628A\u7F51\u9875\u53D1\u5E03\u51FA\u53BB\uFF0C\u6BD4\u5982\u300C\u628A\u8FD9\u4E2A\u9875\u9762\u53D1\u5E03\u6210\u7F51\u9875\u300D\uFF1BCoding Space \u91CC\u7684\u9879\u76EE\u4E5F\u53EF\u4EE5\u70B9\u300C\u53D1\u5E03\u300D\u3002","web.updated":"\u66F4\u65B0\u4E8E {date}","web.disabled":"\u5DF2\u505C\u7528","web.disabledHint":"\u8FD9\u4E2A\u7F51\u9875\u88AB\u7BA1\u7406\u5458\u505C\u7528\u4E86\uFF0C\u94FE\u63A5\u6253\u4E0D\u5F00\uFF0C\u4E5F\u4E0D\u80FD\u66F4\u65B0\u3002","web.copy":"\u590D\u5236\u94FE\u63A5","web.unpublish":"\u4E0B\u7EBF","web.unpublishConfirm":"\u786E\u8BA4\u4E0B\u7EBF","web.listingPending":"\u4E0A\u67B6\u5BA1\u6838\u4E2D","web.listingApproved":"\u5DF2\u4E0A\u67B6","web.listingRejected":"\u4E0A\u67B6\u88AB\u9A73\u56DE","web.listingNote":"\u9A73\u56DE\u539F\u56E0\uFF1A{note}","web.listingApply":"\u7533\u8BF7\u4E0A\u67B6","web.listingReapply":"\u91CD\u65B0\u7533\u8BF7","web.listingWithdraw":"\u64A4\u56DE\u7533\u8BF7","web.listingDelist":"\u4E0B\u67B6","web.listingDelistConfirm":"\u786E\u8BA4\u4E0B\u67B6","web.listingSummary":"\u5546\u5E97\u7B80\u4ECB","web.listingSummaryPh":"\u4E00\u53E5\u8BDD\u4ECB\u7ECD\u8FD9\u4E2A\u7F51\u9875","web.listingHint":"\u5BA1\u6838\u901A\u8FC7\u540E\u5728\u5546\u5E97\u300C\u7F51\u7AD9\u5E94\u7528\u300D\u91CC\u516C\u5F00\u5C55\u793A\uFF0C300 \u5B57\u4EE5\u5185\u3002","web.listingSubmit":"\u63D0\u4EA4\u7533\u8BF7","sub.desc":"\u7BA1\u7406\u4F60\u6295\u7A3F\u7684\u5185\u5BB9\u3001\u5BA1\u6838\u7ED3\u679C\u548C\u7248\u672C\u66F4\u65B0\u3002","sub.new":"\u65B0\u6295\u7A3F","sub.refresh":"\u5237\u65B0","sub.empty":"\u8FD8\u6CA1\u6709\u6295\u7A3F","sub.emptyHint":"\u628A\u4F60\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u3001Agent \u6216 Space \u5206\u4EAB\u5230\u5E94\u7528\u5E02\u573A\u3002","sub.name":"\u540D\u79F0","sub.summary":"\u7B80\u4ECB","sub.type":"\u5185\u5BB9\u7C7B\u578B","sub.source":"\u53D1\u5E03\u6E20\u9053","sub.type.skill":"\u6280\u80FD","sub.type.agent":"Agent","sub.type.plugin":"\u63D2\u4EF6","sub.type.space":"Space","sub.type.theme":"\u4E3B\u9898","sub.type.amadeus_plugin":"Amadeus \u63D2\u4EF6","sub.pending":"\u5F85\u5BA1\u6838","sub.approved":"\u5DF2\u4E0A\u67B6","sub.rejected":"\u5DF2\u9A73\u56DE","sub.pendingVersion":"v{version} \u66F4\u65B0\u5F85\u5BA1\u6838","sub.rejectedVersion":"v{version} \u66F4\u65B0\u5DF2\u9A73\u56DE","sub.submit":"\u63D0\u4EA4\u5BA1\u6838","sub.submitted":"\u6295\u7A3F\u5DF2\u63D0\u4EA4\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u548C\u4F60\u7684\u6536\u4EF6\u7BB1\u91CC\u3002","sub.updated":"\u65B0\u7248\u672C\u5DF2\u63D0\u4EA4\u5BA1\u6838\u3002\u5BA1\u6838\u901A\u8FC7\u524D\u5546\u5E97\u7167\u65E7\u63D0\u4F9B\u5DF2\u4E0A\u67B6\u7684\u7248\u672C\uFF0C\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.repo":"GitHub \u516C\u5F00\u4ED3\u5E93","sub.npm":"npm \u516C\u5F00\u5305","sub.repoHint":"\u4ECE\u4ED3\u5E93\u8BFB\u53D6 README \u548C Release\uFF1B\u4ED3\u5E93\u4F5C\u8005\u663E\u793A\u4E3A\u53D1\u5E03\u4EBA\u3002","sub.npmHint":"\u4ECE npm \u8BFB\u53D6\u5305\u4FE1\u606F\uFF1B\u5BF9\u5E94\u516C\u5F00\u4ED3\u5E93\u7684\u4F5C\u8005\u663E\u793A\u4E3A\u53D1\u5E03\u4EBA\u3002","sub.reviewHint":"\u65B0\u7248\u672C\u9700\u91CD\u65B0\u5BA1\u6838\uFF0C\u5BA1\u6838\u901A\u8FC7\u540E\u624D\u5411\u7528\u6237\u63D0\u4F9B\u3002\u4F60\u7684 Forsion \u8D26\u53F7\u7528\u4E8E\u7BA1\u7406\u6295\u7A3F\u3002","sub.zipHint":"\u6700\u5927 50 MB\uFF0C\u5305\u5185\u5305\u542B\u5BF9\u5E94\u7684 manifest \u4E0E\u5165\u53E3\u6587\u4EF6\u3002","sub.filter":"\u6309\u72B6\u6001\u7B5B\u9009","sub.all":"\u5168\u90E8","sub.noResults":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u6295\u7A3F","sub.downloads":"{n} \u6B21\u4E0B\u8F7D","sub.errName":"\u8BF7\u586B\u5199\u540D\u79F0\u3002","sub.errSource":"\u8BF7\u586B\u5199\u516C\u5F00\u4ED3\u5E93\u5730\u5740\u6216 npm \u5305\u540D\u3002","sub.errZip":"\u8BF7\u9009\u62E9 ZIP \u5305\u3002","sub.errLarge":"ZIP \u5305\u4E0D\u80FD\u8D85\u8FC7 50 MB\u3002","sub.err.market_npm_invalid":"npm \u5305\u4E0D\u5B58\u5728\u6216\u4E0D\u7B26\u5408\u63D2\u4EF6\u53D1\u5E03\u89C4\u8303\u3002","sub.err.market_npm_source":"\u8BF7\u901A\u8FC7 npm \u53D1\u5E03\u5E76\u91CD\u65B0\u5BA1\u6838\u65B0\u7248\u3002","sub.err.market_github_source":"\u8BF7\u5728 GitHub \u53D1\u5E03 Release \u5E76\u91CD\u65B0\u5BA1\u6838\u65B0\u7248\u3002","sub.err.market_not_found":"\u6295\u7A3F\u4E0D\u5B58\u5728\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002","sub.err.market_zip_required":"\u8BF7\u9009\u62E9 ZIP \u5305\u3002","sub.err.market_zip_invalid":"ZIP \u5305\u7ED3\u6784\u4E0D\u7B26\u5408\u53D1\u5E03\u89C4\u8303\u3002","sub.err.market_zip_too_large":"ZIP \u5305\u4E0D\u80FD\u8D85\u8FC7 50 MB\u3002","sub.err.market_version_required":"\u5305\u91CC\u6CA1\u5199\u7248\u672C\u53F7\u3002\u5728 manifest \u91CC\u5199\u4E0A\u7248\u672C\u53F7\uFF08\u6280\u80FD\u5199\u5728 SKILL.md \u7684 version \u6216 metadata.version\uFF09\u518D\u6253\u5305\u3002","sub.err.market_version_invalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u7248\u672C\u53F7\u3002","sub.err.market_version_mismatch":"\u7248\u672C\u53F7\u4E0E\u5305\u5185 manifest \u4E0D\u4E00\u81F4\u3002","sub.err.market_version_not_newer":"\u65B0\u7248\u987B\u9AD8\u4E8E\u5F53\u524D\u5DF2\u4E0A\u67B6\u7248\u672C\u3002","sub.err.market_icon_invalid":"\u56FE\u6807\u5E94\u4E3A 64\u2013512 px \u7684\u6B63\u65B9\u5F62 PNG\u3002","sub.err.market_duplicate":"\u8BE5\u5185\u5BB9\u5DF2\u6709\u6295\u7A3F\uFF0C\u8BF7\u7BA1\u7406\u73B0\u6709\u6295\u7A3F\u3002","sub.err.market_update_pending":"\u5DF2\u6709\u65B0\u7248\u7B49\u5F85\u5BA1\u6838\uFF0C\u8BF7\u5148\u7B49\u5F85\u5BA1\u6838\u7ED3\u679C\u3002","sub.err.market_stale":"\u6295\u7A3F\u5DF2\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002","sub.notNewer":"\u5305\u91CC\u7684\u7248\u672C\u662F v{version}\uFF0C\u8981\u9AD8\u4E8E\u5546\u5E97\u5F53\u524D\u7684 v{current}\u3002","sub.reqNone":"\u6CA1\u6709\u58F0\u660E\u7248\u672C\u8981\u6C42\u548C\u5E73\u53F0","sub.dropTitle":"\u628A ZIP \u62D6\u5230\u8FD9\u91CC\uFF0C\u6216\u70B9\u8FD9\u91CC\u9009\u62E9","sub.dropHint":"\u6700\u5927 50 MB\u3002\u9009\u597D\u540E\u5148\u68C0\u67E5\uFF0C\u4E0D\u4F1A\u76F4\u63A5\u63D0\u4EA4\u3002","sub.dropReplace":"{size} \xB7 \u62D6\u5165\u6216\u70B9\u8FD9\u91CC\u6362\u4E00\u4E2A","sub.checkType":"\u7C7B\u578B","sub.checkVersion":"\u7248\u672C","sub.checkIcon":"\u56FE\u6807","sub.checkReadme":"\u8BF4\u660E\u6587\u6863","sub.checkReq":"\u8981\u6C42","sub.checkWarn":"\u6CE8\u610F","sub.iconYes":"\u5305\u91CC\u6709 icon.png","sub.iconNo":"\u5305\u91CC\u6CA1\u6709 icon.png\uFF0C\u5361\u7247\u663E\u793A\u7C7B\u578B\u56FE\u6807","sub.readmeYes":"\u53D6\u5305\u91CC\u7684 README.md","sub.readmeKeep":"\u5305\u91CC\u6CA1\u6709 README.md\uFF0C\u6CBF\u7528\u73B0\u5728\u7684\u8BF4\u660E","sub.readmeNo":"\u5305\u91CC\u6CA1\u6709 README.md","sub.warn.no_manifest":"\u5305\u91CC\u6CA1\u627E\u5230\u6E05\u5355\u6587\u4EF6\uFF08manifest\uFF09","sub.warn.type_mismatch":"\u5305\u91CC\u7684\u7C7B\u578B\u548C\u8FD9\u6761\u6295\u7A3F\u7684\u7C7B\u578B\u4E0D\u4E00\u81F4","sub.warn.tag_version_mismatch":"Release \u6807\u7B7E\u548C\u5305\u91CC\u7684\u7248\u672C\u53F7\u4E0D\u4E00\u81F4","sub.warn.id_slug_mismatch":"\u5305\u91CC\u7684 id \u548C\u5B89\u88C5\u76EE\u5F55\u540D\u4E0D\u540C\u3002\u4E0D\u5F71\u54CD\u7528\u6237\uFF1A\u66F4\u65B0\u7167\u5E38\u88C5\u56DE\u539F\u76EE\u5F55\uFF0C\u4E0D\u4F1A\u591A\u51FA\u4E00\u4EFD\uFF1B\u5B89\u88C5\u76EE\u5F55\u540D\u4E0A\u67B6\u540E\u4E0D\u80FD\u6539","sub.warn.engine_slug_mismatch":"\u5F15\u64CE\u63D2\u4EF6\u7684\u76EE\u5F55\u540D\u548C\u5B83\u7684 id \u4E0D\u4E00\u81F4","sub.warn.no_entry":"Amadeus \u63D2\u4EF6\u7F3A\u5C11\u5165\u53E3 main.js","sub.warn.has_node_modules":"\u5305\u91CC\u5E26\u4E86 node_modules\uFF0C\u4F53\u79EF\u5927\uFF0C\u901A\u5E38\u4E5F\u7528\u4E0D\u4E0A","sub.zipListedNote":"\u5BA1\u6838\u901A\u8FC7\u524D\uFF0C\u5546\u5E97\u7EE7\u7EED\u63D0\u4F9B\u5DF2\u4E0A\u67B6\u7684\u7248\u672C\u3002\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.zipUnlistedNote":"\u63D0\u4EA4\u540E\u66FF\u6362\u73B0\u5728\u8FD9\u4EFD\u5305\uFF0C\u91CD\u65B0\u8FDB\u5165\u5BA1\u6838\u3002","sub.submitVersion":"\u63D0\u4EA4 v{version} \u5BA1\u6838","sub.checkNew":"\u68C0\u67E5\u65B0\u7248\u672C","sub.checkAgain":"\u518D\u68C0\u67E5\u4E00\u6B21","sub.upToDate":"\u4E0A\u6E38\u6700\u65B0\u662F v{version}\uFF0C\u5546\u5E97\u5DF2\u662F v{current}\uFF0C\u6CA1\u6709\u65B0\u7248\u672C\u3002\u53D1\u5E03\u65B0\u7248\u672C\u540E\u518D\u6765\u68C0\u67E5\u3002","sub.upstreamLatest":"\u4E0A\u6E38\u6700\u65B0\uFF1Av{version}","sub.releaseTag":"Release {tag}","sub.storeHas":"\u5546\u5E97\u5F53\u524D v{version}","sub.githubNote":"\u901A\u8FC7\u540E\u5546\u5E97\u9501\u5B9A\u5230 v{version}\u3002\u4EE5\u540E\u5728 GitHub \u53D1\u4E86\u65B0 Release\uFF0C\u56DE\u5230\u8FD9\u91CC\u518D\u68C0\u67E5\u4E00\u6B21\u3002","sub.npmNote":"\u901A\u8FC7\u540E\u5546\u5E97\u9501\u5B9A\u5230 v{version}\u3002\u4EE5\u540E\u5728 npm \u53D1\u4E86\u65B0\u7248\u672C\uFF0C\u56DE\u5230\u8FD9\u91CC\u518D\u68C0\u67E5\u4E00\u6B21\u3002","sub.secVersion":"\u7248\u672C","sub.secInfo":"\u5546\u5E97\u4FE1\u606F","sub.secHistory":"\u8BB0\u5F55","sub.edit":"\u7F16\u8F91","sub.unset":"\u672A\u586B\u5199","sub.infoNote":"\u4E0D\u7528\u4F20\u5305\u3001\u4E0D\u7528\u5347\u7248\u672C\u3002\u5DF2\u4E0A\u67B6\u7684\u4FEE\u6539\u540C\u6837\u8981\u8FC7\u5BA1\u6838\uFF0C\u5BA1\u6838\u524D\u5546\u5E97\u7167\u65E7\u663E\u793A\u539F\u6765\u7684\u4FE1\u606F\u3002","sub.submitInfo":"\u63D0\u4EA4\u4FEE\u6539","sub.back":"\u8FD4\u56DE\u5217\u8868","sub.pendingInfo":"\u5546\u5E97\u4FE1\u606F\u4FEE\u6539\u5F85\u5BA1\u6838","sub.rejectedInfo":"\u5546\u5E97\u4FE1\u606F\u4FEE\u6539\u5DF2\u9A73\u56DE","sub.pendingHint":"\u5BA1\u6838\u901A\u8FC7\u524D\u5546\u5E97\u7167\u65E7\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.inReview":"\u6B63\u5728\u7B49\u5F85\u9996\u6B21\u5BA1\u6838\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.histApproved":"v{version} \u5BA1\u6838\u901A\u8FC7","sub.histSubmitted":"\u6295\u7A3F","sub.resubmitted":"\u5DF2\u91CD\u65B0\u63D0\u4EA4\u5BA1\u6838\uFF0C\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.infoSubmitted":"\u4FEE\u6539\u5DF2\u63D0\u4EA4\u5BA1\u6838\uFF0C\u5BA1\u6838\u524D\u5546\u5E97\u7167\u65E7\u663E\u793A\u539F\u6765\u7684\u4FE1\u606F\u3002","sub.err.market_no_release":"\u8FD9\u4E2A\u4ED3\u5E93\u8FD8\u6CA1\u6709 GitHub Release\u3002\u5546\u5E97\u8981\u9501\u5B9A\u4E00\u4E2A\u7248\u672C\uFF0C\u5148\u5728 GitHub \u53D1\u4E00\u4E2A Release\uFF0C\u518D\u56DE\u6765\u68C0\u67E5\u3002","sub.err.market_no_changes":"\u6CA1\u6709\u6539\u52A8\u3002","sub.err.market_dryrun_unsupported":"GitHub \u548C npm \u6295\u7A3F\u6CA1\u6CD5\u63D0\u524D\u68C0\u67E5\uFF0C\u76F4\u63A5\u63D0\u4EA4\u5BA1\u6838\u5373\u53EF\u3002","page.account":"\u8D26\u53F7","page.membershipUsage":"\u4F1A\u5458\u4E0E\u7528\u91CF","page.membershipQuota":"\u4F1A\u5458\u4E0E\u989D\u5EA6","page.pointsInvite":"\u79EF\u5206\u4E0E\u9080\u8BF7","account.details.title":"\u767B\u5F55\u4E0E\u8D44\u6599","account.details.desc":"\u5934\u50CF\u3001\u6635\u79F0\u4E0E\u7B80\u4ECB\u5728\u300C\u4E2A\u4EBA\u4E3B\u9875\u300D\u4E2D\u7F16\u8F91\u3002","account.details.username":"\u7528\u6237\u540D","diag.unavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u652F\u6301\u8BCA\u65AD\u6570\u636E\uFF0C\u8BF7\u66F4\u65B0 Forsion \u540E\u91CD\u8BD5\u3002","page.profile":"\u4E2A\u4EBA\u4E3B\u9875","page.quota":"\u989D\u5EA6\u4E0E\u79EF\u5206","page.backpack":"\u80CC\u5305","page.security":"\u5B89\u5168","page.usage":"\u7528\u91CF\u8BB0\u5F55","page.feedback":"\u53CD\u9988","store.group":"\u4F1A\u5458\u4E0E\u79EF\u5206","store.membership":"\u4F1A\u5458","store.membership.desc":"\u5347\u7EA7\u6863\u4F4D\uFF0C\u83B7\u5F97\u66F4\u591A\u6BCF\u65E5\u4E0E\u6BCF\u5468\u989D\u5EA6","store.points":"\u79EF\u5206","store.points.desc":"\u5145\u503C\u79EF\u5206\uFF0C\u7528\u6765\u5151\u6362\u7269\u54C1","store.items":"\u7269\u54C1","store.items.desc":"\u7528\u79EF\u5206\u5151\u6362\u7684\u7269\u54C1\uFF0C\u5151\u6362\u540E\u8FDB\u80CC\u5305","store.status":"\u6863\u4F4D\u4E0E\u79EF\u5206","store.tier":"\u5F53\u524D\u6863\u4F4D","store.balance":"\u79EF\u5206\u4F59\u989D","store.choosePlan":"\u9009\u62E9\u6863\u4F4D","store.payHint":"\u4ED8\u6B3E\u5728\u6D4F\u89C8\u5668\u7684\u652F\u4ED8\u9875\u5B8C\u6210\uFF0C\u56DE\u5230\u5E94\u7528\u540E\u81EA\u52A8\u5237\u65B0","store.payOff":"\u6682\u65F6\u4E0D\u80FD\u8D2D\u4E70","store.period":"\u4ED8\u8D39\u5468\u671F","store.period.monthly":"\u6708\u4ED8","store.period.quarterly":"\u5B63\u4ED8","store.period.yearly":"\u5E74\u4ED8","store.per.monthly":"/ \u6708","store.per.quarterly":"/ \u5B63","store.per.yearly":"/ \u5E74","store.currentTier":"\u5F53\u524D\u6863\u4F4D","store.pay":"\u53BB\u652F\u4ED8","store.payPrice":"{price} \u53BB\u652F\u4ED8","store.noPlans":"\u6682\u65F6\u6CA1\u6709\u53EF\u9009\u7684\u6863\u4F4D","store.packs":"\u79EF\u5206\u5305","store.packsHint":"\u4ED8\u6B3E\u5728\u6D4F\u89C8\u5668\u7684\u652F\u4ED8\u9875\u5B8C\u6210\uFF0C\u4ED8\u6B3E\u540E\u79EF\u5206\u5373\u65F6\u5230\u8D26","store.noPacks":"\u6682\u65F6\u6CA1\u6709\u79EF\u5206\u5305","store.kind.pack":"\u79EF\u5206\u5305","store.kind.card":"\u9053\u5177","store.kind.code":"\u5151\u6362\u7801","store.kind.item":"\u7269\u54C1","store.nPoints":"{n} \u79EF\u5206","store.instant":"\u4ED8\u6B3E\u540E\u5373\u65F6\u5230\u8D26","store.redeemTitle":"\u79EF\u5206\u5151\u6362","store.redeemHint":"\u7528\u79EF\u5206\u5151\u6362\u5728\u5E94\u7528\u5185\u76F4\u63A5\u5B8C\u6210\uFF0C\u5151\u6362\u540E\u7269\u54C1\u8FDB\u80CC\u5305","store.redeem":"{n} \u79EF\u5206\u5151\u6362","store.redeemConfirm":"\u786E\u8BA4\u82B1 {n} \u79EF\u5206","store.redeemed":"\u5DF2\u5151\u6362\uFF0C\u7269\u54C1\u5728\u80CC\u5305\u91CC","store.uncertain":"\u6CA1\u6536\u5230\u7ED3\u679C\u3002\u5148\u5230\u80CC\u5305\u770B\u4E00\u4E0B\u6709\u6CA1\u6709\u5230\u8D26\uFF0C\u518D\u51B3\u5B9A\u8981\u4E0D\u8981\u91CD\u8BD5\u3002","store.soldOut":"\u5DF2\u552E\u7F44","store.left":"\u4F59 {n}","store.toBackpack":"\u5151\u6362\u540E\u8FDB\u80CC\u5305","store.limitReached":"\u5DF2\u8FBE\u8D2D\u4E70\u4E0A\u9650","store.unavailable":"\u8FD9\u4EF6\u7269\u54C1\u6682\u65F6\u4E0D\u80FD\u5151\u6362","store.noItems":"\u6682\u65F6\u6CA1\u6709\u53EF\u5151\u6362\u7684\u7269\u54C1","store.itemsOff":"\u7269\u54C1\u5151\u6362\u6682\u672A\u5F00\u653E","store.openBackpack":"\u6253\u5F00\u80CC\u5305","backpack.desc":"\u5728\u8FD9\u91CC\u67E5\u770B\u4F60\u83B7\u5F97\u7684\u7269\u54C1\uFF0C\u70B9\u51FB\u683C\u5B50\u67E5\u770B\u8BE6\u60C5\u3002","backpack.refresh":"\u5237\u65B0","backpack.total":"\u5171 {n} \u4EF6\u7269\u54C1","backpack.grid":"\u80CC\u5305\u7269\u54C1","backpack.slot":"{name}\uFF0C\u6570\u91CF {n}","backpack.item":"\u7269\u54C1","backpack.empty":"\u80CC\u5305\u8FD8\u662F\u7A7A\u7684","backpack.emptyHint":"\u5151\u6362\u6216\u83B7\u8D60\u7684\u7269\u54C1\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002","backpack.select":"\u70B9\u51FB\u7269\u54C1\u67E5\u770B\u8BE6\u60C5","backpack.details":"\u7269\u54C1\u8BE6\u60C5","backpack.quantity":"\u6301\u6709\u6570\u91CF","backpack.acquired":"\u83B7\u5F97\u65F6\u95F4","backpack.source":"\u83B7\u5F97\u65B9\u5F0F","backpack.source.points":"\u79EF\u5206\u5151\u6362","backpack.source.admin":"\u8D60\u9001","backpack.source.reward":"\u5956\u52B1","backpack.source.other":"\u4E91\u7AEF\u53D1\u653E","backpack.consumable":"\u6D88\u8017\u54C1","backpack.voucher":"\u5361\u5238","backpack.getCards":"\u5151\u6362\u91CD\u7F6E\u5361","backpack.manageCards":"\u4F7F\u7528\u6216\u5151\u6362","backpack.reveal":"\u67E5\u770B\u5361\u5BC6","backpack.copyKey":"\u590D\u5236\u5361\u5BC6","backpack.noKey":"\u8FD9\u4EF6\u7269\u54C1\u6CA1\u6709\u5361\u5BC6\u3002","backpack.use":"\u4F7F\u7528","backpack.confirmUse":"\u786E\u8BA4\u4F7F\u7528","backpack.consumeConfirm":"\u4F7F\u7528\u540E\u6D88\u8017 1 \u4EF6\u7269\u54C1\u3002","backpack.collectible":"\u7EAA\u5FF5\u54C1","backpack.effect.points":"+{n} \u79EF\u5206","backpack.effect.cards":"+{n} \u5F20\u91CD\u7F6E\u5361","backpack.effect.quota":"\u91CD\u7F6E\u4ECA\u65E5\u4E0E\u672C\u5468\u989D\u5EA6","backpack.rarity.common":"\u666E\u901A","backpack.rarity.rare":"\u7A00\u6709","backpack.rarity.epic":"\u53F2\u8BD7","backpack.rarity.legendary":"\u4F20\u8BF4","backpack.unavailable":"\u8FD9\u4EF6\u7269\u54C1\u5DF2\u4E0D\u53EF\u7528\uFF0C\u8BF7\u5237\u65B0\u80CC\u5305\u3002","backpack.notUsable":"\u8FD9\u4EF6\u7269\u54C1\u4E0D\u80FD\u4F7F\u7528\u3002","backpack.quotaUnavailable":"\u8BF7\u5148\u4F7F\u7528\u4E91\u7AEF AI \u521D\u59CB\u5316\u989D\u5EA6\uFF0C\u518D\u4F7F\u7528\u8FD9\u4EF6\u7269\u54C1\u3002","common.cancel":"\u53D6\u6D88","common.copied":"\u5DF2\u590D\u5236","common.copyFailed":"\u590D\u5236\u5931\u8D25","common.done":"\u5B8C\u6210","common.loadFailed":"\u6CA1\u80FD\u52A0\u8F7D","common.loadMore":"\u52A0\u8F7D\u66F4\u591A","common.loading":"\u52A0\u8F7D\u4E2D\u2026","common.openInBrowser":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","common.retry":"\u91CD\u8BD5","common.save":"\u4FDD\u5B58","common.thisWeek":"\u672C\u5468","common.today":"\u4ECA\u65E5","common.unlimited":"\u4E0D\u9650","ann.eyebrow":"FORSION \xB7 \u516C\u544A","ann.close":"\u5173\u95ED","ann.ok":"\u77E5\u9053\u4E86","signin.button":"\u767B\u5F55 Forsion","signin.desc":"\u767B\u5F55 Forsion \u8D26\u53F7\u540E\uFF0C\u53EF\u4EE5\u5728\u8FD9\u91CC\u7BA1\u7406\u8D26\u53F7\u3001\u989D\u5EA6\u3001\u5B89\u5168\u3001\u6295\u7A3F\u4E0E\u53CD\u9988\u3002","signin.pending":"\u7B49\u5F85\u5728\u6D4F\u89C8\u5668\u4E2D\u5B8C\u6210\u767B\u5F55\u2026","signin.deviceHint":"\u6D4F\u89C8\u5668\u4F1A\u81EA\u52A8\u6253\u5F00\u767B\u5F55\u9875\uFF1B\u6CA1\u6709\u6253\u5F00\u7684\u8BDD\uFF0C\u7528\u624B\u673A\u626B\u7801\u6216\u6253\u5F00\u4E0B\u9762\u7684\u94FE\u63A5\uFF0C\u5E76\u6838\u5BF9\u9A8C\u8BC1\u7801\u3002","signin.code":"\u9A8C\u8BC1\u7801","signin.openLink":"\u6253\u5F00\u767B\u5F55\u9875","signin.copyLink":"\u590D\u5236\u94FE\u63A5","signin.qrLabel":"\u767B\u5F55\u4E8C\u7EF4\u7801","account.profile.title":"\u4E2A\u4EBA\u8D44\u6599","account.profile.desc":"\u5934\u50CF\u3001\u6635\u79F0\uFF0C\u4EE5\u53CA\u7ED1\u5B9A\u7684\u624B\u673A\u548C\u90AE\u7BB1","account.avatar.change":"\u66F4\u6362\u5934\u50CF","account.avatar.saved":"\u5934\u50CF\u5DF2\u66F4\u65B0","account.nickname.edit":"\u4FEE\u6539\u6635\u79F0","account.nickname.label":"\u6635\u79F0","account.nickname.saved":"\u6635\u79F0\u5DF2\u66F4\u65B0","account.role.admin":"\u7BA1\u7406\u5458","account.username":"\u7528\u6237\u540D {name}","account.contact.phone":"\u624B\u673A","account.contact.email":"\u90AE\u7BB1","account.contact.unbound":"\u672A\u7ED1\u5B9A","account.contact.manage":"\u53BB\u5B89\u5168\u9875\u7BA1\u7406","account.web.open":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u4E2A\u4EBA\u4E2D\u5FC3","account.web.desc":"\u4E91\u7A7A\u95F4\u3001AI \u5927\u8111\u4E0E\u4E3B\u9898\u5728\u7F51\u9875\u4E2A\u4EBA\u4E2D\u5FC3\u7BA1\u7406\u3002","address.label":"\u4E3B\u9875\u5730\u5740","address.change":"\u6539\u5730\u5740","address.title":"\u6539\u4E3B\u9875\u5730\u5740","address.desc":"\u4F60\u53D1\u5E03\u7684\u4F5C\u54C1\u90FD\u5728\u8FD9\u4E2A\u5730\u5740\u4E0B\u9762\u3002\u6539\u4E86\u4E4B\u540E\uFF0C\u65E7\u5730\u5740\u4F1A\u4E00\u76F4\u8DF3\u8F6C\u5230\u65B0\u5730\u5740\uFF0C\u4E5F\u4E0D\u4F1A\u88AB\u522B\u4EBA\u62FF\u53BB\u7528\u3002","address.now":"\u73B0\u5728","address.new":"\u6539\u6210","address.rule":"3\u201330 \u4F4D\uFF0C\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u6216\u300C-\u300D","address.checking":"\u6B63\u5728\u67E5\u80FD\u4E0D\u80FD\u7528\u2026","address.ok":"\u53EF\u4EE5\u7528","address.bad":"\u8FD9\u4E2A\u5730\u5740\u4E0D\u80FD\u7528","address.same":"\u8FD9\u5C31\u662F\u4F60\u73B0\u5728\u7684\u5730\u5740","address.freeOne":"\u8FD9\u662F\u4F60\u7684\u4E00\u6B21\u514D\u8D39\u4FEE\u6539","address.freeN":"\u8FD9\u6B21\u514D\u8D39\uFF08\u4F60\u6709 {n} \u6B21\u514D\u8D39\u4FEE\u6539\uFF09","address.freeAfter":"\u4E4B\u540E\u6539\u5730\u5740\u8981\u7528\u5730\u5740\u6539\u540D\u5361","address.card":"\u7528\u6389 1 \u5F20\u5730\u5740\u6539\u540D\u5361","address.cardHave":"\u4F60\u6709 {n} \u5F20","address.need":"\u6539\u5730\u5740\u8981 1 \u5F20\u5730\u5740\u6539\u540D\u5361\uFF0C\u4F60\u8FD8\u6CA1\u6709","address.price":"{price} \u79EF\u5206 \xB7 \u4F59\u989D {balance}","address.soldout":"\u73B0\u5728\u4E70\u4E0D\u5230\u5730\u5740\u6539\u540D\u5361","address.cooldown":"\u4E24\u6B21\u6539\u5730\u5740\u81F3\u5C11\u9694 {days} \u5929","address.cooldownUntil":"{date} \u4E4B\u540E\u53EF\u4EE5\u518D\u6539","address.go":"\u6539\u5730\u5740","address.goCard":"\u7528\u5361\u6539\u5730\u5740","address.goBuy":"\u7528 {price} \u79EF\u5206\u4E70\u4E00\u5F20\u5E76\u6539","address.shop":"\u53BB\u5546\u5E97\u770B\u770B","address.done":"\u4E3B\u9875\u5730\u5740\u6539\u6210\u4E86 {url}","address.loadFailed":"\u5730\u5740\u4FE1\u606F\u6682\u65F6\u62FF\u4E0D\u5230\u3002","address.errTaken":"\u8FD9\u4E2A\u5730\u5740\u521A\u88AB\u522B\u4EBA\u7528\u4E86\uFF0C\u6362\u4E00\u4E2A\u5427\u3002","address.errNeedCard":"\u514D\u8D39\u6B21\u6570\u7528\u5B8C\u4E86\uFF0C\u6539\u5730\u5740\u8981\u4E00\u5F20\u5730\u5740\u6539\u540D\u5361\u3002","address.errCooldown":"\u8FD8\u6CA1\u5230\u80FD\u6539\u7684\u65F6\u5019\uFF1A{date} \u4E4B\u540E\u53EF\u4EE5\u518D\u6539\u3002","address.errPoints":"\u79EF\u5206\u4E0D\u591F\u4E70\u8FD9\u5F20\u5361\u3002","address.errBought":"\u5361\u5DF2\u7ECF\u4E70\u597D\u653E\u8FDB\u80CC\u5305\u4E86\uFF0C\u4F46\u5730\u5740\u6CA1\u6539\u6210\uFF1A{reason}","address.errSoldout":"\u5730\u5740\u6539\u540D\u5361\u521A\u4E0B\u67B6\u4E86\uFF0C\u73B0\u5728\u4E70\u4E0D\u5230\u3002","address.errLimit":"\u5730\u5740\u6539\u540D\u5361\u5DF2\u7ECF\u4E70\u5230\u4E0A\u9650\u4E86\u3002","address.errUnknown":"\u6CA1\u786E\u8BA4\u5230\u6539\u6CA1\u6539\u6210\uFF0C\u7A0D\u540E\u5237\u65B0\u770B\u770B\u518D\u8BF4\u3002","backpack.addressCard":"\u5730\u5740\u6539\u540D\u5361","backpack.addressCard.desc":"\u514D\u8D39\u6B21\u6570\u7528\u5B8C\u540E\uFF0C\u6539\u4E00\u6B21\u4E3B\u9875\u5730\u5740\u7528\u4E00\u5F20\u3002\u65E7\u5730\u5740\u4F1A\u4E00\u76F4\u8DF3\u8F6C\u5230\u65B0\u5730\u5740\uFF0C\u4E0D\u4F1A\u88AB\u522B\u4EBA\u62FF\u8D70\u3002","backpack.addressCard.use":"\u53BB\u6539\u5730\u5740","member.title":"\u4F1A\u5458","member.desc":"\u5F53\u524D\u6863\u4F4D\u3001\u65B9\u6848\u4E0E\u5230\u671F\u65E5","member.upgrade":"\u5347\u7EA7\u4F1A\u5458","member.renew":"\u7EED\u8D39","member.freeName":"\u514D\u8D39\u7248","member.freeHint":"\u5347\u7EA7\u4F1A\u5458\u53EF\u4EE5\u83B7\u5F97\u66F4\u591A AI \u989D\u5EA6","member.expires":"{date} \u5230\u671F","member.noExpiry":"\u957F\u671F\u6709\u6548","member.loadFailed":"\u4F1A\u5458\u4FE1\u606F\u6682\u65F6\u62FF\u4E0D\u5230\u3002","session.title":"\u767B\u5F55","session.desc":"\u7BA1\u7406\u8FD9\u53F0\u8BBE\u5907\u4E0A\u7684\u767B\u5F55\u72B6\u6001","local.title":"\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u8D26\u53F7","local.desc":"\u5728\u767B\u5F55\u8FC7\u7684\u8D26\u53F7\u4E4B\u95F4\u5207\u6362","local.current":"\u5F53\u524D","local.switch":"\u5207\u6362","local.add":"\u767B\u5F55\u5176\u4ED6\u8D26\u53F7","local.signOut":"\u9000\u51FA\u767B\u5F55","local.empty":"\u8FD8\u6CA1\u6709\u4FDD\u5B58\u7684\u8D26\u53F7","local.loadFailed":"\u8D26\u53F7\u5217\u8868\u6682\u65F6\u8BFB\u4E0D\u5230","diag.title":"\u8BCA\u65AD\u6570\u636E","diag.desc":"\u5E2E\u52A9\u6211\u4EEC\u6392\u67E5\u95EE\u9898\u3001\u6539\u8FDB Forsion\u3002\u9ED8\u8BA4\u5173\u95ED\u3002","diag.enable":"\u4E0A\u4F20\u8BCA\u65AD\u6570\u636E","diag.enableDesc":"\u6253\u5F00\u540E\uFF0C\u8FD9\u53F0\u7535\u8111\u4F1A\u5B9A\u671F\u4E0A\u4F20\u4E00\u4EFD Forsion \u4FE1\u606F\u5FEB\u7167\u5230\u4F60\u7684 Forsion \u8D26\u53F7\uFF0CForsion \u56E2\u961F\u53EF\u4EE5\u67E5\u770B\u3002\u591A\u4E45\u4E0A\u4F20\u4E00\u6B21\u7531 Forsion \u56E2\u961F\u8BBE\u5B9A\uFF0C\u9ED8\u8BA4\u6BCF\u5929\u4E00\u6B21\u3002\u968F\u65F6\u53EF\u4EE5\u5173\u95ED\u3002","diag.collected":"\u4F1A\u4E0A\u4F20","diag.item.app":"\u5E94\u7528\u4E0E\u7CFB\u7EDF\u7684\u7248\u672C\uFF0C\u8FD9\u53F0\u7535\u8111\u7684\u540D\u5B57\u3001\u5185\u5B58\u4E0E\u78C1\u76D8\u4F59\u91CF","diag.item.settings":"\u6A21\u578B\u4E0E\u8BED\u97F3\u7684\u9009\u62E9\uFF0C\u540E\u53F0 Agent \u4E0E\u63D2\u4EF6\u8BBE\u7F6E\u91CC\u7684\u5F00\u5173\u548C\u6570\u503C\uFF0CMCP \u670D\u52A1\u4E0E\u6D88\u606F\u901A\u9053\u7684\u540D\u5B57\u548C\u5F00\u5173","diag.item.agents":"Agent \u4E0E\u56E2\u961F\u7684\u914D\u7F6E\uFF08\u540D\u5B57\u3001\u6A21\u578B\u8FD9\u7C7B\u9009\u9879\uFF1B\u63CF\u8FF0\u4E0E\u63D0\u793A\u8BCD\u53EA\u8BB0\u957F\u5EA6\uFF0C\u6B63\u6587\u5F52\u4E0B\u9762\u300C\u4EBA\u8BBE\u3001\u8BB0\u5FC6\u4E0E\u8FDB\u5316\u8BB0\u5F55\u300D\u90A3\u4E2A\u5F00\u5173\uFF09","diag.item.plugins":"\u5DF2\u5B89\u88C5\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u3001\u4E3B\u9898\u548C Space \u7684\u540D\u5B57\u4E0E\u7248\u672C","diag.item.runs":"\u6700\u8FD1 7 \u5929\u7684\u8FD0\u884C\u8BB0\u5F55\uFF1A\u6BCF\u6B21\u8FD0\u884C\u7684\u72B6\u6001\u548C\u62A5\u9519\u539F\u56E0\uFF0C\u6A21\u578B\u8C03\u7528\u4E0E\u5DE5\u5177\u7684\u7528\u91CF\u3001\u8017\u65F6\uFF08\u4E0D\u5E26\u5BF9\u8BDD\u5185\u5BB9\u548C\u5DE5\u5177\u8BFB\u5199\u7684\u5185\u5BB9\uFF09\uFF0C\u4EE5\u53CA\u5F15\u64CE\u6700\u8FD1\u7684\u8FD0\u884C\u65E5\u5FD7","diag.item.sync":"\u4E91\u540C\u6B65\u7684\u72B6\u6001\uFF1A\u540C\u6B65\u89C4\u5219\u5F00\u5728\u54EA\u51E0\u7C7B\u4E0A\uFF0C\u6700\u8FD1\u51E0\u8F6E\u4E0A\u4F20\u3001\u4E0B\u8F7D\u3001\u5220\u9664\u548C\u51B2\u7A81\u526F\u672C\u7684\u4E2A\u6570\uFF0C\u4EE5\u53CA\u540C\u6B65\u7684\u62A5\u9519\u539F\u56E0\uFF08\u8DEF\u5F84\u4F1A\u906E\u6389\uFF0C\u4E0D\u5E26\u6587\u4EF6\u540D\u548C\u6587\u4EF6\u5185\u5BB9\uFF09","diag.notCollected":"\u4E0D\u4F1A\u4E0A\u4F20\uFF1A\u4FDD\u5B58\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u767B\u5F55\u51ED\u636E\u4E0E API \u5BC6\u94A5\u3001\u7B14\u8BB0\u6587\u4EF6\u3001Agent \u7684\u8D44\u6599\u5E93\u3001\u63D2\u4EF6\u6570\u636E\u3002","diag.sessions":"\u5305\u542B\u4F1A\u8BDD\u5185\u5BB9","diag.sessionsDesc":"\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u5BF9\u8BDD\uFF1A\u4F60\u548C Agent \u7684\u6D88\u606F\u6587\u5B57\u3001Agent \u7684\u601D\u8003\u8FC7\u7A0B\u548C\u7528\u5230\u7684\u5DE5\u5177\u540D\uFF0C\u5305\u62EC\u56E2\u961F\u6210\u5458\u3001\u8BA8\u8BBA\u3001\u59D4\u6D3E\u5728\u540E\u53F0\u505A\u7684\u90A3\u90E8\u5206\u3002\u6BCF\u6B21\u53EA\u4E0A\u4F20\u8FD8\u6CA1\u4E0A\u4F20\u8FC7\u7684\u90E8\u5206\uFF0C\u6700\u591A\u5F80\u524D 7 \u5929\u3002\u5DE5\u5177\u8BFB\u5199\u7684\u5185\u5BB9\u548C\u9644\u4EF6\u672C\u8EAB\u4E0D\u5E26\uFF1B\u6D88\u606F\u91CC\u51FA\u73B0\u7684\u6587\u4EF6\u540D\u3001Agent \u5728\u56DE\u590D\u91CC\u590D\u8FF0\u7684\u7B14\u8BB0\u6216\u6587\u4EF6\u5185\u5BB9\u4F1A\u5728\u5176\u4E2D\u3002\u5E38\u89C1\u683C\u5F0F\u7684\u5BC6\u94A5\u4F1A\u906E\u6389\uFF0C\u5176\u4F59\u539F\u6837\u4E0A\u4F20\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.memory":"\u5305\u542B Agent \u7684\u4EBA\u8BBE\u3001\u8BB0\u5FC6\u4E0E\u8FDB\u5316\u8BB0\u5F55","diag.memoryDesc":"\u6BCF\u4E2A Agent \u7684\u4EBA\u8BBE\uFF08\u5305\u62EC\u914D\u7F6E\u91CC\u7684\u63CF\u8FF0\u548C\u5F00\u53D1\u8005\u6307\u4EE4\uFF09\uFF0C\u548C\u5B83\u81EA\u5DF1\u6512\u4E0B\u6765\u7684\u5185\u5BB9\uFF1A\u8BB0\u5FC6\u548C\u8FD8\u6CA1\u6574\u7406\u7684\u8BB0\u5FC6\u5019\u9009\u3001\u8FDB\u5316\u8BB0\u5F55\u3001\u5199\u7ED9\u4F60\u7684\u534F\u4F5C\u8BF4\u660E\u3001\u6700\u8FD1 7 \u5929\u7684\u65E5\u5FD7\u548C\u8BB0\u5FC6\u6574\u7406\u8BB0\u5F55\uFF0C\u4EE5\u53CA\u9879\u76EE\u8BB0\u5FC6\uFF1B\u8FD8\u6709\u56E2\u961F\u7684\u8BBE\u5B9A\u548C\u4F60\u7684\u7528\u6237\u753B\u50CF\u3002\u8FD9\u4E9B\u662F\u4F60\u7ED9 Agent \u548C\u56E2\u961F\u5199\u7684\u8BBE\u5B9A\uFF0C\u548C Agent \u4ECE\u5BF9\u8BDD\u91CC\u8BB0\u4E0B\u7684\u5173\u4E8E\u4F60\u548C\u4F60\u7684\u5DE5\u4F5C\u7684\u4E8B\u5B9E\uFF0C\u6BCF\u6B21\u4E0A\u4F20\u5B83\u4EEC\u5F53\u524D\u7684\u5185\u5BB9\uFF08\u5F88\u957F\u7684\u4F1A\u622A\u65AD\uFF09\u3002\u5E38\u89C1\u683C\u5F0F\u7684\u5BC6\u94A5\u4F1A\u906E\u6389\uFF0C\u5176\u4F59\u539F\u6837\u4E0A\u4F20\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.activity":"\u5305\u542B\u6D3B\u52A8\u65E5\u5FD7","diag.activityDesc":"\u6D3B\u52A8\u8BB0\u5F55\u91CC\u6709\u5BF9\u8BDD\u5F00\u5934\u7684\u51E0\u5341\u4E2A\u5B57\u548C\u7B14\u8BB0\u6587\u4EF6\u540D\u3002\u6BCF\u6B21\u53EA\u4E0A\u4F20\u8FD8\u6CA1\u4E0A\u4F20\u8FC7\u7684\u90E8\u5206\uFF0C\u6700\u591A\u5F80\u524D 7 \u5929\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.last":"\u4E0A\u6B21\u4E0A\u4F20\uFF1A{time}","diag.noUpload":"\u8FD8\u6CA1\u6709\u4E0A\u4F20\u8FC7","diag.freq.hour":"\u6BCF\u5C0F\u65F6\u4E00\u6B21","diag.freq.hours":"\u6BCF {n} \u5C0F\u65F6\u4E00\u6B21","diag.freq.day":"\u6BCF\u5929\u4E00\u6B21","diag.freq.days":"\u6BCF {n} \u5929\u4E00\u6B21","diag.freq.manual":"Forsion \u56E2\u961F\u9700\u8981\u65F6\u624D\u91C7\u96C6","diag.retention":"\u4E91\u7AEF\u4FDD\u7559\u8FD9\u53F0\u7535\u8111\u6700\u8FD1 {n} \u5929\u7684\u5FEB\u7167\u3002\u5173\u95ED\u540E\u4E0D\u518D\u4E0A\u4F20\uFF1B\u5DF2\u4E0A\u4F20\u7684\u5FEB\u7167\u4ECD\u7559\u5728\u4E91\u7AEF\uFF0C\u9700\u8981\u5220\u9664\u53EF\u4EE5\u5728\u300C\u53CD\u9988\u300D\u91CC\u544A\u8BC9\u6211\u4EEC\u3002","page.privacy":"\u9690\u79C1\u4E0E\u6570\u636E","privacy.tab":"\u5E2E\u52A9\u6539\u8FDB","privacy.unavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u652F\u6301\u5E2E\u52A9\u6539\u8FDB Forsion\uFF0C\u8BF7\u66F4\u65B0 Forsion \u540E\u91CD\u8BD5\u3002","privacy.needUpdate":"\u8FD9\u4E2A\u7248\u672C\u7684 Forsion \u8FD8\u4E0D\u4F1A\u53D1\u9001\u8FD9\u4E9B\u6570\u636E\uFF0C\u66F4\u65B0 Forsion \u540E\u624D\u4F1A\u751F\u6548\u3002","privacy.devBuild":"\u5F00\u53D1\u7248\u4E0D\u53D1\u9001\u4EFB\u4F55\u6570\u636E\u3002","privacy.signInFirst":"\u767B\u5F55\u540E\u624D\u80FD\u5F00\u3002\u6CA1\u767B\u5F55\u65F6\u4E0D\u53D1\u9001\u4EFB\u4F55\u6570\u636E\u3002","privacy.improve.title":"\u5E2E\u52A9\u6539\u8FDB Forsion","privacy.improve.desc":"\u53EA\u53D1\u5143\u6570\u636E\uFF0C\u7528\u6765\u5B9A\u4F4D\u6545\u969C\u3001\u770B\u54EA\u91CC\u6162\u3002\u767B\u5F55 Forsion \u8D26\u53F7\u65F6\u624D\u4F1A\u53D1\u9001\uFF0C\u4F46\u4E0D\u5173\u8054\u4F60\u7684\u8D26\u53F7\u3002","privacy.improve.switch":"\u53D1\u9001\u5D29\u6E83\u62A5\u544A\u548C\u4F7F\u7528\u7EDF\u8BA1","privacy.improve.switchHint":"\u5173\u6389\u540E\u7ACB\u523B\u505C\u6B62\u53D1\u9001\uFF0C\u672C\u673A\u8FD8\u6CA1\u53D1\u51FA\u53BB\u7684\u4E5F\u4E00\u5E76\u4E22\u6389\u3002","privacy.policyLink":"\u6536\u96C6\u54EA\u4E9B\u6570\u636E\u3001\u4FDD\u5B58\u591A\u4E45\uFF0C\u89C1\u9690\u79C1\u653F\u7B56","privacy.sent.title":"\u6700\u8FD1 7 \u5929\u53D1\u51FA\u53BB\u7684\u5185\u5BB9","privacy.sent.hint":"\u539F\u6837\u5B58\u5728\u672C\u673A\uFF0C\u53EF\u4EE5\u9010\u6761\u770B\u3002","privacy.sent.last":"\u539F\u6837\u5B58\u5728\u672C\u673A\uFF0C\u53EF\u4EE5\u9010\u6761\u770B\u3002\u4E0A\u6B21\u53D1\u9001\uFF1A{time}","privacy.sent.view":"\u67E5\u770B","privacy.sent.empty":"\u6700\u8FD1 7 \u5929\u8FD8\u6CA1\u6709\u53D1\u9001\u8FC7\u3002","privacy.delete.title":"\u5220\u9664\u5DF2\u53D1\u9001\u7684\u6570\u636E","privacy.delete.hint":"\u6309\u8FD9\u53F0\u8BBE\u5907\u7684\u5B89\u88C5\u6807\u8BC6\u5220\u6389\u670D\u52A1\u5668\u4E0A\u7684\u5168\u90E8\u8BB0\u5F55\uFF0C\u5E76\u6362\u4E00\u4E2A\u65B0\u6807\u8BC6\u3002","privacy.delete.button":"\u5220\u9664","privacy.delete.confirm":"\u786E\u8BA4\u5220\u9664","privacy.delete.done":"\u5DF2\u5220\u9664\uFF0C\u5E76\u6362\u4E86\u65B0\u7684\u5B89\u88C5\u6807\u8BC6\u3002","privacy.delete.failed":"\u6CA1\u5220\u6210\uFF1A{reason}","privacy.installId":"\u5B89\u88C5\u6807\u8BC6 {id} \xB7 \u548C\u4F60\u7684\u8D26\u53F7\u65E0\u5173","diag.uploadNow":"\u7ACB\u5373\u4E0A\u4F20","diag.uploaded":"\u5DF2\u4E0A\u4F20","diag.failed":"\u4E0A\u4F20\u5931\u8D25\uFF1A{reason}","quota.ai.title":"AI \u989D\u5EA6","quota.ai.desc":"\u4ECA\u65E5\u548C\u672C\u5468\u5404\u8FD8\u5269\u591A\u5C11\uFF1B\u7528\u5B8C\u540E\u53EF\u4EE5\u7528\u989D\u5EA6\u91CD\u7F6E\u5361\u6062\u590D","quota.resetDaily":"\u6BCF\u5929 0:00 \u91CD\u7F6E\uFF08\u5317\u4EAC\u65F6\u95F4\uFF09","quota.resetWeekly":"{date} 0:00 \u91CD\u7F6E\uFF08\u5317\u4EAC\u65F6\u95F4\uFF09","card.title":"\u989D\u5EA6\u91CD\u7F6E\u5361","card.desc":"\u628A\u4ECA\u65E5\u548C\u672C\u5468\u7684 AI \u989D\u5EA6\u6062\u590D\u5230 100%","card.owned":"\u6301\u6709 {n} \u5F20","card.use":"\u4F7F\u7528\u4E00\u5F20","card.useConfirm":"\u786E\u8BA4\u4F7F\u7528","card.used":"\u5DF2\u4F7F\u7528 1 \u5F20\u989D\u5EA6\u91CD\u7F6E\u5361","card.left":"\u8FD8\u5269 {n} \u5F20","card.noneHint":"\u6CA1\u6709\u989D\u5EA6\u91CD\u7F6E\u5361\u4E86\uFF0C\u53EF\u4EE5\u7528\u79EF\u5206\u5151\u6362\u3002","card.exchange":"\u7528\u79EF\u5206\u5151\u6362","card.price":"\u6BCF\u5F20 {price} \u79EF\u5206\uFF0C\u4E00\u6B21 1\u201350 \u5F20","card.count":"\u5151\u6362\u5F20\u6570","card.cost":"\u82B1\u8D39 {cost} \u79EF\u5206","card.countHint":"\u586B 1\u201350","card.exchangeButton":"\u5151\u6362","card.exchangeConfirm":"\u786E\u8BA4\u82B1\u8D39 {cost} \u79EF\u5206","card.exchanged":"\u5DF2\u5151\u6362 {n} \u5F20\u989D\u5EA6\u91CD\u7F6E\u5361","points.title":"\u79EF\u5206","points.desc":"\u79EF\u5206\u53EF\u4EE5\u5151\u6362\u989D\u5EA6\u91CD\u7F6E\u5361","points.balance":"\u4F59\u989D","points.balanceFailed":"\u4F59\u989D\u6682\u65F6\u62FF\u4E0D\u5230","points.recharge":"\u5145\u503C\u79EF\u5206","bg.title":"\u540E\u53F0\u989D\u5EA6","bg.desc":"Muse \u4E0E\u81EA\u52A8\u5316\u4F7F\u7528\uFF0C\u548C AI \u989D\u5EA6\u5206\u5F00\u8BA1\u7B97","bg.autoMain":"\u7528\u5B8C\u540E\u6539\u7528 AI \u989D\u5EA6\u7EE7\u7EED","bg.autoMainDesc":"\u5173\u7740\u65F6\uFF0C\u540E\u53F0\u989D\u5EA6\u7528\u5B8C\u540E Muse \u4E0E\u81EA\u52A8\u5316\u4F1A\u6682\u505C","bg.convert":"\u4ECE AI \u989D\u5EA6\u8F6C\u5165","bg.convertDesc":"\u6309 AI \u989D\u5EA6\u4E0A\u9650\u7684\u6BD4\u4F8B\u8F6C\u5165\uFF0C\u672C\u5468\u671F\u5185\u6709\u6548","bg.convertConfirm":"\u786E\u8BA4\u8F6C\u5165 {pct}%","bg.converted":"\u5DF2\u4ECE AI \u989D\u5EA6\u8F6C\u5165 {pct}%","invite.title":"\u9080\u8BF7\u4E0E\u5151\u6362","invite.desc":"\u9080\u8BF7\u597D\u53CB\u6CE8\u518C\uFF0C\u6216\u5151\u6362\u4F60\u6536\u5230\u7684\u7801","invite.myCode":"\u6211\u7684\u9080\u8BF7\u7801","invite.count":"\u5DF2\u9080\u8BF7 {n} \u4EBA","invite.copyCode":"\u590D\u5236\u9080\u8BF7\u7801","invite.copyLink":"\u590D\u5236\u9080\u8BF7\u94FE\u63A5","invite.loadFailed":"\u9080\u8BF7\u7801\u6682\u65F6\u62FF\u4E0D\u5230","invite.claim":"\u586B\u5199\u9080\u8BF7\u7801","invite.claimDesc":"\u6CE8\u518C\u540E 7 \u5929\u5185\uFF0C\u53EF\u4EE5\u8865\u586B\u597D\u53CB\u7684\u9080\u8BF7\u7801","invite.claimPlaceholder":"\u597D\u53CB\u7684\u9080\u8BF7\u7801","invite.claimSubmit":"\u63D0\u4EA4","invite.claimed":"\u9080\u8BF7\u7801\u5DF2\u751F\u6548","redeem.title":"\u5151\u6362\u7801","redeem.desc":"\u5151\u6362\u79EF\u5206\u3001\u4F1A\u5458\u6216\u5176\u4ED6\u5956\u52B1","redeem.placeholder":"\u8F93\u5165\u5151\u6362\u7801","redeem.submit":"\u5151\u6362","redeem.success":"\u5151\u6362\u6210\u529F","redeem.successWith":"\u5151\u6362\u6210\u529F\uFF1A{what}","redeem.gotPoints":"{n} \u79EF\u5206","redeem.gotMembership":"\u4F1A\u5458","sec.methods.title":"\u767B\u5F55\u65B9\u5F0F","sec.methods.desc":"\u624B\u673A\u548C\u90AE\u7BB1\u53EF\u4EE5\u7528\u6765\u767B\u5F55\u3001\u627E\u56DE\u5BC6\u7801","sec.bind":"\u7ED1\u5B9A","sec.change":"\u66F4\u6362","sec.phone":"\u624B\u673A\u53F7","sec.email":"\u90AE\u7BB1\u5730\u5740","sec.newPhone":"\u65B0\u624B\u673A\u53F7","sec.newEmail":"\u65B0\u90AE\u7BB1\u5730\u5740","sec.phonePlaceholder":"\u4E2D\u56FD\u5927\u9646\u53F7\u7801\u76F4\u63A5\u586B\uFF0C\u5176\u4ED6\u5730\u533A\u5E26 +\u533A\u53F7","sec.emailPlaceholder":"name@example.com","sec.code":"\u9A8C\u8BC1\u7801","sec.codePlaceholder":"\u8F93\u5165\u9A8C\u8BC1\u7801","sec.sendCode":"\u53D1\u9001\u9A8C\u8BC1\u7801","sec.resendIn":"{s} \u79D2\u540E\u91CD\u53D1","sec.codeSent":"\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001","sec.bindSubmit":"\u786E\u8BA4\u7ED1\u5B9A","sec.phoneBound":"\u624B\u673A\u5DF2\u7ED1\u5B9A","sec.emailBound":"\u90AE\u7BB1\u5DF2\u7ED1\u5B9A","sec.devices.title":"\u767B\u5F55\u8BBE\u5907","sec.devices.desc":"\u62C5\u5FC3\u8D26\u53F7\u88AB\u522B\u4EBA\u7528\u4E86\uFF0C\u53EF\u4EE5\u8BA9\u6240\u6709\u8BBE\u5907\u91CD\u65B0\u767B\u5F55","sec.logoutAll":"\u9000\u51FA\u6240\u6709\u8BBE\u5907","sec.logoutAllDesc":"\u5305\u62EC\u8FD9\u53F0\u8BBE\u5907\uFF0C\u6240\u6709\u8BBE\u5907\u90FD\u8981\u91CD\u65B0\u767B\u5F55","sec.logoutAllConfirm":"\u786E\u8BA4\u9000\u51FA\u6240\u6709\u8BBE\u5907","sec.logoutAllDone":"\u5DF2\u9000\u51FA\u6240\u6709\u8BBE\u5907","pw.title":"\u5BC6\u7801","pw.desc":"{min}\u2013{max} \u4F4D\uFF0C\u542B\u5C0F\u5199\u5B57\u6BCD\u3001\u5927\u5199\u5B57\u6BCD\u548C\u7279\u6B8A\u5B57\u7B26\uFF0C\u4E0D\u80FD\u6709\u7A7A\u683C","pw.change":"\u4FEE\u6539\u5BC6\u7801","pw.modeLabel":"\u4FEE\u6539\u65B9\u5F0F","pw.mode.current":"\u7528\u5F53\u524D\u5BC6\u7801","pw.mode.code":"\u7528\u9A8C\u8BC1\u7801","pw.current":"\u5F53\u524D\u5BC6\u7801","pw.currentRequired":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","pw.new":"\u65B0\u5BC6\u7801","pw.confirm":"\u518D\u8F93\u4E00\u6B21\u65B0\u5BC6\u7801","pw.mismatch":"\u4E24\u6B21\u8F93\u5165\u7684\u65B0\u5BC6\u7801\u4E0D\u4E00\u81F4","pw.submit":"\u4FEE\u6539\u5BC6\u7801","pw.submitReset":"\u8BBE\u7F6E\u65B0\u5BC6\u7801","pw.changed":"\u5BC6\u7801\u5DF2\u66F4\u65B0","pw.noPasswordYet":"\u8FD9\u4E2A\u8D26\u53F7\u8FD8\u6CA1\u6709\u8BBE\u7F6E\u5BC6\u7801\uFF0C\u8BF7\u6539\u7528\u9A8C\u8BC1\u7801\u8BBE\u7F6E\u3002","pw.codeNeedsContact":"\u7ED1\u5B9A\u624B\u673A\u6216\u90AE\u7BB1\u540E\uFF0C\u624D\u80FD\u7528\u9A8C\u8BC1\u7801\u8BBE\u7F6E\u5BC6\u7801\u3002","pw.via":"\u9A8C\u8BC1\u7801\u53D1\u5230","pw.codeTo":"\u9A8C\u8BC1\u7801\u4F1A\u53D1\u5230 {target}","pw.rulesLabel":"\u5BC6\u7801\u89C4\u5219","pw.req.length":"{min}\u2013{max} \u4F4D","pw.req.lower":"\u542B\u5C0F\u5199\u5B57\u6BCD","pw.req.upper":"\u542B\u5927\u5199\u5B57\u6BCD","pw.req.special":"\u542B\u7279\u6B8A\u5B57\u7B26","pw.req.space":"\u4E0D\u542B\u7A7A\u683C","pw.rule.format":"\u5BC6\u7801\u683C\u5F0F\u4E0D\u6B63\u786E","pw.rule.min":"\u5BC6\u7801\u81F3\u5C11 8 \u4F4D","pw.rule.max":"\u5BC6\u7801\u4E0D\u80FD\u8D85\u8FC7 64 \u4F4D","pw.rule.space":"\u5BC6\u7801\u4E0D\u80FD\u5305\u542B\u7A7A\u683C","pw.rule.lower":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5C0F\u5199\u5B57\u6BCD","pw.rule.upper":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5927\u5199\u5B57\u6BCD","pw.rule.special":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u7279\u6B8A\u5B57\u7B26","del.title":"\u6CE8\u9500\u8D26\u53F7","del.desc":"\u6C38\u4E45\u5220\u9664\u8D26\u53F7\u548C\u5168\u90E8\u6570\u636E\uFF0C\u65E0\u6CD5\u6062\u590D","del.start":"\u6CE8\u9500\u8D26\u53F7","del.warn":"\u6CE8\u9500\u540E\uFF0C\u8D26\u53F7\u3001\u79EF\u5206\u3001\u4F1A\u5458\u3001\u4E91\u7A7A\u95F4\u548C\u5168\u90E8\u6570\u636E\u90FD\u4F1A\u88AB\u5220\u9664\uFF0C\u65E0\u6CD5\u627E\u56DE\u3002","del.methodLabel":"\u9A8C\u8BC1\u65B9\u5F0F","del.byCode":"\u9A8C\u8BC1\u7801","del.byPassword":"\u5BC6\u7801","del.codeLabel":"\u53D1\u5230 {target} \u7684\u9A8C\u8BC1\u7801","del.passwordLabel":"\u8D26\u53F7\u5BC6\u7801","del.submit":"\u6CE8\u9500\u8D26\u53F7","del.confirm":"\u786E\u8BA4\u6C38\u4E45\u6CE8\u9500","del.done":"\u8D26\u53F7\u5DF2\u6CE8\u9500","usage.overview.title":"\u7528\u91CF\u6982\u89C8","usage.overview.desc":"\u6240\u9009\u65F6\u95F4\u6BB5\u5185\u7684\u8BF7\u6C42\u4E0E AI \u989D\u5EA6\u6D88\u8017","usage.range":"\u65F6\u95F4\u8303\u56F4","usage.days":"{n} \u5929","usage.requests":"\u8BF7\u6C42\u6B21\u6570","usage.successRate":"\u6210\u529F\u7387","usage.consumption":"AI \u989D\u5EA6\u6D88\u8017","usage.ofToday":"\u5360\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650","usage.unlimitedNote":"\u4F60\u7684 AI \u989D\u5EA6\u4E0D\u9650\uFF0C\u6D88\u8017\u65E0\u6CD5\u6298\u7B97\u6210\u767E\u5206\u6BD4\u3002","usage.noLimitNote":"\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650\u4E3A 0 \u6216\u6682\u65F6\u62FF\u4E0D\u5230\uFF0C\u6D88\u8017\u65E0\u6CD5\u6298\u7B97\u6210\u767E\u5206\u6BD4\u3002","usage.byModel.title":"\u6309\u6A21\u578B","usage.byModel.desc":"\u5404\u6A21\u578B\u7684\u8BF7\u6C42\u6570\u4E0E\u989D\u5EA6\u6D88\u8017","usage.byApp.title":"\u6309\u5E94\u7528","usage.byApp.desc":"\u5404\u5E94\u7528\u7684\u8BF7\u6C42\u6570\u4E0E\u989D\u5EA6\u6D88\u8017","usage.col.model":"\u6A21\u578B","usage.col.app":"\u5E94\u7528","usage.col.requests":"\u8BF7\u6C42","usage.col.consumption":"\u989D\u5EA6\u6D88\u8017","usage.empty":"\u8FD9\u6BB5\u65F6\u95F4\u6CA1\u6709\u7528\u91CF","usage.appUnknown":"\u5176\u4ED6","usage.recent.title":"\u6700\u8FD1\u6D88\u8017","usage.recent.desc":"\u6BCF\u6B21\u8C03\u7528\u5360\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650\u7684\u6BD4\u4F8B","usage.recentEmpty":"\u8FD8\u6CA1\u6709\u6D88\u8017\u8BB0\u5F55","usage.failed":"\u5931\u8D25","usage.shown":"\u5DF2\u663E\u793A {shown} / {total} \u6761","fb.list.title":"\u6211\u7684\u53CD\u9988","fb.list.desc":"\u63D0\u4EA4\u8FC7\u7684\u95EE\u9898\u548C\u5EFA\u8BAE\uFF0C\u56DE\u590D\u4F1A\u663E\u793A\u5728\u8FD9\u91CC","fb.new":"\u65B0\u5EFA\u53CD\u9988","fb.empty":"\u8FD8\u6CA1\u6709\u53CD\u9988","fb.untitled":"\u672A\u547D\u540D\u53CD\u9988","fb.unread":"\u6709\u65B0\u56DE\u590D","fb.shown":"\u5DF2\u663E\u793A {n} \u6761","fb.submitted":"\u5DF2\u63D0\u4EA4\uFF0C\u6211\u4EEC\u4F1A\u5C3D\u5FEB\u56DE\u590D","fb.descLabel":"\u63CF\u8FF0\u95EE\u9898\u6216\u5EFA\u8BAE","fb.descPlaceholder":"\u53D1\u751F\u4E86\u4EC0\u4E48\uFF0C\u4F60\u671F\u671B\u600E\u6837\u2026\u2026","fb.imagesHint":"\u6700\u591A\u9644 {n} \u5F20\u622A\u56FE\uFF08\u6BCF\u5F20\u4E0D\u8D85\u8FC7 5MB\uFF09\uFF0C\u53EF\u4EE5\u7C98\u8D34\u6216\u62D6\u8FDB\u6765\u3002","fb.addImages":"\u6DFB\u52A0\u622A\u56FE","fb.removeImage":"\u79FB\u9664\u8FD9\u5F20\u56FE","fb.submit":"\u63D0\u4EA4","fb.back":"\u8FD4\u56DE\u5217\u8868","fb.you":"\u4F60","fb.support":"Forsion \u56E2\u961F","fb.attachment":"\u9644\u4EF6","fb.imagePreview":"\u67E5\u770B\u5927\u56FE","fb.closedNote":"\u8FD9\u4E2A\u5DE5\u5355\u5DF2\u5173\u95ED\uFF0C\u4E0D\u80FD\u518D\u56DE\u590D\u3002\u6709\u65B0\u95EE\u9898\u8BF7\u65B0\u5EFA\u53CD\u9988\u3002","fb.replyPlaceholder":"\u56DE\u590D\u2026","fb.replySend":"\u53D1\u9001\u56DE\u590D","fb.replySent":"\u56DE\u590D\u5DF2\u53D1\u9001","fb.status.open":"\u5F85\u5904\u7406","fb.status.in_progress":"\u5904\u7406\u4E2D","fb.status.resolved":"\u5DF2\u89E3\u51B3","fb.status.closed":"\u5DF2\u5173\u95ED","err.accountGone":"\u8FD9\u4E2A\u8D26\u53F7\u5DF2\u9000\u51FA\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.adminCannotDelete":"\u7BA1\u7406\u5458\u8D26\u53F7\u4E0D\u80FD\u81EA\u52A9\u6CE8\u9500","err.avatarInvalid":"\u8FD9\u5F20\u56FE\u7247\u8BFB\u4E0D\u51FA\u6765\uFF0C\u6362\u4E00\u5F20\u8BD5\u8BD5","err.avatarTooLarge":"\u56FE\u7247\u592A\u5927\u4E86\uFF0C\u6362\u4E00\u5F20\u5C0F\u4E00\u70B9\u7684","err.backgroundUnavailable":"\u540E\u53F0\u989D\u5EA6\u6682\u65F6\u4E0D\u53EF\u7528","err.captcha":"\u9700\u8981\u5728\u6D4F\u89C8\u5668\u4E2D\u5B8C\u6210\u4EBA\u673A\u9A8C\u8BC1","err.codeCooldown":"\u53D1\u9001\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.codeInvalid":"\u9A8C\u8BC1\u7801\u4E0D\u5BF9\u6216\u5DF2\u8FC7\u671F","err.codeRequired":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","err.codeSendFailed":"\u9A8C\u8BC1\u7801\u6CA1\u53D1\u51FA\u53BB\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.currentPasswordWrong":"\u5F53\u524D\u5BC6\u7801\u4E0D\u5BF9","err.deleteTargetInvalid":"\u9A8C\u8BC1\u7801\u53EA\u80FD\u53D1\u5230\u8D26\u53F7\u7ED1\u5B9A\u7684\u624B\u673A\u6216\u90AE\u7BB1","err.deleteVerifyFailed":"\u9A8C\u8BC1\u6CA1\u901A\u8FC7\uFF0C\u8D26\u53F7\u6CA1\u6709\u6CE8\u9500","err.emailInUse":"\u8FD9\u4E2A\u90AE\u7BB1\u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u4F7F\u7528","err.emailInvalid":"\u90AE\u7BB1\u683C\u5F0F\u4E0D\u5BF9","err.featureDisabled":"\u8FD9\u9879\u529F\u80FD\u6682\u65F6\u5173\u95ED\u4E86","err.feedbackEmpty":"\u8BF7\u5199\u4E00\u4E0B\u95EE\u9898\u6216\u5EFA\u8BAE","err.feedbackTooLong":"\u63CF\u8FF0\u592A\u957F\u4E86\uFF08\u6700\u591A 10000 \u5B57\uFF09","err.generic":"\u64CD\u4F5C\u6CA1\u6709\u6210\u529F\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.imageRead":"\u56FE\u7247\u8BFB\u4E0D\u51FA\u6765","err.imageTooLarge":"\u6BCF\u5F20\u56FE\u7247\u4E0D\u80FD\u8D85\u8FC7 5MB","err.imageType":"\u53EA\u80FD\u6DFB\u52A0\u56FE\u7247","err.insufficientMainQuota":"AI \u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u6CA1\u6709\u53EF\u8F6C\u5165\u7684\u989D\u5EA6","err.insufficientPoints":"\u79EF\u5206\u4E0D\u591F","err.priceChanged":"\u91CD\u7F6E\u5361\u5355\u4EF7\u521A\u521A\u8C03\u6574\u8FC7\uFF0C\u8BF7\u770B\u4E00\u4E0B\u65B0\u4EF7\u683C\uFF0C\u518D\u786E\u8BA4\u5151\u6362\u3002","err.invalidCount":"\u5F20\u6570\u8981\u5728 1\u201350 \u4E4B\u95F4","err.invalidInviteCode":"\u9080\u8BF7\u7801\u65E0\u6548\u6216\u5DF2\u5931\u6548","err.inviteAlreadyUsed":"\u4F60\u5DF2\u7ECF\u7528\u8FC7\u9080\u8BF7\u7801\u4E86","err.inviteEmpty":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","err.inviteOwnCode":"\u4E0D\u80FD\u586B\u81EA\u5DF1\u7684\u9080\u8BF7\u7801","err.inviteWindowExpired":"\u5DF2\u8D85\u8FC7\u6CE8\u518C\u540E 7 \u5929\u7684\u8865\u586B\u671F","err.loginCodeExpired":"\u767B\u5F55\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.loginInProgress":"\u6B63\u5728\u767B\u5F55\u4E2D","err.loginTimeout":"\u767B\u5F55\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5","err.loginUnsupported":"\u8FD9\u4E2A\u4E91\u7AEF\u4E0D\u652F\u6301\u684C\u9762\u7AEF\u767B\u5F55","err.network":"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5","err.noCloudUrl":"\u8BF7\u5148\u5728\u300C\u8FDE\u63A5\u300D\u91CC\u586B\u5199\u4E91\u7AEF\u5730\u5740","err.noResetCard":"\u6CA1\u6709\u53EF\u7528\u7684\u989D\u5EA6\u91CD\u7F6E\u5361","err.openFailed":"\u6CA1\u80FD\u6253\u5F00\u6D4F\u89C8\u5668","err.passwordRequired":"\u8BF7\u586B\u5199\u5F53\u524D\u5BC6\u7801\u548C\u65B0\u5BC6\u7801","err.phoneInUse":"\u8FD9\u4E2A\u624B\u673A\u53F7\u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u4F7F\u7528","err.phoneInvalid":"\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u5BF9\uFF08\u5176\u4ED6\u5730\u533A\u8BF7\u5E26 +\u533A\u53F7\uFF09","err.redeemEmpty":"\u8BF7\u8F93\u5165\u5151\u6362\u7801","err.redeemExpired":"\u5151\u6362\u7801\u5DF2\u8FC7\u671F","err.redeemInactive":"\u5151\u6362\u7801\u5DF2\u505C\u7528","err.redeemNotFound":"\u5151\u6362\u7801\u4E0D\u5B58\u5728","err.redeemUsedUp":"\u5151\u6362\u7801\u5DF2\u88AB\u7528\u5B8C","err.redeemUserLimit":"\u4F60\u5DF2\u7ECF\u5151\u6362\u8FC7\u8FD9\u4E2A\u7801\u4E86","err.replyEmpty":"\u8BF7\u8F93\u5165\u56DE\u590D\u5185\u5BB9","err.replyTooLong":"\u56DE\u590D\u592A\u957F\u4E86\uFF08\u6700\u591A 10000 \u5B57\uFF09","err.server":"\u670D\u52A1\u5668\u51FA\u9519\u4E86\uFF08{status}\uFF09\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.session":"\u767B\u5F55\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.signedOut":"\u8BF7\u5148\u767B\u5F55 Forsion","err.targetInvalid":"\u624B\u673A\u53F7\u6216\u90AE\u7BB1\u683C\u5F0F\u4E0D\u5BF9","err.ticketNotFound":"\u8FD9\u6761\u53CD\u9988\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664","err.webPageGone":"\u8FD9\u4E2A\u7F51\u9875\u4E0D\u5B58\u5728\u6216\u5DF2\u4E0B\u7EBF","err.listingGone":"\u8FD9\u4E2A\u7F51\u9875\u6CA1\u6709\u4E0A\u67B6\u7533\u8BF7","err.listingSummary":"\u8BF7\u586B\u5199\u5546\u5E97\u7B80\u4ECB\uFF08300 \u5B57\u4EE5\u5185\uFF09","err.tooFrequent":"\u64CD\u4F5C\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.tooManyImages":"\u6700\u591A\u6DFB\u52A0 5 \u5F20\u56FE\u7247","err.unavailable":"\u8FD9\u4E2A\u7248\u672C\u8FD8\u4E0D\u652F\u6301\u8FD9\u4E2A\u64CD\u4F5C\uFF0C\u8BF7\u66F4\u65B0 Forsion","profile.unsupported":"\u8FD9\u4E2A\u670D\u52A1\u7AEF\u8FD8\u6CA1\u6709\u4E2A\u4EBA\u4E3B\u9875\u529F\u80FD","profile.state.private":"\u4EC5\u81EA\u5DF1\u53EF\u89C1","profile.state.public":"\u5DF2\u516C\u5F00","profile.state.privateDesc":"\u516C\u5F00\u540E\uFF0C\u4EFB\u4F55\u4EBA\u6253\u5F00\u5730\u5740\u90FD\u80FD\u770B\u5230\u4F60\u7684\u4E3B\u9875\uFF0C\u4E0D\u9700\u8981\u767B\u5F55","profile.state.publicDesc":"\u4EFB\u4F55\u4EBA\u6253\u5F00\u516C\u5F00\u5730\u5740\u90FD\u80FD\u770B\u5230\uFF0C\u4E0D\u9700\u8981\u767B\u5F55","profile.decorate":"\u88C5\u9970","profile.publish":"\u516C\u5F00\u4E3B\u9875","profile.makePrivate":"\u8BBE\u4E3A\u79C1\u6709","profile.address":"\u516C\u5F00\u5730\u5740","profile.copyLink":"\u590D\u5236\u94FE\u63A5","profile.openPublic":"\u67E5\u770B\u516C\u5F00\u9875","profile.nowPublic":"\u4E3B\u9875\u5DF2\u516C\u5F00","profile.nowPrivate":"\u4E3B\u9875\u5DF2\u8BBE\u4E3A\u79C1\u6709\uFF0C\u516C\u5F00\u5730\u5740\u4E0D\u518D\u80FD\u6253\u5F00","profile.bio":"\u7B80\u4ECB","profile.bioPlaceholder":"\u5199\u4E00\u53E5\u7B80\u4ECB","profile.linkAdd":"\u6DFB\u52A0\u94FE\u63A5","profile.linkRemove":"\u79FB\u9664\u94FE\u63A5","profile.linkInvalid":"\u94FE\u63A5\u8981\u4EE5 http:// \u6216 https:// \u5F00\u5934\uFF0C\u6216\u76F4\u63A5\u5199\u57DF\u540D","profile.joined":"{date}\u52A0\u5165","profile.stat.tokens":"\u7D2F\u8BA1 Token","profile.stat.activeDays":"\u6D3B\u8DC3\u5929\u6570","profile.stat.longest":"\u6700\u957F\u8FDE\u7EED","profile.stat.current":"\u5F53\u524D\u8FDE\u7EED","profile.stat.installs":"\u4F5C\u54C1\u88AB\u5B89\u88C5","profile.unit.days":"\u5929","profile.works":"\u7CBE\u9009\u4F5C\u54C1","profile.worksPick":"\u9009\u62E9","profile.worksEmpty":"\u8FD8\u6CA1\u6709\u4E0A\u67B6\u7684\u4F5C\u54C1\u3002\u4E0A\u67B6\u5230\u5546\u5E97\u6216\u53D1\u5E03\u6210\u7F51\u9875\u5E94\u7528\u540E\uFF0C\u53EF\u4EE5\u653E\u5230\u8FD9\u91CC\u3002","profile.worksNone":"\u8FD8\u6CA1\u6709\u53EF\u4EE5\u653E\u4E0A\u4E3B\u9875\u7684\u4F5C\u54C1\u3002\u4F5C\u54C1\u4E0A\u67B6\u5230\u5546\u5E97\u3001\u6216\u53D1\u5E03\u6210\u7F51\u9875\u5E94\u7528\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002","profile.worksPicked":"\u5DF2\u9009 {n} / {max} \u4EF6","profile.worksAuto":"\u4E0D\u9009\u7684\u8BDD\uFF0C\u6309\u5B89\u88C5\u91CF\u81EA\u52A8\u53D6\u524D\u51E0\u4EF6","profile.goSubmit":"\u53BB\u6295\u7A3F","profile.workInstalls":"{n} \u6B21\u5B89\u88C5","profile.workVisits":"{n} \u6B21\u8BBF\u95EE","profile.work.skill":"\u6280\u80FD","profile.work.agent":"Agent","profile.work.plugin":"\u63D2\u4EF6","profile.work.space":"Space","profile.work.theme":"\u4E3B\u9898","profile.work.note":"\u7B14\u8BB0\u63D2\u4EF6","profile.work.webapp":"\u7F51\u9875\u5E94\u7528","profile.activity":"\u6D3B\u52A8","profile.activityDays":"\u8FC7\u53BB\u4E00\u5E74\u6709 {n} \u5929\u5728\u7528","profile.less":"\u5C11","profile.more":"\u591A","profile.badges":"\u5FBD\u7AE0","profile.badgesEmpty":"\u8FD8\u6CA1\u6709\u5FBD\u7AE0\u3002\u8FDE\u7EED\u4F7F\u7528\u3001\u4E0A\u67B6\u4F5C\u54C1\u3001\u9080\u8BF7\u670B\u53CB\u90FD\u4F1A\u70B9\u4EAE\u3002","profile.badge.early":"\u65E9\u671F\u7528\u6237","profile.badge.streak":"\u8FDE\u7EED 30 \u5929","profile.badge.author":"\u4F5C\u8005","profile.badge.inviter":"\u9080\u8BF7\u8FBE\u4EBA","profile.badge.event":"\u6D3B\u52A8\u7EAA\u5FF5","profile.badgeSub.early":"{value} \u5E74\u52A0\u5165","profile.badgeSub.streak":"\u6700\u957F\u8FDE\u7EED {value} \u5929","profile.badgeSub.author":"\u4E0A\u67B6\u4E86 {value} \u4EF6\u4F5C\u54C1","profile.badgeSub.inviter":"\u9080\u8BF7\u4E86 {value} \u4F4D\u670B\u53CB","profile.badgeSub.event":"\u53C2\u52A0\u8FC7 Forsion \u7684\u6D3B\u52A8{value}","profile.insights":"\u6D1E\u5BDF","profile.insightsEmpty":"\u7528\u5F97\u8FD8\u4E0D\u591F\u591A\uFF0C\u8FC7\u51E0\u5929\u518D\u6765\u770B\u3002","profile.insightModel":"\u6700\u5E38\u7528\u6A21\u578B","profile.insightHours":"\u6700\u6D3B\u8DC3\u65F6\u6BB5","profile.deco.skin":"\u516C\u5F00\u9875\u7684\u914D\u8272","profile.deco.mode":"\u516C\u5F00\u9875\u7684\u660E\u6697","profile.deco.publicHint":"\u8FD9\u4E24\u9879\u53EA\u7BA1\u8BBF\u5BA2\u5728\u516C\u5F00\u9875\u4E0A\u770B\u5230\u7684\u3002\u5728\u8FD9\u91CC\uFF0C\u4E3B\u9875\u8DDF Forsion \u5F53\u524D\u7684\u4E3B\u9898\u8D70\u3002","profile.deco.cover":"\u5C01\u9762","profile.deco.frame":"\u5934\u50CF\u6846","profile.deco.modules":"\u6A21\u5757","profile.skin.cream":"\u7ECF\u5178","profile.skin.coral":"\u73CA\u745A","profile.skin.teal":"\u67D4\u9752","profile.skin.lavender":"\u85B0\u8863\u8349","profile.mode.auto":"\u8DDF\u968F\u8BBF\u5BA2","profile.mode.light":"\u6D45\u8272","profile.mode.dark":"\u6DF1\u8272","profile.cover.none":"\u65E0","profile.cover.mist":"\u6668\u96FE","profile.cover.contour":"\u7B49\u9AD8\u7EBF","profile.cover.dots":"\u7F51\u70B9","profile.frame.none":"\u65E0","profile.frame.ring":"\u7EC6\u73AF","profile.frame.pro":"\u4F1A\u5458\u73AF","profile.frameProHint":"\u4F1A\u5458\u73AF\u662F\u4ED8\u8D39\u4F1A\u5458\u4E13\u5C5E\u3002","profile.col.show":"\u663E\u793A","profile.col.public":"\u516C\u5F00","profile.moveUp":"\u4E0A\u79FB","profile.moveDown":"\u4E0B\u79FB","profile.modulesHint":"\u300C\u663E\u793A\u300D\u51B3\u5B9A\u4E3B\u9875\u4E0A\u6709\u6CA1\u6709\u8FD9\u4E00\u5757\uFF1B\u300C\u516C\u5F00\u300D\u51B3\u5B9A\u8BBF\u5BA2\u80FD\u4E0D\u80FD\u770B\u5230\uFF0C\u4E3B\u9875\u516C\u5F00\u540E\u624D\u8D77\u4F5C\u7528\u3002","profile.mod.stats":"\u6570\u636E","profile.mod.works":"\u7CBE\u9009\u4F5C\u54C1","profile.mod.activity":"\u6D3B\u52A8","profile.mod.badges":"\u5FBD\u7AE0","profile.mod.insights":"\u6D1E\u5BDF","profile.modDesc.stats":"\u7D2F\u8BA1 Token\u3001\u6D3B\u8DC3\u5929\u6570\u3001\u8FDE\u7EED\u5929\u6570\u3001\u4F5C\u54C1\u5B89\u88C5\u91CF","profile.modDesc.works":"\u4F60\u4E0A\u67B6\u7684\u4F5C\u54C1\uFF0C\u6700\u591A 6 \u4EF6","profile.modDesc.activity":"\u8FC7\u53BB\u4E00\u5E74\u6BCF\u5929\u7528\u6CA1\u7528\u3001\u7528\u5F97\u591A\u4E0D\u591A\uFF08\u53EA\u6709\u6DF1\u6D45\uFF0C\u6CA1\u6709\u5177\u4F53\u6570\u5B57\uFF09","profile.modDesc.badges":"\u52A0\u5165\u5E74\u4EFD\u3001\u8FDE\u7EED\u5929\u6570\u3001\u4E0A\u67B6\u3001\u9080\u8BF7\u3001\u6D3B\u52A8","profile.modDesc.insights":"\u6700\u5E38\u7528\u7684\u6A21\u578B\u3001\u6700\u6D3B\u8DC3\u7684\u65F6\u6BB5","profile.publishDesc":"\u516C\u5F00\u540E\uFF0C\u4EFB\u4F55\u4EBA\u6253\u5F00\u8FD9\u4E2A\u5730\u5740\u90FD\u80FD\u770B\u5230\u4F60\u7684\u4E3B\u9875\uFF0C\u4E0D\u9700\u8981\u767B\u5F55\u3002\u4E0B\u9762\u6BCF\u4E00\u5757\u53EF\u4EE5\u5355\u72EC\u51B3\u5B9A\u7ED9\u4E0D\u7ED9\u8BBF\u5BA2\u770B\u3002","profile.publishNever":"\u5934\u50CF\u3001\u6635\u79F0\u3001\u7528\u6237\u540D\u3001\u7B80\u4ECB\u548C\u94FE\u63A5\u4F1A\u4E00\u8D77\u516C\u5F00\u3002\u90AE\u7BB1\u3001\u624B\u673A\u53F7\u3001\u4F1A\u5458\u5230\u671F\u65E5\u3001\u79EF\u5206\u548C\u989D\u5EA6\u4E0D\u4F1A\u51FA\u73B0\u5728\u4E3B\u9875\u4E0A\u3002","profile.publishConfirm":"\u516C\u5F00","profile.blocked.machineUsername":"\u4F60\u73B0\u5728\u7684\u7528\u6237\u540D\u662F\u7CFB\u7EDF\u751F\u6210\u7684\uFF0C\u91CC\u9762\u5E26\u7740\u624B\u673A\u53F7\u6216\u90AE\u7BB1\u7684\u4E00\u90E8\u5206\uFF0C\u516C\u5F00\u4F1A\u628A\u5B83\u9732\u51FA\u53BB\u3002\u5148\u5230\u7F51\u9875\u4E2A\u4EBA\u4E2D\u5FC3\u7684\u300C\u8D26\u53F7\u300D\u9875\u6539\u4E00\u4E2A\u7528\u6237\u540D\uFF08\u6BCF\u4E2A\u8D26\u53F7\u53EF\u4EE5\u6539\u4E00\u6B21\uFF09\uFF0C\u518D\u56DE\u6765\u516C\u5F00\u3002","profile.blocked.publishBlocked":"\u8FD9\u4E2A\u4E3B\u9875\u5DF2\u88AB\u7BA1\u7406\u5458\u505C\u6B62\u516C\u5F00\u3002\u6709\u7591\u95EE\u8BF7\u901A\u8FC7\u300C\u53CD\u9988\u300D\u8054\u7CFB\u6211\u4EEC\u3002","profile.goRename":"\u53BB\u6539\u7528\u6237\u540D","profile.invalid":"\u8FD9\u9879\u5185\u5BB9\u6CA1\u80FD\u4FDD\u5B58\uFF0C\u8BF7\u68C0\u67E5\u540E\u518D\u8BD5","guide.title":"\u4F7F\u7528\u6307\u5357","guide.readOnly":"\u53EA\u8BFB","guide.more":"\u66F4\u591A","guide.unlockAll":"\u5168\u90E8\u89E3\u9501","guide.relock":"\u6539\u56DE\u6309\u7B49\u7EA7\u89E3\u9501","guide.reminders":"\u4F7F\u7528\u6307\u5357\u63D0\u9192","guide.spotlight":"\u73B0\u573A\u6307\u5F15","guide.spotStep":"\u7B2C {n} \u6B65\uFF0C\u5171 {total} \u6B65","guide.figure":"\u793A\u610F\u56FE","guide.openAchievements":"\u6253\u5F00\u6210\u5C31","guide.tasks":"\u672C\u7AE0\u4EFB\u52A1","guide.go":"\u5E26\u6211\u53BB","guide.desktopOnly":"\u5728\u7535\u8111\u4E0A\u505A","guide.taskDone":"\u5DF2\u5B8C\u6210","guide.askTangu":"\u95EE Tangu","guide.progress":"\u8FDB\u5EA6","guide.justUnlocked":"\u521A\u89E3\u9501","guide.lockedHint":"\u672A\u89E3\u9501","guide.whatsNew":"\u65B0\u7248\u672C \xB7 {version}","guide.level.lv1":"Lv.1 \u521D\u6765\u4E4D\u5230","guide.level.lv2":"Lv.2 \u719F\u95E8\u719F\u8DEF","guide.level.lv3":"Lv.3 \u5F97\u5FC3\u5E94\u624B","guide.level.lv4":"Lv.4 \u878D\u4F1A\u8D2F\u901A","guide.locked.title":"\u8FD9\u4E00\u7AE0\u8FD8\u6CA1\u89E3\u9501","guide.locked.body":"\u505A\u5B8C\u300C{level}\u300D\u7684\u4EFB\u52A1\u5C31\u80FD\u8BFB\u5168\u6587\u3002","guide.locked.left":"\u8FD8\u5DEE\u8FD9\u51E0\u9879\uFF1A","guide.locked.hint":"\u7528\u8FC7\u4E00\u9635\u4E86\uFF1F\u53F3\u4E0A\u89D2\u300C\xB7\xB7\xB7\u300D\u91CC\u53EF\u4EE5\u5168\u90E8\u89E3\u9501\u3002","guide.levelProgress":"\u672C\u7EA7\u8FDB\u5EA6 {done}/{total}","guide.next":"\u4E0B\u4E00\u7EA7","guide.allDone":"\u5168\u90E8\u5B8C\u6210","guide.allDoneBody":"\u6307\u5357\u91CC\u7684\u4EFB\u52A1\u90FD\u505A\u5B8C\u4E86\uFF0C\u968F\u65F6\u56DE\u6765\u7FFB\u770B\u3002","guide.review":"\u56DE\u770B","guide.ask.hint":"\u5BF9\u300C{chapter}\u300D\u6709\u7591\u95EE\uFF1F\u95EE Tangu \u4F1A\u5F00\u4E00\u4E2A\u5E26\u4E0A\u672C\u7AE0\u5185\u5BB9\u7684\u65B0\u5BF9\u8BDD\u3002","guide.ask.placeholder":"\u60F3\u95EE\u4EC0\u4E48\uFF1F","guide.ask.send":"\u5F00\u59CB\u5BF9\u8BDD","guide.ask.prompt":"\u6211\u6B63\u5728\u8BFB Forsion \u4F7F\u7528\u6307\u5357\u91CC\u300C{chapter}\u300D\u8FD9\u4E00\u7AE0\uFF0C\u5185\u5BB9\u9644\u5728\u4E0B\u9762\u3002{question}","guide.ask.unavailable":"\u8FD9\u91CC\u5F00\u4E0D\u4E86\u5BF9\u8BDD","guide.ask.chatTitle":"\u4F7F\u7528\u6307\u5357\u95EE\u7B54","guide.companion.back":"\u56DE\u5230\u6307\u5357","guide.companion.close":"\u6536\u8D77","guide.toast.taskDone":"\u5B8C\u6210\uFF1A{task}","guide.letter.levelTitle":"{level} \u5DF2\u89E3\u9501\uFF1A\u63A5\u4E0B\u6765\u8BD5\u8BD5\u8FD9\u51E0\u4EF6\u4E8B","guide.letter.levelBody":"\u4E0A\u4E00\u7EA7\u7684\u4EFB\u52A1\u90FD\u505A\u5B8C\u4E86\uFF0C\u4E0B\u9762\u8FD9\u51E0\u7AE0\u73B0\u5728\u53EF\u4EE5\u8BFB\u4E86\u3002\u6BCF\u9879\u4EFB\u52A1\u90FD\u80FD\u300C\u5E26\u6211\u53BB\u300D\u3002","guide.letter.versionTitle":"{version} \u6709 {n} \u4EF6\u65B0\u4E1C\u897F\u53EF\u4EE5\u4F53\u9A8C","guide.letter.versionBody":"\u8FD9\u4E2A\u7248\u672C\u65B0\u52A0\u7684\uFF0C\u53EF\u4EE5\u76F4\u63A5\u4E0A\u624B\uFF1A","guide.letter.open":"\u6253\u5F00\u6307\u5357","guide.status.done":"\u5DF2\u5B8C\u6210","guide.cmd.open":"\u6253\u5F00\u4F7F\u7528\u6307\u5357","penzor.title":"\u84EC\u6D32\u4E91","penzor.overview":"\u6982\u89C8","penzor.places":"\u4F4D\u7F6E","penzor.details":"\u8BE6\u60C5","penzor.ledger.sync":"\u667A\u5E93\u540C\u6B65","penzor.ledger.ama":"Amadeus Cloud","penzor.ledger.apps":"\u5E94\u7528\u6587\u4EF6","penzor.ledger.exports":"\u5BFC\u51FA","penzor.trash":"\u56DE\u6536\u7AD9","penzor.items":"{n} \u9879","penzor.total.sub":"\u5B58\u5728 Forsion \u4E91\u7AEF \xB7 {time}\u66F4\u65B0","penzor.justNow":"\u521A\u521A","penzor.ofMax":"/ {max}","penzor.card.syncSub":"{n} \u4E2A\u5E93 \xB7 \u4E0A\u6B21\u5199\u5165 {time}","penzor.card.syncSubNone":"{n} \u4E2A\u5E93","penzor.card.syncFoot":"\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7 {size} \u4E0D\u4E0A\u4F20","penzor.card.syncWarn":"\u5FEB\u6EE1\u4E86\uFF1A\u6EE1 {max} \u540E\u65B0\u6587\u4EF6\u4E0D\u518D\u4E0A\u4F20\uFF0C\u5DF2\u5728\u4E91\u7AEF\u7684\u7167\u5E38\u540C\u6B65","penzor.card.amaSmall":"\u4E0D\u7B97\u5728\u989D\u5EA6\u91CC","penzor.card.amaSub":"{n} \u4E2A\u4E91\u7AEF\u667A\u5E93","penzor.card.amaFoot":"\u7B14\u8BB0\u548C\u9644\u4EF6\u5728 Amadeus \u7684 Cloud \u4FA7","penzor.card.appsFoot":"\u56DE\u6536\u7AD9 {n} \u9879 \xB7 {size}","penzor.card.appsWarn":"\u5FEB\u6EE1\u4E86\uFF1A\u6EE1 {max} \u540E\u5E94\u7528\u4E0D\u80FD\u518D\u5B58\u65B0\u6587\u4EF6\uFF1B\u56DE\u6536\u7AD9\u91CC\u7684\u4E5F\u7B97\uFF0C\u6E05\u7A7A\u80FD\u817E\u51FA\u7A7A\u95F4","penzor.card.expSmall":"{n} \u4E2A\u6587\u4EF6","penzor.card.expSub":"\u6700\u8FD1\uFF1A{name} \xB7 {time}","penzor.card.expFoot":"\u5404\u5E94\u7528\u5BFC\u51FA\u7684\u6587\u4EF6","penzor.card.none":"\u8FD8\u6CA1\u6709\u4E1C\u897F","penzor.largest":"\u5360\u7528\u6700\u591A","penzor.col.name":"\u540D\u79F0","penzor.col.size":"\u5927\u5C0F","penzor.col.mtime":"\u4FEE\u6539\u65F6\u95F4","penzor.col.device":"\u5199\u5165\u8BBE\u5907","penzor.col.deleted":"\u5220\u9664\u4E8E","penzor.col.origin":"\u539F\u4F4D\u7F6E","penzor.col.app":"\u6765\u6E90","penzor.sort.mtime":"\u6309\u4FEE\u6539\u65F6\u95F4","penzor.sort.size":"\u6309\u5927\u5C0F","penzor.sort.name":"\u6309\u540D\u79F0","penzor.search":"\u641C\u7D22\u8FD9\u91CC\u7684\u6587\u4EF6\u540D","penzor.sync.thisDevice":"\u672C\u673A\u5728\u540C\u6B65","penzor.meta.files":"{size} \xB7 {n} \u4E2A\u6587\u4EF6","penzor.sync.last":"\u4E0A\u6B21\u5199\u5165 {time} \xB7 {device}","penzor.sync.lastNoDevice":"\u4E0A\u6B21\u5199\u5165 {time}","penzor.sync.devices":"{n} \u53F0\u8BBE\u5907\u540C\u6B65\u8FD9\u4E2A\u5E93","penzor.sync.meter":"\u667A\u5E93\u540C\u6B65\u5171\u7528 {max}\uFF0C\u5DF2\u7528 {used}","penzor.apps.meter":"\u5E94\u7528\u6587\u4EF6\u5171\u7528 {max}\uFF0C\u5DF2\u7528 {used}\uFF08\u56DE\u6536\u7AD9\u91CC\u7684\u4E5F\u7B97\uFF09","penzor.apps.by":"\u7531 {app} \u5199\u5165","penzor.ama.notCounted":"\u4E0D\u7B97\u5728\u989D\u5EA6\u91CC","penzor.ama.open":"\u5728 Amadeus \u4E2D\u6253\u5F00","penzor.hosted.open":"\u7BA1\u7406\u6211\u7684\u7F51\u9875","penzor.hosted.note":"\u8FD9\u662F\u5DF2\u53D1\u5E03\u7F51\u9875\u7684\u6587\u4EF6\u3002\u8981\u6539\u5185\u5BB9\u8BF7\u91CD\u65B0\u53D1\u5E03\uFF0C\u8981\u5220\u9664\u8BF7\u5230\u300C\u6211\u7684\u7F51\u9875\u300D\u4E0B\u7EBF\u3002","penzor.trash.meta":"{n} \u9879 \xB7 {size}","penzor.trash.note":"\u6C38\u4E45\u5220\u9664\u540E\u624D\u817E\u51FA\u7A7A\u95F4","penzor.trash.emptyBtn":"\u6E05\u7A7A\u56DE\u6536\u7AD9","penzor.act.download":"\u4E0B\u8F7D","penzor.act.rename":"\u91CD\u547D\u540D","penzor.act.move":"\u79FB\u52A8\u5230\u2026","penzor.act.trash":"\u79FB\u5230\u56DE\u6536\u7AD9","penzor.act.delete":"\u5220\u9664","penzor.act.restore":"\u6062\u590D","penzor.act.purge":"\u6C38\u4E45\u5220\u9664","penzor.act.copyName":"\u590D\u5236\u5E93\u540D","penzor.act.openSync":"\u5728\u8BBE\u7F6E\u4E2D\u6253\u5F00\u540C\u6B65","penzor.act.refresh":"\u5237\u65B0","penzor.act.up":"\u4E0A\u4E00\u7EA7","penzor.toast.trashed":"\u5DF2\u628A\u300C{name}\u300D\u79FB\u5230\u56DE\u6536\u7AD9","penzor.toast.restored":"\u5DF2\u6062\u590D\u300C{name}\u300D","penzor.toast.purged":"\u5DF2\u6C38\u4E45\u5220\u9664\u300C{name}\u300D","penzor.toast.emptied":"\u5DF2\u6E05\u7A7A\u56DE\u6536\u7AD9","penzor.toast.downloaded":"\u5DF2\u5B58\u5230\u300C\u4E0B\u8F7D\u300D\uFF1A{name}","penzor.toast.renamed":"\u5DF2\u6539\u540D\u4E3A\u300C{name}\u300D","penzor.toast.moved":"\u5DF2\u79FB\u5230\u300C{name}\u300D","penzor.toast.versionRestored":"\u5DF2\u6062\u590D\u5230\u7B2C {n} \u7248","penzor.toast.copied":"\u5DF2\u590D\u5236\u5E93\u540D","penzor.toast.failed":"\u6CA1\u6210\u529F\uFF1A{reason}","penzor.confirm.purge":"\u6C38\u4E45\u5220\u9664\u300C{name}\u300D\uFF1F\u5220\u4E86\u5C31\u627E\u4E0D\u56DE\u6765\u4E86\u3002","penzor.confirm.empty":"\u6E05\u7A7A\u56DE\u6536\u7AD9\uFF1F{n} \u9879\u4F1A\u88AB\u6C38\u4E45\u5220\u9664\uFF0C\u627E\u4E0D\u56DE\u6765\u3002","penzor.confirm.deleteExport":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5BFC\u51FA\u7684\u6587\u4EF6\u6CA1\u6709\u56DE\u6536\u7AD9\uFF0C\u5220\u4E86\u5C31\u627E\u4E0D\u56DE\u6765\u4E86\u3002","penzor.cancel":"\u53D6\u6D88","penzor.side.where":"\u4F4D\u7F6E","penzor.side.mtime":"\u4FEE\u6539","penzor.side.device":"\u5199\u5165\u8BBE\u5907","penzor.side.thisDevice":"{name}\uFF08\u672C\u673A\uFF09","penzor.side.from":"\u6765\u6E90","penzor.side.versions":"\u5386\u53F2\u7248\u672C","penzor.side.versionsNone":"\u6CA1\u6709","penzor.side.versionRow":"\u7B2C {n} \u7248 \xB7 {time} \xB7 {size}","penzor.side.restoreVersion":"\u6062\u590D\u8FD9\u4E00\u7248","penzor.side.deletedAt":"\u5220\u9664\u4E8E","penzor.side.origin":"\u539F\u4F4D\u7F6E","penzor.side.inner":"\u91CC\u9762\u8FD8\u6709 {n} \u9879\uFF0C\u6062\u590D\u65F6\u4E00\u8D77\u56DE\u6765","penzor.side.inTrash":"\u5728\u56DE\u6536\u7AD9 \xB7 {size}","penzor.side.readonlySync":"\u540C\u6B65\u5E93\u91CC\u7684\u6587\u4EF6\u53EA\u5728\u8BBE\u5907\u4E0A\u5220\u6539\u3002\u5728\u8FD9\u91CC\u5220\u6389\u4E00\u4E2A\u6587\u4EF6\uFF0C\u6BCF\u53F0\u540C\u6B65 {vault} \u7684\u8BBE\u5907\u4E0B\u6B21\u540C\u6B65\u65F6\u90FD\u4F1A\u8DDF\u7740\u5220\u6389\uFF0C\u6240\u4EE5\u8FD9\u91CC\u53EA\u80FD\u770B\u548C\u4E0B\u8F7D\u3002","penzor.side.readonlyAma":"\u7B14\u8BB0\u548C\u9644\u4EF6\u5728 Amadeus \u91CC\u6539\u3002\u5728\u8FD9\u91CC\u5220\u6389\u4E00\u4E2A\u9644\u4EF6\uFF0C\u5F15\u7528\u5B83\u7684\u7B14\u8BB0\u4F1A\u7F3A\u56FE\uFF0C\u6240\u4EE5\u8FD9\u91CC\u53EA\u80FD\u770B\u548C\u4E0B\u8F7D\u3002","penzor.side.exportNote":"\u5BFC\u51FA\u7684\u6587\u4EF6\u6CA1\u6709\u56DE\u6536\u7AD9\uFF1A\u5220\u9664\u5C31\u662F\u6C38\u4E45\u5220\u9664\u3002","penzor.side.none":"\u9009\u4E00\u4E2A\u6587\u4EF6\u770B\u8BE6\u60C5","penzor.side.folder":"\u6587\u4EF6\u5939 \xB7 {n} \u9879","penzor.side.folderPlain":"\u6587\u4EF6\u5939","penzor.move.title":"\u79FB\u5230\u54EA\u91CC","penzor.move.root":"{app} \u6700\u4E0A\u5C42","penzor.move.here":"\u79FB\u5230\u8FD9\u91CC","penzor.move.noFolders":"\u8FD9\u4E00\u5C42\u6CA1\u6709\u6587\u4EF6\u5939","penzor.rename.save":"\u4FDD\u5B58","penzor.empty.title":"\u84EC\u6D32\u4E91\u91CC\u8FD8\u6CA1\u6709\u4E1C\u897F","penzor.empty.lead":"\u8FD9\u4E9B\u4E1C\u897F\u5B58\u8FDB\u4E91\u7AEF\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\uFF1A","penzor.empty.sync":"\u5728\u300C\u8BBE\u7F6E \u203A \u540C\u6B65\u300D\u91CC\u628A\u8FDC\u7A0B\u670D\u52A1\u9009\u6210\u300C\u84EC\u6D32\u4E91\u300D\uFF0C\u672C\u5730\u667A\u5E93\u5C31\u540C\u6B65\u5230\u8FD9\u91CC","penzor.empty.ama":"Amadeus \u5207\u5230 Cloud \u4FA7\u5199\u7684\u7B14\u8BB0","penzor.empty.apps":"\u5404\u5E94\u7528\u5B58\u5230\u4E91\u7AEF\u6216\u5BFC\u51FA\u7684\u6587\u4EF6","penzor.empty.openSync":"\u6253\u5F00\u540C\u6B65\u8BBE\u7F6E","penzor.out.title":"\u767B\u5F55\u540E\u67E5\u770B\u4F60\u7684\u84EC\u6D32\u4E91","penzor.out.lead":"\u84EC\u6D32\u4E91\u653E\u7740\u4F60\u540C\u6B65\u5230 Forsion \u4E91\u7AEF\u7684\u5E93\u3001Amadeus Cloud \u7684\u7B14\u8BB0\uFF0C\u548C\u5404\u5E94\u7528\u5B58\u5728\u4E91\u7AEF\u7684\u6587\u4EF6\u3002","penzor.out.signIn":"\u767B\u5F55 Forsion \u8D26\u53F7","penzor.loading":"\u6B63\u5728\u8BFB\u53D6\u2026","penzor.err":"\u6CA1\u8BFB\u5230\uFF1A{reason}","penzor.folderEmpty":"\u8FD9\u91CC\u6CA1\u6709\u6587\u4EF6","penzor.noMatch":"\u6CA1\u6709\u540D\u5B57\u91CC\u5E26\u300C{q}\u300D\u7684\u6587\u4EF6","penzor.cmd.open":"\u6253\u5F00\u84EC\u6D32\u4E91","penzor.unreachable":"\u8FDE\u4E0D\u4E0A Forsion \u4E91\u7AEF\uFF0C\u7A0D\u540E\u518D\u8BD5","penzor.toast.emptyPartial":"\u56DE\u6536\u7AD9\u91CC\u8FD8\u6709 {n} \u9879\u6CA1\u5220\u6389","penzor.sort.deleted":"\u6309\u5220\u9664\u65F6\u95F4","penzor.side.versionsN":"{n} \u4E2A","penzor.drive":"\u6211\u7684\u4E91\u76D8","penzor.drive.meta":"\u7B97\u5728\u5E94\u7528\u6587\u4EF6\u7684 {max} \u91CC","penzor.drive.empty":"\u8FD9\u91CC\u8FD8\u7A7A\u7740\u3002\u628A\u6587\u4EF6\u62D6\u8FDB\u6765\uFF0C\u6216\u8005\u70B9\u300C\u4E0A\u4F20\u300D\u3002","penzor.act.upload":"\u4E0A\u4F20","penzor.act.uploadMore":"\u66F4\u591A\u4E0A\u4F20\u65B9\u5F0F","penzor.act.uploadFiles":"\u4E0A\u4F20\u6587\u4EF6\u2026","penzor.act.uploadFolder":"\u4E0A\u4F20\u6587\u4EF6\u5939\u2026","penzor.act.uploadHere":"\u4E0A\u4F20\u5230\u8FD9\u91CC\u2026","penzor.act.newFolder":"\u65B0\u5EFA\u6587\u4EF6\u5939","penzor.act.clearSel":"\u53D6\u6D88\u9009\u62E9","penzor.newFolder.default":"\u65B0\u5EFA\u6587\u4EF6\u5939","penzor.sel.bar":"\u5DF2\u9009 {n} \u9879 \xB7 {size}","penzor.sel.title":"\u5DF2\u9009 {n} \u9879","penzor.sel.sub":"{size} \xB7 {files} \u4E2A\u6587\u4EF6","penzor.sel.subDirs":"{size} \xB7 {files} \u4E2A\u6587\u4EF6\u3001{dirs} \u4E2A\u6587\u4EF6\u5939","penzor.sel.download":"\u4E0B\u8F7D {n} \u9879","penzor.sel.saveTo":"\u4E0B\u8F7D\u5230","penzor.sel.saveToValue":"\u4E0B\u8F7D / {folder}","penzor.sel.noDirs":"\u6587\u4EF6\u5939\u8FD9\u4E00\u7248\u8FD8\u4E0D\u80FD\u4E0B\u8F7D\uFF0C\u53EA\u4E0B\u8F7D\u9009\u4E2D\u7684\u6587\u4EF6\u3002","penzor.download.folder":"\u84EC\u6D32\u4E91 {date}","penzor.drop.to":"\u677E\u624B\u4E0A\u4F20\u5230\u300C{place}\u300D","penzor.tx.busy":"\u6B63\u5728\u4F20\u8F93 {n} \u9879","penzor.tx.allDone":"\u5168\u90E8\u4F20\u5B8C","penzor.tx.failedN":"{n} \u9879\u6CA1\u4F20\u5B8C","penzor.tx.counts":"\u4E0A\u4F20 {up} \xB7 \u4E0B\u8F7D {down}","penzor.tx.eta":"\u5269\u7EA6 {eta}","penzor.tx.doneN":"{n} \u9879\u5DF2\u4F20\u5B8C","penzor.tx.restDone":"\u5176\u4F59 {n} \u9879\u5DF2\u4F20\u5B8C","penzor.tx.pill":"{counts} \xB7 {pct}%","penzor.tx.queued":"\u6392\u961F\u4E2D","penzor.tx.paused":"\u5DF2\u6682\u505C \xB7 \u7EE7\u7EED\u4F1A\u4ECE\u5934\u4F20","penzor.tx.uploaded":"\u5DF2\u4E0A\u4F20 \xB7 {time}","penzor.tx.downloaded":"\u5DF2\u4E0B\u8F7D \xB7 {time}","penzor.tx.canceled":"\u5DF2\u53D6\u6D88","penzor.tx.left":"\u5269 {eta}","penzor.tx.sec":"{n} \u79D2","penzor.tx.min":"{n} \u5206\u949F","penzor.tx.pause":"\u6682\u505C","penzor.tx.resume":"\u7EE7\u7EED","penzor.tx.cancel":"\u53D6\u6D88","penzor.tx.retry":"\u91CD\u8BD5","penzor.tx.remove":"\u79FB\u9664","penzor.tx.locate":"\u5B9A\u4F4D","penzor.tx.reveal":"\u5728\u6587\u4EF6\u5939\u4E2D\u663E\u793A","penzor.tx.pauseAll":"\u5168\u90E8\u6682\u505C","penzor.tx.resumeAll":"\u5168\u90E8\u7EE7\u7EED","penzor.tx.retryAll":"\u5168\u90E8\u91CD\u8BD5","penzor.tx.clearDone":"\u6E05\u9664\u5DF2\u5B8C\u6210","penzor.tx.clear":"\u6E05\u9664","penzor.tx.collapse":"\u6536\u8D77","penzor.tx.expand":"\u5C55\u5F00\u4F20\u8F93\u5217\u8868","penzor.tx.quota":"\u7A7A\u95F4\u4E0D\u591F\uFF0C\u8FD8\u5DEE {size}","penzor.tx.quotaSub":"\u8FD9\u4E00\u6279\u4E00\u4E2A\u90FD\u6CA1\u5F00\u59CB\u4F20","penzor.tx.freeSpace":"\u53BB\u56DE\u6536\u7AD9\u817E\u5730\u65B9","penzor.err.too_large":"\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7 50 MB\uFF08\u8FD9\u4E2A {size}\uFF09\uFF0C\u8FD9\u4E00\u7248\u4F20\u4E0D\u4E86","penzor.err.quota":"\u4E91\u7AEF\u7A7A\u95F4\u4E0D\u591F","penzor.err.network":"\u7F51\u7EDC\u65AD\u4E86\uFF0C\u4F20\u5230 {pct}% \u505C\u4E0B","penzor.err.account_changed":"\u6362\u4E86\u8D26\u53F7\uFF0C\u8FD9\u4E00\u9879\u6CA1\u6709\u63A5\u7740\u4F20","penzor.err.download_unavailable":"\u6B64\u5BBF\u4E3B\u6682\u4E0D\u652F\u6301\u4FDD\u5B58\u4E0B\u8F7D\uFF0C\u8BF7\u66F4\u65B0 Forsion","penzor.err.download_failed":"\u6587\u4EF6\u672A\u4FDD\u5B58\uFF0C\u8BF7\u91CD\u8BD5\u4E0B\u8F7D","penzor.err.not_signed_in":"\u6CA1\u767B\u5F55","penzor.err.gone":"\u672C\u673A\u4E0A\u627E\u4E0D\u5230\u8FD9\u4E2A\u6587\u4EF6\u4E86","penzor.err.popup_blocked":"\u6D4F\u89C8\u5668\u62E6\u4E0B\u4E86\u65B0\u6807\u7B7E\u9875\uFF0C\u5141\u8BB8\u672C\u7AD9\u5F39\u51FA\u7A97\u53E3\u540E\u518D\u8BD5\u4E00\u6B21","penzor.err.changed":"\u4F20\u7684\u65F6\u5019\u6587\u4EF6\u6539\u52A8\u4E86\uFF0C\u91CD\u8BD5\u4E00\u6B21","penzor.err.storage_unavailable":"\u4E91\u7AEF\u5B58\u50A8\u6682\u65F6\u4E0D\u53EF\u7528","penzor.err.other":"\u6CA1\u4F20\u5B8C\uFF08{code}\uFF09","penzor.err.too_many":"\u4E00\u6B21\u6700\u591A {n} \u4E2A\u6587\u4EF6\uFF0C\u5206\u51E0\u6B21\u62D6\u8FDB\u6765","penzor.toast.upDoneOne":"\u5DF2\u4E0A\u4F20\u300C{name}\u300D","penzor.toast.upDoneMany":"\u5DF2\u4E0A\u4F20 {n} \u4E2A\u6587\u4EF6","penzor.toast.downDoneMany":"\u5DF2\u4E0B\u8F7D {n} \u4E2A\u6587\u4EF6\u5230\u300C\u4E0B\u8F7D\u300D","penzor.toast.txFailed":"{n} \u9879\u6CA1\u4F20\u5B8C\uFF0C\u56DE\u84EC\u6D32\u4E91\u770B\u770B","penzor.toast.folderExists":"\u5DF2\u7ECF\u6709\u53EB\u300C{name}\u300D\u7684\u6587\u4EF6\u5939\u4E86","penzor.toast.trashedN":"\u5DF2\u628A {n} \u9879\u79FB\u5230\u56DE\u6536\u7AD9","penzor.toast.movedN":"\u5DF2\u628A {n} \u9879\u79FB\u5230\u300C{name}\u300D","penzor.toast.batchPartial":"\u6709 {n} \u9879\u6CA1\u6210\u529F","penzor.sync.title":"\u540C\u6B65","penzor.sync.onN":"{n} \u9879\u5DF2\u5F00","penzor.sync.allOff":"\u90FD\u6CA1\u5F00","penzor.sync.waiting":"\u7B49\u4F60\u51B3\u5B9A","penzor.sync.badgeWaiting":"{n} \u9879\u5DF2\u5F00 \xB7 1 \u9879\u7B49\u4F60\u51B3\u5B9A","penzor.sync.running":"\u540C\u6B65\u4E2D {pct}%","penzor.sync.runningPlain":"\u540C\u6B65\u4E2D","penzor.sync.metaDevice":"\u8FD9\u53F0 {name}","penzor.sync.metaLast":"\u4E0A\u6B21\u540C\u6B65 {time}","penzor.sync.metaNever":"\u8FD8\u6CA1\u540C\u6B65\u8FC7","penzor.sync.every":"\u6BCF {n} \u5206\u949F","penzor.sync.everyHours":"\u6BCF {n} \u5C0F\u65F6","penzor.sync.manual":"\u624B\u52A8","penzor.sync.onStart":"\u5F00\u673A\u65F6\u4E00\u6B21","penzor.sync.minAgo":"{n} \u5206\u949F\u524D","penzor.sync.hoursAgo":"{n} \u5C0F\u65F6\u524D","penzor.sync.notesNamed":"\u667A\u5E93\u300C{name}\u300D","penzor.sync.notesPlain":"\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93","penzor.sync.notesDesc":"\u6574\u4E2A\u672C\u673A\u667A\u5E93\uFF0C\u548C\u4F60\u7684\u5176\u4ED6\u7535\u8111\u4FDD\u6301\u4E00\u81F4","penzor.sync.agents":"Agents \u4E0E\u8BB0\u5FC6","penzor.sync.agentsDesc":"Agents \u7684\u8BB0\u5FC6\u3001\u65E5\u5FD7\u3001\u6280\u80FD\u548C\u534F\u4F5C\u8BF4\u660E\uFF0C\u8FD8\u6709\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.sync.conflictsN":"{n} \u4E2A\u51B2\u7A81\u526F\u672C","penzor.sync.conflictsHint":"\u4E24\u8FB9\u90FD\u6539\u8FC7\u7684\u6587\u4EF6\u4E24\u4EFD\u90FD\u7559\u7740\uFF1A\u53E6\u4E00\u4EFD\u5B58\u6210\u6587\u4EF6\u540D\u5E26\u300Cconflict\u300D\u7684\u526F\u672C\uFF0C\u5728\u5BF9\u5E94 Agent \u7684\u6587\u4EF6\u5939\uFF08\u6216\u4F60\u7684\u8D44\u6599\u6587\u4EF6\u5939\uFF09\u91CC","penzor.sync.pluginsPending":"{n} \u4E2A\u63D2\u4EF6\u7684\u6539\u52A8\u8FD8\u6CA1\u4F20\u4E0A\u53BB","penzor.sync.agentsN":"{n} \u4E2A Agent","penzor.sync.plugins":"\u63D2\u4EF6\u6570\u636E","penzor.sync.pluginsDesc":"\u63D2\u4EF6\u81EA\u5DF1\u5B58\u7684\u8BBE\u7F6E\u548C\u6570\u636E","penzor.sync.pluginsN":"{n} \u4E2A\u63D2\u4EF6","penzor.sync.off":"\u6CA1\u5F00","penzor.sync.done":"\u5DF2\u540C\u6B65","penzor.sync.doneSize":"\u5DF2\u540C\u6B65 \xB7 {size}","penzor.sync.firstPending":"\u7B49\u7B2C\u4E00\u6B21\u540C\u6B65","penzor.sync.failed":"\u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.sync.overQuota":"\u8D85\u51FA\u989D\u5EA6\uFF0C\u6709\u7684\u6CA1\u4F20","penzor.sync.to":"\u540C\u6B65\u5230 {name}","penzor.sync.toFolder":"\u540C\u6B65\u5230\u672C\u673A\u6587\u4EF6\u5939","penzor.sync.decideAbove":"\u5728\u4E0A\u9762\u90A3\u5F20\u5361\u91CC\u9009","penzor.sync.kvSchedule":"\u540C\u6B65\u8BA1\u5212","penzor.sync.kvDirection":"\u65B9\u5411","penzor.sync.kvSkipped":"\u6CA1\u4F20\u7684","penzor.sync.kvWhere":"\u4E91\u7AEF\u4F4D\u7F6E","penzor.sync.change":"\u6539","penzor.sync.open":"\u6253\u5F00","penzor.sync.dir.both":"\u53CC\u5411","penzor.sync.dir.push":"\u4EC5\u4E0A\u4F20","penzor.sync.dir.pull":"\u4EC5\u4E0B\u8F7D","penzor.sync.skippedN":"{n} \u4E2A\u8D85\u8FC7 {size} \u7684\u6587\u4EF6","penzor.sync.where":"{ledger} \u203A {vault}","penzor.sync.whereUsed":"{ledger} \u203A {vault} \xB7 {used} / {max}","penzor.sync.devicesTitle":"\u5728\u540C\u6B65\u7684\u8BBE\u5907","penzor.sync.thisOne":"\u8FD9\u53F0","penzor.sync.lastWrite":"\u4E0A\u6B21\u5199\u5165 {time}","penzor.sync.noDevices":"\u8FD8\u6CA1\u6709\u8BBE\u5907\u5728\u540C\u6B65","penzor.sync.phoneTitle":"\u624B\u673A\u548C\u7F51\u9875\u770B\u5230\u7684\u90A3\u4E00\u4EFD","penzor.sync.phoneTip":"\u624B\u673A\u548C\u7F51\u9875\u76F4\u63A5\u8BFB\u300C\u4E91\u7AEF\u667A\u5E93\u300D\uFF08Amadeus \u7684\u4E91\u7AEF\u4FA7\uFF0C{size}\uFF09\uFF0C\u5B83\u4E00\u76F4\u5728\u540C\u6B65\uFF0C\u548C\u4E0A\u9762\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93\u662F\u4E24\u4EFD\u3002\u60F3\u5728\u624B\u673A\u4E0A\u770B\u8FD9\u53F0\u7684\u67D0\u4E2A\u6587\u4EF6\u5939\uFF1A\u5728\u7B14\u8BB0\u91CC\u53F3\u952E\u90A3\u4E2A\u6587\u4EF6\u5939\uFF0C\u628A\u5B83\u540C\u6B65\u5230\u4E91\u7AEF\u667A\u5E93\u3002","penzor.sync.phoneTipPlain":"\u624B\u673A\u548C\u7F51\u9875\u76F4\u63A5\u8BFB\u300C\u4E91\u7AEF\u667A\u5E93\u300D\uFF08Amadeus \u7684\u4E91\u7AEF\u4FA7\uFF09\uFF0C\u5B83\u4E00\u76F4\u5728\u540C\u6B65\uFF0C\u548C\u4E0A\u9762\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93\u662F\u4E24\u4EFD\u3002\u60F3\u5728\u624B\u673A\u4E0A\u770B\u8FD9\u53F0\u7684\u67D0\u4E2A\u6587\u4EF6\u5939\uFF1A\u5728\u7B14\u8BB0\u91CC\u53F3\u952E\u90A3\u4E2A\u6587\u4EF6\u5939\uFF0C\u628A\u5B83\u540C\u6B65\u5230\u4E91\u7AEF\u667A\u5E93\u3002","penzor.sync.foot":"\u540C\u6B65\u8BA1\u5212\u3001\u65B9\u5411\u548C\u5176\u4ED6\u5B58\u50A8\uFF08Dropbox / S3 / WebDAV\uFF09\u5728","penzor.sync.footLink":"\u8BBE\u7F6E \u203A \u540C\u6B65","penzor.sync.askTitle":"\u4E91\u7AEF\u5DF2\u7ECF\u6709\u4E00\u4EFD\u667A\u5E93","penzor.sync.askCloud":"\u4E91\u7AEF\u90A3\u4EFD\u6765\u81EA {device}\uFF1A{files} \u4E2A\u6587\u4EF6 \xB7 {size}\u3002","penzor.sync.askCloudNoDevice":"\u4E91\u7AEF\u90A3\u4EFD\uFF1A{files} \u4E2A\u6587\u4EF6 \xB7 {size}\u3002","penzor.sync.askLocal":"\u8FD9\u53F0\u6709 {local} \u4E2A\u6587\u4EF6\u4E91\u7AEF\u6CA1\u6709\uFF0C{conflicts} \u4E2A\u4E24\u8FB9\u5185\u5BB9\u4E0D\u540C\u3002","penzor.sync.askMerge":"\u5408\u5E76\u4E24\u8FB9","penzor.sync.askCloudBtn":"\u7528\u4E91\u7AEF\u90A3\u4EFD","penzor.sync.askSkip":"\u8FD9\u53F0\u5148\u4E0D\u540C\u6B65\u667A\u5E93","penzor.sync.askExplain":"\u5408\u5E76\uFF1A\u4E24\u8FB9\u90FD\u7559\u7740\uFF0C\u5185\u5BB9\u4E0D\u540C\u7684\u53E6\u5B58\u4E00\u4EFD\u300C\uFF08\u51B2\u7A81\uFF09\u300D\u3002\u7528\u4E91\u7AEF\u90A3\u4EFD\uFF1A\u8FD9\u53F0\u548C\u4E91\u7AEF\u4E0D\u4E00\u6837\u7684\u6587\u4EF6\u5148\u632A\u8FDB\u65C1\u8FB9\u7684\u300C{backup}\u300D\u6587\u4EF6\u5939\uFF0C\u518D\u4E0B\u8F7D\u4E91\u7AEF\u90A3\u4EFD\u3002","penzor.sync.askConfirm":"\u8FD9\u53F0\u548C\u4E91\u7AEF\u4E0D\u4E00\u6837\u7684\u6587\u4EF6\u4F1A\u5148\u632A\u8FDB\u300C{backup}\u300D\uFF0C\u518D\u6362\u6210\u4E91\u7AEF\u90A3\u4EFD\u3002","penzor.sync.askConfirmGo":"\u632A\u8D70\u5E76\u7528\u4E91\u7AEF\u90A3\u4EFD","penzor.sync.backupName":"{name} \u540C\u6B65\u524D\u5907\u4EFD {date}","penzor.sync.quotaTitle":"\u667A\u5E93 {size}\uFF0C\u8D85\u8FC7\u4E86\u300C{ledger}\u300D\u7684 {max} \u4E0A\u9650","penzor.sync.quotaTitlePlain":"\u667A\u5E93\u8D85\u8FC7\u4E86\u300C{ledger}\u300D\u7684\u4E0A\u9650","penzor.sync.quotaBody":"\u653E\u4E0D\u4E0B\u7684\u6587\u4EF6\u7559\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\uFF0C\u6CA1\u6709\u5220\uFF0C\u4E5F\u6CA1\u6709\u4F20\uFF1B\u5176\u4F59\u51E0\u9879\u7167\u5E38\u540C\u6B65\u3002","penzor.sync.quotaLarge":"\u8D85\u8FC7 {size} \u7684\u5355\u4E2A\u6587\u4EF6\u4E00\u76F4\u4E0D\u4F20\uFF08{n} \u4E2A\uFF09\u3002","penzor.sync.quotaSee":"\u770B\u770B\u6CA1\u4F20\u7684\u6587\u4EF6","su.title":"\u5546\u5E97\u66F4\u65B0","su.source.github":"GitHub \u6765\u6E90","su.source.npm":"npm \u6765\u6E90","su.source.zip":"ZIP \u4E0A\u4F20","su.review":"\u5F85\u5BA1\u6838","su.approved":"\u5DF2\u901A\u8FC7","su.rejected":"\u6CA1\u901A\u8FC7","su.viaGithub":"GitHub Release {tag}","su.viaNpm":"npm {version}","su.metaReview":"{time} \u63D0\u4EA4 \xB7 \u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u6536\u4EF6\u7BB1","su.metaReviewNoTime":"\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u6536\u4EF6\u7BB1","su.metaApproved":"\u5546\u5E97\u73B0\u5728\u663E\u793A {version}","su.metaApprovedInfo":"\u5546\u5E97\u4FE1\u606F\u5DF2\u66F4\u65B0","su.metaRejected":"\u5546\u5E97\u7167\u65E7\u663E\u793A {version}","su.metaRejectedUnlisted":"\u8FD8\u6CA1\u6709\u4E0A\u67B6","su.infoOnly":"\u53EA\u6539\u5546\u5E97\u4FE1\u606F","su.listSep":"\u3001","su.openSubmission":"\u5728\u6295\u7A3F\u4E2D\u67E5\u770B","wc.title":"\u7F51\u9875","wc.pill.published":"\u5DF2\u53D1\u5E03","wc.pill.live":"\u5DF2\u4E0A\u7EBF","wc.pill.review":"\u4E0A\u67B6\u5BA1\u6838\u4E2D","wc.pill.listed":"\u5DF2\u4E0A\u67B6","wc.pill.rejected":"\u4E0A\u67B6\u672A\u901A\u8FC7","wc.pill.gone":"\u5DF2\u4E0B\u7EBF","wc.justPublished":"\u521A\u521A\u53D1\u5E03","wc.anyone":"\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00","wc.open":"\u6253\u5F00","wc.viewInPages":"\u5728\u6211\u7684\u7F51\u9875\u4E2D\u67E5\u770B","wc.manage":"\u5728\u6211\u7684\u7F51\u9875\u4E2D\u7BA1\u7406","wc.total":"\u5DF2\u53D1\u5E03 {n} \u4E2A","wc.more":"\u8FD8\u6709 {n} \u4E2A","wc.unpublishTitle":"\u4E0B\u7EBF\u300C{name}\u300D\uFF1F","wc.unpublishBody":"\u94FE\u63A5\u4F1A\u5931\u6548\uFF0C\u7F51\u9875\u7684\u6587\u4EF6\u4E5F\u4F1A\u4ECE\u4E91\u76D8\u5220\u9664\u3002","wc.unpublishAgain":"\u518D\u70B9\u4E00\u6B21\u4E0B\u7EBF"},Og={"events.title":"Events","events.back":"Back to app","events.count":"{n} live","events.group.active":"Live","events.group.notice":"Notices","events.group.upcoming":"Coming up","events.ended":"Past events","events.endedEmpty":"No past events yet","events.list":"All events","events.kind.checkin":"Check-in","events.kind.tasks":"Quests","events.kind.game":"Mini game","events.kind.notice":"Notice","events.left.days":"{n}d left","events.left.hours":"{n}h left","events.left.long":"{d}d {h}h left","events.left.longHours":"{h}h left","events.time.start":"Starts {date}","events.time.claim":"Ended. Claim by {date}","events.time.claimShort":"Claim by {date}","events.time.ended":"Ended {date}","events.time.published":"Published {date}","events.rewards":"Rewards","events.checkin.signed":"{n} of {total} days","events.checkin.today":"Today","events.checkin.day":"Day {n}","events.checkin.do":"Check in","events.checkin.done":"Checked in today","events.checkin.finished":"All days complete","events.tasks.progress":"Progress","events.tasks.claim":"Claim","events.tasks.claimAll":"Claim all ({n})","events.tasks.go":"Go","events.tasks.closed":"Event ended","events.game.board":"Leaderboard","events.game.me":"You","events.game.anon":"Anonymous","events.game.enter":"Play","events.game.install":"Get it in the Store","events.game.empty":"No scores yet","events.notice.more":"Learn more","events.toast.checkin":"Checked in: {reward}","events.toast.claimed":"Claimed {reward}","events.toast.partial":"{n} claimed, {m} failed. Try again later","events.toast.backpack":"Open backpack","events.err.failed":"Not claimed. Try again when you're back online","events.err.notLive":"This event has ended","events.err.completed":"You've completed every day","events.err.grantFailed":"The reward didn't go through. It's logged for manual delivery, so there's no need to claim again","events.login.title":"Sign in to join events","events.login.do":"Sign in to Forsion","events.empty":"No events right now","events.error":"Couldn't load events","events.retry":"Try again","events.dot":"Rewards to claim or new events","penzor.rules.default":"Cloud default","penzor.rules.off":"Do not sync","penzor.rules.device":"Device","penzor.rules.run":"Sync now","penzor.rules.twoWay":"Two-way","penzor.rules.defaultForWeb":"The web uses the default folder","penzor.rules.tab.rules":"Sync rules","penzor.rules.tab.active":"Transfers","penzor.rules.tab.history":"History","penzor.rules.enable":"Enable content sync","penzor.rules.add":"Add rule","penzor.rules.source":"Local source","penzor.rules.destination":"Cloud destination","penzor.rules.direction":"Direction","penzor.rules.remove":"Remove rule","penzor.rules.inherit":"An empty path covers all of Forsion. Children inherit; the most specific path wins. Unmatched content stays on this device.","penzor.rules.namespace":"Default: Cloud /Forsion/. Device folders: Cloud /Forsion-deviceID/.","penzor.rules.human":"Choose human independently. The default calendar uses human/CALENDAR.db. A device destination does not replace the web default.","penzor.rules.preview":"Preview changes","penzor.rules.previewTitle":"Review sync scope","penzor.rules.previewCounts":"Upload {up}, download {down}; {conflicts} existing items need merging or preserved versions.","penzor.rules.retain":"Previous destinations are retained. Turning sync off deletes no files. If sources change, preview again.","penzor.rules.back":"Back","penzor.rules.apply":"Confirm and start","penzor.rules.pause":"Pause","penzor.rules.resume":"Continue","penzor.rules.noActive":"No files are transferring.","penzor.rules.manual":"Manual uploads and downloads","penzor.rules.historyNote":"The latest 200 items. Conflicts preserve both versions; other content continues syncing.","penzor.rules.retry":"Retry failed items","penzor.rules.noHistory":"No sync history yet.","penzor.rules.details":"View transfers","penzor.rules.plugins":"Plugin data keeps its own sync management.","penzor.rules.turnOff":"Turn off plugin data sync","penzor.rules.turnOn":"Turn on plugin data sync","penzor.rules.phase.idle":"Waiting for the next sync","penzor.rules.phase.scanning":"Checking files","penzor.rules.phase.syncing":"Syncing","penzor.rules.phase.paused":"Paused","penzor.rules.state.queued":"Queued","penzor.rules.state.active":"Transferring","penzor.rules.state.done":"Done","penzor.rules.state.failed":"Failed","penzor.rules.state.paused":"Paused","penzor.rules.state.conflict":"Conflict versions preserved","penzor.tree.synced":"Synced","penzor.tree.thisBackup":"This computer \xB7 backup only","penzor.tree.byApp":"By app","penzor.tree.legacy":"Legacy vault sync","penzor.quota.sourceLimit":"This kind also has its own limit of {max}; {used} used","penzor.ov.mine":"Yours","penzor.ov.synced":"Synced from your devices","penzor.ov.stale":"No longer updated","penzor.ov.uploads":"Files you upload and organize; change them freely","penzor.ov.all":"Notes, agents, about me and plugins","penzor.ov.allLast":"Notes, agents, about me and plugins \xB7 last synced {time}","penzor.ov.self":"The copy only this computer uses","penzor.ov.device":"Shared only between this computer and that one","penzor.ov.agents":"Agent settings, memory and logs","penzor.ov.profile":"Your profile and default calendar","penzor.ov.sync":"Vaults your computers sync up","penzor.ov.legacy":"No longer written once this computer uses the new sync; kept, not deleted","penzor.ov.ama":"Notes from the web and synced notes","penzor.ov.apps":"Files your apps store; delete or rename them","penzor.ov.plugins":"Settings plugins store; usage only","penzor.ov.exports":"Exported files; download or delete them","penzor.ov.segNotes":"Notes","penzor.ov.segSync":"Device sync","penzor.ov.segOther":"Other","penzor.content.badge":"Kept by the new sync","penzor.content.badgeLast":"Kept by the new sync \xB7 last synced {time}","penzor.content.noteAll":"This is the cloud copy every signed-in device and the web see. To change files, edit them in Notes or Agents on a computer and they sync up; you can download them here.","penzor.content.noteSelf":"The copy only this computer uses; other devices don\u2019t see it. Change files on this computer; you can download them here.","penzor.content.noteDevice":"Shared only between this computer and {name}. Change files on a computer; you can download them here.","penzor.legacy.title":"This computer stopped writing to this vault when it switched to the new sync","penzor.legacy.body":"This computer\u2019s notes now live in Shared with all devices \u203A Notes. Older desktop versions may still write here, so this copy is kept, not deleted.","penzor.legacy.go":"See the new copy","penzor.drive.total":"All of Penzor Cloud: {used} / {max} used","penzor.drive.seeAll":"View","penzor.cs.statusOff":"Off","penzor.cs.statusPaused":"Paused","penzor.cs.statusRun":"Syncing {pct}%","penzor.cs.statusScan":"Checking files","penzor.cs.statusWarn":"{n} to review","penzor.cs.statusOk":"Up to date","penzor.cs.statusOkAgo":"Up to date \xB7 {time}","penzor.widget.signedOut":"Not signed in to Forsion","penzor.widget.signInHint":"Sign in to sync","penzor.widget.off":"Cloud sync is off","penzor.widget.paused":"Sync is paused","penzor.widget.running":"Syncing","penzor.widget.problem":"Sync needs attention","penzor.widget.active":"Transferring {n}","penzor.widget.queued":"{n} more queued","penzor.widget.waiting":"{n} waiting to sync","penzor.widget.failed":"Failed","penzor.widget.error":"Sync ran into an error","penzor.widget.errorMeta":"Error","penzor.widget.conflict":"Conflict, both kept","penzor.widget.more":"{n} more to check","penzor.widget.last":"Last synced {time}","penzor.widget.pending":"Notes are already in the cloud","penzor.widget.notesFailed":"Last note sync failed","penzor.widget.agentsFailed":"Last agent sync failed","penzor.cs.thisComputer":"This computer: {name}","penzor.cs.thisComputerLabel":"This computer:","penzor.cs.rename":"Rename this computer","penzor.cs.renameHint":"Other devices will show this name \xB7 Enter to save","penzor.cs.name.taken":"Another device already uses this name. Pick another one.","penzor.cs.name.reserved":"macOS, Windows and Linux are kept for systems. Pick another name.","penzor.cs.name.invalid":"Names can have up to 64 characters and no square brackets.","penzor.cs.othersN":"{n} others: {names}","penzor.cs.noOthers":"No other devices on this account yet","penzor.cs.log":"Recent activity","penzor.cs.more":"More","penzor.cs.advanced":"Advanced: edit rules","penzor.cs.backSimple":"Back to sync","penzor.cs.firstTitle":"Sync this computer to Penzor Cloud","penzor.cs.firstBody":"Here is a suggested setup; change anything first. Nothing moves until you press Start syncing, and nothing already in the cloud is overwritten or deleted.","penzor.cs.note":"To treat one notes folder or agent differently, click the small line under it. Turning a switch off just stops syncing; nothing is deleted.","penzor.cs.barFirst":"Turning sync on uploads {up} files and downloads {down}","penzor.cs.barChanged":"{n} changes","penzor.cs.barOne":"1 change: \u201C{name}\u201D \u2192 {scope}","penzor.cs.offName":"not synced","penzor.cs.barCounts":"Uploads {up} files and downloads {down} \xB7 nothing is deleted","penzor.cs.barSize":"{size} in total","penzor.cs.noDelete":"nothing will be deleted","penzor.cs.barConflicts":"{n} changed on both sides; both copies are kept","penzor.cs.barCounting":"Working out what will move\u2026","penzor.cs.barRecount":"Files just changed, so this was recalculated. Please confirm again.","penzor.cs.later":"Not now","penzor.cs.start":"Start syncing","penzor.cs.undo":"Undo","penzor.cs.confirm":"Confirm","penzor.cs.up":"Uploading \u201C{name}\u201D","penzor.cs.down":"Downloading \u201C{name}\u201D","penzor.cs.waiting":"{n} more files waiting","penzor.cs.failedN":"{n} files didn\u2019t sync","penzor.cs.retry":"Retry","penzor.cs.seeLog":"See activity","penzor.cs.logEmpty":"No sync activity yet.","penzor.cs.logNote":"Keeps the latest 200 items. When both sides changed, both copies are kept.","penzor.cat.notes":"Notes","penzor.cat.notesDesc":"Your Amadeus vault","penzor.cat.agents":"Agents & memory","penzor.cat.agentsDesc":"Each agent\u2019s settings, memory and logs","penzor.cat.profile":"About me","penzor.cat.profileDesc":"Your profile and default calendar","penzor.cat.profileOn":"Includes your default calendar","penzor.cat.plugins":"Plugins","penzor.cat.pluginsDesc":"Plugin folders and settings","penzor.cat.others":"Other files","penzor.cat.othersDesc":"Files in your workspace outside the groups above","penzor.cat.files":"{n} files \xB7 {size}","penzor.agents.pickHint":"Choose each one; new agents aren\u2019t synced \xB7 {n} selected","penzor.agents.legacyHint":"Older setting: new agents sync too \xB7 {n} selected","penzor.agents.none":"No agents on this computer yet","penzor.agents.muse":"Muse","penzor.agents.museDesc":"Background agent; runs separately on each computer","penzor.agents.locked":"Sync not available yet","penzor.agents.cloudOnly":"In the cloud \xB7 not on this computer yet; turn on to download","penzor.agents.historianNote":"Historian\u2019s drafts stay on each computer. What it writes into an agent\u2019s log syncs with that agent.","penzor.agents.archiveRunning":"Cloud agents are being archived. Try again in a moment.","penzor.cs.accountReview":"Account changed. Local files may contain content from another account. Review and confirm the sync selection before syncing again.","penzor.agents.openFailed":"Couldn\u2019t turn on sync for this agent, so it stays off: {reason}","penzor.archive.title":"Agents now sync one by one","penzor.archive.body":"Agents that synced with the old all-agents switch have stopped. Their cloud copy is in \u201CMy drive \u203A {shelf} \u203A {name}\u201D, read-only and downloadable. Turn on the ones you still want, one at a time.","penzor.archive.shelf":"Archive","penzor.archive.ok":"Got it","penzor.archive.open":"Open archive","penzor.archive.note":"This is an agent sync archive. It\u2019s read-only: you can download it or delete the whole archive.","penzor.ask.title":"{name} already has a copy in the cloud","penzor.ask.when":"Cloud copy last changed: {cloud}. This computer: {local}. Choose once before turning sync on; after that it merges automatically.","penzor.ask.merge":"Merge them","penzor.ask.mergeDesc":"Memory, logs and schedules merge entry by entry. Where both sides changed settings or personality, the newer copy wins and the other goes to this computer\u2019s recycle folder","penzor.ask.cloud":"Use the cloud copy","penzor.ask.cloudDesc":"This computer\u2019s copy goes to the recycle folder first, then the cloud copy replaces it","penzor.ask.local":"Use this computer\u2019s copy","penzor.ask.localDesc":"The cloud copy is archived first, then replaced with this computer\u2019s","penzor.ask.recommended":"Recommended","penzor.ask.foot":"Recycled files are in agents/.removed and can be recovered","penzor.ask.cancel":"Cancel","penzor.ask.confirm":"Turn on sync","penzor.cat.pluginsN":"{n} plugins","penzor.cat.custom":"{n} custom rules","penzor.cat.notSynced":"Not synced \xB7 stays on this computer","penzor.scope.all":"Shared with all devices","penzor.scope.allDesc":"Every signed-in device and the web see one copy","penzor.scope.self":"Back up this computer only","penzor.scope.selfDesc":"Kept in its own cloud copy other devices don\u2019t see","penzor.scope.with":"Only with {name}","penzor.scope.menuTitle":"Who shares \u201C{name}\u201D","penzor.scope.menuFoot":"To stop syncing it, turn off the switch","penzor.scope.calendarNote":"The web\u2019s default calendar doesn\u2019t follow this","penzor.unified.stale":"Refresh failed. Showing the last sample; current usage is unknown. Please retry.","penzor.unified.uploadTo":"Upload to My files","penzor.unified.apps":"Manage ordinary files \xB7 source restrictions apply","penzor.trash.ama":"Amadeus \xB7 pending cleanup","penzor.trash.amaNote":"Deleted current files still count; history is not counted again. Eligible for system cleanup after 30 days. Read-only here; Empty trash does not affect these snapshots.","penzor.trash.expires":"Cleanup eligible from","penzor.source.openAgents":"Open Agents","penzor.source.openCalendar":"Open calendar","penzor.source.entryUnavailable":"This host does not provide that destination","penzor.uploads":"My files","penzor.source.agents":"Agents","penzor.source.profile":"My profile","penzor.source.plugins":"Plugin data","penzor.source.readonly":"Synced sources are read-only. Edit or delete in the source; download synced files here.","penzor.source.appNote":"App files are managed by their app. Edit or delete them there.","penzor.source.market":"Store submissions","penzor.ov.market":"Plugins, skills and Agents you submitted to the Store; they follow their listings","penzor.source.marketNote":"These packages follow their Store listings: delete a listing in Store \u203A My submissions to free its space. Packages fetched from GitHub or npm are stored by the Store and don't count toward your storage.","penzor.market.badge":"Managed by the Store","penzor.market.meta":"{size} \xB7 {n} packages","penzor.market.history":"Older versions {size}, not counted (same as elsewhere)","penzor.market.older":"older versions {size}","penzor.market.updating":"update in review","penzor.market.notCounted":"Not counted","penzor.market.fromGithub":"From GitHub \xB7 stored by the Store","penzor.market.fromNpm":"From npm \xB7 stored by the Store","penzor.market.type.plugin":"Plugin","penzor.market.type.skill":"Skill","penzor.market.type.agent":"Agent","penzor.market.type.space":"Space","penzor.market.type.theme":"Theme","penzor.market.type.amadeusPlugin":"Amadeus plugin","penzor.market.status.approved":"Listed","penzor.market.status.pending":"In review","penzor.market.status.rejected":"Not approved","penzor.col.type":"Type","penzor.col.status":"Status","penzor.source.pluginNote":"Names and usage only. Data may contain settings or credentials, so preview and download are unavailable.","penzor.unified.unavailable":"Usage unavailable","penzor.unified.incomplete":"Unified usage is incomplete, so quota status is unknown. Refresh to retry.","penzor.unified.enforced":"Unified quota is active. Over quota, new content and larger replacements are paused; downloads, deletions and non-growing replacements remain available.","penzor.unified.grace":"Notice grace period ends {date}. Unified quota does not add restrictions yet.","penzor.unified.rolloutPolicy":"Storage policy notice: growth limits may start no earlier than 30 days after acknowledgement. App file history will retain at most 50 versions from the last 30 days. History is excluded from your plan; download backups before cleanup. Current files are not removed by history cleanup.","penzor.unified.ack":"I have read the storage and history notice","penzor.unified.notice":"This is only a notice. Going over won\u2019t stop sync or uploads","penzor.unified.over":"Unified quota exceeded. This is a notice only; no new sync or upload restrictions apply. Clear files or upgrade your plan.","penzor.unified.warn":"Unified storage is nearly full. This is a notice only; no new sync or upload restrictions apply.","penzor.unified.accounting":"includes {trash} in trash; history doesn\u2019t count","penzor.unified.writable":"Upload, create, rename and delete","penzor.unified.readonly":"Read-only \xB7 managed at source","penzor.unified.export":"Download, rename and permanently delete","penzor.unified.counted":"Included in unified usage \xB7 notice phase","penzor.unified.policy":"If limits are ever enforced, you\u2019ll hear at least 30 days ahead.","penzor.unified.legacySync":"Existing device sync limit: {used} / {max}","penzor.unified.legacyApps":"Existing app file limit: {used} / {max}","sub.identity":"Plugin ID","sub.identityHint":"A unique ID is assigned after submission. Names may repeat; updates keep the same ID.","sub.description":"Detailed description","sub.tags":"Tags","sub.tagsHint":"Comma separated, up to 8","sub.minAppVersion":"Minimum Forsion version","sub.maxAppVersion":"Maximum version (exclusive)","sub.optional":"Optional","sub.platforms":"Supported platforms","sub.requirementsHint":"Supported: desktop, macos, windows, linux, android, ios, web. Leave blank if unspecified. ZIP requirements are read from the manifest; supplied values must match it.","sub.err.market_requirements_invalid":"Invalid version requirements or platforms.","sub.err.market_requirements_mismatch":"Supplied requirements differ from the ZIP manifest.","sub.mine":"My submissions","page.submission":"Submissions","page.webPages":"My web pages","web.title":"My web pages","web.desc":"Pages you published with Tangu or Coding Space. Anyone with the link can open them; they run sandboxed and can't read visitors' Forsion sign-in.","web.refresh":"Refresh","web.used":"{used} of {limit} published","web.full":"All slots are used. Take one down or upgrade to publish another","web.empty":"No published pages yet","web.emptyHint":'Ask Tangu in a chat to publish a page, for example "publish this page", or choose Publish on a Coding Space project.',"web.updated":"Updated {date}","web.disabled":"Disabled","web.disabledHint":"An administrator disabled this page. Its link doesn't open and it can't be updated.","web.copy":"Copy link","web.unpublish":"Take down","web.unpublishConfirm":"Confirm take down","web.listingPending":"Store listing in review","web.listingApproved":"Listed in store","web.listingRejected":"Store listing rejected","web.listingNote":"Reason: {note}","web.listingApply":"Apply for store listing","web.listingReapply":"Apply again","web.listingWithdraw":"Withdraw application","web.listingDelist":"Remove from store","web.listingDelistConfirm":"Confirm removal","web.listingSummary":"Store summary","web.listingSummaryPh":"One sentence about this page","web.listingHint":"Shown in the store under Web apps after review. Up to 300 characters.","web.listingSubmit":"Submit application","sub.desc":"Manage your submissions, review results and version updates.","sub.new":"New submission","sub.refresh":"Refresh","sub.empty":"No submissions yet","sub.emptyHint":"Share your plugins, skills, Agents or Spaces in the marketplace.","sub.name":"Name","sub.summary":"Summary","sub.type":"Content type","sub.source":"Source","sub.type.skill":"Skill","sub.type.agent":"Agent","sub.type.plugin":"Plugin","sub.type.space":"Space","sub.type.theme":"Theme","sub.type.amadeus_plugin":"Amadeus plugin","sub.pending":"Pending review","sub.approved":"Published","sub.rejected":"Rejected","sub.pendingVersion":"v{version} update pending review","sub.rejectedVersion":"v{version} update rejected","sub.submit":"Submit for review","sub.submitted":"Submitted. The review result appears here and in your inbox.","sub.updated":"Update submitted for review. The published version stays available until then; the result goes to your inbox.","sub.repo":"Public GitHub repository","sub.npm":"Public npm package","sub.repoHint":"README and Releases come from the repository; its owner is shown as the publisher.","sub.npmHint":"Package metadata comes from npm; the public repository owner is shown as the publisher.","sub.reviewHint":"New versions require review before distribution. Your Forsion account manages the submission.","sub.zipHint":"Up to 50 MB. Include the required manifest and entry files.","sub.filter":"Filter by status","sub.all":"All","sub.noResults":"No matching submissions","sub.downloads":"{n} downloads","sub.errName":"Enter a name.","sub.errSource":"Enter a public repository URL or npm package name.","sub.errZip":"Choose a ZIP archive.","sub.errLarge":"ZIP archives must not exceed 50 MB.","sub.err.market_npm_invalid":"The npm package is unavailable or does not meet the plugin requirements.","sub.err.market_npm_source":"Publish the new version on npm for review.","sub.err.market_github_source":"Publish a GitHub Release for review.","sub.err.market_not_found":"Submission unavailable. Refresh and retry.","sub.err.market_zip_required":"Choose a ZIP archive.","sub.err.market_zip_invalid":"The ZIP structure does not meet the publishing requirements.","sub.err.market_zip_too_large":"ZIP archives must not exceed 50 MB.","sub.err.market_version_required":"The package has no version. Add one to the manifest (for skills, version or metadata.version in SKILL.md) and repackage.","sub.err.market_version_invalid":"Enter a valid version.","sub.err.market_version_mismatch":"The version does not match the manifest.","sub.err.market_version_not_newer":"The new version must be newer than the published version.","sub.err.market_icon_invalid":"Use a square PNG icon between 64 and 512 px.","sub.err.market_duplicate":"This content has already been submitted. Manage the existing submission.","sub.err.market_update_pending":"An update is already awaiting review.","sub.err.market_stale":"The submission has changed. Refresh and retry.","sub.notNewer":"The package says v{version}; it must be newer than the Store\u2019s v{current}.","sub.reqNone":"No version range or platforms declared","sub.dropTitle":"Drop a ZIP here, or click to choose one","sub.dropHint":"Up to 50 MB. It is checked first, not submitted yet.","sub.dropReplace":"{size} \xB7 Drop or click to replace","sub.checkType":"Type","sub.checkVersion":"Version","sub.checkIcon":"Icon","sub.checkReadme":"README","sub.checkReq":"Requirements","sub.checkWarn":"Note","sub.iconYes":"icon.png found in the package","sub.iconNo":"No icon.png; the card shows the type icon","sub.readmeYes":"Uses README.md from the package","sub.readmeKeep":"No README.md in the package; the current one stays","sub.readmeNo":"No README.md in the package","sub.warn.no_manifest":"No manifest found in the package","sub.warn.type_mismatch":"The package type differs from this submission\u2019s type","sub.warn.tag_version_mismatch":"The release tag differs from the package version","sub.warn.id_slug_mismatch":"The package id differs from the install folder name. Users are not affected: updates go to the same folder and no second copy appears. The folder name cannot change after listing","sub.warn.engine_slug_mismatch":"The engine plugin folder name differs from its id","sub.warn.no_entry":"The Amadeus plugin has no main.js entry","sub.warn.has_node_modules":"The package includes node_modules, which is large and usually unneeded","sub.zipListedNote":"Until it\u2019s approved, the Store keeps serving the published version. The review result goes to your inbox.","sub.zipUnlistedNote":"Submitting replaces the current package and sends it back for review.","sub.submitVersion":"Submit v{version} for review","sub.checkNew":"Check for a new version","sub.checkAgain":"Check again","sub.upToDate":"The latest upstream version is v{version} and the Store has v{current}. Publish a new version, then check again.","sub.upstreamLatest":"Latest upstream: v{version}","sub.releaseTag":"Release {tag}","sub.storeHas":"Store has v{version}","sub.githubNote":"Once approved, the Store pins v{version}. After your next GitHub release, come back and check again.","sub.npmNote":"Once approved, the Store pins v{version}. After your next npm release, come back and check again.","sub.secVersion":"Version","sub.secInfo":"Store details","sub.secHistory":"History","sub.edit":"Edit","sub.unset":"Not set","sub.infoNote":"No package or new version needed. Changes to a published item are reviewed too; until then the Store shows the current details.","sub.submitInfo":"Submit changes","sub.back":"Back to list","sub.pendingInfo":"Details change pending review","sub.rejectedInfo":"Details change rejected","sub.pendingHint":"The Store stays unchanged until approval. The review result goes to your inbox.","sub.inReview":"Waiting for its first review. The result goes to your inbox.","sub.histApproved":"v{version} approved","sub.histSubmitted":"Submitted","sub.resubmitted":"Resubmitted for review. The result goes to your inbox.","sub.infoSubmitted":"Changes submitted for review. The Store shows the current details until then.","sub.err.market_no_release":"This repository has no GitHub release yet. The Store pins a version, so publish a release on GitHub, then check again.","sub.err.market_no_changes":"Nothing changed.","sub.err.market_dryrun_unsupported":"GitHub and npm submissions can\u2019t be checked in advance. Submit them for review.","page.account":"Account","page.membershipUsage":"Membership & usage","page.membershipQuota":"Membership & quota","page.pointsInvite":"Points & invites","account.details.title":"Sign-in & details","account.details.desc":"Edit your photo, nickname and bio under Profile.","account.details.username":"Username","diag.unavailable":"This host does not support diagnostic data. Update Forsion and try again.","page.profile":"Profile","page.quota":"Quota & points","page.backpack":"Backpack","page.security":"Security","page.usage":"Usage","page.feedback":"Feedback","store.group":"Membership & points","store.membership":"Membership","store.membership.desc":"Upgrade your plan for more daily and weekly quota","store.points":"Points","store.points.desc":"Buy points and use them to redeem items","store.items":"Items","store.items.desc":"Items you can redeem with points. Redeemed items go to your backpack","store.status":"Plan and points","store.tier":"Current plan","store.balance":"Points balance","store.choosePlan":"Choose a plan","store.payHint":"You pay on the payment page in your browser. This page refreshes when you come back","store.payOff":"Purchases are unavailable right now","store.period":"Billing period","store.period.monthly":"Monthly","store.period.quarterly":"Quarterly","store.period.yearly":"Yearly","store.per.monthly":"/ month","store.per.quarterly":"/ quarter","store.per.yearly":"/ year","store.currentTier":"Current plan","store.pay":"Pay","store.payPrice":"Pay {price}","store.noPlans":"No plans are available right now","store.packs":"Point packs","store.packsHint":"You pay on the payment page in your browser. Points arrive right after payment","store.noPacks":"No point packs are available right now","store.kind.pack":"Point pack","store.kind.card":"Consumable","store.kind.code":"Redeem code","store.kind.item":"Item","store.nPoints":"{n} points","store.instant":"Arrives right after payment","store.redeemTitle":"Redeem with points","store.redeemHint":"Redeeming with points completes right here. Items go to your backpack","store.redeem":"Redeem for {n} points","store.redeemConfirm":"Confirm: spend {n} points","store.redeemed":"Redeemed. The item is in your backpack","store.uncertain":"No response came back. Check your backpack before you try again","store.soldOut":"Sold out","store.left":"{n} left","store.toBackpack":"Goes to your backpack","store.limitReached":"You've reached the purchase limit","store.unavailable":"This item can't be redeemed right now","store.noItems":"Nothing to redeem right now","store.itemsOff":"Item redemption isn't available yet","store.openBackpack":"Open backpack","backpack.desc":"View the items you have collected. Select a slot for details.","backpack.refresh":"Refresh","backpack.total":"{n} items","backpack.grid":"Backpack items","backpack.slot":"{name}, quantity {n}","backpack.item":"Item","backpack.empty":"Your backpack is empty","backpack.emptyHint":"Items you redeem or receive will appear here.","backpack.select":"Select an item to view details","backpack.details":"Item details","backpack.quantity":"Quantity","backpack.acquired":"Acquired","backpack.source":"Received through","backpack.source.points":"Points exchange","backpack.source.admin":"Gift","backpack.source.reward":"Reward","backpack.source.other":"Cloud account","backpack.consumable":"Consumable","backpack.voucher":"Voucher","backpack.getCards":"Redeem reset cards","backpack.manageCards":"Use or redeem","backpack.reveal":"Reveal key","backpack.copyKey":"Copy key","backpack.noKey":"This item has no key.","backpack.use":"Use","backpack.confirmUse":"Confirm use","backpack.consumeConfirm":"Using this item consumes one copy.","backpack.collectible":"Collectible","backpack.effect.points":"+{n} points","backpack.effect.cards":"+{n} reset cards","backpack.effect.quota":"Reset daily and weekly quota","backpack.rarity.common":"Common","backpack.rarity.rare":"Rare","backpack.rarity.epic":"Epic","backpack.rarity.legendary":"Legendary","backpack.unavailable":"This item is no longer available. Refresh your backpack.","backpack.notUsable":"This item cannot be used.","backpack.quotaUnavailable":"Use cloud AI to initialize your quota before using this item.","common.cancel":"Cancel","common.copied":"Copied","common.copyFailed":"Couldn't copy","common.done":"Done","common.loadFailed":"Couldn't load","common.loadMore":"Load more","common.loading":"Loading\u2026","common.openInBrowser":"Open in browser","common.retry":"Retry","common.save":"Save","common.thisWeek":"This week","common.today":"Today","common.unlimited":"Unlimited","ann.eyebrow":"FORSION \xB7 Announcement","ann.close":"Close","ann.ok":"Got it","signin.button":"Sign in to Forsion","signin.desc":"Sign in to your Forsion account to manage your account, quota, security, submissions and feedback here.","signin.pending":"Waiting for you to finish in your browser\u2026","signin.deviceHint":"Your browser opens the sign-in page on its own. If it doesn't, scan the code with your phone or open the link below, and check that the code matches.","signin.code":"Code","signin.openLink":"Open sign-in page","signin.copyLink":"Copy link","signin.qrLabel":"Sign-in QR code","account.profile.title":"Profile","account.profile.desc":"Your photo and nickname, plus the phone and email linked to your account","account.avatar.change":"Change photo","account.avatar.saved":"Photo updated","account.nickname.edit":"Edit nickname","account.nickname.label":"Nickname","account.nickname.saved":"Nickname updated","account.role.admin":"Admin","account.username":"Username {name}","account.contact.phone":"Phone","account.contact.email":"Email","account.contact.unbound":"Not linked","account.contact.manage":"Manage in Security","account.web.open":"Open the account center in your browser","account.web.desc":"Cloud storage, AI Brain and themes are managed in the web account center.","address.label":"Page address","address.change":"Change","address.title":"Change your page address","address.desc":"Everything you publish lives under this address. After a change, the old address keeps redirecting to the new one and nobody else can take it.","address.now":"Now","address.new":"New","address.rule":'3\u201330 characters: lowercase letters, digits or "-"',"address.checking":"Checking\u2026","address.ok":"Available","address.bad":"Not available","address.same":"This is already your address","address.freeOne":"This is your one free change","address.freeN":"This one is free (you have {n} free changes)","address.freeAfter":"After that, an address rename card","address.card":"Uses 1 address rename card","address.cardHave":"You have {n}","address.need":"Changing needs 1 address rename card. You have none","address.price":"{price} points \xB7 balance {balance}","address.soldout":"Address rename cards are not on sale right now","address.cooldown":"Address changes need {days} days in between","address.cooldownUntil":"You can change it again after {date}","address.go":"Change address","address.goCard":"Use a card","address.goBuy":"Buy one for {price} points","address.shop":"Open the shop","address.done":"Your page address is now {url}","address.loadFailed":"Could not load your address right now.","address.errTaken":"Someone just took this address. Try another one.","address.errNeedCard":"No free changes left. Changing needs an address rename card.","address.errCooldown":"Not yet: you can change it again after {date}.","address.errPoints":"Not enough points for the card.","address.errBought":"The card is in your backpack, but the address was not changed: {reason}","address.errSoldout":"Address rename cards were just taken off sale.","address.errLimit":"You have reached the purchase limit for address rename cards.","address.errUnknown":"Could not confirm whether the address changed. Refresh in a moment to check.","backpack.addressCard":"Address rename card","backpack.addressCard.desc":"Once your free changes are used up, each change of your page address takes one card. The old address keeps redirecting and nobody else can take it.","backpack.addressCard.use":"Change address","member.title":"Membership","member.desc":"Your tier, plan and expiry date","member.upgrade":"Upgrade membership","member.renew":"Renew","member.freeName":"Free plan","member.freeHint":"Upgrade to get more AI quota","member.expires":"Expires {date}","member.noExpiry":"No expiry","member.loadFailed":"Couldn't load your membership.","session.title":"Sign-in","session.desc":"Manage your sign-in on this device","local.title":"Accounts on this computer","local.desc":"Switch between accounts you've signed in with","local.current":"Current","local.switch":"Switch","local.add":"Sign in to another account","local.signOut":"Sign out","local.empty":"No saved accounts yet","local.loadFailed":"Couldn't read the account list","diag.title":"Diagnostic data","diag.desc":"Helps us troubleshoot problems and improve Forsion. Off by default.","diag.enable":"Upload diagnostic data","diag.enableDesc":"When this is on, this computer periodically uploads a snapshot of its Forsion setup to your Forsion account, where the Forsion team can view it. The Forsion team sets how often, once a day by default. You can turn it off at any time.","diag.collected":"What's uploaded","diag.item.app":"App and system versions, this computer's name, and its free memory and disk space","diag.item.settings":"Your model and voice choices, the switches and numeric values in background agent and plugin settings, and the names and on/off state of MCP servers and message channels","diag.item.agents":"Agent and team configuration (options such as name and model; descriptions and prompts are recorded by length only, and their text falls under the personas, memory and evolution switch below)","diag.item.plugins":"Names and versions of installed plugins, skills, themes and Spaces","diag.item.runs":"Run records from the last 7 days: each run's status and error reason, usage and timing of model calls and tools (no conversation text, and nothing those tools read or wrote), and the engine's recent log output","diag.item.sync":"Cloud sync status: which categories your sync rules cover, how many files recent sync rounds uploaded, downloaded, deleted or saved as conflict copies, and why syncing failed (paths are masked; no file names or file contents)","diag.notCollected":"Never uploaded: the sign-in credentials and API keys saved on this computer, your note files, agent libraries, or plugin data.","diag.sessions":"Include conversations","diag.sessionsDesc":"Conversations on this computer: the text of your messages and the agent's replies, the agent's reasoning and the names of the tools it used, including the background work of team members, discussions and delegated tasks. Each upload only includes what hasn't been uploaded yet, going back at most 7 days. What those tools read or wrote and the attachments themselves are left out; file names that appear in messages, and anything the agent repeated from your notes or files in its replies, are included. Keys in common formats are masked; everything else is uploaded as is. If you'd rather not share them, turn this off before you turn uploads on.","diag.memory":"Include agent personas, memory and evolution records","diag.memoryDesc":"Each agent's persona (including the description and developer instructions in its configuration), and what the agent has built up on its own: its memory and the memory candidates it hasn't consolidated yet, its evolution record, its collaboration notes for you, the last 7 days of its logs and memory-consolidation activity, and project memory; plus your teams' charters and your user profile. These are the instructions you wrote for your agents and teams, and the facts they noted about you and your work from conversations. Each upload carries their current content (very long ones are cut short). Keys in common formats are masked; everything else is uploaded as is. If you'd rather not share them, turn this off before you turn uploads on.","diag.activity":"Include activity log","diag.activityDesc":"Your activity records, which include the first few dozen characters of conversations and the names of note files. Each upload only includes what hasn't been uploaded yet, going back at most 7 days. If you'd rather not share them, turn this off before you turn uploads on.","diag.last":"Last upload: {time}","diag.noUpload":"Nothing uploaded yet","diag.freq.hour":"every hour","diag.freq.hours":"every {n} hours","diag.freq.day":"once a day","diag.freq.days":"every {n} days","diag.freq.manual":"only when the Forsion team requests it","diag.retention":"The cloud keeps this computer's snapshots from the last {n} days. Turning this off stops uploads; snapshots already uploaded stay in the cloud. To have them deleted, let us know under Feedback.","page.privacy":"Privacy and data","privacy.tab":"Help improve","privacy.unavailable":"This version of Forsion does not support helping improve Forsion. Update Forsion and try again.","privacy.needUpdate":"This version of Forsion does not send this data yet. It takes effect after you update Forsion.","privacy.devBuild":"Development builds never send any data.","privacy.signInFirst":"Sign in to turn this on. Nothing is sent while you are signed out.","privacy.improve.title":"Help improve Forsion","privacy.improve.desc":"Sends metadata only, so we can find bugs and slow spots. It only sends while you are signed in to Forsion, and it is not linked to your account.","privacy.improve.switch":"Send crash reports and usage statistics","privacy.improve.switchHint":"Turning this off stops sending right away and discards anything still queued on this device.","privacy.policyLink":"See the Privacy Policy for what is collected and how long it is kept","privacy.sent.title":"Sent in the last 7 days","privacy.sent.hint":"A copy stays on this device so you can read every event.","privacy.sent.last":"A copy stays on this device so you can read every event. Last sent: {time}","privacy.sent.view":"View","privacy.sent.empty":"Nothing has been sent in the last 7 days.","privacy.delete.title":"Delete sent data","privacy.delete.hint":"Removes every record for this device's install ID from our servers and issues a new ID.","privacy.delete.button":"Delete","privacy.delete.confirm":"Confirm delete","privacy.delete.done":"Deleted. This device now has a new install ID.","privacy.delete.failed":"Could not delete: {reason}","privacy.installId":"Install ID {id} \xB7 not linked to your account","diag.uploadNow":"Upload now","diag.uploaded":"Uploaded","diag.failed":"Upload failed: {reason}","quota.ai.title":"AI quota","quota.ai.desc":"What's left today and this week; a quota reset card restores it","quota.resetDaily":"Resets daily at 0:00 (Beijing time)","quota.resetWeekly":"Resets {date} at 0:00 (Beijing time)","card.title":"Quota reset card","card.desc":"Restores today's and this week's AI quota to 100%","card.owned":"You have {n}","card.use":"Use one","card.useConfirm":"Confirm","card.used":"Used 1 quota reset card","card.left":"{n} left","card.noneHint":"You have no quota reset cards left. You can exchange points for more.","card.exchange":"Exchange points","card.price":"{price} points each, 1\u201350 at a time","card.count":"Number of cards","card.cost":"Costs {cost} points","card.countHint":"Enter 1\u201350","card.exchangeButton":"Exchange","card.exchangeConfirm":"Spend {cost} points","card.exchanged":"Quota reset cards added: {n}","points.title":"Points","points.desc":"Use points to get quota reset cards","points.balance":"Balance","points.balanceFailed":"Couldn't load your balance","points.recharge":"Buy points","bg.title":"Background quota","bg.desc":"Used by Muse and automations, counted separately from your AI quota","bg.autoMain":"Continue with AI quota when used up","bg.autoMainDesc":"When off, Muse and automations pause once the background quota runs out","bg.convert":"Move from AI quota","bg.convertDesc":"Moves a share of your AI quota limit, valid for the current period","bg.convertConfirm":"Move {pct}%","bg.converted":"Moved {pct}% from your AI quota","invite.title":"Invites & codes","invite.desc":"Invite friends to join, or redeem a code you received","invite.myCode":"My invite code","invite.count":"{n} invited","invite.copyCode":"Copy code","invite.copyLink":"Copy invite link","invite.loadFailed":"Couldn't load your invite code","invite.claim":"Enter an invite code","invite.claimDesc":"Within 7 days of signing up, you can enter a friend's invite code","invite.claimPlaceholder":"Friend's invite code","invite.claimSubmit":"Submit","invite.claimed":"Invite code applied","redeem.title":"Redemption code","redeem.desc":"Redeem points, membership or other rewards","redeem.placeholder":"Enter a code","redeem.submit":"Redeem","redeem.success":"Redeemed","redeem.successWith":"Redeemed: {what}","redeem.gotPoints":"{n} points","redeem.gotMembership":"membership","sec.methods.title":"Sign-in methods","sec.methods.desc":"Your phone and email can be used to sign in and reset your password","sec.bind":"Link","sec.change":"Change","sec.phone":"Phone number","sec.email":"Email address","sec.newPhone":"New phone number","sec.newEmail":"New email address","sec.phonePlaceholder":"Mainland China numbers as is; others with +country code","sec.emailPlaceholder":"name@example.com","sec.code":"Verification code","sec.codePlaceholder":"Enter the code","sec.sendCode":"Send code","sec.resendIn":"Resend in {s}s","sec.codeSent":"Code sent","sec.bindSubmit":"Link","sec.phoneBound":"Phone linked","sec.emailBound":"Email linked","sec.devices.title":"Signed-in devices","sec.devices.desc":"If you think someone else is using your account, sign out on every device","sec.logoutAll":"Sign out everywhere","sec.logoutAllDesc":"Including this device: every device has to sign in again","sec.logoutAllConfirm":"Confirm sign out everywhere","sec.logoutAllDone":"Signed out everywhere","pw.title":"Password","pw.desc":"{min}\u2013{max} characters, with a lowercase letter, an uppercase letter and a special character, and no spaces","pw.change":"Change password","pw.modeLabel":"How to change it","pw.mode.current":"With current password","pw.mode.code":"With a verification code","pw.current":"Current password","pw.currentRequired":"Enter your current password","pw.new":"New password","pw.confirm":"Confirm new password","pw.mismatch":"The new passwords don't match","pw.submit":"Change password","pw.submitReset":"Set new password","pw.changed":"Password updated","pw.noPasswordYet":"This account doesn't have a password yet. Set one with a verification code instead.","pw.codeNeedsContact":"Link a phone or email first to set a password with a verification code.","pw.via":"Send the code to","pw.codeTo":"The code goes to {target}","pw.rulesLabel":"Password rules","pw.req.length":"{min}\u2013{max} characters","pw.req.lower":"A lowercase letter","pw.req.upper":"An uppercase letter","pw.req.special":"A special character","pw.req.space":"No spaces","pw.rule.format":"Invalid password","pw.rule.min":"Password must be at least 8 characters","pw.rule.max":"Password can't be longer than 64 characters","pw.rule.space":"Password can't contain spaces","pw.rule.lower":"Password needs a lowercase letter","pw.rule.upper":"Password needs an uppercase letter","pw.rule.special":"Password needs a special character","del.title":"Delete account","del.desc":"Permanently delete your account and all its data. This can't be undone","del.start":"Delete account","del.warn":"Deleting your account removes your account, points, membership, cloud storage and all other data for good.","del.methodLabel":"Verify with","del.byCode":"Verification code","del.byPassword":"Password","del.codeLabel":"Code sent to {target}","del.passwordLabel":"Account password","del.submit":"Delete account","del.confirm":"Delete permanently","del.done":"Account deleted","usage.overview.title":"Overview","usage.overview.desc":"Requests and AI quota used in the selected period","usage.range":"Time range","usage.days":"{n} days","usage.requests":"Requests","usage.successRate":"Success rate","usage.consumption":"AI quota used","usage.ofToday":"Of your daily limit","usage.unlimitedNote":"Your AI quota is unlimited, so usage isn't shown as a percentage.","usage.noLimitNote":"Your daily limit is 0 or unavailable right now, so usage isn't shown as a percentage.","usage.byModel.title":"By model","usage.byModel.desc":"Requests and quota used per model","usage.byApp.title":"By app","usage.byApp.desc":"Requests and quota used per app","usage.col.model":"Model","usage.col.app":"App","usage.col.requests":"Requests","usage.col.consumption":"Quota used","usage.empty":"No usage in this period","usage.appUnknown":"Other","usage.recent.title":"Recent usage","usage.recent.desc":"Each call as a share of your daily limit","usage.recentEmpty":"No usage yet","usage.failed":"Failed","usage.shown":"Showing {shown} of {total}","fb.list.title":"My feedback","fb.list.desc":"Issues and suggestions you've sent; replies show up here","fb.new":"New feedback","fb.empty":"No feedback yet","fb.untitled":"Untitled feedback","fb.unread":"New reply","fb.shown":"Showing {n}","fb.submitted":"Sent. We'll reply as soon as we can","fb.descLabel":"Describe the issue or suggestion","fb.descPlaceholder":"What happened, and what did you expect?","fb.imagesHint":"Attach up to {n} screenshots (5 MB each). You can paste or drop them here.","fb.addImages":"Add screenshots","fb.removeImage":"Remove this image","fb.submit":"Send","fb.back":"Back to list","fb.you":"You","fb.support":"Forsion team","fb.attachment":"Attachment","fb.imagePreview":"View image","fb.closedNote":"This ticket is closed and can't take replies. Send new feedback for a new issue.","fb.replyPlaceholder":"Reply\u2026","fb.replySend":"Send reply","fb.replySent":"Reply sent","fb.status.open":"Open","fb.status.in_progress":"In progress","fb.status.resolved":"Resolved","fb.status.closed":"Closed","err.accountGone":"This account is signed out. Sign in again","err.adminCannotDelete":"Admin accounts can't be deleted here","err.avatarInvalid":"Couldn't read this image. Try another one","err.avatarTooLarge":"This image is too large. Try a smaller one","err.backgroundUnavailable":"Background quota is unavailable right now","err.captcha":"You need to finish a verification check in your browser","err.codeCooldown":"Too many codes requested. Try again shortly","err.codeInvalid":"The code is wrong or has expired","err.codeRequired":"Enter the verification code","err.codeSendFailed":"Couldn't send the code. Try again later","err.currentPasswordWrong":"Your current password is incorrect","err.deleteTargetInvalid":"Codes can only go to the phone or email linked to your account","err.deleteVerifyFailed":"Verification failed, so your account wasn't deleted","err.emailInUse":"This email is already used by another account","err.emailInvalid":"Enter a valid email address","err.featureDisabled":"This feature is turned off for now","err.feedbackEmpty":"Describe the issue or suggestion first","err.feedbackTooLong":"The description is too long (10,000 characters max)","err.generic":"That didn't work. Try again later","err.imageRead":"Couldn't read the image","err.imageTooLarge":"Each image must be 5 MB or less","err.imageType":"Only images can be added","err.insufficientMainQuota":"Your AI quota is used up, so there's nothing to move","err.insufficientPoints":"Not enough points","err.priceChanged":"The reset card price just changed. Check the new price, then confirm the exchange again.","err.invalidCount":"Choose between 1 and 50 cards","err.invalidInviteCode":"This invite code is invalid or has expired","err.inviteAlreadyUsed":"You've already used an invite code","err.inviteEmpty":"Enter an invite code","err.inviteOwnCode":"You can't use your own invite code","err.inviteWindowExpired":"The 7-day window after sign-up has passed","err.loginCodeExpired":"The sign-in code expired. Sign in again","err.loginInProgress":"A sign-in is already in progress","err.loginTimeout":"Sign-in timed out. Try again","err.loginUnsupported":"This cloud doesn't support desktop sign-in","err.network":"Network error. Check your connection and try again","err.noCloudUrl":"Set the cloud address under Connection first","err.noResetCard":"You have no quota reset cards","err.openFailed":"Couldn't open the browser","err.passwordRequired":"Enter your current and new password","err.phoneInUse":"This phone number is already used by another account","err.phoneInvalid":"Enter a valid phone number (with +country code outside mainland China)","err.redeemEmpty":"Enter a code","err.redeemExpired":"This code has expired","err.redeemInactive":"This code is no longer active","err.redeemNotFound":"This code doesn't exist","err.redeemUsedUp":"This code has been used up","err.redeemUserLimit":"You've already redeemed this code","err.replyEmpty":"Write a reply first","err.replyTooLong":"The reply is too long (10,000 characters max)","err.server":"Server error ({status}). Try again later","err.session":"You've been signed out. Sign in again","err.signedOut":"Sign in to Forsion first","err.targetInvalid":"Enter a valid phone number or email","err.ticketNotFound":"This feedback doesn't exist or was deleted","err.webPageGone":"This page doesn't exist or was taken down","err.listingGone":"This page has no store listing","err.listingSummary":"Add a store summary (up to 300 characters)","err.tooFrequent":"Too many attempts. Try again shortly","err.tooManyImages":"You can add up to 5 images","err.unavailable":"This version of Forsion can't do that yet. Update Forsion","profile.unsupported":"This server doesn't have profiles yet","profile.state.private":"Only you can see this","profile.state.public":"Public","profile.state.privateDesc":"Once public, anyone with the address can see your profile without signing in","profile.state.publicDesc":"Anyone with the public address can see it without signing in","profile.decorate":"Decorate","profile.publish":"Make public","profile.makePrivate":"Make private","profile.address":"Public address","profile.copyLink":"Copy link","profile.openPublic":"View public page","profile.nowPublic":"Your profile is now public","profile.nowPrivate":"Your profile is private. The public address no longer opens","profile.bio":"Bio","profile.bioPlaceholder":"Add a short bio","profile.linkAdd":"Add a link","profile.linkRemove":"Remove link","profile.linkInvalid":"Links must start with http:// or https://, or be a plain domain","profile.joined":"Joined {date}","profile.stat.tokens":"Total tokens","profile.stat.activeDays":"Active days","profile.stat.longest":"Longest streak","profile.stat.current":"Current streak","profile.stat.installs":"Work installs","profile.unit.days":"d","profile.works":"Featured works","profile.worksPick":"Choose","profile.worksEmpty":"No published works yet. Publish to the store or as a web app, and they can go here.","profile.worksNone":"Nothing to feature yet. Works appear here once they are in the store or published as a web app.","profile.worksPicked":"{n} of {max} selected","profile.worksAuto":"With none selected, the most installed ones are shown","profile.goSubmit":"Submit a work","profile.workInstalls":"{n} installs","profile.workVisits":"{n} visits","profile.work.skill":"Skill","profile.work.agent":"Agent","profile.work.plugin":"Plugin","profile.work.space":"Space","profile.work.theme":"Theme","profile.work.note":"Notes plugin","profile.work.webapp":"Web app","profile.activity":"Activity","profile.activityDays":"Active on {n} days in the past year","profile.less":"Less","profile.more":"More","profile.badges":"Badges","profile.badgesEmpty":"No badges yet. Streaks, published works and invites all earn one.","profile.badge.early":"Early user","profile.badge.streak":"30-day streak","profile.badge.author":"Author","profile.badge.inviter":"Top inviter","profile.badge.event":"Event keepsake","profile.badgeSub.early":"Joined in {value}","profile.badgeSub.streak":"Longest streak: {value} days","profile.badgeSub.author":"{value} published works","profile.badgeSub.inviter":"Invited {value} friends","profile.badgeSub.event":"Took part in a Forsion event{value}","profile.insights":"Insights","profile.insightsEmpty":"Not enough usage yet. Check back in a few days.","profile.insightModel":"Most used model","profile.insightHours":"Most active hours","profile.deco.skin":"Public page color scheme","profile.deco.mode":"Public page appearance","profile.deco.publicHint":"These two only set what visitors see on the public page. Here the profile follows Forsion's current theme.","profile.deco.cover":"Cover","profile.deco.frame":"Avatar frame","profile.deco.modules":"Sections","profile.skin.cream":"Classic","profile.skin.coral":"Coral","profile.skin.teal":"Teal","profile.skin.lavender":"Lavender","profile.mode.auto":"Auto","profile.mode.light":"Light","profile.mode.dark":"Dark","profile.cover.none":"None","profile.cover.mist":"Mist","profile.cover.contour":"Contour","profile.cover.dots":"Dots","profile.frame.none":"None","profile.frame.ring":"Ring","profile.frame.pro":"Member ring","profile.frameProHint":"The member ring is for paid members.","profile.col.show":"Show","profile.col.public":"Public","profile.moveUp":"Move up","profile.moveDown":"Move down","profile.modulesHint":'"Show" decides whether a section is on your profile. "Public" decides whether visitors see it, once your profile is public.',"profile.mod.stats":"Stats","profile.mod.works":"Works","profile.mod.activity":"Activity","profile.mod.badges":"Badges","profile.mod.insights":"Insights","profile.modDesc.stats":"Total tokens, active days, streaks and installs of your works","profile.modDesc.works":"Works you have published, up to 6","profile.modDesc.activity":"Which days you were active in the past year (shades only, no numbers)","profile.modDesc.badges":"Join year, streaks, publishing, invites and events","profile.modDesc.insights":"Your most used model and most active hours","profile.publishDesc":"Once public, anyone with this address can see your profile without signing in. You decide section by section what visitors see.","profile.publishNever":"Your avatar, nickname, username, bio and links become public too. Your email, phone number, membership expiry, points and quota never appear on your profile.","profile.publishConfirm":"Make public","profile.blocked.machineUsername":"Your current username was generated by the system and contains part of your phone number or email, so making it public would expose that. Change your username on the Account page of the web account center first (each account can do this once), then come back.","profile.blocked.publishBlocked":"An administrator has stopped this profile from being public. Contact us through Feedback if you have questions.","profile.goRename":"Change username","profile.invalid":"This couldn't be saved. Check it and try again","guide.title":"Guide","guide.readOnly":"Read-only","guide.more":"More","guide.unlockAll":"Unlock all","guide.relock":"Unlock level by level","guide.reminders":"Guide reminders","guide.spotlight":"On-screen hints","guide.spotStep":"Step {n} of {total}","guide.figure":"Diagram","guide.openAchievements":"Open achievements","guide.tasks":"Tasks in this chapter","guide.go":"Take me there","guide.desktopOnly":"Do it on your computer","guide.taskDone":"Done","guide.askTangu":"Ask Tangu","guide.progress":"Progress","guide.justUnlocked":"Just unlocked","guide.lockedHint":"Locked","guide.whatsNew":"What's new in {version}","guide.level.lv1":"Lv.1 Getting started","guide.level.lv2":"Lv.2 Finding your way","guide.level.lv3":"Lv.3 Making it yours","guide.level.lv4":"Lv.4 Going further","guide.locked.title":"This chapter is still locked","guide.locked.body":"Finish the tasks in {level} to read the rest.","guide.locked.left":"Still to do:","guide.locked.hint":"Been around a while? Unlock everything from the \xB7\xB7\xB7 menu.","guide.levelProgress":"This level: {done}/{total}","guide.next":"Next level","guide.allDone":"All done","guide.allDoneBody":"You've done every task in the guide. Come back any time.","guide.review":"Look back","guide.ask.hint":'Questions about "{chapter}"? Ask Tangu opens a new chat with this chapter attached.',"guide.ask.placeholder":"What would you like to know?","guide.ask.send":"Start a chat","guide.ask.prompt":`I'm reading the "{chapter}" chapter of the Forsion guide; it's attached below. {question}`,"guide.ask.unavailable":"Chat isn't available here","guide.ask.chatTitle":"Guide Q&A","guide.companion.back":"Back to the guide","guide.companion.close":"Close","guide.toast.taskDone":"Done: {task}","guide.letter.levelTitle":"{level} unlocked: try these next","guide.letter.levelBody":'You finished the previous level, so these chapters are open now. Every task has a "Take me there" button.',"guide.letter.versionTitle":"{n} new things to try in {version}","guide.letter.versionBody":"New in this version, ready to try:","guide.letter.open":"Open the guide","guide.status.done":"Done","guide.cmd.open":"Open the guide","penzor.title":"Penzor Cloud","penzor.overview":"Overview","penzor.places":"Places","penzor.details":"Details","penzor.ledger.sync":"Vault sync","penzor.ledger.ama":"Amadeus Cloud","penzor.ledger.apps":"App files","penzor.ledger.exports":"Exports","penzor.trash":"Trash","penzor.items":"{n} items","penzor.total.sub":"Stored in Forsion Cloud \xB7 updated {time}","penzor.justNow":"just now","penzor.ofMax":"/ {max}","penzor.card.syncSub":"{n} vaults \xB7 last write {time}","penzor.card.syncSubNone":"{n} vaults","penzor.card.syncFoot":"Files over {size} are not uploaded","penzor.card.syncWarn":"Almost full: after {max}, new files stop uploading; files already in the cloud keep syncing","penzor.card.amaSmall":"Not counted in your quota","penzor.card.amaSub":"{n} cloud vaults","penzor.card.amaFoot":"Notes and attachments on the Cloud side of Amadeus","penzor.card.appsFoot":"Trash: {n} items \xB7 {size}","penzor.card.appsWarn":"Almost full: after {max}, apps can't save new files. Trash counts too, so emptying it frees space","penzor.card.expSmall":"{n} files","penzor.card.expSub":"Latest: {name} \xB7 {time}","penzor.card.expFoot":"Files exported from apps","penzor.card.none":"Nothing yet","penzor.largest":"Largest files","penzor.col.name":"Name","penzor.col.size":"Size","penzor.col.mtime":"Modified","penzor.col.device":"Written by","penzor.col.deleted":"Deleted","penzor.col.origin":"Original location","penzor.col.app":"From","penzor.sort.mtime":"By modified","penzor.sort.size":"By size","penzor.sort.name":"By name","penzor.search":"Search file names here","penzor.sync.thisDevice":"Syncing on this device","penzor.meta.files":"{size} \xB7 {n} files","penzor.sync.last":"Last write {time} \xB7 {device}","penzor.sync.lastNoDevice":"Last write {time}","penzor.sync.devices":"{n} devices sync this vault","penzor.sync.meter":"Vault sync shares {max}; {used} used","penzor.apps.meter":"App files share {max}; {used} used (trash included)","penzor.apps.by":"Written by {app}","penzor.ama.notCounted":"Not counted in your quota","penzor.ama.open":"Open in Amadeus","penzor.hosted.open":"Manage my web pages","penzor.hosted.note":"These files belong to a published web page. Republish to change them, or take the page down in My web pages.","penzor.trash.meta":"{n} items \xB7 {size}","penzor.trash.note":"Space frees up once items are deleted permanently","penzor.trash.emptyBtn":"Empty trash","penzor.act.download":"Download","penzor.act.rename":"Rename","penzor.act.move":"Move to\u2026","penzor.act.trash":"Move to trash","penzor.act.delete":"Delete","penzor.act.restore":"Restore","penzor.act.purge":"Delete permanently","penzor.act.copyName":"Copy vault name","penzor.act.openSync":"Open sync settings","penzor.act.refresh":"Refresh","penzor.act.up":"Up one level","penzor.toast.trashed":"Moved \u201C{name}\u201D to trash","penzor.toast.restored":"Restored \u201C{name}\u201D","penzor.toast.purged":"Deleted \u201C{name}\u201D permanently","penzor.toast.emptied":"Trash emptied","penzor.toast.downloaded":"Saved to Downloads: {name}","penzor.toast.renamed":"Renamed to \u201C{name}\u201D","penzor.toast.moved":"Moved to \u201C{name}\u201D","penzor.toast.versionRestored":"Restored version {n}","penzor.toast.copied":"Vault name copied","penzor.toast.failed":"That didn't work: {reason}","penzor.confirm.purge":"Delete \u201C{name}\u201D permanently? This can't be undone.","penzor.confirm.empty":"Empty the trash? {n} items will be deleted permanently.","penzor.confirm.deleteExport":"Delete \u201C{name}\u201D? Exports have no trash, so this can't be undone.","penzor.cancel":"Cancel","penzor.side.where":"Location","penzor.side.mtime":"Modified","penzor.side.device":"Written by","penzor.side.thisDevice":"{name} (this device)","penzor.side.from":"From","penzor.side.versions":"Versions","penzor.side.versionsNone":"None","penzor.side.versionRow":"Version {n} \xB7 {time} \xB7 {size}","penzor.side.restoreVersion":"Restore this version","penzor.side.deletedAt":"Deleted","penzor.side.origin":"Original location","penzor.side.inner":"{n} more items inside come back with it","penzor.side.inTrash":"In trash \xB7 {size}","penzor.side.readonlySync":"Files in a synced vault are changed on your devices. Deleting one here would delete it on every device that syncs {vault}, so here you can only view and download.","penzor.side.readonlyAma":"Notes and attachments are changed in Amadeus. Deleting an attachment here would leave the notes that use it with missing images, so here you can only view and download.","penzor.side.exportNote":"Exports have no trash: deleting is permanent.","penzor.side.none":"Select a file to see its details","penzor.side.folder":"Folder \xB7 {n} items","penzor.side.folderPlain":"Folder","penzor.move.title":"Move to","penzor.move.root":"Top of {app}","penzor.move.here":"Move here","penzor.move.noFolders":"No folders at this level","penzor.rename.save":"Save","penzor.empty.title":"Nothing in Penzor Cloud yet","penzor.empty.lead":"These show up here once they're in the cloud:","penzor.empty.sync":"Pick Penzor Cloud as the remote service in Settings \u203A Sync, and your local vault syncs here","penzor.empty.ama":"Notes you write on the Cloud side of Amadeus","penzor.empty.apps":"Files apps save to the cloud or export","penzor.empty.openSync":"Open sync settings","penzor.out.title":"Sign in to see your Penzor Cloud","penzor.out.lead":"Penzor Cloud holds the vaults you sync to Forsion Cloud, your Amadeus Cloud notes and the files apps keep in the cloud.","penzor.out.signIn":"Sign in to Forsion","penzor.loading":"Loading\u2026","penzor.err":"Couldn't load: {reason}","penzor.folderEmpty":"No files here","penzor.noMatch":"No file names contain \u201C{q}\u201D","penzor.cmd.open":"Open Penzor Cloud","penzor.unreachable":"Can\u2019t reach Forsion Cloud. Try again later","penzor.toast.emptyPartial":"{n} items in the trash couldn\u2019t be deleted","penzor.sort.deleted":"By deleted","penzor.side.versionsN":"{n}","penzor.drive":"My drive","penzor.drive.meta":"Counts toward the {max} for app files","penzor.drive.empty":"Nothing here yet. Drag files in, or click Upload.","penzor.act.upload":"Upload","penzor.act.uploadMore":"More upload options","penzor.act.uploadFiles":"Upload files\u2026","penzor.act.uploadFolder":"Upload folder\u2026","penzor.act.uploadHere":"Upload here\u2026","penzor.act.newFolder":"New folder","penzor.act.clearSel":"Clear selection","penzor.newFolder.default":"New folder","penzor.sel.bar":"{n} selected \xB7 {size}","penzor.sel.title":"{n} selected","penzor.sel.sub":"{size} \xB7 {files} files","penzor.sel.subDirs":"{size} \xB7 {files} files, {dirs} folders","penzor.sel.download":"Download {n}","penzor.sel.saveTo":"Saves to","penzor.sel.saveToValue":"Downloads / {folder}","penzor.sel.noDirs":"Folders can\u2019t be downloaded yet; only the selected files will be.","penzor.download.folder":"Penzor Cloud {date}","penzor.drop.to":"Drop to upload to \u201C{place}\u201D","penzor.tx.busy":"Transferring {n}","penzor.tx.allDone":"All done","penzor.tx.failedN":"{n} didn\u2019t finish","penzor.tx.counts":"{up} up \xB7 {down} down","penzor.tx.eta":"about {eta} left","penzor.tx.doneN":"{n} finished","penzor.tx.restDone":"The other {n} finished","penzor.tx.pill":"{counts} \xB7 {pct}%","penzor.tx.queued":"Queued","penzor.tx.paused":"Paused \xB7 resumes from the start","penzor.tx.uploaded":"Uploaded \xB7 {time}","penzor.tx.downloaded":"Downloaded \xB7 {time}","penzor.tx.canceled":"Canceled","penzor.tx.left":"{eta} left","penzor.tx.sec":"{n}s","penzor.tx.min":"{n} min","penzor.tx.pause":"Pause","penzor.tx.resume":"Resume","penzor.tx.cancel":"Cancel","penzor.tx.retry":"Retry","penzor.tx.remove":"Remove","penzor.tx.locate":"Show","penzor.tx.reveal":"Show in folder","penzor.tx.pauseAll":"Pause all","penzor.tx.resumeAll":"Resume all","penzor.tx.retryAll":"Retry all","penzor.tx.clearDone":"Clear finished","penzor.tx.clear":"Clear","penzor.tx.collapse":"Collapse","penzor.tx.expand":"Show transfers","penzor.tx.quota":"Not enough space: {size} short","penzor.tx.quotaSub":"Nothing in this batch was started","penzor.tx.freeSpace":"Free up space in Trash","penzor.err.too_large":"Over the 50 MB per-file limit ({size}); can\u2019t upload it yet","penzor.err.quota":"Not enough cloud space","penzor.err.network":"Connection lost at {pct}%","penzor.err.account_changed":"You switched accounts, so this one stopped","penzor.err.download_unavailable":"This host cannot save downloads yet. Update Forsion","penzor.err.download_failed":"The file was not saved. Try downloading it again","penzor.err.not_signed_in":"Not signed in","penzor.err.gone":"The file is no longer on this device","penzor.err.popup_blocked":"Your browser blocked the new tab. Allow pop-ups for this site and try again","penzor.err.changed":"The file changed while uploading. Try again","penzor.err.storage_unavailable":"Cloud storage is unavailable right now","penzor.err.other":"Didn\u2019t finish ({code})","penzor.err.too_many":"Up to {n} files at a time. Add them in smaller batches","penzor.toast.upDoneOne":"Uploaded \u201C{name}\u201D","penzor.toast.upDoneMany":"Uploaded {n} files","penzor.toast.downDoneMany":"Downloaded {n} files to Downloads","penzor.toast.txFailed":"{n} transfers didn\u2019t finish. Open Penzor Cloud to check","penzor.toast.folderExists":"There\u2019s already a folder called \u201C{name}\u201D","penzor.toast.trashedN":"Moved {n} items to the trash","penzor.toast.movedN":"Moved {n} items to \u201C{name}\u201D","penzor.toast.batchPartial":"{n} items didn\u2019t go through","penzor.sync.title":"Sync","penzor.sync.onN":"{n} on","penzor.sync.allOff":"All off","penzor.sync.waiting":"Waiting for you","penzor.sync.badgeWaiting":"{n} on \xB7 1 waiting for you","penzor.sync.running":"Syncing {pct}%","penzor.sync.runningPlain":"Syncing","penzor.sync.metaDevice":"This computer: {name}","penzor.sync.metaLast":"Last synced {time}","penzor.sync.metaNever":"Not synced yet","penzor.sync.every":"Every {n} min","penzor.sync.everyHours":"Every {n} h","penzor.sync.manual":"Manual","penzor.sync.onStart":"once at startup","penzor.sync.minAgo":"{n} min ago","penzor.sync.hoursAgo":"{n} h ago","penzor.sync.notesNamed":"Notes vault \u201C{name}\u201D","penzor.sync.notesPlain":"This computer\u2019s notes vault","penzor.sync.notesDesc":"The whole local vault, kept the same on your other computers","penzor.sync.agents":"Agents & memory","penzor.sync.agentsDesc":"Your agents\u2019 memory, logs, skills and working notes, plus your profile and default calendar","penzor.sync.conflictsN":"Conflict copies: {n}","penzor.sync.conflictsHint":"Files changed on both sides are kept twice: the other version is saved as a copy with \u201Cconflict\u201D in its name, in that agent\u2019s folder (or your profile folder)","penzor.sync.pluginsPending":"Changes not uploaded yet: {n} plugins","penzor.sync.agentsN":"Agents: {n}","penzor.sync.plugins":"Plugin data","penzor.sync.pluginsDesc":"Settings and data your plugins keep","penzor.sync.pluginsN":"Plugins: {n}","penzor.sync.off":"Off","penzor.sync.done":"Synced","penzor.sync.doneSize":"Synced \xB7 {size}","penzor.sync.firstPending":"Waiting for the first sync","penzor.sync.failed":"Last sync failed","penzor.sync.overQuota":"Over the limit, some files not uploaded","penzor.sync.to":"Syncing to {name}","penzor.sync.toFolder":"Syncing to a local folder","penzor.sync.decideAbove":"Choose in the card above","penzor.sync.kvSchedule":"Schedule","penzor.sync.kvDirection":"Direction","penzor.sync.kvSkipped":"Not uploaded","penzor.sync.kvWhere":"In the cloud","penzor.sync.change":"Change","penzor.sync.open":"Open","penzor.sync.dir.both":"Both ways","penzor.sync.dir.push":"Upload only","penzor.sync.dir.pull":"Download only","penzor.sync.skippedN":"{n} files over {size}","penzor.sync.where":"{ledger} \u203A {vault}","penzor.sync.whereUsed":"{ledger} \u203A {vault} \xB7 {used} / {max}","penzor.sync.devicesTitle":"Devices syncing","penzor.sync.thisOne":"This computer","penzor.sync.lastWrite":"Last write {time}","penzor.sync.noDevices":"No devices are syncing yet","penzor.sync.phoneTitle":"What your phone and the web see","penzor.sync.phoneTip":"Your phone and the web read the cloud vault (the cloud side of Amadeus, {size}) directly. It always syncs, and it\u2019s a separate copy from this computer\u2019s notes vault above. To see a folder from this computer on your phone, right-click it in your notes and sync it to the cloud vault.","penzor.sync.phoneTipPlain":"Your phone and the web read the cloud vault (the cloud side of Amadeus) directly. It always syncs, and it\u2019s a separate copy from this computer\u2019s notes vault above. To see a folder from this computer on your phone, right-click it in your notes and sync it to the cloud vault.","penzor.sync.foot":"Schedule, direction and other storage (Dropbox / S3 / WebDAV) are in","penzor.sync.footLink":"Settings \u203A Sync","penzor.sync.askTitle":"There\u2019s already a notes vault in the cloud","penzor.sync.askCloud":"The cloud copy is from {device}: {files} files \xB7 {size}.","penzor.sync.askCloudNoDevice":"The cloud copy: {files} files \xB7 {size}.","penzor.sync.askLocal":"This computer has {local} files the cloud copy doesn\u2019t, and {conflicts} that differ.","penzor.sync.askMerge":"Merge both","penzor.sync.askCloudBtn":"Use the cloud copy","penzor.sync.askSkip":"Don\u2019t sync notes on this computer yet","penzor.sync.askExplain":"Merge keeps both sides; files that differ are saved again as a \u201C(conflict)\u201D copy. Use the cloud copy first moves this computer\u2019s differing files into a \u201C{backup}\u201D folder next to the vault, then downloads the cloud copy.","penzor.sync.askConfirm":"This computer\u2019s differing files move to \u201C{backup}\u201D first, then the cloud copy replaces them.","penzor.sync.askConfirmGo":"Move them and use the cloud copy","penzor.sync.backupName":"{name} backup before sync {date}","penzor.sync.quotaTitle":"Your notes vault is {size}, over the {max} limit of {ledger}","penzor.sync.quotaTitlePlain":"Your notes vault is over the {ledger} limit","penzor.sync.quotaBody":"Files that don\u2019t fit stay on this computer. Nothing is deleted, they just aren\u2019t uploaded, and everything else keeps syncing.","penzor.sync.quotaLarge":"Single files over {size} are never uploaded ({n}).","penzor.sync.quotaSee":"See what\u2019s not uploaded","su.title":"Store update","su.source.github":"GitHub source","su.source.npm":"npm source","su.source.zip":"ZIP upload","su.review":"In review","su.approved":"Approved","su.rejected":"Not approved","su.viaGithub":"GitHub release {tag}","su.viaNpm":"npm {version}","su.metaReview":"Submitted {time} \xB7 The result will arrive in your inbox","su.metaReviewNoTime":"The result will arrive in your inbox","su.metaApproved":"The Store now shows {version}","su.metaApprovedInfo":"The Store info is updated","su.metaRejected":"The Store keeps {version}","su.metaRejectedUnlisted":"Not listed yet","su.infoOnly":"Store info only","su.listSep":", ","su.openSubmission":"Open in Submissions","wc.title":"Web page","wc.pill.published":"Published","wc.pill.live":"Live","wc.pill.review":"Store review","wc.pill.listed":"In the Store","wc.pill.rejected":"Not accepted in the Store","wc.pill.gone":"Taken down","wc.justPublished":"Just published","wc.anyone":"Anyone with the link can open it","wc.open":"Open","wc.viewInPages":"View in My web pages","wc.manage":"Manage in My web pages","wc.total":"{n} published","wc.more":"{n} more","wc.unpublishTitle":"Take down {name}?","wc.unpublishBody":"The link stops working and the page's files are deleted from your cloud drive.","wc.unpublishAgain":"Click again to take down"},bc={zh:Ng,en:Og},De=e=>e==="en"?"en":"zh";function xe(e,t,n){let o=bc[e][t]??bc.zh[t]??t;return n?o.replace(/\{(\w+)\}/g,(a,i)=>i in n?String(n[i]):a):o}var In=e=>(t,n)=>xe(e,t,n),pt=(e,t)=>"raw"in e?e.raw:t(e.key,e.vars);var yc=`
67
+ `}tablecell(e){let t=this.parser.parseInline(e.tokens),o=e.header?"th":"td";return(e.align?`<${o} align="${e.align}">`:`<${o}>`)+t+`</${o}>
68
+ `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${on(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:o,tokens:r,autolink:a}){let i=a?on(o,!0):this.parser.parseInline(r),s=Zl(e);if(s===null)return i;e=on(s,a);let l='<a href="'+e+'"';return t&&(l+=' title="'+on(t)+'"'),l+=">"+i+"</a>",l}image({href:e,title:t,text:o,tokens:r}){r&&(o=this.parser.parseInline(r,this.parser.textRenderer));let a=Zl(e);if(a===null)return on(o);e=a;let i=`<img src="${on(e)}" alt="${on(o)}"`;return t&&(i+=` title="${on(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:on(e.text)}},hi=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},xn=class li{options;renderer;textRenderer;constructor(t){this.options=t||uo,this.options.renderer=this.options.renderer||new Xr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new hi}static parse(t,o){return new li(o).parse(t)}static parseInline(t,o){return new li(o).parseInline(t)}parse(t){this.renderer.parser=this;let o="";for(let r=0;r<t.length;r++){let a=t[r];if(this.options.extensions?.renderers?.[a.type]){let s=a,l=this.options.extensions.renderers[s.type].call({parser:this},s);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(s.type)){o+=l||"";continue}}let i=a;switch(i.type){case"space":{o+=this.renderer.space(i);break}case"hr":{o+=this.renderer.hr(i);break}case"heading":{o+=this.renderer.heading(i);break}case"code":{o+=this.renderer.code(i);break}case"table":{o+=this.renderer.table(i);break}case"blockquote":{o+=this.renderer.blockquote(i);break}case"list":{o+=this.renderer.list(i);break}case"checkbox":{o+=this.renderer.checkbox(i);break}case"html":{o+=this.renderer.html(i);break}case"def":{o+=this.renderer.def(i);break}case"paragraph":{o+=this.renderer.paragraph(i);break}case"text":{o+=this.renderer.text(i);break}default:{let s='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return o}parseInline(t,o=this.renderer){this.renderer.parser=this;let r="";for(let a=0;a<t.length;a++){let i=t[a];if(this.options.extensions?.renderers?.[i.type]){let l=this.options.extensions.renderers[i.type].call({parser:this},i);if(l!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(i.type)){r+=l||"";continue}}let s=i;switch(s.type){case"escape":{r+=o.text(s);break}case"html":{r+=o.html(s);break}case"link":{r+=o.link(s);break}case"image":{r+=o.image(s);break}case"checkbox":{r+=o.checkbox(s);break}case"strong":{r+=o.strong(s);break}case"em":{r+=o.em(s);break}case"codespan":{r+=o.codespan(s);break}case"br":{r+=o.br(s);break}case"del":{r+=o.del(s);break}case"text":{r+=o.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}},ir=class{options;block;constructor(e){this.options=e||uo}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?yn.lex:yn.lexInline}provideParser(e=this.block){return e?xn.parse:xn.parseInline}},bi=class{defaults=ci();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=xn;Renderer=Xr;TextRenderer=hi;Lexer=yn;Tokenizer=Jr;Hooks=ir;constructor(...e){this.use(...e)}walkTokens(e,t){let o=[];for(let r of e)switch(o=o.concat(t.call(this,r)),r.type){case"table":{let a=r;for(let i of a.header)o=o.concat(this.walkTokens(i.tokens,t));for(let i of a.rows)for(let s of i)o=o.concat(this.walkTokens(s.tokens,t));break}case"list":{let a=r;o=o.concat(this.walkTokens(a.items,t));break}default:{let a=r;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach(i=>{let s=a[i].flat(1/0);o=o.concat(this.walkTokens(s,t))}):a.tokens&&(o=o.concat(this.walkTokens(a.tokens,t)))}}return o}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(o=>{let r={...o};if(r.async=this.defaults.async||r.async||!1,o.extensions&&(o.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let i=t.renderers[a.name];i?t.renderers[a.name]=function(...s){let l=a.renderer.apply(this,s);return l===!1&&(l=i.apply(this,s)),l}:t.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[a.level];i?i.unshift(a.tokenizer):t[a.level]=[a.tokenizer],a.start&&(a.level==="block"?t.startBlock?t.startBlock.push(a.start):t.startBlock=[a.start]:a.level==="inline"&&(t.startInline?t.startInline.push(a.start):t.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(t.childTokens[a.name]=a.childTokens)}),r.extensions=t),o.renderer){let a=this.defaults.renderer||new Xr(this.defaults);for(let i in o.renderer){if(!(i in a))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let s=i,l=o.renderer[s],c=a[s];a[s]=(...d)=>{let f=l.apply(a,d);return f===!1&&(f=c.apply(a,d)),f||""}}r.renderer=a}if(o.tokenizer){let a=this.defaults.tokenizer||new Jr(this.defaults);for(let i in o.tokenizer){if(!(i in a))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let s=i,l=o.tokenizer[s],c=a[s];a[s]=(...d)=>{let f=l.apply(a,d);return f===!1&&(f=c.apply(a,d)),f}}r.tokenizer=a}if(o.hooks){let a=this.defaults.hooks||new ir;for(let i in o.hooks){if(!(i in a))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let s=i,l=o.hooks[s],c=a[s];ir.passThroughHooks.has(i)?a[s]=d=>{if(this.defaults.async&&ir.passThroughHooksRespectAsync.has(i))return(async()=>{let u=await l.call(a,d);return c.call(a,u)})();let f=l.call(a,d);return c.call(a,f)}:a[s]=(...d)=>{if(this.defaults.async)return(async()=>{let u=await l.apply(a,d);return u===!1&&(u=await c.apply(a,d)),u})();let f=l.apply(a,d);return f===!1&&(f=c.apply(a,d)),f}}r.hooks=a}if(o.walkTokens){let a=this.defaults.walkTokens,i=o.walkTokens;r.walkTokens=function(s){let l=[];return l.push(i.call(this,s)),a&&(l=l.concat(a.call(this,s))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return yn.lex(e,t??this.defaults)}parser(e,t){return xn.parse(e,t??this.defaults)}parseMarkdown(e){return(t,o)=>{let r={...o},a={...this.defaults,...r},i=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&r.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=e),a.async)return(async()=>{let s=a.hooks?await a.hooks.preprocess(t):t,l=await(a.hooks?await a.hooks.provideLexer(e):e?yn.lex:yn.lexInline)(s,a),c=a.hooks?await a.hooks.processAllTokens(l):l;a.walkTokens&&await Promise.all(this.walkTokens(c,a.walkTokens));let d=await(a.hooks?await a.hooks.provideParser(e):e?xn.parse:xn.parseInline)(c,a);return a.hooks?await a.hooks.postprocess(d):d})().catch(i);try{a.hooks&&(t=a.hooks.preprocess(t));let s=(a.hooks?a.hooks.provideLexer(e):e?yn.lex:yn.lexInline)(t,a);a.hooks&&(s=a.hooks.processAllTokens(s)),a.walkTokens&&this.walkTokens(s,a.walkTokens);let l=(a.hooks?a.hooks.provideParser(e):e?xn.parse:xn.parseInline)(s,a);return a.hooks&&(l=a.hooks.postprocess(l)),l}catch(s){return i(s)}}}onError(e,t){return o=>{if(o.message+=`
69
+ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+on(o.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(o);throw o}}},co=new bi;function Je(e,t){return co.parse(e,t)}Je.options=Je.setOptions=function(e){return co.setOptions(e),Je.defaults=co.defaults,rc(Je.defaults),Je};Je.getDefaults=ci;Je.defaults=uo;function lh(...e){return co.use(...e),Je.defaults=co.defaults,rc(Je.defaults),Je}Je.use=lh;Je.walkTokens=function(e,t){return co.walkTokens(e,t)};Je.parseInline=co.parseInline;Je.Parser=xn;Je.parser=xn.parse;Je.Renderer=Xr;Je.TextRenderer=hi;Je.Lexer=yn;Je.lexer=yn.lex;Je.Tokenizer=Jr;Je.Hooks=ir;Je.parse=Je;var Yx=Je.options,Zx=Je.setOptions,Qx=Je.walkTokens,ek=Je.parseInline;var tk=xn.parse,nk=yn.lex;var na,_e,hc,ch,Kn,fc,bc,vc,vi,Yr,dr,yc,wi,yi,xi,xc,Qr={},ea=[],dh=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ur=Array.isArray;function Nn(e,t){for(var o in t)e[o]=t[o];return e}function zi(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function fo(e,t,o){var r,a,i,s={};for(i in t)i=="key"?r=t[i]:i=="ref"?a=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?na.call(arguments,2):o),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return Zr(e,s,r,a,null)}function Zr(e,t,o,r,a){var i={type:e,props:t,key:o,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++hc,__i:-1,__u:0};return a==null&&_e.vnode!=null&&_e.vnode(i),i}function R(e){return e.children}function kn(e,t){this.props=e,this.context=t}function po(e,t){if(t==null)return e.__?po(e.__,e.__i+1):null;for(var o;t<e.__k.length;t++)if((o=e.__k[t])!=null&&o.__e!=null)return o.__e;return typeof e.type=="function"?po(e):null}function uh(e){if(e.__P&&e.__d){var t=e.__v,o=t.__e,r=[],a=[],i=Nn({},t);i.__v=t.__v+1,_e.vnode&&_e.vnode(i),Si(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[o]:null,r,o??po(t),!!(32&t.__u),a),i.__v=t.__v,i.__.__k[i.__i]=i,_c(r,i,a),t.__e=t.__=null,i.__e!=o&&kc(i)}}function kc(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),kc(e)}function ki(e){(!e.__d&&(e.__d=!0)&&Kn.push(e)&&!ta.__r++||fc!=_e.debounceRendering)&&((fc=_e.debounceRendering)||bc)(ta)}function ta(){try{for(var e,t=1;Kn.length;)Kn.length>t&&Kn.sort(vc),e=Kn.shift(),t=Kn.length,uh(e)}finally{Kn.length=ta.__r=0}}function wc(e,t,o,r,a,i,s,l,c,d,f){var u,p,m,g,h,k,y=r&&r.__k||ea,x=t.length;for(c=ph(o,t,y,c,x),u=0;u<x;u++)(m=o.__k[u])!=null&&(p=m.__i!=-1&&y[m.__i]||Qr,m.__i=u,k=Si(e,m,p,a,i,s,l,c,d,f),g=m.__e,m.ref&&p.ref!=m.ref&&(p.ref&&_i(p.ref,null,m),f.push(m.ref,m.__c||g,m)),h==null&&g!=null&&(h=g),4&m.__u?(c=zc(m,c,e),p.__e&&(p.__e=null)):typeof m.type=="function"&&k!==void 0?c=k:g&&(c=g.nextSibling),m.__u&=-7);return o.__e=h,c}function ph(e,t,o,r,a){var i,s,l,c,d,f=o.length,u=f,p=0;for(e.__k=new Array(a),i=0;i<a;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[i]=Zr(null,s,null,null,null):ur(s)?s=e.__k[i]=Zr(R,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[i]=Zr(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[i]=s,c=i+p,s.__=e,s.__b=e.__b+1,l=null,(d=s.__i=fh(s,o,c,u))!=-1&&(u--,(l=o[d])&&(l.__u|=2)),l==null||l.__v==null?(d==-1&&(a>f?p--:a<f&&p++),typeof s.type!="function"&&(s.__u|=4)):d!=c&&(d==c-1?p--:d==c+1?p++:(d>c?p--:p++,s.__u|=4))):e.__k[i]=null;if(u)for(i=0;i<f;i++)(l=o[i])!=null&&(2&l.__u)==0&&(l.__e==r&&(r=po(l)),Ac(l,l));return r}function zc(e,t,o){var r,a;if(typeof e.type=="function"){for(r=e.__k,a=0;r&&a<r.length;a++)r[a]&&(r[a].__=e,t=zc(r[a],t,o));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=po(e)),t=o.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function pr(e,t){return t=t||[],e==null||typeof e=="boolean"||(ur(e)?e.some(function(o){pr(o,t)}):t.push(e)),t}function fh(e,t,o,r){var a,i,s,l=e.key,c=e.type,d=t[o],f=d!=null&&(2&d.__u)==0;if(d===null&&l==null||f&&l==d.key&&c==d.type)return o;if(r>(f?1:0)){for(a=o-1,i=o+1;a>=0||i<t.length;)if((d=t[s=a>=0?a--:i++])!=null&&(2&d.__u)==0&&l==d.key&&c==d.type)return s}return-1}function mc(e,t,o){t[0]=="-"?e.setProperty(t,o??""):e[t]=o==null?"":typeof o!="number"||dh.test(t)?o:o+"px"}function Kr(e,t,o,r,a){var i,s;e:if(t=="style")if(typeof o=="string")e.style.cssText=o;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)o&&t in o||mc(e.style,t,"");if(o)for(t in o)r&&o[t]==r[t]||mc(e.style,t,o[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(yc,"$1")),s=t.toLowerCase(),t=s in e||t=="onFocusOut"||t=="onFocusIn"?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=o,o?r?o[dr]=r[dr]:(o[dr]=wi,e.addEventListener(t,i?xi:yi,i)):e.removeEventListener(t,i?xi:yi,i);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=o??"";break e}catch{}typeof o=="function"||(o==null||o===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&o==1?"":o))}}function gc(e){return function(t){if(this.l){var o=this.l[t.type+e];if(t[Yr]==null)t[Yr]=wi++;else if(t[Yr]<o[dr])return;return o(_e.event?_e.event(t):t)}}}function Si(e,t,o,r,a,i,s,l,c,d){var f,u,p,m,g,h,k,y,x,w,C,M,$,U,O,j,_=t.type;if(t.constructor!==void 0)return null;128&o.__u&&(c=!!(32&o.__u),i=[l=t.__e=o.__e]),(f=_e.__b)&&f(t);e:if(typeof _=="function"){u=s.length;try{if(x=t.props,w=_.prototype&&_.prototype.render,C=(f=_.contextType)&&r[f.__c],M=f?C?C.props.value:f.__:r,o.__c?y=(p=t.__c=o.__c).__=p.__E:(w?t.__c=p=new _(x,M):(t.__c=p=new kn(x,M),p.constructor=_,p.render=gh),C&&C.sub(p),p.state||(p.state={}),p.__n=r,m=p.__d=!0,p.__h=[],p._sb=[]),w&&p.__s==null&&(p.__s=p.state),w&&_.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=Nn({},p.__s)),Nn(p.__s,_.getDerivedStateFromProps(x,p.__s))),g=p.props,h=p.state,p.__v=t,m)w&&_.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),w&&p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(w&&_.getDerivedStateFromProps==null&&x!==g&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(x,M),t.__v==o.__v||!p.__e&&p.shouldComponentUpdate!=null&&p.shouldComponentUpdate(x,p.__s,M)===!1){t.__v!=o.__v&&(p.props=x,p.state=p.__s,p.__d=!1),t.__e=o.__e,t.__k=o.__k,t.__k.some(function(L){L&&(L.__=t)}),ea.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&s.push(p),l=po(o);break e}p.componentWillUpdate!=null&&p.componentWillUpdate(x,p.__s,M),w&&p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(g,h,k)})}if(p.context=M,p.props=x,p.__P=e,p.__e=!1,$=_e.__r,U=0,w)p.state=p.__s,p.__d=!1,$&&$(t),f=p.render(p.props,p.state,p.context),ea.push.apply(p.__h,p._sb),p._sb=[];else do p.__d=!1,$&&$(t),f=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++U<25);p.state=p.__s,p.getChildContext!=null&&(r=Nn(Nn({},r),p.getChildContext())),w&&!m&&p.getSnapshotBeforeUpdate!=null&&(k=p.getSnapshotBeforeUpdate(g,h)),O=f!=null&&f.type===R&&f.key==null?Cc(f.props.children):f,l=wc(e,ur(O)?O:[O],t,o,r,a,i,s,l,c,d),p.base=t.__e,t.__u&=-161,p.__h.length&&s.push(p),y&&(p.__E=p.__=null)}catch(L){if(s.length=u,t.__v=null,c||i!=null){if(L.then){for(t.__u|=c?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;i!=null&&(i[i.indexOf(l)]=null),t.__e=l}else if(i!=null)for(j=i.length;j--;)zi(i[j])}else t.__e=o.__e;t.__k==null&&(t.__k=o.__k||[]),L.then||Sc(t),_e.__e(L,t,o)}}else i==null&&t.__v==o.__v?(t.__k=o.__k,t.__e=o.__e):l=t.__e=mh(o.__e,t,o,r,a,i,s,c,d);return(f=_e.diffed)&&f(t),128&t.__u?void 0:l}function Sc(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Sc))}function _c(e,t,o){for(var r=0;r<o.length;r++)_i(o[r],o[++r],o[++r]);_e.__c&&_e.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(i){i.call(a)})}catch(i){_e.__e(i,a.__v)}})}function Cc(e){return typeof e!="object"||e==null||e.__b>0?e:ur(e)?e.map(Cc):e.constructor!==void 0?null:Nn({},e)}function mh(e,t,o,r,a,i,s,l,c){var d,f,u,p,m,g,h,k=o.props||Qr,y=t.props,x=t.type;if(x=="svg"?a="http://www.w3.org/2000/svg":x=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),i!=null){for(d=0;d<i.length;d++)if((m=i[d])&&"setAttribute"in m==!!x&&(x?m.localName==x:m.nodeType==3)){e=m,i[d]=null;break}}if(e==null){if(x==null)return document.createTextNode(y);e=document.createElementNS(a,x,y.is&&y),l&&(_e.__m&&_e.__m(t,i),l=!1),i=null}if(x==null)k===y||l&&e.data==y||(e.data=y);else{if(i=x=="textarea"&&y.defaultValue!=null?null:i&&na.call(e.childNodes),!l&&i!=null)for(k={},d=0;d<e.attributes.length;d++)k[(m=e.attributes[d]).name]=m.value;for(d in k)m=k[d],d=="dangerouslySetInnerHTML"?u=m:d=="children"||d in y||d=="value"&&"defaultValue"in y||d=="checked"&&"defaultChecked"in y||Kr(e,d,null,m,a);for(d in y)m=y[d],d=="children"?p=m:d=="dangerouslySetInnerHTML"?f=m:d=="value"?g=m:d=="checked"?h=m:l&&typeof m!="function"||k[d]===m||Kr(e,d,m,k[d],a);if(f)l||u&&(f.__html==u.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(u&&(e.innerHTML=""),wc(t.type=="template"?e.content:e,ur(p)?p:[p],t,o,r,x=="foreignObject"?"http://www.w3.org/1999/xhtml":a,i,s,i?i[0]:o.__k&&po(o,0),l,c),i!=null)for(d=i.length;d--;)zi(i[d]);l&&x!="textarea"||(d="value",x=="progress"&&g==null?e.removeAttribute("value"):g!=null&&(g!==e[d]||x=="progress"&&!g||x=="option"&&g!=k[d])&&Kr(e,d,g,k[d],a),d="checked",h!=null&&h!=e[d]&&Kr(e,d,h,k[d],a))}return e}function _i(e,t,o){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(a){_e.__e(a,o)}}function Ac(e,t,o){var r,a;if(_e.unmount&&_e.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||_i(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(i){_e.__e(i,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(a=0;a<r.length;a++)r[a]&&Ac(r[a],t,o||typeof e.type!="function");o||zi(e.__e),e.__c=e.__=e.__e=void 0}function gh(e,t,o){return this.constructor(e,o)}function Re(e,t,o){var r,a,i,s;t==document&&(t=document.documentElement),_e.__&&_e.__(e,t),a=(r=typeof o=="function")?null:o&&o.__k||t.__k,i=[],s=[],Si(t,e=(!r&&o||t).__k=fo(R,null,[e]),a||Qr,Qr,t.namespaceURI,!r&&o?[o]:a?null:t.firstChild?na.call(t.childNodes):null,i,!r&&o?o:a?a.__e:t.firstChild,r,s),_c(i,e,s),e.props.children=null}function oa(e){function t(o){var r,a;return this.getChildContext||(r=new Set,(a={})[t.__c]=this,this.getChildContext=function(){return a},this.componentWillUnmount=function(){r=null},this.shouldComponentUpdate=function(i){this.props.value!=i.value&&r.forEach(function(s){s.__e=!0,ki(s)})},this.sub=function(i){r.add(i);var s=i.componentWillUnmount;i.componentWillUnmount=function(){r&&r.delete(i),s&&s.call(i)}}),o.children}return t.__c="__cC"+xc++,t.__=e,t.Provider=t.__l=(t.Consumer=function(o,r){return o.children(r)}).contextType=t,t}na=ea.slice,_e={__e:function(e,t,o,r){for(var a,i,s;t=t.__;)if((a=t.__c)&&!a.__)try{if((i=a.constructor)&&i.getDerivedStateFromError!=null&&(a.setState(i.getDerivedStateFromError(e)),s=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,r||{}),s=a.__d),s)return a.__E=a}catch(l){e=l}throw e}},hc=0,ch=function(e){return e!=null&&e.constructor===void 0},kn.prototype.setState=function(e,t){var o;o=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Nn({},this.state),typeof e=="function"&&(e=e(Nn({},o),this.props)),e&&Nn(o,e),e!=null&&this.__v&&(t&&this._sb.push(t),ki(this))},kn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ki(this))},kn.prototype.render=R,Kn=[],bc=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,vc=function(e,t){return e.__v.__b-t.__v.__b},ta.__r=0,vi=Math.random().toString(8),Yr="__d"+vi,dr="__a"+vi,yc=/(PointerCapture)$|Capture$/i,wi=0,yi=gc(!1),xi=gc(!0),xc=0;var Yn,tt,Ci,Tc,fr=0,Nc=[],yt=_e,Ec=yt.__b,Pc=yt.__r,Mc=yt.diffed,Ic=yt.__c,Rc=yt.unmount,Lc=yt.__;function No(e,t){yt.__h&&yt.__h(tt,e,fr||t),fr=0;var o=tt.__H||(tt.__H={__:[],__h:[]});return e>=o.__.length&&o.__.push({}),o.__[e]}function S(e){return fr=1,Oc(Fc,e)}function Oc(e,t,o){var r=No(Yn++,2);if(r.t=e,!r.__c&&(r.__=[o?o(t):Fc(void 0,t),function(l){var c=r.__N?r.__N[0]:r.__[0],d=r.t(c,l);c!==d&&(r.__N=[d,r.__[1]],r.__c.setState({}))}],r.__c=tt,!tt.__f)){var a=function(l,c,d){if(!r.__c.__H)return!0;var f=!1,u=r.__c.props!==l;if(r.__c.__H.__.some(function(m){if(m.__N){f=!0;var g=m.__[0];m.__=m.__N,m.__N=void 0,g!==m.__[0]&&(u=!0)}}),i){var p=i.call(this,l,c,d);return f?p||u:p}return!f||u};tt.__f=!0;var i=tt.shouldComponentUpdate,s=tt.componentWillUpdate;tt.componentWillUpdate=function(l,c,d){if(this.__e){var f=i;i=void 0,a(l,c,d),i=f}s&&s.call(this,l,c,d)},tt.shouldComponentUpdate=a}return r.__N||r.__}function Y(e,t){var o=No(Yn++,3);!yt.__s&&Ei(o.__H,t)&&(o.__=e,o.u=t,tt.__H.__h.push(o))}function Zn(e,t){var o=No(Yn++,4);!yt.__s&&Ei(o.__H,t)&&(o.__=e,o.u=t,tt.__h.push(o))}function ie(e){return fr=5,rn(function(){return{current:e}},[])}function rn(e,t){var o=No(Yn++,7);return Ei(o.__H,t)&&(o.__=e(),o.__H=t,o.__h=e),o.__}function Vt(e,t){return fr=8,rn(function(){return e},t)}function Ti(e){var t=tt.context[e.__c],o=No(Yn++,9);return o.c=e,t?(o.__==null&&(o.__=!0,t.sub(tt)),t.props.value):e.__}function On(){var e=No(Yn++,11);if(!e.__){for(var t=tt.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var o=t.__m||(t.__m=[0,0]);e.__="P"+o[0]+"-"+o[1]++}return e.__}function hh(){for(var e;e=Nc.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ra),t.__h.some(Ai),t.__h=[]}catch(o){t.__h=[],yt.__e(o,e.__v)}}}yt.__b=function(e){tt=null,Ec&&Ec(e)},yt.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Lc&&Lc(e,t)},yt.__r=function(e){Pc&&Pc(e),Yn=0;var t=(tt=e.__c).__H;t&&(Ci===tt?(t.__h=[],tt.__h=[],t.__.some(function(o){o.__N&&(o.__=o.__N),o.u=o.__N=void 0})):(t.__h.some(ra),t.__h.some(Ai),t.__h=[],Yn=0)),Ci=tt},yt.diffed=function(e){Mc&&Mc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Nc.push(t)!==1&&Tc===yt.requestAnimationFrame||((Tc=yt.requestAnimationFrame)||bh)(hh)),t.__H.__.some(function(o){o.u&&(o.__H=o.u,o.u=void 0)})),Ci=tt=null},yt.__c=function(e,t){t.some(function(o){try{o.__h.some(ra),o.__h=o.__h.filter(function(r){return!r.__||Ai(r)})}catch(r){t.some(function(a){a.__h&&(a.__h=[])}),t=[],yt.__e(r,o.__v)}}),Ic&&Ic(e,t)},yt.unmount=function(e){Rc&&Rc(e);var t,o=e.__c;o&&o.__H&&(o.__H.__.some(function(r){try{ra(r)}catch(a){t=a}}),o.__H=void 0,t&&yt.__e(t,o.__v))};var Dc=typeof requestAnimationFrame=="function";function bh(e){var t,o=function(){clearTimeout(r),Dc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(o,35);Dc&&(t=requestAnimationFrame(o))}function ra(e){var t=tt,o=e.__c;typeof o=="function"&&(e.__c=void 0,o()),tt=t}function Ai(e){var t=tt;e.__c=e.__(),tt=t}function Ei(e,t){return!e||e.length!==t.length||t.some(function(o,r){return o!==e[r]})}function Fc(e,t){return typeof t=="function"?t(e):t}var Pi=null;function $c(e){Pi=e}function an(e){return Pi&&e&&typeof window<"u"&&e===window.tangu?{...e,...Pi}:e}var wn=e=>!!(e?.unitPage&&e.unitPublicEntry||e?.mobile&&e.extendMobile),sn=e=>!!e&&(!e.unitPage||!!e.unitPublicEntry),te=()=>an(typeof window<"u"?window.tangu:void 0)||{};function aa(e){let t=typeof e?.status=="number"?e.status:0;if(t>=200&&t<300)return{ok:!0,status:t,data:e?.json??null};let o=e?.json&&typeof e.json=="object"?e.json:null,r=typeof o?.error=="string"?o.error:typeof o?.code=="string"?o.code:null,a=typeof o?.detail=="string"?o.detail:typeof o?.message=="string"?o.message:null;return{ok:!1,status:t,code:r,detail:a,transport:typeof e?.error=="string"?e.error:null}}var Mi=e=>({ok:!1,status:0,code:null,detail:null,transport:e});async function Z(e,t={}){let o=te().cloudFetch;if(!o)return Mi("no_bridge");try{return aa(await o({path:e,...t}))}catch(r){return Mi(String(r?.message||r))}}async function ia(e,t){if(!e)return t();try{return aa(await e())}catch(o){return Mi(String(o?.message||o))}}var Fn=e=>e.status===401&&(e.transport==="not_signed_in"||e.code===null&&e.detail===null&&e.transport===null);function gt(e){return String(e?.message??e??"").replace(/^Error invoking remote method '[^']*':\s*/,"").replace(/^(?:[A-Za-z]*Error):\s*/,"").trim()}async function Pn(e,t,o){let r=te().cloudInvoke;if(!r)return!1;let a=e==="membership"&&t?o?[e,t,o]:[e,t]:[e];try{return!!(await r("auth:openPayCenter",...a))?.ok}catch{return!1}}async function mo(e){let t=te().openAccountCenter;if(!t)return!1;try{return!!(await t(e)).ok}catch{return!1}}var vh=0;function n(e,t,o,r,a,i){t||(t={});var s,l,c=t;if("ref"in c)for(l in c={},t)l=="ref"?s=t[l]:c[l]=t[l];var d={type:e,props:c,key:o,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--vh,__i:-1,__u:0,__source:a,__self:i};if(typeof e=="function"&&(s=e.defaultProps))for(l in s)c[l]===void 0&&(c[l]=s[l]);return _e.vnode&&_e.vnode(d),d}var yh={user:"M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z M4 20c.8-3.5 4-5.5 8-5.5s7.2 2 8 5.5",backpack:"M9 5V3h6v2 M6 8a6 6 0 0 1 12 0v12H6V8Z M9 13h6v5H9z M3 11h3v7H3z M18 11h3v7h-3 M10 8h4",gauge:"M4 16a8 8 0 1 1 16 0 M12 16l4-5 M12 16h.01",bug:"M8.5 9.5a3.5 3.5 0 0 1 7 0V15a3.5 3.5 0 0 1-7 0V9.5Z M12 10v8 M4 13h4.5 M15.5 13H20 M5 8.5l3.5 2 M19 8.5l-3.5 2 M5 18.5l3.5-2 M19 18.5l-3.5-2 M10 6L9 4 M14 6l1-2",pointer:"M5 4l13 6.5-5.5 1.5L10.5 18 5 4Z",shield:"M12 3l7 3v5c0 4.5-3 8.2-7 10-4-1.8-7-5.5-7-10V6l7-3Z",chart:"M4 20V10 M10 20V4 M16 20v-7 M21 20H3",message:"M5 4h14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7l-5 4v-4H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z",card:"M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Z M3 10h18 M7 15h4",coins:"M9 11a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z M15.5 9.2A5 5 0 1 1 9.8 16",clock:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M12 7v5l3 2",gift:"M4 11h16v9H4z M3 7h18v4H3z M12 7v13 M12 7c-1.5-3-5-3-5-1s3 1 5 1c2 0 5 1 5-1s-3.5-2-5 1",key:"M8 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z M11 11h10 M17 11v3 M20 11v2",laptop:"M5 5h14v10H5z M3 19h18",alert:"M12 4l9 16H3l9-16Z M12 10v4 M12 17h.01",external:"M14 4h6v6 M20 4l-9 9 M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5",copy:"M9 9h11v11H9z M5 15H4V4h11v1",check:"M5 12.5l4.5 4.5L19 7.5",checkin:"M5 5h14v15H5z M5 10h14 M9 3v4 M15 3v4 M9 15l2 2 4-4",tasks:"M4 6l2 2 3-3 M4 16l2 2 3-3 M12 7h9 M12 17h9",gamepad:"M6 8h12a4 4 0 0 1 4 4v3a3 3 0 0 1-5.4 1.8L15 15H9l-1.6 1.8A3 3 0 0 1 2 15v-3a4 4 0 0 1 4-4Z M7 11v3 M5.5 12.5h3 M15.5 12h.01 M18 13.5h.01",megaphone:"M4 10v4h3l9 4V6l-9 4H4Z M19 10a3 3 0 0 1 0 4 M8 14.5V19h3v-3",play:"M7 5l12 7-12 7V5Z",chevron:"M9 6l6 6-6 6",back:"M15 6l-6 6 6 6",arrowLeft:"M19 12H5M11 6l-6 6 6 6",pencil:"M4 20h4L19 9l-4-4L4 16v4Z M13.5 6.5l4 4",plus:"M12 5v14 M5 12h14",refresh:"M20 11a8 8 0 0 0-14.3-4.9L4 8 M4 4v4h4 M4 13a8 8 0 0 0 14.3 4.9L20 16 M20 20v-4h-4",phone:"M8 3h8a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M11 18h2",mail:"M4 6h16v12H4z M4 7l8 6 8-6",image:"M4 5h16v14H4z M4 16l5-5 4 4 3-3 4 4 M15.5 9.5h.01",x:"M6 6l12 12 M18 6L6 18",logout:"M15 4h4v16h-4 M10 8l-4 4 4 4 M6 12h10",globe:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M3 12h18 M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z",lock:"M6 11h12v9H6z M8.5 11V8a3.5 3.5 0 0 1 7 0v3",palette:"M12 3a9 9 0 0 0 0 18c1.2 0 2-.8 2-1.9 0-.5-.2-.9-.5-1.3-.3-.4-.5-.8-.5-1.3 0-1 .8-1.8 1.8-1.8H17a4 4 0 0 0 4-4c0-4.3-4-7.7-9-7.7Z M7.5 12.5h.01 M9 8.5h.01 M14 7.5h.01",calendar:"M5 5h14v15H5z M5 10h14 M9 3v4 M15 3v4",link:"M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1 M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1",flame:"M12 21a6 6 0 0 0 6-6c0-2.5-1.4-4.4-3-6-.3 1.5-1 2.5-2 3 .3-3-1-6-3.5-8 .2 3-1 4.8-2.2 6.3C6.4 11.5 6 13.2 6 15a6 6 0 0 0 6 6Z",trophy:"M8 4h8v6a4 4 0 0 1-8 0V4Z M8 6H5v1a3 3 0 0 0 3 3 M16 6h3v1a3 3 0 0 1-3 3 M12 14v4 M8.5 20h7",sprout:"M12 20v-8 M12 12c0-3-2-5-6-5 0 3.5 2 5 6 5Z M12 14c0-3 2-5 6-5 0 3.5-2 5-6 5Z",eye:"M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z M12 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",download:"M12 4v11 M7.5 11l4.5 4.5 4.5-4.5 M5 20h14",upload:"M12 16V5 M7.5 9.5 12 5l4.5 4.5 M5 20h14",up:"M12 19V5 M6 11l6-6 6 6",down:"M12 5v14 M6 13l6 6 6-6",sparkles:"M12 4l1.8 4.7 4.7 1.8-4.7 1.8L12 17l-1.8-4.7-4.7-1.8 4.7-1.8L12 4Z M18.5 15.5v4 M16.5 17.5h4",bot:"M6 9h12v10H6z M12 9V5 M12 4.5h.01 M9.5 13.5h.01 M14.5 13.5h.01 M3.5 13v3 M20.5 13v3",box:"M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3Z M4 7.5l8 4.5 8-4.5 M12 12v9",grid:"M4 4h7v7H4z M13 4h7v7h-7z M4 13h7v7H4z M13 13h7v7h-7z",note:"M6 3h9l4 4v14H6z M15 3v4h4 M9 12h6 M9 16h4",puzzle:"M9 3H4v6a3 3 0 1 0 0 6v5h6a3 3 0 1 1 6 0h4v-6a3 3 0 1 0 0-6V3h-5a3 3 0 1 1-6 0Z",home:"M4 11l8-7 8 7 M6 9.5V20h4v-5h4v5h4V9.5",info:"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z M12 11v5 M12 8h.01",ticket:"M3 8a2 2 0 0 0 0 4v0a2 2 0 0 1 0 4v2h18v-2a2 2 0 0 1 0-4 2 2 0 0 0 0-4V6H3v2Z M14 6v12",at:"M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z M16 12v1.5a2.5 2.5 0 0 0 5 0V12a9 9 0 1 0-3.6 7.2",heart:"M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7 7-7Z",star:"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3l-5.6 2.9 1.1-6.2L3 9.6l6.2-.9L12 3Z",rocket:"M4.5 16.5c-1.5 1.3-2 5-2 5s3.7-.5 5-2c.7-.8.7-2.1-.1-2.9a2.2 2.2 0 0 0-2.9-.1Z M12 15l-3-3a22 22 0 0 1 2-4A12.9 12.9 0 0 1 22 2c0 2.7-.8 7.5-6 11a22.4 22.4 0 0 1-4 2Z M9 12H4s.6-3 2-4c1.6-1.1 5 0 5 0 M12 15v5s3-.6 4-2c1.1-1.6 0-5 0-5",store:"M4 4h16l1 5H3l1-5Z M3 9a3 3 0 0 0 6 0 3 3 0 0 0 6 0 3 3 0 0 0 6 0 M5 11.5V20h14v-8.5 M10 20v-5h4v5"};function F({name:e,size:t=14,class:o}){return n("svg",{class:o,width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false",children:n("path",{d:yh[e]})})}function ln({size:e=12}){return n("svg",{class:"spin",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","aria-hidden":"true",focusable:"false",children:n("path",{d:"M21 12a9 9 0 1 1-6.2-8.56"})})}var xh={"events.title":"\u6D3B\u52A8","events.back":"\u8FD4\u56DE\u5E94\u7528","events.count":"{n} \u573A\u8FDB\u884C\u4E2D","events.group.active":"\u8FDB\u884C\u4E2D","events.group.notice":"\u516C\u544A","events.group.upcoming":"\u9884\u544A","events.ended":"\u5DF2\u7ED3\u675F\u7684\u6D3B\u52A8","events.endedEmpty":"\u8FD8\u6CA1\u6709\u7ED3\u675F\u7684\u6D3B\u52A8","events.list":"\u5168\u90E8\u6D3B\u52A8","events.kind.checkin":"\u7B7E\u5230","events.kind.tasks":"\u4EFB\u52A1","events.kind.game":"\u5C0F\u6E38\u620F","events.kind.notice":"\u516C\u544A","events.left.days":"\u5269 {n} \u5929","events.left.hours":"\u5269 {n} \u5C0F\u65F6","events.left.long":"\u5269\u4F59 {d} \u5929 {h} \u5C0F\u65F6","events.left.longHours":"\u5269\u4F59 {h} \u5C0F\u65F6","events.time.start":"{date} \u5F00\u59CB","events.time.claim":"\u6D3B\u52A8\u5DF2\u7ED3\u675F\uFF0C{date} \u524D\u9886\u53D6","events.time.claimShort":"{date} \u524D\u9886\u53D6","events.time.ended":"\u5DF2\u4E8E {date} \u7ED3\u675F","events.time.published":"{date} \u53D1\u5E03","events.rewards":"\u6D3B\u52A8\u5956\u52B1","events.checkin.signed":"\u5DF2\u7B7E {n}/{total}","events.checkin.today":"\u4ECA\u5929","events.checkin.day":"\u7B2C {n} \u5929","events.checkin.do":"\u4ECA\u65E5\u7B7E\u5230","events.checkin.done":"\u4ECA\u65E5\u5DF2\u7B7E","events.checkin.finished":"\u5DF2\u5168\u90E8\u7B7E\u5B8C","events.tasks.progress":"\u4EFB\u52A1\u8FDB\u5EA6","events.tasks.claim":"\u9886\u53D6","events.tasks.claimAll":"\u5168\u90E8\u9886\u53D6 ({n})","events.tasks.go":"\u53BB\u5B8C\u6210","events.tasks.closed":"\u6D3B\u52A8\u5DF2\u7ED3\u675F","events.game.board":"\u6392\u884C\u699C","events.game.me":"\u6211","events.game.anon":"\u533F\u540D\u73A9\u5BB6","events.game.enter":"\u8FDB\u5165\u6E38\u620F","events.game.install":"\u53BB\u5546\u5E97\u5B89\u88C5","events.game.empty":"\u8FD8\u6CA1\u6709\u4EBA\u4E0A\u699C","events.notice.more":"\u67E5\u770B\u8BE6\u60C5","events.toast.checkin":"\u5DF2\u7B7E\u5230\uFF0C{reward}","events.toast.claimed":"\u5DF2\u9886\u53D6 {reward}","events.toast.partial":"\u9886\u5230 {n} \u9879\uFF0C{m} \u9879\u6CA1\u9886\u5230\uFF0C\u7A0D\u540E\u518D\u8BD5","events.toast.backpack":"\u67E5\u770B\u80CC\u5305","events.err.failed":"\u6CA1\u9886\u5230\uFF0C\u7F51\u7EDC\u6062\u590D\u540E\u518D\u8BD5\u4E00\u6B21","events.err.notLive":"\u8FD9\u573A\u6D3B\u52A8\u5DF2\u7ECF\u7ED3\u675F","events.err.completed":"\u5DF2\u7ECF\u5168\u90E8\u7B7E\u5B8C","events.err.grantFailed":"\u5956\u52B1\u6CA1\u53D1\u51FA\u53BB\uFF0C\u5DF2\u767B\u8BB0\u8865\u53D1\uFF0C\u4E0D\u7528\u91CD\u590D\u9886\u53D6","events.login.title":"\u767B\u5F55\u540E\u53C2\u4E0E\u6D3B\u52A8","events.login.do":"\u767B\u5F55 Forsion","events.empty":"\u6682\u65F6\u6CA1\u6709\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8","events.error":"\u6D3B\u52A8\u6CA1\u6709\u52A0\u8F7D\u51FA\u6765","events.retry":"\u91CD\u8BD5","events.dot":"\u6709\u5956\u52B1\u53EF\u9886\u6216\u65B0\u6D3B\u52A8","penzor.rules.default":"\u4E91\u7AEF\u9ED8\u8BA4","penzor.rules.off":"\u4E0D\u540C\u6B65","penzor.rules.device":"\u8BBE\u5907","penzor.rules.run":"\u7ACB\u5373\u540C\u6B65","penzor.rules.twoWay":"\u53CC\u5411","penzor.rules.defaultForWeb":"\u9ED8\u8BA4\u76EE\u5F55\u4F9B\u7F51\u9875\u7AEF\u4F7F\u7528","penzor.rules.tab.rules":"\u540C\u6B65\u89C4\u5219","penzor.rules.tab.active":"\u6B63\u5728\u4F20\u8F93","penzor.rules.tab.history":"\u5386\u53F2\u8BB0\u5F55","penzor.rules.enable":"\u5F00\u542F\u5185\u5BB9\u540C\u6B65","penzor.rules.add":"\u6DFB\u52A0\u89C4\u5219","penzor.rules.source":"\u672C\u673A\u6765\u6E90","penzor.rules.destination":"\u4E91\u7AEF\u76EE\u6807","penzor.rules.direction":"\u65B9\u5411","penzor.rules.remove":"\u5220\u9664\u89C4\u5219","penzor.rules.inherit":"\u7A7A\u8DEF\u5F84\u4EE3\u8868\u6574\u4E2A Forsion\u3002\u5B50\u9879\u7EE7\u627F\u4E0A\u7EA7\u89C4\u5219\uFF0C\u6700\u5177\u4F53\u7684\u8DEF\u5F84\u4F18\u5148\uFF1B\u6CA1\u6709\u5339\u914D\u89C4\u5219\u7684\u5185\u5BB9\u4E0D\u540C\u6B65\u3002","penzor.rules.namespace":"\u9ED8\u8BA4\uFF1A\u4E91\u7AEF /Forsion/\uFF1B\u8BBE\u5907\u76EE\u5F55\uFF1A\u4E91\u7AEF /Forsion-\u8BBE\u5907ID/\u3002","penzor.rules.human":"human \u72EC\u7ACB\u9009\u62E9\u8303\u56F4\uFF1B\u9ED8\u8BA4\u65E5\u5386\u4F7F\u7528 human/CALENDAR.db\u3002\u6539\u5230\u8BBE\u5907\u76EE\u5F55\u540E\uFF0C\u7F51\u9875\u9ED8\u8BA4\u65E5\u5386\u4E0D\u8DDF\u968F\u5207\u6362\u3002","penzor.rules.preview":"\u9884\u89C8\u53D8\u66F4","penzor.rules.previewTitle":"\u786E\u8BA4\u672C\u6B21\u540C\u6B65\u8303\u56F4","penzor.rules.previewCounts":"\u4E0A\u4F20 {up} \u9879\uFF0C\u4E0B\u8F7D {down} \u9879\uFF0C{conflicts} \u9879\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u9700\u5408\u5E76\u6216\u4FDD\u7559\u7248\u672C\u3002","penzor.rules.retain":"\u65E7\u76EE\u6807\u4E2D\u7684\u5185\u5BB9\u4FDD\u7559\u3002\u5173\u95ED\u540C\u6B65\u4E0D\u4F1A\u5220\u9664\u672C\u673A\u6216\u4E91\u7AEF\u6587\u4EF6\uFF1B\u6E90\u6587\u4EF6\u53D8\u5316\u540E\u9700\u91CD\u65B0\u9884\u89C8\u3002","penzor.rules.back":"\u8FD4\u56DE\u4FEE\u6539","penzor.rules.apply":"\u786E\u8BA4\u5E76\u5F00\u59CB","penzor.rules.pause":"\u6682\u505C","penzor.rules.resume":"\u7EE7\u7EED","penzor.rules.noActive":"\u5F53\u524D\u6CA1\u6709\u6587\u4EF6\u6B63\u5728\u4F20\u8F93\u3002","penzor.rules.manual":"\u624B\u52A8\u4E0A\u4F20\u4E0E\u4E0B\u8F7D","penzor.rules.historyNote":"\u4FDD\u7559\u6700\u8FD1 200 \u9879\u3002\u51B2\u7A81\u65F6\u4FDD\u7559\u4E24\u4E2A\u7248\u672C\uFF0C\u5176\u4F59\u5185\u5BB9\u7EE7\u7EED\u540C\u6B65\u3002","penzor.rules.retry":"\u91CD\u8BD5\u5931\u8D25\u9879","penzor.rules.noHistory":"\u8FD8\u6CA1\u6709\u540C\u6B65\u8BB0\u5F55\u3002","penzor.rules.details":"\u67E5\u770B\u4F20\u8F93","penzor.rules.plugins":"\u63D2\u4EF6\u6570\u636E\u4ECD\u7531\u5404\u63D2\u4EF6\u7684\u6570\u636E\u540C\u6B65\u7BA1\u7406\u3002","penzor.rules.turnOff":"\u5173\u95ED\u63D2\u4EF6\u6570\u636E\u540C\u6B65","penzor.rules.turnOn":"\u5F00\u542F\u63D2\u4EF6\u6570\u636E\u540C\u6B65","penzor.rules.phase.idle":"\u7B49\u5F85\u4E0B\u6B21\u540C\u6B65","penzor.rules.phase.scanning":"\u6B63\u5728\u6838\u5BF9\u6587\u4EF6","penzor.rules.phase.syncing":"\u6B63\u5728\u540C\u6B65","penzor.rules.phase.paused":"\u5DF2\u6682\u505C","penzor.rules.state.queued":"\u7B49\u5F85\u4E2D","penzor.rules.state.active":"\u4F20\u8F93\u4E2D","penzor.rules.state.done":"\u5DF2\u5B8C\u6210","penzor.rules.state.failed":"\u5931\u8D25","penzor.rules.state.paused":"\u5DF2\u6682\u505C","penzor.rules.state.conflict":"\u5DF2\u4FDD\u7559\u51B2\u7A81\u7248\u672C","penzor.tree.synced":"\u540C\u6B65\u7684\u5185\u5BB9","penzor.tree.thisBackup":"\u8FD9\u53F0\u7535\u8111 \xB7 \u53EA\u5907\u4EFD","penzor.tree.byApp":"\u6309\u5E94\u7528\u770B","penzor.tree.legacy":"\u65E7\u7248\u667A\u5E93\u540C\u6B65","penzor.quota.sourceLimit":"\u8FD9\u4E00\u7C7B\u8FD8\u6709\u5355\u72EC\u4E0A\u9650 {max}\uFF0C\u5DF2\u7528 {used}","penzor.ov.mine":"\u4F60\u653E\u7684","penzor.ov.synced":"\u540C\u6B65\u4E0A\u6765\u7684","penzor.ov.stale":"\u4E0D\u518D\u66F4\u65B0","penzor.ov.uploads":"\u4F60\u81EA\u5DF1\u4E0A\u4F20\u548C\u6574\u7406\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u968F\u4FBF\u6539","penzor.ov.all":"\u7B14\u8BB0\u3001Agents\u3001\u6211\u7684\u8D44\u6599\u3001\u63D2\u4EF6","penzor.ov.allLast":"\u7B14\u8BB0\u3001Agents\u3001\u6211\u7684\u8D44\u6599\u3001\u63D2\u4EF6 \xB7 \u4E0A\u6B21\u540C\u6B65 {time}","penzor.ov.self":"\u53EA\u6709\u8FD9\u53F0\u7535\u8111\u7528\u7684\u90A3\u4EFD","penzor.ov.device":"\u53EA\u5728\u8FD9\u53F0\u7535\u8111\u548C\u5B83\u4E4B\u95F4\u5171\u7528","penzor.ov.agents":"Agent \u7684\u8BBE\u7F6E\u3001\u8BB0\u5FC6\u548C\u65E5\u5FD7","penzor.ov.profile":"\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.ov.sync":"\u7535\u8111\u540C\u6B65\u4E0A\u6765\u7684\u667A\u5E93","penzor.ov.legacy":"\u8FD9\u53F0\u7535\u8111\u5F00\u4E86\u65B0\u540C\u6B65\u540E\u4E0D\u518D\u5199\u5165\uFF0C\u7559\u7740\u4E0D\u5220","penzor.ov.ama":"\u7F51\u9875\u7248\u7684\u7B14\u8BB0\uFF0C\u548C\u540C\u6B65\u4E0A\u6765\u7684\u7B14\u8BB0","penzor.ov.apps":"\u5404\u5E94\u7528\u5B58\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u5220\u3001\u6539\u540D","penzor.ov.plugins":"\u63D2\u4EF6\u81EA\u5DF1\u5B58\u7684\u8BBE\u7F6E\uFF0C\u8FD9\u91CC\u53EA\u663E\u793A\u5360\u7528","penzor.ov.exports":"\u5BFC\u51FA\u7684\u6587\u4EF6\uFF0C\u53EF\u4EE5\u4E0B\u8F7D\u3001\u5220\u9664","penzor.ov.segNotes":"\u7B14\u8BB0","penzor.ov.segSync":"\u8BBE\u5907\u540C\u6B65","penzor.ov.segOther":"\u5176\u4ED6","penzor.content.badge":"\u65B0\u540C\u6B65\u7EF4\u62A4","penzor.content.badgeLast":"\u65B0\u540C\u6B65\u7EF4\u62A4 \xB7 \u4E0A\u6B21\u540C\u6B65 {time}","penzor.content.noteAll":"\u8FD9\u662F\u4E91\u7AEF\u7684\u90A3\u4E00\u4EFD\uFF0C\u4F60\u767B\u5F55\u7684\u6BCF\u53F0\u8BBE\u5907\u548C\u7F51\u9875\u7248\u770B\u5230\u7684\u90FD\u662F\u5B83\u3002\u8981\u6539\u6587\u4EF6\uFF0C\u5728\u7535\u8111\u4E0A\u7684\u7B14\u8BB0\u3001Agents \u91CC\u6539\uFF0C\u6539\u5B8C\u4F1A\u81EA\u52A8\u540C\u6B65\u4E0A\u6765\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.content.noteSelf":"\u53EA\u6709\u8FD9\u53F0\u7535\u8111\u7528\u7684\u90A3\u4E00\u4EFD\uFF0C\u522B\u7684\u8BBE\u5907\u770B\u4E0D\u5230\u3002\u8981\u6539\u6587\u4EF6\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\u6539\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.content.noteDevice":"\u53EA\u5728\u8FD9\u53F0\u7535\u8111\u548C {name} \u4E4B\u95F4\u5171\u7528\u3002\u8981\u6539\u6587\u4EF6\u5728\u7535\u8111\u4E0A\u6539\uFF1B\u8FD9\u91CC\u53EF\u4EE5\u4E0B\u8F7D\u3002","penzor.legacy.title":"\u8FD9\u53F0\u7535\u8111\u5F00\u4E86\u65B0\u540C\u6B65\u540E\uFF0C\u5C31\u4E0D\u518D\u5F80\u8FD9\u4E2A\u5E93\u5199\u4E86","penzor.legacy.body":"\u8FD9\u53F0\u7535\u8111\u7684\u7B14\u8BB0\u73B0\u5728\u5728\u300C\u6240\u6709\u8BBE\u5907\u5171\u7528 \u203A \u7B14\u8BB0\u300D\u91CC\u3002\u8FD8\u6CA1\u5347\u7EA7\u7684\u65E7\u7248\u684C\u9762\u53EF\u80FD\u4ECD\u4F1A\u5199\u5230\u8FD9\u91CC\uFF0C\u6240\u4EE5\u8FD9\u4EFD\u7559\u7740\u3001\u4E0D\u5220\u3002","penzor.legacy.go":"\u53BB\u770B\u65B0\u7684\u90A3\u4EFD","penzor.drive.total":"\u6574\u4E2A\u84EC\u6D32\u4E91\u5DF2\u7528 {used} / {max}","penzor.drive.seeAll":"\u67E5\u770B","penzor.cs.statusOff":"\u672A\u5F00","penzor.cs.statusPaused":"\u5DF2\u6682\u505C","penzor.cs.statusRun":"\u540C\u6B65\u4E2D {pct}%","penzor.cs.statusScan":"\u6B63\u5728\u6838\u5BF9\u6587\u4EF6","penzor.cs.statusWarn":"{n} \u9879\u8981\u5904\u7406","penzor.cs.statusOk":"\u5DF2\u540C\u6B65","penzor.cs.statusOkAgo":"\u5DF2\u540C\u6B65 \xB7 {time}","penzor.widget.signedOut":"\u672A\u767B\u5F55 Forsion \u8D26\u53F7","penzor.widget.signInHint":"\u767B\u5F55\u540E\u624D\u80FD\u540C\u6B65","penzor.widget.off":"\u4E91\u540C\u6B65\u6CA1\u5F00","penzor.widget.paused":"\u540C\u6B65\u5DF2\u6682\u505C","penzor.widget.running":"\u6B63\u5728\u540C\u6B65","penzor.widget.problem":"\u540C\u6B65\u9047\u5230\u95EE\u9898","penzor.widget.active":"\u6B63\u5728\u4F20 {n} \u9879","penzor.widget.queued":"\u8FD8\u6709 {n} \u9879\u6392\u961F","penzor.widget.waiting":"{n} \u9879\u7B49\u5F85\u540C\u6B65","penzor.widget.failed":"\u6CA1\u540C\u6B65\u6210\u529F","penzor.widget.error":"\u540C\u6B65\u51FA\u9519\u4E86","penzor.widget.errorMeta":"\u51FA\u9519","penzor.widget.conflict":"\u51B2\u7A81\uFF0C\u4E24\u4EFD\u90FD\u7559\u7740","penzor.widget.more":"\u8FD8\u6709 {n} \u9879\u8981\u770B","penzor.widget.last":"\u4E0A\u6B21\u540C\u6B65 {time}","penzor.widget.pending":"\u4E91\u7AEF\u5DF2\u6709\u4E00\u4EFD\u7B14\u8BB0","penzor.widget.notesFailed":"\u7B14\u8BB0\u5E93\u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.widget.agentsFailed":"Agent \u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.cs.thisComputer":"\u8FD9\u53F0\u7535\u8111\uFF1A{name}","penzor.cs.thisComputerLabel":"\u8FD9\u53F0\u7535\u8111\uFF1A","penzor.cs.rename":"\u6539\u8FD9\u53F0\u7535\u8111\u7684\u540D\u5B57","penzor.cs.renameHint":"\u6539\u4E86\u4EE5\u540E\uFF0C\u522B\u7684\u8BBE\u5907\u4E0A\u4E5F\u663E\u793A\u8FD9\u4E2A\u540D\u5B57 \xB7 \u56DE\u8F66\u4FDD\u5B58","penzor.cs.name.taken":"\u53E6\u4E00\u53F0\u8BBE\u5907\u5DF2\u7ECF\u53EB\u8FD9\u4E2A\u540D\u5B57\uFF0C\u6362\u4E00\u4E2A\u5427","penzor.cs.name.reserved":"macOS\u3001Windows\u3001Linux \u7559\u7ED9\u7CFB\u7EDF\uFF0C\u6362\u4E00\u4E2A\u540D\u5B57\u5427","penzor.cs.name.invalid":"\u540D\u5B57\u6700\u591A 64 \u4E2A\u5B57\uFF0C\u4E0D\u80FD\u5E26\u65B9\u62EC\u53F7","penzor.cs.othersN":"\u53E6\u5916 {n} \u53F0\uFF1A{names}","penzor.cs.noOthers":"\u8FD8\u6CA1\u6709\u522B\u7684\u8BBE\u5907\u767B\u5F55\u8FD9\u4E2A\u8D26\u53F7","penzor.cs.log":"\u6700\u8FD1\u8BB0\u5F55","penzor.cs.more":"\u66F4\u591A","penzor.cs.advanced":"\u9AD8\u7EA7\uFF1A\u6309\u89C4\u5219\u7F16\u8F91","penzor.cs.backSimple":"\u8FD4\u56DE\u540C\u6B65","penzor.cs.firstTitle":"\u628A\u8FD9\u53F0\u7535\u8111\u540C\u6B65\u5230\u84EC\u6D32\u4E91","penzor.cs.firstBody":"\u4E0B\u9762\u662F\u5EFA\u8BAE\u7684\u8303\u56F4\uFF0C\u53EF\u4EE5\u5148\u6539\u3002\u70B9\u300C\u5F00\u59CB\u540C\u6B65\u300D\u4E4B\u524D\u4E0D\u4F1A\u4F20\u4EFB\u4F55\u4E1C\u897F\uFF1B\u4E91\u7AEF\u5DF2\u6709\u7684\u4E0D\u4F1A\u88AB\u8986\u76D6\u6216\u5220\u9664\u3002","penzor.cs.note":"\u60F3\u8BA9\u67D0\u4E2A\u7B14\u8BB0\u6587\u4EF6\u5939\u6216 Agent \u5355\u72EC\u5904\u7406\uFF0C\u70B9\u5B83\u4E0B\u9762\u90A3\u884C\u5C0F\u5B57\u5C31\u80FD\u6539\u3002\u5173\u6389\u5F00\u5173\u53EA\u662F\u4E0D\u518D\u540C\u6B65\uFF0C\u4E0D\u5220\u9664\u4EFB\u4F55\u6587\u4EF6\u3002","penzor.cs.barFirst":"\u6253\u5F00\u540C\u6B65\u4F1A\u4E0A\u4F20 {up} \u4E2A\u6587\u4EF6\u3001\u4E0B\u8F7D {down} \u4E2A","penzor.cs.barChanged":"\u6539\u4E86 {n} \u5904","penzor.cs.barOne":"\u6539\u4E86 1 \u5904\uFF1A\u300C{name}\u300D\u6539\u6210{scope}","penzor.cs.offName":"\u4E0D\u540C\u6B65","penzor.cs.barCounts":"\u4F1A\u4E0A\u4F20 {up} \u4E2A\u6587\u4EF6\u3001\u4E0B\u8F7D {down} \u4E2A \xB7 \u4E0D\u5220\u9664\u4EFB\u4F55\u6587\u4EF6","penzor.cs.barSize":"\u5171 {size}","penzor.cs.noDelete":"\u4E0D\u4F1A\u5220\u9664\u4EFB\u4F55\u6587\u4EF6","penzor.cs.barConflicts":"{n} \u4E2A\u4E24\u8FB9\u90FD\u6539\u8FC7\uFF0C\u4F1A\u5404\u7559\u4E00\u4EFD","penzor.cs.barCounting":"\u6B63\u5728\u7B97\u8981\u4F20\u591A\u5C11\u2026","penzor.cs.barRecount":"\u6587\u4EF6\u521A\u6709\u53D8\u5316\uFF0C\u5DF2\u7ECF\u91CD\u65B0\u7B97\u8FC7\uFF0C\u8BF7\u518D\u786E\u8BA4\u4E00\u6B21","penzor.cs.later":"\u5148\u4E0D\u5F00","penzor.cs.start":"\u5F00\u59CB\u540C\u6B65","penzor.cs.undo":"\u64A4\u9500","penzor.cs.confirm":"\u786E\u8BA4","penzor.cs.up":"\u6B63\u5728\u4E0A\u4F20\u300C{name}\u300D","penzor.cs.down":"\u6B63\u5728\u4E0B\u8F7D\u300C{name}\u300D","penzor.cs.waiting":"\u8FD8\u6709 {n} \u4E2A\u6587\u4EF6\u7B49\u7740\u4F20","penzor.cs.failedN":"{n} \u4E2A\u6587\u4EF6\u6CA1\u4F20\u6210\u529F","penzor.cs.retry":"\u91CD\u8BD5","penzor.cs.seeLog":"\u770B\u8BB0\u5F55","penzor.cs.logEmpty":"\u8FD8\u6CA1\u6709\u540C\u6B65\u8BB0\u5F55\u3002","penzor.cs.logNote":"\u4FDD\u7559\u6700\u8FD1 200 \u9879\u3002\u4E24\u8FB9\u90FD\u6539\u8FC7\u65F6\u4F1A\u5404\u7559\u4E00\u4EFD\u3002","penzor.cat.notes":"\u7B14\u8BB0","penzor.cat.notesDesc":"Amadeus \u91CC\u7684\u667A\u5E93","penzor.cat.agents":"Agents \u4E0E\u8BB0\u5FC6","penzor.cat.agentsDesc":"\u6BCF\u4E2A Agent \u7684\u8BBE\u7F6E\u3001\u8BB0\u5FC6\u548C\u65E5\u5FD7","penzor.cat.profile":"\u6211\u7684\u8D44\u6599","penzor.cat.profileDesc":"\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.cat.profileOn":"\u542B\u9ED8\u8BA4\u65E5\u5386","penzor.cat.plugins":"\u63D2\u4EF6","penzor.cat.pluginsDesc":"\u63D2\u4EF6\u7684\u6587\u4EF6\u5939\u548C\u8BBE\u7F6E","penzor.cat.others":"\u5176\u4ED6\u6587\u4EF6","penzor.cat.othersDesc":"\u5DE5\u4F5C\u6587\u4EF6\u5939\u91CC\u4E0D\u5C5E\u4E8E\u4E0A\u9762\u51E0\u7C7B\u7684\u6587\u4EF6","penzor.cat.files":"{n} \u4E2A\u6587\u4EF6 \xB7 {size}","penzor.agents.pickHint":"\u9010\u4E2A\u9009\uFF0C\u65B0\u5EFA\u7684 Agent \u9ED8\u8BA4\u4E0D\u540C\u6B65 \xB7 \u5DF2\u9009 {n} \u4E2A","penzor.agents.legacyHint":"\u6309\u65E7\u8BBE\u7F6E\uFF0C\u65B0\u5EFA\u7684 Agent \u4E5F\u4F1A\u540C\u6B65 \xB7 \u5DF2\u9009 {n} \u4E2A","penzor.agents.none":"\u8FD9\u53F0\u7535\u8111\u4E0A\u8FD8\u6CA1\u6709 Agent","penzor.agents.muse":"\u535C\u7B97\u5B50","penzor.agents.museDesc":"\u540E\u53F0 Agent\uFF0C\u6BCF\u53F0\u7535\u8111\u5404\u8DD1\u5404\u7684","penzor.agents.locked":"\u6682\u4E0D\u5F00\u653E\u540C\u6B65","penzor.agents.cloudOnly":"\u5728\u4E91\u7AEF \xB7 \u8FD9\u53F0\u7535\u8111\u8FD8\u6CA1\u6709\uFF0C\u6253\u5F00\u5C31\u4E0B\u8F7D","penzor.agents.historianNote":"Historian \u7684\u590D\u76D8\u8349\u7A3F\u7559\u5728\u6BCF\u53F0\u7535\u8111\u4E0A\uFF0C\u4E0D\u540C\u6B65\uFF1B\u5B83\u8BB0\u8FDB\u5404\u4E2A Agent \u65E5\u5FD7\u91CC\u7684\u5185\u5BB9\uFF0C\u8DDF\u7740\u90A3\u4E2A Agent \u8D70\u3002","penzor.agents.archiveRunning":"\u4E91\u7AEF\u7684 Agent \u6B63\u5728\u5B58\u6863\uFF0C\u7A0D\u7B49\u4E00\u4F1A\u513F\u518D\u6253\u5F00","penzor.cs.accountReview":"\u8D26\u53F7\u5DF2\u5207\u6362\u3002\u672C\u673A\u6587\u4EF6\u53EF\u80FD\u5305\u542B\u53E6\u4E00\u4E2A\u8D26\u53F7\u7684\u5185\u5BB9\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u540C\u6B65\u8303\u56F4\u5E76\u786E\u8BA4\u540E\u518D\u540C\u6B65\u3002","penzor.agents.openFailed":"\u6CA1\u80FD\u6253\u5F00\u8FD9\u4E2A Agent \u7684\u540C\u6B65\uFF0C\u5148\u4FDD\u6301\u4E0D\u540C\u6B65\uFF1A{reason}","penzor.archive.title":"Agent \u540C\u6B65\u6539\u6210\u9010\u4E2A\u9009\u4E86","penzor.archive.body":"\u4E4B\u524D\u8DDF\u7740\u603B\u5F00\u5173\u540C\u6B65\u7684 Agent \u90FD\u5DF2\u505C\u4E0B\uFF0C\u4E91\u7AEF\u90A3\u4EFD\u5B58\u8FDB\u4E86\u300C\u6211\u7684\u4E91\u76D8 \u203A {shelf} \u203A {name}\u300D\uFF0C\u53EA\u8BFB\uFF0C\u80FD\u4E0B\u8F7D\u3002\u60F3\u7EE7\u7EED\u540C\u6B65\u7684\uFF0C\u5728\u4E0B\u9762\u9010\u4E2A\u6253\u5F00\u3002","penzor.archive.shelf":"\u5B58\u6863","penzor.archive.ok":"\u77E5\u9053\u4E86","penzor.archive.open":"\u6253\u5F00\u5B58\u6863","penzor.archive.note":"\u8FD9\u662F Agent \u540C\u6B65\u7684\u5B58\u6863\uFF0C\u53EA\u8BFB\uFF1A\u80FD\u4E0B\u8F7D\uFF0C\u80FD\u6574\u4EFD\u5220\u9664\u3002","penzor.ask.title":"{name} \u5728\u4E91\u7AEF\u5DF2\u7ECF\u6709\u4E00\u4EFD","penzor.ask.when":"\u4E91\u7AEF\u90A3\u4EFD\u6700\u540E\u6539\u4E8E {cloud}\uFF0C\u8FD9\u53F0\u6700\u540E\u6539\u4E8E {local}\u3002\u6253\u5F00\u540C\u6B65\u524D\u9009\u4E00\u6B21\uFF0C\u4EE5\u540E\u81EA\u52A8\u5408\u3002","penzor.ask.merge":"\u5408\u5728\u4E00\u8D77","penzor.ask.mergeDesc":"\u8BB0\u5FC6\u3001\u65E5\u5FD7\u3001\u65E5\u7A0B\u6309\u6761\u5408\u5E76\uFF1B\u8BBE\u7F6E\u3001\u6027\u683C\u8FD9\u7C7B\u4E24\u8FB9\u90FD\u6539\u4E86\u7684\uFF0C\u7528\u8F83\u65B0\u7684\u90A3\u4EFD\uFF0C\u53E6\u4E00\u4EFD\u653E\u8FDB\u672C\u673A\u56DE\u6536","penzor.ask.cloud":"\u4EE5\u4E91\u7AEF\u4E3A\u51C6","penzor.ask.cloudDesc":"\u8FD9\u53F0\u7684\u6574\u4EFD\u5148\u653E\u8FDB\u672C\u673A\u56DE\u6536\uFF0C\u518D\u6362\u6210\u4E91\u7AEF\u90A3\u4EFD","penzor.ask.local":"\u4EE5\u8FD9\u53F0\u4E3A\u51C6","penzor.ask.localDesc":"\u4E91\u7AEF\u90A3\u4EFD\u5148\u8FDB\u5B58\u6863\uFF0C\u518D\u6362\u6210\u8FD9\u53F0\u7684","penzor.ask.recommended":"\u5EFA\u8BAE","penzor.ask.foot":"\u56DE\u6536\u5728 agents/.removed\uFF0C\u80FD\u627E\u56DE","penzor.ask.cancel":"\u53D6\u6D88","penzor.ask.confirm":"\u6253\u5F00\u540C\u6B65","penzor.cat.pluginsN":"{n} \u4E2A\u63D2\u4EF6","penzor.cat.custom":"\u53E6\u6709 {n} \u6761\u81EA\u5B9A\u4E49\u89C4\u5219","penzor.cat.notSynced":"\u4E0D\u540C\u6B65 \xB7 \u53EA\u7559\u5728\u8FD9\u53F0\u7535\u8111","penzor.scope.all":"\u6240\u6709\u8BBE\u5907\u5171\u7528","penzor.scope.allDesc":"\u6BCF\u53F0\u767B\u5F55\u7684\u8BBE\u5907\u548C\u7F51\u9875\u7248\u90FD\u662F\u540C\u4E00\u4EFD","penzor.scope.self":"\u53EA\u5907\u4EFD\u8FD9\u53F0\u7535\u8111","penzor.scope.selfDesc":"\u4E91\u7AEF\u5355\u72EC\u5B58\u4E00\u4EFD\uFF0C\u522B\u7684\u8BBE\u5907\u770B\u4E0D\u5230","penzor.scope.with":"\u53EA\u548C {name} \u5171\u7528","penzor.scope.menuTitle":"\u300C{name}\u300D\u548C\u8C01\u5171\u7528","penzor.scope.menuFoot":"\u4E0D\u60F3\u4E0A\u4E91\u5C31\u5173\u6389\u53F3\u8FB9\u7684\u5F00\u5173","penzor.scope.calendarNote":"\u7F51\u9875\u7248\u7684\u9ED8\u8BA4\u65E5\u5386\u4E0D\u4F1A\u8DDF\u7740\u53D8","penzor.unified.stale":"\u5237\u65B0\u5931\u8D25\uFF0C\u4EE5\u4E0B\u4FDD\u7559\u4E0A\u6B21\u7EDF\u8BA1\uFF1B\u5F53\u524D\u7528\u91CF\u672A\u77E5\uFF0C\u8BF7\u91CD\u8BD5\u3002","penzor.unified.uploadTo":"\u4E0A\u4F20\u5230\u300C\u6211\u7684\u6587\u4EF6\u300D","penzor.unified.apps":"\u666E\u901A\u6587\u4EF6\u53EF\u7BA1\u7406 \xB7 \u6765\u6E90\u9650\u5236\u4F18\u5148","penzor.trash.ama":"Amadeus \xB7 \u5F85\u6E05\u7406\u5FEB\u7167","penzor.trash.amaNote":"\u88AB\u5220\u7684\u5F53\u524D\u6587\u4EF6\u4ECD\u8BA1\u5165\u989D\u5EA6\uFF0C\u5386\u53F2\u7248\u672C\u4E0D\u91CD\u590D\u8BA1\u5165\u300230 \u5929\u540E\u7B49\u5F85\u7CFB\u7EDF\u6E05\u7406\uFF1B\u6B64\u5904\u53EA\u8BFB\uFF0C\u4E0D\u53D7\u300C\u6E05\u7A7A\u56DE\u6536\u7AD9\u300D\u5F71\u54CD\u3002","penzor.trash.expires":"\u53EF\u6E05\u7406\u65E5\u671F","penzor.source.openAgents":"\u5728 Agents \u4E2D\u6253\u5F00","penzor.source.openCalendar":"\u6253\u5F00\u65E5\u5386","penzor.source.entryUnavailable":"\u6B64\u5BBF\u4E3B\u6682\u672A\u63D0\u4F9B\u8BE5\u5165\u53E3","penzor.uploads":"\u6211\u7684\u6587\u4EF6","penzor.source.agents":"Agents","penzor.source.profile":"\u6211\u7684\u8D44\u6599","penzor.source.plugins":"\u63D2\u4EF6\u6570\u636E","penzor.source.readonly":"\u540C\u6B65\u6765\u6E90\u4E3A\u53EA\u8BFB\uFF0C\u8BF7\u5728\u539F\u4F4D\u7F6E\u7F16\u8F91\u6216\u5220\u9664\uFF1B\u6B64\u5904\u53EF\u4E0B\u8F7D\u5DF2\u540C\u6B65\u7684\u6587\u4EF6\u3002","penzor.source.appNote":"\u5E94\u7528\u6587\u4EF6\u7531\u539F\u5E94\u7528\u7BA1\u7406\uFF0C\u8BF7\u5728\u5E94\u7528\u4E2D\u7F16\u8F91\u6216\u5220\u9664\u3002","penzor.source.market":"\u5546\u5E97\u6295\u7A3F","penzor.ov.market":"\u4F60\u6295\u5230\u5546\u5E97\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u548C Agent \u5305\uFF0C\u8DDF\u7740\u5546\u5E97\u6761\u76EE\u8D70","penzor.source.marketNote":"\u8FD9\u91CC\u7684\u5305\u8DDF\u7740\u5546\u5E97\u6761\u76EE\u8D70\uFF1A\u5728\u300C\u5546\u5E97 \u2192 \u6211\u7684\u6295\u7A3F\u300D\u5220\u6389\u6761\u76EE\u624D\u4F1A\u91CA\u653E\u3002\u4ECE GitHub\u3001npm \u62C9\u6765\u7684\u5305\u7531\u5546\u5E97\u4EE3\u5B58\uFF0C\u4E0D\u7B97\u4F60\u7684\u7A7A\u95F4\u3002","penzor.market.badge":"\u7531\u5546\u5E97\u7BA1\u7406","penzor.market.meta":"{size} \xB7 {n} \u4E2A\u5305","penzor.market.history":"\u65E7\u7248\u672C {size}\uFF0C\u548C\u522B\u5904\u4E00\u6837\u4E0D\u7B97","penzor.market.older":"\u53E6\u6709\u65E7\u7248\u672C {size}","penzor.market.updating":"\u66F4\u65B0\u5F85\u5BA1\u6838","penzor.market.notCounted":"\u4E0D\u7B97","penzor.market.fromGithub":"\u4ECE GitHub \u62C9\u53D6 \xB7 \u5546\u5E97\u4EE3\u5B58","penzor.market.fromNpm":"\u4ECE npm \u62C9\u53D6 \xB7 \u5546\u5E97\u4EE3\u5B58","penzor.market.type.plugin":"\u63D2\u4EF6","penzor.market.type.skill":"\u6280\u80FD","penzor.market.type.agent":"Agent","penzor.market.type.space":"Space","penzor.market.type.theme":"\u4E3B\u9898","penzor.market.type.amadeusPlugin":"Amadeus \u63D2\u4EF6","penzor.market.status.approved":"\u5DF2\u4E0A\u67B6","penzor.market.status.pending":"\u5F85\u5BA1\u6838","penzor.market.status.rejected":"\u672A\u901A\u8FC7","penzor.col.type":"\u7C7B\u578B","penzor.col.status":"\u72B6\u6001","penzor.source.pluginNote":"\u4EC5\u5C55\u793A\u63D2\u4EF6\u540D\u79F0\u548C\u5360\u7528\uFF1B\u6570\u636E\u53EF\u80FD\u542B\u914D\u7F6E\u6216\u51ED\u636E\uFF0C\u4E0D\u76F4\u63A5\u9884\u89C8\u6216\u4E0B\u8F7D\u3002","penzor.unified.unavailable":"\u7EDF\u8BA1\u4E0D\u53EF\u7528","penzor.unified.incomplete":"\u7EDF\u4E00\u7528\u91CF\u5C1A\u672A\u7EDF\u8BA1\u5B8C\u6574\uFF0C\u4E0D\u80FD\u636E\u6B64\u5224\u65AD\u662F\u5426\u8D85\u989D\u3002\u8BF7\u5237\u65B0\u91CD\u8BD5\u3002","penzor.unified.enforced":"\u7EDF\u4E00\u989D\u5EA6\u5DF2\u542F\u7528\uFF1A\u8D85\u989D\u65F6\u6682\u505C\u65B0\u589E\u5185\u5BB9\u548C\u53D8\u5927\u7684\u6587\u4EF6\uFF1B\u4E0B\u8F7D\u3001\u5220\u9664\u53CA\u4E0D\u589E\u5927\u7684\u8986\u76D6\u4ECD\u53EF\u7528\u3002","penzor.unified.grace":"\u901A\u77E5\u5BBD\u9650\u671F\u81F3 {date}\uFF0C\u76EE\u524D\u4E0D\u65B0\u589E\u7EDF\u4E00\u989D\u5EA6\u62E6\u622A\u3002","penzor.unified.rolloutPolicy":"\u5BB9\u91CF\u653F\u7B56\u901A\u77E5\uFF1A\u6700\u65E9\u5728\u786E\u8BA4\u901A\u77E5 30 \u5929\u540E\uFF0C\u7EDF\u4E00\u989D\u5EA6\u624D\u53EF\u80FD\u9650\u5236\u589E\u957F\u5199\u5165\uFF1B\u5E94\u7528\u6587\u4EF6\u5386\u53F2\u5C06\u4EC5\u4FDD\u7559\u6700\u8FD1 30 \u5929\u5185\u6700\u591A 50 \u4EFD\u3002\u5386\u53F2\u4E0D\u8BA1\u5957\u9910\uFF0C\u6E05\u7406\u524D\u4ECD\u53EF\u4E0B\u8F7D\u5907\u4EFD\uFF0C\u5F53\u524D\u6587\u4EF6\u4E0D\u53D7\u5386\u53F2\u6E05\u7406\u5F71\u54CD\u3002","penzor.unified.ack":"\u5DF2\u9605\u8BFB\u5BB9\u91CF\u4E0E\u5386\u53F2\u4FDD\u7559\u901A\u77E5","penzor.unified.notice":"\u73B0\u5728\u53EA\u662F\u63D0\u9192\uFF0C\u8D85\u4E86\u4E5F\u4E0D\u4F1A\u505C\u6389\u540C\u6B65\u6216\u4E0A\u4F20","penzor.unified.over":"\u5DF2\u8D85\u8FC7\u7EDF\u4E00\u989D\u5EA6\u3002\u76EE\u524D\u53EA\u63D0\u9192\uFF0C\u4E0D\u65B0\u589E\u540C\u6B65\u6216\u4E0A\u4F20\u62E6\u622A\uFF1B\u53EF\u6E05\u7406\u6587\u4EF6\u6216\u5347\u7EA7\u5957\u9910\u3002","penzor.unified.warn":"\u7EDF\u4E00\u7A7A\u95F4\u5373\u5C06\u7528\u6EE1\u3002\u76EE\u524D\u53EA\u63D0\u9192\uFF0C\u4E0D\u65B0\u589E\u540C\u6B65\u6216\u4E0A\u4F20\u62E6\u622A\u3002","penzor.unified.accounting":"\u542B\u56DE\u6536\u7AD9 {trash}\uFF0C\u5386\u53F2\u7248\u672C\u4E0D\u7B97","penzor.unified.writable":"\u53EF\u4E0A\u4F20\u3001\u65B0\u5EFA\u3001\u91CD\u547D\u540D\u548C\u5220\u9664","penzor.unified.readonly":"\u53EA\u8BFB \xB7 \u7531\u6765\u6E90\u7BA1\u7406","penzor.unified.export":"\u53EF\u4E0B\u8F7D\u3001\u91CD\u547D\u540D\u548C\u6C38\u4E45\u5220\u9664","penzor.unified.counted":"\u8BA1\u5165\u7EDF\u4E00\u7528\u91CF \xB7 \u63D0\u9192\u9636\u6BB5","penzor.unified.policy":"\u771F\u8981\u9650\u5236\u4E4B\u524D\uFF0C\u81F3\u5C11\u63D0\u524D 30 \u5929\u544A\u8BC9\u4F60\u3002","penzor.unified.legacySync":"\u539F\u8BBE\u5907\u540C\u6B65\u9650\u5236\uFF1A{used} / {max}","penzor.unified.legacyApps":"\u539F\u5E94\u7528\u6587\u4EF6\u9650\u5236\uFF1A{used} / {max}","sub.identity":"\u63D2\u4EF6 ID","sub.identityHint":"\u63D0\u4EA4\u540E\u81EA\u52A8\u5206\u914D\u552F\u4E00 ID\u3002\u540D\u79F0\u53EF\u4EE5\u91CD\u590D\uFF0C\u66F4\u65B0\u6CBF\u7528\u540C\u4E00\u4E2A ID\u3002","sub.description":"\u8BE6\u7EC6\u63CF\u8FF0","sub.tags":"\u6807\u7B7E","sub.tagsHint":"\u4EE5\u9017\u53F7\u5206\u9694\uFF0C\u6700\u591A 8 \u4E2A","sub.minAppVersion":"\u6700\u4F4E Forsion \u7248\u672C","sub.maxAppVersion":"\u6700\u9AD8\u7248\u672C\uFF08\u4E0D\u542B\uFF09","sub.optional":"\u9009\u586B","sub.platforms":"\u652F\u6301\u7684\u7AEF","sub.requirementsHint":"\u652F\u6301 desktop\u3001macos\u3001windows\u3001linux\u3001android\u3001ios\u3001web\u3002\u7559\u7A7A\u8868\u793A\u672A\u58F0\u660E\u3002ZIP \u6E05\u5355\u4E2D\u7684\u8981\u6C42\u4F1A\u81EA\u52A8\u8BFB\u53D6\uFF0C\u624B\u586B\u503C\u987B\u4E0E\u6E05\u5355\u4E00\u81F4\u3002","sub.err.market_requirements_invalid":"\u7248\u672C\u8981\u6C42\u6216\u5E73\u53F0\u65E0\u6548\u3002","sub.err.market_requirements_mismatch":"\u624B\u586B\u7248\u672C\u8981\u6C42\u4E0E ZIP \u6E05\u5355\u4E0D\u4E00\u81F4\u3002","sub.mine":"\u6211\u7684\u6295\u7A3F","page.submission":"\u63D2\u4EF6\u6295\u7A3F","page.webPages":"\u6211\u7684\u7F51\u9875","web.title":"\u6211\u7684\u7F51\u9875","web.desc":"\u7528 Tangu \u6216 Coding Space \u53D1\u5E03\u7684\u7F51\u9875\u90FD\u5728\u8FD9\u91CC\u3002\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00\uFF1B\u9875\u9762\u5728\u6C99\u7BB1\u91CC\u8FD0\u884C\uFF0C\u62FF\u4E0D\u5230\u8BBF\u5BA2\u7684 Forsion \u767B\u5F55\u6001\u3002","web.refresh":"\u5237\u65B0","web.used":"\u5DF2\u53D1\u5E03 {used} / {limit} \u4E2A","web.full":"\u540D\u989D\u5DF2\u6EE1\uFF0C\u4E0B\u7EBF\u4E00\u4E2A\u6216\u5347\u7EA7\u4F1A\u5458\u540E\u624D\u80FD\u53D1\u65B0\u7684","web.empty":"\u8FD8\u6CA1\u6709\u53D1\u5E03\u8FC7\u7F51\u9875","web.emptyHint":"\u5728\u5BF9\u8BDD\u91CC\u8BA9 Tangu \u628A\u7F51\u9875\u53D1\u5E03\u51FA\u53BB\uFF0C\u6BD4\u5982\u300C\u628A\u8FD9\u4E2A\u9875\u9762\u53D1\u5E03\u6210\u7F51\u9875\u300D\uFF1BCoding Space \u91CC\u7684\u9879\u76EE\u4E5F\u53EF\u4EE5\u70B9\u300C\u53D1\u5E03\u300D\u3002","web.updated":"\u66F4\u65B0\u4E8E {date}","web.disabled":"\u5DF2\u505C\u7528","web.disabledHint":"\u8FD9\u4E2A\u7F51\u9875\u88AB\u7BA1\u7406\u5458\u505C\u7528\u4E86\uFF0C\u94FE\u63A5\u6253\u4E0D\u5F00\uFF0C\u4E5F\u4E0D\u80FD\u66F4\u65B0\u3002","web.copy":"\u590D\u5236\u94FE\u63A5","web.unpublish":"\u4E0B\u7EBF","web.unpublishConfirm":"\u786E\u8BA4\u4E0B\u7EBF","web.listingPending":"\u4E0A\u67B6\u5BA1\u6838\u4E2D","web.listingApproved":"\u5DF2\u4E0A\u67B6","web.listingRejected":"\u4E0A\u67B6\u88AB\u9A73\u56DE","web.listingNote":"\u9A73\u56DE\u539F\u56E0\uFF1A{note}","web.listingApply":"\u7533\u8BF7\u4E0A\u67B6","web.listingReapply":"\u91CD\u65B0\u7533\u8BF7","web.listingWithdraw":"\u64A4\u56DE\u7533\u8BF7","web.listingDelist":"\u4E0B\u67B6","web.listingDelistConfirm":"\u786E\u8BA4\u4E0B\u67B6","web.listingSummary":"\u5546\u5E97\u7B80\u4ECB","web.listingSummaryPh":"\u4E00\u53E5\u8BDD\u4ECB\u7ECD\u8FD9\u4E2A\u7F51\u9875","web.listingHint":"\u5BA1\u6838\u901A\u8FC7\u540E\u5728\u5546\u5E97\u300C\u7F51\u7AD9\u5E94\u7528\u300D\u91CC\u516C\u5F00\u5C55\u793A\uFF0C300 \u5B57\u4EE5\u5185\u3002","web.listingSubmit":"\u63D0\u4EA4\u7533\u8BF7","pub.cmd":"\u53D1\u5E03\u7F51\u9875\u5230 Forsion","pub.cmdNoArgs":"\u4ECE\u7F16\u7801\u5DE5\u4F5C\u5BA4\u6253\u5F00\u8981\u53D1\u5E03\u7684\u9879\u76EE","pub.title":"\u53D1\u5E03\u5230 Forsion\uFF1A{name}","pub.titleTerms":"\u53D1\u5E03\u4E3A\u516C\u5F00\u9875\u9762","pub.close":"\u5173\u95ED","pub.desc":"\u628A\u8FD9\u4E2A\u7F51\u9875\u53D1\u5E03\u6210\u516C\u5F00\u94FE\u63A5\uFF0C\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00\u3002","pub.descPublished":"\u5DF2\u53D1\u5E03\u3002\u6539\u4E86\u4F5C\u54C1\u4E4B\u540E\u56DE\u6765\u70B9\u300C\u66F4\u65B0\u53D1\u5E03\u300D\uFF0C\u94FE\u63A5\u4E0D\u53D8\u3002","pub.needLogin":"\u53D1\u5E03\u9700\u8981\u767B\u5F55 Forsion \u8D26\u53F7","pub.login":"\u767B\u5F55 Forsion","pub.loginWaiting":"\u7B49\u5F85\u6D4F\u89C8\u5668\u5B8C\u6210\u6388\u6743\u2026","pub.name":"\u540D\u79F0","pub.slug":"\u94FE\u63A5\u6807\u8BC6","pub.slugHint":"3\u201332 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u6216\u4E2D\u5212\u7EBF","pub.entry":"\u5165\u53E3\u9875\u9762","pub.noEntry":"\u9879\u76EE\u91CC\u8FD8\u6CA1\u6709 .html \u5165\u53E3\uFF0C\u5148\u8BA9 AI \u751F\u6210\u9875\u9762\u518D\u53D1\u5E03\u3002","pub.slots":"\u5DF2\u53D1\u5E03 {used} / {limit} \u4E2A\uFF08{tier}\uFF09","pub.hint":"\u8D44\u6E90\u8BF7\u7528\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\uFF1B.ts / .tsx \u53D1\u5E03\u65F6\u81EA\u52A8\u8F6C\u8BD1\uFF0C\u4E0D\u7528\u6784\u5EFA\u3002","pub.anyone":"\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00","pub.likes":"{n} \u4E2A\u8D5E","pub.saves":"{n} \u4EBA\u6536\u85CF","pub.copy":"\u590D\u5236\u94FE\u63A5","pub.copied":"\u5DF2\u590D\u5236","pub.open":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","pub.publish":"\u53D1\u5E03","pub.update":"\u66F4\u65B0\u53D1\u5E03","pub.saveUpdate":"\u4FDD\u5B58\u5E76\u66F4\u65B0","pub.publishing":"\u53D1\u5E03\u4E2D\u2026","pub.listingTitle":"\u5546\u5E97\u300C\u7F51\u7AD9\u5E94\u7528\u300D","pub.listingNone":"\u672A\u4E0A\u67B6","pub.listingPending":"\u5BA1\u6838\u4E2D","pub.listingApproved":"\u5DF2\u4E0A\u67B6","pub.listingRejected":"\u5DF2\u9A73\u56DE","pub.listingHint":"\u4E0A\u67B6\u540E\u5728\u5546\u5E97\u300C\u7F51\u7AD9\u5E94\u7528\u300D\u91CC\u516C\u5F00\u5C55\u793A\uFF0C\u8981\u5E73\u53F0\u5BA1\u6838\u3002","pub.termsIntro":"\u53D1\u5E03\u540E\uFF0C\u4EFB\u4F55\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u67E5\u770B\u8FD9\u4E2A\u9875\u9762\uFF0C\u5B83\u4E5F\u53EF\u80FD\u88AB\u8F6C\u53D1\u6216\u88AB\u641C\u7D22\u5F15\u64CE\u6536\u5F55\u3002\u8BF7\u786E\u8BA4\uFF1A","pub.termsLi1":"\u4F60\u6709\u6743\u53D1\u5E03\u9875\u9762\u91CC\u7684\u6587\u5B57\u3001\u56FE\u7247\u3001\u97F3\u89C6\u9891\u548C\u5176\u4ED6\u5185\u5BB9\uFF1B","pub.termsLi2":"\u9875\u9762\u4E0D\u5305\u542B\u8FDD\u6CD5\u4FE1\u606F\u3001\u4FB5\u6743\u5185\u5BB9\u6216\u672A\u7ECF\u8BB8\u53EF\u62AB\u9732\u7684\u4E2A\u4EBA\u4FE1\u606F\uFF1B","pub.termsLi3":"\u4F60\u5BF9\u81EA\u5DF1\u53D1\u5E03\u7684\u5185\u5BB9\u627F\u62C5\u76F8\u5E94\u8D23\u4EFB\u3002","pub.termsManage":"\u5E73\u53F0\u4F9D\u636E\u6CD5\u5F8B\u6CD5\u89C4\u548C\u300A\u5185\u5BB9\u53D1\u5E03\u89C4\u8303\u300B\u7BA1\u7406\u516C\u5F00\u5185\u5BB9\uFF0C\u5BF9\u8FDD\u89C4\u5185\u5BB9\u53EF\u80FD\u9650\u5236\u8BBF\u95EE\u3001\u505C\u6B62\u5C55\u793A\u6216\u5220\u9664\u3002","pub.termsAgreePre":"\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F","pub.termsGuidelines":"\u300A\u5185\u5BB9\u53D1\u5E03\u89C4\u8303\u300B","pub.termsConfirm":"\u786E\u8BA4\u53D1\u5E03","pub.aiSaveFailed":"\u5DF2\u53D1\u5E03\uFF0C\u4F46 AI \u8BBE\u7F6E\u6CA1\u4FDD\u5B58\uFF1A{reason}","ai.whoPays":"\u8C01\u6765\u4ED8","ai.payer.visitor":"\u8BBF\u5BA2\u81EA\u5DF1\u4ED8","ai.payer.author":"\u6211\u6765\u4ED8","ai.perVisitor":"\u6BCF\u4F4D\u8BBF\u5BA2","ai.perVisitorPre":"\u6BCF\u4EBA\u6BCF\u5929\u6700\u591A","ai.perVisitorPost":"\u6B21","ai.page":"\u8FD9\u4E2A\u7F51\u9875","ai.pagePre":"\u6BCF\u5929\u6700\u591A","ai.pagePost":"\u79EF\u5206","ai.max":"\u6700\u591A {n}","ai.whenUsedUp":"\u7528\u5B8C\u4EE5\u540E","ai.exhausted.visitor":"\u6539\u7528\u8BBF\u5BA2\u81EA\u5DF1\u7684\u989D\u5EA6","ai.exhausted.pause":"AI \u6682\u505C\u5230\u660E\u5929","ai.models":"\u53EF\u7528\u6A21\u578B","ai.modelDefault":"\u9ED8\u8BA4","ai.modelImage":"\u56FE\u50CF","ai.balance":"\u989D\u5EA6\u5305\u4F59\u989D","ai.points":"{n} \u79EF\u5206","ai.buy":"\u4E70\u989D\u5EA6\u5305","ai.noteAuthor":"\u8BBF\u5BA2\u7528 AI \u524D\u8981\u767B\u5F55 Forsion \u8D26\u53F7\uFF0C\u53EA\u7528\u6765\u6309\u4EBA\u8BB0\u6B21\u6570\uFF0C\u4E0D\u6263\u4ED6\u4EEC\u7684\u989D\u5EA6\u3002\u6309\u540E\u53F0\u7684\u6A21\u578B\u70B9\u6570\u6263\uFF0C\u548C\u8BBF\u5BA2\u81EA\u5DF1\u4ED8\u65F6\u4E00\u6837\u591A\uFF1B\u4E0D\u78B0\u4F60\u81EA\u5DF1\u7684 AI \u989D\u5EA6\u548C\u79EF\u5206\u4F59\u989D\u3002","ai.noteVisitor":"\u770B\u7F51\u9875\u4E0D\u7528\u767B\u5F55\uFF1B\u8BBF\u5BA2\u7528\u5230 AI \u65F6\u518D\u767B\u5F55 Forsion \u8D26\u53F7\uFF0C\u6263\u4ED6\u4EEC\u81EA\u5DF1\u7684\u989D\u5EA6\u3002","ai.noteOff":"\u300C\u6211\u6765\u4ED8\u300D\u6682\u672A\u5F00\u653E\uFF0CAI \u7531\u8BBF\u5BA2\u81EA\u5DF1\u4ED8\u3002","ai.agentNote":"forsion.ai.agent \u8FD9\u4E00\u671F\u4ECD\u6263\u8BBF\u5BA2\u81EA\u5DF1\u7684\u989D\u5EA6\uFF0C\u8BBF\u5BA2\u7B2C\u4E00\u6B21\u7528\u65F6\u4F1A\u5148\u786E\u8BA4\u3002","ai.cooldownNew":"\u65B0\u7F51\u9875\u53D1\u5E03\u6EE1 {h} \u5C0F\u65F6\u540E\u624D\u7531\u4F60\u6765\u4ED8\uFF0C\u5728\u90A3\u4E4B\u524D\u8BBF\u5BA2\u81EA\u5DF1\u4ED8\u3002","ai.cooldownUntil":"{time} \u8D77\u7531\u4F60\u6765\u4ED8\uFF0C\u5728\u90A3\u4E4B\u524D\u8BBF\u5BA2\u81EA\u5DF1\u4ED8\u3002","ai.save":"\u4FDD\u5B58","ai.saved":"AI \u8BBE\u7F6E\u5DF2\u4FDD\u5B58","web.tabMine":"\u6211\u53D1\u5E03\u7684 {n}","web.tabSaved":"\u6211\u6536\u85CF\u7684","web.tabSavedN":"\u6211\u6536\u85CF\u7684 {n}","web.ai.author":"AI \xB7 \u6211\u6765\u4ED8","web.ai.visitor":"AI \xB7 \u8BBF\u5BA2\u81EA\u5DF1\u4ED8","web.ai.paused":"AI \xB7 \u6211\u6765\u4ED8 \xB7 \u5DF2\u6682\u505C","web.ai.pausedSpike":"1 \u5C0F\u65F6\u5185\u7528\u5F97\u592A\u5FEB\uFF0C\u5DF2\u81EA\u52A8\u6539\u56DE\u8BBF\u5BA2\u4ED8","web.ai.pausedAdmin":"\u88AB\u7BA1\u7406\u5458\u6682\u505C\uFF0C\u73B0\u5728\u8BBF\u5BA2\u81EA\u5DF1\u4ED8","web.ai.resume":"\u6062\u590D\u6211\u6765\u4ED8","web.ai.todayAuthor":"\u4ECA\u5929 {calls} \u6B21 \xB7 {visitors} \u4F4D\u8BBF\u5BA2","web.ai.todayVisitor":"\u4ECA\u5929 {calls} \u6B21","web.ai.cap":"\u4ECA\u65E5\u4E0A\u9650","web.ai.none":"\u6CA1\u7528\u5230 AI","web.ai.settings":"AI \u8BBE\u7F6E","web.ai.cooldown":"{time} \u8D77\u7531\u4F60\u6765\u4ED8","pack.points":"\u79EF\u5206","pack.note":"\u9009\u4E86\u300C\u6211\u6765\u4ED8\u300D\u7684\u7F51\u9875\u4ECE\u8FD9\u91CC\u6263\uFF0C\u6309\u540E\u53F0\u7684\u6A21\u578B\u70B9\u6570\u8BA1\uFF1B\u4E0D\u78B0\u4F60\u81EA\u5DF1\u7684 AI \u989D\u5EA6\u548C\u79EF\u5206\u4F59\u989D\u3002","pack.lowNote":"\u5FEB\u7528\u5B8C\u4E86\u3002\u7528\u5B8C\u540E\u300C\u6211\u6765\u4ED8\u300D\u7684\u7F51\u9875\u6309\u5404\u81EA\u7684\u8BBE\u7F6E\uFF1A\u6539\u7528\u8BBF\u5BA2\u81EA\u5DF1\u7684\u989D\u5EA6\uFF0C\u6216\u6682\u505C\u5230\u660E\u5929\u3002","pack.monthSpent":"\u672C\u6708\u7528\u6389","pack.lastTopUp":"\u4E0A\u6B21\u5145\u503C","pack.topUp":"{date} +{n}","pack.usage":"\u7528\u91CF\u660E\u7EC6","pack.usageTitle":"\u6700\u8FD1 30 \u5929\u300C\u6211\u6765\u4ED8\u300D\u7684\u7528\u91CF","pack.usageEmpty":"\u6700\u8FD1 30 \u5929\u6CA1\u6709\u300C\u6211\u6765\u4ED8\u300D\u7684\u8C03\u7528","pack.col.day":"\u65E5\u671F","pack.col.page":"\u7F51\u9875","pack.col.calls":"\u6B21\u6570","pack.col.visitors":"\u8BBF\u5BA2","pack.col.points":"\u79EF\u5206","pack.storeTitle":"\u5546\u5E97","pack.storeUnavailable":"\u6253\u5F00\u300C\u5546\u5E97 \u203A \u7269\u54C1\u300D\u4E70\u989D\u5EA6\u5305","saved.empty":"\u8FD8\u6CA1\u6709\u6536\u85CF\u7684\u7F51\u9875","saved.emptyHint":"\u5728\u522B\u4EBA\u53D1\u5E03\u7684\u7F51\u9875\u53F3\u8FB9\u70B9\u661F\u6807\uFF0C\u5C31\u4F1A\u6536\u5230\u8FD9\u91CC\u3002","saved.open":"\u6253\u5F00","saved.author":"\u4F5C\u8005\u4E3B\u9875","saved.unsave":"\u53D6\u6D88\u6536\u85CF","saved.aiAuthor":"AI \u4F5C\u8005\u8BF7\u5BA2","saved.aiVisitor":"AI \u8BBF\u5BA2\u81EA\u5DF1\u4ED8","backpack.effect.connectPack":"\u989D\u5EA6\u5305\u4F59\u989D +{n} \u79EF\u5206","backpack.effect.other":"\u5176\u4ED6\u6548\u679C","backpack.packUsed":"\u5DF2\u5145\u8FDB\u989D\u5EA6\u5305\u4F59\u989D","backpack.packUsedLine":"+{n} \u79EF\u5206 \xB7 \u73B0\u5728 {balance} \u79EF\u5206","sub.desc":"\u7BA1\u7406\u4F60\u6295\u7A3F\u7684\u5185\u5BB9\u3001\u5BA1\u6838\u7ED3\u679C\u548C\u7248\u672C\u66F4\u65B0\u3002","sub.new":"\u65B0\u6295\u7A3F","sub.refresh":"\u5237\u65B0","sub.empty":"\u8FD8\u6CA1\u6709\u6295\u7A3F","sub.emptyHint":"\u628A\u4F60\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u3001Agent \u6216 Space \u5206\u4EAB\u5230\u5E94\u7528\u5E02\u573A\u3002","sub.name":"\u540D\u79F0","sub.summary":"\u7B80\u4ECB","sub.type":"\u5185\u5BB9\u7C7B\u578B","sub.source":"\u53D1\u5E03\u6E20\u9053","sub.type.skill":"\u6280\u80FD","sub.type.agent":"Agent","sub.type.plugin":"\u63D2\u4EF6","sub.type.space":"Space","sub.type.theme":"\u4E3B\u9898","sub.type.amadeus_plugin":"Amadeus \u63D2\u4EF6","sub.pending":"\u5F85\u5BA1\u6838","sub.approved":"\u5DF2\u4E0A\u67B6","sub.rejected":"\u5DF2\u9A73\u56DE","sub.pendingVersion":"v{version} \u66F4\u65B0\u5F85\u5BA1\u6838","sub.rejectedVersion":"v{version} \u66F4\u65B0\u5DF2\u9A73\u56DE","sub.submit":"\u63D0\u4EA4\u5BA1\u6838","sub.submitted":"\u6295\u7A3F\u5DF2\u63D0\u4EA4\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u548C\u4F60\u7684\u6536\u4EF6\u7BB1\u91CC\u3002","sub.updated":"\u65B0\u7248\u672C\u5DF2\u63D0\u4EA4\u5BA1\u6838\u3002\u5BA1\u6838\u901A\u8FC7\u524D\u5546\u5E97\u7167\u65E7\u63D0\u4F9B\u5DF2\u4E0A\u67B6\u7684\u7248\u672C\uFF0C\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.repo":"GitHub \u516C\u5F00\u4ED3\u5E93","sub.npm":"npm \u516C\u5F00\u5305","sub.repoHint":"\u4ECE\u4ED3\u5E93\u8BFB\u53D6 README \u548C Release\uFF1B\u4ED3\u5E93\u4F5C\u8005\u663E\u793A\u4E3A\u53D1\u5E03\u4EBA\u3002","sub.npmHint":"\u4ECE npm \u8BFB\u53D6\u5305\u4FE1\u606F\uFF1B\u5BF9\u5E94\u516C\u5F00\u4ED3\u5E93\u7684\u4F5C\u8005\u663E\u793A\u4E3A\u53D1\u5E03\u4EBA\u3002","sub.reviewHint":"\u65B0\u7248\u672C\u9700\u91CD\u65B0\u5BA1\u6838\uFF0C\u5BA1\u6838\u901A\u8FC7\u540E\u624D\u5411\u7528\u6237\u63D0\u4F9B\u3002\u4F60\u7684 Forsion \u8D26\u53F7\u7528\u4E8E\u7BA1\u7406\u6295\u7A3F\u3002","sub.zipHint":"\u6700\u5927 50 MB\uFF0C\u5305\u5185\u5305\u542B\u5BF9\u5E94\u7684 manifest \u4E0E\u5165\u53E3\u6587\u4EF6\u3002","sub.filter":"\u6309\u72B6\u6001\u7B5B\u9009","sub.all":"\u5168\u90E8","sub.noResults":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u6295\u7A3F","sub.downloads":"{n} \u6B21\u4E0B\u8F7D","sub.errName":"\u8BF7\u586B\u5199\u540D\u79F0\u3002","sub.errSource":"\u8BF7\u586B\u5199\u516C\u5F00\u4ED3\u5E93\u5730\u5740\u6216 npm \u5305\u540D\u3002","sub.errZip":"\u8BF7\u9009\u62E9 ZIP \u5305\u3002","sub.errLarge":"ZIP \u5305\u4E0D\u80FD\u8D85\u8FC7 50 MB\u3002","sub.err.market_npm_invalid":"npm \u5305\u4E0D\u5B58\u5728\u6216\u4E0D\u7B26\u5408\u63D2\u4EF6\u53D1\u5E03\u89C4\u8303\u3002","sub.err.market_npm_source":"\u8BF7\u901A\u8FC7 npm \u53D1\u5E03\u5E76\u91CD\u65B0\u5BA1\u6838\u65B0\u7248\u3002","sub.err.market_github_source":"\u8BF7\u5728 GitHub \u53D1\u5E03 Release \u5E76\u91CD\u65B0\u5BA1\u6838\u65B0\u7248\u3002","sub.err.market_not_found":"\u6295\u7A3F\u4E0D\u5B58\u5728\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002","sub.err.market_zip_required":"\u8BF7\u9009\u62E9 ZIP \u5305\u3002","sub.err.market_zip_invalid":"ZIP \u5305\u7ED3\u6784\u4E0D\u7B26\u5408\u53D1\u5E03\u89C4\u8303\u3002","sub.err.market_zip_too_large":"ZIP \u5305\u4E0D\u80FD\u8D85\u8FC7 50 MB\u3002","sub.err.market_version_required":"\u5305\u91CC\u6CA1\u5199\u7248\u672C\u53F7\u3002\u5728 manifest \u91CC\u5199\u4E0A\u7248\u672C\u53F7\uFF08\u6280\u80FD\u5199\u5728 SKILL.md \u7684 version \u6216 metadata.version\uFF09\u518D\u6253\u5305\u3002","sub.err.market_version_invalid":"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u7248\u672C\u53F7\u3002","sub.err.market_version_mismatch":"\u7248\u672C\u53F7\u4E0E\u5305\u5185 manifest \u4E0D\u4E00\u81F4\u3002","sub.err.market_version_not_newer":"\u65B0\u7248\u987B\u9AD8\u4E8E\u5F53\u524D\u5DF2\u4E0A\u67B6\u7248\u672C\u3002","sub.err.market_icon_invalid":"\u56FE\u6807\u5E94\u4E3A 64\u2013512 px \u7684\u6B63\u65B9\u5F62 PNG\u3002","sub.err.market_duplicate":"\u8BE5\u5185\u5BB9\u5DF2\u6709\u6295\u7A3F\uFF0C\u8BF7\u7BA1\u7406\u73B0\u6709\u6295\u7A3F\u3002","sub.err.market_update_pending":"\u5DF2\u6709\u65B0\u7248\u7B49\u5F85\u5BA1\u6838\uFF0C\u8BF7\u5148\u7B49\u5F85\u5BA1\u6838\u7ED3\u679C\u3002","sub.err.market_stale":"\u6295\u7A3F\u5DF2\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002","sub.notNewer":"\u5305\u91CC\u7684\u7248\u672C\u662F v{version}\uFF0C\u8981\u9AD8\u4E8E\u5546\u5E97\u5F53\u524D\u7684 v{current}\u3002","sub.reqNone":"\u6CA1\u6709\u58F0\u660E\u7248\u672C\u8981\u6C42\u548C\u5E73\u53F0","sub.dropTitle":"\u628A ZIP \u62D6\u5230\u8FD9\u91CC\uFF0C\u6216\u70B9\u8FD9\u91CC\u9009\u62E9","sub.dropHint":"\u6700\u5927 50 MB\u3002\u9009\u597D\u540E\u5148\u68C0\u67E5\uFF0C\u4E0D\u4F1A\u76F4\u63A5\u63D0\u4EA4\u3002","sub.dropReplace":"{size} \xB7 \u62D6\u5165\u6216\u70B9\u8FD9\u91CC\u6362\u4E00\u4E2A","sub.checkType":"\u7C7B\u578B","sub.checkVersion":"\u7248\u672C","sub.checkIcon":"\u56FE\u6807","sub.checkReadme":"\u8BF4\u660E\u6587\u6863","sub.checkReq":"\u8981\u6C42","sub.checkWarn":"\u6CE8\u610F","sub.iconYes":"\u5305\u91CC\u6709 icon.png","sub.iconNo":"\u5305\u91CC\u6CA1\u6709 icon.png\uFF0C\u5361\u7247\u663E\u793A\u7C7B\u578B\u56FE\u6807","sub.readmeYes":"\u53D6\u5305\u91CC\u7684 README.md","sub.readmeKeep":"\u5305\u91CC\u6CA1\u6709 README.md\uFF0C\u6CBF\u7528\u73B0\u5728\u7684\u8BF4\u660E","sub.readmeNo":"\u5305\u91CC\u6CA1\u6709 README.md","sub.warn.no_manifest":"\u5305\u91CC\u6CA1\u627E\u5230\u6E05\u5355\u6587\u4EF6\uFF08manifest\uFF09","sub.warn.type_mismatch":"\u5305\u91CC\u7684\u7C7B\u578B\u548C\u8FD9\u6761\u6295\u7A3F\u7684\u7C7B\u578B\u4E0D\u4E00\u81F4","sub.warn.tag_version_mismatch":"Release \u6807\u7B7E\u548C\u5305\u91CC\u7684\u7248\u672C\u53F7\u4E0D\u4E00\u81F4","sub.warn.id_slug_mismatch":"\u5305\u91CC\u7684 id \u548C\u5B89\u88C5\u76EE\u5F55\u540D\u4E0D\u540C\u3002\u4E0D\u5F71\u54CD\u7528\u6237\uFF1A\u66F4\u65B0\u7167\u5E38\u88C5\u56DE\u539F\u76EE\u5F55\uFF0C\u4E0D\u4F1A\u591A\u51FA\u4E00\u4EFD\uFF1B\u5B89\u88C5\u76EE\u5F55\u540D\u4E0A\u67B6\u540E\u4E0D\u80FD\u6539","sub.warn.engine_slug_mismatch":"\u5F15\u64CE\u63D2\u4EF6\u7684\u76EE\u5F55\u540D\u548C\u5B83\u7684 id \u4E0D\u4E00\u81F4","sub.warn.no_entry":"Amadeus \u63D2\u4EF6\u7F3A\u5C11\u5165\u53E3 main.js","sub.warn.has_node_modules":"\u5305\u91CC\u5E26\u4E86 node_modules\uFF0C\u4F53\u79EF\u5927\uFF0C\u901A\u5E38\u4E5F\u7528\u4E0D\u4E0A","sub.zipListedNote":"\u5BA1\u6838\u901A\u8FC7\u524D\uFF0C\u5546\u5E97\u7EE7\u7EED\u63D0\u4F9B\u5DF2\u4E0A\u67B6\u7684\u7248\u672C\u3002\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.zipUnlistedNote":"\u63D0\u4EA4\u540E\u66FF\u6362\u73B0\u5728\u8FD9\u4EFD\u5305\uFF0C\u91CD\u65B0\u8FDB\u5165\u5BA1\u6838\u3002","sub.submitVersion":"\u63D0\u4EA4 v{version} \u5BA1\u6838","sub.checkNew":"\u68C0\u67E5\u65B0\u7248\u672C","sub.checkAgain":"\u518D\u68C0\u67E5\u4E00\u6B21","sub.upToDate":"\u4E0A\u6E38\u6700\u65B0\u662F v{version}\uFF0C\u5546\u5E97\u5DF2\u662F v{current}\uFF0C\u6CA1\u6709\u65B0\u7248\u672C\u3002\u53D1\u5E03\u65B0\u7248\u672C\u540E\u518D\u6765\u68C0\u67E5\u3002","sub.upstreamLatest":"\u4E0A\u6E38\u6700\u65B0\uFF1Av{version}","sub.releaseTag":"Release {tag}","sub.storeHas":"\u5546\u5E97\u5F53\u524D v{version}","sub.githubNote":"\u901A\u8FC7\u540E\u5546\u5E97\u9501\u5B9A\u5230 v{version}\u3002\u4EE5\u540E\u5728 GitHub \u53D1\u4E86\u65B0 Release\uFF0C\u56DE\u5230\u8FD9\u91CC\u518D\u68C0\u67E5\u4E00\u6B21\u3002","sub.npmNote":"\u901A\u8FC7\u540E\u5546\u5E97\u9501\u5B9A\u5230 v{version}\u3002\u4EE5\u540E\u5728 npm \u53D1\u4E86\u65B0\u7248\u672C\uFF0C\u56DE\u5230\u8FD9\u91CC\u518D\u68C0\u67E5\u4E00\u6B21\u3002","sub.secVersion":"\u7248\u672C","sub.secInfo":"\u5546\u5E97\u4FE1\u606F","sub.secHistory":"\u8BB0\u5F55","sub.edit":"\u7F16\u8F91","sub.unset":"\u672A\u586B\u5199","sub.infoNote":"\u4E0D\u7528\u4F20\u5305\u3001\u4E0D\u7528\u5347\u7248\u672C\u3002\u5DF2\u4E0A\u67B6\u7684\u4FEE\u6539\u540C\u6837\u8981\u8FC7\u5BA1\u6838\uFF0C\u5BA1\u6838\u524D\u5546\u5E97\u7167\u65E7\u663E\u793A\u539F\u6765\u7684\u4FE1\u606F\u3002","sub.submitInfo":"\u63D0\u4EA4\u4FEE\u6539","sub.back":"\u8FD4\u56DE\u5217\u8868","sub.pendingInfo":"\u5546\u5E97\u4FE1\u606F\u4FEE\u6539\u5F85\u5BA1\u6838","sub.rejectedInfo":"\u5546\u5E97\u4FE1\u606F\u4FEE\u6539\u5DF2\u9A73\u56DE","sub.pendingHint":"\u5BA1\u6838\u901A\u8FC7\u524D\u5546\u5E97\u7167\u65E7\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.inReview":"\u6B63\u5728\u7B49\u5F85\u9996\u6B21\u5BA1\u6838\uFF0C\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.histApproved":"v{version} \u5BA1\u6838\u901A\u8FC7","sub.histSubmitted":"\u6295\u7A3F","sub.resubmitted":"\u5DF2\u91CD\u65B0\u63D0\u4EA4\u5BA1\u6838\uFF0C\u7ED3\u679C\u4F1A\u53D1\u5230\u4F60\u7684\u6536\u4EF6\u7BB1\u3002","sub.infoSubmitted":"\u4FEE\u6539\u5DF2\u63D0\u4EA4\u5BA1\u6838\uFF0C\u5BA1\u6838\u524D\u5546\u5E97\u7167\u65E7\u663E\u793A\u539F\u6765\u7684\u4FE1\u606F\u3002","sub.err.market_no_release":"\u8FD9\u4E2A\u4ED3\u5E93\u8FD8\u6CA1\u6709 GitHub Release\u3002\u5546\u5E97\u8981\u9501\u5B9A\u4E00\u4E2A\u7248\u672C\uFF0C\u5148\u5728 GitHub \u53D1\u4E00\u4E2A Release\uFF0C\u518D\u56DE\u6765\u68C0\u67E5\u3002","sub.err.market_no_changes":"\u6CA1\u6709\u6539\u52A8\u3002","sub.err.market_dryrun_unsupported":"GitHub \u548C npm \u6295\u7A3F\u6CA1\u6CD5\u63D0\u524D\u68C0\u67E5\uFF0C\u76F4\u63A5\u63D0\u4EA4\u5BA1\u6838\u5373\u53EF\u3002","page.account":"\u8D26\u53F7","page.membershipUsage":"\u4F1A\u5458\u4E0E\u7528\u91CF","page.membershipQuota":"\u4F1A\u5458\u4E0E\u989D\u5EA6","page.pointsInvite":"\u79EF\u5206\u4E0E\u9080\u8BF7","account.details.title":"\u767B\u5F55\u4E0E\u8D44\u6599","account.details.desc":"\u5934\u50CF\u3001\u6635\u79F0\u4E0E\u7B80\u4ECB\u5728\u300C\u4E2A\u4EBA\u4E3B\u9875\u300D\u4E2D\u7F16\u8F91\u3002","account.details.username":"\u7528\u6237\u540D","diag.unavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u652F\u6301\u8BCA\u65AD\u6570\u636E\uFF0C\u8BF7\u66F4\u65B0 Forsion \u540E\u91CD\u8BD5\u3002","page.profile":"\u4E2A\u4EBA\u4E3B\u9875","page.quota":"\u989D\u5EA6\u4E0E\u79EF\u5206","page.backpack":"\u80CC\u5305","page.security":"\u5B89\u5168","page.usage":"\u7528\u91CF\u8BB0\u5F55","page.feedback":"\u53CD\u9988","store.group":"\u4F1A\u5458\u4E0E\u79EF\u5206","store.membership":"\u4F1A\u5458","store.membership.desc":"\u5347\u7EA7\u6863\u4F4D\uFF0C\u83B7\u5F97\u66F4\u591A\u6BCF\u65E5\u4E0E\u6BCF\u5468\u989D\u5EA6","store.points":"\u79EF\u5206","store.points.desc":"\u5145\u503C\u79EF\u5206\uFF0C\u7528\u6765\u5151\u6362\u7269\u54C1","store.items":"\u7269\u54C1","store.items.desc":"\u7528\u79EF\u5206\u5151\u6362\u7684\u7269\u54C1\uFF0C\u5151\u6362\u540E\u8FDB\u80CC\u5305","store.status":"\u6863\u4F4D\u4E0E\u79EF\u5206","store.tier":"\u5F53\u524D\u6863\u4F4D","store.balance":"\u79EF\u5206\u4F59\u989D","store.choosePlan":"\u9009\u62E9\u6863\u4F4D","store.payHint":"\u4ED8\u6B3E\u5728\u6D4F\u89C8\u5668\u7684\u652F\u4ED8\u9875\u5B8C\u6210\uFF0C\u56DE\u5230\u5E94\u7528\u540E\u81EA\u52A8\u5237\u65B0","store.payOff":"\u6682\u65F6\u4E0D\u80FD\u8D2D\u4E70","store.period":"\u4ED8\u8D39\u5468\u671F","store.period.monthly":"\u6708\u4ED8","store.period.quarterly":"\u5B63\u4ED8","store.period.yearly":"\u5E74\u4ED8","store.per.monthly":"/ \u6708","store.per.quarterly":"/ \u5B63","store.per.yearly":"/ \u5E74","store.currentTier":"\u5F53\u524D\u6863\u4F4D","store.pay":"\u53BB\u652F\u4ED8","store.payPrice":"{price} \u53BB\u652F\u4ED8","store.noPlans":"\u6682\u65F6\u6CA1\u6709\u53EF\u9009\u7684\u6863\u4F4D","store.packs":"\u79EF\u5206\u5305","store.packsHint":"\u4ED8\u6B3E\u5728\u6D4F\u89C8\u5668\u7684\u652F\u4ED8\u9875\u5B8C\u6210\uFF0C\u4ED8\u6B3E\u540E\u79EF\u5206\u5373\u65F6\u5230\u8D26","store.noPacks":"\u6682\u65F6\u6CA1\u6709\u79EF\u5206\u5305","store.kind.pack":"\u79EF\u5206\u5305","store.kind.card":"\u9053\u5177","store.kind.code":"\u5151\u6362\u7801","store.kind.item":"\u7269\u54C1","store.nPoints":"{n} \u79EF\u5206","store.instant":"\u4ED8\u6B3E\u540E\u5373\u65F6\u5230\u8D26","store.redeemTitle":"\u79EF\u5206\u5151\u6362","store.redeemHint":"\u7528\u79EF\u5206\u5151\u6362\u5728\u5E94\u7528\u5185\u76F4\u63A5\u5B8C\u6210\uFF0C\u5151\u6362\u540E\u7269\u54C1\u8FDB\u80CC\u5305","store.redeem":"{n} \u79EF\u5206\u5151\u6362","store.redeemConfirm":"\u786E\u8BA4\u82B1 {n} \u79EF\u5206","store.redeemed":"\u5DF2\u5151\u6362\uFF0C\u7269\u54C1\u5728\u80CC\u5305\u91CC","store.uncertain":"\u6CA1\u6536\u5230\u7ED3\u679C\u3002\u5148\u5230\u80CC\u5305\u770B\u4E00\u4E0B\u6709\u6CA1\u6709\u5230\u8D26\uFF0C\u518D\u51B3\u5B9A\u8981\u4E0D\u8981\u91CD\u8BD5\u3002","store.soldOut":"\u5DF2\u552E\u7F44","store.left":"\u4F59 {n}","store.toBackpack":"\u5151\u6362\u540E\u8FDB\u80CC\u5305","store.limitReached":"\u5DF2\u8FBE\u8D2D\u4E70\u4E0A\u9650","store.unavailable":"\u8FD9\u4EF6\u7269\u54C1\u6682\u65F6\u4E0D\u80FD\u5151\u6362","store.noItems":"\u6682\u65F6\u6CA1\u6709\u53EF\u5151\u6362\u7684\u7269\u54C1","store.itemsOff":"\u7269\u54C1\u5151\u6362\u6682\u672A\u5F00\u653E","store.openBackpack":"\u6253\u5F00\u80CC\u5305","backpack.desc":"\u5728\u8FD9\u91CC\u67E5\u770B\u4F60\u83B7\u5F97\u7684\u7269\u54C1\uFF0C\u70B9\u51FB\u683C\u5B50\u67E5\u770B\u8BE6\u60C5\u3002","backpack.refresh":"\u5237\u65B0","backpack.total":"\u5171 {n} \u4EF6\u7269\u54C1","backpack.grid":"\u80CC\u5305\u7269\u54C1","backpack.slot":"{name}\uFF0C\u6570\u91CF {n}","backpack.item":"\u7269\u54C1","backpack.empty":"\u80CC\u5305\u8FD8\u662F\u7A7A\u7684","backpack.emptyHint":"\u5151\u6362\u6216\u83B7\u8D60\u7684\u7269\u54C1\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002","backpack.select":"\u70B9\u51FB\u7269\u54C1\u67E5\u770B\u8BE6\u60C5","backpack.details":"\u7269\u54C1\u8BE6\u60C5","backpack.quantity":"\u6301\u6709\u6570\u91CF","backpack.acquired":"\u83B7\u5F97\u65F6\u95F4","backpack.source":"\u83B7\u5F97\u65B9\u5F0F","backpack.source.points":"\u79EF\u5206\u5151\u6362","backpack.source.admin":"\u8D60\u9001","backpack.source.reward":"\u5956\u52B1","backpack.source.other":"\u4E91\u7AEF\u53D1\u653E","backpack.consumable":"\u6D88\u8017\u54C1","backpack.voucher":"\u5361\u5238","backpack.getCards":"\u5151\u6362\u91CD\u7F6E\u5361","backpack.manageCards":"\u4F7F\u7528\u6216\u5151\u6362","backpack.reveal":"\u67E5\u770B\u5361\u5BC6","backpack.copyKey":"\u590D\u5236\u5361\u5BC6","backpack.noKey":"\u8FD9\u4EF6\u7269\u54C1\u6CA1\u6709\u5361\u5BC6\u3002","backpack.use":"\u4F7F\u7528","backpack.confirmUse":"\u786E\u8BA4\u4F7F\u7528","backpack.consumeConfirm":"\u4F7F\u7528\u540E\u6D88\u8017 1 \u4EF6\u7269\u54C1\u3002","backpack.collectible":"\u7EAA\u5FF5\u54C1","backpack.effect.points":"+{n} \u79EF\u5206","backpack.effect.cards":"+{n} \u5F20\u91CD\u7F6E\u5361","backpack.effect.quota":"\u91CD\u7F6E\u4ECA\u65E5\u4E0E\u672C\u5468\u989D\u5EA6","backpack.rarity.common":"\u666E\u901A","backpack.rarity.rare":"\u7A00\u6709","backpack.rarity.epic":"\u53F2\u8BD7","backpack.rarity.legendary":"\u4F20\u8BF4","backpack.unavailable":"\u8FD9\u4EF6\u7269\u54C1\u5DF2\u4E0D\u53EF\u7528\uFF0C\u8BF7\u5237\u65B0\u80CC\u5305\u3002","backpack.notUsable":"\u8FD9\u4EF6\u7269\u54C1\u4E0D\u80FD\u4F7F\u7528\u3002","backpack.quotaUnavailable":"\u8BF7\u5148\u4F7F\u7528\u4E91\u7AEF AI \u521D\u59CB\u5316\u989D\u5EA6\uFF0C\u518D\u4F7F\u7528\u8FD9\u4EF6\u7269\u54C1\u3002","common.cancel":"\u53D6\u6D88","common.copied":"\u5DF2\u590D\u5236","common.copyFailed":"\u590D\u5236\u5931\u8D25","common.done":"\u5B8C\u6210","common.loadFailed":"\u6CA1\u80FD\u52A0\u8F7D","common.loadMore":"\u52A0\u8F7D\u66F4\u591A","common.loading":"\u52A0\u8F7D\u4E2D\u2026","common.openInBrowser":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","common.retry":"\u91CD\u8BD5","common.save":"\u4FDD\u5B58","common.thisWeek":"\u672C\u5468","common.today":"\u4ECA\u65E5","common.unlimited":"\u4E0D\u9650","ann.eyebrow":"FORSION \xB7 \u516C\u544A","ann.close":"\u5173\u95ED","ann.ok":"\u77E5\u9053\u4E86","signin.button":"\u767B\u5F55 Forsion","signin.desc":"\u767B\u5F55 Forsion \u8D26\u53F7\u540E\uFF0C\u53EF\u4EE5\u5728\u8FD9\u91CC\u7BA1\u7406\u8D26\u53F7\u3001\u989D\u5EA6\u3001\u5B89\u5168\u3001\u6295\u7A3F\u4E0E\u53CD\u9988\u3002","signin.pending":"\u7B49\u5F85\u5728\u6D4F\u89C8\u5668\u4E2D\u5B8C\u6210\u767B\u5F55\u2026","signin.deviceHint":"\u6D4F\u89C8\u5668\u4F1A\u81EA\u52A8\u6253\u5F00\u767B\u5F55\u9875\uFF1B\u6CA1\u6709\u6253\u5F00\u7684\u8BDD\uFF0C\u7528\u624B\u673A\u626B\u7801\u6216\u6253\u5F00\u4E0B\u9762\u7684\u94FE\u63A5\uFF0C\u5E76\u6838\u5BF9\u9A8C\u8BC1\u7801\u3002","signin.code":"\u9A8C\u8BC1\u7801","signin.openLink":"\u6253\u5F00\u767B\u5F55\u9875","signin.copyLink":"\u590D\u5236\u94FE\u63A5","signin.qrLabel":"\u767B\u5F55\u4E8C\u7EF4\u7801","account.profile.title":"\u4E2A\u4EBA\u8D44\u6599","account.profile.desc":"\u5934\u50CF\u3001\u6635\u79F0\uFF0C\u4EE5\u53CA\u7ED1\u5B9A\u7684\u624B\u673A\u548C\u90AE\u7BB1","account.avatar.change":"\u66F4\u6362\u5934\u50CF","account.avatar.saved":"\u5934\u50CF\u5DF2\u66F4\u65B0","account.nickname.edit":"\u4FEE\u6539\u6635\u79F0","account.nickname.label":"\u6635\u79F0","account.nickname.saved":"\u6635\u79F0\u5DF2\u66F4\u65B0","account.role.admin":"\u7BA1\u7406\u5458","account.username":"\u7528\u6237\u540D {name}","account.contact.phone":"\u624B\u673A","account.contact.email":"\u90AE\u7BB1","account.contact.unbound":"\u672A\u7ED1\u5B9A","account.contact.manage":"\u53BB\u5B89\u5168\u9875\u7BA1\u7406","account.web.open":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u4E2A\u4EBA\u4E2D\u5FC3","account.web.desc":"\u4E91\u7A7A\u95F4\u3001AI \u5927\u8111\u4E0E\u4E3B\u9898\u5728\u7F51\u9875\u4E2A\u4EBA\u4E2D\u5FC3\u7BA1\u7406\u3002","address.label":"\u4E3B\u9875\u5730\u5740","address.change":"\u6539\u5730\u5740","address.title":"\u6539\u4E3B\u9875\u5730\u5740","address.desc":"\u4F60\u53D1\u5E03\u7684\u4F5C\u54C1\u90FD\u5728\u8FD9\u4E2A\u5730\u5740\u4E0B\u9762\u3002\u6539\u4E86\u4E4B\u540E\uFF0C\u65E7\u5730\u5740\u4F1A\u4E00\u76F4\u8DF3\u8F6C\u5230\u65B0\u5730\u5740\uFF0C\u4E5F\u4E0D\u4F1A\u88AB\u522B\u4EBA\u62FF\u53BB\u7528\u3002","address.now":"\u73B0\u5728","address.new":"\u6539\u6210","address.rule":"3\u201330 \u4F4D\uFF0C\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u6216\u300C-\u300D","address.checking":"\u6B63\u5728\u67E5\u80FD\u4E0D\u80FD\u7528\u2026","address.ok":"\u53EF\u4EE5\u7528","address.bad":"\u8FD9\u4E2A\u5730\u5740\u4E0D\u80FD\u7528","address.same":"\u8FD9\u5C31\u662F\u4F60\u73B0\u5728\u7684\u5730\u5740","address.freeOne":"\u8FD9\u662F\u4F60\u7684\u4E00\u6B21\u514D\u8D39\u4FEE\u6539","address.freeN":"\u8FD9\u6B21\u514D\u8D39\uFF08\u4F60\u6709 {n} \u6B21\u514D\u8D39\u4FEE\u6539\uFF09","address.freeAfter":"\u4E4B\u540E\u6539\u5730\u5740\u8981\u7528\u5730\u5740\u6539\u540D\u5361","address.card":"\u7528\u6389 1 \u5F20\u5730\u5740\u6539\u540D\u5361","address.cardHave":"\u4F60\u6709 {n} \u5F20","address.need":"\u6539\u5730\u5740\u8981 1 \u5F20\u5730\u5740\u6539\u540D\u5361\uFF0C\u4F60\u8FD8\u6CA1\u6709","address.price":"{price} \u79EF\u5206 \xB7 \u4F59\u989D {balance}","address.soldout":"\u73B0\u5728\u4E70\u4E0D\u5230\u5730\u5740\u6539\u540D\u5361","address.cooldown":"\u4E24\u6B21\u6539\u5730\u5740\u81F3\u5C11\u9694 {days} \u5929","address.cooldownUntil":"{date} \u4E4B\u540E\u53EF\u4EE5\u518D\u6539","address.go":"\u6539\u5730\u5740","address.goCard":"\u7528\u5361\u6539\u5730\u5740","address.goBuy":"\u7528 {price} \u79EF\u5206\u4E70\u4E00\u5F20\u5E76\u6539","address.shop":"\u53BB\u5546\u5E97\u770B\u770B","address.done":"\u4E3B\u9875\u5730\u5740\u6539\u6210\u4E86 {url}","address.loadFailed":"\u5730\u5740\u4FE1\u606F\u6682\u65F6\u62FF\u4E0D\u5230\u3002","address.errTaken":"\u8FD9\u4E2A\u5730\u5740\u521A\u88AB\u522B\u4EBA\u7528\u4E86\uFF0C\u6362\u4E00\u4E2A\u5427\u3002","address.errNeedCard":"\u514D\u8D39\u6B21\u6570\u7528\u5B8C\u4E86\uFF0C\u6539\u5730\u5740\u8981\u4E00\u5F20\u5730\u5740\u6539\u540D\u5361\u3002","address.errCooldown":"\u8FD8\u6CA1\u5230\u80FD\u6539\u7684\u65F6\u5019\uFF1A{date} \u4E4B\u540E\u53EF\u4EE5\u518D\u6539\u3002","address.errPoints":"\u79EF\u5206\u4E0D\u591F\u4E70\u8FD9\u5F20\u5361\u3002","address.errBought":"\u5361\u5DF2\u7ECF\u4E70\u597D\u653E\u8FDB\u80CC\u5305\u4E86\uFF0C\u4F46\u5730\u5740\u6CA1\u6539\u6210\uFF1A{reason}","address.errSoldout":"\u5730\u5740\u6539\u540D\u5361\u521A\u4E0B\u67B6\u4E86\uFF0C\u73B0\u5728\u4E70\u4E0D\u5230\u3002","address.errLimit":"\u5730\u5740\u6539\u540D\u5361\u5DF2\u7ECF\u4E70\u5230\u4E0A\u9650\u4E86\u3002","address.errUnknown":"\u6CA1\u786E\u8BA4\u5230\u6539\u6CA1\u6539\u6210\uFF0C\u7A0D\u540E\u5237\u65B0\u770B\u770B\u518D\u8BF4\u3002","backpack.addressCard":"\u5730\u5740\u6539\u540D\u5361","backpack.addressCard.desc":"\u514D\u8D39\u6B21\u6570\u7528\u5B8C\u540E\uFF0C\u6539\u4E00\u6B21\u4E3B\u9875\u5730\u5740\u7528\u4E00\u5F20\u3002\u65E7\u5730\u5740\u4F1A\u4E00\u76F4\u8DF3\u8F6C\u5230\u65B0\u5730\u5740\uFF0C\u4E0D\u4F1A\u88AB\u522B\u4EBA\u62FF\u8D70\u3002","backpack.addressCard.use":"\u53BB\u6539\u5730\u5740","member.title":"\u4F1A\u5458","member.desc":"\u5F53\u524D\u6863\u4F4D\u3001\u65B9\u6848\u4E0E\u5230\u671F\u65E5","member.upgrade":"\u5347\u7EA7\u4F1A\u5458","member.renew":"\u7EED\u8D39","member.freeName":"\u514D\u8D39\u7248","member.freeHint":"\u5347\u7EA7\u4F1A\u5458\u53EF\u4EE5\u83B7\u5F97\u66F4\u591A AI \u989D\u5EA6","member.expires":"{date} \u5230\u671F","member.noExpiry":"\u957F\u671F\u6709\u6548","member.loadFailed":"\u4F1A\u5458\u4FE1\u606F\u6682\u65F6\u62FF\u4E0D\u5230\u3002","session.title":"\u767B\u5F55","session.desc":"\u7BA1\u7406\u8FD9\u53F0\u8BBE\u5907\u4E0A\u7684\u767B\u5F55\u72B6\u6001","local.title":"\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u8D26\u53F7","local.desc":"\u5728\u767B\u5F55\u8FC7\u7684\u8D26\u53F7\u4E4B\u95F4\u5207\u6362","local.current":"\u5F53\u524D","local.switch":"\u5207\u6362","local.add":"\u767B\u5F55\u5176\u4ED6\u8D26\u53F7","local.signOut":"\u9000\u51FA\u767B\u5F55","local.empty":"\u8FD8\u6CA1\u6709\u4FDD\u5B58\u7684\u8D26\u53F7","local.loadFailed":"\u8D26\u53F7\u5217\u8868\u6682\u65F6\u8BFB\u4E0D\u5230","diag.title":"\u8BCA\u65AD\u6570\u636E","diag.desc":"\u5E2E\u52A9\u6211\u4EEC\u6392\u67E5\u95EE\u9898\u3001\u6539\u8FDB Forsion\u3002\u9ED8\u8BA4\u5173\u95ED\u3002","diag.enable":"\u4E0A\u4F20\u8BCA\u65AD\u6570\u636E","diag.enableDesc":"\u6253\u5F00\u540E\uFF0C\u8FD9\u53F0\u7535\u8111\u4F1A\u5B9A\u671F\u4E0A\u4F20\u4E00\u4EFD Forsion \u4FE1\u606F\u5FEB\u7167\u5230\u4F60\u7684 Forsion \u8D26\u53F7\uFF0CForsion \u56E2\u961F\u53EF\u4EE5\u67E5\u770B\u3002\u591A\u4E45\u4E0A\u4F20\u4E00\u6B21\u7531 Forsion \u56E2\u961F\u8BBE\u5B9A\uFF0C\u9ED8\u8BA4\u6BCF\u5929\u4E00\u6B21\u3002\u968F\u65F6\u53EF\u4EE5\u5173\u95ED\u3002","diag.collected":"\u4F1A\u4E0A\u4F20","diag.item.app":"\u5E94\u7528\u4E0E\u7CFB\u7EDF\u7684\u7248\u672C\uFF0C\u8FD9\u53F0\u7535\u8111\u7684\u540D\u5B57\u3001\u5185\u5B58\u4E0E\u78C1\u76D8\u4F59\u91CF","diag.item.settings":"\u6A21\u578B\u4E0E\u8BED\u97F3\u7684\u9009\u62E9\uFF0C\u540E\u53F0 Agent \u4E0E\u63D2\u4EF6\u8BBE\u7F6E\u91CC\u7684\u5F00\u5173\u548C\u6570\u503C\uFF0CMCP \u670D\u52A1\u4E0E\u6D88\u606F\u901A\u9053\u7684\u540D\u5B57\u548C\u5F00\u5173","diag.item.agents":"Agent \u4E0E\u56E2\u961F\u7684\u914D\u7F6E\uFF08\u540D\u5B57\u3001\u6A21\u578B\u8FD9\u7C7B\u9009\u9879\uFF1B\u63CF\u8FF0\u4E0E\u63D0\u793A\u8BCD\u53EA\u8BB0\u957F\u5EA6\uFF0C\u6B63\u6587\u5F52\u4E0B\u9762\u300C\u4EBA\u8BBE\u3001\u8BB0\u5FC6\u4E0E\u8FDB\u5316\u8BB0\u5F55\u300D\u90A3\u4E2A\u5F00\u5173\uFF09","diag.item.plugins":"\u5DF2\u5B89\u88C5\u7684\u63D2\u4EF6\u3001\u6280\u80FD\u3001\u4E3B\u9898\u548C Space \u7684\u540D\u5B57\u4E0E\u7248\u672C","diag.item.runs":"\u6700\u8FD1 7 \u5929\u7684\u8FD0\u884C\u8BB0\u5F55\uFF1A\u6BCF\u6B21\u8FD0\u884C\u7684\u72B6\u6001\u548C\u62A5\u9519\u539F\u56E0\uFF0C\u6A21\u578B\u8C03\u7528\u4E0E\u5DE5\u5177\u7684\u7528\u91CF\u3001\u8017\u65F6\uFF08\u4E0D\u5E26\u5BF9\u8BDD\u5185\u5BB9\u548C\u5DE5\u5177\u8BFB\u5199\u7684\u5185\u5BB9\uFF09\uFF0C\u4EE5\u53CA\u5F15\u64CE\u6700\u8FD1\u7684\u8FD0\u884C\u65E5\u5FD7","diag.item.sync":"\u4E91\u540C\u6B65\u7684\u72B6\u6001\uFF1A\u540C\u6B65\u89C4\u5219\u5F00\u5728\u54EA\u51E0\u7C7B\u4E0A\uFF0C\u6700\u8FD1\u51E0\u8F6E\u4E0A\u4F20\u3001\u4E0B\u8F7D\u3001\u5220\u9664\u548C\u51B2\u7A81\u526F\u672C\u7684\u4E2A\u6570\uFF0C\u4EE5\u53CA\u540C\u6B65\u7684\u62A5\u9519\u539F\u56E0\uFF08\u8DEF\u5F84\u4F1A\u906E\u6389\uFF0C\u4E0D\u5E26\u6587\u4EF6\u540D\u548C\u6587\u4EF6\u5185\u5BB9\uFF09","diag.notCollected":"\u4E0D\u4F1A\u4E0A\u4F20\uFF1A\u4FDD\u5B58\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u767B\u5F55\u51ED\u636E\u4E0E API \u5BC6\u94A5\u3001\u7B14\u8BB0\u6587\u4EF6\u3001Agent \u7684\u8D44\u6599\u5E93\u3001\u63D2\u4EF6\u6570\u636E\u3002","diag.sessions":"\u5305\u542B\u4F1A\u8BDD\u5185\u5BB9","diag.sessionsDesc":"\u8FD9\u53F0\u7535\u8111\u4E0A\u7684\u5BF9\u8BDD\uFF1A\u4F60\u548C Agent \u7684\u6D88\u606F\u6587\u5B57\u3001Agent \u7684\u601D\u8003\u8FC7\u7A0B\u548C\u7528\u5230\u7684\u5DE5\u5177\u540D\uFF0C\u5305\u62EC\u56E2\u961F\u6210\u5458\u3001\u8BA8\u8BBA\u3001\u59D4\u6D3E\u5728\u540E\u53F0\u505A\u7684\u90A3\u90E8\u5206\u3002\u6BCF\u6B21\u53EA\u4E0A\u4F20\u8FD8\u6CA1\u4E0A\u4F20\u8FC7\u7684\u90E8\u5206\uFF0C\u6700\u591A\u5F80\u524D 7 \u5929\u3002\u5DE5\u5177\u8BFB\u5199\u7684\u5185\u5BB9\u548C\u9644\u4EF6\u672C\u8EAB\u4E0D\u5E26\uFF1B\u6D88\u606F\u91CC\u51FA\u73B0\u7684\u6587\u4EF6\u540D\u3001Agent \u5728\u56DE\u590D\u91CC\u590D\u8FF0\u7684\u7B14\u8BB0\u6216\u6587\u4EF6\u5185\u5BB9\u4F1A\u5728\u5176\u4E2D\u3002\u5E38\u89C1\u683C\u5F0F\u7684\u5BC6\u94A5\u4F1A\u906E\u6389\uFF0C\u5176\u4F59\u539F\u6837\u4E0A\u4F20\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.memory":"\u5305\u542B Agent \u7684\u4EBA\u8BBE\u3001\u8BB0\u5FC6\u4E0E\u8FDB\u5316\u8BB0\u5F55","diag.memoryDesc":"\u6BCF\u4E2A Agent \u7684\u4EBA\u8BBE\uFF08\u5305\u62EC\u914D\u7F6E\u91CC\u7684\u63CF\u8FF0\u548C\u5F00\u53D1\u8005\u6307\u4EE4\uFF09\uFF0C\u548C\u5B83\u81EA\u5DF1\u6512\u4E0B\u6765\u7684\u5185\u5BB9\uFF1A\u8BB0\u5FC6\u548C\u8FD8\u6CA1\u6574\u7406\u7684\u8BB0\u5FC6\u5019\u9009\u3001\u8FDB\u5316\u8BB0\u5F55\u3001\u5199\u7ED9\u4F60\u7684\u534F\u4F5C\u8BF4\u660E\u3001\u6700\u8FD1 7 \u5929\u7684\u65E5\u5FD7\u548C\u8BB0\u5FC6\u6574\u7406\u8BB0\u5F55\uFF0C\u4EE5\u53CA\u9879\u76EE\u8BB0\u5FC6\uFF1B\u8FD8\u6709\u56E2\u961F\u7684\u8BBE\u5B9A\u548C\u4F60\u7684\u7528\u6237\u753B\u50CF\u3002\u8FD9\u4E9B\u662F\u4F60\u7ED9 Agent \u548C\u56E2\u961F\u5199\u7684\u8BBE\u5B9A\uFF0C\u548C Agent \u4ECE\u5BF9\u8BDD\u91CC\u8BB0\u4E0B\u7684\u5173\u4E8E\u4F60\u548C\u4F60\u7684\u5DE5\u4F5C\u7684\u4E8B\u5B9E\uFF0C\u6BCF\u6B21\u4E0A\u4F20\u5B83\u4EEC\u5F53\u524D\u7684\u5185\u5BB9\uFF08\u5F88\u957F\u7684\u4F1A\u622A\u65AD\uFF09\u3002\u5E38\u89C1\u683C\u5F0F\u7684\u5BC6\u94A5\u4F1A\u906E\u6389\uFF0C\u5176\u4F59\u539F\u6837\u4E0A\u4F20\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.activity":"\u5305\u542B\u6D3B\u52A8\u65E5\u5FD7","diag.activityDesc":"\u6D3B\u52A8\u8BB0\u5F55\u91CC\u6709\u5BF9\u8BDD\u5F00\u5934\u7684\u51E0\u5341\u4E2A\u5B57\u548C\u7B14\u8BB0\u6587\u4EF6\u540D\u3002\u6BCF\u6B21\u53EA\u4E0A\u4F20\u8FD8\u6CA1\u4E0A\u4F20\u8FC7\u7684\u90E8\u5206\uFF0C\u6700\u591A\u5F80\u524D 7 \u5929\u3002\u4E0D\u60F3\u63D0\u4F9B\u53EF\u4EE5\u5148\u5173\u6389\u518D\u6253\u5F00\u4E0A\u4F20\u3002","diag.last":"\u4E0A\u6B21\u4E0A\u4F20\uFF1A{time}","diag.noUpload":"\u8FD8\u6CA1\u6709\u4E0A\u4F20\u8FC7","diag.freq.hour":"\u6BCF\u5C0F\u65F6\u4E00\u6B21","diag.freq.hours":"\u6BCF {n} \u5C0F\u65F6\u4E00\u6B21","diag.freq.day":"\u6BCF\u5929\u4E00\u6B21","diag.freq.days":"\u6BCF {n} \u5929\u4E00\u6B21","diag.freq.manual":"Forsion \u56E2\u961F\u9700\u8981\u65F6\u624D\u91C7\u96C6","diag.retention":"\u4E91\u7AEF\u4FDD\u7559\u8FD9\u53F0\u7535\u8111\u6700\u8FD1 {n} \u5929\u7684\u5FEB\u7167\u3002\u5173\u95ED\u540E\u4E0D\u518D\u4E0A\u4F20\uFF1B\u5DF2\u4E0A\u4F20\u7684\u5FEB\u7167\u4ECD\u7559\u5728\u4E91\u7AEF\uFF0C\u9700\u8981\u5220\u9664\u53EF\u4EE5\u5728\u300C\u53CD\u9988\u300D\u91CC\u544A\u8BC9\u6211\u4EEC\u3002","page.privacy":"\u9690\u79C1\u4E0E\u6570\u636E","privacy.tab":"\u5E2E\u52A9\u6539\u8FDB","privacy.unavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u652F\u6301\u5E2E\u52A9\u6539\u8FDB Forsion\uFF0C\u8BF7\u66F4\u65B0 Forsion \u540E\u91CD\u8BD5\u3002","privacy.needUpdate":"\u8FD9\u4E2A\u7248\u672C\u7684 Forsion \u8FD8\u4E0D\u4F1A\u53D1\u9001\u8FD9\u4E9B\u6570\u636E\uFF0C\u66F4\u65B0 Forsion \u540E\u624D\u4F1A\u751F\u6548\u3002","privacy.devBuild":"\u5F00\u53D1\u7248\u4E0D\u53D1\u9001\u4EFB\u4F55\u6570\u636E\u3002","privacy.signInFirst":"\u767B\u5F55\u540E\u624D\u80FD\u5F00\u3002\u6CA1\u767B\u5F55\u65F6\u4E0D\u53D1\u9001\u4EFB\u4F55\u6570\u636E\u3002","privacy.improve.title":"\u5E2E\u52A9\u6539\u8FDB Forsion","privacy.improve.desc":"\u53EA\u53D1\u5143\u6570\u636E\uFF0C\u7528\u6765\u5B9A\u4F4D\u6545\u969C\u3001\u770B\u54EA\u91CC\u6162\u3002\u767B\u5F55 Forsion \u8D26\u53F7\u65F6\u624D\u4F1A\u53D1\u9001\uFF0C\u4F46\u4E0D\u5173\u8054\u4F60\u7684\u8D26\u53F7\u3002","privacy.improve.switch":"\u53D1\u9001\u5D29\u6E83\u62A5\u544A\u548C\u4F7F\u7528\u7EDF\u8BA1","privacy.improve.switchHint":"\u5173\u6389\u540E\u7ACB\u523B\u505C\u6B62\u53D1\u9001\uFF0C\u672C\u673A\u8FD8\u6CA1\u53D1\u51FA\u53BB\u7684\u4E5F\u4E00\u5E76\u4E22\u6389\u3002","privacy.policyLink":"\u6536\u96C6\u54EA\u4E9B\u6570\u636E\u3001\u4FDD\u5B58\u591A\u4E45\uFF0C\u89C1\u9690\u79C1\u653F\u7B56","privacy.sent.title":"\u6700\u8FD1 7 \u5929\u53D1\u51FA\u53BB\u7684\u5185\u5BB9","privacy.sent.hint":"\u539F\u6837\u5B58\u5728\u672C\u673A\uFF0C\u53EF\u4EE5\u9010\u6761\u770B\u3002","privacy.sent.last":"\u539F\u6837\u5B58\u5728\u672C\u673A\uFF0C\u53EF\u4EE5\u9010\u6761\u770B\u3002\u4E0A\u6B21\u53D1\u9001\uFF1A{time}","privacy.sent.view":"\u67E5\u770B","privacy.sent.empty":"\u6700\u8FD1 7 \u5929\u8FD8\u6CA1\u6709\u53D1\u9001\u8FC7\u3002","privacy.delete.title":"\u5220\u9664\u5DF2\u53D1\u9001\u7684\u6570\u636E","privacy.delete.hint":"\u6309\u8FD9\u53F0\u8BBE\u5907\u7684\u5B89\u88C5\u6807\u8BC6\u5220\u6389\u670D\u52A1\u5668\u4E0A\u7684\u5168\u90E8\u8BB0\u5F55\uFF0C\u5E76\u6362\u4E00\u4E2A\u65B0\u6807\u8BC6\u3002","privacy.delete.button":"\u5220\u9664","privacy.delete.confirm":"\u786E\u8BA4\u5220\u9664","privacy.delete.done":"\u5DF2\u5220\u9664\uFF0C\u5E76\u6362\u4E86\u65B0\u7684\u5B89\u88C5\u6807\u8BC6\u3002","privacy.delete.failed":"\u6CA1\u5220\u6210\uFF1A{reason}","privacy.installId":"\u5B89\u88C5\u6807\u8BC6 {id} \xB7 \u548C\u4F60\u7684\u8D26\u53F7\u65E0\u5173","diag.uploadNow":"\u7ACB\u5373\u4E0A\u4F20","diag.uploaded":"\u5DF2\u4E0A\u4F20","diag.failed":"\u4E0A\u4F20\u5931\u8D25\uFF1A{reason}","quota.ai.title":"AI \u989D\u5EA6","quota.ai.desc":"\u4ECA\u65E5\u548C\u672C\u5468\u5404\u8FD8\u5269\u591A\u5C11\uFF1B\u7528\u5B8C\u540E\u53EF\u4EE5\u7528\u989D\u5EA6\u91CD\u7F6E\u5361\u6062\u590D","quota.resetDaily":"\u6BCF\u5929 0:00 \u91CD\u7F6E\uFF08\u5317\u4EAC\u65F6\u95F4\uFF09","quota.resetWeekly":"{date} 0:00 \u91CD\u7F6E\uFF08\u5317\u4EAC\u65F6\u95F4\uFF09","card.title":"\u989D\u5EA6\u91CD\u7F6E\u5361","card.desc":"\u628A\u4ECA\u65E5\u548C\u672C\u5468\u7684 AI \u989D\u5EA6\u6062\u590D\u5230 100%","card.owned":"\u6301\u6709 {n} \u5F20","card.use":"\u4F7F\u7528\u4E00\u5F20","card.useConfirm":"\u786E\u8BA4\u4F7F\u7528","card.used":"\u5DF2\u4F7F\u7528 1 \u5F20\u989D\u5EA6\u91CD\u7F6E\u5361","card.left":"\u8FD8\u5269 {n} \u5F20","card.noneHint":"\u6CA1\u6709\u989D\u5EA6\u91CD\u7F6E\u5361\u4E86\uFF0C\u53EF\u4EE5\u7528\u79EF\u5206\u5151\u6362\u3002","card.exchange":"\u7528\u79EF\u5206\u5151\u6362","card.price":"\u6BCF\u5F20 {price} \u79EF\u5206\uFF0C\u4E00\u6B21 1\u201350 \u5F20","card.count":"\u5151\u6362\u5F20\u6570","card.cost":"\u82B1\u8D39 {cost} \u79EF\u5206","card.countHint":"\u586B 1\u201350","card.exchangeButton":"\u5151\u6362","card.exchangeConfirm":"\u786E\u8BA4\u82B1\u8D39 {cost} \u79EF\u5206","card.exchanged":"\u5DF2\u5151\u6362 {n} \u5F20\u989D\u5EA6\u91CD\u7F6E\u5361","points.title":"\u79EF\u5206","points.desc":"\u79EF\u5206\u53EF\u4EE5\u5151\u6362\u989D\u5EA6\u91CD\u7F6E\u5361","points.balance":"\u4F59\u989D","points.balanceFailed":"\u4F59\u989D\u6682\u65F6\u62FF\u4E0D\u5230","points.recharge":"\u5145\u503C\u79EF\u5206","bg.title":"\u540E\u53F0\u989D\u5EA6","bg.desc":"Muse \u4E0E\u81EA\u52A8\u5316\u4F7F\u7528\uFF0C\u548C AI \u989D\u5EA6\u5206\u5F00\u8BA1\u7B97","bg.autoMain":"\u7528\u5B8C\u540E\u6539\u7528 AI \u989D\u5EA6\u7EE7\u7EED","bg.autoMainDesc":"\u5173\u7740\u65F6\uFF0C\u540E\u53F0\u989D\u5EA6\u7528\u5B8C\u540E Muse \u4E0E\u81EA\u52A8\u5316\u4F1A\u6682\u505C","bg.convert":"\u4ECE AI \u989D\u5EA6\u8F6C\u5165","bg.convertDesc":"\u6309 AI \u989D\u5EA6\u4E0A\u9650\u7684\u6BD4\u4F8B\u8F6C\u5165\uFF0C\u672C\u5468\u671F\u5185\u6709\u6548","bg.convertConfirm":"\u786E\u8BA4\u8F6C\u5165 {pct}%","bg.converted":"\u5DF2\u4ECE AI \u989D\u5EA6\u8F6C\u5165 {pct}%","invite.title":"\u9080\u8BF7\u4E0E\u5151\u6362","invite.desc":"\u9080\u8BF7\u597D\u53CB\u6CE8\u518C\uFF0C\u6216\u5151\u6362\u4F60\u6536\u5230\u7684\u7801","invite.myCode":"\u6211\u7684\u9080\u8BF7\u7801","invite.count":"\u5DF2\u9080\u8BF7 {n} \u4EBA","invite.copyCode":"\u590D\u5236\u9080\u8BF7\u7801","invite.copyLink":"\u590D\u5236\u9080\u8BF7\u94FE\u63A5","invite.loadFailed":"\u9080\u8BF7\u7801\u6682\u65F6\u62FF\u4E0D\u5230","invite.claim":"\u586B\u5199\u9080\u8BF7\u7801","invite.claimDesc":"\u6CE8\u518C\u540E 7 \u5929\u5185\uFF0C\u53EF\u4EE5\u8865\u586B\u597D\u53CB\u7684\u9080\u8BF7\u7801","invite.claimPlaceholder":"\u597D\u53CB\u7684\u9080\u8BF7\u7801","invite.claimSubmit":"\u63D0\u4EA4","invite.claimed":"\u9080\u8BF7\u7801\u5DF2\u751F\u6548","redeem.title":"\u5151\u6362\u7801","redeem.desc":"\u5151\u6362\u79EF\u5206\u3001\u4F1A\u5458\u6216\u5176\u4ED6\u5956\u52B1","redeem.placeholder":"\u8F93\u5165\u5151\u6362\u7801","redeem.submit":"\u5151\u6362","redeem.success":"\u5151\u6362\u6210\u529F","redeem.successWith":"\u5151\u6362\u6210\u529F\uFF1A{what}","redeem.gotPoints":"{n} \u79EF\u5206","redeem.gotMembership":"\u4F1A\u5458","sec.methods.title":"\u767B\u5F55\u65B9\u5F0F","sec.methods.desc":"\u624B\u673A\u548C\u90AE\u7BB1\u53EF\u4EE5\u7528\u6765\u767B\u5F55\u3001\u627E\u56DE\u5BC6\u7801","sec.bind":"\u7ED1\u5B9A","sec.change":"\u66F4\u6362","sec.phone":"\u624B\u673A\u53F7","sec.email":"\u90AE\u7BB1\u5730\u5740","sec.newPhone":"\u65B0\u624B\u673A\u53F7","sec.newEmail":"\u65B0\u90AE\u7BB1\u5730\u5740","sec.phonePlaceholder":"\u4E2D\u56FD\u5927\u9646\u53F7\u7801\u76F4\u63A5\u586B\uFF0C\u5176\u4ED6\u5730\u533A\u5E26 +\u533A\u53F7","sec.emailPlaceholder":"name@example.com","sec.code":"\u9A8C\u8BC1\u7801","sec.codePlaceholder":"\u8F93\u5165\u9A8C\u8BC1\u7801","sec.sendCode":"\u53D1\u9001\u9A8C\u8BC1\u7801","sec.resendIn":"{s} \u79D2\u540E\u91CD\u53D1","sec.codeSent":"\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001","sec.bindSubmit":"\u786E\u8BA4\u7ED1\u5B9A","sec.phoneBound":"\u624B\u673A\u5DF2\u7ED1\u5B9A","sec.emailBound":"\u90AE\u7BB1\u5DF2\u7ED1\u5B9A","sec.devices.title":"\u767B\u5F55\u8BBE\u5907","sec.devices.desc":"\u62C5\u5FC3\u8D26\u53F7\u88AB\u522B\u4EBA\u7528\u4E86\uFF0C\u53EF\u4EE5\u8BA9\u6240\u6709\u8BBE\u5907\u91CD\u65B0\u767B\u5F55","sec.logoutAll":"\u9000\u51FA\u6240\u6709\u8BBE\u5907","sec.logoutAllDesc":"\u5305\u62EC\u8FD9\u53F0\u8BBE\u5907\uFF0C\u6240\u6709\u8BBE\u5907\u90FD\u8981\u91CD\u65B0\u767B\u5F55","sec.logoutAllConfirm":"\u786E\u8BA4\u9000\u51FA\u6240\u6709\u8BBE\u5907","sec.logoutAllDone":"\u5DF2\u9000\u51FA\u6240\u6709\u8BBE\u5907","pw.title":"\u5BC6\u7801","pw.desc":"{min}\u2013{max} \u4F4D\uFF0C\u542B\u5C0F\u5199\u5B57\u6BCD\u3001\u5927\u5199\u5B57\u6BCD\u548C\u7279\u6B8A\u5B57\u7B26\uFF0C\u4E0D\u80FD\u6709\u7A7A\u683C","pw.change":"\u4FEE\u6539\u5BC6\u7801","pw.modeLabel":"\u4FEE\u6539\u65B9\u5F0F","pw.mode.current":"\u7528\u5F53\u524D\u5BC6\u7801","pw.mode.code":"\u7528\u9A8C\u8BC1\u7801","pw.current":"\u5F53\u524D\u5BC6\u7801","pw.currentRequired":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","pw.new":"\u65B0\u5BC6\u7801","pw.confirm":"\u518D\u8F93\u4E00\u6B21\u65B0\u5BC6\u7801","pw.mismatch":"\u4E24\u6B21\u8F93\u5165\u7684\u65B0\u5BC6\u7801\u4E0D\u4E00\u81F4","pw.submit":"\u4FEE\u6539\u5BC6\u7801","pw.submitReset":"\u8BBE\u7F6E\u65B0\u5BC6\u7801","pw.changed":"\u5BC6\u7801\u5DF2\u66F4\u65B0","pw.noPasswordYet":"\u8FD9\u4E2A\u8D26\u53F7\u8FD8\u6CA1\u6709\u8BBE\u7F6E\u5BC6\u7801\uFF0C\u8BF7\u6539\u7528\u9A8C\u8BC1\u7801\u8BBE\u7F6E\u3002","pw.codeNeedsContact":"\u7ED1\u5B9A\u624B\u673A\u6216\u90AE\u7BB1\u540E\uFF0C\u624D\u80FD\u7528\u9A8C\u8BC1\u7801\u8BBE\u7F6E\u5BC6\u7801\u3002","pw.via":"\u9A8C\u8BC1\u7801\u53D1\u5230","pw.codeTo":"\u9A8C\u8BC1\u7801\u4F1A\u53D1\u5230 {target}","pw.rulesLabel":"\u5BC6\u7801\u89C4\u5219","pw.req.length":"{min}\u2013{max} \u4F4D","pw.req.lower":"\u542B\u5C0F\u5199\u5B57\u6BCD","pw.req.upper":"\u542B\u5927\u5199\u5B57\u6BCD","pw.req.special":"\u542B\u7279\u6B8A\u5B57\u7B26","pw.req.space":"\u4E0D\u542B\u7A7A\u683C","pw.rule.format":"\u5BC6\u7801\u683C\u5F0F\u4E0D\u6B63\u786E","pw.rule.min":"\u5BC6\u7801\u81F3\u5C11 8 \u4F4D","pw.rule.max":"\u5BC6\u7801\u4E0D\u80FD\u8D85\u8FC7 64 \u4F4D","pw.rule.space":"\u5BC6\u7801\u4E0D\u80FD\u5305\u542B\u7A7A\u683C","pw.rule.lower":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5C0F\u5199\u5B57\u6BCD","pw.rule.upper":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5927\u5199\u5B57\u6BCD","pw.rule.special":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u7279\u6B8A\u5B57\u7B26","del.title":"\u6CE8\u9500\u8D26\u53F7","del.desc":"\u6C38\u4E45\u5220\u9664\u8D26\u53F7\u548C\u5168\u90E8\u6570\u636E\uFF0C\u65E0\u6CD5\u6062\u590D","del.start":"\u6CE8\u9500\u8D26\u53F7","del.warn":"\u6CE8\u9500\u540E\uFF0C\u8D26\u53F7\u3001\u79EF\u5206\u3001\u4F1A\u5458\u3001\u4E91\u7A7A\u95F4\u548C\u5168\u90E8\u6570\u636E\u90FD\u4F1A\u88AB\u5220\u9664\uFF0C\u65E0\u6CD5\u627E\u56DE\u3002","del.methodLabel":"\u9A8C\u8BC1\u65B9\u5F0F","del.byCode":"\u9A8C\u8BC1\u7801","del.byPassword":"\u5BC6\u7801","del.codeLabel":"\u53D1\u5230 {target} \u7684\u9A8C\u8BC1\u7801","del.passwordLabel":"\u8D26\u53F7\u5BC6\u7801","del.submit":"\u6CE8\u9500\u8D26\u53F7","del.confirm":"\u786E\u8BA4\u6C38\u4E45\u6CE8\u9500","del.done":"\u8D26\u53F7\u5DF2\u6CE8\u9500","usage.overview.title":"\u7528\u91CF\u6982\u89C8","usage.overview.desc":"\u6240\u9009\u65F6\u95F4\u6BB5\u5185\u7684\u8BF7\u6C42\u4E0E AI \u989D\u5EA6\u6D88\u8017","usage.range":"\u65F6\u95F4\u8303\u56F4","usage.days":"{n} \u5929","usage.requests":"\u8BF7\u6C42\u6B21\u6570","usage.successRate":"\u6210\u529F\u7387","usage.consumption":"AI \u989D\u5EA6\u6D88\u8017","usage.ofToday":"\u5360\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650","usage.unlimitedNote":"\u4F60\u7684 AI \u989D\u5EA6\u4E0D\u9650\uFF0C\u6D88\u8017\u65E0\u6CD5\u6298\u7B97\u6210\u767E\u5206\u6BD4\u3002","usage.noLimitNote":"\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650\u4E3A 0 \u6216\u6682\u65F6\u62FF\u4E0D\u5230\uFF0C\u6D88\u8017\u65E0\u6CD5\u6298\u7B97\u6210\u767E\u5206\u6BD4\u3002","usage.byModel.title":"\u6309\u6A21\u578B","usage.byModel.desc":"\u5404\u6A21\u578B\u7684\u8BF7\u6C42\u6570\u4E0E\u989D\u5EA6\u6D88\u8017","usage.byApp.title":"\u6309\u5E94\u7528","usage.byApp.desc":"\u5404\u5E94\u7528\u7684\u8BF7\u6C42\u6570\u4E0E\u989D\u5EA6\u6D88\u8017","usage.col.model":"\u6A21\u578B","usage.col.app":"\u5E94\u7528","usage.col.requests":"\u8BF7\u6C42","usage.col.consumption":"\u989D\u5EA6\u6D88\u8017","usage.empty":"\u8FD9\u6BB5\u65F6\u95F4\u6CA1\u6709\u7528\u91CF","usage.appUnknown":"\u5176\u4ED6","usage.recent.title":"\u6700\u8FD1\u6D88\u8017","usage.recent.desc":"\u6BCF\u6B21\u8C03\u7528\u5360\u4ECA\u65E5\u989D\u5EA6\u4E0A\u9650\u7684\u6BD4\u4F8B","usage.recentEmpty":"\u8FD8\u6CA1\u6709\u6D88\u8017\u8BB0\u5F55","usage.failed":"\u5931\u8D25","usage.shown":"\u5DF2\u663E\u793A {shown} / {total} \u6761","fb.list.title":"\u6211\u7684\u53CD\u9988","fb.list.desc":"\u63D0\u4EA4\u8FC7\u7684\u95EE\u9898\u548C\u5EFA\u8BAE\uFF0C\u56DE\u590D\u4F1A\u663E\u793A\u5728\u8FD9\u91CC","fb.new":"\u65B0\u5EFA\u53CD\u9988","fb.empty":"\u8FD8\u6CA1\u6709\u53CD\u9988","fb.untitled":"\u672A\u547D\u540D\u53CD\u9988","fb.unread":"\u6709\u65B0\u56DE\u590D","fb.shown":"\u5DF2\u663E\u793A {n} \u6761","fb.submitted":"\u5DF2\u63D0\u4EA4\uFF0C\u6211\u4EEC\u4F1A\u5C3D\u5FEB\u56DE\u590D","fb.descLabel":"\u63CF\u8FF0\u95EE\u9898\u6216\u5EFA\u8BAE","fb.descPlaceholder":"\u53D1\u751F\u4E86\u4EC0\u4E48\uFF0C\u4F60\u671F\u671B\u600E\u6837\u2026\u2026","fb.imagesHint":"\u6700\u591A\u9644 {n} \u5F20\u622A\u56FE\uFF08\u6BCF\u5F20\u4E0D\u8D85\u8FC7 5MB\uFF09\uFF0C\u53EF\u4EE5\u7C98\u8D34\u6216\u62D6\u8FDB\u6765\u3002","fb.addImages":"\u6DFB\u52A0\u622A\u56FE","fb.removeImage":"\u79FB\u9664\u8FD9\u5F20\u56FE","fb.submit":"\u63D0\u4EA4","fb.back":"\u8FD4\u56DE\u5217\u8868","fb.you":"\u4F60","fb.support":"Forsion \u56E2\u961F","fb.attachment":"\u9644\u4EF6","fb.imagePreview":"\u67E5\u770B\u5927\u56FE","fb.closedNote":"\u8FD9\u4E2A\u5DE5\u5355\u5DF2\u5173\u95ED\uFF0C\u4E0D\u80FD\u518D\u56DE\u590D\u3002\u6709\u65B0\u95EE\u9898\u8BF7\u65B0\u5EFA\u53CD\u9988\u3002","fb.replyPlaceholder":"\u56DE\u590D\u2026","fb.replySend":"\u53D1\u9001\u56DE\u590D","fb.replySent":"\u56DE\u590D\u5DF2\u53D1\u9001","fb.status.open":"\u5F85\u5904\u7406","fb.status.in_progress":"\u5904\u7406\u4E2D","fb.status.resolved":"\u5DF2\u89E3\u51B3","fb.status.closed":"\u5DF2\u5173\u95ED","err.accountGone":"\u8FD9\u4E2A\u8D26\u53F7\u5DF2\u9000\u51FA\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.adminCannotDelete":"\u7BA1\u7406\u5458\u8D26\u53F7\u4E0D\u80FD\u81EA\u52A9\u6CE8\u9500","err.avatarInvalid":"\u8FD9\u5F20\u56FE\u7247\u8BFB\u4E0D\u51FA\u6765\uFF0C\u6362\u4E00\u5F20\u8BD5\u8BD5","err.avatarTooLarge":"\u56FE\u7247\u592A\u5927\u4E86\uFF0C\u6362\u4E00\u5F20\u5C0F\u4E00\u70B9\u7684","err.backgroundUnavailable":"\u540E\u53F0\u989D\u5EA6\u6682\u65F6\u4E0D\u53EF\u7528","err.captcha":"\u9700\u8981\u5728\u6D4F\u89C8\u5668\u4E2D\u5B8C\u6210\u4EBA\u673A\u9A8C\u8BC1","err.codeCooldown":"\u53D1\u9001\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.codeInvalid":"\u9A8C\u8BC1\u7801\u4E0D\u5BF9\u6216\u5DF2\u8FC7\u671F","err.codeRequired":"\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801","err.codeSendFailed":"\u9A8C\u8BC1\u7801\u6CA1\u53D1\u51FA\u53BB\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.currentPasswordWrong":"\u5F53\u524D\u5BC6\u7801\u4E0D\u5BF9","err.deleteTargetInvalid":"\u9A8C\u8BC1\u7801\u53EA\u80FD\u53D1\u5230\u8D26\u53F7\u7ED1\u5B9A\u7684\u624B\u673A\u6216\u90AE\u7BB1","err.deleteVerifyFailed":"\u9A8C\u8BC1\u6CA1\u901A\u8FC7\uFF0C\u8D26\u53F7\u6CA1\u6709\u6CE8\u9500","err.emailInUse":"\u8FD9\u4E2A\u90AE\u7BB1\u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u4F7F\u7528","err.emailInvalid":"\u90AE\u7BB1\u683C\u5F0F\u4E0D\u5BF9","err.featureDisabled":"\u8FD9\u9879\u529F\u80FD\u6682\u65F6\u5173\u95ED\u4E86","err.feedbackEmpty":"\u8BF7\u5199\u4E00\u4E0B\u95EE\u9898\u6216\u5EFA\u8BAE","err.feedbackTooLong":"\u63CF\u8FF0\u592A\u957F\u4E86\uFF08\u6700\u591A 10000 \u5B57\uFF09","err.generic":"\u64CD\u4F5C\u6CA1\u6709\u6210\u529F\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.imageRead":"\u56FE\u7247\u8BFB\u4E0D\u51FA\u6765","err.imageTooLarge":"\u6BCF\u5F20\u56FE\u7247\u4E0D\u80FD\u8D85\u8FC7 5MB","err.imageType":"\u53EA\u80FD\u6DFB\u52A0\u56FE\u7247","err.insufficientMainQuota":"AI \u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u6CA1\u6709\u53EF\u8F6C\u5165\u7684\u989D\u5EA6","err.insufficientPoints":"\u79EF\u5206\u4E0D\u591F","err.priceChanged":"\u91CD\u7F6E\u5361\u5355\u4EF7\u521A\u521A\u8C03\u6574\u8FC7\uFF0C\u8BF7\u770B\u4E00\u4E0B\u65B0\u4EF7\u683C\uFF0C\u518D\u786E\u8BA4\u5151\u6362\u3002","err.invalidCount":"\u5F20\u6570\u8981\u5728 1\u201350 \u4E4B\u95F4","err.invalidInviteCode":"\u9080\u8BF7\u7801\u65E0\u6548\u6216\u5DF2\u5931\u6548","err.inviteAlreadyUsed":"\u4F60\u5DF2\u7ECF\u7528\u8FC7\u9080\u8BF7\u7801\u4E86","err.inviteEmpty":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","err.inviteOwnCode":"\u4E0D\u80FD\u586B\u81EA\u5DF1\u7684\u9080\u8BF7\u7801","err.inviteWindowExpired":"\u5DF2\u8D85\u8FC7\u6CE8\u518C\u540E 7 \u5929\u7684\u8865\u586B\u671F","err.loginCodeExpired":"\u767B\u5F55\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.loginInProgress":"\u6B63\u5728\u767B\u5F55\u4E2D","err.loginTimeout":"\u767B\u5F55\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5","err.loginUnsupported":"\u8FD9\u4E2A\u4E91\u7AEF\u4E0D\u652F\u6301\u684C\u9762\u7AEF\u767B\u5F55","err.network":"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5","err.noCloudUrl":"\u8BF7\u5148\u5728\u300C\u8FDE\u63A5\u300D\u91CC\u586B\u5199\u4E91\u7AEF\u5730\u5740","err.noResetCard":"\u6CA1\u6709\u53EF\u7528\u7684\u989D\u5EA6\u91CD\u7F6E\u5361","err.openFailed":"\u6CA1\u80FD\u6253\u5F00\u6D4F\u89C8\u5668","err.passwordRequired":"\u8BF7\u586B\u5199\u5F53\u524D\u5BC6\u7801\u548C\u65B0\u5BC6\u7801","err.phoneInUse":"\u8FD9\u4E2A\u624B\u673A\u53F7\u5DF2\u88AB\u5176\u4ED6\u8D26\u53F7\u4F7F\u7528","err.phoneInvalid":"\u624B\u673A\u53F7\u683C\u5F0F\u4E0D\u5BF9\uFF08\u5176\u4ED6\u5730\u533A\u8BF7\u5E26 +\u533A\u53F7\uFF09","err.redeemEmpty":"\u8BF7\u8F93\u5165\u5151\u6362\u7801","err.redeemExpired":"\u5151\u6362\u7801\u5DF2\u8FC7\u671F","err.redeemInactive":"\u5151\u6362\u7801\u5DF2\u505C\u7528","err.redeemNotFound":"\u5151\u6362\u7801\u4E0D\u5B58\u5728","err.redeemUsedUp":"\u5151\u6362\u7801\u5DF2\u88AB\u7528\u5B8C","err.redeemUserLimit":"\u4F60\u5DF2\u7ECF\u5151\u6362\u8FC7\u8FD9\u4E2A\u7801\u4E86","err.replyEmpty":"\u8BF7\u8F93\u5165\u56DE\u590D\u5185\u5BB9","err.replyTooLong":"\u56DE\u590D\u592A\u957F\u4E86\uFF08\u6700\u591A 10000 \u5B57\uFF09","err.server":"\u670D\u52A1\u5668\u51FA\u9519\u4E86\uFF08{status}\uFF09\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.session":"\u767B\u5F55\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55","err.signedOut":"\u8BF7\u5148\u767B\u5F55 Forsion","err.targetInvalid":"\u624B\u673A\u53F7\u6216\u90AE\u7BB1\u683C\u5F0F\u4E0D\u5BF9","err.ticketNotFound":"\u8FD9\u6761\u53CD\u9988\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664","err.webPageGone":"\u8FD9\u4E2A\u7F51\u9875\u4E0D\u5B58\u5728\u6216\u5DF2\u4E0B\u7EBF","err.listingGone":"\u8FD9\u4E2A\u7F51\u9875\u6CA1\u6709\u4E0A\u67B6\u7533\u8BF7","err.listingSummary":"\u8BF7\u586B\u5199\u5546\u5E97\u7B80\u4ECB\uFF08300 \u5B57\u4EE5\u5185\uFF09","err.tooFrequent":"\u64CD\u4F5C\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5","err.tooManyImages":"\u6700\u591A\u6DFB\u52A0 5 \u5F20\u56FE\u7247","err.unavailable":"\u8FD9\u4E2A\u7248\u672C\u8FD8\u4E0D\u652F\u6301\u8FD9\u4E2A\u64CD\u4F5C\uFF0C\u8BF7\u66F4\u65B0 Forsion","profile.unsupported":"\u8FD9\u4E2A\u670D\u52A1\u7AEF\u8FD8\u6CA1\u6709\u4E2A\u4EBA\u4E3B\u9875\u529F\u80FD","profile.state.private":"\u4EC5\u81EA\u5DF1\u53EF\u89C1","profile.state.public":"\u5DF2\u516C\u5F00","profile.state.privateDesc":"\u516C\u5F00\u540E\uFF0C\u4EFB\u4F55\u4EBA\u6253\u5F00\u5730\u5740\u90FD\u80FD\u770B\u5230\u4F60\u7684\u4E3B\u9875\uFF0C\u4E0D\u9700\u8981\u767B\u5F55","profile.linkUnavailable":"\u6682\u672A\u83B7\u53D6\u5230\u516C\u5F00\u94FE\u63A5","profile.decorate":"\u88C5\u9970","profile.publish":"\u516C\u5F00\u4E3B\u9875","profile.makePrivate":"\u8BBE\u4E3A\u79C1\u6709","profile.copyLink":"\u590D\u5236\u94FE\u63A5","profile.openPublic":"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u516C\u5F00\u4E3B\u9875","profile.nowPublic":"\u4E3B\u9875\u5DF2\u516C\u5F00","profile.nowPrivate":"\u4E3B\u9875\u5DF2\u8BBE\u4E3A\u79C1\u6709\uFF0C\u516C\u5F00\u5730\u5740\u4E0D\u518D\u80FD\u6253\u5F00","profile.bio":"\u7B80\u4ECB","profile.bioPlaceholder":"\u5199\u4E00\u53E5\u7B80\u4ECB","profile.linkAdd":"\u6DFB\u52A0\u94FE\u63A5","profile.linkRemove":"\u79FB\u9664\u94FE\u63A5","profile.linkInvalid":"\u94FE\u63A5\u8981\u4EE5 http:// \u6216 https:// \u5F00\u5934\uFF0C\u6216\u76F4\u63A5\u5199\u57DF\u540D","profile.joined":"{date}\u52A0\u5165","profile.stat.tokens":"\u7D2F\u8BA1 Token","profile.stat.activeDays":"\u6D3B\u8DC3\u5929\u6570","profile.stat.longest":"\u6700\u957F\u8FDE\u7EED","profile.stat.current":"\u5F53\u524D\u8FDE\u7EED","profile.stat.installs":"\u4F5C\u54C1\u88AB\u5B89\u88C5","profile.unit.days":"\u5929","profile.works":"\u7CBE\u9009\u4F5C\u54C1","profile.worksPick":"\u9009\u62E9","profile.worksEmpty":"\u8FD8\u6CA1\u6709\u4E0A\u67B6\u7684\u4F5C\u54C1\u3002\u4E0A\u67B6\u5230\u5546\u5E97\u6216\u53D1\u5E03\u6210\u7F51\u9875\u5E94\u7528\u540E\uFF0C\u53EF\u4EE5\u653E\u5230\u8FD9\u91CC\u3002","profile.worksNone":"\u8FD8\u6CA1\u6709\u53EF\u4EE5\u653E\u4E0A\u4E3B\u9875\u7684\u4F5C\u54C1\u3002\u4F5C\u54C1\u4E0A\u67B6\u5230\u5546\u5E97\u3001\u6216\u53D1\u5E03\u6210\u7F51\u9875\u5E94\u7528\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002","profile.worksPicked":"\u5DF2\u9009 {n} / {max} \u4EF6","profile.worksAuto":"\u4E0D\u9009\u7684\u8BDD\uFF0C\u6309\u5B89\u88C5\u91CF\u81EA\u52A8\u53D6\u524D\u51E0\u4EF6","profile.goSubmit":"\u53BB\u6295\u7A3F","profile.workInstalls":"{n} \u6B21\u5B89\u88C5","profile.workVisits":"{n} \u6B21\u8BBF\u95EE","profile.work.skill":"\u6280\u80FD","profile.work.agent":"Agent","profile.work.plugin":"\u63D2\u4EF6","profile.work.space":"Space","profile.work.theme":"\u4E3B\u9898","profile.work.note":"\u7B14\u8BB0\u63D2\u4EF6","profile.work.webapp":"\u7F51\u9875\u5E94\u7528","profile.activity":"\u6D3B\u52A8","profile.activityDays":"\u8FC7\u53BB\u4E00\u5E74\u6709 {n} \u5929\u5728\u7528","profile.less":"\u5C11","profile.more":"\u591A","profile.badges":"\u5FBD\u7AE0","profile.badgesEmpty":"\u8FD8\u6CA1\u6709\u5FBD\u7AE0\u3002\u8FDE\u7EED\u4F7F\u7528\u3001\u4E0A\u67B6\u4F5C\u54C1\u3001\u9080\u8BF7\u670B\u53CB\u90FD\u4F1A\u70B9\u4EAE\u3002","profile.badge.early":"\u65E9\u671F\u7528\u6237","profile.badge.streak":"\u8FDE\u7EED 30 \u5929","profile.badge.author":"\u4F5C\u8005","profile.badge.inviter":"\u9080\u8BF7\u8FBE\u4EBA","profile.badge.event":"\u6D3B\u52A8\u7EAA\u5FF5","profile.badgeSub.early":"{value} \u5E74\u52A0\u5165","profile.badgeSub.streak":"\u6700\u957F\u8FDE\u7EED {value} \u5929","profile.badgeSub.author":"\u4E0A\u67B6\u4E86 {value} \u4EF6\u4F5C\u54C1","profile.badgeSub.inviter":"\u9080\u8BF7\u4E86 {value} \u4F4D\u670B\u53CB","profile.badgeSub.event":"\u53C2\u52A0\u8FC7 Forsion \u7684\u6D3B\u52A8{value}","profile.insights":"\u6D1E\u5BDF","profile.insightsEmpty":"\u7528\u5F97\u8FD8\u4E0D\u591F\u591A\uFF0C\u8FC7\u51E0\u5929\u518D\u6765\u770B\u3002","profile.insightModel":"\u6700\u5E38\u7528\u6A21\u578B","profile.insightHours":"\u6700\u6D3B\u8DC3\u65F6\u6BB5","profile.deco.skin":"\u516C\u5F00\u9875\u7684\u914D\u8272","profile.deco.mode":"\u516C\u5F00\u9875\u7684\u660E\u6697","profile.deco.publicHint":"\u8FD9\u4E24\u9879\u53EA\u7BA1\u8BBF\u5BA2\u5728\u516C\u5F00\u9875\u4E0A\u770B\u5230\u7684\u3002\u5728\u8FD9\u91CC\uFF0C\u4E3B\u9875\u8DDF Forsion \u5F53\u524D\u7684\u4E3B\u9898\u8D70\u3002","profile.deco.cover":"\u5C01\u9762","profile.deco.frame":"\u5934\u50CF\u6846","profile.deco.modules":"\u6A21\u5757","profile.skin.cream":"\u7ECF\u5178","profile.skin.coral":"\u73CA\u745A","profile.skin.teal":"\u67D4\u9752","profile.skin.lavender":"\u85B0\u8863\u8349","profile.mode.auto":"\u8DDF\u968F\u8BBF\u5BA2","profile.mode.light":"\u6D45\u8272","profile.mode.dark":"\u6DF1\u8272","profile.cover.none":"\u65E0","profile.cover.mist":"\u6668\u96FE","profile.cover.contour":"\u7B49\u9AD8\u7EBF","profile.cover.dots":"\u7F51\u70B9","profile.frame.none":"\u65E0","profile.frame.ring":"\u7EC6\u73AF","profile.frame.pro":"\u4F1A\u5458\u73AF","profile.frameProHint":"\u4F1A\u5458\u73AF\u662F\u4ED8\u8D39\u4F1A\u5458\u4E13\u5C5E\u3002","profile.col.show":"\u663E\u793A","profile.col.public":"\u516C\u5F00","profile.moveUp":"\u4E0A\u79FB","profile.moveDown":"\u4E0B\u79FB","profile.modulesHint":"\u300C\u663E\u793A\u300D\u51B3\u5B9A\u4E3B\u9875\u4E0A\u6709\u6CA1\u6709\u8FD9\u4E00\u5757\uFF1B\u300C\u516C\u5F00\u300D\u51B3\u5B9A\u8BBF\u5BA2\u80FD\u4E0D\u80FD\u770B\u5230\uFF0C\u4E3B\u9875\u516C\u5F00\u540E\u624D\u8D77\u4F5C\u7528\u3002","profile.mod.stats":"\u6570\u636E","profile.mod.works":"\u7CBE\u9009\u4F5C\u54C1","profile.mod.activity":"\u6D3B\u52A8","profile.mod.badges":"\u5FBD\u7AE0","profile.mod.insights":"\u6D1E\u5BDF","profile.modDesc.stats":"\u7D2F\u8BA1 Token\u3001\u6D3B\u8DC3\u5929\u6570\u3001\u8FDE\u7EED\u5929\u6570\u3001\u4F5C\u54C1\u5B89\u88C5\u91CF","profile.modDesc.works":"\u4F60\u4E0A\u67B6\u7684\u4F5C\u54C1\uFF0C\u6700\u591A 6 \u4EF6","profile.modDesc.activity":"\u8FC7\u53BB\u4E00\u5E74\u6BCF\u5929\u7528\u6CA1\u7528\u3001\u7528\u5F97\u591A\u4E0D\u591A\uFF08\u53EA\u6709\u6DF1\u6D45\uFF0C\u6CA1\u6709\u5177\u4F53\u6570\u5B57\uFF09","profile.modDesc.badges":"\u52A0\u5165\u5E74\u4EFD\u3001\u8FDE\u7EED\u5929\u6570\u3001\u4E0A\u67B6\u3001\u9080\u8BF7\u3001\u6D3B\u52A8","profile.modDesc.insights":"\u6700\u5E38\u7528\u7684\u6A21\u578B\u3001\u6700\u6D3B\u8DC3\u7684\u65F6\u6BB5","profile.publishDesc":"\u516C\u5F00\u540E\uFF0C\u4EFB\u4F55\u4EBA\u6253\u5F00\u8FD9\u4E2A\u5730\u5740\u90FD\u80FD\u770B\u5230\u4F60\u7684\u4E3B\u9875\uFF0C\u4E0D\u9700\u8981\u767B\u5F55\u3002\u4E0B\u9762\u6BCF\u4E00\u5757\u53EF\u4EE5\u5355\u72EC\u51B3\u5B9A\u7ED9\u4E0D\u7ED9\u8BBF\u5BA2\u770B\u3002","profile.publishNever":"\u5934\u50CF\u3001\u6635\u79F0\u3001\u7528\u6237\u540D\u3001\u7B80\u4ECB\u548C\u94FE\u63A5\u4F1A\u4E00\u8D77\u516C\u5F00\u3002\u90AE\u7BB1\u3001\u624B\u673A\u53F7\u3001\u4F1A\u5458\u5230\u671F\u65E5\u3001\u79EF\u5206\u548C\u989D\u5EA6\u4E0D\u4F1A\u51FA\u73B0\u5728\u4E3B\u9875\u4E0A\u3002","profile.publishConfirm":"\u516C\u5F00","profile.blocked.machineUsername":"\u4F60\u73B0\u5728\u7684\u7528\u6237\u540D\u662F\u7CFB\u7EDF\u751F\u6210\u7684\uFF0C\u91CC\u9762\u5E26\u7740\u624B\u673A\u53F7\u6216\u90AE\u7BB1\u7684\u4E00\u90E8\u5206\uFF0C\u516C\u5F00\u4F1A\u628A\u5B83\u9732\u51FA\u53BB\u3002\u5148\u5230\u7F51\u9875\u4E2A\u4EBA\u4E2D\u5FC3\u7684\u300C\u8D26\u53F7\u300D\u9875\u6539\u4E00\u4E2A\u7528\u6237\u540D\uFF08\u6BCF\u4E2A\u8D26\u53F7\u53EF\u4EE5\u6539\u4E00\u6B21\uFF09\uFF0C\u518D\u56DE\u6765\u516C\u5F00\u3002","profile.blocked.publishBlocked":"\u8FD9\u4E2A\u4E3B\u9875\u5DF2\u88AB\u7BA1\u7406\u5458\u505C\u6B62\u516C\u5F00\u3002\u6709\u7591\u95EE\u8BF7\u901A\u8FC7\u300C\u53CD\u9988\u300D\u8054\u7CFB\u6211\u4EEC\u3002","profile.goRename":"\u53BB\u6539\u7528\u6237\u540D","profile.invalid":"\u8FD9\u9879\u5185\u5BB9\u6CA1\u80FD\u4FDD\u5B58\uFF0C\u8BF7\u68C0\u67E5\u540E\u518D\u8BD5","guide.title":"\u4F7F\u7528\u6307\u5357","guide.readOnly":"\u53EA\u8BFB","guide.more":"\u66F4\u591A","guide.unlockAll":"\u5168\u90E8\u89E3\u9501","guide.relock":"\u6539\u56DE\u6309\u7B49\u7EA7\u89E3\u9501","guide.reminders":"\u4F7F\u7528\u6307\u5357\u63D0\u9192","guide.spotlight":"\u73B0\u573A\u6307\u5F15","guide.spotStep":"\u7B2C {n} \u6B65\uFF0C\u5171 {total} \u6B65","guide.figure":"\u793A\u610F\u56FE","guide.openAchievements":"\u6253\u5F00\u6210\u5C31","guide.tasks":"\u672C\u7AE0\u4EFB\u52A1","guide.go":"\u5E26\u6211\u53BB","guide.desktopOnly":"\u5728\u7535\u8111\u4E0A\u505A","guide.taskDone":"\u5DF2\u5B8C\u6210","guide.askTangu":"\u95EE Tangu","guide.progress":"\u8FDB\u5EA6","guide.justUnlocked":"\u521A\u89E3\u9501","guide.lockedHint":"\u672A\u89E3\u9501","guide.whatsNew":"\u65B0\u7248\u672C \xB7 {version}","guide.level.lv1":"Lv.1 \u521D\u6765\u4E4D\u5230","guide.level.lv2":"Lv.2 \u719F\u95E8\u719F\u8DEF","guide.level.lv3":"Lv.3 \u5F97\u5FC3\u5E94\u624B","guide.level.lv4":"Lv.4 \u878D\u4F1A\u8D2F\u901A","guide.locked.title":"\u8FD9\u4E00\u7AE0\u8FD8\u6CA1\u89E3\u9501","guide.locked.body":"\u505A\u5B8C\u300C{level}\u300D\u7684\u4EFB\u52A1\u5C31\u80FD\u8BFB\u5168\u6587\u3002","guide.locked.left":"\u8FD8\u5DEE\u8FD9\u51E0\u9879\uFF1A","guide.locked.hint":"\u7528\u8FC7\u4E00\u9635\u4E86\uFF1F\u53F3\u4E0A\u89D2\u300C\xB7\xB7\xB7\u300D\u91CC\u53EF\u4EE5\u5168\u90E8\u89E3\u9501\u3002","guide.levelProgress":"\u672C\u7EA7\u8FDB\u5EA6 {done}/{total}","guide.next":"\u4E0B\u4E00\u7EA7","guide.allDone":"\u5168\u90E8\u5B8C\u6210","guide.allDoneBody":"\u6307\u5357\u91CC\u7684\u4EFB\u52A1\u90FD\u505A\u5B8C\u4E86\uFF0C\u968F\u65F6\u56DE\u6765\u7FFB\u770B\u3002","guide.review":"\u56DE\u770B","guide.ask.hint":"\u5BF9\u300C{chapter}\u300D\u6709\u7591\u95EE\uFF1F\u95EE Tangu \u4F1A\u5F00\u4E00\u4E2A\u5E26\u4E0A\u672C\u7AE0\u5185\u5BB9\u7684\u65B0\u5BF9\u8BDD\u3002","guide.ask.placeholder":"\u60F3\u95EE\u4EC0\u4E48\uFF1F","guide.ask.send":"\u5F00\u59CB\u5BF9\u8BDD","guide.ask.prompt":"\u6211\u6B63\u5728\u8BFB Forsion \u4F7F\u7528\u6307\u5357\u91CC\u300C{chapter}\u300D\u8FD9\u4E00\u7AE0\uFF0C\u5185\u5BB9\u9644\u5728\u4E0B\u9762\u3002{question}","guide.ask.unavailable":"\u8FD9\u91CC\u5F00\u4E0D\u4E86\u5BF9\u8BDD","guide.ask.chatTitle":"\u4F7F\u7528\u6307\u5357\u95EE\u7B54","guide.companion.back":"\u56DE\u5230\u6307\u5357","guide.companion.close":"\u6536\u8D77","guide.toast.taskDone":"\u5B8C\u6210\uFF1A{task}","guide.letter.levelTitle":"{level} \u5DF2\u89E3\u9501\uFF1A\u63A5\u4E0B\u6765\u8BD5\u8BD5\u8FD9\u51E0\u4EF6\u4E8B","guide.letter.levelBody":"\u4E0A\u4E00\u7EA7\u7684\u4EFB\u52A1\u90FD\u505A\u5B8C\u4E86\uFF0C\u4E0B\u9762\u8FD9\u51E0\u7AE0\u73B0\u5728\u53EF\u4EE5\u8BFB\u4E86\u3002\u6BCF\u9879\u4EFB\u52A1\u90FD\u80FD\u300C\u5E26\u6211\u53BB\u300D\u3002","guide.letter.versionTitle":"{version} \u6709 {n} \u4EF6\u65B0\u4E1C\u897F\u53EF\u4EE5\u4F53\u9A8C","guide.letter.versionBody":"\u8FD9\u4E2A\u7248\u672C\u65B0\u52A0\u7684\uFF0C\u53EF\u4EE5\u76F4\u63A5\u4E0A\u624B\uFF1A","guide.letter.open":"\u6253\u5F00\u6307\u5357","guide.status.done":"\u5DF2\u5B8C\u6210","guide.cmd.open":"\u6253\u5F00\u4F7F\u7528\u6307\u5357","penzor.title":"\u84EC\u6D32\u4E91","penzor.overview":"\u6982\u89C8","penzor.places":"\u4F4D\u7F6E","penzor.details":"\u8BE6\u60C5","penzor.ledger.sync":"\u667A\u5E93\u540C\u6B65","penzor.ledger.ama":"Amadeus Cloud","penzor.ledger.apps":"\u5E94\u7528\u6587\u4EF6","penzor.ledger.exports":"\u5BFC\u51FA","penzor.trash":"\u56DE\u6536\u7AD9","penzor.items":"{n} \u9879","penzor.total.sub":"\u5B58\u5728 Forsion \u4E91\u7AEF \xB7 {time}\u66F4\u65B0","penzor.justNow":"\u521A\u521A","penzor.ofMax":"/ {max}","penzor.card.syncSub":"{n} \u4E2A\u5E93 \xB7 \u4E0A\u6B21\u5199\u5165 {time}","penzor.card.syncSubNone":"{n} \u4E2A\u5E93","penzor.card.syncFoot":"\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7 {size} \u4E0D\u4E0A\u4F20","penzor.card.syncWarn":"\u5FEB\u6EE1\u4E86\uFF1A\u6EE1 {max} \u540E\u65B0\u6587\u4EF6\u4E0D\u518D\u4E0A\u4F20\uFF0C\u5DF2\u5728\u4E91\u7AEF\u7684\u7167\u5E38\u540C\u6B65","penzor.card.amaSmall":"\u4E0D\u7B97\u5728\u989D\u5EA6\u91CC","penzor.card.amaSub":"{n} \u4E2A\u4E91\u7AEF\u667A\u5E93","penzor.card.amaFoot":"\u7B14\u8BB0\u548C\u9644\u4EF6\u5728 Amadeus \u7684 Cloud \u4FA7","penzor.card.appsFoot":"\u56DE\u6536\u7AD9 {n} \u9879 \xB7 {size}","penzor.card.appsWarn":"\u5FEB\u6EE1\u4E86\uFF1A\u6EE1 {max} \u540E\u5E94\u7528\u4E0D\u80FD\u518D\u5B58\u65B0\u6587\u4EF6\uFF1B\u56DE\u6536\u7AD9\u91CC\u7684\u4E5F\u7B97\uFF0C\u6E05\u7A7A\u80FD\u817E\u51FA\u7A7A\u95F4","penzor.card.expSmall":"{n} \u4E2A\u6587\u4EF6","penzor.card.expSub":"\u6700\u8FD1\uFF1A{name} \xB7 {time}","penzor.card.expFoot":"\u5404\u5E94\u7528\u5BFC\u51FA\u7684\u6587\u4EF6","penzor.card.none":"\u8FD8\u6CA1\u6709\u4E1C\u897F","penzor.largest":"\u5360\u7528\u6700\u591A","penzor.col.name":"\u540D\u79F0","penzor.col.size":"\u5927\u5C0F","penzor.col.mtime":"\u4FEE\u6539\u65F6\u95F4","penzor.col.device":"\u5199\u5165\u8BBE\u5907","penzor.col.deleted":"\u5220\u9664\u4E8E","penzor.col.origin":"\u539F\u4F4D\u7F6E","penzor.col.app":"\u6765\u6E90","penzor.sort.mtime":"\u6309\u4FEE\u6539\u65F6\u95F4","penzor.sort.size":"\u6309\u5927\u5C0F","penzor.sort.name":"\u6309\u540D\u79F0","penzor.search":"\u641C\u7D22\u8FD9\u91CC\u7684\u6587\u4EF6\u540D","penzor.sync.thisDevice":"\u672C\u673A\u5728\u540C\u6B65","penzor.meta.files":"{size} \xB7 {n} \u4E2A\u6587\u4EF6","penzor.sync.last":"\u4E0A\u6B21\u5199\u5165 {time} \xB7 {device}","penzor.sync.lastNoDevice":"\u4E0A\u6B21\u5199\u5165 {time}","penzor.sync.devices":"{n} \u53F0\u8BBE\u5907\u540C\u6B65\u8FD9\u4E2A\u5E93","penzor.sync.meter":"\u667A\u5E93\u540C\u6B65\u5171\u7528 {max}\uFF0C\u5DF2\u7528 {used}","penzor.apps.meter":"\u5E94\u7528\u6587\u4EF6\u5171\u7528 {max}\uFF0C\u5DF2\u7528 {used}\uFF08\u56DE\u6536\u7AD9\u91CC\u7684\u4E5F\u7B97\uFF09","penzor.apps.by":"\u7531 {app} \u5199\u5165","penzor.ama.notCounted":"\u4E0D\u7B97\u5728\u989D\u5EA6\u91CC","penzor.ama.open":"\u5728 Amadeus \u4E2D\u6253\u5F00","penzor.hosted.open":"\u7BA1\u7406\u6211\u7684\u7F51\u9875","penzor.hosted.note":"\u8FD9\u662F\u5DF2\u53D1\u5E03\u7F51\u9875\u7684\u6587\u4EF6\u3002\u8981\u6539\u5185\u5BB9\u8BF7\u91CD\u65B0\u53D1\u5E03\uFF0C\u8981\u5220\u9664\u8BF7\u5230\u300C\u6211\u7684\u7F51\u9875\u300D\u4E0B\u7EBF\u3002","penzor.trash.meta":"{n} \u9879 \xB7 {size}","penzor.trash.note":"\u6C38\u4E45\u5220\u9664\u540E\u624D\u817E\u51FA\u7A7A\u95F4","penzor.trash.emptyBtn":"\u6E05\u7A7A\u56DE\u6536\u7AD9","penzor.act.download":"\u4E0B\u8F7D","penzor.act.rename":"\u91CD\u547D\u540D","penzor.act.move":"\u79FB\u52A8\u5230\u2026","penzor.act.trash":"\u79FB\u5230\u56DE\u6536\u7AD9","penzor.act.delete":"\u5220\u9664","penzor.act.restore":"\u6062\u590D","penzor.act.purge":"\u6C38\u4E45\u5220\u9664","penzor.act.copyName":"\u590D\u5236\u5E93\u540D","penzor.act.openSync":"\u5728\u8BBE\u7F6E\u4E2D\u6253\u5F00\u540C\u6B65","penzor.act.refresh":"\u5237\u65B0","penzor.act.up":"\u4E0A\u4E00\u7EA7","penzor.toast.trashed":"\u5DF2\u628A\u300C{name}\u300D\u79FB\u5230\u56DE\u6536\u7AD9","penzor.toast.restored":"\u5DF2\u6062\u590D\u300C{name}\u300D","penzor.toast.purged":"\u5DF2\u6C38\u4E45\u5220\u9664\u300C{name}\u300D","penzor.toast.emptied":"\u5DF2\u6E05\u7A7A\u56DE\u6536\u7AD9","penzor.toast.downloaded":"\u5DF2\u5B58\u5230\u300C\u4E0B\u8F7D\u300D\uFF1A{name}","penzor.toast.renamed":"\u5DF2\u6539\u540D\u4E3A\u300C{name}\u300D","penzor.toast.moved":"\u5DF2\u79FB\u5230\u300C{name}\u300D","penzor.toast.versionRestored":"\u5DF2\u6062\u590D\u5230\u7B2C {n} \u7248","penzor.toast.copied":"\u5DF2\u590D\u5236\u5E93\u540D","penzor.toast.failed":"\u6CA1\u6210\u529F\uFF1A{reason}","penzor.confirm.purge":"\u6C38\u4E45\u5220\u9664\u300C{name}\u300D\uFF1F\u5220\u4E86\u5C31\u627E\u4E0D\u56DE\u6765\u4E86\u3002","penzor.confirm.empty":"\u6E05\u7A7A\u56DE\u6536\u7AD9\uFF1F{n} \u9879\u4F1A\u88AB\u6C38\u4E45\u5220\u9664\uFF0C\u627E\u4E0D\u56DE\u6765\u3002","penzor.confirm.deleteExport":"\u5220\u9664\u300C{name}\u300D\uFF1F\u5BFC\u51FA\u7684\u6587\u4EF6\u6CA1\u6709\u56DE\u6536\u7AD9\uFF0C\u5220\u4E86\u5C31\u627E\u4E0D\u56DE\u6765\u4E86\u3002","penzor.cancel":"\u53D6\u6D88","penzor.side.where":"\u4F4D\u7F6E","penzor.side.mtime":"\u4FEE\u6539","penzor.side.device":"\u5199\u5165\u8BBE\u5907","penzor.side.thisDevice":"{name}\uFF08\u672C\u673A\uFF09","penzor.side.from":"\u6765\u6E90","penzor.side.versions":"\u5386\u53F2\u7248\u672C","penzor.side.versionsNone":"\u6CA1\u6709","penzor.side.versionRow":"\u7B2C {n} \u7248 \xB7 {time} \xB7 {size}","penzor.side.restoreVersion":"\u6062\u590D\u8FD9\u4E00\u7248","penzor.side.deletedAt":"\u5220\u9664\u4E8E","penzor.side.origin":"\u539F\u4F4D\u7F6E","penzor.side.inner":"\u91CC\u9762\u8FD8\u6709 {n} \u9879\uFF0C\u6062\u590D\u65F6\u4E00\u8D77\u56DE\u6765","penzor.side.inTrash":"\u5728\u56DE\u6536\u7AD9 \xB7 {size}","penzor.side.readonlySync":"\u540C\u6B65\u5E93\u91CC\u7684\u6587\u4EF6\u53EA\u5728\u8BBE\u5907\u4E0A\u5220\u6539\u3002\u5728\u8FD9\u91CC\u5220\u6389\u4E00\u4E2A\u6587\u4EF6\uFF0C\u6BCF\u53F0\u540C\u6B65 {vault} \u7684\u8BBE\u5907\u4E0B\u6B21\u540C\u6B65\u65F6\u90FD\u4F1A\u8DDF\u7740\u5220\u6389\uFF0C\u6240\u4EE5\u8FD9\u91CC\u53EA\u80FD\u770B\u548C\u4E0B\u8F7D\u3002","penzor.side.readonlyAma":"\u7B14\u8BB0\u548C\u9644\u4EF6\u5728 Amadeus \u91CC\u6539\u3002\u5728\u8FD9\u91CC\u5220\u6389\u4E00\u4E2A\u9644\u4EF6\uFF0C\u5F15\u7528\u5B83\u7684\u7B14\u8BB0\u4F1A\u7F3A\u56FE\uFF0C\u6240\u4EE5\u8FD9\u91CC\u53EA\u80FD\u770B\u548C\u4E0B\u8F7D\u3002","penzor.side.exportNote":"\u5BFC\u51FA\u7684\u6587\u4EF6\u6CA1\u6709\u56DE\u6536\u7AD9\uFF1A\u5220\u9664\u5C31\u662F\u6C38\u4E45\u5220\u9664\u3002","penzor.side.none":"\u9009\u4E00\u4E2A\u6587\u4EF6\u770B\u8BE6\u60C5","penzor.side.folder":"\u6587\u4EF6\u5939 \xB7 {n} \u9879","penzor.side.folderPlain":"\u6587\u4EF6\u5939","penzor.move.title":"\u79FB\u5230\u54EA\u91CC","penzor.move.root":"{app} \u6700\u4E0A\u5C42","penzor.move.here":"\u79FB\u5230\u8FD9\u91CC","penzor.move.noFolders":"\u8FD9\u4E00\u5C42\u6CA1\u6709\u6587\u4EF6\u5939","penzor.rename.save":"\u4FDD\u5B58","penzor.empty.title":"\u84EC\u6D32\u4E91\u91CC\u8FD8\u6CA1\u6709\u4E1C\u897F","penzor.empty.lead":"\u8FD9\u4E9B\u4E1C\u897F\u5B58\u8FDB\u4E91\u7AEF\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\uFF1A","penzor.empty.sync":"\u5728\u300C\u8BBE\u7F6E \u203A \u540C\u6B65\u300D\u91CC\u628A\u8FDC\u7A0B\u670D\u52A1\u9009\u6210\u300C\u84EC\u6D32\u4E91\u300D\uFF0C\u672C\u5730\u667A\u5E93\u5C31\u540C\u6B65\u5230\u8FD9\u91CC","penzor.empty.ama":"Amadeus \u5207\u5230 Cloud \u4FA7\u5199\u7684\u7B14\u8BB0","penzor.empty.apps":"\u5404\u5E94\u7528\u5B58\u5230\u4E91\u7AEF\u6216\u5BFC\u51FA\u7684\u6587\u4EF6","penzor.empty.openSync":"\u6253\u5F00\u540C\u6B65\u8BBE\u7F6E","penzor.out.title":"\u767B\u5F55\u540E\u67E5\u770B\u4F60\u7684\u84EC\u6D32\u4E91","penzor.out.lead":"\u84EC\u6D32\u4E91\u653E\u7740\u4F60\u540C\u6B65\u5230 Forsion \u4E91\u7AEF\u7684\u5E93\u3001Amadeus Cloud \u7684\u7B14\u8BB0\uFF0C\u548C\u5404\u5E94\u7528\u5B58\u5728\u4E91\u7AEF\u7684\u6587\u4EF6\u3002","penzor.out.signIn":"\u767B\u5F55 Forsion \u8D26\u53F7","penzor.loading":"\u6B63\u5728\u8BFB\u53D6\u2026","penzor.err":"\u6CA1\u8BFB\u5230\uFF1A{reason}","penzor.folderEmpty":"\u8FD9\u91CC\u6CA1\u6709\u6587\u4EF6","penzor.noMatch":"\u6CA1\u6709\u540D\u5B57\u91CC\u5E26\u300C{q}\u300D\u7684\u6587\u4EF6","penzor.cmd.open":"\u6253\u5F00\u84EC\u6D32\u4E91","penzor.unreachable":"\u8FDE\u4E0D\u4E0A Forsion \u4E91\u7AEF\uFF0C\u7A0D\u540E\u518D\u8BD5","penzor.toast.emptyPartial":"\u56DE\u6536\u7AD9\u91CC\u8FD8\u6709 {n} \u9879\u6CA1\u5220\u6389","penzor.sort.deleted":"\u6309\u5220\u9664\u65F6\u95F4","penzor.side.versionsN":"{n} \u4E2A","penzor.drive":"\u6211\u7684\u4E91\u76D8","penzor.drive.meta":"\u7B97\u5728\u5E94\u7528\u6587\u4EF6\u7684 {max} \u91CC","penzor.drive.empty":"\u8FD9\u91CC\u8FD8\u7A7A\u7740\u3002\u628A\u6587\u4EF6\u62D6\u8FDB\u6765\uFF0C\u6216\u8005\u70B9\u300C\u4E0A\u4F20\u300D\u3002","penzor.act.upload":"\u4E0A\u4F20","penzor.act.uploadMore":"\u66F4\u591A\u4E0A\u4F20\u65B9\u5F0F","penzor.act.uploadFiles":"\u4E0A\u4F20\u6587\u4EF6\u2026","penzor.act.uploadFolder":"\u4E0A\u4F20\u6587\u4EF6\u5939\u2026","penzor.act.uploadHere":"\u4E0A\u4F20\u5230\u8FD9\u91CC\u2026","penzor.act.newFolder":"\u65B0\u5EFA\u6587\u4EF6\u5939","penzor.act.clearSel":"\u53D6\u6D88\u9009\u62E9","penzor.newFolder.default":"\u65B0\u5EFA\u6587\u4EF6\u5939","penzor.sel.bar":"\u5DF2\u9009 {n} \u9879 \xB7 {size}","penzor.sel.title":"\u5DF2\u9009 {n} \u9879","penzor.sel.sub":"{size} \xB7 {files} \u4E2A\u6587\u4EF6","penzor.sel.subDirs":"{size} \xB7 {files} \u4E2A\u6587\u4EF6\u3001{dirs} \u4E2A\u6587\u4EF6\u5939","penzor.sel.download":"\u4E0B\u8F7D {n} \u9879","penzor.sel.saveTo":"\u4E0B\u8F7D\u5230","penzor.sel.saveToValue":"\u4E0B\u8F7D / {folder}","penzor.sel.noDirs":"\u6587\u4EF6\u5939\u8FD9\u4E00\u7248\u8FD8\u4E0D\u80FD\u4E0B\u8F7D\uFF0C\u53EA\u4E0B\u8F7D\u9009\u4E2D\u7684\u6587\u4EF6\u3002","penzor.download.folder":"\u84EC\u6D32\u4E91 {date}","penzor.drop.to":"\u677E\u624B\u4E0A\u4F20\u5230\u300C{place}\u300D","penzor.tx.busy":"\u6B63\u5728\u4F20\u8F93 {n} \u9879","penzor.tx.allDone":"\u5168\u90E8\u4F20\u5B8C","penzor.tx.failedN":"{n} \u9879\u6CA1\u4F20\u5B8C","penzor.tx.counts":"\u4E0A\u4F20 {up} \xB7 \u4E0B\u8F7D {down}","penzor.tx.eta":"\u5269\u7EA6 {eta}","penzor.tx.doneN":"{n} \u9879\u5DF2\u4F20\u5B8C","penzor.tx.restDone":"\u5176\u4F59 {n} \u9879\u5DF2\u4F20\u5B8C","penzor.tx.pill":"{counts} \xB7 {pct}%","penzor.tx.queued":"\u6392\u961F\u4E2D","penzor.tx.paused":"\u5DF2\u6682\u505C \xB7 \u7EE7\u7EED\u4F1A\u4ECE\u5934\u4F20","penzor.tx.uploaded":"\u5DF2\u4E0A\u4F20 \xB7 {time}","penzor.tx.downloaded":"\u5DF2\u4E0B\u8F7D \xB7 {time}","penzor.tx.canceled":"\u5DF2\u53D6\u6D88","penzor.tx.left":"\u5269 {eta}","penzor.tx.sec":"{n} \u79D2","penzor.tx.min":"{n} \u5206\u949F","penzor.tx.pause":"\u6682\u505C","penzor.tx.resume":"\u7EE7\u7EED","penzor.tx.cancel":"\u53D6\u6D88","penzor.tx.retry":"\u91CD\u8BD5","penzor.tx.remove":"\u79FB\u9664","penzor.tx.locate":"\u5B9A\u4F4D","penzor.tx.reveal":"\u5728\u6587\u4EF6\u5939\u4E2D\u663E\u793A","penzor.tx.pauseAll":"\u5168\u90E8\u6682\u505C","penzor.tx.resumeAll":"\u5168\u90E8\u7EE7\u7EED","penzor.tx.retryAll":"\u5168\u90E8\u91CD\u8BD5","penzor.tx.clearDone":"\u6E05\u9664\u5DF2\u5B8C\u6210","penzor.tx.clear":"\u6E05\u9664","penzor.tx.collapse":"\u6536\u8D77","penzor.tx.expand":"\u5C55\u5F00\u4F20\u8F93\u5217\u8868","penzor.tx.quota":"\u7A7A\u95F4\u4E0D\u591F\uFF0C\u8FD8\u5DEE {size}","penzor.tx.quotaSub":"\u8FD9\u4E00\u6279\u4E00\u4E2A\u90FD\u6CA1\u5F00\u59CB\u4F20","penzor.tx.freeSpace":"\u53BB\u56DE\u6536\u7AD9\u817E\u5730\u65B9","penzor.err.too_large":"\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7 50 MB\uFF08\u8FD9\u4E2A {size}\uFF09\uFF0C\u8FD9\u4E00\u7248\u4F20\u4E0D\u4E86","penzor.err.quota":"\u4E91\u7AEF\u7A7A\u95F4\u4E0D\u591F","penzor.err.network":"\u7F51\u7EDC\u65AD\u4E86\uFF0C\u4F20\u5230 {pct}% \u505C\u4E0B","penzor.err.account_changed":"\u6362\u4E86\u8D26\u53F7\uFF0C\u8FD9\u4E00\u9879\u6CA1\u6709\u63A5\u7740\u4F20","penzor.err.download_unavailable":"\u6B64\u5BBF\u4E3B\u6682\u4E0D\u652F\u6301\u4FDD\u5B58\u4E0B\u8F7D\uFF0C\u8BF7\u66F4\u65B0 Forsion","penzor.err.download_failed":"\u6587\u4EF6\u672A\u4FDD\u5B58\uFF0C\u8BF7\u91CD\u8BD5\u4E0B\u8F7D","penzor.err.not_signed_in":"\u6CA1\u767B\u5F55","penzor.err.gone":"\u672C\u673A\u4E0A\u627E\u4E0D\u5230\u8FD9\u4E2A\u6587\u4EF6\u4E86","penzor.err.popup_blocked":"\u6D4F\u89C8\u5668\u62E6\u4E0B\u4E86\u65B0\u6807\u7B7E\u9875\uFF0C\u5141\u8BB8\u672C\u7AD9\u5F39\u51FA\u7A97\u53E3\u540E\u518D\u8BD5\u4E00\u6B21","penzor.err.changed":"\u4F20\u7684\u65F6\u5019\u6587\u4EF6\u6539\u52A8\u4E86\uFF0C\u91CD\u8BD5\u4E00\u6B21","penzor.err.storage_unavailable":"\u4E91\u7AEF\u5B58\u50A8\u6682\u65F6\u4E0D\u53EF\u7528","penzor.err.other":"\u6CA1\u4F20\u5B8C\uFF08{code}\uFF09","penzor.err.too_many":"\u4E00\u6B21\u6700\u591A {n} \u4E2A\u6587\u4EF6\uFF0C\u5206\u51E0\u6B21\u62D6\u8FDB\u6765","penzor.toast.upDoneOne":"\u5DF2\u4E0A\u4F20\u300C{name}\u300D","penzor.toast.upDoneMany":"\u5DF2\u4E0A\u4F20 {n} \u4E2A\u6587\u4EF6","penzor.toast.downDoneMany":"\u5DF2\u4E0B\u8F7D {n} \u4E2A\u6587\u4EF6\u5230\u300C\u4E0B\u8F7D\u300D","penzor.toast.txFailed":"{n} \u9879\u6CA1\u4F20\u5B8C\uFF0C\u56DE\u84EC\u6D32\u4E91\u770B\u770B","penzor.toast.folderExists":"\u5DF2\u7ECF\u6709\u53EB\u300C{name}\u300D\u7684\u6587\u4EF6\u5939\u4E86","penzor.toast.trashedN":"\u5DF2\u628A {n} \u9879\u79FB\u5230\u56DE\u6536\u7AD9","penzor.toast.movedN":"\u5DF2\u628A {n} \u9879\u79FB\u5230\u300C{name}\u300D","penzor.toast.batchPartial":"\u6709 {n} \u9879\u6CA1\u6210\u529F","penzor.sync.title":"\u540C\u6B65","penzor.sync.onN":"{n} \u9879\u5DF2\u5F00","penzor.sync.allOff":"\u90FD\u6CA1\u5F00","penzor.sync.waiting":"\u7B49\u4F60\u51B3\u5B9A","penzor.sync.badgeWaiting":"{n} \u9879\u5DF2\u5F00 \xB7 1 \u9879\u7B49\u4F60\u51B3\u5B9A","penzor.sync.running":"\u540C\u6B65\u4E2D {pct}%","penzor.sync.runningPlain":"\u540C\u6B65\u4E2D","penzor.sync.metaDevice":"\u8FD9\u53F0 {name}","penzor.sync.metaLast":"\u4E0A\u6B21\u540C\u6B65 {time}","penzor.sync.metaNever":"\u8FD8\u6CA1\u540C\u6B65\u8FC7","penzor.sync.every":"\u6BCF {n} \u5206\u949F","penzor.sync.everyHours":"\u6BCF {n} \u5C0F\u65F6","penzor.sync.manual":"\u624B\u52A8","penzor.sync.onStart":"\u5F00\u673A\u65F6\u4E00\u6B21","penzor.sync.minAgo":"{n} \u5206\u949F\u524D","penzor.sync.hoursAgo":"{n} \u5C0F\u65F6\u524D","penzor.sync.notesNamed":"\u667A\u5E93\u300C{name}\u300D","penzor.sync.notesPlain":"\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93","penzor.sync.notesDesc":"\u6574\u4E2A\u672C\u673A\u667A\u5E93\uFF0C\u548C\u4F60\u7684\u5176\u4ED6\u7535\u8111\u4FDD\u6301\u4E00\u81F4","penzor.sync.agents":"Agents \u4E0E\u8BB0\u5FC6","penzor.sync.agentsDesc":"Agents \u7684\u8BB0\u5FC6\u3001\u65E5\u5FD7\u3001\u6280\u80FD\u548C\u534F\u4F5C\u8BF4\u660E\uFF0C\u8FD8\u6709\u4F60\u7684\u8D44\u6599\u548C\u9ED8\u8BA4\u65E5\u5386","penzor.sync.conflictsN":"{n} \u4E2A\u51B2\u7A81\u526F\u672C","penzor.sync.conflictsHint":"\u4E24\u8FB9\u90FD\u6539\u8FC7\u7684\u6587\u4EF6\u4E24\u4EFD\u90FD\u7559\u7740\uFF1A\u53E6\u4E00\u4EFD\u5B58\u6210\u6587\u4EF6\u540D\u5E26\u300Cconflict\u300D\u7684\u526F\u672C\uFF0C\u5728\u5BF9\u5E94 Agent \u7684\u6587\u4EF6\u5939\uFF08\u6216\u4F60\u7684\u8D44\u6599\u6587\u4EF6\u5939\uFF09\u91CC","penzor.sync.pluginsPending":"{n} \u4E2A\u63D2\u4EF6\u7684\u6539\u52A8\u8FD8\u6CA1\u4F20\u4E0A\u53BB","penzor.sync.agentsN":"{n} \u4E2A Agent","penzor.sync.plugins":"\u63D2\u4EF6\u6570\u636E","penzor.sync.pluginsDesc":"\u63D2\u4EF6\u81EA\u5DF1\u5B58\u7684\u8BBE\u7F6E\u548C\u6570\u636E","penzor.sync.pluginsN":"{n} \u4E2A\u63D2\u4EF6","penzor.sync.off":"\u6CA1\u5F00","penzor.sync.done":"\u5DF2\u540C\u6B65","penzor.sync.doneSize":"\u5DF2\u540C\u6B65 \xB7 {size}","penzor.sync.firstPending":"\u7B49\u7B2C\u4E00\u6B21\u540C\u6B65","penzor.sync.failed":"\u4E0A\u6B21\u6CA1\u540C\u6B65\u6210\u529F","penzor.sync.overQuota":"\u8D85\u51FA\u989D\u5EA6\uFF0C\u6709\u7684\u6CA1\u4F20","penzor.sync.to":"\u540C\u6B65\u5230 {name}","penzor.sync.toFolder":"\u540C\u6B65\u5230\u672C\u673A\u6587\u4EF6\u5939","penzor.sync.decideAbove":"\u5728\u4E0A\u9762\u90A3\u5F20\u5361\u91CC\u9009","penzor.sync.kvSchedule":"\u540C\u6B65\u8BA1\u5212","penzor.sync.kvDirection":"\u65B9\u5411","penzor.sync.kvSkipped":"\u6CA1\u4F20\u7684","penzor.sync.kvWhere":"\u4E91\u7AEF\u4F4D\u7F6E","penzor.sync.change":"\u6539","penzor.sync.open":"\u6253\u5F00","penzor.sync.dir.both":"\u53CC\u5411","penzor.sync.dir.push":"\u4EC5\u4E0A\u4F20","penzor.sync.dir.pull":"\u4EC5\u4E0B\u8F7D","penzor.sync.skippedN":"{n} \u4E2A\u8D85\u8FC7 {size} \u7684\u6587\u4EF6","penzor.sync.where":"{ledger} \u203A {vault}","penzor.sync.whereUsed":"{ledger} \u203A {vault} \xB7 {used} / {max}","penzor.sync.devicesTitle":"\u5728\u540C\u6B65\u7684\u8BBE\u5907","penzor.sync.thisOne":"\u8FD9\u53F0","penzor.sync.lastWrite":"\u4E0A\u6B21\u5199\u5165 {time}","penzor.sync.noDevices":"\u8FD8\u6CA1\u6709\u8BBE\u5907\u5728\u540C\u6B65","penzor.sync.phoneTitle":"\u624B\u673A\u548C\u7F51\u9875\u770B\u5230\u7684\u90A3\u4E00\u4EFD","penzor.sync.phoneTip":"\u624B\u673A\u548C\u7F51\u9875\u76F4\u63A5\u8BFB\u300C\u4E91\u7AEF\u667A\u5E93\u300D\uFF08Amadeus \u7684\u4E91\u7AEF\u4FA7\uFF0C{size}\uFF09\uFF0C\u5B83\u4E00\u76F4\u5728\u540C\u6B65\uFF0C\u548C\u4E0A\u9762\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93\u662F\u4E24\u4EFD\u3002\u60F3\u5728\u624B\u673A\u4E0A\u770B\u8FD9\u53F0\u7684\u67D0\u4E2A\u6587\u4EF6\u5939\uFF1A\u5728\u7B14\u8BB0\u91CC\u53F3\u952E\u90A3\u4E2A\u6587\u4EF6\u5939\uFF0C\u628A\u5B83\u540C\u6B65\u5230\u4E91\u7AEF\u667A\u5E93\u3002","penzor.sync.phoneTipPlain":"\u624B\u673A\u548C\u7F51\u9875\u76F4\u63A5\u8BFB\u300C\u4E91\u7AEF\u667A\u5E93\u300D\uFF08Amadeus \u7684\u4E91\u7AEF\u4FA7\uFF09\uFF0C\u5B83\u4E00\u76F4\u5728\u540C\u6B65\uFF0C\u548C\u4E0A\u9762\u8FD9\u53F0\u7535\u8111\u7684\u667A\u5E93\u662F\u4E24\u4EFD\u3002\u60F3\u5728\u624B\u673A\u4E0A\u770B\u8FD9\u53F0\u7684\u67D0\u4E2A\u6587\u4EF6\u5939\uFF1A\u5728\u7B14\u8BB0\u91CC\u53F3\u952E\u90A3\u4E2A\u6587\u4EF6\u5939\uFF0C\u628A\u5B83\u540C\u6B65\u5230\u4E91\u7AEF\u667A\u5E93\u3002","penzor.sync.foot":"\u540C\u6B65\u8BA1\u5212\u3001\u65B9\u5411\u548C\u5176\u4ED6\u5B58\u50A8\uFF08Dropbox / S3 / WebDAV\uFF09\u5728","penzor.sync.footLink":"\u8BBE\u7F6E \u203A \u540C\u6B65","penzor.sync.askTitle":"\u4E91\u7AEF\u5DF2\u7ECF\u6709\u4E00\u4EFD\u667A\u5E93","penzor.sync.askCloud":"\u4E91\u7AEF\u90A3\u4EFD\u6765\u81EA {device}\uFF1A{files} \u4E2A\u6587\u4EF6 \xB7 {size}\u3002","penzor.sync.askCloudNoDevice":"\u4E91\u7AEF\u90A3\u4EFD\uFF1A{files} \u4E2A\u6587\u4EF6 \xB7 {size}\u3002","penzor.sync.askLocal":"\u8FD9\u53F0\u6709 {local} \u4E2A\u6587\u4EF6\u4E91\u7AEF\u6CA1\u6709\uFF0C{conflicts} \u4E2A\u4E24\u8FB9\u5185\u5BB9\u4E0D\u540C\u3002","penzor.sync.askMerge":"\u5408\u5E76\u4E24\u8FB9","penzor.sync.askCloudBtn":"\u7528\u4E91\u7AEF\u90A3\u4EFD","penzor.sync.askSkip":"\u8FD9\u53F0\u5148\u4E0D\u540C\u6B65\u667A\u5E93","penzor.sync.askExplain":"\u5408\u5E76\uFF1A\u4E24\u8FB9\u90FD\u7559\u7740\uFF0C\u5185\u5BB9\u4E0D\u540C\u7684\u53E6\u5B58\u4E00\u4EFD\u300C\uFF08\u51B2\u7A81\uFF09\u300D\u3002\u7528\u4E91\u7AEF\u90A3\u4EFD\uFF1A\u8FD9\u53F0\u548C\u4E91\u7AEF\u4E0D\u4E00\u6837\u7684\u6587\u4EF6\u5148\u632A\u8FDB\u65C1\u8FB9\u7684\u300C{backup}\u300D\u6587\u4EF6\u5939\uFF0C\u518D\u4E0B\u8F7D\u4E91\u7AEF\u90A3\u4EFD\u3002","penzor.sync.askConfirm":"\u8FD9\u53F0\u548C\u4E91\u7AEF\u4E0D\u4E00\u6837\u7684\u6587\u4EF6\u4F1A\u5148\u632A\u8FDB\u300C{backup}\u300D\uFF0C\u518D\u6362\u6210\u4E91\u7AEF\u90A3\u4EFD\u3002","penzor.sync.askConfirmGo":"\u632A\u8D70\u5E76\u7528\u4E91\u7AEF\u90A3\u4EFD","penzor.sync.backupName":"{name} \u540C\u6B65\u524D\u5907\u4EFD {date}","penzor.sync.quotaTitle":"\u667A\u5E93 {size}\uFF0C\u8D85\u8FC7\u4E86\u300C{ledger}\u300D\u7684 {max} \u4E0A\u9650","penzor.sync.quotaTitlePlain":"\u667A\u5E93\u8D85\u8FC7\u4E86\u300C{ledger}\u300D\u7684\u4E0A\u9650","penzor.sync.quotaBody":"\u653E\u4E0D\u4E0B\u7684\u6587\u4EF6\u7559\u5728\u8FD9\u53F0\u7535\u8111\u4E0A\uFF0C\u6CA1\u6709\u5220\uFF0C\u4E5F\u6CA1\u6709\u4F20\uFF1B\u5176\u4F59\u51E0\u9879\u7167\u5E38\u540C\u6B65\u3002","penzor.sync.quotaLarge":"\u8D85\u8FC7 {size} \u7684\u5355\u4E2A\u6587\u4EF6\u4E00\u76F4\u4E0D\u4F20\uFF08{n} \u4E2A\uFF09\u3002","penzor.sync.quotaSee":"\u770B\u770B\u6CA1\u4F20\u7684\u6587\u4EF6","su.title":"\u5546\u5E97\u66F4\u65B0","su.source.github":"GitHub \u6765\u6E90","su.source.npm":"npm \u6765\u6E90","su.source.zip":"ZIP \u4E0A\u4F20","su.review":"\u5F85\u5BA1\u6838","su.approved":"\u5DF2\u901A\u8FC7","su.rejected":"\u6CA1\u901A\u8FC7","su.viaGithub":"GitHub Release {tag}","su.viaNpm":"npm {version}","su.metaReview":"{time} \u63D0\u4EA4 \xB7 \u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u6536\u4EF6\u7BB1","su.metaReviewNoTime":"\u5BA1\u6838\u7ED3\u679C\u4F1A\u53D1\u5230\u6536\u4EF6\u7BB1","su.metaApproved":"\u5546\u5E97\u73B0\u5728\u663E\u793A {version}","su.metaApprovedInfo":"\u5546\u5E97\u4FE1\u606F\u5DF2\u66F4\u65B0","su.metaRejected":"\u5546\u5E97\u7167\u65E7\u663E\u793A {version}","su.metaRejectedUnlisted":"\u8FD8\u6CA1\u6709\u4E0A\u67B6","su.infoOnly":"\u53EA\u6539\u5546\u5E97\u4FE1\u606F","su.listSep":"\u3001","su.openSubmission":"\u5728\u6295\u7A3F\u4E2D\u67E5\u770B","wc.title":"\u7F51\u9875","wc.pill.published":"\u5DF2\u53D1\u5E03","wc.pill.live":"\u5DF2\u4E0A\u7EBF","wc.pill.review":"\u4E0A\u67B6\u5BA1\u6838\u4E2D","wc.pill.listed":"\u5DF2\u4E0A\u67B6","wc.pill.rejected":"\u4E0A\u67B6\u672A\u901A\u8FC7","wc.pill.gone":"\u5DF2\u4E0B\u7EBF","wc.justPublished":"\u521A\u521A\u53D1\u5E03","wc.anyone":"\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u80FD\u6253\u5F00","wc.open":"\u6253\u5F00","wc.viewInPages":"\u5728\u6211\u7684\u7F51\u9875\u4E2D\u67E5\u770B","wc.manage":"\u5728\u6211\u7684\u7F51\u9875\u4E2D\u7BA1\u7406","wc.total":"\u5DF2\u53D1\u5E03 {n} \u4E2A","wc.more":"\u8FD8\u6709 {n} \u4E2A","wc.unpublishTitle":"\u4E0B\u7EBF\u300C{name}\u300D\uFF1F","wc.unpublishBody":"\u94FE\u63A5\u4F1A\u5931\u6548\uFF0C\u7F51\u9875\u7684\u6587\u4EF6\u4E5F\u4F1A\u4ECE\u4E91\u76D8\u5220\u9664\u3002","wc.unpublishAgain":"\u518D\u70B9\u4E00\u6B21\u4E0B\u7EBF"},kh={"events.title":"Events","events.back":"Back to app","events.count":"{n} live","events.group.active":"Live","events.group.notice":"Notices","events.group.upcoming":"Coming up","events.ended":"Past events","events.endedEmpty":"No past events yet","events.list":"All events","events.kind.checkin":"Check-in","events.kind.tasks":"Quests","events.kind.game":"Mini game","events.kind.notice":"Notice","events.left.days":"{n}d left","events.left.hours":"{n}h left","events.left.long":"{d}d {h}h left","events.left.longHours":"{h}h left","events.time.start":"Starts {date}","events.time.claim":"Ended. Claim by {date}","events.time.claimShort":"Claim by {date}","events.time.ended":"Ended {date}","events.time.published":"Published {date}","events.rewards":"Rewards","events.checkin.signed":"{n} of {total} days","events.checkin.today":"Today","events.checkin.day":"Day {n}","events.checkin.do":"Check in","events.checkin.done":"Checked in today","events.checkin.finished":"All days complete","events.tasks.progress":"Progress","events.tasks.claim":"Claim","events.tasks.claimAll":"Claim all ({n})","events.tasks.go":"Go","events.tasks.closed":"Event ended","events.game.board":"Leaderboard","events.game.me":"You","events.game.anon":"Anonymous","events.game.enter":"Play","events.game.install":"Get it in the Store","events.game.empty":"No scores yet","events.notice.more":"Learn more","events.toast.checkin":"Checked in: {reward}","events.toast.claimed":"Claimed {reward}","events.toast.partial":"{n} claimed, {m} failed. Try again later","events.toast.backpack":"Open backpack","events.err.failed":"Not claimed. Try again when you're back online","events.err.notLive":"This event has ended","events.err.completed":"You've completed every day","events.err.grantFailed":"The reward didn't go through. It's logged for manual delivery, so there's no need to claim again","events.login.title":"Sign in to join events","events.login.do":"Sign in to Forsion","events.empty":"No events right now","events.error":"Couldn't load events","events.retry":"Try again","events.dot":"Rewards to claim or new events","penzor.rules.default":"Cloud default","penzor.rules.off":"Do not sync","penzor.rules.device":"Device","penzor.rules.run":"Sync now","penzor.rules.twoWay":"Two-way","penzor.rules.defaultForWeb":"The web uses the default folder","penzor.rules.tab.rules":"Sync rules","penzor.rules.tab.active":"Transfers","penzor.rules.tab.history":"History","penzor.rules.enable":"Enable content sync","penzor.rules.add":"Add rule","penzor.rules.source":"Local source","penzor.rules.destination":"Cloud destination","penzor.rules.direction":"Direction","penzor.rules.remove":"Remove rule","penzor.rules.inherit":"An empty path covers all of Forsion. Children inherit; the most specific path wins. Unmatched content stays on this device.","penzor.rules.namespace":"Default: Cloud /Forsion/. Device folders: Cloud /Forsion-deviceID/.","penzor.rules.human":"Choose human independently. The default calendar uses human/CALENDAR.db. A device destination does not replace the web default.","penzor.rules.preview":"Preview changes","penzor.rules.previewTitle":"Review sync scope","penzor.rules.previewCounts":"Upload {up}, download {down}; {conflicts} existing items need merging or preserved versions.","penzor.rules.retain":"Previous destinations are retained. Turning sync off deletes no files. If sources change, preview again.","penzor.rules.back":"Back","penzor.rules.apply":"Confirm and start","penzor.rules.pause":"Pause","penzor.rules.resume":"Continue","penzor.rules.noActive":"No files are transferring.","penzor.rules.manual":"Manual uploads and downloads","penzor.rules.historyNote":"The latest 200 items. Conflicts preserve both versions; other content continues syncing.","penzor.rules.retry":"Retry failed items","penzor.rules.noHistory":"No sync history yet.","penzor.rules.details":"View transfers","penzor.rules.plugins":"Plugin data keeps its own sync management.","penzor.rules.turnOff":"Turn off plugin data sync","penzor.rules.turnOn":"Turn on plugin data sync","penzor.rules.phase.idle":"Waiting for the next sync","penzor.rules.phase.scanning":"Checking files","penzor.rules.phase.syncing":"Syncing","penzor.rules.phase.paused":"Paused","penzor.rules.state.queued":"Queued","penzor.rules.state.active":"Transferring","penzor.rules.state.done":"Done","penzor.rules.state.failed":"Failed","penzor.rules.state.paused":"Paused","penzor.rules.state.conflict":"Conflict versions preserved","penzor.tree.synced":"Synced","penzor.tree.thisBackup":"This computer \xB7 backup only","penzor.tree.byApp":"By app","penzor.tree.legacy":"Legacy vault sync","penzor.quota.sourceLimit":"This kind also has its own limit of {max}; {used} used","penzor.ov.mine":"Yours","penzor.ov.synced":"Synced from your devices","penzor.ov.stale":"No longer updated","penzor.ov.uploads":"Files you upload and organize; change them freely","penzor.ov.all":"Notes, agents, about me and plugins","penzor.ov.allLast":"Notes, agents, about me and plugins \xB7 last synced {time}","penzor.ov.self":"The copy only this computer uses","penzor.ov.device":"Shared only between this computer and that one","penzor.ov.agents":"Agent settings, memory and logs","penzor.ov.profile":"Your profile and default calendar","penzor.ov.sync":"Vaults your computers sync up","penzor.ov.legacy":"No longer written once this computer uses the new sync; kept, not deleted","penzor.ov.ama":"Notes from the web and synced notes","penzor.ov.apps":"Files your apps store; delete or rename them","penzor.ov.plugins":"Settings plugins store; usage only","penzor.ov.exports":"Exported files; download or delete them","penzor.ov.segNotes":"Notes","penzor.ov.segSync":"Device sync","penzor.ov.segOther":"Other","penzor.content.badge":"Kept by the new sync","penzor.content.badgeLast":"Kept by the new sync \xB7 last synced {time}","penzor.content.noteAll":"This is the cloud copy every signed-in device and the web see. To change files, edit them in Notes or Agents on a computer and they sync up; you can download them here.","penzor.content.noteSelf":"The copy only this computer uses; other devices don\u2019t see it. Change files on this computer; you can download them here.","penzor.content.noteDevice":"Shared only between this computer and {name}. Change files on a computer; you can download them here.","penzor.legacy.title":"This computer stopped writing to this vault when it switched to the new sync","penzor.legacy.body":"This computer\u2019s notes now live in Shared with all devices \u203A Notes. Older desktop versions may still write here, so this copy is kept, not deleted.","penzor.legacy.go":"See the new copy","penzor.drive.total":"All of Penzor Cloud: {used} / {max} used","penzor.drive.seeAll":"View","penzor.cs.statusOff":"Off","penzor.cs.statusPaused":"Paused","penzor.cs.statusRun":"Syncing {pct}%","penzor.cs.statusScan":"Checking files","penzor.cs.statusWarn":"{n} to review","penzor.cs.statusOk":"Up to date","penzor.cs.statusOkAgo":"Up to date \xB7 {time}","penzor.widget.signedOut":"Not signed in to Forsion","penzor.widget.signInHint":"Sign in to sync","penzor.widget.off":"Cloud sync is off","penzor.widget.paused":"Sync is paused","penzor.widget.running":"Syncing","penzor.widget.problem":"Sync needs attention","penzor.widget.active":"Transferring {n}","penzor.widget.queued":"{n} more queued","penzor.widget.waiting":"{n} waiting to sync","penzor.widget.failed":"Failed","penzor.widget.error":"Sync ran into an error","penzor.widget.errorMeta":"Error","penzor.widget.conflict":"Conflict, both kept","penzor.widget.more":"{n} more to check","penzor.widget.last":"Last synced {time}","penzor.widget.pending":"Notes are already in the cloud","penzor.widget.notesFailed":"Last note sync failed","penzor.widget.agentsFailed":"Last agent sync failed","penzor.cs.thisComputer":"This computer: {name}","penzor.cs.thisComputerLabel":"This computer:","penzor.cs.rename":"Rename this computer","penzor.cs.renameHint":"Other devices will show this name \xB7 Enter to save","penzor.cs.name.taken":"Another device already uses this name. Pick another one.","penzor.cs.name.reserved":"macOS, Windows and Linux are kept for systems. Pick another name.","penzor.cs.name.invalid":"Names can have up to 64 characters and no square brackets.","penzor.cs.othersN":"{n} others: {names}","penzor.cs.noOthers":"No other devices on this account yet","penzor.cs.log":"Recent activity","penzor.cs.more":"More","penzor.cs.advanced":"Advanced: edit rules","penzor.cs.backSimple":"Back to sync","penzor.cs.firstTitle":"Sync this computer to Penzor Cloud","penzor.cs.firstBody":"Here is a suggested setup; change anything first. Nothing moves until you press Start syncing, and nothing already in the cloud is overwritten or deleted.","penzor.cs.note":"To treat one notes folder or agent differently, click the small line under it. Turning a switch off just stops syncing; nothing is deleted.","penzor.cs.barFirst":"Turning sync on uploads {up} files and downloads {down}","penzor.cs.barChanged":"{n} changes","penzor.cs.barOne":"1 change: \u201C{name}\u201D \u2192 {scope}","penzor.cs.offName":"not synced","penzor.cs.barCounts":"Uploads {up} files and downloads {down} \xB7 nothing is deleted","penzor.cs.barSize":"{size} in total","penzor.cs.noDelete":"nothing will be deleted","penzor.cs.barConflicts":"{n} changed on both sides; both copies are kept","penzor.cs.barCounting":"Working out what will move\u2026","penzor.cs.barRecount":"Files just changed, so this was recalculated. Please confirm again.","penzor.cs.later":"Not now","penzor.cs.start":"Start syncing","penzor.cs.undo":"Undo","penzor.cs.confirm":"Confirm","penzor.cs.up":"Uploading \u201C{name}\u201D","penzor.cs.down":"Downloading \u201C{name}\u201D","penzor.cs.waiting":"{n} more files waiting","penzor.cs.failedN":"{n} files didn\u2019t sync","penzor.cs.retry":"Retry","penzor.cs.seeLog":"See activity","penzor.cs.logEmpty":"No sync activity yet.","penzor.cs.logNote":"Keeps the latest 200 items. When both sides changed, both copies are kept.","penzor.cat.notes":"Notes","penzor.cat.notesDesc":"Your Amadeus vault","penzor.cat.agents":"Agents & memory","penzor.cat.agentsDesc":"Each agent\u2019s settings, memory and logs","penzor.cat.profile":"About me","penzor.cat.profileDesc":"Your profile and default calendar","penzor.cat.profileOn":"Includes your default calendar","penzor.cat.plugins":"Plugins","penzor.cat.pluginsDesc":"Plugin folders and settings","penzor.cat.others":"Other files","penzor.cat.othersDesc":"Files in your workspace outside the groups above","penzor.cat.files":"{n} files \xB7 {size}","penzor.agents.pickHint":"Choose each one; new agents aren\u2019t synced \xB7 {n} selected","penzor.agents.legacyHint":"Older setting: new agents sync too \xB7 {n} selected","penzor.agents.none":"No agents on this computer yet","penzor.agents.muse":"Muse","penzor.agents.museDesc":"Background agent; runs separately on each computer","penzor.agents.locked":"Sync not available yet","penzor.agents.cloudOnly":"In the cloud \xB7 not on this computer yet; turn on to download","penzor.agents.historianNote":"Historian\u2019s drafts stay on each computer. What it writes into an agent\u2019s log syncs with that agent.","penzor.agents.archiveRunning":"Cloud agents are being archived. Try again in a moment.","penzor.cs.accountReview":"Account changed. Local files may contain content from another account. Review and confirm the sync selection before syncing again.","penzor.agents.openFailed":"Couldn\u2019t turn on sync for this agent, so it stays off: {reason}","penzor.archive.title":"Agents now sync one by one","penzor.archive.body":"Agents that synced with the old all-agents switch have stopped. Their cloud copy is in \u201CMy drive \u203A {shelf} \u203A {name}\u201D, read-only and downloadable. Turn on the ones you still want, one at a time.","penzor.archive.shelf":"Archive","penzor.archive.ok":"Got it","penzor.archive.open":"Open archive","penzor.archive.note":"This is an agent sync archive. It\u2019s read-only: you can download it or delete the whole archive.","penzor.ask.title":"{name} already has a copy in the cloud","penzor.ask.when":"Cloud copy last changed: {cloud}. This computer: {local}. Choose once before turning sync on; after that it merges automatically.","penzor.ask.merge":"Merge them","penzor.ask.mergeDesc":"Memory, logs and schedules merge entry by entry. Where both sides changed settings or personality, the newer copy wins and the other goes to this computer\u2019s recycle folder","penzor.ask.cloud":"Use the cloud copy","penzor.ask.cloudDesc":"This computer\u2019s copy goes to the recycle folder first, then the cloud copy replaces it","penzor.ask.local":"Use this computer\u2019s copy","penzor.ask.localDesc":"The cloud copy is archived first, then replaced with this computer\u2019s","penzor.ask.recommended":"Recommended","penzor.ask.foot":"Recycled files are in agents/.removed and can be recovered","penzor.ask.cancel":"Cancel","penzor.ask.confirm":"Turn on sync","penzor.cat.pluginsN":"{n} plugins","penzor.cat.custom":"{n} custom rules","penzor.cat.notSynced":"Not synced \xB7 stays on this computer","penzor.scope.all":"Shared with all devices","penzor.scope.allDesc":"Every signed-in device and the web see one copy","penzor.scope.self":"Back up this computer only","penzor.scope.selfDesc":"Kept in its own cloud copy other devices don\u2019t see","penzor.scope.with":"Only with {name}","penzor.scope.menuTitle":"Who shares \u201C{name}\u201D","penzor.scope.menuFoot":"To stop syncing it, turn off the switch","penzor.scope.calendarNote":"The web\u2019s default calendar doesn\u2019t follow this","penzor.unified.stale":"Refresh failed. Showing the last sample; current usage is unknown. Please retry.","penzor.unified.uploadTo":"Upload to My files","penzor.unified.apps":"Manage ordinary files \xB7 source restrictions apply","penzor.trash.ama":"Amadeus \xB7 pending cleanup","penzor.trash.amaNote":"Deleted current files still count; history is not counted again. Eligible for system cleanup after 30 days. Read-only here; Empty trash does not affect these snapshots.","penzor.trash.expires":"Cleanup eligible from","penzor.source.openAgents":"Open Agents","penzor.source.openCalendar":"Open calendar","penzor.source.entryUnavailable":"This host does not provide that destination","penzor.uploads":"My files","penzor.source.agents":"Agents","penzor.source.profile":"My profile","penzor.source.plugins":"Plugin data","penzor.source.readonly":"Synced sources are read-only. Edit or delete in the source; download synced files here.","penzor.source.appNote":"App files are managed by their app. Edit or delete them there.","penzor.source.market":"Store submissions","penzor.ov.market":"Plugins, skills and Agents you submitted to the Store; they follow their listings","penzor.source.marketNote":"These packages follow their Store listings: delete a listing in Store \u203A My submissions to free its space. Packages fetched from GitHub or npm are stored by the Store and don't count toward your storage.","penzor.market.badge":"Managed by the Store","penzor.market.meta":"{size} \xB7 {n} packages","penzor.market.history":"Older versions {size}, not counted (same as elsewhere)","penzor.market.older":"older versions {size}","penzor.market.updating":"update in review","penzor.market.notCounted":"Not counted","penzor.market.fromGithub":"From GitHub \xB7 stored by the Store","penzor.market.fromNpm":"From npm \xB7 stored by the Store","penzor.market.type.plugin":"Plugin","penzor.market.type.skill":"Skill","penzor.market.type.agent":"Agent","penzor.market.type.space":"Space","penzor.market.type.theme":"Theme","penzor.market.type.amadeusPlugin":"Amadeus plugin","penzor.market.status.approved":"Listed","penzor.market.status.pending":"In review","penzor.market.status.rejected":"Not approved","penzor.col.type":"Type","penzor.col.status":"Status","penzor.source.pluginNote":"Names and usage only. Data may contain settings or credentials, so preview and download are unavailable.","penzor.unified.unavailable":"Usage unavailable","penzor.unified.incomplete":"Unified usage is incomplete, so quota status is unknown. Refresh to retry.","penzor.unified.enforced":"Unified quota is active. Over quota, new content and larger replacements are paused; downloads, deletions and non-growing replacements remain available.","penzor.unified.grace":"Notice grace period ends {date}. Unified quota does not add restrictions yet.","penzor.unified.rolloutPolicy":"Storage policy notice: growth limits may start no earlier than 30 days after acknowledgement. App file history will retain at most 50 versions from the last 30 days. History is excluded from your plan; download backups before cleanup. Current files are not removed by history cleanup.","penzor.unified.ack":"I have read the storage and history notice","penzor.unified.notice":"This is only a notice. Going over won\u2019t stop sync or uploads","penzor.unified.over":"Unified quota exceeded. This is a notice only; no new sync or upload restrictions apply. Clear files or upgrade your plan.","penzor.unified.warn":"Unified storage is nearly full. This is a notice only; no new sync or upload restrictions apply.","penzor.unified.accounting":"includes {trash} in trash; history doesn\u2019t count","penzor.unified.writable":"Upload, create, rename and delete","penzor.unified.readonly":"Read-only \xB7 managed at source","penzor.unified.export":"Download, rename and permanently delete","penzor.unified.counted":"Included in unified usage \xB7 notice phase","penzor.unified.policy":"If limits are ever enforced, you\u2019ll hear at least 30 days ahead.","penzor.unified.legacySync":"Existing device sync limit: {used} / {max}","penzor.unified.legacyApps":"Existing app file limit: {used} / {max}","sub.identity":"Plugin ID","sub.identityHint":"A unique ID is assigned after submission. Names may repeat; updates keep the same ID.","sub.description":"Detailed description","sub.tags":"Tags","sub.tagsHint":"Comma separated, up to 8","sub.minAppVersion":"Minimum Forsion version","sub.maxAppVersion":"Maximum version (exclusive)","sub.optional":"Optional","sub.platforms":"Supported platforms","sub.requirementsHint":"Supported: desktop, macos, windows, linux, android, ios, web. Leave blank if unspecified. ZIP requirements are read from the manifest; supplied values must match it.","sub.err.market_requirements_invalid":"Invalid version requirements or platforms.","sub.err.market_requirements_mismatch":"Supplied requirements differ from the ZIP manifest.","sub.mine":"My submissions","page.submission":"Submissions","page.webPages":"My web pages","web.title":"My web pages","web.desc":"Pages you published with Tangu or Coding Space. Anyone with the link can open them; they run sandboxed and can't read visitors' Forsion sign-in.","web.refresh":"Refresh","web.used":"{used} of {limit} published","web.full":"All slots are used. Take one down or upgrade to publish another","web.empty":"No published pages yet","web.emptyHint":'Ask Tangu in a chat to publish a page, for example "publish this page", or choose Publish on a Coding Space project.',"web.updated":"Updated {date}","web.disabled":"Disabled","web.disabledHint":"An administrator disabled this page. Its link doesn't open and it can't be updated.","web.copy":"Copy link","web.unpublish":"Take down","web.unpublishConfirm":"Confirm take down","web.listingPending":"Store listing in review","web.listingApproved":"Listed in store","web.listingRejected":"Store listing rejected","web.listingNote":"Reason: {note}","web.listingApply":"Apply for store listing","web.listingReapply":"Apply again","web.listingWithdraw":"Withdraw application","web.listingDelist":"Remove from store","web.listingDelistConfirm":"Confirm removal","web.listingSummary":"Store summary","web.listingSummaryPh":"One sentence about this page","web.listingHint":"Shown in the store under Web apps after review. Up to 300 characters.","web.listingSubmit":"Submit application","pub.cmd":"Publish web page to Forsion","pub.cmdNoArgs":"Open the project you want to publish from Coding Studio","pub.title":"Publish to Forsion: {name}","pub.titleTerms":"Publish as a public page","pub.close":"Close","pub.desc":"Publish this page as a public link. Anyone with the link can open it.","pub.descPublished":"Published. Come back and choose Update after changes; the link stays the same.","pub.needLogin":"Sign in with Forsion to publish","pub.login":"Sign in to Forsion","pub.loginWaiting":"Waiting for the browser to finish\u2026","pub.name":"Name","pub.slug":"Link slug","pub.slugHint":"3\u201332 lowercase letters, digits or hyphens","pub.entry":"Entry page","pub.noEntry":"This project has no .html entry yet. Generate a page first.","pub.slots":"{used} of {limit} published ({tier})","pub.hint":"Use relative paths for assets. .ts and .tsx are transpiled on publish, no build step.","pub.anyone":"Anyone with the link can open it","pub.likes":"{n} likes","pub.saves":"{n} saves","pub.copy":"Copy link","pub.copied":"Copied","pub.open":"Open in browser","pub.publish":"Publish","pub.update":"Update","pub.saveUpdate":"Save and update","pub.publishing":"Publishing\u2026","pub.listingTitle":"Store \xB7 Web apps","pub.listingNone":"Not listed","pub.listingPending":"In review","pub.listingApproved":"Listed","pub.listingRejected":"Rejected","pub.listingHint":"Listed pages appear under Web apps in the Store after review.","pub.termsIntro":"Once published, anyone with the link can view this page, and it may be shared or indexed by search engines. Please confirm:","pub.termsLi1":"You have the right to publish all text, images, audio, video and other content on the page;","pub.termsLi2":"The page contains no illegal information, infringing content or personal information disclosed without permission;","pub.termsLi3":"You take responsibility for the content you publish.","pub.termsManage":"The platform manages public content under applicable laws and the Content Publishing Guidelines, and may restrict access to, stop showing or remove violating content.","pub.termsAgreePre":"I have read and agree to the ","pub.termsGuidelines":"Content Publishing Guidelines","pub.termsConfirm":"Confirm and publish","pub.aiSaveFailed":"Published, but the AI settings weren\u2019t saved: {reason}","ai.whoPays":"Who pays","ai.payer.visitor":"Visitors","ai.payer.author":"I pay","ai.perVisitor":"Per visitor","ai.perVisitorPre":"Up to","ai.perVisitorPost":"calls a day","ai.page":"This page","ai.pagePre":"Up to","ai.pagePost":"points a day","ai.max":"Up to {n}","ai.whenUsedUp":"When used up","ai.exhausted.visitor":"Switch to visitors\u2019 own quota","ai.exhausted.pause":"Pause AI until tomorrow","ai.models":"Models","ai.modelDefault":"default","ai.modelImage":"Image","ai.balance":"Pack balance","ai.points":"{n} points","ai.buy":"Buy a pack","ai.noteAuthor":"Visitors sign in with Forsion before using AI; it only counts calls per person and doesn\u2019t use their quota. Charged at the same model rates as when visitors pay; your own AI quota and points balance are never touched.","ai.noteVisitor":"Viewing needs no sign-in. Visitors sign in with Forsion when they use AI, and their own quota is used.","ai.noteOff":"\u201CI pay\u201D isn\u2019t available yet, so visitors pay for AI.","ai.agentNote":"forsion.ai.agent still uses the visitor\u2019s own quota for now; visitors confirm before the first use.","ai.cooldownNew":"New pages switch to you paying {h} hours after publishing; until then visitors pay.","ai.cooldownUntil":"You pay from {time}; until then visitors pay.","ai.save":"Save","ai.saved":"AI settings saved","web.tabMine":"Published {n}","web.tabSaved":"Saved","web.tabSavedN":"Saved {n}","web.ai.author":"AI \xB7 I pay","web.ai.visitor":"AI \xB7 Visitors pay","web.ai.paused":"AI \xB7 I pay \xB7 paused","web.ai.pausedSpike":"Spending spiked within an hour, so visitors pay again","web.ai.pausedAdmin":"Paused by an administrator; visitors pay for now","web.ai.resume":"Resume I pay","web.ai.todayAuthor":"{calls} calls today \xB7 {visitors} visitors","web.ai.todayVisitor":"{calls} calls today","web.ai.cap":"Daily cap","web.ai.none":"No AI","web.ai.settings":"AI settings","web.ai.cooldown":"You pay from {time}","pack.points":"points","pack.note":"Pages set to \u201CI pay\u201D draw from here at the model rates. Your own AI quota and points balance are never touched.","pack.lowNote":"Almost used up. Then each \u201CI pay\u201D page follows its setting: visitors use their own quota, or AI pauses until tomorrow.","pack.monthSpent":"Used this month","pack.lastTopUp":"Last top-up","pack.topUp":"{date} \xB7 +{n}","pack.usage":"Usage","pack.usageTitle":"\u201CI pay\u201D usage in the last 30 days","pack.usageEmpty":"No \u201CI pay\u201D calls in the last 30 days","pack.col.day":"Date","pack.col.page":"Page","pack.col.calls":"Calls","pack.col.visitors":"Visitors","pack.col.points":"Points","pack.storeTitle":"Store","pack.storeUnavailable":"Open Store \u203A Items to buy a pack","saved.empty":"No saved pages yet","saved.emptyHint":"Tap the star beside someone\u2019s page to save it here.","saved.open":"Open","saved.author":"Author page","saved.unsave":"Unsave","saved.aiAuthor":"AI on the author","saved.aiVisitor":"AI \xB7 you pay","backpack.effect.connectPack":"Pack balance +{n} points","backpack.effect.other":"Other effect","backpack.packUsed":"Added to your pack balance","backpack.packUsedLine":"+{n} points \xB7 {balance} points now","sub.desc":"Manage your submissions, review results and version updates.","sub.new":"New submission","sub.refresh":"Refresh","sub.empty":"No submissions yet","sub.emptyHint":"Share your plugins, skills, Agents or Spaces in the marketplace.","sub.name":"Name","sub.summary":"Summary","sub.type":"Content type","sub.source":"Source","sub.type.skill":"Skill","sub.type.agent":"Agent","sub.type.plugin":"Plugin","sub.type.space":"Space","sub.type.theme":"Theme","sub.type.amadeus_plugin":"Amadeus plugin","sub.pending":"Pending review","sub.approved":"Published","sub.rejected":"Rejected","sub.pendingVersion":"v{version} update pending review","sub.rejectedVersion":"v{version} update rejected","sub.submit":"Submit for review","sub.submitted":"Submitted. The review result appears here and in your inbox.","sub.updated":"Update submitted for review. The published version stays available until then; the result goes to your inbox.","sub.repo":"Public GitHub repository","sub.npm":"Public npm package","sub.repoHint":"README and Releases come from the repository; its owner is shown as the publisher.","sub.npmHint":"Package metadata comes from npm; the public repository owner is shown as the publisher.","sub.reviewHint":"New versions require review before distribution. Your Forsion account manages the submission.","sub.zipHint":"Up to 50 MB. Include the required manifest and entry files.","sub.filter":"Filter by status","sub.all":"All","sub.noResults":"No matching submissions","sub.downloads":"{n} downloads","sub.errName":"Enter a name.","sub.errSource":"Enter a public repository URL or npm package name.","sub.errZip":"Choose a ZIP archive.","sub.errLarge":"ZIP archives must not exceed 50 MB.","sub.err.market_npm_invalid":"The npm package is unavailable or does not meet the plugin requirements.","sub.err.market_npm_source":"Publish the new version on npm for review.","sub.err.market_github_source":"Publish a GitHub Release for review.","sub.err.market_not_found":"Submission unavailable. Refresh and retry.","sub.err.market_zip_required":"Choose a ZIP archive.","sub.err.market_zip_invalid":"The ZIP structure does not meet the publishing requirements.","sub.err.market_zip_too_large":"ZIP archives must not exceed 50 MB.","sub.err.market_version_required":"The package has no version. Add one to the manifest (for skills, version or metadata.version in SKILL.md) and repackage.","sub.err.market_version_invalid":"Enter a valid version.","sub.err.market_version_mismatch":"The version does not match the manifest.","sub.err.market_version_not_newer":"The new version must be newer than the published version.","sub.err.market_icon_invalid":"Use a square PNG icon between 64 and 512 px.","sub.err.market_duplicate":"This content has already been submitted. Manage the existing submission.","sub.err.market_update_pending":"An update is already awaiting review.","sub.err.market_stale":"The submission has changed. Refresh and retry.","sub.notNewer":"The package says v{version}; it must be newer than the Store\u2019s v{current}.","sub.reqNone":"No version range or platforms declared","sub.dropTitle":"Drop a ZIP here, or click to choose one","sub.dropHint":"Up to 50 MB. It is checked first, not submitted yet.","sub.dropReplace":"{size} \xB7 Drop or click to replace","sub.checkType":"Type","sub.checkVersion":"Version","sub.checkIcon":"Icon","sub.checkReadme":"README","sub.checkReq":"Requirements","sub.checkWarn":"Note","sub.iconYes":"icon.png found in the package","sub.iconNo":"No icon.png; the card shows the type icon","sub.readmeYes":"Uses README.md from the package","sub.readmeKeep":"No README.md in the package; the current one stays","sub.readmeNo":"No README.md in the package","sub.warn.no_manifest":"No manifest found in the package","sub.warn.type_mismatch":"The package type differs from this submission\u2019s type","sub.warn.tag_version_mismatch":"The release tag differs from the package version","sub.warn.id_slug_mismatch":"The package id differs from the install folder name. Users are not affected: updates go to the same folder and no second copy appears. The folder name cannot change after listing","sub.warn.engine_slug_mismatch":"The engine plugin folder name differs from its id","sub.warn.no_entry":"The Amadeus plugin has no main.js entry","sub.warn.has_node_modules":"The package includes node_modules, which is large and usually unneeded","sub.zipListedNote":"Until it\u2019s approved, the Store keeps serving the published version. The review result goes to your inbox.","sub.zipUnlistedNote":"Submitting replaces the current package and sends it back for review.","sub.submitVersion":"Submit v{version} for review","sub.checkNew":"Check for a new version","sub.checkAgain":"Check again","sub.upToDate":"The latest upstream version is v{version} and the Store has v{current}. Publish a new version, then check again.","sub.upstreamLatest":"Latest upstream: v{version}","sub.releaseTag":"Release {tag}","sub.storeHas":"Store has v{version}","sub.githubNote":"Once approved, the Store pins v{version}. After your next GitHub release, come back and check again.","sub.npmNote":"Once approved, the Store pins v{version}. After your next npm release, come back and check again.","sub.secVersion":"Version","sub.secInfo":"Store details","sub.secHistory":"History","sub.edit":"Edit","sub.unset":"Not set","sub.infoNote":"No package or new version needed. Changes to a published item are reviewed too; until then the Store shows the current details.","sub.submitInfo":"Submit changes","sub.back":"Back to list","sub.pendingInfo":"Details change pending review","sub.rejectedInfo":"Details change rejected","sub.pendingHint":"The Store stays unchanged until approval. The review result goes to your inbox.","sub.inReview":"Waiting for its first review. The result goes to your inbox.","sub.histApproved":"v{version} approved","sub.histSubmitted":"Submitted","sub.resubmitted":"Resubmitted for review. The result goes to your inbox.","sub.infoSubmitted":"Changes submitted for review. The Store shows the current details until then.","sub.err.market_no_release":"This repository has no GitHub release yet. The Store pins a version, so publish a release on GitHub, then check again.","sub.err.market_no_changes":"Nothing changed.","sub.err.market_dryrun_unsupported":"GitHub and npm submissions can\u2019t be checked in advance. Submit them for review.","page.account":"Account","page.membershipUsage":"Membership & usage","page.membershipQuota":"Membership & quota","page.pointsInvite":"Points & invites","account.details.title":"Sign-in & details","account.details.desc":"Edit your photo, nickname and bio under Profile.","account.details.username":"Username","diag.unavailable":"This host does not support diagnostic data. Update Forsion and try again.","page.profile":"Profile","page.quota":"Quota & points","page.backpack":"Backpack","page.security":"Security","page.usage":"Usage","page.feedback":"Feedback","store.group":"Membership & points","store.membership":"Membership","store.membership.desc":"Upgrade your plan for more daily and weekly quota","store.points":"Points","store.points.desc":"Buy points and use them to redeem items","store.items":"Items","store.items.desc":"Items you can redeem with points. Redeemed items go to your backpack","store.status":"Plan and points","store.tier":"Current plan","store.balance":"Points balance","store.choosePlan":"Choose a plan","store.payHint":"You pay on the payment page in your browser. This page refreshes when you come back","store.payOff":"Purchases are unavailable right now","store.period":"Billing period","store.period.monthly":"Monthly","store.period.quarterly":"Quarterly","store.period.yearly":"Yearly","store.per.monthly":"/ month","store.per.quarterly":"/ quarter","store.per.yearly":"/ year","store.currentTier":"Current plan","store.pay":"Pay","store.payPrice":"Pay {price}","store.noPlans":"No plans are available right now","store.packs":"Point packs","store.packsHint":"You pay on the payment page in your browser. Points arrive right after payment","store.noPacks":"No point packs are available right now","store.kind.pack":"Point pack","store.kind.card":"Consumable","store.kind.code":"Redeem code","store.kind.item":"Item","store.nPoints":"{n} points","store.instant":"Arrives right after payment","store.redeemTitle":"Redeem with points","store.redeemHint":"Redeeming with points completes right here. Items go to your backpack","store.redeem":"Redeem for {n} points","store.redeemConfirm":"Confirm: spend {n} points","store.redeemed":"Redeemed. The item is in your backpack","store.uncertain":"No response came back. Check your backpack before you try again","store.soldOut":"Sold out","store.left":"{n} left","store.toBackpack":"Goes to your backpack","store.limitReached":"You've reached the purchase limit","store.unavailable":"This item can't be redeemed right now","store.noItems":"Nothing to redeem right now","store.itemsOff":"Item redemption isn't available yet","store.openBackpack":"Open backpack","backpack.desc":"View the items you have collected. Select a slot for details.","backpack.refresh":"Refresh","backpack.total":"{n} items","backpack.grid":"Backpack items","backpack.slot":"{name}, quantity {n}","backpack.item":"Item","backpack.empty":"Your backpack is empty","backpack.emptyHint":"Items you redeem or receive will appear here.","backpack.select":"Select an item to view details","backpack.details":"Item details","backpack.quantity":"Quantity","backpack.acquired":"Acquired","backpack.source":"Received through","backpack.source.points":"Points exchange","backpack.source.admin":"Gift","backpack.source.reward":"Reward","backpack.source.other":"Cloud account","backpack.consumable":"Consumable","backpack.voucher":"Voucher","backpack.getCards":"Redeem reset cards","backpack.manageCards":"Use or redeem","backpack.reveal":"Reveal key","backpack.copyKey":"Copy key","backpack.noKey":"This item has no key.","backpack.use":"Use","backpack.confirmUse":"Confirm use","backpack.consumeConfirm":"Using this item consumes one copy.","backpack.collectible":"Collectible","backpack.effect.points":"+{n} points","backpack.effect.cards":"+{n} reset cards","backpack.effect.quota":"Reset daily and weekly quota","backpack.rarity.common":"Common","backpack.rarity.rare":"Rare","backpack.rarity.epic":"Epic","backpack.rarity.legendary":"Legendary","backpack.unavailable":"This item is no longer available. Refresh your backpack.","backpack.notUsable":"This item cannot be used.","backpack.quotaUnavailable":"Use cloud AI to initialize your quota before using this item.","common.cancel":"Cancel","common.copied":"Copied","common.copyFailed":"Couldn't copy","common.done":"Done","common.loadFailed":"Couldn't load","common.loadMore":"Load more","common.loading":"Loading\u2026","common.openInBrowser":"Open in browser","common.retry":"Retry","common.save":"Save","common.thisWeek":"This week","common.today":"Today","common.unlimited":"Unlimited","ann.eyebrow":"FORSION \xB7 Announcement","ann.close":"Close","ann.ok":"Got it","signin.button":"Sign in to Forsion","signin.desc":"Sign in to your Forsion account to manage your account, quota, security, submissions and feedback here.","signin.pending":"Waiting for you to finish in your browser\u2026","signin.deviceHint":"Your browser opens the sign-in page on its own. If it doesn't, scan the code with your phone or open the link below, and check that the code matches.","signin.code":"Code","signin.openLink":"Open sign-in page","signin.copyLink":"Copy link","signin.qrLabel":"Sign-in QR code","account.profile.title":"Profile","account.profile.desc":"Your photo and nickname, plus the phone and email linked to your account","account.avatar.change":"Change photo","account.avatar.saved":"Photo updated","account.nickname.edit":"Edit nickname","account.nickname.label":"Nickname","account.nickname.saved":"Nickname updated","account.role.admin":"Admin","account.username":"Username {name}","account.contact.phone":"Phone","account.contact.email":"Email","account.contact.unbound":"Not linked","account.contact.manage":"Manage in Security","account.web.open":"Open the account center in your browser","account.web.desc":"Cloud storage, AI Brain and themes are managed in the web account center.","address.label":"Page address","address.change":"Change","address.title":"Change your page address","address.desc":"Everything you publish lives under this address. After a change, the old address keeps redirecting to the new one and nobody else can take it.","address.now":"Now","address.new":"New","address.rule":'3\u201330 characters: lowercase letters, digits or "-"',"address.checking":"Checking\u2026","address.ok":"Available","address.bad":"Not available","address.same":"This is already your address","address.freeOne":"This is your one free change","address.freeN":"This one is free (you have {n} free changes)","address.freeAfter":"After that, an address rename card","address.card":"Uses 1 address rename card","address.cardHave":"You have {n}","address.need":"Changing needs 1 address rename card. You have none","address.price":"{price} points \xB7 balance {balance}","address.soldout":"Address rename cards are not on sale right now","address.cooldown":"Address changes need {days} days in between","address.cooldownUntil":"You can change it again after {date}","address.go":"Change address","address.goCard":"Use a card","address.goBuy":"Buy one for {price} points","address.shop":"Open the shop","address.done":"Your page address is now {url}","address.loadFailed":"Could not load your address right now.","address.errTaken":"Someone just took this address. Try another one.","address.errNeedCard":"No free changes left. Changing needs an address rename card.","address.errCooldown":"Not yet: you can change it again after {date}.","address.errPoints":"Not enough points for the card.","address.errBought":"The card is in your backpack, but the address was not changed: {reason}","address.errSoldout":"Address rename cards were just taken off sale.","address.errLimit":"You have reached the purchase limit for address rename cards.","address.errUnknown":"Could not confirm whether the address changed. Refresh in a moment to check.","backpack.addressCard":"Address rename card","backpack.addressCard.desc":"Once your free changes are used up, each change of your page address takes one card. The old address keeps redirecting and nobody else can take it.","backpack.addressCard.use":"Change address","member.title":"Membership","member.desc":"Your tier, plan and expiry date","member.upgrade":"Upgrade membership","member.renew":"Renew","member.freeName":"Free plan","member.freeHint":"Upgrade to get more AI quota","member.expires":"Expires {date}","member.noExpiry":"No expiry","member.loadFailed":"Couldn't load your membership.","session.title":"Sign-in","session.desc":"Manage your sign-in on this device","local.title":"Accounts on this computer","local.desc":"Switch between accounts you've signed in with","local.current":"Current","local.switch":"Switch","local.add":"Sign in to another account","local.signOut":"Sign out","local.empty":"No saved accounts yet","local.loadFailed":"Couldn't read the account list","diag.title":"Diagnostic data","diag.desc":"Helps us troubleshoot problems and improve Forsion. Off by default.","diag.enable":"Upload diagnostic data","diag.enableDesc":"When this is on, this computer periodically uploads a snapshot of its Forsion setup to your Forsion account, where the Forsion team can view it. The Forsion team sets how often, once a day by default. You can turn it off at any time.","diag.collected":"What's uploaded","diag.item.app":"App and system versions, this computer's name, and its free memory and disk space","diag.item.settings":"Your model and voice choices, the switches and numeric values in background agent and plugin settings, and the names and on/off state of MCP servers and message channels","diag.item.agents":"Agent and team configuration (options such as name and model; descriptions and prompts are recorded by length only, and their text falls under the personas, memory and evolution switch below)","diag.item.plugins":"Names and versions of installed plugins, skills, themes and Spaces","diag.item.runs":"Run records from the last 7 days: each run's status and error reason, usage and timing of model calls and tools (no conversation text, and nothing those tools read or wrote), and the engine's recent log output","diag.item.sync":"Cloud sync status: which categories your sync rules cover, how many files recent sync rounds uploaded, downloaded, deleted or saved as conflict copies, and why syncing failed (paths are masked; no file names or file contents)","diag.notCollected":"Never uploaded: the sign-in credentials and API keys saved on this computer, your note files, agent libraries, or plugin data.","diag.sessions":"Include conversations","diag.sessionsDesc":"Conversations on this computer: the text of your messages and the agent's replies, the agent's reasoning and the names of the tools it used, including the background work of team members, discussions and delegated tasks. Each upload only includes what hasn't been uploaded yet, going back at most 7 days. What those tools read or wrote and the attachments themselves are left out; file names that appear in messages, and anything the agent repeated from your notes or files in its replies, are included. Keys in common formats are masked; everything else is uploaded as is. If you'd rather not share them, turn this off before you turn uploads on.","diag.memory":"Include agent personas, memory and evolution records","diag.memoryDesc":"Each agent's persona (including the description and developer instructions in its configuration), and what the agent has built up on its own: its memory and the memory candidates it hasn't consolidated yet, its evolution record, its collaboration notes for you, the last 7 days of its logs and memory-consolidation activity, and project memory; plus your teams' charters and your user profile. These are the instructions you wrote for your agents and teams, and the facts they noted about you and your work from conversations. Each upload carries their current content (very long ones are cut short). Keys in common formats are masked; everything else is uploaded as is. If you'd rather not share them, turn this off before you turn uploads on.","diag.activity":"Include activity log","diag.activityDesc":"Your activity records, which include the first few dozen characters of conversations and the names of note files. Each upload only includes what hasn't been uploaded yet, going back at most 7 days. If you'd rather not share them, turn this off before you turn uploads on.","diag.last":"Last upload: {time}","diag.noUpload":"Nothing uploaded yet","diag.freq.hour":"every hour","diag.freq.hours":"every {n} hours","diag.freq.day":"once a day","diag.freq.days":"every {n} days","diag.freq.manual":"only when the Forsion team requests it","diag.retention":"The cloud keeps this computer's snapshots from the last {n} days. Turning this off stops uploads; snapshots already uploaded stay in the cloud. To have them deleted, let us know under Feedback.","page.privacy":"Privacy and data","privacy.tab":"Help improve","privacy.unavailable":"This version of Forsion does not support helping improve Forsion. Update Forsion and try again.","privacy.needUpdate":"This version of Forsion does not send this data yet. It takes effect after you update Forsion.","privacy.devBuild":"Development builds never send any data.","privacy.signInFirst":"Sign in to turn this on. Nothing is sent while you are signed out.","privacy.improve.title":"Help improve Forsion","privacy.improve.desc":"Sends metadata only, so we can find bugs and slow spots. It only sends while you are signed in to Forsion, and it is not linked to your account.","privacy.improve.switch":"Send crash reports and usage statistics","privacy.improve.switchHint":"Turning this off stops sending right away and discards anything still queued on this device.","privacy.policyLink":"See the Privacy Policy for what is collected and how long it is kept","privacy.sent.title":"Sent in the last 7 days","privacy.sent.hint":"A copy stays on this device so you can read every event.","privacy.sent.last":"A copy stays on this device so you can read every event. Last sent: {time}","privacy.sent.view":"View","privacy.sent.empty":"Nothing has been sent in the last 7 days.","privacy.delete.title":"Delete sent data","privacy.delete.hint":"Removes every record for this device's install ID from our servers and issues a new ID.","privacy.delete.button":"Delete","privacy.delete.confirm":"Confirm delete","privacy.delete.done":"Deleted. This device now has a new install ID.","privacy.delete.failed":"Could not delete: {reason}","privacy.installId":"Install ID {id} \xB7 not linked to your account","diag.uploadNow":"Upload now","diag.uploaded":"Uploaded","diag.failed":"Upload failed: {reason}","quota.ai.title":"AI quota","quota.ai.desc":"What's left today and this week; a quota reset card restores it","quota.resetDaily":"Resets daily at 0:00 (Beijing time)","quota.resetWeekly":"Resets {date} at 0:00 (Beijing time)","card.title":"Quota reset card","card.desc":"Restores today's and this week's AI quota to 100%","card.owned":"You have {n}","card.use":"Use one","card.useConfirm":"Confirm","card.used":"Used 1 quota reset card","card.left":"{n} left","card.noneHint":"You have no quota reset cards left. You can exchange points for more.","card.exchange":"Exchange points","card.price":"{price} points each, 1\u201350 at a time","card.count":"Number of cards","card.cost":"Costs {cost} points","card.countHint":"Enter 1\u201350","card.exchangeButton":"Exchange","card.exchangeConfirm":"Spend {cost} points","card.exchanged":"Quota reset cards added: {n}","points.title":"Points","points.desc":"Use points to get quota reset cards","points.balance":"Balance","points.balanceFailed":"Couldn't load your balance","points.recharge":"Buy points","bg.title":"Background quota","bg.desc":"Used by Muse and automations, counted separately from your AI quota","bg.autoMain":"Continue with AI quota when used up","bg.autoMainDesc":"When off, Muse and automations pause once the background quota runs out","bg.convert":"Move from AI quota","bg.convertDesc":"Moves a share of your AI quota limit, valid for the current period","bg.convertConfirm":"Move {pct}%","bg.converted":"Moved {pct}% from your AI quota","invite.title":"Invites & codes","invite.desc":"Invite friends to join, or redeem a code you received","invite.myCode":"My invite code","invite.count":"{n} invited","invite.copyCode":"Copy code","invite.copyLink":"Copy invite link","invite.loadFailed":"Couldn't load your invite code","invite.claim":"Enter an invite code","invite.claimDesc":"Within 7 days of signing up, you can enter a friend's invite code","invite.claimPlaceholder":"Friend's invite code","invite.claimSubmit":"Submit","invite.claimed":"Invite code applied","redeem.title":"Redemption code","redeem.desc":"Redeem points, membership or other rewards","redeem.placeholder":"Enter a code","redeem.submit":"Redeem","redeem.success":"Redeemed","redeem.successWith":"Redeemed: {what}","redeem.gotPoints":"{n} points","redeem.gotMembership":"membership","sec.methods.title":"Sign-in methods","sec.methods.desc":"Your phone and email can be used to sign in and reset your password","sec.bind":"Link","sec.change":"Change","sec.phone":"Phone number","sec.email":"Email address","sec.newPhone":"New phone number","sec.newEmail":"New email address","sec.phonePlaceholder":"Mainland China numbers as is; others with +country code","sec.emailPlaceholder":"name@example.com","sec.code":"Verification code","sec.codePlaceholder":"Enter the code","sec.sendCode":"Send code","sec.resendIn":"Resend in {s}s","sec.codeSent":"Code sent","sec.bindSubmit":"Link","sec.phoneBound":"Phone linked","sec.emailBound":"Email linked","sec.devices.title":"Signed-in devices","sec.devices.desc":"If you think someone else is using your account, sign out on every device","sec.logoutAll":"Sign out everywhere","sec.logoutAllDesc":"Including this device: every device has to sign in again","sec.logoutAllConfirm":"Confirm sign out everywhere","sec.logoutAllDone":"Signed out everywhere","pw.title":"Password","pw.desc":"{min}\u2013{max} characters, with a lowercase letter, an uppercase letter and a special character, and no spaces","pw.change":"Change password","pw.modeLabel":"How to change it","pw.mode.current":"With current password","pw.mode.code":"With a verification code","pw.current":"Current password","pw.currentRequired":"Enter your current password","pw.new":"New password","pw.confirm":"Confirm new password","pw.mismatch":"The new passwords don't match","pw.submit":"Change password","pw.submitReset":"Set new password","pw.changed":"Password updated","pw.noPasswordYet":"This account doesn't have a password yet. Set one with a verification code instead.","pw.codeNeedsContact":"Link a phone or email first to set a password with a verification code.","pw.via":"Send the code to","pw.codeTo":"The code goes to {target}","pw.rulesLabel":"Password rules","pw.req.length":"{min}\u2013{max} characters","pw.req.lower":"A lowercase letter","pw.req.upper":"An uppercase letter","pw.req.special":"A special character","pw.req.space":"No spaces","pw.rule.format":"Invalid password","pw.rule.min":"Password must be at least 8 characters","pw.rule.max":"Password can't be longer than 64 characters","pw.rule.space":"Password can't contain spaces","pw.rule.lower":"Password needs a lowercase letter","pw.rule.upper":"Password needs an uppercase letter","pw.rule.special":"Password needs a special character","del.title":"Delete account","del.desc":"Permanently delete your account and all its data. This can't be undone","del.start":"Delete account","del.warn":"Deleting your account removes your account, points, membership, cloud storage and all other data for good.","del.methodLabel":"Verify with","del.byCode":"Verification code","del.byPassword":"Password","del.codeLabel":"Code sent to {target}","del.passwordLabel":"Account password","del.submit":"Delete account","del.confirm":"Delete permanently","del.done":"Account deleted","usage.overview.title":"Overview","usage.overview.desc":"Requests and AI quota used in the selected period","usage.range":"Time range","usage.days":"{n} days","usage.requests":"Requests","usage.successRate":"Success rate","usage.consumption":"AI quota used","usage.ofToday":"Of your daily limit","usage.unlimitedNote":"Your AI quota is unlimited, so usage isn't shown as a percentage.","usage.noLimitNote":"Your daily limit is 0 or unavailable right now, so usage isn't shown as a percentage.","usage.byModel.title":"By model","usage.byModel.desc":"Requests and quota used per model","usage.byApp.title":"By app","usage.byApp.desc":"Requests and quota used per app","usage.col.model":"Model","usage.col.app":"App","usage.col.requests":"Requests","usage.col.consumption":"Quota used","usage.empty":"No usage in this period","usage.appUnknown":"Other","usage.recent.title":"Recent usage","usage.recent.desc":"Each call as a share of your daily limit","usage.recentEmpty":"No usage yet","usage.failed":"Failed","usage.shown":"Showing {shown} of {total}","fb.list.title":"My feedback","fb.list.desc":"Issues and suggestions you've sent; replies show up here","fb.new":"New feedback","fb.empty":"No feedback yet","fb.untitled":"Untitled feedback","fb.unread":"New reply","fb.shown":"Showing {n}","fb.submitted":"Sent. We'll reply as soon as we can","fb.descLabel":"Describe the issue or suggestion","fb.descPlaceholder":"What happened, and what did you expect?","fb.imagesHint":"Attach up to {n} screenshots (5 MB each). You can paste or drop them here.","fb.addImages":"Add screenshots","fb.removeImage":"Remove this image","fb.submit":"Send","fb.back":"Back to list","fb.you":"You","fb.support":"Forsion team","fb.attachment":"Attachment","fb.imagePreview":"View image","fb.closedNote":"This ticket is closed and can't take replies. Send new feedback for a new issue.","fb.replyPlaceholder":"Reply\u2026","fb.replySend":"Send reply","fb.replySent":"Reply sent","fb.status.open":"Open","fb.status.in_progress":"In progress","fb.status.resolved":"Resolved","fb.status.closed":"Closed","err.accountGone":"This account is signed out. Sign in again","err.adminCannotDelete":"Admin accounts can't be deleted here","err.avatarInvalid":"Couldn't read this image. Try another one","err.avatarTooLarge":"This image is too large. Try a smaller one","err.backgroundUnavailable":"Background quota is unavailable right now","err.captcha":"You need to finish a verification check in your browser","err.codeCooldown":"Too many codes requested. Try again shortly","err.codeInvalid":"The code is wrong or has expired","err.codeRequired":"Enter the verification code","err.codeSendFailed":"Couldn't send the code. Try again later","err.currentPasswordWrong":"Your current password is incorrect","err.deleteTargetInvalid":"Codes can only go to the phone or email linked to your account","err.deleteVerifyFailed":"Verification failed, so your account wasn't deleted","err.emailInUse":"This email is already used by another account","err.emailInvalid":"Enter a valid email address","err.featureDisabled":"This feature is turned off for now","err.feedbackEmpty":"Describe the issue or suggestion first","err.feedbackTooLong":"The description is too long (10,000 characters max)","err.generic":"That didn't work. Try again later","err.imageRead":"Couldn't read the image","err.imageTooLarge":"Each image must be 5 MB or less","err.imageType":"Only images can be added","err.insufficientMainQuota":"Your AI quota is used up, so there's nothing to move","err.insufficientPoints":"Not enough points","err.priceChanged":"The reset card price just changed. Check the new price, then confirm the exchange again.","err.invalidCount":"Choose between 1 and 50 cards","err.invalidInviteCode":"This invite code is invalid or has expired","err.inviteAlreadyUsed":"You've already used an invite code","err.inviteEmpty":"Enter an invite code","err.inviteOwnCode":"You can't use your own invite code","err.inviteWindowExpired":"The 7-day window after sign-up has passed","err.loginCodeExpired":"The sign-in code expired. Sign in again","err.loginInProgress":"A sign-in is already in progress","err.loginTimeout":"Sign-in timed out. Try again","err.loginUnsupported":"This cloud doesn't support desktop sign-in","err.network":"Network error. Check your connection and try again","err.noCloudUrl":"Set the cloud address under Connection first","err.noResetCard":"You have no quota reset cards","err.openFailed":"Couldn't open the browser","err.passwordRequired":"Enter your current and new password","err.phoneInUse":"This phone number is already used by another account","err.phoneInvalid":"Enter a valid phone number (with +country code outside mainland China)","err.redeemEmpty":"Enter a code","err.redeemExpired":"This code has expired","err.redeemInactive":"This code is no longer active","err.redeemNotFound":"This code doesn't exist","err.redeemUsedUp":"This code has been used up","err.redeemUserLimit":"You've already redeemed this code","err.replyEmpty":"Write a reply first","err.replyTooLong":"The reply is too long (10,000 characters max)","err.server":"Server error ({status}). Try again later","err.session":"You've been signed out. Sign in again","err.signedOut":"Sign in to Forsion first","err.targetInvalid":"Enter a valid phone number or email","err.ticketNotFound":"This feedback doesn't exist or was deleted","err.webPageGone":"This page doesn't exist or was taken down","err.listingGone":"This page has no store listing","err.listingSummary":"Add a store summary (up to 300 characters)","err.tooFrequent":"Too many attempts. Try again shortly","err.tooManyImages":"You can add up to 5 images","err.unavailable":"This version of Forsion can't do that yet. Update Forsion","profile.unsupported":"This server doesn't have profiles yet","profile.state.private":"Only you can see this","profile.state.public":"Public","profile.state.privateDesc":"Once public, anyone with the address can see your profile without signing in","profile.linkUnavailable":"Public link unavailable","profile.decorate":"Decorate","profile.publish":"Make public","profile.makePrivate":"Make private","profile.copyLink":"Copy link","profile.openPublic":"Open public profile in browser","profile.nowPublic":"Your profile is now public","profile.nowPrivate":"Your profile is private. The public address no longer opens","profile.bio":"Bio","profile.bioPlaceholder":"Add a short bio","profile.linkAdd":"Add a link","profile.linkRemove":"Remove link","profile.linkInvalid":"Links must start with http:// or https://, or be a plain domain","profile.joined":"Joined {date}","profile.stat.tokens":"Total tokens","profile.stat.activeDays":"Active days","profile.stat.longest":"Longest streak","profile.stat.current":"Current streak","profile.stat.installs":"Work installs","profile.unit.days":"d","profile.works":"Featured works","profile.worksPick":"Choose","profile.worksEmpty":"No published works yet. Publish to the store or as a web app, and they can go here.","profile.worksNone":"Nothing to feature yet. Works appear here once they are in the store or published as a web app.","profile.worksPicked":"{n} of {max} selected","profile.worksAuto":"With none selected, the most installed ones are shown","profile.goSubmit":"Submit a work","profile.workInstalls":"{n} installs","profile.workVisits":"{n} visits","profile.work.skill":"Skill","profile.work.agent":"Agent","profile.work.plugin":"Plugin","profile.work.space":"Space","profile.work.theme":"Theme","profile.work.note":"Notes plugin","profile.work.webapp":"Web app","profile.activity":"Activity","profile.activityDays":"Active on {n} days in the past year","profile.less":"Less","profile.more":"More","profile.badges":"Badges","profile.badgesEmpty":"No badges yet. Streaks, published works and invites all earn one.","profile.badge.early":"Early user","profile.badge.streak":"30-day streak","profile.badge.author":"Author","profile.badge.inviter":"Top inviter","profile.badge.event":"Event keepsake","profile.badgeSub.early":"Joined in {value}","profile.badgeSub.streak":"Longest streak: {value} days","profile.badgeSub.author":"{value} published works","profile.badgeSub.inviter":"Invited {value} friends","profile.badgeSub.event":"Took part in a Forsion event{value}","profile.insights":"Insights","profile.insightsEmpty":"Not enough usage yet. Check back in a few days.","profile.insightModel":"Most used model","profile.insightHours":"Most active hours","profile.deco.skin":"Public page color scheme","profile.deco.mode":"Public page appearance","profile.deco.publicHint":"These two only set what visitors see on the public page. Here the profile follows Forsion's current theme.","profile.deco.cover":"Cover","profile.deco.frame":"Avatar frame","profile.deco.modules":"Sections","profile.skin.cream":"Classic","profile.skin.coral":"Coral","profile.skin.teal":"Teal","profile.skin.lavender":"Lavender","profile.mode.auto":"Auto","profile.mode.light":"Light","profile.mode.dark":"Dark","profile.cover.none":"None","profile.cover.mist":"Mist","profile.cover.contour":"Contour","profile.cover.dots":"Dots","profile.frame.none":"None","profile.frame.ring":"Ring","profile.frame.pro":"Member ring","profile.frameProHint":"The member ring is for paid members.","profile.col.show":"Show","profile.col.public":"Public","profile.moveUp":"Move up","profile.moveDown":"Move down","profile.modulesHint":'"Show" decides whether a section is on your profile. "Public" decides whether visitors see it, once your profile is public.',"profile.mod.stats":"Stats","profile.mod.works":"Works","profile.mod.activity":"Activity","profile.mod.badges":"Badges","profile.mod.insights":"Insights","profile.modDesc.stats":"Total tokens, active days, streaks and installs of your works","profile.modDesc.works":"Works you have published, up to 6","profile.modDesc.activity":"Which days you were active in the past year (shades only, no numbers)","profile.modDesc.badges":"Join year, streaks, publishing, invites and events","profile.modDesc.insights":"Your most used model and most active hours","profile.publishDesc":"Once public, anyone with this address can see your profile without signing in. You decide section by section what visitors see.","profile.publishNever":"Your avatar, nickname, username, bio and links become public too. Your email, phone number, membership expiry, points and quota never appear on your profile.","profile.publishConfirm":"Make public","profile.blocked.machineUsername":"Your current username was generated by the system and contains part of your phone number or email, so making it public would expose that. Change your username on the Account page of the web account center first (each account can do this once), then come back.","profile.blocked.publishBlocked":"An administrator has stopped this profile from being public. Contact us through Feedback if you have questions.","profile.goRename":"Change username","profile.invalid":"This couldn't be saved. Check it and try again","guide.title":"Guide","guide.readOnly":"Read-only","guide.more":"More","guide.unlockAll":"Unlock all","guide.relock":"Unlock level by level","guide.reminders":"Guide reminders","guide.spotlight":"On-screen hints","guide.spotStep":"Step {n} of {total}","guide.figure":"Diagram","guide.openAchievements":"Open achievements","guide.tasks":"Tasks in this chapter","guide.go":"Take me there","guide.desktopOnly":"Do it on your computer","guide.taskDone":"Done","guide.askTangu":"Ask Tangu","guide.progress":"Progress","guide.justUnlocked":"Just unlocked","guide.lockedHint":"Locked","guide.whatsNew":"What's new in {version}","guide.level.lv1":"Lv.1 Getting started","guide.level.lv2":"Lv.2 Finding your way","guide.level.lv3":"Lv.3 Making it yours","guide.level.lv4":"Lv.4 Going further","guide.locked.title":"This chapter is still locked","guide.locked.body":"Finish the tasks in {level} to read the rest.","guide.locked.left":"Still to do:","guide.locked.hint":"Been around a while? Unlock everything from the \xB7\xB7\xB7 menu.","guide.levelProgress":"This level: {done}/{total}","guide.next":"Next level","guide.allDone":"All done","guide.allDoneBody":"You've done every task in the guide. Come back any time.","guide.review":"Look back","guide.ask.hint":'Questions about "{chapter}"? Ask Tangu opens a new chat with this chapter attached.',"guide.ask.placeholder":"What would you like to know?","guide.ask.send":"Start a chat","guide.ask.prompt":`I'm reading the "{chapter}" chapter of the Forsion guide; it's attached below. {question}`,"guide.ask.unavailable":"Chat isn't available here","guide.ask.chatTitle":"Guide Q&A","guide.companion.back":"Back to the guide","guide.companion.close":"Close","guide.toast.taskDone":"Done: {task}","guide.letter.levelTitle":"{level} unlocked: try these next","guide.letter.levelBody":'You finished the previous level, so these chapters are open now. Every task has a "Take me there" button.',"guide.letter.versionTitle":"{n} new things to try in {version}","guide.letter.versionBody":"New in this version, ready to try:","guide.letter.open":"Open the guide","guide.status.done":"Done","guide.cmd.open":"Open the guide","penzor.title":"Penzor Cloud","penzor.overview":"Overview","penzor.places":"Places","penzor.details":"Details","penzor.ledger.sync":"Vault sync","penzor.ledger.ama":"Amadeus Cloud","penzor.ledger.apps":"App files","penzor.ledger.exports":"Exports","penzor.trash":"Trash","penzor.items":"{n} items","penzor.total.sub":"Stored in Forsion Cloud \xB7 updated {time}","penzor.justNow":"just now","penzor.ofMax":"/ {max}","penzor.card.syncSub":"{n} vaults \xB7 last write {time}","penzor.card.syncSubNone":"{n} vaults","penzor.card.syncFoot":"Files over {size} are not uploaded","penzor.card.syncWarn":"Almost full: after {max}, new files stop uploading; files already in the cloud keep syncing","penzor.card.amaSmall":"Not counted in your quota","penzor.card.amaSub":"{n} cloud vaults","penzor.card.amaFoot":"Notes and attachments on the Cloud side of Amadeus","penzor.card.appsFoot":"Trash: {n} items \xB7 {size}","penzor.card.appsWarn":"Almost full: after {max}, apps can't save new files. Trash counts too, so emptying it frees space","penzor.card.expSmall":"{n} files","penzor.card.expSub":"Latest: {name} \xB7 {time}","penzor.card.expFoot":"Files exported from apps","penzor.card.none":"Nothing yet","penzor.largest":"Largest files","penzor.col.name":"Name","penzor.col.size":"Size","penzor.col.mtime":"Modified","penzor.col.device":"Written by","penzor.col.deleted":"Deleted","penzor.col.origin":"Original location","penzor.col.app":"From","penzor.sort.mtime":"By modified","penzor.sort.size":"By size","penzor.sort.name":"By name","penzor.search":"Search file names here","penzor.sync.thisDevice":"Syncing on this device","penzor.meta.files":"{size} \xB7 {n} files","penzor.sync.last":"Last write {time} \xB7 {device}","penzor.sync.lastNoDevice":"Last write {time}","penzor.sync.devices":"{n} devices sync this vault","penzor.sync.meter":"Vault sync shares {max}; {used} used","penzor.apps.meter":"App files share {max}; {used} used (trash included)","penzor.apps.by":"Written by {app}","penzor.ama.notCounted":"Not counted in your quota","penzor.ama.open":"Open in Amadeus","penzor.hosted.open":"Manage my web pages","penzor.hosted.note":"These files belong to a published web page. Republish to change them, or take the page down in My web pages.","penzor.trash.meta":"{n} items \xB7 {size}","penzor.trash.note":"Space frees up once items are deleted permanently","penzor.trash.emptyBtn":"Empty trash","penzor.act.download":"Download","penzor.act.rename":"Rename","penzor.act.move":"Move to\u2026","penzor.act.trash":"Move to trash","penzor.act.delete":"Delete","penzor.act.restore":"Restore","penzor.act.purge":"Delete permanently","penzor.act.copyName":"Copy vault name","penzor.act.openSync":"Open sync settings","penzor.act.refresh":"Refresh","penzor.act.up":"Up one level","penzor.toast.trashed":"Moved \u201C{name}\u201D to trash","penzor.toast.restored":"Restored \u201C{name}\u201D","penzor.toast.purged":"Deleted \u201C{name}\u201D permanently","penzor.toast.emptied":"Trash emptied","penzor.toast.downloaded":"Saved to Downloads: {name}","penzor.toast.renamed":"Renamed to \u201C{name}\u201D","penzor.toast.moved":"Moved to \u201C{name}\u201D","penzor.toast.versionRestored":"Restored version {n}","penzor.toast.copied":"Vault name copied","penzor.toast.failed":"That didn't work: {reason}","penzor.confirm.purge":"Delete \u201C{name}\u201D permanently? This can't be undone.","penzor.confirm.empty":"Empty the trash? {n} items will be deleted permanently.","penzor.confirm.deleteExport":"Delete \u201C{name}\u201D? Exports have no trash, so this can't be undone.","penzor.cancel":"Cancel","penzor.side.where":"Location","penzor.side.mtime":"Modified","penzor.side.device":"Written by","penzor.side.thisDevice":"{name} (this device)","penzor.side.from":"From","penzor.side.versions":"Versions","penzor.side.versionsNone":"None","penzor.side.versionRow":"Version {n} \xB7 {time} \xB7 {size}","penzor.side.restoreVersion":"Restore this version","penzor.side.deletedAt":"Deleted","penzor.side.origin":"Original location","penzor.side.inner":"{n} more items inside come back with it","penzor.side.inTrash":"In trash \xB7 {size}","penzor.side.readonlySync":"Files in a synced vault are changed on your devices. Deleting one here would delete it on every device that syncs {vault}, so here you can only view and download.","penzor.side.readonlyAma":"Notes and attachments are changed in Amadeus. Deleting an attachment here would leave the notes that use it with missing images, so here you can only view and download.","penzor.side.exportNote":"Exports have no trash: deleting is permanent.","penzor.side.none":"Select a file to see its details","penzor.side.folder":"Folder \xB7 {n} items","penzor.side.folderPlain":"Folder","penzor.move.title":"Move to","penzor.move.root":"Top of {app}","penzor.move.here":"Move here","penzor.move.noFolders":"No folders at this level","penzor.rename.save":"Save","penzor.empty.title":"Nothing in Penzor Cloud yet","penzor.empty.lead":"These show up here once they're in the cloud:","penzor.empty.sync":"Pick Penzor Cloud as the remote service in Settings \u203A Sync, and your local vault syncs here","penzor.empty.ama":"Notes you write on the Cloud side of Amadeus","penzor.empty.apps":"Files apps save to the cloud or export","penzor.empty.openSync":"Open sync settings","penzor.out.title":"Sign in to see your Penzor Cloud","penzor.out.lead":"Penzor Cloud holds the vaults you sync to Forsion Cloud, your Amadeus Cloud notes and the files apps keep in the cloud.","penzor.out.signIn":"Sign in to Forsion","penzor.loading":"Loading\u2026","penzor.err":"Couldn't load: {reason}","penzor.folderEmpty":"No files here","penzor.noMatch":"No file names contain \u201C{q}\u201D","penzor.cmd.open":"Open Penzor Cloud","penzor.unreachable":"Can\u2019t reach Forsion Cloud. Try again later","penzor.toast.emptyPartial":"{n} items in the trash couldn\u2019t be deleted","penzor.sort.deleted":"By deleted","penzor.side.versionsN":"{n}","penzor.drive":"My drive","penzor.drive.meta":"Counts toward the {max} for app files","penzor.drive.empty":"Nothing here yet. Drag files in, or click Upload.","penzor.act.upload":"Upload","penzor.act.uploadMore":"More upload options","penzor.act.uploadFiles":"Upload files\u2026","penzor.act.uploadFolder":"Upload folder\u2026","penzor.act.uploadHere":"Upload here\u2026","penzor.act.newFolder":"New folder","penzor.act.clearSel":"Clear selection","penzor.newFolder.default":"New folder","penzor.sel.bar":"{n} selected \xB7 {size}","penzor.sel.title":"{n} selected","penzor.sel.sub":"{size} \xB7 {files} files","penzor.sel.subDirs":"{size} \xB7 {files} files, {dirs} folders","penzor.sel.download":"Download {n}","penzor.sel.saveTo":"Saves to","penzor.sel.saveToValue":"Downloads / {folder}","penzor.sel.noDirs":"Folders can\u2019t be downloaded yet; only the selected files will be.","penzor.download.folder":"Penzor Cloud {date}","penzor.drop.to":"Drop to upload to \u201C{place}\u201D","penzor.tx.busy":"Transferring {n}","penzor.tx.allDone":"All done","penzor.tx.failedN":"{n} didn\u2019t finish","penzor.tx.counts":"{up} up \xB7 {down} down","penzor.tx.eta":"about {eta} left","penzor.tx.doneN":"{n} finished","penzor.tx.restDone":"The other {n} finished","penzor.tx.pill":"{counts} \xB7 {pct}%","penzor.tx.queued":"Queued","penzor.tx.paused":"Paused \xB7 resumes from the start","penzor.tx.uploaded":"Uploaded \xB7 {time}","penzor.tx.downloaded":"Downloaded \xB7 {time}","penzor.tx.canceled":"Canceled","penzor.tx.left":"{eta} left","penzor.tx.sec":"{n}s","penzor.tx.min":"{n} min","penzor.tx.pause":"Pause","penzor.tx.resume":"Resume","penzor.tx.cancel":"Cancel","penzor.tx.retry":"Retry","penzor.tx.remove":"Remove","penzor.tx.locate":"Show","penzor.tx.reveal":"Show in folder","penzor.tx.pauseAll":"Pause all","penzor.tx.resumeAll":"Resume all","penzor.tx.retryAll":"Retry all","penzor.tx.clearDone":"Clear finished","penzor.tx.clear":"Clear","penzor.tx.collapse":"Collapse","penzor.tx.expand":"Show transfers","penzor.tx.quota":"Not enough space: {size} short","penzor.tx.quotaSub":"Nothing in this batch was started","penzor.tx.freeSpace":"Free up space in Trash","penzor.err.too_large":"Over the 50 MB per-file limit ({size}); can\u2019t upload it yet","penzor.err.quota":"Not enough cloud space","penzor.err.network":"Connection lost at {pct}%","penzor.err.account_changed":"You switched accounts, so this one stopped","penzor.err.download_unavailable":"This host cannot save downloads yet. Update Forsion","penzor.err.download_failed":"The file was not saved. Try downloading it again","penzor.err.not_signed_in":"Not signed in","penzor.err.gone":"The file is no longer on this device","penzor.err.popup_blocked":"Your browser blocked the new tab. Allow pop-ups for this site and try again","penzor.err.changed":"The file changed while uploading. Try again","penzor.err.storage_unavailable":"Cloud storage is unavailable right now","penzor.err.other":"Didn\u2019t finish ({code})","penzor.err.too_many":"Up to {n} files at a time. Add them in smaller batches","penzor.toast.upDoneOne":"Uploaded \u201C{name}\u201D","penzor.toast.upDoneMany":"Uploaded {n} files","penzor.toast.downDoneMany":"Downloaded {n} files to Downloads","penzor.toast.txFailed":"{n} transfers didn\u2019t finish. Open Penzor Cloud to check","penzor.toast.folderExists":"There\u2019s already a folder called \u201C{name}\u201D","penzor.toast.trashedN":"Moved {n} items to the trash","penzor.toast.movedN":"Moved {n} items to \u201C{name}\u201D","penzor.toast.batchPartial":"{n} items didn\u2019t go through","penzor.sync.title":"Sync","penzor.sync.onN":"{n} on","penzor.sync.allOff":"All off","penzor.sync.waiting":"Waiting for you","penzor.sync.badgeWaiting":"{n} on \xB7 1 waiting for you","penzor.sync.running":"Syncing {pct}%","penzor.sync.runningPlain":"Syncing","penzor.sync.metaDevice":"This computer: {name}","penzor.sync.metaLast":"Last synced {time}","penzor.sync.metaNever":"Not synced yet","penzor.sync.every":"Every {n} min","penzor.sync.everyHours":"Every {n} h","penzor.sync.manual":"Manual","penzor.sync.onStart":"once at startup","penzor.sync.minAgo":"{n} min ago","penzor.sync.hoursAgo":"{n} h ago","penzor.sync.notesNamed":"Notes vault \u201C{name}\u201D","penzor.sync.notesPlain":"This computer\u2019s notes vault","penzor.sync.notesDesc":"The whole local vault, kept the same on your other computers","penzor.sync.agents":"Agents & memory","penzor.sync.agentsDesc":"Your agents\u2019 memory, logs, skills and working notes, plus your profile and default calendar","penzor.sync.conflictsN":"Conflict copies: {n}","penzor.sync.conflictsHint":"Files changed on both sides are kept twice: the other version is saved as a copy with \u201Cconflict\u201D in its name, in that agent\u2019s folder (or your profile folder)","penzor.sync.pluginsPending":"Changes not uploaded yet: {n} plugins","penzor.sync.agentsN":"Agents: {n}","penzor.sync.plugins":"Plugin data","penzor.sync.pluginsDesc":"Settings and data your plugins keep","penzor.sync.pluginsN":"Plugins: {n}","penzor.sync.off":"Off","penzor.sync.done":"Synced","penzor.sync.doneSize":"Synced \xB7 {size}","penzor.sync.firstPending":"Waiting for the first sync","penzor.sync.failed":"Last sync failed","penzor.sync.overQuota":"Over the limit, some files not uploaded","penzor.sync.to":"Syncing to {name}","penzor.sync.toFolder":"Syncing to a local folder","penzor.sync.decideAbove":"Choose in the card above","penzor.sync.kvSchedule":"Schedule","penzor.sync.kvDirection":"Direction","penzor.sync.kvSkipped":"Not uploaded","penzor.sync.kvWhere":"In the cloud","penzor.sync.change":"Change","penzor.sync.open":"Open","penzor.sync.dir.both":"Both ways","penzor.sync.dir.push":"Upload only","penzor.sync.dir.pull":"Download only","penzor.sync.skippedN":"{n} files over {size}","penzor.sync.where":"{ledger} \u203A {vault}","penzor.sync.whereUsed":"{ledger} \u203A {vault} \xB7 {used} / {max}","penzor.sync.devicesTitle":"Devices syncing","penzor.sync.thisOne":"This computer","penzor.sync.lastWrite":"Last write {time}","penzor.sync.noDevices":"No devices are syncing yet","penzor.sync.phoneTitle":"What your phone and the web see","penzor.sync.phoneTip":"Your phone and the web read the cloud vault (the cloud side of Amadeus, {size}) directly. It always syncs, and it\u2019s a separate copy from this computer\u2019s notes vault above. To see a folder from this computer on your phone, right-click it in your notes and sync it to the cloud vault.","penzor.sync.phoneTipPlain":"Your phone and the web read the cloud vault (the cloud side of Amadeus) directly. It always syncs, and it\u2019s a separate copy from this computer\u2019s notes vault above. To see a folder from this computer on your phone, right-click it in your notes and sync it to the cloud vault.","penzor.sync.foot":"Schedule, direction and other storage (Dropbox / S3 / WebDAV) are in","penzor.sync.footLink":"Settings \u203A Sync","penzor.sync.askTitle":"There\u2019s already a notes vault in the cloud","penzor.sync.askCloud":"The cloud copy is from {device}: {files} files \xB7 {size}.","penzor.sync.askCloudNoDevice":"The cloud copy: {files} files \xB7 {size}.","penzor.sync.askLocal":"This computer has {local} files the cloud copy doesn\u2019t, and {conflicts} that differ.","penzor.sync.askMerge":"Merge both","penzor.sync.askCloudBtn":"Use the cloud copy","penzor.sync.askSkip":"Don\u2019t sync notes on this computer yet","penzor.sync.askExplain":"Merge keeps both sides; files that differ are saved again as a \u201C(conflict)\u201D copy. Use the cloud copy first moves this computer\u2019s differing files into a \u201C{backup}\u201D folder next to the vault, then downloads the cloud copy.","penzor.sync.askConfirm":"This computer\u2019s differing files move to \u201C{backup}\u201D first, then the cloud copy replaces them.","penzor.sync.askConfirmGo":"Move them and use the cloud copy","penzor.sync.backupName":"{name} backup before sync {date}","penzor.sync.quotaTitle":"Your notes vault is {size}, over the {max} limit of {ledger}","penzor.sync.quotaTitlePlain":"Your notes vault is over the {ledger} limit","penzor.sync.quotaBody":"Files that don\u2019t fit stay on this computer. Nothing is deleted, they just aren\u2019t uploaded, and everything else keeps syncing.","penzor.sync.quotaLarge":"Single files over {size} are never uploaded ({n}).","penzor.sync.quotaSee":"See what\u2019s not uploaded","su.title":"Store update","su.source.github":"GitHub source","su.source.npm":"npm source","su.source.zip":"ZIP upload","su.review":"In review","su.approved":"Approved","su.rejected":"Not approved","su.viaGithub":"GitHub release {tag}","su.viaNpm":"npm {version}","su.metaReview":"Submitted {time} \xB7 The result will arrive in your inbox","su.metaReviewNoTime":"The result will arrive in your inbox","su.metaApproved":"The Store now shows {version}","su.metaApprovedInfo":"The Store info is updated","su.metaRejected":"The Store keeps {version}","su.metaRejectedUnlisted":"Not listed yet","su.infoOnly":"Store info only","su.listSep":", ","su.openSubmission":"Open in Submissions","wc.title":"Web page","wc.pill.published":"Published","wc.pill.live":"Live","wc.pill.review":"Store review","wc.pill.listed":"In the Store","wc.pill.rejected":"Not accepted in the Store","wc.pill.gone":"Taken down","wc.justPublished":"Just published","wc.anyone":"Anyone with the link can open it","wc.open":"Open","wc.viewInPages":"View in My web pages","wc.manage":"Manage in My web pages","wc.total":"{n} published","wc.more":"{n} more","wc.unpublishTitle":"Take down {name}?","wc.unpublishBody":"The link stops working and the page's files are deleted from your cloud drive.","wc.unpublishAgain":"Click again to take down"},Bc={zh:xh,en:kh},Ne=e=>e==="en"?"en":"zh";function we(e,t,o){let r=Bc[e][t]??Bc.zh[t]??t;return o?r.replace(/\{(\w+)\}/g,(a,i)=>i in o?String(o[i]):a):r}var $n=e=>(t,o)=>we(e,t,o),zt=(e,t)=>"raw"in e?e.raw:t(e.key,e.vars);var Uc=`
70
70
  .fx-acct { color: var(--text); }
71
71
  .fx-acct .fx-panel > .settings-panel-head:last-child { border-bottom-color: transparent; }
72
72
  .fx-acct .fx-panel > .fx-block + .fx-block,
@@ -84,6 +84,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error
84
84
  .fx-acct .fx-value { color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); font-variant-numeric: tabular-nums; }
85
85
  .fx-acct .fx-value.is-empty { color: var(--text-faint); }
86
86
  .fx-acct .fx-big { color: var(--text); font-size: var(--ui-font-title); line-height: var(--ui-line-title); font-weight: 600; font-variant-numeric: tabular-nums; }
87
+ .fx-acct .fx-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
87
88
  .fx-acct .fx-grow { flex: 1 1 auto; }
88
89
  .fx-acct .fx-inline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
89
90
 
@@ -353,6 +354,19 @@ Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error
353
354
  :root:not([data-skin]) .fx-acct .fx-pf-page, :root[data-skin='cream'] .fx-acct .fx-pf-page, :root[data-skin='ink'] .fx-acct .fx-pf-page { --fx-pf-cv: #d9b49c; --fx-pf-cv2: #cfc19e; }
354
355
 
355
356
  .fx-acct .fx-pf-page { container: fx-pf-page / inline-size; }
357
+ .fx-acct .fx-pf-share { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
358
+ .fx-acct .fx-pf-share-link { min-width: 0; color: var(--signal, var(--accent-ink)); font-size: var(--ui-font-body); line-height: var(--ui-line-body); overflow-wrap: anywhere; text-decoration: none; }
359
+ .fx-acct .fx-pf-share-link:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 3px; }
360
+ .fx-acct .fx-pf-share-link svg { vertical-align: -1px; }
361
+ .fx-acct .fx-pf-share > .btn { padding-inline: 6px; }
362
+ @container fx-pf-page (max-width: 510px) {
363
+ .fx-acct .fx-pf-page > .fx-panel > .settings-panel-head--actions { display: grid; grid-template-columns: auto minmax(0, 1fr); }
364
+ .fx-acct .fx-pf-page > .fx-panel .settings-panel-actions { grid-column: 2; flex-wrap: wrap; }
365
+ }
366
+ @media (pointer: coarse) {
367
+ .fx-acct .fx-pf-share > .btn { min-width: 36px; min-height: 36px; }
368
+ }
369
+
356
370
  .fx-acct .fx-pf-home[data-deco] { display: grid; grid-template-columns: minmax(0, 1fr) 272px; align-items: start; gap: 12px; }
357
371
  .fx-acct .fx-pf-url { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 8px 12px; border-radius: var(--radius-md); background: var(--overlay-subtle); color: var(--text); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); overflow-wrap: anywhere; }
358
372
  .fx-acct .fx-pf-url > svg { flex: 0 0 auto; color: var(--text-faint); }
@@ -640,7 +654,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let o="<p>An error
640
654
  .fx-acct .fx-sub-back { display: inline-flex; align-items: center; }
641
655
  .fx-acct .fx-sub-detail { padding: 14px 15px 18px; }
642
656
  }
643
- `,xc=`
657
+ `,Hc=`
644
658
  .fx-ann-backdrop { position: fixed; inset: 0; z-index: 1600; display: grid; place-items: center; padding: 20px; background: color-mix(in srgb, var(--bg) 78%, transparent); backdrop-filter: blur(8px); animation: fx-ann-fade 300ms ease-out both; }
645
659
  .fx-ann { position: relative; display: flex; flex-direction: column; width: min(100%, 560px); max-height: calc(100dvh - 40px); overflow: auto; padding: 24px 28px 22px; border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); background: var(--bg-card); box-shadow: var(--card-shadow); color: var(--text); font-family: var(--font-ui); text-align: left; animation: fx-ann-enter 480ms cubic-bezier(.2,.75,.15,1) both; }
646
660
  .fx-ann:focus { outline: none; }
@@ -667,7 +681,7 @@ html[data-glass='off'] .fx-ann-backdrop { backdrop-filter: none; background: var
667
681
  @media (prefers-reduced-motion: reduce) {
668
682
  .fx-ann-backdrop, .fx-ann, .fx-ann-eyebrow, .fx-ann-title, .fx-ann-body, .fx-ann-ok { animation: none; }
669
683
  }
670
- `,Xo=`
684
+ `,sa=`
671
685
  :host { display: block; color: var(--text); font-family: var(--font-body, var(--font-ui)); font-size: var(--ui-font-body); line-height: 1.65; overflow-wrap: anywhere; }
672
686
  .doc > :first-child { margin-top: 0; }
673
687
  .doc > :last-child { margin-bottom: 0; }
@@ -691,7 +705,7 @@ img { border-radius: var(--radius-sm); }
691
705
  hr { margin: 16px 0; border: 0; border-top: var(--border-width) solid var(--border); }
692
706
  a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
693
707
  strong, b { font-weight: 650; }
694
- `,kc=`
708
+ `,qc=`
695
709
  .fx-addr-backdrop { position: fixed; inset: 0; z-index: 1500; display: grid; place-items: center; padding: 20px; background: color-mix(in srgb, var(--bg) 70%, transparent); backdrop-filter: blur(6px); }
696
710
  .fx-addr { display: flex; flex-direction: column; width: min(100%, 540px); max-height: calc(100dvh - 40px); overflow: auto; padding: 18px 22px 18px; border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); background: var(--bg-card); box-shadow: var(--card-shadow); color: var(--text); font-family: var(--font-ui); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
697
711
  .fx-addr-head { display: flex; align-items: center; gap: 8px; }
@@ -725,7 +739,130 @@ html[data-glass='off'] .fx-addr-backdrop { backdrop-filter: none; background: co
725
739
  .fx-addr-cost { flex-wrap: wrap; }
726
740
  .fx-addr-cost em { flex-basis: 100%; text-align: left; padding-left: 23px; }
727
741
  }
728
- `;var pr=e=>typeof e=="string"?e:"";function Fg(e){if(!e||typeof e!="object")return null;let t=e,n=typeof t.id=="string"?t.id.trim():typeof t.id=="number"&&Number.isFinite(t.id)?String(t.id):"",o=pr(t.titleZh),a=pr(t.bodyZh);return!n||!o.trim()&&!a.trim()?null:{id:n,titleZh:o,titleEn:pr(t.titleEn).trim()?pr(t.titleEn):null,bodyZh:a,bodyEn:pr(t.bodyEn).trim()?pr(t.bodyEn):null,format:t.format==="html"?"html":"markdown",publishedAt:pr(t.publishedAt)||null}}function $g(e,t){return t==="en"&&e.bodyEn?{lang:"en",title:e.titleEn??e.titleZh,body:e.bodyEn}:{lang:"zh",title:e.titleZh,body:e.bodyZh}}var Bg=new ni({gfm:!0,breaks:!0}),Ug=["script","iframe","frame","frameset","object","embed","applet","portal","form","input","textarea","select","option","button","link","meta","base","noscript"],Hg=/^(?:https?:|mailto:|#)/i;function wc(e){return Wa.sanitize(e,{FORCE_BODY:!0,RETURN_DOM_FRAGMENT:!0,FORBID_TAGS:Ug,ALLOWED_URI_REGEXP:Hg})}function vi(e,t){let n=t==="markdown"?Bg.parse(e,{async:!1}):e;return wc(n)}var Yo=null;function bi(){if(Yo===null)try{let e=wc('<p onclick="1"><a href="javascript:void 0">a</a></p><script>1<\/script><iframe></iframe>');Yo=Wa.isSupported&&!e.querySelector("script, iframe, [onclick], a[href]")}catch{Yo=!1}return Yo}function qg(e){try{let t=new URL(String(e??"").trim());return t.protocol==="http:"||t.protocol==="https:"?t.href:null}catch{return null}}var Wg="http://www.w3.org/1999/xlink";function Ln(e){let t=e.target,n=t&&typeof t.closest=="function"?t.closest("a, area"):null;if(!n||(e.preventDefault(),e.type!=="click"))return;let o=qg(n.getAttribute("href")??n.getAttributeNS(Wg,"href"));if(o)try{oe().openExternal?.(o)?.catch(()=>{})}catch{}}function Zo(e){return e.shadowRoot??e.attachShadow({mode:"open"})}function Vg(e){let{ctx:t,ann:n}=e,[o,a]=C(()=>De(t.getLocale?.()));X(()=>{a(De(t.getLocale?.()));let p=t.subscribeLocale?.(g=>a(De(g)));return()=>{typeof p=="function"&&p()}},[t]);let i=Vt(()=>In(o),[o]),s=$g(n,o),l=ie(null),c=ie(null),d=ie(null),m=ie(null),u=ie(e.onClose);return u.current=e.onClose,X(()=>{let p=document.activeElement instanceof HTMLElement?document.activeElement:null;l.current?.focus();let g=h=>{if(h.key==="Escape"){h.preventDefault(),h.stopPropagation(),u.current();return}if(h.key!=="Tab")return;let k=c.current,x=d.current,S=l.current;if(!k||!x||!S)return;let w=document.activeElement;if(!w||!S.contains(w)){h.preventDefault(),(h.shiftKey?x:k).focus();return}h.shiftKey&&(w===k||w===S)?(h.preventDefault(),x.focus()):!h.shiftKey&&w===x&&(h.preventDefault(),k.focus())},f=h=>{let k=l.current;k&&h.target instanceof Node&&!k.contains(h.target)&&k.focus()};return window.addEventListener("keydown",g,!0),document.addEventListener("focusin",f,!0),()=>{window.removeEventListener("keydown",g,!0),document.removeEventListener("focusin",f,!0),p?.isConnected&&p.focus()}},[]),X(()=>{let p=m.current;if(!p)return;let g=Zo(p);return g.addEventListener("click",Ln),g.addEventListener("auxclick",Ln),()=>{g.removeEventListener("click",Ln),g.removeEventListener("auxclick",Ln)}},[]),X(()=>{let p=m.current;if(!p)return;let g=document.createElement("style");g.textContent=Xo;let f=document.createElement("div");f.className="doc",f.appendChild(vi(s.body,n.format)),Zo(p).replaceChildren(g,f)},[s.body,n.format]),r("div",{class:"fx-ann-backdrop",children:[r("style",{children:xc}),r("section",{ref:l,class:"fx-ann",role:"dialog","aria-modal":"true","aria-labelledby":"fx-ann-title","aria-describedby":"fx-ann-body",tabIndex:-1,lang:s.lang==="zh"?"zh-CN":"en","data-announcement-id":n.id,children:[r("button",{ref:c,type:"button",class:"fx-ann-close","aria-label":i("ann.close"),onClick:()=>u.current(),children:r(W,{name:"x",size:16})}),r("div",{class:"fx-ann-eyebrow",children:i("ann.eyebrow")}),r("h2",{id:"fx-ann-title",class:"fx-ann-title",children:s.title}),r("div",{class:"fx-ann-body",children:r("div",{ref:m,id:"fx-ann-body",class:"fx-ann-doc"})}),r("div",{class:"fx-ann-footer",children:r("button",{ref:d,type:"button",class:"fx-ann-ok",onClick:()=>u.current(),children:i("ann.ok")})})]})]})}function jg(e){try{return new URLSearchParams(e||"").has("window")}catch{return!1}}function Gg(e=document,t=12e3){let n=e.getElementById("tangu-splash");return n?.parentNode?new Promise(o=>{let a=()=>{i.disconnect(),clearTimeout(s),o()},i=new MutationObserver(()=>{n.isConnected||a()});i.observe(n.parentNode,{childList:!0});let s=setTimeout(a,t)}):Promise.resolve()}function zc(e,t=window){let n=un(t?.tangu);if(!e||!n?.cloudFetch||!pn(n)||jg(t.location?.search))return null;let o=0,a=!1,i=null,s=null,l=()=>{s?.done(),s=null},c=Promise.resolve(),d=(p,g)=>{let f=document.createElement("div");f.className="fx-ann-root",document.body.appendChild(f);let h=!1,k=x=>{h||(h=!0,i?.id===p.id&&(i=null),Ee(null,f),f.remove(),g?.done(),x&&(c=Z(`/announcements/${encodeURIComponent(p.id)}/seen`,{method:"POST"})))};i={id:p.id,finish:k},Ee(r(Vg,{ctx:e,ann:p,onClose:()=>k(!0)}),f)},m=async()=>{let p=++o;await c;let g=await Z("/announcements/pending");if(a||p!==o||!g.ok)return;let f=Fg(g.data?.announcement);if(!f||i||!bi()||(await Gg(),a||p!==o||i))return;let h=e.app?.queuePopup?.();if(h&&(l(),s=h,await h.ready,s===h&&(s=null),a||p!==o||i)){h.done();return}d(f,h)},u=n.onAuthChanged?.(p=>{i?.finish(!1),l(),p?.loggedIn?m():o++});return m(),{check:m,dispose(){a=!0,o++,typeof u=="function"&&u(),i?.finish(!1),l()}}}function Sc(e){return typeof e!="string"?{ok:!1,rule:"format"}:e.length<8?{ok:!1,rule:"min"}:e.length>64?{ok:!1,rule:"max"}:/\s/.test(e)?{ok:!1,rule:"space"}:/[a-z]/.test(e)?/[A-Z]/.test(e)?/[^A-Za-z0-9]/.test(e)?{ok:!0}:{ok:!1,rule:"special"}:{ok:!1,rule:"upper"}:{ok:!1,rule:"lower"}}function _c(e){return{length:e.length>=8&&e.length<=64,lower:/[a-z]/.test(e),upper:/[A-Z]/.test(e),special:/[^A-Za-z0-9]/.test(e),space:e.length>0&&!/\s/.test(e)}}var Cc={\u5BC6\u7801\u683C\u5F0F\u4E0D\u6B63\u786E:"format","\u5BC6\u7801\u81F3\u5C11 8 \u4F4D":"min","\u5BC6\u7801\u4E0D\u80FD\u8D85\u8FC7 64 \u4F4D":"max",\u5BC6\u7801\u4E0D\u80FD\u5305\u542B\u7A7A\u683C:"space",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5C0F\u5199\u5B57\u6BCD:"lower",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5927\u5199\u5B57\u6BCD:"upper",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u7279\u6B8A\u5B57\u7B26:"special"};var Tc={no_reset_card:"err.noResetCard",invalid_type:"err.generic",invalid_count:"err.invalidCount",insufficient_points:"err.insufficientPoints",price_changed:"err.priceChanged",insufficient_main_quota:"err.insufficientMainQuota",background_unavailable:"err.backgroundUnavailable",invalid_percent:"err.generic",invalid_request:"err.generic",invalid_invite_code:"err.invalidInviteCode",already_used:"err.inviteAlreadyUsed",window_expired:"err.inviteWindowExpired",ITEM_NOT_FOUND:"backpack.unavailable",ITEM_NOT_ACTIVE:"backpack.unavailable",ITEM_NOT_USABLE:"backpack.notUsable",ITEM_EFFECT_UNAVAILABLE:"backpack.quotaUnavailable",FEATURE_DISABLED:"err.featureDisabled",INSUFFICIENT_POINTS:"err.insufficientPoints",OUT_OF_STOCK:"store.soldOut",LIMIT_REACHED:"store.limitReached",NOT_AVAILABLE:"store.unavailable",NOT_POINTS_PURCHASABLE:"store.unavailable",CAPTCHA_FAILED:"err.captcha",machine_username:"profile.blocked.machineUsername",publish_blocked:"profile.blocked.publishBlocked",invalid_settings:"profile.invalid"},Ac={"Current password is incorrect":"err.currentPasswordWrong","Current and new password are required":"err.passwordRequired",\u9A8C\u8BC1\u7801\u65E0\u6548\u6216\u5DF2\u8FC7\u671F:"err.codeInvalid","Invalid or expired verification code":"err.codeInvalid",\u8D26\u53F7\u6216\u9A8C\u8BC1\u7801\u9519\u8BEF:"err.codeInvalid",\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801:"err.codeRequired","Email already in use":"err.emailInUse","Phone number already in use":"err.phoneInUse","Invalid email format":"err.emailInvalid","Email is required":"err.emailInvalid","Invalid phone number format":"err.phoneInvalid","Phone number is required":"err.phoneInvalid","Invalid phone number or email format":"err.targetInvalid","Please wait before requesting another code":"err.codeCooldown","Failed to send verification code":"err.codeSendFailed","Invalid target for account deletion":"err.deleteTargetInvalid","\u8EAB\u4EFD\u9A8C\u8BC1\u5931\u8D25\uFF0C\u65E0\u6CD5\u6CE8\u9500\u8D26\u6237":"err.deleteVerifyFailed",\u7BA1\u7406\u5458\u8D26\u53F7\u4E0D\u80FD\u81EA\u52A9\u6CE8\u9500:"err.adminCannotDelete",\u79EF\u5206\u4F59\u989D\u4E0D\u8DB3:"err.insufficientPoints","\u5151\u6362\u5F20\u6570\u9700\u4E3A 1-50 \u7684\u6574\u6570":"err.invalidCount",\u6CA1\u6709\u53EF\u7528\u7684\u91CD\u7F6E\u5361:"err.noResetCard","\u4E3B\u989D\u5EA6\u5DF2\u7528\u5B8C,\u6CA1\u6709\u53EF\u8F6C\u5165\u7684\u989D\u5EA6":"err.insufficientMainQuota",\u540E\u53F0\u989D\u5EA6\u6682\u4E0D\u53EF\u7528:"err.backgroundUnavailable",\u9080\u8BF7\u7801\u65E0\u6548\u6216\u5DF2\u5931\u6548:"err.invalidInviteCode","\u5DF2\u8D85\u8FC7\u6CE8\u518C\u540E 7 \u5929\u7684\u8865\u586B\u671F":"err.inviteWindowExpired",\u4F60\u5DF2\u4F7F\u7528\u8FC7\u9080\u8BF7\u7801:"err.inviteAlreadyUsed","You have already used an invite code":"err.inviteAlreadyUsed","Cannot use your own invite code":"err.inviteOwnCode","Invite code is required":"err.inviteEmpty","code is required":"err.redeemEmpty","Redemption code not found":"err.redeemNotFound","Redemption code is not active":"err.redeemInactive","Redemption code has expired":"err.redeemExpired","Redemption code has reached maximum uses":"err.redeemUsedUp","You have already used this code the maximum number of times":"err.redeemUserLimit",avatar_too_large:"err.avatarTooLarge","description is required":"err.feedbackEmpty","description too long (max 10000 chars)":"err.feedbackTooLong","content is required":"err.replyEmpty","content too long (max 10000 chars)":"err.replyTooLong","Ticket not found":"err.ticketNotFound","Too many attachments (max 5)":"err.tooManyImages","Attachment type not allowed (image / json / text only)":"err.imageType","\u4EBA\u673A\u9A8C\u8BC1\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5":"err.captcha",\u5E94\u7528\u4E0D\u5B58\u5728\u6216\u4E0D\u5C5E\u4E8E\u4F60:"err.webPageGone","\u5E94\u7528\u5DF2\u88AB\u505C\u7528\uFF0C\u65E0\u6CD5\u7533\u8BF7\u4E0A\u67B6":"web.disabledHint",\u6CA1\u6709\u5BF9\u5E94\u7684\u4E0A\u67B6\u7533\u8BF7:"err.listingGone","\u8BF7\u586B\u5199\u5E94\u7528\u7B80\u4ECB\uFF08300 \u5B57\u4EE5\u5185\uFF09":"err.listingSummary"},yi={format:"pw.rule.format",min:"pw.rule.min",max:"pw.rule.max",space:"pw.rule.space",lower:"pw.rule.lower",upper:"pw.rule.upper",special:"pw.rule.special"};function Jg(e){if(e.code&&Tc[e.code])return Tc[e.code];if(e.detail){if(Ac[e.detail])return Ac[e.detail];let t=Cc[e.detail];if(t)return yi[t];if(e.detail.startsWith("Attachment exceeds 5MB"))return"err.imageTooLarge"}return null}function ft(e){let t=Jg(e);return t?{key:t}:Rn(e)?{key:"err.signedOut"}:e.status===0?{key:"err.network"}:e.status===401?{key:"err.session"}:e.status===429?{key:"err.tooFrequent"}:e.detail?{raw:e.detail}:e.status>=500?{key:"err.server",vars:{status:e.status}}:{key:"err.generic"}}function io(e){let t=e.trim();return t?/cancelled\.?$/i.test(t)?null:t==="A sign-in is already in progress."?{key:"err.loginInProgress"}:t.startsWith("\u767B\u5F55\u8D85\u65F6")?{key:"err.loginTimeout"}:t.startsWith("\u767B\u5F55\u7801\u5DF2\u8FC7\u671F")?{key:"err.loginCodeExpired"}:t.startsWith("\u65E0\u6CD5\u8FDE\u63A5")?{key:"err.network"}:t.startsWith("\u4E91\u7AEF\u4E0D\u652F\u6301 CLI \u767B\u5F55")?{key:"err.loginUnsupported"}:t.startsWith("\u8BF7\u5148\u586B\u5199 Forsion \u4E91\u7AEF\u5730\u5740")?{key:"err.noCloudUrl"}:t.startsWith("Account is no longer signed in")?{key:"err.accountGone"}:{raw:t}:{key:"err.generic"}}var xi=jo(null);function le(){let e=fi(xi);if(!e)throw new Error("forsion-extend: page rendered outside its host root");return e}var rt=()=>le().t;function Oe(){let e=ie(!0);return X(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var Ec={pending:!1,error:null,success:null,captcha:!1};function me(){let e=Oe(),[t,n]=C(Ec),o=ie(!1),a=dn(async s=>{if(o.current)return;o.current=!0,n({pending:!0,error:null,success:null,captcha:!1});let l;try{l=await s()}catch(c){l={error:{raw:String(c?.message||c)}}}o.current=!1,e.current&&n({pending:!1,error:l?.error??null,success:l?.success??null,captcha:!!l?.captcha})},[]),i=dn(()=>{o.current||n(Ec)},[]);return{...t,run:a,clear:i}}var Fe=e=>({error:ft(e),captcha:e.status===403&&e.code==="CAPTCHA_FAILED"});function Pc(){let[e,t]=C(0),n=ie(null);X(()=>()=>{n.current&&clearInterval(n.current)},[]);let o=dn((i=60)=>{n.current&&clearInterval(n.current),t(i),n.current=setInterval(()=>{t(s=>s<=1?(n.current&&clearInterval(n.current),n.current=null,0):s-1)},1e3)},[]),a=dn(()=>{n.current&&clearInterval(n.current),n.current=null,t(0)},[]);return{left:e,start:o,stop:a}}function Ge(e){let[t,n]=C({state:"loading"}),o=ie(0),a=ie(e);a.current=e;let i=dn((c=!1)=>{let d=++o.current;c||n({state:"loading"}),(async()=>{let m;try{m=await a.current()}catch(u){m={ok:!1,status:0,code:null,detail:null,transport:String(u?.message||u)}}d===o.current&&(m.ok?n({state:"ready",data:m.data,gen:d}):Rn(m)?n({state:"signedOut"}):(m.status===401&&oe().authStatus?.().catch(()=>{}),n({state:"error",fail:m})))})()},[]);X(()=>{i();let c=oe().onAuthChanged?.(()=>i());return()=>{o.current++,c?.()}},[i]);let s=dn(()=>i(),[i]),l=dn(()=>i(!0),[i]);switch(t.state){case"ready":{let c=t.gen,d=m=>n(u=>u.state==="ready"&&u.gen===c?{...u,data:m(u.data)}:u);return{state:"ready",data:t.data,reload:l,update:d}}case"error":return{state:"error",error:ft(t.fail),retry:s};default:return t}}function Qo(e){let t=String(e||"").trim();if(!t)return"";let n=t.startsWith("+")?4:3;return t.length<=n+4?`${t.slice(0,2)}***`:`${t.slice(0,n)}****${t.slice(-4)}`}function ea(e){let t=String(e||"").trim(),n=t.lastIndexOf("@");if(n<=0)return t?`${t.slice(0,1)}***`:"";let o=t.slice(0,n);return`${o.slice(0,o.length<=2?1:2)}***${t.slice(n)}`}function so(e){let t=String(e||"").trim().toLowerCase()||"free";return t.charAt(0).toUpperCase()+t.slice(1)}var Lr=(e,t)=>t==="en"&&e?.nameEn||e?.name||"",Mc=(e,t)=>t==="en"&&e?.descriptionEn||e?.description||"",Kg=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Rc(e,t){let n=String(e||"").trim(),o,a,i=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(i)o=Number(i[2]),a=Number(i[3]);else{let s=new Date(n);if(!n||Number.isNaN(s.getTime()))return null;let l=new Intl.DateTimeFormat("en-US",{timeZone:"Asia/Shanghai",month:"numeric",day:"numeric"}).formatToParts(s);o=Number(l.find(c=>c.type==="month")?.value),a=Number(l.find(c=>c.type==="day")?.value)}return!(o>=1&&o<=12)||!(a>=1&&a<=31)?null:t==="zh"?`${o}\u6708${a}\u65E5`:`${Kg[o-1]} ${a}`}var ki=e=>e==="zh"?"zh-CN":"en-US";function Ic(e){if(e==null||e==="")return null;let t=new Date(typeof e=="string"&&/^\d+$/.test(e)?Number(e):e);return Number.isNaN(t.getTime())?null:t}function It(e,t){let n=Ic(e);return n?new Intl.DateTimeFormat(ki(t),{year:"numeric",month:"short",day:"numeric"}).format(n):"\u2014"}function Lt(e,t){let n=Ic(e);return n?new Intl.DateTimeFormat(ki(t),{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(n):"\u2014"}function Le(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?new Intl.NumberFormat(ki(t),{maximumFractionDigits:2}).format(n):"\u2014"}var fr=(e=>(e[e.Border=-1]="Border",e[e.Data=0]="Data",e[e.Function=1]="Function",e[e.Position=2]="Position",e[e.Timing=3]="Timing",e[e.Alignment=4]="Alignment",e))(fr||{}),Xg=[0,1],Dc=[1,0],Nc=[2,3],Oc=[3,2],Yg={L:Xg,M:Dc,Q:Nc,H:Oc},Zg=/^\d*$/,Qg=/^[A-Z0-9 $%*+./:-]*$/,wi="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",Ci=1,Ti=40,Lc=3,eh=3,ta=40,th=10,Fc=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],$c=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],zi=class{constructor(t,n,o,a){if(this.version=t,this.ecc=n,t<Ci||t>Ti)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=t*4+17;let i=Array.from({length:this.size}).fill(!1);for(let l=0;l<this.size;l++)this.modules.push(i.slice()),this.types.push(i.map(()=>0));this.drawFunctionPatterns();let s=this.addEccAndInterleave(o);if(this.drawCodewords(s),a===-1){let l=1e9;for(let c=0;c<8;c++){this.applyMask(c),this.drawFormatBits(c);let d=this.getPenaltyScore();d<l&&(a=c,l=d),this.applyMask(c)}}this.mask=a,this.applyMask(a),this.drawFormatBits(a)}size;mask;modules=[];types=[];getModule(t,n){return t>=0&&t<this.size&&n>=0&&n<this.size&&this.modules[n][t]}drawFunctionPatterns(){for(let o=0;o<this.size;o++)this.setFunctionModule(6,o,o%2===0,fr.Timing),this.setFunctionModule(o,6,o%2===0,fr.Timing);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let t=this.getAlignmentPatternPositions(),n=t.length;for(let o=0;o<n;o++)for(let a=0;a<n;a++)o===0&&a===0||o===0&&a===n-1||o===n-1&&a===0||this.drawAlignmentPattern(t[o],t[a]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(t){let n=this.ecc[1]<<3|t,o=n;for(let i=0;i<10;i++)o=o<<1^(o>>>9)*1335;let a=(n<<10|o)^21522;for(let i=0;i<=5;i++)this.setFunctionModule(8,i,Dn(a,i));this.setFunctionModule(8,7,Dn(a,6)),this.setFunctionModule(8,8,Dn(a,7)),this.setFunctionModule(7,8,Dn(a,8));for(let i=9;i<15;i++)this.setFunctionModule(14-i,8,Dn(a,i));for(let i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,Dn(a,i));for(let i=8;i<15;i++)this.setFunctionModule(8,this.size-15+i,Dn(a,i));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let t=this.version;for(let o=0;o<12;o++)t=t<<1^(t>>>11)*7973;let n=this.version<<12|t;for(let o=0;o<18;o++){let a=Dn(n,o),i=this.size-11+o%3,s=Math.floor(o/3);this.setFunctionModule(i,s,a),this.setFunctionModule(s,i,a)}}drawFinderPattern(t,n){for(let o=-4;o<=4;o++)for(let a=-4;a<=4;a++){let i=Math.max(Math.abs(a),Math.abs(o)),s=t+a,l=n+o;s>=0&&s<this.size&&l>=0&&l<this.size&&this.setFunctionModule(s,l,i!==2&&i!==4,fr.Position)}}drawAlignmentPattern(t,n){for(let o=-2;o<=2;o++)for(let a=-2;a<=2;a++)this.setFunctionModule(t+a,n+o,Math.max(Math.abs(a),Math.abs(o))!==1,fr.Alignment)}setFunctionModule(t,n,o,a=fr.Function){this.modules[n][t]=o,this.types[n][t]=a}addEccAndInterleave(t){let n=this.version,o=this.ecc;if(t.length!==na(n,o))throw new RangeError("Invalid argument");let a=$c[o[0]][n],i=Fc[o[0]][n],s=Math.floor(Si(n)/8),l=a-s%a,c=Math.floor(s/a),d=[],m=dh(i);for(let p=0,g=0;p<a;p++){let f=t.slice(g,g+c-i+(p<l?0:1));g+=f.length;let h=uh(f,m);p<l&&f.push(0),d.push(f.concat(h))}let u=[];for(let p=0;p<d[0].length;p++)d.forEach((g,f)=>{(p!==c-i||f>=l)&&u.push(g[p])});return u}drawCodewords(t){if(t.length!==Math.floor(Si(this.version)/8))throw new RangeError("Invalid argument");let n=0;for(let o=this.size-1;o>=1;o-=2){o===6&&(o=5);for(let a=0;a<this.size;a++)for(let i=0;i<2;i++){let s=o-i,c=(o+1&2)===0?this.size-1-a:a;!this.types[c][s]&&n<t.length*8&&(this.modules[c][s]=Dn(t[n>>>3],7-(n&7)),n++)}}}applyMask(t){if(t<0||t>7)throw new RangeError("Mask value out of range");for(let n=0;n<this.size;n++)for(let o=0;o<this.size;o++){let a;switch(t){case 0:a=(o+n)%2===0;break;case 1:a=n%2===0;break;case 2:a=o%3===0;break;case 3:a=(o+n)%3===0;break;case 4:a=(Math.floor(o/3)+Math.floor(n/2))%2===0;break;case 5:a=o*n%2+o*n%3===0;break;case 6:a=(o*n%2+o*n%3)%2===0;break;case 7:a=((o+n)%2+o*n%3)%2===0;break;default:throw new Error("Unreachable")}!this.types[n][o]&&a&&(this.modules[n][o]=!this.modules[n][o])}}getPenaltyScore(){let t=0;for(let i=0;i<this.size;i++){let s=!1,l=0,c=[0,0,0,0,0,0,0];for(let d=0;d<this.size;d++)this.modules[i][d]===s?(l++,l===5?t+=Lc:l>5&&t++):(this.finderPenaltyAddHistory(l,c),s||(t+=this.finderPenaltyCountPatterns(c)*ta),s=this.modules[i][d],l=1);t+=this.finderPenaltyTerminateAndCount(s,l,c)*ta}for(let i=0;i<this.size;i++){let s=!1,l=0,c=[0,0,0,0,0,0,0];for(let d=0;d<this.size;d++)this.modules[d][i]===s?(l++,l===5?t+=Lc:l>5&&t++):(this.finderPenaltyAddHistory(l,c),s||(t+=this.finderPenaltyCountPatterns(c)*ta),s=this.modules[d][i],l=1);t+=this.finderPenaltyTerminateAndCount(s,l,c)*ta}for(let i=0;i<this.size-1;i++)for(let s=0;s<this.size-1;s++){let l=this.modules[i][s];l===this.modules[i][s+1]&&l===this.modules[i+1][s]&&l===this.modules[i+1][s+1]&&(t+=eh)}let n=0;for(let i of this.modules)n=i.reduce((s,l)=>s+(l?1:0),n);let o=this.size*this.size,a=Math.ceil(Math.abs(n*20-o*10)/o)-1;return t+=a*th,t}getAlignmentPatternPositions(){if(this.version===1)return[];{let t=Math.floor(this.version/7)+2,n=this.version===32?26:Math.ceil((this.version*4+4)/(t*2-2))*2,o=[6];for(let a=this.size-7;o.length<t;a-=n)o.splice(1,0,a);return o}}finderPenaltyCountPatterns(t){let n=t[1],o=n>0&&t[2]===n&&t[3]===n*3&&t[4]===n&&t[5]===n;return(o&&t[0]>=n*4&&t[6]>=n?1:0)+(o&&t[6]>=n*4&&t[0]>=n?1:0)}finderPenaltyTerminateAndCount(t,n,o){return t&&(this.finderPenaltyAddHistory(n,o),n=0),n+=this.size,this.finderPenaltyAddHistory(n,o),this.finderPenaltyCountPatterns(o)}finderPenaltyAddHistory(t,n){n[0]===0&&(t+=this.size),n.pop(),n.unshift(t)}};function Nn(e,t,n){if(t<0||t>31||e>>>t)throw new RangeError("Value out of range");for(let o=t-1;o>=0;o--)n.push(e>>>o&1)}function Dn(e,t){return(e>>>t&1)!==0}var lo=class{constructor(t,n,o){if(this.mode=t,this.numChars=n,this.bitData=o,n<0)throw new RangeError("Invalid argument");this.bitData=o.slice()}getData(){return this.bitData.slice()}},nh=[1,10,12,14],rh=[2,9,11,13],oh=[4,8,16,16];function Bc(e,t){return e[Math.floor((t+7)/17)+1]}function Uc(e){let t=[];for(let n of e)Nn(n,8,t);return new lo(oh,e.length,t)}function ah(e){if(!Hc(e))throw new RangeError("String contains non-numeric characters");let t=[];for(let n=0;n<e.length;){let o=Math.min(e.length-n,3);Nn(Number.parseInt(e.substring(n,n+o),10),o*3+1,t),n+=o}return new lo(nh,e.length,t)}function ih(e){if(!qc(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");let t=[],n;for(n=0;n+2<=e.length;n+=2){let o=wi.indexOf(e.charAt(n))*45;o+=wi.indexOf(e.charAt(n+1)),Nn(o,11,t)}return n<e.length&&Nn(wi.indexOf(e.charAt(n)),6,t),new lo(rh,e.length,t)}function sh(e){return e===""?[]:Hc(e)?[ah(e)]:qc(e)?[ih(e)]:[Uc(ch(e))]}function Hc(e){return Zg.test(e)}function qc(e){return Qg.test(e)}function lh(e,t){let n=0;for(let o of e){let a=Bc(o.mode,t);if(o.numChars>=1<<a)return Number.POSITIVE_INFINITY;n+=4+a+o.bitData.length}return n}function ch(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)!=="%"?t.push(e.charCodeAt(n)):(t.push(Number.parseInt(e.substring(n+1,n+3),16)),n+=2);return t}function Si(e){if(e<Ci||e>Ti)throw new RangeError("Version number out of range");let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function na(e,t){return Math.floor(Si(e)/8)-Fc[t[0]][e]*$c[t[0]][e]}function dh(e){if(e<1||e>255)throw new RangeError("Degree out of range");let t=[];for(let o=0;o<e-1;o++)t.push(0);t.push(1);let n=1;for(let o=0;o<e;o++){for(let a=0;a<t.length;a++)t[a]=_i(t[a],n),a+1<t.length&&(t[a]^=t[a+1]);n=_i(n,2)}return t}function uh(e,t){let n=t.map(o=>0);for(let o of e){let a=o^n.shift();n.push(0),t.forEach((i,s)=>n[s]^=_i(i,a))}return n}function _i(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");let n=0;for(let o=7;o>=0;o--)n=n<<1^(n>>>7)*285,n^=(t>>>o&1)*e;return n}function ph(e,t,n=1,o=40,a=-1,i=!0){if(!(Ci<=n&&n<=o&&o<=Ti)||a<-1||a>7)throw new RangeError("Invalid value");let s,l;for(s=n;;s++){let u=na(s,t)*8,p=lh(e,s);if(p<=u){l=p;break}if(s>=o)throw new RangeError("Data too long")}for(let u of[Dc,Nc,Oc])i&&l<=na(s,u)*8&&(t=u);let c=[];for(let u of e){Nn(u.mode[0],4,c),Nn(u.numChars,Bc(u.mode,s),c);for(let p of u.getData())c.push(p)}let d=na(s,t)*8;Nn(0,Math.min(4,d-c.length),c),Nn(0,(8-c.length%8)%8,c);for(let u=236;c.length<d;u^=253)Nn(u,8,c);let m=Array.from({length:Math.ceil(c.length/8)},()=>0);return c.forEach((u,p)=>m[p>>>3]|=u<<7-(p&7)),new zi(s,t,m,a)}function Wc(e,t){let{ecc:n="L",boostEcc:o=!1,minVersion:a=1,maxVersion:i=40,maskPattern:s=-1,border:l=1}=t||{},c=typeof e=="string"?sh(e):Array.isArray(e)?[Uc(e)]:void 0;if(!c)throw new Error(`uqr only supports encoding string and binary data, but got: ${typeof e}`);let d=ph(c,Yg[n],a,i,s,o),m=fh({version:d.version,maskPattern:d.mask,size:d.size,data:d.modules,types:d.types},l);return t?.invert&&(m.data=m.data.map(u=>u.map(p=>!p))),t?.onEncoded?.(m),m}function fh(e,t=1){if(!t)return e;let{size:n}=e,o=n+t*2;e.size=o,e.data.forEach(i=>{for(let s=0;s<t;s++)i.unshift(!1),i.push(!1)});for(let i=0;i<t;i++)e.data.unshift(Array.from({length:o},s=>!1)),e.data.push(Array.from({length:o},s=>!1));let a=fr.Border;e.types.forEach(i=>{for(let s=0;s<t;s++)i.unshift(a),i.push(a)});for(let i=0;i<t;i++)e.types.unshift(Array.from({length:o},s=>a)),e.types.push(Array.from({length:o},s=>a));return e}function Se(e){return r("section",{class:`settings-panel fx-panel${e.danger?" fx-panel--danger":""}`,"aria-label":e.label,children:[r("div",{class:`settings-panel-head${e.actions?" settings-panel-head--actions":""}`,children:[e.icon&&r("span",{class:"settings-panel-icon",children:r(W,{name:e.icon,size:16})}),r("div",{children:[r("strong",{children:e.title}),e.desc&&r("p",{children:e.desc})]}),e.actions&&r("div",{class:"settings-panel-actions settings-panel-actions--wide",children:e.actions})]}),e.children]})}function Ue(e){return r("div",{class:`settings-control-row settings-setting-row fx-row fx-block${e.class?` ${e.class}`:""}`,children:[r("div",{class:"settings-control-copy",children:r("span",{children:[r("strong",{children:e.label}),e.desc&&r("small",{children:e.desc})]})}),e.children!==void 0&&e.children!==null&&r("div",{class:"settings-row-control fx-row-control",children:e.children})]})}function Me(e){return r("div",{class:`fx-sub${e.class?` ${e.class}`:""}`,children:e.children})}function jt(e){return r("button",{type:"button",role:"switch","aria-checked":e.checked,"aria-label":e.label,class:`settings-switch${e.checked?" active":""}`,disabled:e.disabled,onClick:()=>e.onChange(!e.checked),children:r("span",{})})}function J(e){let t=e.variant??"ghost",n=t==="danger-solid"?"btn sm danger fx-danger-solid":`btn sm ${t}`;return r("button",{type:e.submit?"submit":"button",class:n,disabled:e.disabled||e.pending,"aria-busy":e.pending||void 0,"aria-label":e.label,title:e.title,"data-armed":e.armed?"true":void 0,onClick:e.onClick,children:[e.pending&&r(Ir,{}),e.children]})}var ra=5e3;function Dt(e){let[t,n]=C(!1),o=ie(null),a=()=>{o.current&&clearTimeout(o.current),o.current=null,n(!1)};X(()=>()=>{o.current&&clearTimeout(o.current)},[]),X(()=>{(e.pending||e.disabled)&&a()},[e.pending,e.disabled]);let i=()=>{if(!t){n(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{o.current=null,n(!1)},ra);return}a(),e.onConfirm()},s=e.variant??"ghost";return r(J,{variant:t?s==="danger"||s==="danger-solid"?"danger-solid":"primary":s,armed:t,pending:e.pending,disabled:e.disabled,onClick:i,children:t?e.confirmLabel:e.label})}function ge(e){let t=rt(),{a:n}=e;return n.error?r("div",{class:"fx-msg is-error",role:"alert",children:[r("span",{children:pt(n.error,t)}),n.captcha&&r("button",{type:"button",class:"fx-link",onClick:()=>void ur(e.captchaSection??"security"),children:[t("common.openInBrowser")," ",r(W,{name:"external",size:12})]})]}):n.success?r("div",{class:"fx-msg is-ok",role:"status",children:pt(n.success,t)}):null}function de(e){return r("p",{class:`fx-note${e.tone?` is-${e.tone}`:""}`,children:e.children})}function mt(e){return r("div",{class:"settings-empty-row fx-block",children:e.children})}function co(e){let t=rt(),n=e.display;return r("div",{class:`fx-quota${n.low?" is-low":""}`,children:[r("div",{class:"fx-quota-top",children:[r("span",{class:"fx-quota-label",children:e.label}),r("span",{class:"fx-quota-value",children:n.unlimited?t("common.unlimited"):n.text})]}),r("div",{class:"fx-bar",role:"progressbar","aria-label":e.label,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n.pct,"aria-valuetext":n.unlimited?t("common.unlimited"):n.text,children:r("span",{style:{width:`${n.pct}%`}})}),e.note&&r("div",{class:"fx-quota-note",children:e.note})]})}function Nt(e){return r("div",{class:"seg fx-seg",role:"radiogroup","aria-label":e.label,children:e.options.map(t=>r("button",{type:"button",role:"radio","aria-checked":t.value===e.value,class:t.value===e.value?"active":"",onClick:()=>{t.value!==e.value&&e.onChange(t.value)},children:t.label}))})}async function oa(e){try{return await navigator.clipboard.writeText(e),!0}catch{try{let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let n=document.execCommand("copy");return t.remove(),n}catch{return!1}}}function Ot(e){let t=rt(),[n,o]=C("idle"),a=ie(null);X(()=>()=>{a.current&&clearTimeout(a.current)},[]);let i=async()=>{let s=await oa(e.text);o(s?"copied":"failed"),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>o("idle"),1800)};return r(J,{disabled:e.disabled||!e.text,onClick:()=>void i(),children:[r(W,{name:n==="copied"?"check":"copy",size:12}),n==="copied"?t("common.copied"):n==="failed"?t("common.copyFailed"):e.label]})}function mh(e){let t=Vt(()=>{try{return Wc(e.value,{ecc:"M",border:2})}catch{return null}},[e.value]);if(!t)return null;let n="";t.data.forEach((a,i)=>a.forEach((s,l)=>{s&&(n+=`M${l} ${i}h1v1h-1z`)}));let o=e.size??148;return r("svg",{class:"fx-qr",width:o,height:o,viewBox:`0 0 ${t.size} ${t.size}`,"shape-rendering":"crispEdges",role:"img","aria-label":e.label,children:[r("rect",{width:t.size,height:t.size,fill:"#fff"}),r("path",{d:n,fill:"#000"})]})}function Ai(e){let t=rt(),{device:n}=e;return r("div",{class:"fx-device",children:[r(mh,{value:n.url,label:t("signin.qrLabel")}),r("div",{class:"fx-device-copy",children:[r("p",{children:t("signin.deviceHint")}),n.userCode&&r("div",{class:"fx-device-code",children:[r("span",{children:t("signin.code")}),r("code",{children:n.userCode})]}),r("div",{class:"fx-inline",children:[r("button",{type:"button",class:"fx-link",onClick:()=>window.open(n.url,"_blank"),children:[t("signin.openLink")," ",r(W,{name:"external",size:12})]}),r(Ot,{text:n.url,label:t("signin.copyLink")})]})]})]})}function Je(){let e=rt(),t=me(),[n,o]=C(null);X(()=>oe().onAuthDevice?.(i=>o(i)),[]);let a=()=>void t.run(async()=>{let i=oe().forsionLogin;if(!i)return{error:{key:"err.unavailable"}};try{await i()}catch(s){o(null);let l=io(Tt(s));return l?{error:l}:void 0}});return r("section",{class:"settings-panel fx-panel fx-signin","aria-label":e("signin.button"),children:r("div",{class:"settings-state fx-signin-body",children:[r("span",{class:"settings-state-icon",children:r(W,{name:"user",size:18})}),r("p",{class:"fx-signin-lead",children:e("signin.desc")}),r("div",{class:"settings-state-actions",children:r(J,{variant:"primary",pending:t.pending,onClick:a,children:t.pending?e("signin.pending"):e("signin.button")})}),n&&r(Ai,{device:n}),r(ge,{a:t})]})})}function $e(e){let t=rt(),n=e.panels??2,o=e.rows??2;return r("div",{class:"fx-skeleton","aria-busy":"true","aria-label":t("common.loading"),children:Array.from({length:n},(a,i)=>r("section",{class:"settings-panel fx-panel",children:[r("div",{class:"settings-panel-head",children:[r("span",{class:"fx-skel fx-skel--icon"}),r("div",{children:[r("span",{class:"fx-skel fx-skel--title"}),r("span",{class:"fx-skel fx-skel--line"})]})]}),Array.from({length:o},(s,l)=>r("div",{class:"settings-control-row",children:r("span",{class:"fx-skel fx-skel--row"})},l))]},i))})}function Xe(e){let t=rt();return r("section",{class:"settings-panel fx-panel",children:r("div",{class:"settings-state fx-error-state",role:"alert",children:[r("span",{class:"settings-state-icon",children:r(W,{name:"alert",size:18})}),r("strong",{children:t("common.loadFailed")}),r("p",{children:pt(e.error,t)}),r("div",{class:"settings-state-actions",children:r(J,{variant:"primary",onClick:e.onRetry,children:[r(W,{name:"refresh",size:12})," ",t("common.retry")]})})]})})}function hh(e,t){for(var n in t)e[n]=t[n];return e}function Vc(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var o in t)if(o!=="__source"&&e[o]!==t[o])return!0;return!1}function jc(e,t){this.props=e,this.context=t}(jc.prototype=new cn).isPureReactComponent=!0,jc.prototype.shouldComponentUpdate=function(e,t){return Vc(this.props,e)||Vc(this.state,t)};var Gc=be.__b;be.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Gc&&Gc(e)};var Zx=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var vh=be.__e;be.__e=function(e,t,n,o){if(e.then){for(var a,i=t;i=i.__;)if((a=i.__c)&&a.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k||[]),a.__c(e,t)}vh(e,t,n,o)};var Jc=be.unmount;function ed(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(o){typeof o.__c=="function"&&o.__c()}),e.__c.__H=null),(e=hh({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(o){return ed(o,t,n)})),e}function td(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(o){return td(o,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Ei(){this.__u=0,this.o=null,this.__b=null}function nd(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function aa(){this.i=null,this.l=null}be.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Jc&&Jc(e)},(Ei.prototype=new cn).__c=function(e,t){var n=t.__c,o=this;o.o==null&&(o.o=[]),o.o.push(n);var a=nd(o.__v),i=!1,s=function(){i||o.__z||(i=!0,n.__R=null,a?a(c):c())};n.__R=s;var l=n.__P;n.__P=null;var c=function(){if(!--o.__u){if(o.state.__a){var d=o.state.__a;o.__v.__k[0]=td(d,d.__c.__P,d.__c.__O)}var m;for(o.setState({__a:o.__b=null});m=o.o.pop();)m.__P=l,m.forceUpdate()}};o.__u++||32&t.__u||o.setState({__a:o.__b=o.__v.__k[0]}),e.then(s,s)},Ei.prototype.componentWillUnmount=function(){this.o=[]},Ei.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=ed(this.__b,n,o.__O=o.__P)}this.__b=null}var a=t.__a&&cr(O,null,e.fallback);return a&&(a.__u&=-33),[cr(O,null,t.__a?null:e.children),a]};var Kc=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};function bh(e){return this.getChildContext=function(){return e.context},e.children}function yh(e){var t=this,n=e.h;if(t.componentWillUnmount=function(){Ee(null,t.v),t.v=null,t.h=null},t.h&&t.h!==n&&t.componentWillUnmount(),!t.v){for(var o=t.__v;o!==null&&!o.__m&&o.__!==null;)o=o.__;t.h=n,t.v={nodeType:1,parentNode:n,childNodes:[],__k:{__m:o.__m},contains:function(){return!0},namespaceURI:n.namespaceURI,insertBefore:function(a,i){this.childNodes.push(a),t.h.insertBefore(a,i)},removeChild:function(a){this.childNodes.splice(this.childNodes.indexOf(a)>>>1,1),t.h.removeChild(a)}}}Ee(cr(bh,{context:t.context},e.__v),t.v)}function ia(e,t){var n=cr(yh,{__v:e,h:t});return n.containerInfo=t,n}(aa.prototype=new cn).__a=function(e){var t=this,n=nd(t.__v),o=t.l.get(e);return o[0]++,function(a){var i=function(){t.props.revealOrder?(o.push(a),Kc(t,e,o)):a()};n?n(i):i()}},aa.prototype.render=function(e){this.i=null,this.l=new Map;var t=oo(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},aa.prototype.componentDidUpdate=aa.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){Kc(e,n,t)})};var xh=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,kh=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,wh=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,zh=/[A-Z0-9]/g,Sh=typeof document<"u",_h=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};cn.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(cn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Xc=be.event;be.event=function(e){return Xc&&(e=Xc(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var rd,Ch={configurable:!0,get:function(){return this.class}},Yc=be.vnode;be.vnode=function(e){typeof e.type=="string"&&(function(t){var n=t.props,o=t.type,a={},i=o.indexOf("-")==-1;for(var s in n){var l=n[s];if(!(s==="value"&&"defaultValue"in n&&l==null||Sh&&s==="children"&&o==="noscript"||s==="class"||s==="className")){var c=s.toLowerCase();s==="defaultValue"&&"value"in n&&n.value==null?s="value":s==="download"&&l===!0?l="":c==="translate"&&l==="no"?l=!1:c[0]==="o"&&c[1]==="n"?c==="ondoubleclick"?s="ondblclick":c!=="onchange"||o!=="input"&&o!=="textarea"||_h(n.type)?c==="onfocus"?s="onfocusin":c==="onblur"?s="onfocusout":wh.test(s)&&(s=c):c=s="oninput":i&&kh.test(s)?s=s.replace(zh,"-$&").toLowerCase():l===null&&(l=void 0),c==="oninput"&&a[s=c]&&(s="oninputCapture"),a[s]=l}}o=="select"&&(a.multiple&&Array.isArray(a.value)&&(a.value=oo(n.children).forEach(function(d){d.props.selected=a.value.indexOf(d.props.value)!=-1})),a.defaultValue!=null&&(a.value=oo(n.children).forEach(function(d){d.props.selected=a.multiple?a.defaultValue.indexOf(d.props.value)!=-1:a.defaultValue==d.props.value}))),n.class&&!n.className?(a.class=n.class,Object.defineProperty(a,"className",Ch)):n.className&&(a.class=a.className=n.className),t.props=a})(e),e.$$typeof=xh,Yc&&Yc(e)};var Zc=be.__r;be.__r=function(e){Zc&&Zc(e),rd=e.__c};var Qc=be.diffed;be.diffed=function(e){Qc&&Qc(e);var t=e.props,n=e.__e;n!=null&&e.type==="textarea"&&"value"in t&&t.value!==n.value&&(n.value=t.value==null?"":t.value),rd=null};function od(e){return/^[a-z0-9](?:[a-z0-9-]{1,28})?[a-z0-9]$/.test(e)&&e.length>=3}var Pi=e=>e.trim().toLowerCase();function Mi(e,t=Date.now()){return e.cooldownUntil&&Date.parse(e.cooldownUntil)>t?{kind:"cooldown",until:e.cooldownUntil}:e.freeRenamesLeft>0?{kind:"free",left:e.freeRenamesLeft}:e.cards>0?{kind:"card",cards:e.cards}:e.card?.available&&e.card.productId?{kind:"buy",productId:e.card.productId,price:e.card.pricePoints}:{kind:"unavailable"}}function Ri(e,t){let n=(t||"").replace(/\/+$/,"");return n?`${n}/${encodeURIComponent(e)}`:null}function ad(e){if(typeof e!="string"||!/^https?:\/\//i.test(e))return null;try{return new URL(e).origin}catch{return null}}var sa=e=>e.replace(/^https?:\/\//i,"");function id(e){let t=(e||"").replace(/\/+$/,"");return t?`${sa(t)}/`:"@"}var Ii=!1;function ld(){Ii=!0}function Th(){let e=Ii;return Ii=!1,e}function cd(){let{t:e}=le(),t=Oe(),[n,o]=C(null),[a,i]=C(!1),[s,l]=C(null);if(X(()=>{(async()=>{let d=await Z("/connect/handle");if(!t.current||!d.ok||!d.data?.handle)return;let m=d.data.publicOrigin||null;if(d.data.publicOrigin===void 0){let u=await Z("/profile/me");if(!t.current)return;m=u.ok?ad(u.data?.profile?.profileUrl):null}o({handle:d.data.handle,pub:m}),Th()&&i(!0)})()},[]),!n)return null;let c=Ri(n.handle,n.pub);return r(O,{children:[r(Ue,{class:"fx-row--wide",label:e("address.label"),desc:s?r("span",{class:"fx-addr-done",role:"status",children:s}):void 0,children:[r("span",{class:"fx-value fx-addr-value",children:c?sa(c):`@${n.handle}`}),r(J,{onClick:()=>{l(null),i(!0)},children:[r(W,{name:"pencil",size:12})," ",e("address.change")]})]}),a&&r(Ah,{pub:n.pub,onClose:()=>i(!1),onChanged:d=>{let m=d.publicOrigin||n.pub;o(p=>p&&{...p,handle:d.handle,pub:m});let u=Ri(d.handle,m);l(e("address.done",{url:u?sa(u):`@${d.handle}`}))}})]})}var sd={INSUFFICIENT_POINTS:"address.errPoints",NOT_AVAILABLE:"address.errSoldout",LIMIT_REACHED:"address.errLimit"};function Ah(e){let{t,locale:n}=le(),o=Oe(),[a,i]=C(null),[s,l]=C(null),[c,d]=C(""),[m,u]=C({handle:"",state:"idle"}),[p,g]=C(!1),[f,h]=C(null),[k,x]=C(0),S=ie(0),w=async()=>{let $=await Z("/connect/handle");return o.current&&$.ok&&$.data?.handle?(i($.data),x(0),$.data):null};X(()=>{w().then(te=>{!te&&o.current&&i(ce=>ce??"failed")}),Z("/credits/balance").then(te=>{o.current&&te.ok&&l(Number(te.data?.balance)||0)});let $=te=>{te.key==="Escape"&&e.onClose()};return window.addEventListener("keydown",$),()=>window.removeEventListener("keydown",$)},[]);let T=a&&a!=="failed"?a.handle:"";X(()=>{let $=Pi(c),te=++S.current,ce=pe=>u({handle:$,state:pe});if(!$){ce("idle");return}if(!od($)){ce("bad");return}if($===T){ce("same");return}ce("checking");let We=setTimeout(()=>{Z(`/connect/handle/check?handle=${encodeURIComponent($)}`).then(pe=>{te!==S.current||!o.current||ce(pe.ok?pe.data?.ok?"ok":pe.data?.code==="same"?"same":"bad":"idle")})},300);return()=>clearTimeout(We)},[c,T]);let R=r("div",{class:"fx-addr-head",children:[r(W,{name:"home",size:16}),r("strong",{children:t("address.title")}),r("button",{type:"button",class:"fx-addr-close","aria-label":t("common.cancel"),title:t("common.cancel"),onClick:e.onClose,children:r(W,{name:"x",size:15})})]}),B=$=>ia(r("div",{class:"fx-addr-backdrop",onClick:te=>{te.target===te.currentTarget&&e.onClose()},children:[r("style",{children:kc}),r("section",{class:"fx-addr",role:"dialog","aria-modal":"true","aria-label":t("address.title"),children:[R,$]})]}),document.body);if(a===null||a==="failed")return B(r("p",{class:"fx-addr-desc",children:t(a===null?"common.loading":"address.loadFailed")}));let U=Mi(a),N=U.kind==="buy"&&k>0?{kind:"card",cards:k}:U,G=Pi(c),z=m.handle===G?m.state:G?"checking":"idle",P=z==="ok",F=id(a.publicOrigin||e.pub||null),L=N.kind==="buy"&&s!==null&&s<N.price,ae=N.kind==="cooldown"||N.kind==="unavailable",b=N.kind==="card"?t("address.goCard"):N.kind==="buy"?t("address.goBuy",{price:Le(N.price,n)}):t("address.go"),_=N.kind==="cooldown"?["clock",t("address.cooldown",{days:a.cooldownDays}),t("address.cooldownUntil",{date:It(N.until,n)})]:N.kind==="free"?["info",N.left>1?t("address.freeN",{n:N.left}):t("address.freeOne"),t("address.freeAfter")]:N.kind==="card"?["ticket",t("address.card"),t("address.cardHave",{n:N.cards})]:N.kind==="buy"?["ticket",t("address.need"),t("address.price",{price:Le(N.price,n),balance:s===null?"\u2014":Le(s,n)})]:["ticket",t("address.need"),t("address.soldout")],I=($,te)=>{let ce=te?Mi(te):null;switch($.code){case"taken":return{key:"address.errTaken"};case"need_card":return{key:"address.errNeedCard"};case"cooldown":return{key:"address.errCooldown",vars:{date:ce?.kind==="cooldown"?It(ce.until,n):"\u2014"}};case"invalid":case"reserved":case"same":return{key:"address.bad"};default:return ft($)}},H=async()=>{let $=G;if(!P)return;g(!0),h(null);let te=!1;try{if(N.kind==="buy"){if(!o.current)return;let Be=await Z("/shop/purchase",{method:"POST",body:{productId:N.productId,payMethod:"points"}});if(!o.current)return;if(!Be.ok){h(Be.code&&sd[Be.code]?{key:sd[Be.code]}:ft(Be));return}te=!0,x(ht=>ht+1)}if(!o.current)return;let ce=await Z("/connect/handle",{method:"PUT",body:{handle:$}});if(!o.current)return;if(ce.ok&&ce.data?.handle){e.onChanged(ce.data),e.onClose();return}let We=await w();if(!o.current)return;if(We&&We.handle===$){e.onChanged(We),e.onClose();return}if(ce.ok){h({key:"err.generic"});return}(ce.code==="taken"||ce.code==="invalid"||ce.code==="reserved")&&u({handle:$,state:"bad"});let pe=!We&&ce.status===0?{key:"address.errUnknown"}:I(ce,We);h(te?{key:"address.errBought",vars:{reason:pt(pe,t)}}:pe)}finally{o.current&&g(!1)}},Q=z==="checking"?r("span",{class:"fx-addr-check",children:t("address.checking")}):z==="ok"?r("span",{class:"fx-addr-check is-ok",children:[r(W,{name:"check",size:13}),t("address.ok")]}):z==="same"?r("span",{class:"fx-addr-check",children:t("address.same")}):z==="bad"?r("span",{class:"fx-addr-check is-bad",children:t("address.bad")}):null;return B(r(O,{children:[r("p",{class:"fx-addr-desc",children:t("address.desc")}),r("div",{class:"fx-addr-row",children:[r("label",{children:t("address.now")}),r("span",{class:"fx-addr-now",children:[F,r("b",{children:a.handle})]})]}),r("div",{class:"fx-addr-row",children:[r("label",{for:"fx-addr-input",children:t("address.new")}),r("span",{class:"fx-addr-in",children:[r("i",{children:F}),r("input",{id:"fx-addr-input",type:"text",autoFocus:!0,autoComplete:"off",spellcheck:!1,maxLength:30,value:c,placeholder:a.handle,disabled:N.kind==="cooldown"||p,onInput:$=>{d($.target.value),h(null)},onKeyDown:$=>{$.key==="Enter"&&P&&!ae&&!L&&!p&&H()}})]})]}),r("div",{class:"fx-addr-row fx-addr-under",children:[r("label",{}),r("div",{children:[Q,r("span",{class:"fx-addr-rule",children:t("address.rule")})]})]}),r("div",{class:"fx-addr-cost",children:[r(W,{name:_[0],size:15}),r("span",{children:_[1]}),r("span",{class:"fx-addr-grow"}),r("em",{children:_[2]})]}),L&&r("div",{class:"fx-addr-msg",role:"alert",children:t("address.errPoints")}),f&&r("div",{class:"fx-addr-msg",role:"alert",children:pt(f,t)}),r("div",{class:"fx-addr-foot",children:[r(J,{disabled:p,onClick:e.onClose,children:t("common.cancel")}),r("span",{class:"fx-addr-grow"}),(N.kind==="buy"||N.kind==="unavailable")&&r(J,{onClick:()=>void wn("storefront"),children:t("address.shop")}),r(J,{variant:"primary",pending:p,disabled:ae||L||!P,onClick:()=>void H(),children:b})]})]}))}function ud(){let{t:e}=le(),t=Ge(()=>Z("/auth/me"));if(t.state==="loading")return r($e,{panels:2});if(t.state==="signedOut")return r(Je,{});if(t.state==="error")return r(Xe,{error:t.error,onRetry:t.retry});let n=t.data;return r(O,{children:[r(Se,{icon:"user",title:e("account.details.title"),desc:e("account.details.desc"),children:[r(Ue,{label:e("account.details.username"),children:[r("span",{class:"fx-value",children:n.username}),n.role==="ADMIN"&&r("span",{class:"fx-tag",children:e("account.role.admin")})]}),r(cd,{}),r(dd,{kind:"phone",value:n.phone}),r(dd,{kind:"email",value:n.email})]}),r(Eh,{}),r(Mh,{})]})}function dd(e){let{t,goTo:n}=le(),o=!!e.value,a=o?e.kind==="phone"?Qo(e.value):ea(e.value):t("account.contact.unbound"),i=e.kind==="phone"?t("account.contact.phone"):t("account.contact.email");return r(Ue,{label:i,children:n?r("button",{type:"button",class:`fx-link-row${o?"":" is-empty"}`,onClick:()=>n("security"),title:t("account.contact.manage"),children:[r("span",{children:a}),r(W,{name:"chevron",size:12})]}):r("span",{class:`fx-value${o?"":" is-empty"}`,children:a})})}function Eh(){let{t:e}=le(),t=Oe(),[n,o]=C(null),[a,i]=C(!1),[s,l]=C(null),[c,d]=C(null),m=me(),u=me(),p=me(),g=!Mn(oe()),f=g&&!!oe().authAccounts;X(()=>{let w=0,T=()=>{let U=oe().authAccounts;if(!f||!U)return;let N=++w;i(!1),U().then(G=>{N===w&&o(Array.isArray(G)?G:[])}).catch(()=>{N===w&&i(!0)})};T();let R=oe().onAuthChanged?.(T),B=oe().onAuthDevice?.(U=>d(U));return()=>{w++,R?.(),B?.()}},[]);let h=w=>{l(w),m.run(async()=>{let T=oe().forsionSwitchAccount;if(!T)return{error:{key:"err.unavailable"}};try{await T(w)}catch(R){let B=io(Tt(R));return B?{error:B}:void 0}finally{t.current&&l(null)}})},k=()=>void u.run(async()=>{let w=oe().forsionLogin;if(!w)return{error:{key:"err.unavailable"}};d(null);try{await w()}catch(T){t.current&&d(null);let R=io(Tt(T));return R?{error:R}:void 0}}),x=()=>void p.run(async()=>{let w=oe().forsionLogout;if(!w)return{error:{key:"err.unavailable"}};try{await w()}catch(T){return{error:{raw:Tt(T)||e("err.generic")}}}}),S=m.pending||u.pending||p.pending;return r(Se,{icon:g?"laptop":"user",title:e(g?"local.title":"session.title"),desc:e(g?"local.desc":"session.desc"),children:[f&&n===null&&!a&&r(mt,{children:[r(Ir,{})," ",e("common.loading")]}),a&&r("div",{class:"fx-sub",children:r(de,{tone:"warn",children:e("local.loadFailed")})}),n&&n.length===0&&r(mt,{children:e("local.empty")}),n&&n.length>0&&r("div",{class:"fx-list fx-block",role:"list",children:n.map(w=>r("div",{class:"fx-list-row",role:"listitem",children:[r("span",{class:"fx-list-icon",children:r(W,{name:"user",size:14})}),r("span",{class:"fx-list-main",children:[r("strong",{children:w.nickname||w.username||"Forsion"}),r("small",{children:[w.username&&w.nickname?w.username:null,Ph(w.cloudUrl)].filter(Boolean).join(" \xB7 ")})]}),w.active?r("span",{class:"fx-tag fx-tag--accent",children:[r(W,{name:"check",size:11})," ",e("local.current")]}):r(J,{pending:s===w.id,disabled:S&&s!==w.id,onClick:()=>h(w.id),children:e("local.switch")})]},w.id))}),u.pending&&c&&r("div",{class:"fx-sub",children:r(Ai,{device:c})}),r("div",{class:"settings-panel-footer fx-footer",children:[r(J,{pending:u.pending,disabled:S&&!u.pending,onClick:k,children:[r(W,{name:"plus",size:12})," ",u.pending?e("signin.pending"):e("local.add")]}),r(J,{pending:p.pending,disabled:S&&!p.pending,onClick:x,children:[r(W,{name:"logout",size:12})," ",e("local.signOut")]})]}),(m.error||u.error||p.error)&&r("div",{class:"fx-sub fx-sub--tight",children:[r(ge,{a:m}),r(ge,{a:u}),r(ge,{a:p})]})]})}function Ph(e){try{return new URL(e).host}catch{return e}}function Mh(){let{t:e}=le(),t=me();return r("div",{class:"fx-page-foot",children:[r("button",{type:"button",class:"fx-link",disabled:t.pending,onClick:()=>void t.run(async()=>await ur()?void 0:{error:{key:"err.openFailed"}}),children:[e("account.web.open")," ",r(W,{name:"external",size:12})]}),r("span",{class:"fx-muted",children:e("account.web.desc")}),r(ge,{a:t})]})}var Rh=e=>!!e&&typeof e=="object"&&typeof e.enabled=="boolean";async function la(e,t,n=Rh){let o=oe().cloudInvoke;if(!o)throw new Error("no_bridge");let a=await o(e,t);if(!n(a))throw new Error(String(a?.error??"unavailable"));return a}var Ih="https://forsion.net/legal/privacy";function pd(){let{t:e,locale:t}=le(),n=Oe(),[o,a]=C(null),[i,s]=C(!1),[l,c]=C(null),d=me(),m=me(),u=me();if(X(()=>{let x=0,S=()=>{let T=++x;la("telemetry:get").then(R=>{n.current&&T===x&&(a(R),s(!0))},()=>{n.current&&T===x&&s(!0)})};S();let w=oe().onAuthChanged?.(()=>S());return()=>{x++,w?.()}},[]),!i)return r($e,{panels:1});if(!o)return r(mt,{children:e("privacy.unavailable")});let{signedIn:p}=o,g=o.enabled&&o.noticeSeen&&p,f=x=>void d.run(async()=>{try{let S=await la("telemetry:set",x?{enabled:!0,noticeSeen:!0}:{enabled:!1});n.current&&(a(S),x||c(null))}catch(S){return{error:{raw:Tt(S)||e("err.generic")}}}}),h=()=>void m.run(async()=>{try{let x=await la("telemetry:sent",void 0,S=>Array.isArray(S?.batches));n.current&&c(x.batches)}catch(x){return{error:{raw:Tt(x)||e("err.generic")}}}}),k=()=>void u.run(async()=>{try{let x=await la("telemetry:delete");return n.current&&(a(x),c(null)),{success:{key:"privacy.delete.done"}}}catch(x){return{error:{key:"privacy.delete.failed",vars:{reason:Tt(x)||e("err.generic")}}}}});return r(Se,{icon:"shield",title:e("privacy.improve.title"),desc:e("privacy.improve.desc"),children:[r(Ue,{label:e("privacy.improve.switch"),desc:e("privacy.improve.switchHint"),children:r(jt,{checked:g,disabled:d.pending||!o.available||!p,label:e("privacy.improve.switch"),onChange:f})}),(!o.available||!p||!o.packaged||d.error)&&r(Me,{children:[o.available?p?!o.packaged&&r(de,{children:e("privacy.devBuild")}):r(de,{children:e("privacy.signInFirst")}):r(de,{children:e("privacy.needUpdate")}),r(ge,{a:d})]}),r("div",{class:"settings-control-row fx-row fx-block",children:r("button",{type:"button",class:"fx-link",onClick:()=>{try{oe().openExternal?.(Ih)?.catch(()=>{})}catch{}},children:[e("privacy.policyLink"),r(W,{name:"chevron",size:12})]})}),r(Ue,{label:e("privacy.sent.title"),desc:o.lastSentAt?e("privacy.sent.last",{time:Lt(o.lastSentAt,t)}):e("privacy.sent.hint"),children:r(J,{pending:m.pending,onClick:h,children:[r(W,{name:"eye",size:12})," ",e("privacy.sent.view")]})}),(l||m.error)&&r(Me,{children:[r(ge,{a:m}),l&&(l.length?r("pre",{class:"fx-sent",children:JSON.stringify(l.map(x=>({at:new Date(x.at).toISOString(),...x.body})),null,2)}):r(de,{children:e("privacy.sent.empty")}))]}),r(Ue,{label:e("privacy.delete.title"),desc:e("privacy.delete.hint"),children:r(Dt,{label:e("privacy.delete.button"),confirmLabel:e("privacy.delete.confirm"),variant:"danger",pending:u.pending,onConfirm:k})}),(u.error||u.success)&&r(Me,{children:r(ge,{a:u})}),r(Me,{class:"fx-sub--tight",children:r("span",{class:"fx-muted",children:e("privacy.installId",{id:`${o.installId.slice(0,6)}\u2026${o.installId.slice(-4)}`})})})]})}var mr=class extends Error{};async function fd(e,t=256){if(e.size>20971520)throw new mr;let n=URL.createObjectURL(e);try{let o=new Image;await new Promise((m,u)=>{o.onload=()=>m(),o.onerror=()=>u(new Error("image decode failed")),o.src=n});let a=o.naturalWidth,i=o.naturalHeight;if(!a||!i)throw new Error("empty image");if(a*i>5e7)throw new mr;let s=Math.min(1,t/Math.max(a,i)),l=document.createElement("canvas");l.width=Math.max(1,Math.round(a*s)),l.height=Math.max(1,Math.round(i*s));let c=l.getContext("2d");if(!c)throw new Error("canvas unavailable");c.fillStyle="#fff",c.fillRect(0,0,l.width,l.height),c.drawImage(o,0,0,l.width,l.height);let d=l.toDataURL("image/jpeg",.85);if(d.length>262144)throw new mr;return d}finally{URL.revokeObjectURL(n)}}function md(e){let t=String(e||"").trim();if(!t)return"?";let n=Array.from(t)[0];return/[㐀-鿿]/.test(n)?n:Array.from(t).slice(0,2).join("").toUpperCase()}var gd=["cream","coral","teal","lavender"],hd=["auto","light","dark"],vd=["none","mist","contour","dots"],bd=["none","ring","pro"],yd=["early","streak","author","inviter","event"];var Li=e=>!!e&&e.toLowerCase()!=="free";function Di(e,t){let n={...e.settings,...t};return{...e,settings:n,bio:n.bio,links:n.links,skin:n.skin,mode:n.mode,cover:n.cover,frame:n.frame==="pro"&&!Li(e.tier)?"none":n.frame,modules:n.modules.filter(o=>o.show).map(o=>({id:o.id}))}}function Ni(e,t,n){let o=e.findIndex(s=>s.id===t),a=o+n;if(o<0||a<0||a>=e.length)return e;let i=e.slice();return[i[o],i[a]]=[i[a],i[o]],i}function xd(e){let t=e.trim();if(!t)return null;let n=/^[a-z][a-z0-9+.-]*:/i.test(t)?t:`https://${t}`,o;try{o=new URL(n)}catch{return null}if(o.protocol!=="http:"&&o.protocol!=="https:"||!o.hostname.includes("."))return null;let a=o.toString();return a.length<=200?a:null}function Oi(e){return e.replace(/^https?:\/\//i,"").replace(/^www\./i,"").replace(/\/$/,"")}function kd(e,t){let n=t==="zh"?[[1e8,"\u4EBF"],[1e4,"\u4E07"]]:[[1e9,"B"],[1e6,"M"],[1e3,"K"]];for(let[o,a]of n)if(e>=o){let i=e/o;return{value:i>=100?String(Math.round(i)):String(Math.round(i*10)/10),unit:a}}return{value:Math.round(e).toLocaleString("en-US"),unit:""}}var wd=e=>e==="zh"?"zh-CN":"en-US";function zd(e,t){let[n,o]=e.split("-").map(Number);if(!n||!o)return[];let a=new Intl.DateTimeFormat(wd(t),{month:"short",timeZone:"UTC"});return Array.from({length:12},(i,s)=>a.format(new Date(Date.UTC(n,o-12+s,1))))}function Sd(e,t){let[n,o]=e.split("-").map(Number);return!n||!o?"":new Intl.DateTimeFormat(wd(t),{year:"numeric",month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(n,o-1,1)))}function _d([e,t]){let n=o=>`${String((o%24+24)%24).padStart(2,"0")}:00`;return`${n(e)} \u2013 ${n(t)}`}function Cd(e){let t=0,n=Promise.resolve(),o=()=>{let a=t;return e.read().then(i=>{a===t&&e.apply(i)})};return{read:o,write(a){let i=++t,s=n.then(a).then(l=>{i===t&&e.apply(l)});return n=s.catch(()=>i===t?o().catch(()=>{}):void 0),s}}}var Pd={skill:{key:"profile.work.skill",icon:"sparkles"},agent:{key:"profile.work.agent",icon:"bot"},plugin:{key:"profile.work.plugin",icon:"box"},space:{key:"profile.work.space",icon:"grid"},theme:{key:"profile.work.theme",icon:"palette"},"amadeus-plugin":{key:"profile.work.note",icon:"note"},webapp:{key:"profile.work.webapp",icon:"globe"}},Ad={early:"sprout",streak:"flame",author:"box",inviter:"gift",event:"trophy"},Ed={plus:"Plus",pro:"Pro"},da=e=>!!e&&/^https?:\/\//i.test(e);function $i(e){if(!da(e))return;let t=oe().openExternal;t?t(e).catch(()=>{}):window.open(e,"_blank","noopener")}async function Nh(e,t,n){let o=await Z(e,{method:t,body:n});if(!o.ok)throw o;if(!o.data?.profile)throw{ok:!1,status:o.status,code:null,detail:null,transport:"bad_response"};return o.data.profile}var Md=e=>e&&typeof e=="object"&&e.ok===!1?ft(e):{raw:String(e?.message||e)};function Rd(){let{t:e}=le(),t=Ge(async()=>{let[o,a]=await Promise.all([Z("/profile/me"),Z("/auth/me")]);return a.ok?o.ok?o.data?.profile?{ok:!0,status:o.status,data:{profile:o.data.profile,me:a.data}}:{ok:!0,status:404,data:null}:o.status===404?{ok:!0,status:404,data:null}:o:a});if(t.state==="loading")return r($e,{panels:2,rows:3});if(t.state==="signedOut")return r(Je,{});if(t.state==="error")return r(Xe,{error:t.error,onRetry:t.retry});if(!t.data)return r(Se,{icon:"user",title:e("page.profile"),children:r(mt,{children:e("profile.unsupported")})});let{update:n}=t;return r(Oh,{data:t.data,update:o=>n(a=>a&&o(a))})}function Oh(e){let{t}=le(),n=Oe(),{profile:o,me:a}=e.data,[i,s]=C(null),[l,c]=C(null),[d,m]=C(!1),u=ie(e.update);u.current=e.update;let p=(z,P,F)=>n.current?Nh(z,P,F):Promise.reject(new Error("unmounted")),g=Vt(()=>Cd({apply:z=>u.current(P=>({...P,profile:z})),read:()=>p("/profile/me")}),[]),f=o.handle||a.username||o.username,h={...o,username:f,nickname:a.nickname||null},k=o.settings.isPublic,x=da(o.profileUrl)?o.profileUrl:null,S=z=>{n.current&&c({tone:"error",m:Md(z)})},w=z=>{c(null),e.update(P=>({...P,profile:Di(P.profile,z)})),g.write(()=>p("/profile/me","PUT",z)).catch(S)},T=async z=>{e.update(P=>({...P,profile:Di(P.profile,{modules:P.profile.settings.modules.map(F=>({...F,public:z.find(L=>L.id===F.id)?.public??F.public}))})})),await g.write(()=>p("/profile/me/visibility","POST",{public:!0,modules:z})),n.current&&(s(null),c({tone:"ok",m:{key:"profile.nowPublic"}}))},R=async()=>{m(!0),c(null);try{await g.write(()=>p("/profile/me/visibility","POST",{public:!1})),n.current&&c({tone:"ok",m:{key:"profile.nowPrivate"}})}catch(z){S(z)}finally{n.current&&m(!1)}},B=ie(Promise.resolve()),U=(z,P)=>{let F=B.current.then(async()=>{if(!n.current)return;let L=await Z("/settings",{method:"PUT",body:z});if(n.current){if(!L.ok)return c({tone:"error",m:ft(L)});u.current(ae=>({...ae,me:{...ae.me,...z}})),c({tone:"ok",m:{key:P}})}});return B.current=F,F},N=async z=>{c(null);let P;try{P=await fd(z)}catch(F){return c({tone:"error",m:{key:F instanceof mr?"err.avatarTooLarge":"err.avatarInvalid"}})}await U({avatar:P},"account.avatar.saved")},G=z=>{c(null),s(P=>P===z?null:z)};return r("div",{class:"fx-pf-page",children:[r(Se,{icon:k?"globe":"lock",title:t(k?"profile.state.public":"profile.state.private"),desc:t(k?"profile.state.publicDesc":"profile.state.privateDesc"),actions:r(O,{children:[r(J,{onClick:()=>G("deco"),children:[r(W,{name:"palette",size:12})," ",t("profile.decorate")]}),k?r(J,{pending:d,onClick:()=>void R(),children:[r(W,{name:"lock",size:12})," ",t("profile.makePrivate")]}):r(J,{variant:"primary",onClick:()=>G("publish"),children:[r(W,{name:"globe",size:12})," ",t("profile.publish")]})]}),children:[k&&x&&r(Ue,{label:t("profile.address"),desc:x.replace(/^https?:\/\//i,""),children:[r(Ot,{text:x,label:t("profile.copyLink")}),r(J,{onClick:()=>$i(x),children:[r(W,{name:"external",size:12})," ",t("profile.openPublic")]})]}),i==="publish"&&!k&&r(Fh,{profile:o,url:x,submit:T,onClose:()=>s(null)}),l&&r(Me,{class:"fx-sub--tight",children:r("div",{class:`fx-msg ${l.tone==="ok"?"is-ok":"is-error"}`,role:l.tone==="ok"?"status":"alert",children:pt(l.m,t)})})]}),r("div",{class:"fx-pf-home","data-deco":i==="deco"?"":void 0,children:[r("div",{class:"fx-pf-root",children:r(Hh,{view:h,avatar:a.avatar||null,pinned:o.settings.pinned,owner:{onAvatar:z=>void N(z),onNickname:z=>{c(null),U({nickname:z},"account.nickname.saved")},onBio:z=>w({bio:z}),onLinks:z=>w({links:z}),onPinned:z=>w({pinned:z}),onInvalidLink:()=>c({tone:"error",m:{key:"profile.linkInvalid"}})}})}),i==="deco"&&r($h,{profile:o,onChange:w,onClose:()=>s(null)})]})]})}function Fh(e){let{t}=le(),n=Oe(),{profile:o}=e,[a,i]=C({}),s=o.settings.modules.filter(g=>g.show).map(g=>({...g,public:a[g.id]??g.public})),[l,c]=C(!1),[d,m]=C(null),u=o.canPublish?null:o.publishBlockedReason||"publish_blocked";if(u)return r(Me,{children:[r(de,{children:t(u==="machine_username"?"profile.blocked.machineUsername":"profile.blocked.publishBlocked")}),r("div",{class:"fx-inline fx-pf-foot",children:[u==="machine_username"&&r(J,{variant:"primary",onClick:()=>void ur("profile"),children:[t("profile.goRename")," ",r(W,{name:"external",size:12})]}),r(J,{onClick:e.onClose,children:t("common.cancel")})]})]});let p=async()=>{c(!0),m(null);try{await e.submit(s.map(({id:g,public:f})=>({id:g,public:f})))}catch(g){if(!n.current)return;m(Md(g)),c(!1)}};return r(Me,{children:[e.url&&r("div",{class:"fx-pf-url",children:[r(W,{name:"globe",size:14}),r("span",{children:e.url.replace(/^https?:\/\//i,"")})]}),r(de,{children:t("profile.publishDesc")}),r("div",{class:"fx-pf-checks",children:s.map(g=>r("div",{class:"fx-pf-check",children:[r("div",{children:[t(`profile.mod.${g.id}`),r("small",{children:t(`profile.modDesc.${g.id}`)})]}),r(jt,{checked:g.public,disabled:l,label:`${t(`profile.mod.${g.id}`)} \xB7 ${t("profile.col.public")}`,onChange:f=>i(h=>({...h,[g.id]:f}))})]},g.id))}),r(de,{children:t("profile.publishNever")}),d&&r("div",{class:"fx-msg is-error",role:"alert",children:pt(d,t)}),r("div",{class:"fx-inline fx-pf-foot",children:[r(J,{variant:"primary",pending:l,onClick:()=>void p(),children:t("profile.publishConfirm")}),r(J,{disabled:l,onClick:e.onClose,children:t("common.cancel")})]})]})}function $h(e){let{t}=le(),n=e.profile.settings,o=Li(e.profile.tier),a=(s,l)=>e.onChange({modules:n.modules.map(c=>c.id===s?{...c,...l}:c)}),i=s=>r("span",{class:"fx-pf-thumb",children:s});return r("aside",{class:"fx-pf-deco","aria-label":t("profile.decorate"),children:r(Se,{icon:"palette",title:t("profile.decorate"),actions:r(J,{onClick:e.onClose,children:t("common.done")}),children:r("div",{class:"fx-pf-deco-body",children:[r("h4",{children:t("profile.deco.cover")}),r("div",{class:"fx-pf-opts",children:vd.map(s=>r("button",{type:"button",class:"fx-pf-opt","aria-pressed":n.cover===s,onClick:()=>e.onChange({cover:s}),children:[i(r("span",{class:`fx-pf-cv-thumb fx-pf-cv-${s}`})),t(`profile.cover.${s}`)]},s))}),r("h4",{children:t("profile.deco.frame")}),r("div",{class:"fx-pf-opts",children:bd.map(s=>r("button",{type:"button",class:"fx-pf-opt","aria-pressed":n.frame===s,disabled:s==="pro"&&!o,title:s==="pro"&&!o?t("profile.frameProHint"):void 0,onClick:()=>e.onChange({frame:s}),children:[i(r("span",{class:`fx-pf-fr-demo fx-pf-fr-${s}`,children:r("span",{class:"fx-pf-av"})})),t(`profile.frame.${s}`)]},s))}),!o&&r(de,{children:t("profile.frameProHint")}),r("h4",{children:t("profile.deco.modules")}),r("div",{class:"fx-pf-mod-head","aria-hidden":"true",children:[r("span",{children:t("profile.col.show")}),r("span",{children:t("profile.col.public")})]}),n.modules.map((s,l)=>r("div",{class:"fx-pf-mod",children:[r("span",{children:t(`profile.mod.${s.id}`)}),r("button",{type:"button",class:"fx-icon-btn",disabled:l===0,title:t("profile.moveUp"),"aria-label":`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.moveUp")}`,onClick:()=>e.onChange({modules:Ni(n.modules,s.id,-1)}),children:r(W,{name:"up",size:13})}),r("button",{type:"button",class:"fx-icon-btn",disabled:l===n.modules.length-1,title:t("profile.moveDown"),"aria-label":`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.moveDown")}`,onClick:()=>e.onChange({modules:Ni(n.modules,s.id,1)}),children:r(W,{name:"down",size:13})}),r(jt,{checked:s.show,label:`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.col.show")}`,onChange:c=>a(s.id,{show:c})}),r(jt,{checked:s.show&&s.public,disabled:!s.show,label:`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.col.public")}`,onChange:c=>a(s.id,{public:c})})]},s.id)),r(de,{children:t("profile.modulesHint")}),r("h4",{children:t("profile.deco.skin")}),r("div",{class:"fx-pf-opts",children:gd.map(s=>r("button",{type:"button",class:"fx-pf-opt","aria-pressed":n.skin===s,onClick:()=>e.onChange({skin:s}),children:[i(r("span",{class:"fx-pf-swatch","data-skin":s})),t(`profile.skin.${s}`)]},s))}),r("h4",{children:t("profile.deco.mode")}),r(Nt,{value:n.mode,label:t("profile.deco.mode"),onChange:s=>e.onChange({mode:s}),options:hd.map(s=>({value:s,label:t(`profile.mode.${s}`)}))}),r(de,{children:t("profile.deco.publicHint")})]})})})}function Fi(e){let[t,n]=C(null),o=ie(!1),a=ie(null),i=t!==null;Kn(()=>{i&&a.current?.focus()},[i]);let s=e.class?` ${e.class}`:"";if(t===null)return r("button",{type:"button",class:`fx-pf-ed${s}${e.value?"":" is-empty"}`,title:e.label,"aria-label":e.label,onClick:()=>{o.current=!1,n(e.value)},children:[r("span",{children:e.value||e.placeholder}),r(W,{name:e.value?"pencil":"plus",size:12})]});let l=()=>{let c=t.trim();n(null),!o.current&&c!==e.value&&e.onSave(c)};return r("span",{class:`fx-pf-ed-on${s}`,children:[r("input",{ref:a,class:"fx-input",type:"text",value:t,maxLength:e.maxLength,placeholder:e.placeholder,"aria-label":e.label,onInput:c=>n(c.currentTarget.value),onBlur:l,onKeyDown:c=>{c.isComposing||(c.key==="Enter"?c.currentTarget.blur():c.key==="Escape"&&(c.preventDefault(),o.current=!0,c.currentTarget.blur()))}}),e.counter&&r("small",{children:[Array.from(t).length,"/",e.maxLength]})]})}function ca(e){return r("section",{class:"fx-pf-sec",style:{order:e.order},children:[r("div",{class:"fx-pf-sec-h",children:[r("h3",{children:e.title}),e.action]}),e.children]})}function Bh(e){let{t}=le(),{work:n}=e,o=Pd[n.type],a=r(O,{children:[r("div",{class:"fx-pf-work-top",children:[r("span",{class:"fx-pf-work-ico",children:r(W,{name:o?.icon??"box",size:17})}),r("div",{children:[r("div",{class:"fx-pf-work-name",children:n.name}),r("div",{class:"fx-pf-work-type",children:o?t(o.key):n.type})]})]}),r("p",{children:n.summary}),(n.countKind!=="visits"||n.count>0)&&r("div",{class:"fx-pf-work-foot",children:[r(W,{name:n.countKind==="visits"?"eye":"download",size:12}),t(n.countKind==="visits"?"profile.workVisits":"profile.workInstalls",{n:n.count.toLocaleString("en-US")})]})]}),i=n.url;return da(i)?r("a",{class:"fx-pf-work",href:i,onClick:s=>{s.preventDefault(),$i(i)},children:a}):r("article",{class:"fx-pf-work",children:a})}function Uh(e){let{t}=le(),n=Oe(),[o,a]=C(null),[i,s]=C(()=>e.pinned.map(m=>`${m.kind}:${m.id}`));X(()=>{Z("/profile/me/works").then(m=>{n.current&&a(m.ok?m.data?.works??[]:"failed")})},[]);let l=m=>`${m.kind}:${m.id}`,c=m=>s(u=>u.includes(m)?u.filter(p=>p!==m):[...u,m]);if(o===null)return r("div",{class:"fx-pf-card fx-pf-empty",children:[r(Ir,{})," ",t("common.loading")]});if(o==="failed"||o.length===0)return r("div",{class:"fx-pf-card fx-pf-empty",children:[r("p",{children:t(o==="failed"?"common.loadFailed":"profile.worksNone")}),r("div",{class:"fx-inline fx-pf-foot",children:[o!=="failed"&&r(J,{variant:"primary",onClick:()=>void ur("submission"),children:[t("profile.goSubmit")," ",r(W,{name:"external",size:12})]}),r(J,{onClick:e.onClose,children:t("common.cancel")})]})]});let d=()=>{let m=new Map(o.map(u=>[l(u),u]));e.onSave(i.flatMap(u=>{let p=m.get(u);return p?[{kind:p.kind,id:p.id}]:[]})),e.onClose()};return r("div",{class:"fx-pf-card fx-pf-picker",children:[o.map(m=>{let u=l(m),p=i.includes(u),g=Pd[m.type];return r("button",{type:"button",class:"fx-pf-pick","aria-pressed":p,disabled:!p&&i.length>=6,onClick:()=>c(u),children:[r("div",{children:[m.name,r("small",{children:[g?t(g.key):m.type," \xB7 ",m.summary]})]}),p&&r(W,{name:"check",size:15})]},u)}),r("div",{class:"fx-inline fx-pf-foot",children:[r("span",{class:"fx-grow",children:i.length?t("profile.worksPicked",{n:i.length,max:6}):t("profile.worksAuto")}),r(J,{variant:"primary",onClick:d,children:t("common.done")}),r(J,{onClick:e.onClose,children:t("common.cancel")})]})]})}function Hh(e){let{t,locale:n}=le(),{view:o,owner:a}=e,i=ie(null),[s,l]=C(!1),c=o.nickname||o.username,d=(o.tier||"free").toLowerCase(),m=o.modules.map(b=>b.id),u=b=>m.indexOf(b),p=b=>u(b)>=0,g=o.stats,f=g?kd(g.totalTokens,n):null,h=t("profile.unit.days"),k=g&&f?[[f.value,f.unit,t("profile.stat.tokens")],[String(g.activeDays),h,t("profile.stat.activeDays")],[String(g.longestStreak),h,t("profile.stat.longest")],[String(g.currentStreak),h,t("profile.stat.current")],[g.installs.toLocaleString("en-US"),"",t("profile.stat.installs")]]:[],x=g&&p("stats")&&r("div",{class:"fx-pf-stats",style:{order:u("stats")},children:k.map(([b,_,I])=>r("div",{class:"fx-pf-stat",children:[r("b",{children:[b,_&&r("small",{children:_})]}),r("span",{children:I})]},I))},"stats"),S=m[0]==="stats",w=o.works||[],T=p("works")&&r(ca,{order:u("works"),title:t("profile.works"),action:!s&&r("button",{type:"button",class:"fx-link",onClick:()=>l(!0),children:t("profile.worksPick")}),children:s?r(Uh,{pinned:e.pinned,onSave:a.onPinned,onClose:()=>l(!1)}):w.length?r("div",{class:"fx-pf-works",children:w.map(b=>r(Bh,{work:b},`${b.kind}:${b.id}`))}):r("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.worksEmpty")})},"works"),R=o.activity,B=p("activity")&&R&&r(ca,{order:u("activity"),title:t("profile.activity"),children:r("div",{class:"fx-pf-card",children:[r("div",{class:"fx-pf-hm",role:"img","aria-label":t("profile.activityDays",{n:R.activeDays}),children:R.levels.map((b,_)=>r("i",{class:b?`l${b}`:void 0},_))}),r("div",{class:"fx-pf-hm-months","aria-hidden":"true",children:zd(R.end,n).map((b,_)=>r("span",{children:b},_))}),r("div",{class:"fx-pf-hm-foot",children:[r("span",{children:t("profile.activityDays",{n:R.activeDays})}),r("span",{class:"fx-pf-hm-legend","aria-hidden":"true",children:[t("profile.less"),r("i",{}),r("i",{class:"l1"}),r("i",{class:"l2"}),r("i",{class:"l3"}),r("i",{class:"l4"}),t("profile.more")]})]})]})},"activity"),U=(o.badges||[]).filter(b=>yd.includes(b.id)),N=p("badges")&&r(ca,{order:u("badges"),title:t("profile.badges"),children:U.length?r("div",{class:"fx-pf-card fx-pf-rows",children:U.map(b=>r("div",{class:"fx-pf-brow",children:[r("span",{class:"fx-pf-badge",children:r(W,{name:Ad[b.id],size:14})}),r("div",{children:[r("b",{children:t(`profile.badge.${b.id}`)}),r("span",{children:t(`profile.badgeSub.${b.id}`,{value:b.value??""})})]})]},b.id))}):r("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.badgesEmpty")})},"badges"),G=o.insights,z=[];G?.topModel&&z.push([t("profile.insightModel"),G.topModel]),G?.activeHours&&z.push([t("profile.insightHours"),_d(G.activeHours)]);let P=p("insights")&&r(ca,{order:u("insights"),title:t("profile.insights"),children:z.length?r("div",{class:"fx-pf-card fx-pf-rows",children:z.map(([b,_])=>r("div",{class:"fx-pf-row",children:[r("span",{children:b}),r("b",{children:_})]},b))}):r("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.insightsEmpty")})},"insights"),F=[!S&&x,T,B].filter(Boolean),L=[N,P].filter(Boolean),ae=b=>{if(!b)return;let _=xd(b);if(!_)return a.onInvalidLink();o.links.includes(_)||a.onLinks([...o.links,_])};return r("div",{class:"fx-pf","data-cover":o.cover,"data-frame":o.frame,children:[r("div",{class:"fx-pf-cover"}),r("div",{class:"fx-pf-id",children:[r("button",{type:"button",class:"fx-pf-avatar",title:t("account.avatar.change"),"aria-label":t("account.avatar.change"),onClick:()=>i.current?.click(),children:[r("span",{class:"fx-pf-av",children:e.avatar?r("img",{src:e.avatar,alt:""}):r("span",{class:"fx-pf-av-fallback",children:md(c)})}),r("span",{class:"fx-pf-av-mask",children:r(W,{name:"pencil",size:18})})]}),r("input",{ref:i,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif,image/avif",hidden:!0,onChange:b=>{let _=b.currentTarget,I=_.files?.[0];_.value="",I&&a.onAvatar(I)}}),r("div",{class:"fx-pf-id-text",children:[r("div",{class:"fx-pf-name",children:[r(Fi,{value:c,placeholder:o.username,maxLength:40,label:t("account.nickname.edit"),onSave:b=>{b&&a.onNickname(b)}}),Ed[d]&&r("span",{class:`fx-tag${d==="pro"?" fx-pf-tier-pro":" fx-tag--accent"}`,children:Ed[d]})]}),r("div",{class:"fx-pf-handle",children:["@",o.username]})]}),U.length>0&&p("badges")&&r("div",{class:"fx-pf-badges",children:U.map(b=>r("span",{class:"fx-pf-badge",title:t(`profile.badge.${b.id}`),children:r(W,{name:Ad[b.id],size:14})},b.id))})]}),r("div",{class:"fx-pf-sub",children:[r(Fi,{class:"fx-pf-bio",value:o.bio,placeholder:t("profile.bioPlaceholder"),maxLength:80,label:t("profile.bio"),counter:!0,onSave:a.onBio}),r("div",{class:"fx-pf-meta",children:[o.joinedMonth&&r("span",{children:[r(W,{name:"calendar",size:13}),t("profile.joined",{date:Sd(o.joinedMonth,n)})]}),o.links.map(b=>r("span",{children:[r(W,{name:"link",size:13}),da(b)?r("a",{href:b,onClick:_=>{_.preventDefault(),$i(b)},children:Oi(b)}):r("span",{children:Oi(b)}),r("button",{type:"button",class:"fx-pf-x",title:t("profile.linkRemove"),"aria-label":t("profile.linkRemove"),onClick:()=>a.onLinks(o.links.filter(_=>_!==b)),children:r(W,{name:"x",size:11})})]},b)),o.links.length<2&&r(Fi,{value:"",placeholder:t("profile.linkAdd"),maxLength:200,label:t("profile.linkAdd"),onSave:ae},o.links.length)]})]}),S&&x,r("div",{class:"fx-pf-body","data-cols":F.length&&L.length?2:1,children:[r("div",{class:"fx-pf-main",children:F}),L.length>0&&r("div",{class:"fx-pf-side",children:L})]})]})}function Id(){let e=Ge(async()=>{let[t,n]=await Promise.all([Z("/membership/my"),Z("/features")]);return t.ok?{ok:!0,status:t.status,data:{membership:t.data?.membership??null,payment:!n.ok||n.data?.payment!==!1}}:t});return e.state==="loading"?r($e,{panels:1}):e.state==="signedOut"?null:r(qh,{membership:e.state==="ready"?e.data.membership:null,failed:e.state==="error",payment:e.state==="ready"&&e.data.payment,onRetry:e.state==="ready"?e.reload:e.retry})}function qh(e){let{t,locale:n}=le(),o=me(),a=e.membership&&(e.membership.status===void 0||e.membership.status==="active")?e.membership:null,i=so(a?.tier),s=i==="Free",l=s?"free":i.toLowerCase()==="pro"?"pro":"paid",c=()=>void o.run(async()=>await wn("membership")?void 0:{error:{key:"err.openFailed"}});return r(Se,{icon:"card",title:t("member.title"),desc:t("member.desc"),actions:e.payment&&!e.failed?r(J,{variant:"primary",pending:o.pending,onClick:c,children:t(s?"member.upgrade":"member.renew")}):void 0,children:[!e.failed&&r("div",{class:"fx-member fx-block",children:[r("span",{class:`fx-tier fx-tier--${l}`,children:Lr(a?.plan,n)||i}),r("div",{class:"fx-member-copy",children:[r("strong",{children:s?t("member.freeName"):Lr(a?.plan,n)||i}),r("span",{class:"fx-muted",children:s?t("member.freeHint"):a?.expiresAt?t("member.expires",{date:It(a.expiresAt,n)}):t("member.noExpiry")})]})]}),e.failed&&r("div",{class:"fx-sub",children:r(de,{tone:"warn",children:[t("member.loadFailed")," ",r("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}),o.error&&r("div",{class:"fx-sub fx-sub--tight",children:r(ge,{a:o})})]})}function Re(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Wh(e,t){let n=Re(t);if(n===null||n<0)return null;if(n===0)return 0;let o=Math.max(0,Re(e)??0);return Math.min(100,Math.max(0,Math.floor(o/n*100)))}var Vh=15;function gr(e,t){let n=Wh(e,t);if(n===null)return{unlimited:!0,pct:100,text:null,low:!1};let o=Math.max(0,Re(e)??0),a=n===0&&o>0&&(Re(t)??0)>0?"<1%":`${n}%`;return{unlimited:!1,pct:n,text:a,low:n<=Vh}}function ua(e,t){let n=Re(t);if(n===null||n<=0)return null;let o=Re(e);if(o===null)return null;let a=Math.max(0,o);if(a===0)return"0%";let i=a/n*100;if(i<.1)return"<0.1%";let s=Math.round(i*10)/10;return s<10?`${s}%`:`${Math.round(i).toLocaleString("en-US")}%`}var jh=e=>e.ok?"ok":e.status===404?"hidden":"failed";function Dd(){return r(Od,{section:"points"})}function Nd(){return r(O,{children:[r(Id,{}),r(Od,{section:"quota"})]})}function Od({section:e}){let t=Ge(async()=>{let[l,c,d,m]=await Promise.all([Z("/token-quota/my"),Z("/credits/balance"),Z("/features"),Z("/invite/my-code")]);return l.ok?{ok:!0,status:l.status,data:{quota:l.data??{},balance:c.ok?Re(c.data?.balance):null,balanceFailed:!c.ok,features:d.ok&&d.data&&typeof d.data=="object"?d.data:{},invite:m.ok?m.data:null,inviteState:jh(m)}}:l});if(t.state==="loading")return r($e,{panels:3,rows:2});if(t.state==="signedOut")return r(Je,{});if(t.state==="error")return r(Xe,{error:t.error,onRetry:t.retry});let{data:n,update:o}=t,a=n.quota.background,i=n.features.redemption_codes!==!1,s=n.features.payment!==!1;return r(O,{children:[e==="quota"&&r(O,{children:[r(Jh,{data:n,update:o,onFailed:t.reload}),a?.modelId?r(Zh,{bg:a,update:o}):null]}),e==="points"&&r(Xh,{data:n,payment:s,onRetry:t.reload}),e==="points"&&(n.inviteState!=="hidden"||i)&&r(Qh,{data:n,update:o,redeemEnabled:i,onRedeemed:t.reload})]})}var Ld=e=>({dailyLimit:e.dailyLimit,dailyRemaining:e.dailyRemaining,weeklyLimit:e.weeklyLimit,weeklyRemaining:e.weeklyRemaining});function Gh(e,t){if(typeof e?.showResetCardCeremony!="function")return!1;try{return e.showResetCardCeremony(t),!0}catch{return!1}}function Jh(e){let{t,locale:n,ctx:o}=le(),a=e.data.quota,i=gr(a.dailyRemaining,a.dailyLimit),s=gr(a.weeklyRemaining,a.weeklyLimit),l=Rc(a.weeklyResetAt,n),c=Math.max(0,Re(a.resetCards)??0),d=Re(a.resetCardPricePoints)??100,m=me(),u=me(),[p,g]=C(null),[f,h]=C("1"),k=/^\d+$/.test(f.trim())?Number(f.trim()):NaN,x=Number.isInteger(k)&&k>=1&&k<=50,S=x?k*d:null,w=e.data.balance,T=S!==null&&w!==null&&w<S,R=()=>void m.run(async()=>{let N={daily:i,weekly:s},G=Ld(a);g(null);let z=oe(),P=await Ko(z.accountUseResetCard?()=>z.accountUseResetCard("both"):null,()=>Z("/token-quota/reset-card/use",{method:"POST",body:{type:"both"}}));if(!P.ok)return e.onFailed(),Fe(P);let F=P.data?.quota,L=Re(P.data?.resetCards);return e.update(ae=>({...ae,quota:{...ae.quota,...F??{},resetCards:L??ae.quota.resetCards}})),F&&!Gh(o.app,{before:G,after:Ld(F),remainingCards:L??void 0})&&g({before:N,after:{daily:gr(F.dailyRemaining,F.dailyLimit),weekly:gr(F.weeklyRemaining,F.weeklyLimit)},cards:L}),{success:{key:"card.used"}}}),B=()=>void u.run(async()=>{if(!x)return{error:{key:"err.invalidCount"}};let N=await Z("/points/exchange-reset-cards",{method:"POST",body:{count:k,expectedPricePerCard:d}});return N.ok?(e.update(G=>({...G,quota:{...G.quota,resetCards:Re(N.data?.resetCards)??G.quota.resetCards},balance:Re(N.data?.newPointsBalance)??G.balance})),h("1"),{success:{key:"card.exchanged",vars:{n:Re(N.data?.cardsGranted)??k}}}):(e.onFailed(),Fe(N))}),U=N=>N.unlimited?t("common.unlimited"):N.text;return r(Se,{icon:"gauge",title:t("quota.ai.title"),desc:t("quota.ai.desc"),children:[r("div",{class:"fx-quota-list fx-block",children:[r(co,{label:t("common.today"),display:i,note:i.unlimited?null:t("quota.resetDaily")}),r(co,{label:t("common.thisWeek"),display:s,note:s.unlimited||!l?null:t("quota.resetWeekly",{date:l})})]}),r(Ue,{label:t("card.title"),desc:t("card.desc"),children:[r("span",{class:"fx-value","data-testid":"reset-card-count",children:t("card.owned",{n:c})}),r(Dt,{label:t("card.use"),confirmLabel:t("card.useConfirm"),pending:m.pending,disabled:c<=0,onConfirm:R})]}),c<=0&&!m.success&&r(Me,{children:r(de,{children:t("card.noneHint")})}),(m.error||m.success)&&r(Me,{children:[r(ge,{a:m}),m.success&&p&&r("div",{class:"fx-ceremony",role:"status",children:[r("span",{children:[t("common.today")," ",r("b",{children:U(p.before.daily)})," \u2192 ",r("b",{children:U(p.after.daily)})]}),r("span",{children:[t("common.thisWeek")," ",r("b",{children:U(p.before.weekly)})," \u2192 ",r("b",{children:U(p.after.weekly)})]}),p.cards!==null&&r("span",{class:"fx-muted",children:t("card.left",{n:p.cards})})]})]}),r(Ue,{label:t("card.exchange"),desc:t("card.price",{price:Le(d,n)}),class:"fx-row--wide",children:[r("input",{class:"fx-input fx-input--count",type:"number",inputMode:"numeric",min:1,max:50,step:1,value:f,"aria-label":t("card.count"),onInput:N=>{h(N.currentTarget.value),u.clear()}}),r("span",{class:"fx-muted fx-cost",children:S!==null?t("card.cost",{cost:Le(S,n)}):t("card.countHint")}),r(Dt,{label:t("card.exchangeButton"),confirmLabel:t("card.exchangeConfirm",{cost:S!==null?Le(S,n):"\u2014"}),pending:u.pending,disabled:!x||T,onConfirm:B})]}),(T||u.error||u.success)&&r(Me,{children:[T&&!u.error&&r(de,{tone:"warn",children:t("err.insufficientPoints")}),r(ge,{a:u})]})]})}function Kh(e,t,n){let o=me(),[a,i]=C(null);return{checked:a??e,toggle:l=>{i(l),o.run(async()=>{let c=await t(l);if(i(null),!c.ok)return Fe(c);n(l)})},action:o}}function Xh(e){let{t,locale:n}=le(),o=me(),a=()=>void o.run(async()=>await wn("credits")?void 0:{error:{key:"err.openFailed"}});return r(Se,{icon:"coins",title:t("points.title"),desc:t("points.desc"),actions:e.payment?r(J,{variant:"primary",pending:o.pending,onClick:a,children:t("points.recharge")}):void 0,children:[r(Ue,{label:t("points.balance"),children:e.data.balance!==null?r("span",{class:"fx-big","data-testid":"points-balance",children:Le(e.data.balance,n)}):r("span",{class:"fx-value is-empty",children:[t("points.balanceFailed")," ",r("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}),o.error&&r(Me,{children:r(ge,{a:o})})]})}var Yh=[5,10,20];function Zh(e){let{t}=le(),{bg:n}=e,o=gr(n.dailyRemaining,n.dailyLimit),a=gr(n.weeklyRemaining,n.weeklyLimit),i=me(),[s,l]=C(null),c=Kh(!!n.autoMain,m=>{let u=oe();return Ko(u.accountBgAutoMain?()=>u.accountBgAutoMain(m):null,()=>Z("/token-quota/background/auto-main",{method:"POST",body:{enabled:m}}))},m=>e.update(u=>({...u,quota:{...u.quota,background:{...u.quota.background??{},autoMain:m}}}))),d=m=>{l(m),i.run(async()=>{let u=oe(),p=await Ko(u.accountBgConvert?()=>u.accountBgConvert(m):null,()=>Z("/token-quota/background/convert",{method:"POST",body:{percent:m}}));if(l(null),!p.ok)return Fe(p);let g=p.data?.quota;return g&&e.update(h=>({...h,quota:{...h.quota,...g,resetCards:h.quota.resetCards,resetCardPricePoints:h.quota.resetCardPricePoints}})),{success:{key:"bg.converted",vars:{pct:m}}}})};return r(Se,{icon:"clock",title:t("bg.title"),desc:t("bg.desc"),children:[r("div",{class:"fx-quota-list fx-block",children:[r(co,{label:t("common.today"),display:o}),r(co,{label:t("common.thisWeek"),display:a})]}),r(Ue,{label:t("bg.autoMain"),desc:t("bg.autoMainDesc"),children:r(jt,{checked:c.checked,disabled:c.action.pending,label:t("bg.autoMain"),onChange:c.toggle})}),r(Ue,{label:t("bg.convert"),desc:t("bg.convertDesc"),class:"fx-row--wide",children:Yh.map(m=>r(Dt,{label:`${m}%`,confirmLabel:t("bg.convertConfirm",{pct:m}),pending:i.pending&&s===m,disabled:i.pending&&s!==m,onConfirm:()=>d(m)},m))}),(i.error||i.success||c.action.error)&&r(Me,{children:[r(ge,{a:c.action}),r(ge,{a:i})]})]})}function Qh(e){let{t,locale:n}=le(),{invite:o,inviteState:a}=e.data,[i,s]=C(null),[l,c]=C(""),[d,m]=C(""),u=me(),p=me(),g=me();X(()=>{let S=!0;return oe().authStatus?.().then(w=>{S&&s(w?.cloudUrl?w.cloudUrl.replace(/\/+$/,""):null)}).catch(()=>{}),()=>{S=!1}},[]);let f=async()=>{let S=await Z("/invite/my-code");return e.update(w=>({...w,invite:S.ok?S.data:w.invite,inviteState:S.ok?"ok":S.status===404?"hidden":w.inviteState})),S},h=()=>void u.run(async()=>{let S=l.trim();if(!S)return{error:{key:"err.inviteEmpty"}};let w=await Z("/invite/claim",{method:"POST",body:{code:S}});return w.ok?(c(""),f(),{success:{key:"invite.claimed"}}):Fe(w)}),k=()=>void p.run(async()=>{let S=d.trim();if(!S)return{error:{key:"err.redeemEmpty"}};let w=await Z("/redemption/redeem",{method:"POST",body:{code:S}});if(!w.ok)return Fe(w);m(""),e.onRedeemed();let T=[],R=Re(w.data?.creditsAmount);R&&T.push(t("redeem.gotPoints",{n:Le(R,n)})),w.data?.membershipPlanId&&T.push(t("redeem.gotMembership"));for(let B of Array.isArray(w.data?.items)?w.data.items:[]){let U=(n==="zh"?B?.label?.zh:B?.label?.en)||B?.label?.zh||B?.label?.en||B?.kind;U&&T.push(U)}return{success:T.length?{key:"redeem.successWith",vars:{what:T.join(n==="zh"?"\u3001":", ")}}:{key:"redeem.success"}}}),x=o?.code&&i?`${i}/auth?invite=${encodeURIComponent(o.code)}`:"";return r(Se,{icon:"gift",title:t("invite.title"),desc:t("invite.desc"),children:[a==="ok"&&o?.code&&r(Ue,{label:t("invite.myCode"),desc:t("invite.count",{n:Le(Re(o.invitedCount)??0,n)}),class:"fx-row--wide",children:[r("code",{class:"fx-code","data-testid":"invite-code",children:o.code}),r(Ot,{text:o.code,label:t("invite.copyCode")}),r(Ot,{text:x,label:t("invite.copyLink"),disabled:!x})]}),a==="failed"&&r(Me,{children:r(de,{tone:"warn",children:[t("invite.loadFailed")," ",r("button",{type:"button",class:"fx-link",disabled:g.pending,onClick:()=>void g.run(async()=>{await f()}),children:t("common.retry")})]})}),a==="ok"&&o?.claim?.eligible&&r(Ue,{label:t("invite.claim"),desc:t("invite.claimDesc"),class:"fx-row--wide",children:r("form",{class:"fx-inline",onSubmit:S=>{S.preventDefault(),h()},children:[r("input",{class:"fx-input",value:l,placeholder:t("invite.claimPlaceholder"),"aria-label":t("invite.claim"),onInput:S=>c(S.currentTarget.value)}),r(J,{submit:!0,pending:u.pending,children:t("invite.claimSubmit")})]})}),(u.error||u.success)&&r(Me,{children:r(ge,{a:u})}),e.redeemEnabled&&r(Ue,{label:t("redeem.title"),desc:t("redeem.desc"),class:"fx-row--wide",children:r("form",{class:"fx-inline",onSubmit:S=>{S.preventDefault(),k()},children:[r("input",{class:"fx-input",value:d,placeholder:t("redeem.placeholder"),"aria-label":t("redeem.title"),onInput:S=>m(S.currentTarget.value)}),r(J,{submit:!0,pending:p.pending,children:t("redeem.submit")})]})}),(p.error||p.success)&&r(Me,{children:r(ge,{a:p})})]})}function ev(e){let t=[],n,o,a=new Map;for(let i of e)if(i.itemType==="reset_card")n||(n={id:"reset_card",items:[],resetCard:!0},t.push(n)),n.items.push(i);else if(i.itemType==="address_rename_card")o||(o={id:"address_rename_card",items:[],resetCard:!1,addressCard:!0},t.push(o)),o.items.push(i);else if(i.itemType==="custom_item"&&i.itemDefinition?.stackable){let s=`${i.productId||i.id}:${JSON.stringify(i.itemDefinition)}`,l=a.get(s);l||(l={id:`custom:${s}`,items:[],resetCard:!1},a.set(s,l),t.push(l)),l.items.push(i)}else t.push({id:i.id,items:[i],resetCard:!1});return t}function Fd(){let e=Ge(()=>Z("/shop/inventory"));return e.state==="loading"?r($e,{panels:1,rows:4}):e.state==="signedOut"?r(Je,{}):e.state==="error"?r(Xe,{error:e.error,onRetry:e.retry}):r(tv,{items:e.data??[],onRefresh:e.reload,onUsed:t=>{e.update(n=>n.filter(o=>o.id!==t.itemId)),e.reload()}})}function tv(e){let{t,locale:n,goTo:o}=le(),[a,i]=C(null),[s,l]=C(null),c=Oe(),d=ev(e.items),m=d.find(f=>f.id===a),u=Math.max(24,Math.ceil(d.length/6)*6)-d.length,p=f=>f.resetCard?t("card.title"):f.addressCard?t("backpack.addressCard"):f.items[0].itemDefinition?.name[n]||f.items[0].displayName||t("backpack.item"),g=f=>{c.current&&(l(f),e.onUsed(f))};return r(Se,{icon:"backpack",title:t("page.backpack"),desc:t("backpack.desc"),actions:r(J,{onClick:e.onRefresh,children:[r(W,{name:"refresh",size:13}),t("backpack.refresh")]}),children:r("div",{class:"fx-backpack fx-block",children:[r("div",{class:"fx-backpack-summary",children:[r("span",{children:t("backpack.total",{n:Le(e.items.length,n)})}),o&&r("button",{class:"fx-link",type:"button",onClick:()=>o("quota"),children:t("backpack.getCards")})]}),s&&r("div",{class:`fx-backpack-used fx-backpack-${s.animation}`,role:"status",children:[r(W,{name:"gift",size:20}),r("div",{children:[r("strong",{children:s.message[n]}),r("div",{children:s.effects.map(f=>$d(f,t,n)).join(" \xB7 ")})]})]},s.itemId),r("div",{class:"fx-backpack-layout",children:[r("div",{children:[r("div",{class:"fx-backpack-grid",role:"group","aria-label":t("backpack.grid"),children:[d.map(f=>{let h=p(f);return r("button",{type:"button",class:`fx-backpack-slot${f.resetCard?" is-card":""}`,"data-rarity":f.items[0].itemDefinition?.rarity,"aria-pressed":m?.id===f.id,"aria-label":t("backpack.slot",{name:h,n:f.items.length}),title:h,onClick:()=>i(f.id),children:[r("span",{class:"fx-backpack-icon",children:f.items[0].itemDefinition?.icon?r("span",{class:"fx-backpack-emoji",children:f.items[0].itemDefinition.icon}):r(W,{name:f.resetCard?"card":f.addressCard?"at":"gift",size:30})}),r("span",{class:"fx-backpack-name",children:h}),(f.resetCard||f.addressCard||f.items[0].itemDefinition?.stackable)&&r("span",{class:"fx-backpack-count",children:["\xD7",Le(f.items.length,n)]})]},f.id)}),Array.from({length:u},(f,h)=>r("div",{class:"fx-backpack-slot is-empty","aria-hidden":"true"},`empty:${h}`))]}),!d.length&&r("p",{class:"fx-backpack-empty",children:t("backpack.empty")})]}),m?r(nv,{slot:m,name:p(m),onUsed:g},`${m.id}:${m.items[0].id}`):r("div",{class:"fx-backpack-detail fx-backpack-prompt",children:[r(W,{name:"backpack",size:30}),r(de,{children:t(d.length?"backpack.select":"backpack.emptyHint")})]})]})]})})}function $d(e,t,n){return e.type==="points"?t("backpack.effect.points",{n:Le(e.amount,n)}):e.type==="reset_card"?t("backpack.effect.cards",{n:Le(e.count,n)}):t("backpack.effect.quota")}function nv(e){let{t,locale:n,goTo:o}=le(),a=e.slot.items[0],[i,s]=C(null),l=me(),c=me(),[d,m]=C(!1),u=a.itemDefinition,p=Oe(),g=a.source==="points"?t("backpack.source.points"):a.source==="admin"?t("backpack.source.admin"):a.source==="reward"?t("backpack.source.reward"):t("backpack.source.other"),f=()=>void l.run(async()=>{let k=await Z(`/shop/inventory/${encodeURIComponent(a.id)}`);if(p.current){if(!k.ok)return Fe(k);s(k.data)}}),h=()=>void c.run(async()=>{let k=await Z(`/shop/inventory/${encodeURIComponent(a.id)}/use`,{method:"POST"});if(!k.ok)return Fe(k);e.onUsed(k.data)});return r("section",{class:"fx-backpack-detail","aria-label":t("backpack.details"),children:[r("span",{class:`fx-backpack-detail-icon${e.slot.resetCard?" is-card":""}`,children:u?.icon?r("span",{class:"fx-backpack-emoji",children:u.icon}):r(W,{name:e.slot.resetCard?"card":e.slot.addressCard?"at":"gift",size:32})}),r("h3",{children:e.name}),r("span",{class:"fx-tag",children:[t(e.slot.resetCard||e.slot.addressCard||u?.use?"backpack.consumable":u?"backpack.collectible":"backpack.voucher"),u&&` \xB7 ${t(`backpack.rarity.${u.rarity}`)}`]}),r("dl",{class:"fx-backpack-facts",children:[r("div",{children:[r("dt",{children:t("backpack.quantity")}),r("dd",{children:Le(e.slot.items.length,n)})]}),r("div",{children:[r("dt",{children:t("backpack.acquired")}),r("dd",{children:Lt(a.acquiredAt,n)})]}),!e.slot.resetCard&&r("div",{children:[r("dt",{children:t("backpack.source")}),r("dd",{children:g})]})]}),u?r(O,{children:[u.description&&r(de,{children:u.description[n]}),u.use&&r(O,{children:[r("div",{class:"fx-backpack-effects",children:u.use.effects.map((k,x)=>r("div",{children:$d(k,t,n)},x))}),d?r(O,{children:[r(de,{children:t("backpack.consumeConfirm")}),r("div",{class:"fx-backpack-use-actions",children:[r(J,{variant:"primary",pending:c.pending,onClick:h,children:t("backpack.confirmUse")}),r(J,{disabled:c.pending,onClick:()=>m(!1),children:t("common.cancel")})]})]}):r(J,{variant:"primary",onClick:()=>m(!0),children:u.use.label?.[n]||t("backpack.use")}),r(ge,{a:c,captchaSection:"backpack"})]})]}):e.slot.addressCard?r(O,{children:[r(de,{children:t("backpack.addressCard.desc")}),o&&r(J,{variant:"primary",onClick:()=>{ld(),o("account-details")},children:t("backpack.addressCard.use")})]}):e.slot.resetCard?r(O,{children:[r(de,{children:t("card.desc")}),o&&r(J,{variant:"primary",onClick:()=>o("quota"),children:t("backpack.manageCards")})]}):i?r("div",{class:"fx-backpack-reveal",children:[i.codeName&&r("div",{class:"fx-muted",children:i.codeName}),i.key?r(O,{children:[r("code",{children:i.key}),r(Ot,{text:i.key,label:t("backpack.copyKey")})]}):r(de,{children:t("backpack.noKey")})]}):r(J,{pending:l.pending,onClick:f,children:[r(W,{name:"key",size:14}),t("backpack.reveal")]}),r(ge,{a:l,captchaSection:"backpack"})]})}var rv=/^1[3-9]\d{9}$|^\+[1-9]\d{6,14}$/,ov=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Bd=(e,t)=>e==="phone"?rv.test(t):ov.test(t),uo=(e,t)=>e==="phone"?Qo(t):ea(t);function Hd(){let e=Ge(()=>Z("/auth/me"));if(e.state==="loading")return r($e,{panels:3,rows:2});if(e.state==="signedOut")return r(Je,{});if(e.state==="error")return r(Xe,{error:e.error,onRetry:e.retry});let t=e.data;return r(O,{children:[r(av,{me:t,onBound:(n,o)=>e.update(a=>({...a,[n]:o}))}),r(lv,{me:t}),r(uv,{}),r(pv,{me:t})]})}function Ui(){let e=Pc(),t=me();return{cd:e,a:t,send:(a,i,s)=>t.run(async()=>{let l=await Z("/auth/send-code",{method:"POST",body:{target:a,type:i,purpose:s}});return l.ok?(e.start(60),{success:{key:"sec.codeSent"}}):Fe(l)}),reset:()=>{e.stop(),t.clear()}}}function av(e){let{t}=le(),[n,o]=C(null),[a,i]=C(null);return r(Se,{icon:"key",title:t("sec.methods.title"),desc:t("sec.methods.desc"),children:["phone","email"].map(s=>{let l=e.me[s];return r(O,{children:[r(Ue,{label:t(s==="phone"?"account.contact.phone":"account.contact.email"),desc:l?uo(s,l):t("account.contact.unbound"),children:r(J,{onClick:()=>{i(null),o(n===s?null:s)},children:t(n===s?"common.cancel":l?"sec.change":"sec.bind")})}),n===s&&r(iv,{kind:s,current:l??null,onDone:c=>{e.onBound(s,c),o(null),i(s)}}),a===s&&n!==s&&r(Me,{children:r("div",{class:"fx-msg is-ok",role:"status",children:t(s==="phone"?"sec.phoneBound":"sec.emailBound")})})]},s)})})}function iv(e){let{t}=le(),{kind:n}=e,[o,a]=C(""),[i,s]=C(""),l=Ui(),c=me(),d=o.trim(),m=n==="phone"?"err.phoneInvalid":"err.emailInvalid",u=()=>{if(!Bd(n,d)){l.a.run(async()=>({error:{key:m}}));return}l.send(d,n,"bind")},p=()=>void c.run(async()=>{if(!Bd(n,d))return{error:{key:m}};if(!i.trim())return{error:{key:"err.codeRequired"}};let g=n==="phone"?{phone:d,verification_code:i.trim()}:{email:d,verification_code:i.trim()},f=await Z(n==="phone"?"/auth/bind-phone":"/auth/bind-email",{method:"POST",body:g});if(!f.ok)return Fe(f);e.onDone(d)});return r(Me,{class:"fx-form",children:[r("label",{class:"fx-field",children:[r("span",{children:e.current?t(n==="phone"?"sec.newPhone":"sec.newEmail"):t(n==="phone"?"sec.phone":"sec.email")}),r("input",{class:"fx-input",type:n==="phone"?"tel":"email",value:o,autoComplete:"off",placeholder:t(n==="phone"?"sec.phonePlaceholder":"sec.emailPlaceholder"),onInput:g=>a(g.currentTarget.value)})]}),r(Hi,{code:i,setCode:s,sender:l,onSend:u}),r("div",{class:"fx-inline",children:r(J,{variant:"primary",pending:c.pending,onClick:p,children:t("sec.bindSubmit")})}),r(ge,{a:c})]})}function Hi(e){let{t}=le(),{cd:n,a:o}=e.sender;return r("div",{class:"fx-field",children:[r("span",{children:e.label??t("sec.code")}),r("div",{class:"fx-inline",children:[r("input",{class:"fx-input fx-input--code",inputMode:"numeric",autoComplete:"one-time-code",value:e.code,placeholder:t("sec.codePlaceholder"),"aria-label":e.label??t("sec.code"),onInput:a=>e.setCode(a.currentTarget.value)}),r(J,{pending:o.pending,disabled:n.left>0||e.disabled,onClick:e.onSend,children:n.left>0?t("sec.resendIn",{s:n.left}):t("sec.sendCode")})]}),r(ge,{a:o})]})}function sv(e){let{t}=le(),n=_c(e.value),o=e.value.length>0,a=[[n.length,t("pw.req.length",{min:8,max:64})],[n.lower,t("pw.req.lower")],[n.upper,t("pw.req.upper")],[n.special,t("pw.req.special")],[n.space,t("pw.req.space")]];return r("ul",{class:"fx-rules","aria-label":t("pw.rulesLabel"),children:a.map(([i,s])=>r("li",{class:i?"is-ok":o?"is-bad":"",children:[i?r(W,{name:"check",size:11}):o?r(W,{name:"x",size:11}):r("span",{class:"fx-rule-dot","aria-hidden":"true"}),r("span",{children:s})]},s))})}function qd(e,t){let n=Sc(e);return n.ok?e!==t?{error:{key:"pw.mismatch"}}:null:{error:{key:yi[n.rule]}}}function lv(e){let{t}=le(),n=["phone","email"].filter(l=>!!e.me[l]),[o,a]=C("current"),[i,s]=C(!1);return r(Se,{icon:"shield",title:t("pw.title"),desc:t("pw.desc",{min:8,max:64}),actions:r(J,{onClick:()=>s(!i),children:t(i?"common.cancel":"pw.change")}),children:i&&r(Me,{class:"fx-form",children:[r(Nt,{label:t("pw.modeLabel"),value:o,onChange:a,options:[{value:"current",label:t("pw.mode.current")},{value:"code",label:t("pw.mode.code")}]}),o==="current"?r(cv,{onDone:()=>s(!1)}):n.length?r(dv,{me:e.me,targets:n,onDone:()=>s(!1)}):r(de,{children:t("pw.codeNeedsContact")})]})})}function Wd(e){let{t}=le();return r(O,{children:[r("label",{class:"fx-field",children:[r("span",{children:t("pw.new")}),r("input",{class:"fx-input",type:"password",autoComplete:"new-password",value:e.pw,maxLength:72,onInput:n=>e.setPw(n.currentTarget.value)})]}),r(sv,{value:e.pw}),r("label",{class:"fx-field",children:[r("span",{children:t("pw.confirm")}),r("input",{class:"fx-input",type:"password",autoComplete:"new-password",value:e.confirm,onInput:n=>e.setConfirm(n.currentTarget.value)})]})]})}function cv(e){let{t}=le(),[n,o]=C(""),[a,i]=C(""),[s,l]=C(""),c=me(),[d,m]=C(!1),u=()=>void c.run(async()=>{if(!n)return{error:{key:"pw.currentRequired"}};let p=qd(a,s);if(p)return p;let g=await Z("/auth/password",{method:"PUT",body:{currentPassword:n,newPassword:a}});return g.ok?(o(""),i(""),l(""),m(!0),{success:{key:"pw.changed"}}):g.status===404?{error:{key:"pw.noPasswordYet"}}:Fe(g)});return r(O,{children:[r("label",{class:"fx-field",children:[r("span",{children:t("pw.current")}),r("input",{class:"fx-input",type:"password",autoComplete:"current-password",value:n,onInput:p=>o(p.currentTarget.value)})]}),r(Wd,{pw:a,setPw:i,confirm:s,setConfirm:l}),r("div",{class:"fx-inline",children:[r(J,{variant:"primary",pending:c.pending,onClick:u,children:t("pw.submit")}),d&&r(J,{onClick:e.onDone,children:t("common.done")})]}),r(ge,{a:c})]})}function dv(e){let{t}=le(),[n,o]=C(e.targets[0]),[a,i]=C(""),[s,l]=C(""),[c,d]=C(""),m=Ui(),u=me(),[p,g]=C(!1),f=e.me[n]||"",h=()=>void u.run(async()=>{if(!a.trim())return{error:{key:"err.codeRequired"}};let k=qd(s,c);if(k)return k;let x=n==="phone"?{phone:f,code:a.trim(),newPassword:s}:{email:f,code:a.trim(),newPassword:s},S=await Z("/auth/reset-password",{method:"POST",body:x});return S.ok?(i(""),l(""),d(""),g(!0),{success:{key:"pw.changed"}}):Fe(S)});return r(O,{children:[e.targets.length>1?r(Nt,{label:t("pw.via"),value:n,onChange:k=>{o(k),i(""),m.reset()},options:e.targets.map(k=>({value:k,label:uo(k,e.me[k])}))}):r(de,{children:t("pw.codeTo",{target:uo(n,f)})}),r(Hi,{code:a,setCode:i,sender:m,onSend:()=>void m.send(f,n,"reset_password")}),r(Wd,{pw:s,setPw:l,confirm:c,setConfirm:d}),r("div",{class:"fx-inline",children:[r(J,{variant:"primary",pending:u.pending,onClick:h,children:t("pw.submitReset")}),p&&r(J,{onClick:e.onDone,children:t("common.done")})]}),r(ge,{a:u})]})}function uv(){let{t:e}=le(),t=me(),n=()=>void t.run(async()=>{let o=await Z("/auth/logout-all",{method:"POST"});if(!o.ok)return Fe(o);try{await oe().forsionLogout?.()}catch(a){return{error:{raw:Tt(a)}}}return{success:{key:"sec.logoutAllDone"}}});return r(Se,{icon:"laptop",title:e("sec.devices.title"),desc:e("sec.devices.desc"),children:[r(Ue,{label:e("sec.logoutAll"),desc:e("sec.logoutAllDesc"),children:r(Dt,{label:e("sec.logoutAll"),confirmLabel:e("sec.logoutAllConfirm"),pending:t.pending,onConfirm:n})}),(t.error||t.success)&&r(Me,{children:r(ge,{a:t})})]})}function pv(e){let{t}=le(),n=["phone","email"].filter(x=>!!e.me[x]),[o,a]=C(!1),[i,s]=C(n.length?"code":"password"),[l,c]=C(n[0]??null),[d,m]=C(""),[u,p]=C(""),g=Ui(),f=me(),h=l&&e.me[l]||"",k=()=>void f.run(async()=>{if(i==="code"&&!d.trim())return{error:{key:"err.codeRequired"}};if(i==="password"&&!u)return{error:{key:"pw.currentRequired"}};let x=await Z("/auth/delete-account",{method:"POST",body:i==="code"?{verification_code:d.trim()}:{password:u}});if(!x.ok)return Fe(x);try{await oe().forsionLogout?.()}catch{}return{success:{key:"del.done"}}});return r(Se,{icon:"alert",danger:!0,title:t("del.title"),desc:t("del.desc"),actions:r(J,{variant:"danger",onClick:()=>{a(!o),f.clear()},children:t(o?"common.cancel":"del.start")}),children:o&&r(Me,{class:"fx-form",children:[r(de,{tone:"error",children:t("del.warn")}),n.length>0&&r(Nt,{label:t("del.methodLabel"),value:i,onChange:s,options:[{value:"code",label:t("del.byCode")},{value:"password",label:t("del.byPassword")}]}),i==="code"&&l?r(O,{children:[n.length>1&&r(Nt,{label:t("pw.via"),value:l,onChange:x=>{c(x),m(""),g.reset()},options:n.map(x=>({value:x,label:uo(x,e.me[x])}))}),r(Hi,{code:d,setCode:m,sender:g,label:t("del.codeLabel",{target:uo(l,h)}),onSend:()=>void g.send(h,l,"delete_account")})]}):r("label",{class:"fx-field",children:[r("span",{children:t("del.passwordLabel")}),r("input",{class:"fx-input",type:"password",autoComplete:"current-password",value:u,onInput:x=>p(x.currentTarget.value)})]}),r("div",{class:"fx-inline",children:r(Dt,{variant:"danger",label:t("del.submit"),confirmLabel:t("del.confirm"),pending:f.pending,onConfirm:k})}),r(ge,{a:f})]})})}var jd=20;function Gd(){let e=Ge(async()=>{let[t,n]=await Promise.all([Z("/token-quota/my"),Z(`/token-quota/my/logs?limit=${jd}&offset=0`)]);if(!t.ok)return t;let o=n.ok&&Array.isArray(n.data?.logs)?n.data.logs:null;return{ok:!0,status:t.status,data:{dailyLimit:Re(t.data?.dailyLimit),logs:o,total:n.ok?Re(n.data?.total)??o?.length??0:0,logsFail:n.ok?null:n}}});return e.state==="loading"?r($e,{panels:3,rows:2}):e.state==="signedOut"?r(Je,{}):e.state==="error"?r(Xe,{error:e.error,onRetry:e.retry}):r(O,{children:[r(fv,{dailyLimit:e.data.dailyLimit}),r(gv,{base:e.data,onRetry:e.reload})]})}function fv(e){let{t,locale:n}=le(),[o,a]=C(30),[i,s]=C({state:"loading"}),[l,c]=C(!1),[d,m]=C(0),u=ie(0);X(()=>{let w=++u.current;return c(!0),Z(`/usage/stats?days=${o}`).then(T=>{w===u.current&&(c(!1),s(T.ok?{state:"ready",data:T.data??{}}:{state:"error",fail:T}))}),()=>{u.current++}},[o,d]);let p=e.dailyLimit!==null&&e.dailyLimit<0?"usage.unlimitedNote":ua(1,e.dailyLimit)===null?"usage.noLimitNote":null,g=w=>ua(w,e.dailyLimit)??"\u2014",f=r(Nt,{label:t("usage.range"),value:o,onChange:a,options:[{value:7,label:t("usage.days",{n:7})},{value:30,label:t("usage.days",{n:30})},{value:90,label:t("usage.days",{n:90})}]}),h=i.state==="ready"?i.data:null,k=(h?.byModel??[]).filter(Boolean),x=(h?.byProject??[]).filter(Boolean),S=Re(h?.successRate);return r(O,{children:[r(Se,{icon:"chart",title:t("usage.overview.title"),desc:t("usage.overview.desc"),actions:f,children:[i.state==="error"?r("div",{class:"fx-sub",children:r("div",{class:"fx-msg is-error",role:"alert",children:[r("span",{children:pt(ft(i.fail),t)}),r("button",{type:"button",class:"fx-link",onClick:()=>m(w=>w+1),children:t("common.retry")})]})}):r("div",{class:`fx-stats fx-block${l&&h?" is-refreshing":""}`,"aria-busy":l||void 0,children:[r(qi,{label:t("usage.requests"),value:h?Le(Re(h.totalRequests)??0,n):null,testId:"usage-requests"}),r(qi,{label:t("usage.successRate"),value:h?S===null?"\u2014":`${S.toFixed(1)}%`:null}),r(qi,{label:t("usage.consumption"),value:h?g(h.totalPointsCost):null,sub:t("usage.ofToday"),testId:"usage-consumption"})]}),p&&r("div",{class:"fx-sub fx-sub--tight",children:r(de,{children:t(p)})})]}),i.state!=="error"&&r(O,{children:[r(Se,{icon:"gauge",title:t("usage.byModel.title"),desc:t("usage.byModel.desc"),children:r(Vd,{loading:!h,empty:t("usage.empty"),head:[t("usage.col.model"),t("usage.col.requests"),t("usage.col.consumption")],rows:k.map(w=>[w.modelName||w.modelId||"\u2014",Le(Re(w.count)??0,n),g(w.pointsCost)])})}),r(Se,{icon:"laptop",title:t("usage.byApp.title"),desc:t("usage.byApp.desc"),children:r(Vd,{loading:!h,empty:t("usage.empty"),head:[t("usage.col.app"),t("usage.col.requests"),t("usage.col.consumption")],rows:x.map(w=>[Jd(w.projectSource,t("usage.appUnknown")),Le(Re(w.count)??0,n),g(w.pointsCost)])})})]})]})}var mv={tangu:"Tangu","ai-studio":"Forsion AI Studio",desktop:"Forsion Desktop",amadeus:"Amadeus",notebase:"Notebase",calendar:"Forsion Calendar",chat:"Forsion Chat",desk:"Forsion Desk","photo-studio":"Photo Studio",connect:"Forsion Connect"},Jd=(e,t)=>!e||e==="unknown"?t:mv[e]??e;function qi(e){return r("div",{class:"fx-stat",children:[r("span",{class:"fx-stat-label",children:e.label}),e.value===null?r("span",{class:"fx-skel fx-skel--stat"}):r("strong",{class:"fx-stat-value","data-testid":e.testId,children:e.value}),e.sub&&r("span",{class:"fx-stat-sub",children:e.sub})]})}function Vd(e){return e.loading?r("div",{class:"fx-sub",children:[r("span",{class:"fx-skel fx-skel--row"}),r("span",{class:"fx-skel fx-skel--row"})]}):e.rows.length?r("div",{class:"fx-table-wrap fx-block",children:r("table",{class:"fx-table",children:[r("thead",{children:r("tr",{children:e.head.map((t,n)=>r("th",{class:n?"is-num":"",children:t},n))})}),r("tbody",{children:e.rows.map((t,n)=>r("tr",{children:t.map((o,a)=>r("td",{class:a?"is-num":"",children:o},a))},n))})]})}):r(mt,{children:e.empty})}function gv(e){let{t,locale:n}=le(),o=Oe(),[a,i]=C(e.base.logs??[]),[s,l]=C(e.base.total),c=me();X(()=>{i(e.base.logs??[]),l(e.base.total)},[e.base]);let d=()=>void c.run(async()=>{let u=await Z(`/token-quota/my/logs?limit=${jd}&offset=${a.length}`);if(!u.ok)return{error:ft(u)};let p=Array.isArray(u.data?.logs)?u.data.logs:[];o.current&&(i(g=>[...g,...p]),l(g=>p.length?Re(u.data?.total)??g:a.length))}),m=e.base.dailyLimit;return r(Se,{icon:"clock",title:t("usage.recent.title"),desc:t("usage.recent.desc"),children:[e.base.logsFail?r("div",{class:"fx-sub",children:r("div",{class:"fx-msg is-error",role:"alert",children:[r("span",{children:pt(ft(e.base.logsFail),t)}),r("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}):a.length===0?r(mt,{children:t("usage.recentEmpty")}):r("div",{class:"fx-list fx-block",role:"list",children:a.map((u,p)=>r("div",{class:"fx-list-row",role:"listitem",children:[r("span",{class:"fx-list-main",children:[r("strong",{children:[u.modelName||u.modelId||"\u2014",u.success===!1&&r("span",{class:"fx-tag fx-tag--danger",children:t("usage.failed")})]}),r("small",{children:[Lt(u.createdAt,n),Jd(u.projectSource,t("usage.appUnknown"))].join(" \xB7 ")})]}),r("span",{class:"fx-value",children:ua(u.pointsCost,m)??"\u2014"})]},u.id??p))}),a.length>0&&r("div",{class:"settings-panel-footer fx-footer",children:[r("span",{class:"fx-muted",children:t("usage.shown",{shown:Le(a.length,n),total:Le(Math.max(s,a.length),n)})}),a.length<s&&r(J,{pending:c.pending,onClick:d,children:t("common.loadMore")})]}),c.error&&r("div",{class:"fx-sub fx-sub--tight",children:r(ge,{a:c})})]})}var Kd=["plugin","amadeus-plugin","skill","agent","space","theme"],hv=["zip","github","npm"],vv=["description","tags","minAppVersion","maxAppVersion","platforms"],bv=50*1024*1024,yv=new Set(["market_npm_invalid","market_npm_source","market_github_source","market_not_found","market_zip_required","market_zip_invalid","market_zip_too_large","market_version_required","market_version_invalid","market_version_mismatch","market_version_not_newer","market_icon_invalid","market_duplicate","market_update_pending","market_stale","market_requirements_invalid","market_requirements_mismatch","market_no_release","market_no_changes","market_dryrun_unsupported"]),xv=new Set(["no_manifest","type_mismatch","tag_version_mismatch","id_slug_mismatch","engine_slug_mismatch","no_entry","has_node_modules"]),pa=e=>`sub.type.${e.replace("-","_")}`,Yd=e=>e==="approved"?"sub.approved":e==="rejected"?"sub.rejected":"sub.pending",ji=e=>e==="github"?"GitHub":e==="npm"?"npm":"ZIP",kv=e=>e.status==="pending"||!!e.pendingUpdate,Xd=(e,t)=>t==="all"||(t==="pending"?kv(e):e.status===t),wv=e=>e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`,Zd=e=>e.status==="approved"?"sub.updated":"sub.resubmitted";async function hr(e){let t=oe().cloudInvoke;if(!t)return{ok:!1,out:{error:{key:"err.unavailable"}},code:null,values:{}};let n=await t("cloud:marketSubmit",{...e.id?{id:e.id}:{},...e.dryRun?{dryRun:!0}:{},fields:e.fields,...e.zip?{zip:{name:e.zip.name,data:e.zip.data}}:{}}),o=Jo(n);if(o.ok)return{ok:!0,data:o.data};o.status===401&&oe().authStatus?.().catch(()=>{});let a=Object.fromEntries(Object.entries(n?.json?.values||{}).filter(([,s])=>typeof s=="string"||typeof s=="number").map(([s,l])=>[s,String(l)]));return{ok:!1,out:o.code==="market_version_not_newer"&&a.version&&a.current?{error:{key:"sub.notNewer",vars:a}}:yv.has(o.code||"")?{error:{key:`sub.err.${o.code}`}}:Fe(o),code:o.code,values:a}}async function Qd(e){return e.size>bv?{error:{key:"sub.errLarge"}}:{name:e.name,size:e.size,data:new Uint8Array(await e.arrayBuffer())}}function zv(e,t){let n=[e?.minAppVersion&&`\u2265 ${e.minAppVersion}`,e?.maxAppVersion&&`< ${e.maxAppVersion}`].filter(Boolean).join(", "),o=[n&&`Forsion ${n}`,e?.platforms?.length?e.platforms.join(", "):""].filter(Boolean);return o.length?o.join(" \xB7 "):t("sub.reqNone")}function eu({status:e}){let t=rt();return r("span",{class:`fx-tag ${e==="approved"?"fx-status--resolved":e==="rejected"?"fx-tag--danger":"fx-tag--accent"}`,children:t(Yd(e))})}function tu(e){let t=`${e.id}-${e.name}`;return r("label",{class:"fx-sub-field",for:t,children:[r("span",{children:e.label}),e.rows?r("textarea",{id:t,value:e.value,rows:e.rows,maxLength:2e5,onInput:n=>e.onInput(n.currentTarget.value)}):r("input",{id:t,value:e.value,placeholder:e.placeholder,maxLength:e.name==="summary"?2e3:500,onInput:n=>e.onInput(n.currentTarget.value)})]})}function nu({id:e,file:t,disabled:n,onPick:o}){let a=rt(),[i,s]=C(!1);X(()=>{let c=()=>s(!1);return window.addEventListener("dragend",c),window.addEventListener("drop",c,!0),window.addEventListener("blur",c),()=>{window.removeEventListener("dragend",c),window.removeEventListener("drop",c,!0),window.removeEventListener("blur",c)}},[]);let l=c=>{c&&!n&&o(c)};return r("label",{class:`fx-sub-drop${i?" is-over":""}${t?" is-filled":""}`,for:`${e}-zip`,onDragOver:c=>{c.preventDefault(),n||s(!0)},onDragLeave:()=>s(!1),onDrop:c=>{c.preventDefault(),s(!1),l(c.dataTransfer?.files?.[0])},children:[r(W,{name:t?"box":"upload",size:18}),r("span",{class:"fx-sub-drop-text",children:[r("strong",{children:t?t.name:a("sub.dropTitle")}),r("small",{children:t?a("sub.dropReplace",{size:wv(t.size)}):a("sub.dropHint")})]}),r("input",{id:`${e}-zip`,class:"fx-sub-file",type:"file",accept:".zip,application/zip",disabled:n,onChange:c=>{l(c.currentTarget.files?.[0]),c.currentTarget.value=""}})]})}function ru({check:e,update:t}){let n=rt(),o=e.manifest,a=[o?[!0,"sub.checkType",`${n(pa(o.type))} \xB7 ${o.file}`]:[!1,"sub.checkType",n("sub.warn.no_manifest")],...e.version?[[!0,"sub.checkVersion",e.current?`v${e.current} \u2192 v${e.version}`:`v${e.version}`]]:[],[!0,"sub.checkIcon",n(e.icon?"sub.iconYes":"sub.iconNo")],[!0,"sub.checkReadme",n(e.readme?"sub.readmeYes":t?"sub.readmeKeep":"sub.readmeNo")],[!0,"sub.checkReq",zv(e.metadata,n)],...(e.warnings||[]).filter(i=>i!=="no_manifest"&&xv.has(i)).map(i=>[!1,"sub.checkWarn",n(`sub.warn.${i}`)])];return r("ul",{class:"fx-sub-checks",children:a.map(([i,s,l])=>r("li",{class:i?"is-ok":"is-warn",children:[r(W,{name:i?"check":"alert",size:14}),r("span",{class:"fx-sub-k",children:n(s)}),r("span",{children:l})]}))})}function Sv({item:e,checks:t,onDone:n}){let o=rt(),a=dr(),i=Oe(),s=me(),[l,c]=C(null),[d,m]=C(null),u=g=>void s.run(async()=>{c(null),m(null);let f=await Qd(g);if(!i.current)return;if(!("data"in f))return f;if(c(f),!t)return;let h=await hr({id:e.id,dryRun:!0,fields:{},zip:f});if(i.current){if(!h.ok)return h.out;m(h.data)}}),p=()=>void s.run(async()=>{if(!l)return;let g=await hr({id:e.id,fields:{},zip:l});if(i.current){if(!g.ok)return g.out;n(Zd(e))}});return r(O,{children:[r(nu,{id:a,file:l,disabled:s.pending,onPick:u}),d&&r(ru,{check:d,update:!0}),d&&r(de,{children:o(e.status==="approved"?"sub.zipListedNote":"sub.zipUnlistedNote")}),l&&r("div",{class:"fx-sub-actions",children:[r(J,{variant:"primary",pending:s.pending,disabled:t&&!d,onClick:p,children:d?.version?o("sub.submitVersion",{version:d.version}):o("sub.submit")}),r(J,{disabled:s.pending,onClick:()=>{c(null),m(null),s.clear()},children:o("common.cancel")})]}),r(ge,{a:s,captchaSection:"submission"})]})}function _v({item:e,onDone:t}){let n=rt(),o=Oe(),a=me(),[i,s]=C(null),[l,c]=C(null),d=()=>void a.run(async()=>{s(null),c(null);let p=await hr({id:e.id,dryRun:!0,fields:{}});if(o.current){if(!p.ok){if(p.code==="market_version_not_newer"&&p.values.version){c(p.values);return}return p.out}s(p.data)}}),m=()=>void a.run(async()=>{let p=await hr({id:e.id,fields:{}});if(o.current){if(!p.ok)return p.out;t(Zd(e))}}),u=e.source==="github"?e.githubRepoUrl:e.npmPackage;return r(O,{children:[!i&&r(J,{pending:a.pending,onClick:d,children:[r(W,{name:"refresh",size:13}),n(l?"sub.checkAgain":"sub.checkNew")]}),l&&r(de,{children:n("sub.upToDate",{version:l.version,current:l.current||l.version})}),i&&r(O,{children:[r("div",{class:"fx-sub-upstream",children:[r(W,{name:e.source==="github"?"link":"box",size:18}),r("span",{children:[r("strong",{children:n("sub.upstreamLatest",{version:i.version||""})}),r("small",{children:[u,i.tag&&n("sub.releaseTag",{tag:i.tag}),i.current&&n("sub.storeHas",{version:i.current})].filter(Boolean).join(" \xB7 ")})]})]}),r(de,{children:n(e.source==="github"?"sub.githubNote":"sub.npmNote",{version:i.version||""})}),r("div",{class:"fx-sub-actions",children:[r(J,{variant:"primary",pending:a.pending,onClick:m,children:n("sub.submitVersion",{version:i.version||""})}),r(J,{disabled:a.pending,onClick:()=>{s(null),a.clear()},children:n("common.cancel")})]})]}),r(ge,{a,captchaSection:"submission"})]})}function Cv({item:e,onDone:t}){let n=rt(),o=dr(),a=Oe(),i=me(),s=()=>({name:e.name,summary:e.summary||"",description:e.description||"",tags:(e.tags||[]).join(", "),minAppVersion:e.minAppVersion||"",maxAppVersion:e.maxAppVersion||"",platforms:(e.platforms||[]).join(", ")}),[l,c]=C(s),[d,m]=C(new Set),[u,p]=C(!1),g=x=>S=>{c(w=>({...w,[x]:S})),m(w=>new Set([...w,x])),i.clear()},f=()=>void i.run(async()=>{if(!l.name.trim())return{error:{key:"sub.errName"}};if(!d.size)return{error:{key:"sub.err.market_no_changes"}};let x=await hr({id:e.id,fields:{mode:"info",...Object.fromEntries([...d].map(S=>[S,l[S].trim()]))}});if(a.current){if(!x.ok)return x.out;p(!1),t(e.status==="approved"?"sub.infoSubmitted":"sub.resubmitted")}}),h=(x,S,w={})=>r(tu,{id:o,name:x,label:n(S),value:l[x],onInput:g(x),...w}),k=n("sub.unset");return r("section",{class:"fx-sub-sec",children:[r("div",{class:"fx-sub-sec-bar",children:[r("h4",{children:n("sub.secInfo")}),!u&&r(J,{disabled:!!e.pendingUpdate,title:e.pendingUpdate?n("sub.err.market_update_pending"):void 0,onClick:()=>{c(s()),m(new Set),i.clear(),p(!0)},children:[r(W,{name:"pencil",size:13}),n("sub.edit")]})]}),u?r("form",{class:"fx-sub-form fx-sub-form--inline",onSubmit:x=>{x.preventDefault(),f()},children:[r("fieldset",{disabled:i.pending,children:[r("div",{class:"fx-sub-columns",children:[h("name","sub.name"),h("tags","sub.tags",{placeholder:n("sub.tagsHint")})]}),h("summary","sub.summary"),h("description","sub.description",{rows:3}),r("div",{class:"fx-sub-columns",children:[h("minAppVersion","sub.minAppVersion",{placeholder:"2.13.0"}),h("maxAppVersion","sub.maxAppVersion",{placeholder:n("sub.optional")})]}),h("platforms","sub.platforms",{placeholder:"desktop, android, ios, web"}),r(de,{children:n("sub.requirementsHint")}),r(de,{children:n("sub.infoNote")})]}),r("div",{class:"fx-sub-actions",children:[r(J,{variant:"primary",pending:i.pending,submit:!0,children:n("sub.submitInfo")}),r(J,{disabled:i.pending,onClick:()=>{p(!1),i.clear()},children:n("common.cancel")})]}),r(ge,{a:i,captchaSection:"submission"})]}):r("dl",{class:"fx-sub-kv",children:[r("dt",{children:n("sub.summary")}),r("dd",{children:e.summary||k}),r("dt",{children:n("sub.description")}),r("dd",{class:"fx-sub-clamp",children:e.description||k}),r("dt",{children:n("sub.tags")}),r("dd",{children:e.tags?.length?e.tags.join(", "):k}),r("dt",{children:n("sub.minAppVersion")}),r("dd",{children:e.minAppVersion||k}),r("dt",{children:n("sub.maxAppVersion")}),r("dd",{children:e.maxAppVersion||k}),r("dt",{children:n("sub.platforms")}),r("dd",{children:e.platforms?.length?e.platforms.join(", "):k})]})]})}function Tv({item:e,checks:t,notice:n,onBack:o,onDone:a}){let i=rt(),{locale:s}=le(),l=e.pendingUpdate,c=e.rejectedUpdate;return r("div",{class:"fx-sub-detail","data-detail-id":e.id,children:[r("button",{type:"button",class:"btn sm ghost fx-sub-back",onClick:o,children:[r(W,{name:"back",size:13}),i("sub.back")]}),r("div",{class:"fx-sub-dhead",children:[r("div",{class:"fx-sub-item-head",children:[r("strong",{children:e.name}),r(eu,{status:e.status})]}),r("div",{class:"fx-sub-meta",children:[r("span",{children:i(pa(e.type))}),r("span",{children:ji(e.source)}),e.version&&r("span",{children:["v",e.version]}),r("span",{children:i("sub.downloads",{n:e.downloads||0})})]}),r("div",{children:r(Ot,{text:e.id,label:`${i("sub.identity")} ${e.id.slice(0,8)}`})})]}),n&&r("p",{class:"fx-msg is-ok",role:"status",children:i(n)}),r("section",{class:"fx-sub-sec",children:[r("h4",{children:i("sub.secVersion")}),e.status==="rejected"&&e.reviewNote&&r(de,{tone:"error",children:e.reviewNote}),c&&r(de,{tone:"error",children:[i(c.kind==="info"?"sub.rejectedInfo":"sub.rejectedVersion",{version:c.version}),c.note?`: ${c.note}`:""]}),l?r(O,{children:[r(de,{children:i(l.kind==="info"?"sub.pendingInfo":"sub.pendingVersion",{version:l.version})}),r(de,{children:i("sub.pendingHint")})]}):e.status==="pending"&&e.source!=="zip"?r(de,{children:i("sub.inReview")}):e.source==="zip"?r(Sv,{item:e,checks:t,onDone:a}):r(_v,{item:e,onDone:a})]}),r(Cv,{item:e,onDone:a}),r("section",{class:"fx-sub-sec",children:[r("h4",{children:i("sub.secHistory")}),r("ul",{class:"fx-sub-time",children:[(e.versions||[]).map(d=>r("li",{children:[r("span",{children:It(d.createdAt,s)}),r("span",{children:i("sub.histApproved",{version:d.version})})]},`${d.version}-${d.createdAt}`)),e.createdAt&&r("li",{children:[r("span",{children:It(e.createdAt,s)}),r("span",{children:i("sub.histSubmitted")})]})]})]})]})}function Av({checks:e,onDone:t,onBack:n}){let o=rt(),a=dr(),i=Oe(),s=me(),[l,c]=C("zip"),[d,m]=C({type:"plugin",name:"",summary:"",githubRepoUrl:"",npmPackage:"",description:"",tags:"",minAppVersion:"",maxAppVersion:"",platforms:""}),[u,p]=C(new Set),[g,f]=C(null),[h,k]=C(null),x=R=>B=>{m(U=>({...U,[R]:B})),p(U=>new Set([...U,R])),s.clear()},S=R=>void s.run(async()=>{f(null),k(null);let B=await Qd(R);if(!i.current)return;if(!("data"in B))return B;if(f(B),!e)return;let U=await hr({dryRun:!0,fields:{source:"zip"},zip:B});if(!i.current)return;if(!U.ok)return U.out;let N=U.data;k(N);let G=N.manifest;m(z=>({...z,type:!u.has("type")&&G&&Kd.includes(G.type)?G.type:z.type,name:!u.has("name")&&!z.name&&G?.name?G.name:z.name}))}),w=()=>void s.run(async()=>{if(!d.name.trim())return{error:{key:"sub.errName"}};if(l!=="zip"&&!(l==="github"?d.githubRepoUrl:d.npmPackage).trim())return{error:{key:"sub.errSource"}};if(l==="zip"&&!g)return{error:{key:"sub.errZip"}};let R=l==="github"?{githubRepoUrl:d.githubRepoUrl.trim()}:l==="npm"?{npmPackage:d.npmPackage.trim()}:{},B=await hr({fields:{type:d.type,source:l,name:d.name.trim(),summary:d.summary.trim(),...R,...Object.fromEntries(vv.map(U=>[U,d[U].trim()]))},zip:l==="zip"?g:null});if(i.current){if(!B.ok)return B.out;t(String(B.data?.id||""))}}),T=(R,B,U={})=>r(tu,{id:a,name:R,label:o(B),value:d[R],onInput:x(R),...U});return r("div",{class:"fx-sub-detail",children:[r("button",{type:"button",class:"btn sm ghost fx-sub-back",onClick:n,children:[r(W,{name:"back",size:13}),o("sub.back")]}),r("div",{class:"fx-sub-dhead",children:r("div",{class:"fx-sub-item-head",children:r("strong",{children:o("sub.new")})})}),r("form",{class:"fx-sub-form fx-sub-form--inline",onSubmit:R=>{R.preventDefault(),w()},children:[r("fieldset",{disabled:s.pending,children:[r(Nt,{label:o("sub.source"),value:l,options:hv.map(R=>({value:R,label:ji(R)})),onChange:R=>{c(R),s.clear()}}),l==="zip"?r(O,{children:[r(nu,{id:a,file:g,disabled:s.pending,onPick:S}),h?r(ru,{check:h,update:!1}):r(de,{children:o("sub.zipHint")})]}):r(O,{children:[l==="github"?T("githubRepoUrl","sub.repo",{placeholder:"https://github.com/owner/repo"}):T("npmPackage","sub.npm",{placeholder:"@scope/plugin-name"}),r(de,{children:o(l==="github"?"sub.repoHint":"sub.npmHint")})]}),r("div",{class:"fx-sub-columns",children:[r("label",{class:"fx-sub-field",for:`${a}-type`,children:[r("span",{children:o("sub.type")}),r("select",{id:`${a}-type`,value:d.type,onChange:R=>x("type")(R.currentTarget.value),children:Kd.map(R=>r("option",{value:R,children:o(pa(R))},R))})]}),T("name","sub.name")]}),T("summary","sub.summary"),T("description","sub.description",{rows:3}),T("tags","sub.tags",{placeholder:o("sub.tagsHint")}),r("div",{class:"fx-sub-columns",children:[T("minAppVersion","sub.minAppVersion",{placeholder:"2.13.0"}),T("maxAppVersion","sub.maxAppVersion",{placeholder:o("sub.optional")})]}),T("platforms","sub.platforms",{placeholder:"desktop, android, ios, web"}),r(de,{children:o("sub.requirementsHint")}),r(de,{children:o("sub.identityHint")}),r(de,{children:o("sub.reviewHint")})]}),r("div",{class:"fx-sub-actions",children:[r(J,{variant:"primary",pending:s.pending,submit:!0,children:o("sub.submit")}),r(J,{disabled:s.pending,onClick:n,children:o("common.cancel")})]}),r(ge,{a:s,captchaSection:"submission"})]})]})}var Wi=null,Vi=new Set;function ou(e){let t=!1;for(let n of Vi)t=n(e)||t;Wi=t?null:{id:e,at:Date.now()}}var Ev=()=>{let e=Wi;return Wi=null,e&&Date.now()-e.at<3e4?e.id:null};function Pv({items:e,checks:t,reload:n}){let o=rt(),[a,i]=C("all"),[s,l]=C(()=>{let x=Ev();return x&&e.some(S=>S.id===x)?x:null}),[c,d]=C(()=>s!==null),[m,u]=C(null);X(()=>{let x=S=>e.some(w=>w.id===S)?(i("all"),l(S),d(!0),u(null),!0):!1;return Vi.add(x),()=>{Vi.delete(x)}},[e]);let p=e.filter(x=>Xd(x,a)),g=s==="new"?null:p.find(x=>x.id===s)||p[0]||null,f=x=>{l(x),d(!0),u(null)},h=(x,S)=>{i("all"),l(x),u({id:x,key:S}),n()},k=x=>e.filter(S=>Xd(S,x)).length;return r(Se,{title:o("sub.mine"),desc:o("sub.desc"),actions:r(O,{children:[r(J,{variant:"primary",disabled:s==="new",onClick:()=>f("new"),children:[r(W,{name:"plus",size:13}),o("sub.new")]}),r(J,{onClick:n,children:o("sub.refresh")})]}),children:!e.length&&s!=="new"?r(mt,{children:[r("strong",{children:o("sub.empty")}),r("p",{children:o("sub.emptyHint")})]}):r(O,{children:[!!e.length&&r("div",{class:"fx-sub-filter",children:r(Nt,{label:o("sub.filter"),value:a,onChange:i,options:["all","pending","approved","rejected"].map(x=>({value:x,label:`${o(x==="all"?"sub.all":Yd(x))} ${k(x)}`}))})}),r("div",{class:"fx-sub-cq",children:r("div",{class:`fx-sub-split${c?" is-picked":""}`,children:[r("nav",{class:"fx-sub-list","aria-label":o("sub.mine"),children:p.length?p.map(x=>r("button",{type:"button","data-submission-id":x.id,class:`fx-sub-li${x.id===g?.id?" is-on":""}`,"aria-current":x.id===g?.id||void 0,onClick:()=>f(x.id),children:[r("span",{class:"fx-sub-li-top",children:[r("strong",{children:x.name}),r(eu,{status:x.status})]}),r("span",{class:"fx-sub-li-meta",children:[o(pa(x.type)),ji(x.source),x.version&&`v${x.version}`].filter(Boolean).join(" \xB7 ")}),x.pendingUpdate&&r("span",{class:"fx-sub-li-meta",children:o(x.pendingUpdate.kind==="info"?"sub.pendingInfo":"sub.pendingVersion",{version:x.pendingUpdate.version})})]},x.id)):r("p",{class:"fx-note",children:o(e.length?"sub.noResults":"sub.empty")})}),s==="new"?r(Av,{checks:t,onBack:()=>{l(null),d(!1)},onDone:x=>h(x,"sub.submitted")}):g?r(Tv,{item:g,checks:t,notice:m?.id===g.id?m.key:null,onBack:()=>d(!1),onDone:x=>h(g.id,x)},g.id):r("div",{class:"fx-sub-detail",children:r("p",{class:"fx-note",children:o("sub.noResults")})})]})})]})})}function au(){let e=Ge(()=>Z("/market/mine"));switch(e.state){case"loading":return r($e,{});case"signedOut":return r(Je,{});case"error":return r(Xe,{error:e.error,onRetry:e.retry});case"ready":return r(Pv,{items:e.data?.items||[],checks:e.data?.dryRun===!0,reload:e.reload})}}var Gi=300,fa=e=>e.replace(/\/+$/,"").replace(/\/api$/,""),Mv=e=>typeof e=="string"&&/^https?:\/\//i.test(e);function Ji(e,t,n){let o=e.apps?.find(i=>i.slug===n);if(Mv(o?.publicUrl))return o.publicUrl;let a=e.publicBase?fa(e.publicBase):t;return a&&e.handle?`${a}/apps/${e.handle}/${n}/`:""}var Ki=(e=0)=>e<1024*1024?`${Math.max(1,Math.ceil(e/1024))} KB`:`${(e/1024/1024).toFixed(1)} MB`;function Rv(e,t){let n=oe().openExternal;n&&(t.preventDefault(),n(e)?.catch(()=>{}))}function Iv({page:e,url:t,reload:n}){let o=rt(),{locale:a}=le(),i=dr(),s=me(),[l,c]=C(null),d=e.listing_status||null,m=e.status==="disabled",u=(f,h,k,x)=>void s.run(async()=>{let S=await Z(f,{method:h,body:k});if(!S.ok)return Fe(S);x?.(),n()}),p=`/connect/apps/${encodeURIComponent(e.slug)}`,g=d==="pending"?["web.listingPending","fx-tag--accent"]:d==="approved"?["web.listingApproved","fx-status--resolved"]:d==="rejected"?["web.listingRejected","fx-tag--danger"]:null;return r("article",{class:"fx-sub-item","data-webpage":e.slug,children:[r("div",{class:"fx-sub-item-head",children:[r("strong",{children:e.name||e.slug}),m&&r("span",{class:"fx-tag fx-tag--danger",children:o("web.disabled")}),g&&r("span",{class:`fx-tag ${g[1]}`,children:o(g[0])})]}),t&&r("a",{class:"fx-web-url",href:t,target:"_blank",rel:"noopener noreferrer",onClick:f=>Rv(t,f),children:t}),r("div",{class:"fx-sub-meta",children:[r("span",{children:e.slug}),r("span",{children:Ki(e.total_bytes)}),e.updated_at&&r("span",{children:o("web.updated",{date:It(e.updated_at,a)})})]}),m&&r(de,{tone:"error",children:o("web.disabledHint")}),d==="rejected"&&e.listing_note&&r(de,{tone:"error",children:o("web.listingNote",{note:e.listing_note})}),l!==null&&r("form",{class:"fx-sub-form",onSubmit:f=>{f.preventDefault(),l.trim()&&u(`${p}/listing`,"PUT",{summary:l.trim()},()=>c(null))},children:[r("label",{class:"fx-sub-field",for:`${i}-summary`,children:[r("span",{children:o("web.listingSummary")}),r("textarea",{id:`${i}-summary`,rows:2,maxLength:Gi,value:l,disabled:s.pending,placeholder:o("web.listingSummaryPh"),onInput:f=>c(f.currentTarget.value)}),r("small",{children:o("web.listingHint")})]}),r("div",{class:"fx-sub-actions",children:[r(J,{variant:"primary",submit:!0,pending:s.pending,disabled:!l.trim(),children:o("web.listingSubmit")}),r(J,{disabled:s.pending,onClick:()=>c(null),children:o("common.cancel")})]})]}),l===null&&r("div",{class:"fx-web-actions",children:[t&&r(Ot,{text:t,label:o("web.copy")}),!m&&!d&&r(J,{disabled:s.pending,onClick:()=>c(""),children:o("web.listingApply")}),!m&&d==="rejected"&&r(J,{disabled:s.pending,onClick:()=>c(e.listing_summary||""),children:o("web.listingReapply")}),d==="pending"&&r(J,{pending:s.pending,onClick:()=>u(`${p}/listing`,"DELETE"),children:o("web.listingWithdraw")}),d==="approved"&&r(Dt,{label:o("web.listingDelist"),confirmLabel:o("web.listingDelistConfirm"),pending:s.pending,onConfirm:()=>u(`${p}/listing`,"DELETE")}),r(Dt,{variant:"danger",label:o("web.unpublish"),confirmLabel:o("web.unpublishConfirm"),pending:s.pending,onConfirm:()=>u(p,"DELETE")})]}),r(ge,{a:s})]})}function Lv({data:e,reload:t}){let n=rt(),[o,a]=C("");X(()=>{if(e.publicBase)return;let c=!0;return oe().authStatus?.().then(d=>{c&&d?.cloudUrl&&a(fa(d.cloudUrl))}).catch(()=>{}),()=>{c=!1}},[e.publicBase]);let i=e.apps||[],s=c=>Ji(e,o,c),l=typeof e.limit=="number"&&i.length>=e.limit;return r(Se,{title:n("web.title"),desc:n("web.desc"),actions:r(J,{onClick:t,children:n("web.refresh")}),children:[typeof e.limit=="number"&&r("p",{class:"fx-web-quota",children:[n("web.used",{used:i.length,limit:e.limit}),l?` \xB7 ${n("web.full")}`:""]}),i.length?i.map(c=>r(Iv,{page:c,url:s(c.slug),reload:t},c.slug)):r(mt,{children:[r("strong",{children:n("web.empty")}),r("p",{children:n("web.emptyHint")})]})]})}function iu(){let e=Ge(()=>Z("/connect/apps"));switch(e.state){case"loading":return r($e,{});case"signedOut":return r(Je,{});case"error":return r(Xe,{error:e.error,onRetry:e.retry});case"ready":return r(Lv,{data:e.data||{},reload:e.reload})}}var Dv=e=>!!e&&typeof e=="object"&&typeof e.enabled=="boolean";async function Xi(e,t){let n=oe().cloudInvoke;if(!n)throw new Error("no_bridge");let o=await n(e,t);if(!Dv(o))throw new Error(String(o?.error??"unavailable"));return o}var Nv=["diag.item.app","diag.item.settings","diag.item.agents","diag.item.plugins","diag.item.runs","diag.item.sync"];function su(){let[e,t]=C(0);return X(()=>oe().onAuthChanged?.(()=>t(n=>n+1)),[]),r(Ov,{standalone:!0},e)}function Ov({standalone:e=!1}={}){let{t,locale:n}=le(),o=Oe(),[a,i]=C(null),[s,l]=C(!1),c=me(),d=me();if(X(()=>{let h=!1,k=0,x=()=>{let w=++k;Xi("diagnostics:get").then(T=>{!h&&w===k&&(i(T),l(!0))},()=>{!h&&w===k&&(i(null),l(!0))})};x();let S=oe().onAuthChanged?.(x);return()=>{h=!0,S?.()}},[]),!a?.signedIn)return e?s?a?r(Je,{}):r(mt,{children:t("diag.unavailable")}):r($e,{panels:1}):null;let m=()=>void d.run(async()=>{try{let h=await Xi("diagnostics:uploadNow");return o.current&&i(h),h.lastError?{error:{key:"diag.failed",vars:{reason:h.lastError}}}:h.enabled&&h.lastUploadAt?{success:{key:"diag.uploaded"}}:void 0}catch(h){return{error:{raw:Tt(h)||t("err.generic")}}}}),u=async h=>{let k=!1;await c.run(async()=>{d.clear();try{let x=await Xi("diagnostics:set",h);o.current&&i(x),k=!0}catch(x){return{error:{raw:Tt(x)||t("err.generic")}}}}),k&&h.enabled&&o.current&&m()},p=a.intervalHours??24,g=a.mode==="manual"?t("diag.freq.manual"):p===1?t("diag.freq.hour"):p%24===0?p===24?t("diag.freq.day"):t("diag.freq.days",{n:p/24}):t("diag.freq.hours",{n:p}),f=`${a.lastUploadAt?t("diag.last",{time:Lt(a.lastUploadAt,n)}):t("diag.noUpload")} \xB7 ${g}`;return r(Se,{icon:"chart",title:t("diag.title"),desc:t("diag.desc"),children:[r(Ue,{label:t("diag.enable"),desc:t("diag.enableDesc"),children:r(jt,{checked:a.enabled,disabled:c.pending,label:t("diag.enable"),onChange:h=>void u({enabled:h})})}),r(Me,{class:"fx-diag",children:[r("strong",{children:t("diag.collected")}),r("ul",{children:Nv.map(h=>r("li",{children:t(h)},h))}),r(de,{children:t("diag.notCollected")})]}),a.sessions!==void 0&&r(Ue,{label:t("diag.sessions"),desc:t("diag.sessionsDesc"),children:r(jt,{checked:a.sessions,disabled:c.pending,label:t("diag.sessions"),onChange:h=>void u({sessions:h})})}),a.memory!==void 0&&r(Ue,{label:t("diag.memory"),desc:t("diag.memoryDesc"),children:r(jt,{checked:a.memory,disabled:c.pending,label:t("diag.memory"),onChange:h=>void u({memory:h})})}),r(Ue,{label:t("diag.activity"),desc:t("diag.activityDesc"),children:r(jt,{checked:a.activity,disabled:c.pending,label:t("diag.activity"),onChange:h=>void u({activity:h})})}),a.enabled&&r("div",{class:"settings-panel-footer fx-footer",children:[r("span",{class:"fx-muted",children:f}),r(J,{pending:d.pending,disabled:c.pending,onClick:m,children:t("diag.uploadNow")})]}),r(Me,{class:"fx-sub--tight",children:[r(de,{children:t("diag.retention",{n:a.retainDays})}),a.enabled&&a.lastError&&!d.error&&!d.success&&r("div",{class:"fx-msg is-error",role:"alert",children:t("diag.failed",{reason:a.lastError})}),r(ge,{a:c}),r(ge,{a:d})]})]})}var po=20,ma=5,Fv=5*1024*1024,ga=1e4,$v={open:"fb.status.open",in_progress:"fb.status.in_progress",resolved:"fb.status.resolved",closed:"fb.status.closed"};function cu(e){let{t}=le(),n=e.status||"open",o=$v[n];return r("span",{class:`fx-tag fx-status fx-status--${n}`,children:o?t(o):n})}function du(){let[e,t]=C(null),n=Ge(async()=>{let o=await Z(`/feedback?limit=${po}&offset=0`);return o.ok?{ok:!0,status:o.status,data:Array.isArray(o.data?.tickets)?o.data.tickets:[]}:o});return n.state==="loading"?r($e,{panels:1,rows:3}):n.state==="signedOut"?r(Je,{}):n.state==="error"?r(Xe,{error:n.error,onRetry:n.retry}):e?r(Wv,{id:e,onBack:()=>{t(null),n.reload()}}):r(Bv,{first:n.data,onOpen:t,onChanged:n.reload})}function Bv(e){let{t,locale:n}=le(),o=Oe(),[a,i]=C(e.first),[s,l]=C(e.first.length===po),[c,d]=C(!1),[m,u]=C(!1),p=me();X(()=>{i(e.first),l(e.first.length===po)},[e.first]);let g=()=>void p.run(async()=>{let f=await Z(`/feedback?limit=${po}&offset=${a.length}`);if(!f.ok)return{error:ft(f)};let h=Array.isArray(f.data?.tickets)?f.data.tickets:[];o.current&&(i(k=>{let x=new Set(k.map(S=>S.id));return[...k,...h.filter(S=>!x.has(S.id))]}),l(h.length===po))});return r(Se,{icon:"message",title:t("fb.list.title"),desc:t("fb.list.desc"),actions:c?void 0:r(J,{variant:"primary",onClick:()=>{u(!1),d(!0)},children:[r(W,{name:"plus",size:12})," ",t("fb.new")]}),children:[c&&r(qv,{onCancel:()=>d(!1),onSubmitted:()=>{d(!1),u(!0),e.onChanged()}}),m&&!c&&r(Me,{children:r("div",{class:"fx-msg is-ok",role:"status",children:t("fb.submitted")})}),a.length===0?r(mt,{children:t("fb.empty")}):r("div",{class:"fx-list fx-block",role:"list",children:a.map(f=>r("button",{type:"button",class:"fx-list-row fx-list-row--button",role:"listitem",onClick:()=>e.onOpen(f.id),children:[r("span",{class:`fx-dot${f.user_unread?" is-on":""}`,"aria-label":f.user_unread?t("fb.unread"):void 0}),r("span",{class:"fx-list-main",children:[r("strong",{children:f.title||(f.description||"").slice(0,60)||t("fb.untitled")}),r("small",{children:Lt(f.updated_at||f.created_at,n)})]}),r(cu,{status:f.status}),r(W,{name:"chevron",size:12})]},f.id))}),a.length>0&&(s||p.error)&&r("div",{class:"settings-panel-footer fx-footer",children:[r("span",{class:"fx-muted",children:t("fb.shown",{n:Le(a.length,n)})}),s&&r(J,{pending:p.pending,onClick:g,children:t("common.loadMore")})]}),p.error&&r(Me,{children:r(ge,{a:p})})]})}function Uv(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>t(String(o.result||"")),o.onerror=()=>n(o.error||new Error("read failed")),o.readAsDataURL(e)})}var Hv=0;function qv(e){let{t}=le(),n=Oe(),[o,a]=C(""),[i,s]=C([]),[l,c]=C(null),[d,m]=C(!1),u=ie(null),p=me(),[g,f]=C(0),h=ie(0);h.current=i.length;let k=async S=>{c(null);for(let w of Array.from(S||[])){if(!w.type||!w.type.startsWith("image/")){c({key:"err.imageType"});continue}if(w.size>Fv){c({key:"err.imageTooLarge"});continue}if(h.current>=ma){c({key:"err.tooManyImages"});break}h.current++,f(T=>T+1);try{let T=await Uv(w);if(!n.current)return;let R={id:`img-${++Hv}`,filename:w.name||"image",mime_type:w.type,size:w.size,data_base64:T.replace(/^data:[^;]+;base64,/,""),url:T};s(B=>B.length>=ma?B:[...B,R])}catch{h.current--,c({key:"err.imageRead"})}finally{n.current&&f(T=>T-1)}}},x=()=>void p.run(async()=>{let S=o.trim();if(!S)return{error:{key:"err.feedbackEmpty"}};if(S.length>ga)return{error:{key:"err.feedbackTooLong"}};let w=i.map(({filename:R,mime_type:B,size:U,data_base64:N})=>({filename:R,mime_type:B,size:U,data_base64:N})),T=await Z("/feedback",{method:"POST",body:{description:S,attachments:w},timeoutMs:12e4});if(!T.ok)return Fe(T);e.onSubmitted()});return r("div",{class:`fx-sub fx-form fx-composer${d?" is-drag":""}`,onPaste:S=>{let w=Array.from(S.clipboardData?.items||[]).filter(T=>T.kind==="file").map(T=>T.getAsFile()).filter(Boolean);w.length&&(S.preventDefault(),k(w))},onDragOver:S=>{S.preventDefault(),m(!0)},onDragLeave:()=>m(!1),onDrop:S=>{S.preventDefault(),m(!1),k(S.dataTransfer?.files)},children:[r("label",{class:"fx-field",children:[r("span",{children:t("fb.descLabel")}),r("textarea",{class:"fx-input fx-textarea",rows:5,value:o,maxLength:ga,autoFocus:!0,placeholder:t("fb.descPlaceholder"),onInput:S=>a(S.currentTarget.value)})]}),r("p",{class:"fx-note",children:t("fb.imagesHint",{n:ma})}),i.length>0&&r("div",{class:"fx-thumbs",children:i.map(S=>r("span",{class:"fx-thumb",children:[r("img",{src:S.url,alt:S.filename}),r("button",{type:"button","aria-label":t("fb.removeImage"),title:t("fb.removeImage"),onClick:()=>{s(w=>w.filter(T=>T.id!==S.id)),c(null)},children:r(W,{name:"x",size:11})})]},S.id))}),l&&r("div",{class:"fx-msg is-error",role:"alert",children:pt(l,t)}),r("input",{ref:u,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:S=>{let w=S.currentTarget;k(w.files),w.value=""}}),r("div",{class:"fx-inline",children:[r(J,{disabled:i.length>=ma||p.pending,onClick:()=>u.current?.click(),children:[r(W,{name:"image",size:12})," ",t("fb.addImages")]}),r("span",{class:"fx-grow"}),r(J,{disabled:p.pending,onClick:e.onCancel,children:t("common.cancel")}),r(J,{variant:"primary",pending:p.pending,disabled:g>0,onClick:x,children:t("fb.submit")})]}),r(ge,{a:p})]})}function Wv(e){let{t,locale:n}=le(),[o,a]=C({state:"loading"}),[i,s]=C(0),[l,c]=C(""),[d,m]=C(null),u=me(),p=ie(0);X(()=>{let T=++p.current;return Z(`/feedback/${encodeURIComponent(e.id)}`).then(R=>{if(T===p.current){if(!R.ok){a({state:"error",fail:R});return}a({state:"ready",data:{ticket:R.data.ticket,replies:R.data.replies??[],attachments:R.data.attachments??[]}}),Z(`/feedback/${encodeURIComponent(e.id)}/read`,{method:"POST"})}}),()=>{p.current++}},[e.id,i]),X(()=>{if(!d)return;let T=R=>{R.key==="Escape"&&m(null)};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[d]);let g=r("div",{class:"fx-back",children:r(J,{onClick:e.onBack,children:[r(W,{name:"back",size:12})," ",t("fb.back")]})});if(o.state==="loading")return r(O,{children:[g,r($e,{panels:1,rows:3})]});if(o.state==="error")return r(O,{children:[g,r(Xe,{error:ft(o.fail),onRetry:()=>{a({state:"loading"}),s(T=>T+1)}})]});let{ticket:f,replies:h,attachments:k}=o.data,x=f.status==="closed",S=T=>k.filter(R=>(R.reply_id??null)===T),w=()=>void u.run(async()=>{let T=l.trim();if(!T)return{error:{key:"err.replyEmpty"}};if(T.length>ga)return{error:{key:"err.replyTooLong"}};let R=await Z(`/feedback/${encodeURIComponent(f.id)}/replies`,{method:"POST",body:{content:T},timeoutMs:6e4});return R.ok?(c(""),s(B=>B+1),{success:{key:"fb.replySent"}}):Fe(R)});return r(O,{children:[g,r(Se,{icon:"message",title:f.title||t("fb.untitled"),actions:r(cu,{status:f.status}),desc:`#${String(f.id).slice(0,8)} \xB7 ${Lt(f.created_at,n)}`,children:[r("div",{class:"fx-thread fx-block",children:[r(lu,{who:"user",when:f.created_at,text:f.description||"",files:S(null),onZoom:m}),h.map((T,R)=>r(lu,{who:T.author_role==="user"?"user":"admin",when:T.created_at,text:T.content||"",files:T.id?S(T.id):[],onZoom:m},T.id??R))]}),x?r(Me,{children:r(de,{children:t("fb.closedNote")})}):r(Me,{class:"fx-form",children:[r("textarea",{class:"fx-input fx-textarea",rows:3,value:l,maxLength:ga,placeholder:t("fb.replyPlaceholder"),"aria-label":t("fb.replyPlaceholder"),onInput:T=>{c(T.currentTarget.value),u.success&&u.clear()}}),r("div",{class:"fx-inline",children:[r("span",{class:"fx-grow"}),r(J,{variant:"primary",pending:u.pending,onClick:w,children:t("fb.replySend")})]}),r(ge,{a:u})]})]}),d&&r("div",{class:"fx-lightbox",role:"dialog","aria-label":t("fb.imagePreview"),onClick:()=>m(null),children:r("img",{src:d,alt:""})})]})}function lu(e){let{t,locale:n}=le();return r("div",{class:`fx-bubble fx-bubble--${e.who}`,children:[r("div",{class:"fx-bubble-meta",children:[e.who==="user"?t("fb.you"):t("fb.support")," \xB7 ",Lt(e.when,n)]}),r("div",{class:"fx-bubble-text",children:e.text}),e.files.length>0&&r("div",{class:"fx-thumbs",children:e.files.map((o,a)=>{let i=o.mime_type||"";if(i.startsWith("image/")&&o.data_base64){let s=`data:${i};base64,${o.data_base64}`;return r("button",{type:"button",class:"fx-thumb",onClick:()=>e.onZoom(s),"aria-label":t("fb.imagePreview"),children:r("img",{src:s,alt:o.filename||""})},o.id??a)}return r("span",{class:"fx-tag",children:[r(W,{name:"card",size:11})," ",o.filename||t("fb.attachment")]},o.id??a)})})]})}var pu=[{id:"monthly",field:"priceMonthly",discount:"recurringPriceMonthly"},{id:"quarterly",field:"priceQuarterly",discount:"recurringPriceQuarterly"},{id:"yearly",field:"priceYearly",discount:"recurringPriceYearly"}];function uu(e,t){let n=pu.find(s=>s.id===t),o=Re(e.priceMonthly)??0,a=(Re(e[n.field])??0)||(t==="quarterly"?Math.round(o*300)/100:0),i=Re(e[n.discount])??0;return i>0&&i<a?i:a}function Yi(e,t,n){let o=Le(e,n),a=String(t||"CNY").toUpperCase();return a==="CNY"?`\xA5${o}`:a==="USD"?`$${o}`:`${o} ${a}`}async function Vv(){let[e,t,n]=await Promise.all([Z("/membership/my"),Z("/credits/balance"),Z("/features")]);return!e.ok&&Rn(e)?e:!t.ok&&Rn(t)?t:{ok:!0,status:200,data:{membership:e.ok?e.data?.membership??null:null,membershipFailed:!e.ok,balance:t.ok?Re(t.data?.balance):null,balanceFailed:!t.ok,features:n.ok&&n.data&&typeof n.data=="object"?n.data:{}}}}async function Zi(e,t){let[n,o]=await Promise.all([Vv(),Z(e)]);return n.ok?o.ok?{ok:!0,status:o.status,data:{status:n.data,list:t(o.data)}}:o:n}var Qi=e=>(Array.isArray(e)?e:[]).filter(t=>!!t&&typeof t=="object"&&t.isActive!==!1),jv=15*6e4;function es(e){let t=ie(0),n=ie(0),o=ie(e);return o.current=e,X(()=>{let a=()=>{let i=Date.now();i>t.current||document.visibilityState==="hidden"||i-n.current<2e3||(n.current=i,o.current?.())};return window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),()=>{window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",a)}},[]),()=>{t.current=Date.now()+jv}}function fu(e){let t=e.membership;return t&&(t.status===void 0||t.status==="active")?t:null}function ts(e){let{t,locale:n}=le(),o=e.status,a=fu(o),i=so(a?.tier),s=i==="Free";return r("section",{class:"fx-shop-strip","aria-label":t("store.status"),children:[r("div",{class:"fx-shop-stat",children:[r("small",{children:t("store.tier")}),o.membershipFailed?r("b",{class:"is-empty",children:"\u2014"}):r("b",{"data-testid":"shop-tier",children:[s?t("member.freeName"):Lr(a?.plan,n)||i,!s&&r("i",{children:a?.expiresAt?t("member.expires",{date:It(a.expiresAt,n)}):t("member.noExpiry")})]})]}),r("div",{class:"fx-shop-stat",children:[r("small",{children:t("store.balance")}),r("b",{class:o.balance===null?"is-empty":"","data-testid":"shop-balance",children:o.balance===null?"\u2014":Le(o.balance,n)})]}),(o.membershipFailed||o.balanceFailed)&&r("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")}),r("span",{class:"fx-grow"}),e.children]})}function ns(e){return r("section",{class:"fx-shop-section",children:[r("div",{class:"fx-shop-head",children:[r("div",{children:[r("h2",{children:e.title}),e.desc&&r("p",{children:e.desc})]}),e.right]}),e.children]})}function rs(e){let t=me(),[n,o]=C(null),a=(i,s,l,c)=>{o(i),t.run(async()=>{if(!await wn(s,l,c))return{error:{key:"err.openFailed"}};e()})};return{a:t,payingId:t.pending?n:null,open:a}}function os(e){return r(J,{variant:"ghost",pending:e.pending,disabled:e.disabled,onClick:e.onClick,children:[e.label,r(W,{name:"external",size:12})]})}function as(e){return r("div",{class:"fx-shop-empty",children:e.children})}function mu(){let{t:e,locale:t}=le(),n=Ge(()=>Zi("/payment/offerings",g=>Qi(g?.membershipPlans))),o=es(n.state==="ready"?n.reload:null),a=rs(o),[i,s]=C("monthly");if(n.state==="loading")return r($e,{panels:2,rows:2});if(n.state==="signedOut")return r(Je,{});if(n.state==="error")return r(Xe,{error:n.error,onRetry:n.retry});let{status:l,list:c}=n.data,d=l.features.payment!==!1,m=pu.filter(g=>c.some(f=>uu(f,g.id)>0)),u=m.some(g=>g.id===i)?i:m[0]?.id??"monthly",p=fu(l)?.tier?.toLowerCase()??null;return r(O,{children:[r(ts,{status:l,onRetry:n.reload}),r(ns,{title:e("store.choosePlan"),desc:e(d?"store.payHint":"store.payOff"),right:m.length>1?r(Nt,{value:u,label:e("store.period"),onChange:s,options:m.map(g=>({value:g.id,label:e(`store.period.${g.id}`)}))}):void 0,children:[c.length===0?r(as,{children:e("store.noPlans")}):r("div",{class:"fx-shop-tiers",children:c.map(g=>{let f=uu(g,u),h=!!p&&!l.membershipFailed&&g.tier?.toLowerCase()===p;return r("article",{class:"fx-shop-tier","data-tier":g.tier,children:[r("h3",{children:[Lr(g,t)||so(g.tier),h&&r("span",{class:"fx-shop-current",children:[r(W,{name:"check",size:12}),e("store.currentTier")]})]}),r("div",{class:"fx-shop-price",children:f>0?r(O,{children:[Yi(f,g.currency,t),r("small",{children:e(`store.per.${u}`)})]}):"\u2014"}),r("p",{children:Mc(g,t)}),d&&f>0&&r(os,{label:e(h?"member.renew":"store.pay"),pending:a.payingId===g.id,disabled:a.a.pending,onClick:()=>a.open(g.id,"membership",g.id,u)})]},g.id)})}),r(ge,{a:a.a})]})]})}function gu(){let{t:e,locale:t}=le(),n=Ge(()=>Zi("/payment/offerings",c=>Qi(c?.packages))),o=es(n.state==="ready"?n.reload:null),a=rs(o);if(n.state==="loading")return r($e,{panels:2,rows:2});if(n.state==="signedOut")return r(Je,{});if(n.state==="error")return r(Xe,{error:n.error,onRetry:n.retry});let{status:i,list:s}=n.data,l=i.features.payment!==!1;return r(O,{children:[r(ts,{status:i,onRetry:n.reload}),r(ns,{title:e("store.packs"),desc:e(l?"store.packsHint":"store.payOff"),children:[s.length===0?r(as,{children:e("store.noPacks")}):r("div",{class:"fx-shop-grid",children:s.map(c=>{let d=Re(c.price)??0;return r(hu,{icon:"coins",kind:e("store.kind.pack"),name:`${c.name||""} \xB7 ${e("store.nPoints",{n:Le(c.credits,t)})}`,desc:c.description,meta:e("store.instant"),children:l&&d>0&&r(os,{label:e("store.payPrice",{price:Yi(d,c.currency,t)}),pending:a.payingId===c.id,disabled:a.a.pending,onClick:()=>a.open(c.id,"credits")})},c.id)})}),r(ge,{a:a.a})]})]})}function hu(e){return r("article",{class:"fx-shop-card",children:[r("div",{class:"fx-shop-visual","aria-hidden":"true",children:e.emoji?r("span",{class:"fx-shop-emoji",children:e.emoji}):r(W,{name:e.icon,size:18})}),r("div",{class:"fx-shop-body",children:[r("span",{class:"fx-shop-kind",children:e.kind}),r("strong",{children:e.name}),e.desc&&r("p",{children:e.desc}),r("div",{class:"fx-shop-foot",children:[r("span",{class:"fx-shop-meta",children:e.meta}),r("span",{class:"fx-shop-acts",children:e.children})]}),e.below]})]})}var Gv={reset_card:"store.kind.card",api_quota_key:"store.kind.code"};function Jv(e){let{t,locale:n}=le(),{p:o}=e,a=me(),[i,s]=C(null),[l,c]=C(!1),d=Re(o.pricePoints)??0,m=Re(o.priceRmb)??0,u=typeof o.availableKeys=="number"&&o.availableKeys<=0,p=d>0&&e.balance!==null&&e.balance<d,g=()=>void a.run(async()=>{let h=await Z("/shop/purchase",{method:"POST",body:{productId:o.id,payMethod:"points"},timeoutMs:3e4});return h.ok?(s(typeof h.data?.key=="string"&&h.data.key?h.data.key:null),e.onRedeemed(),{success:{key:"store.redeemed"}}):h.status===0?(c(!0),{error:{key:"store.uncertain"}}):Fe(h)}),f=u?t("store.soldOut"):p?t("err.insufficientPoints"):typeof o.availableKeys=="number"?t("store.left",{n:o.availableKeys}):t("store.toBackpack");return r(hu,{icon:o.type==="api_quota_key"?"key":"gift",emoji:o.icon,kind:t(Gv[o.type||""]??"store.kind.item"),name:o.name||"",desc:o.description,meta:f,below:r(O,{children:[r(ge,{a}),i&&r("div",{class:"fx-shop-key",children:[r("code",{children:i}),r(Ot,{text:i,label:t("backpack.copyKey")})]})]}),children:[d>0&&r(Dt,{variant:"primary",pending:a.pending,disabled:u||p||l,label:t("store.redeem",{n:Le(d,n)}),confirmLabel:t("store.redeemConfirm",{n:Le(d,n)}),onConfirm:g}),e.payment&&m>0&&r(os,{label:Yi(m,o.currency,n),pending:e.paying,disabled:e.payBusy||u,onClick:e.onPay})]})}function vu(){let{t:e,goTo:t}=le(),n=Ge(()=>Zi("/shop/products",d=>Qi(d))),o=es(n.state==="ready"?n.reload:null),a=rs(o);if(n.state==="loading")return r($e,{panels:2,rows:2});if(n.state==="signedOut")return r(Je,{});if(n.state==="error")return r(Xe,{error:n.error,onRetry:n.retry});let{status:i,list:s}=n.data,l=i.features.payment!==!1,c=i.features.shop!==!1;return r(O,{children:[r(ts,{status:i,onRetry:n.reload,children:t&&r(J,{onClick:()=>t("backpack"),children:e("store.openBackpack")})}),r(ns,{title:e("store.redeemTitle"),desc:e("store.redeemHint"),children:[!c||s.length===0?r(as,{children:e(c?"store.noItems":"store.itemsOff")}):r("div",{class:"fx-shop-grid",children:s.map(d=>r(Jv,{p:d,balance:i.balance,payment:l,paying:a.payingId===d.id,payBusy:a.a.pending,onPay:()=>a.open(d.id,"storefront"),onRedeemed:n.reload},d.id))}),r(ge,{a:a.a})]})]})}var Kv="forsion-extend",bu=[{id:"account",titleKey:"page.account",tabTitleKey:"page.profile",aliases:["profile"],keywords:"\u4E2A\u4EBA\u4E3B\u9875 profile avatar nickname \u5934\u50CF \u6635\u79F0",Component:Rd},{id:"account-details",parent:"account",titleKey:"account.details.title",keywords:"\u767B\u5F55 \u8D44\u6599 \u624B\u673A \u90AE\u7BB1 \u5207\u6362 \u9000\u51FA login sign-in email phone account switch logout",Component:ud},{id:"security",parent:"account",titleKey:"page.security",keywords:"\u5B89\u5168 \u5BC6\u7801 \u8BBE\u5907 \u7ED1\u5B9A security password devices",Component:Hd},{id:"quota",titleKey:"page.membershipUsage",tabTitleKey:"page.membershipQuota",aliases:["membership"],keywords:"\u4F1A\u5458 \u989D\u5EA6 \u540E\u53F0 quota membership background",Component:Nd},{id:"points",parent:"quota",titleKey:"page.pointsInvite",keywords:"\u79EF\u5206 \u9080\u8BF7 \u5151\u6362 \u5145\u503C points invite redeem credits",Component:Dd},{id:"usage",parent:"quota",titleKey:"page.usage",keywords:"\u7528\u91CF \u8BB0\u5F55 \u6D88\u8017 usage history tokens",Component:Gd},{id:"backpack",titleKey:"page.backpack",keywords:"\u80CC\u5305 \u5361\u5238 backpack inventory",Component:Fd},{id:"submission",titleKey:"page.submission",Component:au},{id:"webpages",titleKey:"page.webPages",keywords:"\u7F51\u9875 \u53D1\u5E03 \u94FE\u63A5 \u4E0A\u67B6 \u7F51\u7AD9 web pages publish link site connect",Component:iu},{id:"feedback",titleKey:"page.feedback",keywords:"\u5E2E\u52A9 \u53CD\u9988 help feedback",Component:du},{id:"privacy",titleKey:"page.privacy",tabTitleKey:"privacy.tab",keywords:"\u9690\u79C1 \u9065\u6D4B \u5D29\u6E83 \u7EDF\u8BA1 \u5E2E\u52A9\u6539\u8FDB privacy telemetry crash usage statistics improve",Component:pd,desktopOnly:!0},{id:"diagnostics",parent:"privacy",titleKey:"diag.title",keywords:"\u8BCA\u65AD \u4E0A\u4F20 \u65E5\u5FD7 diagnostic upload logs",Component:su,desktopOnly:!0}],yu=[{id:"membership",titleKey:"store.membership",descKey:"store.membership.desc",icon:"crown",Component:mu},{id:"points",titleKey:"store.points",descKey:"store.points.desc",icon:"coins",Component:gu},{id:"items",titleKey:"store.items",descKey:"store.items.desc",icon:"package",Component:vu}],zn=e=>`forsion/fx:${Kv}:${e}`;function xu(e){let{ctx:t,page:n}=e,[o,a]=C(()=>De(t.getLocale?.()));X(()=>{a(De(t.getLocale?.()));let l=t.subscribeLocale?.(c=>a(De(c)));return()=>{typeof l=="function"&&l()}},[t]);let i=Vt(()=>{let l=t.app?.openSettings;return{ctx:t,locale:o,t:In(o),goTo:typeof l=="function"?c=>l.call(t.app,zn(c)):null}},[t,o]),s=n.Component;return r(xi.Provider,{value:i,children:r("div",{class:"fx-acct","data-fx-page":n.id,lang:o==="zh"?"zh-CN":"en",children:[r("style",{children:yc}),r(s,{})]})})}function ku(e,t=window){let n=un(t?.tangu);if(!e||!n?.cloudFetch||!n.cloudInvoke||!pn(n)||typeof e.registerStoreView!="function")return 0;let o=a=>()=>xe(De(e.getLocale?.()),a);for(let a of yu)e.registerStoreView({id:a.id,title:o(a.titleKey),description:o(a.descKey),group:o("store.group"),icon:a.icon,mount(i){return Ee(r(xu,{ctx:e,page:a}),i),()=>{Ee(null,i)}}});return yu.length}function wu(e,t=window){let n=un(t?.tangu);if(!e||!n?.cloudFetch||!n.cloudInvoke||!pn(n)||typeof e.registerSettingsView!="function")return 0;let o=Mn(n)?bu.filter(a=>!a.desktopOnly):bu;for(let a of o)e.registerSettingsView({id:a.id,category:"forsion",parent:a.parent,tabTitle:a.tabTitleKey?()=>xe(De(e.getLocale?.()),a.tabTitleKey):void 0,aliases:a.aliases,keywords:a.keywords,title:()=>xe(De(e.getLocale?.()),Mn(n)&&a.webTitleKey||a.titleKey),mount(i){return Ee(r(xu,{ctx:e,page:a}),i),()=>{Ee(null,i)}}});return o.length}var Dr=[{id:"lv1"},{id:"lv2"},{id:"lv3"},{id:"lv4"},{id:"new",version:"2.14"}],ne=(e,t)=>({zh:e,en:t}),Xn=[{id:"welcome",level:"lv1",icon:"compass",title:ne("\u8BA4\u8BC6 Forsion","Meet Forsion"),tasks:[{id:"guide-open",event:"own:guide.open",goal:1,title:ne("\u6253\u5F00\u4F7F\u7528\u6307\u5357","Open the guide")},{id:"space-switch",event:"space.switch",goal:1,title:ne("\u5728 Ribbon \u4E0A\u6362\u4E00\u4E2A Space","Switch to another Space from the ribbon"),go:{space:"amadeus"},spot:{anchor:"ribbon-spaces",here:!0,title:ne("\u70B9 Ribbon \u4E0A\u4EFB\u610F\u4E00\u4E2A\u56FE\u6807","Click any icon on the ribbon"),body:ne("\u6BCF\u4E2A\u56FE\u6807\u662F\u4E00\u4E2A Space\uFF0C\u70B9\u4E00\u4E0B\u5C31\u5207\u8FC7\u53BB\u3002","Each icon is a Space. One click switches to it.")}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon",label:ne("Ribbon\uFF1A\u6BCF\u4E2A\u56FE\u6807\u662F\u4E00\u4E2A Space","Ribbon: each icon is a Space")},{slot:"main-tabs",label:ne("\u4E3B\u533A\u7684\u6807\u7B7E\u9875","Tabs in the main area"),text:ne("\u6807\u7B7E\u9875","Tab")},{slot:["left-list","right"],label:ne("\u5DE6\u53F3\u4FA7\u680F","Left and right sidebars")}]}},{id:"chat",level:"lv1",icon:"message-circle",title:ne("\u548C Tangu \u8BF4\u7B2C\u4E00\u53E5\u8BDD","Say hello to Tangu"),tasks:[{id:"chat-first",event:"chat.send",goal:1,title:ne("\u53D1\u51FA\u7B2C\u4E00\u6761\u6D88\u606F","Send your first message"),go:{space:"tangu",command:"new-chat"},spot:{anchor:"chat-composer",title:ne("\u5728\u8FD9\u91CC\u6253\u4E2A\u62DB\u547C","Say hello here"),body:ne("\u6253\u5B57\uFF0C\u6309 Enter \u53D1\u9001\uFF1BShift+Enter \u6362\u884C\u3002","Type, then press Enter to send. Shift+Enter starts a new line.")}},{id:"chat-five",event:"chat.send",goal:5,title:ne("\u518D\u804A\u51E0\u53E5\uFF08\u7D2F\u8BA1 5 \u6761\uFF09","Keep talking (5 messages in all)"),go:{space:"tangu"},spot:{anchor:"chat-composer",title:ne("\u63A5\u7740\u804A\u51E0\u53E5","Keep the conversation going"),body:ne("\u7D2F\u8BA1\u53D1\u51FA 5 \u6761\u5C31\u7B97\u5B8C\u6210\u3002","Five messages in all and this one is done.")}}],figure:{layout:"space",main:"chat",marks:[{slot:"left-top",label:ne("\u5DE6\u680F\u9876\u90E8\u300C\u65B0\u4F1A\u8BDD\u300D",'"New chat" at the top of the left sidebar'),text:ne("\u65B0\u4F1A\u8BDD","New chat")},{slot:"main-bottom",label:ne("\u8F93\u5165\u6846","Message box")}]}},{id:"note",level:"lv1",icon:"file-text",title:ne("\u5199\u4E0B\u7B2C\u4E00\u7BC7\u7B14\u8BB0","Write your first note"),tasks:[{id:"note-create",event:"note.create",goal:1,title:ne("\u65B0\u5EFA\u4E00\u7BC7\u7B14\u8BB0","Create a note"),go:{space:"amadeus",command:"amadeus-new-note"},spot:{anchor:"note-new",title:ne("\u70B9\u300C\u65B0\u5EFA\u7B14\u8BB0\u300D",'Click "New note"'),body:ne("\u4E5F\u53EF\u4EE5\u6309 \u2318/Ctrl+N\u3002\u6BCF\u7BC7\u7B14\u8BB0\u90FD\u662F\u667A\u5E93\u91CC\u7684\u4E00\u4E2A .md \u6587\u4EF6\u3002","Or press \u2318/Ctrl+N. Every note is a .md file in your vault.")}},{id:"note-link",event:"note.wikilink",goal:1,title:ne("\u7528 [[ \u94FE\u63A5\u53E6\u4E00\u7BC7\u7B14\u8BB0","Link another note with [["),go:{space:"amadeus"},spot:{anchor:"note-body",title:ne("\u5728\u6B63\u6587\u91CC\u8F93\u5165 [[","Type [[ in the note"),body:ne("\u4ECE\u5F39\u51FA\u7684\u5019\u9009\u91CC\u9009\u4E00\u7BC7\u7B14\u8BB0\uFF0C\u6309 Enter\uFF0C\u4E24\u7BC7\u5C31\u8FDE\u4E0A\u4E86\u3002","Pick a note from the suggestions and press Enter to link the two.")}},{id:"note-canvas",event:"note.canvas",goal:1,title:ne("\u628A\u7B14\u8BB0\u5207\u5230\u753B\u5E03","Switch a note to the canvas"),go:{space:"amadeus",command:"amadeus-toggle-canvas"},spot:{anchor:"note-canvas",title:ne("\u70B9\u300C\u753B\u5E03\u300D",'Click "Canvas"'),body:ne("\u540C\u4E00\u7BC7\u7B14\u8BB0\u644A\u6210\u767D\u677F\uFF0C\u968F\u624B\u6446\uFF1B\u70B9\u300C\u6587\u6863\u300D\u5207\u56DE\u6765\uFF0C\u4E00\u4E2A\u5B57\u90FD\u4E0D\u53D8\u3002",'The same note opens as a whiteboard. Click "Document" to switch back; nothing changes.')}}],figure:{layout:"space",main:"doc",marks:[{slot:"left-top",label:ne("\u5DE6\u680F\u300C\u65B0\u5EFA\u7B14\u8BB0\u300D",'"New note" in the left sidebar'),text:ne("\u65B0\u5EFA\u7B14\u8BB0","New note")},{slot:"main-top",label:ne("\u300C\u6587\u6863 / \u753B\u5E03\u300D\u80F6\u56CA","The Document / Canvas switch")},{slot:"right",label:ne("\u53F3\u680F\u91CC\u7684\u300C\u53CD\u94FE\u300D","Backlinks in the right sidebar"),text:ne("\u53CD\u94FE","Backlinks")}]}},{id:"theme",level:"lv1",icon:"sparkles",title:ne("\u6362\u4E00\u8EAB\u4E3B\u9898","Make it look like yours"),tasks:[{id:"theme-change",event:"theme.change",goal:1,title:ne("\u6362\u4E00\u4E2A\u4E3B\u9898","Pick another theme"),go:{settings:"theme"}}],figure:{layout:"settings",marks:[{slot:"nav",label:ne("\u8BBE\u7F6E\u91CC\u7684\u300C\u5916\u89C2\u300D",'"Appearance" in Settings'),text:ne("\u5916\u89C2","Appearance")},{slot:"section-1",label:ne("\u8BBE\u8BA1\u8BED\u8A00","Design language"),text:ne("\u8BBE\u8BA1\u8BED\u8A00","Design language")},{slot:"section-2",label:ne("\u4E3B\u9898\u8272\u548C\u80CC\u666F\u8272","Theme and background colors"),text:ne("\u914D\u8272","Colors")}]}},{id:"database",level:"lv2",icon:"database",title:ne("\u6570\u636E\u5E93\uFF1A\u628A\u7B14\u8BB0\u53D8\u6210\u8868","Databases: turn notes into a table"),tasks:[{id:"base-create",event:"base.create",goal:1,title:ne("\u65B0\u5EFA\u4E00\u4E2A\u6570\u636E\u5E93","Create a database"),go:{space:"amadeus"}}],figure:{layout:"space",main:"doc",marks:[{slot:"left-list",label:ne("\u7B14\u8BB0\u6811\uFF1A\u53F3\u952E \u2192\u300C\u65B0\u5EFA Base\u300D",'Note tree: right-click \u2192 "New Base"')},{slot:"main-body",label:ne("\u6B63\u6587\u91CC\u8F93\u5165 /\uFF0C\u9009\u300C\u591A\u7EF4\u8868\u300D",'Type / in a note and pick "Database"')}]}},{id:"market",level:"lv2",icon:"store",title:ne("\u4ECE\u5546\u5E97\u88C5\u4E00\u4E2A\u63D2\u4EF6","Install a plugin from the store"),tasks:[{id:"market-install",event:"market.install",goal:1,title:ne("\u88C5\u4E00\u4E2A\u63D2\u4EF6","Install a plugin"),go:{command:"open-market"}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon-bottom",label:ne("Ribbon \u5E95\u90E8\u7684\u300C\u5546\u5E97\u300D",'"Store" at the bottom of the ribbon')}]}},{id:"space",level:"lv2",icon:"layout-grid",title:ne("\u5B58\u4E0B\u81EA\u5DF1\u7684 Space","Save a Space of your own"),tasks:[{id:"space-save",event:"space.save",goal:1,title:ne("\u628A\u5F53\u524D\u5E03\u5C40\u5B58\u6210 Space","Save the current layout as a Space"),go:{command:"save-as-space"}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon-plus",label:ne("Space \u533A\u7684 \uFF0B","The + under the Spaces")},{slot:"main-top-right",label:ne("\u53F3\u4E0A\u89D2\u7684\u6D6E\u52A8\u6309\u94AE","Floating buttons at the top right")}]}},{id:"calendar",level:"lv2",icon:"calendar-days",title:ne("\u65E5\u5386\u548C\u5F85\u529E","Calendar and to-dos"),tasks:[{id:"calendar-event",event:"calendar.event",goal:1,title:ne("\u5728\u65E5\u5386\u4E0A\u5EFA\u4E00\u4E2A\u65E5\u7A0B","Add an event to the calendar"),go:{space:"calendar"}},{id:"todo-done",event:"todo.done",goal:1,title:ne("\u52FE\u6389\u4E00\u6761\u5F85\u529E","Tick off a to-do"),go:{space:"calendar"}}],figure:{layout:"space",main:"grid",marks:[{slot:"left-plus",label:ne("\u5DE6\u680F\u300C\u65E5\u5386\u300D\u65C1\u7684 +",'The + next to "Calendars" in the left sidebar')},{slot:"main-body",label:ne("\u65F6\u95F4\u683C\uFF1A\u5355\u51FB\u5EFA\u65E5\u7A0B","Time grid: click to add an event")},{slot:"right",label:ne("\u53F3\u680F\u7684\u5F85\u529E","To-dos in the right sidebar"),text:ne("\u5F85\u529E","To-dos")}]}},{id:"agent",level:"lv3",icon:"bot",title:ne("\u521B\u5EFA\u4F60\u7684 Agent","Create your own agent"),tasks:[{id:"agent-create",event:"agent.create",goal:1,title:ne("\u65B0\u5EFA\u4E00\u4E2A Agent","Create an agent"),go:{space:"agents"},spot:{anchor:"agent-new",title:ne("\u70B9\u300C\u521B\u5EFA Agent\u300D",'Click "Create agent"'),body:ne("\u8D77\u4E2A\u540D\u5B57\uFF0C\u5199\u51E0\u53E5\u5B83\u8BE5\u600E\u4E48\u505A\u4E8B\u3002","Give it a name and a few lines on how it should work.")}}]},{id:"muse",level:"lv3",icon:"sparkles",title:ne("Muse\uFF1A\u8BA9\u7075\u611F\u81EA\u5DF1\u957F","Muse: ideas that grow on their own"),tasks:[{id:"muse-open",event:"muse.open",goal:1,title:ne("\u53BB Muse \u770B\u4E00\u773C","Take a look at Muse"),go:{space:"muse"}}]},{id:"automation",level:"lv3",icon:"zap",title:ne("\u81EA\u52A8\u5316\uFF1A\u5230\u70B9\u5C31\u505A","Automations: done on schedule"),tasks:[{id:"automation-create",event:"automation.create",goal:1,title:ne("\u5EFA\u4E00\u6761\u81EA\u52A8\u5316","Create an automation"),go:{space:"automation"}}]},{id:"computer",level:"lv4",icon:"terminal",title:ne("\u8BA9 Tangu \u64CD\u4F5C\u7535\u8111","Let Tangu use your computer"),tasks:[{id:"cu-use",event:"computer.use",goal:1,title:ne("\u8BA9 Tangu \u7528\u4E00\u6B21\u7535\u8111","Have Tangu use your computer once"),go:{settings:"computer-use"},desktopOnly:!0}]},{id:"plugin",level:"lv4",icon:"code",title:ne("\u5199\u4E00\u4E2A\u81EA\u5DF1\u7684\u63D2\u4EF6","Write a plugin of your own"),tasks:[{id:"plugin-dev",event:"plugin.local",goal:1,title:ne("\u4ECE\u672C\u673A\u6587\u4EF6\u5939\u8F7D\u5165\u4E00\u4E2A\u63D2\u4EF6","Load a plugin from a local folder"),go:{settings:"amadeus-plugins"},desktopOnly:!0}]},{id:"mini-capsules",level:"new",icon:"layout-grid",title:ne("Mini \u9876\u680F\u4E24\u9897\u80F6\u56CA","Two capsules on the Mini bar"),tasks:[{id:"mini-open",event:"mini.open",goal:1,title:ne("\u6253\u5F00\u4E00\u6B21 Mini \u7A97\u53E3","Open the Mini window"),go:{command:"open-mini"},desktopOnly:!0}]},{id:"todo-standalone",level:"new",icon:"list-tree",title:ne("\u5F85\u529E\u89C6\u56FE\u5355\u72EC\u6253\u5F00","Open the to-do view on its own"),tasks:[{id:"todo-open",event:"todo.open",goal:1,title:ne("\u5355\u72EC\u6253\u5F00\u4E00\u6B21\u5F85\u529E\u89C6\u56FE","Open the to-do view by itself"),go:{space:"calendar"}}]}],fn=e=>Xn.filter(t=>t.level===e),Yn=e=>Xn.find(t=>t.id===e);var Gt=Dr.filter(e=>!e.version);function Sn(e,t){let n=e.event.startsWith("own:");return t.count(n?e.event.slice(4):e.event,n)>=e.goal}var fo=(e,t)=>e.filter(n=>t.desktop||!n.desktopOnly);function zu(e,t){return fn(e).every(n=>fo(n.tasks,t).every(o=>Sn(o,t)))}function ha(e,t){let n=Gt.findIndex(o=>o.id===e);return n<=0||t.unlockAll?!0:Gt.slice(0,n).every(o=>zu(o.id,t))}function Nr(e,t){return ha(e.level,t)?fo(e.tasks,t).every(n=>Sn(n,t))?"done":"active":"locked"}function is(e){return Gt.find(t=>!zu(t.id,e))?.id??null}function Su(e){let t={...e,unlockAll:!1},n=Gt[0].id;for(let o of Gt)ha(o.id,t)&&(n=o.id);return n}function Xv(e,t){let n=e.split(/[.+-]/).map(a=>Number.parseInt(a,10)||0),o=t.split(/[.+-]/).map(a=>Number.parseInt(a,10)||0);for(let a=0;a<Math.max(n.length,o.length);a++){let i=(n[a]??0)-(o[a]??0);if(i)return i<0?-1:1}return 0}function ss(e){let t=Dr.find(n=>n.version);return t?.version&&e.appVersion&&Xv(e.appVersion,t.version)>=0?t.version:null}var _u=e=>Xn.filter(t=>t.level!=="new"||!!ss(e));function Cu(e,t){let n=fo(fn(e).flatMap(o=>o.tasks),t);return{done:n.filter(o=>Sn(o,t)).length,total:n.length}}var ls={zh:{agent:`\u9664\u4E86\u9ED8\u8BA4\u7684 Tangu\uFF0C\u4F60\u53EF\u4EE5\u6309\u7528\u9014\u5EFA\u81EA\u5DF1\u7684 Agent\uFF1A\u7ED9\u5B83\u540D\u5B57\u3001\u5DE5\u4F5C\u6307\u4EE4\u548C\u81EA\u5DF1\u7684\u8BB0\u5FC6\uFF0C\u8BA9\u5B83\u4E13\u95E8\u505A\u4E00\u7C7B\u4E8B\u3002
742
+ `;var go=e=>typeof e=="string"?e:"";function wh(e){if(!e||typeof e!="object")return null;let t=e,o=typeof t.id=="string"?t.id.trim():typeof t.id=="number"&&Number.isFinite(t.id)?String(t.id):"",r=go(t.titleZh),a=go(t.bodyZh);return!o||!r.trim()&&!a.trim()?null:{id:o,titleZh:r,titleEn:go(t.titleEn).trim()?go(t.titleEn):null,bodyZh:a,bodyEn:go(t.bodyEn).trim()?go(t.bodyEn):null,format:t.format==="html"?"html":"markdown",publishedAt:go(t.publishedAt)||null}}function zh(e,t){return t==="en"&&e.bodyEn?{lang:"en",title:e.titleEn??e.titleZh,body:e.bodyEn}:{lang:"zh",title:e.titleZh,body:e.bodyZh}}var Sh=new bi({gfm:!0,breaks:!0}),_h=["script","iframe","frame","frameset","object","embed","applet","portal","form","input","textarea","select","option","button","link","meta","base","noscript"],Ch=/^(?:https?:|mailto:|#)/i;function Vc(e){return ai.sanitize(e,{FORCE_BODY:!0,RETURN_DOM_FRAGMENT:!0,FORBID_TAGS:_h,ALLOWED_URI_REGEXP:Ch})}function Ii(e,t){let o=t==="markdown"?Sh.parse(e,{async:!1}):e;return Vc(o)}var la=null;function Ri(){if(la===null)try{let e=Vc('<p onclick="1"><a href="javascript:void 0">a</a></p><script>1<\/script><iframe></iframe>');la=ai.isSupported&&!e.querySelector("script, iframe, [onclick], a[href]")}catch{la=!1}return la}function Ah(e){try{let t=new URL(String(e??"").trim());return t.protocol==="http:"||t.protocol==="https:"?t.href:null}catch{return null}}var Th="http://www.w3.org/1999/xlink";function Bn(e){let t=e.target,o=t&&typeof t.closest=="function"?t.closest("a, area"):null;if(!o||(e.preventDefault(),e.type!=="click"))return;let r=Ah(o.getAttribute("href")??o.getAttributeNS(Th,"href"));if(r)try{te().openExternal?.(r)?.catch(()=>{})}catch{}}function ca(e){return e.shadowRoot??e.attachShadow({mode:"open"})}function Eh(e){let{ctx:t,ann:o}=e,[r,a]=S(()=>Ne(t.getLocale?.()));Y(()=>{a(Ne(t.getLocale?.()));let p=t.subscribeLocale?.(m=>a(Ne(m)));return()=>{typeof p=="function"&&p()}},[t]);let i=rn(()=>$n(r),[r]),s=zh(o,r),l=ie(null),c=ie(null),d=ie(null),f=ie(null),u=ie(e.onClose);return u.current=e.onClose,Y(()=>{let p=document.activeElement instanceof HTMLElement?document.activeElement:null;l.current?.focus();let m=h=>{if(h.key==="Escape"){h.preventDefault(),h.stopPropagation(),u.current();return}if(h.key!=="Tab")return;let k=c.current,y=d.current,x=l.current;if(!k||!y||!x)return;let w=document.activeElement;if(!w||!x.contains(w)){h.preventDefault(),(h.shiftKey?y:k).focus();return}h.shiftKey&&(w===k||w===x)?(h.preventDefault(),y.focus()):!h.shiftKey&&w===y&&(h.preventDefault(),k.focus())},g=h=>{let k=l.current;k&&h.target instanceof Node&&!k.contains(h.target)&&k.focus()};return window.addEventListener("keydown",m,!0),document.addEventListener("focusin",g,!0),()=>{window.removeEventListener("keydown",m,!0),document.removeEventListener("focusin",g,!0),p?.isConnected&&p.focus()}},[]),Y(()=>{let p=f.current;if(!p)return;let m=ca(p);return m.addEventListener("click",Bn),m.addEventListener("auxclick",Bn),()=>{m.removeEventListener("click",Bn),m.removeEventListener("auxclick",Bn)}},[]),Y(()=>{let p=f.current;if(!p)return;let m=document.createElement("style");m.textContent=sa;let g=document.createElement("div");g.className="doc",g.appendChild(Ii(s.body,o.format)),ca(p).replaceChildren(m,g)},[s.body,o.format]),n("div",{class:"fx-ann-backdrop",children:[n("style",{children:Hc}),n("section",{ref:l,class:"fx-ann",role:"dialog","aria-modal":"true","aria-labelledby":"fx-ann-title","aria-describedby":"fx-ann-body",tabIndex:-1,lang:s.lang==="zh"?"zh-CN":"en","data-announcement-id":o.id,children:[n("button",{ref:c,type:"button",class:"fx-ann-close","aria-label":i("ann.close"),onClick:()=>u.current(),children:n(F,{name:"x",size:16})}),n("div",{class:"fx-ann-eyebrow",children:i("ann.eyebrow")}),n("h2",{id:"fx-ann-title",class:"fx-ann-title",children:s.title}),n("div",{class:"fx-ann-body",children:n("div",{ref:f,id:"fx-ann-body",class:"fx-ann-doc"})}),n("div",{class:"fx-ann-footer",children:n("button",{ref:d,type:"button",class:"fx-ann-ok",onClick:()=>u.current(),children:i("ann.ok")})})]})]})}function Ph(e){try{return new URLSearchParams(e||"").has("window")}catch{return!1}}function Mh(e=document,t=12e3){let o=e.getElementById("tangu-splash");return o?.parentNode?new Promise(r=>{let a=()=>{i.disconnect(),clearTimeout(s),r()},i=new MutationObserver(()=>{o.isConnected||a()});i.observe(o.parentNode,{childList:!0});let s=setTimeout(a,t)}):Promise.resolve()}function Wc(e,t=window){let o=an(t?.tangu);if(!e||!o?.cloudFetch||!sn(o)||Ph(t.location?.search))return null;let r=0,a=!1,i=null,s=null,l=()=>{s?.done(),s=null},c=Promise.resolve(),d=(p,m)=>{let g=document.createElement("div");g.className="fx-ann-root",document.body.appendChild(g);let h=!1,k=y=>{h||(h=!0,i?.id===p.id&&(i=null),Re(null,g),g.remove(),m?.done(),y&&(c=Z(`/announcements/${encodeURIComponent(p.id)}/seen`,{method:"POST"})))};i={id:p.id,finish:k},Re(n(Eh,{ctx:e,ann:p,onClose:()=>k(!0)}),g)},f=async()=>{let p=++r;await c;let m=await Z("/announcements/pending");if(a||p!==r||!m.ok)return;let g=wh(m.data?.announcement);if(!g||i||!Ri()||(await Mh(),a||p!==r||i))return;let h=e.app?.queuePopup?.();if(h&&(l(),s=h,await h.ready,s===h&&(s=null),a||p!==r||i)){h.done();return}d(g,h)},u=o.onAuthChanged?.(p=>{i?.finish(!1),l(),p?.loggedIn?f():r++});return f(),{check:f,dispose(){a=!0,r++,typeof u=="function"&&u(),i?.finish(!1),l()}}}function jc(e){return typeof e!="string"?{ok:!1,rule:"format"}:e.length<8?{ok:!1,rule:"min"}:e.length>64?{ok:!1,rule:"max"}:/\s/.test(e)?{ok:!1,rule:"space"}:/[a-z]/.test(e)?/[A-Z]/.test(e)?/[^A-Za-z0-9]/.test(e)?{ok:!0}:{ok:!1,rule:"special"}:{ok:!1,rule:"upper"}:{ok:!1,rule:"lower"}}function Gc(e){return{length:e.length>=8&&e.length<=64,lower:/[a-z]/.test(e),upper:/[A-Z]/.test(e),special:/[^A-Za-z0-9]/.test(e),space:e.length>0&&!/\s/.test(e)}}var Jc={\u5BC6\u7801\u683C\u5F0F\u4E0D\u6B63\u786E:"format","\u5BC6\u7801\u81F3\u5C11 8 \u4F4D":"min","\u5BC6\u7801\u4E0D\u80FD\u8D85\u8FC7 64 \u4F4D":"max",\u5BC6\u7801\u4E0D\u80FD\u5305\u542B\u7A7A\u683C:"space",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5C0F\u5199\u5B57\u6BCD:"lower",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5927\u5199\u5B57\u6BCD:"upper",\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u7279\u6B8A\u5B57\u7B26:"special"};var Xc={no_reset_card:"err.noResetCard",invalid_type:"err.generic",invalid_count:"err.invalidCount",insufficient_points:"err.insufficientPoints",price_changed:"err.priceChanged",insufficient_main_quota:"err.insufficientMainQuota",background_unavailable:"err.backgroundUnavailable",invalid_percent:"err.generic",invalid_request:"err.generic",invalid_invite_code:"err.invalidInviteCode",already_used:"err.inviteAlreadyUsed",window_expired:"err.inviteWindowExpired",ITEM_NOT_FOUND:"backpack.unavailable",ITEM_NOT_ACTIVE:"backpack.unavailable",ITEM_NOT_USABLE:"backpack.notUsable",ITEM_EFFECT_UNAVAILABLE:"backpack.quotaUnavailable",FEATURE_DISABLED:"err.featureDisabled",INSUFFICIENT_POINTS:"err.insufficientPoints",OUT_OF_STOCK:"store.soldOut",LIMIT_REACHED:"store.limitReached",NOT_AVAILABLE:"store.unavailable",NOT_POINTS_PURCHASABLE:"store.unavailable",CAPTCHA_FAILED:"err.captcha",machine_username:"profile.blocked.machineUsername",publish_blocked:"profile.blocked.publishBlocked",invalid_settings:"profile.invalid"},Kc={"Current password is incorrect":"err.currentPasswordWrong","Current and new password are required":"err.passwordRequired",\u9A8C\u8BC1\u7801\u65E0\u6548\u6216\u5DF2\u8FC7\u671F:"err.codeInvalid","Invalid or expired verification code":"err.codeInvalid",\u8D26\u53F7\u6216\u9A8C\u8BC1\u7801\u9519\u8BEF:"err.codeInvalid",\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801:"err.codeRequired","Email already in use":"err.emailInUse","Phone number already in use":"err.phoneInUse","Invalid email format":"err.emailInvalid","Email is required":"err.emailInvalid","Invalid phone number format":"err.phoneInvalid","Phone number is required":"err.phoneInvalid","Invalid phone number or email format":"err.targetInvalid","Please wait before requesting another code":"err.codeCooldown","Failed to send verification code":"err.codeSendFailed","Invalid target for account deletion":"err.deleteTargetInvalid","\u8EAB\u4EFD\u9A8C\u8BC1\u5931\u8D25\uFF0C\u65E0\u6CD5\u6CE8\u9500\u8D26\u6237":"err.deleteVerifyFailed",\u7BA1\u7406\u5458\u8D26\u53F7\u4E0D\u80FD\u81EA\u52A9\u6CE8\u9500:"err.adminCannotDelete",\u79EF\u5206\u4F59\u989D\u4E0D\u8DB3:"err.insufficientPoints","\u5151\u6362\u5F20\u6570\u9700\u4E3A 1-50 \u7684\u6574\u6570":"err.invalidCount",\u6CA1\u6709\u53EF\u7528\u7684\u91CD\u7F6E\u5361:"err.noResetCard","\u4E3B\u989D\u5EA6\u5DF2\u7528\u5B8C,\u6CA1\u6709\u53EF\u8F6C\u5165\u7684\u989D\u5EA6":"err.insufficientMainQuota",\u540E\u53F0\u989D\u5EA6\u6682\u4E0D\u53EF\u7528:"err.backgroundUnavailable",\u9080\u8BF7\u7801\u65E0\u6548\u6216\u5DF2\u5931\u6548:"err.invalidInviteCode","\u5DF2\u8D85\u8FC7\u6CE8\u518C\u540E 7 \u5929\u7684\u8865\u586B\u671F":"err.inviteWindowExpired",\u4F60\u5DF2\u4F7F\u7528\u8FC7\u9080\u8BF7\u7801:"err.inviteAlreadyUsed","You have already used an invite code":"err.inviteAlreadyUsed","Cannot use your own invite code":"err.inviteOwnCode","Invite code is required":"err.inviteEmpty","code is required":"err.redeemEmpty","Redemption code not found":"err.redeemNotFound","Redemption code is not active":"err.redeemInactive","Redemption code has expired":"err.redeemExpired","Redemption code has reached maximum uses":"err.redeemUsedUp","You have already used this code the maximum number of times":"err.redeemUserLimit",avatar_too_large:"err.avatarTooLarge","description is required":"err.feedbackEmpty","description too long (max 10000 chars)":"err.feedbackTooLong","content is required":"err.replyEmpty","content too long (max 10000 chars)":"err.replyTooLong","Ticket not found":"err.ticketNotFound","Too many attachments (max 5)":"err.tooManyImages","Attachment type not allowed (image / json / text only)":"err.imageType","\u4EBA\u673A\u9A8C\u8BC1\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5":"err.captcha",\u5E94\u7528\u4E0D\u5B58\u5728\u6216\u4E0D\u5C5E\u4E8E\u4F60:"err.webPageGone","\u5E94\u7528\u5DF2\u88AB\u505C\u7528\uFF0C\u65E0\u6CD5\u7533\u8BF7\u4E0A\u67B6":"web.disabledHint",\u6CA1\u6709\u5BF9\u5E94\u7684\u4E0A\u67B6\u7533\u8BF7:"err.listingGone","\u8BF7\u586B\u5199\u5E94\u7528\u7B80\u4ECB\uFF08300 \u5B57\u4EE5\u5185\uFF09":"err.listingSummary"},Li={format:"pw.rule.format",min:"pw.rule.min",max:"pw.rule.max",space:"pw.rule.space",lower:"pw.rule.lower",upper:"pw.rule.upper",special:"pw.rule.special"};function Ih(e){if(e.code&&Xc[e.code])return Xc[e.code];if(e.detail){if(Kc[e.detail])return Kc[e.detail];let t=Jc[e.detail];if(t)return Li[t];if(e.detail.startsWith("Attachment exceeds 5MB"))return"err.imageTooLarge"}return null}function St(e){let t=Ih(e);return t?{key:t}:Fn(e)?{key:"err.signedOut"}:e.status===0?{key:"err.network"}:e.status===401?{key:"err.session"}:e.status===429?{key:"err.tooFrequent"}:e.detail?{raw:e.detail}:e.status>=500?{key:"err.server",vars:{status:e.status}}:{key:"err.generic"}}function mr(e){let t=e.trim();return t?/cancelled\.?$/i.test(t)?null:t==="A sign-in is already in progress."?{key:"err.loginInProgress"}:t.startsWith("\u767B\u5F55\u8D85\u65F6")?{key:"err.loginTimeout"}:t.startsWith("\u767B\u5F55\u7801\u5DF2\u8FC7\u671F")?{key:"err.loginCodeExpired"}:t.startsWith("\u65E0\u6CD5\u8FDE\u63A5")?{key:"err.network"}:t.startsWith("\u4E91\u7AEF\u4E0D\u652F\u6301 CLI \u767B\u5F55")?{key:"err.loginUnsupported"}:t.startsWith("\u8BF7\u5148\u586B\u5199 Forsion \u4E91\u7AEF\u5730\u5740")?{key:"err.noCloudUrl"}:t.startsWith("Account is no longer signed in")?{key:"err.accountGone"}:{raw:t}:{key:"err.generic"}}var Di=oa(null);function se(){let e=Ti(Di);if(!e)throw new Error("forsion-extend: page rendered outside its host root");return e}var ht=()=>se().t;function Ve(){let e=ie(!0);return Y(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var Yc={pending:!1,error:null,success:null,captcha:!1};function me(){let e=Ve(),[t,o]=S(Yc),r=ie(!1),a=Vt(async s=>{if(r.current)return;r.current=!0,o({pending:!0,error:null,success:null,captcha:!1});let l;try{l=await s()}catch(c){l={error:{raw:String(c?.message||c)}}}r.current=!1,e.current&&o({pending:!1,error:l?.error??null,success:l?.success??null,captcha:!!l?.captcha})},[]),i=Vt(()=>{r.current||o(Yc)},[]);return{...t,run:a,clear:i}}var $e=e=>({error:St(e),captcha:e.status===403&&e.code==="CAPTCHA_FAILED"});function Zc(){let[e,t]=S(0),o=ie(null);Y(()=>()=>{o.current&&clearInterval(o.current)},[]);let r=Vt((i=60)=>{o.current&&clearInterval(o.current),t(i),o.current=setInterval(()=>{t(s=>s<=1?(o.current&&clearInterval(o.current),o.current=null,0):s-1)},1e3)},[]),a=Vt(()=>{o.current&&clearInterval(o.current),o.current=null,t(0)},[]);return{left:e,start:r,stop:a}}function nt(e){let[t,o]=S({state:"loading"}),r=ie(0),a=ie(e);a.current=e;let i=Vt((c=!1)=>{let d=++r.current;c||o({state:"loading"}),(async()=>{let f;try{f=await a.current()}catch(u){f={ok:!1,status:0,code:null,detail:null,transport:String(u?.message||u)}}d===r.current&&(f.ok?o({state:"ready",data:f.data,gen:d}):Fn(f)?o({state:"signedOut"}):(f.status===401&&te().authStatus?.().catch(()=>{}),o({state:"error",fail:f})))})()},[]);Y(()=>{i();let c=te().onAuthChanged?.(()=>i());return()=>{r.current++,c?.()}},[i]);let s=Vt(()=>i(),[i]),l=Vt(()=>i(!0),[i]);switch(t.state){case"ready":{let c=t.gen,d=f=>o(u=>u.state==="ready"&&u.gen===c?{...u,data:f(u.data)}:u);return{state:"ready",data:t.data,reload:l,update:d}}case"error":return{state:"error",error:St(t.fail),retry:s};default:return t}}function da(e){let t=String(e||"").trim();if(!t)return"";let o=t.startsWith("+")?4:3;return t.length<=o+4?`${t.slice(0,2)}***`:`${t.slice(0,o)}****${t.slice(-4)}`}function ua(e){let t=String(e||"").trim(),o=t.lastIndexOf("@");if(o<=0)return t?`${t.slice(0,1)}***`:"";let r=t.slice(0,o);return`${r.slice(0,r.length<=2?1:2)}***${t.slice(o)}`}function gr(e){let t=String(e||"").trim().toLowerCase()||"free";return t.charAt(0).toUpperCase()+t.slice(1)}var Oo=(e,t)=>t==="en"&&e?.nameEn||e?.name||"",Qc=(e,t)=>t==="en"&&e?.descriptionEn||e?.description||"",Rh=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ed(e,t){let o=String(e||"").trim(),r,a,i=/^(\d{4})-(\d{2})-(\d{2})$/.exec(o);if(i)r=Number(i[2]),a=Number(i[3]);else{let s=new Date(o);if(!o||Number.isNaN(s.getTime()))return null;let l=new Intl.DateTimeFormat("en-US",{timeZone:"Asia/Shanghai",month:"numeric",day:"numeric"}).formatToParts(s);r=Number(l.find(c=>c.type==="month")?.value),a=Number(l.find(c=>c.type==="day")?.value)}return!(r>=1&&r<=12)||!(a>=1&&a<=31)?null:t==="zh"?`${r}\u6708${a}\u65E5`:`${Rh[r-1]} ${a}`}var Ni=e=>e==="zh"?"zh-CN":"en-US";function td(e){if(e==null||e==="")return null;let t=new Date(typeof e=="string"&&/^\d+$/.test(e)?Number(e):e);return Number.isNaN(t.getTime())?null:t}function $t(e,t){let o=td(e);return o?new Intl.DateTimeFormat(Ni(t),{year:"numeric",month:"short",day:"numeric"}).format(o):"\u2014"}function Et(e,t){let o=td(e);return o?new Intl.DateTimeFormat(Ni(t),{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(o):"\u2014"}function ze(e,t){let o=typeof e=="number"?e:Number(e);return Number.isFinite(o)?new Intl.NumberFormat(Ni(t),{maximumFractionDigits:2}).format(o):"\u2014"}var ho=(e=>(e[e.Border=-1]="Border",e[e.Data=0]="Data",e[e.Function=1]="Function",e[e.Position=2]="Position",e[e.Timing=3]="Timing",e[e.Alignment=4]="Alignment",e))(ho||{}),Lh=[0,1],od=[1,0],rd=[2,3],ad=[3,2],Dh={L:Lh,M:od,Q:rd,H:ad},Nh=/^\d*$/,Oh=/^[A-Z0-9 $%*+./:-]*$/,Oi="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",Ui=1,Hi=40,nd=3,Fh=3,pa=40,$h=10,id=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],sd=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],Fi=class{constructor(t,o,r,a){if(this.version=t,this.ecc=o,t<Ui||t>Hi)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=t*4+17;let i=Array.from({length:this.size}).fill(!1);for(let l=0;l<this.size;l++)this.modules.push(i.slice()),this.types.push(i.map(()=>0));this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a===-1){let l=1e9;for(let c=0;c<8;c++){this.applyMask(c),this.drawFormatBits(c);let d=this.getPenaltyScore();d<l&&(a=c,l=d),this.applyMask(c)}}this.mask=a,this.applyMask(a),this.drawFormatBits(a)}size;mask;modules=[];types=[];getModule(t,o){return t>=0&&t<this.size&&o>=0&&o<this.size&&this.modules[o][t]}drawFunctionPatterns(){for(let r=0;r<this.size;r++)this.setFunctionModule(6,r,r%2===0,ho.Timing),this.setFunctionModule(r,6,r%2===0,ho.Timing);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let t=this.getAlignmentPatternPositions(),o=t.length;for(let r=0;r<o;r++)for(let a=0;a<o;a++)r===0&&a===0||r===0&&a===o-1||r===o-1&&a===0||this.drawAlignmentPattern(t[r],t[a]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(t){let o=this.ecc[1]<<3|t,r=o;for(let i=0;i<10;i++)r=r<<1^(r>>>9)*1335;let a=(o<<10|r)^21522;for(let i=0;i<=5;i++)this.setFunctionModule(8,i,Un(a,i));this.setFunctionModule(8,7,Un(a,6)),this.setFunctionModule(8,8,Un(a,7)),this.setFunctionModule(7,8,Un(a,8));for(let i=9;i<15;i++)this.setFunctionModule(14-i,8,Un(a,i));for(let i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,Un(a,i));for(let i=8;i<15;i++)this.setFunctionModule(8,this.size-15+i,Un(a,i));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let t=this.version;for(let r=0;r<12;r++)t=t<<1^(t>>>11)*7973;let o=this.version<<12|t;for(let r=0;r<18;r++){let a=Un(o,r),i=this.size-11+r%3,s=Math.floor(r/3);this.setFunctionModule(i,s,a),this.setFunctionModule(s,i,a)}}drawFinderPattern(t,o){for(let r=-4;r<=4;r++)for(let a=-4;a<=4;a++){let i=Math.max(Math.abs(a),Math.abs(r)),s=t+a,l=o+r;s>=0&&s<this.size&&l>=0&&l<this.size&&this.setFunctionModule(s,l,i!==2&&i!==4,ho.Position)}}drawAlignmentPattern(t,o){for(let r=-2;r<=2;r++)for(let a=-2;a<=2;a++)this.setFunctionModule(t+a,o+r,Math.max(Math.abs(a),Math.abs(r))!==1,ho.Alignment)}setFunctionModule(t,o,r,a=ho.Function){this.modules[o][t]=r,this.types[o][t]=a}addEccAndInterleave(t){let o=this.version,r=this.ecc;if(t.length!==fa(o,r))throw new RangeError("Invalid argument");let a=sd[r[0]][o],i=id[r[0]][o],s=Math.floor($i(o)/8),l=a-s%a,c=Math.floor(s/a),d=[],f=Jh(i);for(let p=0,m=0;p<a;p++){let g=t.slice(m,m+c-i+(p<l?0:1));m+=g.length;let h=Xh(g,f);p<l&&g.push(0),d.push(g.concat(h))}let u=[];for(let p=0;p<d[0].length;p++)d.forEach((m,g)=>{(p!==c-i||g>=l)&&u.push(m[p])});return u}drawCodewords(t){if(t.length!==Math.floor($i(this.version)/8))throw new RangeError("Invalid argument");let o=0;for(let r=this.size-1;r>=1;r-=2){r===6&&(r=5);for(let a=0;a<this.size;a++)for(let i=0;i<2;i++){let s=r-i,c=(r+1&2)===0?this.size-1-a:a;!this.types[c][s]&&o<t.length*8&&(this.modules[c][s]=Un(t[o>>>3],7-(o&7)),o++)}}}applyMask(t){if(t<0||t>7)throw new RangeError("Mask value out of range");for(let o=0;o<this.size;o++)for(let r=0;r<this.size;r++){let a;switch(t){case 0:a=(r+o)%2===0;break;case 1:a=o%2===0;break;case 2:a=r%3===0;break;case 3:a=(r+o)%3===0;break;case 4:a=(Math.floor(r/3)+Math.floor(o/2))%2===0;break;case 5:a=r*o%2+r*o%3===0;break;case 6:a=(r*o%2+r*o%3)%2===0;break;case 7:a=((r+o)%2+r*o%3)%2===0;break;default:throw new Error("Unreachable")}!this.types[o][r]&&a&&(this.modules[o][r]=!this.modules[o][r])}}getPenaltyScore(){let t=0;for(let i=0;i<this.size;i++){let s=!1,l=0,c=[0,0,0,0,0,0,0];for(let d=0;d<this.size;d++)this.modules[i][d]===s?(l++,l===5?t+=nd:l>5&&t++):(this.finderPenaltyAddHistory(l,c),s||(t+=this.finderPenaltyCountPatterns(c)*pa),s=this.modules[i][d],l=1);t+=this.finderPenaltyTerminateAndCount(s,l,c)*pa}for(let i=0;i<this.size;i++){let s=!1,l=0,c=[0,0,0,0,0,0,0];for(let d=0;d<this.size;d++)this.modules[d][i]===s?(l++,l===5?t+=nd:l>5&&t++):(this.finderPenaltyAddHistory(l,c),s||(t+=this.finderPenaltyCountPatterns(c)*pa),s=this.modules[d][i],l=1);t+=this.finderPenaltyTerminateAndCount(s,l,c)*pa}for(let i=0;i<this.size-1;i++)for(let s=0;s<this.size-1;s++){let l=this.modules[i][s];l===this.modules[i][s+1]&&l===this.modules[i+1][s]&&l===this.modules[i+1][s+1]&&(t+=Fh)}let o=0;for(let i of this.modules)o=i.reduce((s,l)=>s+(l?1:0),o);let r=this.size*this.size,a=Math.ceil(Math.abs(o*20-r*10)/r)-1;return t+=a*$h,t}getAlignmentPatternPositions(){if(this.version===1)return[];{let t=Math.floor(this.version/7)+2,o=this.version===32?26:Math.ceil((this.version*4+4)/(t*2-2))*2,r=[6];for(let a=this.size-7;r.length<t;a-=o)r.splice(1,0,a);return r}}finderPenaltyCountPatterns(t){let o=t[1],r=o>0&&t[2]===o&&t[3]===o*3&&t[4]===o&&t[5]===o;return(r&&t[0]>=o*4&&t[6]>=o?1:0)+(r&&t[6]>=o*4&&t[0]>=o?1:0)}finderPenaltyTerminateAndCount(t,o,r){return t&&(this.finderPenaltyAddHistory(o,r),o=0),o+=this.size,this.finderPenaltyAddHistory(o,r),this.finderPenaltyCountPatterns(r)}finderPenaltyAddHistory(t,o){o[0]===0&&(t+=this.size),o.pop(),o.unshift(t)}};function Hn(e,t,o){if(t<0||t>31||e>>>t)throw new RangeError("Value out of range");for(let r=t-1;r>=0;r--)o.push(e>>>r&1)}function Un(e,t){return(e>>>t&1)!==0}var hr=class{constructor(t,o,r){if(this.mode=t,this.numChars=o,this.bitData=r,o<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}getData(){return this.bitData.slice()}},Bh=[1,10,12,14],Uh=[2,9,11,13],Hh=[4,8,16,16];function ld(e,t){return e[Math.floor((t+7)/17)+1]}function cd(e){let t=[];for(let o of e)Hn(o,8,t);return new hr(Hh,e.length,t)}function qh(e){if(!dd(e))throw new RangeError("String contains non-numeric characters");let t=[];for(let o=0;o<e.length;){let r=Math.min(e.length-o,3);Hn(Number.parseInt(e.substring(o,o+r),10),r*3+1,t),o+=r}return new hr(Bh,e.length,t)}function Vh(e){if(!ud(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");let t=[],o;for(o=0;o+2<=e.length;o+=2){let r=Oi.indexOf(e.charAt(o))*45;r+=Oi.indexOf(e.charAt(o+1)),Hn(r,11,t)}return o<e.length&&Hn(Oi.indexOf(e.charAt(o)),6,t),new hr(Uh,e.length,t)}function Wh(e){return e===""?[]:dd(e)?[qh(e)]:ud(e)?[Vh(e)]:[cd(Gh(e))]}function dd(e){return Nh.test(e)}function ud(e){return Oh.test(e)}function jh(e,t){let o=0;for(let r of e){let a=ld(r.mode,t);if(r.numChars>=1<<a)return Number.POSITIVE_INFINITY;o+=4+a+r.bitData.length}return o}function Gh(e){e=encodeURI(e);let t=[];for(let o=0;o<e.length;o++)e.charAt(o)!=="%"?t.push(e.charCodeAt(o)):(t.push(Number.parseInt(e.substring(o+1,o+3),16)),o+=2);return t}function $i(e){if(e<Ui||e>Hi)throw new RangeError("Version number out of range");let t=(16*e+128)*e+64;if(e>=2){let o=Math.floor(e/7)+2;t-=(25*o-10)*o-55,e>=7&&(t-=36)}return t}function fa(e,t){return Math.floor($i(e)/8)-id[t[0]][e]*sd[t[0]][e]}function Jh(e){if(e<1||e>255)throw new RangeError("Degree out of range");let t=[];for(let r=0;r<e-1;r++)t.push(0);t.push(1);let o=1;for(let r=0;r<e;r++){for(let a=0;a<t.length;a++)t[a]=Bi(t[a],o),a+1<t.length&&(t[a]^=t[a+1]);o=Bi(o,2)}return t}function Xh(e,t){let o=t.map(r=>0);for(let r of e){let a=r^o.shift();o.push(0),t.forEach((i,s)=>o[s]^=Bi(i,a))}return o}function Bi(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");let o=0;for(let r=7;r>=0;r--)o=o<<1^(o>>>7)*285,o^=(t>>>r&1)*e;return o}function Kh(e,t,o=1,r=40,a=-1,i=!0){if(!(Ui<=o&&o<=r&&r<=Hi)||a<-1||a>7)throw new RangeError("Invalid value");let s,l;for(s=o;;s++){let u=fa(s,t)*8,p=jh(e,s);if(p<=u){l=p;break}if(s>=r)throw new RangeError("Data too long")}for(let u of[od,rd,ad])i&&l<=fa(s,u)*8&&(t=u);let c=[];for(let u of e){Hn(u.mode[0],4,c),Hn(u.numChars,ld(u.mode,s),c);for(let p of u.getData())c.push(p)}let d=fa(s,t)*8;Hn(0,Math.min(4,d-c.length),c),Hn(0,(8-c.length%8)%8,c);for(let u=236;c.length<d;u^=253)Hn(u,8,c);let f=Array.from({length:Math.ceil(c.length/8)},()=>0);return c.forEach((u,p)=>f[p>>>3]|=u<<7-(p&7)),new Fi(s,t,f,a)}function pd(e,t){let{ecc:o="L",boostEcc:r=!1,minVersion:a=1,maxVersion:i=40,maskPattern:s=-1,border:l=1}=t||{},c=typeof e=="string"?Wh(e):Array.isArray(e)?[cd(e)]:void 0;if(!c)throw new Error(`uqr only supports encoding string and binary data, but got: ${typeof e}`);let d=Kh(c,Dh[o],a,i,s,r),f=Yh({version:d.version,maskPattern:d.mask,size:d.size,data:d.modules,types:d.types},l);return t?.invert&&(f.data=f.data.map(u=>u.map(p=>!p))),t?.onEncoded?.(f),f}function Yh(e,t=1){if(!t)return e;let{size:o}=e,r=o+t*2;e.size=r,e.data.forEach(i=>{for(let s=0;s<t;s++)i.unshift(!1),i.push(!1)});for(let i=0;i<t;i++)e.data.unshift(Array.from({length:r},s=>!1)),e.data.push(Array.from({length:r},s=>!1));let a=ho.Border;e.types.forEach(i=>{for(let s=0;s<t;s++)i.unshift(a),i.push(a)});for(let i=0;i<t;i++)e.types.unshift(Array.from({length:r},s=>a)),e.types.push(Array.from({length:r},s=>a));return e}function Ie(e){return n("section",{class:`settings-panel fx-panel${e.danger?" fx-panel--danger":""}`,"aria-label":e.label,children:[n("div",{class:`settings-panel-head${e.actions?" settings-panel-head--actions":""}`,children:[e.icon&&n("span",{class:"settings-panel-icon",children:n(F,{name:e.icon,size:16})}),n("div",{children:[n("strong",{children:e.title}),e.desc&&n("p",{children:e.desc})]}),e.actions&&n("div",{class:"settings-panel-actions settings-panel-actions--wide",children:e.actions})]}),e.children]})}function Ze(e){return n("div",{class:`settings-control-row settings-setting-row fx-row fx-block${e.class?` ${e.class}`:""}`,children:[n("div",{class:"settings-control-copy",children:n("span",{children:[n("strong",{children:e.label}),e.desc&&n("small",{children:e.desc})]})}),e.children!==void 0&&e.children!==null&&n("div",{class:"settings-row-control fx-row-control",children:e.children})]})}function Be(e){return n("div",{class:`fx-sub${e.class?` ${e.class}`:""}`,children:e.children})}function cn(e){return n("button",{type:"button",role:"switch","aria-checked":e.checked,"aria-label":e.label,class:`settings-switch${e.checked?" active":""}`,disabled:e.disabled,onClick:()=>e.onChange(!e.checked),children:n("span",{})})}function W(e){let t=e.variant??"ghost",o=t==="danger-solid"?"btn sm danger fx-danger-solid":`btn sm ${t}`;return n("button",{type:e.submit?"submit":"button",class:o,disabled:e.disabled||e.pending,"aria-busy":e.pending||void 0,"aria-label":e.label,title:e.title,"data-armed":e.armed?"true":void 0,onClick:e.onClick,children:[e.pending&&n(ln,{}),e.children]})}var ma=5e3;function Kt(e){let[t,o]=S(!1),r=ie(null),a=()=>{r.current&&clearTimeout(r.current),r.current=null,o(!1)};Y(()=>()=>{r.current&&clearTimeout(r.current)},[]),Y(()=>{(e.pending||e.disabled)&&a()},[e.pending,e.disabled]);let i=()=>{if(!t){o(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{r.current=null,o(!1)},ma);return}a(),e.onConfirm()},s=e.variant??"ghost";return n(W,{variant:t?s==="danger"||s==="danger-solid"?"danger-solid":"primary":s,armed:t,pending:e.pending,disabled:e.disabled,onClick:i,children:t?e.confirmLabel:e.label})}function xe(e){let t=ht(),{a:o}=e;return o.error?n("div",{class:"fx-msg is-error",role:"alert",children:[n("span",{children:zt(o.error,t)}),o.captcha&&n("button",{type:"button",class:"fx-link",onClick:()=>void mo(e.captchaSection??"security"),children:[t("common.openInBrowser")," ",n(F,{name:"external",size:12})]})]}):o.success?n("div",{class:"fx-msg is-ok",role:"status",children:zt(o.success,t)}):null}function he(e){return n("p",{class:`fx-note${e.tone?` is-${e.tone}`:""}`,children:e.children})}function xt(e){return n("div",{class:"settings-empty-row fx-block",children:e.children})}function br(e){let t=ht(),o=e.display;return n("div",{class:`fx-quota${o.low?" is-low":""}`,children:[n("div",{class:"fx-quota-top",children:[n("span",{class:"fx-quota-label",children:e.label}),n("span",{class:"fx-quota-value",children:o.unlimited?t("common.unlimited"):o.text})]}),n("div",{class:"fx-bar",role:"progressbar","aria-label":e.label,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":o.pct,"aria-valuetext":o.unlimited?t("common.unlimited"):o.text,children:n("span",{style:{width:`${o.pct}%`}})}),e.note&&n("div",{class:"fx-quota-note",children:e.note})]})}function Pt(e){return n("div",{class:"seg fx-seg",role:"radiogroup","aria-label":e.label,children:e.options.map(t=>n("button",{type:"button",role:"radio","aria-checked":t.value===e.value,class:t.value===e.value?"active":"",onClick:()=>{t.value!==e.value&&e.onChange(t.value)},children:t.label}))})}async function Fo(e){try{return await navigator.clipboard.writeText(e),!0}catch{try{let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let o=document.execCommand("copy");return t.remove(),o}catch{return!1}}}function Yt(e){let t=ht(),[o,r]=S("idle"),a=ie(null);Y(()=>()=>{a.current&&clearTimeout(a.current)},[]);let i=async()=>{let l=await Fo(e.text);r(l?"copied":"failed"),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>r("idle"),1800)},s=o==="copied"?t("common.copied"):o==="failed"?t("common.copyFailed"):e.label;return n(R,{children:[n(W,{disabled:e.disabled||!e.text,onClick:()=>void i(),label:e.iconOnly?e.label:void 0,title:e.iconOnly?s:void 0,children:[n(F,{name:o==="copied"?"check":e.iconOnly&&o==="failed"?"alert":"copy",size:12}),!e.iconOnly&&s]}),e.iconOnly&&n("span",{class:"fx-sr-only",role:"status",children:o==="idle"?"":s})]})}function Zh(e){let t=rn(()=>{try{return pd(e.value,{ecc:"M",border:2})}catch{return null}},[e.value]);if(!t)return null;let o="";t.data.forEach((a,i)=>a.forEach((s,l)=>{s&&(o+=`M${l} ${i}h1v1h-1z`)}));let r=e.size??148;return n("svg",{class:"fx-qr",width:r,height:r,viewBox:`0 0 ${t.size} ${t.size}`,"shape-rendering":"crispEdges",role:"img","aria-label":e.label,children:[n("rect",{width:t.size,height:t.size,fill:"#fff"}),n("path",{d:o,fill:"#000"})]})}function qi(e){let t=ht(),{device:o}=e;return n("div",{class:"fx-device",children:[n(Zh,{value:o.url,label:t("signin.qrLabel")}),n("div",{class:"fx-device-copy",children:[n("p",{children:t("signin.deviceHint")}),o.userCode&&n("div",{class:"fx-device-code",children:[n("span",{children:t("signin.code")}),n("code",{children:o.userCode})]}),n("div",{class:"fx-inline",children:[n("button",{type:"button",class:"fx-link",onClick:()=>window.open(o.url,"_blank"),children:[t("signin.openLink")," ",n(F,{name:"external",size:12})]}),n(Yt,{text:o.url,label:t("signin.copyLink")})]})]})]})}function lt(){let e=ht(),t=me(),[o,r]=S(null);Y(()=>te().onAuthDevice?.(i=>r(i)),[]);let a=()=>void t.run(async()=>{let i=te().forsionLogin;if(!i)return{error:{key:"err.unavailable"}};try{await i()}catch(s){r(null);let l=mr(gt(s));return l?{error:l}:void 0}});return n("section",{class:"settings-panel fx-panel fx-signin","aria-label":e("signin.button"),children:n("div",{class:"settings-state fx-signin-body",children:[n("span",{class:"settings-state-icon",children:n(F,{name:"user",size:18})}),n("p",{class:"fx-signin-lead",children:e("signin.desc")}),n("div",{class:"settings-state-actions",children:n(W,{variant:"primary",pending:t.pending,onClick:a,children:t.pending?e("signin.pending"):e("signin.button")})}),o&&n(qi,{device:o}),n(xe,{a:t})]})})}function Ge(e){let t=ht(),o=e.panels??2,r=e.rows??2;return n("div",{class:"fx-skeleton","aria-busy":"true","aria-label":t("common.loading"),children:Array.from({length:o},(a,i)=>n("section",{class:"settings-panel fx-panel",children:[n("div",{class:"settings-panel-head",children:[n("span",{class:"fx-skel fx-skel--icon"}),n("div",{children:[n("span",{class:"fx-skel fx-skel--title"}),n("span",{class:"fx-skel fx-skel--line"})]})]}),Array.from({length:r},(s,l)=>n("div",{class:"settings-control-row",children:n("span",{class:"fx-skel fx-skel--row"})},l))]},i))})}function ut(e){let t=ht();return n("section",{class:"settings-panel fx-panel",children:n("div",{class:"settings-state fx-error-state",role:"alert",children:[n("span",{class:"settings-state-icon",children:n(F,{name:"alert",size:18})}),n("strong",{children:t("common.loadFailed")}),n("p",{children:zt(e.error,t)}),n("div",{class:"settings-state-actions",children:n(W,{variant:"primary",onClick:e.onRetry,children:[n(F,{name:"refresh",size:12})," ",t("common.retry")]})})]})})}function eb(e,t){for(var o in t)e[o]=t[o];return e}function fd(e,t){for(var o in e)if(o!=="__source"&&!(o in t))return!0;for(var r in t)if(r!=="__source"&&e[r]!==t[r])return!0;return!1}function md(e,t){this.props=e,this.context=t}(md.prototype=new kn).isPureReactComponent=!0,md.prototype.shouldComponentUpdate=function(e,t){return fd(this.props,e)||fd(this.state,t)};var gd=_e.__b;_e.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),gd&&gd(e)};var ow=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var tb=_e.__e;_e.__e=function(e,t,o,r){if(e.then){for(var a,i=t;i=i.__;)if((a=i.__c)&&a.__c)return t.__e==null&&(t.__e=o.__e,t.__k=o.__k||[]),a.__c(e,t)}tb(e,t,o,r)};var hd=_e.unmount;function wd(e,t,o){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(r){typeof r.__c=="function"&&r.__c()}),e.__c.__H=null),(e=eb({},e)).__c!=null&&(e.__c.__P===o&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(r){return wd(r,t,o)})),e}function zd(e,t,o){return e&&o&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(r){return zd(r,t,o)}),e.__c&&e.__c.__P===t&&(e.__e&&o.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=o)),e}function Vi(){this.__u=0,this.o=null,this.__b=null}function Sd(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function ga(){this.i=null,this.l=null}_e.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),hd&&hd(e)},(Vi.prototype=new kn).__c=function(e,t){var o=t.__c,r=this;r.o==null&&(r.o=[]),r.o.push(o);var a=Sd(r.__v),i=!1,s=function(){i||r.__z||(i=!0,o.__R=null,a?a(c):c())};o.__R=s;var l=o.__P;o.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var d=r.state.__a;r.__v.__k[0]=zd(d,d.__c.__P,d.__c.__O)}var f;for(r.setState({__a:r.__b=null});f=r.o.pop();)f.__P=l,f.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(s,s)},Vi.prototype.componentWillUnmount=function(){this.o=[]},Vi.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var o=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=wd(this.__b,o,r.__O=r.__P)}this.__b=null}var a=t.__a&&fo(R,null,e.fallback);return a&&(a.__u&=-33),[fo(R,null,t.__a?null:e.children),a]};var bd=function(e,t,o){if(++o[1]===o[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(o=e.i;o;){for(;o.length>3;)o.pop()();if(o[1]<o[0])break;e.i=o=o[2]}};function nb(e){return this.getChildContext=function(){return e.context},e.children}function ob(e){var t=this,o=e.h;if(t.componentWillUnmount=function(){Re(null,t.v),t.v=null,t.h=null},t.h&&t.h!==o&&t.componentWillUnmount(),!t.v){for(var r=t.__v;r!==null&&!r.__m&&r.__!==null;)r=r.__;t.h=o,t.v={nodeType:1,parentNode:o,childNodes:[],__k:{__m:r.__m},contains:function(){return!0},namespaceURI:o.namespaceURI,insertBefore:function(a,i){this.childNodes.push(a),t.h.insertBefore(a,i)},removeChild:function(a){this.childNodes.splice(this.childNodes.indexOf(a)>>>1,1),t.h.removeChild(a)}}}Re(fo(nb,{context:t.context},e.__v),t.v)}function ha(e,t){var o=fo(ob,{__v:e,h:t});return o.containerInfo=t,o}(ga.prototype=new kn).__a=function(e){var t=this,o=Sd(t.__v),r=t.l.get(e);return r[0]++,function(a){var i=function(){t.props.revealOrder?(r.push(a),bd(t,e,r)):a()};o?o(i):i()}},ga.prototype.render=function(e){this.i=null,this.l=new Map;var t=pr(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var o=t.length;o--;)this.l.set(t[o],this.i=[1,0,this.i]);return e.children},ga.prototype.componentDidUpdate=ga.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,o){bd(e,o,t)})};var rb=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,ab=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,ib=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,sb=/[A-Z0-9]/g,lb=typeof document<"u",cb=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};kn.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(kn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var vd=_e.event;_e.event=function(e){return vd&&(e=vd(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var _d,db={configurable:!0,get:function(){return this.class}},yd=_e.vnode;_e.vnode=function(e){typeof e.type=="string"&&(function(t){var o=t.props,r=t.type,a={},i=r.indexOf("-")==-1;for(var s in o){var l=o[s];if(!(s==="value"&&"defaultValue"in o&&l==null||lb&&s==="children"&&r==="noscript"||s==="class"||s==="className")){var c=s.toLowerCase();s==="defaultValue"&&"value"in o&&o.value==null?s="value":s==="download"&&l===!0?l="":c==="translate"&&l==="no"?l=!1:c[0]==="o"&&c[1]==="n"?c==="ondoubleclick"?s="ondblclick":c!=="onchange"||r!=="input"&&r!=="textarea"||cb(o.type)?c==="onfocus"?s="onfocusin":c==="onblur"?s="onfocusout":ib.test(s)&&(s=c):c=s="oninput":i&&ab.test(s)?s=s.replace(sb,"-$&").toLowerCase():l===null&&(l=void 0),c==="oninput"&&a[s=c]&&(s="oninputCapture"),a[s]=l}}r=="select"&&(a.multiple&&Array.isArray(a.value)&&(a.value=pr(o.children).forEach(function(d){d.props.selected=a.value.indexOf(d.props.value)!=-1})),a.defaultValue!=null&&(a.value=pr(o.children).forEach(function(d){d.props.selected=a.multiple?a.defaultValue.indexOf(d.props.value)!=-1:a.defaultValue==d.props.value}))),o.class&&!o.className?(a.class=o.class,Object.defineProperty(a,"className",db)):o.className&&(a.class=a.className=o.className),t.props=a})(e),e.$$typeof=rb,yd&&yd(e)};var xd=_e.__r;_e.__r=function(e){xd&&xd(e),_d=e.__c};var kd=_e.diffed;_e.diffed=function(e){kd&&kd(e);var t=e.props,o=e.__e;o!=null&&e.type==="textarea"&&"value"in t&&t.value!==o.value&&(o.value=t.value==null?"":t.value),_d=null};function Cd(e){return/^[a-z0-9](?:[a-z0-9-]{1,28})?[a-z0-9]$/.test(e)&&e.length>=3}var Wi=e=>e.trim().toLowerCase();function ji(e,t=Date.now()){return e.cooldownUntil&&Date.parse(e.cooldownUntil)>t?{kind:"cooldown",until:e.cooldownUntil}:e.freeRenamesLeft>0?{kind:"free",left:e.freeRenamesLeft}:e.cards>0?{kind:"card",cards:e.cards}:e.card?.available&&e.card.productId?{kind:"buy",productId:e.card.productId,price:e.card.pricePoints}:{kind:"unavailable"}}function Gi(e,t){let o=(t||"").replace(/\/+$/,"");return o?`${o}/${encodeURIComponent(e)}`:null}function ba(e){if(typeof e!="string"||!/^https?:\/\//i.test(e))return null;try{return new URL(e).origin}catch{return null}}var $o=e=>e.replace(/^https?:\/\//i,"");function Ad(e){let t=(e||"").replace(/\/+$/,"");return t?`${$o(t)}/`:"@"}var Ji=!1;function Ed(){Ji=!0}function ub(){let e=Ji;return Ji=!1,e}function Pd(){let{t:e}=se(),t=Ve(),[o,r]=S(null),[a,i]=S(!1),[s,l]=S(null);if(Y(()=>{(async()=>{let d=await Z("/connect/handle");if(!t.current||!d.ok||!d.data?.handle)return;let f=d.data.publicOrigin||null;if(d.data.publicOrigin===void 0){let u=await Z("/profile/me");if(!t.current)return;f=u.ok?ba(u.data?.profile?.profileUrl):null}r({handle:d.data.handle,pub:f}),ub()&&i(!0)})()},[]),!o)return null;let c=Gi(o.handle,o.pub);return n(R,{children:[n(Ze,{class:"fx-row--wide",label:e("address.label"),desc:s?n("span",{class:"fx-addr-done",role:"status",children:s}):void 0,children:[n("span",{class:"fx-value fx-addr-value",children:c?$o(c):`@${o.handle}`}),n(W,{onClick:()=>{l(null),i(!0)},children:[n(F,{name:"pencil",size:12})," ",e("address.change")]})]}),a&&n(pb,{pub:o.pub,onClose:()=>i(!1),onChanged:d=>{let f=d.publicOrigin||o.pub;r(p=>p&&{...p,handle:d.handle,pub:f});let u=Gi(d.handle,f);l(e("address.done",{url:u?$o(u):`@${d.handle}`}))}})]})}var Td={INSUFFICIENT_POINTS:"address.errPoints",NOT_AVAILABLE:"address.errSoldout",LIMIT_REACHED:"address.errLimit"};function pb(e){let{t,locale:o}=se(),r=Ve(),[a,i]=S(null),[s,l]=S(null),[c,d]=S(""),[f,u]=S({handle:"",state:"idle"}),[p,m]=S(!1),[g,h]=S(null),[k,y]=S(0),x=ie(0),w=async()=>{let H=await Z("/connect/handle");return r.current&&H.ok&&H.data?.handle?(i(H.data),y(0),H.data):null};Y(()=>{w().then(oe=>{!oe&&r.current&&i(ge=>ge??"failed")}),Z("/credits/balance").then(oe=>{r.current&&oe.ok&&l(Number(oe.data?.balance)||0)});let H=oe=>{oe.key==="Escape"&&e.onClose()};return window.addEventListener("keydown",H),()=>window.removeEventListener("keydown",H)},[]);let C=a&&a!=="failed"?a.handle:"";Y(()=>{let H=Wi(c),oe=++x.current,ge=pe=>u({handle:H,state:pe});if(!H){ge("idle");return}if(!Cd(H)){ge("bad");return}if(H===C){ge("same");return}ge("checking");let He=setTimeout(()=>{Z(`/connect/handle/check?handle=${encodeURIComponent(H)}`).then(pe=>{oe!==x.current||!r.current||ge(pe.ok?pe.data?.ok?"ok":pe.data?.code==="same"?"same":"bad":"idle")})},300);return()=>clearTimeout(He)},[c,C]);let M=n("div",{class:"fx-addr-head",children:[n(F,{name:"home",size:16}),n("strong",{children:t("address.title")}),n("button",{type:"button",class:"fx-addr-close","aria-label":t("common.cancel"),title:t("common.cancel"),onClick:e.onClose,children:n(F,{name:"x",size:15})})]}),$=H=>ha(n("div",{class:"fx-addr-backdrop",onClick:oe=>{oe.target===oe.currentTarget&&e.onClose()},children:[n("style",{children:qc}),n("section",{class:"fx-addr",role:"dialog","aria-modal":"true","aria-label":t("address.title"),children:[M,H]})]}),document.body);if(a===null||a==="failed")return $(n("p",{class:"fx-addr-desc",children:t(a===null?"common.loading":"address.loadFailed")}));let U=ji(a),O=U.kind==="buy"&&k>0?{kind:"card",cards:k}:U,j=Wi(c),_=f.handle===j?f.state:j?"checking":"idle",L=_==="ok",B=Ad(a.publicOrigin||e.pub||null),P=O.kind==="buy"&&s!==null&&s<O.price,J=O.kind==="cooldown"||O.kind==="unavailable",v=O.kind==="card"?t("address.goCard"):O.kind==="buy"?t("address.goBuy",{price:ze(O.price,o)}):t("address.go"),A=O.kind==="cooldown"?["clock",t("address.cooldown",{days:a.cooldownDays}),t("address.cooldownUntil",{date:$t(O.until,o)})]:O.kind==="free"?["info",O.left>1?t("address.freeN",{n:O.left}):t("address.freeOne"),t("address.freeAfter")]:O.kind==="card"?["ticket",t("address.card"),t("address.cardHave",{n:O.cards})]:O.kind==="buy"?["ticket",t("address.need"),t("address.price",{price:ze(O.price,o),balance:s===null?"\u2014":ze(s,o)})]:["ticket",t("address.need"),t("address.soldout")],N=(H,oe)=>{let ge=oe?ji(oe):null;switch(H.code){case"taken":return{key:"address.errTaken"};case"need_card":return{key:"address.errNeedCard"};case"cooldown":return{key:"address.errCooldown",vars:{date:ge?.kind==="cooldown"?$t(ge.until,o):"\u2014"}};case"invalid":case"reserved":case"same":return{key:"address.bad"};default:return St(H)}},X=async()=>{let H=j;if(!L)return;m(!0),h(null);let oe=!1;try{if(O.kind==="buy"){if(!r.current)return;let Le=await Z("/shop/purchase",{method:"POST",body:{productId:O.productId,payMethod:"points"}});if(!r.current)return;if(!Le.ok){h(Le.code&&Td[Le.code]?{key:Td[Le.code]}:St(Le));return}oe=!0,y(Qe=>Qe+1)}if(!r.current)return;let ge=await Z("/connect/handle",{method:"PUT",body:{handle:H}});if(!r.current)return;if(ge.ok&&ge.data?.handle){e.onChanged(ge.data),e.onClose();return}let He=await w();if(!r.current)return;if(He&&He.handle===H){e.onChanged(He),e.onClose();return}if(ge.ok){h({key:"err.generic"});return}(ge.code==="taken"||ge.code==="invalid"||ge.code==="reserved")&&u({handle:H,state:"bad"});let pe=!He&&ge.status===0?{key:"address.errUnknown"}:N(ge,He);h(oe?{key:"address.errBought",vars:{reason:zt(pe,t)}}:pe)}finally{r.current&&m(!1)}},Q=_==="checking"?n("span",{class:"fx-addr-check",children:t("address.checking")}):_==="ok"?n("span",{class:"fx-addr-check is-ok",children:[n(F,{name:"check",size:13}),t("address.ok")]}):_==="same"?n("span",{class:"fx-addr-check",children:t("address.same")}):_==="bad"?n("span",{class:"fx-addr-check is-bad",children:t("address.bad")}):null;return $(n(R,{children:[n("p",{class:"fx-addr-desc",children:t("address.desc")}),n("div",{class:"fx-addr-row",children:[n("label",{children:t("address.now")}),n("span",{class:"fx-addr-now",children:[B,n("b",{children:a.handle})]})]}),n("div",{class:"fx-addr-row",children:[n("label",{for:"fx-addr-input",children:t("address.new")}),n("span",{class:"fx-addr-in",children:[n("i",{children:B}),n("input",{id:"fx-addr-input",type:"text",autoFocus:!0,autoComplete:"off",spellcheck:!1,maxLength:30,value:c,placeholder:a.handle,disabled:O.kind==="cooldown"||p,onInput:H=>{d(H.target.value),h(null)},onKeyDown:H=>{H.key==="Enter"&&L&&!J&&!P&&!p&&X()}})]})]}),n("div",{class:"fx-addr-row fx-addr-under",children:[n("label",{}),n("div",{children:[Q,n("span",{class:"fx-addr-rule",children:t("address.rule")})]})]}),n("div",{class:"fx-addr-cost",children:[n(F,{name:A[0],size:15}),n("span",{children:A[1]}),n("span",{class:"fx-addr-grow"}),n("em",{children:A[2]})]}),P&&n("div",{class:"fx-addr-msg",role:"alert",children:t("address.errPoints")}),g&&n("div",{class:"fx-addr-msg",role:"alert",children:zt(g,t)}),n("div",{class:"fx-addr-foot",children:[n(W,{disabled:p,onClick:e.onClose,children:t("common.cancel")}),n("span",{class:"fx-addr-grow"}),(O.kind==="buy"||O.kind==="unavailable")&&n(W,{onClick:()=>void Pn("storefront"),children:t("address.shop")}),n(W,{variant:"primary",pending:p,disabled:J||P||!L,onClick:()=>void X(),children:v})]})]}))}function Id(){let{t:e}=se(),t=nt(()=>Z("/auth/me"));if(t.state==="loading")return n(Ge,{panels:2});if(t.state==="signedOut")return n(lt,{});if(t.state==="error")return n(ut,{error:t.error,onRetry:t.retry});let o=t.data;return n(R,{children:[n(Ie,{icon:"user",title:e("account.details.title"),desc:e("account.details.desc"),children:[n(Ze,{label:e("account.details.username"),children:[n("span",{class:"fx-value",children:o.username}),o.role==="ADMIN"&&n("span",{class:"fx-tag",children:e("account.role.admin")})]}),n(Pd,{}),n(Md,{kind:"phone",value:o.phone}),n(Md,{kind:"email",value:o.email})]}),n(fb,{}),n(gb,{})]})}function Md(e){let{t,goTo:o}=se(),r=!!e.value,a=r?e.kind==="phone"?da(e.value):ua(e.value):t("account.contact.unbound"),i=e.kind==="phone"?t("account.contact.phone"):t("account.contact.email");return n(Ze,{label:i,children:o?n("button",{type:"button",class:`fx-link-row${r?"":" is-empty"}`,onClick:()=>o("security"),title:t("account.contact.manage"),children:[n("span",{children:a}),n(F,{name:"chevron",size:12})]}):n("span",{class:`fx-value${r?"":" is-empty"}`,children:a})})}function fb(){let{t:e}=se(),t=Ve(),[o,r]=S(null),[a,i]=S(!1),[s,l]=S(null),[c,d]=S(null),f=me(),u=me(),p=me(),m=!wn(te()),g=m&&!!te().authAccounts;Y(()=>{let w=0,C=()=>{let U=te().authAccounts;if(!g||!U)return;let O=++w;i(!1),U().then(j=>{O===w&&r(Array.isArray(j)?j:[])}).catch(()=>{O===w&&i(!0)})};C();let M=te().onAuthChanged?.(C),$=te().onAuthDevice?.(U=>d(U));return()=>{w++,M?.(),$?.()}},[]);let h=w=>{l(w),f.run(async()=>{let C=te().forsionSwitchAccount;if(!C)return{error:{key:"err.unavailable"}};try{await C(w)}catch(M){let $=mr(gt(M));return $?{error:$}:void 0}finally{t.current&&l(null)}})},k=()=>void u.run(async()=>{let w=te().forsionLogin;if(!w)return{error:{key:"err.unavailable"}};d(null);try{await w()}catch(C){t.current&&d(null);let M=mr(gt(C));return M?{error:M}:void 0}}),y=()=>void p.run(async()=>{let w=te().forsionLogout;if(!w)return{error:{key:"err.unavailable"}};try{await w()}catch(C){return{error:{raw:gt(C)||e("err.generic")}}}}),x=f.pending||u.pending||p.pending;return n(Ie,{icon:m?"laptop":"user",title:e(m?"local.title":"session.title"),desc:e(m?"local.desc":"session.desc"),children:[g&&o===null&&!a&&n(xt,{children:[n(ln,{})," ",e("common.loading")]}),a&&n("div",{class:"fx-sub",children:n(he,{tone:"warn",children:e("local.loadFailed")})}),o&&o.length===0&&n(xt,{children:e("local.empty")}),o&&o.length>0&&n("div",{class:"fx-list fx-block",role:"list",children:o.map(w=>n("div",{class:"fx-list-row",role:"listitem",children:[n("span",{class:"fx-list-icon",children:n(F,{name:"user",size:14})}),n("span",{class:"fx-list-main",children:[n("strong",{children:w.nickname||w.username||"Forsion"}),n("small",{children:[w.username&&w.nickname?w.username:null,mb(w.cloudUrl)].filter(Boolean).join(" \xB7 ")})]}),w.active?n("span",{class:"fx-tag fx-tag--accent",children:[n(F,{name:"check",size:11})," ",e("local.current")]}):n(W,{pending:s===w.id,disabled:x&&s!==w.id,onClick:()=>h(w.id),children:e("local.switch")})]},w.id))}),u.pending&&c&&n("div",{class:"fx-sub",children:n(qi,{device:c})}),n("div",{class:"settings-panel-footer fx-footer",children:[n(W,{pending:u.pending,disabled:x&&!u.pending,onClick:k,children:[n(F,{name:"plus",size:12})," ",u.pending?e("signin.pending"):e("local.add")]}),n(W,{pending:p.pending,disabled:x&&!p.pending,onClick:y,children:[n(F,{name:"logout",size:12})," ",e("local.signOut")]})]}),(f.error||u.error||p.error)&&n("div",{class:"fx-sub fx-sub--tight",children:[n(xe,{a:f}),n(xe,{a:u}),n(xe,{a:p})]})]})}function mb(e){try{return new URL(e).host}catch{return e}}function gb(){let{t:e}=se(),t=me();return n("div",{class:"fx-page-foot",children:[n("button",{type:"button",class:"fx-link",disabled:t.pending,onClick:()=>void t.run(async()=>await mo()?void 0:{error:{key:"err.openFailed"}}),children:[e("account.web.open")," ",n(F,{name:"external",size:12})]}),n("span",{class:"fx-muted",children:e("account.web.desc")}),n(xe,{a:t})]})}var hb=e=>!!e&&typeof e=="object"&&typeof e.enabled=="boolean";async function va(e,t,o=hb){let r=te().cloudInvoke;if(!r)throw new Error("no_bridge");let a=await r(e,t);if(!o(a))throw new Error(String(a?.error??"unavailable"));return a}var bb="https://forsion.net/legal/privacy";function Rd(){let{t:e,locale:t}=se(),o=Ve(),[r,a]=S(null),[i,s]=S(!1),[l,c]=S(null),d=me(),f=me(),u=me();if(Y(()=>{let y=0,x=()=>{let C=++y;va("telemetry:get").then(M=>{o.current&&C===y&&(a(M),s(!0))},()=>{o.current&&C===y&&s(!0)})};x();let w=te().onAuthChanged?.(()=>x());return()=>{y++,w?.()}},[]),!i)return n(Ge,{panels:1});if(!r)return n(xt,{children:e("privacy.unavailable")});let{signedIn:p}=r,m=r.enabled&&r.noticeSeen&&p,g=y=>void d.run(async()=>{try{let x=await va("telemetry:set",y?{enabled:!0,noticeSeen:!0}:{enabled:!1});o.current&&(a(x),y||c(null))}catch(x){return{error:{raw:gt(x)||e("err.generic")}}}}),h=()=>void f.run(async()=>{try{let y=await va("telemetry:sent",void 0,x=>Array.isArray(x?.batches));o.current&&c(y.batches)}catch(y){return{error:{raw:gt(y)||e("err.generic")}}}}),k=()=>void u.run(async()=>{try{let y=await va("telemetry:delete");return o.current&&(a(y),c(null)),{success:{key:"privacy.delete.done"}}}catch(y){return{error:{key:"privacy.delete.failed",vars:{reason:gt(y)||e("err.generic")}}}}});return n(Ie,{icon:"shield",title:e("privacy.improve.title"),desc:e("privacy.improve.desc"),children:[n(Ze,{label:e("privacy.improve.switch"),desc:e("privacy.improve.switchHint"),children:n(cn,{checked:m,disabled:d.pending||!r.available||!p,label:e("privacy.improve.switch"),onChange:g})}),(!r.available||!p||!r.packaged||d.error)&&n(Be,{children:[r.available?p?!r.packaged&&n(he,{children:e("privacy.devBuild")}):n(he,{children:e("privacy.signInFirst")}):n(he,{children:e("privacy.needUpdate")}),n(xe,{a:d})]}),n("div",{class:"settings-control-row fx-row fx-block",children:n("button",{type:"button",class:"fx-link",onClick:()=>{try{te().openExternal?.(bb)?.catch(()=>{})}catch{}},children:[e("privacy.policyLink"),n(F,{name:"chevron",size:12})]})}),n(Ze,{label:e("privacy.sent.title"),desc:r.lastSentAt?e("privacy.sent.last",{time:Et(r.lastSentAt,t)}):e("privacy.sent.hint"),children:n(W,{pending:f.pending,onClick:h,children:[n(F,{name:"eye",size:12})," ",e("privacy.sent.view")]})}),(l||f.error)&&n(Be,{children:[n(xe,{a:f}),l&&(l.length?n("pre",{class:"fx-sent",children:JSON.stringify(l.map(y=>({at:new Date(y.at).toISOString(),...y.body})),null,2)}):n(he,{children:e("privacy.sent.empty")}))]}),n(Ze,{label:e("privacy.delete.title"),desc:e("privacy.delete.hint"),children:n(Kt,{label:e("privacy.delete.button"),confirmLabel:e("privacy.delete.confirm"),variant:"danger",pending:u.pending,onConfirm:k})}),(u.error||u.success)&&n(Be,{children:n(xe,{a:u})}),n(Be,{class:"fx-sub--tight",children:n("span",{class:"fx-muted",children:e("privacy.installId",{id:`${r.installId.slice(0,6)}\u2026${r.installId.slice(-4)}`})})})]})}var bo=class extends Error{};async function Ld(e,t=256){if(e.size>20971520)throw new bo;let o=URL.createObjectURL(e);try{let r=new Image;await new Promise((f,u)=>{r.onload=()=>f(),r.onerror=()=>u(new Error("image decode failed")),r.src=o});let a=r.naturalWidth,i=r.naturalHeight;if(!a||!i)throw new Error("empty image");if(a*i>5e7)throw new bo;let s=Math.min(1,t/Math.max(a,i)),l=document.createElement("canvas");l.width=Math.max(1,Math.round(a*s)),l.height=Math.max(1,Math.round(i*s));let c=l.getContext("2d");if(!c)throw new Error("canvas unavailable");c.fillStyle="#fff",c.fillRect(0,0,l.width,l.height),c.drawImage(r,0,0,l.width,l.height);let d=l.toDataURL("image/jpeg",.85);if(d.length>262144)throw new bo;return d}finally{URL.revokeObjectURL(o)}}function ya(e){let t=String(e||"").trim();if(!t)return"?";let o=Array.from(t)[0];return/[㐀-鿿]/.test(o)?o:Array.from(t).slice(0,2).join("").toUpperCase()}var Dd=["cream","coral","teal","lavender"],Nd=["auto","light","dark"],Od=["none","mist","contour","dots"],Fd=["none","ring","pro"],$d=["early","streak","author","inviter","event"];var Xi=e=>!!e&&e.toLowerCase()!=="free";function Ki(e,t){let o={...e.settings,...t};return{...e,settings:o,bio:o.bio,links:o.links,skin:o.skin,mode:o.mode,cover:o.cover,frame:o.frame==="pro"&&!Xi(e.tier)?"none":o.frame,modules:o.modules.filter(r=>r.show).map(r=>({id:r.id}))}}function Yi(e,t,o){let r=e.findIndex(s=>s.id===t),a=r+o;if(r<0||a<0||a>=e.length)return e;let i=e.slice();return[i[r],i[a]]=[i[a],i[r]],i}function Bd(e){let t=e.trim();if(!t)return null;let o=/^[a-z][a-z0-9+.-]*:/i.test(t)?t:`https://${t}`,r;try{r=new URL(o)}catch{return null}if(r.protocol!=="http:"&&r.protocol!=="https:"||!r.hostname.includes("."))return null;let a=r.toString();return a.length<=200?a:null}function Zi(e){return e.replace(/^https?:\/\//i,"").replace(/^www\./i,"").replace(/\/$/,"")}function Ud(e,t){let o=t==="zh"?[[1e8,"\u4EBF"],[1e4,"\u4E07"]]:[[1e9,"B"],[1e6,"M"],[1e3,"K"]];for(let[r,a]of o)if(e>=r){let i=e/r;return{value:i>=100?String(Math.round(i)):String(Math.round(i*10)/10),unit:a}}return{value:Math.round(e).toLocaleString("en-US"),unit:""}}var Hd=e=>e==="zh"?"zh-CN":"en-US";function qd(e,t){let[o,r]=e.split("-").map(Number);if(!o||!r)return[];let a=new Intl.DateTimeFormat(Hd(t),{month:"short",timeZone:"UTC"});return Array.from({length:12},(i,s)=>a.format(new Date(Date.UTC(o,r-12+s,1))))}function Vd(e,t){let[o,r]=e.split("-").map(Number);return!o||!r?"":new Intl.DateTimeFormat(Hd(t),{year:"numeric",month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(o,r-1,1)))}function Wd([e,t]){let o=r=>`${String((r%24+24)%24).padStart(2,"0")}:00`;return`${o(e)} \u2013 ${o(t)}`}function jd(e){let t=0,o=Promise.resolve(),r=async a=>{if(a===t)try{let i=await e.read();a===t&&e.apply(i)}catch(i){if(a===t)throw i}};return{read(){let a=t;return o.then(()=>r(a))},write(a){let i=++t,s=o.then(a).then(l=>{i===t&&e.apply(l)});return o=s.catch(()=>i===t?r(i).catch(()=>{}):void 0),s}}}var Kd={skill:{key:"profile.work.skill",icon:"sparkles"},agent:{key:"profile.work.agent",icon:"bot"},plugin:{key:"profile.work.plugin",icon:"box"},space:{key:"profile.work.space",icon:"grid"},theme:{key:"profile.work.theme",icon:"palette"},"amadeus-plugin":{key:"profile.work.note",icon:"note"},webapp:{key:"profile.work.webapp",icon:"globe"}},Jd={early:"sprout",streak:"flame",author:"box",inviter:"gift",event:"trophy"},Xd={plus:"Plus",pro:"Pro"},es=e=>!!e&&/^https?:\/\//i.test(e);function ts(e){if(!es(e))return;let t=te().openExternal;t?t(e).catch(()=>{}):window.open(e,"_blank","noopener")}async function xb(e,t,o){let r=await Z(e,{method:t,body:o});if(!r.ok)throw r;if(!r.data?.profile)throw{ok:!1,status:r.status,code:null,detail:null,transport:"bad_response"};return r.data.profile}var Yd=e=>e&&typeof e=="object"&&e.ok===!1?St(e):{raw:String(e?.message||e)};function Zd(){let{t:e}=se(),t=nt(async()=>{let[r,a]=await Promise.all([Z("/profile/me"),Z("/auth/me")]);return a.ok?r.ok?r.data?.profile?{ok:!0,status:r.status,data:{profile:r.data.profile,me:a.data}}:{ok:!0,status:404,data:null}:r.status===404?{ok:!0,status:404,data:null}:r:a});if(t.state==="loading")return n(Ge,{panels:2,rows:3});if(t.state==="signedOut")return n(lt,{});if(t.state==="error")return n(ut,{error:t.error,onRetry:t.retry});if(!t.data)return n(Ie,{icon:"user",title:e("page.profile"),children:n(xt,{children:e("profile.unsupported")})});let{update:o}=t;return n(kb,{data:t.data,update:r=>o(a=>a&&r(a))})}function kb(e){let{t}=se(),o=Ve(),{profile:r,me:a}=e.data,[i,s]=S(null),[l,c]=S(null),[d,f]=S(!1),u=me(),p=ie(e.update);p.current=e.update;let m=(P,J,v)=>o.current?xb(P,J,v):Promise.reject(new Error("unmounted")),g=rn(()=>jd({apply:P=>p.current(J=>({...J,profile:P})),read:()=>m("/profile/me")}),[]),h=r.handle||a.username||r.username,k={...r,username:h,nickname:a.nickname||null},y=r.settings.isPublic,{profileUrl:x}=r,w=x&&ba(x)?x:null,C=P=>{o.current&&c({tone:"error",m:Yd(P)})},M=()=>{u.run(async()=>{c(null);try{await g.read()}catch(P){C(P)}})},$=P=>{c(null),e.update(J=>({...J,profile:Ki(J.profile,P)})),g.write(()=>m("/profile/me","PUT",P)).catch(C)},U=async P=>{e.update(J=>({...J,profile:Ki(J.profile,{modules:J.profile.settings.modules.map(v=>({...v,public:P.find(A=>A.id===v.id)?.public??v.public}))})})),await g.write(()=>m("/profile/me/visibility","POST",{public:!0,modules:P})),o.current&&(s(null),c({tone:"ok",m:{key:"profile.nowPublic"}}))},O=async()=>{f(!0),c(null);try{await g.write(()=>m("/profile/me/visibility","POST",{public:!1})),o.current&&c({tone:"ok",m:{key:"profile.nowPrivate"}})}catch(P){C(P)}finally{o.current&&f(!1)}},j=ie(Promise.resolve()),_=(P,J)=>{let v=j.current.then(async()=>{if(!o.current)return;let A=await Z("/settings",{method:"PUT",body:P});if(o.current){if(!A.ok)return c({tone:"error",m:St(A)});p.current(N=>({...N,me:{...N.me,...P}})),c({tone:"ok",m:{key:J}})}});return j.current=v,v},L=async P=>{c(null);let J;try{J=await Ld(P)}catch(v){return c({tone:"error",m:{key:v instanceof bo?"err.avatarTooLarge":"err.avatarInvalid"}})}await _({avatar:J},"account.avatar.saved")},B=P=>{c(null),s(J=>J===P?null:P)};return n("div",{class:"fx-pf-page",children:[n(Ie,{icon:y?"globe":"lock",title:t(y?"profile.state.public":"profile.state.private"),desc:y?n("span",{class:"fx-pf-share",children:w?n(R,{children:[n("a",{class:"fx-pf-share-link",href:w,target:"_blank",rel:"noopener noreferrer",title:t("profile.openPublic"),onClick:P=>{P.preventDefault(),ts(w)},children:[$o(w)," ",n(F,{name:"external",size:12})]}),n(Yt,{text:w,label:t("profile.copyLink"),iconOnly:!0},w)]}):n(R,{children:[n("span",{children:t("profile.linkUnavailable")}),n(W,{pending:u.pending,disabled:d,onClick:M,children:t("common.retry")})]})}):t("profile.state.privateDesc"),actions:n(R,{children:[n(W,{onClick:()=>B("deco"),children:[n(F,{name:"palette",size:12})," ",t("profile.decorate")]}),y?n(W,{pending:d,onClick:()=>void O(),children:[n(F,{name:"lock",size:12})," ",t("profile.makePrivate")]}):n(W,{variant:"primary",onClick:()=>B("publish"),children:[n(F,{name:"globe",size:12})," ",t("profile.publish")]})]}),children:[i==="publish"&&!y&&n(wb,{profile:r,url:w,submit:U,onClose:()=>s(null)}),l&&n(Be,{class:"fx-sub--tight",children:n("div",{class:`fx-msg ${l.tone==="ok"?"is-ok":"is-error"}`,role:l.tone==="ok"?"status":"alert",children:zt(l.m,t)})})]}),n("div",{class:"fx-pf-home","data-deco":i==="deco"?"":void 0,children:[n("div",{class:"fx-pf-root",children:n(Cb,{view:k,avatar:a.avatar||null,pinned:r.settings.pinned,owner:{onAvatar:P=>void L(P),onNickname:P=>{c(null),_({nickname:P},"account.nickname.saved")},onBio:P=>$({bio:P}),onLinks:P=>$({links:P}),onPinned:P=>$({pinned:P}),onInvalidLink:()=>c({tone:"error",m:{key:"profile.linkInvalid"}})}})}),i==="deco"&&n(zb,{profile:r,onChange:$,onClose:()=>s(null)})]})]})}function wb(e){let{t}=se(),o=Ve(),{profile:r}=e,[a,i]=S({}),s=r.settings.modules.filter(m=>m.show).map(m=>({...m,public:a[m.id]??m.public})),[l,c]=S(!1),[d,f]=S(null),u=r.canPublish?null:r.publishBlockedReason||"publish_blocked";if(u)return n(Be,{children:[n(he,{children:t(u==="machine_username"?"profile.blocked.machineUsername":"profile.blocked.publishBlocked")}),n("div",{class:"fx-inline fx-pf-foot",children:[u==="machine_username"&&n(W,{variant:"primary",onClick:()=>void mo("profile"),children:[t("profile.goRename")," ",n(F,{name:"external",size:12})]}),n(W,{onClick:e.onClose,children:t("common.cancel")})]})]});let p=async()=>{c(!0),f(null);try{await e.submit(s.map(({id:m,public:g})=>({id:m,public:g})))}catch(m){if(!o.current)return;f(Yd(m)),c(!1)}};return n(Be,{children:[e.url&&n("div",{class:"fx-pf-url",children:[n(F,{name:"globe",size:14}),n("span",{children:e.url.replace(/^https?:\/\//i,"")})]}),n(he,{children:t("profile.publishDesc")}),n("div",{class:"fx-pf-checks",children:s.map(m=>n("div",{class:"fx-pf-check",children:[n("div",{children:[t(`profile.mod.${m.id}`),n("small",{children:t(`profile.modDesc.${m.id}`)})]}),n(cn,{checked:m.public,disabled:l,label:`${t(`profile.mod.${m.id}`)} \xB7 ${t("profile.col.public")}`,onChange:g=>i(h=>({...h,[m.id]:g}))})]},m.id))}),n(he,{children:t("profile.publishNever")}),d&&n("div",{class:"fx-msg is-error",role:"alert",children:zt(d,t)}),n("div",{class:"fx-inline fx-pf-foot",children:[n(W,{variant:"primary",pending:l,onClick:()=>void p(),children:t("profile.publishConfirm")}),n(W,{disabled:l,onClick:e.onClose,children:t("common.cancel")})]})]})}function zb(e){let{t}=se(),o=e.profile.settings,r=Xi(e.profile.tier),a=(s,l)=>e.onChange({modules:o.modules.map(c=>c.id===s?{...c,...l}:c)}),i=s=>n("span",{class:"fx-pf-thumb",children:s});return n("aside",{class:"fx-pf-deco","aria-label":t("profile.decorate"),children:n(Ie,{icon:"palette",title:t("profile.decorate"),actions:n(W,{onClick:e.onClose,children:t("common.done")}),children:n("div",{class:"fx-pf-deco-body",children:[n("h4",{children:t("profile.deco.cover")}),n("div",{class:"fx-pf-opts",children:Od.map(s=>n("button",{type:"button",class:"fx-pf-opt","aria-pressed":o.cover===s,onClick:()=>e.onChange({cover:s}),children:[i(n("span",{class:`fx-pf-cv-thumb fx-pf-cv-${s}`})),t(`profile.cover.${s}`)]},s))}),n("h4",{children:t("profile.deco.frame")}),n("div",{class:"fx-pf-opts",children:Fd.map(s=>n("button",{type:"button",class:"fx-pf-opt","aria-pressed":o.frame===s,disabled:s==="pro"&&!r,title:s==="pro"&&!r?t("profile.frameProHint"):void 0,onClick:()=>e.onChange({frame:s}),children:[i(n("span",{class:`fx-pf-fr-demo fx-pf-fr-${s}`,children:n("span",{class:"fx-pf-av"})})),t(`profile.frame.${s}`)]},s))}),!r&&n(he,{children:t("profile.frameProHint")}),n("h4",{children:t("profile.deco.modules")}),n("div",{class:"fx-pf-mod-head","aria-hidden":"true",children:[n("span",{children:t("profile.col.show")}),n("span",{children:t("profile.col.public")})]}),o.modules.map((s,l)=>n("div",{class:"fx-pf-mod",children:[n("span",{children:t(`profile.mod.${s.id}`)}),n("button",{type:"button",class:"fx-icon-btn",disabled:l===0,title:t("profile.moveUp"),"aria-label":`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.moveUp")}`,onClick:()=>e.onChange({modules:Yi(o.modules,s.id,-1)}),children:n(F,{name:"up",size:13})}),n("button",{type:"button",class:"fx-icon-btn",disabled:l===o.modules.length-1,title:t("profile.moveDown"),"aria-label":`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.moveDown")}`,onClick:()=>e.onChange({modules:Yi(o.modules,s.id,1)}),children:n(F,{name:"down",size:13})}),n(cn,{checked:s.show,label:`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.col.show")}`,onChange:c=>a(s.id,{show:c})}),n(cn,{checked:s.show&&s.public,disabled:!s.show,label:`${t(`profile.mod.${s.id}`)} \xB7 ${t("profile.col.public")}`,onChange:c=>a(s.id,{public:c})})]},s.id)),n(he,{children:t("profile.modulesHint")}),n("h4",{children:t("profile.deco.skin")}),n("div",{class:"fx-pf-opts",children:Dd.map(s=>n("button",{type:"button",class:"fx-pf-opt","aria-pressed":o.skin===s,onClick:()=>e.onChange({skin:s}),children:[i(n("span",{class:"fx-pf-swatch","data-skin":s})),t(`profile.skin.${s}`)]},s))}),n("h4",{children:t("profile.deco.mode")}),n(Pt,{value:o.mode,label:t("profile.deco.mode"),onChange:s=>e.onChange({mode:s}),options:Nd.map(s=>({value:s,label:t(`profile.mode.${s}`)}))}),n(he,{children:t("profile.deco.publicHint")})]})})})}function Qi(e){let[t,o]=S(null),r=ie(!1),a=ie(null),i=t!==null;Zn(()=>{i&&a.current?.focus()},[i]);let s=e.class?` ${e.class}`:"";if(t===null)return n("button",{type:"button",class:`fx-pf-ed${s}${e.value?"":" is-empty"}`,title:e.label,"aria-label":e.label,onClick:()=>{r.current=!1,o(e.value)},children:[n("span",{children:e.value||e.placeholder}),n(F,{name:e.value?"pencil":"plus",size:12})]});let l=()=>{let c=t.trim();o(null),!r.current&&c!==e.value&&e.onSave(c)};return n("span",{class:`fx-pf-ed-on${s}`,children:[n("input",{ref:a,class:"fx-input",type:"text",value:t,maxLength:e.maxLength,placeholder:e.placeholder,"aria-label":e.label,onInput:c=>o(c.currentTarget.value),onBlur:l,onKeyDown:c=>{c.isComposing||(c.key==="Enter"?c.currentTarget.blur():c.key==="Escape"&&(c.preventDefault(),r.current=!0,c.currentTarget.blur()))}}),e.counter&&n("small",{children:[Array.from(t).length,"/",e.maxLength]})]})}function xa(e){return n("section",{class:"fx-pf-sec",style:{order:e.order},children:[n("div",{class:"fx-pf-sec-h",children:[n("h3",{children:e.title}),e.action]}),e.children]})}function Sb(e){let{t}=se(),{work:o}=e,r=Kd[o.type],a=n(R,{children:[n("div",{class:"fx-pf-work-top",children:[n("span",{class:"fx-pf-work-ico",children:n(F,{name:r?.icon??"box",size:17})}),n("div",{children:[n("div",{class:"fx-pf-work-name",children:o.name}),n("div",{class:"fx-pf-work-type",children:r?t(r.key):o.type})]})]}),n("p",{children:o.summary}),(o.countKind!=="visits"||o.count>0)&&n("div",{class:"fx-pf-work-foot",children:[n(F,{name:o.countKind==="visits"?"eye":"download",size:12}),t(o.countKind==="visits"?"profile.workVisits":"profile.workInstalls",{n:o.count.toLocaleString("en-US")})]})]}),i=o.url;return es(i)?n("a",{class:"fx-pf-work",href:i,onClick:s=>{s.preventDefault(),ts(i)},children:a}):n("article",{class:"fx-pf-work",children:a})}function _b(e){let{t}=se(),o=Ve(),[r,a]=S(null),[i,s]=S(()=>e.pinned.map(f=>`${f.kind}:${f.id}`));Y(()=>{Z("/profile/me/works").then(f=>{o.current&&a(f.ok?f.data?.works??[]:"failed")})},[]);let l=f=>`${f.kind}:${f.id}`,c=f=>s(u=>u.includes(f)?u.filter(p=>p!==f):[...u,f]);if(r===null)return n("div",{class:"fx-pf-card fx-pf-empty",children:[n(ln,{})," ",t("common.loading")]});if(r==="failed"||r.length===0)return n("div",{class:"fx-pf-card fx-pf-empty",children:[n("p",{children:t(r==="failed"?"common.loadFailed":"profile.worksNone")}),n("div",{class:"fx-inline fx-pf-foot",children:[r!=="failed"&&n(W,{variant:"primary",onClick:()=>void mo("submission"),children:[t("profile.goSubmit")," ",n(F,{name:"external",size:12})]}),n(W,{onClick:e.onClose,children:t("common.cancel")})]})]});let d=()=>{let f=new Map(r.map(u=>[l(u),u]));e.onSave(i.flatMap(u=>{let p=f.get(u);return p?[{kind:p.kind,id:p.id}]:[]})),e.onClose()};return n("div",{class:"fx-pf-card fx-pf-picker",children:[r.map(f=>{let u=l(f),p=i.includes(u),m=Kd[f.type];return n("button",{type:"button",class:"fx-pf-pick","aria-pressed":p,disabled:!p&&i.length>=6,onClick:()=>c(u),children:[n("div",{children:[f.name,n("small",{children:[m?t(m.key):f.type," \xB7 ",f.summary]})]}),p&&n(F,{name:"check",size:15})]},u)}),n("div",{class:"fx-inline fx-pf-foot",children:[n("span",{class:"fx-grow",children:i.length?t("profile.worksPicked",{n:i.length,max:6}):t("profile.worksAuto")}),n(W,{variant:"primary",onClick:d,children:t("common.done")}),n(W,{onClick:e.onClose,children:t("common.cancel")})]})]})}function Cb(e){let{t,locale:o}=se(),{view:r,owner:a}=e,i=ie(null),[s,l]=S(!1),c=r.nickname||r.username,d=(r.tier||"free").toLowerCase(),f=r.modules.map(v=>v.id),u=v=>f.indexOf(v),p=v=>u(v)>=0,m=r.stats,g=m?Ud(m.totalTokens,o):null,h=t("profile.unit.days"),k=m&&g?[[g.value,g.unit,t("profile.stat.tokens")],[String(m.activeDays),h,t("profile.stat.activeDays")],[String(m.longestStreak),h,t("profile.stat.longest")],[String(m.currentStreak),h,t("profile.stat.current")],[m.installs.toLocaleString("en-US"),"",t("profile.stat.installs")]]:[],y=m&&p("stats")&&n("div",{class:"fx-pf-stats",style:{order:u("stats")},children:k.map(([v,A,N])=>n("div",{class:"fx-pf-stat",children:[n("b",{children:[v,A&&n("small",{children:A})]}),n("span",{children:N})]},N))},"stats"),x=f[0]==="stats",w=r.works||[],C=p("works")&&n(xa,{order:u("works"),title:t("profile.works"),action:!s&&n("button",{type:"button",class:"fx-link",onClick:()=>l(!0),children:t("profile.worksPick")}),children:s?n(_b,{pinned:e.pinned,onSave:a.onPinned,onClose:()=>l(!1)}):w.length?n("div",{class:"fx-pf-works",children:w.map(v=>n(Sb,{work:v},`${v.kind}:${v.id}`))}):n("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.worksEmpty")})},"works"),M=r.activity,$=p("activity")&&M&&n(xa,{order:u("activity"),title:t("profile.activity"),children:n("div",{class:"fx-pf-card",children:[n("div",{class:"fx-pf-hm",role:"img","aria-label":t("profile.activityDays",{n:M.activeDays}),children:M.levels.map((v,A)=>n("i",{class:v?`l${v}`:void 0},A))}),n("div",{class:"fx-pf-hm-months","aria-hidden":"true",children:qd(M.end,o).map((v,A)=>n("span",{children:v},A))}),n("div",{class:"fx-pf-hm-foot",children:[n("span",{children:t("profile.activityDays",{n:M.activeDays})}),n("span",{class:"fx-pf-hm-legend","aria-hidden":"true",children:[t("profile.less"),n("i",{}),n("i",{class:"l1"}),n("i",{class:"l2"}),n("i",{class:"l3"}),n("i",{class:"l4"}),t("profile.more")]})]})]})},"activity"),U=(r.badges||[]).filter(v=>$d.includes(v.id)),O=p("badges")&&n(xa,{order:u("badges"),title:t("profile.badges"),children:U.length?n("div",{class:"fx-pf-card fx-pf-rows",children:U.map(v=>n("div",{class:"fx-pf-brow",children:[n("span",{class:"fx-pf-badge",children:n(F,{name:Jd[v.id],size:14})}),n("div",{children:[n("b",{children:t(`profile.badge.${v.id}`)}),n("span",{children:t(`profile.badgeSub.${v.id}`,{value:v.value??""})})]})]},v.id))}):n("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.badgesEmpty")})},"badges"),j=r.insights,_=[];j?.topModel&&_.push([t("profile.insightModel"),j.topModel]),j?.activeHours&&_.push([t("profile.insightHours"),Wd(j.activeHours)]);let L=p("insights")&&n(xa,{order:u("insights"),title:t("profile.insights"),children:_.length?n("div",{class:"fx-pf-card fx-pf-rows",children:_.map(([v,A])=>n("div",{class:"fx-pf-row",children:[n("span",{children:v}),n("b",{children:A})]},v))}):n("div",{class:"fx-pf-card fx-pf-empty",children:t("profile.insightsEmpty")})},"insights"),B=[!x&&y,C,$].filter(Boolean),P=[O,L].filter(Boolean),J=v=>{if(!v)return;let A=Bd(v);if(!A)return a.onInvalidLink();r.links.includes(A)||a.onLinks([...r.links,A])};return n("div",{class:"fx-pf","data-cover":r.cover,"data-frame":r.frame,children:[n("div",{class:"fx-pf-cover"}),n("div",{class:"fx-pf-id",children:[n("button",{type:"button",class:"fx-pf-avatar",title:t("account.avatar.change"),"aria-label":t("account.avatar.change"),onClick:()=>i.current?.click(),children:[n("span",{class:"fx-pf-av",children:e.avatar?n("img",{src:e.avatar,alt:""}):n("span",{class:"fx-pf-av-fallback",children:ya(c)})}),n("span",{class:"fx-pf-av-mask",children:n(F,{name:"pencil",size:18})})]}),n("input",{ref:i,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif,image/avif",hidden:!0,onChange:v=>{let A=v.currentTarget,N=A.files?.[0];A.value="",N&&a.onAvatar(N)}}),n("div",{class:"fx-pf-id-text",children:[n("div",{class:"fx-pf-name",children:[n(Qi,{value:c,placeholder:r.username,maxLength:40,label:t("account.nickname.edit"),onSave:v=>{v&&a.onNickname(v)}}),Xd[d]&&n("span",{class:`fx-tag${d==="pro"?" fx-pf-tier-pro":" fx-tag--accent"}`,children:Xd[d]})]}),n("div",{class:"fx-pf-handle",children:["@",r.username]})]}),U.length>0&&p("badges")&&n("div",{class:"fx-pf-badges",children:U.map(v=>n("span",{class:"fx-pf-badge",title:t(`profile.badge.${v.id}`),children:n(F,{name:Jd[v.id],size:14})},v.id))})]}),n("div",{class:"fx-pf-sub",children:[n(Qi,{class:"fx-pf-bio",value:r.bio,placeholder:t("profile.bioPlaceholder"),maxLength:80,label:t("profile.bio"),counter:!0,onSave:a.onBio}),n("div",{class:"fx-pf-meta",children:[r.joinedMonth&&n("span",{children:[n(F,{name:"calendar",size:13}),t("profile.joined",{date:Vd(r.joinedMonth,o)})]}),r.links.map(v=>n("span",{children:[n(F,{name:"link",size:13}),es(v)?n("a",{href:v,onClick:A=>{A.preventDefault(),ts(v)},children:Zi(v)}):n("span",{children:Zi(v)}),n("button",{type:"button",class:"fx-pf-x",title:t("profile.linkRemove"),"aria-label":t("profile.linkRemove"),onClick:()=>a.onLinks(r.links.filter(A=>A!==v)),children:n(F,{name:"x",size:11})})]},v)),r.links.length<2&&n(Qi,{value:"",placeholder:t("profile.linkAdd"),maxLength:200,label:t("profile.linkAdd"),onSave:J},r.links.length)]})]}),x&&y,n("div",{class:"fx-pf-body","data-cols":B.length&&P.length?2:1,children:[n("div",{class:"fx-pf-main",children:B}),P.length>0&&n("div",{class:"fx-pf-side",children:P})]})]})}function Qd(){let e=nt(async()=>{let[t,o]=await Promise.all([Z("/membership/my"),Z("/features")]);return t.ok?{ok:!0,status:t.status,data:{membership:t.data?.membership??null,payment:!o.ok||o.data?.payment!==!1}}:t});return e.state==="loading"?n(Ge,{panels:1}):e.state==="signedOut"?null:n(Ab,{membership:e.state==="ready"?e.data.membership:null,failed:e.state==="error",payment:e.state==="ready"&&e.data.payment,onRetry:e.state==="ready"?e.reload:e.retry})}function Ab(e){let{t,locale:o}=se(),r=me(),a=e.membership&&(e.membership.status===void 0||e.membership.status==="active")?e.membership:null,i=gr(a?.tier),s=i==="Free",l=s?"free":i.toLowerCase()==="pro"?"pro":"paid",c=()=>void r.run(async()=>await Pn("membership")?void 0:{error:{key:"err.openFailed"}});return n(Ie,{icon:"card",title:t("member.title"),desc:t("member.desc"),actions:e.payment&&!e.failed?n(W,{variant:"primary",pending:r.pending,onClick:c,children:t(s?"member.upgrade":"member.renew")}):void 0,children:[!e.failed&&n("div",{class:"fx-member fx-block",children:[n("span",{class:`fx-tier fx-tier--${l}`,children:Oo(a?.plan,o)||i}),n("div",{class:"fx-member-copy",children:[n("strong",{children:s?t("member.freeName"):Oo(a?.plan,o)||i}),n("span",{class:"fx-muted",children:s?t("member.freeHint"):a?.expiresAt?t("member.expires",{date:$t(a.expiresAt,o)}):t("member.noExpiry")})]})]}),e.failed&&n("div",{class:"fx-sub",children:n(he,{tone:"warn",children:[t("member.loadFailed")," ",n("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}),r.error&&n("div",{class:"fx-sub fx-sub--tight",children:n(xe,{a:r})})]})}function Ue(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Tb(e,t){let o=Ue(t);if(o===null||o<0)return null;if(o===0)return 0;let r=Math.max(0,Ue(e)??0);return Math.min(100,Math.max(0,Math.floor(r/o*100)))}var Eb=15;function vo(e,t){let o=Tb(e,t);if(o===null)return{unlimited:!0,pct:100,text:null,low:!1};let r=Math.max(0,Ue(e)??0),a=o===0&&r>0&&(Ue(t)??0)>0?"<1%":`${o}%`;return{unlimited:!1,pct:o,text:a,low:o<=Eb}}function ka(e,t){let o=Ue(t);if(o===null||o<=0)return null;let r=Ue(e);if(r===null)return null;let a=Math.max(0,r);if(a===0)return"0%";let i=a/o*100;if(i<.1)return"<0.1%";let s=Math.round(i*10)/10;return s<10?`${s}%`:`${Math.round(i).toLocaleString("en-US")}%`}var Pb=e=>e.ok?"ok":e.status===404?"hidden":"failed";function tu(){return n(ou,{section:"points"})}function nu(){return n(R,{children:[n(Qd,{}),n(ou,{section:"quota"})]})}function ou({section:e}){let t=nt(async()=>{let[l,c,d,f]=await Promise.all([Z("/token-quota/my"),Z("/credits/balance"),Z("/features"),Z("/invite/my-code")]);return l.ok?{ok:!0,status:l.status,data:{quota:l.data??{},balance:c.ok?Ue(c.data?.balance):null,balanceFailed:!c.ok,features:d.ok&&d.data&&typeof d.data=="object"?d.data:{},invite:f.ok?f.data:null,inviteState:Pb(f)}}:l});if(t.state==="loading")return n(Ge,{panels:3,rows:2});if(t.state==="signedOut")return n(lt,{});if(t.state==="error")return n(ut,{error:t.error,onRetry:t.retry});let{data:o,update:r}=t,a=o.quota.background,i=o.features.redemption_codes!==!1,s=o.features.payment!==!1;return n(R,{children:[e==="quota"&&n(R,{children:[n(Ib,{data:o,update:r,onFailed:t.reload}),a?.modelId?n(Nb,{bg:a,update:r}):null]}),e==="points"&&n(Lb,{data:o,payment:s,onRetry:t.reload}),e==="points"&&(o.inviteState!=="hidden"||i)&&n(Ob,{data:o,update:r,redeemEnabled:i,onRedeemed:t.reload})]})}var eu=e=>({dailyLimit:e.dailyLimit,dailyRemaining:e.dailyRemaining,weeklyLimit:e.weeklyLimit,weeklyRemaining:e.weeklyRemaining});function Mb(e,t){if(typeof e?.showResetCardCeremony!="function")return!1;try{return e.showResetCardCeremony(t),!0}catch{return!1}}function Ib(e){let{t,locale:o,ctx:r}=se(),a=e.data.quota,i=vo(a.dailyRemaining,a.dailyLimit),s=vo(a.weeklyRemaining,a.weeklyLimit),l=ed(a.weeklyResetAt,o),c=Math.max(0,Ue(a.resetCards)??0),d=Ue(a.resetCardPricePoints)??100,f=me(),u=me(),[p,m]=S(null),[g,h]=S("1"),k=/^\d+$/.test(g.trim())?Number(g.trim()):NaN,y=Number.isInteger(k)&&k>=1&&k<=50,x=y?k*d:null,w=e.data.balance,C=x!==null&&w!==null&&w<x,M=()=>void f.run(async()=>{let O={daily:i,weekly:s},j=eu(a);m(null);let _=te(),L=await ia(_.accountUseResetCard?()=>_.accountUseResetCard("both"):null,()=>Z("/token-quota/reset-card/use",{method:"POST",body:{type:"both"}}));if(!L.ok)return e.onFailed(),$e(L);let B=L.data?.quota,P=Ue(L.data?.resetCards);return e.update(J=>({...J,quota:{...J.quota,...B??{},resetCards:P??J.quota.resetCards}})),B&&!Mb(r.app,{before:j,after:eu(B),remainingCards:P??void 0})&&m({before:O,after:{daily:vo(B.dailyRemaining,B.dailyLimit),weekly:vo(B.weeklyRemaining,B.weeklyLimit)},cards:P}),{success:{key:"card.used"}}}),$=()=>void u.run(async()=>{if(!y)return{error:{key:"err.invalidCount"}};let O=await Z("/points/exchange-reset-cards",{method:"POST",body:{count:k,expectedPricePerCard:d}});return O.ok?(e.update(j=>({...j,quota:{...j.quota,resetCards:Ue(O.data?.resetCards)??j.quota.resetCards},balance:Ue(O.data?.newPointsBalance)??j.balance})),h("1"),{success:{key:"card.exchanged",vars:{n:Ue(O.data?.cardsGranted)??k}}}):(e.onFailed(),$e(O))}),U=O=>O.unlimited?t("common.unlimited"):O.text;return n(Ie,{icon:"gauge",title:t("quota.ai.title"),desc:t("quota.ai.desc"),children:[n("div",{class:"fx-quota-list fx-block",children:[n(br,{label:t("common.today"),display:i,note:i.unlimited?null:t("quota.resetDaily")}),n(br,{label:t("common.thisWeek"),display:s,note:s.unlimited||!l?null:t("quota.resetWeekly",{date:l})})]}),n(Ze,{label:t("card.title"),desc:t("card.desc"),children:[n("span",{class:"fx-value","data-testid":"reset-card-count",children:t("card.owned",{n:c})}),n(Kt,{label:t("card.use"),confirmLabel:t("card.useConfirm"),pending:f.pending,disabled:c<=0,onConfirm:M})]}),c<=0&&!f.success&&n(Be,{children:n(he,{children:t("card.noneHint")})}),(f.error||f.success)&&n(Be,{children:[n(xe,{a:f}),f.success&&p&&n("div",{class:"fx-ceremony",role:"status",children:[n("span",{children:[t("common.today")," ",n("b",{children:U(p.before.daily)})," \u2192 ",n("b",{children:U(p.after.daily)})]}),n("span",{children:[t("common.thisWeek")," ",n("b",{children:U(p.before.weekly)})," \u2192 ",n("b",{children:U(p.after.weekly)})]}),p.cards!==null&&n("span",{class:"fx-muted",children:t("card.left",{n:p.cards})})]})]}),n(Ze,{label:t("card.exchange"),desc:t("card.price",{price:ze(d,o)}),class:"fx-row--wide",children:[n("input",{class:"fx-input fx-input--count",type:"number",inputMode:"numeric",min:1,max:50,step:1,value:g,"aria-label":t("card.count"),onInput:O=>{h(O.currentTarget.value),u.clear()}}),n("span",{class:"fx-muted fx-cost",children:x!==null?t("card.cost",{cost:ze(x,o)}):t("card.countHint")}),n(Kt,{label:t("card.exchangeButton"),confirmLabel:t("card.exchangeConfirm",{cost:x!==null?ze(x,o):"\u2014"}),pending:u.pending,disabled:!y||C,onConfirm:$})]}),(C||u.error||u.success)&&n(Be,{children:[C&&!u.error&&n(he,{tone:"warn",children:t("err.insufficientPoints")}),n(xe,{a:u})]})]})}function Rb(e,t,o){let r=me(),[a,i]=S(null);return{checked:a??e,toggle:l=>{i(l),r.run(async()=>{let c=await t(l);if(i(null),!c.ok)return $e(c);o(l)})},action:r}}function Lb(e){let{t,locale:o}=se(),r=me(),a=()=>void r.run(async()=>await Pn("credits")?void 0:{error:{key:"err.openFailed"}});return n(Ie,{icon:"coins",title:t("points.title"),desc:t("points.desc"),actions:e.payment?n(W,{variant:"primary",pending:r.pending,onClick:a,children:t("points.recharge")}):void 0,children:[n(Ze,{label:t("points.balance"),children:e.data.balance!==null?n("span",{class:"fx-big","data-testid":"points-balance",children:ze(e.data.balance,o)}):n("span",{class:"fx-value is-empty",children:[t("points.balanceFailed")," ",n("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}),r.error&&n(Be,{children:n(xe,{a:r})})]})}var Db=[5,10,20];function Nb(e){let{t}=se(),{bg:o}=e,r=vo(o.dailyRemaining,o.dailyLimit),a=vo(o.weeklyRemaining,o.weeklyLimit),i=me(),[s,l]=S(null),c=Rb(!!o.autoMain,f=>{let u=te();return ia(u.accountBgAutoMain?()=>u.accountBgAutoMain(f):null,()=>Z("/token-quota/background/auto-main",{method:"POST",body:{enabled:f}}))},f=>e.update(u=>({...u,quota:{...u.quota,background:{...u.quota.background??{},autoMain:f}}}))),d=f=>{l(f),i.run(async()=>{let u=te(),p=await ia(u.accountBgConvert?()=>u.accountBgConvert(f):null,()=>Z("/token-quota/background/convert",{method:"POST",body:{percent:f}}));if(l(null),!p.ok)return $e(p);let m=p.data?.quota;return m&&e.update(h=>({...h,quota:{...h.quota,...m,resetCards:h.quota.resetCards,resetCardPricePoints:h.quota.resetCardPricePoints}})),{success:{key:"bg.converted",vars:{pct:f}}}})};return n(Ie,{icon:"clock",title:t("bg.title"),desc:t("bg.desc"),children:[n("div",{class:"fx-quota-list fx-block",children:[n(br,{label:t("common.today"),display:r}),n(br,{label:t("common.thisWeek"),display:a})]}),n(Ze,{label:t("bg.autoMain"),desc:t("bg.autoMainDesc"),children:n(cn,{checked:c.checked,disabled:c.action.pending,label:t("bg.autoMain"),onChange:c.toggle})}),n(Ze,{label:t("bg.convert"),desc:t("bg.convertDesc"),class:"fx-row--wide",children:Db.map(f=>n(Kt,{label:`${f}%`,confirmLabel:t("bg.convertConfirm",{pct:f}),pending:i.pending&&s===f,disabled:i.pending&&s!==f,onConfirm:()=>d(f)},f))}),(i.error||i.success||c.action.error)&&n(Be,{children:[n(xe,{a:c.action}),n(xe,{a:i})]})]})}function Ob(e){let{t,locale:o}=se(),{invite:r,inviteState:a}=e.data,[i,s]=S(null),[l,c]=S(""),[d,f]=S(""),u=me(),p=me(),m=me();Y(()=>{let x=!0;return te().authStatus?.().then(w=>{x&&s(w?.cloudUrl?w.cloudUrl.replace(/\/+$/,""):null)}).catch(()=>{}),()=>{x=!1}},[]);let g=async()=>{let x=await Z("/invite/my-code");return e.update(w=>({...w,invite:x.ok?x.data:w.invite,inviteState:x.ok?"ok":x.status===404?"hidden":w.inviteState})),x},h=()=>void u.run(async()=>{let x=l.trim();if(!x)return{error:{key:"err.inviteEmpty"}};let w=await Z("/invite/claim",{method:"POST",body:{code:x}});return w.ok?(c(""),g(),{success:{key:"invite.claimed"}}):$e(w)}),k=()=>void p.run(async()=>{let x=d.trim();if(!x)return{error:{key:"err.redeemEmpty"}};let w=await Z("/redemption/redeem",{method:"POST",body:{code:x}});if(!w.ok)return $e(w);f(""),e.onRedeemed();let C=[],M=Ue(w.data?.creditsAmount);M&&C.push(t("redeem.gotPoints",{n:ze(M,o)})),w.data?.membershipPlanId&&C.push(t("redeem.gotMembership"));for(let $ of Array.isArray(w.data?.items)?w.data.items:[]){let U=(o==="zh"?$?.label?.zh:$?.label?.en)||$?.label?.zh||$?.label?.en||$?.kind;U&&C.push(U)}return{success:C.length?{key:"redeem.successWith",vars:{what:C.join(o==="zh"?"\u3001":", ")}}:{key:"redeem.success"}}}),y=r?.code&&i?`${i}/auth?invite=${encodeURIComponent(r.code)}`:"";return n(Ie,{icon:"gift",title:t("invite.title"),desc:t("invite.desc"),children:[a==="ok"&&r?.code&&n(Ze,{label:t("invite.myCode"),desc:t("invite.count",{n:ze(Ue(r.invitedCount)??0,o)}),class:"fx-row--wide",children:[n("code",{class:"fx-code","data-testid":"invite-code",children:r.code}),n(Yt,{text:r.code,label:t("invite.copyCode")}),n(Yt,{text:y,label:t("invite.copyLink"),disabled:!y})]}),a==="failed"&&n(Be,{children:n(he,{tone:"warn",children:[t("invite.loadFailed")," ",n("button",{type:"button",class:"fx-link",disabled:m.pending,onClick:()=>void m.run(async()=>{await g()}),children:t("common.retry")})]})}),a==="ok"&&r?.claim?.eligible&&n(Ze,{label:t("invite.claim"),desc:t("invite.claimDesc"),class:"fx-row--wide",children:n("form",{class:"fx-inline",onSubmit:x=>{x.preventDefault(),h()},children:[n("input",{class:"fx-input",value:l,placeholder:t("invite.claimPlaceholder"),"aria-label":t("invite.claim"),onInput:x=>c(x.currentTarget.value)}),n(W,{submit:!0,pending:u.pending,children:t("invite.claimSubmit")})]})}),(u.error||u.success)&&n(Be,{children:n(xe,{a:u})}),e.redeemEnabled&&n(Ze,{label:t("redeem.title"),desc:t("redeem.desc"),class:"fx-row--wide",children:n("form",{class:"fx-inline",onSubmit:x=>{x.preventDefault(),k()},children:[n("input",{class:"fx-input",value:d,placeholder:t("redeem.placeholder"),"aria-label":t("redeem.title"),onInput:x=>f(x.currentTarget.value)}),n(W,{submit:!0,pending:p.pending,children:t("redeem.submit")})]})}),(p.error||p.success)&&n(Be,{children:n(xe,{a:p})})]})}function Fb(e){let t=[],o,r,a=new Map;for(let i of e)if(i.itemType==="reset_card")o||(o={id:"reset_card",items:[],resetCard:!0},t.push(o)),o.items.push(i);else if(i.itemType==="address_rename_card")r||(r={id:"address_rename_card",items:[],resetCard:!1,addressCard:!0},t.push(r)),r.items.push(i);else if(i.itemType==="custom_item"&&i.itemDefinition?.stackable){let s=`${i.productId||i.id}:${JSON.stringify(i.itemDefinition)}`,l=a.get(s);l||(l={id:`custom:${s}`,items:[],resetCard:!1},a.set(s,l),t.push(l)),l.items.push(i)}else t.push({id:i.id,items:[i],resetCard:!1});return t}function ru(){let e=nt(()=>Z("/shop/inventory"));return e.state==="loading"?n(Ge,{panels:1,rows:4}):e.state==="signedOut"?n(lt,{}):e.state==="error"?n(ut,{error:e.error,onRetry:e.retry}):n($b,{items:e.data??[],onRefresh:e.reload,onUsed:t=>{e.update(o=>o.filter(r=>r.id!==t.itemId)),e.reload()}})}function $b(e){let{t,locale:o,goTo:r}=se(),[a,i]=S(null),[s,l]=S(null),c=Ve(),d=Fb(e.items),f=d.find(g=>g.id===a),u=Math.max(24,Math.ceil(d.length/6)*6)-d.length,p=g=>g.resetCard?t("card.title"):g.addressCard?t("backpack.addressCard"):g.items[0].itemDefinition?.name[o]||g.items[0].displayName||t("backpack.item"),m=g=>{c.current&&(l(g),e.onUsed(g))};return n(Ie,{icon:"backpack",title:t("page.backpack"),desc:t("backpack.desc"),actions:n(W,{onClick:e.onRefresh,children:[n(F,{name:"refresh",size:13}),t("backpack.refresh")]}),children:n("div",{class:"fx-backpack fx-block",children:[n("div",{class:"fx-backpack-summary",children:[n("span",{children:t("backpack.total",{n:ze(e.items.length,o)})}),r&&n("button",{class:"fx-link",type:"button",onClick:()=>r("quota"),children:t("backpack.getCards")})]}),s&&n("div",{class:`fx-backpack-used fx-backpack-${s.animation}`,role:"status",children:[n(F,{name:"gift",size:20}),s.connectPack&&typeof s.connectPack.added=="number"?n("div",{children:[n("strong",{children:t("backpack.packUsed")}),n("div",{children:t("backpack.packUsedLine",{n:ze(s.connectPack.added,o),balance:ze(Math.round(Number(s.connectPack.balance)||0),o)})})]}):n("div",{children:[n("strong",{children:s.message?.[o]}),n("div",{children:(s.effects||[]).map(g=>au(g,t,o)).join(" \xB7 ")})]})]},s.itemId),n("div",{class:"fx-backpack-layout",children:[n("div",{children:[n("div",{class:"fx-backpack-grid",role:"group","aria-label":t("backpack.grid"),children:[d.map(g=>{let h=p(g);return n("button",{type:"button",class:`fx-backpack-slot${g.resetCard?" is-card":""}`,"data-rarity":g.items[0].itemDefinition?.rarity,"aria-pressed":f?.id===g.id,"aria-label":t("backpack.slot",{name:h,n:g.items.length}),title:h,onClick:()=>i(g.id),children:[n("span",{class:"fx-backpack-icon",children:g.items[0].itemDefinition?.icon?n("span",{class:"fx-backpack-emoji",children:g.items[0].itemDefinition.icon}):n(F,{name:g.resetCard?"card":g.addressCard?"at":"gift",size:30})}),n("span",{class:"fx-backpack-name",children:h}),(g.resetCard||g.addressCard||g.items[0].itemDefinition?.stackable)&&n("span",{class:"fx-backpack-count",children:["\xD7",ze(g.items.length,o)]})]},g.id)}),Array.from({length:u},(g,h)=>n("div",{class:"fx-backpack-slot is-empty","aria-hidden":"true"},`empty:${h}`))]}),!d.length&&n("p",{class:"fx-backpack-empty",children:t("backpack.empty")})]}),f?n(Bb,{slot:f,name:p(f),onUsed:m},`${f.id}:${f.items[0].id}`):n("div",{class:"fx-backpack-detail fx-backpack-prompt",children:[n(F,{name:"backpack",size:30}),n(he,{children:t(d.length?"backpack.select":"backpack.emptyHint")})]})]})]})})}function au(e,t,o){let r=a=>ze(Number(a)||0,o);switch(e.type){case"points":return t("backpack.effect.points",{n:r(e.amount)});case"reset_card":return t("backpack.effect.cards",{n:r(e.count)});case"reset_quota":return t("backpack.effect.quota");case"connect_pack":return t("backpack.effect.connectPack",{n:r(e.amount)});default:return t("backpack.effect.other")}}function Bb(e){let{t,locale:o,goTo:r}=se(),a=e.slot.items[0],[i,s]=S(null),l=me(),c=me(),[d,f]=S(!1),u=a.itemDefinition,p=Ve(),m=a.source==="points"?t("backpack.source.points"):a.source==="admin"?t("backpack.source.admin"):a.source==="reward"?t("backpack.source.reward"):t("backpack.source.other"),g=()=>void l.run(async()=>{let k=await Z(`/shop/inventory/${encodeURIComponent(a.id)}`);if(p.current){if(!k.ok)return $e(k);s(k.data)}}),h=()=>void c.run(async()=>{let k=await Z(`/shop/inventory/${encodeURIComponent(a.id)}/use`,{method:"POST"});if(!k.ok)return $e(k);e.onUsed(k.data)});return n("section",{class:"fx-backpack-detail","aria-label":t("backpack.details"),children:[n("span",{class:`fx-backpack-detail-icon${e.slot.resetCard?" is-card":""}`,children:u?.icon?n("span",{class:"fx-backpack-emoji",children:u.icon}):n(F,{name:e.slot.resetCard?"card":e.slot.addressCard?"at":"gift",size:32})}),n("h3",{children:e.name}),n("span",{class:"fx-tag",children:[t(e.slot.resetCard||e.slot.addressCard||u?.use?"backpack.consumable":u?"backpack.collectible":"backpack.voucher"),u&&` \xB7 ${t(`backpack.rarity.${u.rarity}`)}`]}),n("dl",{class:"fx-backpack-facts",children:[n("div",{children:[n("dt",{children:t("backpack.quantity")}),n("dd",{children:ze(e.slot.items.length,o)})]}),n("div",{children:[n("dt",{children:t("backpack.acquired")}),n("dd",{children:Et(a.acquiredAt,o)})]}),!e.slot.resetCard&&n("div",{children:[n("dt",{children:t("backpack.source")}),n("dd",{children:m})]})]}),u?n(R,{children:[u.description&&n(he,{children:u.description[o]}),u.use&&n(R,{children:[n("div",{class:"fx-backpack-effects",children:u.use.effects.map((k,y)=>n("div",{children:au(k,t,o)},y))}),d?n(R,{children:[n(he,{children:t("backpack.consumeConfirm")}),n("div",{class:"fx-backpack-use-actions",children:[n(W,{variant:"primary",pending:c.pending,onClick:h,children:t("backpack.confirmUse")}),n(W,{disabled:c.pending,onClick:()=>f(!1),children:t("common.cancel")})]})]}):n(W,{variant:"primary",onClick:()=>f(!0),children:u.use.label?.[o]||t("backpack.use")}),n(xe,{a:c,captchaSection:"backpack"})]})]}):e.slot.addressCard?n(R,{children:[n(he,{children:t("backpack.addressCard.desc")}),r&&n(W,{variant:"primary",onClick:()=>{Ed(),r("account-details")},children:t("backpack.addressCard.use")})]}):e.slot.resetCard?n(R,{children:[n(he,{children:t("card.desc")}),r&&n(W,{variant:"primary",onClick:()=>r("quota"),children:t("backpack.manageCards")})]}):i?n("div",{class:"fx-backpack-reveal",children:[i.codeName&&n("div",{class:"fx-muted",children:i.codeName}),i.key?n(R,{children:[n("code",{children:i.key}),n(Yt,{text:i.key,label:t("backpack.copyKey")})]}):n(he,{children:t("backpack.noKey")})]}):n(W,{pending:l.pending,onClick:g,children:[n(F,{name:"key",size:14}),t("backpack.reveal")]}),n(xe,{a:l,captchaSection:"backpack"})]})}var Ub=/^1[3-9]\d{9}$|^\+[1-9]\d{6,14}$/,Hb=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,iu=(e,t)=>e==="phone"?Ub.test(t):Hb.test(t),vr=(e,t)=>e==="phone"?da(t):ua(t);function lu(){let e=nt(()=>Z("/auth/me"));if(e.state==="loading")return n(Ge,{panels:3,rows:2});if(e.state==="signedOut")return n(lt,{});if(e.state==="error")return n(ut,{error:e.error,onRetry:e.retry});let t=e.data;return n(R,{children:[n(qb,{me:t,onBound:(o,r)=>e.update(a=>({...a,[o]:r}))}),n(jb,{me:t}),n(Xb,{}),n(Kb,{me:t})]})}function os(){let e=Zc(),t=me();return{cd:e,a:t,send:(a,i,s)=>t.run(async()=>{let l=await Z("/auth/send-code",{method:"POST",body:{target:a,type:i,purpose:s}});return l.ok?(e.start(60),{success:{key:"sec.codeSent"}}):$e(l)}),reset:()=>{e.stop(),t.clear()}}}function qb(e){let{t}=se(),[o,r]=S(null),[a,i]=S(null);return n(Ie,{icon:"key",title:t("sec.methods.title"),desc:t("sec.methods.desc"),children:["phone","email"].map(s=>{let l=e.me[s];return n(R,{children:[n(Ze,{label:t(s==="phone"?"account.contact.phone":"account.contact.email"),desc:l?vr(s,l):t("account.contact.unbound"),children:n(W,{onClick:()=>{i(null),r(o===s?null:s)},children:t(o===s?"common.cancel":l?"sec.change":"sec.bind")})}),o===s&&n(Vb,{kind:s,current:l??null,onDone:c=>{e.onBound(s,c),r(null),i(s)}}),a===s&&o!==s&&n(Be,{children:n("div",{class:"fx-msg is-ok",role:"status",children:t(s==="phone"?"sec.phoneBound":"sec.emailBound")})})]},s)})})}function Vb(e){let{t}=se(),{kind:o}=e,[r,a]=S(""),[i,s]=S(""),l=os(),c=me(),d=r.trim(),f=o==="phone"?"err.phoneInvalid":"err.emailInvalid",u=()=>{if(!iu(o,d)){l.a.run(async()=>({error:{key:f}}));return}l.send(d,o,"bind")},p=()=>void c.run(async()=>{if(!iu(o,d))return{error:{key:f}};if(!i.trim())return{error:{key:"err.codeRequired"}};let m=o==="phone"?{phone:d,verification_code:i.trim()}:{email:d,verification_code:i.trim()},g=await Z(o==="phone"?"/auth/bind-phone":"/auth/bind-email",{method:"POST",body:m});if(!g.ok)return $e(g);e.onDone(d)});return n(Be,{class:"fx-form",children:[n("label",{class:"fx-field",children:[n("span",{children:e.current?t(o==="phone"?"sec.newPhone":"sec.newEmail"):t(o==="phone"?"sec.phone":"sec.email")}),n("input",{class:"fx-input",type:o==="phone"?"tel":"email",value:r,autoComplete:"off",placeholder:t(o==="phone"?"sec.phonePlaceholder":"sec.emailPlaceholder"),onInput:m=>a(m.currentTarget.value)})]}),n(rs,{code:i,setCode:s,sender:l,onSend:u}),n("div",{class:"fx-inline",children:n(W,{variant:"primary",pending:c.pending,onClick:p,children:t("sec.bindSubmit")})}),n(xe,{a:c})]})}function rs(e){let{t}=se(),{cd:o,a:r}=e.sender;return n("div",{class:"fx-field",children:[n("span",{children:e.label??t("sec.code")}),n("div",{class:"fx-inline",children:[n("input",{class:"fx-input fx-input--code",inputMode:"numeric",autoComplete:"one-time-code",value:e.code,placeholder:t("sec.codePlaceholder"),"aria-label":e.label??t("sec.code"),onInput:a=>e.setCode(a.currentTarget.value)}),n(W,{pending:r.pending,disabled:o.left>0||e.disabled,onClick:e.onSend,children:o.left>0?t("sec.resendIn",{s:o.left}):t("sec.sendCode")})]}),n(xe,{a:r})]})}function Wb(e){let{t}=se(),o=Gc(e.value),r=e.value.length>0,a=[[o.length,t("pw.req.length",{min:8,max:64})],[o.lower,t("pw.req.lower")],[o.upper,t("pw.req.upper")],[o.special,t("pw.req.special")],[o.space,t("pw.req.space")]];return n("ul",{class:"fx-rules","aria-label":t("pw.rulesLabel"),children:a.map(([i,s])=>n("li",{class:i?"is-ok":r?"is-bad":"",children:[i?n(F,{name:"check",size:11}):r?n(F,{name:"x",size:11}):n("span",{class:"fx-rule-dot","aria-hidden":"true"}),n("span",{children:s})]},s))})}function cu(e,t){let o=jc(e);return o.ok?e!==t?{error:{key:"pw.mismatch"}}:null:{error:{key:Li[o.rule]}}}function jb(e){let{t}=se(),o=["phone","email"].filter(l=>!!e.me[l]),[r,a]=S("current"),[i,s]=S(!1);return n(Ie,{icon:"shield",title:t("pw.title"),desc:t("pw.desc",{min:8,max:64}),actions:n(W,{onClick:()=>s(!i),children:t(i?"common.cancel":"pw.change")}),children:i&&n(Be,{class:"fx-form",children:[n(Pt,{label:t("pw.modeLabel"),value:r,onChange:a,options:[{value:"current",label:t("pw.mode.current")},{value:"code",label:t("pw.mode.code")}]}),r==="current"?n(Gb,{onDone:()=>s(!1)}):o.length?n(Jb,{me:e.me,targets:o,onDone:()=>s(!1)}):n(he,{children:t("pw.codeNeedsContact")})]})})}function du(e){let{t}=se();return n(R,{children:[n("label",{class:"fx-field",children:[n("span",{children:t("pw.new")}),n("input",{class:"fx-input",type:"password",autoComplete:"new-password",value:e.pw,maxLength:72,onInput:o=>e.setPw(o.currentTarget.value)})]}),n(Wb,{value:e.pw}),n("label",{class:"fx-field",children:[n("span",{children:t("pw.confirm")}),n("input",{class:"fx-input",type:"password",autoComplete:"new-password",value:e.confirm,onInput:o=>e.setConfirm(o.currentTarget.value)})]})]})}function Gb(e){let{t}=se(),[o,r]=S(""),[a,i]=S(""),[s,l]=S(""),c=me(),[d,f]=S(!1),u=()=>void c.run(async()=>{if(!o)return{error:{key:"pw.currentRequired"}};let p=cu(a,s);if(p)return p;let m=await Z("/auth/password",{method:"PUT",body:{currentPassword:o,newPassword:a}});return m.ok?(r(""),i(""),l(""),f(!0),{success:{key:"pw.changed"}}):m.status===404?{error:{key:"pw.noPasswordYet"}}:$e(m)});return n(R,{children:[n("label",{class:"fx-field",children:[n("span",{children:t("pw.current")}),n("input",{class:"fx-input",type:"password",autoComplete:"current-password",value:o,onInput:p=>r(p.currentTarget.value)})]}),n(du,{pw:a,setPw:i,confirm:s,setConfirm:l}),n("div",{class:"fx-inline",children:[n(W,{variant:"primary",pending:c.pending,onClick:u,children:t("pw.submit")}),d&&n(W,{onClick:e.onDone,children:t("common.done")})]}),n(xe,{a:c})]})}function Jb(e){let{t}=se(),[o,r]=S(e.targets[0]),[a,i]=S(""),[s,l]=S(""),[c,d]=S(""),f=os(),u=me(),[p,m]=S(!1),g=e.me[o]||"",h=()=>void u.run(async()=>{if(!a.trim())return{error:{key:"err.codeRequired"}};let k=cu(s,c);if(k)return k;let y=o==="phone"?{phone:g,code:a.trim(),newPassword:s}:{email:g,code:a.trim(),newPassword:s},x=await Z("/auth/reset-password",{method:"POST",body:y});return x.ok?(i(""),l(""),d(""),m(!0),{success:{key:"pw.changed"}}):$e(x)});return n(R,{children:[e.targets.length>1?n(Pt,{label:t("pw.via"),value:o,onChange:k=>{r(k),i(""),f.reset()},options:e.targets.map(k=>({value:k,label:vr(k,e.me[k])}))}):n(he,{children:t("pw.codeTo",{target:vr(o,g)})}),n(rs,{code:a,setCode:i,sender:f,onSend:()=>void f.send(g,o,"reset_password")}),n(du,{pw:s,setPw:l,confirm:c,setConfirm:d}),n("div",{class:"fx-inline",children:[n(W,{variant:"primary",pending:u.pending,onClick:h,children:t("pw.submitReset")}),p&&n(W,{onClick:e.onDone,children:t("common.done")})]}),n(xe,{a:u})]})}function Xb(){let{t:e}=se(),t=me(),o=()=>void t.run(async()=>{let r=await Z("/auth/logout-all",{method:"POST"});if(!r.ok)return $e(r);try{await te().forsionLogout?.()}catch(a){return{error:{raw:gt(a)}}}return{success:{key:"sec.logoutAllDone"}}});return n(Ie,{icon:"laptop",title:e("sec.devices.title"),desc:e("sec.devices.desc"),children:[n(Ze,{label:e("sec.logoutAll"),desc:e("sec.logoutAllDesc"),children:n(Kt,{label:e("sec.logoutAll"),confirmLabel:e("sec.logoutAllConfirm"),pending:t.pending,onConfirm:o})}),(t.error||t.success)&&n(Be,{children:n(xe,{a:t})})]})}function Kb(e){let{t}=se(),o=["phone","email"].filter(y=>!!e.me[y]),[r,a]=S(!1),[i,s]=S(o.length?"code":"password"),[l,c]=S(o[0]??null),[d,f]=S(""),[u,p]=S(""),m=os(),g=me(),h=l&&e.me[l]||"",k=()=>void g.run(async()=>{if(i==="code"&&!d.trim())return{error:{key:"err.codeRequired"}};if(i==="password"&&!u)return{error:{key:"pw.currentRequired"}};let y=await Z("/auth/delete-account",{method:"POST",body:i==="code"?{verification_code:d.trim()}:{password:u}});if(!y.ok)return $e(y);try{await te().forsionLogout?.()}catch{}return{success:{key:"del.done"}}});return n(Ie,{icon:"alert",danger:!0,title:t("del.title"),desc:t("del.desc"),actions:n(W,{variant:"danger",onClick:()=>{a(!r),g.clear()},children:t(r?"common.cancel":"del.start")}),children:r&&n(Be,{class:"fx-form",children:[n(he,{tone:"error",children:t("del.warn")}),o.length>0&&n(Pt,{label:t("del.methodLabel"),value:i,onChange:s,options:[{value:"code",label:t("del.byCode")},{value:"password",label:t("del.byPassword")}]}),i==="code"&&l?n(R,{children:[o.length>1&&n(Pt,{label:t("pw.via"),value:l,onChange:y=>{c(y),f(""),m.reset()},options:o.map(y=>({value:y,label:vr(y,e.me[y])}))}),n(rs,{code:d,setCode:f,sender:m,label:t("del.codeLabel",{target:vr(l,h)}),onSend:()=>void m.send(h,l,"delete_account")})]}):n("label",{class:"fx-field",children:[n("span",{children:t("del.passwordLabel")}),n("input",{class:"fx-input",type:"password",autoComplete:"current-password",value:u,onInput:y=>p(y.currentTarget.value)})]}),n("div",{class:"fx-inline",children:n(Kt,{variant:"danger",label:t("del.submit"),confirmLabel:t("del.confirm"),pending:g.pending,onConfirm:k})}),n(xe,{a:g})]})})}var pu=20;function fu(){let e=nt(async()=>{let[t,o]=await Promise.all([Z("/token-quota/my"),Z(`/token-quota/my/logs?limit=${pu}&offset=0`)]);if(!t.ok)return t;let r=o.ok&&Array.isArray(o.data?.logs)?o.data.logs:null;return{ok:!0,status:t.status,data:{dailyLimit:Ue(t.data?.dailyLimit),logs:r,total:o.ok?Ue(o.data?.total)??r?.length??0:0,logsFail:o.ok?null:o}}});return e.state==="loading"?n(Ge,{panels:3,rows:2}):e.state==="signedOut"?n(lt,{}):e.state==="error"?n(ut,{error:e.error,onRetry:e.retry}):n(R,{children:[n(Yb,{dailyLimit:e.data.dailyLimit}),n(Qb,{base:e.data,onRetry:e.reload})]})}function Yb(e){let{t,locale:o}=se(),[r,a]=S(30),[i,s]=S({state:"loading"}),[l,c]=S(!1),[d,f]=S(0),u=ie(0);Y(()=>{let w=++u.current;return c(!0),Z(`/usage/stats?days=${r}`).then(C=>{w===u.current&&(c(!1),s(C.ok?{state:"ready",data:C.data??{}}:{state:"error",fail:C}))}),()=>{u.current++}},[r,d]);let p=e.dailyLimit!==null&&e.dailyLimit<0?"usage.unlimitedNote":ka(1,e.dailyLimit)===null?"usage.noLimitNote":null,m=w=>ka(w,e.dailyLimit)??"\u2014",g=n(Pt,{label:t("usage.range"),value:r,onChange:a,options:[{value:7,label:t("usage.days",{n:7})},{value:30,label:t("usage.days",{n:30})},{value:90,label:t("usage.days",{n:90})}]}),h=i.state==="ready"?i.data:null,k=(h?.byModel??[]).filter(Boolean),y=(h?.byProject??[]).filter(Boolean),x=Ue(h?.successRate);return n(R,{children:[n(Ie,{icon:"chart",title:t("usage.overview.title"),desc:t("usage.overview.desc"),actions:g,children:[i.state==="error"?n("div",{class:"fx-sub",children:n("div",{class:"fx-msg is-error",role:"alert",children:[n("span",{children:zt(St(i.fail),t)}),n("button",{type:"button",class:"fx-link",onClick:()=>f(w=>w+1),children:t("common.retry")})]})}):n("div",{class:`fx-stats fx-block${l&&h?" is-refreshing":""}`,"aria-busy":l||void 0,children:[n(as,{label:t("usage.requests"),value:h?ze(Ue(h.totalRequests)??0,o):null,testId:"usage-requests"}),n(as,{label:t("usage.successRate"),value:h?x===null?"\u2014":`${x.toFixed(1)}%`:null}),n(as,{label:t("usage.consumption"),value:h?m(h.totalPointsCost):null,sub:t("usage.ofToday"),testId:"usage-consumption"})]}),p&&n("div",{class:"fx-sub fx-sub--tight",children:n(he,{children:t(p)})})]}),i.state!=="error"&&n(R,{children:[n(Ie,{icon:"gauge",title:t("usage.byModel.title"),desc:t("usage.byModel.desc"),children:n(uu,{loading:!h,empty:t("usage.empty"),head:[t("usage.col.model"),t("usage.col.requests"),t("usage.col.consumption")],rows:k.map(w=>[w.modelName||w.modelId||"\u2014",ze(Ue(w.count)??0,o),m(w.pointsCost)])})}),n(Ie,{icon:"laptop",title:t("usage.byApp.title"),desc:t("usage.byApp.desc"),children:n(uu,{loading:!h,empty:t("usage.empty"),head:[t("usage.col.app"),t("usage.col.requests"),t("usage.col.consumption")],rows:y.map(w=>[mu(w.projectSource,t("usage.appUnknown")),ze(Ue(w.count)??0,o),m(w.pointsCost)])})})]})]})}var Zb={tangu:"Tangu","ai-studio":"Forsion AI Studio",desktop:"Forsion Desktop",amadeus:"Amadeus",notebase:"Notebase",calendar:"Forsion Calendar",chat:"Forsion Chat",desk:"Forsion Desk","photo-studio":"Photo Studio",connect:"Forsion Connect"},mu=(e,t)=>!e||e==="unknown"?t:Zb[e]??e;function as(e){return n("div",{class:"fx-stat",children:[n("span",{class:"fx-stat-label",children:e.label}),e.value===null?n("span",{class:"fx-skel fx-skel--stat"}):n("strong",{class:"fx-stat-value","data-testid":e.testId,children:e.value}),e.sub&&n("span",{class:"fx-stat-sub",children:e.sub})]})}function uu(e){return e.loading?n("div",{class:"fx-sub",children:[n("span",{class:"fx-skel fx-skel--row"}),n("span",{class:"fx-skel fx-skel--row"})]}):e.rows.length?n("div",{class:"fx-table-wrap fx-block",children:n("table",{class:"fx-table",children:[n("thead",{children:n("tr",{children:e.head.map((t,o)=>n("th",{class:o?"is-num":"",children:t},o))})}),n("tbody",{children:e.rows.map((t,o)=>n("tr",{children:t.map((r,a)=>n("td",{class:a?"is-num":"",children:r},a))},o))})]})}):n(xt,{children:e.empty})}function Qb(e){let{t,locale:o}=se(),r=Ve(),[a,i]=S(e.base.logs??[]),[s,l]=S(e.base.total),c=me();Y(()=>{i(e.base.logs??[]),l(e.base.total)},[e.base]);let d=()=>void c.run(async()=>{let u=await Z(`/token-quota/my/logs?limit=${pu}&offset=${a.length}`);if(!u.ok)return{error:St(u)};let p=Array.isArray(u.data?.logs)?u.data.logs:[];r.current&&(i(m=>[...m,...p]),l(m=>p.length?Ue(u.data?.total)??m:a.length))}),f=e.base.dailyLimit;return n(Ie,{icon:"clock",title:t("usage.recent.title"),desc:t("usage.recent.desc"),children:[e.base.logsFail?n("div",{class:"fx-sub",children:n("div",{class:"fx-msg is-error",role:"alert",children:[n("span",{children:zt(St(e.base.logsFail),t)}),n("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")})]})}):a.length===0?n(xt,{children:t("usage.recentEmpty")}):n("div",{class:"fx-list fx-block",role:"list",children:a.map((u,p)=>n("div",{class:"fx-list-row",role:"listitem",children:[n("span",{class:"fx-list-main",children:[n("strong",{children:[u.modelName||u.modelId||"\u2014",u.success===!1&&n("span",{class:"fx-tag fx-tag--danger",children:t("usage.failed")})]}),n("small",{children:[Et(u.createdAt,o),mu(u.projectSource,t("usage.appUnknown"))].join(" \xB7 ")})]}),n("span",{class:"fx-value",children:ka(u.pointsCost,f)??"\u2014"})]},u.id??p))}),a.length>0&&n("div",{class:"settings-panel-footer fx-footer",children:[n("span",{class:"fx-muted",children:t("usage.shown",{shown:ze(a.length,o),total:ze(Math.max(s,a.length),o)})}),a.length<s&&n(W,{pending:c.pending,onClick:d,children:t("common.loadMore")})]}),c.error&&n("div",{class:"fx-sub fx-sub--tight",children:n(xe,{a:c})})]})}var gu=["plugin","amadeus-plugin","skill","agent","space","theme"],ev=["zip","github","npm"],tv=["description","tags","minAppVersion","maxAppVersion","platforms"],nv=50*1024*1024,ov=new Set(["market_npm_invalid","market_npm_source","market_github_source","market_not_found","market_zip_required","market_zip_invalid","market_zip_too_large","market_version_required","market_version_invalid","market_version_mismatch","market_version_not_newer","market_icon_invalid","market_duplicate","market_update_pending","market_stale","market_requirements_invalid","market_requirements_mismatch","market_no_release","market_no_changes","market_dryrun_unsupported"]),rv=new Set(["no_manifest","type_mismatch","tag_version_mismatch","id_slug_mismatch","engine_slug_mismatch","no_entry","has_node_modules"]),wa=e=>`sub.type.${e.replace("-","_")}`,bu=e=>e==="approved"?"sub.approved":e==="rejected"?"sub.rejected":"sub.pending",ls=e=>e==="github"?"GitHub":e==="npm"?"npm":"ZIP",av=e=>e.status==="pending"||!!e.pendingUpdate,hu=(e,t)=>t==="all"||(t==="pending"?av(e):e.status===t),iv=e=>e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`,vu=e=>e.status==="approved"?"sub.updated":"sub.resubmitted";async function yo(e){let t=te().cloudInvoke;if(!t)return{ok:!1,out:{error:{key:"err.unavailable"}},code:null,values:{}};let o=await t("cloud:marketSubmit",{...e.id?{id:e.id}:{},...e.dryRun?{dryRun:!0}:{},fields:e.fields,...e.zip?{zip:{name:e.zip.name,data:e.zip.data}}:{}}),r=aa(o);if(r.ok)return{ok:!0,data:r.data};r.status===401&&te().authStatus?.().catch(()=>{});let a=Object.fromEntries(Object.entries(o?.json?.values||{}).filter(([,s])=>typeof s=="string"||typeof s=="number").map(([s,l])=>[s,String(l)]));return{ok:!1,out:r.code==="market_version_not_newer"&&a.version&&a.current?{error:{key:"sub.notNewer",vars:a}}:ov.has(r.code||"")?{error:{key:`sub.err.${r.code}`}}:$e(r),code:r.code,values:a}}async function yu(e){return e.size>nv?{error:{key:"sub.errLarge"}}:{name:e.name,size:e.size,data:new Uint8Array(await e.arrayBuffer())}}function sv(e,t){let o=[e?.minAppVersion&&`\u2265 ${e.minAppVersion}`,e?.maxAppVersion&&`< ${e.maxAppVersion}`].filter(Boolean).join(", "),r=[o&&`Forsion ${o}`,e?.platforms?.length?e.platforms.join(", "):""].filter(Boolean);return r.length?r.join(" \xB7 "):t("sub.reqNone")}function xu({status:e}){let t=ht();return n("span",{class:`fx-tag ${e==="approved"?"fx-status--resolved":e==="rejected"?"fx-tag--danger":"fx-tag--accent"}`,children:t(bu(e))})}function ku(e){let t=`${e.id}-${e.name}`;return n("label",{class:"fx-sub-field",for:t,children:[n("span",{children:e.label}),e.rows?n("textarea",{id:t,value:e.value,rows:e.rows,maxLength:2e5,onInput:o=>e.onInput(o.currentTarget.value)}):n("input",{id:t,value:e.value,placeholder:e.placeholder,maxLength:e.name==="summary"?2e3:500,onInput:o=>e.onInput(o.currentTarget.value)})]})}function wu({id:e,file:t,disabled:o,onPick:r}){let a=ht(),[i,s]=S(!1);Y(()=>{let c=()=>s(!1);return window.addEventListener("dragend",c),window.addEventListener("drop",c,!0),window.addEventListener("blur",c),()=>{window.removeEventListener("dragend",c),window.removeEventListener("drop",c,!0),window.removeEventListener("blur",c)}},[]);let l=c=>{c&&!o&&r(c)};return n("label",{class:`fx-sub-drop${i?" is-over":""}${t?" is-filled":""}`,for:`${e}-zip`,onDragOver:c=>{c.preventDefault(),o||s(!0)},onDragLeave:()=>s(!1),onDrop:c=>{c.preventDefault(),s(!1),l(c.dataTransfer?.files?.[0])},children:[n(F,{name:t?"box":"upload",size:18}),n("span",{class:"fx-sub-drop-text",children:[n("strong",{children:t?t.name:a("sub.dropTitle")}),n("small",{children:t?a("sub.dropReplace",{size:iv(t.size)}):a("sub.dropHint")})]}),n("input",{id:`${e}-zip`,class:"fx-sub-file",type:"file",accept:".zip,application/zip",disabled:o,onChange:c=>{l(c.currentTarget.files?.[0]),c.currentTarget.value=""}})]})}function zu({check:e,update:t}){let o=ht(),r=e.manifest,a=[r?[!0,"sub.checkType",`${o(wa(r.type))} \xB7 ${r.file}`]:[!1,"sub.checkType",o("sub.warn.no_manifest")],...e.version?[[!0,"sub.checkVersion",e.current?`v${e.current} \u2192 v${e.version}`:`v${e.version}`]]:[],[!0,"sub.checkIcon",o(e.icon?"sub.iconYes":"sub.iconNo")],[!0,"sub.checkReadme",o(e.readme?"sub.readmeYes":t?"sub.readmeKeep":"sub.readmeNo")],[!0,"sub.checkReq",sv(e.metadata,o)],...(e.warnings||[]).filter(i=>i!=="no_manifest"&&rv.has(i)).map(i=>[!1,"sub.checkWarn",o(`sub.warn.${i}`)])];return n("ul",{class:"fx-sub-checks",children:a.map(([i,s,l])=>n("li",{class:i?"is-ok":"is-warn",children:[n(F,{name:i?"check":"alert",size:14}),n("span",{class:"fx-sub-k",children:o(s)}),n("span",{children:l})]}))})}function lv({item:e,checks:t,onDone:o}){let r=ht(),a=On(),i=Ve(),s=me(),[l,c]=S(null),[d,f]=S(null),u=m=>void s.run(async()=>{c(null),f(null);let g=await yu(m);if(!i.current)return;if(!("data"in g))return g;if(c(g),!t)return;let h=await yo({id:e.id,dryRun:!0,fields:{},zip:g});if(i.current){if(!h.ok)return h.out;f(h.data)}}),p=()=>void s.run(async()=>{if(!l)return;let m=await yo({id:e.id,fields:{},zip:l});if(i.current){if(!m.ok)return m.out;o(vu(e))}});return n(R,{children:[n(wu,{id:a,file:l,disabled:s.pending,onPick:u}),d&&n(zu,{check:d,update:!0}),d&&n(he,{children:r(e.status==="approved"?"sub.zipListedNote":"sub.zipUnlistedNote")}),l&&n("div",{class:"fx-sub-actions",children:[n(W,{variant:"primary",pending:s.pending,disabled:t&&!d,onClick:p,children:d?.version?r("sub.submitVersion",{version:d.version}):r("sub.submit")}),n(W,{disabled:s.pending,onClick:()=>{c(null),f(null),s.clear()},children:r("common.cancel")})]}),n(xe,{a:s,captchaSection:"submission"})]})}function cv({item:e,onDone:t}){let o=ht(),r=Ve(),a=me(),[i,s]=S(null),[l,c]=S(null),d=()=>void a.run(async()=>{s(null),c(null);let p=await yo({id:e.id,dryRun:!0,fields:{}});if(r.current){if(!p.ok){if(p.code==="market_version_not_newer"&&p.values.version){c(p.values);return}return p.out}s(p.data)}}),f=()=>void a.run(async()=>{let p=await yo({id:e.id,fields:{}});if(r.current){if(!p.ok)return p.out;t(vu(e))}}),u=e.source==="github"?e.githubRepoUrl:e.npmPackage;return n(R,{children:[!i&&n(W,{pending:a.pending,onClick:d,children:[n(F,{name:"refresh",size:13}),o(l?"sub.checkAgain":"sub.checkNew")]}),l&&n(he,{children:o("sub.upToDate",{version:l.version,current:l.current||l.version})}),i&&n(R,{children:[n("div",{class:"fx-sub-upstream",children:[n(F,{name:e.source==="github"?"link":"box",size:18}),n("span",{children:[n("strong",{children:o("sub.upstreamLatest",{version:i.version||""})}),n("small",{children:[u,i.tag&&o("sub.releaseTag",{tag:i.tag}),i.current&&o("sub.storeHas",{version:i.current})].filter(Boolean).join(" \xB7 ")})]})]}),n(he,{children:o(e.source==="github"?"sub.githubNote":"sub.npmNote",{version:i.version||""})}),n("div",{class:"fx-sub-actions",children:[n(W,{variant:"primary",pending:a.pending,onClick:f,children:o("sub.submitVersion",{version:i.version||""})}),n(W,{disabled:a.pending,onClick:()=>{s(null),a.clear()},children:o("common.cancel")})]})]}),n(xe,{a,captchaSection:"submission"})]})}function dv({item:e,onDone:t}){let o=ht(),r=On(),a=Ve(),i=me(),s=()=>({name:e.name,summary:e.summary||"",description:e.description||"",tags:(e.tags||[]).join(", "),minAppVersion:e.minAppVersion||"",maxAppVersion:e.maxAppVersion||"",platforms:(e.platforms||[]).join(", ")}),[l,c]=S(s),[d,f]=S(new Set),[u,p]=S(!1),m=y=>x=>{c(w=>({...w,[y]:x})),f(w=>new Set([...w,y])),i.clear()},g=()=>void i.run(async()=>{if(!l.name.trim())return{error:{key:"sub.errName"}};if(!d.size)return{error:{key:"sub.err.market_no_changes"}};let y=await yo({id:e.id,fields:{mode:"info",...Object.fromEntries([...d].map(x=>[x,l[x].trim()]))}});if(a.current){if(!y.ok)return y.out;p(!1),t(e.status==="approved"?"sub.infoSubmitted":"sub.resubmitted")}}),h=(y,x,w={})=>n(ku,{id:r,name:y,label:o(x),value:l[y],onInput:m(y),...w}),k=o("sub.unset");return n("section",{class:"fx-sub-sec",children:[n("div",{class:"fx-sub-sec-bar",children:[n("h4",{children:o("sub.secInfo")}),!u&&n(W,{disabled:!!e.pendingUpdate,title:e.pendingUpdate?o("sub.err.market_update_pending"):void 0,onClick:()=>{c(s()),f(new Set),i.clear(),p(!0)},children:[n(F,{name:"pencil",size:13}),o("sub.edit")]})]}),u?n("form",{class:"fx-sub-form fx-sub-form--inline",onSubmit:y=>{y.preventDefault(),g()},children:[n("fieldset",{disabled:i.pending,children:[n("div",{class:"fx-sub-columns",children:[h("name","sub.name"),h("tags","sub.tags",{placeholder:o("sub.tagsHint")})]}),h("summary","sub.summary"),h("description","sub.description",{rows:3}),n("div",{class:"fx-sub-columns",children:[h("minAppVersion","sub.minAppVersion",{placeholder:"2.13.0"}),h("maxAppVersion","sub.maxAppVersion",{placeholder:o("sub.optional")})]}),h("platforms","sub.platforms",{placeholder:"desktop, android, ios, web"}),n(he,{children:o("sub.requirementsHint")}),n(he,{children:o("sub.infoNote")})]}),n("div",{class:"fx-sub-actions",children:[n(W,{variant:"primary",pending:i.pending,submit:!0,children:o("sub.submitInfo")}),n(W,{disabled:i.pending,onClick:()=>{p(!1),i.clear()},children:o("common.cancel")})]}),n(xe,{a:i,captchaSection:"submission"})]}):n("dl",{class:"fx-sub-kv",children:[n("dt",{children:o("sub.summary")}),n("dd",{children:e.summary||k}),n("dt",{children:o("sub.description")}),n("dd",{class:"fx-sub-clamp",children:e.description||k}),n("dt",{children:o("sub.tags")}),n("dd",{children:e.tags?.length?e.tags.join(", "):k}),n("dt",{children:o("sub.minAppVersion")}),n("dd",{children:e.minAppVersion||k}),n("dt",{children:o("sub.maxAppVersion")}),n("dd",{children:e.maxAppVersion||k}),n("dt",{children:o("sub.platforms")}),n("dd",{children:e.platforms?.length?e.platforms.join(", "):k})]})]})}function uv({item:e,checks:t,notice:o,onBack:r,onDone:a}){let i=ht(),{locale:s}=se(),l=e.pendingUpdate,c=e.rejectedUpdate;return n("div",{class:"fx-sub-detail","data-detail-id":e.id,children:[n("button",{type:"button",class:"btn sm ghost fx-sub-back",onClick:r,children:[n(F,{name:"back",size:13}),i("sub.back")]}),n("div",{class:"fx-sub-dhead",children:[n("div",{class:"fx-sub-item-head",children:[n("strong",{children:e.name}),n(xu,{status:e.status})]}),n("div",{class:"fx-sub-meta",children:[n("span",{children:i(wa(e.type))}),n("span",{children:ls(e.source)}),e.version&&n("span",{children:["v",e.version]}),n("span",{children:i("sub.downloads",{n:e.downloads||0})})]}),n("div",{children:n(Yt,{text:e.id,label:`${i("sub.identity")} ${e.id.slice(0,8)}`})})]}),o&&n("p",{class:"fx-msg is-ok",role:"status",children:i(o)}),n("section",{class:"fx-sub-sec",children:[n("h4",{children:i("sub.secVersion")}),e.status==="rejected"&&e.reviewNote&&n(he,{tone:"error",children:e.reviewNote}),c&&n(he,{tone:"error",children:[i(c.kind==="info"?"sub.rejectedInfo":"sub.rejectedVersion",{version:c.version}),c.note?`: ${c.note}`:""]}),l?n(R,{children:[n(he,{children:i(l.kind==="info"?"sub.pendingInfo":"sub.pendingVersion",{version:l.version})}),n(he,{children:i("sub.pendingHint")})]}):e.status==="pending"&&e.source!=="zip"?n(he,{children:i("sub.inReview")}):e.source==="zip"?n(lv,{item:e,checks:t,onDone:a}):n(cv,{item:e,onDone:a})]}),n(dv,{item:e,onDone:a}),n("section",{class:"fx-sub-sec",children:[n("h4",{children:i("sub.secHistory")}),n("ul",{class:"fx-sub-time",children:[(e.versions||[]).map(d=>n("li",{children:[n("span",{children:$t(d.createdAt,s)}),n("span",{children:i("sub.histApproved",{version:d.version})})]},`${d.version}-${d.createdAt}`)),e.createdAt&&n("li",{children:[n("span",{children:$t(e.createdAt,s)}),n("span",{children:i("sub.histSubmitted")})]})]})]})]})}function pv({checks:e,onDone:t,onBack:o}){let r=ht(),a=On(),i=Ve(),s=me(),[l,c]=S("zip"),[d,f]=S({type:"plugin",name:"",summary:"",githubRepoUrl:"",npmPackage:"",description:"",tags:"",minAppVersion:"",maxAppVersion:"",platforms:""}),[u,p]=S(new Set),[m,g]=S(null),[h,k]=S(null),y=M=>$=>{f(U=>({...U,[M]:$})),p(U=>new Set([...U,M])),s.clear()},x=M=>void s.run(async()=>{g(null),k(null);let $=await yu(M);if(!i.current)return;if(!("data"in $))return $;if(g($),!e)return;let U=await yo({dryRun:!0,fields:{source:"zip"},zip:$});if(!i.current)return;if(!U.ok)return U.out;let O=U.data;k(O);let j=O.manifest;f(_=>({..._,type:!u.has("type")&&j&&gu.includes(j.type)?j.type:_.type,name:!u.has("name")&&!_.name&&j?.name?j.name:_.name}))}),w=()=>void s.run(async()=>{if(!d.name.trim())return{error:{key:"sub.errName"}};if(l!=="zip"&&!(l==="github"?d.githubRepoUrl:d.npmPackage).trim())return{error:{key:"sub.errSource"}};if(l==="zip"&&!m)return{error:{key:"sub.errZip"}};let M=l==="github"?{githubRepoUrl:d.githubRepoUrl.trim()}:l==="npm"?{npmPackage:d.npmPackage.trim()}:{},$=await yo({fields:{type:d.type,source:l,name:d.name.trim(),summary:d.summary.trim(),...M,...Object.fromEntries(tv.map(U=>[U,d[U].trim()]))},zip:l==="zip"?m:null});if(i.current){if(!$.ok)return $.out;t(String($.data?.id||""))}}),C=(M,$,U={})=>n(ku,{id:a,name:M,label:r($),value:d[M],onInput:y(M),...U});return n("div",{class:"fx-sub-detail",children:[n("button",{type:"button",class:"btn sm ghost fx-sub-back",onClick:o,children:[n(F,{name:"back",size:13}),r("sub.back")]}),n("div",{class:"fx-sub-dhead",children:n("div",{class:"fx-sub-item-head",children:n("strong",{children:r("sub.new")})})}),n("form",{class:"fx-sub-form fx-sub-form--inline",onSubmit:M=>{M.preventDefault(),w()},children:[n("fieldset",{disabled:s.pending,children:[n(Pt,{label:r("sub.source"),value:l,options:ev.map(M=>({value:M,label:ls(M)})),onChange:M=>{c(M),s.clear()}}),l==="zip"?n(R,{children:[n(wu,{id:a,file:m,disabled:s.pending,onPick:x}),h?n(zu,{check:h,update:!1}):n(he,{children:r("sub.zipHint")})]}):n(R,{children:[l==="github"?C("githubRepoUrl","sub.repo",{placeholder:"https://github.com/owner/repo"}):C("npmPackage","sub.npm",{placeholder:"@scope/plugin-name"}),n(he,{children:r(l==="github"?"sub.repoHint":"sub.npmHint")})]}),n("div",{class:"fx-sub-columns",children:[n("label",{class:"fx-sub-field",for:`${a}-type`,children:[n("span",{children:r("sub.type")}),n("select",{id:`${a}-type`,value:d.type,onChange:M=>y("type")(M.currentTarget.value),children:gu.map(M=>n("option",{value:M,children:r(wa(M))},M))})]}),C("name","sub.name")]}),C("summary","sub.summary"),C("description","sub.description",{rows:3}),C("tags","sub.tags",{placeholder:r("sub.tagsHint")}),n("div",{class:"fx-sub-columns",children:[C("minAppVersion","sub.minAppVersion",{placeholder:"2.13.0"}),C("maxAppVersion","sub.maxAppVersion",{placeholder:r("sub.optional")})]}),C("platforms","sub.platforms",{placeholder:"desktop, android, ios, web"}),n(he,{children:r("sub.requirementsHint")}),n(he,{children:r("sub.identityHint")}),n(he,{children:r("sub.reviewHint")})]}),n("div",{class:"fx-sub-actions",children:[n(W,{variant:"primary",pending:s.pending,submit:!0,children:r("sub.submit")}),n(W,{disabled:s.pending,onClick:o,children:r("common.cancel")})]}),n(xe,{a:s,captchaSection:"submission"})]})]})}var is=null,ss=new Set;function Su(e){let t=!1;for(let o of ss)t=o(e)||t;is=t?null:{id:e,at:Date.now()}}var fv=()=>{let e=is;return is=null,e&&Date.now()-e.at<3e4?e.id:null};function mv({items:e,checks:t,reload:o}){let r=ht(),[a,i]=S("all"),[s,l]=S(()=>{let y=fv();return y&&e.some(x=>x.id===y)?y:null}),[c,d]=S(()=>s!==null),[f,u]=S(null);Y(()=>{let y=x=>e.some(w=>w.id===x)?(i("all"),l(x),d(!0),u(null),!0):!1;return ss.add(y),()=>{ss.delete(y)}},[e]);let p=e.filter(y=>hu(y,a)),m=s==="new"?null:p.find(y=>y.id===s)||p[0]||null,g=y=>{l(y),d(!0),u(null)},h=(y,x)=>{i("all"),l(y),u({id:y,key:x}),o()},k=y=>e.filter(x=>hu(x,y)).length;return n(Ie,{title:r("sub.mine"),desc:r("sub.desc"),actions:n(R,{children:[n(W,{variant:"primary",disabled:s==="new",onClick:()=>g("new"),children:[n(F,{name:"plus",size:13}),r("sub.new")]}),n(W,{onClick:o,children:r("sub.refresh")})]}),children:!e.length&&s!=="new"?n(xt,{children:[n("strong",{children:r("sub.empty")}),n("p",{children:r("sub.emptyHint")})]}):n(R,{children:[!!e.length&&n("div",{class:"fx-sub-filter",children:n(Pt,{label:r("sub.filter"),value:a,onChange:i,options:["all","pending","approved","rejected"].map(y=>({value:y,label:`${r(y==="all"?"sub.all":bu(y))} ${k(y)}`}))})}),n("div",{class:"fx-sub-cq",children:n("div",{class:`fx-sub-split${c?" is-picked":""}`,children:[n("nav",{class:"fx-sub-list","aria-label":r("sub.mine"),children:p.length?p.map(y=>n("button",{type:"button","data-submission-id":y.id,class:`fx-sub-li${y.id===m?.id?" is-on":""}`,"aria-current":y.id===m?.id||void 0,onClick:()=>g(y.id),children:[n("span",{class:"fx-sub-li-top",children:[n("strong",{children:y.name}),n(xu,{status:y.status})]}),n("span",{class:"fx-sub-li-meta",children:[r(wa(y.type)),ls(y.source),y.version&&`v${y.version}`].filter(Boolean).join(" \xB7 ")}),y.pendingUpdate&&n("span",{class:"fx-sub-li-meta",children:r(y.pendingUpdate.kind==="info"?"sub.pendingInfo":"sub.pendingVersion",{version:y.pendingUpdate.version})})]},y.id)):n("p",{class:"fx-note",children:r(e.length?"sub.noResults":"sub.empty")})}),s==="new"?n(pv,{checks:t,onBack:()=>{l(null),d(!1)},onDone:y=>h(y,"sub.submitted")}):m?n(uv,{item:m,checks:t,notice:f?.id===m.id?f.key:null,onBack:()=>d(!1),onDone:y=>h(m.id,y)},m.id):n("div",{class:"fx-sub-detail",children:n("p",{class:"fx-note",children:r("sub.noResults")})})]})})]})})}function _u(){let e=nt(()=>Z("/market/mine"));switch(e.state){case"loading":return n(Ge,{});case"signedOut":return n(lt,{});case"error":return n(ut,{error:e.error,onRetry:e.retry});case"ready":return n(mv,{items:e.data?.items||[],checks:e.data?.dryRun===!0,reload:e.reload})}}var Qn=Object.freeze({payer:"visitor",perVisitorDaily:20,pageDailyPoints:300,onExhausted:"visitor",models:[]}),xo=(e,t)=>typeof e=="number"&&Number.isFinite(e)?Math.round(e):t,za=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function Bo(e){return{payer:e?.payer==="author"?"author":"visitor",perVisitorDaily:Math.max(1,xo(e?.perVisitorDaily,Qn.perVisitorDaily)),pageDailyPoints:Math.max(1,xo(e?.pageDailyPoints,Qn.pageDailyPoints)),onExhausted:e?.onExhausted==="pause"?"pause":"visitor",models:Array.isArray(e?.models)?e.models.filter(t=>typeof t=="string"):[]}}function Sa(e,t){return e.payer===t.payer&&e.perVisitorDaily===t.perVisitorDaily&&e.pageDailyPoints===t.pageDailyPoints&&e.onExhausted===t.onExhausted&&e.models.length===t.models.length&&e.models.every((o,r)=>o===t.models[r])}var cs=e=>Math.max(1,xo(e?.perVisitorMax,50)),_a=e=>Math.max(1,xo(e?.pageDailyMax,2e4));function ds(e,t){return{...e,perVisitorDaily:Math.min(cs(t),Math.max(1,xo(e.perVisitorDaily,Qn.perVisitorDaily))),pageDailyPoints:Math.min(_a(t),Math.max(1,xo(e.pageDailyPoints,Qn.pageDailyPoints)))}}var Cu=e=>(e?.models||[]).filter(t=>t?.isDefault).map(t=>t.id);function us(e,t,o){return e.models.length?e.models.includes(o):Cu(t).includes(o)}function Au(e,t,o){let r=new Set((t?.models||[]).map(s=>s.id)),a=(e.models.length?e.models:Cu(t)).filter(s=>r.has(s)),i=a.includes(o)?a.filter(s=>s!==o):[...a,o];return i.length?{...e,models:i}:e}var Tu=e=>e.type==="image"||e.type==="image_gen";function Eu(e,t=Date.now()){let o=e?.cooldownUntil?Date.parse(e.cooldownUntil):NaN;return Number.isFinite(o)&&o>t}function Pu(e,t){let o=Math.min(Math.max(1,xo(e?.pageDailyPoints,Qn.pageDailyPoints)),_a(t)),r=Math.max(0,Number(e?.today?.points)||0);return Math.max(0,Math.min(100,Math.round(r/o*100)))}function Mu(e){let t=Number(e?.balance)||0,o=Math.max((Number(e?.balance)||0)+Math.max(0,Number(e?.monthSpent)||0),Number(e?.lastTopUp?.amount)||0);return o>0&&t<o*.1}function Ca(e,t,o){let r=ds(t,o);return Z(`/connect/apps/${encodeURIComponent(e)}/ai`,{method:"PUT",body:{payer:r.payer,perVisitorDaily:r.perVisitorDaily,pageDailyPoints:r.pageDailyPoints,onExhausted:r.onExhausted,models:r.models}})}var Iu=e=>Z(`/connect/apps/${encodeURIComponent(e)}/ai/resume`,{method:"POST"}),gv="forsion-extend:items";function yr(e){let t=Ne(e?.getLocale?.()),o=te().openFloatingPanel;if(o){o({id:"market",title:we(t,"pack.storeTitle"),builtin:"market",params:{storeView:gv,nonce:Date.now()}})?.catch?.(()=>{});return}e?.app?.runCommand?.("open-market")||e?.app?.notify?.(we(t,"pack.storeUnavailable"))}function Ru(e){let{t}=se(),[o,r]=S(String(e.value));Y(()=>{r(String(e.value))},[e.value]);let a=()=>{let i=Math.min(e.max,Math.max(1,parseInt(o,10)||1));r(String(i)),i!==e.value&&e.onChange(i)};return n("input",{class:e.wide?"is-wide":void 0,type:"text",inputMode:"numeric","aria-label":e.label,title:t("ai.max",{n:e.max}),value:o,disabled:e.disabled,onInput:i=>{let s=i.currentTarget.value.replace(/[^0-9]/g,"").slice(0,7);r(s);let l=parseInt(s,10);l>=1&&l<=e.max&&l!==e.value&&e.onChange(l)},onBlur:a,onKeyDown:i=>{i.key==="Enter"&&a()}})}function Lu(e){let{t}=se(),o=e.model,r=n(R,{children:[e.on&&n(F,{name:"check",size:11}),Tu(o)?`${t("ai.modelImage")} \xB7 ${o.name||o.id}`:o.name||o.id,o.isDefault&&n("em",{children:t("ai.modelDefault")})]});return e.onClick?n("button",{type:"button",class:`fx-pub-chip${e.on?" is-on":""}`,"aria-pressed":e.on,disabled:e.disabled,onClick:e.onClick,children:r}):n("span",{class:`fx-pub-chip${e.on?" is-on":""}`,children:r})}function Aa(e){let{t,locale:o}=se(),r=On(),{draft:a,ap:i}=e,s=i.enabled!==!1,l=s&&a.payer==="author",c=h=>e.onChange(ds({...a,...h},i)),d=(i.models||[]).filter(h=>h&&typeof h.id=="string"),f=(i.visitorModels||[]).filter(h=>h&&typeof h.id=="string"),u=d.filter(h=>us(a,i,h.id)).length,p=(e.methods||[]).filter(Boolean),m=e.cooldownUntil&&Date.parse(e.cooldownUntil)>Date.now()?e.cooldownUntil:null,g=Number(i.balance)||0;return n("div",{class:"fx-pub-ai","data-fx-ai":l?"author":"visitor",children:[n("div",{class:"fx-pub-ai-head",children:[n(F,{name:"sparkles",size:13}),n("b",{children:"AI"}),p.length>0&&n("small",{children:p.join(" \xB7 ")})]}),s&&n("div",{class:"fx-pub-row",children:[n("span",{class:"fx-pub-label",children:t("ai.whoPays")}),n(Pt,{value:a.payer,label:t("ai.whoPays"),options:[{value:"visitor",label:t("ai.payer.visitor")},{value:"author",label:t("ai.payer.author")}],onChange:h=>{e.disabled||c({payer:h})}})]}),l&&n(R,{children:[n("div",{class:"fx-pub-row",children:[n("span",{class:"fx-pub-label",children:t("ai.perVisitor")}),n("span",{class:"fx-pub-num",children:[t("ai.perVisitorPre")," ",n(Ru,{value:a.perVisitorDaily,max:cs(i),label:t("ai.perVisitor"),disabled:e.disabled,onChange:h=>c({perVisitorDaily:h})})," ",t("ai.perVisitorPost")]})]}),n("div",{class:"fx-pub-row",children:[n("span",{class:"fx-pub-label",children:t("ai.page")}),n("span",{class:"fx-pub-num",children:[t("ai.pagePre")," ",n(Ru,{wide:!0,value:a.pageDailyPoints,max:_a(i),label:t("ai.page"),disabled:e.disabled,onChange:h=>c({pageDailyPoints:h})})," ",t("ai.pagePost")]})]}),n("div",{class:"fx-pub-row is-top",children:[n("span",{class:"fx-pub-label",id:`${r}-ex`,children:t("ai.whenUsedUp")}),n("div",{class:"fx-pub-radio",role:"radiogroup","aria-labelledby":`${r}-ex`,children:["visitor","pause"].map(h=>n("label",{children:[n("input",{type:"radio",name:`${r}-ex`,value:h,checked:a.onExhausted===h,disabled:e.disabled,onChange:()=>c({onExhausted:h})}),n("i",{"aria-hidden":"true"}),t(h==="visitor"?"ai.exhausted.visitor":"ai.exhausted.pause")]},h))})]})]}),(l?d:f).length>0&&n("div",{class:"fx-pub-row is-top",children:[n("span",{class:"fx-pub-label",children:t("ai.models")}),n("div",{class:"fx-pub-chips",role:"group","aria-label":t("ai.models"),children:l?d.map(h=>{let k=us(a,i,h.id);return n(Lu,{model:h,on:k,disabled:e.disabled||k&&u<=1,onClick:()=>e.onChange(Au(a,i,h.id))},h.id)}):f.map(h=>n(Lu,{model:h,on:!0},h.id))})]}),l&&n("div",{class:"fx-pub-budget",children:[t("ai.balance")," ",n("b",{children:t("ai.points",{n:ze(g,o)})}),n("span",{class:"fx-pub-spacer"}),n("button",{type:"button",onClick:e.onBuy,children:t("ai.buy")})]}),l&&(e.unpublished||m)&&n("p",{class:"fx-pub-note is-warn",children:[n(F,{name:"clock",size:11}),m?t("ai.cooldownUntil",{time:Et(m,o)}):t("ai.cooldownNew",{h:Math.max(0,Math.round(Number(i.cooldownHours??24)))})]}),l&&p.includes("forsion.ai.agent")&&n("p",{class:"fx-pub-note",children:[n(F,{name:"alert",size:11}),t("ai.agentNote")]}),n("p",{class:"fx-pub-note",children:[n(F,{name:l?"info":"user",size:11}),t(s?l?"ai.noteAuthor":"ai.noteVisitor":"ai.noteOff")]})]})}var Ta=`
743
+ .fx-pub-overlay { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; background: rgba(0, 0, 0, 0.42); }
744
+ .fx-pub-card { box-sizing: border-box; width: 440px; max-width: calc(100vw - 40px); max-height: calc(100vh - 60px); overflow: auto; padding: 16px 18px; border: var(--border-width) solid var(--border); border-radius: var(--radius-md); background: var(--bg-card); box-shadow: var(--card-shadow); color: var(--text); font-family: var(--font-ui); font-size: var(--ui-font-body); line-height: var(--ui-line-body); text-align: left; }
745
+ .fx-pub-head { display: flex; align-items: center; gap: 8px; color: var(--text); }
746
+ .fx-pub-head > svg { flex: none; }
747
+ .fx-pub-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--ui-font-body); line-height: var(--ui-line-body); font-weight: 600; }
748
+ .fx-pub-desc { margin: 8px 0 14px; color: var(--text-muted); font-size: var(--ui-font-meta); line-height: 1.6; }
749
+ .fx-pub-busy { display: grid; place-items: center; padding: 18px 0; color: var(--text-muted); }
750
+ .fx-pub-login { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 4px 0 6px; color: var(--text); }
751
+ .fx-pub-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
752
+ .fx-pub-row > label, .fx-pub-row > .fx-pub-label { flex: 0 0 64px; color: var(--text-muted); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
753
+ .fx-pub-row.is-top { align-items: flex-start; }
754
+ .fx-pub-row.is-top > .fx-pub-label { padding-top: 2px; }
755
+ .fx-pub-input { box-sizing: border-box; flex: 1 1 auto; min-width: 0; padding: 6px 10px; border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: var(--bg-input); color: var(--text); font-family: inherit; font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
756
+ .fx-pub-input:focus { border-color: var(--accent-ink); outline: none; }
757
+ .fx-pub-input:disabled { color: var(--text-muted); }
758
+ .fx-pub-mono { font-family: var(--font-mono); }
759
+ .fx-pub-select { box-sizing: border-box; flex: 1 1 auto; min-width: 0; padding: 4px 6px; border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: var(--bg-input); color: var(--text); font-family: var(--font-mono); font-size: var(--ui-font-meta); }
760
+ .fx-pub-hint { margin: 2px 0 6px; color: var(--text-faint); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
761
+ .fx-pub-warn { color: var(--danger); }
762
+ .fx-pub-err { margin: 8px 0 2px; color: var(--danger); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); overflow-wrap: anywhere; }
763
+ .fx-pub-url { display: flex; align-items: center; gap: 4px; margin: 10px 0 4px; padding: 5px 6px 5px 10px; border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: var(--bg-input); }
764
+ .fx-pub-url a { display: inline-flex; flex: 1 1 auto; align-items: center; gap: 5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--accent-ink); font-family: var(--font-mono); font-size: var(--ui-font-meta); text-decoration: none; }
765
+ .fx-pub-url a > svg { flex: none; }
766
+ .fx-pub-url a:hover { text-decoration: underline; }
767
+ .fx-pub-url .icon-btn { flex: none; }
768
+ .fx-pub-listing { margin: 10px 0 2px; padding: 8px 10px; border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); }
769
+ .fx-pub-listing-row { display: flex; align-items: center; gap: 6px; color: var(--text-muted); }
770
+ .fx-pub-listing-title { color: var(--text); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
771
+ .fx-pub-lst { padding: 1px 8px; border: var(--border-width) solid var(--border); border-radius: var(--radius-pill); color: var(--text-faint); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
772
+ .fx-pub-lst.is-pending { color: var(--text-muted); }
773
+ .fx-pub-lst.is-approved { border-color: var(--accent-ink); color: var(--accent-ink); }
774
+ .fx-pub-lst.is-rejected { border-color: var(--danger); color: var(--danger); }
775
+ .fx-pub-listing textarea { box-sizing: border-box; width: 100%; margin-top: 8px; resize: vertical; }
776
+ .fx-pub-listing .fx-pub-actions { margin-top: 8px; }
777
+ .fx-pub-listing .fx-pub-hint { margin: 6px 0 0; }
778
+ .fx-pub-actions { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
779
+ .fx-pub-spacer { flex: 1 1 auto; }
780
+ .fx-pub-primary, .fx-pub-ghost, .fx-pub-danger { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: transparent; color: var(--text-muted); font-family: inherit; font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); cursor: pointer; }
781
+ .fx-pub-primary { padding-left: 16px; padding-right: 16px; border-color: transparent; background: var(--action-fill); color: var(--on-action); }
782
+ .fx-pub-danger { padding-left: 12px; padding-right: 12px; border-color: var(--danger); color: var(--danger); }
783
+ .fx-pub-primary:disabled, .fx-pub-ghost:disabled, .fx-pub-danger:disabled { opacity: 0.5; cursor: default; }
784
+ .fx-pub-ghost:hover:not(:disabled) { color: var(--text); }
785
+ .fx-pub-terms-list { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 12px; padding-left: 18px; }
786
+ .fx-pub-terms-list li { color: var(--text); font-size: var(--ui-font-meta); line-height: 1.55; }
787
+ .fx-pub-agree { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 2px; color: var(--text); font-size: var(--ui-font-meta); line-height: 1.5; cursor: pointer; }
788
+ .fx-pub-agree input { flex: none; margin-top: 2px; }
789
+ .fx-pub-agree a { color: var(--accent-ink); text-decoration: none; }
790
+ .fx-pub-agree a:hover { text-decoration: underline; }
791
+ .fx-pub-spin { animation: fx-pub-spin 0.9s linear infinite; }
792
+ @keyframes fx-pub-spin { to { transform: rotate(360deg); } }
793
+
794
+ /* \u2500\u2500 AI \u4E00\u8282(\u5F39\u7A97\u4E0E\u300C\u6211\u7684\u7F51\u9875\u300D\u5C31\u5730\u5C55\u5F00\u5171\u7528)\u2500\u2500 */
795
+ .fx-pub-ai { margin: 12px 0 2px; padding: 10px 12px 8px; border-radius: var(--radius-sm); background: var(--overlay-light); color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
796
+ .fx-pub-ai-head { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; color: var(--text); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
797
+ .fx-pub-ai-head b { font-weight: 600; }
798
+ .fx-pub-ai-head small { margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-faint); font-family: var(--font-mono); font-size: var(--ui-font-caption); }
799
+ .fx-pub-ai .fx-pub-row { margin-bottom: 8px; }
800
+ .fx-pub-ai .fx-pub-row > .fx-pub-label { flex-basis: 72px; }
801
+ .fx-pub-ai .seg { flex: none; }
802
+ .fx-pub-ai .seg button { padding: 4px 12px; font-size: var(--ui-font-meta); }
803
+ .fx-pub-num { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--text-muted); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
804
+ .fx-pub-num input { box-sizing: border-box; width: 52px; padding: 4px 8px; border: var(--border-width) solid transparent; border-radius: var(--radius-sm); background: var(--bg-input); color: var(--text); font: inherit; text-align: right; font-variant-numeric: tabular-nums; }
805
+ .fx-pub-num input.is-wide { width: 64px; }
806
+ .fx-pub-num input:focus { border-color: var(--accent-ink); outline: none; }
807
+ .fx-pub-radio { display: flex; flex-direction: column; gap: 5px; color: var(--text); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
808
+ .fx-pub-radio label { position: relative; display: flex; align-items: center; gap: 7px; cursor: pointer; }
809
+ .fx-pub-radio input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
810
+ .fx-pub-radio i { flex: none; width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--text-faint); }
811
+ .fx-pub-radio input:checked + i { box-shadow: inset 0 0 0 4px var(--accent-ink); }
812
+ .fx-pub-radio input:focus-visible + i { outline: var(--focus-ring, 2px) solid var(--accent-ink); outline-offset: 2px; }
813
+ .fx-pub-chips { display: flex; flex-wrap: wrap; gap: 5px; }
814
+ .fx-pub-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border: var(--border-width) solid transparent; border-radius: var(--radius-pill); background: var(--bg-card); color: var(--text-muted); font-family: inherit; font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
815
+ button.fx-pub-chip { cursor: pointer; }
816
+ button.fx-pub-chip:disabled { cursor: default; }
817
+ .fx-pub-chip.is-on { background: var(--accent-tint); color: var(--text); }
818
+ .fx-pub-chip em { font-style: normal; color: var(--text-faint); }
819
+ .fx-pub-chip svg { width: 11px; height: 11px; }
820
+ .fx-pub-budget { display: flex; align-items: center; gap: 8px; margin-top: 4px; padding-top: 8px; box-shadow: inset 0 1px 0 var(--overlay-medium); color: var(--text-muted); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
821
+ .fx-pub-budget b { color: var(--text); font-size: var(--ui-font-meta); font-weight: 600; font-variant-numeric: tabular-nums; }
822
+ .fx-pub-budget button { padding: 0; border: 0; background: none; color: var(--accent-ink); font: inherit; white-space: nowrap; cursor: pointer; }
823
+ .fx-pub-budget button:hover { text-decoration: underline; }
824
+ .fx-pub-note { display: flex; gap: 5px; margin: 6px 0 0; color: var(--text-faint); font-size: var(--ui-font-caption); line-height: 1.55; }
825
+ .fx-pub-note svg { flex: none; width: 11px; height: 11px; margin-top: 2px; }
826
+ .fx-pub-note.is-warn { color: var(--warning); }
827
+
828
+ /* \u2500\u2500 \u300C\u6211\u7684\u7F51\u9875\u300D:\u9875\u7B7E\u3001\u989D\u5EA6\u5305\u4F59\u989D\u5361\u3001\u6BCF\u884C AI \u4E00\u884C\u3001\u6536\u85CF \u2500\u2500 */
829
+ .fx-pub-tabs { margin: 0 15px 12px; }
830
+ .fx-pub-pool { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px 16px; margin: 4px 15px 14px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--overlay-light); }
831
+ .fx-pub-pool-lbl { color: var(--text-muted); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
832
+ .fx-pub-pool-big { color: var(--text); font-size: var(--ui-font-display); line-height: 1.3; font-weight: 600; font-variant-numeric: tabular-nums; }
833
+ .fx-pub-pool-big small { margin-left: 4px; color: var(--text-muted); font-size: var(--ui-font-meta); font-weight: 400; }
834
+ .fx-pub-pool.is-low .fx-pub-pool-big { color: var(--warning); }
835
+ .fx-pub-pool-note { margin-top: 4px; color: var(--text-faint); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
836
+ .fx-pub-pool-acts { display: flex; flex-wrap: wrap; gap: 6px; }
837
+ .fx-pub-pool-split { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 18px; color: var(--text-muted); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
838
+ .fx-pub-pool-split b { color: var(--text); font-weight: 500; font-variant-numeric: tabular-nums; }
839
+ @media (max-width: 640px) { .fx-pub-pool { grid-template-columns: 1fr; } }
840
+ .fx-pub-usage { margin: -6px 15px 14px; overflow-x: auto; }
841
+ .fx-pub-usage table { width: 100%; border-collapse: collapse; font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); font-variant-numeric: tabular-nums; }
842
+ .fx-pub-usage th { padding: 4px 8px; color: var(--text-faint); font-weight: 500; text-align: left; }
843
+ .fx-pub-usage td { padding: 4px 8px; border-top: var(--border-width) solid var(--border); color: var(--text-muted); }
844
+ .fx-pub-usage td:first-child, .fx-pub-usage th:first-child { padding-left: 0; }
845
+ .fx-pub-usage .is-num { text-align: right; }
846
+ .fx-pub-usage p { margin: 0; color: var(--text-faint); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
847
+ .fx-pub-ai-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 2px 0; color: var(--text-muted); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
848
+ .fx-pub-ai-line .fx-pub-grow { flex: 1 1 auto; }
849
+ .fx-pub-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--radius-pill); background: var(--overlay-light); color: var(--text-muted); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); white-space: nowrap; }
850
+ .fx-pub-pill.is-on { background: var(--accent-tint); color: var(--text); }
851
+ .fx-pub-pill svg { width: 11px; height: 11px; }
852
+ .fx-pub-meter { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
853
+ .fx-pub-meter > span { display: inline-block; width: 64px; height: 4px; overflow: hidden; border-radius: var(--radius-pill); background: var(--overlay-medium); }
854
+ .fx-pub-meter > span > i { display: block; height: 100%; background: var(--accent-ink); }
855
+ .fx-pub-soc { display: inline-flex; align-items: center; gap: 10px; }
856
+ .fx-pub-soc > span { display: inline-flex; align-items: center; gap: 3px; font-variant-numeric: tabular-nums; }
857
+ .fx-pub-soc svg { width: 11px; height: 11px; }
858
+ .fx-pub-ai-line .btn { margin: -2px 0; }
859
+ .fx-pub-inline { display: grid; gap: 0; }
860
+ .fx-pub-inline .fx-pub-ai { margin-top: 4px; }
861
+ .fx-pub-inline-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
862
+ .fx-pub-who { display: inline-flex; align-items: center; gap: 6px; }
863
+ .fx-pub-av { display: inline-grid; place-items: center; width: 18px; height: 18px; overflow: hidden; border-radius: 50%; background: var(--accent-tint); color: var(--accent-ink); font-size: var(--ui-font-caption); line-height: 1; font-weight: 600; }
864
+ .fx-pub-av img { width: 100%; height: 100%; object-fit: cover; }
865
+ `;var ps=300,xr=e=>e.replace(/\/+$/,"").replace(/\/api$/,""),fs=e=>typeof e=="string"&&/^https?:\/\//i.test(e);function ms(e,t,o){let r=e.apps?.find(i=>i.slug===o);if(fs(r?.publicUrl))return r.publicUrl;let a=e.publicBase?xr(e.publicBase):t;return a&&e.handle?`${a}/apps/${e.handle}/${o}/`:""}var gs=(e=0)=>e<1024*1024?`${Math.max(1,Math.ceil(e/1024))} KB`:`${(e/1024/1024).toFixed(1)} MB`;function Du(e,t){let o=te().openExternal;o&&(t.preventDefault(),o(e)?.catch(()=>{}))}function hv({page:e}){let{t,locale:o}=se();return typeof e.likes!="number"&&typeof e.favorites!="number"?null:n("span",{class:"fx-pub-soc","data-fx-social":!0,children:[typeof e.likes=="number"&&n("span",{title:t("pub.likes",{n:ze(e.likes,o)}),children:[n(F,{name:"heart",size:11}),ze(e.likes,o)]}),typeof e.favorites=="number"&&n("span",{title:t("pub.saves",{n:ze(e.favorites,o)}),children:[n(F,{name:"star",size:11}),ze(e.favorites,o)]})]})}function bv({page:e,ap:t,open:o,onToggle:r,reload:a}){let{t:i,locale:s}=se(),l=me(),c=e.ai,d=n(hv,{page:e}),f=e.status==="disabled";if(!t||!c||f||e.usesSdk===!1)return!(typeof e.likes=="number"||typeof e.favorites=="number")&&!(t&&e.usesSdk===!1)?null:n("div",{class:"fx-pub-ai-line","data-fx-ai-line":"none",children:[d,t&&e.usesSdk===!1&&n("span",{children:i("web.ai.none")})]});let u=m=>ze(Math.max(0,Number(m)||0),s),p=n("button",{type:"button",class:"fx-link","aria-expanded":o,onClick:r,children:i("web.ai.settings")});if(c.payer==="author"&&c.paused){let m=c.pausedReason==="admin";return n("div",{class:"fx-pub-ai-line","data-fx-ai-line":"paused",children:[n("span",{class:"fx-pub-pill",children:[n(F,{name:"sparkles",size:11}),i("web.ai.paused")]}),n("span",{children:i(m?"web.ai.pausedAdmin":"web.ai.pausedSpike")}),d,n("span",{class:"fx-pub-grow"}),!m&&n(W,{pending:l.pending,onClick:()=>void l.run(async()=>{let g=await Iu(e.slug);if(!g.ok)return $e(g);a()}),children:i("web.ai.resume")}),p,n(xe,{a:l})]})}if(c.payer==="author"){let m=Pu(c,t);return n("div",{class:"fx-pub-ai-line","data-fx-ai-line":"author",children:[n("span",{class:"fx-pub-pill is-on",children:[n(F,{name:"sparkles",size:11}),i("web.ai.author")]}),Eu(c)?n("span",{children:i("web.ai.cooldown",{time:Et(c.cooldownUntil,s)})}):n(R,{children:[n("span",{children:i("web.ai.todayAuthor",{calls:u(c.today?.calls),visitors:u(c.today?.visitors)})}),n("span",{class:"fx-pub-meter",role:"meter","aria-label":i("web.ai.cap"),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m,children:[i("web.ai.cap")," ",n("span",{children:n("i",{style:{width:`${m}%`}})}),m,"%"]})]}),d,n("span",{class:"fx-pub-grow"}),p]})}return n("div",{class:"fx-pub-ai-line","data-fx-ai-line":"visitor",children:[n("span",{class:"fx-pub-pill",children:[n(F,{name:"sparkles",size:11}),i("web.ai.visitor")]}),n("span",{children:i("web.ai.todayVisitor",{calls:u(c.today?.calls)})}),d,n("span",{class:"fx-pub-grow"}),p]})}function vv({page:e,ap:t,onDone:o,onBusy:r,reload:a}){let{t:i,ctx:s}=se(),l=me(),c=Bo(e.ai),[d,f]=S(c),u=!Sa(d,c);return n("div",{class:"fx-pub-inline","data-fx-ai-settings":!0,children:[n(Aa,{draft:d,onChange:f,ap:t,cooldownUntil:e.ai?.cooldownUntil,disabled:l.pending,onBuy:()=>yr(s)}),n("div",{class:"fx-pub-inline-acts",children:[n(W,{variant:"primary",pending:l.pending,disabled:!u,onClick:()=>void l.run(async()=>{r(!0);try{let p=await Ca(e.slug,d,t);if(!p.ok)return $e(p);a(),o()}finally{r(!1)}}),children:i("ai.save")}),n(W,{disabled:l.pending,onClick:o,children:i("common.cancel")})]}),n(xe,{a:l})]})}function yv({page:e,url:t,reload:o,ap:r}){let a=ht(),{locale:i}=se(),s=On(),l=me(),[c,d]=S(null),[f,u]=S(!1),[p,m]=S(!1),g=e.listing_status||null,h=e.status==="disabled",k=(w,C,M,$)=>void l.run(async()=>{let U=await Z(w,{method:C,body:M});if(!U.ok)return $e(U);$?.(),o()}),y=`/connect/apps/${encodeURIComponent(e.slug)}`,x=g==="pending"?["web.listingPending","fx-tag--accent"]:g==="approved"?["web.listingApproved","fx-status--resolved"]:g==="rejected"?["web.listingRejected","fx-tag--danger"]:null;return n("article",{class:"fx-sub-item","data-webpage":e.slug,children:[n("div",{class:"fx-sub-item-head",children:[n("strong",{children:e.name||e.slug}),h&&n("span",{class:"fx-tag fx-tag--danger",children:a("web.disabled")}),x&&n("span",{class:`fx-tag ${x[1]}`,children:a(x[0])})]}),t&&n("a",{class:"fx-web-url",href:t,target:"_blank",rel:"noopener noreferrer",onClick:w=>Du(t,w),children:t}),n("div",{class:"fx-sub-meta",children:[n("span",{children:e.slug}),n("span",{children:gs(e.total_bytes)}),e.updated_at&&n("span",{children:a("web.updated",{date:$t(e.updated_at,i)})})]}),n(bv,{page:e,ap:r,open:f,onToggle:()=>{p||u(w=>!w)},reload:o}),f&&r&&e.ai&&!h&&n(vv,{page:e,ap:r,onDone:()=>u(!1),onBusy:m,reload:o}),h&&n(he,{tone:"error",children:a("web.disabledHint")}),g==="rejected"&&e.listing_note&&n(he,{tone:"error",children:a("web.listingNote",{note:e.listing_note})}),c!==null&&n("form",{class:"fx-sub-form",onSubmit:w=>{w.preventDefault(),c.trim()&&k(`${y}/listing`,"PUT",{summary:c.trim()},()=>d(null))},children:[n("label",{class:"fx-sub-field",for:`${s}-summary`,children:[n("span",{children:a("web.listingSummary")}),n("textarea",{id:`${s}-summary`,rows:2,maxLength:ps,value:c,disabled:l.pending,placeholder:a("web.listingSummaryPh"),onInput:w=>d(w.currentTarget.value)}),n("small",{children:a("web.listingHint")})]}),n("div",{class:"fx-sub-actions",children:[n(W,{variant:"primary",submit:!0,pending:l.pending,disabled:!c.trim(),children:a("web.listingSubmit")}),n(W,{disabled:l.pending,onClick:()=>d(null),children:a("common.cancel")})]})]}),c===null&&n("div",{class:"fx-web-actions",children:[t&&n(Yt,{text:t,label:a("web.copy")}),!h&&!g&&n(W,{disabled:l.pending,onClick:()=>d(""),children:a("web.listingApply")}),!h&&g==="rejected"&&n(W,{disabled:l.pending,onClick:()=>d(e.listing_summary||""),children:a("web.listingReapply")}),g==="pending"&&n(W,{pending:l.pending,onClick:()=>k(`${y}/listing`,"DELETE"),children:a("web.listingWithdraw")}),g==="approved"&&n(Kt,{label:a("web.listingDelist"),confirmLabel:a("web.listingDelistConfirm"),pending:l.pending,onConfirm:()=>k(`${y}/listing`,"DELETE")}),n(Kt,{variant:"danger",label:a("web.unpublish"),confirmLabel:a("web.unpublishConfirm"),pending:l.pending,onConfirm:()=>k(y,"DELETE")})]}),n(xe,{a:l})]})}function xv(){let{t:e,locale:t}=se(),o=nt(()=>Z("/connect/ai/usage?days=30"));if(o.state==="loading")return n("div",{class:"fx-pub-usage",children:n("p",{children:e("common.loading")})});if(o.state!=="ready")return n("div",{class:"fx-pub-usage",children:n(he,{tone:"error",children:o.state==="error"?e("common.loadFailed"):e("err.signedOut")})});let r=Array.isArray(o.data?.rows)?o.data.rows:[];if(!r.length)return n("div",{class:"fx-pub-usage",children:n("p",{children:e("pack.usageEmpty")})});let a=i=>ze(Math.round(Math.max(0,Number(i)||0)),t);return n("div",{class:"fx-pub-usage","data-fx-usage":!0,children:n("table",{"aria-label":e("pack.usageTitle"),children:[n("thead",{children:n("tr",{children:[n("th",{children:e("pack.col.day")}),n("th",{children:e("pack.col.page")}),n("th",{class:"is-num",children:e("pack.col.calls")}),n("th",{class:"is-num",children:e("pack.col.visitors")}),n("th",{class:"is-num",children:e("pack.col.points")})]})}),n("tbody",{children:r.map((i,s)=>n("tr",{children:[n("td",{children:i.day?$t(i.day,t):""}),n("td",{children:i.name||i.slug}),n("td",{class:"is-num",children:a(i.calls)}),n("td",{class:"is-num",children:a(i.visitors)}),n("td",{class:"is-num",children:a(i.points)})]},`${i.day}:${i.slug}:${s}`))})]})})}function kv({ap:e}){let{t,locale:o,ctx:r}=se(),[a,i]=S(!1),s=Mu(e),l=Math.round(Number(e.balance)||0),c=e.lastTopUp&&typeof e.lastTopUp.amount=="number"?e.lastTopUp:null;return n(R,{children:[n("div",{class:`fx-pub-pool${s?" is-low":""}`,"data-fx-pool":s?"low":"ok",children:[n("div",{children:[n("div",{class:"fx-pub-pool-lbl",children:t("ai.balance")}),n("div",{class:"fx-pub-pool-big",children:[ze(l,o),n("small",{children:t("pack.points")})]}),n("div",{class:"fx-pub-pool-note",children:t(s?"pack.lowNote":"pack.note")})]}),n("div",{class:"fx-pub-pool-acts",children:[n(W,{variant:s?"primary":"ghost",onClick:()=>yr(r),children:t("ai.buy")}),!s&&n(W,{onClick:()=>i(d=>!d),children:t("pack.usage")})]}),n("div",{class:"fx-pub-pool-split",children:[n("span",{children:[t("pack.monthSpent")," ",n("b",{children:t("ai.points",{n:ze(Math.round(Number(e.monthSpent)||0),o)})})]}),c&&n("span",{children:[t("pack.lastTopUp")," ",n("b",{children:t("pack.topUp",{date:c.at?$t(c.at,o):"",n:ze(Math.round(c.amount),o)})})]})]})]}),a&&!s&&n(xv,{})]})}function wv({items:e,publicOrigin:t,onRemoved:o}){let{t:r,locale:a}=se();return e.length?n(R,{children:e.map(i=>n(Sv,{item:i,publicOrigin:t,locale:a,onRemoved:o},`${i.handle}/${i.slug}`))}):n(xt,{children:[n("strong",{children:r("saved.empty")}),n("p",{children:r("saved.emptyHint")})]})}function zv(e,t){if(!e.handle)return"";let o=typeof e.url=="string"?/^(https?:\/\/[^/]+)\/([^/]+)\//i.exec(e.url):null;return o&&o[2]===e.handle?`${o[1]}/${e.handle}`:t&&fs(t)?`${xr(t)}/${e.handle}`:""}function Sv({item:e,publicOrigin:t,locale:o,onRemoved:r}){let a=ht(),i=me(),s=fs(e.url)?e.url:"",l=zv(e,t),c=e.authorNickname||e.handle||"",d=f=>{let u=te().openExternal;u?u(f)?.catch(()=>{}):window.open(f,"_blank","noopener")};return n("article",{class:"fx-sub-item","data-saved":`${e.handle}/${e.slug}`,children:[n("div",{class:"fx-sub-item-head",children:n("strong",{children:e.name||e.slug})}),s&&n("a",{class:"fx-web-url",href:s,target:"_blank",rel:"noopener noreferrer",onClick:f=>Du(s,f),children:s}),n("div",{class:"fx-sub-meta",children:[c&&n("span",{class:"fx-pub-who",children:[n("span",{class:"fx-pub-av","aria-hidden":"true",children:ya(c)}),e.handle?`@${e.handle}`:c]}),typeof e.likes=="number"&&n("span",{class:"fx-pub-soc",children:n("span",{children:[n(F,{name:"heart",size:11}),ze(e.likes,o)]})}),e.payer==="author"?n("span",{children:a("saved.aiAuthor")}):e.payer==="visitor"?n("span",{children:a("saved.aiVisitor")}):null]}),n("div",{class:"fx-web-actions",children:[s&&n(W,{onClick:()=>d(s),children:a("saved.open")}),l&&n(W,{onClick:()=>d(l),children:a("saved.author")}),e.handle&&e.slug&&n(W,{pending:i.pending,onClick:()=>void i.run(async()=>{let f=await Z(`/connect/page/${encodeURIComponent(e.handle)}/${encodeURIComponent(e.slug)}/reactions/favorite`,{method:"DELETE"});if(!f.ok)return $e(f);r(e)}),children:a("saved.unsave")})]}),n(xe,{a:i})]})}function _v({data:e,reload:t}){let o=ht(),r=Ve(),[a,i]=S(""),[s,l]=S("mine"),[c,d]=S({state:"idle"}),f=ie(0);Y(()=>{if(e.publicBase)return;let y=!0;return te().authStatus?.().then(x=>{y&&x?.cloudUrl&&i(xr(x.cloudUrl))}).catch(()=>{}),()=>{y=!1}},[e.publicBase]);let u=za(e.authorPays)?e.authorPays:null,p=Vt(()=>{let y=++f.current;d(x=>x.state==="ready"?x:{state:"loading"}),Z("/connect/favorites").then(x=>{!r.current||y!==f.current||d(x.ok?{state:"ready",items:Array.isArray(x.data?.items)?x.data.items:[]}:{state:"error"})})},[]);Y(()=>{u&&p()},[!!u,p]);let m=e.apps||[],g=y=>ms(e,a,y),h=typeof e.limit=="number"&&m.length>=e.limit,k=()=>{t(),u&&p()};return n(Ie,{title:o("web.title"),desc:o("web.desc"),actions:n(W,{onClick:k,children:o("web.refresh")}),children:[n("style",{children:Ta}),u&&n("div",{class:"fx-pub-tabs",children:n(Pt,{value:s,label:o("web.title"),onChange:l,options:[{value:"mine",label:o("web.tabMine",{n:m.length})},{value:"saved",label:c.state==="ready"?o("web.tabSavedN",{n:c.items.length}):o("web.tabSaved")}]})}),s==="saved"&&u?c.state==="ready"?n(wv,{items:c.items,publicOrigin:e.publicOrigin,onRemoved:y=>{f.current++,d(x=>x.state==="ready"?{state:"ready",items:x.items.filter(w=>!(w.handle===y.handle&&w.slug===y.slug))}:x)}}):c.state==="error"?n(xt,{children:[n("strong",{children:o("common.loadFailed")}),n("p",{children:n("button",{type:"button",class:"fx-link",onClick:p,children:o("common.retry")})})]}):n(xt,{children:n("p",{children:o("common.loading")})}):n(R,{children:[typeof e.limit=="number"&&n("p",{class:"fx-web-quota",children:[o("web.used",{used:m.length,limit:e.limit}),h?` \xB7 ${o("web.full")}`:""]}),u&&n(kv,{ap:u}),m.length?m.map(y=>n(yv,{page:y,url:g(y.slug),reload:t,ap:u},y.slug)):n(xt,{children:[n("strong",{children:o("web.empty")}),n("p",{children:o("web.emptyHint")})]})]})]})}function Nu(){let e=nt(()=>Z("/connect/apps"));switch(e.state){case"loading":return n(Ge,{});case"signedOut":return n(lt,{});case"error":return n(ut,{error:e.error,onRetry:e.retry});case"ready":return n(_v,{data:e.data||{},reload:e.reload})}}var Cv=e=>!!e&&typeof e=="object"&&typeof e.enabled=="boolean";async function hs(e,t){let o=te().cloudInvoke;if(!o)throw new Error("no_bridge");let r=await o(e,t);if(!Cv(r))throw new Error(String(r?.error??"unavailable"));return r}var Av=["diag.item.app","diag.item.settings","diag.item.agents","diag.item.plugins","diag.item.runs","diag.item.sync"];function Ou(){let[e,t]=S(0);return Y(()=>te().onAuthChanged?.(()=>t(o=>o+1)),[]),n(Tv,{standalone:!0},e)}function Tv({standalone:e=!1}={}){let{t,locale:o}=se(),r=Ve(),[a,i]=S(null),[s,l]=S(!1),c=me(),d=me();if(Y(()=>{let h=!1,k=0,y=()=>{let w=++k;hs("diagnostics:get").then(C=>{!h&&w===k&&(i(C),l(!0))},()=>{!h&&w===k&&(i(null),l(!0))})};y();let x=te().onAuthChanged?.(y);return()=>{h=!0,x?.()}},[]),!a?.signedIn)return e?s?a?n(lt,{}):n(xt,{children:t("diag.unavailable")}):n(Ge,{panels:1}):null;let f=()=>void d.run(async()=>{try{let h=await hs("diagnostics:uploadNow");return r.current&&i(h),h.lastError?{error:{key:"diag.failed",vars:{reason:h.lastError}}}:h.enabled&&h.lastUploadAt?{success:{key:"diag.uploaded"}}:void 0}catch(h){return{error:{raw:gt(h)||t("err.generic")}}}}),u=async h=>{let k=!1;await c.run(async()=>{d.clear();try{let y=await hs("diagnostics:set",h);r.current&&i(y),k=!0}catch(y){return{error:{raw:gt(y)||t("err.generic")}}}}),k&&h.enabled&&r.current&&f()},p=a.intervalHours??24,m=a.mode==="manual"?t("diag.freq.manual"):p===1?t("diag.freq.hour"):p%24===0?p===24?t("diag.freq.day"):t("diag.freq.days",{n:p/24}):t("diag.freq.hours",{n:p}),g=`${a.lastUploadAt?t("diag.last",{time:Et(a.lastUploadAt,o)}):t("diag.noUpload")} \xB7 ${m}`;return n(Ie,{icon:"chart",title:t("diag.title"),desc:t("diag.desc"),children:[n(Ze,{label:t("diag.enable"),desc:t("diag.enableDesc"),children:n(cn,{checked:a.enabled,disabled:c.pending,label:t("diag.enable"),onChange:h=>void u({enabled:h})})}),n(Be,{class:"fx-diag",children:[n("strong",{children:t("diag.collected")}),n("ul",{children:Av.map(h=>n("li",{children:t(h)},h))}),n(he,{children:t("diag.notCollected")})]}),a.sessions!==void 0&&n(Ze,{label:t("diag.sessions"),desc:t("diag.sessionsDesc"),children:n(cn,{checked:a.sessions,disabled:c.pending,label:t("diag.sessions"),onChange:h=>void u({sessions:h})})}),a.memory!==void 0&&n(Ze,{label:t("diag.memory"),desc:t("diag.memoryDesc"),children:n(cn,{checked:a.memory,disabled:c.pending,label:t("diag.memory"),onChange:h=>void u({memory:h})})}),n(Ze,{label:t("diag.activity"),desc:t("diag.activityDesc"),children:n(cn,{checked:a.activity,disabled:c.pending,label:t("diag.activity"),onChange:h=>void u({activity:h})})}),a.enabled&&n("div",{class:"settings-panel-footer fx-footer",children:[n("span",{class:"fx-muted",children:g}),n(W,{pending:d.pending,disabled:c.pending,onClick:f,children:t("diag.uploadNow")})]}),n(Be,{class:"fx-sub--tight",children:[n(he,{children:t("diag.retention",{n:a.retainDays})}),a.enabled&&a.lastError&&!d.error&&!d.success&&n("div",{class:"fx-msg is-error",role:"alert",children:t("diag.failed",{reason:a.lastError})}),n(xe,{a:c}),n(xe,{a:d})]})]})}var kr=20,Ea=5,Ev=5*1024*1024,Pa=1e4,Pv={open:"fb.status.open",in_progress:"fb.status.in_progress",resolved:"fb.status.resolved",closed:"fb.status.closed"};function $u(e){let{t}=se(),o=e.status||"open",r=Pv[o];return n("span",{class:`fx-tag fx-status fx-status--${o}`,children:r?t(r):o})}function Bu(){let[e,t]=S(null),o=nt(async()=>{let r=await Z(`/feedback?limit=${kr}&offset=0`);return r.ok?{ok:!0,status:r.status,data:Array.isArray(r.data?.tickets)?r.data.tickets:[]}:r});return o.state==="loading"?n(Ge,{panels:1,rows:3}):o.state==="signedOut"?n(lt,{}):o.state==="error"?n(ut,{error:o.error,onRetry:o.retry}):e?n(Dv,{id:e,onBack:()=>{t(null),o.reload()}}):n(Mv,{first:o.data,onOpen:t,onChanged:o.reload})}function Mv(e){let{t,locale:o}=se(),r=Ve(),[a,i]=S(e.first),[s,l]=S(e.first.length===kr),[c,d]=S(!1),[f,u]=S(!1),p=me();Y(()=>{i(e.first),l(e.first.length===kr)},[e.first]);let m=()=>void p.run(async()=>{let g=await Z(`/feedback?limit=${kr}&offset=${a.length}`);if(!g.ok)return{error:St(g)};let h=Array.isArray(g.data?.tickets)?g.data.tickets:[];r.current&&(i(k=>{let y=new Set(k.map(x=>x.id));return[...k,...h.filter(x=>!y.has(x.id))]}),l(h.length===kr))});return n(Ie,{icon:"message",title:t("fb.list.title"),desc:t("fb.list.desc"),actions:c?void 0:n(W,{variant:"primary",onClick:()=>{u(!1),d(!0)},children:[n(F,{name:"plus",size:12})," ",t("fb.new")]}),children:[c&&n(Lv,{onCancel:()=>d(!1),onSubmitted:()=>{d(!1),u(!0),e.onChanged()}}),f&&!c&&n(Be,{children:n("div",{class:"fx-msg is-ok",role:"status",children:t("fb.submitted")})}),a.length===0?n(xt,{children:t("fb.empty")}):n("div",{class:"fx-list fx-block",role:"list",children:a.map(g=>n("button",{type:"button",class:"fx-list-row fx-list-row--button",role:"listitem",onClick:()=>e.onOpen(g.id),children:[n("span",{class:`fx-dot${g.user_unread?" is-on":""}`,"aria-label":g.user_unread?t("fb.unread"):void 0}),n("span",{class:"fx-list-main",children:[n("strong",{children:g.title||(g.description||"").slice(0,60)||t("fb.untitled")}),n("small",{children:Et(g.updated_at||g.created_at,o)})]}),n($u,{status:g.status}),n(F,{name:"chevron",size:12})]},g.id))}),a.length>0&&(s||p.error)&&n("div",{class:"settings-panel-footer fx-footer",children:[n("span",{class:"fx-muted",children:t("fb.shown",{n:ze(a.length,o)})}),s&&n(W,{pending:p.pending,onClick:m,children:t("common.loadMore")})]}),p.error&&n(Be,{children:n(xe,{a:p})})]})}function Iv(e){return new Promise((t,o)=>{let r=new FileReader;r.onload=()=>t(String(r.result||"")),r.onerror=()=>o(r.error||new Error("read failed")),r.readAsDataURL(e)})}var Rv=0;function Lv(e){let{t}=se(),o=Ve(),[r,a]=S(""),[i,s]=S([]),[l,c]=S(null),[d,f]=S(!1),u=ie(null),p=me(),[m,g]=S(0),h=ie(0);h.current=i.length;let k=async x=>{c(null);for(let w of Array.from(x||[])){if(!w.type||!w.type.startsWith("image/")){c({key:"err.imageType"});continue}if(w.size>Ev){c({key:"err.imageTooLarge"});continue}if(h.current>=Ea){c({key:"err.tooManyImages"});break}h.current++,g(C=>C+1);try{let C=await Iv(w);if(!o.current)return;let M={id:`img-${++Rv}`,filename:w.name||"image",mime_type:w.type,size:w.size,data_base64:C.replace(/^data:[^;]+;base64,/,""),url:C};s($=>$.length>=Ea?$:[...$,M])}catch{h.current--,c({key:"err.imageRead"})}finally{o.current&&g(C=>C-1)}}},y=()=>void p.run(async()=>{let x=r.trim();if(!x)return{error:{key:"err.feedbackEmpty"}};if(x.length>Pa)return{error:{key:"err.feedbackTooLong"}};let w=i.map(({filename:M,mime_type:$,size:U,data_base64:O})=>({filename:M,mime_type:$,size:U,data_base64:O})),C=await Z("/feedback",{method:"POST",body:{description:x,attachments:w},timeoutMs:12e4});if(!C.ok)return $e(C);e.onSubmitted()});return n("div",{class:`fx-sub fx-form fx-composer${d?" is-drag":""}`,onPaste:x=>{let w=Array.from(x.clipboardData?.items||[]).filter(C=>C.kind==="file").map(C=>C.getAsFile()).filter(Boolean);w.length&&(x.preventDefault(),k(w))},onDragOver:x=>{x.preventDefault(),f(!0)},onDragLeave:()=>f(!1),onDrop:x=>{x.preventDefault(),f(!1),k(x.dataTransfer?.files)},children:[n("label",{class:"fx-field",children:[n("span",{children:t("fb.descLabel")}),n("textarea",{class:"fx-input fx-textarea",rows:5,value:r,maxLength:Pa,autoFocus:!0,placeholder:t("fb.descPlaceholder"),onInput:x=>a(x.currentTarget.value)})]}),n("p",{class:"fx-note",children:t("fb.imagesHint",{n:Ea})}),i.length>0&&n("div",{class:"fx-thumbs",children:i.map(x=>n("span",{class:"fx-thumb",children:[n("img",{src:x.url,alt:x.filename}),n("button",{type:"button","aria-label":t("fb.removeImage"),title:t("fb.removeImage"),onClick:()=>{s(w=>w.filter(C=>C.id!==x.id)),c(null)},children:n(F,{name:"x",size:11})})]},x.id))}),l&&n("div",{class:"fx-msg is-error",role:"alert",children:zt(l,t)}),n("input",{ref:u,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:x=>{let w=x.currentTarget;k(w.files),w.value=""}}),n("div",{class:"fx-inline",children:[n(W,{disabled:i.length>=Ea||p.pending,onClick:()=>u.current?.click(),children:[n(F,{name:"image",size:12})," ",t("fb.addImages")]}),n("span",{class:"fx-grow"}),n(W,{disabled:p.pending,onClick:e.onCancel,children:t("common.cancel")}),n(W,{variant:"primary",pending:p.pending,disabled:m>0,onClick:y,children:t("fb.submit")})]}),n(xe,{a:p})]})}function Dv(e){let{t,locale:o}=se(),[r,a]=S({state:"loading"}),[i,s]=S(0),[l,c]=S(""),[d,f]=S(null),u=me(),p=ie(0);Y(()=>{let C=++p.current;return Z(`/feedback/${encodeURIComponent(e.id)}`).then(M=>{if(C===p.current){if(!M.ok){a({state:"error",fail:M});return}a({state:"ready",data:{ticket:M.data.ticket,replies:M.data.replies??[],attachments:M.data.attachments??[]}}),Z(`/feedback/${encodeURIComponent(e.id)}/read`,{method:"POST"})}}),()=>{p.current++}},[e.id,i]),Y(()=>{if(!d)return;let C=M=>{M.key==="Escape"&&f(null)};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[d]);let m=n("div",{class:"fx-back",children:n(W,{onClick:e.onBack,children:[n(F,{name:"back",size:12})," ",t("fb.back")]})});if(r.state==="loading")return n(R,{children:[m,n(Ge,{panels:1,rows:3})]});if(r.state==="error")return n(R,{children:[m,n(ut,{error:St(r.fail),onRetry:()=>{a({state:"loading"}),s(C=>C+1)}})]});let{ticket:g,replies:h,attachments:k}=r.data,y=g.status==="closed",x=C=>k.filter(M=>(M.reply_id??null)===C),w=()=>void u.run(async()=>{let C=l.trim();if(!C)return{error:{key:"err.replyEmpty"}};if(C.length>Pa)return{error:{key:"err.replyTooLong"}};let M=await Z(`/feedback/${encodeURIComponent(g.id)}/replies`,{method:"POST",body:{content:C},timeoutMs:6e4});return M.ok?(c(""),s($=>$+1),{success:{key:"fb.replySent"}}):$e(M)});return n(R,{children:[m,n(Ie,{icon:"message",title:g.title||t("fb.untitled"),actions:n($u,{status:g.status}),desc:`#${String(g.id).slice(0,8)} \xB7 ${Et(g.created_at,o)}`,children:[n("div",{class:"fx-thread fx-block",children:[n(Fu,{who:"user",when:g.created_at,text:g.description||"",files:x(null),onZoom:f}),h.map((C,M)=>n(Fu,{who:C.author_role==="user"?"user":"admin",when:C.created_at,text:C.content||"",files:C.id?x(C.id):[],onZoom:f},C.id??M))]}),y?n(Be,{children:n(he,{children:t("fb.closedNote")})}):n(Be,{class:"fx-form",children:[n("textarea",{class:"fx-input fx-textarea",rows:3,value:l,maxLength:Pa,placeholder:t("fb.replyPlaceholder"),"aria-label":t("fb.replyPlaceholder"),onInput:C=>{c(C.currentTarget.value),u.success&&u.clear()}}),n("div",{class:"fx-inline",children:[n("span",{class:"fx-grow"}),n(W,{variant:"primary",pending:u.pending,onClick:w,children:t("fb.replySend")})]}),n(xe,{a:u})]})]}),d&&n("div",{class:"fx-lightbox",role:"dialog","aria-label":t("fb.imagePreview"),onClick:()=>f(null),children:n("img",{src:d,alt:""})})]})}function Fu(e){let{t,locale:o}=se();return n("div",{class:`fx-bubble fx-bubble--${e.who}`,children:[n("div",{class:"fx-bubble-meta",children:[e.who==="user"?t("fb.you"):t("fb.support")," \xB7 ",Et(e.when,o)]}),n("div",{class:"fx-bubble-text",children:e.text}),e.files.length>0&&n("div",{class:"fx-thumbs",children:e.files.map((r,a)=>{let i=r.mime_type||"";if(i.startsWith("image/")&&r.data_base64){let s=`data:${i};base64,${r.data_base64}`;return n("button",{type:"button",class:"fx-thumb",onClick:()=>e.onZoom(s),"aria-label":t("fb.imagePreview"),children:n("img",{src:s,alt:r.filename||""})},r.id??a)}return n("span",{class:"fx-tag",children:[n(F,{name:"card",size:11})," ",r.filename||t("fb.attachment")]},r.id??a)})})]})}var Hu=[{id:"monthly",field:"priceMonthly",discount:"recurringPriceMonthly"},{id:"quarterly",field:"priceQuarterly",discount:"recurringPriceQuarterly"},{id:"yearly",field:"priceYearly",discount:"recurringPriceYearly"}];function Uu(e,t){let o=Hu.find(s=>s.id===t),r=Ue(e.priceMonthly)??0,a=(Ue(e[o.field])??0)||(t==="quarterly"?Math.round(r*300)/100:0),i=Ue(e[o.discount])??0;return i>0&&i<a?i:a}function bs(e,t,o){let r=ze(e,o),a=String(t||"CNY").toUpperCase();return a==="CNY"?`\xA5${r}`:a==="USD"?`$${r}`:`${r} ${a}`}async function Nv(){let[e,t,o]=await Promise.all([Z("/membership/my"),Z("/credits/balance"),Z("/features")]);return!e.ok&&Fn(e)?e:!t.ok&&Fn(t)?t:{ok:!0,status:200,data:{membership:e.ok?e.data?.membership??null:null,membershipFailed:!e.ok,balance:t.ok?Ue(t.data?.balance):null,balanceFailed:!t.ok,features:o.ok&&o.data&&typeof o.data=="object"?o.data:{}}}}async function vs(e,t){let[o,r]=await Promise.all([Nv(),Z(e)]);return o.ok?r.ok?{ok:!0,status:r.status,data:{status:o.data,list:t(r.data)}}:r:o}var ys=e=>(Array.isArray(e)?e:[]).filter(t=>!!t&&typeof t=="object"&&t.isActive!==!1),Ov=15*6e4;function xs(e){let t=ie(0),o=ie(0),r=ie(e);return r.current=e,Y(()=>{let a=()=>{let i=Date.now();i>t.current||document.visibilityState==="hidden"||i-o.current<2e3||(o.current=i,r.current?.())};return window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),()=>{window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",a)}},[]),()=>{t.current=Date.now()+Ov}}function qu(e){let t=e.membership;return t&&(t.status===void 0||t.status==="active")?t:null}function ks(e){let{t,locale:o}=se(),r=e.status,a=qu(r),i=gr(a?.tier),s=i==="Free";return n("section",{class:"fx-shop-strip","aria-label":t("store.status"),children:[n("div",{class:"fx-shop-stat",children:[n("small",{children:t("store.tier")}),r.membershipFailed?n("b",{class:"is-empty",children:"\u2014"}):n("b",{"data-testid":"shop-tier",children:[s?t("member.freeName"):Oo(a?.plan,o)||i,!s&&n("i",{children:a?.expiresAt?t("member.expires",{date:$t(a.expiresAt,o)}):t("member.noExpiry")})]})]}),n("div",{class:"fx-shop-stat",children:[n("small",{children:t("store.balance")}),n("b",{class:r.balance===null?"is-empty":"","data-testid":"shop-balance",children:r.balance===null?"\u2014":ze(r.balance,o)})]}),(r.membershipFailed||r.balanceFailed)&&n("button",{type:"button",class:"fx-link",onClick:e.onRetry,children:t("common.retry")}),n("span",{class:"fx-grow"}),e.children]})}function ws(e){return n("section",{class:"fx-shop-section",children:[n("div",{class:"fx-shop-head",children:[n("div",{children:[n("h2",{children:e.title}),e.desc&&n("p",{children:e.desc})]}),e.right]}),e.children]})}function zs(e){let t=me(),[o,r]=S(null),a=(i,s,l,c)=>{r(i),t.run(async()=>{if(!await Pn(s,l,c))return{error:{key:"err.openFailed"}};e()})};return{a:t,payingId:t.pending?o:null,open:a}}function Ss(e){return n(W,{variant:"ghost",pending:e.pending,disabled:e.disabled,onClick:e.onClick,children:[e.label,n(F,{name:"external",size:12})]})}function _s(e){return n("div",{class:"fx-shop-empty",children:e.children})}function Vu(){let{t:e,locale:t}=se(),o=nt(()=>vs("/payment/offerings",m=>ys(m?.membershipPlans))),r=xs(o.state==="ready"?o.reload:null),a=zs(r),[i,s]=S("monthly");if(o.state==="loading")return n(Ge,{panels:2,rows:2});if(o.state==="signedOut")return n(lt,{});if(o.state==="error")return n(ut,{error:o.error,onRetry:o.retry});let{status:l,list:c}=o.data,d=l.features.payment!==!1,f=Hu.filter(m=>c.some(g=>Uu(g,m.id)>0)),u=f.some(m=>m.id===i)?i:f[0]?.id??"monthly",p=qu(l)?.tier?.toLowerCase()??null;return n(R,{children:[n(ks,{status:l,onRetry:o.reload}),n(ws,{title:e("store.choosePlan"),desc:e(d?"store.payHint":"store.payOff"),right:f.length>1?n(Pt,{value:u,label:e("store.period"),onChange:s,options:f.map(m=>({value:m.id,label:e(`store.period.${m.id}`)}))}):void 0,children:[c.length===0?n(_s,{children:e("store.noPlans")}):n("div",{class:"fx-shop-tiers",children:c.map(m=>{let g=Uu(m,u),h=!!p&&!l.membershipFailed&&m.tier?.toLowerCase()===p;return n("article",{class:"fx-shop-tier","data-tier":m.tier,children:[n("h3",{children:[Oo(m,t)||gr(m.tier),h&&n("span",{class:"fx-shop-current",children:[n(F,{name:"check",size:12}),e("store.currentTier")]})]}),n("div",{class:"fx-shop-price",children:g>0?n(R,{children:[bs(g,m.currency,t),n("small",{children:e(`store.per.${u}`)})]}):"\u2014"}),n("p",{children:Qc(m,t)}),d&&g>0&&n(Ss,{label:e(h?"member.renew":"store.pay"),pending:a.payingId===m.id,disabled:a.a.pending,onClick:()=>a.open(m.id,"membership",m.id,u)})]},m.id)})}),n(xe,{a:a.a})]})]})}function Wu(){let{t:e,locale:t}=se(),o=nt(()=>vs("/payment/offerings",c=>ys(c?.packages))),r=xs(o.state==="ready"?o.reload:null),a=zs(r);if(o.state==="loading")return n(Ge,{panels:2,rows:2});if(o.state==="signedOut")return n(lt,{});if(o.state==="error")return n(ut,{error:o.error,onRetry:o.retry});let{status:i,list:s}=o.data,l=i.features.payment!==!1;return n(R,{children:[n(ks,{status:i,onRetry:o.reload}),n(ws,{title:e("store.packs"),desc:e(l?"store.packsHint":"store.payOff"),children:[s.length===0?n(_s,{children:e("store.noPacks")}):n("div",{class:"fx-shop-grid",children:s.map(c=>{let d=Ue(c.price)??0;return n(ju,{icon:"coins",kind:e("store.kind.pack"),name:`${c.name||""} \xB7 ${e("store.nPoints",{n:ze(c.credits,t)})}`,desc:c.description,meta:e("store.instant"),children:l&&d>0&&n(Ss,{label:e("store.payPrice",{price:bs(d,c.currency,t)}),pending:a.payingId===c.id,disabled:a.a.pending,onClick:()=>a.open(c.id,"credits")})},c.id)})}),n(xe,{a:a.a})]})]})}function ju(e){return n("article",{class:"fx-shop-card",children:[n("div",{class:"fx-shop-visual","aria-hidden":"true",children:e.emoji?n("span",{class:"fx-shop-emoji",children:e.emoji}):n(F,{name:e.icon,size:18})}),n("div",{class:"fx-shop-body",children:[n("span",{class:"fx-shop-kind",children:e.kind}),n("strong",{children:e.name}),e.desc&&n("p",{children:e.desc}),n("div",{class:"fx-shop-foot",children:[n("span",{class:"fx-shop-meta",children:e.meta}),n("span",{class:"fx-shop-acts",children:e.children})]}),e.below]})]})}var Fv={reset_card:"store.kind.card",api_quota_key:"store.kind.code"};function $v(e){let{t,locale:o}=se(),{p:r}=e,a=me(),[i,s]=S(null),[l,c]=S(!1),d=Ue(r.pricePoints)??0,f=Ue(r.priceRmb)??0,u=typeof r.availableKeys=="number"&&r.availableKeys<=0,p=d>0&&e.balance!==null&&e.balance<d,m=()=>void a.run(async()=>{let h=await Z("/shop/purchase",{method:"POST",body:{productId:r.id,payMethod:"points"},timeoutMs:3e4});return h.ok?(s(typeof h.data?.key=="string"&&h.data.key?h.data.key:null),e.onRedeemed(),{success:{key:"store.redeemed"}}):h.status===0?(c(!0),{error:{key:"store.uncertain"}}):$e(h)}),g=u?t("store.soldOut"):p?t("err.insufficientPoints"):typeof r.availableKeys=="number"?t("store.left",{n:r.availableKeys}):t("store.toBackpack");return n(ju,{icon:r.type==="api_quota_key"?"key":"gift",emoji:r.icon,kind:t(Fv[r.type||""]??"store.kind.item"),name:r.name||"",desc:r.description,meta:g,below:n(R,{children:[n(xe,{a}),i&&n("div",{class:"fx-shop-key",children:[n("code",{children:i}),n(Yt,{text:i,label:t("backpack.copyKey")})]})]}),children:[d>0&&n(Kt,{variant:"primary",pending:a.pending,disabled:u||p||l,label:t("store.redeem",{n:ze(d,o)}),confirmLabel:t("store.redeemConfirm",{n:ze(d,o)}),onConfirm:m}),e.payment&&f>0&&n(Ss,{label:bs(f,r.currency,o),pending:e.paying,disabled:e.payBusy||u,onClick:e.onPay})]})}function Gu(){let{t:e,goTo:t}=se(),o=nt(()=>vs("/shop/products",d=>ys(d))),r=xs(o.state==="ready"?o.reload:null),a=zs(r);if(o.state==="loading")return n(Ge,{panels:2,rows:2});if(o.state==="signedOut")return n(lt,{});if(o.state==="error")return n(ut,{error:o.error,onRetry:o.retry});let{status:i,list:s}=o.data,l=i.features.payment!==!1,c=i.features.shop!==!1;return n(R,{children:[n(ks,{status:i,onRetry:o.reload,children:t&&n(W,{onClick:()=>t("backpack"),children:e("store.openBackpack")})}),n(ws,{title:e("store.redeemTitle"),desc:e("store.redeemHint"),children:[!c||s.length===0?n(_s,{children:e(c?"store.noItems":"store.itemsOff")}):n("div",{class:"fx-shop-grid",children:s.map(d=>n($v,{p:d,balance:i.balance,payment:l,paying:a.payingId===d.id,payBusy:a.a.pending,onPay:()=>a.open(d.id,"storefront"),onRedeemed:o.reload},d.id))}),n(xe,{a:a.a})]})]})}var Bv="forsion-extend",Ju=[{id:"account",titleKey:"page.account",tabTitleKey:"page.profile",aliases:["profile"],keywords:"\u4E2A\u4EBA\u4E3B\u9875 profile avatar nickname \u5934\u50CF \u6635\u79F0",Component:Zd},{id:"account-details",parent:"account",titleKey:"account.details.title",keywords:"\u767B\u5F55 \u8D44\u6599 \u624B\u673A \u90AE\u7BB1 \u5207\u6362 \u9000\u51FA login sign-in email phone account switch logout",Component:Id},{id:"security",parent:"account",titleKey:"page.security",keywords:"\u5B89\u5168 \u5BC6\u7801 \u8BBE\u5907 \u7ED1\u5B9A security password devices",Component:lu},{id:"quota",titleKey:"page.membershipUsage",tabTitleKey:"page.membershipQuota",aliases:["membership"],keywords:"\u4F1A\u5458 \u989D\u5EA6 \u540E\u53F0 quota membership background",Component:nu},{id:"points",parent:"quota",titleKey:"page.pointsInvite",keywords:"\u79EF\u5206 \u9080\u8BF7 \u5151\u6362 \u5145\u503C points invite redeem credits",Component:tu},{id:"usage",parent:"quota",titleKey:"page.usage",keywords:"\u7528\u91CF \u8BB0\u5F55 \u6D88\u8017 usage history tokens",Component:fu},{id:"backpack",titleKey:"page.backpack",keywords:"\u80CC\u5305 \u5361\u5238 backpack inventory",Component:ru},{id:"submission",titleKey:"page.submission",Component:_u},{id:"webpages",titleKey:"page.webPages",keywords:"\u7F51\u9875 \u53D1\u5E03 \u94FE\u63A5 \u4E0A\u67B6 \u7F51\u7AD9 web pages publish link site connect",Component:Nu},{id:"feedback",titleKey:"page.feedback",keywords:"\u5E2E\u52A9 \u53CD\u9988 help feedback",Component:Bu},{id:"privacy",titleKey:"page.privacy",tabTitleKey:"privacy.tab",keywords:"\u9690\u79C1 \u9065\u6D4B \u5D29\u6E83 \u7EDF\u8BA1 \u5E2E\u52A9\u6539\u8FDB privacy telemetry crash usage statistics improve",Component:Rd,desktopOnly:!0},{id:"diagnostics",parent:"privacy",titleKey:"diag.title",keywords:"\u8BCA\u65AD \u4E0A\u4F20 \u65E5\u5FD7 diagnostic upload logs",Component:Ou,desktopOnly:!0}],Xu=[{id:"membership",titleKey:"store.membership",descKey:"store.membership.desc",icon:"crown",Component:Vu},{id:"points",titleKey:"store.points",descKey:"store.points.desc",icon:"coins",Component:Wu},{id:"items",titleKey:"store.items",descKey:"store.items.desc",icon:"package",Component:Gu}],Mn=e=>`forsion/fx:${Bv}:${e}`;function Cs(e){let{ctx:t}=e,[o,r]=S(()=>Ne(t.getLocale?.()));Y(()=>{r(Ne(t.getLocale?.()));let i=t.subscribeLocale?.(s=>r(Ne(s)));return()=>{typeof i=="function"&&i()}},[t]);let a=rn(()=>{let i=t.app?.openSettings;return{ctx:t,locale:o,t:$n(o),goTo:typeof i=="function"?s=>i.call(t.app,Mn(s)):null}},[t,o]);return n(Di.Provider,{value:a,children:e.children})}function Uv(e){let{locale:t}=se(),o=e.page.Component;return n("div",{class:"fx-acct","data-fx-page":e.page.id,lang:t==="zh"?"zh-CN":"en",children:[n("style",{children:Uc}),n(o,{})]})}function Ku(e){return n(Cs,{ctx:e.ctx,children:n(Uv,{page:e.page})})}function Yu(e,t=window){let o=an(t?.tangu);if(!e||!o?.cloudFetch||!o.cloudInvoke||!sn(o)||typeof e.registerStoreView!="function")return 0;let r=a=>()=>we(Ne(e.getLocale?.()),a);for(let a of Xu)e.registerStoreView({id:a.id,title:r(a.titleKey),description:r(a.descKey),group:r("store.group"),icon:a.icon,mount(i){return Re(n(Ku,{ctx:e,page:a}),i),()=>{Re(null,i)}}});return Xu.length}function Zu(e,t=window){let o=an(t?.tangu);if(!e||!o?.cloudFetch||!o.cloudInvoke||!sn(o)||typeof e.registerSettingsView!="function")return 0;let r=wn(o)?Ju.filter(a=>!a.desktopOnly):Ju;for(let a of r)e.registerSettingsView({id:a.id,category:"forsion",parent:a.parent,tabTitle:a.tabTitleKey?()=>we(Ne(e.getLocale?.()),a.tabTitleKey):void 0,aliases:a.aliases,keywords:a.keywords,title:()=>we(Ne(e.getLocale?.()),wn(o)&&a.webTitleKey||a.titleKey),mount(i){return Re(n(Ku,{ctx:e,page:a}),i),()=>{Re(null,i)}}});return r.length}var Uo=[{id:"lv1"},{id:"lv2"},{id:"lv3"},{id:"lv4"},{id:"new",version:"2.14"}],ae=(e,t)=>({zh:e,en:t}),eo=[{id:"welcome",level:"lv1",icon:"compass",title:ae("\u8BA4\u8BC6 Forsion","Meet Forsion"),tasks:[{id:"guide-open",event:"own:guide.open",goal:1,title:ae("\u6253\u5F00\u4F7F\u7528\u6307\u5357","Open the guide")},{id:"space-switch",event:"space.switch",goal:1,title:ae("\u5728 Ribbon \u4E0A\u6362\u4E00\u4E2A Space","Switch to another Space from the ribbon"),go:{space:"amadeus"},spot:{anchor:"ribbon-spaces",here:!0,title:ae("\u70B9 Ribbon \u4E0A\u4EFB\u610F\u4E00\u4E2A\u56FE\u6807","Click any icon on the ribbon"),body:ae("\u6BCF\u4E2A\u56FE\u6807\u662F\u4E00\u4E2A Space\uFF0C\u70B9\u4E00\u4E0B\u5C31\u5207\u8FC7\u53BB\u3002","Each icon is a Space. One click switches to it.")}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon",label:ae("Ribbon\uFF1A\u6BCF\u4E2A\u56FE\u6807\u662F\u4E00\u4E2A Space","Ribbon: each icon is a Space")},{slot:"main-tabs",label:ae("\u4E3B\u533A\u7684\u6807\u7B7E\u9875","Tabs in the main area"),text:ae("\u6807\u7B7E\u9875","Tab")},{slot:["left-list","right"],label:ae("\u5DE6\u53F3\u4FA7\u680F","Left and right sidebars")}]}},{id:"chat",level:"lv1",icon:"message-circle",title:ae("\u548C Tangu \u8BF4\u7B2C\u4E00\u53E5\u8BDD","Say hello to Tangu"),tasks:[{id:"chat-first",event:"chat.send",goal:1,title:ae("\u53D1\u51FA\u7B2C\u4E00\u6761\u6D88\u606F","Send your first message"),go:{space:"tangu",command:"new-chat"},spot:{anchor:"chat-composer",title:ae("\u5728\u8FD9\u91CC\u6253\u4E2A\u62DB\u547C","Say hello here"),body:ae("\u6253\u5B57\uFF0C\u6309 Enter \u53D1\u9001\uFF1BShift+Enter \u6362\u884C\u3002","Type, then press Enter to send. Shift+Enter starts a new line.")}},{id:"chat-five",event:"chat.send",goal:5,title:ae("\u518D\u804A\u51E0\u53E5\uFF08\u7D2F\u8BA1 5 \u6761\uFF09","Keep talking (5 messages in all)"),go:{space:"tangu"},spot:{anchor:"chat-composer",title:ae("\u63A5\u7740\u804A\u51E0\u53E5","Keep the conversation going"),body:ae("\u7D2F\u8BA1\u53D1\u51FA 5 \u6761\u5C31\u7B97\u5B8C\u6210\u3002","Five messages in all and this one is done.")}}],figure:{layout:"space",main:"chat",marks:[{slot:"left-top",label:ae("\u5DE6\u680F\u9876\u90E8\u300C\u65B0\u4F1A\u8BDD\u300D",'"New chat" at the top of the left sidebar'),text:ae("\u65B0\u4F1A\u8BDD","New chat")},{slot:"main-bottom",label:ae("\u8F93\u5165\u6846","Message box")}]}},{id:"note",level:"lv1",icon:"file-text",title:ae("\u5199\u4E0B\u7B2C\u4E00\u7BC7\u7B14\u8BB0","Write your first note"),tasks:[{id:"note-create",event:"note.create",goal:1,title:ae("\u65B0\u5EFA\u4E00\u7BC7\u7B14\u8BB0","Create a note"),go:{space:"amadeus",command:"amadeus-new-note"},spot:{anchor:"note-new",title:ae("\u70B9\u300C\u65B0\u5EFA\u7B14\u8BB0\u300D",'Click "New note"'),body:ae("\u4E5F\u53EF\u4EE5\u6309 \u2318/Ctrl+N\u3002\u6BCF\u7BC7\u7B14\u8BB0\u90FD\u662F\u667A\u5E93\u91CC\u7684\u4E00\u4E2A .md \u6587\u4EF6\u3002","Or press \u2318/Ctrl+N. Every note is a .md file in your vault.")}},{id:"note-link",event:"note.wikilink",goal:1,title:ae("\u7528 [[ \u94FE\u63A5\u53E6\u4E00\u7BC7\u7B14\u8BB0","Link another note with [["),go:{space:"amadeus"},spot:{anchor:"note-body",title:ae("\u5728\u6B63\u6587\u91CC\u8F93\u5165 [[","Type [[ in the note"),body:ae("\u4ECE\u5F39\u51FA\u7684\u5019\u9009\u91CC\u9009\u4E00\u7BC7\u7B14\u8BB0\uFF0C\u6309 Enter\uFF0C\u4E24\u7BC7\u5C31\u8FDE\u4E0A\u4E86\u3002","Pick a note from the suggestions and press Enter to link the two.")}},{id:"note-canvas",event:"note.canvas",goal:1,title:ae("\u628A\u7B14\u8BB0\u5207\u5230\u753B\u5E03","Switch a note to the canvas"),go:{space:"amadeus",command:"amadeus-toggle-canvas"},spot:{anchor:"note-canvas",title:ae("\u70B9\u300C\u753B\u5E03\u300D",'Click "Canvas"'),body:ae("\u540C\u4E00\u7BC7\u7B14\u8BB0\u644A\u6210\u767D\u677F\uFF0C\u968F\u624B\u6446\uFF1B\u70B9\u300C\u6587\u6863\u300D\u5207\u56DE\u6765\uFF0C\u4E00\u4E2A\u5B57\u90FD\u4E0D\u53D8\u3002",'The same note opens as a whiteboard. Click "Document" to switch back; nothing changes.')}}],figure:{layout:"space",main:"doc",marks:[{slot:"left-top",label:ae("\u5DE6\u680F\u300C\u65B0\u5EFA\u7B14\u8BB0\u300D",'"New note" in the left sidebar'),text:ae("\u65B0\u5EFA\u7B14\u8BB0","New note")},{slot:"main-top",label:ae("\u300C\u6587\u6863 / \u753B\u5E03\u300D\u80F6\u56CA","The Document / Canvas switch")},{slot:"right",label:ae("\u53F3\u680F\u91CC\u7684\u300C\u53CD\u94FE\u300D","Backlinks in the right sidebar"),text:ae("\u53CD\u94FE","Backlinks")}]}},{id:"theme",level:"lv1",icon:"sparkles",title:ae("\u6362\u4E00\u8EAB\u4E3B\u9898","Make it look like yours"),tasks:[{id:"theme-change",event:"theme.change",goal:1,title:ae("\u6362\u4E00\u4E2A\u4E3B\u9898","Pick another theme"),go:{settings:"theme"}}],figure:{layout:"settings",marks:[{slot:"nav",label:ae("\u8BBE\u7F6E\u91CC\u7684\u300C\u5916\u89C2\u300D",'"Appearance" in Settings'),text:ae("\u5916\u89C2","Appearance")},{slot:"section-1",label:ae("\u8BBE\u8BA1\u8BED\u8A00","Design language"),text:ae("\u8BBE\u8BA1\u8BED\u8A00","Design language")},{slot:"section-2",label:ae("\u4E3B\u9898\u8272\u548C\u80CC\u666F\u8272","Theme and background colors"),text:ae("\u914D\u8272","Colors")}]}},{id:"database",level:"lv2",icon:"database",title:ae("\u6570\u636E\u5E93\uFF1A\u628A\u7B14\u8BB0\u53D8\u6210\u8868","Databases: turn notes into a table"),tasks:[{id:"base-create",event:"base.create",goal:1,title:ae("\u65B0\u5EFA\u4E00\u4E2A\u6570\u636E\u5E93","Create a database"),go:{space:"amadeus"}}],figure:{layout:"space",main:"doc",marks:[{slot:"left-list",label:ae("\u7B14\u8BB0\u6811\uFF1A\u53F3\u952E \u2192\u300C\u65B0\u5EFA Base\u300D",'Note tree: right-click \u2192 "New Base"')},{slot:"main-body",label:ae("\u6B63\u6587\u91CC\u8F93\u5165 /\uFF0C\u9009\u300C\u591A\u7EF4\u8868\u300D",'Type / in a note and pick "Database"')}]}},{id:"market",level:"lv2",icon:"store",title:ae("\u4ECE\u5546\u5E97\u88C5\u4E00\u4E2A\u63D2\u4EF6","Install a plugin from the store"),tasks:[{id:"market-install",event:"market.install",goal:1,title:ae("\u88C5\u4E00\u4E2A\u63D2\u4EF6","Install a plugin"),go:{command:"open-market"}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon-bottom",label:ae("Ribbon \u5E95\u90E8\u7684\u300C\u5546\u5E97\u300D",'"Store" at the bottom of the ribbon')}]}},{id:"space",level:"lv2",icon:"layout-grid",title:ae("\u5B58\u4E0B\u81EA\u5DF1\u7684 Space","Save a Space of your own"),tasks:[{id:"space-save",event:"space.save",goal:1,title:ae("\u628A\u5F53\u524D\u5E03\u5C40\u5B58\u6210 Space","Save the current layout as a Space"),go:{command:"save-as-space"}}],figure:{layout:"space",main:"doc",marks:[{slot:"ribbon-plus",label:ae("Space \u533A\u7684 \uFF0B","The + under the Spaces")},{slot:"main-top-right",label:ae("\u53F3\u4E0A\u89D2\u7684\u6D6E\u52A8\u6309\u94AE","Floating buttons at the top right")}]}},{id:"calendar",level:"lv2",icon:"calendar-days",title:ae("\u65E5\u5386\u548C\u5F85\u529E","Calendar and to-dos"),tasks:[{id:"calendar-event",event:"calendar.event",goal:1,title:ae("\u5728\u65E5\u5386\u4E0A\u5EFA\u4E00\u4E2A\u65E5\u7A0B","Add an event to the calendar"),go:{space:"calendar"}},{id:"todo-done",event:"todo.done",goal:1,title:ae("\u52FE\u6389\u4E00\u6761\u5F85\u529E","Tick off a to-do"),go:{space:"calendar"}}],figure:{layout:"space",main:"grid",marks:[{slot:"left-plus",label:ae("\u5DE6\u680F\u300C\u65E5\u5386\u300D\u65C1\u7684 +",'The + next to "Calendars" in the left sidebar')},{slot:"main-body",label:ae("\u65F6\u95F4\u683C\uFF1A\u5355\u51FB\u5EFA\u65E5\u7A0B","Time grid: click to add an event")},{slot:"right",label:ae("\u53F3\u680F\u7684\u5F85\u529E","To-dos in the right sidebar"),text:ae("\u5F85\u529E","To-dos")}]}},{id:"agent",level:"lv3",icon:"bot",title:ae("\u521B\u5EFA\u4F60\u7684 Agent","Create your own agent"),tasks:[{id:"agent-create",event:"agent.create",goal:1,title:ae("\u65B0\u5EFA\u4E00\u4E2A Agent","Create an agent"),go:{space:"agents"},spot:{anchor:"agent-new",title:ae("\u70B9\u300C\u521B\u5EFA Agent\u300D",'Click "Create agent"'),body:ae("\u8D77\u4E2A\u540D\u5B57\uFF0C\u5199\u51E0\u53E5\u5B83\u8BE5\u600E\u4E48\u505A\u4E8B\u3002","Give it a name and a few lines on how it should work.")}}]},{id:"muse",level:"lv3",icon:"sparkles",title:ae("Muse\uFF1A\u8BA9\u7075\u611F\u81EA\u5DF1\u957F","Muse: ideas that grow on their own"),tasks:[{id:"muse-open",event:"muse.open",goal:1,title:ae("\u53BB Muse \u770B\u4E00\u773C","Take a look at Muse"),go:{space:"muse"}}]},{id:"automation",level:"lv3",icon:"zap",title:ae("\u81EA\u52A8\u5316\uFF1A\u5230\u70B9\u5C31\u505A","Automations: done on schedule"),tasks:[{id:"automation-create",event:"automation.create",goal:1,title:ae("\u5EFA\u4E00\u6761\u81EA\u52A8\u5316","Create an automation"),go:{space:"automation"}}]},{id:"computer",level:"lv4",icon:"terminal",title:ae("\u8BA9 Tangu \u64CD\u4F5C\u7535\u8111","Let Tangu use your computer"),tasks:[{id:"cu-use",event:"computer.use",goal:1,title:ae("\u8BA9 Tangu \u7528\u4E00\u6B21\u7535\u8111","Have Tangu use your computer once"),go:{settings:"computer-use"},desktopOnly:!0}]},{id:"plugin",level:"lv4",icon:"code",title:ae("\u5199\u4E00\u4E2A\u81EA\u5DF1\u7684\u63D2\u4EF6","Write a plugin of your own"),tasks:[{id:"plugin-dev",event:"plugin.local",goal:1,title:ae("\u4ECE\u672C\u673A\u6587\u4EF6\u5939\u8F7D\u5165\u4E00\u4E2A\u63D2\u4EF6","Load a plugin from a local folder"),go:{settings:"amadeus-plugins"},desktopOnly:!0}]},{id:"mini-capsules",level:"new",icon:"layout-grid",title:ae("Mini \u9876\u680F\u4E24\u9897\u80F6\u56CA","Two capsules on the Mini bar"),tasks:[{id:"mini-open",event:"mini.open",goal:1,title:ae("\u6253\u5F00\u4E00\u6B21 Mini \u7A97\u53E3","Open the Mini window"),go:{command:"open-mini"},desktopOnly:!0}]},{id:"todo-standalone",level:"new",icon:"list-tree",title:ae("\u5F85\u529E\u89C6\u56FE\u5355\u72EC\u6253\u5F00","Open the to-do view on its own"),tasks:[{id:"todo-open",event:"todo.open",goal:1,title:ae("\u5355\u72EC\u6253\u5F00\u4E00\u6B21\u5F85\u529E\u89C6\u56FE","Open the to-do view by itself"),go:{space:"calendar"}}]}],zn=e=>eo.filter(t=>t.level===e),to=e=>eo.find(t=>t.id===e);var dn=Uo.filter(e=>!e.version);function In(e,t){let o=e.event.startsWith("own:");return t.count(o?e.event.slice(4):e.event,o)>=e.goal}var wr=(e,t)=>e.filter(o=>t.desktop||!o.desktopOnly);function Qu(e,t){return zn(e).every(o=>wr(o.tasks,t).every(r=>In(r,t)))}function Ma(e,t){let o=dn.findIndex(r=>r.id===e);return o<=0||t.unlockAll?!0:dn.slice(0,o).every(r=>Qu(r.id,t))}function Ho(e,t){return Ma(e.level,t)?wr(e.tasks,t).every(o=>In(o,t))?"done":"active":"locked"}function As(e){return dn.find(t=>!Qu(t.id,e))?.id??null}function ep(e){let t={...e,unlockAll:!1},o=dn[0].id;for(let r of dn)Ma(r.id,t)&&(o=r.id);return o}function Hv(e,t){let o=e.split(/[.+-]/).map(a=>Number.parseInt(a,10)||0),r=t.split(/[.+-]/).map(a=>Number.parseInt(a,10)||0);for(let a=0;a<Math.max(o.length,r.length);a++){let i=(o[a]??0)-(r[a]??0);if(i)return i<0?-1:1}return 0}function Ts(e){let t=Uo.find(o=>o.version);return t?.version&&e.appVersion&&Hv(e.appVersion,t.version)>=0?t.version:null}var tp=e=>eo.filter(t=>t.level!=="new"||!!Ts(e));function np(e,t){let o=wr(zn(e).flatMap(r=>r.tasks),t);return{done:o.filter(r=>In(r,t)).length,total:o.length}}var Es={zh:{agent:`\u9664\u4E86\u9ED8\u8BA4\u7684 Tangu\uFF0C\u4F60\u53EF\u4EE5\u6309\u7528\u9014\u5EFA\u81EA\u5DF1\u7684 Agent\uFF1A\u7ED9\u5B83\u540D\u5B57\u3001\u5DE5\u4F5C\u6307\u4EE4\u548C\u81EA\u5DF1\u7684\u8BB0\u5FC6\uFF0C\u8BA9\u5B83\u4E13\u95E8\u505A\u4E00\u7C7B\u4E8B\u3002
729
866
 
730
867
  ## \u521B\u5EFA
731
868
 
@@ -1135,12 +1272,12 @@ In the Calendar's right panel or the Mini window, the filters and the list choic
1135
1272
  - Things you have already done count right away, and progress is kept on this device. Been around a while? Unlock everything from the \xB7\xB7\xB7 menu at the top right.
1136
1273
 
1137
1274
  > [!tip]
1138
- > Can't find something? Press \`\u2318/Ctrl+K\` to open the command palette and search for it by name.`}};var Tu="forsion-guide",mn={reader:"guide",side:"guide-side",companion:"guide-companion"},cs="guide-chapters",Au=e=>`forsion-extend.guide.${e}`;function gt(e,t){try{let n=localStorage.getItem(Au(e));return n===null?t:JSON.parse(n)}catch{return t}}function St(e,t){try{localStorage.setItem(Au(e),JSON.stringify(t))}catch{}}function Eu(e,t){let n=new Set,o=gt("unlockAll",!1),a=null,i=gt("chapter","welcome"),s=gt("companion","welcome"),l=null,c=null,d=!1,m,u=[],p=()=>De(e.getLocale?.()),g=(b,_)=>xe(p(),b,_),f=(b,_)=>e.achievements?.count?.(b,_?{own:!0}:void 0)??0,h=()=>({count:f,unlockAll:o,desktop:t.desktop,appVersion:a}),k=b=>b.title[p()]||b.title.zh,x=b=>b==="new"?g("guide.whatsNew",{version:Dr.find(_=>_.version)?.version??""}):g(`guide.level.${b}`),S=()=>{for(let b of[...n])try{b()}catch(_){console.error("[guide] listener failed",_)}},w=()=>{let b=h(),_=new Set(Xn.flatMap(Q=>Q.tasks.filter($=>Sn($,b)).map($=>$.id)));if(l)for(let Q of Xn)for(let $ of Q.tasks)_.has($.id)&&!l.has($.id)&&e.app?.notify?.(g("guide.toast.taskDone",{task:k($)}));l=_,B(b);let I=Su(b),H=gt("reached",null);H===null?St("reached",I):Gt.findIndex(Q=>Q.id===I)>Gt.findIndex(Q=>Q.id===H)&&(St("reached",I),St("justUnlocked",I),N({kind:"level",level:I})),gt("pendingLetter",null)&&G()},T=b=>!!b.spot&&!!e.app?.spotlight&&gt("spotlight",!0)&&(t.desktop||!b.desktopOnly),R=(b,_,I)=>{let H=b.spot;c={chapter:_.id,task:b.id},S();let Q=_.tasks.length>1?g("guide.spotStep",{n:_.tasks.indexOf(b)+1,total:_.tasks.length}):void 0;e.app.spotlight({anchor:H.anchor,title:k(H),body:H.body[p()]||H.body.zh,step:Q}).then(async $=>{d||(c?.task===b.id&&$!=="replaced"&&(c=null,S()),$==="mute"&&F.setSpotlight(!1),$==="missing"&&I&&(H.here&&b.go?.space&&await e.app?.openSpace?.(b.go.space),b.go?.command&&e.app?.runCommand?.(b.go.command)))})},B=b=>{let _=c&&Yn(c.chapter),I=_&&_.tasks.find(Q=>Q.id===c.task);if(!_||!I||!Sn(I,b))return;let H=_.tasks.find(Q=>!Sn(Q,b)&&T(Q)&&!Q.spot.here&&(Q.go?.space??"")===(I.go?.space??""));H?R(H,_,!1):(c=null,e.app?.spotlight?.(null))},U=Promise.resolve(),N=b=>{!e.inbox||!gt("reminders",!0)||(St("pendingLetter",b),G())},G=()=>{U=U.then(z,z)},z=async()=>{let b=gt("pendingLetter",null);if(d||!b||!e.inbox)return;let _=b.kind==="level"?fn(b.level):fn("new"),I=_.map(te=>`- ${k(te)}`).join(`
1139
- `),H=b.kind==="level"?{title:g("guide.letter.levelTitle",{level:x(b.level)}),body:`${g("guide.letter.levelBody")}
1275
+ > Can't find something? Press \`\u2318/Ctrl+K\` to open the command palette and search for it by name.`}};var op="forsion-guide",Sn={reader:"guide",side:"guide-side",companion:"guide-companion"},Ps="guide-chapters",rp=e=>`forsion-extend.guide.${e}`;function Mt(e,t){try{let o=localStorage.getItem(rp(e));return o===null?t:JSON.parse(o)}catch{return t}}function Bt(e,t){try{localStorage.setItem(rp(e),JSON.stringify(t))}catch{}}function ap(e,t){let o=new Set,r=Mt("unlockAll",!1),a=null,i=Mt("chapter","welcome"),s=Mt("companion","welcome"),l=null,c=null,d=!1,f,u=[],p=()=>Ne(e.getLocale?.()),m=(v,A)=>we(p(),v,A),g=(v,A)=>e.achievements?.count?.(v,A?{own:!0}:void 0)??0,h=()=>({count:g,unlockAll:r,desktop:t.desktop,appVersion:a}),k=v=>v.title[p()]||v.title.zh,y=v=>v==="new"?m("guide.whatsNew",{version:Uo.find(A=>A.version)?.version??""}):m(`guide.level.${v}`),x=()=>{for(let v of[...o])try{v()}catch(A){console.error("[guide] listener failed",A)}},w=()=>{let v=h(),A=new Set(eo.flatMap(Q=>Q.tasks.filter(H=>In(H,v)).map(H=>H.id)));if(l)for(let Q of eo)for(let H of Q.tasks)A.has(H.id)&&!l.has(H.id)&&e.app?.notify?.(m("guide.toast.taskDone",{task:k(H)}));l=A,$(v);let N=ep(v),X=Mt("reached",null);X===null?Bt("reached",N):dn.findIndex(Q=>Q.id===N)>dn.findIndex(Q=>Q.id===X)&&(Bt("reached",N),Bt("justUnlocked",N),O({kind:"level",level:N})),Mt("pendingLetter",null)&&j()},C=v=>!!v.spot&&!!e.app?.spotlight&&Mt("spotlight",!0)&&(t.desktop||!v.desktopOnly),M=(v,A,N)=>{let X=v.spot;c={chapter:A.id,task:v.id},x();let Q=A.tasks.length>1?m("guide.spotStep",{n:A.tasks.indexOf(v)+1,total:A.tasks.length}):void 0;e.app.spotlight({anchor:X.anchor,title:k(X),body:X.body[p()]||X.body.zh,step:Q}).then(async H=>{d||(c?.task===v.id&&H!=="replaced"&&(c=null,x()),H==="mute"&&B.setSpotlight(!1),H==="missing"&&N&&(X.here&&v.go?.space&&await e.app?.openSpace?.(v.go.space),v.go?.command&&e.app?.runCommand?.(v.go.command)))})},$=v=>{let A=c&&to(c.chapter),N=A&&A.tasks.find(Q=>Q.id===c.task);if(!A||!N||!In(N,v))return;let X=A.tasks.find(Q=>!In(Q,v)&&C(Q)&&!Q.spot.here&&(Q.go?.space??"")===(N.go?.space??""));X?M(X,A,!1):(c=null,e.app?.spotlight?.(null))},U=Promise.resolve(),O=v=>{!e.inbox||!Mt("reminders",!0)||(Bt("pendingLetter",v),j())},j=()=>{U=U.then(_,_)},_=async()=>{let v=Mt("pendingLetter",null);if(d||!v||!e.inbox)return;let A=v.kind==="level"?zn(v.level):zn("new"),N=A.map(oe=>`- ${k(oe)}`).join(`
1276
+ `),X=v.kind==="level"?{title:m("guide.letter.levelTitle",{level:y(v.level)}),body:`${m("guide.letter.levelBody")}
1140
1277
 
1141
- ${I}`}:{title:g("guide.letter.versionTitle",{version:b.version,n:_.length}),body:`${g("guide.letter.versionBody")}
1278
+ ${N}`}:{title:m("guide.letter.versionTitle",{version:v.version,n:A.length}),body:`${m("guide.letter.versionBody")}
1142
1279
 
1143
- ${I}`},Q=await e.inbox.post(H);if(!Q||d)return;let $=gt("lastLetter",null);St("lastLetter",Q),St("letters",{...gt("letters",{}),[Q]:b}),JSON.stringify(gt("pendingLetter",null))===JSON.stringify(b)&&St("pendingLetter",null),$&&$!==Q&&await e.inbox.archive($)},P=()=>{let b=ss(h());if(!b||gt("seenVersion",null)===b)return;if(!(gt("seenVersion",null)!==null||f("chat.send",!1)+f("note.create",!1)>0)){St("seenVersion",b);return}let I=Date.now(),H=()=>{if(!d){if(document.querySelector(".ob-rail")&&Date.now()-I<6e5){m=window.setTimeout(H,3e3);return}St("seenVersion",b),N({kind:"version",version:b})}};m=window.setTimeout(H,3e3)},F={ctx:e,locale:p,t:g,env:h,title:k,levelName:x,subscribe(b){return n.add(b),()=>{n.delete(b)}},selected:()=>Yn(i)??Xn[0],select(b){!Yn(b)||b===i||(i=b,St("chapter",b),Yn(b).level===gt("justUnlocked",null)&&St("justUnlocked",null),S())},companionChapter:()=>Yn(s)??F.selected(),async go(b,_){let I=b.go;if(!I||b.desktopOnly&&!t.desktop)return;s=_.id,St("companion",_.id);let H=T(b);c&&(c=null,H||e.app?.spotlight?.(null)),I.space&&!(H&&b.spot.here)&&await e.app?.openSpace?.(I.space)&&I.space!==Tu&&e.openView?.(mn.companion,{location:"right"}),H?R(b,_,!0):I.command&&e.app?.runCommand?.(I.command),I.settings&&e.app?.openSettings?.(I.settings),S()},markdown(b){let _=ls[p()]?.[b.id]||ls.zh[b.id]||"",I=_.search(/\n\s*\n/);return I<0?{intro:_.trim(),body:""}:{intro:_.slice(0,I).trim(),body:_.slice(I).trim()}},justUnlocked:()=>gt("justUnlocked",null),setUnlockAll(b){o=b,St("unlockAll",b),S()},reminders:()=>gt("reminders",!0),setReminders(b){St("reminders",b),S()},spotlightOn:()=>!!e.app?.spotlight&&gt("spotlight",!0),setSpotlight(b){St("spotlight",b),!b&&c&&(c=null,e.app?.spotlight?.(null)),S()},spotTask:()=>c?.task??null,letter:b=>gt("letters",{})[b]??null,async openGuide(b){b&&F.select(b),St("justUnlocked",null),await e.app?.openSpace?.(Tu),S()},dispose(){c&&e.app?.spotlight?.(null),d=!0,window.clearTimeout(m);for(let b of u.splice(0))b();n.clear()}},L=e.achievements?.subscribe?.(()=>{w(),S()});L&&u.push(L);let ae=e.subscribeLocale?.(()=>S());return typeof ae=="function"&&u.push(ae),w(),t.appVersion.then(b=>{d||(a=b,P(),S())}),F}function va(e){let t=_u(e.env());return Dr.map(n=>({level:n.id,chapters:t.filter(o=>o.level===n.id)})).filter(n=>n.chapters.length)}function Pu(e,t){switch(e){case"ribbon":return{x:5,y:10,w:28,h:168};case"ribbon-plus":return{x:5,y:180,w:28,h:26};case"ribbon-bottom":return{x:5,y:208,w:28,h:26};case"left-top":return{x:48,y:14,w:128,h:28};case"left-plus":return{x:180,y:16,w:22,h:24};case"left-list":return{x:48,y:54,w:154,h:122};case"main-tabs":return{x:224,y:14,w:96,h:22};case"main-top":return{x:226,y:44,w:104,h:24};case"main-top-right":return{x:498,y:44,w:60,h:24};case"main-body":return t.main==="grid"?{x:232,y:78,w:328,h:170}:{x:244,y:80,w:304,h:112};case"main-bottom":return{x:236,y:208,w:312,h:42};case"right":return{x:588,y:16,w:116,h:76};case"nav":return{x:14,y:92,w:172,h:28};case"section-1":return{x:224,y:60,w:476,h:86};case"section-2":return{x:224,y:160,w:476,h:90}}}var qe=e=>({style:e}),ct=(e,t,n,o=7)=>r("rect",{x:e,y:t,width:n,height:o,rx:o/2,...qe("fill:var(--overlay-medium)")}),Or=(e,t,n=12,o=!1)=>r("rect",{x:e,y:t,width:n,height:n,rx:3,...qe(o?"fill:var(--text-muted)":"fill:var(--overlay-strong)")}),Fr=(e,t,n,o="")=>r("text",{x:e,y:t,...qe(`fill:var(--text);font:500 12px var(--font-ui);${o}`),children:n});function Mu({g:e,figure:t}){let n=e.locale(),o=new Map;for(let u of t.marks)if(u.text)for(let p of[].concat(u.slot))o.set(p,u.text[n]||u.text.zh);let a=new Set(t.marks.flatMap(u=>[].concat(u.slot))),i=t.marks.flatMap(u=>[].concat(u.slot).map(p=>Pu(p,t))),s=t.marks.map((u,p)=>{let g=Pu([].concat(u.slot)[0],t);return{n:p+1,x:Math.min(g.x+g.w+4,712),y:Math.max(g.y-4,12)}}),l=t.marks.map(u=>u.label[n]||u.label.zh),c=()=>r(O,{children:[[16,44,72,100,128,156].map((u,p)=>r("g",{children:Or(11,u,16,p===2)},u)),r("path",{d:"M19 186v14M12 193h14",...qe("stroke:var(--text-faint);stroke-width:2;stroke-linecap:round")}),Or(11,213,16,a.has("ribbon-bottom")),Or(11,240,16),r("rect",{x:38,y:1,width:1,height:266,...qe("fill:var(--border)")}),Or(56,22,12,a.has("left-top")),o.has("left-top")?Fr(76,32,o.get("left-top")):ct(76,25,70),a.has("left-plus")&&r("path",{d:"M191 21v14M184 28h14",...qe("stroke:var(--text-muted);stroke-width:2;stroke-linecap:round")}),[62,86,110,134,158].map((u,p)=>r("g",{children:[Or(58,u,10),ct(76,u+1.5,[74,56,88,48,66][p])]},u)),o.has("right")?Fr(598,38,o.get("right")):ct(598,30,52),ct(598,52,84),ct(598,68,62),ct(598,116,92),ct(598,132,70)]}),d=()=>r(O,{children:[r("rect",{x:228,y:16,width:88,height:18,rx:6,...qe("fill:var(--bg-card)")}),o.has("main-tabs")?Fr(240,29,o.get("main-tabs"),"font-size:11px"):ct(238,22,52,6),r("rect",{x:230,y:47,width:48,height:18,rx:9,...qe("fill:var(--bg-card)")}),ct(242,53,24,6),ct(290,53,26,6),[506,524,542].map(u=>r("rect",{x:u,y:50,width:12,height:12,rx:3,...qe("fill:var(--overlay-strong)")},u)),t.main==="grid"?r(O,{children:[[0,1,2,3,4,5,6].map(u=>r("g",{children:ct(244+u*46,86,22,6)},u)),[104,140,176,212].map(u=>r("rect",{x:238,y:u,width:316,height:1,...qe("fill:var(--border)")},u)),[1,2,3,4,5,6].map(u=>r("rect",{x:238+u*45,y:98,width:1,height:146,...qe("fill:var(--border)")},u)),r("rect",{x:286,y:146,width:40,height:24,rx:4,...qe("fill:var(--overlay-medium)")}),r("rect",{x:376,y:182,width:40,height:18,rx:4,...qe("fill:var(--overlay-medium)")})]}):t.main==="chat"?r(O,{children:[r("rect",{x:412,y:84,width:132,height:26,rx:10,...qe("fill:var(--overlay-light)")}),ct(252,128,260),ct(252,144,230),ct(252,160,150),r("rect",{x:240,y:212,width:304,height:34,rx:10,...qe("fill:var(--bg-card);stroke:var(--border)")}),ct(254,226,120),r("circle",{cx:528,cy:229,r:8,...qe("fill:var(--overlay-strong)")})]}):r(O,{children:[r("rect",{x:252,y:86,width:120,height:12,rx:4,...qe("fill:var(--overlay-strong)")}),[110,126,142,166,182,206,222].map((u,p)=>r("g",{children:ct(252,u,[292,270,200,286,240,280,150][p])},u))]})]}),m=()=>r(O,{children:[[36,64,92,120,148,176].map((u,p)=>r("g",{children:[Or(24,u+8,12,p===2&&a.has("nav")),p===2&&o.has("nav")?Fr(44,u+18,o.get("nav")):ct(44,u+11,[64,52,58,70,46,60][p])]},u)),r("rect",{x:232,y:28,width:110,height:12,rx:4,...qe("fill:var(--overlay-strong)")}),o.has("section-1")?Fr(234,82,o.get("section-1")):ct(234,74,70),[0,1,2].map(u=>r("rect",{x:234+u*150,y:94,width:136,height:42,rx:8,...qe(u===0?"fill:var(--bg-card);stroke:var(--accent)":"fill:var(--bg-card);stroke:var(--border)")},u)),o.has("section-2")?Fr(234,182,o.get("section-2")):ct(234,174,70),[0,1,2,3,4,5,6].map(u=>r("circle",{cx:246+u*30,cy:210,r:10,...qe(u===0?"fill:var(--accent)":"fill:var(--overlay-strong)")},u)),[0,1,2,3,4,5,6].map(u=>r("circle",{cx:246+u*30,cy:236,r:8,...qe("fill:var(--overlay-medium)")},`b${u}`))]});return r("figure",{class:"fxg-figure",children:[r("svg",{class:"fxg-figure-svg",viewBox:"0 0 724 268",role:"img","aria-label":`${e.t("guide.figure")}: ${l.map((u,p)=>`${p+1} ${u}`).join("; ")}`,children:[r("rect",{x:.5,y:.5,width:723,height:267,rx:10,...qe("fill:var(--sidebar-bg, var(--bg));stroke:var(--border)")}),t.layout==="settings"?r("rect",{x:200,y:1,width:523,height:266,...qe("fill:var(--bg)")}):r("rect",{x:216,y:8,width:352,height:252,rx:8,...qe("fill:var(--bg)")}),i.map((u,p)=>r("rect",{x:u.x-4,y:u.y-4,width:u.w+8,height:u.h+8,rx:7,...qe("fill:var(--accent-wash);stroke:var(--accent);stroke-width:2")},`r${p}`)),t.layout==="settings"?m():r(O,{children:[c(),d()]}),s.map(u=>r("g",{children:[r("circle",{cx:u.x,cy:u.y,r:10,...qe("fill:var(--accent)")}),r("text",{x:u.x,y:u.y+4,"text-anchor":"middle",...qe("fill:var(--on-accent);font:600 12px var(--font-ui)"),children:u.n})]},u.n))]}),r("figcaption",{class:"fxg-figure-cap",children:l.map((u,p)=>r("span",{children:[r("b",{children:p+1}),u]},p))})]})}var Ru=`
1280
+ ${N}`},Q=await e.inbox.post(X);if(!Q||d)return;let H=Mt("lastLetter",null);Bt("lastLetter",Q),Bt("letters",{...Mt("letters",{}),[Q]:v}),JSON.stringify(Mt("pendingLetter",null))===JSON.stringify(v)&&Bt("pendingLetter",null),H&&H!==Q&&await e.inbox.archive(H)},L=()=>{let v=Ts(h());if(!v||Mt("seenVersion",null)===v)return;if(!(Mt("seenVersion",null)!==null||g("chat.send",!1)+g("note.create",!1)>0)){Bt("seenVersion",v);return}let N=Date.now(),X=()=>{if(!d){if(document.querySelector(".ob-rail")&&Date.now()-N<6e5){f=window.setTimeout(X,3e3);return}Bt("seenVersion",v),O({kind:"version",version:v})}};f=window.setTimeout(X,3e3)},B={ctx:e,locale:p,t:m,env:h,title:k,levelName:y,subscribe(v){return o.add(v),()=>{o.delete(v)}},selected:()=>to(i)??eo[0],select(v){!to(v)||v===i||(i=v,Bt("chapter",v),to(v).level===Mt("justUnlocked",null)&&Bt("justUnlocked",null),x())},companionChapter:()=>to(s)??B.selected(),async go(v,A){let N=v.go;if(!N||v.desktopOnly&&!t.desktop)return;s=A.id,Bt("companion",A.id);let X=C(v);c&&(c=null,X||e.app?.spotlight?.(null)),N.space&&!(X&&v.spot.here)&&await e.app?.openSpace?.(N.space)&&N.space!==op&&e.openView?.(Sn.companion,{location:"right"}),X?M(v,A,!0):N.command&&e.app?.runCommand?.(N.command),N.settings&&e.app?.openSettings?.(N.settings),x()},markdown(v){let A=Es[p()]?.[v.id]||Es.zh[v.id]||"",N=A.search(/\n\s*\n/);return N<0?{intro:A.trim(),body:""}:{intro:A.slice(0,N).trim(),body:A.slice(N).trim()}},justUnlocked:()=>Mt("justUnlocked",null),setUnlockAll(v){r=v,Bt("unlockAll",v),x()},reminders:()=>Mt("reminders",!0),setReminders(v){Bt("reminders",v),x()},spotlightOn:()=>!!e.app?.spotlight&&Mt("spotlight",!0),setSpotlight(v){Bt("spotlight",v),!v&&c&&(c=null,e.app?.spotlight?.(null)),x()},spotTask:()=>c?.task??null,letter:v=>Mt("letters",{})[v]??null,async openGuide(v){v&&B.select(v),Bt("justUnlocked",null),await e.app?.openSpace?.(op),x()},dispose(){c&&e.app?.spotlight?.(null),d=!0,window.clearTimeout(f);for(let v of u.splice(0))v();o.clear()}},P=e.achievements?.subscribe?.(()=>{w(),x()});P&&u.push(P);let J=e.subscribeLocale?.(()=>x());return typeof J=="function"&&u.push(J),w(),t.appVersion.then(v=>{d||(a=v,L(),x())}),B}function Ia(e){let t=tp(e.env());return Uo.map(o=>({level:o.id,chapters:t.filter(r=>r.level===o.id)})).filter(o=>o.chapters.length)}function ip(e,t){switch(e){case"ribbon":return{x:5,y:10,w:28,h:168};case"ribbon-plus":return{x:5,y:180,w:28,h:26};case"ribbon-bottom":return{x:5,y:208,w:28,h:26};case"left-top":return{x:48,y:14,w:128,h:28};case"left-plus":return{x:180,y:16,w:22,h:24};case"left-list":return{x:48,y:54,w:154,h:122};case"main-tabs":return{x:224,y:14,w:96,h:22};case"main-top":return{x:226,y:44,w:104,h:24};case"main-top-right":return{x:498,y:44,w:60,h:24};case"main-body":return t.main==="grid"?{x:232,y:78,w:328,h:170}:{x:244,y:80,w:304,h:112};case"main-bottom":return{x:236,y:208,w:312,h:42};case"right":return{x:588,y:16,w:116,h:76};case"nav":return{x:14,y:92,w:172,h:28};case"section-1":return{x:224,y:60,w:476,h:86};case"section-2":return{x:224,y:160,w:476,h:90}}}var Xe=e=>({style:e}),Ct=(e,t,o,r=7)=>n("rect",{x:e,y:t,width:o,height:r,rx:r/2,...Xe("fill:var(--overlay-medium)")}),qo=(e,t,o=12,r=!1)=>n("rect",{x:e,y:t,width:o,height:o,rx:3,...Xe(r?"fill:var(--text-muted)":"fill:var(--overlay-strong)")}),Vo=(e,t,o,r="")=>n("text",{x:e,y:t,...Xe(`fill:var(--text);font:500 12px var(--font-ui);${r}`),children:o});function sp({g:e,figure:t}){let o=e.locale(),r=new Map;for(let u of t.marks)if(u.text)for(let p of[].concat(u.slot))r.set(p,u.text[o]||u.text.zh);let a=new Set(t.marks.flatMap(u=>[].concat(u.slot))),i=t.marks.flatMap(u=>[].concat(u.slot).map(p=>ip(p,t))),s=t.marks.map((u,p)=>{let m=ip([].concat(u.slot)[0],t);return{n:p+1,x:Math.min(m.x+m.w+4,712),y:Math.max(m.y-4,12)}}),l=t.marks.map(u=>u.label[o]||u.label.zh),c=()=>n(R,{children:[[16,44,72,100,128,156].map((u,p)=>n("g",{children:qo(11,u,16,p===2)},u)),n("path",{d:"M19 186v14M12 193h14",...Xe("stroke:var(--text-faint);stroke-width:2;stroke-linecap:round")}),qo(11,213,16,a.has("ribbon-bottom")),qo(11,240,16),n("rect",{x:38,y:1,width:1,height:266,...Xe("fill:var(--border)")}),qo(56,22,12,a.has("left-top")),r.has("left-top")?Vo(76,32,r.get("left-top")):Ct(76,25,70),a.has("left-plus")&&n("path",{d:"M191 21v14M184 28h14",...Xe("stroke:var(--text-muted);stroke-width:2;stroke-linecap:round")}),[62,86,110,134,158].map((u,p)=>n("g",{children:[qo(58,u,10),Ct(76,u+1.5,[74,56,88,48,66][p])]},u)),r.has("right")?Vo(598,38,r.get("right")):Ct(598,30,52),Ct(598,52,84),Ct(598,68,62),Ct(598,116,92),Ct(598,132,70)]}),d=()=>n(R,{children:[n("rect",{x:228,y:16,width:88,height:18,rx:6,...Xe("fill:var(--bg-card)")}),r.has("main-tabs")?Vo(240,29,r.get("main-tabs"),"font-size:11px"):Ct(238,22,52,6),n("rect",{x:230,y:47,width:48,height:18,rx:9,...Xe("fill:var(--bg-card)")}),Ct(242,53,24,6),Ct(290,53,26,6),[506,524,542].map(u=>n("rect",{x:u,y:50,width:12,height:12,rx:3,...Xe("fill:var(--overlay-strong)")},u)),t.main==="grid"?n(R,{children:[[0,1,2,3,4,5,6].map(u=>n("g",{children:Ct(244+u*46,86,22,6)},u)),[104,140,176,212].map(u=>n("rect",{x:238,y:u,width:316,height:1,...Xe("fill:var(--border)")},u)),[1,2,3,4,5,6].map(u=>n("rect",{x:238+u*45,y:98,width:1,height:146,...Xe("fill:var(--border)")},u)),n("rect",{x:286,y:146,width:40,height:24,rx:4,...Xe("fill:var(--overlay-medium)")}),n("rect",{x:376,y:182,width:40,height:18,rx:4,...Xe("fill:var(--overlay-medium)")})]}):t.main==="chat"?n(R,{children:[n("rect",{x:412,y:84,width:132,height:26,rx:10,...Xe("fill:var(--overlay-light)")}),Ct(252,128,260),Ct(252,144,230),Ct(252,160,150),n("rect",{x:240,y:212,width:304,height:34,rx:10,...Xe("fill:var(--bg-card);stroke:var(--border)")}),Ct(254,226,120),n("circle",{cx:528,cy:229,r:8,...Xe("fill:var(--overlay-strong)")})]}):n(R,{children:[n("rect",{x:252,y:86,width:120,height:12,rx:4,...Xe("fill:var(--overlay-strong)")}),[110,126,142,166,182,206,222].map((u,p)=>n("g",{children:Ct(252,u,[292,270,200,286,240,280,150][p])},u))]})]}),f=()=>n(R,{children:[[36,64,92,120,148,176].map((u,p)=>n("g",{children:[qo(24,u+8,12,p===2&&a.has("nav")),p===2&&r.has("nav")?Vo(44,u+18,r.get("nav")):Ct(44,u+11,[64,52,58,70,46,60][p])]},u)),n("rect",{x:232,y:28,width:110,height:12,rx:4,...Xe("fill:var(--overlay-strong)")}),r.has("section-1")?Vo(234,82,r.get("section-1")):Ct(234,74,70),[0,1,2].map(u=>n("rect",{x:234+u*150,y:94,width:136,height:42,rx:8,...Xe(u===0?"fill:var(--bg-card);stroke:var(--accent)":"fill:var(--bg-card);stroke:var(--border)")},u)),r.has("section-2")?Vo(234,182,r.get("section-2")):Ct(234,174,70),[0,1,2,3,4,5,6].map(u=>n("circle",{cx:246+u*30,cy:210,r:10,...Xe(u===0?"fill:var(--accent)":"fill:var(--overlay-strong)")},u)),[0,1,2,3,4,5,6].map(u=>n("circle",{cx:246+u*30,cy:236,r:8,...Xe("fill:var(--overlay-medium)")},`b${u}`))]});return n("figure",{class:"fxg-figure",children:[n("svg",{class:"fxg-figure-svg",viewBox:"0 0 724 268",role:"img","aria-label":`${e.t("guide.figure")}: ${l.map((u,p)=>`${p+1} ${u}`).join("; ")}`,children:[n("rect",{x:.5,y:.5,width:723,height:267,rx:10,...Xe("fill:var(--sidebar-bg, var(--bg));stroke:var(--border)")}),t.layout==="settings"?n("rect",{x:200,y:1,width:523,height:266,...Xe("fill:var(--bg)")}):n("rect",{x:216,y:8,width:352,height:252,rx:8,...Xe("fill:var(--bg)")}),i.map((u,p)=>n("rect",{x:u.x-4,y:u.y-4,width:u.w+8,height:u.h+8,rx:7,...Xe("fill:var(--accent-wash);stroke:var(--accent);stroke-width:2")},`r${p}`)),t.layout==="settings"?f():n(R,{children:[c(),d()]}),s.map(u=>n("g",{children:[n("circle",{cx:u.x,cy:u.y,r:10,...Xe("fill:var(--accent)")}),n("text",{x:u.x,y:u.y+4,"text-anchor":"middle",...Xe("fill:var(--on-accent);font:600 12px var(--font-ui)"),children:u.n})]},u.n))]}),n("figcaption",{class:"fxg-figure-cap",children:l.map((u,p)=>n("span",{children:[n("b",{children:p+1}),u]},p))})]})}var lp=`
1144
1281
  .fxg { color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); height: 100%; min-height: 0; display: flex; flex-direction: column; }
1145
1282
  .fxg button { font: inherit; }
1146
1283
  .fxg .fx-link { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: transparent; color: var(--accent-ink); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
@@ -1207,16 +1344,16 @@ ${I}`},Q=await e.inbox.post(H);if(!Q||d)return;let $=gt("lastLetter",null);St("l
1207
1344
  .fxg-letter .fxg-letter-chapter { display: grid; gap: 4px; }
1208
1345
  .fxg-letter .fxg-letter-title { padding: 0; border: 0; background: transparent; color: var(--text); font-weight: 600; text-align: left; cursor: pointer; }
1209
1346
  .fxg-letter > .btn { align-self: flex-start; }
1210
- `;function ba(e){let[,t]=C(0);X(()=>{let n=e.subscribe(()=>t(o=>o+1));return t(o=>o+1),n},[e])}function ya(e){return r("div",{class:`fxg fxg-${e.kind}`,lang:e.g.locale()==="zh"?"zh-CN":"en",children:[r("style",{children:Ru}),e.children]})}var xa=({on:e})=>r("span",{class:`fxg-check${e?" is-on":""}`,"aria-hidden":"true",children:e&&r("svg",{viewBox:"0 0 16 16",width:"10",height:"10",children:r("path",{d:"M3.5 8.5l3 3 6-7",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})})});function Du({g:e,task:t,chapter:n}){let o=e.env(),a=Sn(t,o),i=!!t.desktopOnly&&!o.desktop;return r("li",{class:`fxg-task${a?" is-done":""}${!a&&e.spotTask()===t.id?" is-current":""}`,"data-task":t.id,children:[r(xa,{on:a}),r("span",{class:"fxg-task-title",children:e.title(t)}),a?r("span",{class:"fxg-task-state",children:e.t("guide.taskDone")}):i?r("span",{class:"fxg-task-state",children:e.t("guide.desktopOnly")}):t.go?r("button",{type:"button",class:"btn ghost sm fxg-go",onClick:()=>void e.go(t,n),children:e.t("guide.go")}):null]})}function ds({g:e,chapter:t}){return r("ul",{class:"fxg-tasks",children:t.tasks.map(n=>r(Du,{g:e,task:n,chapter:t},n.id))})}function Iu({g:e,value:t,label:n}){let o=ie(null),a=ie(null);return X(()=>{if(!(!o.current||!e.ctx.ui?.mountMarkdownEditor))return a.current=e.ctx.ui.mountMarkdownEditor(o.current,{value:t,label:n,readOnly:!0,modes:!1}),()=>{a.current?.dispose(),a.current=null}},[e]),X(()=>{a.current?.update({value:t})},[t]),r("div",{class:"fxg-doc",ref:o})}function Zv({g:e}){let[t,n]=C(!1),o=ie(null);X(()=>{if(!t)return;let s=c=>{o.current?.contains(c.target)||n(!1)},l=c=>{c.key==="Escape"&&n(!1)};return document.addEventListener("pointerdown",s,!0),document.addEventListener("keydown",l),()=>{document.removeEventListener("pointerdown",s,!0),document.removeEventListener("keydown",l)}},[t]);let a=e.env(),i=(s,l,c)=>r("button",{type:"button",role:c===void 0?"menuitem":"menuitemcheckbox","aria-checked":c,class:"fxg-menu-item",onClick:()=>{n(!1),l()},children:[r("span",{children:s}),c&&r(xa,{on:!0})]});return r("div",{class:"fxg-more",ref:o,children:[r("button",{type:"button",class:"fxg-icon-btn","aria-label":e.t("guide.more"),"aria-haspopup":"menu","aria-expanded":t,onClick:()=>n(!t),children:"\xB7\xB7\xB7"}),t&&r("div",{class:"fxg-menu",role:"menu",children:[i(a.unlockAll?e.t("guide.relock"):e.t("guide.unlockAll"),()=>e.setUnlockAll(!a.unlockAll)),i(e.t("guide.reminders"),()=>e.setReminders(!e.reminders()),e.reminders()),e.ctx.app?.spotlight&&i(e.t("guide.spotlight"),()=>e.setSpotlight(!e.spotlightOn()),e.spotlightOn()),e.ctx.app?.runCommand&&i(e.t("guide.openAchievements"),()=>{e.ctx.app?.runCommand?.("open-achievements")})]})]})}function Nu({g:e}){ba(e),X(()=>{e.ctx.achievements?.track("guide.open")},[e]);let t=e.selected(),n=e.env(),o=Nr(t,n),{intro:a,body:i}=e.markdown(t),s=o!=="locked",l=Gt[Gt.findIndex(c=>c.id===t.level)-1];return r(ya,{g:e,kind:"reader",children:[r("div",{class:"fxg-bar",children:[r("span",{class:"fx-tag fxg-ro",children:e.t("guide.readOnly")}),r(Zv,{g:e})]}),r("div",{class:"fxg-scroll",children:r("div",{class:"fxg-col",children:[r(Iu,{g:e,value:`# ${e.title(t)}
1347
+ `;function Ra(e){let[,t]=S(0);Y(()=>{let o=e.subscribe(()=>t(r=>r+1));return t(r=>r+1),o},[e])}function La(e){return n("div",{class:`fxg fxg-${e.kind}`,lang:e.g.locale()==="zh"?"zh-CN":"en",children:[n("style",{children:lp}),e.children]})}var Da=({on:e})=>n("span",{class:`fxg-check${e?" is-on":""}`,"aria-hidden":"true",children:e&&n("svg",{viewBox:"0 0 16 16",width:"10",height:"10",children:n("path",{d:"M3.5 8.5l3 3 6-7",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})})});function up({g:e,task:t,chapter:o}){let r=e.env(),a=In(t,r),i=!!t.desktopOnly&&!r.desktop;return n("li",{class:`fxg-task${a?" is-done":""}${!a&&e.spotTask()===t.id?" is-current":""}`,"data-task":t.id,children:[n(Da,{on:a}),n("span",{class:"fxg-task-title",children:e.title(t)}),a?n("span",{class:"fxg-task-state",children:e.t("guide.taskDone")}):i?n("span",{class:"fxg-task-state",children:e.t("guide.desktopOnly")}):t.go?n("button",{type:"button",class:"btn ghost sm fxg-go",onClick:()=>void e.go(t,o),children:e.t("guide.go")}):null]})}function Ms({g:e,chapter:t}){return n("ul",{class:"fxg-tasks",children:t.tasks.map(o=>n(up,{g:e,task:o,chapter:t},o.id))})}function cp({g:e,value:t,label:o}){let r=ie(null),a=ie(null);return Y(()=>{if(!(!r.current||!e.ctx.ui?.mountMarkdownEditor))return a.current=e.ctx.ui.mountMarkdownEditor(r.current,{value:t,label:o,readOnly:!0,modes:!1}),()=>{a.current?.dispose(),a.current=null}},[e]),Y(()=>{a.current?.update({value:t})},[t]),n("div",{class:"fxg-doc",ref:r})}function Vv({g:e}){let[t,o]=S(!1),r=ie(null);Y(()=>{if(!t)return;let s=c=>{r.current?.contains(c.target)||o(!1)},l=c=>{c.key==="Escape"&&o(!1)};return document.addEventListener("pointerdown",s,!0),document.addEventListener("keydown",l),()=>{document.removeEventListener("pointerdown",s,!0),document.removeEventListener("keydown",l)}},[t]);let a=e.env(),i=(s,l,c)=>n("button",{type:"button",role:c===void 0?"menuitem":"menuitemcheckbox","aria-checked":c,class:"fxg-menu-item",onClick:()=>{o(!1),l()},children:[n("span",{children:s}),c&&n(Da,{on:!0})]});return n("div",{class:"fxg-more",ref:r,children:[n("button",{type:"button",class:"fxg-icon-btn","aria-label":e.t("guide.more"),"aria-haspopup":"menu","aria-expanded":t,onClick:()=>o(!t),children:"\xB7\xB7\xB7"}),t&&n("div",{class:"fxg-menu",role:"menu",children:[i(a.unlockAll?e.t("guide.relock"):e.t("guide.unlockAll"),()=>e.setUnlockAll(!a.unlockAll)),i(e.t("guide.reminders"),()=>e.setReminders(!e.reminders()),e.reminders()),e.ctx.app?.spotlight&&i(e.t("guide.spotlight"),()=>e.setSpotlight(!e.spotlightOn()),e.spotlightOn()),e.ctx.app?.runCommand&&i(e.t("guide.openAchievements"),()=>{e.ctx.app?.runCommand?.("open-achievements")})]})]})}function pp({g:e}){Ra(e),Y(()=>{e.ctx.achievements?.track("guide.open")},[e]);let t=e.selected(),o=e.env(),r=Ho(t,o),{intro:a,body:i}=e.markdown(t),s=r!=="locked",l=dn[dn.findIndex(c=>c.id===t.level)-1];return n(La,{g:e,kind:"reader",children:[n("div",{class:"fxg-bar",children:[n("span",{class:"fx-tag fxg-ro",children:e.t("guide.readOnly")}),n(Vv,{g:e})]}),n("div",{class:"fxg-scroll",children:n("div",{class:"fxg-col",children:[n(cp,{g:e,value:`# ${e.title(t)}
1211
1348
 
1212
- ${a}`,label:e.title(t)}),s&&t.figure&&r(Mu,{g:e,figure:t.figure}),s&&i&&r(Iu,{g:e,value:i,label:e.title(t)}),o==="locked"&&l?r("div",{class:"fxg-lock","data-locked":!0,children:[r("div",{class:"fxg-lock-title",children:e.t("guide.locked.title")}),r("p",{children:e.t("guide.locked.body",{level:e.levelName(l.id)})}),r("p",{class:"fxg-muted",children:e.t("guide.locked.left")}),r("ul",{class:"fxg-tasks",children:fn(l.id).flatMap(c=>fo(c.tasks,n).filter(d=>!Sn(d,n)).map(d=>r(Du,{g:e,task:d,chapter:c},d.id)))}),r("p",{class:"fxg-muted",children:e.t("guide.locked.hint")})]}):r("section",{class:"fxg-section","data-guide-tasks":!0,children:[r("h2",{children:e.t("guide.tasks")}),r(ds,{g:e,chapter:t})]})]})})]})}function Qv({done:e,total:t}){return r("div",{class:"fxg-bar-track",role:"progressbar","aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":e,children:r("i",{style:{width:`${t?Math.round(e/t*100):0}%`}})})}function Lu({g:e,c:t}){let n=Nr(t,e.env());return r("button",{type:"button",class:`fxg-line is-${n}${e.selected().id===t.id?" is-active":""}`,onClick:()=>{e.select(t.id),e.ctx.openView?.(mn.reader)},children:[r(xa,{on:n==="done"}),r("span",{children:e.title(t)}),n==="locked"&&r("span",{class:"fxg-task-state",children:e.t("guide.lockedHint")})]})}function eb({g:e}){let t=e.env(),n=is(t);if(!n)return r("div",{class:"fxg-pane",children:[r("div",{class:"fxg-h",children:e.t("guide.allDone")}),r("p",{class:"fxg-muted",children:e.t("guide.allDoneBody")}),r("div",{class:"fxg-sub",children:e.t("guide.review")}),va(e).map(({level:s,chapters:l})=>r("button",{type:"button",class:"fxg-line",onClick:()=>{e.select(l[0].id),e.ctx.openView?.(mn.reader)},children:[r(xa,{on:!0}),r("span",{children:e.levelName(s)})]},s))]});let{done:o,total:a}=Cu(n,t),i=Gt[Gt.findIndex(s=>s.id===n)+1];return r("div",{class:"fxg-pane",children:[r("div",{class:"fxg-h",children:e.levelName(n)}),r("div",{class:"fxg-muted",children:e.t("guide.levelProgress",{done:o,total:a})}),r(Qv,{done:o,total:a}),r("div",{class:"fxg-lines",children:fn(n).map(s=>r(Lu,{g:e,c:s},s.id))}),i&&r(O,{children:[r("div",{class:"fxg-sub",children:e.t("guide.next")}),r("div",{class:"fxg-lines",children:fn(i.id).map(s=>r(Lu,{g:e,c:s},s.id))})]})]})}function Ou(e,t){let{intro:n,body:o}=e.markdown(t);return`# ${e.title(t)}
1349
+ ${a}`,label:e.title(t)}),s&&t.figure&&n(sp,{g:e,figure:t.figure}),s&&i&&n(cp,{g:e,value:i,label:e.title(t)}),r==="locked"&&l?n("div",{class:"fxg-lock","data-locked":!0,children:[n("div",{class:"fxg-lock-title",children:e.t("guide.locked.title")}),n("p",{children:e.t("guide.locked.body",{level:e.levelName(l.id)})}),n("p",{class:"fxg-muted",children:e.t("guide.locked.left")}),n("ul",{class:"fxg-tasks",children:zn(l.id).flatMap(c=>wr(c.tasks,o).filter(d=>!In(d,o)).map(d=>n(up,{g:e,task:d,chapter:c},d.id)))}),n("p",{class:"fxg-muted",children:e.t("guide.locked.hint")})]}):n("section",{class:"fxg-section","data-guide-tasks":!0,children:[n("h2",{children:e.t("guide.tasks")}),n(Ms,{g:e,chapter:t})]})]})})]})}function Wv({done:e,total:t}){return n("div",{class:"fxg-bar-track",role:"progressbar","aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":e,children:n("i",{style:{width:`${t?Math.round(e/t*100):0}%`}})})}function dp({g:e,c:t}){let o=Ho(t,e.env());return n("button",{type:"button",class:`fxg-line is-${o}${e.selected().id===t.id?" is-active":""}`,onClick:()=>{e.select(t.id),e.ctx.openView?.(Sn.reader)},children:[n(Da,{on:o==="done"}),n("span",{children:e.title(t)}),o==="locked"&&n("span",{class:"fxg-task-state",children:e.t("guide.lockedHint")})]})}function jv({g:e}){let t=e.env(),o=As(t);if(!o)return n("div",{class:"fxg-pane",children:[n("div",{class:"fxg-h",children:e.t("guide.allDone")}),n("p",{class:"fxg-muted",children:e.t("guide.allDoneBody")}),n("div",{class:"fxg-sub",children:e.t("guide.review")}),Ia(e).map(({level:s,chapters:l})=>n("button",{type:"button",class:"fxg-line",onClick:()=>{e.select(l[0].id),e.ctx.openView?.(Sn.reader)},children:[n(Da,{on:!0}),n("span",{children:e.levelName(s)})]},s))]});let{done:r,total:a}=np(o,t),i=dn[dn.findIndex(s=>s.id===o)+1];return n("div",{class:"fxg-pane",children:[n("div",{class:"fxg-h",children:e.levelName(o)}),n("div",{class:"fxg-muted",children:e.t("guide.levelProgress",{done:r,total:a})}),n(Wv,{done:r,total:a}),n("div",{class:"fxg-lines",children:zn(o).map(s=>n(dp,{g:e,c:s},s.id))}),i&&n(R,{children:[n("div",{class:"fxg-sub",children:e.t("guide.next")}),n("div",{class:"fxg-lines",children:zn(i.id).map(s=>n(dp,{g:e,c:s},s.id))})]})]})}function fp(e,t){let{intro:o,body:r}=e.markdown(t);return`# ${e.title(t)}
1213
1350
 
1214
- ${n}
1351
+ ${o}
1215
1352
 
1216
- ${o}`.trim()}function tb({g:e}){let t=e.selected(),n=e.ctx.tangu?.mountChat;return n?r(nb,{g:e,c:t,mount:n},`${t.id}:${e.locale()}`):r(rb,{g:e,c:t})}function nb({g:e,c:t,mount:n}){let o=ie(null);return X(()=>{let a=n(o.current,{title:e.t("guide.ask.chatTitle")});return a.quote(Ou(e,t)),()=>a.dispose()},[]),r("div",{class:"fxg-chat",ref:o})}function rb({g:e,c:t}){let[n,o]=C(""),[a,i]=C(""),s=e.ctx.tangu?.startChat,l=async()=>{if(!s)return;let c=`${e.t("guide.ask.prompt",{chapter:e.title(t),question:n.trim()})}
1353
+ ${r}`.trim()}function Gv({g:e}){let t=e.selected(),o=e.ctx.tangu?.mountChat;return o?n(Jv,{g:e,c:t,mount:o},`${t.id}:${e.locale()}`):n(Xv,{g:e,c:t})}function Jv({g:e,c:t,mount:o}){let r=ie(null);return Y(()=>{let a=o(r.current,{title:e.t("guide.ask.chatTitle")});return a.quote(fp(e,t)),()=>a.dispose()},[]),n("div",{class:"fxg-chat",ref:r})}function Xv({g:e,c:t}){let[o,r]=S(""),[a,i]=S(""),s=e.ctx.tangu?.startChat,l=async()=>{if(!s)return;let c=`${e.t("guide.ask.prompt",{chapter:e.title(t),question:o.trim()})}
1217
1354
 
1218
1355
  ---
1219
- ${Ou(e,t)}`,d=await s({prompt:c,send:!1});d?.ok?o(""):i(d?.error||e.t("guide.ask.unavailable"))};return r("div",{class:"fxg-pane",children:[r("p",{class:"fxg-muted",children:e.t("guide.ask.hint",{chapter:e.title(t)})}),r("textarea",{class:"fxg-input",rows:4,value:n,placeholder:e.t("guide.ask.placeholder"),onInput:c=>o(c.target.value)}),r("button",{type:"button",class:"btn sm",disabled:!s,onClick:()=>void l(),children:e.t("guide.ask.send")}),(!s||a)&&r("p",{class:"fxg-muted",children:a||e.t("guide.ask.unavailable")})]})}function Fu({g:e}){ba(e);let[t,n]=C("progress");return r(ya,{g:e,kind:"side",children:[r("div",{class:"fxg-tabs",role:"tablist",children:["progress","ask"].map(o=>r("button",{type:"button",role:"tab","aria-selected":t===o,class:t===o?"is-on":"",onClick:()=>n(o),children:e.t(o==="progress"?"guide.progress":"guide.askTangu")},o))}),t==="progress"?r(eb,{g:e}):r(tb,{g:e})]})}function $u({g:e}){ba(e);let t=e.companionChapter(),n=Nr(t,e.env())==="done",o=ie(n);return X(()=>{if(n&&!o.current){let a=window.setTimeout(()=>e.ctx.closeView?.(mn.companion),1500);return()=>window.clearTimeout(a)}o.current=n},[n]),r(ya,{g:e,kind:"companion",children:r("div",{class:"fxg-pane",children:[r("div",{class:"fxg-companion-head",children:[r("span",{class:"fxg-sub",children:e.t("guide.title")}),e.ctx.closeView&&r("button",{type:"button",class:"fxg-icon-btn","aria-label":e.t("guide.companion.close"),onClick:()=>e.ctx.closeView?.(mn.companion),children:"\xD7"})]}),r("div",{class:"fxg-h",children:e.title(t)}),r("div",{class:"fxg-sub",children:e.t("guide.tasks")}),r(ds,{g:e,chapter:t}),r("button",{type:"button",class:"fx-link fxg-back",onClick:()=>void e.openGuide(t.id),children:e.t("guide.companion.back")})]})})}function Bu({g:e,letter:t}){ba(e);let n=t?t.kind==="level"?t.level:"new":null,o=n&&(n==="new"||ha(n,e.env()))?fn(n):[];return r(ya,{g:e,kind:"letter",children:[o.map(a=>r("div",{class:"fxg-letter-chapter",children:[r("button",{type:"button",class:"fxg-letter-title",onClick:()=>void e.openGuide(a.id),children:e.title(a)}),r(ds,{g:e,chapter:a})]},a.id)),r("button",{type:"button",class:"btn sm",onClick:()=>void e.openGuide(o[0]?.id??Yn("welcome")?.id),children:e.t("guide.letter.open")})]})}function ob(e){return!!e&&typeof e.registerView=="function"&&typeof e.registerListSource=="function"&&typeof e.openView=="function"&&typeof e.achievements?.count=="function"&&typeof e.achievements.subscribe=="function"&&typeof e.app?.openSpace=="function"&&typeof e.ui?.mountMarkdownEditor=="function"}function Uu(e,t=window){if(!ob(e)||t.tangu?.unitPage)return null;let n=t.tangu,o=Eu(e,{desktop:typeof n?.appVersion=="function"&&!n.mobile,appVersion:typeof n?.appVersion=="function"?n.appVersion().catch(()=>null):Promise.resolve(null)}),a=i=>s=>(Ee(r(i,{g:o}),s),()=>{Ee(null,s)});return e.registerView({id:mn.reader,title:o.t("guide.title"),icon:"page",workspaceSource:cs,mount:a(Nu)}),e.registerView({id:mn.side,title:o.t("guide.progress"),icon:"list-view",mount:a(Fu)}),e.registerView({id:mn.companion,title:o.t("guide.title"),icon:"todo",mount:a($u)}),e.registerListSource({id:cs,title:o.t("guide.title"),search:!0,items:i=>{let s=o.env(),l=i?.query?.trim().toLowerCase()??"",c=o.justUnlocked();return va(o).flatMap(({level:d,chapters:m})=>m.map(u=>{let p=Nr(u,s);return{key:u.id,title:o.title(u),group:o.levelName(d),icon:p==="done"?"circle-check":p==="locked"?"lock":"circle",hint:d===c&&p!=="locked"?o.t("guide.justUnlocked"):void 0}})).filter(d=>!l||d.title.toLowerCase().includes(l))},subscribe:i=>o.subscribe(i),activeKey:()=>o.selected().id,open:i=>{o.select(i.key),e.openView(mn.reader)}}),e.registerCommand?.({id:"open-guide",title:()=>o.t("guide.cmd.open"),keywords:"guide manual help tutorial levels \u4F7F\u7528\u6307\u5357 \u8BF4\u660E\u4E66 \u6559\u7A0B \u5E2E\u52A9 \u7B49\u7EA7 \u4EFB\u52A1",run:()=>{o.openGuide()}}),e.inbox?.registerCard({sender:()=>o.t("guide.title"),mount(i,s){return Ee(r(Bu,{g:o,letter:o.letter(s.id)}),i),()=>{Ee(null,i)}}}),o}var ab=["uploads","ama","sync","agents","profile","apps","plugins","exports","market"],go={uploads:"penzor.uploads",ama:"penzor.ledger.ama",sync:"penzor.ledger.sync",agents:"penzor.source.agents",profile:"penzor.source.profile",apps:"penzor.ledger.apps",plugins:"penzor.source.plugins",exports:"penzor.ledger.exports",market:"penzor.source.market"},us=e=>e==="uploads"?"app:penzor":e==="exports"?"exports":`source:${e}`,ps=e=>{let t=e?.sources.find(n=>n.id==="market");return t?.status==="ready"&&((t.fileCount??0)>0||(t.liveBytes??0)>0)},Zn=e=>Number.isFinite(Number(e))?Number(e):0,gn="penzor";var qu=500;async function ib(e,t){let n=Math.min(20,Zn(t.totalPages));if(n<=1)return t.files;let o=await Promise.all(Array.from({length:n-1},(a,i)=>e(`/exports/list?pageSize=${qu}&sortBy=date&sortOrder=desc&page=${i+2}`)));return[...t.files,...o.flatMap(a=>a.ok&&Array.isArray(a.data?.files)?a.data.files:[])]}async function Wu(e){let[t,n,o,a,i,s,l,c,d]=await Promise.all([e("/remotesync/vaults"),e("/amadeus/vaults"),e("/storage/quota"),e("/storage/files-by-app"),e(`/exports/list?pageSize=${qu}&sortBy=date&sortOrder=desc`),e("/trash?all=1"),e("/storage/ledger"),e("/storage/source-trash/ama"),e("/remotesync/content/devices")]),u=[t,n,o,a,i,s].every(g=>!g.ok&&g.status===401);return{snap:{contentDevices:d.ok&&Array.isArray(d.data?.devices)?d.data.devices:null,amaTrash:c.ok&&Array.isArray(c.data?.entries)?c.data.entries:null,ledger:l.ok&&l.data?.schemaVersion===1?l.data:null,sync:t.ok&&Array.isArray(t.data?.vaults)?{...t.data,vaults:t.data.vaults.filter(g=>g.vault!=="forsion-content")}:null,ama:n.ok&&Array.isArray(n.data?.vaults)?n.data.vaults.filter(g=>(g.role??"owner")==="owner").map(g=>({id:g.id,name:g.name,sizeBytes:Zn(g.sizeBytes)})):null,apps:o.ok&&a.ok&&Array.isArray(a.data?.apps)?{used:Zn(o.data?.used),quota:Zn(o.data?.quota),apps:a.data.apps,largest:a.data.largest??[]}:null,exports:i.ok&&Array.isArray(i.data?.files)?{files:await ib(e,i.data),total:Zn(i.data.total),totalBytes:Zn(i.data.totalBytes)}:null,trash:s.ok&&Array.isArray(s.data)?s.data:null,at:Date.now()},signedOut:u}}var sb={"ai-studio":"AI Studio","photo-studio":"Photo Studio",notebase:"Notebase",chat:"Forsion Chat",connect:"Forsion Connect","video-studio":"Video Studio",bluebird:"Bluebird",cnti:"CNTI"},fs=e=>e?sb[e]??e.split(/[-_]/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"\u2014",vr=e=>e.kind==="content"?`content:${e.namespace}`:e.kind==="source"?`source:${e.source}`:e.kind==="sync"?`sync:${e.vault}`:e.kind==="ama"?`ama:${e.vaultId}`:e.kind==="app"?`app:${e.appId}`:e.kind==="overview"?"ov":e.kind,br=e=>e.kind==="overview"||e.kind==="sync-home";function Vu(e){if(e==="ov")return{kind:"overview"};if(e==="sync-home"||e==="exports"||e==="trash")return{kind:e};let t=e.indexOf(":"),n=t<0?e:e.slice(0,t),o=t<0?"":e.slice(t+1);return o?n==="source"&&ab.includes(o)?{kind:"source",source:o}:n==="content"&&/^(default|device-[A-Za-z0-9_-]{1,64})$/.test(o)?{kind:"content",namespace:o}:n==="sync"?{kind:"sync",vault:o}:n==="ama"?{kind:"ama",vaultId:o}:n==="app"?{kind:"app",appId:o}:null:null}var ms=(e,t)=>t?t.config.enabled||t.config.revision>0:!!e?.contentDevices?.length;function ju(e,t,n,o=null){let a=g=>xe(n,go[g]),i=g=>mo(g,n),s=g=>{let f=e?.ledger?.sources.find(h=>h.id===g);return f?.status==="ready"?f.liveBytes+f.trashBytes:null},l=g=>{let f=s(g);return f==null?"\u2014":`${e?.ledgerStale?"~ ":""}${i(f)}`},c=ms(e,o),d=[{key:"drive-root",title:t.drive,kind:"folder",icon:t.driveIcon},{key:"ov",title:t.overview,parent:"drive-root",icon:"layout"},{key:us("uploads"),title:t.files,parent:"drive-root",icon:"folder",hint:l("uploads")}];if(ps(e?.ledger)&&d.push({key:us("market"),title:a("market"),parent:"drive-root",icon:"boxes",hint:l("market")}),c&&e?.contentDevices){d.push({key:"synced",title:t.synced,kind:"folder",icon:"cloud"},{key:"content:default",title:t.all,parent:"synced",icon:"cloud"});let g=o?.deviceId;g&&d.push({key:`content:device-${g}`,title:t.thisBackup,parent:"synced",icon:"lock"});for(let f of e.contentDevices.filter(h=>h.id!==g))d.push({key:`content:device-${f.id}`,title:f.name||`Forsion-${f.id.slice(0,8)}`,parent:"synced",icon:"link"})}let m=["ama","apps","plugins","exports",...c?[]:["agents","profile"]],u=m.reduce((g,f)=>g==null||s(f)==null?null:g+s(f),0);d.push({key:"by-app",title:t.byApp,kind:"folder",icon:"package",hint:u==null?"\u2014":i(u)});let p=(g,f,h=a(g))=>{let k=g==="ama"||g==="sync"||g==="apps",x=us(g);if(d.push({key:k?x+":group":x,parent:f,title:h,icon:g==="sync"?"clock":"folder",...k?{kind:"folder"}:{},hint:l(g)}),k&&d.push({key:`source:${g}`,parent:x+":group",title:t.overview,icon:"layout"}),g==="sync")for(let S of e?.sync?.vaults??[])d.push({key:`sync:${S.vault}`,parent:x+":group",title:S.vault,icon:"database",hint:i(S.bytes)});if(g==="ama")for(let S of e?.ama??[])d.push({key:`ama:${S.id}`,parent:x+":group",title:S.name,icon:"page",hint:i(S.sizeBytes)});if(g==="apps")for(let S of e?.apps?.apps.filter(w=>w.appId!==gn&&w.files>0)??[])d.push({key:`app:${S.appId}`,parent:x+":group",title:fs(S.appId),icon:"archive",hint:i(S.bytes)})};for(let g of m)p(g,"by-app");return p("sync","",c?t.legacy:a("sync")),d.push({key:"trash",title:t.trash,icon:"trash",hint:e?.trash?t.items(gs(e.trash).length):"\u2014"}),d.map(g=>g.parent===""?(({parent:f,...h})=>h)(g):g)}function gs(e){let t=new Map(e.map(a=>[a.id,a])),n=a=>{let i=a;for(let s=0;s<64&&i.parentId&&t.has(i.parentId);s++)i=t.get(i.parentId);return i},o=new Map;for(let a of e){let i=n(a),s=o.get(i.id)??{inner:0,innerBytes:0};i.id!==a.id&&s.inner++,s.innerBytes+=Zn(a.fileSize),o.set(i.id,s)}return e.filter(a=>!(a.parentId&&t.has(a.parentId))).map(a=>({...a,...o.get(a.id)}))}function hs(e,t){let n=t?`${t}/`:"",o=new Map,a=[];for(let i of e){if(n&&!i.path.startsWith(n))continue;let s=i.path.slice(n.length),l=s.indexOf("/");if(l<0){a.push({key:i.path,name:s,dir:!1,size:i.size,mtime:i.mtime,col4:i.who??null,ref:i.ref});continue}let c=s.slice(0,l),d=n+c,m=o.get(d)??{key:d,name:c,dir:!0,size:0,mtime:null,count:0};m.size+=i.size,m.count=(m.count??0)+1,i.mtime!=null&&(m.mtime==null||i.mtime>m.mtime)&&(m.mtime=i.mtime),o.set(d,m)}return[...ka([...o.values()]),...ka(a)]}var ka=e=>e.sort((t,n)=>(n.mtime??-1)-(t.mtime??-1)||t.name.localeCompare(n.name)),Gu=e=>[...ka(e.filter(t=>t.dir)),...ka(e.filter(t=>!t.dir))];function mo(e,t){let n=Math.max(0,Zn(e));if(n<1024)return`${n} B`;if(n<1024*1024)return`${Math.round(n/1024)} KB`;if(n<1024**3){let o=n/1048576;return`${o<100?Number(o.toFixed(1)):Math.round(o)} MB`}return`${Number((n/1024**3).toFixed(2))} GB`}function vs(e,t,n){let o=mo(e,n),a=mo(t,n),i=a.slice(a.indexOf(" "));return`${o.endsWith(i)?o.slice(0,-i.length):o} / ${a}`}var lb=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Hu=e=>String(e).padStart(2,"0");function At(e,t,n=Date.now()){if(e==null||!Number.isFinite(e))return"\u2014";let o=new Date(e),a=new Date(n);a.setHours(0,0,0,0);let i=new Date(o);i.setHours(0,0,0,0);let s=Math.round((a.getTime()-i.getTime())/864e5),l=`${Hu(o.getHours())}:${Hu(o.getMinutes())}`;if(s===0)return t==="zh"?`\u4ECA\u5929 ${l}`:`Today ${l}`;if(s===1)return t==="zh"?`\u6628\u5929 ${l}`:`Yesterday ${l}`;let c=o.getFullYear()===a.getFullYear();return t==="zh"?`${c?"":`${o.getFullYear()} \u5E74 `}${o.getMonth()+1} \u6708 ${o.getDate()} \u65E5`:`${lb[o.getMonth()]} ${o.getDate()}${c?"":`, ${o.getFullYear()}`}`}function yr(e){if(e==null||e==="")return null;if(typeof e=="number")return e<1e12?e*1e3:e;let t=Number(e);if(Number.isFinite(t))return t<1e12?t*1e3:t;let n=Date.parse(String(e));return Number.isNaN(n)?null:n}var wa=e=>[e.notes.on&&!e.notes.pending,e.agents.on,e.plugins.on].filter(Boolean).length;function ho(e){let t=e.notes.last;return!!t&&t.ok===!1&&!(t.errors.length>0&&t.errors.every(n=>n.includes("already-running")))}var za=e=>!!e&&e.signedIn&&(!!e.notes.pending||e.notes.on&&ho(e)),cb=e=>/"code"\s*:\s*"QUOTA"/.test(e),Ju=(e,t)=>e.notes.on&&!e.notes.pending&&e.notes.backend==="penzor"&&(t>0&&(e.notes.localBytes??0)>t||!!e.notes.last?.errors.some(cb));function xr(e){if(!e?.notes.running)return null;let t=e.notes.progress;return t&&t.total>0?Math.min(1,Math.max(0,t.done/t.total)):0}function Ku(e,t){if(!e||!e.signedIn)return;let n=xr(e);if(n!=null)return n>0?xe(t,"penzor.sync.running",{pct:Math.round(n*100)}):xe(t,"penzor.sync.runningPlain");if(e.notes.pending)return xe(t,"penzor.sync.waiting");let o=wa(e);return o?xe(t,"penzor.sync.onN",{n:o}):xe(t,"penzor.sync.allOff")}var vo=e=>e.jobs.filter(t=>t.state==="failed"&&!e.jobs.some(n=>n.path===t.path&&n.at>t.at&&n.state==="done"));function hn(e){if(!e.config.enabled)return{kind:"off"};if(e.paused)return{kind:"paused"};let t=e.jobs.filter(a=>a.state==="queued"||a.state==="active");if(t.length){let a=t.reduce((s,l)=>s+(l.size??0),0),i=t.reduce((s,l)=>s+l.done,0);return{kind:"run",pct:a>0?Math.min(99,Math.round(i/a*100)):0}}if(e.phase==="scanning"||e.phase==="syncing")return{kind:"scan"};let n=vo(e).length+(e.error?1:0);if(n)return{kind:"warn",n};let o=e.jobs.filter(a=>a.state==="done").map(a=>a.finishedAt??a.at);return{kind:"ok",at:o.length?Math.max(...o):null}}function Xu(e,t){return e.kind==="off"?xe(t,"penzor.cs.statusOff"):e.kind==="paused"?xe(t,"penzor.cs.statusPaused"):e.kind==="run"?`${e.pct}%`:e.kind==="scan"?xe(t,"penzor.sync.runningPlain"):e.kind==="warn"?xe(t,"penzor.cs.statusWarn",{n:e.n}):xe(t,"penzor.cs.statusOk")}function Yu(e,t){let n=wa(e);return e.notes.pending?xe(t,"penzor.sync.badgeWaiting",{n}):n?xe(t,"penzor.sync.onN",{n}):xe(t,"penzor.sync.allOff")}function bs(e,t){let n=Math.max(0,Math.round(e.intervalMin)),o=n?n%60===0?xe(t,"penzor.sync.everyHours",{n:n/60}):xe(t,"penzor.sync.every",{n}):xe(t,"penzor.sync.manual");return e.syncOnStart?`${o} \xB7 ${xe(t,"penzor.sync.onStart")}`:o}function vn(e,t,n=Date.now()){if(e==null||!Number.isFinite(e))return"\u2014";let o=Math.max(0,n-e);return o<6e4?xe(t,"penzor.justNow"):o<36e5?xe(t,"penzor.sync.minAgo",{n:Math.floor(o/6e4)}):o<6*36e5?xe(t,"penzor.sync.hoursAgo",{n:Math.floor(o/36e5)}):At(e,t,n)}function Sa(e,t=!1){return t?"folder":/\.(png|jpe?g|gif|webp|heic|dng|svg|bmp|tiff?)$/i.test(e)?"image":/\.(md|txt|pdf|docx?|rtf)$/i.test(e)?"page":/\.db$/i.test(e)?"database":"attachment"}function Qu(e,t){let n=null;for(let o of t)(!o.source||e===o.source||e.startsWith(o.source+"/"))&&(!n||o.source.length>n.source.length)&&(n=o);return n}var _t={get:"penzor:sync:get",preview:"penzor:sync:preview",apply:"penzor:sync:apply",run:"penzor:sync:run",pause:"penzor:sync:pause",retry:"penzor:sync:retry",rename:"penzor:sync:rename",setup:"penzor:sync:setup",archiveSeen:"penzor:sync:archiveSeen"};var Zu=e=>String(e??"").normalize("NFC").trim().replace(/\s+/g," ").toLowerCase(),ys=(e,t,n)=>{let o=Zu(e);return o?/[\[\]]/.test(e)||e.trim().length>64?"invalid":o==="macos"||o==="windows"||o==="linux"?"reserved":t.some(a=>a.id!==n&&Zu(a.name)===o)?"taken":null:null};var tn="forsion-penzor",_n={main:"penzor",info:"penzor-info"},xs="penzor-places",ks="forsion-extend.penzor.ready",ep="forsion-extend.penzor.focus",_a=e=>e.state==="active"||e.state==="queued",$r=e=>e.ok?"":e.detail||e.code||e.transport||(e.status?`HTTP ${e.status}`:"offline"),db=e=>e.slice(e.lastIndexOf("/")+1);function tp(e,t={}){let n=t.api??Z,o=new Set,a=()=>{for(let y of[...o])try{y()}catch(A){console.error("[penzor] listener failed",A)}},i=()=>De(e.getLocale?.()),s=(y,A)=>xe(i(),y,A),l=y=>mo(y,i()),c=y=>e.app?.notify?.(y),d=y=>c(s("penzor.toast.failed",{reason:typeof y=="string"?y:$r(y)})),m="unknown",u=!1,p=null,g=null,f={kind:"overview"},h="",k=[],x=null,S=null,w=null,T="mtime",R="",B=null,U={kind:"view"},N=!1,G=null,z=null,P=0,F=0,L=0,ae=t.device??null,b=new Map,_=new Set,I=null,H=null,Q=[],$=[],te="hidden",ce=0,We=!1,pe=0,Be=!1,ht=null,he=!1,at=null,yn=new Map,dt=null,Ye=!oe().mobile&&typeof e.app?.sync?.get=="function"?e.app.sync:null,nn=new Map,Jt=new Set,Ce=!1,rn=!1,Pe=1e4,Ft=4e3,vt=y=>{let A=T==="size"?(M,ee)=>ee.size-M.size:T==="name"?(M,ee)=>M.name.localeCompare(ee.name):null;return A?[...y.filter(M=>M.dir).sort(A),...y.filter(M=>!M.dir).sort(A)]:Gu([...y])};async function Tn(){let y=++P,A=f;if(S=null,A.kind==="overview"||A.kind==="sync-home"){x=null;return}if(A.kind==="exports"){x=(g?.exports?.files??[]).map(j=>({key:j.fileId,name:j.fileName,dir:!1,size:j.size,mtime:yr(j.createdAt),col4:Ze(j.appId),ref:j}));return}if(A.kind==="trash"){x=gs(g?.trash??[]).map(j=>({key:j.id,name:j.name,dir:j.fileType==="directory",size:j.fileType==="directory"?j.innerBytes:j.fileSize,mtime:yr(j.deletedAt),col4:j.parentName?`${Ze(j.appId)} / ${j.parentName}`:Ze(j.appId),count:j.fileType==="directory"?j.inner:void 0,ref:j}));return}if(x=null,a(),A.kind==="content"){let j=await n(`/remotesync/content/${encodeURIComponent(A.namespace)}`);if(y!==P)return;if(!j.ok){S=$r(j),a();return}if(j.data.schemaVersion!==1||!Array.isArray(j.data.nodes)){S=s("penzor.unreachable");return}let ue=j.data.nodes.filter(_e=>!_e.deleted),we=ue.filter(_e=>_e.kind==="file"&&_e.version).map(_e=>({path:_e.path,size:_e.size??0,mtime:_e.mtime??null,ref:_e}));b.set(vr(A),we);let se=_e=>{let _o=0,nr=null,Sr=0;for(let Hn of we)Hn.path.startsWith(_e+"/")&&(_o+=Hn.size,Sr++,Hn.mtime!=null&&(nr==null||Hn.mtime>nr)&&(nr=Hn.mtime));return{size:_o,mtime:nr,count:Sr}};x=ue.filter(_e=>(_e.path.includes("/")?_e.path.slice(0,_e.path.lastIndexOf("/")):"")===h).map(_e=>_e.kind==="folder"?{key:_e.path,name:_e.name,dir:!0,...se(_e.path),ref:_e}:{key:_e.path,name:_e.name,dir:!1,size:_e.size??0,mtime:_e.mtime??null,ref:_e});return}if(A.kind==="sync"||A.kind==="ama"){let j=vr(A),ue=b.get(j);if(!ue){if(A.kind==="sync"){let we=await n(`/remotesync/vaults/${encodeURIComponent(A.vault)}/manifest`);if(y!==P)return;if(!we.ok){S=$r(we),a();return}ue=we.data.files.map(se=>({path:se.path,size:se.size,mtime:yr(se.mtimeMs),who:se.device??null,ref:se}))}else{let we=await n(`/amadeus/vaults/${encodeURIComponent(A.vaultId)}/tree`);if(y!==P)return;if(!we.ok){S=$r(we),a();return}ue=(we.data.entries??[]).map(se=>({path:se.path,size:se.size,mtime:yr(se.updatedAt),ref:se}))}b.set(j,ue)}x=hs(ue,h);return}if(A.kind==="source"){let j=(we,se,_e)=>({key:we,name:se,size:_e,dir:!0,mtime:null,ref:{go:we}});if(A.source==="sync"||A.source==="ama"||A.source==="apps"){if(!(A.source==="sync"?g?.sync:A.source==="ama"?g?.ama:g?.apps)){S=s("penzor.unreachable");return}x=A.source==="sync"?(g?.sync?.vaults??[]).map(se=>j(`sync:${se.vault}`,se.vault,se.bytes)):A.source==="ama"?(g?.ama??[]).map(se=>j(`ama:${se.id}`,se.name,se.sizeBytes)):(g?.apps?.apps??[]).filter(se=>se.appId!==gn&&se.files>0).map(se=>j(`app:${se.appId}`,Ze(se.appId),se.bytes));return}let ue=await n(`/storage/source-files/${A.source}`);if(y!==P)return;if(!ue.ok){S=$r(ue),a();return}x=A.source==="market"?ue.data.entries.map(we=>({key:we.slug??we.path,name:we.path,dir:!1,size:we.size,mtime:we.mtime,ref:we})):hs(ue.data.entries.map(we=>({...we,ref:we})),h);return}let M=k[k.length-1]?.id,ee=await n(`/files${M?`?parentId=${encodeURIComponent(M)}`:""}`,{projectSource:A.appId});if(y===P){if(!ee.ok){S=$r(ee),a();return}x=ee.data.map(j=>({key:j.id,name:j.displayName||j.name,dir:j.fileType==="directory",size:Number(j.fileSize)||0,mtime:yr(j.updatedAt),managed:j.managed===!0||j.archive==="item",...j.archive?{archive:j.archive}:{},ref:j}))}}let Kt=()=>{if(!x)return null;let y=R.trim().toLowerCase(),A=y?x.filter(M=>M.name.toLowerCase().includes(y)):x;return vt(A)},Xt=()=>{let y=Kt()??[],A=new Set(y.map(M=>M.key));if(_=new Set([..._].filter(M=>A.has(M))),w&&A.has(w)){_.add(w);return}w=(y.find(M=>!M.dir)??y[0])?.key??null,_=new Set(w?[w]:[]),I=w,Ne()},bt=()=>{w=null,_=new Set,I=null,H=null},Ze=y=>y===gn?s("penzor.uploads"):fs(y),$t=()=>f.kind==="app"&&f.appId===gn&&!k.some(y=>y.archive),on=y=>!!g?.apps&&g.apps.apps.find(A=>A.appId===y)?.canManage!==!1,Pt=()=>f.kind==="app"&&on(f.appId),et=y=>f.kind==="trash"?on(y.ref.appId):Pt()&&!y.managed,Bt=()=>!!g?.apps&&!!g.trash?.length&&g.trash.every(y=>on(y.appId)),xn=()=>f.kind==="app"||f.kind==="sync"||f.kind==="ama"||f.kind==="content",it=()=>f.kind==="app"?k[k.length-1]?.id??"ROOT":"ROOT",$n=()=>(Kt()??[]).filter(y=>_.has(y.key)),Yt=(y,A)=>{let M=oe().cloudInvoke;return M?M(y,A).catch(ee=>({ok:!1,error:String(ee?.message||ee)})):Promise.resolve({ok:!1,error:"no_bridge"})};function Mt(y=500){ht||he||(ht=setTimeout(()=>{ht=null,st()},y))}async function st(){let y=F,A=await Yt("penzor:transfers");if(y!==F||he)return;let M=new Map(Q.map(se=>[se.id,se.state]));A?.ok&&Array.isArray(A.items)&&(Q=A.items);let ee=Date.now(),j=Q.some(_a);Q.some(se=>se.kind==="up"&&se.state==="done"&&M.get(se.id)!=="done")&&(dt&&clearTimeout(dt),dt=setTimeout(()=>{dt=null,je()},300)),j?(at==null&&(at=ee),pe=0,te==="hidden"&&(te="open",ce=ee),te==="open"&&!We&&ee-ce>Pe&&(te="pill")):at!=null&&(Bn(at),at=null);let ue=Q.some(se=>se.state==="failed")||$.length>0,we=Q.some(se=>se.state==="paused");!j&&!we&&Q.length&&!ue&&te!=="hidden"&&(pe?ee-pe>Ft&&!We&&(te="hidden",pe=0,Ke.txClear("finished")):(pe=ee,te==="pill"&&(te="open"))),!j&&ue&&te==="pill"&&(te="open"),!Q.length&&!$.length&&(te="hidden"),Un(),a(),(j||te!=="hidden"&&pe)&&Mt()}function Bn(y){let A=Q.filter(ue=>(ue.finishedAt??0)>=y),M=A.filter(ue=>ue.kind==="up"&&ue.state==="done"),ee=A.filter(ue=>ue.kind==="down"&&ue.state==="done"),j=A.filter(ue=>ue.state==="failed");Be||(j.length?c(s("penzor.toast.txFailed",{n:j.length})):M.length?c(M.length===1?s("penzor.toast.upDoneOne",{name:M[0].name}):s("penzor.toast.upDoneMany",{n:M.length})):ee.length&&c(ee.length===1?s("penzor.toast.downloaded",{name:ee[0].name}):s("penzor.toast.downDoneMany",{n:ee.length})))}function Un(){let y=Q.filter(_a),A=y.reduce((ee,j)=>ee+Math.max(j.size,j.done),0),M=y.length?A>0?Math.min(1,y.reduce((ee,j)=>ee+j.done,0)/A):0:null;e.app?.setSpaceProgress?.(tn,M??xr(Ye?.get()??null))}function er(){if(!Ye)return;let y=za(Ye.get());y!==rn&&(rn=y,e.app?.setSpaceDot?.(tn,y))}function An(){Ye?.get()?.notes.pending||(Ce=!1),Un(),er(),a()}let D=()=>{let y=Ye?.get()??null;if(!y||!nn.size)return y;let A=(M,ee)=>nn.has(M)?{...ee,on:nn.get(M)}:ee;return{...y,notes:A("notes",y.notes),agents:A("agents",y.agents),plugins:A("plugins",y.plugins)}},re=async y=>{try{return await y()??{ok:!1}}catch(A){return{ok:!1,error:String(A?.message||A)}}},ve=()=>{te="open",ce=Date.now(),pe=0};async function Ne(){G=null;let y=kt();if(f.kind!=="app"||!y||y.dir){a();return}let A=y.key,M=await n(`/files/${encodeURIComponent(A)}/versions`);w===A&&(G=M.ok&&Array.isArray(M.data)?M.data.map(ee=>({versionNumber:ee.versionNumber,fileSize:Number(ee.fileSize)||0,createdAt:yr(ee.createdAt)})):[],a())}let kt=()=>w?(x??[]).find(y=>y.key===w)??null:null;async function tt(){await Tn(),Xt(),a()}async function je(){let y=++L;u=!0,p=null,a();let A=await oe().authStatus?.().catch(()=>null);if(y!==L)return;if(A&&!A.loggedIn){m="out",g=null,u=!1,a();return}let{snap:M,signedOut:ee}=await Wu(n);if(y===L){if(u=!1,ee){m="out",g=null,a();return}m="in",!M.ledger&&g?.ledger&&(M.ledger=g.ledger,M.ledgerStale=!0),g=M,b.clear(),p=!M.ledger&&!M.sync&&!M.ama&&!M.apps&&!M.exports&&!M.trash?s("penzor.unreachable"):null,!br(f)&&f.kind!=="exports"&&f.kind!=="trash"&&f.kind!=="source"&&((f.kind==="content"?M.contentDevices!=null:f.kind==="sync"?M.sync?.vaults.some(ue=>ue.vault===f.vault):f.kind==="ama"?M.ama?.some(ue=>ue.id===f.vaultId):f.appId===gn?M.apps:M.apps?.apps.some(ue=>ue.appId===f.appId&&ue.files>0))||(f={kind:"overview"},h="",k=[],bt())),await tt()}}async function an(y,A={},M=f){let ee=M.kind==="content"?{path:`/remotesync/content/${encodeURIComponent(M.namespace)}/nodes/${encodeURIComponent(y.ref.id)}/content`,mode:"bytes"}:M.kind==="sync"?{path:`/remotesync/vaults/${encodeURIComponent(M.vault)}/file?path=${encodeURIComponent(y.key)}`,mode:"signed"}:M.kind==="ama"?y.ref.kind==="binary"?{path:`/amadeus/vaults/${encodeURIComponent(M.vaultId)}/asset?ref=${encodeURIComponent(y.key)}`,mode:"bytes"}:{path:`/amadeus/vaults/${encodeURIComponent(M.vaultId)}/file?path=${encodeURIComponent(y.key)}`,mode:"text"}:M.kind==="app"?{path:`/files/${encodeURIComponent(y.key)}/content`,mode:"bytes"}:M.kind==="source"&&y.ref?.downloadPath?{path:y.ref.downloadPath,mode:"bytes"}:M.kind==="exports"?{path:`/exports/${encodeURIComponent(y.key)}/url`,mode:"signed"}:null;if(!ee)return;let j=await Yt("penzor:download",{...ee,name:db(y.name),size:y.size,...A});if(!j?.ok){d(j?.error||"download");return}ve(),Mt(0),a()}let ke=()=>{br(f)?e.closeView?.(_n.info,{collapse:!0}):e.openView?.(_n.info,{location:"right"})},Ke={ctx:e,locale:i,t:s,b:l,subscribe(y){return o.add(y),()=>{o.delete(y)}},auth:()=>m,loading:()=>u,error:()=>p,snap:()=>g,loc:()=>f,path:()=>h,appStack:()=>k,rows:Kt,rowsError:()=>S,selected:kt,sort:()=>T,query:()=>R,menu:()=>B,side:()=>U,confirmEmpty:()=>N,versions:()=>G,moveFolders:()=>z,thisDevice:()=>ae,setDevice(y){ae=y,a()},appLabel:Ze,canManageRow:et,canEmptyTrash:Bt,canManage:Pt,canWrite:$t,canMulti:xn,folderId:it,selection:$n,isSelected:y=>_.has(y),selectAll(){if(!xn())return;let y=Kt()??[];_=new Set(y.map(A=>A.key)),!w&&y[0]&&(w=y[0].key),B=null,a()},newFolder:()=>H,startNewFolder(){if(!$t())return;let y=s("penzor.newFolder.default"),A=new Set((x??[]).filter(ee=>ee.dir).map(ee=>ee.name)),M=y;for(let ee=1;A.has(M)&&ee<1e3;ee++)M=`${y} (${ee})`;H=M,B=null,a()},cancelNewFolder(){H!=null&&(H=null,a())},async createFolder(y){let A=y.trim();if(H=null,!A||!$t()){a();return}a();let M=await n("/files",{method:"POST",body:{type:"directory",parentId:it(),name:A},projectSource:gn});if(!M.ok){M.status===409?c(s("penzor.toast.folderExists",{name:A})):d(M);return}M.data?.id&&(w=M.data.id,_=new Set([M.data.id]),I=M.data.id),await tt()},transfers:()=>Q,notices:()=>$,async acknowledgeStorageNotice(){let y=g?.ledger?.rollout;if(!y||y.acknowledgedAt||g?.ledgerStale)return;let A=await n("/storage/notice/ack",{method:"POST",body:{revision:y.revision}});if(!A.ok){d(A);return}await je()},txRows(){if(!$t())return[];let y=it();return Q.filter(A=>A.kind==="up"&&A.projectSource===gn&&A.parentId===y&&(_a(A)||A.state==="paused")).map(A=>({key:`tx:${A.id}`,id:A.id,name:A.name,size:A.size,done:A.done,state:A.state}))},card:()=>te,setCard(y){te=y,ce=Date.now(),y!=="hidden"&&Mt(0),a()},holdCard(y){We=y,ce=Date.now(),y||Mt()},async upload(y,A){if(!$t())return;let M=F,ee=A?.id??it(),j=A?[...k,A]:[...k],ue=await y;if(M!==F||he||!ue.length)return;yn.set(ee,j);let we=await Yt("penzor:upload",{...typeof ue[0]=="string"?{paths:ue}:{files:ue},parentId:ee,projectSource:gn});if(!(M!==F||he)){if(we?.ok){ve(),Mt(0),a();return}if(we?.error==="quota"){$=[...$,{id:String(Date.now()),kind:"quota",short:Number(we.short)||0}],ve(),a();return}if(we?.error==="too_many"){c(s("penzor.err.too_many",{n:Number(we.max)||2e3}));return}we?.error!=="no_files"&&d(we?.error==="account_changed"?s("penzor.err.account_changed"):we?.error==="not_signed_in"?s("penzor.err.not_signed_in"):we?.error||"upload")}},async txOp(y,A){await Yt("penzor:transfer",{id:y,op:A}),ce=Date.now(),await st()},async txAll(y){let A=y==="pause"?M=>_a(M):y==="resume"?M=>M.state==="paused":M=>M.state==="failed"||M.state==="canceled";for(let M of Q.filter(A))await Yt("penzor:transfer",{id:M.id,op:y});y==="retry"&&($=[]),ce=Date.now(),await st()},async txClear(y){await Yt("penzor:transfers:clear",{which:y}),y==="all"&&($=[]),await st()},dismissNotice(y){$=$.filter(A=>A.id!==y),!Q.length&&!$.length&&(te="hidden"),a()},locate(y){if(y.kind==="down"){y.localPath&&oe().revealHostPath?.(y.localPath);return}let A=yn.get(y.targetId??"")??[];f={kind:"app",appId:gn},k=A,h="",R="",U={kind:"view"},B=null,bt(),y.fileId&&y.parentId===y.targetId&&(w=y.fileId,_=new Set([y.fileId])),a(),e.app?.openSpace?.(tn).then(()=>{e.openView?.(_n.main),ke()}),tt()},async downloadMany(y){let A=y.filter(se=>!se.dir);if(A.length<=1){A[0]&&await Ke.download(A[0]);return}let M=new Date,ee=s("penzor.download.folder",{date:`${M.getFullYear()}-${String(M.getMonth()+1).padStart(2,"0")}-${String(M.getDate()).padStart(2,"0")}`}),j=`${Date.now()}`,ue=f,we=F;for(let se of A){if(F!==we)break;await an(se,{subdir:ee,batch:j},ue)}},async trashMany(y){if(f.kind!=="app"||!y.length||!y.every(et))return;if(y.length===1){await Ke.trash(y[0]);return}let A=await n("/files/batch/delete",{method:"POST",body:{ids:y.map(ee=>ee.key)},projectSource:f.appId});if(!A.ok){d(A);return}let M=(A.data?.results??[]).filter(ee=>ee.success===!1).length;c(M?s("penzor.toast.batchPartial",{n:M}):s("penzor.toast.trashedN",{n:y.length})),bt(),await je()},async moveMany(y,A){if(f.kind!=="app"||!y.length||!y.every(et))return;U={kind:"view"};let M=y.map(ue=>ue.key).filter(ue=>ue!==A.id),ee=await n("/files/batch/move",{method:"POST",body:{ids:M,parentId:A.id},projectSource:f.appId});if(!ee.ok){d(ee),a();return}let j=(ee.data?.results??[]).filter(ue=>ue.success===!1).length;c(j?s("penzor.toast.batchPartial",{n:j}):s("penzor.toast.movedN",{n:M.length,name:A.name})),bt(),await je()},setVisible(y){Be=y},picker:{},refresh:je,go(y){let A=Vu(y);if(!A)return;let M=vr(A)===vr(f);f=A,M||(h="",k=[],bt(),R="",U={kind:"view"},N=!1),B=null,a(),e.openView?.(_n.main),ke(),tt()},openFolder(y){f={kind:"app",appId:gn},k=y,h="",R="",U={kind:"view"},B=null,N=!1,bt(),a(),e.openView?.(_n.main),ke(),tt()},openDir(y){if(!(!y.dir||f.kind==="exports"||f.kind==="trash")){if(f.kind==="source"&&y.ref?.go){Ke.go(y.ref.go);return}f.kind==="app"?k=[...k,{id:y.key,name:y.name,...y.archive?{archive:!0}:{}}]:h=y.key,bt(),R="",U={kind:"view"},tt()}},up(y){if(f.kind==="app")k=k.slice(0,y??Math.max(0,k.length-1));else{let A=h?h.split("/"):[];h=A.slice(0,y??Math.max(0,A.length-1)).join("/")}bt(),U={kind:"view"},tt()},select(y,A){let M=Kt()??[];if(y&&A?.range&&xn()&&I&&M.some(ee=>ee.key===I)){let ee=M.findIndex(ue=>ue.key===I),j=M.findIndex(ue=>ue.key===y.key);_=new Set(M.slice(Math.min(ee,j),Math.max(ee,j)+1).map(ue=>ue.key)),w=y.key}else y&&A?.toggle&&xn()?(_.has(y.key)&&_.size>1?(_.delete(y.key),w===y.key&&(w=[..._].pop()??null)):(_.add(y.key),w=y.key),I=y.key):(w=y?.key??null,_=new Set(w?[w]:[]),I=w);H=null,U={kind:"view"},B=null,y&&!br(f)&&e.openView?.(_n.info,{location:"right"}),Ne(),a()},setSort(y){T=y,a()},setQuery(y){R=y,a()},openMenu(y,A,M){M&&!_.has(M.key)&&(w=M.key,_=new Set([M.key]),I=M.key,Ne()),B={x:y,y:A,row:M},U={kind:"view"},a()},closeMenu(){B&&(B=null,a())},setSide(y){U=y,B=null,y.kind==="move"&&(z=null,Ke.moveBrowse(y.at)),e.openView?.(_n.info,{location:"right"}),a()},setConfirmEmpty(y){N=y,a()},async download(y){y.dir||(B=null,await an(y))},async trash(y){if(f.kind!=="app"||!et(y))return;let A=Kt()??[],M=A.findIndex(ue=>ue.key===y.key),ee=await n(`/files/${encodeURIComponent(y.key)}`,{method:"DELETE",projectSource:f.appId});if(!ee.ok){d(ee);return}c(s("penzor.toast.trashed",{name:y.name}));let j=A[M+1]??A[M-1];w=j&&j.key!==y.key?j.key:null,B=null,await je()},async restore(y){if(!g||f.kind!=="trash"||!et(y))return;let A=await n(`/trash/${encodeURIComponent(y.key)}/restore`,{method:"POST",body:{}});if(!A.ok){d(A);return}c(s("penzor.toast.restored",{name:y.name})),w=null,await je()},async purge(y){if(!g||f.kind!=="trash"||!et(y))return;let A=await n(`/trash/${encodeURIComponent(y.key)}`,{method:"DELETE"});if(U={kind:"view"},!A.ok){d(A),a();return}c(s("penzor.toast.purged",{name:y.name})),w=null,await je()},async emptyTrash(){if(!g||!Bt())return;let y=await n("/trash?all=1",{method:"DELETE"});if(N=!1,!y.ok){d(y),a();return}let A=(y.data?.results??[]).filter(M=>M.success===!1).length;c(A?s("penzor.toast.emptyPartial",{n:A}):s("penzor.toast.emptied")),w=null,await je()},async rename(y,A){let M=A.trim();if(U={kind:"view"},!M||M===y.name){a();return}let ee=f.kind==="exports"?await n(`/exports/${encodeURIComponent(y.key)}/rename`,{method:"PUT",body:{newFileName:M}}):f.kind==="app"&&et(y)?await n(`/files/${encodeURIComponent(y.key)}/rename`,{method:"PATCH",body:{name:M},projectSource:f.appId}):null;if(ee){if(!ee.ok){d(ee),a();return}c(s("penzor.toast.renamed",{name:M})),await je()}},moveBrowse(y){if(f.kind!=="app"||!Pt())return;U={kind:"move",at:y},z=null,a();let A=y[y.length-1]?.id,M=f.appId;n(`/files${A?`?parentId=${encodeURIComponent(A)}`:""}`,{projectSource:M}).then(ee=>{U.kind!=="move"||U.at!==y||(z=ee.ok?ee.data.filter(j=>j.fileType==="directory").map(j=>({id:j.id,name:j.name})):[],a())})},async moveTo(y,A){if(f.kind!=="app"||!et(y))return;if(U={kind:"view"},A.id===y.key){a();return}let M=await n(`/files/${encodeURIComponent(y.key)}/move`,{method:"PATCH",body:{parentId:A.id},projectSource:f.appId});if(!M.ok){d(M),a();return}c(s("penzor.toast.moved",{name:A.name})),w=null,await je()},async restoreVersion(y,A){if(!et(y))return;let M=await n(`/files/${encodeURIComponent(y.key)}/restore/${A.versionNumber}`,{method:"POST",body:{}});if(!M.ok){d(M);return}c(s("penzor.toast.versionRestored",{n:A.versionNumber})),await je(),Ne()},async deleteExport(y){if(!g)return;let A=await n(`/exports/${encodeURIComponent(y.key)}`,{method:"DELETE"});if(U={kind:"view"},!A.ok){d(A),a();return}c(s("penzor.toast.purged",{name:y.name})),w=null,await je()},signIn(){oe().forsionLogin?.()},openSync(){e.app?.openSettings?.("sync/s-remote")},async focusVault(y){await e.app?.openSpace?.(tn),g||await je(),Ke.go(`sync:${y}`)},hasSync:()=>!!Ye,content:()=>wt,syncState:D,syncBusy:y=>Jt.has(y),async setSync(y,A){if(!Ye||Jt.has(y))return;Jt.add(y),nn.set(y,A),a();let M=await re(()=>Ye.set(y,A));Jt.delete(y),nn.delete(y),!he&&(M.ok||d(M.error||"sync"),An())},async resolveNotes(y){if(!Ye||Jt.has("resolve"))return;Jt.add("resolve"),a();let A=await re(()=>Ye.resolveNotes(y));Jt.delete("resolve"),Ce=!1,!he&&(A.ok||d(A.error||"sync"),An())},confirmCloud:()=>Ce,setConfirmCloud(y){Ce=y,a()},enter(){},dispose(){he=!0,clearInterval(Zt),ht&&clearTimeout(ht),dt&&clearTimeout(dt),e.app?.setSpaceProgress?.(tn,null),rn&&e.app?.setSpaceDot?.(tn,!1),o.clear(),tr?.(),So?.(),Ma?.()}},wt=null,Ie="",yt=async()=>{let y=oe().cloudInvoke;if(!y){clearInterval(Zt);return}let A=await y(_t.get).catch(j=>({ok:!1,error:String(j)}));if(he)return;!A?.ok&&/unavailable|not a Forsion Extend channel/i.test(A?.error??"")&&clearInterval(Zt);let M=A?.ok&&A.value?.available?A.value:null,ee=M?JSON.stringify([hn(M),M.config.enabled,M.deviceId,M.devices]):"";wt=M,ee!==Ie&&(Ie=ee,a())},Zt=setInterval(()=>void yt(),5e3);yt();let tr=e.subscribeLocale?.(()=>a()),Ma=Ye?.subscribe(An);er(),st();let So=oe().onAuthChanged?.(()=>{++P,++L,++F,g=null,x=null,S=null,b.clear(),bt(),B=null,U={kind:"view"},N=!1,G=null,z=null,f={kind:"overview"},h="",k=[],R="",yn.clear(),$=[],Q=[],te="hidden",at=null,pe=0,dt&&(clearTimeout(dt),dt=null),e.app?.setSpaceProgress?.(tn,null),Ce=!1,nn.clear(),a(),je()});return Ke}var np=e=>e.kind==="content"?"penzor.source.readonly":e.kind==="sync"?"penzor.side.readonlySync":e.kind==="ama"?"penzor.side.readonlyAma":e.kind==="source"?e.source==="plugins"?"penzor.source.pluginNote":e.source==="market"?"penzor.source.marketNote":"penzor.source.readonly":null;var rp=`
1356
+ ${fp(e,t)}`,d=await s({prompt:c,send:!1});d?.ok?r(""):i(d?.error||e.t("guide.ask.unavailable"))};return n("div",{class:"fxg-pane",children:[n("p",{class:"fxg-muted",children:e.t("guide.ask.hint",{chapter:e.title(t)})}),n("textarea",{class:"fxg-input",rows:4,value:o,placeholder:e.t("guide.ask.placeholder"),onInput:c=>r(c.target.value)}),n("button",{type:"button",class:"btn sm",disabled:!s,onClick:()=>void l(),children:e.t("guide.ask.send")}),(!s||a)&&n("p",{class:"fxg-muted",children:a||e.t("guide.ask.unavailable")})]})}function mp({g:e}){Ra(e);let[t,o]=S("progress");return n(La,{g:e,kind:"side",children:[n("div",{class:"fxg-tabs",role:"tablist",children:["progress","ask"].map(r=>n("button",{type:"button",role:"tab","aria-selected":t===r,class:t===r?"is-on":"",onClick:()=>o(r),children:e.t(r==="progress"?"guide.progress":"guide.askTangu")},r))}),t==="progress"?n(jv,{g:e}):n(Gv,{g:e})]})}function gp({g:e}){Ra(e);let t=e.companionChapter(),o=Ho(t,e.env())==="done",r=ie(o);return Y(()=>{if(o&&!r.current){let a=window.setTimeout(()=>e.ctx.closeView?.(Sn.companion),1500);return()=>window.clearTimeout(a)}r.current=o},[o]),n(La,{g:e,kind:"companion",children:n("div",{class:"fxg-pane",children:[n("div",{class:"fxg-companion-head",children:[n("span",{class:"fxg-sub",children:e.t("guide.title")}),e.ctx.closeView&&n("button",{type:"button",class:"fxg-icon-btn","aria-label":e.t("guide.companion.close"),onClick:()=>e.ctx.closeView?.(Sn.companion),children:"\xD7"})]}),n("div",{class:"fxg-h",children:e.title(t)}),n("div",{class:"fxg-sub",children:e.t("guide.tasks")}),n(Ms,{g:e,chapter:t}),n("button",{type:"button",class:"fx-link fxg-back",onClick:()=>void e.openGuide(t.id),children:e.t("guide.companion.back")})]})})}function hp({g:e,letter:t}){Ra(e);let o=t?t.kind==="level"?t.level:"new":null,r=o&&(o==="new"||Ma(o,e.env()))?zn(o):[];return n(La,{g:e,kind:"letter",children:[r.map(a=>n("div",{class:"fxg-letter-chapter",children:[n("button",{type:"button",class:"fxg-letter-title",onClick:()=>void e.openGuide(a.id),children:e.title(a)}),n(Ms,{g:e,chapter:a})]},a.id)),n("button",{type:"button",class:"btn sm",onClick:()=>void e.openGuide(r[0]?.id??to("welcome")?.id),children:e.t("guide.letter.open")})]})}function Kv(e){return!!e&&typeof e.registerView=="function"&&typeof e.registerListSource=="function"&&typeof e.openView=="function"&&typeof e.achievements?.count=="function"&&typeof e.achievements.subscribe=="function"&&typeof e.app?.openSpace=="function"&&typeof e.ui?.mountMarkdownEditor=="function"}function bp(e,t=window){if(!Kv(e)||t.tangu?.unitPage)return null;let o=t.tangu,r=ap(e,{desktop:typeof o?.appVersion=="function"&&!o.mobile,appVersion:typeof o?.appVersion=="function"?o.appVersion().catch(()=>null):Promise.resolve(null)}),a=i=>s=>(Re(n(i,{g:r}),s),()=>{Re(null,s)});return e.registerView({id:Sn.reader,title:r.t("guide.title"),icon:"page",workspaceSource:Ps,mount:a(pp)}),e.registerView({id:Sn.side,title:r.t("guide.progress"),icon:"list-view",mount:a(mp)}),e.registerView({id:Sn.companion,title:r.t("guide.title"),icon:"todo",mount:a(gp)}),e.registerListSource({id:Ps,title:r.t("guide.title"),search:!0,items:i=>{let s=r.env(),l=i?.query?.trim().toLowerCase()??"",c=r.justUnlocked();return Ia(r).flatMap(({level:d,chapters:f})=>f.map(u=>{let p=Ho(u,s);return{key:u.id,title:r.title(u),group:r.levelName(d),icon:p==="done"?"circle-check":p==="locked"?"lock":"circle",hint:d===c&&p!=="locked"?r.t("guide.justUnlocked"):void 0}})).filter(d=>!l||d.title.toLowerCase().includes(l))},subscribe:i=>r.subscribe(i),activeKey:()=>r.selected().id,open:i=>{r.select(i.key),e.openView(Sn.reader)}}),e.registerCommand?.({id:"open-guide",title:()=>r.t("guide.cmd.open"),keywords:"guide manual help tutorial levels \u4F7F\u7528\u6307\u5357 \u8BF4\u660E\u4E66 \u6559\u7A0B \u5E2E\u52A9 \u7B49\u7EA7 \u4EFB\u52A1",run:()=>{r.openGuide()}}),e.inbox?.registerCard({sender:()=>r.t("guide.title"),mount(i,s){return Re(n(hp,{g:r,letter:r.letter(s.id)}),i),()=>{Re(null,i)}}}),r}var Yv=["uploads","ama","sync","agents","profile","apps","plugins","exports","market"],Sr={uploads:"penzor.uploads",ama:"penzor.ledger.ama",sync:"penzor.ledger.sync",agents:"penzor.source.agents",profile:"penzor.source.profile",apps:"penzor.ledger.apps",plugins:"penzor.source.plugins",exports:"penzor.ledger.exports",market:"penzor.source.market"},Is=e=>e==="uploads"?"app:penzor":e==="exports"?"exports":`source:${e}`,Rs=e=>{let t=e?.sources.find(o=>o.id==="market");return t?.status==="ready"&&((t.fileCount??0)>0||(t.liveBytes??0)>0)},no=e=>Number.isFinite(Number(e))?Number(e):0,_n="penzor";var yp=500;async function Zv(e,t){let o=Math.min(20,no(t.totalPages));if(o<=1)return t.files;let r=await Promise.all(Array.from({length:o-1},(a,i)=>e(`/exports/list?pageSize=${yp}&sortBy=date&sortOrder=desc&page=${i+2}`)));return[...t.files,...r.flatMap(a=>a.ok&&Array.isArray(a.data?.files)?a.data.files:[])]}async function xp(e){let[t,o,r,a,i,s,l,c,d]=await Promise.all([e("/remotesync/vaults"),e("/amadeus/vaults"),e("/storage/quota"),e("/storage/files-by-app"),e(`/exports/list?pageSize=${yp}&sortBy=date&sortOrder=desc`),e("/trash?all=1"),e("/storage/ledger"),e("/storage/source-trash/ama"),e("/remotesync/content/devices")]),u=[t,o,r,a,i,s].every(m=>!m.ok&&m.status===401);return{snap:{contentDevices:d.ok&&Array.isArray(d.data?.devices)?d.data.devices:null,amaTrash:c.ok&&Array.isArray(c.data?.entries)?c.data.entries:null,ledger:l.ok&&l.data?.schemaVersion===1?l.data:null,sync:t.ok&&Array.isArray(t.data?.vaults)?{...t.data,vaults:t.data.vaults.filter(m=>m.vault!=="forsion-content")}:null,ama:o.ok&&Array.isArray(o.data?.vaults)?o.data.vaults.filter(m=>(m.role??"owner")==="owner").map(m=>({id:m.id,name:m.name,sizeBytes:no(m.sizeBytes)})):null,apps:r.ok&&a.ok&&Array.isArray(a.data?.apps)?{used:no(r.data?.used),quota:no(r.data?.quota),apps:a.data.apps,largest:a.data.largest??[]}:null,exports:i.ok&&Array.isArray(i.data?.files)?{files:await Zv(e,i.data),total:no(i.data.total),totalBytes:no(i.data.totalBytes)}:null,trash:s.ok&&Array.isArray(s.data)?s.data:null,at:Date.now()},signedOut:u}}var Qv={"ai-studio":"AI Studio","photo-studio":"Photo Studio",notebase:"Notebase",chat:"Forsion Chat",connect:"Forsion Connect","video-studio":"Video Studio",bluebird:"Bluebird",cnti:"CNTI"},Ls=e=>e?Qv[e]??e.split(/[-_]/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"\u2014",ko=e=>e.kind==="content"?`content:${e.namespace}`:e.kind==="source"?`source:${e.source}`:e.kind==="sync"?`sync:${e.vault}`:e.kind==="ama"?`ama:${e.vaultId}`:e.kind==="app"?`app:${e.appId}`:e.kind==="overview"?"ov":e.kind,wo=e=>e.kind==="overview"||e.kind==="sync-home";function kp(e){if(e==="ov")return{kind:"overview"};if(e==="sync-home"||e==="exports"||e==="trash")return{kind:e};let t=e.indexOf(":"),o=t<0?e:e.slice(0,t),r=t<0?"":e.slice(t+1);return r?o==="source"&&Yv.includes(r)?{kind:"source",source:r}:o==="content"&&/^(default|device-[A-Za-z0-9_-]{1,64})$/.test(r)?{kind:"content",namespace:r}:o==="sync"?{kind:"sync",vault:r}:o==="ama"?{kind:"ama",vaultId:r}:o==="app"?{kind:"app",appId:r}:null:null}var Ds=(e,t)=>t?t.config.enabled||t.config.revision>0:!!e?.contentDevices?.length;function wp(e,t,o,r=null){let a=m=>we(o,Sr[m]),i=m=>zr(m,o),s=m=>{let g=e?.ledger?.sources.find(h=>h.id===m);return g?.status==="ready"?g.liveBytes+g.trashBytes:null},l=m=>{let g=s(m);return g==null?"\u2014":`${e?.ledgerStale?"~ ":""}${i(g)}`},c=Ds(e,r),d=[{key:"drive-root",title:t.drive,kind:"folder",icon:t.driveIcon},{key:"ov",title:t.overview,parent:"drive-root",icon:"layout"},{key:Is("uploads"),title:t.files,parent:"drive-root",icon:"folder",hint:l("uploads")}];if(Rs(e?.ledger)&&d.push({key:Is("market"),title:a("market"),parent:"drive-root",icon:"boxes",hint:l("market")}),c&&e?.contentDevices){d.push({key:"synced",title:t.synced,kind:"folder",icon:"cloud"},{key:"content:default",title:t.all,parent:"synced",icon:"cloud"});let m=r?.deviceId;m&&d.push({key:`content:device-${m}`,title:t.thisBackup,parent:"synced",icon:"lock"});for(let g of e.contentDevices.filter(h=>h.id!==m))d.push({key:`content:device-${g.id}`,title:g.name||`Forsion-${g.id.slice(0,8)}`,parent:"synced",icon:"link"})}let f=["ama","apps","plugins","exports",...c?[]:["agents","profile"]],u=f.reduce((m,g)=>m==null||s(g)==null?null:m+s(g),0);d.push({key:"by-app",title:t.byApp,kind:"folder",icon:"package",hint:u==null?"\u2014":i(u)});let p=(m,g,h=a(m))=>{let k=m==="ama"||m==="sync"||m==="apps",y=Is(m);if(d.push({key:k?y+":group":y,parent:g,title:h,icon:m==="sync"?"clock":"folder",...k?{kind:"folder"}:{},hint:l(m)}),k&&d.push({key:`source:${m}`,parent:y+":group",title:t.overview,icon:"layout"}),m==="sync")for(let x of e?.sync?.vaults??[])d.push({key:`sync:${x.vault}`,parent:y+":group",title:x.vault,icon:"database",hint:i(x.bytes)});if(m==="ama")for(let x of e?.ama??[])d.push({key:`ama:${x.id}`,parent:y+":group",title:x.name,icon:"page",hint:i(x.sizeBytes)});if(m==="apps")for(let x of e?.apps?.apps.filter(w=>w.appId!==_n&&w.files>0)??[])d.push({key:`app:${x.appId}`,parent:y+":group",title:Ls(x.appId),icon:"archive",hint:i(x.bytes)})};for(let m of f)p(m,"by-app");return p("sync","",c?t.legacy:a("sync")),d.push({key:"trash",title:t.trash,icon:"trash",hint:e?.trash?t.items(Ns(e.trash).length):"\u2014"}),d.map(m=>m.parent===""?(({parent:g,...h})=>h)(m):m)}function Ns(e){let t=new Map(e.map(a=>[a.id,a])),o=a=>{let i=a;for(let s=0;s<64&&i.parentId&&t.has(i.parentId);s++)i=t.get(i.parentId);return i},r=new Map;for(let a of e){let i=o(a),s=r.get(i.id)??{inner:0,innerBytes:0};i.id!==a.id&&s.inner++,s.innerBytes+=no(a.fileSize),r.set(i.id,s)}return e.filter(a=>!(a.parentId&&t.has(a.parentId))).map(a=>({...a,...r.get(a.id)}))}function Os(e,t){let o=t?`${t}/`:"",r=new Map,a=[];for(let i of e){if(o&&!i.path.startsWith(o))continue;let s=i.path.slice(o.length),l=s.indexOf("/");if(l<0){a.push({key:i.path,name:s,dir:!1,size:i.size,mtime:i.mtime,col4:i.who??null,ref:i.ref});continue}let c=s.slice(0,l),d=o+c,f=r.get(d)??{key:d,name:c,dir:!0,size:0,mtime:null,count:0};f.size+=i.size,f.count=(f.count??0)+1,i.mtime!=null&&(f.mtime==null||i.mtime>f.mtime)&&(f.mtime=i.mtime),r.set(d,f)}return[...Na([...r.values()]),...Na(a)]}var Na=e=>e.sort((t,o)=>(o.mtime??-1)-(t.mtime??-1)||t.name.localeCompare(o.name)),zp=e=>[...Na(e.filter(t=>t.dir)),...Na(e.filter(t=>!t.dir))];function zr(e,t){let o=Math.max(0,no(e));if(o<1024)return`${o} B`;if(o<1024*1024)return`${Math.round(o/1024)} KB`;if(o<1024**3){let r=o/1048576;return`${r<100?Number(r.toFixed(1)):Math.round(r)} MB`}return`${Number((o/1024**3).toFixed(2))} GB`}function Fs(e,t,o){let r=zr(e,o),a=zr(t,o),i=a.slice(a.indexOf(" "));return`${r.endsWith(i)?r.slice(0,-i.length):r} / ${a}`}var ey=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vp=e=>String(e).padStart(2,"0");function Wt(e,t,o=Date.now()){if(e==null||!Number.isFinite(e))return"\u2014";let r=new Date(e),a=new Date(o);a.setHours(0,0,0,0);let i=new Date(r);i.setHours(0,0,0,0);let s=Math.round((a.getTime()-i.getTime())/864e5),l=`${vp(r.getHours())}:${vp(r.getMinutes())}`;if(s===0)return t==="zh"?`\u4ECA\u5929 ${l}`:`Today ${l}`;if(s===1)return t==="zh"?`\u6628\u5929 ${l}`:`Yesterday ${l}`;let c=r.getFullYear()===a.getFullYear();return t==="zh"?`${c?"":`${r.getFullYear()} \u5E74 `}${r.getMonth()+1} \u6708 ${r.getDate()} \u65E5`:`${ey[r.getMonth()]} ${r.getDate()}${c?"":`, ${r.getFullYear()}`}`}function zo(e){if(e==null||e==="")return null;if(typeof e=="number")return e<1e12?e*1e3:e;let t=Number(e);if(Number.isFinite(t))return t<1e12?t*1e3:t;let o=Date.parse(String(e));return Number.isNaN(o)?null:o}var Oa=e=>[e.notes.on&&!e.notes.pending,e.agents.on,e.plugins.on].filter(Boolean).length;function _r(e){let t=e.notes.last;return!!t&&t.ok===!1&&!(t.errors.length>0&&t.errors.every(o=>o.includes("already-running")))}var Fa=e=>!!e&&e.signedIn&&(!!e.notes.pending||e.notes.on&&_r(e)),ty=e=>/"code"\s*:\s*"QUOTA"/.test(e),Sp=(e,t)=>e.notes.on&&!e.notes.pending&&e.notes.backend==="penzor"&&(t>0&&(e.notes.localBytes??0)>t||!!e.notes.last?.errors.some(ty));function So(e){if(!e?.notes.running)return null;let t=e.notes.progress;return t&&t.total>0?Math.min(1,Math.max(0,t.done/t.total)):0}function _p(e,t){if(!e||!e.signedIn)return;let o=So(e);if(o!=null)return o>0?we(t,"penzor.sync.running",{pct:Math.round(o*100)}):we(t,"penzor.sync.runningPlain");if(e.notes.pending)return we(t,"penzor.sync.waiting");let r=Oa(e);return r?we(t,"penzor.sync.onN",{n:r}):we(t,"penzor.sync.allOff")}var Cr=e=>e.jobs.filter(t=>t.state==="failed"&&!e.jobs.some(o=>o.path===t.path&&o.at>t.at&&o.state==="done"));function Cn(e){if(!e.config.enabled)return{kind:"off"};if(e.paused)return{kind:"paused"};let t=e.jobs.filter(a=>a.state==="queued"||a.state==="active");if(t.length){let a=t.reduce((s,l)=>s+(l.size??0),0),i=t.reduce((s,l)=>s+l.done,0);return{kind:"run",pct:a>0?Math.min(99,Math.round(i/a*100)):0}}if(e.phase==="scanning"||e.phase==="syncing")return{kind:"scan"};let o=Cr(e).length+(e.error?1:0);if(o)return{kind:"warn",n:o};let r=e.jobs.filter(a=>a.state==="done").map(a=>a.finishedAt??a.at);return{kind:"ok",at:r.length?Math.max(...r):null}}function Cp(e,t){return e.kind==="off"?we(t,"penzor.cs.statusOff"):e.kind==="paused"?we(t,"penzor.cs.statusPaused"):e.kind==="run"?`${e.pct}%`:e.kind==="scan"?we(t,"penzor.sync.runningPlain"):e.kind==="warn"?we(t,"penzor.cs.statusWarn",{n:e.n}):we(t,"penzor.cs.statusOk")}function Ap(e,t){let o=Oa(e);return e.notes.pending?we(t,"penzor.sync.badgeWaiting",{n:o}):o?we(t,"penzor.sync.onN",{n:o}):we(t,"penzor.sync.allOff")}function $s(e,t){let o=Math.max(0,Math.round(e.intervalMin)),r=o?o%60===0?we(t,"penzor.sync.everyHours",{n:o/60}):we(t,"penzor.sync.every",{n:o}):we(t,"penzor.sync.manual");return e.syncOnStart?`${r} \xB7 ${we(t,"penzor.sync.onStart")}`:r}function An(e,t,o=Date.now()){if(e==null||!Number.isFinite(e))return"\u2014";let r=Math.max(0,o-e);return r<6e4?we(t,"penzor.justNow"):r<36e5?we(t,"penzor.sync.minAgo",{n:Math.floor(r/6e4)}):r<6*36e5?we(t,"penzor.sync.hoursAgo",{n:Math.floor(r/36e5)}):Wt(e,t,o)}function $a(e,t=!1){return t?"folder":/\.(png|jpe?g|gif|webp|heic|dng|svg|bmp|tiff?)$/i.test(e)?"image":/\.(md|txt|pdf|docx?|rtf)$/i.test(e)?"page":/\.db$/i.test(e)?"database":"attachment"}function Ep(e,t){let o=null;for(let r of t)(!r.source||e===r.source||e.startsWith(r.source+"/"))&&(!o||r.source.length>o.source.length)&&(o=r);return o}var Ut={get:"penzor:sync:get",preview:"penzor:sync:preview",apply:"penzor:sync:apply",run:"penzor:sync:run",pause:"penzor:sync:pause",retry:"penzor:sync:retry",rename:"penzor:sync:rename",setup:"penzor:sync:setup",archiveSeen:"penzor:sync:archiveSeen"};var Tp=e=>String(e??"").normalize("NFC").trim().replace(/\s+/g," ").toLowerCase(),Bs=(e,t,o)=>{let r=Tp(e);return r?/[\[\]]/.test(e)||e.trim().length>64?"invalid":r==="macos"||r==="windows"||r==="linux"?"reserved":t.some(a=>a.id!==o&&Tp(a.name)===r)?"taken":null:null};var hn="forsion-penzor",Rn={main:"penzor",info:"penzor-info"},Us="penzor-places",Hs="forsion-extend.penzor.ready",Pp="forsion-extend.penzor.focus",Ba=e=>e.state==="active"||e.state==="queued",Wo=e=>e.ok?"":e.detail||e.code||e.transport||(e.status?`HTTP ${e.status}`:"offline"),ny=e=>e.slice(e.lastIndexOf("/")+1);function Mp(e,t={}){let o=t.api??Z,r=new Set,a=()=>{for(let z of[...r])try{z()}catch(T){console.error("[penzor] listener failed",T)}},i=()=>Ne(e.getLocale?.()),s=(z,T)=>we(i(),z,T),l=z=>zr(z,i()),c=z=>e.app?.notify?.(z),d=z=>c(s("penzor.toast.failed",{reason:typeof z=="string"?z:Wo(z)})),f="unknown",u=!1,p=null,m=null,g={kind:"overview"},h="",k=[],y=null,x=null,w=null,C="mtime",M="",$=null,U={kind:"view"},O=!1,j=null,_=null,L=0,B=0,P=0,J=t.device??null,v=new Map,A=new Set,N=null,X=null,Q=[],H=[],oe="hidden",ge=0,He=!1,pe=0,Le=!1,Qe=null,be=!1,Ke=null,It=new Map,V=null,ue=!te().mobile&&typeof e.app?.sync?.get=="function"?e.app.sync:null,ke=new Map,Pe=new Set,fe=!1,ot=!1,Ce=1e4,pt=4e3,rt=z=>{let T=C==="size"?(I,re)=>re.size-I.size:C==="name"?(I,re)=>I.name.localeCompare(re.name):null;return T?[...z.filter(I=>I.dir).sort(T),...z.filter(I=>!I.dir).sort(T)]:zp([...z])};async function un(){let z=++L,T=g;if(x=null,T.kind==="overview"||T.kind==="sync-home"){y=null;return}if(T.kind==="exports"){y=(m?.exports?.files??[]).map(K=>({key:K.fileId,name:K.fileName,dir:!1,size:K.size,mtime:zo(K.createdAt),col4:at(K.appId),ref:K}));return}if(T.kind==="trash"){y=Ns(m?.trash??[]).map(K=>({key:K.id,name:K.name,dir:K.fileType==="directory",size:K.fileType==="directory"?K.innerBytes:K.fileSize,mtime:zo(K.deletedAt),col4:K.parentName?`${at(K.appId)} / ${K.parentName}`:at(K.appId),count:K.fileType==="directory"?K.inner:void 0,ref:K}));return}if(y=null,a(),T.kind==="content"){let K=await o(`/remotesync/content/${encodeURIComponent(T.namespace)}`);if(z!==L)return;if(!K.ok){x=Wo(K),a();return}if(K.data.schemaVersion!==1||!Array.isArray(K.data.nodes)){x=s("penzor.unreachable");return}let ve=K.data.nodes.filter(De=>!De.deleted),Ee=ve.filter(De=>De.kind==="file"&&De.version).map(De=>({path:De.path,size:De.size??0,mtime:De.mtime??null,ref:De}));v.set(ko(T),Ee);let de=De=>{let Nr=0,ao=null,To=0;for(let Wn of Ee)Wn.path.startsWith(De+"/")&&(Nr+=Wn.size,To++,Wn.mtime!=null&&(ao==null||Wn.mtime>ao)&&(ao=Wn.mtime));return{size:Nr,mtime:ao,count:To}};y=ve.filter(De=>(De.path.includes("/")?De.path.slice(0,De.path.lastIndexOf("/")):"")===h).map(De=>De.kind==="folder"?{key:De.path,name:De.name,dir:!0,...de(De.path),ref:De}:{key:De.path,name:De.name,dir:!1,size:De.size??0,mtime:De.mtime??null,ref:De});return}if(T.kind==="sync"||T.kind==="ama"){let K=ko(T),ve=v.get(K);if(!ve){if(T.kind==="sync"){let Ee=await o(`/remotesync/vaults/${encodeURIComponent(T.vault)}/manifest`);if(z!==L)return;if(!Ee.ok){x=Wo(Ee),a();return}ve=Ee.data.files.map(de=>({path:de.path,size:de.size,mtime:zo(de.mtimeMs),who:de.device??null,ref:de}))}else{let Ee=await o(`/amadeus/vaults/${encodeURIComponent(T.vaultId)}/tree`);if(z!==L)return;if(!Ee.ok){x=Wo(Ee),a();return}ve=(Ee.data.entries??[]).map(de=>({path:de.path,size:de.size,mtime:zo(de.updatedAt),ref:de}))}v.set(K,ve)}y=Os(ve,h);return}if(T.kind==="source"){let K=(Ee,de,De)=>({key:Ee,name:de,size:De,dir:!0,mtime:null,ref:{go:Ee}});if(T.source==="sync"||T.source==="ama"||T.source==="apps"){if(!(T.source==="sync"?m?.sync:T.source==="ama"?m?.ama:m?.apps)){x=s("penzor.unreachable");return}y=T.source==="sync"?(m?.sync?.vaults??[]).map(de=>K(`sync:${de.vault}`,de.vault,de.bytes)):T.source==="ama"?(m?.ama??[]).map(de=>K(`ama:${de.id}`,de.name,de.sizeBytes)):(m?.apps?.apps??[]).filter(de=>de.appId!==_n&&de.files>0).map(de=>K(`app:${de.appId}`,at(de.appId),de.bytes));return}let ve=await o(`/storage/source-files/${T.source}`);if(z!==L)return;if(!ve.ok){x=Wo(ve),a();return}y=T.source==="market"?ve.data.entries.map(Ee=>({key:Ee.slug??Ee.path,name:Ee.path,dir:!1,size:Ee.size,mtime:Ee.mtime,ref:Ee})):Os(ve.data.entries.map(Ee=>({...Ee,ref:Ee})),h);return}let I=k[k.length-1]?.id,re=await o(`/files${I?`?parentId=${encodeURIComponent(I)}`:""}`,{projectSource:T.appId});if(z===L){if(!re.ok){x=Wo(re),a();return}y=re.data.map(K=>({key:K.id,name:K.displayName||K.name,dir:K.fileType==="directory",size:Number(K.fileSize)||0,mtime:zo(K.updatedAt),managed:K.managed===!0||K.archive==="item",...K.archive?{archive:K.archive}:{},ref:K}))}}let Gt=()=>{if(!y)return null;let z=M.trim().toLowerCase(),T=z?y.filter(I=>I.name.toLowerCase().includes(z)):y;return rt(T)},Jt=()=>{let z=Gt()??[],T=new Set(z.map(I=>I.key));if(A=new Set([...A].filter(I=>T.has(I))),w&&T.has(w)){A.add(w);return}w=(z.find(I=>!I.dir)??z[0])?.key??null,A=new Set(w?[w]:[]),N=w,je()},kt=()=>{w=null,A=new Set,N=null,X=null},at=z=>z===_n?s("penzor.uploads"):Ls(z),Ht=()=>g.kind==="app"&&g.appId===_n&&!k.some(z=>z.archive),Zt=z=>!!m?.apps&&m.apps.apps.find(T=>T.appId===z)?.canManage!==!1,ft=()=>g.kind==="app"&&Zt(g.appId),et=z=>g.kind==="trash"?Zt(z.ref.appId):ft()&&!z.managed,Dt=()=>!!m?.apps&&!!m.trash?.length&&m.trash.every(z=>Zt(z.appId)),pn=()=>g.kind==="app"||g.kind==="sync"||g.kind==="ama"||g.kind==="content",bt=()=>g.kind==="app"?k[k.length-1]?.id??"ROOT":"ROOT",bn=()=>(Gt()??[]).filter(z=>A.has(z.key)),it=(z,T)=>{let I=te().cloudInvoke;return I?I(z,T).catch(re=>({ok:!1,error:String(re?.message||re)})):Promise.resolve({ok:!1,error:"no_bridge"})};function At(z=500){Qe||be||(Qe=setTimeout(()=>{Qe=null,ce()},z))}async function ce(){let z=B,T=await it("penzor:transfers");if(z!==B||be)return;let I=new Map(Q.map(de=>[de.id,de.state]));T?.ok&&Array.isArray(T.items)&&(Q=T.items);let re=Date.now(),K=Q.some(Ba);Q.some(de=>de.kind==="up"&&de.state==="done"&&I.get(de.id)!=="done")&&(V&&clearTimeout(V),V=setTimeout(()=>{V=null,st()},300)),K?(Ke==null&&(Ke=re),pe=0,oe==="hidden"&&(oe="open",ge=re),oe==="open"&&!He&&re-ge>Ce&&(oe="pill")):Ke!=null&&(Ye(Ke),Ke=null);let ve=Q.some(de=>de.state==="failed")||H.length>0,Ee=Q.some(de=>de.state==="paused");!K&&!Ee&&Q.length&&!ve&&oe!=="hidden"&&(pe?re-pe>pt&&!He&&(oe="hidden",pe=0,dt.txClear("finished")):(pe=re,oe==="pill"&&(oe="open"))),!K&&ve&&oe==="pill"&&(oe="open"),!Q.length&&!H.length&&(oe="hidden"),We(),a(),(K||oe!=="hidden"&&pe)&&At()}function Ye(z){let T=Q.filter(ve=>(ve.finishedAt??0)>=z),I=T.filter(ve=>ve.kind==="up"&&ve.state==="done"),re=T.filter(ve=>ve.kind==="down"&&ve.state==="done"),K=T.filter(ve=>ve.state==="failed");Le||(K.length?c(s("penzor.toast.txFailed",{n:K.length})):I.length?c(I.length===1?s("penzor.toast.upDoneOne",{name:I[0].name}):s("penzor.toast.upDoneMany",{n:I.length})):re.length&&c(re.length===1?s("penzor.toast.downloaded",{name:re[0].name}):s("penzor.toast.downDoneMany",{n:re.length})))}function We(){let z=Q.filter(Ba),T=z.reduce((re,K)=>re+Math.max(K.size,K.done),0),I=z.length?T>0?Math.min(1,z.reduce((re,K)=>re+K.done,0)/T):0:null;e.app?.setSpaceProgress?.(hn,I??So(ue?.get()??null))}function Qt(){if(!ue)return;let z=Fa(ue.get());z!==ot&&(ot=z,e.app?.setSpaceDot?.(hn,z))}function ct(){ue?.get()?.notes.pending||(fe=!1),We(),Qt(),a()}let D=()=>{let z=ue?.get()??null;if(!z||!ke.size)return z;let T=(I,re)=>ke.has(I)?{...re,on:ke.get(I)}:re;return{...z,notes:T("notes",z.notes),agents:T("agents",z.agents),plugins:T("plugins",z.plugins)}},le=async z=>{try{return await z()??{ok:!1}}catch(T){return{ok:!1,error:String(T?.message||T)}}},Se=()=>{oe="open",ge=Date.now(),pe=0};async function je(){j=null;let z=Nt();if(g.kind!=="app"||!z||z.dir){a();return}let T=z.key,I=await o(`/files/${encodeURIComponent(T)}/versions`);w===T&&(j=I.ok&&Array.isArray(I.data)?I.data.map(re=>({versionNumber:re.versionNumber,fileSize:Number(re.fileSize)||0,createdAt:zo(re.createdAt)})):[],a())}let Nt=()=>w?(y??[]).find(z=>z.key===w)??null:null;async function vt(){await un(),Jt(),a()}async function st(){let z=++P;u=!0,p=null,a();let T=await te().authStatus?.().catch(()=>null);if(z!==P)return;if(T&&!T.loggedIn){f="out",m=null,u=!1,a();return}let{snap:I,signedOut:re}=await xp(o);if(z===P){if(u=!1,re){f="out",m=null,a();return}f="in",!I.ledger&&m?.ledger&&(I.ledger=m.ledger,I.ledgerStale=!0),m=I,v.clear(),p=!I.ledger&&!I.sync&&!I.ama&&!I.apps&&!I.exports&&!I.trash?s("penzor.unreachable"):null,!wo(g)&&g.kind!=="exports"&&g.kind!=="trash"&&g.kind!=="source"&&((g.kind==="content"?I.contentDevices!=null:g.kind==="sync"?I.sync?.vaults.some(ve=>ve.vault===g.vault):g.kind==="ama"?I.ama?.some(ve=>ve.id===g.vaultId):g.appId===_n?I.apps:I.apps?.apps.some(ve=>ve.appId===g.appId&&ve.files>0))||(g={kind:"overview"},h="",k=[],kt())),await vt()}}async function vn(z,T={},I=g){let re=I.kind==="content"?{path:`/remotesync/content/${encodeURIComponent(I.namespace)}/nodes/${encodeURIComponent(z.ref.id)}/content`,mode:"bytes"}:I.kind==="sync"?{path:`/remotesync/vaults/${encodeURIComponent(I.vault)}/file?path=${encodeURIComponent(z.key)}`,mode:"signed"}:I.kind==="ama"?z.ref.kind==="binary"?{path:`/amadeus/vaults/${encodeURIComponent(I.vaultId)}/asset?ref=${encodeURIComponent(z.key)}`,mode:"bytes"}:{path:`/amadeus/vaults/${encodeURIComponent(I.vaultId)}/file?path=${encodeURIComponent(z.key)}`,mode:"text"}:I.kind==="app"?{path:`/files/${encodeURIComponent(z.key)}/content`,mode:"bytes"}:I.kind==="source"&&z.ref?.downloadPath?{path:z.ref.downloadPath,mode:"bytes"}:I.kind==="exports"?{path:`/exports/${encodeURIComponent(z.key)}/url`,mode:"signed"}:null;if(!re)return;let K=await it("penzor:download",{...re,name:ny(z.name),size:z.size,...T});if(!K?.ok){d(K?.error||"download");return}Se(),At(0),a()}let Te=()=>{wo(g)?e.closeView?.(Rn.info,{collapse:!0}):e.openView?.(Rn.info,{location:"right"})},dt={ctx:e,locale:i,t:s,b:l,subscribe(z){return r.add(z),()=>{r.delete(z)}},auth:()=>f,loading:()=>u,error:()=>p,snap:()=>m,loc:()=>g,path:()=>h,appStack:()=>k,rows:Gt,rowsError:()=>x,selected:Nt,sort:()=>C,query:()=>M,menu:()=>$,side:()=>U,confirmEmpty:()=>O,versions:()=>j,moveFolders:()=>_,thisDevice:()=>J,setDevice(z){J=z,a()},appLabel:at,canManageRow:et,canEmptyTrash:Dt,canManage:ft,canWrite:Ht,canMulti:pn,folderId:bt,selection:bn,isSelected:z=>A.has(z),selectAll(){if(!pn())return;let z=Gt()??[];A=new Set(z.map(T=>T.key)),!w&&z[0]&&(w=z[0].key),$=null,a()},newFolder:()=>X,startNewFolder(){if(!Ht())return;let z=s("penzor.newFolder.default"),T=new Set((y??[]).filter(re=>re.dir).map(re=>re.name)),I=z;for(let re=1;T.has(I)&&re<1e3;re++)I=`${z} (${re})`;X=I,$=null,a()},cancelNewFolder(){X!=null&&(X=null,a())},async createFolder(z){let T=z.trim();if(X=null,!T||!Ht()){a();return}a();let I=await o("/files",{method:"POST",body:{type:"directory",parentId:bt(),name:T},projectSource:_n});if(!I.ok){I.status===409?c(s("penzor.toast.folderExists",{name:T})):d(I);return}I.data?.id&&(w=I.data.id,A=new Set([I.data.id]),N=I.data.id),await vt()},transfers:()=>Q,notices:()=>H,async acknowledgeStorageNotice(){let z=m?.ledger?.rollout;if(!z||z.acknowledgedAt||m?.ledgerStale)return;let T=await o("/storage/notice/ack",{method:"POST",body:{revision:z.revision}});if(!T.ok){d(T);return}await st()},txRows(){if(!Ht())return[];let z=bt();return Q.filter(T=>T.kind==="up"&&T.projectSource===_n&&T.parentId===z&&(Ba(T)||T.state==="paused")).map(T=>({key:`tx:${T.id}`,id:T.id,name:T.name,size:T.size,done:T.done,state:T.state}))},card:()=>oe,setCard(z){oe=z,ge=Date.now(),z!=="hidden"&&At(0),a()},holdCard(z){He=z,ge=Date.now(),z||At()},async upload(z,T){if(!Ht())return;let I=B,re=T?.id??bt(),K=T?[...k,T]:[...k],ve=await z;if(I!==B||be||!ve.length)return;It.set(re,K);let Ee=await it("penzor:upload",{...typeof ve[0]=="string"?{paths:ve}:{files:ve},parentId:re,projectSource:_n});if(!(I!==B||be)){if(Ee?.ok){Se(),At(0),a();return}if(Ee?.error==="quota"){H=[...H,{id:String(Date.now()),kind:"quota",short:Number(Ee.short)||0}],Se(),a();return}if(Ee?.error==="too_many"){c(s("penzor.err.too_many",{n:Number(Ee.max)||2e3}));return}Ee?.error!=="no_files"&&d(Ee?.error==="account_changed"?s("penzor.err.account_changed"):Ee?.error==="not_signed_in"?s("penzor.err.not_signed_in"):Ee?.error||"upload")}},async txOp(z,T){await it("penzor:transfer",{id:z,op:T}),ge=Date.now(),await ce()},async txAll(z){let T=z==="pause"?I=>Ba(I):z==="resume"?I=>I.state==="paused":I=>I.state==="failed"||I.state==="canceled";for(let I of Q.filter(T))await it("penzor:transfer",{id:I.id,op:z});z==="retry"&&(H=[]),ge=Date.now(),await ce()},async txClear(z){await it("penzor:transfers:clear",{which:z}),z==="all"&&(H=[]),await ce()},dismissNotice(z){H=H.filter(T=>T.id!==z),!Q.length&&!H.length&&(oe="hidden"),a()},locate(z){if(z.kind==="down"){z.localPath&&te().revealHostPath?.(z.localPath);return}let T=It.get(z.targetId??"")??[];g={kind:"app",appId:_n},k=T,h="",M="",U={kind:"view"},$=null,kt(),z.fileId&&z.parentId===z.targetId&&(w=z.fileId,A=new Set([z.fileId])),a(),e.app?.openSpace?.(hn).then(()=>{e.openView?.(Rn.main),Te()}),vt()},async downloadMany(z){let T=z.filter(de=>!de.dir);if(T.length<=1){T[0]&&await dt.download(T[0]);return}let I=new Date,re=s("penzor.download.folder",{date:`${I.getFullYear()}-${String(I.getMonth()+1).padStart(2,"0")}-${String(I.getDate()).padStart(2,"0")}`}),K=`${Date.now()}`,ve=g,Ee=B;for(let de of T){if(B!==Ee)break;await vn(de,{subdir:re,batch:K},ve)}},async trashMany(z){if(g.kind!=="app"||!z.length||!z.every(et))return;if(z.length===1){await dt.trash(z[0]);return}let T=await o("/files/batch/delete",{method:"POST",body:{ids:z.map(re=>re.key)},projectSource:g.appId});if(!T.ok){d(T);return}let I=(T.data?.results??[]).filter(re=>re.success===!1).length;c(I?s("penzor.toast.batchPartial",{n:I}):s("penzor.toast.trashedN",{n:z.length})),kt(),await st()},async moveMany(z,T){if(g.kind!=="app"||!z.length||!z.every(et))return;U={kind:"view"};let I=z.map(ve=>ve.key).filter(ve=>ve!==T.id),re=await o("/files/batch/move",{method:"POST",body:{ids:I,parentId:T.id},projectSource:g.appId});if(!re.ok){d(re),a();return}let K=(re.data?.results??[]).filter(ve=>ve.success===!1).length;c(K?s("penzor.toast.batchPartial",{n:K}):s("penzor.toast.movedN",{n:I.length,name:T.name})),kt(),await st()},setVisible(z){Le=z},picker:{},refresh:st,go(z){let T=kp(z);if(!T)return;let I=ko(T)===ko(g);g=T,I||(h="",k=[],kt(),M="",U={kind:"view"},O=!1),$=null,a(),e.openView?.(Rn.main),Te(),vt()},openFolder(z){g={kind:"app",appId:_n},k=z,h="",M="",U={kind:"view"},$=null,O=!1,kt(),a(),e.openView?.(Rn.main),Te(),vt()},openDir(z){if(!(!z.dir||g.kind==="exports"||g.kind==="trash")){if(g.kind==="source"&&z.ref?.go){dt.go(z.ref.go);return}g.kind==="app"?k=[...k,{id:z.key,name:z.name,...z.archive?{archive:!0}:{}}]:h=z.key,kt(),M="",U={kind:"view"},vt()}},up(z){if(g.kind==="app")k=k.slice(0,z??Math.max(0,k.length-1));else{let T=h?h.split("/"):[];h=T.slice(0,z??Math.max(0,T.length-1)).join("/")}kt(),U={kind:"view"},vt()},select(z,T){let I=Gt()??[];if(z&&T?.range&&pn()&&N&&I.some(re=>re.key===N)){let re=I.findIndex(ve=>ve.key===N),K=I.findIndex(ve=>ve.key===z.key);A=new Set(I.slice(Math.min(re,K),Math.max(re,K)+1).map(ve=>ve.key)),w=z.key}else z&&T?.toggle&&pn()?(A.has(z.key)&&A.size>1?(A.delete(z.key),w===z.key&&(w=[...A].pop()??null)):(A.add(z.key),w=z.key),N=z.key):(w=z?.key??null,A=new Set(w?[w]:[]),N=w);X=null,U={kind:"view"},$=null,z&&!wo(g)&&e.openView?.(Rn.info,{location:"right"}),je(),a()},setSort(z){C=z,a()},setQuery(z){M=z,a()},openMenu(z,T,I){I&&!A.has(I.key)&&(w=I.key,A=new Set([I.key]),N=I.key,je()),$={x:z,y:T,row:I},U={kind:"view"},a()},closeMenu(){$&&($=null,a())},setSide(z){U=z,$=null,z.kind==="move"&&(_=null,dt.moveBrowse(z.at)),e.openView?.(Rn.info,{location:"right"}),a()},setConfirmEmpty(z){O=z,a()},async download(z){z.dir||($=null,await vn(z))},async trash(z){if(g.kind!=="app"||!et(z))return;let T=Gt()??[],I=T.findIndex(ve=>ve.key===z.key),re=await o(`/files/${encodeURIComponent(z.key)}`,{method:"DELETE",projectSource:g.appId});if(!re.ok){d(re);return}c(s("penzor.toast.trashed",{name:z.name}));let K=T[I+1]??T[I-1];w=K&&K.key!==z.key?K.key:null,$=null,await st()},async restore(z){if(!m||g.kind!=="trash"||!et(z))return;let T=await o(`/trash/${encodeURIComponent(z.key)}/restore`,{method:"POST",body:{}});if(!T.ok){d(T);return}c(s("penzor.toast.restored",{name:z.name})),w=null,await st()},async purge(z){if(!m||g.kind!=="trash"||!et(z))return;let T=await o(`/trash/${encodeURIComponent(z.key)}`,{method:"DELETE"});if(U={kind:"view"},!T.ok){d(T),a();return}c(s("penzor.toast.purged",{name:z.name})),w=null,await st()},async emptyTrash(){if(!m||!Dt())return;let z=await o("/trash?all=1",{method:"DELETE"});if(O=!1,!z.ok){d(z),a();return}let T=(z.data?.results??[]).filter(I=>I.success===!1).length;c(T?s("penzor.toast.emptyPartial",{n:T}):s("penzor.toast.emptied")),w=null,await st()},async rename(z,T){let I=T.trim();if(U={kind:"view"},!I||I===z.name){a();return}let re=g.kind==="exports"?await o(`/exports/${encodeURIComponent(z.key)}/rename`,{method:"PUT",body:{newFileName:I}}):g.kind==="app"&&et(z)?await o(`/files/${encodeURIComponent(z.key)}/rename`,{method:"PATCH",body:{name:I},projectSource:g.appId}):null;if(re){if(!re.ok){d(re),a();return}c(s("penzor.toast.renamed",{name:I})),await st()}},moveBrowse(z){if(g.kind!=="app"||!ft())return;U={kind:"move",at:z},_=null,a();let T=z[z.length-1]?.id,I=g.appId;o(`/files${T?`?parentId=${encodeURIComponent(T)}`:""}`,{projectSource:I}).then(re=>{U.kind!=="move"||U.at!==z||(_=re.ok?re.data.filter(K=>K.fileType==="directory").map(K=>({id:K.id,name:K.name})):[],a())})},async moveTo(z,T){if(g.kind!=="app"||!et(z))return;if(U={kind:"view"},T.id===z.key){a();return}let I=await o(`/files/${encodeURIComponent(z.key)}/move`,{method:"PATCH",body:{parentId:T.id},projectSource:g.appId});if(!I.ok){d(I),a();return}c(s("penzor.toast.moved",{name:T.name})),w=null,await st()},async restoreVersion(z,T){if(!et(z))return;let I=await o(`/files/${encodeURIComponent(z.key)}/restore/${T.versionNumber}`,{method:"POST",body:{}});if(!I.ok){d(I);return}c(s("penzor.toast.versionRestored",{n:T.versionNumber})),await st(),je()},async deleteExport(z){if(!m)return;let T=await o(`/exports/${encodeURIComponent(z.key)}`,{method:"DELETE"});if(U={kind:"view"},!T.ok){d(T),a();return}c(s("penzor.toast.purged",{name:z.name})),w=null,await st()},signIn(){te().forsionLogin?.()},openSync(){e.app?.openSettings?.("sync/s-remote")},async focusVault(z){await e.app?.openSpace?.(hn),m||await st(),dt.go(`sync:${z}`)},hasSync:()=>!!ue,content:()=>Ot,syncState:D,syncBusy:z=>Pe.has(z),async setSync(z,T){if(!ue||Pe.has(z))return;Pe.add(z),ke.set(z,T),a();let I=await le(()=>ue.set(z,T));Pe.delete(z),ke.delete(z),!be&&(I.ok||d(I.error||"sync"),ct())},async resolveNotes(z){if(!ue||Pe.has("resolve"))return;Pe.add("resolve"),a();let T=await le(()=>ue.resolveNotes(z));Pe.delete("resolve"),fe=!1,!be&&(T.ok||d(T.error||"sync"),ct())},confirmCloud:()=>fe,setConfirmCloud(z){fe=z,a()},enter(){},dispose(){be=!0,clearInterval(fn),Qe&&clearTimeout(Qe),V&&clearTimeout(V),e.app?.setSpaceProgress?.(hn,null),ot&&e.app?.setSpaceDot?.(hn,!1),r.clear(),ro?.(),Dr?.(),ja?.()}},Ot=null,qe="",Rt=async()=>{let z=te().cloudInvoke;if(!z){clearInterval(fn);return}let T=await z(Ut.get).catch(K=>({ok:!1,error:String(K)}));if(be)return;!T?.ok&&/unavailable|not a Forsion Extend channel/i.test(T?.error??"")&&clearInterval(fn);let I=T?.ok&&T.value?.available?T.value:null,re=I?JSON.stringify([Cn(I),I.config.enabled,I.deviceId,I.devices]):"";Ot=I,re!==qe&&(qe=re,a())},fn=setInterval(()=>void Rt(),5e3);Rt();let ro=e.subscribeLocale?.(()=>a()),ja=ue?.subscribe(ct);Qt(),ce();let Dr=te().onAuthChanged?.(()=>{++L,++P,++B,m=null,y=null,x=null,v.clear(),kt(),$=null,U={kind:"view"},O=!1,j=null,_=null,g={kind:"overview"},h="",k=[],M="",It.clear(),H=[],Q=[],oe="hidden",Ke=null,pe=0,V&&(clearTimeout(V),V=null),e.app?.setSpaceProgress?.(hn,null),fe=!1,ke.clear(),a(),st()});return dt}var Ip=e=>e.kind==="content"?"penzor.source.readonly":e.kind==="sync"?"penzor.side.readonlySync":e.kind==="ama"?"penzor.side.readonlyAma":e.kind==="source"?e.source==="plugins"?"penzor.source.pluginNote":e.source==="market"?"penzor.source.marketNote":"penzor.source.readonly":null;var Rp=`
1220
1357
  .pz, .pz-side { color: var(--text); font-family: var(--font-ui); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
1221
1358
  .pz { height: 100%; min-height: 0; display: flex; flex-direction: column; }
1222
1359
  .pz-side { height: 100%; min-height: 0; overflow: auto; box-sizing: border-box; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
@@ -1432,17 +1569,17 @@ ${Ou(e,t)}`,d=await s({prompt:c,send:!1});d?.ok?o(""):i(d?.error||e.t("guide.ask
1432
1569
  .pz-legacy > svg { color: var(--text-muted); }
1433
1570
  .pz-legacy > span { flex: 1; min-width: 0; }
1434
1571
  .pz-legacy small { display: block; margin-top: 2px; color: var(--text-muted); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
1435
- `;function On(e,t,n){return e.fetch?e.fetch(t,n):fetch(t,{...n,headers:{Authorization:`Bearer ${e.token}`,...n.headers}})}async function Br(e,t,n,o,a=6e4){let i=await(e.fetch??fetch)(e.base+n,{method:t,headers:{"Content-Type":"application/json","X-Project-Source":"connect",...e.token&&!e.fetch?{Authorization:`Bearer ${e.token}`}:{}},body:o===void 0?void 0:JSON.stringify(o),signal:AbortSignal.timeout(a)}),s=await i.json().catch(()=>({}));return{status:i.status,json:s}}function Fn(e,t){if(typeof t!="string"||!t.startsWith("/"))return null;let n=String(e||"").replace(/\/+$/,"").replace(/\/api$/,"");if(!n)return null;let o,a;try{o=new URL(n),a=new URL(n+"/api"+t)}catch{return null}return o.protocol!=="http:"&&o.protocol!=="https:"||a.origin!==o.origin||!a.pathname.startsWith("/api/")?null:a.toString()}var op=["bytes","signed","text"],ap=/^[A-Za-z0-9_-]{1,64}$/,ip=/^[a-z0-9][a-z0-9-]{0,63}$/;function sp(e){if(typeof e!="string")return null;let n=(e.split(/[\\/]/).pop()??"").replace(/[\u0000-\u001f<>:"|?*]/g,"").trim().slice(0,200);return n&&n!=="."&&n!==".."?n:null}var ub={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".heic":"image/heic",".svg":"image/svg+xml",".pdf":"application/pdf",".txt":"text/plain",".md":"text/markdown",".json":"application/json",".csv":"text/csv",".mp4":"video/mp4",".mov":"video/quicktime",".mp3":"audio/mpeg",".zip":"application/zip",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation"};function ws(e){let t=e.lastIndexOf(".");return ub[t>0?e.slice(t).toLowerCase():""]??"application/octet-stream"}function lp(e,t,n,o){let a=n.replace(/[^\x20-\x7e]/g,"_").replace(/["\\]/g,"_")||"file",i=encodeURIComponent(n).replace(/['()*]/g,l=>`%${l.charCodeAt(0).toString(16).toUpperCase()}`),s="";for(let[l,c]of Object.entries(t))s+=`--${e}\r
1572
+ `;function qn(e,t,o){return e.fetch?e.fetch(t,o):fetch(t,{...o,headers:{Authorization:`Bearer ${e.token}`,...o.headers}})}async function jo(e,t,o,r,a=6e4){let i=await(e.fetch??fetch)(e.base+o,{method:t,headers:{"Content-Type":"application/json","X-Project-Source":"connect",...e.token&&!e.fetch?{Authorization:`Bearer ${e.token}`}:{}},body:r===void 0?void 0:JSON.stringify(r),signal:AbortSignal.timeout(a)}),s=await i.json().catch(()=>({}));return{status:i.status,json:s}}function Vn(e,t){if(typeof t!="string"||!t.startsWith("/"))return null;let o=String(e||"").replace(/\/+$/,"").replace(/\/api$/,"");if(!o)return null;let r,a;try{r=new URL(o),a=new URL(o+"/api"+t)}catch{return null}return r.protocol!=="http:"&&r.protocol!=="https:"||a.origin!==r.origin||!a.pathname.startsWith("/api/")?null:a.toString()}var Lp=["bytes","signed","text"],Dp=/^[A-Za-z0-9_-]{1,64}$/,Np=/^[a-z0-9][a-z0-9-]{0,63}$/;function Op(e){if(typeof e!="string")return null;let o=(e.split(/[\\/]/).pop()??"").replace(/[\u0000-\u001f<>:"|?*]/g,"").trim().slice(0,200);return o&&o!=="."&&o!==".."?o:null}var oy={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".heic":"image/heic",".svg":"image/svg+xml",".pdf":"application/pdf",".txt":"text/plain",".md":"text/markdown",".json":"application/json",".csv":"text/csv",".mp4":"video/mp4",".mov":"video/quicktime",".mp3":"audio/mpeg",".zip":"application/zip",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation"};function qs(e){let t=e.lastIndexOf(".");return oy[t>0?e.slice(t).toLowerCase():""]??"application/octet-stream"}function Fp(e,t,o,r){let a=o.replace(/[^\x20-\x7e]/g,"_").replace(/["\\]/g,"_")||"file",i=encodeURIComponent(o).replace(/['()*]/g,l=>`%${l.charCodeAt(0).toString(16).toUpperCase()}`),s="";for(let[l,c]of Object.entries(t))s+=`--${e}\r
1436
1573
  Content-Disposition: form-data; name="${l}"\r
1437
1574
  \r
1438
1575
  ${c}\r
1439
1576
  `;return s+=`--${e}\r
1440
1577
  Content-Disposition: form-data; name="file"; filename="${a}"; filename*=UTF-8''${i}\r
1441
- Content-Type: ${o}\r
1578
+ Content-Type: ${r}\r
1442
1579
  \r
1443
1580
  `,{head:s,tail:`\r
1444
1581
  --${e}--\r
1445
- `}}function cp(e,t){let n=e.filter(([l])=>t-l<=3e3);if(n.length<2)return 0;let[o,a]=n[0],[i,s]=n[n.length-1];return i>o?Math.max(0,(s-a)/(i-o)*1e3):0}function dp(e,t){let n=t??{};return e===401?"not_signed_in":n.code==="STORAGE_QUOTA_EXCEEDED"?"quota":n.code==="STORAGE_BUSY"||n.code==="STORAGE_RECONCILIATION_REQUIRED"?"storage_unavailable":n.code==="FILE_TOO_LARGE"||e===413?"too_large":typeof n.detail=="string"&&/quota exceeded/i.test(n.detail)?"quota":n.code==="STORAGE_NOT_CONFIGURED"?"storage_unavailable":`http_${e}`}var pb=3,fb=200,_s=32,mb=e=>typeof e=="string"&&!!e&&e!=="."&&e!==".."&&!/[\\/]/.test(e);function Cs(e,t){return t?e.flatMap(n=>{let o=(n.webkitRelativePath||n.name).split("/");return o.slice(1).some(a=>a.startsWith("."))||o.length-1>_s?[]:[{file:n,relDir:o.slice(0,-1)}]}):e.map(n=>({file:n,relDir:[]}))}function up(e){let t=Array.from(e.items??[]).filter(a=>a.kind==="file").map(a=>({entry:a.webkitGetAsEntry?.()??null,file:a.getAsFile()})),n=[],o=async(a,i)=>{if(i.length>_s)return!0;if(a.isFile){let c=await new Promise(d=>a.file(d,()=>d(null)));return c&&n.push({file:c,relDir:i}),n.length<=2e3}if(!a.isDirectory)return!0;let s=a.createReader(),l=[];for(;;){let c=await new Promise(d=>s.readEntries(d,()=>d([])));if(!c.length)break;l.push(...c)}l.sort((c,d)=>c.name<d.name?-1:c.name>d.name?1:0);for(let c of l)if(!c.name.startsWith(".")&&!await o(c,[...i,a.name]))return!1;return!0};return(async()=>{for(let a of t)if(a.entry){if(!await o(a.entry,[]))break}else a.file&&n.push({file:a.file,relDir:[]});return n})()}function pp(e,t=window,n={}){let o=[],a=new Map,i=!1,s=0,l=()=>Date.now(),c=()=>Array.from(t.crypto.getRandomValues(new Uint8Array(16)),z=>z.toString(16).padStart(2,"0")).join("");async function d(){let z=await e.getCloud();if(!z.token)throw new Error("not_signed_in");return z}async function m(z,P={}){let F=await d(),L=Fn(F.base,z);if(!L)throw new Error("bad_path");let ae=await On(F,L,{method:P.method??"GET",headers:{...P.body!==void 0?{"Content-Type":"application/json"}:{},...P.projectSource?{"X-Project-Source":P.projectSource}:{}},body:P.body!==void 0?JSON.stringify(P.body):void 0,signal:AbortSignal.timeout(3e4)});return{status:ae.status,json:await ae.json().catch(()=>null)}}let u=z=>{let{attempt:P,relDir:F,abort:L,samples:ae,file:b,dl:_,...I}=z;return{...I,speed:z.state==="active"?cp(ae,l()):0}},p=z=>z.state==="active"||z.state==="queued"||z.state==="paused",g=(z,P,F=null)=>{z.state=P,z.error=F,z.abort=null,z.finishedAt=l(),z.samples=[];let L=o.filter(ae=>ae.state==="done"||ae.state==="canceled");for(let ae of L.slice(0,Math.max(0,L.length-fb)))o.splice(o.indexOf(ae),1);h()},f=z=>{let P=String(z?.message||z);return["too_large","quota","not_signed_in","bad_response","popup_blocked","download_unavailable","download_failed"].includes(P)||P.startsWith("http_")?P:"network"};function h(){if(!i)for(let z of["up","down"]){let P=o.filter(F=>F.kind===z&&F.state==="active").length;for(let F of o){if(P>=pb)break;if(F.kind!==z||F.state!=="queued")continue;P++,F.state="active",F.startedAt=l(),F.done=0,F.samples=[[l(),0]],F.abort=new AbortController;let L=F.abort.signal,ae=++F.attempt,b=()=>F.attempt===ae&&F.state==="active";(z==="up"?S(F,b,L):B(F,b,L)).catch(_=>{b()&&g(F,"failed",f(_))})}}}let k=(z,P)=>{z.done=P;let F=l(),L=z.samples[z.samples.length-1];for((!L||F-L[0]>=200)&&z.samples.push([F,P]);z.samples.length>2&&F-z.samples[0][0]>3500;)z.samples.shift()};function x(z){let P=s,F=()=>{if(i||P!==s)throw new Error("account_changed")};if(!z.relDir.length)return Promise.resolve(z.targetId);let L=a.get(z.batch);L||a.set(z.batch,L=new Map);let ae=L,b=_=>{if(_===0)return Promise.resolve(z.targetId);let I=z.relDir.slice(0,_).join("/"),H=ae.get(I);return H||(H=b(_-1).then(async Q=>{F();let $=z.relDir[_-1],te=await m("/files",{method:"POST",body:{type:"directory",parentId:Q,name:$},projectSource:z.projectSource});if(F(),te.status===201&&typeof te.json?.id=="string")return te.json.id;if(te.status===409){let ce=await m(`/files${Q==="ROOT"?"":`?parentId=${encodeURIComponent(Q)}`}`,{projectSource:z.projectSource}),We=Array.isArray(ce.json)?ce.json.find(pe=>pe?.fileType==="directory"&&pe?.name===$):null;if(We?.id)return String(We.id)}throw new Error(te.status===401?"not_signed_in":`http_${te.status}`)}),H.catch(()=>ae.delete(I)),ae.set(I,H)),H};return b(z.relDir.length)}async function S(z,P,F){let L=z.file;if(L.size>52428800)throw new Error("too_large");let ae=await x(z);if(!P())return;z.parentId=ae;let b=await d();if(!P())return;let _=Fn(b.base,"/files/upload");if(!_)throw new Error("bad_path");let I=`----penzor${c()}`,{head:H,tail:Q}=lp(I,{parentId:ae,autoRename:"true"},z.name,L.type||ws(z.name)),$=await On(b,_,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${I}`,...z.projectSource?{"X-Project-Source":z.projectSource}:{}},body:new Blob([H,L,Q]),signal:F}),te=await $.json().catch(()=>null);P()&&($.status===201||$.status===200?(z.fileId=typeof te?.id=="string"?te.id:null,k(z,z.size),g(z,"done")):g(z,"failed",dp($.status,te)))}async function w(z,P,F){P.size=Number(z.headers.get("content-length"))||P.size;let L=z.headers.get("content-type")||"";if(!z.body)return z.blob();let ae=z.body.getReader(),b=[],_=0;for(;;){let{done:I,value:H}=await ae.read();if(I)break;if(!F())throw ae.cancel().catch(()=>{}),new Error("aborted");b.push(H),_+=H.length,k(P,_)}return _>P.size&&(P.size=_),new Blob(b,{type:L})}let T=(z,P)=>{let F=URL.createObjectURL(z),L=t.document.createElement("a");L.href=F,L.download=P,t.document.body.appendChild(L),L.click(),L.remove(),setTimeout(()=>URL.revokeObjectURL(F),6e4)},R=z=>{let P=t.open("","_blank");return P?(P.opener=null,P.location.replace(z),!0):!1};async function B(z,P,F){let L=z.dl,ae=await d();if(!P())return;let b=Fn(ae.base,L.path);if(!b)throw new Error("bad_path");let _=await On(ae,b,{signal:F});if(!_.ok)throw new Error(_.status===401?"not_signed_in":`http_${_.status}`);let I;if(L.mode==="bytes")I=await w(_,z,P);else{let H=await _.json().catch(()=>null);if(L.mode==="text"){if(typeof H?.content!="string")throw new Error("bad_response");I=new Blob([H.content],{type:ws(L.name)}),z.size=I.size,k(z,I.size)}else{if(typeof H?.url!="string"||!/^https?:\/\//i.test(H.url))throw new Error("bad_response");let Q=await fetch(H.url,{signal:F,credentials:"omit"}).catch($=>{if(F.aborted)throw $;return null});if(!Q){if(!P())return;if(n.openExternal)await n.openExternal(H.url);else if(!R(H.url))throw new Error("popup_blocked");if(!P())return;g(z,"done");return}if(!Q.ok)throw new Error(`http_${Q.status}`);I=await w(Q,z,P)}}P()&&(n.saveDownload?await n.saveDownload(I,L.name):T(I,L.name),P()&&g(z,"done"))}let U=(z,P)=>{let F={projectSource:void 0,parentId:void 0,targetId:void 0,fileId:null,localPath:null,...z,id:c(),attempt:0,done:0,state:P?"failed":"queued",error:P??null,abort:null,samples:[],speed:0,startedAt:null,finishedAt:P?l():null};return o.push(F),F};e.handle("penzor:upload",async(z,P)=>{let F=s,L=P??{},ae=(Array.isArray(L.files)?L.files:[]).filter($=>!!$&&$.file instanceof Blob&&typeof $.file.name=="string"&&Array.isArray($.relDir)&&$.relDir.length<=_s&&$.relDir.every(mb)),b=typeof L.parentId=="string"&&ap.test(L.parentId)?L.parentId:null,_=typeof L.projectSource=="string"&&ip.test(L.projectSource)?L.projectSource:null;if(!ae.length)return{ok:!1,error:"no_files"};if(!b||!_)return{ok:!1,error:"bad_target"};if(ae.length>2e3)return{ok:!1,error:"too_many",max:2e3};if(!(await e.getCloud()).token)return{ok:!1,error:"not_signed_in"};if(F!==s)return{ok:!1,error:"account_changed"};let I=ae.filter($=>$.file.size<=52428800).reduce(($,te)=>$+te.file.size,0);try{let $=await m("/storage/quota"),te=Number($.json?.used),ce=Number($.json?.quota);if($.status===200&&ce>0&&te+I>ce)return{ok:!1,error:"quota",short:te+I-ce}}catch{}if(F!==s)return{ok:!1,error:"account_changed"};if(i)return{ok:!1,error:"disposed"};let H=c(),Q=ae.map($=>U({kind:"up",name:$.file.name,size:$.file.size,projectSource:_,parentId:$.relDir.length?null:b,targetId:b,batch:H,relDir:$.relDir,file:$.file},$.file.size>52428800?"too_large":void 0).id);return h(),{ok:!0,ids:Q,batch:H}}),e.handle("penzor:download",async(z,P)=>{let F=s,L=P??{},ae=op.includes(L.mode)?L.mode:null,b=sp(L.name);if(!ae)return{ok:!1,error:"bad_mode"};if(!b)return{ok:!1,error:"bad_name"};let _=await e.getCloud();if(F!==s)return{ok:!1,error:"account_changed"};if(typeof L.path!="string"||!Fn(_.base,L.path))return{ok:!1,error:"bad_path"};if(!_.token)return{ok:!1,error:"not_signed_in"};if(i)return{ok:!1,error:"disposed"};let I=U({kind:"down",name:b,size:Math.max(0,Number(L.size)||0),relDir:[],batch:typeof L.batch=="string"&&L.batch.length<=64?L.batch:c(),dl:{path:L.path,mode:ae,name:b}});return h(),{ok:!0,id:I.id}}),e.handle("penzor:transfers",()=>({ok:!0,items:o.map(u)})),e.handle("penzor:transfer",(z,P)=>{let F=P??{},L=o.find(b=>b.id===F.id);if(!L)return{ok:!1,error:"not_found"};let ae=()=>{L.abort?.abort(),L.abort=null,L.done=0,L.samples=[]};switch(F.op){case"pause":(L.state==="active"||L.state==="queued")&&(ae(),L.state="paused",h());break;case"resume":L.state==="paused"&&(L.state="queued",h());break;case"cancel":p(L)&&(ae(),g(L,"canceled"));break;case"retry":(L.state==="failed"||L.state==="canceled")&&(L.state="queued",L.error=null,L.finishedAt=null,L.done=0,h());break;case"dismiss":L.state!=="active"&&L.state!=="queued"&&o.splice(o.indexOf(L),1);break;default:return{ok:!1,error:"bad_op"}}return{ok:!0}}),e.handle("penzor:transfers:clear",(z,P)=>{let F=P?.which==="all";for(let L of[...o])(L.state==="done"||L.state==="canceled"||F&&L.state==="failed")&&o.splice(o.indexOf(L),1);return{ok:!0}});let N=z=>{o.some(p)&&(z.preventDefault(),z.returnValue="")};t.addEventListener("beforeunload",N);let G=()=>{s++;for(let z of o)z.state="canceled",z.abort?.abort();o.length=0,a.clear()};return{reset:G,dispose(){i=!0,t.removeEventListener("beforeunload",N),G()}}}var Ur=[{id:"notes",path:"Amadeus"},{id:"agents",path:"agents"},{id:"profile",path:"human"},{id:"plugins",path:"Plugins"}],Ts=new Set(["Amadeus","agents"]);var kr=new Set(["muse"]);var gb=e=>[...kr].some(t=>As(e,`agents/${t}`));var bo=(e,t)=>Qu(t,e)?.target??"off",As=(e,t)=>e===t||e.startsWith(t+"/"),hb=e=>Ur.some(t=>As(e,t.path)),Es=e=>e.some(t=>t.id==="default")?Ca():"default",Et=(e,t)=>e.enabled?bo(e.rules,t):"off";function fp(e,t,n){n==="off"&&(e=e.filter(i=>t?!i.source.startsWith(t+"/"):!i.source||hb(i.source)));let o=e.find(i=>i.source===t),a=e.filter(i=>i!==o);return t&&bo(a,t)===n?a:o?e.map(i=>i===o?{...i,target:n}:i):[...e,{id:t?Ca():Es(e),source:t,target:n}]}function mp(e,t,n,o=!1){if(gb(t))return e;let a=e.rules;if(!e.enabled){let i=a.find(l=>!l.source),s=t?a.filter(l=>l.source&&As(l.source,t)):[];a=[{id:i?.id??Es(s),source:"",target:"off"},...s],t!=="agents"&&(a=hp(a,"agents","off"))}if(!t)for(let i of Ur)a.some(s=>s.source===i.path)||(a=[...a,{id:Ca(),source:i.path,target:bo(a,i.path)}]);return vb({...e,rules:fp(a,t,n)},o)}function vb(e,t=!1){let n=o=>bo(e.rules,o)!=="off";return{...e,enabled:Ur.some(o=>n(o.path))||e.rules.some(o=>o.source&&o.target!=="off")||t&&n("")}}function gp(e){let t=e.rules.some(n=>n.source==="")?e.rules:[{id:Es(e.rules),source:"",target:"default"},...e.rules];for(let n of Ur)n.id!=="agents"&&bo(t,n.path)==="off"&&(t=fp(t,n.path,"default"));return t=hp(t,"agents","off"),{...e,enabled:!0,rules:t}}function hp(e,t,n){let o=e.find(a=>a.source===t);return o?e.map(a=>a===o?{...a,target:n}:a):[...e,{id:Ca(),source:t,target:n}]}function Ps(e,t){return e.rules.filter(n=>n.source.startsWith(t+"/")&&(!Ts.has(t)||n.source.split("/").length>2)).length}function Ms(e,t){let n=s=>new Map(s.rules.map(l=>[l.source,l.target])),o=n(e),a=n(t),i=e.enabled!==t.enabled?1:0;for(let s of new Set([...o.keys(),...a.keys()]))o.get(s)!==a.get(s)&&i++;return i}var bb=0,Ca=()=>`rule-${Date.now().toString(36)}-${(bb++).toString(36)}`;var vp={globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18"/>',"user-round":'<circle cx="12" cy="8" r="5"/><path d="M20 21a8 8 0 0 0-16 0"/>',monitor:'<rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/>',history:'<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l4 2"/>',more:'<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>',"cloud-off":'<path d="m2 2 20 20"/><path d="M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193"/><path d="M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07"/>',"cloud-check":'<path d="m17 15-5.5 5.5L9 18"/><path d="M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742"/>',"tx-sync":'<path d="m17 2 4 4-4 4"/><path d="M3 11v-1a4 4 0 0 1 4-4h14"/><path d="m7 22-4-4 4-4"/><path d="M21 13v1a4 4 0 0 1-4 4H3"/>',search:'<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>',down:'<path d="m6 9 6 6 6-6"/>',right:'<path d="m9 18 6-6-6-6"/>',folder:'<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>',page:'<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="M10 9H8"/><path d="M16 13H8"/><path d="M16 17H8"/>',image:'<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>',database:'<ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5V19A9 3 0 0 0 21 19V5"/><path d="M3 12A9 3 0 0 0 21 12"/>',attachment:'<path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48"/>',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/>',trash:'<path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/>',refresh:'<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/>',cloud:'<path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/>',archive:'<rect width="20" height="5" x="2" y="3" rx="1"/><path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"/><path d="M10 12h4"/>',store:'<path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"/><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"/><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"/>',sparkles:'<path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"/><path d="M20 2v4"/><path d="M22 4h-4"/><circle cx="4" cy="20" r="2"/>',palette:'<path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"/><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/>',lock:'<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',undo:'<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/>',pen:'<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/>',move:'<path d="M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1"/><path d="M2 13h10"/><path d="m9 16 3-3-3-3"/>',book:'<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/>',login:'<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"/><polyline points="10 17 15 12 10 7"/><line x1="15" x2="3" y1="12" y2="12"/>',gear:'<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>',up:'<path d="m18 15-6-6-6 6"/>',upload:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" x2="12" y1="3" y2="15"/>',"folder-plus":'<path d="M12 10v6"/><path d="M9 13h6"/><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>',"folder-open":'<path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"/>',pause:'<rect x="14" y="4" width="4" height="16" rx="1"/><rect x="6" y="4" width="4" height="16" rx="1"/>',play:'<polygon points="6 3 20 12 6 21 6 3"/>',x:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',check:'<path d="M20 6 9 17l-5-5"/>',alert:'<circle cx="12" cy="12" r="10"/><line x1="12" x2="12" y1="8" y2="12"/><line x1="12" x2="12.01" y1="16" y2="16"/>',"tx-up":'<path d="m18 9-6-6-6 6"/><path d="M12 3v14"/><path d="M5 21h14"/>',"tx-down":'<path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/>',files:'<path d="M20 7h-3a2 2 0 0 1-2-2V2"/><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"/><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"/>',notebook:'<path d="M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4"/><path d="M2 6h4"/><path d="M2 10h4"/><path d="M2 14h4"/><path d="M2 18h4"/><path d="M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z"/>',bot:'<path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/>',puzzle:'<path d="M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"/>',laptop:'<path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"/><path d="M20.054 15.987H3.946"/>',info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',penzor:'<path d="M3 18.5h13.5a4.25 4.25 0 0 0 0-8.5 4.75 4.75 0 0 0-9.5 0 2.5 2.5 0 0 0 5 0"/>'},yo=({p:e})=>r("div",{class:"pz-ov-kick pz-brand",children:[r(Y,{n:"penzor"}),r("b",{children:e.t("penzor.title")}),e.locale()==="zh"&&r("span",{children:xe("en","penzor.title")})]}),Y=({n:e})=>r("svg",{viewBox:"0 0 24 24","aria-hidden":"true",dangerouslySetInnerHTML:{__html:vp[e]??vp.attachment}});var yp=`
1582
+ `}}function $p(e,t){let o=e.filter(([l])=>t-l<=3e3);if(o.length<2)return 0;let[r,a]=o[0],[i,s]=o[o.length-1];return i>r?Math.max(0,(s-a)/(i-r)*1e3):0}function Bp(e,t){let o=t??{};return e===401?"not_signed_in":o.code==="STORAGE_QUOTA_EXCEEDED"?"quota":o.code==="STORAGE_BUSY"||o.code==="STORAGE_RECONCILIATION_REQUIRED"?"storage_unavailable":o.code==="FILE_TOO_LARGE"||e===413?"too_large":typeof o.detail=="string"&&/quota exceeded/i.test(o.detail)?"quota":o.code==="STORAGE_NOT_CONFIGURED"?"storage_unavailable":`http_${e}`}var ry=3,ay=200,js=32,iy=e=>typeof e=="string"&&!!e&&e!=="."&&e!==".."&&!/[\\/]/.test(e);function Gs(e,t){return t?e.flatMap(o=>{let r=(o.webkitRelativePath||o.name).split("/");return r.slice(1).some(a=>a.startsWith("."))||r.length-1>js?[]:[{file:o,relDir:r.slice(0,-1)}]}):e.map(o=>({file:o,relDir:[]}))}function Up(e){let t=Array.from(e.items??[]).filter(a=>a.kind==="file").map(a=>({entry:a.webkitGetAsEntry?.()??null,file:a.getAsFile()})),o=[],r=async(a,i)=>{if(i.length>js)return!0;if(a.isFile){let c=await new Promise(d=>a.file(d,()=>d(null)));return c&&o.push({file:c,relDir:i}),o.length<=2e3}if(!a.isDirectory)return!0;let s=a.createReader(),l=[];for(;;){let c=await new Promise(d=>s.readEntries(d,()=>d([])));if(!c.length)break;l.push(...c)}l.sort((c,d)=>c.name<d.name?-1:c.name>d.name?1:0);for(let c of l)if(!c.name.startsWith(".")&&!await r(c,[...i,a.name]))return!1;return!0};return(async()=>{for(let a of t)if(a.entry){if(!await r(a.entry,[]))break}else a.file&&o.push({file:a.file,relDir:[]});return o})()}function Hp(e,t=window,o={}){let r=[],a=new Map,i=!1,s=0,l=()=>Date.now(),c=()=>Array.from(t.crypto.getRandomValues(new Uint8Array(16)),_=>_.toString(16).padStart(2,"0")).join("");async function d(){let _=await e.getCloud();if(!_.token)throw new Error("not_signed_in");return _}async function f(_,L={}){let B=await d(),P=Vn(B.base,_);if(!P)throw new Error("bad_path");let J=await qn(B,P,{method:L.method??"GET",headers:{...L.body!==void 0?{"Content-Type":"application/json"}:{},...L.projectSource?{"X-Project-Source":L.projectSource}:{}},body:L.body!==void 0?JSON.stringify(L.body):void 0,signal:AbortSignal.timeout(3e4)});return{status:J.status,json:await J.json().catch(()=>null)}}let u=_=>{let{attempt:L,relDir:B,abort:P,samples:J,file:v,dl:A,...N}=_;return{...N,speed:_.state==="active"?$p(J,l()):0}},p=_=>_.state==="active"||_.state==="queued"||_.state==="paused",m=(_,L,B=null)=>{_.state=L,_.error=B,_.abort=null,_.finishedAt=l(),_.samples=[];let P=r.filter(J=>J.state==="done"||J.state==="canceled");for(let J of P.slice(0,Math.max(0,P.length-ay)))r.splice(r.indexOf(J),1);h()},g=_=>{let L=String(_?.message||_);return["too_large","quota","not_signed_in","bad_response","popup_blocked","download_unavailable","download_failed"].includes(L)||L.startsWith("http_")?L:"network"};function h(){if(!i)for(let _ of["up","down"]){let L=r.filter(B=>B.kind===_&&B.state==="active").length;for(let B of r){if(L>=ry)break;if(B.kind!==_||B.state!=="queued")continue;L++,B.state="active",B.startedAt=l(),B.done=0,B.samples=[[l(),0]],B.abort=new AbortController;let P=B.abort.signal,J=++B.attempt,v=()=>B.attempt===J&&B.state==="active";(_==="up"?x(B,v,P):$(B,v,P)).catch(A=>{v()&&m(B,"failed",g(A))})}}}let k=(_,L)=>{_.done=L;let B=l(),P=_.samples[_.samples.length-1];for((!P||B-P[0]>=200)&&_.samples.push([B,L]);_.samples.length>2&&B-_.samples[0][0]>3500;)_.samples.shift()};function y(_){let L=s,B=()=>{if(i||L!==s)throw new Error("account_changed")};if(!_.relDir.length)return Promise.resolve(_.targetId);let P=a.get(_.batch);P||a.set(_.batch,P=new Map);let J=P,v=A=>{if(A===0)return Promise.resolve(_.targetId);let N=_.relDir.slice(0,A).join("/"),X=J.get(N);return X||(X=v(A-1).then(async Q=>{B();let H=_.relDir[A-1],oe=await f("/files",{method:"POST",body:{type:"directory",parentId:Q,name:H},projectSource:_.projectSource});if(B(),oe.status===201&&typeof oe.json?.id=="string")return oe.json.id;if(oe.status===409){let ge=await f(`/files${Q==="ROOT"?"":`?parentId=${encodeURIComponent(Q)}`}`,{projectSource:_.projectSource}),He=Array.isArray(ge.json)?ge.json.find(pe=>pe?.fileType==="directory"&&pe?.name===H):null;if(He?.id)return String(He.id)}throw new Error(oe.status===401?"not_signed_in":`http_${oe.status}`)}),X.catch(()=>J.delete(N)),J.set(N,X)),X};return v(_.relDir.length)}async function x(_,L,B){let P=_.file;if(P.size>52428800)throw new Error("too_large");let J=await y(_);if(!L())return;_.parentId=J;let v=await d();if(!L())return;let A=Vn(v.base,"/files/upload");if(!A)throw new Error("bad_path");let N=`----penzor${c()}`,{head:X,tail:Q}=Fp(N,{parentId:J,autoRename:"true"},_.name,P.type||qs(_.name)),H=await qn(v,A,{method:"POST",headers:{"Content-Type":`multipart/form-data; boundary=${N}`,..._.projectSource?{"X-Project-Source":_.projectSource}:{}},body:new Blob([X,P,Q]),signal:B}),oe=await H.json().catch(()=>null);L()&&(H.status===201||H.status===200?(_.fileId=typeof oe?.id=="string"?oe.id:null,k(_,_.size),m(_,"done")):m(_,"failed",Bp(H.status,oe)))}async function w(_,L,B){L.size=Number(_.headers.get("content-length"))||L.size;let P=_.headers.get("content-type")||"";if(!_.body)return _.blob();let J=_.body.getReader(),v=[],A=0;for(;;){let{done:N,value:X}=await J.read();if(N)break;if(!B())throw J.cancel().catch(()=>{}),new Error("aborted");v.push(X),A+=X.length,k(L,A)}return A>L.size&&(L.size=A),new Blob(v,{type:P})}let C=(_,L)=>{let B=URL.createObjectURL(_),P=t.document.createElement("a");P.href=B,P.download=L,t.document.body.appendChild(P),P.click(),P.remove(),setTimeout(()=>URL.revokeObjectURL(B),6e4)},M=_=>{let L=t.open("","_blank");return L?(L.opener=null,L.location.replace(_),!0):!1};async function $(_,L,B){let P=_.dl,J=await d();if(!L())return;let v=Vn(J.base,P.path);if(!v)throw new Error("bad_path");let A=await qn(J,v,{signal:B});if(!A.ok)throw new Error(A.status===401?"not_signed_in":`http_${A.status}`);let N;if(P.mode==="bytes")N=await w(A,_,L);else{let X=await A.json().catch(()=>null);if(P.mode==="text"){if(typeof X?.content!="string")throw new Error("bad_response");N=new Blob([X.content],{type:qs(P.name)}),_.size=N.size,k(_,N.size)}else{if(typeof X?.url!="string"||!/^https?:\/\//i.test(X.url))throw new Error("bad_response");let Q=await fetch(X.url,{signal:B,credentials:"omit"}).catch(H=>{if(B.aborted)throw H;return null});if(!Q){if(!L())return;if(o.openExternal)await o.openExternal(X.url);else if(!M(X.url))throw new Error("popup_blocked");if(!L())return;m(_,"done");return}if(!Q.ok)throw new Error(`http_${Q.status}`);N=await w(Q,_,L)}}L()&&(o.saveDownload?await o.saveDownload(N,P.name):C(N,P.name),L()&&m(_,"done"))}let U=(_,L)=>{let B={projectSource:void 0,parentId:void 0,targetId:void 0,fileId:null,localPath:null,..._,id:c(),attempt:0,done:0,state:L?"failed":"queued",error:L??null,abort:null,samples:[],speed:0,startedAt:null,finishedAt:L?l():null};return r.push(B),B};e.handle("penzor:upload",async(_,L)=>{let B=s,P=L??{},J=(Array.isArray(P.files)?P.files:[]).filter(H=>!!H&&H.file instanceof Blob&&typeof H.file.name=="string"&&Array.isArray(H.relDir)&&H.relDir.length<=js&&H.relDir.every(iy)),v=typeof P.parentId=="string"&&Dp.test(P.parentId)?P.parentId:null,A=typeof P.projectSource=="string"&&Np.test(P.projectSource)?P.projectSource:null;if(!J.length)return{ok:!1,error:"no_files"};if(!v||!A)return{ok:!1,error:"bad_target"};if(J.length>2e3)return{ok:!1,error:"too_many",max:2e3};if(!(await e.getCloud()).token)return{ok:!1,error:"not_signed_in"};if(B!==s)return{ok:!1,error:"account_changed"};let N=J.filter(H=>H.file.size<=52428800).reduce((H,oe)=>H+oe.file.size,0);try{let H=await f("/storage/quota"),oe=Number(H.json?.used),ge=Number(H.json?.quota);if(H.status===200&&ge>0&&oe+N>ge)return{ok:!1,error:"quota",short:oe+N-ge}}catch{}if(B!==s)return{ok:!1,error:"account_changed"};if(i)return{ok:!1,error:"disposed"};let X=c(),Q=J.map(H=>U({kind:"up",name:H.file.name,size:H.file.size,projectSource:A,parentId:H.relDir.length?null:v,targetId:v,batch:X,relDir:H.relDir,file:H.file},H.file.size>52428800?"too_large":void 0).id);return h(),{ok:!0,ids:Q,batch:X}}),e.handle("penzor:download",async(_,L)=>{let B=s,P=L??{},J=Lp.includes(P.mode)?P.mode:null,v=Op(P.name);if(!J)return{ok:!1,error:"bad_mode"};if(!v)return{ok:!1,error:"bad_name"};let A=await e.getCloud();if(B!==s)return{ok:!1,error:"account_changed"};if(typeof P.path!="string"||!Vn(A.base,P.path))return{ok:!1,error:"bad_path"};if(!A.token)return{ok:!1,error:"not_signed_in"};if(i)return{ok:!1,error:"disposed"};let N=U({kind:"down",name:v,size:Math.max(0,Number(P.size)||0),relDir:[],batch:typeof P.batch=="string"&&P.batch.length<=64?P.batch:c(),dl:{path:P.path,mode:J,name:v}});return h(),{ok:!0,id:N.id}}),e.handle("penzor:transfers",()=>({ok:!0,items:r.map(u)})),e.handle("penzor:transfer",(_,L)=>{let B=L??{},P=r.find(v=>v.id===B.id);if(!P)return{ok:!1,error:"not_found"};let J=()=>{P.abort?.abort(),P.abort=null,P.done=0,P.samples=[]};switch(B.op){case"pause":(P.state==="active"||P.state==="queued")&&(J(),P.state="paused",h());break;case"resume":P.state==="paused"&&(P.state="queued",h());break;case"cancel":p(P)&&(J(),m(P,"canceled"));break;case"retry":(P.state==="failed"||P.state==="canceled")&&(P.state="queued",P.error=null,P.finishedAt=null,P.done=0,h());break;case"dismiss":P.state!=="active"&&P.state!=="queued"&&r.splice(r.indexOf(P),1);break;default:return{ok:!1,error:"bad_op"}}return{ok:!0}}),e.handle("penzor:transfers:clear",(_,L)=>{let B=L?.which==="all";for(let P of[...r])(P.state==="done"||P.state==="canceled"||B&&P.state==="failed")&&r.splice(r.indexOf(P),1);return{ok:!0}});let O=_=>{r.some(p)&&(_.preventDefault(),_.returnValue="")};t.addEventListener("beforeunload",O);let j=()=>{s++;for(let _ of r)_.state="canceled",_.abort?.abort();r.length=0,a.clear()};return{reset:j,dispose(){i=!0,t.removeEventListener("beforeunload",O),j()}}}var Go=[{id:"notes",path:"Amadeus"},{id:"agents",path:"agents"},{id:"profile",path:"human"},{id:"plugins",path:"Plugins"}],Js=new Set(["Amadeus","agents"]);var _o=new Set(["muse"]);var sy=e=>[..._o].some(t=>Xs(e,`agents/${t}`));var Ar=(e,t)=>Ep(t,e)?.target??"off",Xs=(e,t)=>e===t||e.startsWith(t+"/"),ly=e=>Go.some(t=>Xs(e,t.path)),Ks=e=>e.some(t=>t.id==="default")?Ua():"default",jt=(e,t)=>e.enabled?Ar(e.rules,t):"off";function qp(e,t,o){o==="off"&&(e=e.filter(i=>t?!i.source.startsWith(t+"/"):!i.source||ly(i.source)));let r=e.find(i=>i.source===t),a=e.filter(i=>i!==r);return t&&Ar(a,t)===o?a:r?e.map(i=>i===r?{...i,target:o}:i):[...e,{id:t?Ua():Ks(e),source:t,target:o}]}function Vp(e,t,o,r=!1){if(sy(t))return e;let a=e.rules;if(!e.enabled){let i=a.find(l=>!l.source),s=t?a.filter(l=>l.source&&Xs(l.source,t)):[];a=[{id:i?.id??Ks(s),source:"",target:"off"},...s],t!=="agents"&&(a=jp(a,"agents","off"))}if(!t)for(let i of Go)a.some(s=>s.source===i.path)||(a=[...a,{id:Ua(),source:i.path,target:Ar(a,i.path)}]);return cy({...e,rules:qp(a,t,o)},r)}function cy(e,t=!1){let o=r=>Ar(e.rules,r)!=="off";return{...e,enabled:Go.some(r=>o(r.path))||e.rules.some(r=>r.source&&r.target!=="off")||t&&o("")}}function Wp(e){let t=e.rules.some(o=>o.source==="")?e.rules:[{id:Ks(e.rules),source:"",target:"default"},...e.rules];for(let o of Go)o.id!=="agents"&&Ar(t,o.path)==="off"&&(t=qp(t,o.path,"default"));return t=jp(t,"agents","off"),{...e,enabled:!0,rules:t}}function jp(e,t,o){let r=e.find(a=>a.source===t);return r?e.map(a=>a===r?{...a,target:o}:a):[...e,{id:Ua(),source:t,target:o}]}function Ys(e,t){return e.rules.filter(o=>o.source.startsWith(t+"/")&&(!Js.has(t)||o.source.split("/").length>2)).length}function Zs(e,t){let o=s=>new Map(s.rules.map(l=>[l.source,l.target])),r=o(e),a=o(t),i=e.enabled!==t.enabled?1:0;for(let s of new Set([...r.keys(),...a.keys()]))r.get(s)!==a.get(s)&&i++;return i}var dy=0,Ua=()=>`rule-${Date.now().toString(36)}-${(dy++).toString(36)}`;var Gp={globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18"/>',"user-round":'<circle cx="12" cy="8" r="5"/><path d="M20 21a8 8 0 0 0-16 0"/>',monitor:'<rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/>',history:'<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l4 2"/>',more:'<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>',"cloud-off":'<path d="m2 2 20 20"/><path d="M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193"/><path d="M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07"/>',"cloud-check":'<path d="m17 15-5.5 5.5L9 18"/><path d="M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742"/>',"tx-sync":'<path d="m17 2 4 4-4 4"/><path d="M3 11v-1a4 4 0 0 1 4-4h14"/><path d="m7 22-4-4 4-4"/><path d="M21 13v1a4 4 0 0 1-4 4H3"/>',search:'<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>',down:'<path d="m6 9 6 6 6-6"/>',right:'<path d="m9 18 6-6-6-6"/>',folder:'<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>',page:'<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="M10 9H8"/><path d="M16 13H8"/><path d="M16 17H8"/>',image:'<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>',database:'<ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5V19A9 3 0 0 0 21 19V5"/><path d="M3 12A9 3 0 0 0 21 12"/>',attachment:'<path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48"/>',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/>',trash:'<path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/>',refresh:'<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/>',cloud:'<path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/>',archive:'<rect width="20" height="5" x="2" y="3" rx="1"/><path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"/><path d="M10 12h4"/>',store:'<path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"/><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"/><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"/>',sparkles:'<path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"/><path d="M20 2v4"/><path d="M22 4h-4"/><circle cx="4" cy="20" r="2"/>',palette:'<path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"/><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/>',lock:'<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',undo:'<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/>',pen:'<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/>',move:'<path d="M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1"/><path d="M2 13h10"/><path d="m9 16 3-3-3-3"/>',book:'<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20"/>',login:'<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"/><polyline points="10 17 15 12 10 7"/><line x1="15" x2="3" y1="12" y2="12"/>',gear:'<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>',up:'<path d="m18 15-6-6-6 6"/>',upload:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" x2="12" y1="3" y2="15"/>',"folder-plus":'<path d="M12 10v6"/><path d="M9 13h6"/><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>',"folder-open":'<path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"/>',pause:'<rect x="14" y="4" width="4" height="16" rx="1"/><rect x="6" y="4" width="4" height="16" rx="1"/>',play:'<polygon points="6 3 20 12 6 21 6 3"/>',x:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',check:'<path d="M20 6 9 17l-5-5"/>',alert:'<circle cx="12" cy="12" r="10"/><line x1="12" x2="12" y1="8" y2="12"/><line x1="12" x2="12.01" y1="16" y2="16"/>',"tx-up":'<path d="m18 9-6-6-6 6"/><path d="M12 3v14"/><path d="M5 21h14"/>',"tx-down":'<path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/>',files:'<path d="M20 7h-3a2 2 0 0 1-2-2V2"/><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"/><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"/>',notebook:'<path d="M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4"/><path d="M2 6h4"/><path d="M2 10h4"/><path d="M2 14h4"/><path d="M2 18h4"/><path d="M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z"/>',bot:'<path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/>',puzzle:'<path d="M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"/>',laptop:'<path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"/><path d="M20.054 15.987H3.946"/>',info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',penzor:'<path d="M3 18.5h13.5a4.25 4.25 0 0 0 0-8.5 4.75 4.75 0 0 0-9.5 0 2.5 2.5 0 0 0 5 0"/>'},Tr=({p:e})=>n("div",{class:"pz-ov-kick pz-brand",children:[n(ne,{n:"penzor"}),n("b",{children:e.t("penzor.title")}),e.locale()==="zh"&&n("span",{children:we("en","penzor.title")})]}),ne=({n:e})=>n("svg",{viewBox:"0 0 24 24","aria-hidden":"true",dangerouslySetInnerHTML:{__html:Gp[e]??Gp.attachment}});var Xp=`
1446
1583
  .pz-rules{max-width:960px}.pz-rules .pz-rule-head,.pz-rules .pz-rule-tools{display:flex;gap:12px;align-items:center;justify-content:space-between}
1447
1584
  .pz-rules .pz-rule-head h1{margin:0}.pz-rules .pz-rule-meta{color:var(--text-muted);font-size:var(--ui-font-meta);margin:6px 0 16px}
1448
1585
  .pz-rules .pz-rule-tools{margin-bottom:12px}.pz-rules .pz-rule-enable{display:flex;gap:8px;align-items:center;font-size:var(--ui-font-body)}.pz-rules input[type=checkbox]{accent-color:var(--signal-mark)}
@@ -1484,7 +1621,7 @@ Content-Type: ${o}\r
1484
1621
  .pz-cs .pz-ask-foot{display:flex;align-items:center;gap:8px;margin-top:14px}.pz-cs .pz-ask-foot small{flex:1;color:var(--text-faint);font-size:var(--ui-font-meta)}
1485
1622
  .pz-cs h3.pz-cs-sec{display:flex;align-items:center;gap:10px;margin:26px 0 0;font-size:var(--ui-font-heading);font-weight:600}
1486
1623
  @media(max-width:720px){.pz-cs .pz-cs-child,.pz-cs .pz-cs-subnote{padding-left:16px}.pz-cs .pz-cs-bar{flex-wrap:wrap}.pz-cs .pz-cs-bar .txt{flex-basis:calc(100% - 30px)}}
1487
- `;async function bn(e,...t){let n=oe().cloudInvoke;if(!n)throw Error("content_sync_unavailable");let o=await n(e,...t);if(!o?.ok)throw Error(o?.error??"content_sync_unavailable");return o.value}var Hr=e=>e instanceof Error?e.message:String(e),yb=["merge","cloud","local"],bp={notes:{icon:"notebook",title:"penzor.cat.notes",desc:"penzor.cat.notesDesc"},agents:{icon:"bot",title:"penzor.cat.agents",desc:"penzor.cat.agentsDesc"},profile:{icon:"user-round",title:"penzor.cat.profile",desc:"penzor.cat.profileDesc"},plugins:{icon:"puzzle",title:"penzor.cat.plugins",desc:"penzor.cat.pluginsDesc"}};function Ta({on:e,disabled:t,label:n,onToggle:o}){return r("button",{type:"button",role:"switch",class:`settings-switch${e?" active":""}`,"aria-checked":e,"aria-label":n,disabled:t,onClick:a=>{a.stopPropagation(),o(!e)},children:r("span",{})})}function xp({p:e,legacy:t}){let n=e.t,[o,a]=C(null),[i,s]=C(!0),[l,c]=C(null),[d,m]=C(null),[u,p]=C(0),[g,f]=C(!1),[h,k]=C(!1),[x,S]=C(null),[w,T]=C(!1),[R,B]=C(!1),[U,N]=C(!1),[G,z]=C({}),[P,F]=C(null),[L,ae]=C(!1),[b,_]=C(null),[I,H]=C(null),[Q,$]=C(null),te=ie(!0),ce=ie(!1),We=ie(null),pe=async()=>{try{let D=await bn(_t.get,e.locale());if(!D?.available){te.current&&s(!1);return}te.current&&(ce.current=!0,a(D),s(!0))}catch(D){te.current&&(!ce.current&&/unavailable|not a Forsion Extend channel/i.test(String(D))?s(!1):S(Hr(D)))}};X(()=>{te.current=!0,pe();let D=setInterval(()=>void pe(),1e3);return()=>{te.current=!1,clearInterval(D)}},[]),X(()=>{if(!P&&!L)return;let D=re=>{re instanceof KeyboardEvent&&re.key!=="Escape"||re.type==="mousedown"&&re.target?.closest?.(".pz-cs-menu")||(F(null),ae(!1))};return document.addEventListener("mousedown",D),document.addEventListener("keydown",D),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",D)}},[P,L]);let Be=!!o&&!o.config.enabled&&o.config.revision===0&&!R,ht=Vt(()=>o&&Be?gp(o.config):null,[Be,o?.config.revision]),he=o?l??ht??o.config:null,at=!!o&&!w&&(Be||!!l&&Ms(o.config,l)>0),yn=at&&he?JSON.stringify(he)+"#"+u:"";if(X(()=>{if(m(null),$(null),!yn)return;let D=!0,re=setTimeout(()=>{bn(_t.preview,he).then(ve=>{D&&te.current&&m(ve)},ve=>{!D||!te.current||(/config_changed/.test(Hr(ve))?c(null):S(Hr(ve)))})},400);return()=>{D=!1,clearTimeout(re)}},[yn]),!i)return t;if(!o||!he)return r("div",{class:"pz-scroll",children:r("p",{class:"pz-note",children:x??n("penzor.loading")})});if(w)return r(xb,{p:e,snap:o,refresh:pe,back:()=>T(!1)});let dt=`device-${o.deviceId}`,Ye=o.devices.filter(D=>D.id!==o.deviceId),nn=(o.others?.files??0)>0,Jt=D=>o.sources.find(re=>re.path===D),Ce=D=>o.sources.filter(re=>re.path.startsWith(D+"/")&&!re.path.slice(D.length+1).includes("/")),rn=D=>D==="default"?n("penzor.scope.all"):D===dt?n("penzor.scope.self"):n("penzor.scope.with",{name:o.devices.find(re=>`device-${re.id}`===D)?.name??D.slice(7,15)}),Pe=(D,re,ve)=>{c(mp(he,D,re,nn)),H({path:D,name:ve,target:re}),F(null),S(null),f(!1)},Ft=async D=>{k(!0),S(null);try{await D(),await pe()}catch(re){S(Hr(re))}finally{k(!1)}},vt=d?.agentAsks??[],Tn=()=>{if(vt.length&&!Q){$(Object.fromEntries(vt.map(D=>[D.slug,"merge"])));return}Kt(Q??{})},Kt=D=>void Ft(async()=>{try{await bn(_t.apply,d.token,...Object.keys(D).length?[D]:[])}catch(Ne){if($(null),/preview_(changed|expired)/.test(Hr(Ne))){f(!0),p(kt=>kt+1);return}throw Ne}$(null);let re=Et(he,"Plugins")==="default",ve=e.syncState()?.plugins;e.hasSync()&&ve&&ve.on!==re&&e.setSync("plugins",re),c(null),B(!1),f(!1)}),Xt=(D,re,ve)=>{D.stopPropagation();let Ne=D.currentTarget.getBoundingClientRect(),kt=We.current.getBoundingClientRect(),tt=document.body.currentCSSZoom||1;F(P?.path===re?null:{path:re,name:ve,x:(Ne.left-kt.left)/tt-4,y:(Ne.bottom-kt.top)/tt+4})},bt=({path:D,name:re})=>{let ve=Et(he,D);return r("button",{type:"button",class:`pz-scope${ve!=="default"?" is-alt":""}`,"aria-haspopup":"menu","aria-expanded":P?.path===D,onClick:Ne=>Xt(Ne,D,re),children:[r(Y,{n:ve==="default"?"cloud":ve===dt?"laptop":"monitor"}),rn(ve),r(Y,{n:"down"})]})},Ze=hn(o),$t=o.jobs.filter(D=>D.state==="queued"||D.state==="active"||D.state==="paused"),on=vo(o),Pt=Ze.kind==="off"?r("span",{class:"pz-cs-status",children:[r(Y,{n:"cloud-off"}),n("penzor.cs.statusOff")]}):Ze.kind==="paused"?r("span",{class:"pz-cs-status",children:[r(Y,{n:"pause"}),n("penzor.cs.statusPaused")]}):Ze.kind==="run"?r("span",{class:"pz-cs-status is-ok",children:[r("span",{class:"pz-ring",style:`--p:${Ze.pct}`}),n("penzor.cs.statusRun",{pct:Ze.pct})]}):Ze.kind==="scan"?r("span",{class:"pz-cs-status is-ok",children:[r(Y,{n:"refresh"}),n("penzor.cs.statusScan")]}):Ze.kind==="warn"?r("span",{class:"pz-cs-status is-warn",children:[r(Y,{n:"alert"}),n("penzor.cs.statusWarn",{n:Ze.n})]}):r("span",{class:"pz-cs-status is-ok",children:[r(Y,{n:"cloud-check"}),Ze.at?n("penzor.cs.statusOkAgo",{time:vn(Ze.at,e.locale())}):n("penzor.cs.statusOk")]}),et=b!=null&&b.trim()!==o.deviceName?ys(b.trim(),o.devices,o.deviceId):null,Bt=(D=!1)=>{let re=b;if(re==null)return;let ve=re.trim();if(ve!==o.deviceName&&ys(ve,o.devices,o.deviceId)){D&&_(null);return}_(null),ve!==o.deviceName&&Ft(()=>bn(_t.rename,ve))},xn=D=>{let re=/device_name_(taken|reserved|invalid)/.exec(D);return re?n(`penzor.cs.name.${re[1]}`):D},it=$t.find(D=>D.state==="active")??$t[0],$n=(D,re)=>{let ve=bp[D],Ne=Et(he,re)!=="off",kt=Ts.has(re)&&Ce(re).length>0,tt=!!G[re]&&Ne,je=Ps(he,re),an=Jt(re),ke=D==="notes"?an?n("penzor.cat.files",{n:(an.files??0).toLocaleString(),size:e.b(an.size)}):"":D==="profile"?n("penzor.cat.profileOn"):n("penzor.cat.pluginsN",{n:Ce(re).length}),Ke=r("b",{children:[n(ve.title),kt&&r("span",{class:"pz-cs-chev",children:r(Y,{n:"right"})})]}),wt=r("small",{children:Ne?r(O,{children:[r(bt,{path:re,name:n(ve.title)}),ke&&r(O,{children:[r("span",{class:"pz-sep",children:"\xB7"}),r("span",{children:ke})]}),je>0&&r(O,{children:[r("span",{class:"pz-sep",children:"\xB7"}),r("button",{class:"pz-link",onClick:()=>T(!0),children:n("penzor.cat.custom",{n:je})})]})]}):n(ve.desc)});return r(O,{children:[r("div",{class:`pz-sync-row${kt&&Ne?" is-click":""}${tt?" is-open":""}`,children:[kt&&Ne?r("div",{class:"pz-sync-main",role:"button",tabIndex:0,"aria-expanded":tt,onClick:()=>z({...G,[re]:!tt}),onKeyDown:Ie=>{Ie.key==="Enter"&&z({...G,[re]:!tt})},children:[r("span",{class:"pz-tile",children:r(Y,{n:ve.icon})}),r("span",{class:"pz-sync-txt",children:[Ke,wt]})]}):r("div",{class:"pz-sync-main",children:[r("span",{class:"pz-tile",children:r(Y,{n:ve.icon})}),r("span",{class:"pz-sync-txt",children:[Ke,wt]})]}),r(Ta,{on:Ne,label:n(ve.title),disabled:h,onToggle:Ie=>Pe(re,Ie?"default":"off",n(ve.title))})]}),tt&&Ce(re).map(Ie=>{let yt=Ie.path.slice(re.length+1),Zt=Et(he,Ie.path)!=="off";return r("div",{class:"pz-cs-child",title:Ie.path,children:[r("span",{children:[r("b",{children:[yt,D==="notes"&&r("span",{class:"pz-cs-faint",children:n("penzor.cat.files",{n:(Ie.files??0).toLocaleString(),size:e.b(Ie.size)})})]}),Zt?r(bt,{path:Ie.path,name:yt}):r("span",{class:"pz-cs-faint",children:n("penzor.cat.notSynced")})]}),r(Ta,{on:Zt,label:yt,disabled:h,onToggle:tr=>Pe(Ie.path,tr?Et(he,re):"off",yt)})]},Ie.path)})]},re)},Yt=()=>{let D=bp.agents,re=o.sources.filter(ke=>ke.agent),ve=new Set(re.map(ke=>ke.path.slice(7))),Ne=[...re.map(ke=>({slug:ke.path.slice(7),name:ke.name,nameEn:ke.nameEn,here:!0})),...(o.cloudAgents??[]).filter(ke=>!ve.has(ke)).map(ke=>({slug:ke,name:void 0,nameEn:void 0,here:!1}))].sort((ke,Ke)=>Number(kr.has(ke.slug))-Number(kr.has(Ke.slug))),kt=ke=>kr.has(ke.slug)?n("penzor.agents.muse"):(e.locale()==="en"?ke.nameEn??ke.name:ke.name??ke.nameEn)??ke.slug,tt=Ne.filter(ke=>!kr.has(ke.slug)&&Et(he,`agents/${ke.slug}`)!=="off").length,je=Ps(he,"agents"),an=Ne.length?n(Et(he,"agents")==="off"?"penzor.agents.pickHint":"penzor.agents.legacyHint",{n:tt}):n("penzor.agents.none");return r(O,{children:[r("div",{class:"pz-sync-row pz-cs-group",children:r("div",{class:"pz-sync-main",children:[r("span",{class:"pz-tile",children:r(Y,{n:D.icon})}),r("span",{class:"pz-sync-txt",children:[r("b",{children:n(D.title)}),r("small",{children:[an,je>0&&r(O,{children:[r("span",{class:"pz-sep",children:"\xB7"}),r("button",{class:"pz-link",onClick:()=>T(!0),children:n("penzor.cat.custom",{n:je})})]})]})]})]})}),Ne.map(ke=>{let Ke=`agents/${ke.slug}`,wt=kt(ke),Ie=kr.has(ke.slug),yt=!Ie&&Et(he,Ke)!=="off";return r("div",{class:`pz-cs-child${Ie?" is-locked":""}`,title:Ke,"data-agent":ke.slug,children:[r("span",{children:[r("b",{children:[wt,wt.toLowerCase()!==ke.slug&&r("span",{class:"pz-cs-slug",children:ke.slug})]}),Ie?r("span",{class:"pz-cs-faint",children:n("penzor.agents.museDesc")}):yt?r(bt,{path:Ke,name:wt}):r("span",{class:"pz-cs-faint",children:n(ke.here?"penzor.cat.notSynced":"penzor.agents.cloudOnly")})]}),Ie?r("span",{class:"pz-cs-lock",role:"note",children:[r(Y,{n:"lock"}),n("penzor.agents.locked")]}):r(Ta,{on:yt,label:wt,disabled:h,onToggle:Zt=>Pe(Ke,Zt?"default":"off",wt)})]},Ke)}),r("div",{class:"pz-cs-subnote",children:n("penzor.agents.historianNote")})]},"agents")},Mt=at&&r("div",{class:"pz-cs-bar",role:"region","aria-label":n("penzor.rules.previewTitle"),children:[r(Y,{n:"alert"}),r("span",{class:"txt",children:[Be?d?n("penzor.cs.barFirst",{up:d.upload,down:d.download}):n("penzor.cs.firstTitle"):(()=>{let D=Ms(o.config,he);return D===1&&I&&Et(he,I.path)===I.target&&Et(o.config,I.path)!==I.target?n("penzor.cs.barOne",{name:I.name,scope:I.target==="off"?n("penzor.cs.offName"):rn(I.target)}):n("penzor.cs.barChanged",{n:D})})(),r("small",{children:g?n("penzor.cs.barRecount"):d?[Be?n("penzor.cs.barSize",{size:e.b(d.bytes)}):n("penzor.cs.barCounts",{up:d.upload,down:d.download}),d.conflicts>0?n("penzor.cs.barConflicts",{n:d.conflicts}):"",Be?n("penzor.cs.noDelete"):""].filter(Boolean).join(" \xB7 "):n("penzor.cs.barCounting")})]}),r("button",{class:"pz-btn",disabled:h,onClick:()=>{Be&&B(!0),c(null),f(!1)},children:n(Be?"penzor.cs.later":"penzor.cs.undo")}),r("button",{class:"pz-btn pri",disabled:h||!d||o.running,onClick:Tn,children:n(Be?"penzor.cs.start":"penzor.cs.confirm")})]}),st=o.agentArchive?.state==="done"&&!o.agentArchive.seen&&o.agentArchive.folderId?o.agentArchive:null,Bn=D=>D==="content_account_changed_preview_required"?n("penzor.cs.accountReview"):D==="agent_archive_running"?n("penzor.agents.archiveRunning"):D.startsWith("agent_open_failed: ")?n("penzor.agents.openFailed",{reason:D.slice(19)}):xn(D),Un=D=>{let re=o.sources.find(ve=>ve.agent&&ve.path===`agents/${D}`);return(e.locale()==="en"?re?.nameEn??re?.name:re?.name??re?.nameEn)??D},er=Q&&d&&vt.length>0&&r("div",{class:"pz-sync-ask pz-ask-card",role:"dialog","aria-modal":"false","aria-label":n("penzor.ask.confirm"),children:[vt.map(D=>r("div",{class:"pz-ask-agent",role:"radiogroup","aria-label":Un(D.slug),children:[r("b",{children:n("penzor.ask.title",{name:Un(D.slug)})}),r("small",{children:n("penzor.ask.when",{cloud:At(D.cloudMtime,e.locale()),local:At(D.localMtime,e.locale())})}),yb.map(re=>r("label",{class:"pz-ask-opt",children:[r("input",{type:"radio",name:`ask-${D.slug}`,checked:Q[D.slug]===re,onChange:()=>$({...Q,[D.slug]:re})}),r("span",{children:[r("b",{children:n(`penzor.ask.${re}`)}),re==="merge"&&r("em",{children:n("penzor.ask.recommended")}),r("small",{children:n(`penzor.ask.${re}Desc`)})]})]},re))]},D.slug)),r("div",{class:"pz-ask-foot",children:[r("small",{children:n("penzor.ask.foot")}),r("button",{class:"pz-btn",disabled:h,onClick:()=>$(null),children:n("penzor.ask.cancel")}),r("button",{class:"pz-btn pri",disabled:h||o.running,onClick:()=>Kt(Q),children:n("penzor.ask.confirm")})]})]}),An=D=>D.direction==="upload"?"tx-up":D.direction==="download"?"tx-down":"tx-sync";return r("div",{class:"pz-scroll",children:[r("style",{children:yp}),r("div",{class:"pz-col pz-cs",ref:We,children:[r(yo,{p:e}),r("div",{class:"pz-cs-head",children:[r("h1",{class:"pz-h1",children:n("penzor.sync.title")}),Pt,r("span",{class:"grow"}),r("button",{class:"pz-btn",disabled:h||o.running||!o.config.enabled,onClick:()=>void Ft(()=>bn(_t.run)),children:[r(Y,{n:"refresh"}),n("penzor.rules.run")]}),r("button",{class:"pz-btn","aria-label":n("penzor.cs.more"),"aria-haspopup":"menu",onClick:D=>{D.stopPropagation(),ae(!L)},children:r(Y,{n:"more"})})]}),L&&r("div",{class:"pz-cs-menu",style:"right:0;top:64px",role:"menu",children:r("button",{class:"it",role:"menuitem",onClick:()=>{ae(!1),T(!0)},children:[r(Y,{n:"gear"}),r("span",{children:r("b",{children:n("penzor.cs.advanced")})}),r("span",{})]})}),r("div",{class:"pz-cs-meta",children:[r("span",{class:"pz-cs-dev",children:[r(Y,{n:"laptop"}),b!=null?r(O,{children:[n("penzor.cs.thisComputerLabel"),r("input",{value:b,maxLength:64,"aria-label":n("penzor.cs.rename"),ref:D=>D?.focus(),onInput:D=>_(D.currentTarget.value),"aria-invalid":!!et,onKeyDown:D=>{D.key==="Enter"&&Bt(),D.key==="Escape"&&_(null)},onBlur:()=>Bt(!0)}),et?r("span",{class:"pz-cs-warn",role:"alert",children:n(`penzor.cs.name.${et}`)}):r("span",{class:"pz-cs-faint",children:n("penzor.cs.renameHint")})]}):r(O,{children:[n("penzor.cs.thisComputer",{name:o.deviceName}),r("button",{class:"pz-link","aria-label":n("penzor.cs.rename"),title:n("penzor.cs.rename"),onClick:()=>_(o.deviceName),children:r(Y,{n:"pen"})})]})]}),r("span",{children:Ye.length?n("penzor.cs.othersN",{n:Ye.length,names:Ye.map(D=>D.name).join(e.locale()==="zh"?"\u3001":", ")}):n("penzor.cs.noOthers")}),r("button",{class:"pz-link",onClick:()=>N(!U),children:[r(Y,{n:"history"})," ",n("penzor.cs.log")]})]}),(x||o.error)&&r("p",{role:"alert",class:"pz-rule-error",style:"margin-top:14px",children:Bn(x??o.error??"")}),st&&r("div",{class:"pz-sync-ask",role:"region","aria-label":n("penzor.archive.title"),children:[r("h4",{children:n("penzor.archive.title")}),r("p",{children:n("penzor.archive.body",{shelf:st.shelfName??n("penzor.archive.shelf"),name:st.name??""})}),r("div",{class:"pz-acts",children:[r("button",{class:"pz-btn",disabled:h,onClick:()=>void Ft(()=>bn(_t.archiveSeen)),children:n("penzor.archive.ok")}),st.shelfId&&r("button",{class:"pz-btn pri",onClick:()=>e.openFolder([{id:st.shelfId,name:st.shelfName??n("penzor.archive.shelf")},{id:st.folderId,name:st.name??"",archive:!0}]),children:n("penzor.archive.open")})]})]}),Be&&r("div",{class:"pz-sync-ask",children:[r("h4",{children:n("penzor.cs.firstTitle")}),r("p",{children:n("penzor.cs.firstBody")})]}),it&&r("div",{class:"pz-cs-act",children:[r("div",{class:"row1",children:[r(Y,{n:An(it)}),r("span",{class:"grow",children:[n(it.direction==="download"?"penzor.cs.down":"penzor.cs.up",{name:it.path.slice(it.path.lastIndexOf("/")+1)}),it.size!=null&&r("small",{children:[" ",e.b(it.done)," / ",e.b(it.size)]})]}),r("button",{class:"pz-btn",disabled:h,onClick:()=>void Ft(()=>bn(_t.pause,!o.paused)),children:[r(Y,{n:o.paused?"play":"pause"}),n(o.paused?"penzor.rules.resume":"penzor.rules.pause")]})]}),Ze.kind==="run"&&r("div",{class:"pz-bar",children:r("span",{style:`width:${Ze.pct}%`})}),$t.length>1&&r("div",{class:"more",children:n("penzor.cs.waiting",{n:$t.length-1})})]}),on.length>0&&!it&&r("div",{class:"pz-cs-act is-warn",children:r("div",{class:"row1",children:[r(Y,{n:"alert"}),r("span",{class:"grow",children:[n("penzor.cs.failedN",{n:on.length}),r("small",{children:[" ",on[0].error??""]})]}),r("button",{class:"pz-btn",disabled:h||o.running,onClick:()=>void Ft(()=>bn(_t.retry)),children:n("penzor.cs.retry")}),r("button",{class:"pz-btn",onClick:()=>N(!0),children:n("penzor.cs.seeLog")})]})}),r("div",{class:"pz-sync-card",children:[Ur.map(D=>D.id==="agents"?Yt():$n(D.id,D.path)),nn&&r("div",{class:"pz-sync-row",children:[r("div",{class:"pz-sync-main",children:[r("span",{class:"pz-tile",children:r(Y,{n:"folder"})}),r("span",{class:"pz-sync-txt",children:[r("b",{children:n("penzor.cat.others")}),r("small",{children:Et(he,"")!=="off"?r(O,{children:[r(bt,{path:"",name:n("penzor.cat.others")}),r("span",{class:"pz-sep",children:"\xB7"}),r("span",{children:n("penzor.cat.files",{n:o.others.files.toLocaleString(),size:e.b(o.others.size)})})]}):n("penzor.cat.othersDesc")})]})]}),r(Ta,{on:Et(he,"")!=="off",label:n("penzor.cat.others"),disabled:h,onToggle:D=>Pe("",D?"default":"off",n("penzor.cat.others"))})]})]}),r("p",{class:"pz-cs-note",children:n("penzor.cs.note")}),U&&r(O,{children:[r("h3",{class:"pz-cs-sec",children:[n("penzor.cs.log"),r("span",{class:"grow"}),on.length>0&&r("button",{class:"pz-btn",disabled:h||o.running,onClick:()=>void Ft(()=>bn(_t.retry)),children:n("penzor.cs.retry")})]}),r("div",{class:"pz-cs-log",children:o.jobs.length?o.jobs.slice(-30).reverse().map(D=>r("div",{class:"f",children:[r(Y,{n:An(D)}),r("span",{children:[D.path,D.error&&r("small",{children:[" \xB7 ",D.error]})]}),r("small",{children:[n(`penzor.rules.state.${D.state}`)," \xB7 ",vn(D.finishedAt??D.at,e.locale())]})]},D.id)):r("p",{class:"pz-cs-note",children:n("penzor.cs.logEmpty")})}),r("p",{class:"pz-cs-note",children:n("penzor.cs.logNote")})]}),er,!Q&&Mt,P&&r("div",{class:"pz-cs-menu",role:"menu",style:`left:${P.x}px;top:${P.y}px`,children:[r("div",{class:"cap",children:n("penzor.scope.menuTitle",{name:P.name})}),["default",dt,...Ye.map(D=>`device-${D.id}`)].map((D,re)=>r(O,{children:[re===2&&r("hr",{}),r("button",{class:"it",role:"menuitemradio","aria-checked":Et(he,P.path)===D,onClick:()=>Pe(P.path,D,P.name),children:[r(Y,{n:D==="default"?"cloud":D===dt?"laptop":"monitor"}),r("span",{children:[r("b",{children:rn(D)}),re<2&&r("small",{children:n(re===0?"penzor.scope.allDesc":"penzor.scope.selfDesc")})]}),Et(he,P.path)===D?r("span",{class:"tick",children:r(Y,{n:"check"})}):r("span",{})]})]},D)),P.path==="human"&&r("div",{class:"cap",children:n("penzor.scope.calendarNote")}),r("div",{class:"cap",children:n("penzor.scope.menuFoot")})]})]})]})}function xb({p:e,snap:t,refresh:n,back:o}){let a=e.t,[i,s]=C(null),[l,c]=C(null),[d,m]=C(!1),[u,p]=C(null),g=i??t.config,f=!!i,h=w=>w==="default"?a("penzor.rules.default"):w==="off"?a("penzor.rules.off"):t.devices.find(T=>"device-"+T.id===w)?.name??`${a("penzor.rules.device")} ${w.slice(7)}`,k=w=>{let T=structuredClone(g);w(T),s(T),c(null),p(null)},x=async w=>{m(!0),p(null);try{await w(),await n()}catch(T){p(Hr(T))}finally{m(!1)}},S=[...new Set(["default",`device-${t.deviceId}`,...t.devices.map(w=>`device-${w.id}`),...g.rules.map(w=>w.target),"off"])];return r("div",{class:"pz-scroll",children:[r("style",{children:yp}),r("div",{class:"pz-col pz-rules",children:[r("button",{class:"pz-link",onClick:o,children:["\u2190 ",a("penzor.cs.backSimple")]}),r("div",{class:"pz-rule-head",children:r("h1",{class:"pz-h1",children:a("penzor.cs.advanced")})}),r("p",{class:"pz-rule-meta",children:t.deviceName}),u&&r("p",{role:"alert",class:"pz-rule-error",children:u}),r("div",{class:"pz-rule-tools",children:[r("label",{class:"pz-rule-enable",children:[r("input",{type:"checkbox",checked:g.enabled,onChange:w=>k(T=>{T.enabled=w.currentTarget.checked})}),a("penzor.rules.enable")]}),r("button",{class:"pz-btn",onClick:()=>k(w=>w.rules.push({id:`rule-${crypto.randomUUID()}`,source:"",target:"default"})),children:a("penzor.rules.add")})]}),r("div",{class:"pz-rule-table",children:[r("div",{class:"pz-rule-row pz-rule-label",children:[r("span",{children:a("penzor.rules.source")}),r("span",{children:a("penzor.rules.destination")}),r("span",{})]}),g.rules.map((w,T)=>r("div",{class:"pz-rule-row",children:[r("input",{"aria-label":`${a("penzor.rules.source")} ${T+1}`,list:"pz-content-sources",placeholder:"Forsion",value:w.source,onInput:R=>k(B=>{B.rules[T].source=R.currentTarget.value,delete B.rules[T].sourceId})}),r("select",{"aria-label":`${a("penzor.rules.destination")} ${T+1}`,value:w.target,onChange:R=>k(B=>{B.rules[T].target=R.currentTarget.value}),children:S.map(R=>r("option",{value:R,children:h(R)},R))}),r("button",{class:"pz-btn","aria-label":`${a("penzor.rules.remove")} ${T+1}`,onClick:()=>k(R=>{R.rules.splice(T,1)}),children:"\xD7"})]},w.id))]}),r("datalist",{id:"pz-content-sources",children:t.sources.filter(w=>w.kind==="folder").map(w=>r("option",{value:w.path},w.path))}),r("p",{class:"pz-rule-note",children:[a("penzor.rules.inherit"),r("br",{}),a("penzor.rules.namespace"),r("br",{}),a("penzor.rules.human")]}),r("div",{class:"pz-rule-actions",children:[f&&r("button",{class:"pz-btn",onClick:()=>{s(null),c(null)},children:a("penzor.cancel")}),r("button",{class:"pz-btn pri",disabled:d||t.running,onClick:()=>void x(async()=>c(await bn(_t.preview,g))),children:a("penzor.rules.preview")})]}),l&&r("div",{class:"pz-rule-preview",role:"region","aria-label":a("penzor.rules.previewTitle"),children:[r("h2",{children:a("penzor.rules.previewTitle")}),r("p",{children:a("penzor.rules.previewCounts",{up:l.upload,down:l.download,conflicts:l.conflicts})}),r("p",{class:"pz-rule-note",children:a("penzor.rules.retain")}),r("div",{class:"pz-rule-actions",children:[r("button",{class:"pz-btn",onClick:()=>c(null),children:a("penzor.rules.back")}),r("button",{class:"pz-btn pri",disabled:d,onClick:()=>void x(async()=>{await bn(_t.apply,l.token),s(null),c(null)}),children:a("penzor.rules.apply")})]})]})]})]})}function Ds(e){let[,t]=C(0);X(()=>{let n=e.subscribe(()=>t(o=>o+1));return t(o=>o+1),n},[e])}function xo(e){return r("div",{ref:e.rootRef,class:`${e.side?"pz-side":"pz"}${e.extra?` ${e.extra}`:""}`,lang:e.p.locale()==="zh"?"zh-CN":"en",...e.on,children:[r("style",{children:rp}),e.children]})}var qr=({pct:e,warn:t})=>r("div",{class:`pz-bar${t?" is-low":""}`,children:r("span",{style:{width:`${Math.max(0,Math.min(100,e)).toFixed(1)}%`}})});function _p({p:e}){Ds(e);let t=ie(null),n=ie(null);X(()=>{e.enter(),e.refresh(),br(e.loc())&&e.ctx.closeView?.("penzor-info",{collapse:!0});let p=t.current;if(!p||typeof IntersectionObserver>"u")return;let g=!0;e.setVisible(!0);let f=new IntersectionObserver(h=>{let k=h.some(x=>x.isIntersecting);k&&!g&&(e.enter(),e.refresh()),g=k,e.setVisible(k)});return f.observe(p),()=>{f.disconnect(),e.setVisible(!1)}},[e]);let[o,a]=C(null),i=p=>Array.from(p.dataTransfer?.types??[]).includes("Files"),s=p=>{let g=p.target?.closest?.("tr[data-dir-id]");return g?{id:g.dataset.dirId,name:g.dataset.dirName??""}:null},l=()=>e.appStack()[e.appStack().length-1]?.name??e.t("penzor.drive"),c=e.canWrite()&&e.auth()==="in"?{onDragOver:p=>{if(!i(p))return;p.preventDefault(),p.stopPropagation(),p.dataTransfer&&(p.dataTransfer.dropEffect="copy");let g=s(p),f=g?.name||l();(o?.place!==f||o?.target?.id!==g?.id)&&a({place:f,target:g})},onDragLeave:p=>{t.current?.contains(p.relatedTarget)||a(null)},onDrop:p=>{if(!i(p))return;p.preventDefault(),p.stopPropagation();let g=s(p);a(null);let f=oe().getPathForFile;if(!f){p.dataTransfer&&e.upload(up(p.dataTransfer),g);return}let h=Array.from(p.dataTransfer?.files??[]).map(k=>{try{return f(k)}catch{return""}}).filter(Boolean);e.upload(h,g)}}:{};X(()=>{e.canWrite()||a(null)},[e.canWrite()]);let d=e.t,m=e.auth(),u;return m==="out"?u=r(Cp,{p:e}):e.loc().kind==="sync-home"?u=r(xp,{p:e,legacy:r(wb,{p:e})}):e.snap()?e.error()?u=r("div",{class:"pz-scroll",children:r("p",{class:"pz-note",children:e.error()})}):e.loc().kind==="overview"?u=r(_b,{p:e,upload:()=>{e.go("app:penzor"),n.current?.click()}}):u=r(Tb,{p:e,dropDir:o?.target?.id??null}):u=r("div",{class:"pz-scroll",children:r("p",{class:"pz-note",children:e.error()??d("penzor.loading")})}),r(xo,{p:e,rootRef:t,extra:o?"pz-drop":"",on:c,children:[r("input",{class:"pz-root-upload",ref:n,type:"file",multiple:!0,hidden:!0,onChange:p=>{let g=p.currentTarget,f=oe().getPathForFile,h=f?Array.from(g.files??[]).map(k=>f(k)).filter(Boolean):Cs(Array.from(g.files??[]),!1);e.go("app:penzor"),e.upload(h),g.value=""}}),u,o&&r("div",{class:"pz-dropbar",children:r("span",{children:[r(Y,{n:"upload"}),d("penzor.drop.to",{place:o.place})]})}),e.menu()&&r(Ib,{p:e}),!Ls&&r(Dp,{p:e})]})}var kb={dropbox:"Dropbox",s3:"S3",webdav:"WebDAV"};function Rs({on:e,disabled:t,label:n,title:o,onToggle:a}){return r("button",{type:"button",role:"switch",class:`settings-switch${e?" active":""}`,"aria-checked":e,"aria-label":n,title:o,disabled:t,onClick:i=>{i.stopPropagation(),a(!e)},children:r("span",{})})}var Is=({tone:e,text:t,title:n})=>r("span",{class:`pz-sync-state is-${e}`,title:n,children:[e!=="off"&&r("i",{}),t]});function wb({p:e}){let t=e.t,n=e.syncState(),[o,a]=C(!1);if(!n)return r("div",{class:"pz-scroll",children:r("p",{class:"pz-note",children:t("penzor.loading")})});if(!n.signedIn)return r(Cp,{p:e});let i=e.snap(),s=n.notes,l=t("penzor.ledger.sync"),c=s.maxBytes??i?.sync?.maxBytes??0,d=i?.sync?.maxFileBytes||50*1024*1024,m=s.vault?i?.sync?.vaults.find(z=>z.vault===s.vault)??null:null,u=Ju(n,c),p=s.on?s.last?.skippedLarge??0:0,g=s.rootName?t("penzor.sync.notesNamed",{name:s.rootName}):t("penzor.sync.notesPlain"),f=()=>e.openSync(),h=()=>{if(s.pending)return{tone:"wait",text:t("penzor.sync.waiting")};if(!s.on)return{tone:"off",text:t("penzor.sync.off")};let z=xr(n);if(z!=null)return{tone:"ok",text:z>0?t("penzor.sync.running",{pct:Math.round(z*100)}):t("penzor.sync.runningPlain")};if(u)return{tone:"warn",text:t("penzor.sync.overQuota")};if(ho(n))return{tone:"warn",text:t("penzor.sync.failed")};if(s.backend==="folder")return{tone:"ok",text:t("penzor.sync.toFolder")};let P=kb[s.backend];return P?{tone:"ok",text:t("penzor.sync.to",{name:P})}:s.last?{tone:"ok",text:s.localBytes!=null?t("penzor.sync.doneSize",{size:e.b(s.localBytes)}):t("penzor.sync.done")}:{tone:"ok",text:t("penzor.sync.firstPending")}},k={tone:"off",text:t("penzor.sync.off")},x=(z,P)=>P?`${z} \xB7 ${t("penzor.sync.metaLast",{time:vn(P,e.locale())})}`:z,S=()=>{let z=n.agents;if(!z.on)return k;if(z.running)return{tone:"ok",text:t("penzor.sync.runningPlain")};let P=t("penzor.sync.agentsN",{n:z.count});return z.last&&!z.last.ok?{tone:"warn",text:t("penzor.sync.failed"),title:z.last.error}:z.last&&z.last.conflicts>0?{tone:"warn",text:t("penzor.sync.conflictsN",{n:z.last.conflicts}),title:t("penzor.sync.conflictsHint")}:{tone:"ok",text:x(P,z.last?.at)}},w=()=>{let z=n.plugins;return z.on?(z.pending??0)>0?{tone:"wait",text:t("penzor.sync.pluginsPending",{n:z.pending})}:{tone:"ok",text:x(t("penzor.sync.pluginsN",{n:z.count}),z.lastAt)}:k},T=z=>P=>{e.setSync(z,P)},R=s.available===!1&&!s.on&&(s.backend==="off"||s.backend==="penzor"),B=[e.thisDevice()?t("penzor.sync.metaDevice",{name:e.thisDevice()}):null,s.on?s.last?t("penzor.sync.metaLast",{time:vn(s.last.at,e.locale())}):t("penzor.sync.metaNever"):null,s.on&&s.backend!=="off"?bs(s,e.locale()):null].filter(z=>!!z),U=h(),N=m?[...new Set([...m.devices,...m.device?[m.device]:[]])]:[],G=i?.ama?i.ama.reduce((z,P)=>z+P.sizeBytes,0):null;return r("div",{class:"pz-scroll",children:r("div",{class:"pz-col",children:[r(yo,{p:e}),r("div",{class:"pz-title pz-sync-head",children:[r("h1",{class:"pz-h1",children:t("penzor.sync.title")}),r("span",{class:"pz-badge",children:[r(Y,{n:"check"}),Yu(n,e.locale())]})]}),B.length>0&&r("div",{class:"pz-meta",children:B.map(z=>r("span",{children:z},z))}),s.pending&&r(zb,{p:e,s:n}),u&&r("div",{class:"pz-sync-ask is-warn",role:"region",children:[r("h4",{children:s.localBytes!=null&&c>0?t("penzor.sync.quotaTitle",{size:e.b(s.localBytes),ledger:l,max:e.b(c)}):t("penzor.sync.quotaTitlePlain",{ledger:l})}),r("p",{children:[t("penzor.sync.quotaBody"),p>0&&` ${t("penzor.sync.quotaLarge",{size:e.b(d),n:p})}`]}),r("div",{class:"pz-acts",children:[r("button",{class:"pz-btn pri",onClick:()=>void wn("membership").then(z=>{z||e.ctx.app?.notify?.(t("err.openFailed"))}),children:t("member.upgrade")}),m&&r("button",{class:"pz-btn",onClick:()=>e.go(`sync:${m.vault}`),children:t("penzor.sync.quotaSee")})]})]}),r("div",{class:"pz-sync-card",children:[r("div",{class:`pz-sync-row is-click${o?" is-open":""}`,children:[r("button",{type:"button",class:"pz-sync-main","aria-expanded":o,onClick:()=>a(!o),children:[r("span",{class:"pz-tile",children:r(Y,{n:"notebook"})}),r("span",{class:"pz-sync-txt",children:[r("b",{children:g}),r("small",{children:t("penzor.sync.notesDesc")})]}),r(Is,{...U})]}),r(Rs,{on:s.on&&!s.pending,label:g,disabled:!!s.pending||R||e.syncBusy("notes"),title:s.pending?t("penzor.sync.decideAbove"):void 0,onToggle:T("notes")})]}),o&&r("div",{class:"pz-sync-sub",children:[r("div",{class:"kv",children:[r("span",{children:t("penzor.sync.kvSchedule")}),r("span",{children:bs(s,e.locale())}),r("button",{class:"pz-link",onClick:f,children:t("penzor.sync.change")})]}),r("div",{class:"kv",children:[r("span",{children:t("penzor.sync.kvDirection")}),r("span",{children:t(`penzor.sync.dir.${s.direction}`)}),r("button",{class:"pz-link",onClick:f,children:t("penzor.sync.change")})]}),p>0&&r("div",{class:"kv",children:[r("span",{children:t("penzor.sync.kvSkipped")}),r("span",{children:t("penzor.sync.skippedN",{n:p,size:e.b(d)})}),r("span",{})]}),s.backend==="penzor"&&s.vault&&r("div",{class:"kv",children:[r("span",{children:t("penzor.sync.kvWhere")}),r("span",{children:i?.sync&&c>0?t("penzor.sync.whereUsed",{ledger:l,vault:s.vault,used:e.b(i.sync.usedBytes),max:e.b(c)}):t("penzor.sync.where",{ledger:l,vault:s.vault})}),m?r("button",{class:"pz-link",onClick:()=>e.go(`sync:${m.vault}`),children:t("penzor.sync.open")}):r("span",{})]})]}),r("div",{class:"pz-sync-row",children:[r("div",{class:"pz-sync-main",children:[r("span",{class:"pz-tile",children:r(Y,{n:"bot"})}),r("span",{class:"pz-sync-txt",children:[r("b",{children:t("penzor.sync.agents")}),r("small",{children:t("penzor.sync.agentsDesc")})]}),r(Is,{...S()})]}),r(Rs,{on:n.agents.on,label:t("penzor.sync.agents"),disabled:e.syncBusy("agents"),onToggle:T("agents")})]}),r("div",{class:"pz-sync-row",children:[r("div",{class:"pz-sync-main",children:[r("span",{class:"pz-tile",children:r(Y,{n:"puzzle"})}),r("span",{class:"pz-sync-txt",children:[r("b",{children:t("penzor.sync.plugins")}),r("small",{children:t("penzor.sync.pluginsDesc")})]}),r(Is,{...w()})]}),r(Rs,{on:n.plugins.on,label:t("penzor.sync.plugins"),disabled:e.syncBusy("plugins"),onToggle:T("plugins")})]})]}),r("div",{class:"pz-h3",children:t("penzor.sync.devicesTitle")}),i?N.length===0?r("p",{class:"pz-sync-none",children:t("penzor.sync.noDevices")}):r("div",{class:"pz-rows pz-sync-dev",children:N.map(z=>r("div",{class:"row",children:[r(Y,{n:"laptop"}),r("span",{class:"t",children:[z,z===e.thisDevice()&&r("em",{children:t("penzor.sync.thisOne")})]}),r("span",{class:"s",children:m?.device===z&&m.updatedAt?t("penzor.sync.lastWrite",{time:vn(Date.parse(m.updatedAt),e.locale())}):""})]},z))}):r("p",{class:"pz-sync-none",children:t("penzor.loading")}),r("div",{class:"pz-h3",children:t("penzor.sync.phoneTitle")}),r("div",{class:"pz-tip",children:[r(Y,{n:"info"}),r("span",{children:G!=null?t("penzor.sync.phoneTip",{size:e.b(G)}):t("penzor.sync.phoneTipPlain")})]}),r("p",{class:"pz-note",children:[t("penzor.sync.foot"),r("button",{class:"pz-link",onClick:f,children:t("penzor.sync.footLink")})]})]})})}function zb({p:e,s:t}){let n=e.t,o=t.notes.pending,a=e.syncBusy("resolve"),i=new Date,s=n("penzor.sync.backupName",{name:t.notes.rootName??n("penzor.sync.notesPlain"),date:`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`}),l=o.cloudDevice?n("penzor.sync.askCloud",{device:o.cloudDevice,files:o.cloudFiles.toLocaleString(),size:e.b(o.cloudBytes)}):n("penzor.sync.askCloudNoDevice",{files:o.cloudFiles.toLocaleString(),size:e.b(o.cloudBytes)});return r("div",{class:"pz-sync-ask",role:"region","aria-label":n("penzor.sync.askTitle"),children:[r("h4",{children:n("penzor.sync.askTitle")}),r("p",{children:[l," ",n("penzor.sync.askLocal",{local:o.localOnly.toLocaleString(),conflicts:o.conflicts.toLocaleString()})]}),e.confirmCloud()?r("div",{class:"pz-confirm",children:[r("span",{children:n("penzor.sync.askConfirm",{backup:s})}),r("button",{class:"pz-btn pri",disabled:a,onClick:()=>void e.resolveNotes("cloud"),children:n("penzor.sync.askConfirmGo")}),r("button",{class:"pz-btn",disabled:a,onClick:()=>e.setConfirmCloud(!1),children:n("penzor.cancel")})]}):r("div",{class:"pz-acts",children:[r("button",{class:"pz-btn pri",disabled:a,onClick:()=>void e.resolveNotes("merge"),children:n("penzor.sync.askMerge")}),r("button",{class:"pz-btn",disabled:a,onClick:()=>e.setConfirmCloud(!0),children:n("penzor.sync.askCloudBtn")}),r("button",{class:"pz-btn",disabled:a,onClick:()=>void e.resolveNotes("skip"),children:n("penzor.sync.askSkip")})]}),r("p",{class:"pz-sync-explain",children:n("penzor.sync.askExplain",{backup:s})})]})}function Cp({p:e}){let t=e.t;return r("div",{class:"pz-scroll",children:r("div",{class:"pz-empty",children:[r("span",{class:"ic",children:r(Y,{n:"cloud"})}),r("h2",{children:t("penzor.out.title")}),r("p",{children:t("penzor.out.lead")}),r("button",{class:"pz-btn pri",onClick:()=>e.signIn(),children:[r(Y,{n:"login"}),t("penzor.out.signIn")]})]})})}function Sb({p:e}){let t=e.t,n=e.snap()?.ledger,o=e.snap()?.ledgerStale,a=!!n?.complete&&n.usage.usedBytes!=null;return r("div",{class:"pz-unified-quota",role:"status",children:[r("div",{class:"pz-total",children:[r("b",{children:a?e.b(n.usage.usedBytes):"\u2014"}),r("span",{children:n?t("penzor.ofMax",{max:e.b(n.quota.limitBytes)}):t("penzor.unified.unavailable")})]}),a&&(n.state==="warn"||n.state==="over"?r(qr,{pct:n.quota.limitBytes>0?n.usage.usedBytes/n.quota.limitBytes*100:100,warn:!0}):r(Cb,{p:e})),r("p",{class:"pz-note",children:o?t("penzor.unified.stale"):a?n.enforcement?t("penzor.unified.enforced"):n.phase==="grace"?t("penzor.unified.grace",{date:At(Math.max(Date.parse(n.rollout?.graceUntil??""),Date.parse(n.rollout?.compatibilityUntil??"")||0),e.locale())}):n.state==="over"?t("penzor.unified.over"):n.state==="warn"?t("penzor.unified.warn"):`${t("penzor.unified.notice")} \xB7 ${t("penzor.unified.accounting",{trash:e.b(n.usage.trashBytes)})}`:t("penzor.unified.incomplete")}),n?.rollout&&!o&&r("div",{class:"pz-tip",children:[r("p",{children:t("penzor.unified.rolloutPolicy")}),!n.rollout.acknowledgedAt&&r("button",{class:"pz-btn",onClick:()=>void e.acknowledgeStorageNotice(),children:t("penzor.unified.ack")})]})]})}var Aa=(e,t)=>t>0&&e/t>=.8;function _b({p:e,upload:t}){let n=e.t,o=e.snap(),a=o?.ledger,i=e.content(),s=ms(o,i),l=x=>{let S=a?.sources.find(w=>w.id===x);return S?.status==="ready"?S.liveBytes+S.trashBytes:null},c=x=>{let S=l(x);return S==null?n("penzor.unified.unavailable"):e.b(S)},d=x=>()=>e.go(x),m=(x,S,w,T,R,B="folder")=>r("button",{class:`row${R?" is-warn":""}`,onClick:d(x),children:[r(Y,{n:B}),r("span",{class:"t",children:[S,r("em",{children:R??w})]}),r("span",{class:"s",children:T}),r(Y,{n:"right"})]},x),u=o?.apps&&Aa(o.apps.used,o.apps.quota)?n("penzor.quota.sourceLimit",{max:e.b(o.apps.quota),used:e.b(o.apps.used)}):void 0,p=o?.sync&&Aa(o.sync.usedBytes,o.sync.maxBytes)?n("penzor.quota.sourceLimit",{max:e.b(o.sync.maxBytes),used:e.b(o.sync.usedBytes)}):void 0,g=i?hn(i):null,f=i?.deviceId,h=(o?.contentDevices??[]).filter(x=>x.id!==f),k=m("source:sync",n(s?"penzor.tree.legacy":"penzor.ledger.sync"),n(s?"penzor.ov.legacy":"penzor.ov.sync"),c("sync"),p);return r("div",{class:"pz-scroll",children:r("div",{class:"pz-col",children:[r(yo,{p:e}),r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:n("penzor.drive")}),r("button",{class:"pz-btn",onClick:t,children:[r(Y,{n:"upload"}),n("penzor.unified.uploadTo")]})]}),r(Sb,{p:e}),r("div",{class:"pz-ov-group",children:n("penzor.ov.mine")}),r("div",{class:"pz-rows",children:[m("app:penzor",n("penzor.uploads"),n("penzor.ov.uploads"),c("uploads")),ps(a)&&m("source:market",n("penzor.source.market"),n("penzor.ov.market"),c("market"),void 0,"store")]}),r("div",{class:"pz-ov-group",children:n("penzor.ov.synced")}),r("div",{class:"pz-rows",children:s&&o?.contentDevices?r(O,{children:[m("content:default",n("penzor.scope.all"),g?.kind==="ok"&&g.at?n("penzor.ov.allLast",{time:vn(g.at,e.locale())}):n("penzor.ov.all"),""),f&&m(`content:device-${f}`,n("penzor.tree.thisBackup"),n("penzor.ov.self"),""),h.map(x=>m(`content:device-${x.id}`,x.name,n("penzor.ov.device"),""))]}):r(O,{children:[k,m("source:agents",n("penzor.source.agents"),n("penzor.ov.agents"),c("agents")),m("source:profile",n("penzor.source.profile"),n("penzor.ov.profile"),c("profile"))]})}),r("div",{class:"pz-ov-group",children:n("penzor.tree.byApp")}),r("div",{class:"pz-rows",children:[m("source:ama",n("penzor.ledger.ama"),n("penzor.ov.ama"),c("ama")),m("source:apps",n("penzor.ledger.apps"),n("penzor.ov.apps"),c("apps"),u),m("source:plugins",n("penzor.source.plugins"),n("penzor.ov.plugins"),c("plugins")),m("exports",n("penzor.ledger.exports"),n("penzor.ov.exports"),c("exports"))]}),s&&r(O,{children:[r("div",{class:"pz-ov-group",children:n("penzor.ov.stale")}),r("div",{class:"pz-rows is-stale",children:k})]}),r("p",{class:"pz-note",children:n("penzor.unified.policy")})]})})}function Cb({p:e}){let t=e.snap()?.ledger;if(!t?.complete||t.usage.usedBytes==null||t.quota.limitBytes<=0)return null;let n=e.t,o=s=>{let l=t.sources.find(c=>c.id===s);return l?.status==="ready"?l.liveBytes+l.trashBytes:0},a=[[n("penzor.ov.segNotes"),o("ama")],[n("penzor.ledger.apps"),o("apps")],[n("penzor.ov.segSync"),o("sync")],[n("penzor.uploads"),o("uploads")]];a.push([n("penzor.ov.segOther"),Math.max(0,t.usage.usedBytes-a.reduce((s,[,l])=>s+l,0))]);let i=a.filter(([,s])=>s>0);return r(O,{children:[r("div",{class:"pz-seg",role:"img","aria-label":i.map(([s,l])=>`${s} ${e.b(l)}`).join(", "),children:i.map(([s,l],c)=>r("span",{class:`c${c}`,style:{width:`${Math.max(.6,l/t.quota.limitBytes*100)}%`}},s))}),r("div",{class:"pz-legend",children:i.map(([s,l],c)=>r("span",{children:[r("i",{class:`c${c}`}),s," ",r("b",{children:e.b(l)})]},s))})]})}function Tb({p:e,dropDir:t}){let n=e.t,o=e.loc(),a=e.snap(),i=e.rows(),[s,l]=C(!1),[c,d]=C(null),m=ie(null),u=ie(null),p=ie(null),g=e.canWrite(),f=e.selection();X(()=>(e.picker.files=()=>m.current?.click(),e.picker.folder=()=>u.current?.click(),()=>{e.picker.files=void 0,e.picker.folder=void 0}),[e]);let h=(b,_)=>{let I=b.currentTarget,H=oe().getPathForFile,Q=Array.from(I.files??[]);if(!H){I.value="",e.upload(Cs(Q,_));return}let $=Q.map(ce=>{try{return H(ce)}catch{return""}}),te=$.filter(Boolean);if(_){let ce=new Set;Q.forEach((We,pe)=>{let Be=We.webkitRelativePath??"",ht=$[pe];!Be||!ht||ht.length<Be.length||ce.add(ht.slice(0,ht.length-Be.length)+Be.split("/")[0])}),te=[...ce]}I.value="",e.upload(te)},k=(b,_)=>{e.select(_,{toggle:b.metaKey||b.ctrlKey,range:b.shiftKey}),p.current?.focus({preventScroll:!0})},x=b=>{if(b.target?.tagName!=="INPUT"){if((b.metaKey||b.ctrlKey)&&b.key.toLowerCase()==="a"&&e.canMulti())b.preventDefault(),e.selectAll();else if(b.key==="Escape"&&f.length>1){b.preventDefault();let _=e.selected();e.select(_)}}},S=o.kind==="sync"?n(e.content()?.config.enabled?"penzor.tree.legacy":"penzor.ledger.sync"):o.kind==="ama"?n("penzor.ledger.ama"):o.kind==="app"&&!e.canWrite()?n("penzor.ledger.apps"):null,w=o.kind==="content"?Tp(e,o.namespace):o.kind==="sync"?o.vault:o.kind==="ama"?a.ama?.find(b=>b.id===o.vaultId)?.name??"":o.kind==="app"?e.appLabel(o.appId):o.kind==="source"?n(go[o.source]):o.kind==="exports"?n("penzor.ledger.exports"):n("penzor.trash"),T=o.kind==="app"?e.appStack().map(b=>b.name):e.path()?e.path().split("/"):[],R=[...S?[{label:S,depth:null}]:[],{label:w,depth:0},...T.map((b,_)=>({label:b,depth:_+1}))],B=["mtime","size","name"],U=()=>e.setSort(B[(B.indexOf(e.sort())+1)%B.length]),N=o.kind==="sync"?n("penzor.col.device"):o.kind==="trash"?n("penzor.col.origin"):o.kind==="exports"?n("penzor.col.app"):null,G=o.kind==="trash"?n("penzor.col.deleted"):n("penzor.col.mtime"),z=()=>{if(o.kind==="content"){let _=e.content()?hn(e.content()):null,I=e.content()?.deviceId,H=o.namespace==="default"?n("penzor.content.noteAll"):o.namespace===`device-${I}`?n("penzor.content.noteSelf"):n("penzor.content.noteDevice",{name:w});return r(O,{children:[r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:w}),r("span",{class:"pz-badge",children:[r(Y,{n:"cloud"}),_?.kind==="ok"&&_.at?n("penzor.content.badgeLast",{time:vn(_.at,e.locale())}):n("penzor.content.badge")]})]}),r("p",{class:"pz-note",children:H})]})}if(o.kind==="source"&&o.source==="market"){let _=a.ledger?.sources.find(H=>H.id==="market"),I=_?.status==="ready";return r(O,{children:[r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:n("penzor.source.market")}),r("span",{class:"pz-badge",children:[r(Y,{n:"store"}),n("penzor.market.badge")]})]}),I&&r("div",{class:"pz-meta",children:[r("span",{children:n("penzor.market.meta",{size:e.b(_.liveBytes+_.trashBytes),n:(_.fileCount??0).toLocaleString()})}),(_.historyBytesExcluded??0)>0&&r("span",{children:n("penzor.market.history",{size:e.b(_.historyBytesExcluded)})})]}),r("p",{class:"pz-note",children:n("penzor.source.marketNote")})]})}if(o.kind==="source")return r(O,{children:[r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:n(go[o.source])}),r("span",{class:"pz-badge",children:[r(Y,{n:"lock"}),n("penzor.unified.readonly")]})]}),r("p",{class:"pz-note",children:n(o.source==="plugins"?"penzor.source.pluginNote":"penzor.source.readonly")})]});if(o.kind==="sync"){let _=a.sync?.vaults.find(Q=>Q.vault===o.vault);if(!_)return null;let I=!!e.thisDevice()&&_.devices.includes(e.thisDevice()),H=a.sync;return r(O,{children:[r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:_.vault}),I&&!e.content()?.config.enabled&&r("span",{class:"pz-badge",children:[r(Y,{n:"refresh"}),n("penzor.sync.thisDevice")]})]}),e.content()?.config.enabled&&r("div",{class:"pz-legacy",children:[r(Y,{n:"history"}),r("span",{children:[n("penzor.legacy.title"),r("small",{children:n("penzor.legacy.body")})]}),r("button",{class:"pz-btn",onClick:()=>e.go("content:default"),children:n("penzor.legacy.go")})]}),r("div",{class:"pz-meta",children:[r("span",{children:n("penzor.meta.files",{size:e.b(_.bytes),n:_.files.toLocaleString()})}),_.updatedAt&&r("span",{children:_.device?n("penzor.sync.last",{time:At(Date.parse(_.updatedAt),e.locale()),device:_.device}):n("penzor.sync.lastNoDevice",{time:At(Date.parse(_.updatedAt),e.locale())})}),_.devices.length>0&&r("span",{children:n("penzor.sync.devices",{n:_.devices.length})})]}),Aa(H.usedBytes,H.maxBytes)&&r("div",{class:"pz-meter",children:[r(qr,{pct:H.usedBytes/H.maxBytes*100,warn:H.usedBytes/H.maxBytes>=.9}),r("span",{children:n("penzor.quota.sourceLimit",{max:e.b(H.maxBytes),used:e.b(H.usedBytes)})})]})]})}if(o.kind==="ama"){let _=a.ama?.find(I=>I.id===o.vaultId);return r(O,{children:[r("div",{class:"pz-title",children:[r("h1",{class:"pz-h1",children:_?.name}),r("span",{class:"pz-badge",children:[r(Y,{n:"cloud"}),"Amadeus Cloud"]})]}),r("div",{class:"pz-meta",children:[r("span",{children:e.b(_?.sizeBytes??0)}),r("span",{children:n("penzor.unified.counted")})]})]})}if(o.kind==="app"){let _=a.apps?.apps.find(H=>H.appId===o.appId),I=a.apps;return r(O,{children:[r("div",{class:"pz-title",children:r("h1",{class:"pz-h1",children:e.appLabel(o.appId)})}),r("div",{class:"pz-meta",children:[r("span",{children:n("penzor.meta.files",{size:e.b(_?.bytes??0),n:(_?.files??0).toLocaleString()})}),!e.canWrite()&&r("span",{children:n("penzor.apps.by",{app:e.appLabel(o.appId)})})]}),e.canWrite()&&r("div",{class:"pz-meta",children:a.ledger?.complete&&a.ledger.usage.usedBytes!=null?r(O,{children:[r("span",{children:n("penzor.drive.total",{used:e.b(a.ledger.usage.usedBytes),max:e.b(a.ledger.quota.limitBytes)})}),r("button",{class:"pz-link",onClick:()=>e.go("ov"),children:n("penzor.drive.seeAll")})]}):r("span",{children:n("penzor.unified.unavailable")})}),I&&Aa(I.used,I.quota)&&r("div",{class:"pz-meter",children:[r(qr,{pct:I.used/I.quota*100,warn:I.used/I.quota>=.9}),r("span",{children:n("penzor.quota.sourceLimit",{max:e.b(I.quota),used:e.b(I.used)})})]})]})}if(o.kind==="exports")return r(O,{children:[r("div",{class:"pz-title",children:r("h1",{class:"pz-h1",children:n("penzor.ledger.exports")})}),r("div",{class:"pz-meta",children:[r("span",{children:n("penzor.meta.files",{size:e.b(a.exports?.totalBytes??0),n:(a.exports?.total??0).toLocaleString()})}),r("span",{children:n("penzor.card.expFoot")})]})]});let b=i??[];return r(O,{children:[r("div",{class:"pz-title",children:r("h1",{class:"pz-h1",children:n("penzor.trash")})}),r("div",{class:"pz-meta",children:[r("span",{children:n("penzor.trash.meta",{n:b.length,size:e.b((a.trash??[]).reduce((_,I)=>_+(Number(I.fileSize)||0),0))})}),r("span",{children:n("penzor.trash.note")})]}),e.confirmEmpty()&&r("div",{class:"pz-confirm",children:[r("span",{children:n("penzor.confirm.empty",{n:b.length})}),r("button",{class:"pz-btn danger solid",onClick:()=>void e.emptyTrash(),children:n("penzor.trash.emptyBtn")}),r("button",{class:"pz-btn",onClick:()=>e.setConfirmEmpty(!1),children:n("penzor.cancel")})]})]})},P=e.selected(),F=f.length>1,L=f.reduce((b,_)=>b+(_.dir?0:_.size),0),ae=e.txRows();return r(O,{children:[r("div",{class:"pz-top",children:[r("nav",{class:"pz-crumb",children:R.map((b,_)=>{let I=_===R.length-1,H=I?r("b",{children:b.label}):b.depth==null?r("span",{children:b.label}):r("button",{onClick:()=>e.up(b.depth),children:b.label});return r("span",{style:{display:"contents"},children:[H,!I&&r("i",{children:"\u203A"})]},_)})}),r("span",{class:"pz-sp"}),F?r(O,{children:[r("span",{class:"pz-selbar",children:n("penzor.sel.bar",{n:f.length,size:e.b(L)})}),f.some(b=>!b.dir)&&r("button",{class:"pz-btn",onClick:()=>void e.downloadMany(f),children:[r(Y,{n:"download"}),n("penzor.act.download")]}),f.every(e.canManageRow)&&r("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"move",at:[]}),children:[r(Y,{n:"move"}),n("penzor.act.move")]}),f.every(e.canManageRow)&&r("button",{class:"pz-btn danger",onClick:()=>void e.trashMany(f),children:[r(Y,{n:"trash"}),n("penzor.act.trash")]}),r("button",{class:"pz-ibtn",title:n("penzor.act.clearSel"),onClick:()=>e.select(P),children:r(Y,{n:"x"})})]}):r(O,{children:[T.length>0&&r("button",{class:"pz-ibtn",title:n("penzor.act.up"),onClick:()=>e.up(),children:r(Y,{n:"up"})}),o.kind==="source"&&(o.source==="agents"||o.source==="profile")&&r("button",{class:"pz-chip",onClick:()=>void e.ctx.app?.openSpace?.(o.source==="agents"?"agents":"calendar").then(b=>{b||e.ctx.app?.notify?.(n("penzor.source.entryUnavailable"))}),children:n(o.source==="agents"?"penzor.source.openAgents":"penzor.source.openCalendar")}),o.kind==="ama"&&r("button",{class:"pz-chip",onClick:()=>void e.ctx.app?.openSpace?.("amadeus"),children:[r(Y,{n:"book"}),n("penzor.ama.open")]}),o.kind==="app"&&o.appId==="connect"&&e.ctx.app?.openSettings&&r("button",{class:"pz-chip",onClick:()=>e.ctx.app?.openSettings?.(zn("webpages")),children:[r(Y,{n:"globe"}),n("penzor.hosted.open")]}),o.kind==="trash"&&e.canEmptyTrash()&&r("button",{class:"pz-btn danger",onClick:()=>e.setConfirmEmpty(!0),children:[r(Y,{n:"trash"}),n("penzor.trash.emptyBtn")]}),g&&r("span",{class:"pz-split",children:[r("button",{class:"pz-btn pri",onClick:()=>e.picker.files?.(),children:[r(Y,{n:"upload"}),n("penzor.act.upload")]}),r("button",{class:"pz-btn pri more",title:n("penzor.act.uploadMore"),"aria-label":n("penzor.act.uploadMore"),onClick:b=>{let _=b.currentTarget.getBoundingClientRect();d({x:_.right,y:_.bottom+4})},children:r(Y,{n:"down"})})]}),g&&r("button",{class:"pz-ibtn",title:n("penzor.act.newFolder"),onClick:()=>e.startNewFolder(),children:r(Y,{n:"folder-plus"})}),s||e.query()?r("input",{class:"pz-find",placeholder:n("penzor.search"),value:e.query(),autoFocus:!0,onInput:b=>e.setQuery(b.currentTarget.value),onKeyDown:b=>{b.key==="Escape"&&(e.setQuery(""),l(!1))},onBlur:()=>{e.query()||l(!1)}}):r("button",{class:"pz-ibtn",title:n("penzor.search"),onClick:()=>l(!0),children:r(Y,{n:"search"})}),r("button",{class:"pz-chip",onClick:U,children:[o.kind==="trash"&&e.sort()==="mtime"?n("penzor.sort.deleted"):n(`penzor.sort.${e.sort()}`),r(Y,{n:"down"})]})]})]}),g&&r(O,{children:[r("input",{ref:m,type:"file",multiple:!0,hidden:!0,onChange:b=>h(b,!1)}),r("input",{ref:u,type:"file",hidden:!0,webkitdirectory:!0,onChange:b=>h(b,!0)})]}),c&&r(Pp,{x:c.x,y:c.y,alignRight:!0,onClose:()=>d(null),items:[{id:"files",label:n("penzor.act.uploadFiles"),icon:"upload",run:()=>e.picker.files?.()},{id:"folder",label:n("penzor.act.uploadFolder"),icon:"folder",run:()=>e.picker.folder?.()}]}),r("div",{class:"pz-scroll",ref:p,tabIndex:-1,onKeyDown:x,onContextMenu:b=>{!g||b.target.closest("tr")||(b.preventDefault(),e.openMenu(b.clientX,b.clientY,null))},children:r("div",{class:"pz-col",children:[z(),e.rowsError()?r("p",{class:"pz-note",children:n("penzor.err",{reason:e.rowsError()})}):i?i.length===0&&!ae.length&&e.newFolder()==null?r("p",{class:"pz-note",children:e.query()?n("penzor.noMatch",{q:e.query()}):g&&!T.length?n("penzor.drive.empty"):n("penzor.folderEmpty")}):o.kind==="source"&&o.source==="market"?r(Eb,{p:e,rows:i}):r("table",{class:"pz-table",children:[r("thead",{children:r("tr",{children:[r("th",{children:n("penzor.col.name")}),r("th",{class:"r",children:n("penzor.col.size")}),r("th",{children:G}),N&&r("th",{children:N})]})}),r("tbody",{children:[e.newFolder()!=null&&r(Mb,{p:e,cols:N?4:3}),i.map((b,_)=>r(O,{children:[!b.dir&&(_===0||i[_-1].dir)&&ae.map(I=>r(Sp,{p:e,x:I},I.key)),r("tr",{class:`${e.isSelected(b.key)?"sel":""}${t&&t===b.key?" drop":""}`,"data-dir-id":g&&b.dir?b.key:void 0,"data-dir-name":g&&b.dir?b.name:void 0,onMouseDown:I=>{I.shiftKey&&I.preventDefault()},onClick:I=>k(I,b),onDblClick:()=>{b.dir?e.openDir(b):e.download(b)},onContextMenu:I=>{I.preventDefault(),e.openMenu(I.clientX,I.clientY,b)},children:[r("td",{class:"n",children:r("span",{children:[r(Y,{n:Sa(b.name,b.dir)}),o.kind==="content"&&!T.length&&zp[b.name]?r(O,{children:[r("b",{children:n(zp[b.name])}),r("em",{class:"cnt",children:[b.name,(b.count??0)>0&&` \xB7 ${n("penzor.card.expSmall",{n:b.count.toLocaleString()})}`]})]}):r(O,{children:[r("b",{children:b.name}),b.count!=null&&b.count>0&&r("em",{class:"cnt",children:b.count.toLocaleString()})]})]})}),r("td",{class:"r",children:b.dir&&o.kind==="app"?"\u2014":e.b(b.size)}),r("td",{children:At(b.mtime,e.locale())}),N&&r("td",{class:b.col4?"":"dim",children:b.col4?b.col4===e.thisDevice()?n("penzor.side.thisDevice",{name:b.col4}):b.col4:"\u2014"})]})]},b.key)),(i.length===0||i[i.length-1].dir)&&ae.map(b=>r(Sp,{p:e,x:b},b.key))]})]}):r("p",{class:"pz-note",children:n("penzor.loading")}),o.kind==="trash"&&!!e.snap()?.amaTrash?.length&&r(Pb,{p:e})]})})]})}var kp={plugin:"penzor.market.type.plugin",skill:"penzor.market.type.skill",agent:"penzor.market.type.agent",space:"penzor.market.type.space",theme:"penzor.market.type.theme","amadeus-plugin":"penzor.market.type.amadeusPlugin"},wp={approved:"penzor.market.status.approved",pending:"penzor.market.status.pending",rejected:"penzor.market.status.rejected"},Ab={plugin:"puzzle","amadeus-plugin":"puzzle",skill:"sparkles",agent:"bot",theme:"palette",space:"archive"};function Eb({p:e,rows:t}){let n=e.t;return r("table",{class:"pz-table pz-market",children:[r("thead",{children:r("tr",{children:[r("th",{children:n("penzor.col.name")}),r("th",{children:n("penzor.col.type")}),r("th",{children:n("penzor.col.status")}),r("th",{class:"r",children:n("penzor.col.size")}),r("th",{children:n("penzor.col.mtime")})]})}),r("tbody",{children:t.map(o=>{let a=o.ref?.market,i=a?a.counted?[a.version?`v${a.version.replace(/^v/i,"")}`:"",a.pending?n("penzor.market.updating"):"",a.historyBytes>0?n("penzor.market.older",{size:e.b(a.historyBytes)}):""].filter(Boolean).join(" \xB7 "):n(a.source==="npm"?"penzor.market.fromNpm":"penzor.market.fromGithub"):"";return r("tr",{children:[r("td",{class:"n",children:r("span",{children:[r(Y,{n:Ab[a?.type??""]??"archive"}),r("b",{children:o.name}),i&&r("em",{class:"cnt",children:i})]})}),r("td",{children:a&&kp[a.type]?n(kp[a.type]):a?.type??"\u2014"}),r("td",{children:a&&r("span",{class:`pz-badge${a.status==="rejected"?" is-warn":""}`,children:wp[a.status]?n(wp[a.status]):a.status})}),r("td",{class:"r",children:a&&!a.counted?n("penzor.market.notCounted"):e.b(o.size)}),r("td",{children:At(o.mtime,e.locale())})]},o.key)})})]})}function Tp(e,t){return t==="default"?e.t("penzor.scope.all"):t===`device-${e.content()?.deviceId}`?e.t("penzor.tree.thisBackup"):e.snap()?.contentDevices?.find(o=>`device-${o.id}`===t)?.name||`Forsion-${t.slice(7,15)}`}var zp={Amadeus:"penzor.cat.notes",agents:"penzor.source.agents",human:"penzor.cat.profile",Plugins:"penzor.cat.plugins"};function Pb({p:e}){let t=e.snap()?.amaTrash;return r("section",{class:"pz-ama-trash",children:[r("h3",{class:"pz-h3",children:e.t("penzor.trash.ama")}),r("p",{class:"pz-note",children:e.t("penzor.trash.amaNote")}),t?t.length?r("table",{class:"pz-table",children:[r("thead",{children:r("tr",{children:[r("th",{children:e.t("penzor.col.name")}),r("th",{children:e.t("penzor.col.size")}),r("th",{children:e.t("penzor.trash.expires")})]})}),r("tbody",{children:t.map(n=>r("tr",{children:[r("td",{children:[n.vaultName," / ",n.path]}),r("td",{children:e.b(n.size)}),r("td",{children:At(Date.parse(n.expiresAt),e.locale())})]},n.id))})]}):r("p",{class:"pz-note",children:e.t("penzor.folderEmpty")}):r("p",{class:"pz-note",children:e.t("penzor.unified.unavailable")})]})}function Mb({p:e,cols:t}){let[n,o]=C(e.newFolder()??""),a=ie(null),i=ie(!1);Kn(()=>{a.current?.focus(),a.current?.select()},[]);let s=()=>{i.current||(i.current=!0,e.createFolder(n))};return r("tr",{class:"sel",children:[r("td",{class:"n",children:r("span",{children:[r(Y,{n:"folder-open"}),r("input",{ref:a,class:"pz-newname",value:n,onInput:l=>o(l.currentTarget.value),onKeyDown:l=>{l.key==="Enter"?s():l.key==="Escape"&&(i.current=!0,e.cancelNewFolder())},onBlur:s})]})}),r("td",{class:"r",children:"\u2014"}),r("td",{children:e.t("penzor.justNow")}),t>3&&r("td",{})]})}function Sp({p:e,x:t}){let n=t.size>0?Math.min(100,Math.round(t.done/t.size*100)):0;return r("tr",{class:`pz-txrow ${t.state}`,title:t.state==="paused"?e.t("penzor.tx.paused"):void 0,children:[r("td",{class:"n",children:r("span",{children:[r(Y,{n:Sa(t.name)}),r("b",{children:t.name})]})}),r("td",{class:"r",children:t.state==="active"?vs(t.done,t.size,e.locale()):e.b(t.size)}),r("td",{children:t.state==="queued"?r("span",{class:"pz-inl",children:e.t("penzor.tx.queued")}):r("span",{class:"pz-inl",children:[r(qr,{pct:n}),t.state==="paused"?e.t("penzor.tx.pause"):`${n}%`]})})]})}function Ap(e,t){let n=e.t,o=e.loc().kind,a={id:"download",label:n("penzor.act.download"),icon:"download",run:()=>void e.download(t)};return o==="source"?t.dir||!t.ref?.downloadPath?[]:[a]:o==="app"&&!e.canManageRow(t)?t.dir?[]:[a]:o==="sync"||o==="ama"?t.dir?[]:[a]:o==="app"?[...t.dir?[]:[a],{id:"rename",label:n("penzor.act.rename"),icon:"pen",run:()=>{e.select(t),e.setSide({kind:"rename"})}},{id:"move",label:n("penzor.act.move"),icon:"move",run:()=>{e.select(t),e.setSide({kind:"move",at:[]})}},{id:"trash",label:n("penzor.act.trash"),icon:"trash",danger:!0,run:()=>void e.trash(t)}]:o==="exports"?[a,{id:"rename",label:n("penzor.act.rename"),icon:"pen",run:()=>{e.select(t),e.setSide({kind:"rename"})}},{id:"delete",label:n("penzor.act.delete"),icon:"trash",danger:!0,run:()=>{e.select(t),e.setSide({kind:"confirm",what:"deleteExport"})}}]:o==="trash"&&e.canManageRow(t)?[{id:"restore",label:n("penzor.act.restore"),icon:"undo",run:()=>void e.restore(t)},{id:"purge",label:n("penzor.act.purge"),icon:"trash",danger:!0,run:()=>{e.select(t),e.setSide({kind:"confirm",what:"purge"})}}]:[]}function Rb(e,t){let n=e.t;if(!t)return e.canWrite()?[{id:"upload",label:n("penzor.act.uploadHere"),icon:"upload",run:()=>e.picker.files?.()},{id:"new-folder",label:n("penzor.act.newFolder"),icon:"folder-plus",run:()=>e.startNewFolder()}]:[];let o=e.selection();return o.length>1&&o.some(a=>a.key===t.key)?Ep(e,o):Ap(e,t)}function Ep(e,t){let n=e.t,o=e.loc().kind,a=t.filter(i=>!i.dir).length;return[...a?[{id:"download",label:n("penzor.sel.download",{n:a}),icon:"download",run:()=>void e.downloadMany(t)}]:[],...t.every(e.canManageRow)?[{id:"move",label:n("penzor.act.move"),icon:"move",run:()=>e.setSide({kind:"move",at:[]})},{id:"trash",label:n("penzor.act.trash"),icon:"trash",danger:!0,run:()=>void e.trashMany(t)}]:[]]}function Pp({x:e,y:t,items:n,onClose:o,alignRight:a}){let i=ie(null),[s,l]=C({x:e,y:t});return X(()=>{let c=i.current;if(c){let u=c.getBoundingClientRect(),p=a?e-u.width:e;l({x:Math.max(8,Math.min(p,window.innerWidth-u.width-8)),y:t+u.height>window.innerHeight-8?Math.max(8,t-u.height):t})}let d=u=>{u.target instanceof Node&&c?.contains(u.target)||o()},m=u=>{u.key==="Escape"&&o()};return window.addEventListener("pointerdown",d,!0),window.addEventListener("keydown",m,!0),window.addEventListener("blur",o),window.addEventListener("wheel",o,{passive:!0}),()=>{window.removeEventListener("pointerdown",d,!0),window.removeEventListener("keydown",m,!0),window.removeEventListener("blur",o),window.removeEventListener("wheel",o)}},[e,t]),n.length?ia(r("div",{ref:i,class:"ctx-menu pz-menu",role:"menu",style:{left:`${s.x}px`,top:`${s.y}px`},children:n.map((c,d)=>r(O,{children:[c.danger&&d>0&&r("div",{class:"ctx-separator"}),r("button",{role:"menuitem",class:c.danger?"danger":"",onClick:()=>{o(),c.run()},children:[r(Y,{n:c.icon}),c.label]})]},c.id))}),document.body):(queueMicrotask(o),null)}function Ib({p:e}){let t=e.menu();return r(Pp,{x:t.x,y:t.y,items:Rb(e,t.row),onClose:e.closeMenu})}function Mp({p:e}){Ds(e);let t=e.t,n=e.loc(),o=e.selected();if(br(n)||!o)return r(xo,{p:e,side:!0,children:r("p",{class:"pz-side-none",children:t("penzor.side.none")})});let a=e.snap(),i=e.side(),s=e.selection();if(s.length>1)return r(Db,{p:e,sel:s});let l=n.kind==="content"?`${Tp(e,n.namespace)} / ${o.key}`:n.kind==="sync"?`${n.vault} / ${o.key}`:n.kind==="ama"?`${a?.ama?.find(f=>f.id===n.vaultId)?.name??""} / ${o.key}`:n.kind==="app"?[e.appLabel(n.appId),...e.appStack().map(f=>f.name),o.name].join(" / "):n.kind==="source"?`${t(go[n.source])} / ${o.key}`:n.kind==="exports"?`${t("penzor.ledger.exports")} / ${o.name}`:o.col4??"",c=o.dir?"":(o.name.match(/\.([A-Za-z0-9]{1,8})$/)?.[1]??"").toUpperCase(),d=n.kind==="trash"?t("penzor.side.inTrash",{size:e.b(o.size)}):o.dir?o.count!=null?t("penzor.side.folder",{n:o.count.toLocaleString()}):t("penzor.side.folderPlain"):[c,e.b(o.size)].filter(Boolean).join(" \xB7 "),m=n.kind==="trash"?[[t("penzor.side.origin"),l],[t("penzor.side.deletedAt"),At(o.mtime,e.locale())]]:[[t("penzor.side.where"),l],[t("penzor.side.mtime"),At(o.mtime,e.locale())]];n.kind==="sync"&&!o.dir&&m.push([t("penzor.side.device"),o.col4?o.col4===e.thisDevice()?t("penzor.side.thisDevice",{name:o.col4}):o.col4:"\u2014"]),n.kind==="app"&&!o.dir&&!e.canWrite()&&m.push([t("penzor.side.from"),e.appLabel(n.appId)]),n.kind==="exports"&&m.push([t("penzor.side.from"),o.col4??"\u2014"]);let u=n.kind==="app"&&!e.canManageRow(o)?o.archive?"penzor.archive.note":o.managed?"penzor.hosted.note":"penzor.source.appNote":np(n),p=Ap(e,o),g=e.versions();return r(xo,{p:e,side:!0,children:[r("div",{class:"pz-thumb",children:r(Y,{n:Sa(o.name,o.dir)})}),i.kind==="rename"?r(Lb,{p:e,row:o}):r("div",{class:"pz-fname",children:o.name}),r("div",{class:"pz-fsub",children:d}),i.kind==="confirm"?r("div",{class:"pz-confirm",style:{margin:0},children:[r("span",{children:t(i.what==="purge"?"penzor.confirm.purge":"penzor.confirm.deleteExport",{name:o.name})}),r("button",{class:"pz-btn danger solid",onClick:()=>void(i.what==="purge"?e.purge(o):e.deleteExport(o)),children:t(i.what==="purge"?"penzor.act.purge":"penzor.act.delete")}),r("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"view"}),children:t("penzor.cancel")})]}):p.length>0&&r("div",{class:"pz-acts",children:p.filter(f=>f.id!=="move").map(f=>r("button",{class:`pz-btn${f.danger?" danger":""}${f.id==="restore"?" pri":""}`,onClick:()=>f.run(),children:[r(Y,{n:f.icon}),f.id==="trash"?t("penzor.act.delete"):f.label]},f.id))}),i.kind==="move"&&r(Rp,{p:e,row:o,at:i.at}),r("dl",{class:"pz-dl",children:[m.map(([f,h])=>r(O,{children:[r("dt",{children:f}),r("dd",{children:h})]},f)),n.kind==="app"&&!o.dir&&r(O,{children:[r("dt",{children:t("penzor.side.versions")}),r("dd",{children:g==null?"\u2026":g.length?t("penzor.side.versionsN",{n:g.length}):t("penzor.side.versionsNone")})]})]}),e.canManageRow(o)&&!o.dir&&g&&g.length>0&&r("div",{class:"pz-vers",children:g.map(f=>r("div",{children:[r("span",{children:t("penzor.side.versionRow",{n:f.versionNumber,time:At(f.createdAt,e.locale()),size:e.b(f.fileSize)})}),r("button",{class:"pz-link",onClick:()=>void e.restoreVersion(o,f),children:t("penzor.side.restoreVersion")})]},f.versionNumber))}),n.kind==="trash"&&o.dir&&(o.count??0)>0&&r("div",{class:"pz-tip",children:[r(Y,{n:"undo"}),r("span",{children:t("penzor.side.inner",{n:o.count})})]}),n.kind==="exports"&&r("div",{class:"pz-tip",children:[r(Y,{n:"trash"}),r("span",{children:t("penzor.side.exportNote")})]}),u&&r("div",{class:"pz-tip",children:[r(Y,{n:"lock"}),r("span",{children:t(u,{vault:n.kind==="sync"?n.vault:""})})]})]})}function Lb({p:e,row:t}){let[n,o]=C(t.name),a=ie(null),i=ie(!1),s=()=>{i.current||(i.current=!0,e.rename(t,n))};return X(()=>{let l=a.current;if(!l)return;l.focus();let c=t.dir?-1:t.name.lastIndexOf(".");l.setSelectionRange(0,c>0?c:t.name.length)},[t.key]),r("input",{ref:a,class:"pz-input",value:n,onInput:l=>o(l.currentTarget.value),onKeyDown:l=>{l.key==="Enter"?s():l.key==="Escape"&&(i.current=!0,e.setSide({kind:"view"}))},onBlur:s})}function Rp({p:e,row:t,at:n}){let o=e.t,a=e.loc(),i=a.kind==="app"?e.appLabel(a.appId):"",s=e.selection(),l=s.length>1,c=new Set(l?s.map(u=>u.key):[t.key]),d=(e.moveFolders()??[]).filter(u=>!c.has(u.id)),m=n[n.length-1]??{id:"ROOT",name:o("penzor.move.root",{app:i})};return r("div",{class:"pz-tip",style:{flexDirection:"column"},children:[r("div",{class:"pz-sh",style:{margin:0},children:o("penzor.move.title")}),r("div",{class:"pz-pick",children:[n.length>0&&r("button",{onClick:()=>e.moveBrowse(n.slice(0,-1)),children:[r(Y,{n:"up"}),n.length>1?n[n.length-2].name:o("penzor.move.root",{app:i})]}),e.moveFolders()==null?r("span",{children:"\u2026"}):d.length===0?r("span",{children:o("penzor.move.noFolders")}):d.map(u=>r("button",{onClick:()=>e.moveBrowse([...n,u]),children:[r(Y,{n:"folder"}),u.name]},u.id))]}),r("div",{class:"pz-acts",children:[r("button",{class:"pz-btn pri",onClick:()=>void(l?e.moveMany(s,m):e.moveTo(t,m)),children:o("penzor.move.here")}),r("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"view"}),children:o("penzor.cancel")})]})]})}function Db({p:e,sel:t}){let n=e.t,o=e.loc(),a=t.filter(u=>!u.dir),i=t.length-a.length,s=a.reduce((u,p)=>u+p.size,0),l=new Date,c=n("penzor.download.folder",{date:`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`}),d=o.kind==="app"?[e.appLabel(o.appId),...e.appStack().map(u=>u.name)].join(" / "):o.kind==="sync"?[o.vault,...e.path()?e.path().split("/"):[]].join(" / "):o.kind==="ama"?[e.snap()?.ama?.find(u=>u.id===o.vaultId)?.name??"",...e.path()?e.path().split("/"):[]].join(" / "):"",m=e.side();return r(xo,{p:e,side:!0,children:[r("div",{class:"pz-thumb",children:r(Y,{n:"files"})}),r("div",{class:"pz-fname",children:n("penzor.sel.title",{n:t.length})}),r("div",{class:"pz-fsub",children:i?n("penzor.sel.subDirs",{size:e.b(s),files:a.length,dirs:i}):n("penzor.sel.sub",{size:e.b(s),files:a.length})}),r("div",{class:"pz-acts",children:Ep(e,t).map(u=>r("button",{class:`pz-btn${u.danger?" danger":""}`,onClick:()=>u.run(),children:[r(Y,{n:u.icon}),u.id==="trash"?n("penzor.act.delete"):u.label]},u.id))}),m.kind==="move"&&r(Rp,{p:e,row:t[0],at:m.at}),r("dl",{class:"pz-dl",children:[r("dt",{children:n("penzor.side.where")}),r("dd",{children:d}),a.length>1&&r(O,{children:[r("dt",{children:n("penzor.sel.saveTo")}),r("dd",{children:n("penzor.sel.saveToValue",{folder:c})})]})]}),i>0&&a.length>0&&r("div",{class:"pz-tip",children:[r(Y,{n:"folder"}),r("span",{children:n("penzor.sel.noDirs")})]})]})}var Ip=(e,t)=>t<60?e.t("penzor.tx.sec",{n:Math.max(1,Math.round(t))}):e.t("penzor.tx.min",{n:Math.ceil(t/60)}),Nb=(e,t)=>t!=null&&Date.now()-t<6e4?e.t("penzor.justNow"):At(t,e.locale()),Ob=(e,t)=>{let n=t.error??"";return n==="too_large"?e.t("penzor.err.too_large",{size:e.b(t.size)}):n==="network"?e.t("penzor.err.network",{pct:t.size?Math.round(t.done/t.size*100):0}):n==="quota"||n==="account_changed"||n==="not_signed_in"||n==="gone"||n==="changed"||n==="storage_unavailable"||n==="popup_blocked"||n==="download_unavailable"||n==="download_failed"?e.t(`penzor.err.${n}`):e.t("penzor.err.other",{code:n||"?"})};function Fb(e){let t=e.filter(l=>l.state==="active"||l.state==="queued"||l.state==="paused"),n=t.filter(l=>l.state!=="paused"),o=n.reduce((l,c)=>l+Math.max(c.size,c.done),0),a=n.reduce((l,c)=>l+c.done,0),i=n.reduce((l,c)=>l+c.speed,0),s=i>0?(o-a)/i:null;return{live:t,failed:e.filter(l=>l.state==="failed"),done:e.filter(l=>l.state==="done"),up:t.filter(l=>l.kind==="up").length,down:t.filter(l=>l.kind==="down").length,pct:o>0?Math.min(100,Math.round(a/o*100)):0,eta:s!=null&&s>=5?s:null}}var Ls=!1;function Lp(e,t){let n=t.ui?.float;if(typeof n!="function")return null;Ls=!0;let o=null,a=()=>e.card()!=="hidden"&&(e.transfers().length>0||e.notices().length>0),i=()=>{if(a()&&!o){try{o=n({scope:"space",space:tn,anchor:"bottom-end",role:"panel",id:"transfers",bare:!0})}catch(l){console.error("[penzor] transfer float failed",l);return}Ee(r($b,{p:e}),o.el)}else if(!a()&&o){let l=o;o=null,l.close(),Ee(null,l.el)}},s=e.subscribe(i);return i(),()=>{if(s(),Ls=!1,o){let l=o;o=null,l.close(),Ee(null,l.el)}}}function $b({p:e}){return Ds(e),r(xo,{p:e,extra:"pz-txfloat",children:r(Dp,{p:e})})}function Dp({p:e}){let t=e.t,n=e.card(),o=e.transfers(),a=e.notices();if(n==="hidden"||!o.length&&!a.length)return null;let i=Fb(o),s=i.failed.length+a.length,l=t("penzor.tx.counts",{up:i.up,down:i.down}),c=i.live.length?t("penzor.tx.busy",{n:i.live.length}):s?t("penzor.tx.failedN",{n:s}):t("penzor.tx.allDone"),d=i.live.length?[l,i.eta!=null?t("penzor.tx.eta",{eta:Ip(e,i.eta)}):""].filter(Boolean).join(" \xB7 "):s?i.done.length?t("penzor.tx.restDone",{n:i.done.length}):"":t("penzor.tx.doneN",{n:i.done.length}),m={onMouseEnter:()=>e.holdCard(!0),onMouseLeave:()=>e.holdCard(!1)};if(n==="pill")return r("button",{class:"ui-popover pz-txpill",...m,onClick:()=>e.setCard("open"),title:t("penzor.tx.expand"),"aria-label":t("penzor.tx.expand"),children:[i.live.length?r("span",{class:"pz-ring",style:{"--p":i.pct}}):r(Y,{n:s?"alert":"check"}),r("span",{children:i.live.length?t("penzor.tx.pill",{counts:l,pct:i.pct}):c}),r(Y,{n:"up"})]});let u=f=>f.state==="failed"?0:f.state==="active"?1:f.state==="queued"||f.state==="paused"?2:3,p=[...o].filter(f=>f.state!=="canceled").sort((f,h)=>u(f)-u(h)||(u(f)===3?(h.finishedAt??0)-(f.finishedAt??0):0)),g=i.live.length>0&&i.live.every(f=>f.state==="paused");return r("div",{class:"ui-popover pz-txcard",role:"region","aria-label":c,...m,children:[r("div",{class:"pz-txhead",children:[r("b",{children:c}),r("span",{children:d}),r("i",{class:"sp"}),r("button",{class:"pz-ib",title:t("penzor.tx.collapse"),"aria-label":t("penzor.tx.collapse"),onClick:()=>e.setCard(i.live.length||s?"pill":"hidden"),children:r(Y,{n:"down"})})]}),i.live.length>0&&r("div",{class:"pz-txall",children:r(qr,{pct:i.pct})}),r("div",{class:"pz-txlist",children:[a.map(f=>r("div",{class:"pz-txrow2 is-fail",children:[r(Y,{n:"alert"}),r("span",{class:"nm",children:t("penzor.tx.quota",{size:e.b(f.short)})}),r("span",{class:"acts",children:r("button",{class:"pz-ib",title:t("penzor.tx.remove"),onClick:()=>e.dismissNotice(f.id),children:r(Y,{n:"x"})})}),r("span",{class:"sub",children:[r("span",{class:"err",children:t("penzor.tx.quotaSub")}),r("button",{class:"pz-link",onClick:()=>{e.dismissNotice(f.id),e.go("trash")},children:t("penzor.tx.freeSpace")})]})]},f.id)),p.map(f=>r(Bb,{p:e,x:f},f.id))]}),r("div",{class:"pz-txfoot",children:[i.live.length>0&&r("button",{onClick:()=>void e.txAll(g?"resume":"pause"),children:t(g?"penzor.tx.resumeAll":"penzor.tx.pauseAll")}),i.failed.length>0&&!i.live.length&&r("button",{onClick:()=>void e.txAll("retry"),children:t("penzor.tx.retryAll")}),i.done.length>0&&i.live.length>0&&r("button",{onClick:()=>void e.txClear("finished"),children:t("penzor.tx.clearDone")}),!i.live.length&&r("button",{onClick:()=>void e.txClear(s?"all":"finished"),children:t(s?"penzor.tx.clear":"penzor.tx.clearDone")})]})]})}function Bb({p:e,x:t}){let n=e.t,o=t.size>0?Math.min(100,t.done/t.size*100):0,a=t.state==="done"?"check":t.state==="failed"?"alert":t.kind==="up"?"tx-up":"tx-down",i=(l,c,d)=>r("button",{class:"pz-ib",title:c,"aria-label":c,onClick:d,children:r(Y,{n:l})}),s;if(t.state==="failed")s=r("span",{class:"err",children:Ob(e,t)});else if(t.state==="done")s=r(O,{children:[r("span",{children:e.b(t.size)}),r("span",{children:n(t.kind==="up"?"penzor.tx.uploaded":"penzor.tx.downloaded",{time:Nb(e,t.finishedAt)})})]});else if(t.state==="queued")s=r(O,{children:[r("span",{children:e.b(t.size)}),r("span",{children:n("penzor.tx.queued")})]});else if(t.state==="paused")s=r(O,{children:[r("span",{children:e.b(t.size)}),r("span",{children:n("penzor.tx.paused")})]});else{let l=t.speed>0?(t.size-t.done)/t.speed:null;s=r(O,{children:[r("span",{children:vs(t.done,t.size,e.locale())}),t.speed>0&&r("span",{children:[e.b(t.speed),"/s"]}),l!=null&&l>=5&&r("span",{children:n("penzor.tx.left",{eta:Ip(e,l)})})]})}return r("div",{class:`pz-txrow2${t.state==="done"?" is-done":t.state==="failed"?" is-fail":""}`,children:[r(Y,{n:a}),r("span",{class:"nm",title:t.name,children:t.name}),r("span",{class:"acts",children:[(t.state==="active"||t.state==="queued")&&i("pause",n("penzor.tx.pause"),()=>void e.txOp(t.id,"pause")),t.state==="paused"&&i("play",n("penzor.tx.resume"),()=>void e.txOp(t.id,"resume")),(t.state==="active"||t.state==="queued"||t.state==="paused")&&i("x",n("penzor.tx.cancel"),()=>void e.txOp(t.id,"cancel")),t.state==="failed"&&t.error!=="too_large"&&r("button",{class:"pz-link",onClick:()=>void e.txOp(t.id,"retry"),children:n("penzor.tx.retry")}),t.state==="failed"&&i("x",n("penzor.tx.remove"),()=>void e.txOp(t.id,"dismiss")),t.state==="done"&&(t.kind==="up"||t.localPath)&&r("button",{class:"pz-link",onClick:()=>e.locate(t),children:n(t.kind==="down"?"penzor.tx.reveal":"penzor.tx.locate")})]}),(t.state==="active"||t.state==="paused"||t.state==="queued")&&r(qr,{pct:o}),r("span",{class:"sub",children:s})]})}function Ub(e,t){let n=un(t.tangu);return!!e&&typeof e.registerView=="function"&&typeof e.registerListSource=="function"&&typeof e.openView=="function"&&typeof e.app?.openSpace=="function"&&typeof n?.cloudInvoke=="function"&&(!n.mobile||!!n.extendMobile)&&pn(n)}function Np(e,t=window){if(!Ub(e,t))return null;let n=un(t.tangu),o=tp(e);Lp(o,e),Mn(n)||n.cloudInvoke("penzor:device").then(p=>{let g=p?.name;typeof g=="string"&&g&&o.setDevice(g)}).catch(()=>{});let a=p=>g=>(Ee(r(p,{p:o}),g),()=>{Ee(null,g)});e.registerView({id:_n.main,title:o.t("penzor.title"),icon:"penzor",workspaceSource:xs,mount:a(_p)}),e.registerView({id:_n.info,title:o.t("penzor.details"),icon:"page",mount:a(Mp)});let i=e.listCapabilities?.includes("tree")??!1,s=typeof e.app?.setSpaceProgress=="function"?"hard-drive":"archive",l=()=>({overview:o.t("penzor.overview"),drive:o.t("penzor.drive"),driveIcon:s,sync:o.t("penzor.ledger.sync"),ama:o.t("penzor.ledger.ama"),apps:o.t("penzor.ledger.apps"),exports:o.t("penzor.ledger.exports"),trash:o.t("penzor.trash"),items:p=>o.t("penzor.items",{n:p}),files:o.t("penzor.uploads"),synced:o.t("penzor.tree.synced"),all:o.t("penzor.scope.all"),thisBackup:o.t("penzor.tree.thisBackup"),byApp:o.t("penzor.tree.byApp"),legacy:o.t("penzor.tree.legacy")}),c=()=>{let p=o.content();if(p){let f=hn(p);return[{key:"sync-home",title:o.t("penzor.sync.title"),icon:"refresh",hint:Xu(f,o.locale()),...f.kind==="warn"?{unread:!0}:{}}]}if(!o.hasSync())return[];let g=o.syncState();return[{key:"sync-home",title:o.t("penzor.sync.title"),icon:"refresh",hint:Ku(g,o.locale()),...za(g)?{unread:!0}:{}}]};e.registerListSource({id:xs,title:o.t("penzor.title"),search:!0,items:p=>{let g=[...c(),...ju(o.snap(),l(),o.locale(),o.content())],f=p?.query?.trim().toLowerCase()??"";if(f)return g.filter(k=>k.kind!=="folder"&&k.title.toLowerCase().includes(f)).map(({parent:k,...x})=>x);if(i)return g;let h=new Map(g.filter(k=>k.kind==="folder").map(k=>[k.key,k.title]));return g.filter(k=>k.kind!=="folder").map(({parent:k,...x})=>({...x,group:k?h.get(k):void 0}))},subscribe:p=>o.subscribe(p),activeKey:()=>vr(o.loc()),open:p=>o.go(p.key),actions:[{id:"refresh",label:o.t("penzor.act.refresh"),icon:"refresh",primary:!0,run:()=>{o.refresh(),e.app?.sync?.refresh?.().catch(()=>{})}}],itemMenu:p=>{if(p.key.startsWith("sync:")){let g=p.key.slice(5);return[{id:"open-sync",label:o.t("penzor.act.openSync"),icon:"gear",run:()=>o.openSync()},{id:"copy-name",label:o.t("penzor.act.copyName"),icon:"copy",run:()=>{navigator.clipboard?.writeText(g).then(()=>e.app?.notify?.(o.t("penzor.toast.copied")))}}]}return p.key==="trash"&&o.canEmptyTrash()?[{id:"empty-trash",label:o.t("penzor.trash.emptyBtn"),icon:"trash",danger:!0,run:()=>{o.go("trash"),o.setConfirmEmpty(!0)}}]:[]}}),e.registerCommand?.({id:"open-penzor",title:()=>o.t("penzor.cmd.open"),keywords:"penzor cloud storage quota sync files trash drive upload \u84EC\u6D32\u4E91 \u4E91\u7A7A\u95F4 \u4E91\u76D8 \u7F51\u76D8 \u4E0A\u4F20 \u989D\u5EA6 \u540C\u6B65 \u56DE\u6536\u7AD9",run:()=>{e.app?.openSpace?.(tn)}});let d=p=>{if(!(p.key!==ep||!p.newValue))try{let g=JSON.parse(p.newValue);g.page==="sync"&&o.hasSync()?e.app?.openSpace?.(tn).then(()=>o.go("sync-home")):typeof g.vault=="string"&&g.vault&&o.focusVault(g.vault)}catch{}},m=(()=>{try{return!new URLSearchParams(t.location.search).get("window")}catch{return!1}})();if(m){t.addEventListener("storage",d);try{t.localStorage.setItem(ks,"1")}catch{}}let u=o.dispose;return o.dispose=()=>{if(m){t.removeEventListener("storage",d);try{t.localStorage.removeItem(ks)}catch{}}u()},o}var Op="sync",Ns=3,Hb=24*36e5,qb=5e3,Wb=15e4,Fp=e=>e.split("/").filter(Boolean).pop()||e,ko=(e,t,n)=>e!=null&&Number.isFinite(e)?vn(e,t,n):void 0;function Vb(e,t){let n=new Map;for(let o of e.jobs){if(o.state!=="conflict"||t-o.at>Hb||e.jobs.some(i=>i.path===o.path&&i.at>o.at&&i.state==="done"&&i.direction!=="merge"))continue;let a=n.get(o.path);(!a||o.at>a.at)&&n.set(o.path,o)}return[...n.values()].sort((o,a)=>a.at-o.at)}var jb=e=>{let t=e.jobs.filter(n=>n.state==="done").map(n=>n.finishedAt??n.at);return t.length?Math.max(...t):null};function Gb(e,t,n,o){let a=hn(e);if(a.kind==="off")return{rows:[{id:"status",title:t("penzor.widget.off"),meta:t("penzor.cs.statusOff")}]};let i=[],s=jb(e);i.push(a.kind==="paused"?{id:"status",title:t("penzor.widget.paused"),meta:t("penzor.cs.statusPaused")}:a.kind==="run"?{id:"status",title:t("penzor.widget.running"),meta:`${a.pct}%`,tone:"accent",now:!0}:a.kind==="scan"?{id:"status",title:t("penzor.cs.statusScan"),now:!0}:a.kind==="warn"?{id:"status",title:t("penzor.widget.problem"),meta:t("penzor.cs.statusWarn",{n:a.n}),tone:"warn"}:{id:"status",title:t("penzor.cs.statusOk"),...ko(a.at,n,o)?{meta:ko(a.at,n,o)}:{}});let l=e.jobs.filter(u=>u.state==="active").length,c=e.jobs.filter(u=>u.state==="queued"||u.state==="paused").length;l?i.push({id:"queue",title:t("penzor.widget.active",{n:l}),...c?{meta:t("penzor.widget.queued",{n:c})}:{}}):c&&i.push({id:"queue",title:t("penzor.widget.waiting",{n:c})});let d=[...e.error?[{id:"error",title:t("penzor.widget.error"),meta:t("penzor.widget.errorMeta"),tone:"warn"}]:[],...vo(e).sort((u,p)=>p.at-u.at).map(u=>({id:`failed:${u.id}`,title:Fp(u.path),meta:t("penzor.widget.failed"),tone:"warn"})),...Vb(e,o).map(u=>({id:`conflict:${u.id}`,title:Fp(u.path),meta:t("penzor.widget.conflict"),tone:"warn"}))];i.push(...d.slice(0,Ns));let m=[...d.length>Ns?[t("penzor.widget.more",{n:d.length-Ns})]:[],...a.kind!=="ok"&&ko(s,n,o)?[t("penzor.widget.last",{time:ko(s,n,o)})]:[]];return{rows:i,...m.length?{footer:m.join(" \xB7 ")}:{}}}function Jb(e,t,n,o){if(!e.signedIn)return Up(t);let a=e.notes;if(a.pending)return{rows:[{id:"pending",title:t("penzor.widget.pending"),meta:t("penzor.sync.waiting"),tone:"warn"}]};if(!wa(e))return{rows:[{id:"status",title:t("penzor.widget.off"),meta:t("penzor.cs.statusOff")}]};let i=[],s=xr(e)??(e.agents.on&&e.agents.running?0:null),l=Math.max(...[a.last?.ok?a.last.at:null,e.agents.last?.ok?e.agents.last.at:null,e.plugins.lastAt??null].filter(c=>typeof c=="number"),-1);return s!=null?i.push({id:"status",title:t("penzor.widget.running"),...s>0?{meta:`${Math.round(s*100)}%`}:{},tone:"accent",now:!0}):i.push({id:"status",title:t("penzor.cs.statusOk"),...l>0?{meta:ko(l,n,o)}:{}}),a.on&&ho(e)&&i.push({id:"notes-failed",title:t("penzor.widget.notesFailed"),meta:t("penzor.widget.errorMeta"),tone:"warn"}),e.agents.on&&e.agents.last?.ok===!1&&i.push({id:"agents-failed",title:t("penzor.widget.agentsFailed"),meta:t("penzor.widget.errorMeta"),tone:"warn"}),e.plugins.on&&(e.plugins.pending??0)>0&&i.push({id:"plugins",title:t("penzor.widget.waiting",{n:e.plugins.pending})}),{rows:i}}var Up=e=>({rows:[{id:"signin",title:e("penzor.widget.signedOut"),meta:e("penzor.widget.signInHint")}]});function $p(e,t,n=Date.now()){let o=(a,i)=>xe(t,a,i);return e.kind==="signedOut"?Up(o):e.kind==="content"?Gb(e.snap,o,t,n):Jb(e.snap,o,t,n)}var Kb=/not a Forsion Extend channel/;async function Bp(e,t){let n=oe();if(!pn(n))throw new Error("sync status is not available on this page");if(!t.noChannel&&typeof n.cloudInvoke=="function"){let i;try{i=await n.cloudInvoke(_t.get)}catch(s){i={ok:!1,error:s instanceof Error?s.message:String(s)}}if(i?.ok&&i.value?.available)return{kind:"content",snap:i.value};if(!i?.ok&&i?.error==="not_signed_in")return{kind:"signedOut"};if(i?.ok||!Kb.test(i?.error??""))throw new Error(i?.error||"sync status unavailable");t.noChannel=!0}let o=!n.mobile&&typeof e.app?.sync?.get=="function"?e.app.sync:null,a=o?.get()??null;if(!a)throw new Error(o?"sync status is still loading":"sync status unavailable");return{kind:"legacy",snap:a}}var Xb=8e3;function Hp(e){let t=e?.widgets;if(!e||!t||typeof t.provide!="function")return null;let n=()=>De(e.getLocale?.()),o={noChannel:!1},a=null,i=null,s=1,l=null,c=null,d,m,u=!1,p=0,g=()=>{u||t.invalidate(Op)},f=T=>T?JSON.stringify($p(T,n())):"error",h=T=>{let R;return Promise.race([T,new Promise((B,U)=>{R=setTimeout(()=>U(new Error("timed out")),Xb)})]).finally(()=>clearTimeout(R))},k=async()=>{let T=s;if(!(u||p===T)){p=T;try{let R=f(await h(Bp(e,o)).catch(()=>null));if(u||T!==s)return;R!==a&&R!==i&&(i=R,g())}finally{p===T&&(p=0)}}},x=()=>{s++,p=0,l&&clearInterval(l),c&&clearTimeout(c),l=null,c=null,d?.(),d=void 0,m?.(),m=void 0},S=()=>{if(c&&clearTimeout(c),c=setTimeout(x,Wb),l)return;l=setInterval(()=>void k(),qb),d=oe().onAuthChanged?.(()=>{i=null,g()}),m=(!oe().mobile&&typeof e.app?.sync?.subscribe=="function"?e.app.sync:null)?.subscribe(()=>void k())},w=t.provide(Op,async(T,R)=>{if(u)throw new Error("disposed");S(),i=null;let B=R?.signal,U;try{U=$p(await Bp(e,o),n())}catch(N){throw B?.aborted||(a="error"),N}return B?.aborted||(a=JSON.stringify(U)),U});return{dispose(){u=!0,x(),w?.dispose?.()}}}var Pa="events",Ea="forsion-extend.events.seen",qp="forsion-extend.events.last",Wp="forsion-extend.events.ping",Yb=200,Zb=3e4,Cn=(e,t)=>e&&(e[t]||e.zh||e.en)||"",wo=(e,t)=>(e??[]).map(n=>Cn(n.label,t)||n.kind).join(" \xB7 "),Os=(e,t)=>e.sort-t.sort||(e.endsAt??"~").localeCompare(t.endsAt??"~");function Qb(e){let t=n=>n.kind==="notice";return{active:e.filter(n=>!t(n)&&(n.state==="live"||n.state==="claiming")).sort(Os),notices:e.filter(n=>t(n)&&n.state==="live").sort(Os),upcoming:e.filter(n=>n.state==="upcoming").sort(Os),ended:e.filter(n=>n.state==="ended"||t(n)&&n.state==="claiming").sort((n,o)=>(o.endsAt??"").localeCompare(n.endsAt??""))}}var Wr=(e,t)=>{let n=new Date(e),o=a=>String(a).padStart(2,"0");return`${o(n.getMonth()+1)}-${o(n.getDate())}${t?` ${o(n.getHours())}:${o(n.getMinutes())}`:""}`},ey=36e5;function Bs(e,t,n){let o=(l,c)=>xe(n,l,c);if(e.state==="upcoming")return{short:o("events.time.start",{date:Wr(e.startsAt,!1)}),long:o("events.time.start",{date:Wr(e.startsAt,!0)}),warn:!1};if(e.kind==="notice"){let l=o("events.time.published",{date:Wr(e.startsAt,!1)});return{short:l,long:l,warn:!1}}if(e.state==="claiming"&&e.claimUntil)return{short:o("events.time.claimShort",{date:Wr(e.claimUntil,!1)}),long:o("events.time.claim",{date:Wr(e.claimUntil,!0)}),warn:!1};if(e.state==="ended"||!e.endsAt){let l=e.endsAt?o("events.time.ended",{date:Wr(e.claimUntil??e.endsAt,!1)}):"";return{short:l,long:l,warn:!1}}let a=new Date(e.endsAt).getTime()-new Date(t).getTime(),i=Math.max(1,Math.ceil(a/ey));if(i<=24)return{short:o("events.left.hours",{n:i}),long:o("events.left.longHours",{h:i}),warn:!0};let s=Math.floor(i/24);return{short:o("events.left.days",{n:s}),long:o("events.left.long",{d:s,h:i%24}),warn:!1}}function Vp(e,t){return e?/^(https:|data:image\/)/i.test(e)?e:e.startsWith("/")&&t?`${t.replace(/\/+$/,"")}${e}`:null:null}function Fs(e,t){try{let n=localStorage.getItem(e);return n===null?t:JSON.parse(n)}catch{return t}}function $s(e,t){try{localStorage.setItem(e,t)}catch{}}var ty={not_live:"events.err.notLive",completed:"events.err.completed",grant_failed:"events.err.grantFailed"};function jp(e,t){let n=new Set,o=()=>{n.forEach(_=>_())},a=De(e.getLocale?.()),i="loading",s=null,l="",c=null,d=new Set(Fs(Ea,[])),m=!1,u=null,p=0,g,f=(_,I)=>xe(a,_,I),h=()=>Qb(s?.events??[]),k=_=>_.state==="live"&&!d.has(_.id),x=()=>{$s(Wp,String(Date.now()))},S=_=>{_&&Array.isArray(_.events)&&(s=_,i="ready")},w=_=>f(_.code&&ty[_.code]||"events.err.failed"),T=0,R=async _=>{_!==void 0&&(g=_||void 0),p=Date.now();let I=++T;if(!l)try{l=(await oe().authStatus?.())?.cloudUrl??""}catch{}let H=await Z(g?`/events/feed?preview=${encodeURIComponent(g)}`:"/events/feed");I===T&&(H.ok?S(H.data):Rn(H)||H.status===401?(s=null,i="signedOut"):H.status===404?(s=null,i="unavailable"):s||(i="error"),o())},B=async _=>{if(!m){m=!0,u=null,o(),T++;try{await _()}finally{m=!1,T++,x(),o()}}},U=_=>B(async()=>{let I=await Z(`/events/${encodeURIComponent(_.id)}/checkin`,{method:"POST",body:{}});if(!I.ok){u={ok:!1,text:w(I),backpack:!1};return}S(I.data.feed);let H=wo(I.data.reward,a);u={ok:!0,text:H?f("events.toast.checkin",{reward:H}):f("events.checkin.done"),backpack:!!H}}),N=(_,I)=>B(async()=>{let H=await Z(`/events/${encodeURIComponent(_.id)}/tasks/claim`,{method:"POST",body:{ids:I}});if(!H.ok){u={ok:!1,text:w(H),backpack:!1};return}S(H.data.feed);let Q=H.data.results.filter(ce=>ce.ok&&!ce.alreadyClaimed),$=H.data.results.filter(ce=>!ce.ok).length,te=Q.flatMap(ce=>ce.reward??[]);$?u={ok:!1,text:f("events.toast.partial",{n:Q.length,m:$}),backpack:!1}:Q.length&&(u={ok:!0,text:f("events.toast.claimed",{reward:wo(te,a)}),backpack:te.length>0})}),G=_=>{d.has(_)||(d=new Set([...d,_].slice(-Yb)),$s(Ea,JSON.stringify([...d])),x())},z=()=>{let _=h(),I=[..._.active,..._.notices],H=[...I,..._.upcoming,..._.ended],Q=Fs(qp,null);return H.find($=>$.id===Q)??I.find($=>$.claimable>0||k($))??H[0]??null},P=e.subscribeLocale?.(_=>{a=De(_),o()}),F=_=>{_.key===Ea&&(d=new Set(Fs(Ea,[])),o()),_.key===Wp&&R()},L=()=>{Date.now()-p>Zb&&R()};window.addEventListener("storage",F),window.addEventListener("focus",L);let ae=oe().onAuthChanged?.(()=>{l="",s=null,R()}),b=t.fetchOnStart?setTimeout(()=>{R()},3e3):null;return{locale:()=>a,t:f,status:()=>i,feed:()=>s,origin:()=>l,groups:h,selected:()=>(s?.events??[]).find(_=>_.id===c)??z(),select:_=>{c=_,u=null,$s(qp,JSON.stringify(_)),G(_),o()},isNew:k,hasDot:()=>{let _=h();return[..._.active,..._.notices].some(I=>I.claimable>0||k(I))},active:()=>{let _=h();return i==="ready"&&_.active.length+_.notices.length>0},busy:()=>m,notice:()=>u,clearNotice:()=>{u=null,o()},refresh:R,checkin:U,claim:N,open:_=>{let I=_?{id:_}:void 0;e.openFloatingPanel?e.openFloatingPanel(Pa,{title:f("events.title"),params:I,width:1040,height:720,minWidth:720,minHeight:520}):e.openView?.(Pa,{location:"main",params:I})},subscribe:_=>(n.add(_),()=>{n.delete(_)}),dispose:()=>{b&&clearTimeout(b),P?.(),ae?.(),window.removeEventListener("storage",F),window.removeEventListener("focus",L),n.clear()}}}var Gp=`
1624
+ `;async function Tn(e,...t){let o=te().cloudInvoke;if(!o)throw Error("content_sync_unavailable");let r=await o(e,...t);if(!r?.ok)throw Error(r?.error??"content_sync_unavailable");return r.value}var Jo=e=>e instanceof Error?e.message:String(e),uy=["merge","cloud","local"],Jp={notes:{icon:"notebook",title:"penzor.cat.notes",desc:"penzor.cat.notesDesc"},agents:{icon:"bot",title:"penzor.cat.agents",desc:"penzor.cat.agentsDesc"},profile:{icon:"user-round",title:"penzor.cat.profile",desc:"penzor.cat.profileDesc"},plugins:{icon:"puzzle",title:"penzor.cat.plugins",desc:"penzor.cat.pluginsDesc"}};function Ha({on:e,disabled:t,label:o,onToggle:r}){return n("button",{type:"button",role:"switch",class:`settings-switch${e?" active":""}`,"aria-checked":e,"aria-label":o,disabled:t,onClick:a=>{a.stopPropagation(),r(!e)},children:n("span",{})})}function Kp({p:e,legacy:t}){let o=e.t,[r,a]=S(null),[i,s]=S(!0),[l,c]=S(null),[d,f]=S(null),[u,p]=S(0),[m,g]=S(!1),[h,k]=S(!1),[y,x]=S(null),[w,C]=S(!1),[M,$]=S(!1),[U,O]=S(!1),[j,_]=S({}),[L,B]=S(null),[P,J]=S(!1),[v,A]=S(null),[N,X]=S(null),[Q,H]=S(null),oe=ie(!0),ge=ie(!1),He=ie(null),pe=async()=>{try{let D=await Tn(Ut.get,e.locale());if(!D?.available){oe.current&&s(!1);return}oe.current&&(ge.current=!0,a(D),s(!0))}catch(D){oe.current&&(!ge.current&&/unavailable|not a Forsion Extend channel/i.test(String(D))?s(!1):x(Jo(D)))}};Y(()=>{oe.current=!0,pe();let D=setInterval(()=>void pe(),1e3);return()=>{oe.current=!1,clearInterval(D)}},[]),Y(()=>{if(!L&&!P)return;let D=le=>{le instanceof KeyboardEvent&&le.key!=="Escape"||le.type==="mousedown"&&le.target?.closest?.(".pz-cs-menu")||(B(null),J(!1))};return document.addEventListener("mousedown",D),document.addEventListener("keydown",D),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",D)}},[L,P]);let Le=!!r&&!r.config.enabled&&r.config.revision===0&&!M,Qe=rn(()=>r&&Le?Wp(r.config):null,[Le,r?.config.revision]),be=r?l??Qe??r.config:null,Ke=!!r&&!w&&(Le||!!l&&Zs(r.config,l)>0),It=Ke&&be?JSON.stringify(be)+"#"+u:"";if(Y(()=>{if(f(null),H(null),!It)return;let D=!0,le=setTimeout(()=>{Tn(Ut.preview,be).then(Se=>{D&&oe.current&&f(Se)},Se=>{!D||!oe.current||(/config_changed/.test(Jo(Se))?c(null):x(Jo(Se)))})},400);return()=>{D=!1,clearTimeout(le)}},[It]),!i)return t;if(!r||!be)return n("div",{class:"pz-scroll",children:n("p",{class:"pz-note",children:y??o("penzor.loading")})});if(w)return n(py,{p:e,snap:r,refresh:pe,back:()=>C(!1)});let V=`device-${r.deviceId}`,ue=r.devices.filter(D=>D.id!==r.deviceId),ke=(r.others?.files??0)>0,Pe=D=>r.sources.find(le=>le.path===D),fe=D=>r.sources.filter(le=>le.path.startsWith(D+"/")&&!le.path.slice(D.length+1).includes("/")),ot=D=>D==="default"?o("penzor.scope.all"):D===V?o("penzor.scope.self"):o("penzor.scope.with",{name:r.devices.find(le=>`device-${le.id}`===D)?.name??D.slice(7,15)}),Ce=(D,le,Se)=>{c(Vp(be,D,le,ke)),X({path:D,name:Se,target:le}),B(null),x(null),g(!1)},pt=async D=>{k(!0),x(null);try{await D(),await pe()}catch(le){x(Jo(le))}finally{k(!1)}},rt=d?.agentAsks??[],un=()=>{if(rt.length&&!Q){H(Object.fromEntries(rt.map(D=>[D.slug,"merge"])));return}Gt(Q??{})},Gt=D=>void pt(async()=>{try{await Tn(Ut.apply,d.token,...Object.keys(D).length?[D]:[])}catch(je){if(H(null),/preview_(changed|expired)/.test(Jo(je))){g(!0),p(Nt=>Nt+1);return}throw je}H(null);let le=jt(be,"Plugins")==="default",Se=e.syncState()?.plugins;e.hasSync()&&Se&&Se.on!==le&&e.setSync("plugins",le),c(null),$(!1),g(!1)}),Jt=(D,le,Se)=>{D.stopPropagation();let je=D.currentTarget.getBoundingClientRect(),Nt=He.current.getBoundingClientRect(),vt=document.body.currentCSSZoom||1;B(L?.path===le?null:{path:le,name:Se,x:(je.left-Nt.left)/vt-4,y:(je.bottom-Nt.top)/vt+4})},kt=({path:D,name:le})=>{let Se=jt(be,D);return n("button",{type:"button",class:`pz-scope${Se!=="default"?" is-alt":""}`,"aria-haspopup":"menu","aria-expanded":L?.path===D,onClick:je=>Jt(je,D,le),children:[n(ne,{n:Se==="default"?"cloud":Se===V?"laptop":"monitor"}),ot(Se),n(ne,{n:"down"})]})},at=Cn(r),Ht=r.jobs.filter(D=>D.state==="queued"||D.state==="active"||D.state==="paused"),Zt=Cr(r),ft=at.kind==="off"?n("span",{class:"pz-cs-status",children:[n(ne,{n:"cloud-off"}),o("penzor.cs.statusOff")]}):at.kind==="paused"?n("span",{class:"pz-cs-status",children:[n(ne,{n:"pause"}),o("penzor.cs.statusPaused")]}):at.kind==="run"?n("span",{class:"pz-cs-status is-ok",children:[n("span",{class:"pz-ring",style:`--p:${at.pct}`}),o("penzor.cs.statusRun",{pct:at.pct})]}):at.kind==="scan"?n("span",{class:"pz-cs-status is-ok",children:[n(ne,{n:"refresh"}),o("penzor.cs.statusScan")]}):at.kind==="warn"?n("span",{class:"pz-cs-status is-warn",children:[n(ne,{n:"alert"}),o("penzor.cs.statusWarn",{n:at.n})]}):n("span",{class:"pz-cs-status is-ok",children:[n(ne,{n:"cloud-check"}),at.at?o("penzor.cs.statusOkAgo",{time:An(at.at,e.locale())}):o("penzor.cs.statusOk")]}),et=v!=null&&v.trim()!==r.deviceName?Bs(v.trim(),r.devices,r.deviceId):null,Dt=(D=!1)=>{let le=v;if(le==null)return;let Se=le.trim();if(Se!==r.deviceName&&Bs(Se,r.devices,r.deviceId)){D&&A(null);return}A(null),Se!==r.deviceName&&pt(()=>Tn(Ut.rename,Se))},pn=D=>{let le=/device_name_(taken|reserved|invalid)/.exec(D);return le?o(`penzor.cs.name.${le[1]}`):D},bt=Ht.find(D=>D.state==="active")??Ht[0],bn=(D,le)=>{let Se=Jp[D],je=jt(be,le)!=="off",Nt=Js.has(le)&&fe(le).length>0,vt=!!j[le]&&je,st=Ys(be,le),vn=Pe(le),Te=D==="notes"?vn?o("penzor.cat.files",{n:(vn.files??0).toLocaleString(),size:e.b(vn.size)}):"":D==="profile"?o("penzor.cat.profileOn"):o("penzor.cat.pluginsN",{n:fe(le).length}),dt=n("b",{children:[o(Se.title),Nt&&n("span",{class:"pz-cs-chev",children:n(ne,{n:"right"})})]}),Ot=n("small",{children:je?n(R,{children:[n(kt,{path:le,name:o(Se.title)}),Te&&n(R,{children:[n("span",{class:"pz-sep",children:"\xB7"}),n("span",{children:Te})]}),st>0&&n(R,{children:[n("span",{class:"pz-sep",children:"\xB7"}),n("button",{class:"pz-link",onClick:()=>C(!0),children:o("penzor.cat.custom",{n:st})})]})]}):o(Se.desc)});return n(R,{children:[n("div",{class:`pz-sync-row${Nt&&je?" is-click":""}${vt?" is-open":""}`,children:[Nt&&je?n("div",{class:"pz-sync-main",role:"button",tabIndex:0,"aria-expanded":vt,onClick:()=>_({...j,[le]:!vt}),onKeyDown:qe=>{qe.key==="Enter"&&_({...j,[le]:!vt})},children:[n("span",{class:"pz-tile",children:n(ne,{n:Se.icon})}),n("span",{class:"pz-sync-txt",children:[dt,Ot]})]}):n("div",{class:"pz-sync-main",children:[n("span",{class:"pz-tile",children:n(ne,{n:Se.icon})}),n("span",{class:"pz-sync-txt",children:[dt,Ot]})]}),n(Ha,{on:je,label:o(Se.title),disabled:h,onToggle:qe=>Ce(le,qe?"default":"off",o(Se.title))})]}),vt&&fe(le).map(qe=>{let Rt=qe.path.slice(le.length+1),fn=jt(be,qe.path)!=="off";return n("div",{class:"pz-cs-child",title:qe.path,children:[n("span",{children:[n("b",{children:[Rt,D==="notes"&&n("span",{class:"pz-cs-faint",children:o("penzor.cat.files",{n:(qe.files??0).toLocaleString(),size:e.b(qe.size)})})]}),fn?n(kt,{path:qe.path,name:Rt}):n("span",{class:"pz-cs-faint",children:o("penzor.cat.notSynced")})]}),n(Ha,{on:fn,label:Rt,disabled:h,onToggle:ro=>Ce(qe.path,ro?jt(be,le):"off",Rt)})]},qe.path)})]},le)},it=()=>{let D=Jp.agents,le=r.sources.filter(Te=>Te.agent),Se=new Set(le.map(Te=>Te.path.slice(7))),je=[...le.map(Te=>({slug:Te.path.slice(7),name:Te.name,nameEn:Te.nameEn,here:!0})),...(r.cloudAgents??[]).filter(Te=>!Se.has(Te)).map(Te=>({slug:Te,name:void 0,nameEn:void 0,here:!1}))].sort((Te,dt)=>Number(_o.has(Te.slug))-Number(_o.has(dt.slug))),Nt=Te=>_o.has(Te.slug)?o("penzor.agents.muse"):(e.locale()==="en"?Te.nameEn??Te.name:Te.name??Te.nameEn)??Te.slug,vt=je.filter(Te=>!_o.has(Te.slug)&&jt(be,`agents/${Te.slug}`)!=="off").length,st=Ys(be,"agents"),vn=je.length?o(jt(be,"agents")==="off"?"penzor.agents.pickHint":"penzor.agents.legacyHint",{n:vt}):o("penzor.agents.none");return n(R,{children:[n("div",{class:"pz-sync-row pz-cs-group",children:n("div",{class:"pz-sync-main",children:[n("span",{class:"pz-tile",children:n(ne,{n:D.icon})}),n("span",{class:"pz-sync-txt",children:[n("b",{children:o(D.title)}),n("small",{children:[vn,st>0&&n(R,{children:[n("span",{class:"pz-sep",children:"\xB7"}),n("button",{class:"pz-link",onClick:()=>C(!0),children:o("penzor.cat.custom",{n:st})})]})]})]})]})}),je.map(Te=>{let dt=`agents/${Te.slug}`,Ot=Nt(Te),qe=_o.has(Te.slug),Rt=!qe&&jt(be,dt)!=="off";return n("div",{class:`pz-cs-child${qe?" is-locked":""}`,title:dt,"data-agent":Te.slug,children:[n("span",{children:[n("b",{children:[Ot,Ot.toLowerCase()!==Te.slug&&n("span",{class:"pz-cs-slug",children:Te.slug})]}),qe?n("span",{class:"pz-cs-faint",children:o("penzor.agents.museDesc")}):Rt?n(kt,{path:dt,name:Ot}):n("span",{class:"pz-cs-faint",children:o(Te.here?"penzor.cat.notSynced":"penzor.agents.cloudOnly")})]}),qe?n("span",{class:"pz-cs-lock",role:"note",children:[n(ne,{n:"lock"}),o("penzor.agents.locked")]}):n(Ha,{on:Rt,label:Ot,disabled:h,onToggle:fn=>Ce(dt,fn?"default":"off",Ot)})]},dt)}),n("div",{class:"pz-cs-subnote",children:o("penzor.agents.historianNote")})]},"agents")},At=Ke&&n("div",{class:"pz-cs-bar",role:"region","aria-label":o("penzor.rules.previewTitle"),children:[n(ne,{n:"alert"}),n("span",{class:"txt",children:[Le?d?o("penzor.cs.barFirst",{up:d.upload,down:d.download}):o("penzor.cs.firstTitle"):(()=>{let D=Zs(r.config,be);return D===1&&N&&jt(be,N.path)===N.target&&jt(r.config,N.path)!==N.target?o("penzor.cs.barOne",{name:N.name,scope:N.target==="off"?o("penzor.cs.offName"):ot(N.target)}):o("penzor.cs.barChanged",{n:D})})(),n("small",{children:m?o("penzor.cs.barRecount"):d?[Le?o("penzor.cs.barSize",{size:e.b(d.bytes)}):o("penzor.cs.barCounts",{up:d.upload,down:d.download}),d.conflicts>0?o("penzor.cs.barConflicts",{n:d.conflicts}):"",Le?o("penzor.cs.noDelete"):""].filter(Boolean).join(" \xB7 "):o("penzor.cs.barCounting")})]}),n("button",{class:"pz-btn",disabled:h,onClick:()=>{Le&&$(!0),c(null),g(!1)},children:o(Le?"penzor.cs.later":"penzor.cs.undo")}),n("button",{class:"pz-btn pri",disabled:h||!d||r.running,onClick:un,children:o(Le?"penzor.cs.start":"penzor.cs.confirm")})]}),ce=r.agentArchive?.state==="done"&&!r.agentArchive.seen&&r.agentArchive.folderId?r.agentArchive:null,Ye=D=>D==="content_account_changed_preview_required"?o("penzor.cs.accountReview"):D==="agent_archive_running"?o("penzor.agents.archiveRunning"):D.startsWith("agent_open_failed: ")?o("penzor.agents.openFailed",{reason:D.slice(19)}):pn(D),We=D=>{let le=r.sources.find(Se=>Se.agent&&Se.path===`agents/${D}`);return(e.locale()==="en"?le?.nameEn??le?.name:le?.name??le?.nameEn)??D},Qt=Q&&d&&rt.length>0&&n("div",{class:"pz-sync-ask pz-ask-card",role:"dialog","aria-modal":"false","aria-label":o("penzor.ask.confirm"),children:[rt.map(D=>n("div",{class:"pz-ask-agent",role:"radiogroup","aria-label":We(D.slug),children:[n("b",{children:o("penzor.ask.title",{name:We(D.slug)})}),n("small",{children:o("penzor.ask.when",{cloud:Wt(D.cloudMtime,e.locale()),local:Wt(D.localMtime,e.locale())})}),uy.map(le=>n("label",{class:"pz-ask-opt",children:[n("input",{type:"radio",name:`ask-${D.slug}`,checked:Q[D.slug]===le,onChange:()=>H({...Q,[D.slug]:le})}),n("span",{children:[n("b",{children:o(`penzor.ask.${le}`)}),le==="merge"&&n("em",{children:o("penzor.ask.recommended")}),n("small",{children:o(`penzor.ask.${le}Desc`)})]})]},le))]},D.slug)),n("div",{class:"pz-ask-foot",children:[n("small",{children:o("penzor.ask.foot")}),n("button",{class:"pz-btn",disabled:h,onClick:()=>H(null),children:o("penzor.ask.cancel")}),n("button",{class:"pz-btn pri",disabled:h||r.running,onClick:()=>Gt(Q),children:o("penzor.ask.confirm")})]})]}),ct=D=>D.direction==="upload"?"tx-up":D.direction==="download"?"tx-down":"tx-sync";return n("div",{class:"pz-scroll",children:[n("style",{children:Xp}),n("div",{class:"pz-col pz-cs",ref:He,children:[n(Tr,{p:e}),n("div",{class:"pz-cs-head",children:[n("h1",{class:"pz-h1",children:o("penzor.sync.title")}),ft,n("span",{class:"grow"}),n("button",{class:"pz-btn",disabled:h||r.running||!r.config.enabled,onClick:()=>void pt(()=>Tn(Ut.run)),children:[n(ne,{n:"refresh"}),o("penzor.rules.run")]}),n("button",{class:"pz-btn","aria-label":o("penzor.cs.more"),"aria-haspopup":"menu",onClick:D=>{D.stopPropagation(),J(!P)},children:n(ne,{n:"more"})})]}),P&&n("div",{class:"pz-cs-menu",style:"right:0;top:64px",role:"menu",children:n("button",{class:"it",role:"menuitem",onClick:()=>{J(!1),C(!0)},children:[n(ne,{n:"gear"}),n("span",{children:n("b",{children:o("penzor.cs.advanced")})}),n("span",{})]})}),n("div",{class:"pz-cs-meta",children:[n("span",{class:"pz-cs-dev",children:[n(ne,{n:"laptop"}),v!=null?n(R,{children:[o("penzor.cs.thisComputerLabel"),n("input",{value:v,maxLength:64,"aria-label":o("penzor.cs.rename"),ref:D=>D?.focus(),onInput:D=>A(D.currentTarget.value),"aria-invalid":!!et,onKeyDown:D=>{D.key==="Enter"&&Dt(),D.key==="Escape"&&A(null)},onBlur:()=>Dt(!0)}),et?n("span",{class:"pz-cs-warn",role:"alert",children:o(`penzor.cs.name.${et}`)}):n("span",{class:"pz-cs-faint",children:o("penzor.cs.renameHint")})]}):n(R,{children:[o("penzor.cs.thisComputer",{name:r.deviceName}),n("button",{class:"pz-link","aria-label":o("penzor.cs.rename"),title:o("penzor.cs.rename"),onClick:()=>A(r.deviceName),children:n(ne,{n:"pen"})})]})]}),n("span",{children:ue.length?o("penzor.cs.othersN",{n:ue.length,names:ue.map(D=>D.name).join(e.locale()==="zh"?"\u3001":", ")}):o("penzor.cs.noOthers")}),n("button",{class:"pz-link",onClick:()=>O(!U),children:[n(ne,{n:"history"})," ",o("penzor.cs.log")]})]}),(y||r.error)&&n("p",{role:"alert",class:"pz-rule-error",style:"margin-top:14px",children:Ye(y??r.error??"")}),ce&&n("div",{class:"pz-sync-ask",role:"region","aria-label":o("penzor.archive.title"),children:[n("h4",{children:o("penzor.archive.title")}),n("p",{children:o("penzor.archive.body",{shelf:ce.shelfName??o("penzor.archive.shelf"),name:ce.name??""})}),n("div",{class:"pz-acts",children:[n("button",{class:"pz-btn",disabled:h,onClick:()=>void pt(()=>Tn(Ut.archiveSeen)),children:o("penzor.archive.ok")}),ce.shelfId&&n("button",{class:"pz-btn pri",onClick:()=>e.openFolder([{id:ce.shelfId,name:ce.shelfName??o("penzor.archive.shelf")},{id:ce.folderId,name:ce.name??"",archive:!0}]),children:o("penzor.archive.open")})]})]}),Le&&n("div",{class:"pz-sync-ask",children:[n("h4",{children:o("penzor.cs.firstTitle")}),n("p",{children:o("penzor.cs.firstBody")})]}),bt&&n("div",{class:"pz-cs-act",children:[n("div",{class:"row1",children:[n(ne,{n:ct(bt)}),n("span",{class:"grow",children:[o(bt.direction==="download"?"penzor.cs.down":"penzor.cs.up",{name:bt.path.slice(bt.path.lastIndexOf("/")+1)}),bt.size!=null&&n("small",{children:[" ",e.b(bt.done)," / ",e.b(bt.size)]})]}),n("button",{class:"pz-btn",disabled:h,onClick:()=>void pt(()=>Tn(Ut.pause,!r.paused)),children:[n(ne,{n:r.paused?"play":"pause"}),o(r.paused?"penzor.rules.resume":"penzor.rules.pause")]})]}),at.kind==="run"&&n("div",{class:"pz-bar",children:n("span",{style:`width:${at.pct}%`})}),Ht.length>1&&n("div",{class:"more",children:o("penzor.cs.waiting",{n:Ht.length-1})})]}),Zt.length>0&&!bt&&n("div",{class:"pz-cs-act is-warn",children:n("div",{class:"row1",children:[n(ne,{n:"alert"}),n("span",{class:"grow",children:[o("penzor.cs.failedN",{n:Zt.length}),n("small",{children:[" ",Zt[0].error??""]})]}),n("button",{class:"pz-btn",disabled:h||r.running,onClick:()=>void pt(()=>Tn(Ut.retry)),children:o("penzor.cs.retry")}),n("button",{class:"pz-btn",onClick:()=>O(!0),children:o("penzor.cs.seeLog")})]})}),n("div",{class:"pz-sync-card",children:[Go.map(D=>D.id==="agents"?it():bn(D.id,D.path)),ke&&n("div",{class:"pz-sync-row",children:[n("div",{class:"pz-sync-main",children:[n("span",{class:"pz-tile",children:n(ne,{n:"folder"})}),n("span",{class:"pz-sync-txt",children:[n("b",{children:o("penzor.cat.others")}),n("small",{children:jt(be,"")!=="off"?n(R,{children:[n(kt,{path:"",name:o("penzor.cat.others")}),n("span",{class:"pz-sep",children:"\xB7"}),n("span",{children:o("penzor.cat.files",{n:r.others.files.toLocaleString(),size:e.b(r.others.size)})})]}):o("penzor.cat.othersDesc")})]})]}),n(Ha,{on:jt(be,"")!=="off",label:o("penzor.cat.others"),disabled:h,onToggle:D=>Ce("",D?"default":"off",o("penzor.cat.others"))})]})]}),n("p",{class:"pz-cs-note",children:o("penzor.cs.note")}),U&&n(R,{children:[n("h3",{class:"pz-cs-sec",children:[o("penzor.cs.log"),n("span",{class:"grow"}),Zt.length>0&&n("button",{class:"pz-btn",disabled:h||r.running,onClick:()=>void pt(()=>Tn(Ut.retry)),children:o("penzor.cs.retry")})]}),n("div",{class:"pz-cs-log",children:r.jobs.length?r.jobs.slice(-30).reverse().map(D=>n("div",{class:"f",children:[n(ne,{n:ct(D)}),n("span",{children:[D.path,D.error&&n("small",{children:[" \xB7 ",D.error]})]}),n("small",{children:[o(`penzor.rules.state.${D.state}`)," \xB7 ",An(D.finishedAt??D.at,e.locale())]})]},D.id)):n("p",{class:"pz-cs-note",children:o("penzor.cs.logEmpty")})}),n("p",{class:"pz-cs-note",children:o("penzor.cs.logNote")})]}),Qt,!Q&&At,L&&n("div",{class:"pz-cs-menu",role:"menu",style:`left:${L.x}px;top:${L.y}px`,children:[n("div",{class:"cap",children:o("penzor.scope.menuTitle",{name:L.name})}),["default",V,...ue.map(D=>`device-${D.id}`)].map((D,le)=>n(R,{children:[le===2&&n("hr",{}),n("button",{class:"it",role:"menuitemradio","aria-checked":jt(be,L.path)===D,onClick:()=>Ce(L.path,D,L.name),children:[n(ne,{n:D==="default"?"cloud":D===V?"laptop":"monitor"}),n("span",{children:[n("b",{children:ot(D)}),le<2&&n("small",{children:o(le===0?"penzor.scope.allDesc":"penzor.scope.selfDesc")})]}),jt(be,L.path)===D?n("span",{class:"tick",children:n(ne,{n:"check"})}):n("span",{})]})]},D)),L.path==="human"&&n("div",{class:"cap",children:o("penzor.scope.calendarNote")}),n("div",{class:"cap",children:o("penzor.scope.menuFoot")})]})]})]})}function py({p:e,snap:t,refresh:o,back:r}){let a=e.t,[i,s]=S(null),[l,c]=S(null),[d,f]=S(!1),[u,p]=S(null),m=i??t.config,g=!!i,h=w=>w==="default"?a("penzor.rules.default"):w==="off"?a("penzor.rules.off"):t.devices.find(C=>"device-"+C.id===w)?.name??`${a("penzor.rules.device")} ${w.slice(7)}`,k=w=>{let C=structuredClone(m);w(C),s(C),c(null),p(null)},y=async w=>{f(!0),p(null);try{await w(),await o()}catch(C){p(Jo(C))}finally{f(!1)}},x=[...new Set(["default",`device-${t.deviceId}`,...t.devices.map(w=>`device-${w.id}`),...m.rules.map(w=>w.target),"off"])];return n("div",{class:"pz-scroll",children:[n("style",{children:Xp}),n("div",{class:"pz-col pz-rules",children:[n("button",{class:"pz-link",onClick:r,children:["\u2190 ",a("penzor.cs.backSimple")]}),n("div",{class:"pz-rule-head",children:n("h1",{class:"pz-h1",children:a("penzor.cs.advanced")})}),n("p",{class:"pz-rule-meta",children:t.deviceName}),u&&n("p",{role:"alert",class:"pz-rule-error",children:u}),n("div",{class:"pz-rule-tools",children:[n("label",{class:"pz-rule-enable",children:[n("input",{type:"checkbox",checked:m.enabled,onChange:w=>k(C=>{C.enabled=w.currentTarget.checked})}),a("penzor.rules.enable")]}),n("button",{class:"pz-btn",onClick:()=>k(w=>w.rules.push({id:`rule-${crypto.randomUUID()}`,source:"",target:"default"})),children:a("penzor.rules.add")})]}),n("div",{class:"pz-rule-table",children:[n("div",{class:"pz-rule-row pz-rule-label",children:[n("span",{children:a("penzor.rules.source")}),n("span",{children:a("penzor.rules.destination")}),n("span",{})]}),m.rules.map((w,C)=>n("div",{class:"pz-rule-row",children:[n("input",{"aria-label":`${a("penzor.rules.source")} ${C+1}`,list:"pz-content-sources",placeholder:"Forsion",value:w.source,onInput:M=>k($=>{$.rules[C].source=M.currentTarget.value,delete $.rules[C].sourceId})}),n("select",{"aria-label":`${a("penzor.rules.destination")} ${C+1}`,value:w.target,onChange:M=>k($=>{$.rules[C].target=M.currentTarget.value}),children:x.map(M=>n("option",{value:M,children:h(M)},M))}),n("button",{class:"pz-btn","aria-label":`${a("penzor.rules.remove")} ${C+1}`,onClick:()=>k(M=>{M.rules.splice(C,1)}),children:"\xD7"})]},w.id))]}),n("datalist",{id:"pz-content-sources",children:t.sources.filter(w=>w.kind==="folder").map(w=>n("option",{value:w.path},w.path))}),n("p",{class:"pz-rule-note",children:[a("penzor.rules.inherit"),n("br",{}),a("penzor.rules.namespace"),n("br",{}),a("penzor.rules.human")]}),n("div",{class:"pz-rule-actions",children:[g&&n("button",{class:"pz-btn",onClick:()=>{s(null),c(null)},children:a("penzor.cancel")}),n("button",{class:"pz-btn pri",disabled:d||t.running,onClick:()=>void y(async()=>c(await Tn(Ut.preview,m))),children:a("penzor.rules.preview")})]}),l&&n("div",{class:"pz-rule-preview",role:"region","aria-label":a("penzor.rules.previewTitle"),children:[n("h2",{children:a("penzor.rules.previewTitle")}),n("p",{children:a("penzor.rules.previewCounts",{up:l.upload,down:l.download,conflicts:l.conflicts})}),n("p",{class:"pz-rule-note",children:a("penzor.rules.retain")}),n("div",{class:"pz-rule-actions",children:[n("button",{class:"pz-btn",onClick:()=>c(null),children:a("penzor.rules.back")}),n("button",{class:"pz-btn pri",disabled:d,onClick:()=>void y(async()=>{await Tn(Ut.apply,l.token),s(null),c(null)}),children:a("penzor.rules.apply")})]})]})]})]})}function nl(e){let[,t]=S(0);Y(()=>{let o=e.subscribe(()=>t(r=>r+1));return t(r=>r+1),o},[e])}function Er(e){return n("div",{ref:e.rootRef,class:`${e.side?"pz-side":"pz"}${e.extra?` ${e.extra}`:""}`,lang:e.p.locale()==="zh"?"zh-CN":"en",...e.on,children:[n("style",{children:Rp}),e.children]})}var Xo=({pct:e,warn:t})=>n("div",{class:`pz-bar${t?" is-low":""}`,children:n("span",{style:{width:`${Math.max(0,Math.min(100,e)).toFixed(1)}%`}})});function tf({p:e}){nl(e);let t=ie(null),o=ie(null);Y(()=>{e.enter(),e.refresh(),wo(e.loc())&&e.ctx.closeView?.("penzor-info",{collapse:!0});let p=t.current;if(!p||typeof IntersectionObserver>"u")return;let m=!0;e.setVisible(!0);let g=new IntersectionObserver(h=>{let k=h.some(y=>y.isIntersecting);k&&!m&&(e.enter(),e.refresh()),m=k,e.setVisible(k)});return g.observe(p),()=>{g.disconnect(),e.setVisible(!1)}},[e]);let[r,a]=S(null),i=p=>Array.from(p.dataTransfer?.types??[]).includes("Files"),s=p=>{let m=p.target?.closest?.("tr[data-dir-id]");return m?{id:m.dataset.dirId,name:m.dataset.dirName??""}:null},l=()=>e.appStack()[e.appStack().length-1]?.name??e.t("penzor.drive"),c=e.canWrite()&&e.auth()==="in"?{onDragOver:p=>{if(!i(p))return;p.preventDefault(),p.stopPropagation(),p.dataTransfer&&(p.dataTransfer.dropEffect="copy");let m=s(p),g=m?.name||l();(r?.place!==g||r?.target?.id!==m?.id)&&a({place:g,target:m})},onDragLeave:p=>{t.current?.contains(p.relatedTarget)||a(null)},onDrop:p=>{if(!i(p))return;p.preventDefault(),p.stopPropagation();let m=s(p);a(null);let g=te().getPathForFile;if(!g){p.dataTransfer&&e.upload(Up(p.dataTransfer),m);return}let h=Array.from(p.dataTransfer?.files??[]).map(k=>{try{return g(k)}catch{return""}}).filter(Boolean);e.upload(h,m)}}:{};Y(()=>{e.canWrite()||a(null)},[e.canWrite()]);let d=e.t,f=e.auth(),u;return f==="out"?u=n(nf,{p:e}):e.loc().kind==="sync-home"?u=n(Kp,{p:e,legacy:n(my,{p:e})}):e.snap()?e.error()?u=n("div",{class:"pz-scroll",children:n("p",{class:"pz-note",children:e.error()})}):e.loc().kind==="overview"?u=n(by,{p:e,upload:()=>{e.go("app:penzor"),o.current?.click()}}):u=n(yy,{p:e,dropDir:r?.target?.id??null}):u=n("div",{class:"pz-scroll",children:n("p",{class:"pz-note",children:e.error()??d("penzor.loading")})}),n(Er,{p:e,rootRef:t,extra:r?"pz-drop":"",on:c,children:[n("input",{class:"pz-root-upload",ref:o,type:"file",multiple:!0,hidden:!0,onChange:p=>{let m=p.currentTarget,g=te().getPathForFile,h=g?Array.from(m.files??[]).map(k=>g(k)).filter(Boolean):Gs(Array.from(m.files??[]),!1);e.go("app:penzor"),e.upload(h),m.value=""}}),u,r&&n("div",{class:"pz-dropbar",children:n("span",{children:[n(ne,{n:"upload"}),d("penzor.drop.to",{place:r.place})]})}),e.menu()&&n(_y,{p:e}),!tl&&n(pf,{p:e})]})}var fy={dropbox:"Dropbox",s3:"S3",webdav:"WebDAV"};function Qs({on:e,disabled:t,label:o,title:r,onToggle:a}){return n("button",{type:"button",role:"switch",class:`settings-switch${e?" active":""}`,"aria-checked":e,"aria-label":o,title:r,disabled:t,onClick:i=>{i.stopPropagation(),a(!e)},children:n("span",{})})}var el=({tone:e,text:t,title:o})=>n("span",{class:`pz-sync-state is-${e}`,title:o,children:[e!=="off"&&n("i",{}),t]});function my({p:e}){let t=e.t,o=e.syncState(),[r,a]=S(!1);if(!o)return n("div",{class:"pz-scroll",children:n("p",{class:"pz-note",children:t("penzor.loading")})});if(!o.signedIn)return n(nf,{p:e});let i=e.snap(),s=o.notes,l=t("penzor.ledger.sync"),c=s.maxBytes??i?.sync?.maxBytes??0,d=i?.sync?.maxFileBytes||50*1024*1024,f=s.vault?i?.sync?.vaults.find(_=>_.vault===s.vault)??null:null,u=Sp(o,c),p=s.on?s.last?.skippedLarge??0:0,m=s.rootName?t("penzor.sync.notesNamed",{name:s.rootName}):t("penzor.sync.notesPlain"),g=()=>e.openSync(),h=()=>{if(s.pending)return{tone:"wait",text:t("penzor.sync.waiting")};if(!s.on)return{tone:"off",text:t("penzor.sync.off")};let _=So(o);if(_!=null)return{tone:"ok",text:_>0?t("penzor.sync.running",{pct:Math.round(_*100)}):t("penzor.sync.runningPlain")};if(u)return{tone:"warn",text:t("penzor.sync.overQuota")};if(_r(o))return{tone:"warn",text:t("penzor.sync.failed")};if(s.backend==="folder")return{tone:"ok",text:t("penzor.sync.toFolder")};let L=fy[s.backend];return L?{tone:"ok",text:t("penzor.sync.to",{name:L})}:s.last?{tone:"ok",text:s.localBytes!=null?t("penzor.sync.doneSize",{size:e.b(s.localBytes)}):t("penzor.sync.done")}:{tone:"ok",text:t("penzor.sync.firstPending")}},k={tone:"off",text:t("penzor.sync.off")},y=(_,L)=>L?`${_} \xB7 ${t("penzor.sync.metaLast",{time:An(L,e.locale())})}`:_,x=()=>{let _=o.agents;if(!_.on)return k;if(_.running)return{tone:"ok",text:t("penzor.sync.runningPlain")};let L=t("penzor.sync.agentsN",{n:_.count});return _.last&&!_.last.ok?{tone:"warn",text:t("penzor.sync.failed"),title:_.last.error}:_.last&&_.last.conflicts>0?{tone:"warn",text:t("penzor.sync.conflictsN",{n:_.last.conflicts}),title:t("penzor.sync.conflictsHint")}:{tone:"ok",text:y(L,_.last?.at)}},w=()=>{let _=o.plugins;return _.on?(_.pending??0)>0?{tone:"wait",text:t("penzor.sync.pluginsPending",{n:_.pending})}:{tone:"ok",text:y(t("penzor.sync.pluginsN",{n:_.count}),_.lastAt)}:k},C=_=>L=>{e.setSync(_,L)},M=s.available===!1&&!s.on&&(s.backend==="off"||s.backend==="penzor"),$=[e.thisDevice()?t("penzor.sync.metaDevice",{name:e.thisDevice()}):null,s.on?s.last?t("penzor.sync.metaLast",{time:An(s.last.at,e.locale())}):t("penzor.sync.metaNever"):null,s.on&&s.backend!=="off"?$s(s,e.locale()):null].filter(_=>!!_),U=h(),O=f?[...new Set([...f.devices,...f.device?[f.device]:[]])]:[],j=i?.ama?i.ama.reduce((_,L)=>_+L.sizeBytes,0):null;return n("div",{class:"pz-scroll",children:n("div",{class:"pz-col",children:[n(Tr,{p:e}),n("div",{class:"pz-title pz-sync-head",children:[n("h1",{class:"pz-h1",children:t("penzor.sync.title")}),n("span",{class:"pz-badge",children:[n(ne,{n:"check"}),Ap(o,e.locale())]})]}),$.length>0&&n("div",{class:"pz-meta",children:$.map(_=>n("span",{children:_},_))}),s.pending&&n(gy,{p:e,s:o}),u&&n("div",{class:"pz-sync-ask is-warn",role:"region",children:[n("h4",{children:s.localBytes!=null&&c>0?t("penzor.sync.quotaTitle",{size:e.b(s.localBytes),ledger:l,max:e.b(c)}):t("penzor.sync.quotaTitlePlain",{ledger:l})}),n("p",{children:[t("penzor.sync.quotaBody"),p>0&&` ${t("penzor.sync.quotaLarge",{size:e.b(d),n:p})}`]}),n("div",{class:"pz-acts",children:[n("button",{class:"pz-btn pri",onClick:()=>void Pn("membership").then(_=>{_||e.ctx.app?.notify?.(t("err.openFailed"))}),children:t("member.upgrade")}),f&&n("button",{class:"pz-btn",onClick:()=>e.go(`sync:${f.vault}`),children:t("penzor.sync.quotaSee")})]})]}),n("div",{class:"pz-sync-card",children:[n("div",{class:`pz-sync-row is-click${r?" is-open":""}`,children:[n("button",{type:"button",class:"pz-sync-main","aria-expanded":r,onClick:()=>a(!r),children:[n("span",{class:"pz-tile",children:n(ne,{n:"notebook"})}),n("span",{class:"pz-sync-txt",children:[n("b",{children:m}),n("small",{children:t("penzor.sync.notesDesc")})]}),n(el,{...U})]}),n(Qs,{on:s.on&&!s.pending,label:m,disabled:!!s.pending||M||e.syncBusy("notes"),title:s.pending?t("penzor.sync.decideAbove"):void 0,onToggle:C("notes")})]}),r&&n("div",{class:"pz-sync-sub",children:[n("div",{class:"kv",children:[n("span",{children:t("penzor.sync.kvSchedule")}),n("span",{children:$s(s,e.locale())}),n("button",{class:"pz-link",onClick:g,children:t("penzor.sync.change")})]}),n("div",{class:"kv",children:[n("span",{children:t("penzor.sync.kvDirection")}),n("span",{children:t(`penzor.sync.dir.${s.direction}`)}),n("button",{class:"pz-link",onClick:g,children:t("penzor.sync.change")})]}),p>0&&n("div",{class:"kv",children:[n("span",{children:t("penzor.sync.kvSkipped")}),n("span",{children:t("penzor.sync.skippedN",{n:p,size:e.b(d)})}),n("span",{})]}),s.backend==="penzor"&&s.vault&&n("div",{class:"kv",children:[n("span",{children:t("penzor.sync.kvWhere")}),n("span",{children:i?.sync&&c>0?t("penzor.sync.whereUsed",{ledger:l,vault:s.vault,used:e.b(i.sync.usedBytes),max:e.b(c)}):t("penzor.sync.where",{ledger:l,vault:s.vault})}),f?n("button",{class:"pz-link",onClick:()=>e.go(`sync:${f.vault}`),children:t("penzor.sync.open")}):n("span",{})]})]}),n("div",{class:"pz-sync-row",children:[n("div",{class:"pz-sync-main",children:[n("span",{class:"pz-tile",children:n(ne,{n:"bot"})}),n("span",{class:"pz-sync-txt",children:[n("b",{children:t("penzor.sync.agents")}),n("small",{children:t("penzor.sync.agentsDesc")})]}),n(el,{...x()})]}),n(Qs,{on:o.agents.on,label:t("penzor.sync.agents"),disabled:e.syncBusy("agents"),onToggle:C("agents")})]}),n("div",{class:"pz-sync-row",children:[n("div",{class:"pz-sync-main",children:[n("span",{class:"pz-tile",children:n(ne,{n:"puzzle"})}),n("span",{class:"pz-sync-txt",children:[n("b",{children:t("penzor.sync.plugins")}),n("small",{children:t("penzor.sync.pluginsDesc")})]}),n(el,{...w()})]}),n(Qs,{on:o.plugins.on,label:t("penzor.sync.plugins"),disabled:e.syncBusy("plugins"),onToggle:C("plugins")})]})]}),n("div",{class:"pz-h3",children:t("penzor.sync.devicesTitle")}),i?O.length===0?n("p",{class:"pz-sync-none",children:t("penzor.sync.noDevices")}):n("div",{class:"pz-rows pz-sync-dev",children:O.map(_=>n("div",{class:"row",children:[n(ne,{n:"laptop"}),n("span",{class:"t",children:[_,_===e.thisDevice()&&n("em",{children:t("penzor.sync.thisOne")})]}),n("span",{class:"s",children:f?.device===_&&f.updatedAt?t("penzor.sync.lastWrite",{time:An(Date.parse(f.updatedAt),e.locale())}):""})]},_))}):n("p",{class:"pz-sync-none",children:t("penzor.loading")}),n("div",{class:"pz-h3",children:t("penzor.sync.phoneTitle")}),n("div",{class:"pz-tip",children:[n(ne,{n:"info"}),n("span",{children:j!=null?t("penzor.sync.phoneTip",{size:e.b(j)}):t("penzor.sync.phoneTipPlain")})]}),n("p",{class:"pz-note",children:[t("penzor.sync.foot"),n("button",{class:"pz-link",onClick:g,children:t("penzor.sync.footLink")})]})]})})}function gy({p:e,s:t}){let o=e.t,r=t.notes.pending,a=e.syncBusy("resolve"),i=new Date,s=o("penzor.sync.backupName",{name:t.notes.rootName??o("penzor.sync.notesPlain"),date:`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`}),l=r.cloudDevice?o("penzor.sync.askCloud",{device:r.cloudDevice,files:r.cloudFiles.toLocaleString(),size:e.b(r.cloudBytes)}):o("penzor.sync.askCloudNoDevice",{files:r.cloudFiles.toLocaleString(),size:e.b(r.cloudBytes)});return n("div",{class:"pz-sync-ask",role:"region","aria-label":o("penzor.sync.askTitle"),children:[n("h4",{children:o("penzor.sync.askTitle")}),n("p",{children:[l," ",o("penzor.sync.askLocal",{local:r.localOnly.toLocaleString(),conflicts:r.conflicts.toLocaleString()})]}),e.confirmCloud()?n("div",{class:"pz-confirm",children:[n("span",{children:o("penzor.sync.askConfirm",{backup:s})}),n("button",{class:"pz-btn pri",disabled:a,onClick:()=>void e.resolveNotes("cloud"),children:o("penzor.sync.askConfirmGo")}),n("button",{class:"pz-btn",disabled:a,onClick:()=>e.setConfirmCloud(!1),children:o("penzor.cancel")})]}):n("div",{class:"pz-acts",children:[n("button",{class:"pz-btn pri",disabled:a,onClick:()=>void e.resolveNotes("merge"),children:o("penzor.sync.askMerge")}),n("button",{class:"pz-btn",disabled:a,onClick:()=>e.setConfirmCloud(!0),children:o("penzor.sync.askCloudBtn")}),n("button",{class:"pz-btn",disabled:a,onClick:()=>void e.resolveNotes("skip"),children:o("penzor.sync.askSkip")})]}),n("p",{class:"pz-sync-explain",children:o("penzor.sync.askExplain",{backup:s})})]})}function nf({p:e}){let t=e.t;return n("div",{class:"pz-scroll",children:n("div",{class:"pz-empty",children:[n("span",{class:"ic",children:n(ne,{n:"cloud"})}),n("h2",{children:t("penzor.out.title")}),n("p",{children:t("penzor.out.lead")}),n("button",{class:"pz-btn pri",onClick:()=>e.signIn(),children:[n(ne,{n:"login"}),t("penzor.out.signIn")]})]})})}function hy({p:e}){let t=e.t,o=e.snap()?.ledger,r=e.snap()?.ledgerStale,a=!!o?.complete&&o.usage.usedBytes!=null;return n("div",{class:"pz-unified-quota",role:"status",children:[n("div",{class:"pz-total",children:[n("b",{children:a?e.b(o.usage.usedBytes):"\u2014"}),n("span",{children:o?t("penzor.ofMax",{max:e.b(o.quota.limitBytes)}):t("penzor.unified.unavailable")})]}),a&&(o.state==="warn"||o.state==="over"?n(Xo,{pct:o.quota.limitBytes>0?o.usage.usedBytes/o.quota.limitBytes*100:100,warn:!0}):n(vy,{p:e})),n("p",{class:"pz-note",children:r?t("penzor.unified.stale"):a?o.enforcement?t("penzor.unified.enforced"):o.phase==="grace"?t("penzor.unified.grace",{date:Wt(Math.max(Date.parse(o.rollout?.graceUntil??""),Date.parse(o.rollout?.compatibilityUntil??"")||0),e.locale())}):o.state==="over"?t("penzor.unified.over"):o.state==="warn"?t("penzor.unified.warn"):`${t("penzor.unified.notice")} \xB7 ${t("penzor.unified.accounting",{trash:e.b(o.usage.trashBytes)})}`:t("penzor.unified.incomplete")}),o?.rollout&&!r&&n("div",{class:"pz-tip",children:[n("p",{children:t("penzor.unified.rolloutPolicy")}),!o.rollout.acknowledgedAt&&n("button",{class:"pz-btn",onClick:()=>void e.acknowledgeStorageNotice(),children:t("penzor.unified.ack")})]})]})}var qa=(e,t)=>t>0&&e/t>=.8;function by({p:e,upload:t}){let o=e.t,r=e.snap(),a=r?.ledger,i=e.content(),s=Ds(r,i),l=y=>{let x=a?.sources.find(w=>w.id===y);return x?.status==="ready"?x.liveBytes+x.trashBytes:null},c=y=>{let x=l(y);return x==null?o("penzor.unified.unavailable"):e.b(x)},d=y=>()=>e.go(y),f=(y,x,w,C,M,$="folder")=>n("button",{class:`row${M?" is-warn":""}`,onClick:d(y),children:[n(ne,{n:$}),n("span",{class:"t",children:[x,n("em",{children:M??w})]}),n("span",{class:"s",children:C}),n(ne,{n:"right"})]},y),u=r?.apps&&qa(r.apps.used,r.apps.quota)?o("penzor.quota.sourceLimit",{max:e.b(r.apps.quota),used:e.b(r.apps.used)}):void 0,p=r?.sync&&qa(r.sync.usedBytes,r.sync.maxBytes)?o("penzor.quota.sourceLimit",{max:e.b(r.sync.maxBytes),used:e.b(r.sync.usedBytes)}):void 0,m=i?Cn(i):null,g=i?.deviceId,h=(r?.contentDevices??[]).filter(y=>y.id!==g),k=f("source:sync",o(s?"penzor.tree.legacy":"penzor.ledger.sync"),o(s?"penzor.ov.legacy":"penzor.ov.sync"),c("sync"),p);return n("div",{class:"pz-scroll",children:n("div",{class:"pz-col",children:[n(Tr,{p:e}),n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:o("penzor.drive")}),n("button",{class:"pz-btn",onClick:t,children:[n(ne,{n:"upload"}),o("penzor.unified.uploadTo")]})]}),n(hy,{p:e}),n("div",{class:"pz-ov-group",children:o("penzor.ov.mine")}),n("div",{class:"pz-rows",children:[f("app:penzor",o("penzor.uploads"),o("penzor.ov.uploads"),c("uploads")),Rs(a)&&f("source:market",o("penzor.source.market"),o("penzor.ov.market"),c("market"),void 0,"store")]}),n("div",{class:"pz-ov-group",children:o("penzor.ov.synced")}),n("div",{class:"pz-rows",children:s&&r?.contentDevices?n(R,{children:[f("content:default",o("penzor.scope.all"),m?.kind==="ok"&&m.at?o("penzor.ov.allLast",{time:An(m.at,e.locale())}):o("penzor.ov.all"),""),g&&f(`content:device-${g}`,o("penzor.tree.thisBackup"),o("penzor.ov.self"),""),h.map(y=>f(`content:device-${y.id}`,y.name,o("penzor.ov.device"),""))]}):n(R,{children:[k,f("source:agents",o("penzor.source.agents"),o("penzor.ov.agents"),c("agents")),f("source:profile",o("penzor.source.profile"),o("penzor.ov.profile"),c("profile"))]})}),n("div",{class:"pz-ov-group",children:o("penzor.tree.byApp")}),n("div",{class:"pz-rows",children:[f("source:ama",o("penzor.ledger.ama"),o("penzor.ov.ama"),c("ama")),f("source:apps",o("penzor.ledger.apps"),o("penzor.ov.apps"),c("apps"),u),f("source:plugins",o("penzor.source.plugins"),o("penzor.ov.plugins"),c("plugins")),f("exports",o("penzor.ledger.exports"),o("penzor.ov.exports"),c("exports"))]}),s&&n(R,{children:[n("div",{class:"pz-ov-group",children:o("penzor.ov.stale")}),n("div",{class:"pz-rows is-stale",children:k})]}),n("p",{class:"pz-note",children:o("penzor.unified.policy")})]})})}function vy({p:e}){let t=e.snap()?.ledger;if(!t?.complete||t.usage.usedBytes==null||t.quota.limitBytes<=0)return null;let o=e.t,r=s=>{let l=t.sources.find(c=>c.id===s);return l?.status==="ready"?l.liveBytes+l.trashBytes:0},a=[[o("penzor.ov.segNotes"),r("ama")],[o("penzor.ledger.apps"),r("apps")],[o("penzor.ov.segSync"),r("sync")],[o("penzor.uploads"),r("uploads")]];a.push([o("penzor.ov.segOther"),Math.max(0,t.usage.usedBytes-a.reduce((s,[,l])=>s+l,0))]);let i=a.filter(([,s])=>s>0);return n(R,{children:[n("div",{class:"pz-seg",role:"img","aria-label":i.map(([s,l])=>`${s} ${e.b(l)}`).join(", "),children:i.map(([s,l],c)=>n("span",{class:`c${c}`,style:{width:`${Math.max(.6,l/t.quota.limitBytes*100)}%`}},s))}),n("div",{class:"pz-legend",children:i.map(([s,l],c)=>n("span",{children:[n("i",{class:`c${c}`}),s," ",n("b",{children:e.b(l)})]},s))})]})}function yy({p:e,dropDir:t}){let o=e.t,r=e.loc(),a=e.snap(),i=e.rows(),[s,l]=S(!1),[c,d]=S(null),f=ie(null),u=ie(null),p=ie(null),m=e.canWrite(),g=e.selection();Y(()=>(e.picker.files=()=>f.current?.click(),e.picker.folder=()=>u.current?.click(),()=>{e.picker.files=void 0,e.picker.folder=void 0}),[e]);let h=(v,A)=>{let N=v.currentTarget,X=te().getPathForFile,Q=Array.from(N.files??[]);if(!X){N.value="",e.upload(Gs(Q,A));return}let H=Q.map(ge=>{try{return X(ge)}catch{return""}}),oe=H.filter(Boolean);if(A){let ge=new Set;Q.forEach((He,pe)=>{let Le=He.webkitRelativePath??"",Qe=H[pe];!Le||!Qe||Qe.length<Le.length||ge.add(Qe.slice(0,Qe.length-Le.length)+Le.split("/")[0])}),oe=[...ge]}N.value="",e.upload(oe)},k=(v,A)=>{e.select(A,{toggle:v.metaKey||v.ctrlKey,range:v.shiftKey}),p.current?.focus({preventScroll:!0})},y=v=>{if(v.target?.tagName!=="INPUT"){if((v.metaKey||v.ctrlKey)&&v.key.toLowerCase()==="a"&&e.canMulti())v.preventDefault(),e.selectAll();else if(v.key==="Escape"&&g.length>1){v.preventDefault();let A=e.selected();e.select(A)}}},x=r.kind==="sync"?o(e.content()?.config.enabled?"penzor.tree.legacy":"penzor.ledger.sync"):r.kind==="ama"?o("penzor.ledger.ama"):r.kind==="app"&&!e.canWrite()?o("penzor.ledger.apps"):null,w=r.kind==="content"?of(e,r.namespace):r.kind==="sync"?r.vault:r.kind==="ama"?a.ama?.find(v=>v.id===r.vaultId)?.name??"":r.kind==="app"?e.appLabel(r.appId):r.kind==="source"?o(Sr[r.source]):r.kind==="exports"?o("penzor.ledger.exports"):o("penzor.trash"),C=r.kind==="app"?e.appStack().map(v=>v.name):e.path()?e.path().split("/"):[],M=[...x?[{label:x,depth:null}]:[],{label:w,depth:0},...C.map((v,A)=>({label:v,depth:A+1}))],$=["mtime","size","name"],U=()=>e.setSort($[($.indexOf(e.sort())+1)%$.length]),O=r.kind==="sync"?o("penzor.col.device"):r.kind==="trash"?o("penzor.col.origin"):r.kind==="exports"?o("penzor.col.app"):null,j=r.kind==="trash"?o("penzor.col.deleted"):o("penzor.col.mtime"),_=()=>{if(r.kind==="content"){let A=e.content()?Cn(e.content()):null,N=e.content()?.deviceId,X=r.namespace==="default"?o("penzor.content.noteAll"):r.namespace===`device-${N}`?o("penzor.content.noteSelf"):o("penzor.content.noteDevice",{name:w});return n(R,{children:[n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:w}),n("span",{class:"pz-badge",children:[n(ne,{n:"cloud"}),A?.kind==="ok"&&A.at?o("penzor.content.badgeLast",{time:An(A.at,e.locale())}):o("penzor.content.badge")]})]}),n("p",{class:"pz-note",children:X})]})}if(r.kind==="source"&&r.source==="market"){let A=a.ledger?.sources.find(X=>X.id==="market"),N=A?.status==="ready";return n(R,{children:[n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:o("penzor.source.market")}),n("span",{class:"pz-badge",children:[n(ne,{n:"store"}),o("penzor.market.badge")]})]}),N&&n("div",{class:"pz-meta",children:[n("span",{children:o("penzor.market.meta",{size:e.b(A.liveBytes+A.trashBytes),n:(A.fileCount??0).toLocaleString()})}),(A.historyBytesExcluded??0)>0&&n("span",{children:o("penzor.market.history",{size:e.b(A.historyBytesExcluded)})})]}),n("p",{class:"pz-note",children:o("penzor.source.marketNote")})]})}if(r.kind==="source")return n(R,{children:[n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:o(Sr[r.source])}),n("span",{class:"pz-badge",children:[n(ne,{n:"lock"}),o("penzor.unified.readonly")]})]}),n("p",{class:"pz-note",children:o(r.source==="plugins"?"penzor.source.pluginNote":"penzor.source.readonly")})]});if(r.kind==="sync"){let A=a.sync?.vaults.find(Q=>Q.vault===r.vault);if(!A)return null;let N=!!e.thisDevice()&&A.devices.includes(e.thisDevice()),X=a.sync;return n(R,{children:[n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:A.vault}),N&&!e.content()?.config.enabled&&n("span",{class:"pz-badge",children:[n(ne,{n:"refresh"}),o("penzor.sync.thisDevice")]})]}),e.content()?.config.enabled&&n("div",{class:"pz-legacy",children:[n(ne,{n:"history"}),n("span",{children:[o("penzor.legacy.title"),n("small",{children:o("penzor.legacy.body")})]}),n("button",{class:"pz-btn",onClick:()=>e.go("content:default"),children:o("penzor.legacy.go")})]}),n("div",{class:"pz-meta",children:[n("span",{children:o("penzor.meta.files",{size:e.b(A.bytes),n:A.files.toLocaleString()})}),A.updatedAt&&n("span",{children:A.device?o("penzor.sync.last",{time:Wt(Date.parse(A.updatedAt),e.locale()),device:A.device}):o("penzor.sync.lastNoDevice",{time:Wt(Date.parse(A.updatedAt),e.locale())})}),A.devices.length>0&&n("span",{children:o("penzor.sync.devices",{n:A.devices.length})})]}),qa(X.usedBytes,X.maxBytes)&&n("div",{class:"pz-meter",children:[n(Xo,{pct:X.usedBytes/X.maxBytes*100,warn:X.usedBytes/X.maxBytes>=.9}),n("span",{children:o("penzor.quota.sourceLimit",{max:e.b(X.maxBytes),used:e.b(X.usedBytes)})})]})]})}if(r.kind==="ama"){let A=a.ama?.find(N=>N.id===r.vaultId);return n(R,{children:[n("div",{class:"pz-title",children:[n("h1",{class:"pz-h1",children:A?.name}),n("span",{class:"pz-badge",children:[n(ne,{n:"cloud"}),"Amadeus Cloud"]})]}),n("div",{class:"pz-meta",children:[n("span",{children:e.b(A?.sizeBytes??0)}),n("span",{children:o("penzor.unified.counted")})]})]})}if(r.kind==="app"){let A=a.apps?.apps.find(X=>X.appId===r.appId),N=a.apps;return n(R,{children:[n("div",{class:"pz-title",children:n("h1",{class:"pz-h1",children:e.appLabel(r.appId)})}),n("div",{class:"pz-meta",children:[n("span",{children:o("penzor.meta.files",{size:e.b(A?.bytes??0),n:(A?.files??0).toLocaleString()})}),!e.canWrite()&&n("span",{children:o("penzor.apps.by",{app:e.appLabel(r.appId)})})]}),e.canWrite()&&n("div",{class:"pz-meta",children:a.ledger?.complete&&a.ledger.usage.usedBytes!=null?n(R,{children:[n("span",{children:o("penzor.drive.total",{used:e.b(a.ledger.usage.usedBytes),max:e.b(a.ledger.quota.limitBytes)})}),n("button",{class:"pz-link",onClick:()=>e.go("ov"),children:o("penzor.drive.seeAll")})]}):n("span",{children:o("penzor.unified.unavailable")})}),N&&qa(N.used,N.quota)&&n("div",{class:"pz-meter",children:[n(Xo,{pct:N.used/N.quota*100,warn:N.used/N.quota>=.9}),n("span",{children:o("penzor.quota.sourceLimit",{max:e.b(N.quota),used:e.b(N.used)})})]})]})}if(r.kind==="exports")return n(R,{children:[n("div",{class:"pz-title",children:n("h1",{class:"pz-h1",children:o("penzor.ledger.exports")})}),n("div",{class:"pz-meta",children:[n("span",{children:o("penzor.meta.files",{size:e.b(a.exports?.totalBytes??0),n:(a.exports?.total??0).toLocaleString()})}),n("span",{children:o("penzor.card.expFoot")})]})]});let v=i??[];return n(R,{children:[n("div",{class:"pz-title",children:n("h1",{class:"pz-h1",children:o("penzor.trash")})}),n("div",{class:"pz-meta",children:[n("span",{children:o("penzor.trash.meta",{n:v.length,size:e.b((a.trash??[]).reduce((A,N)=>A+(Number(N.fileSize)||0),0))})}),n("span",{children:o("penzor.trash.note")})]}),e.confirmEmpty()&&n("div",{class:"pz-confirm",children:[n("span",{children:o("penzor.confirm.empty",{n:v.length})}),n("button",{class:"pz-btn danger solid",onClick:()=>void e.emptyTrash(),children:o("penzor.trash.emptyBtn")}),n("button",{class:"pz-btn",onClick:()=>e.setConfirmEmpty(!1),children:o("penzor.cancel")})]})]})},L=e.selected(),B=g.length>1,P=g.reduce((v,A)=>v+(A.dir?0:A.size),0),J=e.txRows();return n(R,{children:[n("div",{class:"pz-top",children:[n("nav",{class:"pz-crumb",children:M.map((v,A)=>{let N=A===M.length-1,X=N?n("b",{children:v.label}):v.depth==null?n("span",{children:v.label}):n("button",{onClick:()=>e.up(v.depth),children:v.label});return n("span",{style:{display:"contents"},children:[X,!N&&n("i",{children:"\u203A"})]},A)})}),n("span",{class:"pz-sp"}),B?n(R,{children:[n("span",{class:"pz-selbar",children:o("penzor.sel.bar",{n:g.length,size:e.b(P)})}),g.some(v=>!v.dir)&&n("button",{class:"pz-btn",onClick:()=>void e.downloadMany(g),children:[n(ne,{n:"download"}),o("penzor.act.download")]}),g.every(e.canManageRow)&&n("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"move",at:[]}),children:[n(ne,{n:"move"}),o("penzor.act.move")]}),g.every(e.canManageRow)&&n("button",{class:"pz-btn danger",onClick:()=>void e.trashMany(g),children:[n(ne,{n:"trash"}),o("penzor.act.trash")]}),n("button",{class:"pz-ibtn",title:o("penzor.act.clearSel"),onClick:()=>e.select(L),children:n(ne,{n:"x"})})]}):n(R,{children:[C.length>0&&n("button",{class:"pz-ibtn",title:o("penzor.act.up"),onClick:()=>e.up(),children:n(ne,{n:"up"})}),r.kind==="source"&&(r.source==="agents"||r.source==="profile")&&n("button",{class:"pz-chip",onClick:()=>void e.ctx.app?.openSpace?.(r.source==="agents"?"agents":"calendar").then(v=>{v||e.ctx.app?.notify?.(o("penzor.source.entryUnavailable"))}),children:o(r.source==="agents"?"penzor.source.openAgents":"penzor.source.openCalendar")}),r.kind==="ama"&&n("button",{class:"pz-chip",onClick:()=>void e.ctx.app?.openSpace?.("amadeus"),children:[n(ne,{n:"book"}),o("penzor.ama.open")]}),r.kind==="app"&&r.appId==="connect"&&e.ctx.app?.openSettings&&n("button",{class:"pz-chip",onClick:()=>e.ctx.app?.openSettings?.(Mn("webpages")),children:[n(ne,{n:"globe"}),o("penzor.hosted.open")]}),r.kind==="trash"&&e.canEmptyTrash()&&n("button",{class:"pz-btn danger",onClick:()=>e.setConfirmEmpty(!0),children:[n(ne,{n:"trash"}),o("penzor.trash.emptyBtn")]}),m&&n("span",{class:"pz-split",children:[n("button",{class:"pz-btn pri",onClick:()=>e.picker.files?.(),children:[n(ne,{n:"upload"}),o("penzor.act.upload")]}),n("button",{class:"pz-btn pri more",title:o("penzor.act.uploadMore"),"aria-label":o("penzor.act.uploadMore"),onClick:v=>{let A=v.currentTarget.getBoundingClientRect();d({x:A.right,y:A.bottom+4})},children:n(ne,{n:"down"})})]}),m&&n("button",{class:"pz-ibtn",title:o("penzor.act.newFolder"),onClick:()=>e.startNewFolder(),children:n(ne,{n:"folder-plus"})}),s||e.query()?n("input",{class:"pz-find",placeholder:o("penzor.search"),value:e.query(),autoFocus:!0,onInput:v=>e.setQuery(v.currentTarget.value),onKeyDown:v=>{v.key==="Escape"&&(e.setQuery(""),l(!1))},onBlur:()=>{e.query()||l(!1)}}):n("button",{class:"pz-ibtn",title:o("penzor.search"),onClick:()=>l(!0),children:n(ne,{n:"search"})}),n("button",{class:"pz-chip",onClick:U,children:[r.kind==="trash"&&e.sort()==="mtime"?o("penzor.sort.deleted"):o(`penzor.sort.${e.sort()}`),n(ne,{n:"down"})]})]})]}),m&&n(R,{children:[n("input",{ref:f,type:"file",multiple:!0,hidden:!0,onChange:v=>h(v,!1)}),n("input",{ref:u,type:"file",hidden:!0,webkitdirectory:!0,onChange:v=>h(v,!0)})]}),c&&n(sf,{x:c.x,y:c.y,alignRight:!0,onClose:()=>d(null),items:[{id:"files",label:o("penzor.act.uploadFiles"),icon:"upload",run:()=>e.picker.files?.()},{id:"folder",label:o("penzor.act.uploadFolder"),icon:"folder",run:()=>e.picker.folder?.()}]}),n("div",{class:"pz-scroll",ref:p,tabIndex:-1,onKeyDown:y,onContextMenu:v=>{!m||v.target.closest("tr")||(v.preventDefault(),e.openMenu(v.clientX,v.clientY,null))},children:n("div",{class:"pz-col",children:[_(),e.rowsError()?n("p",{class:"pz-note",children:o("penzor.err",{reason:e.rowsError()})}):i?i.length===0&&!J.length&&e.newFolder()==null?n("p",{class:"pz-note",children:e.query()?o("penzor.noMatch",{q:e.query()}):m&&!C.length?o("penzor.drive.empty"):o("penzor.folderEmpty")}):r.kind==="source"&&r.source==="market"?n(ky,{p:e,rows:i}):n("table",{class:"pz-table",children:[n("thead",{children:n("tr",{children:[n("th",{children:o("penzor.col.name")}),n("th",{class:"r",children:o("penzor.col.size")}),n("th",{children:j}),O&&n("th",{children:O})]})}),n("tbody",{children:[e.newFolder()!=null&&n(zy,{p:e,cols:O?4:3}),i.map((v,A)=>n(R,{children:[!v.dir&&(A===0||i[A-1].dir)&&J.map(N=>n(ef,{p:e,x:N},N.key)),n("tr",{class:`${e.isSelected(v.key)?"sel":""}${t&&t===v.key?" drop":""}`,"data-dir-id":m&&v.dir?v.key:void 0,"data-dir-name":m&&v.dir?v.name:void 0,onMouseDown:N=>{N.shiftKey&&N.preventDefault()},onClick:N=>k(N,v),onDblClick:()=>{v.dir?e.openDir(v):e.download(v)},onContextMenu:N=>{N.preventDefault(),e.openMenu(N.clientX,N.clientY,v)},children:[n("td",{class:"n",children:n("span",{children:[n(ne,{n:$a(v.name,v.dir)}),r.kind==="content"&&!C.length&&Qp[v.name]?n(R,{children:[n("b",{children:o(Qp[v.name])}),n("em",{class:"cnt",children:[v.name,(v.count??0)>0&&` \xB7 ${o("penzor.card.expSmall",{n:v.count.toLocaleString()})}`]})]}):n(R,{children:[n("b",{children:v.name}),v.count!=null&&v.count>0&&n("em",{class:"cnt",children:v.count.toLocaleString()})]})]})}),n("td",{class:"r",children:v.dir&&r.kind==="app"?"\u2014":e.b(v.size)}),n("td",{children:Wt(v.mtime,e.locale())}),O&&n("td",{class:v.col4?"":"dim",children:v.col4?v.col4===e.thisDevice()?o("penzor.side.thisDevice",{name:v.col4}):v.col4:"\u2014"})]})]},v.key)),(i.length===0||i[i.length-1].dir)&&J.map(v=>n(ef,{p:e,x:v},v.key))]})]}):n("p",{class:"pz-note",children:o("penzor.loading")}),r.kind==="trash"&&!!e.snap()?.amaTrash?.length&&n(wy,{p:e})]})})]})}var Yp={plugin:"penzor.market.type.plugin",skill:"penzor.market.type.skill",agent:"penzor.market.type.agent",space:"penzor.market.type.space",theme:"penzor.market.type.theme","amadeus-plugin":"penzor.market.type.amadeusPlugin"},Zp={approved:"penzor.market.status.approved",pending:"penzor.market.status.pending",rejected:"penzor.market.status.rejected"},xy={plugin:"puzzle","amadeus-plugin":"puzzle",skill:"sparkles",agent:"bot",theme:"palette",space:"archive"};function ky({p:e,rows:t}){let o=e.t;return n("table",{class:"pz-table pz-market",children:[n("thead",{children:n("tr",{children:[n("th",{children:o("penzor.col.name")}),n("th",{children:o("penzor.col.type")}),n("th",{children:o("penzor.col.status")}),n("th",{class:"r",children:o("penzor.col.size")}),n("th",{children:o("penzor.col.mtime")})]})}),n("tbody",{children:t.map(r=>{let a=r.ref?.market,i=a?a.counted?[a.version?`v${a.version.replace(/^v/i,"")}`:"",a.pending?o("penzor.market.updating"):"",a.historyBytes>0?o("penzor.market.older",{size:e.b(a.historyBytes)}):""].filter(Boolean).join(" \xB7 "):o(a.source==="npm"?"penzor.market.fromNpm":"penzor.market.fromGithub"):"";return n("tr",{children:[n("td",{class:"n",children:n("span",{children:[n(ne,{n:xy[a?.type??""]??"archive"}),n("b",{children:r.name}),i&&n("em",{class:"cnt",children:i})]})}),n("td",{children:a&&Yp[a.type]?o(Yp[a.type]):a?.type??"\u2014"}),n("td",{children:a&&n("span",{class:`pz-badge${a.status==="rejected"?" is-warn":""}`,children:Zp[a.status]?o(Zp[a.status]):a.status})}),n("td",{class:"r",children:a&&!a.counted?o("penzor.market.notCounted"):e.b(r.size)}),n("td",{children:Wt(r.mtime,e.locale())})]},r.key)})})]})}function of(e,t){return t==="default"?e.t("penzor.scope.all"):t===`device-${e.content()?.deviceId}`?e.t("penzor.tree.thisBackup"):e.snap()?.contentDevices?.find(r=>`device-${r.id}`===t)?.name||`Forsion-${t.slice(7,15)}`}var Qp={Amadeus:"penzor.cat.notes",agents:"penzor.source.agents",human:"penzor.cat.profile",Plugins:"penzor.cat.plugins"};function wy({p:e}){let t=e.snap()?.amaTrash;return n("section",{class:"pz-ama-trash",children:[n("h3",{class:"pz-h3",children:e.t("penzor.trash.ama")}),n("p",{class:"pz-note",children:e.t("penzor.trash.amaNote")}),t?t.length?n("table",{class:"pz-table",children:[n("thead",{children:n("tr",{children:[n("th",{children:e.t("penzor.col.name")}),n("th",{children:e.t("penzor.col.size")}),n("th",{children:e.t("penzor.trash.expires")})]})}),n("tbody",{children:t.map(o=>n("tr",{children:[n("td",{children:[o.vaultName," / ",o.path]}),n("td",{children:e.b(o.size)}),n("td",{children:Wt(Date.parse(o.expiresAt),e.locale())})]},o.id))})]}):n("p",{class:"pz-note",children:e.t("penzor.folderEmpty")}):n("p",{class:"pz-note",children:e.t("penzor.unified.unavailable")})]})}function zy({p:e,cols:t}){let[o,r]=S(e.newFolder()??""),a=ie(null),i=ie(!1);Zn(()=>{a.current?.focus(),a.current?.select()},[]);let s=()=>{i.current||(i.current=!0,e.createFolder(o))};return n("tr",{class:"sel",children:[n("td",{class:"n",children:n("span",{children:[n(ne,{n:"folder-open"}),n("input",{ref:a,class:"pz-newname",value:o,onInput:l=>r(l.currentTarget.value),onKeyDown:l=>{l.key==="Enter"?s():l.key==="Escape"&&(i.current=!0,e.cancelNewFolder())},onBlur:s})]})}),n("td",{class:"r",children:"\u2014"}),n("td",{children:e.t("penzor.justNow")}),t>3&&n("td",{})]})}function ef({p:e,x:t}){let o=t.size>0?Math.min(100,Math.round(t.done/t.size*100)):0;return n("tr",{class:`pz-txrow ${t.state}`,title:t.state==="paused"?e.t("penzor.tx.paused"):void 0,children:[n("td",{class:"n",children:n("span",{children:[n(ne,{n:$a(t.name)}),n("b",{children:t.name})]})}),n("td",{class:"r",children:t.state==="active"?Fs(t.done,t.size,e.locale()):e.b(t.size)}),n("td",{children:t.state==="queued"?n("span",{class:"pz-inl",children:e.t("penzor.tx.queued")}):n("span",{class:"pz-inl",children:[n(Xo,{pct:o}),t.state==="paused"?e.t("penzor.tx.pause"):`${o}%`]})})]})}function rf(e,t){let o=e.t,r=e.loc().kind,a={id:"download",label:o("penzor.act.download"),icon:"download",run:()=>void e.download(t)};return r==="source"?t.dir||!t.ref?.downloadPath?[]:[a]:r==="app"&&!e.canManageRow(t)?t.dir?[]:[a]:r==="sync"||r==="ama"?t.dir?[]:[a]:r==="app"?[...t.dir?[]:[a],{id:"rename",label:o("penzor.act.rename"),icon:"pen",run:()=>{e.select(t),e.setSide({kind:"rename"})}},{id:"move",label:o("penzor.act.move"),icon:"move",run:()=>{e.select(t),e.setSide({kind:"move",at:[]})}},{id:"trash",label:o("penzor.act.trash"),icon:"trash",danger:!0,run:()=>void e.trash(t)}]:r==="exports"?[a,{id:"rename",label:o("penzor.act.rename"),icon:"pen",run:()=>{e.select(t),e.setSide({kind:"rename"})}},{id:"delete",label:o("penzor.act.delete"),icon:"trash",danger:!0,run:()=>{e.select(t),e.setSide({kind:"confirm",what:"deleteExport"})}}]:r==="trash"&&e.canManageRow(t)?[{id:"restore",label:o("penzor.act.restore"),icon:"undo",run:()=>void e.restore(t)},{id:"purge",label:o("penzor.act.purge"),icon:"trash",danger:!0,run:()=>{e.select(t),e.setSide({kind:"confirm",what:"purge"})}}]:[]}function Sy(e,t){let o=e.t;if(!t)return e.canWrite()?[{id:"upload",label:o("penzor.act.uploadHere"),icon:"upload",run:()=>e.picker.files?.()},{id:"new-folder",label:o("penzor.act.newFolder"),icon:"folder-plus",run:()=>e.startNewFolder()}]:[];let r=e.selection();return r.length>1&&r.some(a=>a.key===t.key)?af(e,r):rf(e,t)}function af(e,t){let o=e.t,r=e.loc().kind,a=t.filter(i=>!i.dir).length;return[...a?[{id:"download",label:o("penzor.sel.download",{n:a}),icon:"download",run:()=>void e.downloadMany(t)}]:[],...t.every(e.canManageRow)?[{id:"move",label:o("penzor.act.move"),icon:"move",run:()=>e.setSide({kind:"move",at:[]})},{id:"trash",label:o("penzor.act.trash"),icon:"trash",danger:!0,run:()=>void e.trashMany(t)}]:[]]}function sf({x:e,y:t,items:o,onClose:r,alignRight:a}){let i=ie(null),[s,l]=S({x:e,y:t});return Y(()=>{let c=i.current;if(c){let u=c.getBoundingClientRect(),p=a?e-u.width:e;l({x:Math.max(8,Math.min(p,window.innerWidth-u.width-8)),y:t+u.height>window.innerHeight-8?Math.max(8,t-u.height):t})}let d=u=>{u.target instanceof Node&&c?.contains(u.target)||r()},f=u=>{u.key==="Escape"&&r()};return window.addEventListener("pointerdown",d,!0),window.addEventListener("keydown",f,!0),window.addEventListener("blur",r),window.addEventListener("wheel",r,{passive:!0}),()=>{window.removeEventListener("pointerdown",d,!0),window.removeEventListener("keydown",f,!0),window.removeEventListener("blur",r),window.removeEventListener("wheel",r)}},[e,t]),o.length?ha(n("div",{ref:i,class:"ctx-menu pz-menu",role:"menu",style:{left:`${s.x}px`,top:`${s.y}px`},children:o.map((c,d)=>n(R,{children:[c.danger&&d>0&&n("div",{class:"ctx-separator"}),n("button",{role:"menuitem",class:c.danger?"danger":"",onClick:()=>{r(),c.run()},children:[n(ne,{n:c.icon}),c.label]})]},c.id))}),document.body):(queueMicrotask(r),null)}function _y({p:e}){let t=e.menu();return n(sf,{x:t.x,y:t.y,items:Sy(e,t.row),onClose:e.closeMenu})}function lf({p:e}){nl(e);let t=e.t,o=e.loc(),r=e.selected();if(wo(o)||!r)return n(Er,{p:e,side:!0,children:n("p",{class:"pz-side-none",children:t("penzor.side.none")})});let a=e.snap(),i=e.side(),s=e.selection();if(s.length>1)return n(Ay,{p:e,sel:s});let l=o.kind==="content"?`${of(e,o.namespace)} / ${r.key}`:o.kind==="sync"?`${o.vault} / ${r.key}`:o.kind==="ama"?`${a?.ama?.find(g=>g.id===o.vaultId)?.name??""} / ${r.key}`:o.kind==="app"?[e.appLabel(o.appId),...e.appStack().map(g=>g.name),r.name].join(" / "):o.kind==="source"?`${t(Sr[o.source])} / ${r.key}`:o.kind==="exports"?`${t("penzor.ledger.exports")} / ${r.name}`:r.col4??"",c=r.dir?"":(r.name.match(/\.([A-Za-z0-9]{1,8})$/)?.[1]??"").toUpperCase(),d=o.kind==="trash"?t("penzor.side.inTrash",{size:e.b(r.size)}):r.dir?r.count!=null?t("penzor.side.folder",{n:r.count.toLocaleString()}):t("penzor.side.folderPlain"):[c,e.b(r.size)].filter(Boolean).join(" \xB7 "),f=o.kind==="trash"?[[t("penzor.side.origin"),l],[t("penzor.side.deletedAt"),Wt(r.mtime,e.locale())]]:[[t("penzor.side.where"),l],[t("penzor.side.mtime"),Wt(r.mtime,e.locale())]];o.kind==="sync"&&!r.dir&&f.push([t("penzor.side.device"),r.col4?r.col4===e.thisDevice()?t("penzor.side.thisDevice",{name:r.col4}):r.col4:"\u2014"]),o.kind==="app"&&!r.dir&&!e.canWrite()&&f.push([t("penzor.side.from"),e.appLabel(o.appId)]),o.kind==="exports"&&f.push([t("penzor.side.from"),r.col4??"\u2014"]);let u=o.kind==="app"&&!e.canManageRow(r)?r.archive?"penzor.archive.note":r.managed?"penzor.hosted.note":"penzor.source.appNote":Ip(o),p=rf(e,r),m=e.versions();return n(Er,{p:e,side:!0,children:[n("div",{class:"pz-thumb",children:n(ne,{n:$a(r.name,r.dir)})}),i.kind==="rename"?n(Cy,{p:e,row:r}):n("div",{class:"pz-fname",children:r.name}),n("div",{class:"pz-fsub",children:d}),i.kind==="confirm"?n("div",{class:"pz-confirm",style:{margin:0},children:[n("span",{children:t(i.what==="purge"?"penzor.confirm.purge":"penzor.confirm.deleteExport",{name:r.name})}),n("button",{class:"pz-btn danger solid",onClick:()=>void(i.what==="purge"?e.purge(r):e.deleteExport(r)),children:t(i.what==="purge"?"penzor.act.purge":"penzor.act.delete")}),n("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"view"}),children:t("penzor.cancel")})]}):p.length>0&&n("div",{class:"pz-acts",children:p.filter(g=>g.id!=="move").map(g=>n("button",{class:`pz-btn${g.danger?" danger":""}${g.id==="restore"?" pri":""}`,onClick:()=>g.run(),children:[n(ne,{n:g.icon}),g.id==="trash"?t("penzor.act.delete"):g.label]},g.id))}),i.kind==="move"&&n(cf,{p:e,row:r,at:i.at}),n("dl",{class:"pz-dl",children:[f.map(([g,h])=>n(R,{children:[n("dt",{children:g}),n("dd",{children:h})]},g)),o.kind==="app"&&!r.dir&&n(R,{children:[n("dt",{children:t("penzor.side.versions")}),n("dd",{children:m==null?"\u2026":m.length?t("penzor.side.versionsN",{n:m.length}):t("penzor.side.versionsNone")})]})]}),e.canManageRow(r)&&!r.dir&&m&&m.length>0&&n("div",{class:"pz-vers",children:m.map(g=>n("div",{children:[n("span",{children:t("penzor.side.versionRow",{n:g.versionNumber,time:Wt(g.createdAt,e.locale()),size:e.b(g.fileSize)})}),n("button",{class:"pz-link",onClick:()=>void e.restoreVersion(r,g),children:t("penzor.side.restoreVersion")})]},g.versionNumber))}),o.kind==="trash"&&r.dir&&(r.count??0)>0&&n("div",{class:"pz-tip",children:[n(ne,{n:"undo"}),n("span",{children:t("penzor.side.inner",{n:r.count})})]}),o.kind==="exports"&&n("div",{class:"pz-tip",children:[n(ne,{n:"trash"}),n("span",{children:t("penzor.side.exportNote")})]}),u&&n("div",{class:"pz-tip",children:[n(ne,{n:"lock"}),n("span",{children:t(u,{vault:o.kind==="sync"?o.vault:""})})]})]})}function Cy({p:e,row:t}){let[o,r]=S(t.name),a=ie(null),i=ie(!1),s=()=>{i.current||(i.current=!0,e.rename(t,o))};return Y(()=>{let l=a.current;if(!l)return;l.focus();let c=t.dir?-1:t.name.lastIndexOf(".");l.setSelectionRange(0,c>0?c:t.name.length)},[t.key]),n("input",{ref:a,class:"pz-input",value:o,onInput:l=>r(l.currentTarget.value),onKeyDown:l=>{l.key==="Enter"?s():l.key==="Escape"&&(i.current=!0,e.setSide({kind:"view"}))},onBlur:s})}function cf({p:e,row:t,at:o}){let r=e.t,a=e.loc(),i=a.kind==="app"?e.appLabel(a.appId):"",s=e.selection(),l=s.length>1,c=new Set(l?s.map(u=>u.key):[t.key]),d=(e.moveFolders()??[]).filter(u=>!c.has(u.id)),f=o[o.length-1]??{id:"ROOT",name:r("penzor.move.root",{app:i})};return n("div",{class:"pz-tip",style:{flexDirection:"column"},children:[n("div",{class:"pz-sh",style:{margin:0},children:r("penzor.move.title")}),n("div",{class:"pz-pick",children:[o.length>0&&n("button",{onClick:()=>e.moveBrowse(o.slice(0,-1)),children:[n(ne,{n:"up"}),o.length>1?o[o.length-2].name:r("penzor.move.root",{app:i})]}),e.moveFolders()==null?n("span",{children:"\u2026"}):d.length===0?n("span",{children:r("penzor.move.noFolders")}):d.map(u=>n("button",{onClick:()=>e.moveBrowse([...o,u]),children:[n(ne,{n:"folder"}),u.name]},u.id))]}),n("div",{class:"pz-acts",children:[n("button",{class:"pz-btn pri",onClick:()=>void(l?e.moveMany(s,f):e.moveTo(t,f)),children:r("penzor.move.here")}),n("button",{class:"pz-btn",onClick:()=>e.setSide({kind:"view"}),children:r("penzor.cancel")})]})]})}function Ay({p:e,sel:t}){let o=e.t,r=e.loc(),a=t.filter(u=>!u.dir),i=t.length-a.length,s=a.reduce((u,p)=>u+p.size,0),l=new Date,c=o("penzor.download.folder",{date:`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`}),d=r.kind==="app"?[e.appLabel(r.appId),...e.appStack().map(u=>u.name)].join(" / "):r.kind==="sync"?[r.vault,...e.path()?e.path().split("/"):[]].join(" / "):r.kind==="ama"?[e.snap()?.ama?.find(u=>u.id===r.vaultId)?.name??"",...e.path()?e.path().split("/"):[]].join(" / "):"",f=e.side();return n(Er,{p:e,side:!0,children:[n("div",{class:"pz-thumb",children:n(ne,{n:"files"})}),n("div",{class:"pz-fname",children:o("penzor.sel.title",{n:t.length})}),n("div",{class:"pz-fsub",children:i?o("penzor.sel.subDirs",{size:e.b(s),files:a.length,dirs:i}):o("penzor.sel.sub",{size:e.b(s),files:a.length})}),n("div",{class:"pz-acts",children:af(e,t).map(u=>n("button",{class:`pz-btn${u.danger?" danger":""}`,onClick:()=>u.run(),children:[n(ne,{n:u.icon}),u.id==="trash"?o("penzor.act.delete"):u.label]},u.id))}),f.kind==="move"&&n(cf,{p:e,row:t[0],at:f.at}),n("dl",{class:"pz-dl",children:[n("dt",{children:o("penzor.side.where")}),n("dd",{children:d}),a.length>1&&n(R,{children:[n("dt",{children:o("penzor.sel.saveTo")}),n("dd",{children:o("penzor.sel.saveToValue",{folder:c})})]})]}),i>0&&a.length>0&&n("div",{class:"pz-tip",children:[n(ne,{n:"folder"}),n("span",{children:o("penzor.sel.noDirs")})]})]})}var df=(e,t)=>t<60?e.t("penzor.tx.sec",{n:Math.max(1,Math.round(t))}):e.t("penzor.tx.min",{n:Math.ceil(t/60)}),Ty=(e,t)=>t!=null&&Date.now()-t<6e4?e.t("penzor.justNow"):Wt(t,e.locale()),Ey=(e,t)=>{let o=t.error??"";return o==="too_large"?e.t("penzor.err.too_large",{size:e.b(t.size)}):o==="network"?e.t("penzor.err.network",{pct:t.size?Math.round(t.done/t.size*100):0}):o==="quota"||o==="account_changed"||o==="not_signed_in"||o==="gone"||o==="changed"||o==="storage_unavailable"||o==="popup_blocked"||o==="download_unavailable"||o==="download_failed"?e.t(`penzor.err.${o}`):e.t("penzor.err.other",{code:o||"?"})};function Py(e){let t=e.filter(l=>l.state==="active"||l.state==="queued"||l.state==="paused"),o=t.filter(l=>l.state!=="paused"),r=o.reduce((l,c)=>l+Math.max(c.size,c.done),0),a=o.reduce((l,c)=>l+c.done,0),i=o.reduce((l,c)=>l+c.speed,0),s=i>0?(r-a)/i:null;return{live:t,failed:e.filter(l=>l.state==="failed"),done:e.filter(l=>l.state==="done"),up:t.filter(l=>l.kind==="up").length,down:t.filter(l=>l.kind==="down").length,pct:r>0?Math.min(100,Math.round(a/r*100)):0,eta:s!=null&&s>=5?s:null}}var tl=!1;function uf(e,t){let o=t.ui?.float;if(typeof o!="function")return null;tl=!0;let r=null,a=()=>e.card()!=="hidden"&&(e.transfers().length>0||e.notices().length>0),i=()=>{if(a()&&!r){try{r=o({scope:"space",space:hn,anchor:"bottom-end",role:"panel",id:"transfers",bare:!0})}catch(l){console.error("[penzor] transfer float failed",l);return}Re(n(My,{p:e}),r.el)}else if(!a()&&r){let l=r;r=null,l.close(),Re(null,l.el)}},s=e.subscribe(i);return i(),()=>{if(s(),tl=!1,r){let l=r;r=null,l.close(),Re(null,l.el)}}}function My({p:e}){return nl(e),n(Er,{p:e,extra:"pz-txfloat",children:n(pf,{p:e})})}function pf({p:e}){let t=e.t,o=e.card(),r=e.transfers(),a=e.notices();if(o==="hidden"||!r.length&&!a.length)return null;let i=Py(r),s=i.failed.length+a.length,l=t("penzor.tx.counts",{up:i.up,down:i.down}),c=i.live.length?t("penzor.tx.busy",{n:i.live.length}):s?t("penzor.tx.failedN",{n:s}):t("penzor.tx.allDone"),d=i.live.length?[l,i.eta!=null?t("penzor.tx.eta",{eta:df(e,i.eta)}):""].filter(Boolean).join(" \xB7 "):s?i.done.length?t("penzor.tx.restDone",{n:i.done.length}):"":t("penzor.tx.doneN",{n:i.done.length}),f={onMouseEnter:()=>e.holdCard(!0),onMouseLeave:()=>e.holdCard(!1)};if(o==="pill")return n("button",{class:"ui-popover pz-txpill",...f,onClick:()=>e.setCard("open"),title:t("penzor.tx.expand"),"aria-label":t("penzor.tx.expand"),children:[i.live.length?n("span",{class:"pz-ring",style:{"--p":i.pct}}):n(ne,{n:s?"alert":"check"}),n("span",{children:i.live.length?t("penzor.tx.pill",{counts:l,pct:i.pct}):c}),n(ne,{n:"up"})]});let u=g=>g.state==="failed"?0:g.state==="active"?1:g.state==="queued"||g.state==="paused"?2:3,p=[...r].filter(g=>g.state!=="canceled").sort((g,h)=>u(g)-u(h)||(u(g)===3?(h.finishedAt??0)-(g.finishedAt??0):0)),m=i.live.length>0&&i.live.every(g=>g.state==="paused");return n("div",{class:"ui-popover pz-txcard",role:"region","aria-label":c,...f,children:[n("div",{class:"pz-txhead",children:[n("b",{children:c}),n("span",{children:d}),n("i",{class:"sp"}),n("button",{class:"pz-ib",title:t("penzor.tx.collapse"),"aria-label":t("penzor.tx.collapse"),onClick:()=>e.setCard(i.live.length||s?"pill":"hidden"),children:n(ne,{n:"down"})})]}),i.live.length>0&&n("div",{class:"pz-txall",children:n(Xo,{pct:i.pct})}),n("div",{class:"pz-txlist",children:[a.map(g=>n("div",{class:"pz-txrow2 is-fail",children:[n(ne,{n:"alert"}),n("span",{class:"nm",children:t("penzor.tx.quota",{size:e.b(g.short)})}),n("span",{class:"acts",children:n("button",{class:"pz-ib",title:t("penzor.tx.remove"),onClick:()=>e.dismissNotice(g.id),children:n(ne,{n:"x"})})}),n("span",{class:"sub",children:[n("span",{class:"err",children:t("penzor.tx.quotaSub")}),n("button",{class:"pz-link",onClick:()=>{e.dismissNotice(g.id),e.go("trash")},children:t("penzor.tx.freeSpace")})]})]},g.id)),p.map(g=>n(Iy,{p:e,x:g},g.id))]}),n("div",{class:"pz-txfoot",children:[i.live.length>0&&n("button",{onClick:()=>void e.txAll(m?"resume":"pause"),children:t(m?"penzor.tx.resumeAll":"penzor.tx.pauseAll")}),i.failed.length>0&&!i.live.length&&n("button",{onClick:()=>void e.txAll("retry"),children:t("penzor.tx.retryAll")}),i.done.length>0&&i.live.length>0&&n("button",{onClick:()=>void e.txClear("finished"),children:t("penzor.tx.clearDone")}),!i.live.length&&n("button",{onClick:()=>void e.txClear(s?"all":"finished"),children:t(s?"penzor.tx.clear":"penzor.tx.clearDone")})]})]})}function Iy({p:e,x:t}){let o=e.t,r=t.size>0?Math.min(100,t.done/t.size*100):0,a=t.state==="done"?"check":t.state==="failed"?"alert":t.kind==="up"?"tx-up":"tx-down",i=(l,c,d)=>n("button",{class:"pz-ib",title:c,"aria-label":c,onClick:d,children:n(ne,{n:l})}),s;if(t.state==="failed")s=n("span",{class:"err",children:Ey(e,t)});else if(t.state==="done")s=n(R,{children:[n("span",{children:e.b(t.size)}),n("span",{children:o(t.kind==="up"?"penzor.tx.uploaded":"penzor.tx.downloaded",{time:Ty(e,t.finishedAt)})})]});else if(t.state==="queued")s=n(R,{children:[n("span",{children:e.b(t.size)}),n("span",{children:o("penzor.tx.queued")})]});else if(t.state==="paused")s=n(R,{children:[n("span",{children:e.b(t.size)}),n("span",{children:o("penzor.tx.paused")})]});else{let l=t.speed>0?(t.size-t.done)/t.speed:null;s=n(R,{children:[n("span",{children:Fs(t.done,t.size,e.locale())}),t.speed>0&&n("span",{children:[e.b(t.speed),"/s"]}),l!=null&&l>=5&&n("span",{children:o("penzor.tx.left",{eta:df(e,l)})})]})}return n("div",{class:`pz-txrow2${t.state==="done"?" is-done":t.state==="failed"?" is-fail":""}`,children:[n(ne,{n:a}),n("span",{class:"nm",title:t.name,children:t.name}),n("span",{class:"acts",children:[(t.state==="active"||t.state==="queued")&&i("pause",o("penzor.tx.pause"),()=>void e.txOp(t.id,"pause")),t.state==="paused"&&i("play",o("penzor.tx.resume"),()=>void e.txOp(t.id,"resume")),(t.state==="active"||t.state==="queued"||t.state==="paused")&&i("x",o("penzor.tx.cancel"),()=>void e.txOp(t.id,"cancel")),t.state==="failed"&&t.error!=="too_large"&&n("button",{class:"pz-link",onClick:()=>void e.txOp(t.id,"retry"),children:o("penzor.tx.retry")}),t.state==="failed"&&i("x",o("penzor.tx.remove"),()=>void e.txOp(t.id,"dismiss")),t.state==="done"&&(t.kind==="up"||t.localPath)&&n("button",{class:"pz-link",onClick:()=>e.locate(t),children:o(t.kind==="down"?"penzor.tx.reveal":"penzor.tx.locate")})]}),(t.state==="active"||t.state==="paused"||t.state==="queued")&&n(Xo,{pct:r}),n("span",{class:"sub",children:s})]})}function Ry(e,t){let o=an(t.tangu);return!!e&&typeof e.registerView=="function"&&typeof e.registerListSource=="function"&&typeof e.openView=="function"&&typeof e.app?.openSpace=="function"&&typeof o?.cloudInvoke=="function"&&(!o.mobile||!!o.extendMobile)&&sn(o)}function ff(e,t=window){if(!Ry(e,t))return null;let o=an(t.tangu),r=Mp(e);uf(r,e),wn(o)||o.cloudInvoke("penzor:device").then(p=>{let m=p?.name;typeof m=="string"&&m&&r.setDevice(m)}).catch(()=>{});let a=p=>m=>(Re(n(p,{p:r}),m),()=>{Re(null,m)});e.registerView({id:Rn.main,title:r.t("penzor.title"),icon:"penzor",workspaceSource:Us,mount:a(tf)}),e.registerView({id:Rn.info,title:r.t("penzor.details"),icon:"page",mount:a(lf)});let i=e.listCapabilities?.includes("tree")??!1,s=typeof e.app?.setSpaceProgress=="function"?"hard-drive":"archive",l=()=>({overview:r.t("penzor.overview"),drive:r.t("penzor.drive"),driveIcon:s,sync:r.t("penzor.ledger.sync"),ama:r.t("penzor.ledger.ama"),apps:r.t("penzor.ledger.apps"),exports:r.t("penzor.ledger.exports"),trash:r.t("penzor.trash"),items:p=>r.t("penzor.items",{n:p}),files:r.t("penzor.uploads"),synced:r.t("penzor.tree.synced"),all:r.t("penzor.scope.all"),thisBackup:r.t("penzor.tree.thisBackup"),byApp:r.t("penzor.tree.byApp"),legacy:r.t("penzor.tree.legacy")}),c=()=>{let p=r.content();if(p){let g=Cn(p);return[{key:"sync-home",title:r.t("penzor.sync.title"),icon:"refresh",hint:Cp(g,r.locale()),...g.kind==="warn"?{unread:!0}:{}}]}if(!r.hasSync())return[];let m=r.syncState();return[{key:"sync-home",title:r.t("penzor.sync.title"),icon:"refresh",hint:_p(m,r.locale()),...Fa(m)?{unread:!0}:{}}]};e.registerListSource({id:Us,title:r.t("penzor.title"),search:!0,items:p=>{let m=[...c(),...wp(r.snap(),l(),r.locale(),r.content())],g=p?.query?.trim().toLowerCase()??"";if(g)return m.filter(k=>k.kind!=="folder"&&k.title.toLowerCase().includes(g)).map(({parent:k,...y})=>y);if(i)return m;let h=new Map(m.filter(k=>k.kind==="folder").map(k=>[k.key,k.title]));return m.filter(k=>k.kind!=="folder").map(({parent:k,...y})=>({...y,group:k?h.get(k):void 0}))},subscribe:p=>r.subscribe(p),activeKey:()=>ko(r.loc()),open:p=>r.go(p.key),actions:[{id:"refresh",label:r.t("penzor.act.refresh"),icon:"refresh",primary:!0,run:()=>{r.refresh(),e.app?.sync?.refresh?.().catch(()=>{})}}],itemMenu:p=>{if(p.key.startsWith("sync:")){let m=p.key.slice(5);return[{id:"open-sync",label:r.t("penzor.act.openSync"),icon:"gear",run:()=>r.openSync()},{id:"copy-name",label:r.t("penzor.act.copyName"),icon:"copy",run:()=>{navigator.clipboard?.writeText(m).then(()=>e.app?.notify?.(r.t("penzor.toast.copied")))}}]}return p.key==="trash"&&r.canEmptyTrash()?[{id:"empty-trash",label:r.t("penzor.trash.emptyBtn"),icon:"trash",danger:!0,run:()=>{r.go("trash"),r.setConfirmEmpty(!0)}}]:[]}}),e.registerCommand?.({id:"open-penzor",title:()=>r.t("penzor.cmd.open"),keywords:"penzor cloud storage quota sync files trash drive upload \u84EC\u6D32\u4E91 \u4E91\u7A7A\u95F4 \u4E91\u76D8 \u7F51\u76D8 \u4E0A\u4F20 \u989D\u5EA6 \u540C\u6B65 \u56DE\u6536\u7AD9",run:()=>{e.app?.openSpace?.(hn)}});let d=p=>{if(!(p.key!==Pp||!p.newValue))try{let m=JSON.parse(p.newValue);m.page==="sync"&&r.hasSync()?e.app?.openSpace?.(hn).then(()=>r.go("sync-home")):typeof m.vault=="string"&&m.vault&&r.focusVault(m.vault)}catch{}},f=(()=>{try{return!new URLSearchParams(t.location.search).get("window")}catch{return!1}})();if(f){t.addEventListener("storage",d);try{t.localStorage.setItem(Hs,"1")}catch{}}let u=r.dispose;return r.dispose=()=>{if(f){t.removeEventListener("storage",d);try{t.localStorage.removeItem(Hs)}catch{}}u()},r}var mf="sync",ol=3,Ly=24*36e5,Dy=5e3,Ny=15e4,gf=e=>e.split("/").filter(Boolean).pop()||e,Pr=(e,t,o)=>e!=null&&Number.isFinite(e)?An(e,t,o):void 0;function Oy(e,t){let o=new Map;for(let r of e.jobs){if(r.state!=="conflict"||t-r.at>Ly||e.jobs.some(i=>i.path===r.path&&i.at>r.at&&i.state==="done"&&i.direction!=="merge"))continue;let a=o.get(r.path);(!a||r.at>a.at)&&o.set(r.path,r)}return[...o.values()].sort((r,a)=>a.at-r.at)}var Fy=e=>{let t=e.jobs.filter(o=>o.state==="done").map(o=>o.finishedAt??o.at);return t.length?Math.max(...t):null};function $y(e,t,o,r){let a=Cn(e);if(a.kind==="off")return{rows:[{id:"status",title:t("penzor.widget.off"),meta:t("penzor.cs.statusOff")}]};let i=[],s=Fy(e);i.push(a.kind==="paused"?{id:"status",title:t("penzor.widget.paused"),meta:t("penzor.cs.statusPaused")}:a.kind==="run"?{id:"status",title:t("penzor.widget.running"),meta:`${a.pct}%`,tone:"accent",now:!0}:a.kind==="scan"?{id:"status",title:t("penzor.cs.statusScan"),now:!0}:a.kind==="warn"?{id:"status",title:t("penzor.widget.problem"),meta:t("penzor.cs.statusWarn",{n:a.n}),tone:"warn"}:{id:"status",title:t("penzor.cs.statusOk"),...Pr(a.at,o,r)?{meta:Pr(a.at,o,r)}:{}});let l=e.jobs.filter(u=>u.state==="active").length,c=e.jobs.filter(u=>u.state==="queued"||u.state==="paused").length;l?i.push({id:"queue",title:t("penzor.widget.active",{n:l}),...c?{meta:t("penzor.widget.queued",{n:c})}:{}}):c&&i.push({id:"queue",title:t("penzor.widget.waiting",{n:c})});let d=[...e.error?[{id:"error",title:t("penzor.widget.error"),meta:t("penzor.widget.errorMeta"),tone:"warn"}]:[],...Cr(e).sort((u,p)=>p.at-u.at).map(u=>({id:`failed:${u.id}`,title:gf(u.path),meta:t("penzor.widget.failed"),tone:"warn"})),...Oy(e,r).map(u=>({id:`conflict:${u.id}`,title:gf(u.path),meta:t("penzor.widget.conflict"),tone:"warn"}))];i.push(...d.slice(0,ol));let f=[...d.length>ol?[t("penzor.widget.more",{n:d.length-ol})]:[],...a.kind!=="ok"&&Pr(s,o,r)?[t("penzor.widget.last",{time:Pr(s,o,r)})]:[]];return{rows:i,...f.length?{footer:f.join(" \xB7 ")}:{}}}function By(e,t,o,r){if(!e.signedIn)return vf(t);let a=e.notes;if(a.pending)return{rows:[{id:"pending",title:t("penzor.widget.pending"),meta:t("penzor.sync.waiting"),tone:"warn"}]};if(!Oa(e))return{rows:[{id:"status",title:t("penzor.widget.off"),meta:t("penzor.cs.statusOff")}]};let i=[],s=So(e)??(e.agents.on&&e.agents.running?0:null),l=Math.max(...[a.last?.ok?a.last.at:null,e.agents.last?.ok?e.agents.last.at:null,e.plugins.lastAt??null].filter(c=>typeof c=="number"),-1);return s!=null?i.push({id:"status",title:t("penzor.widget.running"),...s>0?{meta:`${Math.round(s*100)}%`}:{},tone:"accent",now:!0}):i.push({id:"status",title:t("penzor.cs.statusOk"),...l>0?{meta:Pr(l,o,r)}:{}}),a.on&&_r(e)&&i.push({id:"notes-failed",title:t("penzor.widget.notesFailed"),meta:t("penzor.widget.errorMeta"),tone:"warn"}),e.agents.on&&e.agents.last?.ok===!1&&i.push({id:"agents-failed",title:t("penzor.widget.agentsFailed"),meta:t("penzor.widget.errorMeta"),tone:"warn"}),e.plugins.on&&(e.plugins.pending??0)>0&&i.push({id:"plugins",title:t("penzor.widget.waiting",{n:e.plugins.pending})}),{rows:i}}var vf=e=>({rows:[{id:"signin",title:e("penzor.widget.signedOut"),meta:e("penzor.widget.signInHint")}]});function hf(e,t,o=Date.now()){let r=(a,i)=>we(t,a,i);return e.kind==="signedOut"?vf(r):e.kind==="content"?$y(e.snap,r,t,o):By(e.snap,r,t,o)}var Uy=/not a Forsion Extend channel/;async function bf(e,t){let o=te();if(!sn(o))throw new Error("sync status is not available on this page");if(!t.noChannel&&typeof o.cloudInvoke=="function"){let i;try{i=await o.cloudInvoke(Ut.get)}catch(s){i={ok:!1,error:s instanceof Error?s.message:String(s)}}if(i?.ok&&i.value?.available)return{kind:"content",snap:i.value};if(!i?.ok&&i?.error==="not_signed_in")return{kind:"signedOut"};if(i?.ok||!Uy.test(i?.error??""))throw new Error(i?.error||"sync status unavailable");t.noChannel=!0}let r=!o.mobile&&typeof e.app?.sync?.get=="function"?e.app.sync:null,a=r?.get()??null;if(!a)throw new Error(r?"sync status is still loading":"sync status unavailable");return{kind:"legacy",snap:a}}var Hy=8e3;function yf(e){let t=e?.widgets;if(!e||!t||typeof t.provide!="function")return null;let o=()=>Ne(e.getLocale?.()),r={noChannel:!1},a=null,i=null,s=1,l=null,c=null,d,f,u=!1,p=0,m=()=>{u||t.invalidate(mf)},g=C=>C?JSON.stringify(hf(C,o())):"error",h=C=>{let M;return Promise.race([C,new Promise(($,U)=>{M=setTimeout(()=>U(new Error("timed out")),Hy)})]).finally(()=>clearTimeout(M))},k=async()=>{let C=s;if(!(u||p===C)){p=C;try{let M=g(await h(bf(e,r)).catch(()=>null));if(u||C!==s)return;M!==a&&M!==i&&(i=M,m())}finally{p===C&&(p=0)}}},y=()=>{s++,p=0,l&&clearInterval(l),c&&clearTimeout(c),l=null,c=null,d?.(),d=void 0,f?.(),f=void 0},x=()=>{if(c&&clearTimeout(c),c=setTimeout(y,Ny),l)return;l=setInterval(()=>void k(),Dy),d=te().onAuthChanged?.(()=>{i=null,m()}),f=(!te().mobile&&typeof e.app?.sync?.subscribe=="function"?e.app.sync:null)?.subscribe(()=>void k())},w=t.provide(mf,async(C,M)=>{if(u)throw new Error("disposed");x(),i=null;let $=M?.signal,U;try{U=hf(await bf(e,r),o())}catch(O){throw $?.aborted||(a="error"),O}return $?.aborted||(a=JSON.stringify(U)),U});return{dispose(){u=!0,y(),w?.dispose?.()}}}var Va="events",qy="forsion-extend.events.seen",xf="forsion-extend.events.seen.migrated",Vy="forsion-extend.events.seen.v2",Wy="forsion-extend.events.feed",kf="forsion-extend.events.last",wf="forsion-extend.events.ping",jy=200,Gy=3e4,Yo=36e5,rl=864e5,zf=8*Yo,Jy=1e3,Sf={newEvent:!0,claimable:"always",beforeEndHours:0,revision:0},Ln=(e,t)=>e&&(e[t]||e.zh||e.en)||"",Rr=(e,t)=>(e??[]).map(o=>Ln(o.label,t)||o.kind).join(" \xB7 "),al=(e,t)=>e.sort-t.sort||(e.endsAt??"~").localeCompare(t.endsAt??"~");function Xy(e){let t=o=>o.kind==="notice";return{active:e.filter(o=>!t(o)&&(o.state==="live"||o.state==="claiming")).sort(al),notices:e.filter(o=>t(o)&&o.state==="live").sort(al),upcoming:e.filter(o=>o.state==="upcoming").sort(al),ended:e.filter(o=>o.state==="ended"||t(o)&&o.state==="claiming").sort((o,r)=>(r.endsAt??"").localeCompare(o.endsAt??""))}}var Ko=(e,t)=>{let o=new Date(e),r=a=>String(a).padStart(2,"0");return`${r(o.getMonth()+1)}-${r(o.getDate())}${t?` ${r(o.getHours())}:${r(o.getMinutes())}`:""}`};function sl(e,t,o){let r=(l,c)=>we(o,l,c);if(e.state==="upcoming")return{short:r("events.time.start",{date:Ko(e.startsAt,!1)}),long:r("events.time.start",{date:Ko(e.startsAt,!0)}),warn:!1};if(e.kind==="notice"){let l=r("events.time.published",{date:Ko(e.startsAt,!1)});return{short:l,long:l,warn:!1}}if(e.state==="claiming"&&e.claimUntil)return{short:r("events.time.claimShort",{date:Ko(e.claimUntil,!1)}),long:r("events.time.claim",{date:Ko(e.claimUntil,!0)}),warn:!1};if(e.state==="ended"||!e.endsAt){let l=e.endsAt?r("events.time.ended",{date:Ko(e.claimUntil??e.endsAt,!1)}):"";return{short:l,long:l,warn:!1}}let a=new Date(e.endsAt).getTime()-new Date(t).getTime(),i=Math.max(1,Math.ceil(a/Yo));if(i<=24)return{short:r("events.left.hours",{n:i}),long:r("events.left.longHours",{h:i}),warn:!0};let s=Math.floor(i/24);return{short:r("events.left.days",{n:s}),long:r("events.left.long",{d:s,h:i%24}),warn:!1}}function Wa(e){let t=e.remind;return!t||typeof t!="object"?Sf:{newEvent:typeof t.newEvent=="boolean"?t.newEvent:Sf.newEvent,claimable:t.claimable==="daily"||t.claimable==="off"?t.claimable:"always",beforeEndHours:Number.isFinite(t.beforeEndHours)&&t.beforeEndHours>0?t.beforeEndHours:0,revision:Number.isFinite(t.revision)?t.revision:0}}function il(e,t){return e?t?{revision:Math.max(e.revision,t.revision),day:e.day>t.day?e.day:t.day}:e:t??null}function _f(e){let t=e.state==="live"?e.endsAt:e.state==="claiming"?e.claimUntil:null,o=t?new Date(t).getTime():NaN;return Number.isFinite(o)?o:null}var ll=e=>e.state==="live"||e.state==="claiming"&&e.kind!=="notice";function Ky(e,t,o,r){if(!ll(e))return{fresh:!1,claim:!1,ending:!1};let a=Wa(e),i=e.state==="live"&&a.newEvent&&(!t||t.revision<a.revision),s=e.claimable>0&&(a.claimable==="always"||a.claimable==="daily"&&t?.day!==o),l=_f(e),c=l===null?NaN:l-r,d=a.beforeEndHours>0&&e.claimable>0&&c>0&&c<=a.beforeEndHours*Yo;return{fresh:i,claim:s,ending:d}}var Yy=(e,t,o,r)=>{let a=Ky(e,t,o,r);return a.fresh||a.claim||a.ending};function Zy(e,t){let o=[Math.floor((t+zf)/rl)*rl+rl-zf];for(let r of e){if(!ll(r))continue;let a=_f(r);if(a===null)continue;a>t&&o.push(a);let i=Wa(r);i.beforeEndHours>0&&r.claimable>0&&a-i.beforeEndHours*Yo>t&&o.push(a-i.beforeEndHours*Yo)}return o.length?Math.min(...o):null}function Cf(e,t){return e?/^(https:|data:image\/)/i.test(e)?e:e.startsWith("/")&&t?`${t.replace(/\/+$/,"")}${e}`:null:null}function Mr(e,t){try{let o=localStorage.getItem(e);return o===null?t:JSON.parse(o)}catch{return t}}function Ir(e,t){try{localStorage.setItem(e,t)}catch{}}function Qy(e){try{localStorage.removeItem(e)}catch{}}var ex={not_live:"events.err.notLive",completed:"events.err.completed",grant_failed:"events.err.grantFailed"};function Af(e,t){let o=new Set,r=()=>{o.forEach(V=>V())},a=Ne(e.getLocale?.()),i="loading",s=null,l="",c=null,d="",f={},u=!1,p=0,m=null,g=!1,h=null,k=0,y,x=(V,ue)=>we(a,V,ue),w=()=>Xy(s?.events??[]),C=()=>`${Vy}:${d}`,M=()=>`${Wy}:${d}`,$=V=>il(f[V.id],V.seen??null),U=()=>s?.today??"",O=()=>Date.now(),j=V=>Yy(V,$(V),U(),O()),_=V=>{if(!ll(V))return!1;let ue=Wa(V),ke=$(V);return!ke||ke.revision<ue.revision||ke.day!==U()},L=()=>{let V=Mr(C(),null),ue={};if(V&&typeof V=="object"&&!Array.isArray(V))for(let[ke,Pe]of Object.entries(V))Pe&&Number.isFinite(Pe.r)&&typeof Pe.d=="string"&&(ue[ke]={revision:Pe.r,day:Pe.d});else if(V===null&&Mr(xf,null)===null){let ke=Mr(qy,[]);if(Array.isArray(ke))for(let Pe of ke)typeof Pe=="string"&&(ue[Pe]={revision:0,day:""});f=ue,B(),Ir(xf,JSON.stringify(d));return}f=ue},B=()=>{if(!d)return;let V=Object.entries(f).slice(-jy);Ir(C(),JSON.stringify(Object.fromEntries(V.map(([ue,ke])=>[ue,{r:ke.revision,d:ke.day}]))))},P=async()=>{if(d)return;let V=p,ue;try{ue=await te().authStatus?.()}catch{}if(V!==p)return;l||(l=ue?.cloudUrl??"");let ke=ue?.accountId||ue?.username;if(!(!ue?.cloudUrl||!ke||d)){if(d=`${ue.cloudUrl}|${ke}`,L(),!s){let Pe=Mr(M(),null);Pe&&typeof Pe=="object"&&Array.isArray(Pe.events)&&(s=Pe,i="ready",u=!1)}r()}},J=()=>{if(m&&(clearTimeout(m),m=null),!s)return;let V=Zy(s.events,O());V!==null&&(m=setTimeout(()=>{m=null,Q()},Math.max(Jy,Math.min(V-O()+500,6*Yo))))},v=()=>{Ir(wf,String(Date.now()))},A=V=>{V&&Array.isArray(V.events)&&(s=V,i="ready")},N=V=>x(V.code&&ex[V.code]||"events.err.failed"),X=0,Q=async V=>{V!==void 0&&(y=V||void 0),k=Date.now();let ue=++X;if(await P(),ue!==X)return;let ke=await Z(y?`/events/feed?preview=${encodeURIComponent(y)}`:"/events/feed");ue===X&&(ke.ok?(A(ke.data),s===ke.data&&(u=!0,d&&!y&&Ir(M(),JSON.stringify(ke.data)))):Fn(ke)||ke.status===401?(s=null,i="signedOut",u=!1,d&&Qy(M())):ke.status===404?(s=null,i="unavailable",u=!1):s||(i="error"),J(),r())},H=async V=>{if(!g){g=!0,h=null,r(),X++;try{await V()}finally{g=!1,X++,v(),r()}}},oe=V=>H(async()=>{let ue=await Z(`/events/${encodeURIComponent(V.id)}/checkin`,{method:"POST",body:{}});if(!ue.ok){h={ok:!1,text:N(ue),backpack:!1};return}A(ue.data.feed);let ke=Rr(ue.data.reward,a);h={ok:!0,text:ke?x("events.toast.checkin",{reward:ke}):x("events.checkin.done"),backpack:!!ke}}),ge=(V,ue)=>H(async()=>{let ke=await Z(`/events/${encodeURIComponent(V.id)}/tasks/claim`,{method:"POST",body:{ids:ue}});if(!ke.ok){h={ok:!1,text:N(ke),backpack:!1};return}A(ke.data.feed);let Pe=ke.data.results.filter(Ce=>Ce.ok&&!Ce.alreadyClaimed),fe=ke.data.results.filter(Ce=>!Ce.ok).length,ot=Pe.flatMap(Ce=>Ce.reward??[]);fe?h={ok:!1,text:x("events.toast.partial",{n:Pe.length,m:fe}),backpack:!1}:Pe.length&&(h={ok:!0,text:x("events.toast.claimed",{reward:Rr(ot,a)}),backpack:ot.length>0})}),He=V=>{let ue=(s?.events??[]).find(pt=>pt.id===V);if(!ue||!_(ue))return;let ke=Wa(ue).revision,{[V]:Pe,...fe}=f;f={...fe,[V]:il(Pe,{revision:ke,day:U()})},B(),v();let ot=p,Ce=d;Z(`/events/${encodeURIComponent(V)}/seen`,{method:"POST",body:{revision:ke}}).then(pt=>{if(ot!==p||Ce!==d||!pt.ok||!pt.data?.seen)return;let rt=il(f[V],pt.data.seen);rt&&(rt.revision!==f[V]?.revision||rt.day!==f[V]?.day)&&(f={...f,[V]:rt},B(),r())})},pe=()=>{let V=w(),ue=[...V.active,...V.notices],ke=[...ue,...V.upcoming,...V.ended],Pe=Mr(kf,null);return ke.find(fe=>fe.id===Pe)??ue.find(j)??ke[0]??null},Le=e.subscribeLocale?.(V=>{a=Ne(V),r()}),Qe=V=>{d&&V.key===C()&&(L(),r()),V.key===wf&&Q()},be=()=>{Date.now()-k>Gy&&Q()};window.addEventListener("storage",Qe),window.addEventListener("focus",be);let Ke=te().onAuthChanged?.(()=>{p++,X++,l="",d="",f={},s=null,u=!1,i="loading",Q()}),It=t.fetchOnStart?setTimeout(()=>{Q()},3e3):null;return P(),{locale:()=>a,t:x,status:()=>i,feed:()=>s,origin:()=>l,groups:w,selected:()=>(s?.events??[]).find(V=>V.id===c)??pe(),select:V=>{c=V,h=null,Ir(kf,JSON.stringify(V)),He(V),r()},dotFor:j,needsSeen:_,fresh:()=>u,hasDot:()=>(s?.events??[]).some(j),active:()=>{let V=w();return i==="ready"&&V.active.length+V.notices.length>0},busy:()=>g,notice:()=>h,clearNotice:()=>{h=null,r()},refresh:Q,checkin:oe,claim:ge,open:V=>{let ue=V?{id:V}:void 0;e.openFloatingPanel?e.openFloatingPanel(Va,{title:x("events.title"),params:ue,width:1040,height:720,minWidth:720,minHeight:520}):e.openView?.(Va,{location:"main",params:ue})},subscribe:V=>(o.add(V),()=>{o.delete(V)}),dispose:()=>{It&&clearTimeout(It),m&&clearTimeout(m),Le?.(),Ke?.(),window.removeEventListener("storage",Qe),window.removeEventListener("focus",be),o.clear()}}}var Tf=`
1488
1625
  .ev-root { --ev-sk: color-mix(in srgb, var(--text) 8%, var(--bg)); position: relative; container-type: inline-size; width: 100%; height: 100%; min-height: 0; background: var(--bg); color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
1489
1626
  .ev-root *, .ev-root *::before, .ev-root *::after { box-sizing: border-box; }
1490
1627
  .ev-root button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
@@ -1623,7 +1760,7 @@ Content-Type: ${o}\r
1623
1760
  .ev-rail { padding: 8px; }
1624
1761
  }
1625
1762
  .ev-root .ev-phone-back { position: absolute; z-index: 2; top: 12px; left: 12px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--bg-card); box-shadow: var(--card-shadow); color: var(--text-muted); }
1626
- `;var ny={checkin:"checkin",tasks:"tasks",game:"gamepad",notice:"megaphone"},ry=560;function Vr({ev:e,e:t}){let[n,o]=C(!1),a=Vp(t.artUrl,e.origin());return X(()=>o(!1),[a]),!a||n?r("div",{class:"ev-art ev-art-empty"}):r("img",{class:"ev-art",src:a,alt:"",style:{objectPosition:`${t.focus.x*100}% ${t.focus.y*100}%`},onError:()=>o(!0)})}function zo({ev:e,e:t}){let n=e.locale(),o=Bs(t,e.feed()?.now??new Date().toISOString(),n);return r("div",{class:"ev-hd",children:[r("span",{class:"ev-kind",children:[r(W,{name:ny[t.kind],size:13}),e.t(`events.kind.${t.kind}`)]}),r("h3",{children:Cn(t.title,n)}),o.long&&r("span",{class:`ev-time${o.warn?" warn":""}`,children:[r(W,{name:"clock",size:13}),o.long]}),r("p",{class:"ev-summary",children:Cn(t.summary,n)})]})}function qs({ev:e,items:t}){return t.length?r("div",{class:"ev-tiles","aria-label":e.t("events.rewards"),children:t.map((n,o)=>{let a=Cn(n.label,e.locale())||n.kind,i=a.match(/^(.+?)\s*(×\d+)$/);return r("div",{class:"ev-tile",children:[r(W,{name:"gift",size:18}),i?r(O,{children:[r("b",{children:i[2]}),r("span",{children:i[1]})]}):r("b",{children:a})]},o)})}):null}function oy({ev:e,e:t}){let n=t.checkin,o=e.locale();return r("div",{class:`ev-days${n.days>7?" two":""}`,children:Array.from({length:n.days},(a,i)=>{let s=i<n.signed,l=i===n.signed&&!n.signedToday&&t.state==="live";return r("div",{class:`ev-day${s?" done":""}${l?" today":""}${i===n.days-1?" big":""}`,children:[r("small",{children:l?e.t("events.checkin.today"):e.t("events.checkin.day",{n:i+1})}),r("span",{class:"ev-day-ic",children:r(W,{name:s?"check":"gift",size:15})}),r("b",{children:wo(n.rewards[i],o)})]},i)})})}function ay({ev:e,e:t}){let n=t.checkin,o=n.signed>=n.days,a=t.state==="live"&&!n.signedToday&&!o;return r("section",{class:`ev-stage ev-checkin${n.days>7?" two":""}`,children:[r("div",{class:"ev-pic",children:[r(Vr,{ev:e,e:t}),r("div",{class:"ev-scrim hi"})]}),r("div",{class:"ev-flow",children:[r("div",{class:"ev-row",children:[r(zo,{ev:e,e:t}),r("div",{class:"ev-act",children:[r("small",{children:e.t("events.checkin.signed",{n:n.signed,total:n.days})}),r("button",{type:"button",class:"ev-btn pri",disabled:!a||e.busy(),onClick:()=>void e.checkin(t),children:o?e.t("events.checkin.finished"):n.signedToday?e.t("events.checkin.done"):e.t("events.checkin.do")})]})]}),r(oy,{ev:e,e:t})]})]})}function iy({ev:e,ctx:t,view:n,e:o,x:a}){let i=e.locale(),s=a.progress>=a.goal,l=o.state==="live",c=Math.round(Math.min(a.progress,a.goal)/a.goal*100),d=()=>{a.jump&&t.app?.openLink?.(a.jump).then(m=>{m&&n?.close?.()})};return r("div",{class:`ev-task${a.claimed||!s&&!l?" muted":""}`,children:[r("div",{class:"ev-task-m",children:[r("b",{children:Cn(a.title,i)}),r("em",{children:Cn(a.desc,i)}),!a.claimed&&c>0&&c<100&&r("div",{class:"ev-bar",children:r("i",{style:{width:`${c}%`}})})]}),r("div",{class:"ev-task-e",children:[a.reward?.length?r("span",{class:"ev-reward",children:wo(a.reward,i)}):null,r("small",{children:`${Jp(a.progress)}/${Jp(a.goal)}`})]}),a.claimed?r("span",{class:"ev-got",title:e.t("events.tasks.claim"),children:r(W,{name:"check",size:15})}):s?r("button",{type:"button",class:"ev-btn pri sm",disabled:e.busy(),onClick:()=>void e.claim(o,[a.id]),children:e.t("events.tasks.claim")}):l&&a.jump&&t.app?.openLink?r("button",{type:"button",class:"ev-btn sm",onClick:d,children:e.t("events.tasks.go")}):r("span",{class:"ev-got"})]})}var Jp=e=>e>=1e3?`${Math.round(e/100)/10}k`:String(e);function sy(e){let{ev:t,e:n}=e,o=n.tasks??[],a=o.filter(s=>s.progress>=s.goal&&!s.claimed),i=o.filter(s=>s.claimed).length;return r("section",{class:"ev-stage",children:[r("div",{class:"ev-pic",children:[r(Vr,{ev:t,e:n}),r("div",{class:"ev-scrim"})]}),r("div",{class:"ev-left",children:[r(zo,{ev:t,e:n}),r(qs,{ev:t,items:n.rewards})]}),r("div",{class:"ev-card",children:[r("div",{class:"ev-card-h",children:[r("b",{children:t.t("events.tasks.progress")}),r("small",{children:[i,"/",o.length]}),r("div",{class:"ev-bar",children:r("i",{style:{width:`${o.length?Math.round(i/o.length*100):0}%`}})})]}),r("div",{class:"ev-card-b",children:o.map(s=>r(iy,{...e,x:s},s.id))}),a.length>1&&r("div",{class:"ev-card-f",children:r("button",{type:"button",class:"ev-btn pri wide",disabled:e.ev.busy(),onClick:()=>void t.claim(n,a.map(s=>s.id)),children:t.t("events.tasks.claimAll",{n:a.length})})})]})]})}function ly(e){let[t,n]=C(!0);return X(()=>{let o=!0,a=window.amadeus?.listPlugins;return a?.().then(i=>{o&&n(i.some(s=>s.id===e))}).catch(()=>{}),()=>{o=!1}},[e]),t}function cy({ev:e,ctx:t,view:n,e:o}){let a=o.game,i=ly(a.pluginId),s=()=>{t.app?.openLink?.(`forsion://space/${a.spaceId}`).then(c=>{c&&n?.close?.()})},l=()=>{let c=oe().openFloatingPanel;c?c({id:"market",title:e.t("events.title"),builtin:"market",params:{q:a.marketSlug}}):t.app?.runCommand?.("open-market")};return r("section",{class:"ev-stage",children:[r("div",{class:"ev-pic",children:[r(Vr,{ev:e,e:o}),r("div",{class:"ev-scrim"})]}),r("div",{class:"ev-left",children:[r(zo,{ev:e,e:o}),r(qs,{ev:e,items:o.rewards})]}),r("div",{class:"ev-card narrow",children:[r("div",{class:"ev-card-h solo",children:r("b",{children:e.t("events.game.board")})}),r("div",{class:"ev-card-b",children:[a.leaderboard.length===0&&r("p",{class:"ev-empty-line",children:e.t("events.game.empty")}),a.leaderboard.map(c=>{let d=c.rank===a.me?.rank;return r("div",{class:`ev-rank${d?" me":""}`,children:[r("span",{children:c.rank}),r("em",{children:d?e.t("events.game.me"):c.name||e.t("events.game.anon")}),r("b",{children:c.score})]},c.rank)}),a.me&&!a.leaderboard.some(c=>c.rank===a.me?.rank)&&r("div",{class:"ev-rank me",children:[r("span",{children:a.me.rank}),r("em",{children:e.t("events.game.me")}),r("b",{children:a.me.score})]})]}),o.state==="live"&&r("div",{class:"ev-card-f",children:i?r("button",{type:"button",class:"ev-btn pri lg",onClick:s,children:[r(W,{name:"play",size:15}),e.t("events.game.enter")]}):r("button",{type:"button",class:"ev-btn lg",onClick:l,children:e.t("events.game.install")})})]})]})}function dy({ev:e,e:t}){let n=ie(null),o=Cn(t.body,e.locale());return X(()=>{let a=n.current;if(!a||!bi())return;let i=Zo(a),s=document.createElement("style");s.textContent=Xo;let l=document.createElement("div");return l.className="doc",l.appendChild(vi(o,"markdown")),i.replaceChildren(s,l),i.addEventListener("click",Ln),i.addEventListener("auxclick",Ln),()=>{i.removeEventListener("click",Ln),i.removeEventListener("auxclick",Ln)}},[o]),r("div",{ref:n})}function uy({ev:e,ctx:t,view:n,e:o}){let a=()=>{let i=o.cta?.url;i&&(i.startsWith("forsion://")?t.app?.openLink?.(i).then(s=>{s&&n?.close?.()}):oe().openExternal?.(i))};return r("section",{class:"ev-stage",children:[r("div",{class:"ev-pic",children:[r(Vr,{ev:e,e:o}),r("div",{class:"ev-scrim"})]}),r("div",{class:"ev-left short",children:r(zo,{ev:e,e:o})}),r("div",{class:"ev-card wide",children:[r("div",{class:"ev-card-b",children:r(dy,{ev:e,e:o})}),o.cta&&r("div",{class:"ev-card-f",children:r("button",{type:"button",class:"ev-btn wide",onClick:a,children:Cn(o.cta.label,e.locale())||e.t("events.notice.more")})})]})]})}function Us({ev:e,e:t}){return r("section",{class:"ev-stage ev-plain",children:[r("div",{class:"ev-pic",children:[r(Vr,{ev:e,e:t}),r("div",{class:"ev-scrim hi"})]}),r("div",{class:"ev-left wide",children:[r(zo,{ev:e,e:t}),r(qs,{ev:e,items:t.rewards})]})]})}function py(e){let{e:t}=e;return t.state==="upcoming"?r(Us,{...e}):t.kind==="checkin"&&t.checkin?t.state==="live"?r(ay,{...e}):r(Us,{...e}):t.kind==="tasks"?r(sy,{...e}):t.kind==="game"&&t.game?r(cy,{...e}):t.kind==="notice"?r(uy,{...e}):r(Us,{...e})}function fy({ev:e,e:t,on:n,select:o}){let a=e.locale(),i=Bs(t,e.feed()?.now??new Date().toISOString(),a),s=t.state!=="ended"&&(t.claimable>0||e.isNew(t));return r("button",{type:"button",class:`ev-ri${n?" on":""}`,"aria-current":n?"true":void 0,onClick:o,children:[r("span",{class:"ev-th",children:r(Vr,{ev:e,e:t})}),r("span",{class:"ev-rt",children:[r("b",{children:Cn(t.title,a)}),r("em",{class:i.warn?"warn":"",children:i.short})]}),s&&r("i",{class:"ev-dot","aria-label":e.t("events.dot")})]})}function my({ev:e,view:t,pane:n,setPane:o,select:a,current:i}){let s=e.groups(),l=d=>r(fy,{ev:e,e:d,on:i?.id===d.id,select:()=>a(d)},d.id),c=(d,m)=>m.length?r("div",{class:"ev-group",children:[r("div",{class:"ev-gh",children:e.t(d)}),m.map(l)]}):null;return r("aside",{class:"ev-rail",children:[t?.surface==="floating"&&r("button",{type:"button",class:"ev-back",onClick:()=>t.close?.(),children:[r(W,{name:"arrowLeft",size:15}),e.t("events.back")]}),r("div",{class:"ev-brand",children:[r("span",{class:"ev-bi",children:r(W,{name:"gift",size:16})}),r("div",{children:[r("strong",{children:e.t("events.title")}),r("small",{children:e.t("events.count",{n:s.active.length})})]})]}),n==="list"?r("div",{class:"ev-list",children:[c("events.group.active",s.active),c("events.group.notice",s.notices),c("events.group.upcoming",s.upcoming)]}):r("div",{class:"ev-list",children:r("div",{class:"ev-group",children:[r("div",{class:"ev-gh",children:e.t("events.ended")}),s.ended.map(l),s.ended.length===0&&r("p",{class:"ev-empty-line",children:e.t("events.endedEmpty")})]})}),r("button",{type:"button",class:"ev-foot",onClick:()=>o(n==="list"?"ended":"list"),children:n==="list"?r(O,{children:[e.t("events.ended"),r("span",{children:s.ended.length}),r(W,{name:"chevron",size:14})]}):r(O,{children:[r(W,{name:"back",size:14}),e.t("events.list")]})})]})}function gy({ev:e,ctx:t}){let n=e.notice();if(!n)return null;let o=oe().openFloatingPanel,a=()=>{o?o({id:"settings",title:e.t("events.title"),builtin:"settings",params:{tab:zn("backpack")}}):t.app?.openSettings?.(zn("backpack"))};return r("div",{class:`ev-notice${n.ok?"":" bad"}`,role:"status",children:[r(W,{name:n.ok?"check":"alert",size:15}),r("span",{children:n.text}),n.backpack&&(o||t.app?.openSettings)&&r("button",{type:"button",onClick:a,children:e.t("events.toast.backpack")}),r("button",{type:"button",class:"ev-x","aria-label":"\xD7",onClick:()=>e.clearNotice(),children:r(W,{name:"x",size:14})})]})}function Hs({ev:e,icon:t,text:n,action:o,run:a}){return r("div",{class:"ev-msg",children:[r(W,{name:t,size:20}),r("span",{children:n}),o&&r("button",{type:"button",class:"ev-btn pri",disabled:e.busy(),onClick:a,children:o})]})}function Kp(e){let{ev:t,view:n}=e,o=ie(null),[,a]=C(0),[i,s]=C(!1),[l,c]=C(!1),[d,m]=C("list");X(()=>t.subscribe(()=>a(h=>h+1)),[t]),X(()=>{let h=k=>{let x=typeof k?.id=="string"?k.id:"";t.refresh(k?.preview?x:"").then(()=>{x&&(t.select(x),c(!0))})};return h(n?.getParams?.()),n?.onParamsChanged?.(h)},[t,n]),X(()=>{let h=o.current;if(!h||typeof ResizeObserver>"u")return;let k=new ResizeObserver(()=>s(h.clientWidth<ry));return k.observe(h),()=>k.disconnect()},[]);let u=t.status(),p=t.selected();X(()=>{p&&u==="ready"&&t.isNew(p)&&t.select(p.id)},[p?.id,u]);let g=h=>{t.select(h.id),c(!0)},f;if(u==="signedOut")f=r(Hs,{ev:t,icon:"lock",text:t.t("events.login.title"),action:t.t("events.login.do"),run:()=>void oe().forsionLogin?.()});else if(u==="error"||u==="unavailable")f=r(Hs,{ev:t,icon:"alert",text:t.t("events.error"),action:t.t("events.retry"),run:()=>void t.refresh()});else if(u==="loading")f=r("div",{class:"ev-loading"});else if(!p)f=r(Hs,{ev:t,icon:"gift",text:t.t("events.empty")});else{let h=!i||!l,k=!i||l;f=r("div",{class:`ev-body${i?" phone":""}`,children:[h&&r(my,{...e,pane:d,setPane:m,select:g,current:i?null:p}),k&&r("div",{class:"ev-main",children:[i&&r("button",{type:"button",class:"ev-phone-back","aria-label":t.t("events.list"),onClick:()=>c(!1),children:r(W,{name:"back",size:17})}),r(py,{...e,e:p},p.id),r(gy,{...e})]})]})}return r("div",{ref:o,class:"ev-root",children:[r("style",{children:Gp}),f]})}var hy=()=>{let e=document.documentElement.dataset.window;return!e||e==="main"};function vy(e,t){let n=un(t.tangu);return!!e&&typeof e.registerView=="function"&&typeof n?.cloudFetch=="function"&&pn(n)&&(!n.mobile||!!n.extendMobile)&&(typeof e.openFloatingPanel=="function"||typeof e.openView=="function")}function Xp(e,t=window){if(!vy(e,t))return null;let n=hy(),o=jp(e,{fetchOnStart:n});e.registerView({id:Pa,title:o.t("events.title"),icon:"gift",mount:(l,c)=>(Ee(r(Kp,{ev:o,ctx:e,view:c}),l),()=>{Ee(null,l)})}),e.registerCommand?.({id:"events-open",title:()=>o.t("events.title"),keywords:"\u6D3B\u52A8 \u7B7E\u5230 \u4EFB\u52A1 \u9886\u5956 event events check-in quests",run:()=>o.open()});let a=e.app?.registerRibbonAction,i=n&&a?a({id:"events",icon:"gift",title:()=>o.t("events.title"),run:()=>o.open(),dot:{get:()=>o.hasDot(),subscribe:l=>o.subscribe(l),label:()=>o.t("events.dot")}}):null,s=o.dispose;return{...o,dispose:()=>{i?.(),s()}}}var by=new TextEncoder,q1=new TextDecoder("utf-8",{ignoreBOM:!0}),Yp=e=>by.encode(e);function Zp(e){let t="";for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}function Qp(e,t){try{let n=new URL(e);if(n.protocol!=="https:"&&n.protocol!=="http:")return null;let o=t.split(".")[1];if(!o)return null;let a=o.replace(/-/g,"+").replace(/_/g,"/"),i=Uint8Array.from(atob(a),c=>c.charCodeAt(0)),s=JSON.parse(new TextDecoder().decode(i)),l=s.userId??s.sub;return typeof l!="string"&&typeof l!="number"||!String(l).trim()?null:`${n.origin}${n.pathname.replace(/\/+$/,"")}::${String(l)}`}catch{return null}}var yy=50*1024*1024,xy=new Set(["mode","type","source","name","summary","githubRepoUrl","npmPackage","version","readme","description","tags","minAppVersion","maxAppVersion","platforms"]);function ky(e){if(!e||typeof e!="object")return null;let t=e;if(t.id!==void 0&&(typeof t.id!="string"||!/^[a-zA-Z0-9_-]{1,128}$/.test(t.id))||!t.fields||typeof t.fields!="object"||Array.isArray(t.fields))return null;let n=new FormData,o=0;for(let[a,i]of Object.entries(t.fields)){if(!xy.has(a)||typeof i!="string"||(o+=i.length,o>25e4)||t.id&&!["mode","name","summary","version","readme","description","tags","minAppVersion","maxAppVersion","platforms"].includes(a))return null;n.append(a,i)}if(t.zip!==void 0){if(!t.zip||typeof t.zip.name!="string"||!/\.zip$/i.test(t.zip.name)||!(t.zip.data instanceof Uint8Array)||!t.zip.data.byteLength||t.zip.data.byteLength>yy)return null;n.append("zip",new Blob([new Uint8Array(t.zip.data)],{type:"application/zip"}),t.zip.name.replace(/[\\/]/g,"_").slice(-255))}return{path:`${t.id?`/market/mine/${t.id}/update`:"/market/submit"}${t.dryRun===!0?"?dryRun=1":""}`,body:n}}function ef(e){e.handle("cloud:marketSubmit",async(t,n)=>{if(!e.isTrustedSender(t))return{status:0,error:"untrusted"};let o=ky(n);if(!o)return{status:400,json:{error:"invalid_request"}};let a=await e.getCloud();if(!a.token)return{status:401,error:"not_signed_in"};let i=Fn(a.base,o.path);if(!i)return{status:0,error:"no_cloud_url"};try{let s=await On(a,i,{method:"POST",body:o.body,redirect:"error",signal:AbortSignal.timeout(12e4)});return{status:s.status,json:await s.json().catch(()=>null)}}catch(s){return{status:0,error:String(s?.message||s)}}})}async function tf(e){if(!e.token)return"";try{let t=await Br(e,"POST","/api/auth/handoff",{},5e3);if(t.status===200&&typeof t.json?.code=="string"&&t.json.code)return`code=${encodeURIComponent(t.json.code)}`;if((t.status===404||t.status===405)&&!e.fetch)return`token=${encodeURIComponent(e.token)}`}catch{}return""}var wy=["membership","credits","storefront"],zy=["monthly","quarterly","yearly"],Sy=/^[A-Za-z0-9_-]{1,64}$/;function nf(e){let t={status:0,error:"untrusted"},n={ok:!1,error:"untrusted"};e.handle("auth:openAccountCenter",async(a,i)=>{if(!e.isTrustedSender(a))return n;let s=await e.getCloud(),l=s.base;if(!l)return{ok:!1};let c=i&&/^[a-z0-9-]+$/i.test(i)?`#${i}`:"",d=await tf(s),m=`${l}/account${d?`?${d}`:""}${c}`;return s.signal?.throwIfAborted(),await e.openExternal(m),{ok:!0}}),e.handle("auth:openPayCenter",async(a,i,s,l)=>{if(!e.isTrustedSender(a))return n;if(i!==void 0&&!wy.includes(i))return{ok:!1,error:"invalid_tab"};if(s!==void 0&&(typeof s!="string"||!Sy.test(s)))return{ok:!1,error:"invalid_plan"};if(l!==void 0&&!zy.includes(l))return{ok:!1,error:"invalid_period"};let c=(i??"membership")==="membership"&&s?`&plan=${encodeURIComponent(s)}${l?`&period=${l}`:""}`:"",d=await e.getCloud(),m=d.base;if(!m)return{ok:!1};let u=await tf(d),p=`${m}/pay?tab=${i??"membership"}${c}${u?`&${u}`:""}&redirect=${encodeURIComponent(`${m}/account`)}`;return d.signal?.throwIfAborted(),await e.openExternal(p),{ok:!0}}),e.handle("profile:publicOrigin",async a=>{if(!e.isTrustedSender(a))return n;let{base:i}=await e.getCloud();if(!i)return{ok:!1};try{let s=await fetch(`${i}/account`,{redirect:"manual",signal:AbortSignal.timeout(4e3)});s.body?.cancel().catch(()=>{});let l=s.status>=300&&s.status<400?s.headers.get("location"):null;return l&&/^https?:\/\//i.test(l)?{ok:!0,origin:new URL(l).origin}:{ok:!1}}catch{return{ok:!1}}});let o=()=>e.getCloud();e.handle("account:quota",async a=>{if(!e.isTrustedSender(a))return t;let i=await o();if(!i.token)return{status:401,json:null};try{return await Br(i,"GET","/api/token-quota/my",void 0,15e3)}catch(s){return{status:0,json:{detail:String(s?.message||s)}}}}),e.handle("account:useResetCard",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await o();if(!s.token)return{status:401,json:null};if(i!==void 0&&i!=="both")return{status:400,json:{error:"invalid_type",detail:`invalid reset card type: ${i}`}};let l=i??"both";try{return await Br(s,"POST","/api/token-quota/reset-card/use",{type:l},15e3)}catch(c){return{status:0,json:{detail:String(c?.message||c)}}}}),e.handle("account:bgConvert",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await o();if(!s.token)return{status:401,json:null};if(!Number.isInteger(i)||i<1||i>100)return{status:400,json:{error:"invalid_percent"}};try{return await Br(s,"POST","/api/token-quota/background/convert",{percent:i},15e3)}catch(l){return{status:0,json:{detail:String(l?.message||l)}}}}),e.handle("account:bgAutoMain",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await o();if(!s.token)return{status:401,json:null};if(typeof i!="boolean")return{status:400,json:{error:"invalid_request"}};try{return await Br(s,"POST","/api/token-quota/background/auto-main",{enabled:i},15e3)}catch(l){return{status:0,json:{detail:String(l?.message||l)}}}}),e.handle("feedback:submit",async(a,i)=>{if(!e.isTrustedSender(a))return n;let s=await e.getCloud();if(!s.base||!s.token)return{ok:!1,error:"not-logged-in"};if(i?.expectedAccountId!==void 0){let m=i.expectedAccountId;if(typeof m!="string"||!m||Qp(s.base,s.token)!==m)return{ok:!1,error:"account-changed"}}let l=(i?.description||"").trim();if(!l)return{ok:!1,error:"empty"};if(l.length>1e4)return{ok:!1,error:"description-too-long"};let c=[],d=!1;if(i?.sessionLogJson){let m=Yp(i.sessionLogJson);if(m.length>5*1024*1024)return{ok:!1,error:"attachment-too-large"};c.push({filename:i.sessionLogName||"tangu-session.json",mime_type:"application/json",size:m.length,data_base64:Zp(m)})}try{let m=await On(s,`${s.base}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:l,attachments:c}),signal:AbortSignal.timeout(2e4)});if(!m.ok){let p=`HTTP ${m.status}`;try{p=(await m.json())?.detail||p}catch{}return{ok:!1,error:p}}return{ok:!0,id:(await m.json().catch(()=>({})))?.id??null,attachmentSkipped:d}}catch(m){return{ok:!1,error:m?.message||String(m)}}}),e.handle("cloud:fetch",async(a,i)=>{if(!e.isTrustedSender(a))return{status:0,error:"untrusted"};let s=i??{},l=typeof s.path=="string"?s.path:"",c=s.projectSource===void 0?null:s.projectSource;if(c!==null&&(typeof c!="string"||!/^[a-z0-9][a-z0-9-]{0,63}$/.test(c)))return{status:0,error:"bad_project_source"};let d=Math.min(12e4,Math.max(1e3,Number(s.timeoutMs)||15e3)),m=typeof s.method=="string"?s.method.toUpperCase():"GET";if(!/^(GET|POST|PUT|PATCH|DELETE)$/.test(m))return{status:0,error:"bad_method"};if(!l.startsWith("/"))return{status:0,error:"bad_path"};let u=await e.getCloud();if(!String(u.base||""))return{status:0,error:"no_cloud_url"};let p=Fn(u.base,l);if(!p)return{status:0,error:"bad_path"};if(!u.token)return{status:401,error:"not_signed_in"};let g=s.body!==void 0&&m!=="GET"&&m!=="DELETE",f=new AbortController,h=setTimeout(()=>f.abort(),d);try{let k=await On(u,p,{method:m,headers:{...g?{"Content-Type":"application/json"}:{},...c?{"X-Project-Source":c}:{}},body:g?JSON.stringify(s.body):void 0,signal:f.signal});return{status:k.status,json:await k.json().catch(()=>null)}}catch(k){return{status:0,error:String(k?.message||k)}}finally{clearTimeout(h)}}),ef(e)}var Ws={sender:"web"},_y=new Set(["auth:openAccountCenter","auth:openPayCenter"]),rf=(e,t)=>new URL(typeof e=="string"&&e?e:t.location.origin,t.location.href).origin;function Cy(e,t=window){let n=new Map,o=!!(t.tangu?.mobile&&t.tangu.extendMobile),a=0,i=!1,s=new AbortController,l=f=>{if(i||f!==a)throw new Error("account_changed")},c=[],d={async getCloud(){let f=a,h=s.signal,k=await e.status().catch(()=>null);return l(f),{base:rf(k?.cloudUrl,t),token:k?.loggedIn?"session":"",signal:h,fetch:async(x,S)=>{l(f);let w=await e.request(x,{...S,signal:S.signal?AbortSignal.any([S.signal,h]):h});return l(f),w}}},handle:(f,h)=>{n.set(f,h)},async openExternal(f){if(o){if(!t.tangu?.openExternal)throw new Error("no_external_browser");await t.tangu.openExternal(f);return}let h=c.shift();h&&!h.closed?h.location.replace(f):t.open(f,"_blank","noopener,noreferrer")},isTrustedSender:()=>!0,log:f=>console.info("[forsion-extend]",f)};nf(d);let m=pp(d,t,{...o?{saveDownload:async(f,h)=>{if(!e.saveDownload)throw new Error("download_unavailable");let k=await e.saveDownload(f,h);if(!k.ok)throw new Error(k.error||"download_failed")},openExternal:f=>d.openExternal(f)}:{}}),u=t.tangu?.onAuthChanged?.(()=>{a++,s.abort(),s=new AbortController,m.reset();for(let f of c.splice(0))f.close()}),p=async(f,...h)=>{let k=n.get(f);if(!k)throw new Error(`No handler registered for '${f}'`);if(f==="penzor:transfers")return k(Ws,...h);let x=a;if(i)return{ok:!1,error:"disposed"};let S=T=>x===a&&!i?T:{ok:!1,error:"account_changed"};if(!_y.has(f)||o)return S(await k(Ws,...h));let w=t.open("","_blank");w&&(w.opener=null,c.push(w));try{return S(await k(Ws,...h))}finally{let T=w?c.indexOf(w):-1;T>=0&&(c.splice(T,1),w.close())}},g=t.tangu?.authStatus;return{...g?{authStatus:async()=>{let f=await g();return{...f,cloudUrl:f?.cloudUrl?rf(f.cloudUrl,t):f?.cloudUrl}}}:{},cloudInvoke:p,cloudFetch:f=>p("cloud:fetch",f),openAccountCenter:o&&t.tangu?.openAccountCenter?f=>t.tangu.openAccountCenter(f):f=>p("auth:openAccountCenter",f),openExternal:async f=>{/^https?:\/\//i.test(f)&&(o?await d.openExternal(f):t.open(f,"_blank","noopener,noreferrer"))},dispose(){i=!0,a++,s.abort(),u?.();for(let f of c.splice(0))f.close();m.dispose()}}}function of(e,t=window){let n=t.tangu;if(!Mn(n)||typeof e?.account?.request!="function"||typeof e.account.status!="function")return null;let{dispose:o,...a}=Cy(e.account,t);return vc(a),o}var Qn=e=>typeof e=="string"&&e.trim()?e.trim():null,wr=e=>(Qn(e)||"").replace(/^v(?=\d)/i,"");function Ty(e,t){let n=i=>{let s=wr(i).split("+")[0],l=s.indexOf("-");return{core:(l<0?s:s.slice(0,l)).split(".").map(d=>/^\d+$/.test(d)?Number(d):NaN),pre:l<0?[]:s.slice(l+1).split(".")}};if(!wr(e)||!wr(t))return null;let o=n(e),a=n(t);if(o.core.some(i=>!Number.isFinite(i))||a.core.some(i=>!Number.isFinite(i)))return null;for(let i=0;i<Math.max(o.core.length,a.core.length);i++){let s=(o.core[i]||0)-(a.core[i]||0);if(s)return s>0?1:-1}if(!o.pre.length||!a.pre.length)return o.pre.length===a.pre.length?0:o.pre.length?-1:1;for(let i=0;i<Math.max(o.pre.length,a.pre.length);i++){let s=o.pre[i],l=a.pre[i];if(s===void 0||l===void 0)return s===void 0?-1:1;if(s===l)continue;let c=/^\d+$/.test(s),d=/^\d+$/.test(l);return c&&d?Number(s)>Number(l)?1:-1:c!==d?c?-1:1:s>l?1:-1}return 0}var Ay=2*6e4,Ey=(e,t)=>{let n=Date.parse(String(e??"")),o=Date.parse(String(t??""));return Number.isFinite(n)&&Number.isFinite(o)&&n-o>Ay};function af(e){let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return null}return!t||typeof t!="object"||typeof t.itemId!="string"||typeof t.name!="string"?null:{itemId:t.itemId,name:t.name,type:Qn(t.type)||void 0,source:Qn(t.source)||void 0,mode:t.mode==="info"?"info":"package",from:Qn(t.from),to:Qn(t.to),tag:Qn(t.tag),fields:Array.isArray(t.fields)?t.fields.filter(n=>typeof n=="string"):void 0,listed:t.listed===!0,submittedAt:Qn(t.submittedAt)||void 0}}function sf(e,t){let n={status:"review",note:null,storeVersion:e.from,listed:!!e.listed};if(!t)return n;let o=e.mode==="info",a=t.status==="approved",i=Qn(t.version)??e.from,s=m=>!!m&&(o?m.kind==="info":m.kind!=="info"&&wr(m.version)===wr(e.to)),l=s(t.pendingUpdate)&&!Ey(t.pendingUpdate?.submittedAt,e.submittedAt),c=s(t.rejectedUpdate)&&!t.pendingUpdate,d=(m,u=null)=>({status:m,note:u&&u.trim()?u.trim():null,storeVersion:i,listed:a});if(!a)return t.status==="rejected"?d("rejected",t.reviewNote||null):d("review");if(e.listed===!1)return d("approved");if(l)return d("review");if(c)return d("rejected",t.rejectedUpdate?.note||null);if(!o){let m=Ty(t.version,e.to);return m!==null&&m>=0||(t.versions||[]).some(u=>wr(u.version)===wr(e.to))?d("approved"):d("rejected")}return d("approved")}var Py="store_submit_update",My=`
1763
+ `;var tx={checkin:"checkin",tasks:"tasks",game:"gamepad",notice:"megaphone"},nx=560;function Zo({ev:e,e:t}){let[o,r]=S(!1),a=Cf(t.artUrl,e.origin());return Y(()=>r(!1),[a]),!a||o?n("div",{class:"ev-art ev-art-empty"}):n("img",{class:"ev-art",src:a,alt:"",style:{objectPosition:`${t.focus.x*100}% ${t.focus.y*100}%`},onError:()=>r(!0)})}function Lr({ev:e,e:t}){let o=e.locale(),r=sl(t,e.feed()?.now??new Date().toISOString(),o);return n("div",{class:"ev-hd",children:[n("span",{class:"ev-kind",children:[n(F,{name:tx[t.kind],size:13}),e.t(`events.kind.${t.kind}`)]}),n("h3",{children:Ln(t.title,o)}),r.long&&n("span",{class:`ev-time${r.warn?" warn":""}`,children:[n(F,{name:"clock",size:13}),r.long]}),n("p",{class:"ev-summary",children:Ln(t.summary,o)})]})}function ul({ev:e,items:t}){return t.length?n("div",{class:"ev-tiles","aria-label":e.t("events.rewards"),children:t.map((o,r)=>{let a=Ln(o.label,e.locale())||o.kind,i=a.match(/^(.+?)\s*(×\d+)$/);return n("div",{class:"ev-tile",children:[n(F,{name:"gift",size:18}),i?n(R,{children:[n("b",{children:i[2]}),n("span",{children:i[1]})]}):n("b",{children:a})]},r)})}):null}function ox({ev:e,e:t}){let o=t.checkin,r=e.locale();return n("div",{class:`ev-days${o.days>7?" two":""}`,children:Array.from({length:o.days},(a,i)=>{let s=i<o.signed,l=i===o.signed&&!o.signedToday&&t.state==="live";return n("div",{class:`ev-day${s?" done":""}${l?" today":""}${i===o.days-1?" big":""}`,children:[n("small",{children:l?e.t("events.checkin.today"):e.t("events.checkin.day",{n:i+1})}),n("span",{class:"ev-day-ic",children:n(F,{name:s?"check":"gift",size:15})}),n("b",{children:Rr(o.rewards[i],r)})]},i)})})}function rx({ev:e,e:t}){let o=t.checkin,r=o.signed>=o.days,a=t.state==="live"&&!o.signedToday&&!r;return n("section",{class:`ev-stage ev-checkin${o.days>7?" two":""}`,children:[n("div",{class:"ev-pic",children:[n(Zo,{ev:e,e:t}),n("div",{class:"ev-scrim hi"})]}),n("div",{class:"ev-flow",children:[n("div",{class:"ev-row",children:[n(Lr,{ev:e,e:t}),n("div",{class:"ev-act",children:[n("small",{children:e.t("events.checkin.signed",{n:o.signed,total:o.days})}),n("button",{type:"button",class:"ev-btn pri",disabled:!a||e.busy(),onClick:()=>void e.checkin(t),children:r?e.t("events.checkin.finished"):o.signedToday?e.t("events.checkin.done"):e.t("events.checkin.do")})]})]}),n(ox,{ev:e,e:t})]})]})}function ax({ev:e,ctx:t,view:o,e:r,x:a}){let i=e.locale(),s=a.progress>=a.goal,l=r.state==="live",c=Math.round(Math.min(a.progress,a.goal)/a.goal*100),d=()=>{a.jump&&t.app?.openLink?.(a.jump).then(f=>{f&&o?.close?.()})};return n("div",{class:`ev-task${a.claimed||!s&&!l?" muted":""}`,children:[n("div",{class:"ev-task-m",children:[n("b",{children:Ln(a.title,i)}),n("em",{children:Ln(a.desc,i)}),!a.claimed&&c>0&&c<100&&n("div",{class:"ev-bar",children:n("i",{style:{width:`${c}%`}})})]}),n("div",{class:"ev-task-e",children:[a.reward?.length?n("span",{class:"ev-reward",children:Rr(a.reward,i)}):null,n("small",{children:`${Ef(a.progress)}/${Ef(a.goal)}`})]}),a.claimed?n("span",{class:"ev-got",title:e.t("events.tasks.claim"),children:n(F,{name:"check",size:15})}):s?n("button",{type:"button",class:"ev-btn pri sm",disabled:e.busy(),onClick:()=>void e.claim(r,[a.id]),children:e.t("events.tasks.claim")}):l&&a.jump&&t.app?.openLink?n("button",{type:"button",class:"ev-btn sm",onClick:d,children:e.t("events.tasks.go")}):n("span",{class:"ev-got"})]})}var Ef=e=>e>=1e3?`${Math.round(e/100)/10}k`:String(e);function ix(e){let{ev:t,e:o}=e,r=o.tasks??[],a=r.filter(s=>s.progress>=s.goal&&!s.claimed),i=r.filter(s=>s.claimed).length;return n("section",{class:"ev-stage",children:[n("div",{class:"ev-pic",children:[n(Zo,{ev:t,e:o}),n("div",{class:"ev-scrim"})]}),n("div",{class:"ev-left",children:[n(Lr,{ev:t,e:o}),n(ul,{ev:t,items:o.rewards})]}),n("div",{class:"ev-card",children:[n("div",{class:"ev-card-h",children:[n("b",{children:t.t("events.tasks.progress")}),n("small",{children:[i,"/",r.length]}),n("div",{class:"ev-bar",children:n("i",{style:{width:`${r.length?Math.round(i/r.length*100):0}%`}})})]}),n("div",{class:"ev-card-b",children:r.map(s=>n(ax,{...e,x:s},s.id))}),a.length>1&&n("div",{class:"ev-card-f",children:n("button",{type:"button",class:"ev-btn pri wide",disabled:e.ev.busy(),onClick:()=>void t.claim(o,a.map(s=>s.id)),children:t.t("events.tasks.claimAll",{n:a.length})})})]})]})}function sx(e){let[t,o]=S(!0);return Y(()=>{let r=!0,a=window.amadeus?.listPlugins;return a?.().then(i=>{r&&o(i.some(s=>s.id===e))}).catch(()=>{}),()=>{r=!1}},[e]),t}function lx({ev:e,ctx:t,view:o,e:r}){let a=r.game,i=sx(a.pluginId),s=()=>{t.app?.openLink?.(`forsion://space/${a.spaceId}`).then(c=>{c&&o?.close?.()})},l=()=>{let c=te().openFloatingPanel;c?c({id:"market",title:e.t("events.title"),builtin:"market",params:{q:a.marketSlug}}):t.app?.runCommand?.("open-market")};return n("section",{class:"ev-stage",children:[n("div",{class:"ev-pic",children:[n(Zo,{ev:e,e:r}),n("div",{class:"ev-scrim"})]}),n("div",{class:"ev-left",children:[n(Lr,{ev:e,e:r}),n(ul,{ev:e,items:r.rewards})]}),n("div",{class:"ev-card narrow",children:[n("div",{class:"ev-card-h solo",children:n("b",{children:e.t("events.game.board")})}),n("div",{class:"ev-card-b",children:[a.leaderboard.length===0&&n("p",{class:"ev-empty-line",children:e.t("events.game.empty")}),a.leaderboard.map(c=>{let d=c.rank===a.me?.rank;return n("div",{class:`ev-rank${d?" me":""}`,children:[n("span",{children:c.rank}),n("em",{children:d?e.t("events.game.me"):c.name||e.t("events.game.anon")}),n("b",{children:c.score})]},c.rank)}),a.me&&!a.leaderboard.some(c=>c.rank===a.me?.rank)&&n("div",{class:"ev-rank me",children:[n("span",{children:a.me.rank}),n("em",{children:e.t("events.game.me")}),n("b",{children:a.me.score})]})]}),r.state==="live"&&n("div",{class:"ev-card-f",children:i?n("button",{type:"button",class:"ev-btn pri lg",onClick:s,children:[n(F,{name:"play",size:15}),e.t("events.game.enter")]}):n("button",{type:"button",class:"ev-btn lg",onClick:l,children:e.t("events.game.install")})})]})]})}function cx({ev:e,e:t}){let o=ie(null),r=Ln(t.body,e.locale());return Y(()=>{let a=o.current;if(!a||!Ri())return;let i=ca(a),s=document.createElement("style");s.textContent=sa;let l=document.createElement("div");return l.className="doc",l.appendChild(Ii(r,"markdown")),i.replaceChildren(s,l),i.addEventListener("click",Bn),i.addEventListener("auxclick",Bn),()=>{i.removeEventListener("click",Bn),i.removeEventListener("auxclick",Bn)}},[r]),n("div",{ref:o})}function dx({ev:e,ctx:t,view:o,e:r}){let a=()=>{let i=r.cta?.url;i&&(i.startsWith("forsion://")?t.app?.openLink?.(i).then(s=>{s&&o?.close?.()}):te().openExternal?.(i))};return n("section",{class:"ev-stage",children:[n("div",{class:"ev-pic",children:[n(Zo,{ev:e,e:r}),n("div",{class:"ev-scrim"})]}),n("div",{class:"ev-left short",children:n(Lr,{ev:e,e:r})}),n("div",{class:"ev-card wide",children:[n("div",{class:"ev-card-b",children:n(cx,{ev:e,e:r})}),r.cta&&n("div",{class:"ev-card-f",children:n("button",{type:"button",class:"ev-btn wide",onClick:a,children:Ln(r.cta.label,e.locale())||e.t("events.notice.more")})})]})]})}function cl({ev:e,e:t}){return n("section",{class:"ev-stage ev-plain",children:[n("div",{class:"ev-pic",children:[n(Zo,{ev:e,e:t}),n("div",{class:"ev-scrim hi"})]}),n("div",{class:"ev-left wide",children:[n(Lr,{ev:e,e:t}),n(ul,{ev:e,items:t.rewards})]})]})}function ux(e){let{e:t}=e;return t.state==="upcoming"?n(cl,{...e}):t.kind==="checkin"&&t.checkin?t.state==="live"?n(rx,{...e}):n(cl,{...e}):t.kind==="tasks"?n(ix,{...e}):t.kind==="game"&&t.game?n(lx,{...e}):t.kind==="notice"?n(dx,{...e}):n(cl,{...e})}function px({ev:e,e:t,on:o,select:r}){let a=e.locale(),i=sl(t,e.feed()?.now??new Date().toISOString(),a),s=e.dotFor(t);return n("button",{type:"button",class:`ev-ri${o?" on":""}`,"aria-current":o?"true":void 0,onClick:r,children:[n("span",{class:"ev-th",children:n(Zo,{ev:e,e:t})}),n("span",{class:"ev-rt",children:[n("b",{children:Ln(t.title,a)}),n("em",{class:i.warn?"warn":"",children:i.short})]}),s&&n("i",{class:"ev-dot","aria-label":e.t("events.dot")})]})}function fx({ev:e,view:t,pane:o,setPane:r,select:a,current:i}){let s=e.groups(),l=d=>n(px,{ev:e,e:d,on:i?.id===d.id,select:()=>a(d)},d.id),c=(d,f)=>f.length?n("div",{class:"ev-group",children:[n("div",{class:"ev-gh",children:e.t(d)}),f.map(l)]}):null;return n("aside",{class:"ev-rail",children:[t?.surface==="floating"&&n("button",{type:"button",class:"ev-back",onClick:()=>t.close?.(),children:[n(F,{name:"arrowLeft",size:15}),e.t("events.back")]}),n("div",{class:"ev-brand",children:[n("span",{class:"ev-bi",children:n(F,{name:"gift",size:16})}),n("div",{children:[n("strong",{children:e.t("events.title")}),n("small",{children:e.t("events.count",{n:s.active.length})})]})]}),o==="list"?n("div",{class:"ev-list",children:[c("events.group.active",s.active),c("events.group.notice",s.notices),c("events.group.upcoming",s.upcoming)]}):n("div",{class:"ev-list",children:n("div",{class:"ev-group",children:[n("div",{class:"ev-gh",children:e.t("events.ended")}),s.ended.map(l),s.ended.length===0&&n("p",{class:"ev-empty-line",children:e.t("events.endedEmpty")})]})}),n("button",{type:"button",class:"ev-foot",onClick:()=>r(o==="list"?"ended":"list"),children:o==="list"?n(R,{children:[e.t("events.ended"),n("span",{children:s.ended.length}),n(F,{name:"chevron",size:14})]}):n(R,{children:[n(F,{name:"back",size:14}),e.t("events.list")]})})]})}function mx({ev:e,ctx:t}){let o=e.notice();if(!o)return null;let r=te().openFloatingPanel,a=()=>{r?r({id:"settings",title:e.t("events.title"),builtin:"settings",params:{tab:Mn("backpack")}}):t.app?.openSettings?.(Mn("backpack"))};return n("div",{class:`ev-notice${o.ok?"":" bad"}`,role:"status",children:[n(F,{name:o.ok?"check":"alert",size:15}),n("span",{children:o.text}),o.backpack&&(r||t.app?.openSettings)&&n("button",{type:"button",onClick:a,children:e.t("events.toast.backpack")}),n("button",{type:"button",class:"ev-x","aria-label":"\xD7",onClick:()=>e.clearNotice(),children:n(F,{name:"x",size:14})})]})}function dl({ev:e,icon:t,text:o,action:r,run:a}){return n("div",{class:"ev-msg",children:[n(F,{name:t,size:20}),n("span",{children:o}),r&&n("button",{type:"button",class:"ev-btn pri",disabled:e.busy(),onClick:a,children:r})]})}function Pf(e){let{ev:t,view:o}=e,r=ie(null),[,a]=S(0),[i,s]=S(!1),[l,c]=S(!1),[d,f]=S("list");Y(()=>t.subscribe(()=>a(k=>k+1)),[t]),Y(()=>{let k=y=>{let x=typeof y?.id=="string"?y.id:"";t.refresh(y?.preview?x:"").then(()=>{x&&(t.select(x),c(!0))})};return k(o?.getParams?.()),o?.onParamsChanged?.(k)},[t,o]),Y(()=>{let k=r.current;if(!k||typeof ResizeObserver>"u")return;let y=new ResizeObserver(()=>s(k.clientWidth<nx));return y.observe(k),()=>y.disconnect()},[]);let u=t.status(),p=t.selected(),m=t.fresh();Y(()=>{p&&u==="ready"&&m&&t.needsSeen(p)&&t.select(p.id)},[p?.id,u,m]);let g=k=>{t.select(k.id),c(!0)},h;if(u==="signedOut")h=n(dl,{ev:t,icon:"lock",text:t.t("events.login.title"),action:t.t("events.login.do"),run:()=>void te().forsionLogin?.()});else if(u==="error"||u==="unavailable")h=n(dl,{ev:t,icon:"alert",text:t.t("events.error"),action:t.t("events.retry"),run:()=>void t.refresh()});else if(u==="loading")h=n("div",{class:"ev-loading"});else if(!p)h=n(dl,{ev:t,icon:"gift",text:t.t("events.empty")});else{let k=!i||!l,y=!i||l;h=n("div",{class:`ev-body${i?" phone":""}`,children:[k&&n(fx,{...e,pane:d,setPane:f,select:g,current:i?null:p}),y&&n("div",{class:"ev-main",children:[i&&n("button",{type:"button",class:"ev-phone-back","aria-label":t.t("events.list"),onClick:()=>c(!1),children:n(F,{name:"back",size:17})}),n(ux,{...e,e:p},p.id),n(mx,{...e})]})]})}return n("div",{ref:r,class:"ev-root",children:[n("style",{children:Tf}),h]})}var gx=()=>{let e=document.documentElement.dataset.window;return!e||e==="main"};function hx(e,t){let o=an(t.tangu);return!!e&&typeof e.registerView=="function"&&typeof o?.cloudFetch=="function"&&sn(o)&&(!o.mobile||!!o.extendMobile)&&(typeof e.openFloatingPanel=="function"||typeof e.openView=="function")}function Mf(e,t=window){if(!hx(e,t))return null;let o=gx(),r=Af(e,{fetchOnStart:o});e.registerView({id:Va,title:r.t("events.title"),icon:"gift",mount:(l,c)=>(Re(n(Pf,{ev:r,ctx:e,view:c}),l),()=>{Re(null,l)})}),e.registerCommand?.({id:"events-open",title:()=>r.t("events.title"),keywords:"\u6D3B\u52A8 \u7B7E\u5230 \u4EFB\u52A1 \u9886\u5956 event events check-in quests",run:()=>r.open()});let a=e.app?.registerRibbonAction,i=o&&a?a({id:"events",icon:"gift",title:()=>r.t("events.title"),run:()=>r.open(),dot:{get:()=>r.hasDot(),subscribe:l=>r.subscribe(l),label:()=>r.t("events.dot")}}):null,s=r.dispose;return{...r,dispose:()=>{i?.(),s()}}}var bx=new TextEncoder,p_=new TextDecoder("utf-8",{ignoreBOM:!0}),If=e=>bx.encode(e);function Rf(e){let t="";for(let o=0;o<e.length;o+=32768)t+=String.fromCharCode(...e.subarray(o,o+32768));return btoa(t)}function Lf(e,t){try{let o=new URL(e);if(o.protocol!=="https:"&&o.protocol!=="http:")return null;let r=t.split(".")[1];if(!r)return null;let a=r.replace(/-/g,"+").replace(/_/g,"/"),i=Uint8Array.from(atob(a),c=>c.charCodeAt(0)),s=JSON.parse(new TextDecoder().decode(i)),l=s.userId??s.sub;return typeof l!="string"&&typeof l!="number"||!String(l).trim()?null:`${o.origin}${o.pathname.replace(/\/+$/,"")}::${String(l)}`}catch{return null}}var vx=50*1024*1024,yx=new Set(["mode","type","source","name","summary","githubRepoUrl","npmPackage","version","readme","description","tags","minAppVersion","maxAppVersion","platforms"]);function xx(e){if(!e||typeof e!="object")return null;let t=e;if(t.id!==void 0&&(typeof t.id!="string"||!/^[a-zA-Z0-9_-]{1,128}$/.test(t.id))||!t.fields||typeof t.fields!="object"||Array.isArray(t.fields))return null;let o=new FormData,r=0;for(let[a,i]of Object.entries(t.fields)){if(!yx.has(a)||typeof i!="string"||(r+=i.length,r>25e4)||t.id&&!["mode","name","summary","version","readme","description","tags","minAppVersion","maxAppVersion","platforms"].includes(a))return null;o.append(a,i)}if(t.zip!==void 0){if(!t.zip||typeof t.zip.name!="string"||!/\.zip$/i.test(t.zip.name)||!(t.zip.data instanceof Uint8Array)||!t.zip.data.byteLength||t.zip.data.byteLength>vx)return null;o.append("zip",new Blob([new Uint8Array(t.zip.data)],{type:"application/zip"}),t.zip.name.replace(/[\\/]/g,"_").slice(-255))}return{path:`${t.id?`/market/mine/${t.id}/update`:"/market/submit"}${t.dryRun===!0?"?dryRun=1":""}`,body:o}}function Df(e){e.handle("cloud:marketSubmit",async(t,o)=>{if(!e.isTrustedSender(t))return{status:0,error:"untrusted"};let r=xx(o);if(!r)return{status:400,json:{error:"invalid_request"}};let a=await e.getCloud();if(!a.token)return{status:401,error:"not_signed_in"};let i=Vn(a.base,r.path);if(!i)return{status:0,error:"no_cloud_url"};try{let s=await qn(a,i,{method:"POST",body:r.body,redirect:"error",signal:AbortSignal.timeout(12e4)});return{status:s.status,json:await s.json().catch(()=>null)}}catch(s){return{status:0,error:String(s?.message||s)}}})}async function Nf(e){if(!e.token)return"";try{let t=await jo(e,"POST","/api/auth/handoff",{},5e3);if(t.status===200&&typeof t.json?.code=="string"&&t.json.code)return`code=${encodeURIComponent(t.json.code)}`;if((t.status===404||t.status===405)&&!e.fetch)return`token=${encodeURIComponent(e.token)}`}catch{}return""}var kx=["membership","credits","storefront"],wx=["monthly","quarterly","yearly"],zx=/^[A-Za-z0-9_-]{1,64}$/;function Of(e){let t={status:0,error:"untrusted"},o={ok:!1,error:"untrusted"};e.handle("auth:openAccountCenter",async(a,i)=>{if(!e.isTrustedSender(a))return o;let s=await e.getCloud(),l=s.base;if(!l)return{ok:!1};let c=i&&/^[a-z0-9-]+$/i.test(i)?`#${i}`:"",d=await Nf(s),f=`${l}/account${d?`?${d}`:""}${c}`;return s.signal?.throwIfAborted(),await e.openExternal(f),{ok:!0}}),e.handle("auth:openPayCenter",async(a,i,s,l)=>{if(!e.isTrustedSender(a))return o;if(i!==void 0&&!kx.includes(i))return{ok:!1,error:"invalid_tab"};if(s!==void 0&&(typeof s!="string"||!zx.test(s)))return{ok:!1,error:"invalid_plan"};if(l!==void 0&&!wx.includes(l))return{ok:!1,error:"invalid_period"};let c=(i??"membership")==="membership"&&s?`&plan=${encodeURIComponent(s)}${l?`&period=${l}`:""}`:"",d=await e.getCloud(),f=d.base;if(!f)return{ok:!1};let u=await Nf(d),p=`${f}/pay?tab=${i??"membership"}${c}${u?`&${u}`:""}&redirect=${encodeURIComponent(`${f}/account`)}`;return d.signal?.throwIfAborted(),await e.openExternal(p),{ok:!0}}),e.handle("profile:publicOrigin",async a=>{if(!e.isTrustedSender(a))return o;let{base:i}=await e.getCloud();if(!i)return{ok:!1};try{let s=await fetch(`${i}/account`,{redirect:"manual",signal:AbortSignal.timeout(4e3)});s.body?.cancel().catch(()=>{});let l=s.status>=300&&s.status<400?s.headers.get("location"):null;return l&&/^https?:\/\//i.test(l)?{ok:!0,origin:new URL(l).origin}:{ok:!1}}catch{return{ok:!1}}});let r=()=>e.getCloud();e.handle("account:quota",async a=>{if(!e.isTrustedSender(a))return t;let i=await r();if(!i.token)return{status:401,json:null};try{return await jo(i,"GET","/api/token-quota/my",void 0,15e3)}catch(s){return{status:0,json:{detail:String(s?.message||s)}}}}),e.handle("account:useResetCard",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await r();if(!s.token)return{status:401,json:null};if(i!==void 0&&i!=="both")return{status:400,json:{error:"invalid_type",detail:`invalid reset card type: ${i}`}};let l=i??"both";try{return await jo(s,"POST","/api/token-quota/reset-card/use",{type:l},15e3)}catch(c){return{status:0,json:{detail:String(c?.message||c)}}}}),e.handle("account:bgConvert",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await r();if(!s.token)return{status:401,json:null};if(!Number.isInteger(i)||i<1||i>100)return{status:400,json:{error:"invalid_percent"}};try{return await jo(s,"POST","/api/token-quota/background/convert",{percent:i},15e3)}catch(l){return{status:0,json:{detail:String(l?.message||l)}}}}),e.handle("account:bgAutoMain",async(a,i)=>{if(!e.isTrustedSender(a))return t;let s=await r();if(!s.token)return{status:401,json:null};if(typeof i!="boolean")return{status:400,json:{error:"invalid_request"}};try{return await jo(s,"POST","/api/token-quota/background/auto-main",{enabled:i},15e3)}catch(l){return{status:0,json:{detail:String(l?.message||l)}}}}),e.handle("feedback:submit",async(a,i)=>{if(!e.isTrustedSender(a))return o;let s=await e.getCloud();if(!s.base||!s.token)return{ok:!1,error:"not-logged-in"};if(i?.expectedAccountId!==void 0){let f=i.expectedAccountId;if(typeof f!="string"||!f||Lf(s.base,s.token)!==f)return{ok:!1,error:"account-changed"}}let l=(i?.description||"").trim();if(!l)return{ok:!1,error:"empty"};if(l.length>1e4)return{ok:!1,error:"description-too-long"};let c=[],d=!1;if(i?.sessionLogJson){let f=If(i.sessionLogJson);if(f.length>5*1024*1024)return{ok:!1,error:"attachment-too-large"};c.push({filename:i.sessionLogName||"tangu-session.json",mime_type:"application/json",size:f.length,data_base64:Rf(f)})}try{let f=await qn(s,`${s.base}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:l,attachments:c}),signal:AbortSignal.timeout(2e4)});if(!f.ok){let p=`HTTP ${f.status}`;try{p=(await f.json())?.detail||p}catch{}return{ok:!1,error:p}}return{ok:!0,id:(await f.json().catch(()=>({})))?.id??null,attachmentSkipped:d}}catch(f){return{ok:!1,error:f?.message||String(f)}}}),e.handle("cloud:fetch",async(a,i)=>{if(!e.isTrustedSender(a))return{status:0,error:"untrusted"};let s=i??{},l=typeof s.path=="string"?s.path:"",c=s.projectSource===void 0?null:s.projectSource;if(c!==null&&(typeof c!="string"||!/^[a-z0-9][a-z0-9-]{0,63}$/.test(c)))return{status:0,error:"bad_project_source"};let d=Math.min(12e4,Math.max(1e3,Number(s.timeoutMs)||15e3)),f=typeof s.method=="string"?s.method.toUpperCase():"GET";if(!/^(GET|POST|PUT|PATCH|DELETE)$/.test(f))return{status:0,error:"bad_method"};if(!l.startsWith("/"))return{status:0,error:"bad_path"};let u=await e.getCloud();if(!String(u.base||""))return{status:0,error:"no_cloud_url"};let p=Vn(u.base,l);if(!p)return{status:0,error:"bad_path"};if(!u.token)return{status:401,error:"not_signed_in"};let m=s.body!==void 0&&f!=="GET"&&f!=="DELETE",g=new AbortController,h=setTimeout(()=>g.abort(),d);try{let k=await qn(u,p,{method:f,headers:{...m?{"Content-Type":"application/json"}:{},...c?{"X-Project-Source":c}:{}},body:m?JSON.stringify(s.body):void 0,signal:g.signal});return{status:k.status,json:await k.json().catch(()=>null)}}catch(k){return{status:0,error:String(k?.message||k)}}finally{clearTimeout(h)}}),Df(e)}var pl={sender:"web"},Sx=new Set(["auth:openAccountCenter","auth:openPayCenter"]),Ff=(e,t)=>new URL(typeof e=="string"&&e?e:t.location.origin,t.location.href).origin;function _x(e,t=window){let o=new Map,r=!!(t.tangu?.mobile&&t.tangu.extendMobile),a=0,i=!1,s=new AbortController,l=g=>{if(i||g!==a)throw new Error("account_changed")},c=[],d={async getCloud(){let g=a,h=s.signal,k=await e.status().catch(()=>null);return l(g),{base:Ff(k?.cloudUrl,t),token:k?.loggedIn?"session":"",signal:h,fetch:async(y,x)=>{l(g);let w=await e.request(y,{...x,signal:x.signal?AbortSignal.any([x.signal,h]):h});return l(g),w}}},handle:(g,h)=>{o.set(g,h)},async openExternal(g){if(r){if(!t.tangu?.openExternal)throw new Error("no_external_browser");await t.tangu.openExternal(g);return}let h=c.shift();h&&!h.closed?h.location.replace(g):t.open(g,"_blank","noopener,noreferrer")},isTrustedSender:()=>!0,log:g=>console.info("[forsion-extend]",g)};Of(d);let f=Hp(d,t,{...r?{saveDownload:async(g,h)=>{if(!e.saveDownload)throw new Error("download_unavailable");let k=await e.saveDownload(g,h);if(!k.ok)throw new Error(k.error||"download_failed")},openExternal:g=>d.openExternal(g)}:{}}),u=t.tangu?.onAuthChanged?.(()=>{a++,s.abort(),s=new AbortController,f.reset();for(let g of c.splice(0))g.close()}),p=async(g,...h)=>{let k=o.get(g);if(!k)throw new Error(`No handler registered for '${g}'`);if(g==="penzor:transfers")return k(pl,...h);let y=a;if(i)return{ok:!1,error:"disposed"};let x=C=>y===a&&!i?C:{ok:!1,error:"account_changed"};if(!Sx.has(g)||r)return x(await k(pl,...h));let w=t.open("","_blank");w&&(w.opener=null,c.push(w));try{return x(await k(pl,...h))}finally{let C=w?c.indexOf(w):-1;C>=0&&(c.splice(C,1),w.close())}},m=t.tangu?.authStatus;return{...m?{authStatus:async()=>{let g=await m();return{...g,cloudUrl:g?.cloudUrl?Ff(g.cloudUrl,t):g?.cloudUrl}}}:{},cloudInvoke:p,cloudFetch:g=>p("cloud:fetch",g),openAccountCenter:r&&t.tangu?.openAccountCenter?g=>t.tangu.openAccountCenter(g):g=>p("auth:openAccountCenter",g),openExternal:async g=>{/^https?:\/\//i.test(g)&&(r?await d.openExternal(g):t.open(g,"_blank","noopener,noreferrer"))},dispose(){i=!0,a++,s.abort(),u?.();for(let g of c.splice(0))g.close();f.dispose()}}}function $f(e,t=window){let o=t.tangu;if(!wn(o)||typeof e?.account?.request!="function"||typeof e.account.status!="function")return null;let{dispose:r,...a}=_x(e.account,t);return $c(a),r}var oo=e=>typeof e=="string"&&e.trim()?e.trim():null,Co=e=>(oo(e)||"").replace(/^v(?=\d)/i,"");function Cx(e,t){let o=i=>{let s=Co(i).split("+")[0],l=s.indexOf("-");return{core:(l<0?s:s.slice(0,l)).split(".").map(d=>/^\d+$/.test(d)?Number(d):NaN),pre:l<0?[]:s.slice(l+1).split(".")}};if(!Co(e)||!Co(t))return null;let r=o(e),a=o(t);if(r.core.some(i=>!Number.isFinite(i))||a.core.some(i=>!Number.isFinite(i)))return null;for(let i=0;i<Math.max(r.core.length,a.core.length);i++){let s=(r.core[i]||0)-(a.core[i]||0);if(s)return s>0?1:-1}if(!r.pre.length||!a.pre.length)return r.pre.length===a.pre.length?0:r.pre.length?-1:1;for(let i=0;i<Math.max(r.pre.length,a.pre.length);i++){let s=r.pre[i],l=a.pre[i];if(s===void 0||l===void 0)return s===void 0?-1:1;if(s===l)continue;let c=/^\d+$/.test(s),d=/^\d+$/.test(l);return c&&d?Number(s)>Number(l)?1:-1:c!==d?c?-1:1:s>l?1:-1}return 0}var Ax=2*6e4,Tx=(e,t)=>{let o=Date.parse(String(e??"")),r=Date.parse(String(t??""));return Number.isFinite(o)&&Number.isFinite(r)&&o-r>Ax};function Bf(e){let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return null}return!t||typeof t!="object"||typeof t.itemId!="string"||typeof t.name!="string"?null:{itemId:t.itemId,name:t.name,type:oo(t.type)||void 0,source:oo(t.source)||void 0,mode:t.mode==="info"?"info":"package",from:oo(t.from),to:oo(t.to),tag:oo(t.tag),fields:Array.isArray(t.fields)?t.fields.filter(o=>typeof o=="string"):void 0,listed:t.listed===!0,submittedAt:oo(t.submittedAt)||void 0}}function Uf(e,t){let o={status:"review",note:null,storeVersion:e.from,listed:!!e.listed};if(!t)return o;let r=e.mode==="info",a=t.status==="approved",i=oo(t.version)??e.from,s=f=>!!f&&(r?f.kind==="info":f.kind!=="info"&&Co(f.version)===Co(e.to)),l=s(t.pendingUpdate)&&!Tx(t.pendingUpdate?.submittedAt,e.submittedAt),c=s(t.rejectedUpdate)&&!t.pendingUpdate,d=(f,u=null)=>({status:f,note:u&&u.trim()?u.trim():null,storeVersion:i,listed:a});if(!a)return t.status==="rejected"?d("rejected",t.reviewNote||null):d("review");if(e.listed===!1)return d("approved");if(l)return d("review");if(c)return d("rejected",t.rejectedUpdate?.note||null);if(!r){let f=Cx(t.version,e.to);return f!==null&&f>=0||(t.versions||[]).some(u=>Co(u.version)===Co(e.to))?d("approved"):d("rejected")}return d("approved")}var Ex="store_submit_update",Px=`
1627
1764
  .fx-su { padding: 4px 2px 2px; color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
1628
1765
  .fx-su .fx-su-top { display: flex; align-items: center; gap: 11px; min-width: 0; }
1629
1766
  .fx-su .fx-su-ic { width: 32px; height: 32px; display: grid; place-items: center; flex-shrink: 0; border-radius: var(--radius-sm); background: var(--overlay-light); color: var(--text-light); }
@@ -1639,8 +1776,8 @@ Content-Type: ${o}\r
1639
1776
  .fx-su .fx-su-meta { color: var(--text-faint); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
1640
1777
  .fx-su .fx-su-note { margin-top: 8px; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--overlay-light); color: var(--text-light); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); white-space: pre-wrap; overflow-wrap: anywhere; }
1641
1778
  .fx-su .fx-su-acts { display: flex; justify-content: flex-end; gap: 7px; margin-top: 10px; }
1642
- `,Ry={plugin:"puzzle","amadeus-plugin":"puzzle",skill:"sparkles",agent:"bot",space:"grid",theme:"palette"},Iy=new Set(["plugin","amadeus-plugin","skill","agent","space","theme"]),lf={name:"sub.name",summary:"sub.summary",description:"sub.description",tags:"sub.tags",minAppVersion:"sub.minAppVersion",maxAppVersion:"sub.maxAppVersion",platforms:"sub.platforms"},Ly=e=>e==="github"?"su.source.github":e==="npm"?"su.source.npm":e==="zip"?"su.source.zip":null;function Dy(e){let{sub:t,view:n,t:o,locale:a,onOpenSubmission:i}=e,s=t.type&&Iy.has(t.type)?o(`sub.type.${t.type.replace("-","_")}`):null,l=Ly(t.source),c=[s,l&&o(l)].filter(Boolean).join(" \xB7 "),d=n.status==="approved"?r("span",{class:"fx-su-pill is-ok",children:o("su.approved")}):n.status==="rejected"?r("span",{class:"fx-su-pill is-no",children:o("su.rejected")}):r("span",{class:"fx-su-pill",children:o("su.review")}),m=t.mode==="package"?t.source==="github"&&t.tag?o("su.viaGithub",{tag:t.tag}):t.source==="npm"&&t.to?o("su.viaNpm",{version:t.to}):"":"",u=(t.fields||[]).map(f=>lf[f]?o(lf[f]):f),p=t.submittedAt?Lt(t.submittedAt,a):null,g=n.status==="review"?p?o("su.metaReview",{time:p}):o("su.metaReviewNoTime"):n.status==="approved"?t.mode==="info"?o("su.metaApprovedInfo"):o("su.metaApproved",{version:n.storeVersion||t.to||""}):n.listed&&n.storeVersion?o("su.metaRejected",{version:n.storeVersion}):o("su.metaRejectedUnlisted");return r("div",{class:"fx-su","data-fx-store-update":n.status,children:[r("style",{children:My}),r("div",{class:"fx-su-top",children:[r("span",{class:"fx-su-ic",children:r(W,{name:Ry[t.type||""]||"box",size:18})}),r("div",{class:"fx-su-id",children:[r("div",{class:"fx-su-name",children:t.name}),c&&r("div",{class:"fx-su-sub",children:c})]}),d]}),t.mode==="package"?r("div",{class:"fx-su-ver",children:[t.from&&r(O,{children:[r("span",{class:"fx-su-from",children:t.from}),r("span",{"aria-hidden":"true",children:"\u2192"})]}),r("span",{class:"fx-su-to",children:t.to}),m&&r("span",{class:"fx-su-meta",children:m})]}):r("div",{class:"fx-su-ver",children:[r("span",{class:"fx-su-to",children:o("su.infoOnly")}),!!u.length&&r("span",{class:"fx-su-meta",children:u.join(o("su.listSep"))})]}),r("div",{class:"fx-su-meta",children:g}),n.status==="rejected"&&n.note&&r("div",{class:"fx-su-note",children:n.note}),n.status!=="approved"&&i&&r("div",{class:"fx-su-acts",children:r("button",{type:"button",class:"btn sm",onClick:i,children:o("su.openSubmission")})})]})}function Ny(e){let{ctx:t,sub:n,call:o}=e,[a,i]=C(()=>De(t.getLocale?.())),s=(()=>{try{return o.state?.get()}catch{return}})(),[l,c]=C(s?.item??null);X(()=>{i(De(t.getLocale?.()));let u=t.subscribeLocale?.(p=>i(De(p)));return()=>{typeof u=="function"&&u()}},[t]),X(()=>{let u=!0;return Z("/market/mine").then(p=>{if(!u||!p.ok)return;let g=(p.data?.items||[]).find(f=>f&&f.id===n.itemId)||null;if(g){c(g);try{o.state?.set({item:g})}catch{}}}),()=>{u=!1}},[n.itemId]);let d=t.app?.openSettings,m=typeof d=="function"?()=>{ou(n.itemId),d.call(t.app,zn("submission"))}:null;return r(Dy,{sub:n,view:sf(n,l),t:In(a),locale:a,onOpenSubmission:m})}function cf(e){return!e||typeof e.registerToolResultRenderer!="function"?!1:(e.registerToolResultRenderer({tool:Py,title:()=>xe(De(e.getLocale?.()),"su.title"),mount(t,n){let o=af(n?.result);if(!o)throw new Error("store_submit_update: unexpected result shape");return Ee(r(Ny,{ctx:e,sub:o,call:n}),t),()=>{Ee(null,t)}}}),!0)}var df={unknown:{key:"wc.pill.published",tone:"neutral"},live:{key:"wc.pill.live",tone:"ok"},pending:{key:"wc.pill.review",tone:"neutral"},approved:{key:"wc.pill.listed",tone:"ok"},rejected:{key:"wc.pill.rejected",tone:"danger"},disabled:{key:"web.disabled",tone:"danger"},gone:{key:"wc.pill.gone",tone:"muted"}};function js(e){if(e===void 0)return"unknown";if(e===null)return"gone";if(e.status==="disabled")return"disabled";let t=e.listing_status;return t==="pending"||t==="approved"||t==="rejected"?t:"live"}var zr=e=>e!=="gone"&&e!=="disabled";function uf(e){if(typeof e!="string"||!e.startsWith("Published"))return null;let t=e.split(`
1643
- `,1)[0],n=/^Published "(.*)" at (\S*) \((.*)\)\.?$/.exec(t);return n?{name:n[1],url:/^https?:\/\//i.test(n[2])?n[2]:"",size:/(?:^|, )(\d+(?:\.\d+)? [KM]B)(?:,|$)/.exec(n[3])?.[1]??null}:{name:"",url:"",size:null}}var Gs=(e,t,n)=>Ji(e,t,n),Vs=e=>{let t=Date.parse(String(e??""));return Number.isFinite(t)?t:0},pf=e=>[...e].sort((t,n)=>Vs(n.updated_at)-Vs(t.updated_at)),Oy=10*6e4,ff=(e,t=Date.now())=>{let n=Vs(e);return n>0&&t-n<Oy};var Fy="publish_web_page",$y="forsion_account",Js=5,hf=`
1779
+ `,Mx={plugin:"puzzle","amadeus-plugin":"puzzle",skill:"sparkles",agent:"bot",space:"grid",theme:"palette"},Ix=new Set(["plugin","amadeus-plugin","skill","agent","space","theme"]),Hf={name:"sub.name",summary:"sub.summary",description:"sub.description",tags:"sub.tags",minAppVersion:"sub.minAppVersion",maxAppVersion:"sub.maxAppVersion",platforms:"sub.platforms"},Rx=e=>e==="github"?"su.source.github":e==="npm"?"su.source.npm":e==="zip"?"su.source.zip":null;function Lx(e){let{sub:t,view:o,t:r,locale:a,onOpenSubmission:i}=e,s=t.type&&Ix.has(t.type)?r(`sub.type.${t.type.replace("-","_")}`):null,l=Rx(t.source),c=[s,l&&r(l)].filter(Boolean).join(" \xB7 "),d=o.status==="approved"?n("span",{class:"fx-su-pill is-ok",children:r("su.approved")}):o.status==="rejected"?n("span",{class:"fx-su-pill is-no",children:r("su.rejected")}):n("span",{class:"fx-su-pill",children:r("su.review")}),f=t.mode==="package"?t.source==="github"&&t.tag?r("su.viaGithub",{tag:t.tag}):t.source==="npm"&&t.to?r("su.viaNpm",{version:t.to}):"":"",u=(t.fields||[]).map(g=>Hf[g]?r(Hf[g]):g),p=t.submittedAt?Et(t.submittedAt,a):null,m=o.status==="review"?p?r("su.metaReview",{time:p}):r("su.metaReviewNoTime"):o.status==="approved"?t.mode==="info"?r("su.metaApprovedInfo"):r("su.metaApproved",{version:o.storeVersion||t.to||""}):o.listed&&o.storeVersion?r("su.metaRejected",{version:o.storeVersion}):r("su.metaRejectedUnlisted");return n("div",{class:"fx-su","data-fx-store-update":o.status,children:[n("style",{children:Px}),n("div",{class:"fx-su-top",children:[n("span",{class:"fx-su-ic",children:n(F,{name:Mx[t.type||""]||"box",size:18})}),n("div",{class:"fx-su-id",children:[n("div",{class:"fx-su-name",children:t.name}),c&&n("div",{class:"fx-su-sub",children:c})]}),d]}),t.mode==="package"?n("div",{class:"fx-su-ver",children:[t.from&&n(R,{children:[n("span",{class:"fx-su-from",children:t.from}),n("span",{"aria-hidden":"true",children:"\u2192"})]}),n("span",{class:"fx-su-to",children:t.to}),f&&n("span",{class:"fx-su-meta",children:f})]}):n("div",{class:"fx-su-ver",children:[n("span",{class:"fx-su-to",children:r("su.infoOnly")}),!!u.length&&n("span",{class:"fx-su-meta",children:u.join(r("su.listSep"))})]}),n("div",{class:"fx-su-meta",children:m}),o.status==="rejected"&&o.note&&n("div",{class:"fx-su-note",children:o.note}),o.status!=="approved"&&i&&n("div",{class:"fx-su-acts",children:n("button",{type:"button",class:"btn sm",onClick:i,children:r("su.openSubmission")})})]})}function Dx(e){let{ctx:t,sub:o,call:r}=e,[a,i]=S(()=>Ne(t.getLocale?.())),s=(()=>{try{return r.state?.get()}catch{return}})(),[l,c]=S(s?.item??null);Y(()=>{i(Ne(t.getLocale?.()));let u=t.subscribeLocale?.(p=>i(Ne(p)));return()=>{typeof u=="function"&&u()}},[t]),Y(()=>{let u=!0;return Z("/market/mine").then(p=>{if(!u||!p.ok)return;let m=(p.data?.items||[]).find(g=>g&&g.id===o.itemId)||null;if(m){c(m);try{r.state?.set({item:m})}catch{}}}),()=>{u=!1}},[o.itemId]);let d=t.app?.openSettings,f=typeof d=="function"?()=>{Su(o.itemId),d.call(t.app,Mn("submission"))}:null;return n(Lx,{sub:o,view:Uf(o,l),t:$n(a),locale:a,onOpenSubmission:f})}function qf(e){return!e||typeof e.registerToolResultRenderer!="function"?!1:(e.registerToolResultRenderer({tool:Ex,title:()=>we(Ne(e.getLocale?.()),"su.title"),mount(t,o){let r=Bf(o?.result);if(!r)throw new Error("store_submit_update: unexpected result shape");return Re(n(Dx,{ctx:e,sub:r,call:o}),t),()=>{Re(null,t)}}}),!0)}var Vf={unknown:{key:"wc.pill.published",tone:"neutral"},live:{key:"wc.pill.live",tone:"ok"},pending:{key:"wc.pill.review",tone:"neutral"},approved:{key:"wc.pill.listed",tone:"ok"},rejected:{key:"wc.pill.rejected",tone:"danger"},disabled:{key:"web.disabled",tone:"danger"},gone:{key:"wc.pill.gone",tone:"muted"}};function ml(e){if(e===void 0)return"unknown";if(e===null)return"gone";if(e.status==="disabled")return"disabled";let t=e.listing_status;return t==="pending"||t==="approved"||t==="rejected"?t:"live"}var Ao=e=>e!=="gone"&&e!=="disabled";function Wf(e){if(typeof e!="string"||!e.startsWith("Published"))return null;let t=e.split(`
1780
+ `,1)[0],o=/^Published "(.*)" at (\S*) \((.*)\)\.?$/.exec(t);return o?{name:o[1],url:/^https?:\/\//i.test(o[2])?o[2]:"",size:/(?:^|, )(\d+(?:\.\d+)? [KM]B)(?:,|$)/.exec(o[3])?.[1]??null}:{name:"",url:"",size:null}}var gl=(e,t,o)=>ms(e,t,o),fl=e=>{let t=Date.parse(String(e??""));return Number.isFinite(t)?t:0},jf=e=>[...e].sort((t,o)=>fl(o.updated_at)-fl(t.updated_at)),Nx=10*6e4,Gf=(e,t=Date.now())=>{let o=fl(e);return o>0&&t-o<Nx};var Ox="publish_web_page",Fx="forsion_account",hl=5,Kf=`
1644
1781
  .fx-wc { color: var(--text); font-size: var(--ui-font-body); line-height: var(--ui-line-body); }
1645
1782
  .fx-wc .fx-wc-form { display: grid; gap: 8px; margin-top: 10px; }
1646
1783
  .fx-wc .fx-wc-field { display: grid; gap: 6px; min-width: 0; color: var(--text-muted); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
@@ -1652,5 +1789,5 @@ Content-Type: ${o}\r
1652
1789
  .fx-wc .fx-wc-line { margin: 2px 0; color: var(--text-faint); font-size: var(--ui-font-meta); line-height: var(--ui-line-meta); }
1653
1790
  .fx-wc .fx-wc-rows { display: grid; gap: 2px; }
1654
1791
  .fx-wc .fx-wc-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; color: var(--text-faint); font-size: var(--ui-font-caption); line-height: var(--ui-line-caption); }
1655
- `,Ks=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:null,mf=e=>typeof e=="string"?e.trim():"";function vf(e){let[t,n]=C(()=>De(e.getLocale?.()));return X(()=>{n(De(e.getLocale?.()));let o=e.subscribeLocale?.(a=>n(De(a)));return()=>{typeof o=="function"&&o()}},[e]),t}function bf(e){let t=(()=>{try{return e.state?.get()}catch{return}})(),[n,o]=C(t?.data??null),[a,i]=C(t?.cloud??""),[s,l]=C(null),c=Oe(),d=ie(0),m=ie(a),u=dn(async()=>{let h=++d.current,k=await Z("/connect/apps");if(!c.current||h!==d.current)return;if(!k.ok){l(k);return}let x=k.data||{},S=m.current;if(!x.publicBase&&!S){let w=await oe().authStatus?.().catch(()=>null);if(w?.cloudUrl&&(S=fa(w.cloudUrl)),!c.current||h!==d.current)return}m.current=S,o(x),i(S),l(null);try{e.state?.set({data:x,cloud:S})}catch{}},[]),[p,g]=C(0),f=ie(0);return X(()=>{u();let h=oe().onAuthChanged?.(()=>{d.current++,f.current++,g(f.current),o(null),l(null);try{e.state?.set(void 0)}catch{}u()});return()=>{typeof h=="function"&&h()}},[]),{data:n,fail:s,cloud:a,reload:u,gen:p,genRef:f}}function yf(e,t){let n=ie(null),o=ie(null),a=ie(null),i=ie(t);return i.current=t,Kn(()=>{if(n.current)return a.current=i.current,o.current=e.mountWebCard(n.current,i.current),()=>{let s=o.current;o.current=null,s?.dispose()}},[]),Kn(()=>{!o.current||a.current===t||(a.current=t,o.current.update(t))}),n}function xf(e){let t=oe().openExternal;if(t){t(e)?.catch(()=>{});return}try{window.open(e,"_blank","noopener,noreferrer")}catch{}}function kf(e,t,n,o){let a=df[t];return{status:{label:e(a.key),tone:a.tone},address:n?{text:n,icon:"globe",struck:t==="gone",muted:!zr(t)}:void 0,thumbnail:o&&zr(t)&&n?{url:n,version:o.updated_at}:null,placeholderIcon:"globe"}}function wf(e){let t=e.app?.openSettings;return typeof t=="function"?()=>t.call(e.app,zn("webpages")):null}var zf=({a:e,t})=>e.error?r("div",{class:"fx-wc-msg",role:"alert",children:pt(e.error,t)}):null;function By(e){let{ctx:t,call:n,slug:o,argName:a,pub:i}=e,s=vf(t),l=In(s),{data:c,cloud:d,reload:m,gen:u,genRef:p}=bf(n),g=me(),f=wf(t),[h,k]=C(null),[x,S]=C(null),[w,T]=C("idle"),R=ie(null),B=ie(null);X(()=>()=>{R.current&&clearTimeout(R.current),B.current&&clearTimeout(B.current)},[]);let U=c?(c.apps||[]).find(he=>he?.slug===o)??null:void 0,N=js(U),G=c&&Gs(c,d,o)||i.url,z=g.pending,P=`/connect/apps/${encodeURIComponent(o)}`,F=(he,at,yn,dt)=>void g.run(async()=>{if(p.current!==u)return;let Ye=await Z(he,{method:at,body:yn});if(!Ye.ok)return Fe(Ye);dt?.(),await m()}),L=()=>{R.current&&clearTimeout(R.current),R.current=null,S(null)};X(()=>{u&&(L(),k(null))},[u]);let ae=he=>{R.current&&clearTimeout(R.current),S(he),R.current=setTimeout(()=>{R.current=null,S(null)},ra)},b=async()=>{let he=await oa(G);T(he?"copied":"failed"),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>T("idle"),1800)},_=U?.updated_at?ff(U.updated_at)?l("wc.justPublished"):l("web.updated",{date:It(U.updated_at,s)}):"",I=U?Ki(U.total_bytes):i.size,H=[o,I,_,zr(N)?l("wc.anyone"):""].filter(Boolean).join(" \xB7 "),Q=!G||!zr(N),$=[{label:l("wc.open"),icon:"external-link",disabled:Q,run:()=>xf(G)},{label:l(w==="copied"?"common.copied":w==="failed"?"common.copyFailed":"web.copy"),icon:w==="copied"?"check":"copy",disabled:Q,run:()=>void b()}],te=f?{label:l("wc.viewInPages"),icon:"settings",run:f}:null,ce=[];x?ce=[{label:l(x==="unpublish"?"web.unpublishConfirm":"web.listingDelistConfirm"),variant:"danger",disabled:z,run:()=>{L(),F(x==="unpublish"?P:`${P}/listing`,"DELETE")}},{label:l("common.cancel"),disabled:z,run:L}]:N==="live"?ce=[{label:l("web.listingApply"),icon:"upload",disabled:z||h!==null,run:()=>{g.clear(),k("")}}]:N==="pending"?ce=[{label:l("web.listingWithdraw"),disabled:z,run:()=>F(`${P}/listing`,"DELETE")}]:N==="rejected"?ce=[{label:l("web.listingReapply"),icon:"upload",disabled:z||h!==null,run:()=>{g.clear(),k(U?.listing_summary||"")}}]:(N==="disabled"||N==="gone")&&te&&(ce=[te]);let We;if(N!=="unknown"){let he=[];N==="approved"&&he.push({label:l("web.listingDelist"),icon:"x",disabled:z,run:()=>ae("delist")}),te&&!ce.includes(te)&&he.push({label:te.label,icon:te.icon,run:te.run});let at=N==="gone"?[]:[{label:l("web.unpublish"),icon:"trash-2",danger:!0,disabled:z,run:()=>ae("unpublish")}];We=[...he,...he.length&&at.length?[{separator:!0}]:[],...at],We.length||(We=void 0)}let pe={layout:"card",name:U?.name||i.name||a||o,...kf(l,N,G,U),note:H,actions:$,trailing:ce,menu:We},Be=yf(t.ui,pe);return r("div",{class:"fx-wc","data-fx-web-card":N,"data-webpage":o,children:[r("style",{children:hf}),r("div",{ref:Be}),h!==null&&r("form",{class:"fx-wc-form",onSubmit:he=>{he.preventDefault();let at=(h||"").trim();at&&F(`${P}/listing`,"PUT",{summary:at},()=>k(null))},children:[r("label",{class:"fx-wc-field",children:[r("span",{children:l("web.listingSummary")}),r("textarea",{rows:2,maxLength:Gi,value:h,disabled:z,placeholder:l("web.listingSummaryPh"),onInput:he=>k(he.currentTarget.value)}),r("small",{children:l("web.listingHint")})]}),r("div",{class:"fx-wc-acts",children:[r("button",{type:"submit",class:"btn sm primary",disabled:z||!h.trim(),children:l("web.listingSubmit")}),r("button",{type:"button",class:"btn sm",disabled:z,onClick:()=>{k(null),g.clear()},children:l("common.cancel")})]})]}),r(zf,{a:g,t:l})]})}function Uy(e){let t=yf(e.ui,e.card);return r("div",{ref:t,"data-webpage":e.slug})}function Hy(e){let{ctx:t,call:n}=e,o=vf(t),a=In(o),{data:i,fail:s,cloud:l,reload:c,gen:d,genRef:m}=bf(n),u=me(),p=wf(t),[g,f]=C(null),h=ie(null);X(()=>()=>{h.current&&clearTimeout(h.current)},[]),X(()=>{d&&f(null)},[d]);let k=u.pending,x=(N,G)=>void u.run(async()=>{if(m.current!==d)return;let z=await Z(N,{method:G});if(!z.ok)return Fe(z);await c()}),S=N=>{let G=`/connect/apps/${encodeURIComponent(N.slug)}`,z=t.ui?.confirm;if(typeof z=="function"){z.call(t.ui,{title:a("wc.unpublishTitle",{name:N.name||N.slug}),body:a("wc.unpublishBody"),ok:a("web.unpublish"),cancel:a("common.cancel"),danger:!0}).then(P=>{P&&x(G,"DELETE")},()=>{});return}if(h.current&&clearTimeout(h.current),h.current=null,g===N.slug){f(null),x(G,"DELETE");return}f(N.slug),h.current=setTimeout(()=>{h.current=null,f(null)},ra)},w=i?.apps||[],T=pf(w).slice(0,Js),R=N=>{let G=js(N),z=i?Gs(i,l,N.slug):"",P=`/connect/apps/${encodeURIComponent(N.slug)}`,F=G==="pending"?{label:a("web.listingWithdraw"),disabled:k,run:()=>x(`${P}/listing`,"DELETE")}:G==="approved"?{label:a("web.listingDelist"),icon:"x",disabled:k,run:()=>x(`${P}/listing`,"DELETE")}:(G==="live"||G==="rejected")&&p?{label:a(G==="live"?"web.listingApply":"web.listingReapply"),icon:"upload",run:p}:null,L=g===N.slug,ae=kf(a,G,z,N);return{layout:"row",name:N.name||N.slug,...ae,status:L?{label:a("wc.unpublishAgain"),tone:"danger"}:ae.status,menu:[{label:a("wc.open"),icon:"external-link",disabled:!z||!zr(G),run:()=>xf(z)},{label:a("web.copy"),icon:"copy",disabled:!z||!zr(G),run:()=>void oa(z)},{separator:!0},...F?[F,{separator:!0}]:[],{label:a(L?"web.unpublishConfirm":"web.unpublish"),icon:"trash-2",danger:!0,disabled:k,run:()=>S(N)}]}},B=typeof i?.limit=="number"?a("web.used",{used:w.length,limit:i.limit}):a("wc.total",{n:w.length}),U=w.length>Js?` \xB7 ${a("wc.more",{n:w.length-Js})}`:"";return r("div",{class:"fx-wc","data-fx-web-pages":i?String(w.length):s?"error":"loading",children:[r("style",{children:hf}),i?T.length?r("div",{class:"fx-wc-rows",children:T.map(N=>r(Uy,{ui:t.ui,card:R(N),slug:N.slug},N.slug))}):r("p",{class:"fx-wc-line",children:a("web.empty")}):r("p",{class:"fx-wc-line",children:s?pt(ft(s),a):a("common.loading")}),i&&r("div",{class:"fx-wc-foot",children:[r("span",{children:[B,U]}),p&&r("button",{type:"button",class:"btn sm",onClick:p,children:a("wc.manage")})]}),r(zf,{a:u,t:a})]})}function gf(e,t){try{Ee(t,e)}catch(n){try{Ee(null,e)}catch{}throw n}return()=>{Ee(null,e)}}function Sf(e){if(!e||typeof e.registerToolResultRenderer!="function"||typeof e.ui?.mountWebCard!="function")return!1;let t=n=>()=>xe(De(e.getLocale?.()),n);return e.registerToolResultRenderer({tool:Fy,title:t("wc.title"),match:n=>{let o=Ks(n?.args);return!!o&&o.action!=="unpublish"},mount(n,o){let a=Ks(o?.args),i=mf(a?.slug).toLowerCase(),s=uf(o?.result);if(!a||a.action==="unpublish"||!i||!s)throw new Error("publish_web_page: unexpected result shape");return gf(n,r(By,{ctx:e,call:o,slug:i,argName:mf(a.name),pub:s}))}}),e.registerToolResultRenderer({tool:$y,title:t("web.title"),match:n=>Ks(n?.args)?.section==="web_pages",mount(n,o){if(typeof o?.result!="string"||!o.result.startsWith("Published web pages:"))throw new Error("forsion_account web_pages: unexpected result shape");return gf(n,r(Hy,{ctx:e,call:o}))}}),!0}var _f;if(typeof ctx<"u"){let e=of(ctx);wu(ctx),ku(ctx),cf(ctx),Sf(ctx);let t=zc(ctx),n=Uu(ctx),o=Np(ctx),a=Xp(ctx),i=Hp(ctx);(t||n||o||a||e||i)&&(_f=()=>{t?.dispose(),n?.dispose(),o?.dispose(),a?.dispose(),i?.dispose(),e?.()})}return Hf(qy);})();
1792
+ `,bl=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:null,Jf=e=>typeof e=="string"?e.trim():"";function Yf(e){let[t,o]=S(()=>Ne(e.getLocale?.()));return Y(()=>{o(Ne(e.getLocale?.()));let r=e.subscribeLocale?.(a=>o(Ne(a)));return()=>{typeof r=="function"&&r()}},[e]),t}function Zf(e){let t=(()=>{try{return e.state?.get()}catch{return}})(),[o,r]=S(t?.data??null),[a,i]=S(t?.cloud??""),[s,l]=S(null),c=Ve(),d=ie(0),f=ie(a),u=Vt(async()=>{let h=++d.current,k=await Z("/connect/apps");if(!c.current||h!==d.current)return;if(!k.ok){l(k);return}let y=k.data||{},x=f.current;if(!y.publicBase&&!x){let w=await te().authStatus?.().catch(()=>null);if(w?.cloudUrl&&(x=xr(w.cloudUrl)),!c.current||h!==d.current)return}f.current=x,r(y),i(x),l(null);try{e.state?.set({data:y,cloud:x})}catch{}},[]),[p,m]=S(0),g=ie(0);return Y(()=>{u();let h=te().onAuthChanged?.(()=>{d.current++,g.current++,m(g.current),r(null),l(null);try{e.state?.set(void 0)}catch{}u()});return()=>{typeof h=="function"&&h()}},[]),{data:o,fail:s,cloud:a,reload:u,gen:p,genRef:g}}function Qf(e,t){let o=ie(null),r=ie(null),a=ie(null),i=ie(t);return i.current=t,Zn(()=>{if(o.current)return a.current=i.current,r.current=e.mountWebCard(o.current,i.current),()=>{let s=r.current;r.current=null,s?.dispose()}},[]),Zn(()=>{!r.current||a.current===t||(a.current=t,r.current.update(t))}),o}function em(e){let t=te().openExternal;if(t){t(e)?.catch(()=>{});return}try{window.open(e,"_blank","noopener,noreferrer")}catch{}}function tm(e,t,o,r){let a=Vf[t];return{status:{label:e(a.key),tone:a.tone},address:o?{text:o,icon:"globe",struck:t==="gone",muted:!Ao(t)}:void 0,thumbnail:r&&Ao(t)&&o?{url:o,version:r.updated_at}:null,placeholderIcon:"globe"}}function nm(e){let t=e.app?.openSettings;return typeof t=="function"?()=>t.call(e.app,Mn("webpages")):null}var om=({a:e,t})=>e.error?n("div",{class:"fx-wc-msg",role:"alert",children:zt(e.error,t)}):null;function $x(e){let{ctx:t,call:o,slug:r,argName:a,pub:i}=e,s=Yf(t),l=$n(s),{data:c,cloud:d,reload:f,gen:u,genRef:p}=Zf(o),m=me(),g=nm(t),[h,k]=S(null),[y,x]=S(null),[w,C]=S("idle"),M=ie(null),$=ie(null);Y(()=>()=>{M.current&&clearTimeout(M.current),$.current&&clearTimeout($.current)},[]);let U=c?(c.apps||[]).find(be=>be?.slug===r)??null:void 0,O=ml(U),j=c&&gl(c,d,r)||i.url,_=m.pending,L=`/connect/apps/${encodeURIComponent(r)}`,B=(be,Ke,It,V)=>void m.run(async()=>{if(p.current!==u)return;let ue=await Z(be,{method:Ke,body:It});if(!ue.ok)return $e(ue);V?.(),await f()}),P=()=>{M.current&&clearTimeout(M.current),M.current=null,x(null)};Y(()=>{u&&(P(),k(null))},[u]);let J=be=>{M.current&&clearTimeout(M.current),x(be),M.current=setTimeout(()=>{M.current=null,x(null)},ma)},v=async()=>{let be=await Fo(j);C(be?"copied":"failed"),$.current&&clearTimeout($.current),$.current=setTimeout(()=>C("idle"),1800)},A=U?.updated_at?Gf(U.updated_at)?l("wc.justPublished"):l("web.updated",{date:$t(U.updated_at,s)}):"",N=U?gs(U.total_bytes):i.size,X=[r,N,A,Ao(O)?l("wc.anyone"):""].filter(Boolean).join(" \xB7 "),Q=!j||!Ao(O),H=[{label:l("wc.open"),icon:"external-link",disabled:Q,run:()=>em(j)},{label:l(w==="copied"?"common.copied":w==="failed"?"common.copyFailed":"web.copy"),icon:w==="copied"?"check":"copy",disabled:Q,run:()=>void v()}],oe=g?{label:l("wc.viewInPages"),icon:"settings",run:g}:null,ge=[];y?ge=[{label:l(y==="unpublish"?"web.unpublishConfirm":"web.listingDelistConfirm"),variant:"danger",disabled:_,run:()=>{P(),B(y==="unpublish"?L:`${L}/listing`,"DELETE")}},{label:l("common.cancel"),disabled:_,run:P}]:O==="live"?ge=[{label:l("web.listingApply"),icon:"upload",disabled:_||h!==null,run:()=>{m.clear(),k("")}}]:O==="pending"?ge=[{label:l("web.listingWithdraw"),disabled:_,run:()=>B(`${L}/listing`,"DELETE")}]:O==="rejected"?ge=[{label:l("web.listingReapply"),icon:"upload",disabled:_||h!==null,run:()=>{m.clear(),k(U?.listing_summary||"")}}]:(O==="disabled"||O==="gone")&&oe&&(ge=[oe]);let He;if(O!=="unknown"){let be=[];O==="approved"&&be.push({label:l("web.listingDelist"),icon:"x",disabled:_,run:()=>J("delist")}),oe&&!ge.includes(oe)&&be.push({label:oe.label,icon:oe.icon,run:oe.run});let Ke=O==="gone"?[]:[{label:l("web.unpublish"),icon:"trash-2",danger:!0,disabled:_,run:()=>J("unpublish")}];He=[...be,...be.length&&Ke.length?[{separator:!0}]:[],...Ke],He.length||(He=void 0)}let pe={layout:"card",name:U?.name||i.name||a||r,...tm(l,O,j,U),note:X,actions:H,trailing:ge,menu:He},Le=Qf(t.ui,pe);return n("div",{class:"fx-wc","data-fx-web-card":O,"data-webpage":r,children:[n("style",{children:Kf}),n("div",{ref:Le}),h!==null&&n("form",{class:"fx-wc-form",onSubmit:be=>{be.preventDefault();let Ke=(h||"").trim();Ke&&B(`${L}/listing`,"PUT",{summary:Ke},()=>k(null))},children:[n("label",{class:"fx-wc-field",children:[n("span",{children:l("web.listingSummary")}),n("textarea",{rows:2,maxLength:ps,value:h,disabled:_,placeholder:l("web.listingSummaryPh"),onInput:be=>k(be.currentTarget.value)}),n("small",{children:l("web.listingHint")})]}),n("div",{class:"fx-wc-acts",children:[n("button",{type:"submit",class:"btn sm primary",disabled:_||!h.trim(),children:l("web.listingSubmit")}),n("button",{type:"button",class:"btn sm",disabled:_,onClick:()=>{k(null),m.clear()},children:l("common.cancel")})]})]}),n(om,{a:m,t:l})]})}function Bx(e){let t=Qf(e.ui,e.card);return n("div",{ref:t,"data-webpage":e.slug})}function Ux(e){let{ctx:t,call:o}=e,r=Yf(t),a=$n(r),{data:i,fail:s,cloud:l,reload:c,gen:d,genRef:f}=Zf(o),u=me(),p=nm(t),[m,g]=S(null),h=ie(null);Y(()=>()=>{h.current&&clearTimeout(h.current)},[]),Y(()=>{d&&g(null)},[d]);let k=u.pending,y=(O,j)=>void u.run(async()=>{if(f.current!==d)return;let _=await Z(O,{method:j});if(!_.ok)return $e(_);await c()}),x=O=>{let j=`/connect/apps/${encodeURIComponent(O.slug)}`,_=t.ui?.confirm;if(typeof _=="function"){_.call(t.ui,{title:a("wc.unpublishTitle",{name:O.name||O.slug}),body:a("wc.unpublishBody"),ok:a("web.unpublish"),cancel:a("common.cancel"),danger:!0}).then(L=>{L&&y(j,"DELETE")},()=>{});return}if(h.current&&clearTimeout(h.current),h.current=null,m===O.slug){g(null),y(j,"DELETE");return}g(O.slug),h.current=setTimeout(()=>{h.current=null,g(null)},ma)},w=i?.apps||[],C=jf(w).slice(0,hl),M=O=>{let j=ml(O),_=i?gl(i,l,O.slug):"",L=`/connect/apps/${encodeURIComponent(O.slug)}`,B=j==="pending"?{label:a("web.listingWithdraw"),disabled:k,run:()=>y(`${L}/listing`,"DELETE")}:j==="approved"?{label:a("web.listingDelist"),icon:"x",disabled:k,run:()=>y(`${L}/listing`,"DELETE")}:(j==="live"||j==="rejected")&&p?{label:a(j==="live"?"web.listingApply":"web.listingReapply"),icon:"upload",run:p}:null,P=m===O.slug,J=tm(a,j,_,O);return{layout:"row",name:O.name||O.slug,...J,status:P?{label:a("wc.unpublishAgain"),tone:"danger"}:J.status,menu:[{label:a("wc.open"),icon:"external-link",disabled:!_||!Ao(j),run:()=>em(_)},{label:a("web.copy"),icon:"copy",disabled:!_||!Ao(j),run:()=>void Fo(_)},{separator:!0},...B?[B,{separator:!0}]:[],{label:a(P?"web.unpublishConfirm":"web.unpublish"),icon:"trash-2",danger:!0,disabled:k,run:()=>x(O)}]}},$=typeof i?.limit=="number"?a("web.used",{used:w.length,limit:i.limit}):a("wc.total",{n:w.length}),U=w.length>hl?` \xB7 ${a("wc.more",{n:w.length-hl})}`:"";return n("div",{class:"fx-wc","data-fx-web-pages":i?String(w.length):s?"error":"loading",children:[n("style",{children:Kf}),i?C.length?n("div",{class:"fx-wc-rows",children:C.map(O=>n(Bx,{ui:t.ui,card:M(O),slug:O.slug},O.slug))}):n("p",{class:"fx-wc-line",children:a("web.empty")}):n("p",{class:"fx-wc-line",children:s?zt(St(s),a):a("common.loading")}),i&&n("div",{class:"fx-wc-foot",children:[n("span",{children:[$,U]}),p&&n("button",{type:"button",class:"btn sm",onClick:p,children:a("wc.manage")})]}),n(om,{a:u,t:a})]})}function Xf(e,t){try{Re(t,e)}catch(o){try{Re(null,e)}catch{}throw o}return()=>{Re(null,e)}}function rm(e){if(!e||typeof e.registerToolResultRenderer!="function"||typeof e.ui?.mountWebCard!="function")return!1;let t=o=>()=>we(Ne(e.getLocale?.()),o);return e.registerToolResultRenderer({tool:Ox,title:t("wc.title"),match:o=>{let r=bl(o?.args);return!!r&&r.action!=="unpublish"},mount(o,r){let a=bl(r?.args),i=Jf(a?.slug).toLowerCase(),s=Wf(r?.result);if(!a||a.action==="unpublish"||!i||!s)throw new Error("publish_web_page: unexpected result shape");return Xf(o,n($x,{ctx:e,call:r,slug:i,argName:Jf(a.name),pub:s}))}}),e.registerToolResultRenderer({tool:Fx,title:t("web.title"),match:o=>bl(o?.args)?.section==="web_pages",mount(o,r){if(typeof r?.result!="string"||!r.result.startsWith("Published web pages:"))throw new Error("forsion_account web_pages: unexpected result shape");return Xf(o,n(Ux,{ctx:e,call:r}))}}),!0}var am=/^[a-z0-9](?:[a-z0-9-]{1,30})?[a-z0-9]$/,im="forsion_connect_terms_v1",Hx=()=>{try{return localStorage.getItem(im)==="1"}catch{return!1}},qx=()=>{try{localStorage.setItem(im,"1")}catch{}};function Vx(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32).replace(/-+$/,"");if(t.length>=3&&am.test(t))return t;let o=Math.random().toString(36).slice(2,6);return t?`${t}-${o}`.slice(0,32):`app-${o}`}async function Qo(e,...t){let o=te().cloudInvoke;if(!o)throw new Error("unavailable");return await o(e,...t)}function sm(e){let{t,locale:o,ctx:r}=se(),{root:a,projectName:i,htmlFiles:s,onClose:l}=e,[c,d]=S("loading"),[f,u]=S(""),[p,m]=S(""),[g,h]=S(""),[k,y]=S(null),[x,w]=S(null),[C,M]=S(null),[$,U]=S({}),[O,j]=S(null),[_,L]=S(i),[B,P]=S(""),[J,v]=S(e.entry||s[0]||"index.html"),[A,N]=S(Qn),[X,Q]=S(null),[H,oe]=S(!1),[ge,He]=S(!1),[pe,Le]=S(!1),[Qe,be]=S(""),[Ke,It]=S(!1),[V,ue]=S(!1),ke=ie(!1),Pe=ie(null),fe=ie(!0);Y(()=>()=>{fe.current=!1},[]);let ot=Vt(async(ce={})=>{m("");let Ye=await Qo("connect:meta",a).catch(()=>({})),We;try{We=await Qo("connect:list")??{ok:!1,code:"error",detail:"unavailable"}}catch(D){We={ok:!1,code:"error",detail:gt(D)}}if(!fe.current)return;if(U(Ye&&typeof Ye=="object"?Ye:{}),!We.ok){if(We.code==="not_logged_in"){d("login");return}m(We.detail||t("err.generic")),d("form");return}h(We.base||""),y(We.handle||null),w({used:We.used??0,limit:We.limit??1,tier:We.tier||"free"}),j(za(We.authorPays)?We.authorPays:null);let Qt=Ye?.slug||Pe.current,ct=Qt&&(We.apps||[]).find(D=>D.slug===Qt)||null;M(ct),ke.current?ce.resetAi&&ct&&N(Bo(ct.ai)):(ke.current=!0,ct?(L(ct.name),P(ct.slug),ct.entry&&(s.length===0||s.includes(ct.entry))&&v(ct.entry),N(Bo(ct.ai))):P(Ye?.slug||Vx(i))),d("form")},[a,i,s]);Y(()=>{ot()},[ot]),Y(()=>{let ce=Ye=>{Ye.key==="Escape"&&!f&&l()};return window.addEventListener("keydown",ce),()=>window.removeEventListener("keydown",ce)},[f,l]);let Ce=async()=>{u("login"),m("");try{await te().forsionLogin?.(),await ot()}catch(ce){m(gt(ce))}finally{fe.current&&u("")}},pt=!!$.usesSdk&&!!O,rt=C?Bo(C.ai):Qn,un=pt&&!Sa(A,rt),Gt=()=>{if(!Hx()){ue(!1),It(!0);return}kt()},Jt=()=>{V&&(qx(),It(!1),kt())},kt=async()=>{u("publish"),m(""),Q(null);let ce=!1,Ye="";try{let We=await Qo("connect:publish",{dir:a,name:_.trim(),slug:B.trim(),entry:J});if(!We?.ok){if(!fe.current)return;if(We?.code==="not_logged_in"){d("login");return}m(We?.detail||t("err.generic"));return}let Qt=We.slug||B.trim();if(un){let ct=await Ca(Qt,A,O);ct.ok?ce=!0:Ye=t("pub.aiSaveFailed",{reason:zt(St(ct),t)})}if(!fe.current)return;Q(We.url||null),Pe.current=Qt,await ot({resetAi:ce}),Ye&&fe.current&&m(Ye)}catch(We){fe.current&&m(gt(We))}finally{fe.current&&u("")}},at=async()=>{if(C){if(!ge){He(!0);return}u("unpublish"),m(""),He(!1);try{let ce=await Qo("connect:unpublish",C.slug);if(!fe.current)return;if(!ce?.ok){m(ce?.detail||t("err.generic"));return}Q(null),M(null),await ot()}catch(ce){fe.current&&m(gt(ce))}finally{fe.current&&u("")}}},Ht=async()=>{if(!(!C||!Qe.trim())){u("listing"),m("");try{let ce=await Qo("connect:listingApply",{slug:C.slug,summary:Qe.trim()});if(!fe.current)return;if(!ce?.ok){m(ce?.detail||t("err.generic"));return}Le(!1),await ot()}catch(ce){fe.current&&m(gt(ce))}finally{fe.current&&u("")}}},Zt=async()=>{if(C){u("listing"),m("");try{let ce=await Qo("connect:listingWithdraw",C.slug);if(!fe.current)return;if(!ce?.ok){m(ce?.detail||t("err.generic"));return}await ot()}catch(ce){fe.current&&m(gt(ce))}finally{fe.current&&u("")}}},ft=X||(C?.publicUrl&&/^https?:\/\//i.test(C.publicUrl)?C.publicUrl:null)||(C&&g&&k?`${g}/apps/${k}/${C.slug}/`:null),et=g?`${g}/legal/?slug=terms`:"",Dt=am.test(B)&&B.length>=3,pn=c==="form"&&!f&&Dt&&!!_.trim()&&s.length>0&&s.includes(J),bt=async()=>{ft&&await Fo(ft)&&(oe(!0),setTimeout(()=>{fe.current&&oe(!1)},1500))},bn=ce=>{if(!ft)return;let Ye=te().openExternal;Ye&&(ce?.preventDefault(),Ye(ft)?.catch(()=>{}))},it=C?.listing_status||null,At=[t("pub.anyone")];return C&&typeof C.likes=="number"&&At.push(t("pub.likes",{n:ze(C.likes,o)})),C&&typeof C.favorites=="number"&&At.push(t("pub.saves",{n:ze(C.favorites,o)})),n("div",{class:"fx-pub-overlay",onMouseDown:ce=>{ce.target===ce.currentTarget&&!f&&l()},children:[n("style",{children:Ta}),n("div",{class:"fx-pub-card",role:"dialog","aria-modal":"true","aria-label":Ke?t("pub.titleTerms"):t("pub.title",{name:C?.name||i}),lang:o==="zh"?"zh-CN":"en","data-fx-publish":!0,children:[n("div",{class:"fx-pub-head",children:[n(F,{name:Ke?"shield":"rocket",size:15}),n("span",{class:"fx-pub-title",children:Ke?t("pub.titleTerms"):t("pub.title",{name:C?.name||i})}),n("button",{type:"button",class:"icon-btn","aria-label":t("pub.close"),title:t("pub.close"),disabled:f==="publish",onClick:l,children:n(F,{name:"x",size:15})})]}),Ke?n("div",{children:[n("p",{class:"fx-pub-desc",children:t("pub.termsIntro")}),n("ul",{class:"fx-pub-terms-list",children:[n("li",{children:t("pub.termsLi1")}),n("li",{children:t("pub.termsLi2")}),n("li",{children:t("pub.termsLi3")})]}),n("p",{class:"fx-pub-desc",children:t("pub.termsManage")}),n("label",{class:"fx-pub-agree",children:[n("input",{type:"checkbox",checked:V,onChange:ce=>ue(ce.currentTarget.checked)}),n("span",{children:[t("pub.termsAgreePre"),et?n("a",{href:et,target:"_blank",rel:"noreferrer",onClick:ce=>{let Ye=te().openExternal;Ye&&(ce.preventDefault(),Ye(et)?.catch(()=>{}))},children:t("pub.termsGuidelines")}):n("strong",{children:t("pub.termsGuidelines")})]})]}),n("div",{class:"fx-pub-actions",children:[n("button",{type:"button",class:"fx-pub-ghost",onClick:()=>It(!1),children:t("common.cancel")}),n("span",{class:"fx-pub-spacer"}),n("button",{type:"button",class:"fx-pub-primary",disabled:!V,onClick:Jt,children:t("pub.termsConfirm")})]})]}):n(R,{children:[n("p",{class:"fx-pub-desc",children:t(C?"pub.descPublished":"pub.desc")}),c==="loading"&&n("div",{class:"fx-pub-busy","aria-busy":"true",children:n(ln,{size:15})}),c==="login"&&n("div",{class:"fx-pub-login",children:[n("span",{children:t("pub.needLogin")}),n("button",{type:"button",class:"fx-pub-primary",disabled:f==="login",onClick:()=>void Ce(),children:f==="login"?n(R,{children:[n(ln,{size:13}),t("pub.loginWaiting")]}):t("pub.login")})]}),c==="form"&&n(R,{children:[ft&&n(R,{children:[n("div",{class:"fx-pub-url",children:[n("a",{href:ft,target:"_blank",rel:"noreferrer",title:t("pub.open"),onClick:ce=>bn(ce),children:[n(F,{name:"globe",size:13}),ft.replace(/^https?:\/\//,"")]}),n("button",{type:"button",class:"icon-btn","aria-label":t(H?"pub.copied":"pub.copy"),title:t(H?"pub.copied":"pub.copy"),onClick:()=>void bt(),children:n(F,{name:H?"check":"copy",size:13})}),!!te().openExternal&&n("button",{type:"button",class:"icon-btn","aria-label":t("pub.open"),title:t("pub.open"),onClick:()=>bn(),children:n(F,{name:"external",size:13})})]}),n("div",{class:"fx-pub-hint","data-fx-reach":!0,children:At.join(" \xB7 ")})]}),n("div",{class:"fx-pub-row",children:[n("label",{for:"fx-pub-name",children:t("pub.name")}),n("input",{id:"fx-pub-name",class:"fx-pub-input",value:_,maxLength:80,onInput:ce=>L(ce.currentTarget.value)})]}),!C&&n(R,{children:[n("div",{class:"fx-pub-row",children:[n("label",{for:"fx-pub-slug",children:t("pub.slug")}),n("input",{id:"fx-pub-slug",class:"fx-pub-input fx-pub-mono",value:B,maxLength:32,spellcheck:!1,onInput:ce=>{P(ce.currentTarget.value.toLowerCase()),m("")}})]}),!Dt&&B!==""&&n("div",{class:"fx-pub-hint fx-pub-warn",children:t("pub.slugHint")})]}),n("div",{class:"fx-pub-row",children:[n("label",{for:"fx-pub-entry",children:t("pub.entry")}),s.length>0?n("select",{id:"fx-pub-entry",class:"fx-pub-select",value:J,onChange:ce=>v(ce.currentTarget.value),children:s.map(ce=>n("option",{value:ce,children:ce},ce))}):n("span",{class:"fx-pub-hint fx-pub-warn",children:t("pub.noEntry")})]}),!C&&x&&n("div",{class:"fx-pub-hint",children:t("pub.slots",{used:x.used,limit:x.limit,tier:x.tier})}),!C&&n("div",{class:"fx-pub-hint",children:t("pub.hint")}),pt&&n(Aa,{draft:A,onChange:N,ap:O,methods:$.sdkMethods,unpublished:!C,cooldownUntil:C?.ai?.cooldownUntil,disabled:!!f,onBuy:()=>yr(r)}),C&&n("div",{class:"fx-pub-listing",children:[n("div",{class:"fx-pub-listing-row",children:[n(F,{name:"store",size:13}),n("span",{class:"fx-pub-listing-title",children:t("pub.listingTitle")}),n("span",{class:`fx-pub-lst is-${it||"none"}`,children:t(it==="pending"?"pub.listingPending":it==="approved"?"pub.listingApproved":it==="rejected"?"pub.listingRejected":"pub.listingNone")}),n("span",{class:"fx-pub-spacer"}),!it&&!pe&&n("button",{type:"button",class:"fx-pub-ghost",disabled:!!f,onClick:()=>{be(""),Le(!0)},children:t("web.listingApply")}),it==="rejected"&&!pe&&n("button",{type:"button",class:"fx-pub-ghost",disabled:!!f,onClick:()=>{be(C.listing_summary||""),Le(!0)},children:t("web.listingReapply")}),(it==="pending"||it==="approved")&&n("button",{type:"button",class:"fx-pub-ghost",disabled:!!f,onClick:()=>void Zt(),children:f==="listing"?n(ln,{}):t(it==="approved"?"web.listingDelist":"web.listingWithdraw")})]}),it==="rejected"&&C.listing_note&&n("div",{class:"fx-pub-hint fx-pub-warn",children:t("web.listingNote",{note:C.listing_note})}),pe?n("div",{children:[n("textarea",{class:"fx-pub-input",rows:2,maxLength:300,autoFocus:!0,placeholder:t("web.listingSummaryPh"),value:Qe,onInput:ce=>be(ce.currentTarget.value)}),n("div",{class:"fx-pub-actions",children:[n("button",{type:"button",class:"fx-pub-ghost",onClick:()=>Le(!1),children:t("common.cancel")}),n("span",{class:"fx-pub-spacer"}),n("button",{type:"button",class:"fx-pub-primary",disabled:!Qe.trim()||!!f,onClick:()=>void Ht(),children:f==="listing"?n(ln,{size:13}):t("web.listingSubmit")})]})]}):!it&&n("div",{class:"fx-pub-hint",children:t("pub.listingHint")})]}),p&&n("div",{class:"fx-pub-err",role:"alert",children:p}),n("div",{class:"fx-pub-actions",children:[C&&n("button",{type:"button",class:"fx-pub-danger",disabled:!!f,onClick:()=>void at(),children:f==="unpublish"?n(ln,{size:13}):t(ge?"web.unpublishConfirm":"web.unpublish")}),n("span",{class:"fx-pub-spacer"}),n("button",{type:"button",class:"fx-pub-ghost",disabled:f==="publish",onClick:l,children:t("pub.close")}),n("button",{type:"button",class:"fx-pub-primary",disabled:!pn,onClick:()=>Gt(),children:f==="publish"?n(R,{children:[n(ln,{size:13}),t("pub.publishing")]}):C?n(R,{children:[n(F,{name:"refresh",size:13}),t(un?"pub.saveUpdate":"pub.update")]}):n(R,{children:[n(F,{name:"rocket",size:13}),t("pub.publish")]})})]})]})]})]})]})}var Wx="connect.publish";function jx(e){if(!e||typeof e!="object")return null;let t=e;if(typeof t.root!="string"||!t.root.trim())return null;let o=t.root,r=o.replace(/[\\/]+$/,"").split(/[\\/]/).pop()||o;return{root:o,projectName:typeof t.projectName=="string"&&t.projectName.trim()?t.projectName:r,entry:typeof t.entry=="string"&&t.entry?t.entry:null,htmlFiles:Array.isArray(t.htmlFiles)?t.htmlFiles.filter(a=>typeof a=="string"&&!!a):[]}}function Gx(e,t,o){return o.current?.close(),new Promise(r=>{let a=document.createElement("div");a.className="fx-pub-root",document.body.appendChild(a);let i=!1,s=()=>{i||(i=!0,o.current===l&&(o.current=null),Re(null,a),a.remove(),r())},l={close:s};o.current=l,Re(n(Cs,{ctx:e,children:n(sm,{...t,onClose:s})}),a)})}function lm(e,t=window){let o=an(t?.tangu);if(!e||typeof e.registerCommand!="function"||!o?.cloudInvoke||!sn(o)||wn(o)||o.mobile||o.unitPage)return null;let r={current:null};return e.registerCommand({id:Wx,title:()=>we(Ne(e.getLocale?.()),"pub.cmd"),keywords:"publish web page link connect forsion \u53D1\u5E03 \u7F51\u9875 \u94FE\u63A5 \u4E0A\u7EBF",run:a=>{let i=jx(a);if(!i){e.app?.notify?.(we(Ne(e.getLocale?.()),"pub.cmdNoArgs"));return}return Gx(e,i,r)}}),{dispose:()=>r.current?.close()}}var cm;if(typeof ctx<"u"){let e=$f(ctx);Zu(ctx),Yu(ctx),qf(ctx),rm(ctx);let t=lm(ctx),o=Wc(ctx),r=bp(ctx),a=ff(ctx),i=Mf(ctx),s=yf(ctx);(o||r||a||i||e||s||t)&&(cm=()=>{o?.dispose(),r?.dispose(),a?.dispose(),i?.dispose(),s?.dispose(),t?.dispose(),e?.()})}return Cm(Jx);})();
1656
1793
  return __fxExtend.dispose;