mirror of
https://github.com/Ttungx/codex_auto_register.git
synced 2026-09-01 14:51:13 +08:00
188 lines
2.2 MiB
Plaintext
188 lines
2.2 MiB
Plaintext
<!doctype html>
|
||
<html lang="zh-CN" translate="no" class="notranslate">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="google" content="notranslate" />
|
||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%20role%3D%22img%22%20class%3D%22iconify%20iconify--logos%22%20width%3D%2231.88%22%20height%3D%2232%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20viewBox%3D%220%200%20256%20257%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22IconifyId1813088fe1fbc01fb466%22%20x1%3D%22-.828%25%22%20x2%3D%2257.636%25%22%20y1%3D%227.652%25%22%20y2%3D%2278.411%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%2341D1FF%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23BD34FE%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22IconifyId1813088fe1fbc01fb467%22%20x1%3D%2243.376%25%22%20x2%3D%2250.316%25%22%20y1%3D%222.242%25%22%20y2%3D%2289.03%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23FFEA83%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%228.333%25%22%20stop-color%3D%22%23FFDD35%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23FFA800%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22url(%23IconifyId1813088fe1fbc01fb466)%22%20d%3D%22M255.153%2037.938L134.897%20252.976c-2.483%204.44-8.862%204.466-11.382.048L.875%2037.958c-2.746-4.814%201.371-10.646%206.827-9.67l120.385%2021.517a6.537%206.537%200%200%200%202.322-.004l117.867-21.483c5.438-.991%209.574%204.796%206.877%209.62Z%22%3E%3C%2Fpath%3E%3Cpath%20fill%3D%22url(%23IconifyId1813088fe1fbc01fb467)%22%20d%3D%22M185.432.063L96.44%2017.501a3.268%203.268%200%200%200-2.634%203.014l-5.474%2092.456a3.268%203.268%200%200%200%203.997%203.378l24.777-5.718c2.318-.535%204.413%201.507%203.936%203.838l-7.361%2036.047c-.495%202.426%201.782%204.5%204.151%203.78l15.304-4.649c2.372-.72%204.652%201.36%204.15%203.788l-11.698%2056.621c-.732%203.542%203.979%205.473%205.943%202.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505%204.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>CLI Proxy API Management Center</title>
|
||
<script type="module" crossorigin>var o7=Object.defineProperty;var r7=(t,e,n)=>e in t?o7(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Pt=(t,e,n)=>r7(t,typeof e!="symbol"?e+"":e,n);function l7(t,e){for(var n=0;n<e.length;n++){const i=e[n];if(typeof i!="string"&&!Array.isArray(i)){for(const s in i)if(s!=="default"&&!(s in t)){const a=Object.getOwnPropertyDescriptor(i,s);a&&Object.defineProperty(t,s,a.get?a:{enumerable:!0,get:()=>i[s]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();function f3(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Px={exports:{}},Gh={};var lM;function c7(){if(lM)return Gh;lM=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,s,a){var o=null;if(a!==void 0&&(o=""+a),s.key!==void 0&&(o=""+s.key),"key"in s){a={};for(var r in s)r!=="key"&&(a[r]=s[r])}else a=s;return s=a.ref,{$$typeof:t,type:i,key:o,ref:s!==void 0?s:null,props:a}}return Gh.Fragment=e,Gh.jsx=n,Gh.jsxs=n,Gh}var cM;function u7(){return cM||(cM=1,Px.exports=c7()),Px.exports}var h=u7(),Ex={exports:{}},Lt={};var uM;function d7(){if(uM)return Lt;uM=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),o=Symbol.for("react.context"),r=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),g=Symbol.iterator;function y(U){return U===null||typeof U!="object"?null:(U=g&&U[g]||U["@@iterator"],typeof U=="function"?U:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,x={};function A(U,q,Y){this.props=U,this.context=q,this.refs=x,this.updater=Y||b}A.prototype.isReactComponent={},A.prototype.setState=function(U,q){if(typeof U!="object"&&typeof U!="function"&&U!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,U,q,"setState")},A.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function k(){}k.prototype=A.prototype;function T(U,q,Y){this.props=U,this.context=q,this.refs=x,this.updater=Y||b}var L=T.prototype=new k;L.constructor=T,v(L,A.prototype),L.isPureReactComponent=!0;var M=Array.isArray;function O(){}var N={H:null,A:null,T:null,S:null},P=Object.prototype.hasOwnProperty;function E(U,q,Y){var oe=Y.ref;return{$$typeof:t,type:U,key:q,ref:oe!==void 0?oe:null,props:Y}}function R(U,q){return E(U.type,q,U.props)}function z(U){return typeof U=="object"&&U!==null&&U.$$typeof===t}function D(U){var q={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(Y){return q[Y]})}var Q=/\/+/g;function G(U,q){return typeof U=="object"&&U!==null&&U.key!=null?D(""+U.key):q.toString(36)}function B(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status=="string"?U.then(O,O):(U.status="pending",U.then(function(q){U.status==="pending"&&(U.status="fulfilled",U.value=q)},function(q){U.status==="pending"&&(U.status="rejected",U.reason=q)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function I(U,q,Y,oe,se){var F=typeof U;(F==="undefined"||F==="boolean")&&(U=null);var Z=!1;if(U===null)Z=!0;else switch(F){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(U.$$typeof){case t:case e:Z=!0;break;case f:return Z=U._init,I(Z(U._payload),q,Y,oe,se)}}if(Z)return se=se(U),Z=oe===""?"."+G(U,0):oe,M(se)?(Y="",Z!=null&&(Y=Z.replace(Q,"$&/")+"/"),I(se,q,Y,"",function(fe){return fe})):se!=null&&(z(se)&&(se=R(se,Y+(se.key==null||U&&U.key===se.key?"":(""+se.key).replace(Q,"$&/")+"/")+Z)),q.push(se)),1;Z=0;var J=oe===""?".":oe+":";if(M(U))for(var te=0;te<U.length;te++)oe=U[te],F=J+G(oe,te),Z+=I(oe,q,Y,F,se);else if(te=y(U),typeof te=="function")for(U=te.call(U),te=0;!(oe=U.next()).done;)oe=oe.value,F=J+G(oe,te++),Z+=I(oe,q,Y,F,se);else if(F==="object"){if(typeof U.then=="function")return I(B(U),q,Y,oe,se);throw q=String(U),Error("Objects are not valid as a React child (found: "+(q==="[object Object]"?"object with keys {"+Object.keys(U).join(", ")+"}":q)+"). If you meant to render a collection of children, use an array instead.")}return Z}function V(U,q,Y){if(U==null)return U;var oe=[],se=0;return I(U,oe,"","",function(F){return q.call(Y,F,se++)}),oe}function K(U){if(U._status===-1){var q=U._result;q=q(),q.then(function(Y){(U._status===0||U._status===-1)&&(U._status=1,U._result=Y)},function(Y){(U._status===0||U._status===-1)&&(U._status=2,U._result=Y)}),U._status===-1&&(U._status=0,U._result=q)}if(U._status===1)return U._result.default;throw U._result}var $=typeof reportError=="function"?reportError:function(U){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var q=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof U=="object"&&U!==null&&typeof U.message=="string"?String(U.message):String(U),error:U});if(!window.dispatchEvent(q))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",U);return}console.error(U)},X={map:V,forEach:function(U,q,Y){V(U,function(){q.apply(this,arguments)},Y)},count:function(U){var q=0;return V(U,function(){q++}),q},toArray:function(U){return V(U,function(q){return q})||[]},only:function(U){if(!z(U))throw Error("React.Children.only expected to receive a single React element child.");return U}};return Lt.Activity=m,Lt.Children=X,Lt.Component=A,Lt.Fragment=n,Lt.Profiler=s,Lt.PureComponent=T,Lt.StrictMode=i,Lt.Suspense=c,Lt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=N,Lt.__COMPILER_RUNTIME={__proto__:null,c:function(U){return N.H.useMemoCache(U)}},Lt.cache=function(U){return function(){return U.apply(null,arguments)}},Lt.cacheSignal=function(){return null},Lt.cloneElement=function(U,q,Y){if(U==null)throw Error("The argument must be a React element, but you passed "+U+".");var oe=v({},U.props),se=U.key;if(q!=null)for(F in q.key!==void 0&&(se=""+q.key),q)!P.call(q,F)||F==="key"||F==="__self"||F==="__source"||F==="ref"&&q.ref===void 0||(oe[F]=q[F]);var F=arguments.length-2;if(F===1)oe.children=Y;else if(1<F){for(var Z=Array(F),J=0;J<F;J++)Z[J]=arguments[J+2];oe.children=Z}return E(U.type,se,oe)},Lt.createContext=function(U){return U={$$typeof:o,_currentValue:U,_currentValue2:U,_threadCount:0,Provider:null,Consumer:null},U.Provider=U,U.Consumer={$$typeof:a,_context:U},U},Lt.createElement=function(U,q,Y){var oe,se={},F=null;if(q!=null)for(oe in q.key!==void 0&&(F=""+q.key),q)P.call(q,oe)&&oe!=="key"&&oe!=="__self"&&oe!=="__source"&&(se[oe]=q[oe]);var Z=arguments.length-2;if(Z===1)se.children=Y;else if(1<Z){for(var J=Array(Z),te=0;te<Z;te++)J[te]=arguments[te+2];se.children=J}if(U&&U.defaultProps)for(oe in Z=U.defaultProps,Z)se[oe]===void 0&&(se[oe]=Z[oe]);return E(U,F,se)},Lt.createRef=function(){return{current:null}},Lt.forwardRef=function(U){return{$$typeof:r,render:U}},Lt.isValidElement=z,Lt.lazy=function(U){return{$$typeof:f,_payload:{_status:-1,_result:U},_init:K}},Lt.memo=function(U,q){return{$$typeof:d,type:U,compare:q===void 0?null:q}},Lt.startTransition=function(U){var q=N.T,Y={};N.T=Y;try{var oe=U(),se=N.S;se!==null&&se(Y,oe),typeof oe=="object"&&oe!==null&&typeof oe.then=="function"&&oe.then(O,$)}catch(F){$(F)}finally{q!==null&&Y.types!==null&&(q.types=Y.types),N.T=q}},Lt.unstable_useCacheRefresh=function(){return N.H.useCacheRefresh()},Lt.use=function(U){return N.H.use(U)},Lt.useActionState=function(U,q,Y){return N.H.useActionState(U,q,Y)},Lt.useCallback=function(U,q){return N.H.useCallback(U,q)},Lt.useContext=function(U){return N.H.useContext(U)},Lt.useDebugValue=function(){},Lt.useDeferredValue=function(U,q){return N.H.useDeferredValue(U,q)},Lt.useEffect=function(U,q){return N.H.useEffect(U,q)},Lt.useEffectEvent=function(U){return N.H.useEffectEvent(U)},Lt.useId=function(){return N.H.useId()},Lt.useImperativeHandle=function(U,q,Y){return N.H.useImperativeHandle(U,q,Y)},Lt.useInsertionEffect=function(U,q){return N.H.useInsertionEffect(U,q)},Lt.useLayoutEffect=function(U,q){return N.H.useLayoutEffect(U,q)},Lt.useMemo=function(U,q){return N.H.useMemo(U,q)},Lt.useOptimistic=function(U,q){return N.H.useOptimistic(U,q)},Lt.useReducer=function(U,q,Y){return N.H.useReducer(U,q,Y)},Lt.useRef=function(U){return N.H.useRef(U)},Lt.useState=function(U){return N.H.useState(U)},Lt.useSyncExternalStore=function(U,q,Y){return N.H.useSyncExternalStore(U,q,Y)},Lt.useTransition=function(){return N.H.useTransition()},Lt.version="19.2.1",Lt}var dM;function Ny(){return dM||(dM=1,Ex.exports=d7()),Ex.exports}var S=Ny();const So=f3(S),h7=l7({__proto__:null,default:So},[S]);var jx={exports:{}},$h={},Rx={exports:{}},Dx={};var hM;function f7(){return hM||(hM=1,(function(t){function e(I,V){var K=I.length;I.push(V);e:for(;0<K;){var $=K-1>>>1,X=I[$];if(0<s(X,V))I[$]=V,I[K]=X,K=$;else break e}}function n(I){return I.length===0?null:I[0]}function i(I){if(I.length===0)return null;var V=I[0],K=I.pop();if(K!==V){I[0]=K;e:for(var $=0,X=I.length,U=X>>>1;$<U;){var q=2*($+1)-1,Y=I[q],oe=q+1,se=I[oe];if(0>s(Y,K))oe<X&&0>s(se,Y)?(I[$]=se,I[oe]=K,$=oe):(I[$]=Y,I[q]=K,$=q);else if(oe<X&&0>s(se,K))I[$]=se,I[oe]=K,$=oe;else break e}}return V}function s(I,V){var K=I.sortIndex-V.sortIndex;return K!==0?K:I.id-V.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,r=o.now();t.unstable_now=function(){return o.now()-r}}var c=[],d=[],f=1,m=null,g=3,y=!1,b=!1,v=!1,x=!1,A=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;function L(I){for(var V=n(d);V!==null;){if(V.callback===null)i(d);else if(V.startTime<=I)i(d),V.sortIndex=V.expirationTime,e(c,V);else break;V=n(d)}}function M(I){if(v=!1,L(I),!b)if(n(c)!==null)b=!0,O||(O=!0,D());else{var V=n(d);V!==null&&B(M,V.startTime-I)}}var O=!1,N=-1,P=5,E=-1;function R(){return x?!0:!(t.unstable_now()-E<P)}function z(){if(x=!1,O){var I=t.unstable_now();E=I;var V=!0;try{e:{b=!1,v&&(v=!1,k(N),N=-1),y=!0;var K=g;try{t:{for(L(I),m=n(c);m!==null&&!(m.expirationTime>I&&R());){var $=m.callback;if(typeof $=="function"){m.callback=null,g=m.priorityLevel;var X=$(m.expirationTime<=I);if(I=t.unstable_now(),typeof X=="function"){m.callback=X,L(I),V=!0;break t}m===n(c)&&i(c),L(I)}else i(c);m=n(c)}if(m!==null)V=!0;else{var U=n(d);U!==null&&B(M,U.startTime-I),V=!1}}break e}finally{m=null,g=K,y=!1}V=void 0}}finally{V?D():O=!1}}}var D;if(typeof T=="function")D=function(){T(z)};else if(typeof MessageChannel<"u"){var Q=new MessageChannel,G=Q.port2;Q.port1.onmessage=z,D=function(){G.postMessage(null)}}else D=function(){A(z,0)};function B(I,V){N=A(function(){I(t.unstable_now())},V)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(I){I.callback=null},t.unstable_forceFrameRate=function(I){0>I||125<I?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<I?Math.floor(1e3/I):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_next=function(I){switch(g){case 1:case 2:case 3:var V=3;break;default:V=g}var K=g;g=V;try{return I()}finally{g=K}},t.unstable_requestPaint=function(){x=!0},t.unstable_runWithPriority=function(I,V){switch(I){case 1:case 2:case 3:case 4:case 5:break;default:I=3}var K=g;g=I;try{return V()}finally{g=K}},t.unstable_scheduleCallback=function(I,V,K){var $=t.unstable_now();switch(typeof K=="object"&&K!==null?(K=K.delay,K=typeof K=="number"&&0<K?$+K:$):K=$,I){case 1:var X=-1;break;case 2:X=250;break;case 5:X=1073741823;break;case 4:X=1e4;break;default:X=5e3}return X=K+X,I={id:f++,callback:V,priorityLevel:I,startTime:K,expirationTime:X,sortIndex:-1},K>$?(I.sortIndex=K,e(d,I),n(c)===null&&I===n(d)&&(v?(k(N),N=-1):v=!0,B(M,K-$))):(I.sortIndex=X,e(c,I),b||y||(b=!0,O||(O=!0,D()))),I},t.unstable_shouldYield=R,t.unstable_wrapCallback=function(I){var V=g;return function(){var K=g;g=V;try{return I.apply(this,arguments)}finally{g=K}}}})(Dx)),Dx}var fM;function m7(){return fM||(fM=1,Rx.exports=f7()),Rx.exports}var Fx={exports:{}},Yi={};var mM;function p7(){if(mM)return Yi;mM=1;var t=Ny();function e(c){var d="https://react.dev/errors/"+c;if(1<arguments.length){d+="?args[]="+encodeURIComponent(arguments[1]);for(var f=2;f<arguments.length;f++)d+="&args[]="+encodeURIComponent(arguments[f])}return"Minified React error #"+c+"; visit "+d+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var i={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function a(c,d,f){var m=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:m==null?null:""+m,children:c,containerInfo:d,implementation:f}}var o=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function r(c,d){if(c==="font")return"";if(typeof d=="string")return d==="use-credentials"?d:""}return Yi.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,Yi.createPortal=function(c,d){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!d||d.nodeType!==1&&d.nodeType!==9&&d.nodeType!==11)throw Error(e(299));return a(c,d,null,f)},Yi.flushSync=function(c){var d=o.T,f=i.p;try{if(o.T=null,i.p=2,c)return c()}finally{o.T=d,i.p=f,i.d.f()}},Yi.preconnect=function(c,d){typeof c=="string"&&(d?(d=d.crossOrigin,d=typeof d=="string"?d==="use-credentials"?d:"":void 0):d=null,i.d.C(c,d))},Yi.prefetchDNS=function(c){typeof c=="string"&&i.d.D(c)},Yi.preinit=function(c,d){if(typeof c=="string"&&d&&typeof d.as=="string"){var f=d.as,m=r(f,d.crossOrigin),g=typeof d.integrity=="string"?d.integrity:void 0,y=typeof d.fetchPriority=="string"?d.fetchPriority:void 0;f==="style"?i.d.S(c,typeof d.precedence=="string"?d.precedence:void 0,{crossOrigin:m,integrity:g,fetchPriority:y}):f==="script"&&i.d.X(c,{crossOrigin:m,integrity:g,fetchPriority:y,nonce:typeof d.nonce=="string"?d.nonce:void 0})}},Yi.preinitModule=function(c,d){if(typeof c=="string")if(typeof d=="object"&&d!==null){if(d.as==null||d.as==="script"){var f=r(d.as,d.crossOrigin);i.d.M(c,{crossOrigin:f,integrity:typeof d.integrity=="string"?d.integrity:void 0,nonce:typeof d.nonce=="string"?d.nonce:void 0})}}else d==null&&i.d.M(c)},Yi.preload=function(c,d){if(typeof c=="string"&&typeof d=="object"&&d!==null&&typeof d.as=="string"){var f=d.as,m=r(f,d.crossOrigin);i.d.L(c,f,{crossOrigin:m,integrity:typeof d.integrity=="string"?d.integrity:void 0,nonce:typeof d.nonce=="string"?d.nonce:void 0,type:typeof d.type=="string"?d.type:void 0,fetchPriority:typeof d.fetchPriority=="string"?d.fetchPriority:void 0,referrerPolicy:typeof d.referrerPolicy=="string"?d.referrerPolicy:void 0,imageSrcSet:typeof d.imageSrcSet=="string"?d.imageSrcSet:void 0,imageSizes:typeof d.imageSizes=="string"?d.imageSizes:void 0,media:typeof d.media=="string"?d.media:void 0})}},Yi.preloadModule=function(c,d){if(typeof c=="string")if(d){var f=r(d.as,d.crossOrigin);i.d.m(c,{as:typeof d.as=="string"&&d.as!=="script"?d.as:void 0,crossOrigin:f,integrity:typeof d.integrity=="string"?d.integrity:void 0})}else i.d.m(c)},Yi.requestFormReset=function(c){i.d.r(c)},Yi.unstable_batchedUpdates=function(c,d){return c(d)},Yi.useFormState=function(c,d,f){return o.H.useFormState(c,d,f)},Yi.useFormStatus=function(){return o.H.useHostTransitionStatus()},Yi.version="19.2.1",Yi}var pM;function m3(){if(pM)return Fx.exports;pM=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),Fx.exports=p7(),Fx.exports}var gM;function g7(){if(gM)return $h;gM=1;var t=m7(),e=Ny(),n=m3();function i(l){var u="https://react.dev/errors/"+l;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var p=2;p<arguments.length;p++)u+="&args[]="+encodeURIComponent(arguments[p])}return"Minified React error #"+l+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function a(l){var u=l,p=l;if(l.alternate)for(;u.return;)u=u.return;else{l=u;do u=l,(u.flags&4098)!==0&&(p=u.return),l=u.return;while(l)}return u.tag===3?p:null}function o(l){if(l.tag===13){var u=l.memoizedState;if(u===null&&(l=l.alternate,l!==null&&(u=l.memoizedState)),u!==null)return u.dehydrated}return null}function r(l){if(l.tag===31){var u=l.memoizedState;if(u===null&&(l=l.alternate,l!==null&&(u=l.memoizedState)),u!==null)return u.dehydrated}return null}function c(l){if(a(l)!==l)throw Error(i(188))}function d(l){var u=l.alternate;if(!u){if(u=a(l),u===null)throw Error(i(188));return u!==l?null:l}for(var p=l,_=u;;){var w=p.return;if(w===null)break;var C=w.alternate;if(C===null){if(_=w.return,_!==null){p=_;continue}break}if(w.child===C.child){for(C=w.child;C;){if(C===p)return c(w),l;if(C===_)return c(w),u;C=C.sibling}throw Error(i(188))}if(p.return!==_.return)p=w,_=C;else{for(var j=!1,W=w.child;W;){if(W===p){j=!0,p=w,_=C;break}if(W===_){j=!0,_=w,p=C;break}W=W.sibling}if(!j){for(W=C.child;W;){if(W===p){j=!0,p=C,_=w;break}if(W===_){j=!0,_=C,p=w;break}W=W.sibling}if(!j)throw Error(i(189))}}if(p.alternate!==_)throw Error(i(190))}if(p.tag!==3)throw Error(i(188));return p.stateNode.current===p?l:u}function f(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l;for(l=l.child;l!==null;){if(u=f(l),u!==null)return u;l=l.sibling}return null}var m=Object.assign,g=Symbol.for("react.element"),y=Symbol.for("react.transitional.element"),b=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),A=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),T=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),M=Symbol.for("react.suspense"),O=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),E=Symbol.for("react.activity"),R=Symbol.for("react.memo_cache_sentinel"),z=Symbol.iterator;function D(l){return l===null||typeof l!="object"?null:(l=z&&l[z]||l["@@iterator"],typeof l=="function"?l:null)}var Q=Symbol.for("react.client.reference");function G(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Q?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case v:return"Fragment";case A:return"Profiler";case x:return"StrictMode";case M:return"Suspense";case O:return"SuspenseList";case E:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case b:return"Portal";case T:return l.displayName||"Context";case k:return(l._context.displayName||"Context")+".Consumer";case L:var u=l.render;return l=l.displayName,l||(l=u.displayName||u.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case N:return u=l.displayName||null,u!==null?u:G(l.type)||"Memo";case P:u=l._payload,l=l._init;try{return G(l(u))}catch{}}return null}var B=Array.isArray,I=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,K={pending:!1,data:null,method:null,action:null},$=[],X=-1;function U(l){return{current:l}}function q(l){0>X||(l.current=$[X],$[X]=null,X--)}function Y(l,u){X++,$[X]=l.current,l.current=u}var oe=U(null),se=U(null),F=U(null),Z=U(null);function J(l,u){switch(Y(F,u),Y(se,l),Y(oe,null),u.nodeType){case 9:case 11:l=(l=u.documentElement)&&(l=l.namespaceURI)?OT(l):0;break;default:if(l=u.tagName,u=u.namespaceURI)u=OT(u),l=PT(u,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}q(oe),Y(oe,l)}function te(){q(oe),q(se),q(F)}function fe(l){l.memoizedState!==null&&Y(Z,l);var u=oe.current,p=PT(u,l.type);u!==p&&(Y(se,l),Y(oe,p))}function re(l){se.current===l&&(q(oe),q(se)),Z.current===l&&(q(Z),Kh._currentValue=K)}var ue,ee;function Ie(l){if(ue===void 0)try{throw Error()}catch(p){var u=p.stack.trim().match(/\n( *(at )?)/);ue=u&&u[1]||"",ee=-1<p.stack.indexOf(`
|
||
at`)?" (<anonymous>)":-1<p.stack.indexOf("@")?"@unknown:0:0":""}return`
|
||
`+ue+l+ee}var Ke=!1;function ht(l,u){if(!l||Ke)return"";Ke=!0;var p=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var _={DetermineComponentFrameRoot:function(){try{if(u){var Oe=function(){throw Error()};if(Object.defineProperty(Oe.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Oe,[])}catch(we){var xe=we}Reflect.construct(l,[],Oe)}else{try{Oe.call()}catch(we){xe=we}l.call(Oe.prototype)}}else{try{throw Error()}catch(we){xe=we}(Oe=l())&&typeof Oe.catch=="function"&&Oe.catch(function(){})}}catch(we){if(we&&xe&&typeof we.stack=="string")return[we.stack,xe.stack]}return[null,null]}};_.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var w=Object.getOwnPropertyDescriptor(_.DetermineComponentFrameRoot,"name");w&&w.configurable&&Object.defineProperty(_.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var C=_.DetermineComponentFrameRoot(),j=C[0],W=C[1];if(j&&W){var ae=j.split(`
|
||
`),ve=W.split(`
|
||
`);for(w=_=0;_<ae.length&&!ae[_].includes("DetermineComponentFrameRoot");)_++;for(;w<ve.length&&!ve[w].includes("DetermineComponentFrameRoot");)w++;if(_===ae.length||w===ve.length)for(_=ae.length-1,w=ve.length-1;1<=_&&0<=w&&ae[_]!==ve[w];)w--;for(;1<=_&&0<=w;_--,w--)if(ae[_]!==ve[w]){if(_!==1||w!==1)do if(_--,w--,0>w||ae[_]!==ve[w]){var Ne=`
|
||
`+ae[_].replace(" at new "," at ");return l.displayName&&Ne.includes("<anonymous>")&&(Ne=Ne.replace("<anonymous>",l.displayName)),Ne}while(1<=_&&0<=w);break}}}finally{Ke=!1,Error.prepareStackTrace=p}return(p=l?l.displayName||l.name:"")?Ie(p):""}function wt(l,u){switch(l.tag){case 26:case 27:case 5:return Ie(l.type);case 16:return Ie("Lazy");case 13:return l.child!==u&&u!==null?Ie("Suspense Fallback"):Ie("Suspense");case 19:return Ie("SuspenseList");case 0:case 15:return ht(l.type,!1);case 11:return ht(l.type.render,!1);case 1:return ht(l.type,!0);case 31:return Ie("Activity");default:return""}}function ft(l){try{var u="",p=null;do u+=wt(l,p),p=l,l=l.return;while(l);return u}catch(_){return`
|
||
Error generating stack: `+_.message+`
|
||
`+_.stack}}var Xe=Object.prototype.hasOwnProperty,Ot=t.unstable_scheduleCallback,zt=t.unstable_cancelCallback,sn=t.unstable_shouldYield,an=t.unstable_requestPaint,Fe=t.unstable_now,mt=t.unstable_getCurrentPriorityLevel,je=t.unstable_ImmediatePriority,pt=t.unstable_UserBlockingPriority,at=t.unstable_NormalPriority,Ee=t.unstable_LowPriority,ut=t.unstable_IdlePriority,Mt=t.log,Nt=t.unstable_setDisableYieldValue,le=null,ge=null;function ie(l){if(typeof Mt=="function"&&Nt(l),ge&&typeof ge.setStrictMode=="function")try{ge.setStrictMode(le,l)}catch{}}var Ae=Math.clz32?Math.clz32:kt,tt=Math.log,jt=Math.LN2;function kt(l){return l>>>=0,l===0?32:31-(tt(l)/jt|0)|0}var on=256,xt=262144,ui=4194304;function Di(l){var u=l&42;if(u!==0)return u;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function ds(l,u,p){var _=l.pendingLanes;if(_===0)return 0;var w=0,C=l.suspendedLanes,j=l.pingedLanes;l=l.warmLanes;var W=_&134217727;return W!==0?(_=W&~C,_!==0?w=Di(_):(j&=W,j!==0?w=Di(j):p||(p=W&~l,p!==0&&(w=Di(p))))):(W=_&~C,W!==0?w=Di(W):j!==0?w=Di(j):p||(p=_&~l,p!==0&&(w=Di(p)))),w===0?0:u!==0&&u!==w&&(u&C)===0&&(C=w&-w,p=u&-u,C>=p||C===32&&(p&4194048)!==0)?u:w}function ws(l,u){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&u)===0}function Te(l,u){switch(l){case 1:case 2:case 4:case 8:case 64:return u+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function nt(){var l=ui;return ui<<=1,(ui&62914560)===0&&(ui=4194304),l}function yt(l){for(var u=[],p=0;31>p;p++)u.push(l);return u}function ti(l,u){l.pendingLanes|=u,u!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function En(l,u,p,_,w,C){var j=l.pendingLanes;l.pendingLanes=p,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=p,l.entangledLanes&=p,l.errorRecoveryDisabledLanes&=p,l.shellSuspendCounter=0;var W=l.entanglements,ae=l.expirationTimes,ve=l.hiddenUpdates;for(p=j&~p;0<p;){var Ne=31-Ae(p),Oe=1<<Ne;W[Ne]=0,ae[Ne]=-1;var xe=ve[Ne];if(xe!==null)for(ve[Ne]=null,Ne=0;Ne<xe.length;Ne++){var we=xe[Ne];we!==null&&(we.lane&=-536870913)}p&=~Oe}_!==0&&di(l,_,0),C!==0&&w===0&&l.tag!==0&&(l.suspendedLanes|=C&~(j&~u))}function di(l,u,p){l.pendingLanes|=u,l.suspendedLanes&=~u;var _=31-Ae(u);l.entangledLanes|=u,l.entanglements[_]=l.entanglements[_]|1073741824|p&261930}function ne(l,u){var p=l.entangledLanes|=u;for(l=l.entanglements;p;){var _=31-Ae(p),w=1<<_;w&u|l[_]&u&&(l[_]|=u),p&=~w}}function de(l,u){var p=u&-u;return p=(p&42)!==0?1:ye(p),(p&(l.suspendedLanes|u))!==0?0:p}function ye(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function Le(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function De(){var l=V.p;return l!==0?l:(l=window.event,l===void 0?32:tM(l.type))}function Qe(l,u){var p=V.p;try{return V.p=l,u()}finally{V.p=p}}var ze=Math.random().toString(36).slice(2),Ue="__reactFiber$"+ze,qe="__reactProps$"+ze,it="__reactContainer$"+ze,dt="__reactEvents$"+ze,rt="__reactListeners$"+ze,Kt="__reactHandles$"+ze,Ht="__reactResources$"+ze,yn="__reactMarker$"+ze;function jn(l){delete l[Ue],delete l[qe],delete l[dt],delete l[rt],delete l[Kt]}function Kn(l){var u=l[Ue];if(u)return u;for(var p=l.parentNode;p;){if(u=p[it]||p[Ue]){if(p=u.alternate,u.child!==null||p!==null&&p.child!==null)for(l=UT(l);l!==null;){if(p=l[Ue])return p;l=UT(l)}return u}l=p,p=l.parentNode}return null}function It(l){if(l=l[Ue]||l[it]){var u=l.tag;if(u===5||u===6||u===13||u===31||u===26||u===27||u===3)return l}return null}function Yn(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l.stateNode;throw Error(i(33))}function Fi(l){var u=l[Ht];return u||(u=l[Ht]={hoistableStyles:new Map,hoistableScripts:new Map}),u}function mn(l){l[yn]=!0}var Xi=new Set,hi={};function ks(l,u){wi(l,u),wi(l+"Capture",u)}function wi(l,u){for(hi[l]=u,l=0;l<u.length;l++)Xi.add(u[l])}var sa=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Bo={},Ii={};function Xt(l){return Xe.call(Ii,l)?!0:Xe.call(Bo,l)?!1:sa.test(l)?Ii[l]=!0:(Bo[l]=!0,!1)}function Hn(l,u,p){if(Xt(u))if(p===null)l.removeAttribute(u);else{switch(typeof p){case"undefined":case"function":case"symbol":l.removeAttribute(u);return;case"boolean":var _=u.toLowerCase().slice(0,5);if(_!=="data-"&&_!=="aria-"){l.removeAttribute(u);return}}l.setAttribute(u,""+p)}}function Cs(l,u,p){if(p===null)l.removeAttribute(u);else{switch(typeof p){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(u);return}l.setAttribute(u,""+p)}}function fi(l,u,p,_){if(_===null)l.removeAttribute(p);else{switch(typeof _){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(p);return}l.setAttributeNS(u,p,""+_)}}function Gt(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function zo(l){var u=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(u==="checkbox"||u==="radio")}function tu(l,u,p){var _=Object.getOwnPropertyDescriptor(l.constructor.prototype,u);if(!l.hasOwnProperty(u)&&typeof _<"u"&&typeof _.get=="function"&&typeof _.set=="function"){var w=_.get,C=_.set;return Object.defineProperty(l,u,{configurable:!0,get:function(){return w.call(this)},set:function(j){p=""+j,C.call(this,j)}}),Object.defineProperty(l,u,{enumerable:_.enumerable}),{getValue:function(){return p},setValue:function(j){p=""+j},stopTracking:function(){l._valueTracker=null,delete l[u]}}}}function Ul(l){if(!l._valueTracker){var u=zo(l)?"checked":"value";l._valueTracker=tu(l,u,""+l[u])}}function He(l){if(!l)return!1;var u=l._valueTracker;if(!u)return!0;var p=u.getValue(),_="";return l&&(_=zo(l)?l.checked?"true":"false":l.value),l=_,l!==p?(u.setValue(l),!0):!1}function Ve(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Vt=/[\n"\\]/g;function Qt(l){return l.replace(Vt,function(u){return"\\"+u.charCodeAt(0).toString(16)+" "})}function Qi(l,u,p,_,w,C,j,W){l.name="",j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?l.type=j:l.removeAttribute("type"),u!=null?j==="number"?(u===0&&l.value===""||l.value!=u)&&(l.value=""+Gt(u)):l.value!==""+Gt(u)&&(l.value=""+Gt(u)):j!=="submit"&&j!=="reset"||l.removeAttribute("value"),u!=null?Nb(l,j,Gt(u)):p!=null?Nb(l,j,Gt(p)):_!=null&&l.removeAttribute("value"),w==null&&C!=null&&(l.defaultChecked=!!C),w!=null&&(l.checked=w&&typeof w!="function"&&typeof w!="symbol"),W!=null&&typeof W!="function"&&typeof W!="symbol"&&typeof W!="boolean"?l.name=""+Gt(W):l.removeAttribute("name")}function Dr(l,u,p,_,w,C,j,W){if(C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"&&(l.type=C),u!=null||p!=null){if(!(C!=="submit"&&C!=="reset"||u!=null)){Ul(l);return}p=p!=null?""+Gt(p):"",u=u!=null?""+Gt(u):p,W||u===l.value||(l.value=u),l.defaultValue=u}_=_??w,_=typeof _!="function"&&typeof _!="symbol"&&!!_,l.checked=W?l.checked:!!_,l.defaultChecked=!!_,j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(l.name=j),Ul(l)}function Nb(l,u,p){u==="number"&&Ve(l.ownerDocument)===l||l.defaultValue===""+p||(l.defaultValue=""+p)}function nu(l,u,p,_){if(l=l.options,u){u={};for(var w=0;w<p.length;w++)u["$"+p[w]]=!0;for(p=0;p<l.length;p++)w=u.hasOwnProperty("$"+l[p].value),l[p].selected!==w&&(l[p].selected=w),w&&_&&(l[p].defaultSelected=!0)}else{for(p=""+Gt(p),u=null,w=0;w<l.length;w++){if(l[w].value===p){l[w].selected=!0,_&&(l[w].defaultSelected=!0);return}u!==null||l[w].disabled||(u=l[w])}u!==null&&(u.selected=!0)}}function AC(l,u,p){if(u!=null&&(u=""+Gt(u),u!==l.value&&(l.value=u),p==null)){l.defaultValue!==u&&(l.defaultValue=u);return}l.defaultValue=p!=null?""+Gt(p):""}function NC(l,u,p,_){if(u==null){if(_!=null){if(p!=null)throw Error(i(92));if(B(_)){if(1<_.length)throw Error(i(93));_=_[0]}p=_}p==null&&(p=""),u=p}p=Gt(u),l.defaultValue=p,_=l.textContent,_===p&&_!==""&&_!==null&&(l.value=_),Ul(l)}function iu(l,u){if(u){var p=l.firstChild;if(p&&p===l.lastChild&&p.nodeType===3){p.nodeValue=u;return}}l.textContent=u}var tU=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function TC(l,u,p){var _=u.indexOf("--")===0;p==null||typeof p=="boolean"||p===""?_?l.setProperty(u,""):u==="float"?l.cssFloat="":l[u]="":_?l.setProperty(u,p):typeof p!="number"||p===0||tU.has(u)?u==="float"?l.cssFloat=p:l[u]=(""+p).trim():l[u]=p+"px"}function MC(l,u,p){if(u!=null&&typeof u!="object")throw Error(i(62));if(l=l.style,p!=null){for(var _ in p)!p.hasOwnProperty(_)||u!=null&&u.hasOwnProperty(_)||(_.indexOf("--")===0?l.setProperty(_,""):_==="float"?l.cssFloat="":l[_]="");for(var w in u)_=u[w],u.hasOwnProperty(w)&&p[w]!==_&&TC(l,w,_)}else for(var C in u)u.hasOwnProperty(C)&&TC(l,C,u[C])}function Tb(l){if(l.indexOf("-")===-1)return!1;switch(l){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var nU=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),iU=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Tp(l){return iU.test(""+l)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":l}function qo(){}var Mb=null;function Lb(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var su=null,au=null;function LC(l){var u=It(l);if(u&&(l=u.stateNode)){var p=l[qe]||null;e:switch(l=u.stateNode,u.type){case"input":if(Qi(l,p.value,p.defaultValue,p.defaultValue,p.checked,p.defaultChecked,p.type,p.name),u=p.name,p.type==="radio"&&u!=null){for(p=l;p.parentNode;)p=p.parentNode;for(p=p.querySelectorAll('input[name="'+Qt(""+u)+'"][type="radio"]'),u=0;u<p.length;u++){var _=p[u];if(_!==l&&_.form===l.form){var w=_[qe]||null;if(!w)throw Error(i(90));Qi(_,w.value,w.defaultValue,w.defaultValue,w.checked,w.defaultChecked,w.type,w.name)}}for(u=0;u<p.length;u++)_=p[u],_.form===l.form&&He(_)}break e;case"textarea":AC(l,p.value,p.defaultValue);break e;case"select":u=p.value,u!=null&&nu(l,!!p.multiple,u,!1)}}}var Ob=!1;function OC(l,u,p){if(Ob)return l(u,p);Ob=!0;try{var _=l(u);return _}finally{if(Ob=!1,(su!==null||au!==null)&&(pg(),su&&(u=su,l=au,au=su=null,LC(u),l)))for(u=0;u<l.length;u++)LC(l[u])}}function oh(l,u){var p=l.stateNode;if(p===null)return null;var _=p[qe]||null;if(_===null)return null;p=_[u];e:switch(u){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(_=!_.disabled)||(l=l.type,_=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!_;break e;default:l=!1}if(l)return null;if(p&&typeof p!="function")throw Error(i(231,u,typeof p));return p}var Ko=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Pb=!1;if(Ko)try{var rh={};Object.defineProperty(rh,"passive",{get:function(){Pb=!0}}),window.addEventListener("test",rh,rh),window.removeEventListener("test",rh,rh)}catch{Pb=!1}var Fr=null,Eb=null,Mp=null;function PC(){if(Mp)return Mp;var l,u=Eb,p=u.length,_,w="value"in Fr?Fr.value:Fr.textContent,C=w.length;for(l=0;l<p&&u[l]===w[l];l++);var j=p-l;for(_=1;_<=j&&u[p-_]===w[C-_];_++);return Mp=w.slice(l,1<_?1-_:void 0)}function Lp(l){var u=l.keyCode;return"charCode"in l?(l=l.charCode,l===0&&u===13&&(l=13)):l=u,l===10&&(l=13),32<=l||l===13?l:0}function Op(){return!0}function EC(){return!1}function As(l){function u(p,_,w,C,j){this._reactName=p,this._targetInst=w,this.type=_,this.nativeEvent=C,this.target=j,this.currentTarget=null;for(var W in l)l.hasOwnProperty(W)&&(p=l[W],this[W]=p?p(C):C[W]);return this.isDefaultPrevented=(C.defaultPrevented!=null?C.defaultPrevented:C.returnValue===!1)?Op:EC,this.isPropagationStopped=EC,this}return m(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var p=this.nativeEvent;p&&(p.preventDefault?p.preventDefault():typeof p.returnValue!="unknown"&&(p.returnValue=!1),this.isDefaultPrevented=Op)},stopPropagation:function(){var p=this.nativeEvent;p&&(p.stopPropagation?p.stopPropagation():typeof p.cancelBubble!="unknown"&&(p.cancelBubble=!0),this.isPropagationStopped=Op)},persist:function(){},isPersistent:Op}),u}var Bl={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Pp=As(Bl),lh=m({},Bl,{view:0,detail:0}),sU=As(lh),jb,Rb,ch,Ep=m({},lh,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Fb,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return"movementX"in l?l.movementX:(l!==ch&&(ch&&l.type==="mousemove"?(jb=l.screenX-ch.screenX,Rb=l.screenY-ch.screenY):Rb=jb=0,ch=l),jb)},movementY:function(l){return"movementY"in l?l.movementY:Rb}}),jC=As(Ep),aU=m({},Ep,{dataTransfer:0}),oU=As(aU),rU=m({},lh,{relatedTarget:0}),Db=As(rU),lU=m({},Bl,{animationName:0,elapsedTime:0,pseudoElement:0}),cU=As(lU),uU=m({},Bl,{clipboardData:function(l){return"clipboardData"in l?l.clipboardData:window.clipboardData}}),dU=As(uU),hU=m({},Bl,{data:0}),RC=As(hU),fU={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},mU={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},pU={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function gU(l){var u=this.nativeEvent;return u.getModifierState?u.getModifierState(l):(l=pU[l])?!!u[l]:!1}function Fb(){return gU}var _U=m({},lh,{key:function(l){if(l.key){var u=fU[l.key]||l.key;if(u!=="Unidentified")return u}return l.type==="keypress"?(l=Lp(l),l===13?"Enter":String.fromCharCode(l)):l.type==="keydown"||l.type==="keyup"?mU[l.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Fb,charCode:function(l){return l.type==="keypress"?Lp(l):0},keyCode:function(l){return l.type==="keydown"||l.type==="keyup"?l.keyCode:0},which:function(l){return l.type==="keypress"?Lp(l):l.type==="keydown"||l.type==="keyup"?l.keyCode:0}}),yU=As(_U),bU=m({},Ep,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),DC=As(bU),vU=m({},lh,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Fb}),xU=As(vU),SU=m({},Bl,{propertyName:0,elapsedTime:0,pseudoElement:0}),wU=As(SU),kU=m({},Ep,{deltaX:function(l){return"deltaX"in l?l.deltaX:"wheelDeltaX"in l?-l.wheelDeltaX:0},deltaY:function(l){return"deltaY"in l?l.deltaY:"wheelDeltaY"in l?-l.wheelDeltaY:"wheelDelta"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),CU=As(kU),AU=m({},Bl,{newState:0,oldState:0}),NU=As(AU),TU=[9,13,27,32],Ib=Ko&&"CompositionEvent"in window,uh=null;Ko&&"documentMode"in document&&(uh=document.documentMode);var MU=Ko&&"TextEvent"in window&&!uh,FC=Ko&&(!Ib||uh&&8<uh&&11>=uh),IC=" ",UC=!1;function BC(l,u){switch(l){case"keyup":return TU.indexOf(u.keyCode)!==-1;case"keydown":return u.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zC(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ou=!1;function LU(l,u){switch(l){case"compositionend":return zC(u);case"keypress":return u.which!==32?null:(UC=!0,IC);case"textInput":return l=u.data,l===IC&&UC?null:l;default:return null}}function OU(l,u){if(ou)return l==="compositionend"||!Ib&&BC(l,u)?(l=PC(),Mp=Eb=Fr=null,ou=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(u.ctrlKey||u.altKey||u.metaKey)||u.ctrlKey&&u.altKey){if(u.char&&1<u.char.length)return u.char;if(u.which)return String.fromCharCode(u.which)}return null;case"compositionend":return FC&&u.locale!=="ko"?null:u.data;default:return null}}var PU={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function qC(l){var u=l&&l.nodeName&&l.nodeName.toLowerCase();return u==="input"?!!PU[l.type]:u==="textarea"}function KC(l,u,p,_){su?au?au.push(_):au=[_]:su=_,u=Sg(u,"onChange"),0<u.length&&(p=new Pp("onChange","change",null,p,_),l.push({event:p,listeners:u}))}var dh=null,hh=null;function EU(l){CT(l,0)}function jp(l){var u=Yn(l);if(He(u))return l}function HC(l,u){if(l==="change")return u}var VC=!1;if(Ko){var Ub;if(Ko){var Bb="oninput"in document;if(!Bb){var WC=document.createElement("div");WC.setAttribute("oninput","return;"),Bb=typeof WC.oninput=="function"}Ub=Bb}else Ub=!1;VC=Ub&&(!document.documentMode||9<document.documentMode)}function GC(){dh&&(dh.detachEvent("onpropertychange",$C),hh=dh=null)}function $C(l){if(l.propertyName==="value"&&jp(hh)){var u=[];KC(u,hh,l,Lb(l)),OC(EU,u)}}function jU(l,u,p){l==="focusin"?(GC(),dh=u,hh=p,dh.attachEvent("onpropertychange",$C)):l==="focusout"&&GC()}function RU(l){if(l==="selectionchange"||l==="keyup"||l==="keydown")return jp(hh)}function DU(l,u){if(l==="click")return jp(u)}function FU(l,u){if(l==="input"||l==="change")return jp(u)}function IU(l,u){return l===u&&(l!==0||1/l===1/u)||l!==l&&u!==u}var qs=typeof Object.is=="function"?Object.is:IU;function fh(l,u){if(qs(l,u))return!0;if(typeof l!="object"||l===null||typeof u!="object"||u===null)return!1;var p=Object.keys(l),_=Object.keys(u);if(p.length!==_.length)return!1;for(_=0;_<p.length;_++){var w=p[_];if(!Xe.call(u,w)||!qs(l[w],u[w]))return!1}return!0}function XC(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function QC(l,u){var p=XC(l);l=0;for(var _;p;){if(p.nodeType===3){if(_=l+p.textContent.length,l<=u&&_>=u)return{node:p,offset:u-l};l=_}e:{for(;p;){if(p.nextSibling){p=p.nextSibling;break e}p=p.parentNode}p=void 0}p=XC(p)}}function YC(l,u){return l&&u?l===u?!0:l&&l.nodeType===3?!1:u&&u.nodeType===3?YC(l,u.parentNode):"contains"in l?l.contains(u):l.compareDocumentPosition?!!(l.compareDocumentPosition(u)&16):!1:!1}function JC(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var u=Ve(l.document);u instanceof l.HTMLIFrameElement;){try{var p=typeof u.contentWindow.location.href=="string"}catch{p=!1}if(p)l=u.contentWindow;else break;u=Ve(l.document)}return u}function zb(l){var u=l&&l.nodeName&&l.nodeName.toLowerCase();return u&&(u==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||u==="textarea"||l.contentEditable==="true")}var UU=Ko&&"documentMode"in document&&11>=document.documentMode,ru=null,qb=null,mh=null,Kb=!1;function ZC(l,u,p){var _=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;Kb||ru==null||ru!==Ve(_)||(_=ru,"selectionStart"in _&&zb(_)?_={start:_.selectionStart,end:_.selectionEnd}:(_=(_.ownerDocument&&_.ownerDocument.defaultView||window).getSelection(),_={anchorNode:_.anchorNode,anchorOffset:_.anchorOffset,focusNode:_.focusNode,focusOffset:_.focusOffset}),mh&&fh(mh,_)||(mh=_,_=Sg(qb,"onSelect"),0<_.length&&(u=new Pp("onSelect","select",null,u,p),l.push({event:u,listeners:_}),u.target=ru)))}function zl(l,u){var p={};return p[l.toLowerCase()]=u.toLowerCase(),p["Webkit"+l]="webkit"+u,p["Moz"+l]="moz"+u,p}var lu={animationend:zl("Animation","AnimationEnd"),animationiteration:zl("Animation","AnimationIteration"),animationstart:zl("Animation","AnimationStart"),transitionrun:zl("Transition","TransitionRun"),transitionstart:zl("Transition","TransitionStart"),transitioncancel:zl("Transition","TransitionCancel"),transitionend:zl("Transition","TransitionEnd")},Hb={},eA={};Ko&&(eA=document.createElement("div").style,"AnimationEvent"in window||(delete lu.animationend.animation,delete lu.animationiteration.animation,delete lu.animationstart.animation),"TransitionEvent"in window||delete lu.transitionend.transition);function ql(l){if(Hb[l])return Hb[l];if(!lu[l])return l;var u=lu[l],p;for(p in u)if(u.hasOwnProperty(p)&&p in eA)return Hb[l]=u[p];return l}var tA=ql("animationend"),nA=ql("animationiteration"),iA=ql("animationstart"),BU=ql("transitionrun"),zU=ql("transitionstart"),qU=ql("transitioncancel"),sA=ql("transitionend"),aA=new Map,Vb="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Vb.push("scrollEnd");function Da(l,u){aA.set(l,u),ks(u,[l])}var Rp=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var u=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(u))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)},aa=[],cu=0,Wb=0;function Dp(){for(var l=cu,u=Wb=cu=0;u<l;){var p=aa[u];aa[u++]=null;var _=aa[u];aa[u++]=null;var w=aa[u];aa[u++]=null;var C=aa[u];if(aa[u++]=null,_!==null&&w!==null){var j=_.pending;j===null?w.next=w:(w.next=j.next,j.next=w),_.pending=w}C!==0&&oA(p,w,C)}}function Fp(l,u,p,_){aa[cu++]=l,aa[cu++]=u,aa[cu++]=p,aa[cu++]=_,Wb|=_,l.lanes|=_,l=l.alternate,l!==null&&(l.lanes|=_)}function Gb(l,u,p,_){return Fp(l,u,p,_),Ip(l)}function Kl(l,u){return Fp(l,null,null,u),Ip(l)}function oA(l,u,p){l.lanes|=p;var _=l.alternate;_!==null&&(_.lanes|=p);for(var w=!1,C=l.return;C!==null;)C.childLanes|=p,_=C.alternate,_!==null&&(_.childLanes|=p),C.tag===22&&(l=C.stateNode,l===null||l._visibility&1||(w=!0)),l=C,C=C.return;return l.tag===3?(C=l.stateNode,w&&u!==null&&(w=31-Ae(p),l=C.hiddenUpdates,_=l[w],_===null?l[w]=[u]:_.push(u),u.lane=p|536870912),C):null}function Ip(l){if(50<Dh)throw Dh=0,nx=null,Error(i(185));for(var u=l.return;u!==null;)l=u,u=l.return;return l.tag===3?l.stateNode:null}var uu={};function KU(l,u,p,_){this.tag=l,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=_,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(l,u,p,_){return new KU(l,u,p,_)}function $b(l){return l=l.prototype,!(!l||!l.isReactComponent)}function Ho(l,u){var p=l.alternate;return p===null?(p=Ks(l.tag,u,l.key,l.mode),p.elementType=l.elementType,p.type=l.type,p.stateNode=l.stateNode,p.alternate=l,l.alternate=p):(p.pendingProps=u,p.type=l.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=l.flags&65011712,p.childLanes=l.childLanes,p.lanes=l.lanes,p.child=l.child,p.memoizedProps=l.memoizedProps,p.memoizedState=l.memoizedState,p.updateQueue=l.updateQueue,u=l.dependencies,p.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},p.sibling=l.sibling,p.index=l.index,p.ref=l.ref,p.refCleanup=l.refCleanup,p}function rA(l,u){l.flags&=65011714;var p=l.alternate;return p===null?(l.childLanes=0,l.lanes=u,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=p.childLanes,l.lanes=p.lanes,l.child=p.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=p.memoizedProps,l.memoizedState=p.memoizedState,l.updateQueue=p.updateQueue,l.type=p.type,u=p.dependencies,l.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),l}function Up(l,u,p,_,w,C){var j=0;if(_=l,typeof l=="function")$b(l)&&(j=1);else if(typeof l=="string")j=$B(l,p,oe.current)?26:l==="html"||l==="head"||l==="body"?27:5;else e:switch(l){case E:return l=Ks(31,p,u,w),l.elementType=E,l.lanes=C,l;case v:return Hl(p.children,w,C,u);case x:j=8,w|=24;break;case A:return l=Ks(12,p,u,w|2),l.elementType=A,l.lanes=C,l;case M:return l=Ks(13,p,u,w),l.elementType=M,l.lanes=C,l;case O:return l=Ks(19,p,u,w),l.elementType=O,l.lanes=C,l;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case T:j=10;break e;case k:j=9;break e;case L:j=11;break e;case N:j=14;break e;case P:j=16,_=null;break e}j=29,p=Error(i(130,l===null?"null":typeof l,"")),_=null}return u=Ks(j,p,u,w),u.elementType=l,u.type=_,u.lanes=C,u}function Hl(l,u,p,_){return l=Ks(7,l,_,u),l.lanes=p,l}function Xb(l,u,p){return l=Ks(6,l,null,u),l.lanes=p,l}function lA(l){var u=Ks(18,null,null,0);return u.stateNode=l,u}function Qb(l,u,p){return u=Ks(4,l.children!==null?l.children:[],l.key,u),u.lanes=p,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}var cA=new WeakMap;function oa(l,u){if(typeof l=="object"&&l!==null){var p=cA.get(l);return p!==void 0?p:(u={value:l,source:u,stack:ft(u)},cA.set(l,u),u)}return{value:l,source:u,stack:ft(u)}}var du=[],hu=0,Bp=null,ph=0,ra=[],la=0,Ir=null,to=1,no="";function Vo(l,u){du[hu++]=ph,du[hu++]=Bp,Bp=l,ph=u}function uA(l,u,p){ra[la++]=to,ra[la++]=no,ra[la++]=Ir,Ir=l;var _=to;l=no;var w=32-Ae(_)-1;_&=~(1<<w),p+=1;var C=32-Ae(u)+w;if(30<C){var j=w-w%5;C=(_&(1<<j)-1).toString(32),_>>=j,w-=j,to=1<<32-Ae(u)+w|p<<w|_,no=C+l}else to=1<<C|p<<w|_,no=l}function Yb(l){l.return!==null&&(Vo(l,1),uA(l,1,0))}function Jb(l){for(;l===Bp;)Bp=du[--hu],du[hu]=null,ph=du[--hu],du[hu]=null;for(;l===Ir;)Ir=ra[--la],ra[la]=null,no=ra[--la],ra[la]=null,to=ra[--la],ra[la]=null}function dA(l,u){ra[la++]=to,ra[la++]=no,ra[la++]=Ir,to=u.id,no=u.overflow,Ir=l}var Ui=null,In=null,rn=!1,Ur=null,ca=!1,Zb=Error(i(519));function Br(l){var u=Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw gh(oa(u,l)),Zb}function hA(l){var u=l.stateNode,p=l.type,_=l.memoizedProps;switch(u[Ue]=l,u[qe]=_,p){case"dialog":Jt("cancel",u),Jt("close",u);break;case"iframe":case"object":case"embed":Jt("load",u);break;case"video":case"audio":for(p=0;p<Ih.length;p++)Jt(Ih[p],u);break;case"source":Jt("error",u);break;case"img":case"image":case"link":Jt("error",u),Jt("load",u);break;case"details":Jt("toggle",u);break;case"input":Jt("invalid",u),Dr(u,_.value,_.defaultValue,_.checked,_.defaultChecked,_.type,_.name,!0);break;case"select":Jt("invalid",u);break;case"textarea":Jt("invalid",u),NC(u,_.value,_.defaultValue,_.children)}p=_.children,typeof p!="string"&&typeof p!="number"&&typeof p!="bigint"||u.textContent===""+p||_.suppressHydrationWarning===!0||MT(u.textContent,p)?(_.popover!=null&&(Jt("beforetoggle",u),Jt("toggle",u)),_.onScroll!=null&&Jt("scroll",u),_.onScrollEnd!=null&&Jt("scrollend",u),_.onClick!=null&&(u.onclick=qo),u=!0):u=!1,u||Br(l,!0)}function fA(l){for(Ui=l.return;Ui;)switch(Ui.tag){case 5:case 31:case 13:ca=!1;return;case 27:case 3:ca=!0;return;default:Ui=Ui.return}}function fu(l){if(l!==Ui)return!1;if(!rn)return fA(l),rn=!0,!1;var u=l.tag,p;if((p=u!==3&&u!==27)&&((p=u===5)&&(p=l.type,p=!(p!=="form"&&p!=="button")||_x(l.type,l.memoizedProps)),p=!p),p&&In&&Br(l),fA(l),u===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(i(317));In=IT(l)}else if(u===31){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(i(317));In=IT(l)}else u===27?(u=In,el(l.type)?(l=Sx,Sx=null,In=l):In=u):In=Ui?da(l.stateNode.nextSibling):null;return!0}function Vl(){In=Ui=null,rn=!1}function ev(){var l=Ur;return l!==null&&(Ls===null?Ls=l:Ls.push.apply(Ls,l),Ur=null),l}function gh(l){Ur===null?Ur=[l]:Ur.push(l)}var tv=U(null),Wl=null,Wo=null;function zr(l,u,p){Y(tv,u._currentValue),u._currentValue=p}function Go(l){l._currentValue=tv.current,q(tv)}function nv(l,u,p){for(;l!==null;){var _=l.alternate;if((l.childLanes&u)!==u?(l.childLanes|=u,_!==null&&(_.childLanes|=u)):_!==null&&(_.childLanes&u)!==u&&(_.childLanes|=u),l===p)break;l=l.return}}function iv(l,u,p,_){var w=l.child;for(w!==null&&(w.return=l);w!==null;){var C=w.dependencies;if(C!==null){var j=w.child;C=C.firstContext;e:for(;C!==null;){var W=C;C=w;for(var ae=0;ae<u.length;ae++)if(W.context===u[ae]){C.lanes|=p,W=C.alternate,W!==null&&(W.lanes|=p),nv(C.return,p,l),_||(j=null);break e}C=W.next}}else if(w.tag===18){if(j=w.return,j===null)throw Error(i(341));j.lanes|=p,C=j.alternate,C!==null&&(C.lanes|=p),nv(j,p,l),j=null}else j=w.child;if(j!==null)j.return=w;else for(j=w;j!==null;){if(j===l){j=null;break}if(w=j.sibling,w!==null){w.return=j.return,j=w;break}j=j.return}w=j}}function mu(l,u,p,_){l=null;for(var w=u,C=!1;w!==null;){if(!C){if((w.flags&524288)!==0)C=!0;else if((w.flags&262144)!==0)break}if(w.tag===10){var j=w.alternate;if(j===null)throw Error(i(387));if(j=j.memoizedProps,j!==null){var W=w.type;qs(w.pendingProps.value,j.value)||(l!==null?l.push(W):l=[W])}}else if(w===Z.current){if(j=w.alternate,j===null)throw Error(i(387));j.memoizedState.memoizedState!==w.memoizedState.memoizedState&&(l!==null?l.push(Kh):l=[Kh])}w=w.return}l!==null&&iv(u,l,p,_),u.flags|=262144}function zp(l){for(l=l.firstContext;l!==null;){if(!qs(l.context._currentValue,l.memoizedValue))return!0;l=l.next}return!1}function Gl(l){Wl=l,Wo=null,l=l.dependencies,l!==null&&(l.firstContext=null)}function Bi(l){return mA(Wl,l)}function qp(l,u){return Wl===null&&Gl(l),mA(l,u)}function mA(l,u){var p=u._currentValue;if(u={context:u,memoizedValue:p,next:null},Wo===null){if(l===null)throw Error(i(308));Wo=u,l.dependencies={lanes:0,firstContext:u},l.flags|=524288}else Wo=Wo.next=u;return p}var HU=typeof AbortController<"u"?AbortController:function(){var l=[],u=this.signal={aborted:!1,addEventListener:function(p,_){l.push(_)}};this.abort=function(){u.aborted=!0,l.forEach(function(p){return p()})}},VU=t.unstable_scheduleCallback,WU=t.unstable_NormalPriority,mi={$$typeof:T,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function sv(){return{controller:new HU,data:new Map,refCount:0}}function _h(l){l.refCount--,l.refCount===0&&VU(WU,function(){l.controller.abort()})}var yh=null,av=0,pu=0,gu=null;function GU(l,u){if(yh===null){var p=yh=[];av=0,pu=lx(),gu={status:"pending",value:void 0,then:function(_){p.push(_)}}}return av++,u.then(pA,pA),u}function pA(){if(--av===0&&yh!==null){gu!==null&&(gu.status="fulfilled");var l=yh;yh=null,pu=0,gu=null;for(var u=0;u<l.length;u++)(0,l[u])()}}function $U(l,u){var p=[],_={status:"pending",value:null,reason:null,then:function(w){p.push(w)}};return l.then(function(){_.status="fulfilled",_.value=u;for(var w=0;w<p.length;w++)(0,p[w])(u)},function(w){for(_.status="rejected",_.reason=w,w=0;w<p.length;w++)(0,p[w])(void 0)}),_}var gA=I.S;I.S=function(l,u){ZN=Fe(),typeof u=="object"&&u!==null&&typeof u.then=="function"&&GU(l,u),gA!==null&&gA(l,u)};var $l=U(null);function ov(){var l=$l.current;return l!==null?l:Ln.pooledCache}function Kp(l,u){u===null?Y($l,$l.current):Y($l,u.pool)}function _A(){var l=ov();return l===null?null:{parent:mi._currentValue,pool:l}}var _u=Error(i(460)),rv=Error(i(474)),Hp=Error(i(542)),Vp={then:function(){}};function yA(l){return l=l.status,l==="fulfilled"||l==="rejected"}function bA(l,u,p){switch(p=l[p],p===void 0?l.push(u):p!==u&&(u.then(qo,qo),u=p),u.status){case"fulfilled":return u.value;case"rejected":throw l=u.reason,xA(l),l;default:if(typeof u.status=="string")u.then(qo,qo);else{if(l=Ln,l!==null&&100<l.shellSuspendCounter)throw Error(i(482));l=u,l.status="pending",l.then(function(_){if(u.status==="pending"){var w=u;w.status="fulfilled",w.value=_}},function(_){if(u.status==="pending"){var w=u;w.status="rejected",w.reason=_}})}switch(u.status){case"fulfilled":return u.value;case"rejected":throw l=u.reason,xA(l),l}throw Ql=u,_u}}function Xl(l){try{var u=l._init;return u(l._payload)}catch(p){throw p!==null&&typeof p=="object"&&typeof p.then=="function"?(Ql=p,_u):p}}var Ql=null;function vA(){if(Ql===null)throw Error(i(459));var l=Ql;return Ql=null,l}function xA(l){if(l===_u||l===Hp)throw Error(i(483))}var yu=null,bh=0;function Wp(l){var u=bh;return bh+=1,yu===null&&(yu=[]),bA(yu,l,u)}function vh(l,u){u=u.props.ref,l.ref=u!==void 0?u:null}function Gp(l,u){throw u.$$typeof===g?Error(i(525)):(l=Object.prototype.toString.call(u),Error(i(31,l==="[object Object]"?"object with keys {"+Object.keys(u).join(", ")+"}":l)))}function SA(l){function u(pe,he){if(l){var be=pe.deletions;be===null?(pe.deletions=[he],pe.flags|=16):be.push(he)}}function p(pe,he){if(!l)return null;for(;he!==null;)u(pe,he),he=he.sibling;return null}function _(pe){for(var he=new Map;pe!==null;)pe.key!==null?he.set(pe.key,pe):he.set(pe.index,pe),pe=pe.sibling;return he}function w(pe,he){return pe=Ho(pe,he),pe.index=0,pe.sibling=null,pe}function C(pe,he,be){return pe.index=be,l?(be=pe.alternate,be!==null?(be=be.index,be<he?(pe.flags|=67108866,he):be):(pe.flags|=67108866,he)):(pe.flags|=1048576,he)}function j(pe){return l&&pe.alternate===null&&(pe.flags|=67108866),pe}function W(pe,he,be,Me){return he===null||he.tag!==6?(he=Xb(be,pe.mode,Me),he.return=pe,he):(he=w(he,be),he.return=pe,he)}function ae(pe,he,be,Me){var _t=be.type;return _t===v?Ne(pe,he,be.props.children,Me,be.key):he!==null&&(he.elementType===_t||typeof _t=="object"&&_t!==null&&_t.$$typeof===P&&Xl(_t)===he.type)?(he=w(he,be.props),vh(he,be),he.return=pe,he):(he=Up(be.type,be.key,be.props,null,pe.mode,Me),vh(he,be),he.return=pe,he)}function ve(pe,he,be,Me){return he===null||he.tag!==4||he.stateNode.containerInfo!==be.containerInfo||he.stateNode.implementation!==be.implementation?(he=Qb(be,pe.mode,Me),he.return=pe,he):(he=w(he,be.children||[]),he.return=pe,he)}function Ne(pe,he,be,Me,_t){return he===null||he.tag!==7?(he=Hl(be,pe.mode,Me,_t),he.return=pe,he):(he=w(he,be),he.return=pe,he)}function Oe(pe,he,be){if(typeof he=="string"&&he!==""||typeof he=="number"||typeof he=="bigint")return he=Xb(""+he,pe.mode,be),he.return=pe,he;if(typeof he=="object"&&he!==null){switch(he.$$typeof){case y:return be=Up(he.type,he.key,he.props,null,pe.mode,be),vh(be,he),be.return=pe,be;case b:return he=Qb(he,pe.mode,be),he.return=pe,he;case P:return he=Xl(he),Oe(pe,he,be)}if(B(he)||D(he))return he=Hl(he,pe.mode,be,null),he.return=pe,he;if(typeof he.then=="function")return Oe(pe,Wp(he),be);if(he.$$typeof===T)return Oe(pe,qp(pe,he),be);Gp(pe,he)}return null}function xe(pe,he,be,Me){var _t=he!==null?he.key:null;if(typeof be=="string"&&be!==""||typeof be=="number"||typeof be=="bigint")return _t!==null?null:W(pe,he,""+be,Me);if(typeof be=="object"&&be!==null){switch(be.$$typeof){case y:return be.key===_t?ae(pe,he,be,Me):null;case b:return be.key===_t?ve(pe,he,be,Me):null;case P:return be=Xl(be),xe(pe,he,be,Me)}if(B(be)||D(be))return _t!==null?null:Ne(pe,he,be,Me,null);if(typeof be.then=="function")return xe(pe,he,Wp(be),Me);if(be.$$typeof===T)return xe(pe,he,qp(pe,be),Me);Gp(pe,be)}return null}function we(pe,he,be,Me,_t){if(typeof Me=="string"&&Me!==""||typeof Me=="number"||typeof Me=="bigint")return pe=pe.get(be)||null,W(he,pe,""+Me,_t);if(typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case y:return pe=pe.get(Me.key===null?be:Me.key)||null,ae(he,pe,Me,_t);case b:return pe=pe.get(Me.key===null?be:Me.key)||null,ve(he,pe,Me,_t);case P:return Me=Xl(Me),we(pe,he,be,Me,_t)}if(B(Me)||D(Me))return pe=pe.get(be)||null,Ne(he,pe,Me,_t,null);if(typeof Me.then=="function")return we(pe,he,be,Wp(Me),_t);if(Me.$$typeof===T)return we(pe,he,be,qp(he,Me),_t);Gp(he,Me)}return null}function st(pe,he,be,Me){for(var _t=null,pn=null,lt=he,Ut=he=0,tn=null;lt!==null&&Ut<be.length;Ut++){lt.index>Ut?(tn=lt,lt=null):tn=lt.sibling;var gn=xe(pe,lt,be[Ut],Me);if(gn===null){lt===null&&(lt=tn);break}l&<&&gn.alternate===null&&u(pe,lt),he=C(gn,he,Ut),pn===null?_t=gn:pn.sibling=gn,pn=gn,lt=tn}if(Ut===be.length)return p(pe,lt),rn&&Vo(pe,Ut),_t;if(lt===null){for(;Ut<be.length;Ut++)lt=Oe(pe,be[Ut],Me),lt!==null&&(he=C(lt,he,Ut),pn===null?_t=lt:pn.sibling=lt,pn=lt);return rn&&Vo(pe,Ut),_t}for(lt=_(lt);Ut<be.length;Ut++)tn=we(lt,pe,Ut,be[Ut],Me),tn!==null&&(l&&tn.alternate!==null&<.delete(tn.key===null?Ut:tn.key),he=C(tn,he,Ut),pn===null?_t=tn:pn.sibling=tn,pn=tn);return l&<.forEach(function(al){return u(pe,al)}),rn&&Vo(pe,Ut),_t}function St(pe,he,be,Me){if(be==null)throw Error(i(151));for(var _t=null,pn=null,lt=he,Ut=he=0,tn=null,gn=be.next();lt!==null&&!gn.done;Ut++,gn=be.next()){lt.index>Ut?(tn=lt,lt=null):tn=lt.sibling;var al=xe(pe,lt,gn.value,Me);if(al===null){lt===null&&(lt=tn);break}l&<&&al.alternate===null&&u(pe,lt),he=C(al,he,Ut),pn===null?_t=al:pn.sibling=al,pn=al,lt=tn}if(gn.done)return p(pe,lt),rn&&Vo(pe,Ut),_t;if(lt===null){for(;!gn.done;Ut++,gn=be.next())gn=Oe(pe,gn.value,Me),gn!==null&&(he=C(gn,he,Ut),pn===null?_t=gn:pn.sibling=gn,pn=gn);return rn&&Vo(pe,Ut),_t}for(lt=_(lt);!gn.done;Ut++,gn=be.next())gn=we(lt,pe,Ut,gn.value,Me),gn!==null&&(l&&gn.alternate!==null&<.delete(gn.key===null?Ut:gn.key),he=C(gn,he,Ut),pn===null?_t=gn:pn.sibling=gn,pn=gn);return l&<.forEach(function(a7){return u(pe,a7)}),rn&&Vo(pe,Ut),_t}function Tn(pe,he,be,Me){if(typeof be=="object"&&be!==null&&be.type===v&&be.key===null&&(be=be.props.children),typeof be=="object"&&be!==null){switch(be.$$typeof){case y:e:{for(var _t=be.key;he!==null;){if(he.key===_t){if(_t=be.type,_t===v){if(he.tag===7){p(pe,he.sibling),Me=w(he,be.props.children),Me.return=pe,pe=Me;break e}}else if(he.elementType===_t||typeof _t=="object"&&_t!==null&&_t.$$typeof===P&&Xl(_t)===he.type){p(pe,he.sibling),Me=w(he,be.props),vh(Me,be),Me.return=pe,pe=Me;break e}p(pe,he);break}else u(pe,he);he=he.sibling}be.type===v?(Me=Hl(be.props.children,pe.mode,Me,be.key),Me.return=pe,pe=Me):(Me=Up(be.type,be.key,be.props,null,pe.mode,Me),vh(Me,be),Me.return=pe,pe=Me)}return j(pe);case b:e:{for(_t=be.key;he!==null;){if(he.key===_t)if(he.tag===4&&he.stateNode.containerInfo===be.containerInfo&&he.stateNode.implementation===be.implementation){p(pe,he.sibling),Me=w(he,be.children||[]),Me.return=pe,pe=Me;break e}else{p(pe,he);break}else u(pe,he);he=he.sibling}Me=Qb(be,pe.mode,Me),Me.return=pe,pe=Me}return j(pe);case P:return be=Xl(be),Tn(pe,he,be,Me)}if(B(be))return st(pe,he,be,Me);if(D(be)){if(_t=D(be),typeof _t!="function")throw Error(i(150));return be=_t.call(be),St(pe,he,be,Me)}if(typeof be.then=="function")return Tn(pe,he,Wp(be),Me);if(be.$$typeof===T)return Tn(pe,he,qp(pe,be),Me);Gp(pe,be)}return typeof be=="string"&&be!==""||typeof be=="number"||typeof be=="bigint"?(be=""+be,he!==null&&he.tag===6?(p(pe,he.sibling),Me=w(he,be),Me.return=pe,pe=Me):(p(pe,he),Me=Xb(be,pe.mode,Me),Me.return=pe,pe=Me),j(pe)):p(pe,he)}return function(pe,he,be,Me){try{bh=0;var _t=Tn(pe,he,be,Me);return yu=null,_t}catch(lt){if(lt===_u||lt===Hp)throw lt;var pn=Ks(29,lt,null,pe.mode);return pn.lanes=Me,pn.return=pe,pn}finally{}}}var Yl=SA(!0),wA=SA(!1),qr=!1;function lv(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function cv(l,u){l=l.updateQueue,u.updateQueue===l&&(u.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function Kr(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function Hr(l,u,p){var _=l.updateQueue;if(_===null)return null;if(_=_.shared,(bn&2)!==0){var w=_.pending;return w===null?u.next=u:(u.next=w.next,w.next=u),_.pending=u,u=Ip(l),oA(l,null,p),u}return Fp(l,_,u,p),Ip(l)}function xh(l,u,p){if(u=u.updateQueue,u!==null&&(u=u.shared,(p&4194048)!==0)){var _=u.lanes;_&=l.pendingLanes,p|=_,u.lanes=p,ne(l,p)}}function uv(l,u){var p=l.updateQueue,_=l.alternate;if(_!==null&&(_=_.updateQueue,p===_)){var w=null,C=null;if(p=p.firstBaseUpdate,p!==null){do{var j={lane:p.lane,tag:p.tag,payload:p.payload,callback:null,next:null};C===null?w=C=j:C=C.next=j,p=p.next}while(p!==null);C===null?w=C=u:C=C.next=u}else w=C=u;p={baseState:_.baseState,firstBaseUpdate:w,lastBaseUpdate:C,shared:_.shared,callbacks:_.callbacks},l.updateQueue=p;return}l=p.lastBaseUpdate,l===null?p.firstBaseUpdate=u:l.next=u,p.lastBaseUpdate=u}var dv=!1;function Sh(){if(dv){var l=gu;if(l!==null)throw l}}function wh(l,u,p,_){dv=!1;var w=l.updateQueue;qr=!1;var C=w.firstBaseUpdate,j=w.lastBaseUpdate,W=w.shared.pending;if(W!==null){w.shared.pending=null;var ae=W,ve=ae.next;ae.next=null,j===null?C=ve:j.next=ve,j=ae;var Ne=l.alternate;Ne!==null&&(Ne=Ne.updateQueue,W=Ne.lastBaseUpdate,W!==j&&(W===null?Ne.firstBaseUpdate=ve:W.next=ve,Ne.lastBaseUpdate=ae))}if(C!==null){var Oe=w.baseState;j=0,Ne=ve=ae=null,W=C;do{var xe=W.lane&-536870913,we=xe!==W.lane;if(we?(en&xe)===xe:(_&xe)===xe){xe!==0&&xe===pu&&(dv=!0),Ne!==null&&(Ne=Ne.next={lane:0,tag:W.tag,payload:W.payload,callback:null,next:null});e:{var st=l,St=W;xe=u;var Tn=p;switch(St.tag){case 1:if(st=St.payload,typeof st=="function"){Oe=st.call(Tn,Oe,xe);break e}Oe=st;break e;case 3:st.flags=st.flags&-65537|128;case 0:if(st=St.payload,xe=typeof st=="function"?st.call(Tn,Oe,xe):st,xe==null)break e;Oe=m({},Oe,xe);break e;case 2:qr=!0}}xe=W.callback,xe!==null&&(l.flags|=64,we&&(l.flags|=8192),we=w.callbacks,we===null?w.callbacks=[xe]:we.push(xe))}else we={lane:xe,tag:W.tag,payload:W.payload,callback:W.callback,next:null},Ne===null?(ve=Ne=we,ae=Oe):Ne=Ne.next=we,j|=xe;if(W=W.next,W===null){if(W=w.shared.pending,W===null)break;we=W,W=we.next,we.next=null,w.lastBaseUpdate=we,w.shared.pending=null}}while(!0);Ne===null&&(ae=Oe),w.baseState=ae,w.firstBaseUpdate=ve,w.lastBaseUpdate=Ne,C===null&&(w.shared.lanes=0),Xr|=j,l.lanes=j,l.memoizedState=Oe}}function kA(l,u){if(typeof l!="function")throw Error(i(191,l));l.call(u)}function CA(l,u){var p=l.callbacks;if(p!==null)for(l.callbacks=null,l=0;l<p.length;l++)kA(p[l],u)}var bu=U(null),$p=U(0);function AA(l,u){l=nr,Y($p,l),Y(bu,u),nr=l|u.baseLanes}function hv(){Y($p,nr),Y(bu,bu.current)}function fv(){nr=$p.current,q(bu),q($p)}var Hs=U(null),ua=null;function Vr(l){var u=l.alternate;Y(ni,ni.current&1),Y(Hs,l),ua===null&&(u===null||bu.current!==null||u.memoizedState!==null)&&(ua=l)}function mv(l){Y(ni,ni.current),Y(Hs,l),ua===null&&(ua=l)}function NA(l){l.tag===22?(Y(ni,ni.current),Y(Hs,l),ua===null&&(ua=l)):Wr()}function Wr(){Y(ni,ni.current),Y(Hs,Hs.current)}function Vs(l){q(Hs),ua===l&&(ua=null),q(ni)}var ni=U(0);function Xp(l){for(var u=l;u!==null;){if(u.tag===13){var p=u.memoizedState;if(p!==null&&(p=p.dehydrated,p===null||vx(p)||xx(p)))return u}else if(u.tag===19&&(u.memoizedProps.revealOrder==="forwards"||u.memoizedProps.revealOrder==="backwards"||u.memoizedProps.revealOrder==="unstable_legacy-backwards"||u.memoizedProps.revealOrder==="together")){if((u.flags&128)!==0)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var $o=0,Rt=null,An=null,pi=null,Qp=!1,vu=!1,Jl=!1,Yp=0,kh=0,xu=null,XU=0;function Jn(){throw Error(i(321))}function pv(l,u){if(u===null)return!1;for(var p=0;p<u.length&&p<l.length;p++)if(!qs(l[p],u[p]))return!1;return!0}function gv(l,u,p,_,w,C){return $o=C,Rt=u,u.memoizedState=null,u.updateQueue=null,u.lanes=0,I.H=l===null||l.memoizedState===null?uN:Ov,Jl=!1,C=p(_,w),Jl=!1,vu&&(C=MA(u,p,_,w)),TA(l),C}function TA(l){I.H=Nh;var u=An!==null&&An.next!==null;if($o=0,pi=An=Rt=null,Qp=!1,kh=0,xu=null,u)throw Error(i(300));l===null||gi||(l=l.dependencies,l!==null&&zp(l)&&(gi=!0))}function MA(l,u,p,_){Rt=l;var w=0;do{if(vu&&(xu=null),kh=0,vu=!1,25<=w)throw Error(i(301));if(w+=1,pi=An=null,l.updateQueue!=null){var C=l.updateQueue;C.lastEffect=null,C.events=null,C.stores=null,C.memoCache!=null&&(C.memoCache.index=0)}I.H=dN,C=u(p,_)}while(vu);return C}function QU(){var l=I.H,u=l.useState()[0];return u=typeof u.then=="function"?Ch(u):u,l=l.useState()[0],(An!==null?An.memoizedState:null)!==l&&(Rt.flags|=1024),u}function _v(){var l=Yp!==0;return Yp=0,l}function yv(l,u,p){u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~p}function bv(l){if(Qp){for(l=l.memoizedState;l!==null;){var u=l.queue;u!==null&&(u.pending=null),l=l.next}Qp=!1}$o=0,pi=An=Rt=null,vu=!1,kh=Yp=0,xu=null}function hs(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return pi===null?Rt.memoizedState=pi=l:pi=pi.next=l,pi}function ii(){if(An===null){var l=Rt.alternate;l=l!==null?l.memoizedState:null}else l=An.next;var u=pi===null?Rt.memoizedState:pi.next;if(u!==null)pi=u,An=l;else{if(l===null)throw Rt.alternate===null?Error(i(467)):Error(i(310));An=l,l={memoizedState:An.memoizedState,baseState:An.baseState,baseQueue:An.baseQueue,queue:An.queue,next:null},pi===null?Rt.memoizedState=pi=l:pi=pi.next=l}return pi}function Jp(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ch(l){var u=kh;return kh+=1,xu===null&&(xu=[]),l=bA(xu,l,u),u=Rt,(pi===null?u.memoizedState:pi.next)===null&&(u=u.alternate,I.H=u===null||u.memoizedState===null?uN:Ov),l}function Zp(l){if(l!==null&&typeof l=="object"){if(typeof l.then=="function")return Ch(l);if(l.$$typeof===T)return Bi(l)}throw Error(i(438,String(l)))}function vv(l){var u=null,p=Rt.updateQueue;if(p!==null&&(u=p.memoCache),u==null){var _=Rt.alternate;_!==null&&(_=_.updateQueue,_!==null&&(_=_.memoCache,_!=null&&(u={data:_.data.map(function(w){return w.slice()}),index:0})))}if(u==null&&(u={data:[],index:0}),p===null&&(p=Jp(),Rt.updateQueue=p),p.memoCache=u,p=u.data[u.index],p===void 0)for(p=u.data[u.index]=Array(l),_=0;_<l;_++)p[_]=R;return u.index++,p}function Xo(l,u){return typeof u=="function"?u(l):u}function eg(l){var u=ii();return xv(u,An,l)}function xv(l,u,p){var _=l.queue;if(_===null)throw Error(i(311));_.lastRenderedReducer=p;var w=l.baseQueue,C=_.pending;if(C!==null){if(w!==null){var j=w.next;w.next=C.next,C.next=j}u.baseQueue=w=C,_.pending=null}if(C=l.baseState,w===null)l.memoizedState=C;else{u=w.next;var W=j=null,ae=null,ve=u,Ne=!1;do{var Oe=ve.lane&-536870913;if(Oe!==ve.lane?(en&Oe)===Oe:($o&Oe)===Oe){var xe=ve.revertLane;if(xe===0)ae!==null&&(ae=ae.next={lane:0,revertLane:0,gesture:null,action:ve.action,hasEagerState:ve.hasEagerState,eagerState:ve.eagerState,next:null}),Oe===pu&&(Ne=!0);else if(($o&xe)===xe){ve=ve.next,xe===pu&&(Ne=!0);continue}else Oe={lane:0,revertLane:ve.revertLane,gesture:null,action:ve.action,hasEagerState:ve.hasEagerState,eagerState:ve.eagerState,next:null},ae===null?(W=ae=Oe,j=C):ae=ae.next=Oe,Rt.lanes|=xe,Xr|=xe;Oe=ve.action,Jl&&p(C,Oe),C=ve.hasEagerState?ve.eagerState:p(C,Oe)}else xe={lane:Oe,revertLane:ve.revertLane,gesture:ve.gesture,action:ve.action,hasEagerState:ve.hasEagerState,eagerState:ve.eagerState,next:null},ae===null?(W=ae=xe,j=C):ae=ae.next=xe,Rt.lanes|=Oe,Xr|=Oe;ve=ve.next}while(ve!==null&&ve!==u);if(ae===null?j=C:ae.next=W,!qs(C,l.memoizedState)&&(gi=!0,Ne&&(p=gu,p!==null)))throw p;l.memoizedState=C,l.baseState=j,l.baseQueue=ae,_.lastRenderedState=C}return w===null&&(_.lanes=0),[l.memoizedState,_.dispatch]}function Sv(l){var u=ii(),p=u.queue;if(p===null)throw Error(i(311));p.lastRenderedReducer=l;var _=p.dispatch,w=p.pending,C=u.memoizedState;if(w!==null){p.pending=null;var j=w=w.next;do C=l(C,j.action),j=j.next;while(j!==w);qs(C,u.memoizedState)||(gi=!0),u.memoizedState=C,u.baseQueue===null&&(u.baseState=C),p.lastRenderedState=C}return[C,_]}function LA(l,u,p){var _=Rt,w=ii(),C=rn;if(C){if(p===void 0)throw Error(i(407));p=p()}else p=u();var j=!qs((An||w).memoizedState,p);if(j&&(w.memoizedState=p,gi=!0),w=w.queue,Cv(EA.bind(null,_,w,l),[l]),w.getSnapshot!==u||j||pi!==null&&pi.memoizedState.tag&1){if(_.flags|=2048,Su(9,{destroy:void 0},PA.bind(null,_,w,p,u),null),Ln===null)throw Error(i(349));C||($o&127)!==0||OA(_,u,p)}return p}function OA(l,u,p){l.flags|=16384,l={getSnapshot:u,value:p},u=Rt.updateQueue,u===null?(u=Jp(),Rt.updateQueue=u,u.stores=[l]):(p=u.stores,p===null?u.stores=[l]:p.push(l))}function PA(l,u,p,_){u.value=p,u.getSnapshot=_,jA(u)&&RA(l)}function EA(l,u,p){return p(function(){jA(u)&&RA(l)})}function jA(l){var u=l.getSnapshot;l=l.value;try{var p=u();return!qs(l,p)}catch{return!0}}function RA(l){var u=Kl(l,2);u!==null&&Os(u,l,2)}function wv(l){var u=hs();if(typeof l=="function"){var p=l;if(l=p(),Jl){ie(!0);try{p()}finally{ie(!1)}}}return u.memoizedState=u.baseState=l,u.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:l},u}function DA(l,u,p,_){return l.baseState=p,xv(l,An,typeof _=="function"?_:Xo)}function YU(l,u,p,_,w){if(ig(l))throw Error(i(485));if(l=u.action,l!==null){var C={payload:w,action:l,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(j){C.listeners.push(j)}};I.T!==null?p(!0):C.isTransition=!1,_(C),p=u.pending,p===null?(C.next=u.pending=C,FA(u,C)):(C.next=p.next,u.pending=p.next=C)}}function FA(l,u){var p=u.action,_=u.payload,w=l.state;if(u.isTransition){var C=I.T,j={};I.T=j;try{var W=p(w,_),ae=I.S;ae!==null&&ae(j,W),IA(l,u,W)}catch(ve){kv(l,u,ve)}finally{C!==null&&j.types!==null&&(C.types=j.types),I.T=C}}else try{C=p(w,_),IA(l,u,C)}catch(ve){kv(l,u,ve)}}function IA(l,u,p){p!==null&&typeof p=="object"&&typeof p.then=="function"?p.then(function(_){UA(l,u,_)},function(_){return kv(l,u,_)}):UA(l,u,p)}function UA(l,u,p){u.status="fulfilled",u.value=p,BA(u),l.state=p,u=l.pending,u!==null&&(p=u.next,p===u?l.pending=null:(p=p.next,u.next=p,FA(l,p)))}function kv(l,u,p){var _=l.pending;if(l.pending=null,_!==null){_=_.next;do u.status="rejected",u.reason=p,BA(u),u=u.next;while(u!==_)}l.action=null}function BA(l){l=l.listeners;for(var u=0;u<l.length;u++)(0,l[u])()}function zA(l,u){return u}function qA(l,u){if(rn){var p=Ln.formState;if(p!==null){e:{var _=Rt;if(rn){if(In){t:{for(var w=In,C=ca;w.nodeType!==8;){if(!C){w=null;break t}if(w=da(w.nextSibling),w===null){w=null;break t}}C=w.data,w=C==="F!"||C==="F"?w:null}if(w){In=da(w.nextSibling),_=w.data==="F!";break e}}Br(_)}_=!1}_&&(u=p[0])}}return p=hs(),p.memoizedState=p.baseState=u,_={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zA,lastRenderedState:u},p.queue=_,p=rN.bind(null,Rt,_),_.dispatch=p,_=wv(!1),C=Lv.bind(null,Rt,!1,_.queue),_=hs(),w={state:u,dispatch:null,action:l,pending:null},_.queue=w,p=YU.bind(null,Rt,w,C,p),w.dispatch=p,_.memoizedState=l,[u,p,!1]}function KA(l){var u=ii();return HA(u,An,l)}function HA(l,u,p){if(u=xv(l,u,zA)[0],l=eg(Xo)[0],typeof u=="object"&&u!==null&&typeof u.then=="function")try{var _=Ch(u)}catch(j){throw j===_u?Hp:j}else _=u;u=ii();var w=u.queue,C=w.dispatch;return p!==u.memoizedState&&(Rt.flags|=2048,Su(9,{destroy:void 0},JU.bind(null,w,p),null)),[_,C,l]}function JU(l,u){l.action=u}function VA(l){var u=ii(),p=An;if(p!==null)return HA(u,p,l);ii(),u=u.memoizedState,p=ii();var _=p.queue.dispatch;return p.memoizedState=l,[u,_,!1]}function Su(l,u,p,_){return l={tag:l,create:p,deps:_,inst:u,next:null},u=Rt.updateQueue,u===null&&(u=Jp(),Rt.updateQueue=u),p=u.lastEffect,p===null?u.lastEffect=l.next=l:(_=p.next,p.next=l,l.next=_,u.lastEffect=l),l}function WA(){return ii().memoizedState}function tg(l,u,p,_){var w=hs();Rt.flags|=l,w.memoizedState=Su(1|u,{destroy:void 0},p,_===void 0?null:_)}function ng(l,u,p,_){var w=ii();_=_===void 0?null:_;var C=w.memoizedState.inst;An!==null&&_!==null&&pv(_,An.memoizedState.deps)?w.memoizedState=Su(u,C,p,_):(Rt.flags|=l,w.memoizedState=Su(1|u,C,p,_))}function GA(l,u){tg(8390656,8,l,u)}function Cv(l,u){ng(2048,8,l,u)}function ZU(l){Rt.flags|=4;var u=Rt.updateQueue;if(u===null)u=Jp(),Rt.updateQueue=u,u.events=[l];else{var p=u.events;p===null?u.events=[l]:p.push(l)}}function $A(l){var u=ii().memoizedState;return ZU({ref:u,nextImpl:l}),function(){if((bn&2)!==0)throw Error(i(440));return u.impl.apply(void 0,arguments)}}function XA(l,u){return ng(4,2,l,u)}function QA(l,u){return ng(4,4,l,u)}function YA(l,u){if(typeof u=="function"){l=l();var p=u(l);return function(){typeof p=="function"?p():u(null)}}if(u!=null)return l=l(),u.current=l,function(){u.current=null}}function JA(l,u,p){p=p!=null?p.concat([l]):null,ng(4,4,YA.bind(null,u,l),p)}function Av(){}function ZA(l,u){var p=ii();u=u===void 0?null:u;var _=p.memoizedState;return u!==null&&pv(u,_[1])?_[0]:(p.memoizedState=[l,u],l)}function eN(l,u){var p=ii();u=u===void 0?null:u;var _=p.memoizedState;if(u!==null&&pv(u,_[1]))return _[0];if(_=l(),Jl){ie(!0);try{l()}finally{ie(!1)}}return p.memoizedState=[_,u],_}function Nv(l,u,p){return p===void 0||($o&1073741824)!==0&&(en&261930)===0?l.memoizedState=u:(l.memoizedState=p,l=tT(),Rt.lanes|=l,Xr|=l,p)}function tN(l,u,p,_){return qs(p,u)?p:bu.current!==null?(l=Nv(l,p,_),qs(l,u)||(gi=!0),l):($o&42)===0||($o&1073741824)!==0&&(en&261930)===0?(gi=!0,l.memoizedState=p):(l=tT(),Rt.lanes|=l,Xr|=l,u)}function nN(l,u,p,_,w){var C=V.p;V.p=C!==0&&8>C?C:8;var j=I.T,W={};I.T=W,Lv(l,!1,u,p);try{var ae=w(),ve=I.S;if(ve!==null&&ve(W,ae),ae!==null&&typeof ae=="object"&&typeof ae.then=="function"){var Ne=$U(ae,_);Ah(l,u,Ne,$s(l))}else Ah(l,u,_,$s(l))}catch(Oe){Ah(l,u,{then:function(){},status:"rejected",reason:Oe},$s())}finally{V.p=C,j!==null&&W.types!==null&&(j.types=W.types),I.T=j}}function eB(){}function Tv(l,u,p,_){if(l.tag!==5)throw Error(i(476));var w=iN(l).queue;nN(l,w,u,K,p===null?eB:function(){return sN(l),p(_)})}function iN(l){var u=l.memoizedState;if(u!==null)return u;u={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:K},next:null};var p={};return u.next={memoizedState:p,baseState:p,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:p},next:null},l.memoizedState=u,l=l.alternate,l!==null&&(l.memoizedState=u),u}function sN(l){var u=iN(l);u.next===null&&(u=l.alternate.memoizedState),Ah(l,u.next.queue,{},$s())}function Mv(){return Bi(Kh)}function aN(){return ii().memoizedState}function oN(){return ii().memoizedState}function tB(l){for(var u=l.return;u!==null;){switch(u.tag){case 24:case 3:var p=$s();l=Kr(p);var _=Hr(u,l,p);_!==null&&(Os(_,u,p),xh(_,u,p)),u={cache:sv()},l.payload=u;return}u=u.return}}function nB(l,u,p){var _=$s();p={lane:_,revertLane:0,gesture:null,action:p,hasEagerState:!1,eagerState:null,next:null},ig(l)?lN(u,p):(p=Gb(l,u,p,_),p!==null&&(Os(p,l,_),cN(p,u,_)))}function rN(l,u,p){var _=$s();Ah(l,u,p,_)}function Ah(l,u,p,_){var w={lane:_,revertLane:0,gesture:null,action:p,hasEagerState:!1,eagerState:null,next:null};if(ig(l))lN(u,w);else{var C=l.alternate;if(l.lanes===0&&(C===null||C.lanes===0)&&(C=u.lastRenderedReducer,C!==null))try{var j=u.lastRenderedState,W=C(j,p);if(w.hasEagerState=!0,w.eagerState=W,qs(W,j))return Fp(l,u,w,0),Ln===null&&Dp(),!1}catch{}finally{}if(p=Gb(l,u,w,_),p!==null)return Os(p,l,_),cN(p,u,_),!0}return!1}function Lv(l,u,p,_){if(_={lane:2,revertLane:lx(),gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},ig(l)){if(u)throw Error(i(479))}else u=Gb(l,p,_,2),u!==null&&Os(u,l,2)}function ig(l){var u=l.alternate;return l===Rt||u!==null&&u===Rt}function lN(l,u){vu=Qp=!0;var p=l.pending;p===null?u.next=u:(u.next=p.next,p.next=u),l.pending=u}function cN(l,u,p){if((p&4194048)!==0){var _=u.lanes;_&=l.pendingLanes,p|=_,u.lanes=p,ne(l,p)}}var Nh={readContext:Bi,use:Zp,useCallback:Jn,useContext:Jn,useEffect:Jn,useImperativeHandle:Jn,useLayoutEffect:Jn,useInsertionEffect:Jn,useMemo:Jn,useReducer:Jn,useRef:Jn,useState:Jn,useDebugValue:Jn,useDeferredValue:Jn,useTransition:Jn,useSyncExternalStore:Jn,useId:Jn,useHostTransitionStatus:Jn,useFormState:Jn,useActionState:Jn,useOptimistic:Jn,useMemoCache:Jn,useCacheRefresh:Jn};Nh.useEffectEvent=Jn;var uN={readContext:Bi,use:Zp,useCallback:function(l,u){return hs().memoizedState=[l,u===void 0?null:u],l},useContext:Bi,useEffect:GA,useImperativeHandle:function(l,u,p){p=p!=null?p.concat([l]):null,tg(4194308,4,YA.bind(null,u,l),p)},useLayoutEffect:function(l,u){return tg(4194308,4,l,u)},useInsertionEffect:function(l,u){tg(4,2,l,u)},useMemo:function(l,u){var p=hs();u=u===void 0?null:u;var _=l();if(Jl){ie(!0);try{l()}finally{ie(!1)}}return p.memoizedState=[_,u],_},useReducer:function(l,u,p){var _=hs();if(p!==void 0){var w=p(u);if(Jl){ie(!0);try{p(u)}finally{ie(!1)}}}else w=u;return _.memoizedState=_.baseState=w,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:w},_.queue=l,l=l.dispatch=nB.bind(null,Rt,l),[_.memoizedState,l]},useRef:function(l){var u=hs();return l={current:l},u.memoizedState=l},useState:function(l){l=wv(l);var u=l.queue,p=rN.bind(null,Rt,u);return u.dispatch=p,[l.memoizedState,p]},useDebugValue:Av,useDeferredValue:function(l,u){var p=hs();return Nv(p,l,u)},useTransition:function(){var l=wv(!1);return l=nN.bind(null,Rt,l.queue,!0,!1),hs().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,u,p){var _=Rt,w=hs();if(rn){if(p===void 0)throw Error(i(407));p=p()}else{if(p=u(),Ln===null)throw Error(i(349));(en&127)!==0||OA(_,u,p)}w.memoizedState=p;var C={value:p,getSnapshot:u};return w.queue=C,GA(EA.bind(null,_,C,l),[l]),_.flags|=2048,Su(9,{destroy:void 0},PA.bind(null,_,C,p,u),null),p},useId:function(){var l=hs(),u=Ln.identifierPrefix;if(rn){var p=no,_=to;p=(_&~(1<<32-Ae(_)-1)).toString(32)+p,u="_"+u+"R_"+p,p=Yp++,0<p&&(u+="H"+p.toString(32)),u+="_"}else p=XU++,u="_"+u+"r_"+p.toString(32)+"_";return l.memoizedState=u},useHostTransitionStatus:Mv,useFormState:qA,useActionState:qA,useOptimistic:function(l){var u=hs();u.memoizedState=u.baseState=l;var p={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return u.queue=p,u=Lv.bind(null,Rt,!0,p),p.dispatch=u,[l,u]},useMemoCache:vv,useCacheRefresh:function(){return hs().memoizedState=tB.bind(null,Rt)},useEffectEvent:function(l){var u=hs(),p={impl:l};return u.memoizedState=p,function(){if((bn&2)!==0)throw Error(i(440));return p.impl.apply(void 0,arguments)}}},Ov={readContext:Bi,use:Zp,useCallback:ZA,useContext:Bi,useEffect:Cv,useImperativeHandle:JA,useInsertionEffect:XA,useLayoutEffect:QA,useMemo:eN,useReducer:eg,useRef:WA,useState:function(){return eg(Xo)},useDebugValue:Av,useDeferredValue:function(l,u){var p=ii();return tN(p,An.memoizedState,l,u)},useTransition:function(){var l=eg(Xo)[0],u=ii().memoizedState;return[typeof l=="boolean"?l:Ch(l),u]},useSyncExternalStore:LA,useId:aN,useHostTransitionStatus:Mv,useFormState:KA,useActionState:KA,useOptimistic:function(l,u){var p=ii();return DA(p,An,l,u)},useMemoCache:vv,useCacheRefresh:oN};Ov.useEffectEvent=$A;var dN={readContext:Bi,use:Zp,useCallback:ZA,useContext:Bi,useEffect:Cv,useImperativeHandle:JA,useInsertionEffect:XA,useLayoutEffect:QA,useMemo:eN,useReducer:Sv,useRef:WA,useState:function(){return Sv(Xo)},useDebugValue:Av,useDeferredValue:function(l,u){var p=ii();return An===null?Nv(p,l,u):tN(p,An.memoizedState,l,u)},useTransition:function(){var l=Sv(Xo)[0],u=ii().memoizedState;return[typeof l=="boolean"?l:Ch(l),u]},useSyncExternalStore:LA,useId:aN,useHostTransitionStatus:Mv,useFormState:VA,useActionState:VA,useOptimistic:function(l,u){var p=ii();return An!==null?DA(p,An,l,u):(p.baseState=l,[l,p.queue.dispatch])},useMemoCache:vv,useCacheRefresh:oN};dN.useEffectEvent=$A;function Pv(l,u,p,_){u=l.memoizedState,p=p(_,u),p=p==null?u:m({},u,p),l.memoizedState=p,l.lanes===0&&(l.updateQueue.baseState=p)}var Ev={enqueueSetState:function(l,u,p){l=l._reactInternals;var _=$s(),w=Kr(_);w.payload=u,p!=null&&(w.callback=p),u=Hr(l,w,_),u!==null&&(Os(u,l,_),xh(u,l,_))},enqueueReplaceState:function(l,u,p){l=l._reactInternals;var _=$s(),w=Kr(_);w.tag=1,w.payload=u,p!=null&&(w.callback=p),u=Hr(l,w,_),u!==null&&(Os(u,l,_),xh(u,l,_))},enqueueForceUpdate:function(l,u){l=l._reactInternals;var p=$s(),_=Kr(p);_.tag=2,u!=null&&(_.callback=u),u=Hr(l,_,p),u!==null&&(Os(u,l,p),xh(u,l,p))}};function hN(l,u,p,_,w,C,j){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(_,C,j):u.prototype&&u.prototype.isPureReactComponent?!fh(p,_)||!fh(w,C):!0}function fN(l,u,p,_){l=u.state,typeof u.componentWillReceiveProps=="function"&&u.componentWillReceiveProps(p,_),typeof u.UNSAFE_componentWillReceiveProps=="function"&&u.UNSAFE_componentWillReceiveProps(p,_),u.state!==l&&Ev.enqueueReplaceState(u,u.state,null)}function Zl(l,u){var p=u;if("ref"in u){p={};for(var _ in u)_!=="ref"&&(p[_]=u[_])}if(l=l.defaultProps){p===u&&(p=m({},p));for(var w in l)p[w]===void 0&&(p[w]=l[w])}return p}function mN(l){Rp(l)}function pN(l){console.error(l)}function gN(l){Rp(l)}function sg(l,u){try{var p=l.onUncaughtError;p(u.value,{componentStack:u.stack})}catch(_){setTimeout(function(){throw _})}}function _N(l,u,p){try{var _=l.onCaughtError;_(p.value,{componentStack:p.stack,errorBoundary:u.tag===1?u.stateNode:null})}catch(w){setTimeout(function(){throw w})}}function jv(l,u,p){return p=Kr(p),p.tag=3,p.payload={element:null},p.callback=function(){sg(l,u)},p}function yN(l){return l=Kr(l),l.tag=3,l}function bN(l,u,p,_){var w=p.type.getDerivedStateFromError;if(typeof w=="function"){var C=_.value;l.payload=function(){return w(C)},l.callback=function(){_N(u,p,_)}}var j=p.stateNode;j!==null&&typeof j.componentDidCatch=="function"&&(l.callback=function(){_N(u,p,_),typeof w!="function"&&(Qr===null?Qr=new Set([this]):Qr.add(this));var W=_.stack;this.componentDidCatch(_.value,{componentStack:W!==null?W:""})})}function iB(l,u,p,_,w){if(p.flags|=32768,_!==null&&typeof _=="object"&&typeof _.then=="function"){if(u=p.alternate,u!==null&&mu(u,p,w,!0),p=Hs.current,p!==null){switch(p.tag){case 31:case 13:return ua===null?gg():p.alternate===null&&Zn===0&&(Zn=3),p.flags&=-257,p.flags|=65536,p.lanes=w,_===Vp?p.flags|=16384:(u=p.updateQueue,u===null?p.updateQueue=new Set([_]):u.add(_),ax(l,_,w)),!1;case 22:return p.flags|=65536,_===Vp?p.flags|=16384:(u=p.updateQueue,u===null?(u={transitions:null,markerInstances:null,retryQueue:new Set([_])},p.updateQueue=u):(p=u.retryQueue,p===null?u.retryQueue=new Set([_]):p.add(_)),ax(l,_,w)),!1}throw Error(i(435,p.tag))}return ax(l,_,w),gg(),!1}if(rn)return u=Hs.current,u!==null?((u.flags&65536)===0&&(u.flags|=256),u.flags|=65536,u.lanes=w,_!==Zb&&(l=Error(i(422),{cause:_}),gh(oa(l,p)))):(_!==Zb&&(u=Error(i(423),{cause:_}),gh(oa(u,p))),l=l.current.alternate,l.flags|=65536,w&=-w,l.lanes|=w,_=oa(_,p),w=jv(l.stateNode,_,w),uv(l,w),Zn!==4&&(Zn=2)),!1;var C=Error(i(520),{cause:_});if(C=oa(C,p),Rh===null?Rh=[C]:Rh.push(C),Zn!==4&&(Zn=2),u===null)return!0;_=oa(_,p),p=u;do{switch(p.tag){case 3:return p.flags|=65536,l=w&-w,p.lanes|=l,l=jv(p.stateNode,_,l),uv(p,l),!1;case 1:if(u=p.type,C=p.stateNode,(p.flags&128)===0&&(typeof u.getDerivedStateFromError=="function"||C!==null&&typeof C.componentDidCatch=="function"&&(Qr===null||!Qr.has(C))))return p.flags|=65536,w&=-w,p.lanes|=w,w=yN(w),bN(w,l,p,_),uv(p,w),!1}p=p.return}while(p!==null);return!1}var Rv=Error(i(461)),gi=!1;function zi(l,u,p,_){u.child=l===null?wA(u,null,p,_):Yl(u,l.child,p,_)}function vN(l,u,p,_,w){p=p.render;var C=u.ref;if("ref"in _){var j={};for(var W in _)W!=="ref"&&(j[W]=_[W])}else j=_;return Gl(u),_=gv(l,u,p,j,C,w),W=_v(),l!==null&&!gi?(yv(l,u,w),Qo(l,u,w)):(rn&&W&&Yb(u),u.flags|=1,zi(l,u,_,w),u.child)}function xN(l,u,p,_,w){if(l===null){var C=p.type;return typeof C=="function"&&!$b(C)&&C.defaultProps===void 0&&p.compare===null?(u.tag=15,u.type=C,SN(l,u,C,_,w)):(l=Up(p.type,null,_,u,u.mode,w),l.ref=u.ref,l.return=u,u.child=l)}if(C=l.child,!Kv(l,w)){var j=C.memoizedProps;if(p=p.compare,p=p!==null?p:fh,p(j,_)&&l.ref===u.ref)return Qo(l,u,w)}return u.flags|=1,l=Ho(C,_),l.ref=u.ref,l.return=u,u.child=l}function SN(l,u,p,_,w){if(l!==null){var C=l.memoizedProps;if(fh(C,_)&&l.ref===u.ref)if(gi=!1,u.pendingProps=_=C,Kv(l,w))(l.flags&131072)!==0&&(gi=!0);else return u.lanes=l.lanes,Qo(l,u,w)}return Dv(l,u,p,_,w)}function wN(l,u,p,_){var w=_.children,C=l!==null?l.memoizedState:null;if(l===null&&u.stateNode===null&&(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),_.mode==="hidden"){if((u.flags&128)!==0){if(C=C!==null?C.baseLanes|p:p,l!==null){for(_=u.child=l.child,w=0;_!==null;)w=w|_.lanes|_.childLanes,_=_.sibling;_=w&~C}else _=0,u.child=null;return kN(l,u,C,p,_)}if((p&536870912)!==0)u.memoizedState={baseLanes:0,cachePool:null},l!==null&&Kp(u,C!==null?C.cachePool:null),C!==null?AA(u,C):hv(),NA(u);else return _=u.lanes=536870912,kN(l,u,C!==null?C.baseLanes|p:p,p,_)}else C!==null?(Kp(u,C.cachePool),AA(u,C),Wr(),u.memoizedState=null):(l!==null&&Kp(u,null),hv(),Wr());return zi(l,u,w,p),u.child}function Th(l,u){return l!==null&&l.tag===22||u.stateNode!==null||(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),u.sibling}function kN(l,u,p,_,w){var C=ov();return C=C===null?null:{parent:mi._currentValue,pool:C},u.memoizedState={baseLanes:p,cachePool:C},l!==null&&Kp(u,null),hv(),NA(u),l!==null&&mu(l,u,_,!0),u.childLanes=w,null}function ag(l,u){return u=rg({mode:u.mode,children:u.children},l.mode),u.ref=l.ref,l.child=u,u.return=l,u}function CN(l,u,p){return Yl(u,l.child,null,p),l=ag(u,u.pendingProps),l.flags|=2,Vs(u),u.memoizedState=null,l}function sB(l,u,p){var _=u.pendingProps,w=(u.flags&128)!==0;if(u.flags&=-129,l===null){if(rn){if(_.mode==="hidden")return l=ag(u,_),u.lanes=536870912,Th(null,l);if(mv(u),(l=In)?(l=FT(l,ca),l=l!==null&&l.data==="&"?l:null,l!==null&&(u.memoizedState={dehydrated:l,treeContext:Ir!==null?{id:to,overflow:no}:null,retryLane:536870912,hydrationErrors:null},p=lA(l),p.return=u,u.child=p,Ui=u,In=null)):l=null,l===null)throw Br(u);return u.lanes=536870912,null}return ag(u,_)}var C=l.memoizedState;if(C!==null){var j=C.dehydrated;if(mv(u),w)if(u.flags&256)u.flags&=-257,u=CN(l,u,p);else if(u.memoizedState!==null)u.child=l.child,u.flags|=128,u=null;else throw Error(i(558));else if(gi||mu(l,u,p,!1),w=(p&l.childLanes)!==0,gi||w){if(_=Ln,_!==null&&(j=de(_,p),j!==0&&j!==C.retryLane))throw C.retryLane=j,Kl(l,j),Os(_,l,j),Rv;gg(),u=CN(l,u,p)}else l=C.treeContext,In=da(j.nextSibling),Ui=u,rn=!0,Ur=null,ca=!1,l!==null&&dA(u,l),u=ag(u,_),u.flags|=4096;return u}return l=Ho(l.child,{mode:_.mode,children:_.children}),l.ref=u.ref,u.child=l,l.return=u,l}function og(l,u){var p=u.ref;if(p===null)l!==null&&l.ref!==null&&(u.flags|=4194816);else{if(typeof p!="function"&&typeof p!="object")throw Error(i(284));(l===null||l.ref!==p)&&(u.flags|=4194816)}}function Dv(l,u,p,_,w){return Gl(u),p=gv(l,u,p,_,void 0,w),_=_v(),l!==null&&!gi?(yv(l,u,w),Qo(l,u,w)):(rn&&_&&Yb(u),u.flags|=1,zi(l,u,p,w),u.child)}function AN(l,u,p,_,w,C){return Gl(u),u.updateQueue=null,p=MA(u,_,p,w),TA(l),_=_v(),l!==null&&!gi?(yv(l,u,C),Qo(l,u,C)):(rn&&_&&Yb(u),u.flags|=1,zi(l,u,p,C),u.child)}function NN(l,u,p,_,w){if(Gl(u),u.stateNode===null){var C=uu,j=p.contextType;typeof j=="object"&&j!==null&&(C=Bi(j)),C=new p(_,C),u.memoizedState=C.state!==null&&C.state!==void 0?C.state:null,C.updater=Ev,u.stateNode=C,C._reactInternals=u,C=u.stateNode,C.props=_,C.state=u.memoizedState,C.refs={},lv(u),j=p.contextType,C.context=typeof j=="object"&&j!==null?Bi(j):uu,C.state=u.memoizedState,j=p.getDerivedStateFromProps,typeof j=="function"&&(Pv(u,p,j,_),C.state=u.memoizedState),typeof p.getDerivedStateFromProps=="function"||typeof C.getSnapshotBeforeUpdate=="function"||typeof C.UNSAFE_componentWillMount!="function"&&typeof C.componentWillMount!="function"||(j=C.state,typeof C.componentWillMount=="function"&&C.componentWillMount(),typeof C.UNSAFE_componentWillMount=="function"&&C.UNSAFE_componentWillMount(),j!==C.state&&Ev.enqueueReplaceState(C,C.state,null),wh(u,_,C,w),Sh(),C.state=u.memoizedState),typeof C.componentDidMount=="function"&&(u.flags|=4194308),_=!0}else if(l===null){C=u.stateNode;var W=u.memoizedProps,ae=Zl(p,W);C.props=ae;var ve=C.context,Ne=p.contextType;j=uu,typeof Ne=="object"&&Ne!==null&&(j=Bi(Ne));var Oe=p.getDerivedStateFromProps;Ne=typeof Oe=="function"||typeof C.getSnapshotBeforeUpdate=="function",W=u.pendingProps!==W,Ne||typeof C.UNSAFE_componentWillReceiveProps!="function"&&typeof C.componentWillReceiveProps!="function"||(W||ve!==j)&&fN(u,C,_,j),qr=!1;var xe=u.memoizedState;C.state=xe,wh(u,_,C,w),Sh(),ve=u.memoizedState,W||xe!==ve||qr?(typeof Oe=="function"&&(Pv(u,p,Oe,_),ve=u.memoizedState),(ae=qr||hN(u,p,ae,_,xe,ve,j))?(Ne||typeof C.UNSAFE_componentWillMount!="function"&&typeof C.componentWillMount!="function"||(typeof C.componentWillMount=="function"&&C.componentWillMount(),typeof C.UNSAFE_componentWillMount=="function"&&C.UNSAFE_componentWillMount()),typeof C.componentDidMount=="function"&&(u.flags|=4194308)):(typeof C.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=_,u.memoizedState=ve),C.props=_,C.state=ve,C.context=j,_=ae):(typeof C.componentDidMount=="function"&&(u.flags|=4194308),_=!1)}else{C=u.stateNode,cv(l,u),j=u.memoizedProps,Ne=Zl(p,j),C.props=Ne,Oe=u.pendingProps,xe=C.context,ve=p.contextType,ae=uu,typeof ve=="object"&&ve!==null&&(ae=Bi(ve)),W=p.getDerivedStateFromProps,(ve=typeof W=="function"||typeof C.getSnapshotBeforeUpdate=="function")||typeof C.UNSAFE_componentWillReceiveProps!="function"&&typeof C.componentWillReceiveProps!="function"||(j!==Oe||xe!==ae)&&fN(u,C,_,ae),qr=!1,xe=u.memoizedState,C.state=xe,wh(u,_,C,w),Sh();var we=u.memoizedState;j!==Oe||xe!==we||qr||l!==null&&l.dependencies!==null&&zp(l.dependencies)?(typeof W=="function"&&(Pv(u,p,W,_),we=u.memoizedState),(Ne=qr||hN(u,p,Ne,_,xe,we,ae)||l!==null&&l.dependencies!==null&&zp(l.dependencies))?(ve||typeof C.UNSAFE_componentWillUpdate!="function"&&typeof C.componentWillUpdate!="function"||(typeof C.componentWillUpdate=="function"&&C.componentWillUpdate(_,we,ae),typeof C.UNSAFE_componentWillUpdate=="function"&&C.UNSAFE_componentWillUpdate(_,we,ae)),typeof C.componentDidUpdate=="function"&&(u.flags|=4),typeof C.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof C.componentDidUpdate!="function"||j===l.memoizedProps&&xe===l.memoizedState||(u.flags|=4),typeof C.getSnapshotBeforeUpdate!="function"||j===l.memoizedProps&&xe===l.memoizedState||(u.flags|=1024),u.memoizedProps=_,u.memoizedState=we),C.props=_,C.state=we,C.context=ae,_=Ne):(typeof C.componentDidUpdate!="function"||j===l.memoizedProps&&xe===l.memoizedState||(u.flags|=4),typeof C.getSnapshotBeforeUpdate!="function"||j===l.memoizedProps&&xe===l.memoizedState||(u.flags|=1024),_=!1)}return C=_,og(l,u),_=(u.flags&128)!==0,C||_?(C=u.stateNode,p=_&&typeof p.getDerivedStateFromError!="function"?null:C.render(),u.flags|=1,l!==null&&_?(u.child=Yl(u,l.child,null,w),u.child=Yl(u,null,p,w)):zi(l,u,p,w),u.memoizedState=C.state,l=u.child):l=Qo(l,u,w),l}function TN(l,u,p,_){return Vl(),u.flags|=256,zi(l,u,p,_),u.child}var Fv={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Iv(l){return{baseLanes:l,cachePool:_A()}}function Uv(l,u,p){return l=l!==null?l.childLanes&~p:0,u&&(l|=Gs),l}function MN(l,u,p){var _=u.pendingProps,w=!1,C=(u.flags&128)!==0,j;if((j=C)||(j=l!==null&&l.memoizedState===null?!1:(ni.current&2)!==0),j&&(w=!0,u.flags&=-129),j=(u.flags&32)!==0,u.flags&=-33,l===null){if(rn){if(w?Vr(u):Wr(),(l=In)?(l=FT(l,ca),l=l!==null&&l.data!=="&"?l:null,l!==null&&(u.memoizedState={dehydrated:l,treeContext:Ir!==null?{id:to,overflow:no}:null,retryLane:536870912,hydrationErrors:null},p=lA(l),p.return=u,u.child=p,Ui=u,In=null)):l=null,l===null)throw Br(u);return xx(l)?u.lanes=32:u.lanes=536870912,null}var W=_.children;return _=_.fallback,w?(Wr(),w=u.mode,W=rg({mode:"hidden",children:W},w),_=Hl(_,w,p,null),W.return=u,_.return=u,W.sibling=_,u.child=W,_=u.child,_.memoizedState=Iv(p),_.childLanes=Uv(l,j,p),u.memoizedState=Fv,Th(null,_)):(Vr(u),Bv(u,W))}var ae=l.memoizedState;if(ae!==null&&(W=ae.dehydrated,W!==null)){if(C)u.flags&256?(Vr(u),u.flags&=-257,u=zv(l,u,p)):u.memoizedState!==null?(Wr(),u.child=l.child,u.flags|=128,u=null):(Wr(),W=_.fallback,w=u.mode,_=rg({mode:"visible",children:_.children},w),W=Hl(W,w,p,null),W.flags|=2,_.return=u,W.return=u,_.sibling=W,u.child=_,Yl(u,l.child,null,p),_=u.child,_.memoizedState=Iv(p),_.childLanes=Uv(l,j,p),u.memoizedState=Fv,u=Th(null,_));else if(Vr(u),xx(W)){if(j=W.nextSibling&&W.nextSibling.dataset,j)var ve=j.dgst;j=ve,_=Error(i(419)),_.stack="",_.digest=j,gh({value:_,source:null,stack:null}),u=zv(l,u,p)}else if(gi||mu(l,u,p,!1),j=(p&l.childLanes)!==0,gi||j){if(j=Ln,j!==null&&(_=de(j,p),_!==0&&_!==ae.retryLane))throw ae.retryLane=_,Kl(l,_),Os(j,l,_),Rv;vx(W)||gg(),u=zv(l,u,p)}else vx(W)?(u.flags|=192,u.child=l.child,u=null):(l=ae.treeContext,In=da(W.nextSibling),Ui=u,rn=!0,Ur=null,ca=!1,l!==null&&dA(u,l),u=Bv(u,_.children),u.flags|=4096);return u}return w?(Wr(),W=_.fallback,w=u.mode,ae=l.child,ve=ae.sibling,_=Ho(ae,{mode:"hidden",children:_.children}),_.subtreeFlags=ae.subtreeFlags&65011712,ve!==null?W=Ho(ve,W):(W=Hl(W,w,p,null),W.flags|=2),W.return=u,_.return=u,_.sibling=W,u.child=_,Th(null,_),_=u.child,W=l.child.memoizedState,W===null?W=Iv(p):(w=W.cachePool,w!==null?(ae=mi._currentValue,w=w.parent!==ae?{parent:ae,pool:ae}:w):w=_A(),W={baseLanes:W.baseLanes|p,cachePool:w}),_.memoizedState=W,_.childLanes=Uv(l,j,p),u.memoizedState=Fv,Th(l.child,_)):(Vr(u),p=l.child,l=p.sibling,p=Ho(p,{mode:"visible",children:_.children}),p.return=u,p.sibling=null,l!==null&&(j=u.deletions,j===null?(u.deletions=[l],u.flags|=16):j.push(l)),u.child=p,u.memoizedState=null,p)}function Bv(l,u){return u=rg({mode:"visible",children:u},l.mode),u.return=l,l.child=u}function rg(l,u){return l=Ks(22,l,null,u),l.lanes=0,l}function zv(l,u,p){return Yl(u,l.child,null,p),l=Bv(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function LN(l,u,p){l.lanes|=u;var _=l.alternate;_!==null&&(_.lanes|=u),nv(l.return,u,p)}function qv(l,u,p,_,w,C){var j=l.memoizedState;j===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:_,tail:p,tailMode:w,treeForkCount:C}:(j.isBackwards=u,j.rendering=null,j.renderingStartTime=0,j.last=_,j.tail=p,j.tailMode=w,j.treeForkCount=C)}function ON(l,u,p){var _=u.pendingProps,w=_.revealOrder,C=_.tail;_=_.children;var j=ni.current,W=(j&2)!==0;if(W?(j=j&1|2,u.flags|=128):j&=1,Y(ni,j),zi(l,u,_,p),_=rn?ph:0,!W&&l!==null&&(l.flags&128)!==0)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&LN(l,p,u);else if(l.tag===19)LN(l,p,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(w){case"forwards":for(p=u.child,w=null;p!==null;)l=p.alternate,l!==null&&Xp(l)===null&&(w=p),p=p.sibling;p=w,p===null?(w=u.child,u.child=null):(w=p.sibling,p.sibling=null),qv(u,!1,w,p,C,_);break;case"backwards":case"unstable_legacy-backwards":for(p=null,w=u.child,u.child=null;w!==null;){if(l=w.alternate,l!==null&&Xp(l)===null){u.child=w;break}l=w.sibling,w.sibling=p,p=w,w=l}qv(u,!0,p,null,C,_);break;case"together":qv(u,!1,null,null,void 0,_);break;default:u.memoizedState=null}return u.child}function Qo(l,u,p){if(l!==null&&(u.dependencies=l.dependencies),Xr|=u.lanes,(p&u.childLanes)===0)if(l!==null){if(mu(l,u,p,!1),(p&u.childLanes)===0)return null}else return null;if(l!==null&&u.child!==l.child)throw Error(i(153));if(u.child!==null){for(l=u.child,p=Ho(l,l.pendingProps),u.child=p,p.return=u;l.sibling!==null;)l=l.sibling,p=p.sibling=Ho(l,l.pendingProps),p.return=u;p.sibling=null}return u.child}function Kv(l,u){return(l.lanes&u)!==0?!0:(l=l.dependencies,!!(l!==null&&zp(l)))}function aB(l,u,p){switch(u.tag){case 3:J(u,u.stateNode.containerInfo),zr(u,mi,l.memoizedState.cache),Vl();break;case 27:case 5:fe(u);break;case 4:J(u,u.stateNode.containerInfo);break;case 10:zr(u,u.type,u.memoizedProps.value);break;case 31:if(u.memoizedState!==null)return u.flags|=128,mv(u),null;break;case 13:var _=u.memoizedState;if(_!==null)return _.dehydrated!==null?(Vr(u),u.flags|=128,null):(p&u.child.childLanes)!==0?MN(l,u,p):(Vr(u),l=Qo(l,u,p),l!==null?l.sibling:null);Vr(u);break;case 19:var w=(l.flags&128)!==0;if(_=(p&u.childLanes)!==0,_||(mu(l,u,p,!1),_=(p&u.childLanes)!==0),w){if(_)return ON(l,u,p);u.flags|=128}if(w=u.memoizedState,w!==null&&(w.rendering=null,w.tail=null,w.lastEffect=null),Y(ni,ni.current),_)break;return null;case 22:return u.lanes=0,wN(l,u,p,u.pendingProps);case 24:zr(u,mi,l.memoizedState.cache)}return Qo(l,u,p)}function PN(l,u,p){if(l!==null)if(l.memoizedProps!==u.pendingProps)gi=!0;else{if(!Kv(l,p)&&(u.flags&128)===0)return gi=!1,aB(l,u,p);gi=(l.flags&131072)!==0}else gi=!1,rn&&(u.flags&1048576)!==0&&uA(u,ph,u.index);switch(u.lanes=0,u.tag){case 16:e:{var _=u.pendingProps;if(l=Xl(u.elementType),u.type=l,typeof l=="function")$b(l)?(_=Zl(l,_),u.tag=1,u=NN(null,u,l,_,p)):(u.tag=0,u=Dv(null,u,l,_,p));else{if(l!=null){var w=l.$$typeof;if(w===L){u.tag=11,u=vN(null,u,l,_,p);break e}else if(w===N){u.tag=14,u=xN(null,u,l,_,p);break e}}throw u=G(l)||l,Error(i(306,u,""))}}return u;case 0:return Dv(l,u,u.type,u.pendingProps,p);case 1:return _=u.type,w=Zl(_,u.pendingProps),NN(l,u,_,w,p);case 3:e:{if(J(u,u.stateNode.containerInfo),l===null)throw Error(i(387));_=u.pendingProps;var C=u.memoizedState;w=C.element,cv(l,u),wh(u,_,null,p);var j=u.memoizedState;if(_=j.cache,zr(u,mi,_),_!==C.cache&&iv(u,[mi],p,!0),Sh(),_=j.element,C.isDehydrated)if(C={element:_,isDehydrated:!1,cache:j.cache},u.updateQueue.baseState=C,u.memoizedState=C,u.flags&256){u=TN(l,u,_,p);break e}else if(_!==w){w=oa(Error(i(424)),u),gh(w),u=TN(l,u,_,p);break e}else{switch(l=u.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(In=da(l.firstChild),Ui=u,rn=!0,Ur=null,ca=!0,p=wA(u,null,_,p),u.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling}else{if(Vl(),_===w){u=Qo(l,u,p);break e}zi(l,u,_,p)}u=u.child}return u;case 26:return og(l,u),l===null?(p=KT(u.type,null,u.pendingProps,null))?u.memoizedState=p:rn||(p=u.type,l=u.pendingProps,_=wg(F.current).createElement(p),_[Ue]=u,_[qe]=l,qi(_,p,l),mn(_),u.stateNode=_):u.memoizedState=KT(u.type,l.memoizedProps,u.pendingProps,l.memoizedState),null;case 27:return fe(u),l===null&&rn&&(_=u.stateNode=BT(u.type,u.pendingProps,F.current),Ui=u,ca=!0,w=In,el(u.type)?(Sx=w,In=da(_.firstChild)):In=w),zi(l,u,u.pendingProps.children,p),og(l,u),l===null&&(u.flags|=4194304),u.child;case 5:return l===null&&rn&&((w=_=In)&&(_=RB(_,u.type,u.pendingProps,ca),_!==null?(u.stateNode=_,Ui=u,In=da(_.firstChild),ca=!1,w=!0):w=!1),w||Br(u)),fe(u),w=u.type,C=u.pendingProps,j=l!==null?l.memoizedProps:null,_=C.children,_x(w,C)?_=null:j!==null&&_x(w,j)&&(u.flags|=32),u.memoizedState!==null&&(w=gv(l,u,QU,null,null,p),Kh._currentValue=w),og(l,u),zi(l,u,_,p),u.child;case 6:return l===null&&rn&&((l=p=In)&&(p=DB(p,u.pendingProps,ca),p!==null?(u.stateNode=p,Ui=u,In=null,l=!0):l=!1),l||Br(u)),null;case 13:return MN(l,u,p);case 4:return J(u,u.stateNode.containerInfo),_=u.pendingProps,l===null?u.child=Yl(u,null,_,p):zi(l,u,_,p),u.child;case 11:return vN(l,u,u.type,u.pendingProps,p);case 7:return zi(l,u,u.pendingProps,p),u.child;case 8:return zi(l,u,u.pendingProps.children,p),u.child;case 12:return zi(l,u,u.pendingProps.children,p),u.child;case 10:return _=u.pendingProps,zr(u,u.type,_.value),zi(l,u,_.children,p),u.child;case 9:return w=u.type._context,_=u.pendingProps.children,Gl(u),w=Bi(w),_=_(w),u.flags|=1,zi(l,u,_,p),u.child;case 14:return xN(l,u,u.type,u.pendingProps,p);case 15:return SN(l,u,u.type,u.pendingProps,p);case 19:return ON(l,u,p);case 31:return sB(l,u,p);case 22:return wN(l,u,p,u.pendingProps);case 24:return Gl(u),_=Bi(mi),l===null?(w=ov(),w===null&&(w=Ln,C=sv(),w.pooledCache=C,C.refCount++,C!==null&&(w.pooledCacheLanes|=p),w=C),u.memoizedState={parent:_,cache:w},lv(u),zr(u,mi,w)):((l.lanes&p)!==0&&(cv(l,u),wh(u,null,null,p),Sh()),w=l.memoizedState,C=u.memoizedState,w.parent!==_?(w={parent:_,cache:_},u.memoizedState=w,u.lanes===0&&(u.memoizedState=u.updateQueue.baseState=w),zr(u,mi,_)):(_=C.cache,zr(u,mi,_),_!==w.cache&&iv(u,[mi],p,!0))),zi(l,u,u.pendingProps.children,p),u.child;case 29:throw u.pendingProps}throw Error(i(156,u.tag))}function Yo(l){l.flags|=4}function Hv(l,u,p,_,w){if((u=(l.mode&32)!==0)&&(u=!1),u){if(l.flags|=16777216,(w&335544128)===w)if(l.stateNode.complete)l.flags|=8192;else if(aT())l.flags|=8192;else throw Ql=Vp,rv}else l.flags&=-16777217}function EN(l,u){if(u.type!=="stylesheet"||(u.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!$T(u))if(aT())l.flags|=8192;else throw Ql=Vp,rv}function lg(l,u){u!==null&&(l.flags|=4),l.flags&16384&&(u=l.tag!==22?nt():536870912,l.lanes|=u,Au|=u)}function Mh(l,u){if(!rn)switch(l.tailMode){case"hidden":u=l.tail;for(var p=null;u!==null;)u.alternate!==null&&(p=u),u=u.sibling;p===null?l.tail=null:p.sibling=null;break;case"collapsed":p=l.tail;for(var _=null;p!==null;)p.alternate!==null&&(_=p),p=p.sibling;_===null?u||l.tail===null?l.tail=null:l.tail.sibling=null:_.sibling=null}}function Un(l){var u=l.alternate!==null&&l.alternate.child===l.child,p=0,_=0;if(u)for(var w=l.child;w!==null;)p|=w.lanes|w.childLanes,_|=w.subtreeFlags&65011712,_|=w.flags&65011712,w.return=l,w=w.sibling;else for(w=l.child;w!==null;)p|=w.lanes|w.childLanes,_|=w.subtreeFlags,_|=w.flags,w.return=l,w=w.sibling;return l.subtreeFlags|=_,l.childLanes=p,u}function oB(l,u,p){var _=u.pendingProps;switch(Jb(u),u.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Un(u),null;case 1:return Un(u),null;case 3:return p=u.stateNode,_=null,l!==null&&(_=l.memoizedState.cache),u.memoizedState.cache!==_&&(u.flags|=2048),Go(mi),te(),p.pendingContext&&(p.context=p.pendingContext,p.pendingContext=null),(l===null||l.child===null)&&(fu(u)?Yo(u):l===null||l.memoizedState.isDehydrated&&(u.flags&256)===0||(u.flags|=1024,ev())),Un(u),null;case 26:var w=u.type,C=u.memoizedState;return l===null?(Yo(u),C!==null?(Un(u),EN(u,C)):(Un(u),Hv(u,w,null,_,p))):C?C!==l.memoizedState?(Yo(u),Un(u),EN(u,C)):(Un(u),u.flags&=-16777217):(l=l.memoizedProps,l!==_&&Yo(u),Un(u),Hv(u,w,l,_,p)),null;case 27:if(re(u),p=F.current,w=u.type,l!==null&&u.stateNode!=null)l.memoizedProps!==_&&Yo(u);else{if(!_){if(u.stateNode===null)throw Error(i(166));return Un(u),null}l=oe.current,fu(u)?hA(u):(l=BT(w,_,p),u.stateNode=l,Yo(u))}return Un(u),null;case 5:if(re(u),w=u.type,l!==null&&u.stateNode!=null)l.memoizedProps!==_&&Yo(u);else{if(!_){if(u.stateNode===null)throw Error(i(166));return Un(u),null}if(C=oe.current,fu(u))hA(u);else{var j=wg(F.current);switch(C){case 1:C=j.createElementNS("http://www.w3.org/2000/svg",w);break;case 2:C=j.createElementNS("http://www.w3.org/1998/Math/MathML",w);break;default:switch(w){case"svg":C=j.createElementNS("http://www.w3.org/2000/svg",w);break;case"math":C=j.createElementNS("http://www.w3.org/1998/Math/MathML",w);break;case"script":C=j.createElement("div"),C.innerHTML="<script><\/script>",C=C.removeChild(C.firstChild);break;case"select":C=typeof _.is=="string"?j.createElement("select",{is:_.is}):j.createElement("select"),_.multiple?C.multiple=!0:_.size&&(C.size=_.size);break;default:C=typeof _.is=="string"?j.createElement(w,{is:_.is}):j.createElement(w)}}C[Ue]=u,C[qe]=_;e:for(j=u.child;j!==null;){if(j.tag===5||j.tag===6)C.appendChild(j.stateNode);else if(j.tag!==4&&j.tag!==27&&j.child!==null){j.child.return=j,j=j.child;continue}if(j===u)break e;for(;j.sibling===null;){if(j.return===null||j.return===u)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}u.stateNode=C;e:switch(qi(C,w,_),w){case"button":case"input":case"select":case"textarea":_=!!_.autoFocus;break e;case"img":_=!0;break e;default:_=!1}_&&Yo(u)}}return Un(u),Hv(u,u.type,l===null?null:l.memoizedProps,u.pendingProps,p),null;case 6:if(l&&u.stateNode!=null)l.memoizedProps!==_&&Yo(u);else{if(typeof _!="string"&&u.stateNode===null)throw Error(i(166));if(l=F.current,fu(u)){if(l=u.stateNode,p=u.memoizedProps,_=null,w=Ui,w!==null)switch(w.tag){case 27:case 5:_=w.memoizedProps}l[Ue]=u,l=!!(l.nodeValue===p||_!==null&&_.suppressHydrationWarning===!0||MT(l.nodeValue,p)),l||Br(u,!0)}else l=wg(l).createTextNode(_),l[Ue]=u,u.stateNode=l}return Un(u),null;case 31:if(p=u.memoizedState,l===null||l.memoizedState!==null){if(_=fu(u),p!==null){if(l===null){if(!_)throw Error(i(318));if(l=u.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(i(557));l[Ue]=u}else Vl(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Un(u),l=!1}else p=ev(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=p),l=!0;if(!l)return u.flags&256?(Vs(u),u):(Vs(u),null);if((u.flags&128)!==0)throw Error(i(558))}return Un(u),null;case 13:if(_=u.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(w=fu(u),_!==null&&_.dehydrated!==null){if(l===null){if(!w)throw Error(i(318));if(w=u.memoizedState,w=w!==null?w.dehydrated:null,!w)throw Error(i(317));w[Ue]=u}else Vl(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Un(u),w=!1}else w=ev(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=w),w=!0;if(!w)return u.flags&256?(Vs(u),u):(Vs(u),null)}return Vs(u),(u.flags&128)!==0?(u.lanes=p,u):(p=_!==null,l=l!==null&&l.memoizedState!==null,p&&(_=u.child,w=null,_.alternate!==null&&_.alternate.memoizedState!==null&&_.alternate.memoizedState.cachePool!==null&&(w=_.alternate.memoizedState.cachePool.pool),C=null,_.memoizedState!==null&&_.memoizedState.cachePool!==null&&(C=_.memoizedState.cachePool.pool),C!==w&&(_.flags|=2048)),p!==l&&p&&(u.child.flags|=8192),lg(u,u.updateQueue),Un(u),null);case 4:return te(),l===null&&hx(u.stateNode.containerInfo),Un(u),null;case 10:return Go(u.type),Un(u),null;case 19:if(q(ni),_=u.memoizedState,_===null)return Un(u),null;if(w=(u.flags&128)!==0,C=_.rendering,C===null)if(w)Mh(_,!1);else{if(Zn!==0||l!==null&&(l.flags&128)!==0)for(l=u.child;l!==null;){if(C=Xp(l),C!==null){for(u.flags|=128,Mh(_,!1),l=C.updateQueue,u.updateQueue=l,lg(u,l),u.subtreeFlags=0,l=p,p=u.child;p!==null;)rA(p,l),p=p.sibling;return Y(ni,ni.current&1|2),rn&&Vo(u,_.treeForkCount),u.child}l=l.sibling}_.tail!==null&&Fe()>fg&&(u.flags|=128,w=!0,Mh(_,!1),u.lanes=4194304)}else{if(!w)if(l=Xp(C),l!==null){if(u.flags|=128,w=!0,l=l.updateQueue,u.updateQueue=l,lg(u,l),Mh(_,!0),_.tail===null&&_.tailMode==="hidden"&&!C.alternate&&!rn)return Un(u),null}else 2*Fe()-_.renderingStartTime>fg&&p!==536870912&&(u.flags|=128,w=!0,Mh(_,!1),u.lanes=4194304);_.isBackwards?(C.sibling=u.child,u.child=C):(l=_.last,l!==null?l.sibling=C:u.child=C,_.last=C)}return _.tail!==null?(l=_.tail,_.rendering=l,_.tail=l.sibling,_.renderingStartTime=Fe(),l.sibling=null,p=ni.current,Y(ni,w?p&1|2:p&1),rn&&Vo(u,_.treeForkCount),l):(Un(u),null);case 22:case 23:return Vs(u),fv(),_=u.memoizedState!==null,l!==null?l.memoizedState!==null!==_&&(u.flags|=8192):_&&(u.flags|=8192),_?(p&536870912)!==0&&(u.flags&128)===0&&(Un(u),u.subtreeFlags&6&&(u.flags|=8192)):Un(u),p=u.updateQueue,p!==null&&lg(u,p.retryQueue),p=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(p=l.memoizedState.cachePool.pool),_=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(_=u.memoizedState.cachePool.pool),_!==p&&(u.flags|=2048),l!==null&&q($l),null;case 24:return p=null,l!==null&&(p=l.memoizedState.cache),u.memoizedState.cache!==p&&(u.flags|=2048),Go(mi),Un(u),null;case 25:return null;case 30:return null}throw Error(i(156,u.tag))}function rB(l,u){switch(Jb(u),u.tag){case 1:return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return Go(mi),te(),l=u.flags,(l&65536)!==0&&(l&128)===0?(u.flags=l&-65537|128,u):null;case 26:case 27:case 5:return re(u),null;case 31:if(u.memoizedState!==null){if(Vs(u),u.alternate===null)throw Error(i(340));Vl()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 13:if(Vs(u),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(i(340));Vl()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return q(ni),null;case 4:return te(),null;case 10:return Go(u.type),null;case 22:case 23:return Vs(u),fv(),l!==null&&q($l),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 24:return Go(mi),null;case 25:return null;default:return null}}function jN(l,u){switch(Jb(u),u.tag){case 3:Go(mi),te();break;case 26:case 27:case 5:re(u);break;case 4:te();break;case 31:u.memoizedState!==null&&Vs(u);break;case 13:Vs(u);break;case 19:q(ni);break;case 10:Go(u.type);break;case 22:case 23:Vs(u),fv(),l!==null&&q($l);break;case 24:Go(mi)}}function Lh(l,u){try{var p=u.updateQueue,_=p!==null?p.lastEffect:null;if(_!==null){var w=_.next;p=w;do{if((p.tag&l)===l){_=void 0;var C=p.create,j=p.inst;_=C(),j.destroy=_}p=p.next}while(p!==w)}}catch(W){wn(u,u.return,W)}}function Gr(l,u,p){try{var _=u.updateQueue,w=_!==null?_.lastEffect:null;if(w!==null){var C=w.next;_=C;do{if((_.tag&l)===l){var j=_.inst,W=j.destroy;if(W!==void 0){j.destroy=void 0,w=u;var ae=p,ve=W;try{ve()}catch(Ne){wn(w,ae,Ne)}}}_=_.next}while(_!==C)}}catch(Ne){wn(u,u.return,Ne)}}function RN(l){var u=l.updateQueue;if(u!==null){var p=l.stateNode;try{CA(u,p)}catch(_){wn(l,l.return,_)}}}function DN(l,u,p){p.props=Zl(l.type,l.memoizedProps),p.state=l.memoizedState;try{p.componentWillUnmount()}catch(_){wn(l,u,_)}}function Oh(l,u){try{var p=l.ref;if(p!==null){switch(l.tag){case 26:case 27:case 5:var _=l.stateNode;break;case 30:_=l.stateNode;break;default:_=l.stateNode}typeof p=="function"?l.refCleanup=p(_):p.current=_}}catch(w){wn(l,u,w)}}function io(l,u){var p=l.ref,_=l.refCleanup;if(p!==null)if(typeof _=="function")try{_()}catch(w){wn(l,u,w)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof p=="function")try{p(null)}catch(w){wn(l,u,w)}else p.current=null}function FN(l){var u=l.type,p=l.memoizedProps,_=l.stateNode;try{e:switch(u){case"button":case"input":case"select":case"textarea":p.autoFocus&&_.focus();break e;case"img":p.src?_.src=p.src:p.srcSet&&(_.srcset=p.srcSet)}}catch(w){wn(l,l.return,w)}}function Vv(l,u,p){try{var _=l.stateNode;MB(_,l.type,p,u),_[qe]=u}catch(w){wn(l,l.return,w)}}function IN(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&el(l.type)||l.tag===4}function Wv(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||IN(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&el(l.type)||l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Gv(l,u,p){var _=l.tag;if(_===5||_===6)l=l.stateNode,u?(p.nodeType===9?p.body:p.nodeName==="HTML"?p.ownerDocument.body:p).insertBefore(l,u):(u=p.nodeType===9?p.body:p.nodeName==="HTML"?p.ownerDocument.body:p,u.appendChild(l),p=p._reactRootContainer,p!=null||u.onclick!==null||(u.onclick=qo));else if(_!==4&&(_===27&&el(l.type)&&(p=l.stateNode,u=null),l=l.child,l!==null))for(Gv(l,u,p),l=l.sibling;l!==null;)Gv(l,u,p),l=l.sibling}function cg(l,u,p){var _=l.tag;if(_===5||_===6)l=l.stateNode,u?p.insertBefore(l,u):p.appendChild(l);else if(_!==4&&(_===27&&el(l.type)&&(p=l.stateNode),l=l.child,l!==null))for(cg(l,u,p),l=l.sibling;l!==null;)cg(l,u,p),l=l.sibling}function UN(l){var u=l.stateNode,p=l.memoizedProps;try{for(var _=l.type,w=u.attributes;w.length;)u.removeAttributeNode(w[0]);qi(u,_,p),u[Ue]=l,u[qe]=p}catch(C){wn(l,l.return,C)}}var Jo=!1,_i=!1,$v=!1,BN=typeof WeakSet=="function"?WeakSet:Set,Mi=null;function lB(l,u){if(l=l.containerInfo,px=Lg,l=JC(l),zb(l)){if("selectionStart"in l)var p={start:l.selectionStart,end:l.selectionEnd};else e:{p=(p=l.ownerDocument)&&p.defaultView||window;var _=p.getSelection&&p.getSelection();if(_&&_.rangeCount!==0){p=_.anchorNode;var w=_.anchorOffset,C=_.focusNode;_=_.focusOffset;try{p.nodeType,C.nodeType}catch{p=null;break e}var j=0,W=-1,ae=-1,ve=0,Ne=0,Oe=l,xe=null;t:for(;;){for(var we;Oe!==p||w!==0&&Oe.nodeType!==3||(W=j+w),Oe!==C||_!==0&&Oe.nodeType!==3||(ae=j+_),Oe.nodeType===3&&(j+=Oe.nodeValue.length),(we=Oe.firstChild)!==null;)xe=Oe,Oe=we;for(;;){if(Oe===l)break t;if(xe===p&&++ve===w&&(W=j),xe===C&&++Ne===_&&(ae=j),(we=Oe.nextSibling)!==null)break;Oe=xe,xe=Oe.parentNode}Oe=we}p=W===-1||ae===-1?null:{start:W,end:ae}}else p=null}p=p||{start:0,end:0}}else p=null;for(gx={focusedElem:l,selectionRange:p},Lg=!1,Mi=u;Mi!==null;)if(u=Mi,l=u.child,(u.subtreeFlags&1028)!==0&&l!==null)l.return=u,Mi=l;else for(;Mi!==null;){switch(u=Mi,C=u.alternate,l=u.flags,u.tag){case 0:if((l&4)!==0&&(l=u.updateQueue,l=l!==null?l.events:null,l!==null))for(p=0;p<l.length;p++)w=l[p],w.ref.impl=w.nextImpl;break;case 11:case 15:break;case 1:if((l&1024)!==0&&C!==null){l=void 0,p=u,w=C.memoizedProps,C=C.memoizedState,_=p.stateNode;try{var st=Zl(p.type,w);l=_.getSnapshotBeforeUpdate(st,C),_.__reactInternalSnapshotBeforeUpdate=l}catch(St){wn(p,p.return,St)}}break;case 3:if((l&1024)!==0){if(l=u.stateNode.containerInfo,p=l.nodeType,p===9)bx(l);else if(p===1)switch(l.nodeName){case"HEAD":case"HTML":case"BODY":bx(l);break;default:l.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&1024)!==0)throw Error(i(163))}if(l=u.sibling,l!==null){l.return=u.return,Mi=l;break}Mi=u.return}}function zN(l,u,p){var _=p.flags;switch(p.tag){case 0:case 11:case 15:er(l,p),_&4&&Lh(5,p);break;case 1:if(er(l,p),_&4)if(l=p.stateNode,u===null)try{l.componentDidMount()}catch(j){wn(p,p.return,j)}else{var w=Zl(p.type,u.memoizedProps);u=u.memoizedState;try{l.componentDidUpdate(w,u,l.__reactInternalSnapshotBeforeUpdate)}catch(j){wn(p,p.return,j)}}_&64&&RN(p),_&512&&Oh(p,p.return);break;case 3:if(er(l,p),_&64&&(l=p.updateQueue,l!==null)){if(u=null,p.child!==null)switch(p.child.tag){case 27:case 5:u=p.child.stateNode;break;case 1:u=p.child.stateNode}try{CA(l,u)}catch(j){wn(p,p.return,j)}}break;case 27:u===null&&_&4&&UN(p);case 26:case 5:er(l,p),u===null&&_&4&&FN(p),_&512&&Oh(p,p.return);break;case 12:er(l,p);break;case 31:er(l,p),_&4&&HN(l,p);break;case 13:er(l,p),_&4&&VN(l,p),_&64&&(l=p.memoizedState,l!==null&&(l=l.dehydrated,l!==null&&(p=_B.bind(null,p),FB(l,p))));break;case 22:if(_=p.memoizedState!==null||Jo,!_){u=u!==null&&u.memoizedState!==null||_i,w=Jo;var C=_i;Jo=_,(_i=u)&&!C?tr(l,p,(p.subtreeFlags&8772)!==0):er(l,p),Jo=w,_i=C}break;case 30:break;default:er(l,p)}}function qN(l){var u=l.alternate;u!==null&&(l.alternate=null,qN(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&jn(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}var Vn=null,Ns=!1;function Zo(l,u,p){for(p=p.child;p!==null;)KN(l,u,p),p=p.sibling}function KN(l,u,p){if(ge&&typeof ge.onCommitFiberUnmount=="function")try{ge.onCommitFiberUnmount(le,p)}catch{}switch(p.tag){case 26:_i||io(p,u),Zo(l,u,p),p.memoizedState?p.memoizedState.count--:p.stateNode&&(p=p.stateNode,p.parentNode.removeChild(p));break;case 27:_i||io(p,u);var _=Vn,w=Ns;el(p.type)&&(Vn=p.stateNode,Ns=!1),Zo(l,u,p),Bh(p.stateNode),Vn=_,Ns=w;break;case 5:_i||io(p,u);case 6:if(_=Vn,w=Ns,Vn=null,Zo(l,u,p),Vn=_,Ns=w,Vn!==null)if(Ns)try{(Vn.nodeType===9?Vn.body:Vn.nodeName==="HTML"?Vn.ownerDocument.body:Vn).removeChild(p.stateNode)}catch(C){wn(p,u,C)}else try{Vn.removeChild(p.stateNode)}catch(C){wn(p,u,C)}break;case 18:Vn!==null&&(Ns?(l=Vn,RT(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,p.stateNode),ju(l)):RT(Vn,p.stateNode));break;case 4:_=Vn,w=Ns,Vn=p.stateNode.containerInfo,Ns=!0,Zo(l,u,p),Vn=_,Ns=w;break;case 0:case 11:case 14:case 15:Gr(2,p,u),_i||Gr(4,p,u),Zo(l,u,p);break;case 1:_i||(io(p,u),_=p.stateNode,typeof _.componentWillUnmount=="function"&&DN(p,u,_)),Zo(l,u,p);break;case 21:Zo(l,u,p);break;case 22:_i=(_=_i)||p.memoizedState!==null,Zo(l,u,p),_i=_;break;default:Zo(l,u,p)}}function HN(l,u){if(u.memoizedState===null&&(l=u.alternate,l!==null&&(l=l.memoizedState,l!==null))){l=l.dehydrated;try{ju(l)}catch(p){wn(u,u.return,p)}}}function VN(l,u){if(u.memoizedState===null&&(l=u.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{ju(l)}catch(p){wn(u,u.return,p)}}function cB(l){switch(l.tag){case 31:case 13:case 19:var u=l.stateNode;return u===null&&(u=l.stateNode=new BN),u;case 22:return l=l.stateNode,u=l._retryCache,u===null&&(u=l._retryCache=new BN),u;default:throw Error(i(435,l.tag))}}function ug(l,u){var p=cB(l);u.forEach(function(_){if(!p.has(_)){p.add(_);var w=yB.bind(null,l,_);_.then(w,w)}})}function Ts(l,u){var p=u.deletions;if(p!==null)for(var _=0;_<p.length;_++){var w=p[_],C=l,j=u,W=j;e:for(;W!==null;){switch(W.tag){case 27:if(el(W.type)){Vn=W.stateNode,Ns=!1;break e}break;case 5:Vn=W.stateNode,Ns=!1;break e;case 3:case 4:Vn=W.stateNode.containerInfo,Ns=!0;break e}W=W.return}if(Vn===null)throw Error(i(160));KN(C,j,w),Vn=null,Ns=!1,C=w.alternate,C!==null&&(C.return=null),w.return=null}if(u.subtreeFlags&13886)for(u=u.child;u!==null;)WN(u,l),u=u.sibling}var Fa=null;function WN(l,u){var p=l.alternate,_=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:Ts(u,l),Ms(l),_&4&&(Gr(3,l,l.return),Lh(3,l),Gr(5,l,l.return));break;case 1:Ts(u,l),Ms(l),_&512&&(_i||p===null||io(p,p.return)),_&64&&Jo&&(l=l.updateQueue,l!==null&&(_=l.callbacks,_!==null&&(p=l.shared.hiddenCallbacks,l.shared.hiddenCallbacks=p===null?_:p.concat(_))));break;case 26:var w=Fa;if(Ts(u,l),Ms(l),_&512&&(_i||p===null||io(p,p.return)),_&4){var C=p!==null?p.memoizedState:null;if(_=l.memoizedState,p===null)if(_===null)if(l.stateNode===null){e:{_=l.type,p=l.memoizedProps,w=w.ownerDocument||w;t:switch(_){case"title":C=w.getElementsByTagName("title")[0],(!C||C[yn]||C[Ue]||C.namespaceURI==="http://www.w3.org/2000/svg"||C.hasAttribute("itemprop"))&&(C=w.createElement(_),w.head.insertBefore(C,w.querySelector("head > title"))),qi(C,_,p),C[Ue]=l,mn(C),_=C;break e;case"link":var j=WT("link","href",w).get(_+(p.href||""));if(j){for(var W=0;W<j.length;W++)if(C=j[W],C.getAttribute("href")===(p.href==null||p.href===""?null:p.href)&&C.getAttribute("rel")===(p.rel==null?null:p.rel)&&C.getAttribute("title")===(p.title==null?null:p.title)&&C.getAttribute("crossorigin")===(p.crossOrigin==null?null:p.crossOrigin)){j.splice(W,1);break t}}C=w.createElement(_),qi(C,_,p),w.head.appendChild(C);break;case"meta":if(j=WT("meta","content",w).get(_+(p.content||""))){for(W=0;W<j.length;W++)if(C=j[W],C.getAttribute("content")===(p.content==null?null:""+p.content)&&C.getAttribute("name")===(p.name==null?null:p.name)&&C.getAttribute("property")===(p.property==null?null:p.property)&&C.getAttribute("http-equiv")===(p.httpEquiv==null?null:p.httpEquiv)&&C.getAttribute("charset")===(p.charSet==null?null:p.charSet)){j.splice(W,1);break t}}C=w.createElement(_),qi(C,_,p),w.head.appendChild(C);break;default:throw Error(i(468,_))}C[Ue]=l,mn(C),_=C}l.stateNode=_}else GT(w,l.type,l.stateNode);else l.stateNode=VT(w,_,l.memoizedProps);else C!==_?(C===null?p.stateNode!==null&&(p=p.stateNode,p.parentNode.removeChild(p)):C.count--,_===null?GT(w,l.type,l.stateNode):VT(w,_,l.memoizedProps)):_===null&&l.stateNode!==null&&Vv(l,l.memoizedProps,p.memoizedProps)}break;case 27:Ts(u,l),Ms(l),_&512&&(_i||p===null||io(p,p.return)),p!==null&&_&4&&Vv(l,l.memoizedProps,p.memoizedProps);break;case 5:if(Ts(u,l),Ms(l),_&512&&(_i||p===null||io(p,p.return)),l.flags&32){w=l.stateNode;try{iu(w,"")}catch(st){wn(l,l.return,st)}}_&4&&l.stateNode!=null&&(w=l.memoizedProps,Vv(l,w,p!==null?p.memoizedProps:w)),_&1024&&($v=!0);break;case 6:if(Ts(u,l),Ms(l),_&4){if(l.stateNode===null)throw Error(i(162));_=l.memoizedProps,p=l.stateNode;try{p.nodeValue=_}catch(st){wn(l,l.return,st)}}break;case 3:if(Ag=null,w=Fa,Fa=kg(u.containerInfo),Ts(u,l),Fa=w,Ms(l),_&4&&p!==null&&p.memoizedState.isDehydrated)try{ju(u.containerInfo)}catch(st){wn(l,l.return,st)}$v&&($v=!1,GN(l));break;case 4:_=Fa,Fa=kg(l.stateNode.containerInfo),Ts(u,l),Ms(l),Fa=_;break;case 12:Ts(u,l),Ms(l);break;case 31:Ts(u,l),Ms(l),_&4&&(_=l.updateQueue,_!==null&&(l.updateQueue=null,ug(l,_)));break;case 13:Ts(u,l),Ms(l),l.child.flags&8192&&l.memoizedState!==null!=(p!==null&&p.memoizedState!==null)&&(hg=Fe()),_&4&&(_=l.updateQueue,_!==null&&(l.updateQueue=null,ug(l,_)));break;case 22:w=l.memoizedState!==null;var ae=p!==null&&p.memoizedState!==null,ve=Jo,Ne=_i;if(Jo=ve||w,_i=Ne||ae,Ts(u,l),_i=Ne,Jo=ve,Ms(l),_&8192)e:for(u=l.stateNode,u._visibility=w?u._visibility&-2:u._visibility|1,w&&(p===null||ae||Jo||_i||ec(l)),p=null,u=l;;){if(u.tag===5||u.tag===26){if(p===null){ae=p=u;try{if(C=ae.stateNode,w)j=C.style,typeof j.setProperty=="function"?j.setProperty("display","none","important"):j.display="none";else{W=ae.stateNode;var Oe=ae.memoizedProps.style,xe=Oe!=null&&Oe.hasOwnProperty("display")?Oe.display:null;W.style.display=xe==null||typeof xe=="boolean"?"":(""+xe).trim()}}catch(st){wn(ae,ae.return,st)}}}else if(u.tag===6){if(p===null){ae=u;try{ae.stateNode.nodeValue=w?"":ae.memoizedProps}catch(st){wn(ae,ae.return,st)}}}else if(u.tag===18){if(p===null){ae=u;try{var we=ae.stateNode;w?DT(we,!0):DT(ae.stateNode,!1)}catch(st){wn(ae,ae.return,st)}}}else if((u.tag!==22&&u.tag!==23||u.memoizedState===null||u===l)&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break e;for(;u.sibling===null;){if(u.return===null||u.return===l)break e;p===u&&(p=null),u=u.return}p===u&&(p=null),u.sibling.return=u.return,u=u.sibling}_&4&&(_=l.updateQueue,_!==null&&(p=_.retryQueue,p!==null&&(_.retryQueue=null,ug(l,p))));break;case 19:Ts(u,l),Ms(l),_&4&&(_=l.updateQueue,_!==null&&(l.updateQueue=null,ug(l,_)));break;case 30:break;case 21:break;default:Ts(u,l),Ms(l)}}function Ms(l){var u=l.flags;if(u&2){try{for(var p,_=l.return;_!==null;){if(IN(_)){p=_;break}_=_.return}if(p==null)throw Error(i(160));switch(p.tag){case 27:var w=p.stateNode,C=Wv(l);cg(l,C,w);break;case 5:var j=p.stateNode;p.flags&32&&(iu(j,""),p.flags&=-33);var W=Wv(l);cg(l,W,j);break;case 3:case 4:var ae=p.stateNode.containerInfo,ve=Wv(l);Gv(l,ve,ae);break;default:throw Error(i(161))}}catch(Ne){wn(l,l.return,Ne)}l.flags&=-3}u&4096&&(l.flags&=-4097)}function GN(l){if(l.subtreeFlags&1024)for(l=l.child;l!==null;){var u=l;GN(u),u.tag===5&&u.flags&1024&&u.stateNode.reset(),l=l.sibling}}function er(l,u){if(u.subtreeFlags&8772)for(u=u.child;u!==null;)zN(l,u.alternate,u),u=u.sibling}function ec(l){for(l=l.child;l!==null;){var u=l;switch(u.tag){case 0:case 11:case 14:case 15:Gr(4,u,u.return),ec(u);break;case 1:io(u,u.return);var p=u.stateNode;typeof p.componentWillUnmount=="function"&&DN(u,u.return,p),ec(u);break;case 27:Bh(u.stateNode);case 26:case 5:io(u,u.return),ec(u);break;case 22:u.memoizedState===null&&ec(u);break;case 30:ec(u);break;default:ec(u)}l=l.sibling}}function tr(l,u,p){for(p=p&&(u.subtreeFlags&8772)!==0,u=u.child;u!==null;){var _=u.alternate,w=l,C=u,j=C.flags;switch(C.tag){case 0:case 11:case 15:tr(w,C,p),Lh(4,C);break;case 1:if(tr(w,C,p),_=C,w=_.stateNode,typeof w.componentDidMount=="function")try{w.componentDidMount()}catch(ve){wn(_,_.return,ve)}if(_=C,w=_.updateQueue,w!==null){var W=_.stateNode;try{var ae=w.shared.hiddenCallbacks;if(ae!==null)for(w.shared.hiddenCallbacks=null,w=0;w<ae.length;w++)kA(ae[w],W)}catch(ve){wn(_,_.return,ve)}}p&&j&64&&RN(C),Oh(C,C.return);break;case 27:UN(C);case 26:case 5:tr(w,C,p),p&&_===null&&j&4&&FN(C),Oh(C,C.return);break;case 12:tr(w,C,p);break;case 31:tr(w,C,p),p&&j&4&&HN(w,C);break;case 13:tr(w,C,p),p&&j&4&&VN(w,C);break;case 22:C.memoizedState===null&&tr(w,C,p),Oh(C,C.return);break;case 30:break;default:tr(w,C,p)}u=u.sibling}}function Xv(l,u){var p=null;l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(p=l.memoizedState.cachePool.pool),l=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(l=u.memoizedState.cachePool.pool),l!==p&&(l!=null&&l.refCount++,p!=null&&_h(p))}function Qv(l,u){l=null,u.alternate!==null&&(l=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==l&&(u.refCount++,l!=null&&_h(l))}function Ia(l,u,p,_){if(u.subtreeFlags&10256)for(u=u.child;u!==null;)$N(l,u,p,_),u=u.sibling}function $N(l,u,p,_){var w=u.flags;switch(u.tag){case 0:case 11:case 15:Ia(l,u,p,_),w&2048&&Lh(9,u);break;case 1:Ia(l,u,p,_);break;case 3:Ia(l,u,p,_),w&2048&&(l=null,u.alternate!==null&&(l=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==l&&(u.refCount++,l!=null&&_h(l)));break;case 12:if(w&2048){Ia(l,u,p,_),l=u.stateNode;try{var C=u.memoizedProps,j=C.id,W=C.onPostCommit;typeof W=="function"&&W(j,u.alternate===null?"mount":"update",l.passiveEffectDuration,-0)}catch(ae){wn(u,u.return,ae)}}else Ia(l,u,p,_);break;case 31:Ia(l,u,p,_);break;case 13:Ia(l,u,p,_);break;case 23:break;case 22:C=u.stateNode,j=u.alternate,u.memoizedState!==null?C._visibility&2?Ia(l,u,p,_):Ph(l,u):C._visibility&2?Ia(l,u,p,_):(C._visibility|=2,wu(l,u,p,_,(u.subtreeFlags&10256)!==0||!1)),w&2048&&Xv(j,u);break;case 24:Ia(l,u,p,_),w&2048&&Qv(u.alternate,u);break;default:Ia(l,u,p,_)}}function wu(l,u,p,_,w){for(w=w&&((u.subtreeFlags&10256)!==0||!1),u=u.child;u!==null;){var C=l,j=u,W=p,ae=_,ve=j.flags;switch(j.tag){case 0:case 11:case 15:wu(C,j,W,ae,w),Lh(8,j);break;case 23:break;case 22:var Ne=j.stateNode;j.memoizedState!==null?Ne._visibility&2?wu(C,j,W,ae,w):Ph(C,j):(Ne._visibility|=2,wu(C,j,W,ae,w)),w&&ve&2048&&Xv(j.alternate,j);break;case 24:wu(C,j,W,ae,w),w&&ve&2048&&Qv(j.alternate,j);break;default:wu(C,j,W,ae,w)}u=u.sibling}}function Ph(l,u){if(u.subtreeFlags&10256)for(u=u.child;u!==null;){var p=l,_=u,w=_.flags;switch(_.tag){case 22:Ph(p,_),w&2048&&Xv(_.alternate,_);break;case 24:Ph(p,_),w&2048&&Qv(_.alternate,_);break;default:Ph(p,_)}u=u.sibling}}var Eh=8192;function ku(l,u,p){if(l.subtreeFlags&Eh)for(l=l.child;l!==null;)XN(l,u,p),l=l.sibling}function XN(l,u,p){switch(l.tag){case 26:ku(l,u,p),l.flags&Eh&&l.memoizedState!==null&&XB(p,Fa,l.memoizedState,l.memoizedProps);break;case 5:ku(l,u,p);break;case 3:case 4:var _=Fa;Fa=kg(l.stateNode.containerInfo),ku(l,u,p),Fa=_;break;case 22:l.memoizedState===null&&(_=l.alternate,_!==null&&_.memoizedState!==null?(_=Eh,Eh=16777216,ku(l,u,p),Eh=_):ku(l,u,p));break;default:ku(l,u,p)}}function QN(l){var u=l.alternate;if(u!==null&&(l=u.child,l!==null)){u.child=null;do u=l.sibling,l.sibling=null,l=u;while(l!==null)}}function jh(l){var u=l.deletions;if((l.flags&16)!==0){if(u!==null)for(var p=0;p<u.length;p++){var _=u[p];Mi=_,JN(_,l)}QN(l)}if(l.subtreeFlags&10256)for(l=l.child;l!==null;)YN(l),l=l.sibling}function YN(l){switch(l.tag){case 0:case 11:case 15:jh(l),l.flags&2048&&Gr(9,l,l.return);break;case 3:jh(l);break;case 12:jh(l);break;case 22:var u=l.stateNode;l.memoizedState!==null&&u._visibility&2&&(l.return===null||l.return.tag!==13)?(u._visibility&=-3,dg(l)):jh(l);break;default:jh(l)}}function dg(l){var u=l.deletions;if((l.flags&16)!==0){if(u!==null)for(var p=0;p<u.length;p++){var _=u[p];Mi=_,JN(_,l)}QN(l)}for(l=l.child;l!==null;){switch(u=l,u.tag){case 0:case 11:case 15:Gr(8,u,u.return),dg(u);break;case 22:p=u.stateNode,p._visibility&2&&(p._visibility&=-3,dg(u));break;default:dg(u)}l=l.sibling}}function JN(l,u){for(;Mi!==null;){var p=Mi;switch(p.tag){case 0:case 11:case 15:Gr(8,p,u);break;case 23:case 22:if(p.memoizedState!==null&&p.memoizedState.cachePool!==null){var _=p.memoizedState.cachePool.pool;_!=null&&_.refCount++}break;case 24:_h(p.memoizedState.cache)}if(_=p.child,_!==null)_.return=p,Mi=_;else e:for(p=l;Mi!==null;){_=Mi;var w=_.sibling,C=_.return;if(qN(_),_===p){Mi=null;break e}if(w!==null){w.return=C,Mi=w;break e}Mi=C}}}var uB={getCacheForType:function(l){var u=Bi(mi),p=u.data.get(l);return p===void 0&&(p=l(),u.data.set(l,p)),p},cacheSignal:function(){return Bi(mi).controller.signal}},dB=typeof WeakMap=="function"?WeakMap:Map,bn=0,Ln=null,Yt=null,en=0,Sn=0,Ws=null,$r=!1,Cu=!1,Yv=!1,nr=0,Zn=0,Xr=0,tc=0,Jv=0,Gs=0,Au=0,Rh=null,Ls=null,Zv=!1,hg=0,ZN=0,fg=1/0,mg=null,Qr=null,ki=0,Yr=null,Nu=null,ir=0,ex=0,tx=null,eT=null,Dh=0,nx=null;function $s(){return(bn&2)!==0&&en!==0?en&-en:I.T!==null?lx():De()}function tT(){if(Gs===0)if((en&536870912)===0||rn){var l=xt;xt<<=1,(xt&3932160)===0&&(xt=262144),Gs=l}else Gs=536870912;return l=Hs.current,l!==null&&(l.flags|=32),Gs}function Os(l,u,p){(l===Ln&&(Sn===2||Sn===9)||l.cancelPendingCommit!==null)&&(Tu(l,0),Jr(l,en,Gs,!1)),ti(l,p),((bn&2)===0||l!==Ln)&&(l===Ln&&((bn&2)===0&&(tc|=p),Zn===4&&Jr(l,en,Gs,!1)),so(l))}function nT(l,u,p){if((bn&6)!==0)throw Error(i(327));var _=!p&&(u&127)===0&&(u&l.expiredLanes)===0||ws(l,u),w=_?mB(l,u):sx(l,u,!0),C=_;do{if(w===0){Cu&&!_&&Jr(l,u,0,!1);break}else{if(p=l.current.alternate,C&&!hB(p)){w=sx(l,u,!1),C=!1;continue}if(w===2){if(C=u,l.errorRecoveryDisabledLanes&C)var j=0;else j=l.pendingLanes&-536870913,j=j!==0?j:j&536870912?536870912:0;if(j!==0){u=j;e:{var W=l;w=Rh;var ae=W.current.memoizedState.isDehydrated;if(ae&&(Tu(W,j).flags|=256),j=sx(W,j,!1),j!==2){if(Yv&&!ae){W.errorRecoveryDisabledLanes|=C,tc|=C,w=4;break e}C=Ls,Ls=w,C!==null&&(Ls===null?Ls=C:Ls.push.apply(Ls,C))}w=j}if(C=!1,w!==2)continue}}if(w===1){Tu(l,0),Jr(l,u,0,!0);break}e:{switch(_=l,C=w,C){case 0:case 1:throw Error(i(345));case 4:if((u&4194048)!==u)break;case 6:Jr(_,u,Gs,!$r);break e;case 2:Ls=null;break;case 3:case 5:break;default:throw Error(i(329))}if((u&62914560)===u&&(w=hg+300-Fe(),10<w)){if(Jr(_,u,Gs,!$r),ds(_,0,!0)!==0)break e;ir=u,_.timeoutHandle=ET(iT.bind(null,_,p,Ls,mg,Zv,u,Gs,tc,Au,$r,C,"Throttled",-0,0),w);break e}iT(_,p,Ls,mg,Zv,u,Gs,tc,Au,$r,C,null,-0,0)}}break}while(!0);so(l)}function iT(l,u,p,_,w,C,j,W,ae,ve,Ne,Oe,xe,we){if(l.timeoutHandle=-1,Oe=u.subtreeFlags,Oe&8192||(Oe&16785408)===16785408){Oe={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:qo},XN(u,C,Oe);var st=(C&62914560)===C?hg-Fe():(C&4194048)===C?ZN-Fe():0;if(st=QB(Oe,st),st!==null){ir=C,l.cancelPendingCommit=st(dT.bind(null,l,u,C,p,_,w,j,W,ae,Ne,Oe,null,xe,we)),Jr(l,C,j,!ve);return}}dT(l,u,C,p,_,w,j,W,ae)}function hB(l){for(var u=l;;){var p=u.tag;if((p===0||p===11||p===15)&&u.flags&16384&&(p=u.updateQueue,p!==null&&(p=p.stores,p!==null)))for(var _=0;_<p.length;_++){var w=p[_],C=w.getSnapshot;w=w.value;try{if(!qs(C(),w))return!1}catch{return!1}}if(p=u.child,u.subtreeFlags&16384&&p!==null)p.return=u,u=p;else{if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return!0;u=u.return}u.sibling.return=u.return,u=u.sibling}}return!0}function Jr(l,u,p,_){u&=~Jv,u&=~tc,l.suspendedLanes|=u,l.pingedLanes&=~u,_&&(l.warmLanes|=u),_=l.expirationTimes;for(var w=u;0<w;){var C=31-Ae(w),j=1<<C;_[C]=-1,w&=~j}p!==0&&di(l,p,u)}function pg(){return(bn&6)===0?(Fh(0),!1):!0}function ix(){if(Yt!==null){if(Sn===0)var l=Yt.return;else l=Yt,Wo=Wl=null,bv(l),yu=null,bh=0,l=Yt;for(;l!==null;)jN(l.alternate,l),l=l.return;Yt=null}}function Tu(l,u){var p=l.timeoutHandle;p!==-1&&(l.timeoutHandle=-1,PB(p)),p=l.cancelPendingCommit,p!==null&&(l.cancelPendingCommit=null,p()),ir=0,ix(),Ln=l,Yt=p=Ho(l.current,null),en=u,Sn=0,Ws=null,$r=!1,Cu=ws(l,u),Yv=!1,Au=Gs=Jv=tc=Xr=Zn=0,Ls=Rh=null,Zv=!1,(u&8)!==0&&(u|=u&32);var _=l.entangledLanes;if(_!==0)for(l=l.entanglements,_&=u;0<_;){var w=31-Ae(_),C=1<<w;u|=l[w],_&=~C}return nr=u,Dp(),p}function sT(l,u){Rt=null,I.H=Nh,u===_u||u===Hp?(u=vA(),Sn=3):u===rv?(u=vA(),Sn=4):Sn=u===Rv?8:u!==null&&typeof u=="object"&&typeof u.then=="function"?6:1,Ws=u,Yt===null&&(Zn=1,sg(l,oa(u,l.current)))}function aT(){var l=Hs.current;return l===null?!0:(en&4194048)===en?ua===null:(en&62914560)===en||(en&536870912)!==0?l===ua:!1}function oT(){var l=I.H;return I.H=Nh,l===null?Nh:l}function rT(){var l=I.A;return I.A=uB,l}function gg(){Zn=4,$r||(en&4194048)!==en&&Hs.current!==null||(Cu=!0),(Xr&134217727)===0&&(tc&134217727)===0||Ln===null||Jr(Ln,en,Gs,!1)}function sx(l,u,p){var _=bn;bn|=2;var w=oT(),C=rT();(Ln!==l||en!==u)&&(mg=null,Tu(l,u)),u=!1;var j=Zn;e:do try{if(Sn!==0&&Yt!==null){var W=Yt,ae=Ws;switch(Sn){case 8:ix(),j=6;break e;case 3:case 2:case 9:case 6:Hs.current===null&&(u=!0);var ve=Sn;if(Sn=0,Ws=null,Mu(l,W,ae,ve),p&&Cu){j=0;break e}break;default:ve=Sn,Sn=0,Ws=null,Mu(l,W,ae,ve)}}fB(),j=Zn;break}catch(Ne){sT(l,Ne)}while(!0);return u&&l.shellSuspendCounter++,Wo=Wl=null,bn=_,I.H=w,I.A=C,Yt===null&&(Ln=null,en=0,Dp()),j}function fB(){for(;Yt!==null;)lT(Yt)}function mB(l,u){var p=bn;bn|=2;var _=oT(),w=rT();Ln!==l||en!==u?(mg=null,fg=Fe()+500,Tu(l,u)):Cu=ws(l,u);e:do try{if(Sn!==0&&Yt!==null){u=Yt;var C=Ws;t:switch(Sn){case 1:Sn=0,Ws=null,Mu(l,u,C,1);break;case 2:case 9:if(yA(C)){Sn=0,Ws=null,cT(u);break}u=function(){Sn!==2&&Sn!==9||Ln!==l||(Sn=7),so(l)},C.then(u,u);break e;case 3:Sn=7;break e;case 4:Sn=5;break e;case 7:yA(C)?(Sn=0,Ws=null,cT(u)):(Sn=0,Ws=null,Mu(l,u,C,7));break;case 5:var j=null;switch(Yt.tag){case 26:j=Yt.memoizedState;case 5:case 27:var W=Yt;if(j?$T(j):W.stateNode.complete){Sn=0,Ws=null;var ae=W.sibling;if(ae!==null)Yt=ae;else{var ve=W.return;ve!==null?(Yt=ve,_g(ve)):Yt=null}break t}}Sn=0,Ws=null,Mu(l,u,C,5);break;case 6:Sn=0,Ws=null,Mu(l,u,C,6);break;case 8:ix(),Zn=6;break e;default:throw Error(i(462))}}pB();break}catch(Ne){sT(l,Ne)}while(!0);return Wo=Wl=null,I.H=_,I.A=w,bn=p,Yt!==null?0:(Ln=null,en=0,Dp(),Zn)}function pB(){for(;Yt!==null&&!sn();)lT(Yt)}function lT(l){var u=PN(l.alternate,l,nr);l.memoizedProps=l.pendingProps,u===null?_g(l):Yt=u}function cT(l){var u=l,p=u.alternate;switch(u.tag){case 15:case 0:u=AN(p,u,u.pendingProps,u.type,void 0,en);break;case 11:u=AN(p,u,u.pendingProps,u.type.render,u.ref,en);break;case 5:bv(u);default:jN(p,u),u=Yt=rA(u,nr),u=PN(p,u,nr)}l.memoizedProps=l.pendingProps,u===null?_g(l):Yt=u}function Mu(l,u,p,_){Wo=Wl=null,bv(u),yu=null,bh=0;var w=u.return;try{if(iB(l,w,u,p,en)){Zn=1,sg(l,oa(p,l.current)),Yt=null;return}}catch(C){if(w!==null)throw Yt=w,C;Zn=1,sg(l,oa(p,l.current)),Yt=null;return}u.flags&32768?(rn||_===1?l=!0:Cu||(en&536870912)!==0?l=!1:($r=l=!0,(_===2||_===9||_===3||_===6)&&(_=Hs.current,_!==null&&_.tag===13&&(_.flags|=16384))),uT(u,l)):_g(u)}function _g(l){var u=l;do{if((u.flags&32768)!==0){uT(u,$r);return}l=u.return;var p=oB(u.alternate,u,nr);if(p!==null){Yt=p;return}if(u=u.sibling,u!==null){Yt=u;return}Yt=u=l}while(u!==null);Zn===0&&(Zn=5)}function uT(l,u){do{var p=rB(l.alternate,l);if(p!==null){p.flags&=32767,Yt=p;return}if(p=l.return,p!==null&&(p.flags|=32768,p.subtreeFlags=0,p.deletions=null),!u&&(l=l.sibling,l!==null)){Yt=l;return}Yt=l=p}while(l!==null);Zn=6,Yt=null}function dT(l,u,p,_,w,C,j,W,ae){l.cancelPendingCommit=null;do yg();while(ki!==0);if((bn&6)!==0)throw Error(i(327));if(u!==null){if(u===l.current)throw Error(i(177));if(C=u.lanes|u.childLanes,C|=Wb,En(l,p,C,j,W,ae),l===Ln&&(Yt=Ln=null,en=0),Nu=u,Yr=l,ir=p,ex=C,tx=w,eT=_,(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0?(l.callbackNode=null,l.callbackPriority=0,bB(at,function(){return gT(),null})):(l.callbackNode=null,l.callbackPriority=0),_=(u.flags&13878)!==0,(u.subtreeFlags&13878)!==0||_){_=I.T,I.T=null,w=V.p,V.p=2,j=bn,bn|=4;try{lB(l,u,p)}finally{bn=j,V.p=w,I.T=_}}ki=1,hT(),fT(),mT()}}function hT(){if(ki===1){ki=0;var l=Yr,u=Nu,p=(u.flags&13878)!==0;if((u.subtreeFlags&13878)!==0||p){p=I.T,I.T=null;var _=V.p;V.p=2;var w=bn;bn|=4;try{WN(u,l);var C=gx,j=JC(l.containerInfo),W=C.focusedElem,ae=C.selectionRange;if(j!==W&&W&&W.ownerDocument&&YC(W.ownerDocument.documentElement,W)){if(ae!==null&&zb(W)){var ve=ae.start,Ne=ae.end;if(Ne===void 0&&(Ne=ve),"selectionStart"in W)W.selectionStart=ve,W.selectionEnd=Math.min(Ne,W.value.length);else{var Oe=W.ownerDocument||document,xe=Oe&&Oe.defaultView||window;if(xe.getSelection){var we=xe.getSelection(),st=W.textContent.length,St=Math.min(ae.start,st),Tn=ae.end===void 0?St:Math.min(ae.end,st);!we.extend&&St>Tn&&(j=Tn,Tn=St,St=j);var pe=QC(W,St),he=QC(W,Tn);if(pe&&he&&(we.rangeCount!==1||we.anchorNode!==pe.node||we.anchorOffset!==pe.offset||we.focusNode!==he.node||we.focusOffset!==he.offset)){var be=Oe.createRange();be.setStart(pe.node,pe.offset),we.removeAllRanges(),St>Tn?(we.addRange(be),we.extend(he.node,he.offset)):(be.setEnd(he.node,he.offset),we.addRange(be))}}}}for(Oe=[],we=W;we=we.parentNode;)we.nodeType===1&&Oe.push({element:we,left:we.scrollLeft,top:we.scrollTop});for(typeof W.focus=="function"&&W.focus(),W=0;W<Oe.length;W++){var Me=Oe[W];Me.element.scrollLeft=Me.left,Me.element.scrollTop=Me.top}}Lg=!!px,gx=px=null}finally{bn=w,V.p=_,I.T=p}}l.current=u,ki=2}}function fT(){if(ki===2){ki=0;var l=Yr,u=Nu,p=(u.flags&8772)!==0;if((u.subtreeFlags&8772)!==0||p){p=I.T,I.T=null;var _=V.p;V.p=2;var w=bn;bn|=4;try{zN(l,u.alternate,u)}finally{bn=w,V.p=_,I.T=p}}ki=3}}function mT(){if(ki===4||ki===3){ki=0,an();var l=Yr,u=Nu,p=ir,_=eT;(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0?ki=5:(ki=0,Nu=Yr=null,pT(l,l.pendingLanes));var w=l.pendingLanes;if(w===0&&(Qr=null),Le(p),u=u.stateNode,ge&&typeof ge.onCommitFiberRoot=="function")try{ge.onCommitFiberRoot(le,u,void 0,(u.current.flags&128)===128)}catch{}if(_!==null){u=I.T,w=V.p,V.p=2,I.T=null;try{for(var C=l.onRecoverableError,j=0;j<_.length;j++){var W=_[j];C(W.value,{componentStack:W.stack})}}finally{I.T=u,V.p=w}}(ir&3)!==0&&yg(),so(l),w=l.pendingLanes,(p&261930)!==0&&(w&42)!==0?l===nx?Dh++:(Dh=0,nx=l):Dh=0,Fh(0)}}function pT(l,u){(l.pooledCacheLanes&=u)===0&&(u=l.pooledCache,u!=null&&(l.pooledCache=null,_h(u)))}function yg(){return hT(),fT(),mT(),gT()}function gT(){if(ki!==5)return!1;var l=Yr,u=ex;ex=0;var p=Le(ir),_=I.T,w=V.p;try{V.p=32>p?32:p,I.T=null,p=tx,tx=null;var C=Yr,j=ir;if(ki=0,Nu=Yr=null,ir=0,(bn&6)!==0)throw Error(i(331));var W=bn;if(bn|=4,YN(C.current),$N(C,C.current,j,p),bn=W,Fh(0,!1),ge&&typeof ge.onPostCommitFiberRoot=="function")try{ge.onPostCommitFiberRoot(le,C)}catch{}return!0}finally{V.p=w,I.T=_,pT(l,u)}}function _T(l,u,p){u=oa(p,u),u=jv(l.stateNode,u,2),l=Hr(l,u,2),l!==null&&(ti(l,2),so(l))}function wn(l,u,p){if(l.tag===3)_T(l,l,p);else for(;u!==null;){if(u.tag===3){_T(u,l,p);break}else if(u.tag===1){var _=u.stateNode;if(typeof u.type.getDerivedStateFromError=="function"||typeof _.componentDidCatch=="function"&&(Qr===null||!Qr.has(_))){l=oa(p,l),p=yN(2),_=Hr(u,p,2),_!==null&&(bN(p,_,u,l),ti(_,2),so(_));break}}u=u.return}}function ax(l,u,p){var _=l.pingCache;if(_===null){_=l.pingCache=new dB;var w=new Set;_.set(u,w)}else w=_.get(u),w===void 0&&(w=new Set,_.set(u,w));w.has(p)||(Yv=!0,w.add(p),l=gB.bind(null,l,u,p),u.then(l,l))}function gB(l,u,p){var _=l.pingCache;_!==null&&_.delete(u),l.pingedLanes|=l.suspendedLanes&p,l.warmLanes&=~p,Ln===l&&(en&p)===p&&(Zn===4||Zn===3&&(en&62914560)===en&&300>Fe()-hg?(bn&2)===0&&Tu(l,0):Jv|=p,Au===en&&(Au=0)),so(l)}function yT(l,u){u===0&&(u=nt()),l=Kl(l,u),l!==null&&(ti(l,u),so(l))}function _B(l){var u=l.memoizedState,p=0;u!==null&&(p=u.retryLane),yT(l,p)}function yB(l,u){var p=0;switch(l.tag){case 31:case 13:var _=l.stateNode,w=l.memoizedState;w!==null&&(p=w.retryLane);break;case 19:_=l.stateNode;break;case 22:_=l.stateNode._retryCache;break;default:throw Error(i(314))}_!==null&&_.delete(u),yT(l,p)}function bB(l,u){return Ot(l,u)}var bg=null,Lu=null,ox=!1,vg=!1,rx=!1,Zr=0;function so(l){l!==Lu&&l.next===null&&(Lu===null?bg=Lu=l:Lu=Lu.next=l),vg=!0,ox||(ox=!0,xB())}function Fh(l,u){if(!rx&&vg){rx=!0;do for(var p=!1,_=bg;_!==null;){if(l!==0){var w=_.pendingLanes;if(w===0)var C=0;else{var j=_.suspendedLanes,W=_.pingedLanes;C=(1<<31-Ae(42|l)+1)-1,C&=w&~(j&~W),C=C&201326741?C&201326741|1:C?C|2:0}C!==0&&(p=!0,ST(_,C))}else C=en,C=ds(_,_===Ln?C:0,_.cancelPendingCommit!==null||_.timeoutHandle!==-1),(C&3)===0||ws(_,C)||(p=!0,ST(_,C));_=_.next}while(p);rx=!1}}function vB(){bT()}function bT(){vg=ox=!1;var l=0;Zr!==0&&OB()&&(l=Zr);for(var u=Fe(),p=null,_=bg;_!==null;){var w=_.next,C=vT(_,u);C===0?(_.next=null,p===null?bg=w:p.next=w,w===null&&(Lu=p)):(p=_,(l!==0||(C&3)!==0)&&(vg=!0)),_=w}ki!==0&&ki!==5||Fh(l),Zr!==0&&(Zr=0)}function vT(l,u){for(var p=l.suspendedLanes,_=l.pingedLanes,w=l.expirationTimes,C=l.pendingLanes&-62914561;0<C;){var j=31-Ae(C),W=1<<j,ae=w[j];ae===-1?((W&p)===0||(W&_)!==0)&&(w[j]=Te(W,u)):ae<=u&&(l.expiredLanes|=W),C&=~W}if(u=Ln,p=en,p=ds(l,l===u?p:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),_=l.callbackNode,p===0||l===u&&(Sn===2||Sn===9)||l.cancelPendingCommit!==null)return _!==null&&_!==null&&zt(_),l.callbackNode=null,l.callbackPriority=0;if((p&3)===0||ws(l,p)){if(u=p&-p,u===l.callbackPriority)return u;switch(_!==null&&zt(_),Le(p)){case 2:case 8:p=pt;break;case 32:p=at;break;case 268435456:p=ut;break;default:p=at}return _=xT.bind(null,l),p=Ot(p,_),l.callbackPriority=u,l.callbackNode=p,u}return _!==null&&_!==null&&zt(_),l.callbackPriority=2,l.callbackNode=null,2}function xT(l,u){if(ki!==0&&ki!==5)return l.callbackNode=null,l.callbackPriority=0,null;var p=l.callbackNode;if(yg()&&l.callbackNode!==p)return null;var _=en;return _=ds(l,l===Ln?_:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),_===0?null:(nT(l,_,u),vT(l,Fe()),l.callbackNode!=null&&l.callbackNode===p?xT.bind(null,l):null)}function ST(l,u){if(yg())return null;nT(l,u,!0)}function xB(){EB(function(){(bn&6)!==0?Ot(je,vB):bT()})}function lx(){if(Zr===0){var l=pu;l===0&&(l=on,on<<=1,(on&261888)===0&&(on=256)),Zr=l}return Zr}function wT(l){return l==null||typeof l=="symbol"||typeof l=="boolean"?null:typeof l=="function"?l:Tp(""+l)}function kT(l,u){var p=u.ownerDocument.createElement("input");return p.name=u.name,p.value=u.value,l.id&&p.setAttribute("form",l.id),u.parentNode.insertBefore(p,u),l=new FormData(l),p.parentNode.removeChild(p),l}function SB(l,u,p,_,w){if(u==="submit"&&p&&p.stateNode===w){var C=wT((w[qe]||null).action),j=_.submitter;j&&(u=(u=j[qe]||null)?wT(u.formAction):j.getAttribute("formAction"),u!==null&&(C=u,j=null));var W=new Pp("action","action",null,_,w);l.push({event:W,listeners:[{instance:null,listener:function(){if(_.defaultPrevented){if(Zr!==0){var ae=j?kT(w,j):new FormData(w);Tv(p,{pending:!0,data:ae,method:w.method,action:C},null,ae)}}else typeof C=="function"&&(W.preventDefault(),ae=j?kT(w,j):new FormData(w),Tv(p,{pending:!0,data:ae,method:w.method,action:C},C,ae))},currentTarget:w}]})}}for(var cx=0;cx<Vb.length;cx++){var ux=Vb[cx],wB=ux.toLowerCase(),kB=ux[0].toUpperCase()+ux.slice(1);Da(wB,"on"+kB)}Da(tA,"onAnimationEnd"),Da(nA,"onAnimationIteration"),Da(iA,"onAnimationStart"),Da("dblclick","onDoubleClick"),Da("focusin","onFocus"),Da("focusout","onBlur"),Da(BU,"onTransitionRun"),Da(zU,"onTransitionStart"),Da(qU,"onTransitionCancel"),Da(sA,"onTransitionEnd"),wi("onMouseEnter",["mouseout","mouseover"]),wi("onMouseLeave",["mouseout","mouseover"]),wi("onPointerEnter",["pointerout","pointerover"]),wi("onPointerLeave",["pointerout","pointerover"]),ks("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ks("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ks("onBeforeInput",["compositionend","keypress","textInput","paste"]),ks("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ks("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ks("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ih="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),CB=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ih));function CT(l,u){u=(u&4)!==0;for(var p=0;p<l.length;p++){var _=l[p],w=_.event;_=_.listeners;e:{var C=void 0;if(u)for(var j=_.length-1;0<=j;j--){var W=_[j],ae=W.instance,ve=W.currentTarget;if(W=W.listener,ae!==C&&w.isPropagationStopped())break e;C=W,w.currentTarget=ve;try{C(w)}catch(Ne){Rp(Ne)}w.currentTarget=null,C=ae}else for(j=0;j<_.length;j++){if(W=_[j],ae=W.instance,ve=W.currentTarget,W=W.listener,ae!==C&&w.isPropagationStopped())break e;C=W,w.currentTarget=ve;try{C(w)}catch(Ne){Rp(Ne)}w.currentTarget=null,C=ae}}}}function Jt(l,u){var p=u[dt];p===void 0&&(p=u[dt]=new Set);var _=l+"__bubble";p.has(_)||(AT(u,l,2,!1),p.add(_))}function dx(l,u,p){var _=0;u&&(_|=4),AT(p,l,_,u)}var xg="_reactListening"+Math.random().toString(36).slice(2);function hx(l){if(!l[xg]){l[xg]=!0,Xi.forEach(function(p){p!=="selectionchange"&&(CB.has(p)||dx(p,!1,l),dx(p,!0,l))});var u=l.nodeType===9?l:l.ownerDocument;u===null||u[xg]||(u[xg]=!0,dx("selectionchange",!1,u))}}function AT(l,u,p,_){switch(tM(u)){case 2:var w=ZB;break;case 8:w=e7;break;default:w=Nx}p=w.bind(null,u,p,l),w=void 0,!Pb||u!=="touchstart"&&u!=="touchmove"&&u!=="wheel"||(w=!0),_?w!==void 0?l.addEventListener(u,p,{capture:!0,passive:w}):l.addEventListener(u,p,!0):w!==void 0?l.addEventListener(u,p,{passive:w}):l.addEventListener(u,p,!1)}function fx(l,u,p,_,w){var C=_;if((u&1)===0&&(u&2)===0&&_!==null)e:for(;;){if(_===null)return;var j=_.tag;if(j===3||j===4){var W=_.stateNode.containerInfo;if(W===w)break;if(j===4)for(j=_.return;j!==null;){var ae=j.tag;if((ae===3||ae===4)&&j.stateNode.containerInfo===w)return;j=j.return}for(;W!==null;){if(j=Kn(W),j===null)return;if(ae=j.tag,ae===5||ae===6||ae===26||ae===27){_=C=j;continue e}W=W.parentNode}}_=_.return}OC(function(){var ve=C,Ne=Lb(p),Oe=[];e:{var xe=aA.get(l);if(xe!==void 0){var we=Pp,st=l;switch(l){case"keypress":if(Lp(p)===0)break e;case"keydown":case"keyup":we=yU;break;case"focusin":st="focus",we=Db;break;case"focusout":st="blur",we=Db;break;case"beforeblur":case"afterblur":we=Db;break;case"click":if(p.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":we=jC;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":we=oU;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":we=xU;break;case tA:case nA:case iA:we=cU;break;case sA:we=wU;break;case"scroll":case"scrollend":we=sU;break;case"wheel":we=CU;break;case"copy":case"cut":case"paste":we=dU;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":we=DC;break;case"toggle":case"beforetoggle":we=NU}var St=(u&4)!==0,Tn=!St&&(l==="scroll"||l==="scrollend"),pe=St?xe!==null?xe+"Capture":null:xe;St=[];for(var he=ve,be;he!==null;){var Me=he;if(be=Me.stateNode,Me=Me.tag,Me!==5&&Me!==26&&Me!==27||be===null||pe===null||(Me=oh(he,pe),Me!=null&&St.push(Uh(he,Me,be))),Tn)break;he=he.return}0<St.length&&(xe=new we(xe,st,null,p,Ne),Oe.push({event:xe,listeners:St}))}}if((u&7)===0){e:{if(xe=l==="mouseover"||l==="pointerover",we=l==="mouseout"||l==="pointerout",xe&&p!==Mb&&(st=p.relatedTarget||p.fromElement)&&(Kn(st)||st[it]))break e;if((we||xe)&&(xe=Ne.window===Ne?Ne:(xe=Ne.ownerDocument)?xe.defaultView||xe.parentWindow:window,we?(st=p.relatedTarget||p.toElement,we=ve,st=st?Kn(st):null,st!==null&&(Tn=a(st),St=st.tag,st!==Tn||St!==5&&St!==27&&St!==6)&&(st=null)):(we=null,st=ve),we!==st)){if(St=jC,Me="onMouseLeave",pe="onMouseEnter",he="mouse",(l==="pointerout"||l==="pointerover")&&(St=DC,Me="onPointerLeave",pe="onPointerEnter",he="pointer"),Tn=we==null?xe:Yn(we),be=st==null?xe:Yn(st),xe=new St(Me,he+"leave",we,p,Ne),xe.target=Tn,xe.relatedTarget=be,Me=null,Kn(Ne)===ve&&(St=new St(pe,he+"enter",st,p,Ne),St.target=be,St.relatedTarget=Tn,Me=St),Tn=Me,we&&st)t:{for(St=AB,pe=we,he=st,be=0,Me=pe;Me;Me=St(Me))be++;Me=0;for(var _t=he;_t;_t=St(_t))Me++;for(;0<be-Me;)pe=St(pe),be--;for(;0<Me-be;)he=St(he),Me--;for(;be--;){if(pe===he||he!==null&&pe===he.alternate){St=pe;break t}pe=St(pe),he=St(he)}St=null}else St=null;we!==null&&NT(Oe,xe,we,St,!1),st!==null&&Tn!==null&&NT(Oe,Tn,st,St,!0)}}e:{if(xe=ve?Yn(ve):window,we=xe.nodeName&&xe.nodeName.toLowerCase(),we==="select"||we==="input"&&xe.type==="file")var pn=HC;else if(qC(xe))if(VC)pn=FU;else{pn=RU;var lt=jU}else we=xe.nodeName,!we||we.toLowerCase()!=="input"||xe.type!=="checkbox"&&xe.type!=="radio"?ve&&Tb(ve.elementType)&&(pn=HC):pn=DU;if(pn&&(pn=pn(l,ve))){KC(Oe,pn,p,Ne);break e}lt&<(l,xe,ve),l==="focusout"&&ve&&xe.type==="number"&&ve.memoizedProps.value!=null&&Nb(xe,"number",xe.value)}switch(lt=ve?Yn(ve):window,l){case"focusin":(qC(lt)||lt.contentEditable==="true")&&(ru=lt,qb=ve,mh=null);break;case"focusout":mh=qb=ru=null;break;case"mousedown":Kb=!0;break;case"contextmenu":case"mouseup":case"dragend":Kb=!1,ZC(Oe,p,Ne);break;case"selectionchange":if(UU)break;case"keydown":case"keyup":ZC(Oe,p,Ne)}var Ut;if(Ib)e:{switch(l){case"compositionstart":var tn="onCompositionStart";break e;case"compositionend":tn="onCompositionEnd";break e;case"compositionupdate":tn="onCompositionUpdate";break e}tn=void 0}else ou?BC(l,p)&&(tn="onCompositionEnd"):l==="keydown"&&p.keyCode===229&&(tn="onCompositionStart");tn&&(FC&&p.locale!=="ko"&&(ou||tn!=="onCompositionStart"?tn==="onCompositionEnd"&&ou&&(Ut=PC()):(Fr=Ne,Eb="value"in Fr?Fr.value:Fr.textContent,ou=!0)),lt=Sg(ve,tn),0<lt.length&&(tn=new RC(tn,l,null,p,Ne),Oe.push({event:tn,listeners:lt}),Ut?tn.data=Ut:(Ut=zC(p),Ut!==null&&(tn.data=Ut)))),(Ut=MU?LU(l,p):OU(l,p))&&(tn=Sg(ve,"onBeforeInput"),0<tn.length&&(lt=new RC("onBeforeInput","beforeinput",null,p,Ne),Oe.push({event:lt,listeners:tn}),lt.data=Ut)),SB(Oe,l,ve,p,Ne)}CT(Oe,u)})}function Uh(l,u,p){return{instance:l,listener:u,currentTarget:p}}function Sg(l,u){for(var p=u+"Capture",_=[];l!==null;){var w=l,C=w.stateNode;if(w=w.tag,w!==5&&w!==26&&w!==27||C===null||(w=oh(l,p),w!=null&&_.unshift(Uh(l,w,C)),w=oh(l,u),w!=null&&_.push(Uh(l,w,C))),l.tag===3)return _;l=l.return}return[]}function AB(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5&&l.tag!==27);return l||null}function NT(l,u,p,_,w){for(var C=u._reactName,j=[];p!==null&&p!==_;){var W=p,ae=W.alternate,ve=W.stateNode;if(W=W.tag,ae!==null&&ae===_)break;W!==5&&W!==26&&W!==27||ve===null||(ae=ve,w?(ve=oh(p,C),ve!=null&&j.unshift(Uh(p,ve,ae))):w||(ve=oh(p,C),ve!=null&&j.push(Uh(p,ve,ae)))),p=p.return}j.length!==0&&l.push({event:u,listeners:j})}var NB=/\r\n?/g,TB=/\u0000|\uFFFD/g;function TT(l){return(typeof l=="string"?l:""+l).replace(NB,`
|
||
`).replace(TB,"")}function MT(l,u){return u=TT(u),TT(l)===u}function Nn(l,u,p,_,w,C){switch(p){case"children":typeof _=="string"?u==="body"||u==="textarea"&&_===""||iu(l,_):(typeof _=="number"||typeof _=="bigint")&&u!=="body"&&iu(l,""+_);break;case"className":Cs(l,"class",_);break;case"tabIndex":Cs(l,"tabindex",_);break;case"dir":case"role":case"viewBox":case"width":case"height":Cs(l,p,_);break;case"style":MC(l,_,C);break;case"data":if(u!=="object"){Cs(l,"data",_);break}case"src":case"href":if(_===""&&(u!=="a"||p!=="href")){l.removeAttribute(p);break}if(_==null||typeof _=="function"||typeof _=="symbol"||typeof _=="boolean"){l.removeAttribute(p);break}_=Tp(""+_),l.setAttribute(p,_);break;case"action":case"formAction":if(typeof _=="function"){l.setAttribute(p,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof C=="function"&&(p==="formAction"?(u!=="input"&&Nn(l,u,"name",w.name,w,null),Nn(l,u,"formEncType",w.formEncType,w,null),Nn(l,u,"formMethod",w.formMethod,w,null),Nn(l,u,"formTarget",w.formTarget,w,null)):(Nn(l,u,"encType",w.encType,w,null),Nn(l,u,"method",w.method,w,null),Nn(l,u,"target",w.target,w,null)));if(_==null||typeof _=="symbol"||typeof _=="boolean"){l.removeAttribute(p);break}_=Tp(""+_),l.setAttribute(p,_);break;case"onClick":_!=null&&(l.onclick=qo);break;case"onScroll":_!=null&&Jt("scroll",l);break;case"onScrollEnd":_!=null&&Jt("scrollend",l);break;case"dangerouslySetInnerHTML":if(_!=null){if(typeof _!="object"||!("__html"in _))throw Error(i(61));if(p=_.__html,p!=null){if(w.children!=null)throw Error(i(60));l.innerHTML=p}}break;case"multiple":l.multiple=_&&typeof _!="function"&&typeof _!="symbol";break;case"muted":l.muted=_&&typeof _!="function"&&typeof _!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(_==null||typeof _=="function"||typeof _=="boolean"||typeof _=="symbol"){l.removeAttribute("xlink:href");break}p=Tp(""+_),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",p);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":_!=null&&typeof _!="function"&&typeof _!="symbol"?l.setAttribute(p,""+_):l.removeAttribute(p);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":_&&typeof _!="function"&&typeof _!="symbol"?l.setAttribute(p,""):l.removeAttribute(p);break;case"capture":case"download":_===!0?l.setAttribute(p,""):_!==!1&&_!=null&&typeof _!="function"&&typeof _!="symbol"?l.setAttribute(p,_):l.removeAttribute(p);break;case"cols":case"rows":case"size":case"span":_!=null&&typeof _!="function"&&typeof _!="symbol"&&!isNaN(_)&&1<=_?l.setAttribute(p,_):l.removeAttribute(p);break;case"rowSpan":case"start":_==null||typeof _=="function"||typeof _=="symbol"||isNaN(_)?l.removeAttribute(p):l.setAttribute(p,_);break;case"popover":Jt("beforetoggle",l),Jt("toggle",l),Hn(l,"popover",_);break;case"xlinkActuate":fi(l,"http://www.w3.org/1999/xlink","xlink:actuate",_);break;case"xlinkArcrole":fi(l,"http://www.w3.org/1999/xlink","xlink:arcrole",_);break;case"xlinkRole":fi(l,"http://www.w3.org/1999/xlink","xlink:role",_);break;case"xlinkShow":fi(l,"http://www.w3.org/1999/xlink","xlink:show",_);break;case"xlinkTitle":fi(l,"http://www.w3.org/1999/xlink","xlink:title",_);break;case"xlinkType":fi(l,"http://www.w3.org/1999/xlink","xlink:type",_);break;case"xmlBase":fi(l,"http://www.w3.org/XML/1998/namespace","xml:base",_);break;case"xmlLang":fi(l,"http://www.w3.org/XML/1998/namespace","xml:lang",_);break;case"xmlSpace":fi(l,"http://www.w3.org/XML/1998/namespace","xml:space",_);break;case"is":Hn(l,"is",_);break;case"innerText":case"textContent":break;default:(!(2<p.length)||p[0]!=="o"&&p[0]!=="O"||p[1]!=="n"&&p[1]!=="N")&&(p=nU.get(p)||p,Hn(l,p,_))}}function mx(l,u,p,_,w,C){switch(p){case"style":MC(l,_,C);break;case"dangerouslySetInnerHTML":if(_!=null){if(typeof _!="object"||!("__html"in _))throw Error(i(61));if(p=_.__html,p!=null){if(w.children!=null)throw Error(i(60));l.innerHTML=p}}break;case"children":typeof _=="string"?iu(l,_):(typeof _=="number"||typeof _=="bigint")&&iu(l,""+_);break;case"onScroll":_!=null&&Jt("scroll",l);break;case"onScrollEnd":_!=null&&Jt("scrollend",l);break;case"onClick":_!=null&&(l.onclick=qo);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!hi.hasOwnProperty(p))e:{if(p[0]==="o"&&p[1]==="n"&&(w=p.endsWith("Capture"),u=p.slice(2,w?p.length-7:void 0),C=l[qe]||null,C=C!=null?C[p]:null,typeof C=="function"&&l.removeEventListener(u,C,w),typeof _=="function")){typeof C!="function"&&C!==null&&(p in l?l[p]=null:l.hasAttribute(p)&&l.removeAttribute(p)),l.addEventListener(u,_,w);break e}p in l?l[p]=_:_===!0?l.setAttribute(p,""):Hn(l,p,_)}}}function qi(l,u,p){switch(u){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Jt("error",l),Jt("load",l);var _=!1,w=!1,C;for(C in p)if(p.hasOwnProperty(C)){var j=p[C];if(j!=null)switch(C){case"src":_=!0;break;case"srcSet":w=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,u));default:Nn(l,u,C,j,p,null)}}w&&Nn(l,u,"srcSet",p.srcSet,p,null),_&&Nn(l,u,"src",p.src,p,null);return;case"input":Jt("invalid",l);var W=C=j=w=null,ae=null,ve=null;for(_ in p)if(p.hasOwnProperty(_)){var Ne=p[_];if(Ne!=null)switch(_){case"name":w=Ne;break;case"type":j=Ne;break;case"checked":ae=Ne;break;case"defaultChecked":ve=Ne;break;case"value":C=Ne;break;case"defaultValue":W=Ne;break;case"children":case"dangerouslySetInnerHTML":if(Ne!=null)throw Error(i(137,u));break;default:Nn(l,u,_,Ne,p,null)}}Dr(l,C,W,ae,ve,j,w,!1);return;case"select":Jt("invalid",l),_=j=C=null;for(w in p)if(p.hasOwnProperty(w)&&(W=p[w],W!=null))switch(w){case"value":C=W;break;case"defaultValue":j=W;break;case"multiple":_=W;default:Nn(l,u,w,W,p,null)}u=C,p=j,l.multiple=!!_,u!=null?nu(l,!!_,u,!1):p!=null&&nu(l,!!_,p,!0);return;case"textarea":Jt("invalid",l),C=w=_=null;for(j in p)if(p.hasOwnProperty(j)&&(W=p[j],W!=null))switch(j){case"value":_=W;break;case"defaultValue":w=W;break;case"children":C=W;break;case"dangerouslySetInnerHTML":if(W!=null)throw Error(i(91));break;default:Nn(l,u,j,W,p,null)}NC(l,_,w,C);return;case"option":for(ae in p)if(p.hasOwnProperty(ae)&&(_=p[ae],_!=null))switch(ae){case"selected":l.selected=_&&typeof _!="function"&&typeof _!="symbol";break;default:Nn(l,u,ae,_,p,null)}return;case"dialog":Jt("beforetoggle",l),Jt("toggle",l),Jt("cancel",l),Jt("close",l);break;case"iframe":case"object":Jt("load",l);break;case"video":case"audio":for(_=0;_<Ih.length;_++)Jt(Ih[_],l);break;case"image":Jt("error",l),Jt("load",l);break;case"details":Jt("toggle",l);break;case"embed":case"source":case"link":Jt("error",l),Jt("load",l);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ve in p)if(p.hasOwnProperty(ve)&&(_=p[ve],_!=null))switch(ve){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,u));default:Nn(l,u,ve,_,p,null)}return;default:if(Tb(u)){for(Ne in p)p.hasOwnProperty(Ne)&&(_=p[Ne],_!==void 0&&mx(l,u,Ne,_,p,void 0));return}}for(W in p)p.hasOwnProperty(W)&&(_=p[W],_!=null&&Nn(l,u,W,_,p,null))}function MB(l,u,p,_){switch(u){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var w=null,C=null,j=null,W=null,ae=null,ve=null,Ne=null;for(we in p){var Oe=p[we];if(p.hasOwnProperty(we)&&Oe!=null)switch(we){case"checked":break;case"value":break;case"defaultValue":ae=Oe;default:_.hasOwnProperty(we)||Nn(l,u,we,null,_,Oe)}}for(var xe in _){var we=_[xe];if(Oe=p[xe],_.hasOwnProperty(xe)&&(we!=null||Oe!=null))switch(xe){case"type":C=we;break;case"name":w=we;break;case"checked":ve=we;break;case"defaultChecked":Ne=we;break;case"value":j=we;break;case"defaultValue":W=we;break;case"children":case"dangerouslySetInnerHTML":if(we!=null)throw Error(i(137,u));break;default:we!==Oe&&Nn(l,u,xe,we,_,Oe)}}Qi(l,j,W,ae,ve,Ne,C,w);return;case"select":we=j=W=xe=null;for(C in p)if(ae=p[C],p.hasOwnProperty(C)&&ae!=null)switch(C){case"value":break;case"multiple":we=ae;default:_.hasOwnProperty(C)||Nn(l,u,C,null,_,ae)}for(w in _)if(C=_[w],ae=p[w],_.hasOwnProperty(w)&&(C!=null||ae!=null))switch(w){case"value":xe=C;break;case"defaultValue":W=C;break;case"multiple":j=C;default:C!==ae&&Nn(l,u,w,C,_,ae)}u=W,p=j,_=we,xe!=null?nu(l,!!p,xe,!1):!!_!=!!p&&(u!=null?nu(l,!!p,u,!0):nu(l,!!p,p?[]:"",!1));return;case"textarea":we=xe=null;for(W in p)if(w=p[W],p.hasOwnProperty(W)&&w!=null&&!_.hasOwnProperty(W))switch(W){case"value":break;case"children":break;default:Nn(l,u,W,null,_,w)}for(j in _)if(w=_[j],C=p[j],_.hasOwnProperty(j)&&(w!=null||C!=null))switch(j){case"value":xe=w;break;case"defaultValue":we=w;break;case"children":break;case"dangerouslySetInnerHTML":if(w!=null)throw Error(i(91));break;default:w!==C&&Nn(l,u,j,w,_,C)}AC(l,xe,we);return;case"option":for(var st in p)if(xe=p[st],p.hasOwnProperty(st)&&xe!=null&&!_.hasOwnProperty(st))switch(st){case"selected":l.selected=!1;break;default:Nn(l,u,st,null,_,xe)}for(ae in _)if(xe=_[ae],we=p[ae],_.hasOwnProperty(ae)&&xe!==we&&(xe!=null||we!=null))switch(ae){case"selected":l.selected=xe&&typeof xe!="function"&&typeof xe!="symbol";break;default:Nn(l,u,ae,xe,_,we)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var St in p)xe=p[St],p.hasOwnProperty(St)&&xe!=null&&!_.hasOwnProperty(St)&&Nn(l,u,St,null,_,xe);for(ve in _)if(xe=_[ve],we=p[ve],_.hasOwnProperty(ve)&&xe!==we&&(xe!=null||we!=null))switch(ve){case"children":case"dangerouslySetInnerHTML":if(xe!=null)throw Error(i(137,u));break;default:Nn(l,u,ve,xe,_,we)}return;default:if(Tb(u)){for(var Tn in p)xe=p[Tn],p.hasOwnProperty(Tn)&&xe!==void 0&&!_.hasOwnProperty(Tn)&&mx(l,u,Tn,void 0,_,xe);for(Ne in _)xe=_[Ne],we=p[Ne],!_.hasOwnProperty(Ne)||xe===we||xe===void 0&&we===void 0||mx(l,u,Ne,xe,_,we);return}}for(var pe in p)xe=p[pe],p.hasOwnProperty(pe)&&xe!=null&&!_.hasOwnProperty(pe)&&Nn(l,u,pe,null,_,xe);for(Oe in _)xe=_[Oe],we=p[Oe],!_.hasOwnProperty(Oe)||xe===we||xe==null&&we==null||Nn(l,u,Oe,xe,_,we)}function LT(l){switch(l){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function LB(){if(typeof performance.getEntriesByType=="function"){for(var l=0,u=0,p=performance.getEntriesByType("resource"),_=0;_<p.length;_++){var w=p[_],C=w.transferSize,j=w.initiatorType,W=w.duration;if(C&&W&<(j)){for(j=0,W=w.responseEnd,_+=1;_<p.length;_++){var ae=p[_],ve=ae.startTime;if(ve>W)break;var Ne=ae.transferSize,Oe=ae.initiatorType;Ne&<(Oe)&&(ae=ae.responseEnd,j+=Ne*(ae<W?1:(W-ve)/(ae-ve)))}if(--_,u+=8*(C+j)/(w.duration/1e3),l++,10<l)break}}if(0<l)return u/l/1e6}return navigator.connection&&(l=navigator.connection.downlink,typeof l=="number")?l:5}var px=null,gx=null;function wg(l){return l.nodeType===9?l:l.ownerDocument}function OT(l){switch(l){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function PT(l,u){if(l===0)switch(u){case"svg":return 1;case"math":return 2;default:return 0}return l===1&&u==="foreignObject"?0:l}function _x(l,u){return l==="textarea"||l==="noscript"||typeof u.children=="string"||typeof u.children=="number"||typeof u.children=="bigint"||typeof u.dangerouslySetInnerHTML=="object"&&u.dangerouslySetInnerHTML!==null&&u.dangerouslySetInnerHTML.__html!=null}var yx=null;function OB(){var l=window.event;return l&&l.type==="popstate"?l===yx?!1:(yx=l,!0):(yx=null,!1)}var ET=typeof setTimeout=="function"?setTimeout:void 0,PB=typeof clearTimeout=="function"?clearTimeout:void 0,jT=typeof Promise=="function"?Promise:void 0,EB=typeof queueMicrotask=="function"?queueMicrotask:typeof jT<"u"?function(l){return jT.resolve(null).then(l).catch(jB)}:ET;function jB(l){setTimeout(function(){throw l})}function el(l){return l==="head"}function RT(l,u){var p=u,_=0;do{var w=p.nextSibling;if(l.removeChild(p),w&&w.nodeType===8)if(p=w.data,p==="/$"||p==="/&"){if(_===0){l.removeChild(w),ju(u);return}_--}else if(p==="$"||p==="$?"||p==="$~"||p==="$!"||p==="&")_++;else if(p==="html")Bh(l.ownerDocument.documentElement);else if(p==="head"){p=l.ownerDocument.head,Bh(p);for(var C=p.firstChild;C;){var j=C.nextSibling,W=C.nodeName;C[yn]||W==="SCRIPT"||W==="STYLE"||W==="LINK"&&C.rel.toLowerCase()==="stylesheet"||p.removeChild(C),C=j}}else p==="body"&&Bh(l.ownerDocument.body);p=w}while(p);ju(u)}function DT(l,u){var p=l;l=0;do{var _=p.nextSibling;if(p.nodeType===1?u?(p._stashedDisplay=p.style.display,p.style.display="none"):(p.style.display=p._stashedDisplay||"",p.getAttribute("style")===""&&p.removeAttribute("style")):p.nodeType===3&&(u?(p._stashedText=p.nodeValue,p.nodeValue=""):p.nodeValue=p._stashedText||""),_&&_.nodeType===8)if(p=_.data,p==="/$"){if(l===0)break;l--}else p!=="$"&&p!=="$?"&&p!=="$~"&&p!=="$!"||l++;p=_}while(p)}function bx(l){var u=l.firstChild;for(u&&u.nodeType===10&&(u=u.nextSibling);u;){var p=u;switch(u=u.nextSibling,p.nodeName){case"HTML":case"HEAD":case"BODY":bx(p),jn(p);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(p.rel.toLowerCase()==="stylesheet")continue}l.removeChild(p)}}function RB(l,u,p,_){for(;l.nodeType===1;){var w=p;if(l.nodeName.toLowerCase()!==u.toLowerCase()){if(!_&&(l.nodeName!=="INPUT"||l.type!=="hidden"))break}else if(_){if(!l[yn])switch(u){case"meta":if(!l.hasAttribute("itemprop"))break;return l;case"link":if(C=l.getAttribute("rel"),C==="stylesheet"&&l.hasAttribute("data-precedence"))break;if(C!==w.rel||l.getAttribute("href")!==(w.href==null||w.href===""?null:w.href)||l.getAttribute("crossorigin")!==(w.crossOrigin==null?null:w.crossOrigin)||l.getAttribute("title")!==(w.title==null?null:w.title))break;return l;case"style":if(l.hasAttribute("data-precedence"))break;return l;case"script":if(C=l.getAttribute("src"),(C!==(w.src==null?null:w.src)||l.getAttribute("type")!==(w.type==null?null:w.type)||l.getAttribute("crossorigin")!==(w.crossOrigin==null?null:w.crossOrigin))&&C&&l.hasAttribute("async")&&!l.hasAttribute("itemprop"))break;return l;default:return l}}else if(u==="input"&&l.type==="hidden"){var C=w.name==null?null:""+w.name;if(w.type==="hidden"&&l.getAttribute("name")===C)return l}else return l;if(l=da(l.nextSibling),l===null)break}return null}function DB(l,u,p){if(u==="")return null;for(;l.nodeType!==3;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!p||(l=da(l.nextSibling),l===null))return null;return l}function FT(l,u){for(;l.nodeType!==8;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!u||(l=da(l.nextSibling),l===null))return null;return l}function vx(l){return l.data==="$?"||l.data==="$~"}function xx(l){return l.data==="$!"||l.data==="$?"&&l.ownerDocument.readyState!=="loading"}function FB(l,u){var p=l.ownerDocument;if(l.data==="$~")l._reactRetry=u;else if(l.data!=="$?"||p.readyState!=="loading")u();else{var _=function(){u(),p.removeEventListener("DOMContentLoaded",_)};p.addEventListener("DOMContentLoaded",_),l._reactRetry=_}}function da(l){for(;l!=null;l=l.nextSibling){var u=l.nodeType;if(u===1||u===3)break;if(u===8){if(u=l.data,u==="$"||u==="$!"||u==="$?"||u==="$~"||u==="&"||u==="F!"||u==="F")break;if(u==="/$"||u==="/&")return null}}return l}var Sx=null;function IT(l){l=l.nextSibling;for(var u=0;l;){if(l.nodeType===8){var p=l.data;if(p==="/$"||p==="/&"){if(u===0)return da(l.nextSibling);u--}else p!=="$"&&p!=="$!"&&p!=="$?"&&p!=="$~"&&p!=="&"||u++}l=l.nextSibling}return null}function UT(l){l=l.previousSibling;for(var u=0;l;){if(l.nodeType===8){var p=l.data;if(p==="$"||p==="$!"||p==="$?"||p==="$~"||p==="&"){if(u===0)return l;u--}else p!=="/$"&&p!=="/&"||u++}l=l.previousSibling}return null}function BT(l,u,p){switch(u=wg(p),l){case"html":if(l=u.documentElement,!l)throw Error(i(452));return l;case"head":if(l=u.head,!l)throw Error(i(453));return l;case"body":if(l=u.body,!l)throw Error(i(454));return l;default:throw Error(i(451))}}function Bh(l){for(var u=l.attributes;u.length;)l.removeAttributeNode(u[0]);jn(l)}var ha=new Map,zT=new Set;function kg(l){return typeof l.getRootNode=="function"?l.getRootNode():l.nodeType===9?l:l.ownerDocument}var sr=V.d;V.d={f:IB,r:UB,D:BB,C:zB,L:qB,m:KB,X:VB,S:HB,M:WB};function IB(){var l=sr.f(),u=pg();return l||u}function UB(l){var u=It(l);u!==null&&u.tag===5&&u.type==="form"?sN(u):sr.r(l)}var Ou=typeof document>"u"?null:document;function qT(l,u,p){var _=Ou;if(_&&typeof u=="string"&&u){var w=Qt(u);w='link[rel="'+l+'"][href="'+w+'"]',typeof p=="string"&&(w+='[crossorigin="'+p+'"]'),zT.has(w)||(zT.add(w),l={rel:l,crossOrigin:p,href:u},_.querySelector(w)===null&&(u=_.createElement("link"),qi(u,"link",l),mn(u),_.head.appendChild(u)))}}function BB(l){sr.D(l),qT("dns-prefetch",l,null)}function zB(l,u){sr.C(l,u),qT("preconnect",l,u)}function qB(l,u,p){sr.L(l,u,p);var _=Ou;if(_&&l&&u){var w='link[rel="preload"][as="'+Qt(u)+'"]';u==="image"&&p&&p.imageSrcSet?(w+='[imagesrcset="'+Qt(p.imageSrcSet)+'"]',typeof p.imageSizes=="string"&&(w+='[imagesizes="'+Qt(p.imageSizes)+'"]')):w+='[href="'+Qt(l)+'"]';var C=w;switch(u){case"style":C=Pu(l);break;case"script":C=Eu(l)}ha.has(C)||(l=m({rel:"preload",href:u==="image"&&p&&p.imageSrcSet?void 0:l,as:u},p),ha.set(C,l),_.querySelector(w)!==null||u==="style"&&_.querySelector(zh(C))||u==="script"&&_.querySelector(qh(C))||(u=_.createElement("link"),qi(u,"link",l),mn(u),_.head.appendChild(u)))}}function KB(l,u){sr.m(l,u);var p=Ou;if(p&&l){var _=u&&typeof u.as=="string"?u.as:"script",w='link[rel="modulepreload"][as="'+Qt(_)+'"][href="'+Qt(l)+'"]',C=w;switch(_){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":C=Eu(l)}if(!ha.has(C)&&(l=m({rel:"modulepreload",href:l},u),ha.set(C,l),p.querySelector(w)===null)){switch(_){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(p.querySelector(qh(C)))return}_=p.createElement("link"),qi(_,"link",l),mn(_),p.head.appendChild(_)}}}function HB(l,u,p){sr.S(l,u,p);var _=Ou;if(_&&l){var w=Fi(_).hoistableStyles,C=Pu(l);u=u||"default";var j=w.get(C);if(!j){var W={loading:0,preload:null};if(j=_.querySelector(zh(C)))W.loading=5;else{l=m({rel:"stylesheet",href:l,"data-precedence":u},p),(p=ha.get(C))&&wx(l,p);var ae=j=_.createElement("link");mn(ae),qi(ae,"link",l),ae._p=new Promise(function(ve,Ne){ae.onload=ve,ae.onerror=Ne}),ae.addEventListener("load",function(){W.loading|=1}),ae.addEventListener("error",function(){W.loading|=2}),W.loading|=4,Cg(j,u,_)}j={type:"stylesheet",instance:j,count:1,state:W},w.set(C,j)}}}function VB(l,u){sr.X(l,u);var p=Ou;if(p&&l){var _=Fi(p).hoistableScripts,w=Eu(l),C=_.get(w);C||(C=p.querySelector(qh(w)),C||(l=m({src:l,async:!0},u),(u=ha.get(w))&&kx(l,u),C=p.createElement("script"),mn(C),qi(C,"link",l),p.head.appendChild(C)),C={type:"script",instance:C,count:1,state:null},_.set(w,C))}}function WB(l,u){sr.M(l,u);var p=Ou;if(p&&l){var _=Fi(p).hoistableScripts,w=Eu(l),C=_.get(w);C||(C=p.querySelector(qh(w)),C||(l=m({src:l,async:!0,type:"module"},u),(u=ha.get(w))&&kx(l,u),C=p.createElement("script"),mn(C),qi(C,"link",l),p.head.appendChild(C)),C={type:"script",instance:C,count:1,state:null},_.set(w,C))}}function KT(l,u,p,_){var w=(w=F.current)?kg(w):null;if(!w)throw Error(i(446));switch(l){case"meta":case"title":return null;case"style":return typeof p.precedence=="string"&&typeof p.href=="string"?(u=Pu(p.href),p=Fi(w).hoistableStyles,_=p.get(u),_||(_={type:"style",instance:null,count:0,state:null},p.set(u,_)),_):{type:"void",instance:null,count:0,state:null};case"link":if(p.rel==="stylesheet"&&typeof p.href=="string"&&typeof p.precedence=="string"){l=Pu(p.href);var C=Fi(w).hoistableStyles,j=C.get(l);if(j||(w=w.ownerDocument||w,j={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},C.set(l,j),(C=w.querySelector(zh(l)))&&!C._p&&(j.instance=C,j.state.loading=5),ha.has(l)||(p={rel:"preload",as:"style",href:p.href,crossOrigin:p.crossOrigin,integrity:p.integrity,media:p.media,hrefLang:p.hrefLang,referrerPolicy:p.referrerPolicy},ha.set(l,p),C||GB(w,l,p,j.state))),u&&_===null)throw Error(i(528,""));return j}if(u&&_!==null)throw Error(i(529,""));return null;case"script":return u=p.async,p=p.src,typeof p=="string"&&u&&typeof u!="function"&&typeof u!="symbol"?(u=Eu(p),p=Fi(w).hoistableScripts,_=p.get(u),_||(_={type:"script",instance:null,count:0,state:null},p.set(u,_)),_):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,l))}}function Pu(l){return'href="'+Qt(l)+'"'}function zh(l){return'link[rel="stylesheet"]['+l+"]"}function HT(l){return m({},l,{"data-precedence":l.precedence,precedence:null})}function GB(l,u,p,_){l.querySelector('link[rel="preload"][as="style"]['+u+"]")?_.loading=1:(u=l.createElement("link"),_.preload=u,u.addEventListener("load",function(){return _.loading|=1}),u.addEventListener("error",function(){return _.loading|=2}),qi(u,"link",p),mn(u),l.head.appendChild(u))}function Eu(l){return'[src="'+Qt(l)+'"]'}function qh(l){return"script[async]"+l}function VT(l,u,p){if(u.count++,u.instance===null)switch(u.type){case"style":var _=l.querySelector('style[data-href~="'+Qt(p.href)+'"]');if(_)return u.instance=_,mn(_),_;var w=m({},p,{"data-href":p.href,"data-precedence":p.precedence,href:null,precedence:null});return _=(l.ownerDocument||l).createElement("style"),mn(_),qi(_,"style",w),Cg(_,p.precedence,l),u.instance=_;case"stylesheet":w=Pu(p.href);var C=l.querySelector(zh(w));if(C)return u.state.loading|=4,u.instance=C,mn(C),C;_=HT(p),(w=ha.get(w))&&wx(_,w),C=(l.ownerDocument||l).createElement("link"),mn(C);var j=C;return j._p=new Promise(function(W,ae){j.onload=W,j.onerror=ae}),qi(C,"link",_),u.state.loading|=4,Cg(C,p.precedence,l),u.instance=C;case"script":return C=Eu(p.src),(w=l.querySelector(qh(C)))?(u.instance=w,mn(w),w):(_=p,(w=ha.get(C))&&(_=m({},p),kx(_,w)),l=l.ownerDocument||l,w=l.createElement("script"),mn(w),qi(w,"link",_),l.head.appendChild(w),u.instance=w);case"void":return null;default:throw Error(i(443,u.type))}else u.type==="stylesheet"&&(u.state.loading&4)===0&&(_=u.instance,u.state.loading|=4,Cg(_,p.precedence,l));return u.instance}function Cg(l,u,p){for(var _=p.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),w=_.length?_[_.length-1]:null,C=w,j=0;j<_.length;j++){var W=_[j];if(W.dataset.precedence===u)C=W;else if(C!==w)break}C?C.parentNode.insertBefore(l,C.nextSibling):(u=p.nodeType===9?p.head:p,u.insertBefore(l,u.firstChild))}function wx(l,u){l.crossOrigin==null&&(l.crossOrigin=u.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=u.referrerPolicy),l.title==null&&(l.title=u.title)}function kx(l,u){l.crossOrigin==null&&(l.crossOrigin=u.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=u.referrerPolicy),l.integrity==null&&(l.integrity=u.integrity)}var Ag=null;function WT(l,u,p){if(Ag===null){var _=new Map,w=Ag=new Map;w.set(p,_)}else w=Ag,_=w.get(p),_||(_=new Map,w.set(p,_));if(_.has(l))return _;for(_.set(l,null),p=p.getElementsByTagName(l),w=0;w<p.length;w++){var C=p[w];if(!(C[yn]||C[Ue]||l==="link"&&C.getAttribute("rel")==="stylesheet")&&C.namespaceURI!=="http://www.w3.org/2000/svg"){var j=C.getAttribute(u)||"";j=l+j;var W=_.get(j);W?W.push(C):_.set(j,[C])}}return _}function GT(l,u,p){l=l.ownerDocument||l,l.head.insertBefore(p,u==="title"?l.querySelector("head > title"):null)}function $B(l,u,p){if(p===1||u.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof u.precedence!="string"||typeof u.href!="string"||u.href==="")break;return!0;case"link":if(typeof u.rel!="string"||typeof u.href!="string"||u.href===""||u.onLoad||u.onError)break;switch(u.rel){case"stylesheet":return l=u.disabled,typeof u.precedence=="string"&&l==null;default:return!0}case"script":if(u.async&&typeof u.async!="function"&&typeof u.async!="symbol"&&!u.onLoad&&!u.onError&&u.src&&typeof u.src=="string")return!0}return!1}function $T(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function XB(l,u,p,_){if(p.type==="stylesheet"&&(typeof _.media!="string"||matchMedia(_.media).matches!==!1)&&(p.state.loading&4)===0){if(p.instance===null){var w=Pu(_.href),C=u.querySelector(zh(w));if(C){u=C._p,u!==null&&typeof u=="object"&&typeof u.then=="function"&&(l.count++,l=Ng.bind(l),u.then(l,l)),p.state.loading|=4,p.instance=C,mn(C);return}C=u.ownerDocument||u,_=HT(_),(w=ha.get(w))&&wx(_,w),C=C.createElement("link"),mn(C);var j=C;j._p=new Promise(function(W,ae){j.onload=W,j.onerror=ae}),qi(C,"link",_),p.instance=C}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(p,u),(u=p.state.preload)&&(p.state.loading&3)===0&&(l.count++,p=Ng.bind(l),u.addEventListener("load",p),u.addEventListener("error",p))}}var Cx=0;function QB(l,u){return l.stylesheets&&l.count===0&&Mg(l,l.stylesheets),0<l.count||0<l.imgCount?function(p){var _=setTimeout(function(){if(l.stylesheets&&Mg(l,l.stylesheets),l.unsuspend){var C=l.unsuspend;l.unsuspend=null,C()}},6e4+u);0<l.imgBytes&&Cx===0&&(Cx=62500*LB());var w=setTimeout(function(){if(l.waitingForImages=!1,l.count===0&&(l.stylesheets&&Mg(l,l.stylesheets),l.unsuspend)){var C=l.unsuspend;l.unsuspend=null,C()}},(l.imgBytes>Cx?50:800)+u);return l.unsuspend=p,function(){l.unsuspend=null,clearTimeout(_),clearTimeout(w)}}:null}function Ng(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Mg(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Tg=null;function Mg(l,u){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Tg=new Map,u.forEach(YB,l),Tg=null,Ng.call(l))}function YB(l,u){if(!(u.state.loading&4)){var p=Tg.get(l);if(p)var _=p.get(null);else{p=new Map,Tg.set(l,p);for(var w=l.querySelectorAll("link[data-precedence],style[data-precedence]"),C=0;C<w.length;C++){var j=w[C];(j.nodeName==="LINK"||j.getAttribute("media")!=="not all")&&(p.set(j.dataset.precedence,j),_=j)}_&&p.set(null,_)}w=u.instance,j=w.getAttribute("data-precedence"),C=p.get(j)||_,C===_&&p.set(null,w),p.set(j,w),this.count++,_=Ng.bind(this),w.addEventListener("load",_),w.addEventListener("error",_),C?C.parentNode.insertBefore(w,C.nextSibling):(l=l.nodeType===9?l.head:l,l.insertBefore(w,l.firstChild)),u.state.loading|=4}}var Kh={$$typeof:T,Provider:null,Consumer:null,_currentValue:K,_currentValue2:K,_threadCount:0};function JB(l,u,p,_,w,C,j,W,ae){this.tag=1,this.containerInfo=l,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=yt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yt(0),this.hiddenUpdates=yt(null),this.identifierPrefix=_,this.onUncaughtError=w,this.onCaughtError=C,this.onRecoverableError=j,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=ae,this.incompleteTransitions=new Map}function XT(l,u,p,_,w,C,j,W,ae,ve,Ne,Oe){return l=new JB(l,u,p,j,ae,ve,Ne,Oe,W),u=1,C===!0&&(u|=24),C=Ks(3,null,null,u),l.current=C,C.stateNode=l,u=sv(),u.refCount++,l.pooledCache=u,u.refCount++,C.memoizedState={element:_,isDehydrated:p,cache:u},lv(C),l}function QT(l){return l?(l=uu,l):uu}function YT(l,u,p,_,w,C){w=QT(w),_.context===null?_.context=w:_.pendingContext=w,_=Kr(u),_.payload={element:p},C=C===void 0?null:C,C!==null&&(_.callback=C),p=Hr(l,_,u),p!==null&&(Os(p,l,u),xh(p,l,u))}function JT(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var p=l.retryLane;l.retryLane=p!==0&&p<u?p:u}}function Ax(l,u){JT(l,u),(l=l.alternate)&&JT(l,u)}function ZT(l){if(l.tag===13||l.tag===31){var u=Kl(l,67108864);u!==null&&Os(u,l,67108864),Ax(l,67108864)}}function eM(l){if(l.tag===13||l.tag===31){var u=$s();u=ye(u);var p=Kl(l,u);p!==null&&Os(p,l,u),Ax(l,u)}}var Lg=!0;function ZB(l,u,p,_){var w=I.T;I.T=null;var C=V.p;try{V.p=2,Nx(l,u,p,_)}finally{V.p=C,I.T=w}}function e7(l,u,p,_){var w=I.T;I.T=null;var C=V.p;try{V.p=8,Nx(l,u,p,_)}finally{V.p=C,I.T=w}}function Nx(l,u,p,_){if(Lg){var w=Tx(_);if(w===null)fx(l,u,_,Og,p),nM(l,_);else if(n7(w,l,u,p,_))_.stopPropagation();else if(nM(l,_),u&4&&-1<t7.indexOf(l)){for(;w!==null;){var C=It(w);if(C!==null)switch(C.tag){case 3:if(C=C.stateNode,C.current.memoizedState.isDehydrated){var j=Di(C.pendingLanes);if(j!==0){var W=C;for(W.pendingLanes|=2,W.entangledLanes|=2;j;){var ae=1<<31-Ae(j);W.entanglements[1]|=ae,j&=~ae}so(C),(bn&6)===0&&(fg=Fe()+500,Fh(0))}}break;case 31:case 13:W=Kl(C,2),W!==null&&Os(W,C,2),pg(),Ax(C,2)}if(C=Tx(_),C===null&&fx(l,u,_,Og,p),C===w)break;w=C}w!==null&&_.stopPropagation()}else fx(l,u,_,null,p)}}function Tx(l){return l=Lb(l),Mx(l)}var Og=null;function Mx(l){if(Og=null,l=Kn(l),l!==null){var u=a(l);if(u===null)l=null;else{var p=u.tag;if(p===13){if(l=o(u),l!==null)return l;l=null}else if(p===31){if(l=r(u),l!==null)return l;l=null}else if(p===3){if(u.stateNode.current.memoizedState.isDehydrated)return u.tag===3?u.stateNode.containerInfo:null;l=null}else u!==l&&(l=null)}}return Og=l,null}function tM(l){switch(l){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(mt()){case je:return 2;case pt:return 8;case at:case Ee:return 32;case ut:return 268435456;default:return 32}default:return 32}}var Lx=!1,tl=null,nl=null,il=null,Hh=new Map,Vh=new Map,sl=[],t7="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function nM(l,u){switch(l){case"focusin":case"focusout":tl=null;break;case"dragenter":case"dragleave":nl=null;break;case"mouseover":case"mouseout":il=null;break;case"pointerover":case"pointerout":Hh.delete(u.pointerId);break;case"gotpointercapture":case"lostpointercapture":Vh.delete(u.pointerId)}}function Wh(l,u,p,_,w,C){return l===null||l.nativeEvent!==C?(l={blockedOn:u,domEventName:p,eventSystemFlags:_,nativeEvent:C,targetContainers:[w]},u!==null&&(u=It(u),u!==null&&ZT(u)),l):(l.eventSystemFlags|=_,u=l.targetContainers,w!==null&&u.indexOf(w)===-1&&u.push(w),l)}function n7(l,u,p,_,w){switch(u){case"focusin":return tl=Wh(tl,l,u,p,_,w),!0;case"dragenter":return nl=Wh(nl,l,u,p,_,w),!0;case"mouseover":return il=Wh(il,l,u,p,_,w),!0;case"pointerover":var C=w.pointerId;return Hh.set(C,Wh(Hh.get(C)||null,l,u,p,_,w)),!0;case"gotpointercapture":return C=w.pointerId,Vh.set(C,Wh(Vh.get(C)||null,l,u,p,_,w)),!0}return!1}function iM(l){var u=Kn(l.target);if(u!==null){var p=a(u);if(p!==null){if(u=p.tag,u===13){if(u=o(p),u!==null){l.blockedOn=u,Qe(l.priority,function(){eM(p)});return}}else if(u===31){if(u=r(p),u!==null){l.blockedOn=u,Qe(l.priority,function(){eM(p)});return}}else if(u===3&&p.stateNode.current.memoizedState.isDehydrated){l.blockedOn=p.tag===3?p.stateNode.containerInfo:null;return}}}l.blockedOn=null}function Pg(l){if(l.blockedOn!==null)return!1;for(var u=l.targetContainers;0<u.length;){var p=Tx(l.nativeEvent);if(p===null){p=l.nativeEvent;var _=new p.constructor(p.type,p);Mb=_,p.target.dispatchEvent(_),Mb=null}else return u=It(p),u!==null&&ZT(u),l.blockedOn=p,!1;u.shift()}return!0}function sM(l,u,p){Pg(l)&&p.delete(u)}function i7(){Lx=!1,tl!==null&&Pg(tl)&&(tl=null),nl!==null&&Pg(nl)&&(nl=null),il!==null&&Pg(il)&&(il=null),Hh.forEach(sM),Vh.forEach(sM)}function Eg(l,u){l.blockedOn===u&&(l.blockedOn=null,Lx||(Lx=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,i7)))}var jg=null;function aM(l){jg!==l&&(jg=l,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jg===l&&(jg=null);for(var u=0;u<l.length;u+=3){var p=l[u],_=l[u+1],w=l[u+2];if(typeof _!="function"){if(Mx(_||p)===null)continue;break}var C=It(p);C!==null&&(l.splice(u,3),u-=3,Tv(C,{pending:!0,data:w,method:p.method,action:_},_,w))}}))}function ju(l){function u(ae){return Eg(ae,l)}tl!==null&&Eg(tl,l),nl!==null&&Eg(nl,l),il!==null&&Eg(il,l),Hh.forEach(u),Vh.forEach(u);for(var p=0;p<sl.length;p++){var _=sl[p];_.blockedOn===l&&(_.blockedOn=null)}for(;0<sl.length&&(p=sl[0],p.blockedOn===null);)iM(p),p.blockedOn===null&&sl.shift();if(p=(l.ownerDocument||l).$$reactFormReplay,p!=null)for(_=0;_<p.length;_+=3){var w=p[_],C=p[_+1],j=w[qe]||null;if(typeof C=="function")j||aM(p);else if(j){var W=null;if(C&&C.hasAttribute("formAction")){if(w=C,j=C[qe]||null)W=j.formAction;else if(Mx(w)!==null)continue}else W=j.action;typeof W=="function"?p[_+1]=W:(p.splice(_,3),_-=3),aM(p)}}}function oM(){function l(C){C.canIntercept&&C.info==="react-transition"&&C.intercept({handler:function(){return new Promise(function(j){return w=j})},focusReset:"manual",scroll:"manual"})}function u(){w!==null&&(w(),w=null),_||setTimeout(p,20)}function p(){if(!_&&!navigation.transition){var C=navigation.currentEntry;C&&C.url!=null&&navigation.navigate(C.url,{state:C.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var _=!1,w=null;return navigation.addEventListener("navigate",l),navigation.addEventListener("navigatesuccess",u),navigation.addEventListener("navigateerror",u),setTimeout(p,100),function(){_=!0,navigation.removeEventListener("navigate",l),navigation.removeEventListener("navigatesuccess",u),navigation.removeEventListener("navigateerror",u),w!==null&&(w(),w=null)}}}function Ox(l){this._internalRoot=l}Rg.prototype.render=Ox.prototype.render=function(l){var u=this._internalRoot;if(u===null)throw Error(i(409));var p=u.current,_=$s();YT(p,_,l,u,null,null)},Rg.prototype.unmount=Ox.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var u=l.containerInfo;YT(l.current,2,null,l,null,null),pg(),u[it]=null}};function Rg(l){this._internalRoot=l}Rg.prototype.unstable_scheduleHydration=function(l){if(l){var u=De();l={blockedOn:null,target:l,priority:u};for(var p=0;p<sl.length&&u!==0&&u<sl[p].priority;p++);sl.splice(p,0,l),p===0&&iM(l)}};var rM=e.version;if(rM!=="19.2.1")throw Error(i(527,rM,"19.2.1"));V.findDOMNode=function(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(i(188)):(l=Object.keys(l).join(","),Error(i(268,l)));return l=d(u),l=l!==null?f(l):null,l=l===null?null:l.stateNode,l};var s7={bundleType:0,version:"19.2.1",rendererPackageName:"react-dom",currentDispatcherRef:I,reconcilerVersion:"19.2.1"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Dg=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Dg.isDisabled&&Dg.supportsFiber)try{le=Dg.inject(s7),ge=Dg}catch{}}return $h.createRoot=function(l,u){if(!s(l))throw Error(i(299));var p=!1,_="",w=mN,C=pN,j=gN;return u!=null&&(u.unstable_strictMode===!0&&(p=!0),u.identifierPrefix!==void 0&&(_=u.identifierPrefix),u.onUncaughtError!==void 0&&(w=u.onUncaughtError),u.onCaughtError!==void 0&&(C=u.onCaughtError),u.onRecoverableError!==void 0&&(j=u.onRecoverableError)),u=XT(l,1,!1,null,null,p,_,null,w,C,j,oM),l[it]=u.current,hx(l),new Ox(u)},$h.hydrateRoot=function(l,u,p){if(!s(l))throw Error(i(299));var _=!1,w="",C=mN,j=pN,W=gN,ae=null;return p!=null&&(p.unstable_strictMode===!0&&(_=!0),p.identifierPrefix!==void 0&&(w=p.identifierPrefix),p.onUncaughtError!==void 0&&(C=p.onUncaughtError),p.onCaughtError!==void 0&&(j=p.onCaughtError),p.onRecoverableError!==void 0&&(W=p.onRecoverableError),p.formState!==void 0&&(ae=p.formState)),u=XT(l,1,!0,u,p??null,_,w,ae,C,j,W,oM),u.context=QT(null),p=u.current,_=$s(),_=ye(_),w=Kr(_),w.callback=null,Hr(p,w,_),p=_,u.current.lanes=p,ti(u,p),so(u),l[it]=u.current,hx(l),new Rg(u)},$h.version="19.2.1",$h}var _M;function _7(){if(_M)return jx.exports;_M=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),jx.exports=g7(),jx.exports}var y7=_7();const wd="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAKlAzkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7TwaULilor+Sas3U0R9NGHKFB6GjNJniroYdvUUpDDSUpNJXt06XKjDmCiiiifYQq9adTV606sGWFFITimlqhRuNOw7NBPFR76TfW8aLJcxWNRGlLU0mtVTsc7dxvrQBmkp/Sly2GmFPHFIBijOKnlLQ4GlyKj3UA1PIUOoUUDmnAYo2JHL0pabnFGTUcppcdRTcmjJqeULjqKbk0ZNLlC46im5NGTS5QuJRRRRYLjxzRSKaWosMcvelpo4p1TYaClU4FJRUWKHUUm6lyKLAFFAOaKiw0woooqbDCiiiosO4UUUVm4juFFFFZcowooopNFhRRRWTQBRRRWdi1oFFFFZtFIKKKK55ItBQehoormaKRGaSnEcU2uSSNkNPWkp+OKZXJKJaYUUUVyyRomFFFFccolhRRRWLiMKKKK53EoKKKKycSwooornaKCiiis+UsKKKKzaHcKKKKyaGFFFFZ2GFFFFUAUUUUAFFFFSUFFFFIAooooAKKKKACiiigAooooAnzSFqaWphav6Po4a7Pip1R5am7qYWpK9qFFQRzc9x+TRk0g5FFDRKlqLk0ZNJRXLKFzoix9GcUzIppfFSqTYnKxIW61Ez9aYZOtRNJXXToGMqhIXpN9QlqFNdippIw57k+6gc0xTUi9DWMolxYAYpaTNITWHKUmPzikzUe6lHNTyWLTHdaUUAU8L6VDKuC06m4xRk1lyiuOooop8pVwooopcoXCiiilyhcKKKKXKFwooorPlLuL0pwOaZSg4qeUaY6lBxTQc0tRyjuOHNLTKAcVPKVcfRSZFGRU8ori0ZNIDmlqeUdxQeOaXIptFTyjTHUU2jOKnlKuOooopcorhRRRWTiNMKKKKycTVMKKKKxcSgoooqeULhRRRUOJSYUUUVzyiWmFFFFc7gVcbSEUtFc8oGiYyjFOxSba5JUy0xm2jBp1Fc0qZomNxRg06iuSVM0TGUUUVzygWmFFFFczgWmFFFFYuJSYUUUVzOJdwooorLlC4UUUVm4lJhRRRWLiUmFFFFZWHcKKKKmwXCiiipsUFFFFSNBRRRSGFFFFABRRRQAUUUUAFFFFACFqZupu6kzX9ZU4WPzfmuOpw5FMU8U4HFOaHcdRRRXPYpaC7qTfSHpUZbrVxpNj9pZDi3FRPJimtJgGoHk613U8Oc0qo9paZvzUJanJzXT7JRRnz3Jl709RTYxUqjiuaehrFijinZFMzSZrlauaXH7qSm5NKORUuNhpi09RTVFPAxWTNEx6in0wdKXPvWfIO4ppKTdTaXKK5KvSim0U+Udx1FNopcoXHUU2ip5QuOoptFLlGmGacDTaKnlLUh1FNBxTsip5SuYKUGkoqOUdx2RRkU2ip5R3H0U3Jpcio5R3FoBxSZFLU8o0xcmlyKbRUco7jsil60yip5R3H0UUVFhjqKKKysWFFFFJodwooorFo0Ciiip5RXCiiio5SkwooorFxLTCiiisHAq4m2jbS0Vk4DTG4NFOoxXNKmWmNpu2n7aSueVM0TGYop2KTFcsqZomN20m2nUVxSpmqkNxRinUVyygUpDKKdtFJtrnlAtSEopcUYrlcCriUUUVlyBcKKKKxcCkwooorBxNEwooorFxLuFFFFRyjCiiio5RrQKKKKixQUUUVFgCiiipKCiiigAooooAKKKKAKYbNPU5qFakQ1/YLikfl0WSdKN1JRmuaSudCaHb6TzaYXwKheTGadOlzMznUsVPE+kt4i0S605NSv9HeddovtLlWO4h90LKy5+qmrJk61C1xjPNRGbrXqU6FjjnWJjL15phbNQhsmnoc12ciSMFK48DNSxrTYxUy965ZnVEegwDS5xSA4FJXFKNzROwu6kzSUqis+QpO44c09RSKMCnqOK5mrmqHKKWgdKKXIaJhSZpe1Mpco7jt1ANNoqeUm4/NGabmjNHKO47NGabmjNLlC47NGabmjNLlC47NGabmlU1PKFySikU8UtZ2LuFFFFRYdwyaUNSUVNirjgc0Dmm0oJFRYaYtFFFRylphSg4pKKixVxwal60yiosMfRSKc5pahodx9FFJWdihLm5hs7d555Y4Il6vI2AKo2fiXS7+WOK3voZXk+4Ff7309a+Hv2gPjTq/in433Gh2Vw0Wg6FKsEcEf3Zbgf6yQ+vzfL+FfTfw912LXfDEFvd4kSRBkEV9nh+G1Okqk52b8jRI9YornfAOsSahpd7a3JaS70+4a3eVvvSJ8rRsf+AsP+Bbq6KvjcRQnh6sqU90MKKMijIrjsUFFFFKwkwooopWKQUUUVk0WgooorBooKKKKhxEmFFKtKR1rBxLTG0hHFLRWDiaJjaKKK5ZRNExu2jbTqK5JQLTGkYpKfSYrllAtMbRRRXNKBSYUUUVyygVcZRRRWLgWncKKKKwlEtMKKKK55RNEFFFFYOJoFFFFYuJS1Ciiis2hhRRRWTQ0FFFFZtDCiiisiwooopAFFFFABRRRQBQFPU1FupQ2K/sdxPypMlzTS/WozJUTy4zUxpNslzsPeSoHl61FJN1qu02c161HD2OOdYkdutR5NN35p6DOa7XBROVvmY+OpkFMRakUda4qj7HTBWJUp6nFRr0pwOa5OVs61Ik3ZoXrTBUi9aynoUh6jrTlFIgqRRXK9TpihQMCim5NGTWfKXcdRTcmjJo5SbjqKbk0ZNLlFcdRTcmjJp8orjqKTdRuqLFC0UAiipsNMKKKKmxQUUUVFh3FBxTgc0yis+UY+gcUgb1pRzU8o0PopgOKUNUcpQ8GlyKZkUZqbALRTKcDmlY0uOXvS02l3Vk0O4tFNyaMms+Uu48HGaXdTFOc0tS4hcfWD468V23g3wlrOtXLAR2FrJcEHuVU4H4nArezgV8l/t1/Eg6V4PsPCVrLi51ubzLgKeRbxtkA/7z7f++TXbgMN9ZxEaXcuLPlrwjczar4gutUuT5lzeXDTyv6szbmNfXXwl8SjyI4S33cACvlTwJp5SNWxyAPzNelfD/xcbDxK9qzEKpFfrs49DpgfYPhW6Gn+OzHnEGrWWB6edD83/jylv+/deidjXj8V49zodvqVr891p7pdxqP4wv3k/wCBKWX/AIFXrVleRahZw3UDb4ZoxIjeoIyK/L+IcM6eI9r0kJjiaN1B6mkr5W2hI4HNLTKcDmosVccvelptKGosFxaKMijIrJxKTCiiis+Uu42ijBpdtRygKtFA4orNxLQUUUVzSiWmFFFFcziUhuKKdSbaxlAsSijFFcsoFpjSKSn03bXNKBSYlFLikrllAtDKKfik2iuaUTVDaKdtFG2uaUS0NopcGjFYOBaYlFFFcziUmFFFFZOJqgooorFxAKKKcoqeUYtFFFYuADKKdijFcjiUNop2KMVnYobRTsUYoWgxtFOxRimVcyd1NL0wvULy9a/tKEOY/I3OxI0uKrSTdeajkm61WeXOea9Slh+pw1KxI8uc1FuzTM5qSNa9BRUUcHM2yWMVYjFRxpU6CuKqztpIkUdafSL0pa4bXOkAcU4c00DNPUVnJWLiPUVIi0iLUgGK45e8dcRyjilBxTQcCjdWPLY2vYM0bqSijlI5hd1G6koo5Q5hd1G6kopcori7qN1JRRYVxd1LuFM3UoOaysXcdSjimdKcDU8o7jgaWm0oOKixVxaKAc0VPKO4UUUVFirhRRRU2HcUHFLuptFRYdx2RS5plFTYq4+imjinCoaKuOBzS0zpTgazcR3FooorPlLTCjNFFKwXK9/crbwO7uEjUZZj2FfmV8UPGMnxi+Kmra4rtJpqt9msQegt0yFP/AuW/wCB19X/ALYfxRPhHwO3h6zmxq2v7rZQDzHB/wAtm/8AZf8AgX+zXyT4K0xYYlO3Axj8K+54fwTpQeKnu9F/mdNONzqdLsU0uyLsMAc15qvjH+zvG15KkpCrIoxXa+OfEsWjaRcys2FiQsfrXzFo2sahca/N/aEUkUtx/pUOfl/dn7tfZU4c92a1Jcuh+nHwT8bpq2nRRM4YFRxntXuPgO7W0F3oxPFs3m2+e8Emdv5NuX8q+Dv2evGhsb2KFn+8QMGvszTtUYQWutW4Ly2QJZF6yQH/AFifX+L/AHhXzub4L63h5RXxLVFvVXPUaKZFOk0ayRuskTgMjqchhTuxr8k5TLmG0UnOaWosTccDmlpnSnilYLhRRRUtFpiqaWm0qmsrFpi0UUVNirhRRRUNFJhRRRXPKJaYUUUVzuJSYUUUVlKJaYUm2lormlEpMbiinUYFc8oFpjaTFO20ba5ZQKTGbaMU6iuaUDVMZRT6btrmlAtMSkxS0VhKBaY0jFJT6TaK5nApMbRT8UYFYSiapjKUDNOxRXM4juIBS0UUlELhRRRUuOg0FFFFcMoGiYUUUVg4jCiiisrDuFFFFSM5lpcA1VlmxmmPNwaqSS5zX94UMNrqfhlXED3mzmmhsmoMkmpolzXreyUUcMajkyeNc1ZjWoolqxGMVwVGdkESoKkHFRpT689q7OuLsiQHFOHNRr0qWMVnJcqNYu45VqRVpUFOrik+Y7IoBxTt1NJpu6s+WxXNYfuoyaZk0oNLkuHOOyaMmkzRmp5RcwuTRk0maM0uUfMLk0ZNJmjNTyhcXJoyaTNGamw7hRRmiosXcUHFOplKDipsO48HFKDmmA0tRYdx9FMzS7qnlHcfmlzTM0tZWNLjqKbQDiosO46ikDetLU2GmFFFFRYdwoooqbFBSg0lFKwD6KKKz5TVDs1Q1rV7XRNNur68nW3tbaNpZZHOAqqCSatZ96+Rf20fi6WVPh9pk376bbNqrIekfWOH/gXDN/s7fWuzB4SWLqKETRK54T8RPHVx8XviPqPiGcv9iJ+y2MTZ/d26khf+BN95vdq07OFNNsckYIGcVj+GNJSNVbbiOMAKKi8a68LC1kEZzIw2Rr71+nxhGnBU47I9KnHlic1JpF38WfiDYeGLcMbBJPtGoyqfuxryR+Vd5+0l8G4p/DNt4g0m38u/0cCMIg+/bD+H/gP3v++q9r/Zo+B3/CJ+DG1jUY86vrH76QsPmSLqq/j1/D3r0LXfDyPC6MgKkYxjg181ic09nil7N6R/HuclSXNI/Pz4d+KGtLmCZG2sCMjPf0r7y+DHj+PVdPiUsG3DoT145H4ivgf4t+CJvhZ4/vLVFZdLnfzrZu20np+GMV6Z8E/iU+lXkUbykRsR36e9fUNxrQVWGzNKcrrlZ+i3gy9+yzT6M75SIefaMe8X8Sf8BP8A46611VeQeGdd/tvS7a9tJFW8tyJ4GJ43D+FvZlyv/Aq9O0bVotYsI7mE4DcMh6o3dW9xX5hnOAdCq6q2ZM/dL9FFFfM2RkmFFFFTYtD6KZRUNGiY+imUVk0O5LkUZptFRYdx1FNBxS7qlopMWigHNFYSiWmFFFFYOJaYUUUVk0WmFFFFc7RSYUUUVg4lphRRRXO4lJhSbaWisJQNExuKKdSba5pQKTG4pNtOxRWEoFpjMUU+iuaUC0xlFO20m2uWUDRMSijFFcrgUmFFFFTylXCiiipaKTCiiiuaUC7hRRRXNKIwooorncR3Ciiio5R3PPzLmoic1GDmpIxmv9CvZqJ/Ork5DkTJq1CmKZElWY1rkqTtodlGBIgwDUg6U0DFOHSvOlqd2xIvepV5qJBUyDrXM9DaGo5VqVBimqOKeveuSbudMVYepp26o80VzpG6dkOJptFFNohsVT2p1Mpc0JCTFzRmmZFGRRyl3H5ozTMilqOUaY7NGabRUcpSY7NFNoqHEdySlFNpVrKxVxaKKKmw0wpRxSUVFihcmjdSUVNhofmgUyis7GiJAcUBvWmqaWpsUmPopoOKdUWGKGpcim0VLQ0OooorPlNAoooo5RhRRVXVNUs9F065v7+5is7K2jMs08zBUjUdSSaXKWjiPjZ8U7T4U+CrrV5Qst6/7ixtyf8AXTtwox/dH3m9FU1+fdtb3fiHVrrVdRne71C7kM088p3MzEknJ+tdb8XfijdfGfx1JqaF00W0Jg06BsjCZ5kI/vN/8Sv8NZ9sgt1wBg/Sv0DLcCsJTu/iZ6FGnpdhqF7HpVkwyEVV5Pp/9etH9nj4YP8AF3x3Dq2oxs2i6cwfkcSc9P8AgR/8dFcha6Ze/ETxVbaHp6s4eQCVlHAXP3fq1foL8LPhzY/D3wpaaVaRqGRQ00gGC796yzPGLDU+VfEy6k+XRG8tisUaogwg6Vj6xpgeNvlyD1FdbsHpVS7tQykYr88uciZ8r/tBfCVPHnha4SKIHUbUGS3YDk/3o/8AgX/oSiviHQr248P6s9pNlJYXxzx3r9Utf0gfOduR3FfDn7UvwefSdVHibTotsEzfvlVcBX53D/db7y/7X+9X2+RY5NPDzfoNPld0eu/s+fFFdkNrPJnAxgnqvpX05oevJpt2l7vH9m3W1Zj2R/urJ+P3W/4Cf4a/Lv4c+OZdGvoZRIQVI5r7r+EHxAj8Q6UkEzLIrrt2E9Ceo/Gvcx2EjiKTpT2Z2aVYn0xTsiuT8L6wYV/s24fOF3Wrn+NB/wAs/wDeX/0H/daumUnNfkeJws8LUdKe6OZxsSUUDkUVy2AfRTcmjJrNodx1FNyaVTmsmguSUUg5FLU8paYUUUVLiWgoyaKKycSkLuo3UlFYuJQ6iiiueUTRMKKKK53EpBRRRWTiWgooorncSgoooqHEtBRRRXNKJSCjFFFYOBaDApNtLRXNKBaG0UUVyygaJhSEUtFczgUhlFKetJWLiWmFFFFYNFphRRRWTiXcKKKK5pIYUUUVg4jQUUUVHKM81XqasRDNQoOatQrX+g1R6H87U0TxLVhKijHFSDivInqepDREi96etRrUqCuZ6Gy1JEFSoMUxBUgGBXJPU6oaDx0opuTRk1z8ptcdRTcmjJpcouYdRTcmjJpcpNx1LmmZNGTS5RXF3UbqSilymlxd1KORTaVTU2GmLRRRUWKuFKvekoqLDuSr0optFZcpdx2aKbRU8pSY+lU0wHFKDmo5S0x9FNBxS7qnlKTFopN1KDmo5RqQo4NLkU2ip5B8w/IoplFQ4jUh9Lk1HTl71HKVzElFIDxRkUrGiYtFJmlpWGmFfF/7V3xvfxTrE3grQrgtpVq4GozxH5biZT/qQe6r/F/tf7telftS/Hg+DtLbwroFxjxHfx/vp0OTZQHgt/10b+H0+9/dz8h6VpyxLnGW7k19LlWXp/7RVXov1/yPQoU7+8y3p0H2eHmqWr6u4kitLXL3Ny/lxheTmjWtVjsLd8tgAdv89a9U/Zf+Cr+KNYPiXXExGq/JE3ZTysX/AAL7zf8AAVr6OtVjRg5y2R1ynyI9k/ZZ+CyeENETWr+LdqN0NyFhyN33pP8AgX8P+z/vV9ExwCNcYAqlp9uQc1pV+ZYmvPEVXOR57nzO5F5dMkiytWKCMiuOw0zm9Vst6txXmfjfwla67pl5p95CJbW4QoykdPp7jrXss8W6uY1vSwwbjINaUpypyU47ou5+Wvxd+Gt78M/Fs3moxs3bcZAOCjH5ZP8A4r/aruvg38SZdE1CNZZTgYHXqK+qfi98LrXx7oM1nKireRgm3mYdD/dP+yehr4Gv9LvfAHiKWxuVeNQ58ot9/wCU/Mrf7S1+mYDGxxtGz+JGlOXKz9MvBfie38TaVGRLh8BldT8ysOjD3Feo6Dqn9o2zJL8t9FhZYh3/ALrL/sn/AOtX5/8AwP8Ais2nXEMEk37skbTnpX2N4b14arbQXdo6/aox8uTw4P3kP+y1eZmmX/Wafu/EtjonG6uj0+nVQ0rU4tVs1niOP4Xjb70bd1I7GrtfmsqcoPlZzDqKKKmxQUUUVjYY+im5pQaiwC0UUVm0UgHFPplOBrJotC0UUVlYocOaKaDinA5rJxNAooorncSkKcUlFFYuJaCiiiudxKCiiis3EsKKKKwcS0FFFFZuJSCiiiueUSxtFFFcsoloKKKK5nEtBRRRWEolJhRRRXM4al3CkIpaKznDQpMZRSkYpK4uUtBRRSgZqXAdxVHWlo6UVnyCuecIlWYlpirU0YxX95zdz8BpqxKvanjmmL2qVBXDI7ojkFTxrUaLU6DFck2dMR6ilptJmublNLi5ozTcmjJpWDmHZozTcmjJpcoXHZozTcmjJpWFcdmjNNyaMmlyhckyKWmUVNjRMfRTQaXIqLDuOB4pabRU2KuOopuTShqiw7jsmikyKTNZ2NExaXpTd1ANTYpMeG9aXrTKUcVHKUmPBxS5FN60VNirjgc0tNXrTqmw7iqaWm0oPrUco72FoooqHEaYUUUVHKPmFBxRupKKOU0UhcmvMPjv8ZrP4U+Ht6MlzrN2pSwsm67v+erf7K/+PfdrY+K3xY0f4UeG59S1OQNOw22toD+8uH7Ko9P7zfw18Faz4p1Tx74lude1m5a4vJznk/Ki/wAKKP4VFepgcCqz557Hbh6PtXd7FWWe917VLrU9Sne7v7uQyzzv1dj/AE9BU15cpp9ueRux1PanT3EVuDWZ4f8AD+ofFDxBFpNp5n2XevnSR/x/7A/2v5CvsFZLTY9nRI2/hD8N734p+KIZWjP9nRPuUsPlO0/PKf8AZX0/ibAr7+8H+GLXw5pVvZ2sWyKJcKD1Pqx9z1rA+FXw3s/AegQ2kUaeeVXz3QcE9kX/AGV7V6FHGEHHWvhsyxzxMuSHwr8TyK1XmloSxjaKmXvUSjrUq968GxkmLRRRUWNUxjrkGqF3AJUYYrSqCROtSO5w2s6XuDYXkV8wftIfBmLxdpM+qWcRW+hG6Xyx8xVRxKP9pf8Ax4fSvsS/tA6k4rjNe0USK7BR7jHWu/CYmWFqKcTRM/LTSNTvPDGqNaXWY5Yz1HRh6j2r6r+B/wAYihitbibjgAk1yX7SXwIMDP4h0iLYmSzoo+WFj3P+w3/jrV4d4N8RS6ZeKrExujYKnqCO1fpFKrDF0lUgdlKfRn6m6HrwAW/tf3jkAXNqv/LVfVfdf4fUfL/u99Z3Ud3AksTh43GVYd6+Qvgn8V4r+3itJ5R5ygBCT19q+jtC1wWI+1wnfaS8zxDt/wBNE/8AZl/i/wB773y2a5X7VOpSXvfn/wAEqcL6o7anVFHKk0aSxussTjcjocginZr4M5Lj6KbRWVirjqKKKnlKuKDinA5plKDis3EaY6ikBpaycS0xQcUbqSis+Uq4+gHFIDmlrNo0THDmimg4p1YOJSYUUUVk4lphRRRXO4lJhRRRWTiaJhRRRWDiUmFFFFZuJaYUUUVg4lXG4oxTqK5pRLTG4oxTqK5ZRKTG4oxTqKxcS0xuKMU6isHAq42il20mMVnOGhaYU3bTqK4nAtMbtp1FFTyjuFFAGaXbU+zFc4EDNPQU1RUqCv7iZ+E2HoKmRaYgqVelcNQ6KY9elPDVGDijdXNa50XsSbvejIqPdS5FPlJUh+RRkUzIoyKysXzD8ijIpmRRkUuULj8ijIpmRRkUrDuPyKMimZFGRS5R3JMmjJpmTS7qzsXcfupcio91KDmpsVcf0pc0wHFGaiw7km6jIpm6gGpsO5JRSbqTdWdguOopu6gNU8pSY4HFOpmc0oOKmxSY8HFKCKaDRU2LTH0Um6jdU2LuLSg4pu6gHNKwXJKKQGjIrOxQtFFFTYsdXLfEn4jaR8MPC9xreryYiT5YoU/1k8h6Ig7k0/4gfEPSfhx4duNa1q4EdrEMLGP9ZPJ2SNe5r4B+JvxO1f4ueKn1PVHMcCEi1slO5IE/9mY/xNXZhsHLESu9jrw9B1XfoVfHHjjWfin4mm1jWJixY4gth9y2i7RqP5t/FVCSeOzj2IAD7VC8iWkW1OXx1rmby7u9a1GPT9PHm3Un/fKL3Zvavq4QjTjyrZH0EYqCstjWtVv/ABhqsel2AJaU/vJwMiJO5+v90V9wfAX4NW3gXRIJ5oQt46cBh80at13f7TdWrkf2bfgRB4SsYdSvoQ9w2HiDjkv/AH2/9lX+GvpK2gxmvnswxntL0obHl4jE/YgWbeIKvSp1FIowMUoOK+ZscCJFHFKOKaDindazcTRMcOaKQHFLWbiO4UhXIpaKzcSlIqyx5BFY9/ZBg3HFdAy5FVJoQwIIoSLUjzDxL4diuYJo5IhJBICroRkYNfEHx++BM/g/UpNW0aJmsnbKhR/5Db/a/ut/F92v0T1CxDBgRmuC8UeF7fUrOe2uYVmtpQVZGGa9rL8bLCT8mbQmfnV4J8azaXcxukjIynkdCDX2p8GPi5DrVpHb3EoL4AIJ/Wvkz48fB3UPh/r0uo6dE09lKdw2jh0/+OL/AOPda53wF8QLjR7qKWKUrg+tfepwr0+eGzO+nU6M/UrRdaj0rkEy6dIcyqOfszf3h/s/3h/D97+9XZbq+Xvg/wDF+DxDaxRSygXAABBP3q9w0HXl09FR3zp54Vz/AMu/sf8AY/8AQf8Ad+78VmuWc169Fa9V+pNSnfVHZ0UDpRXxljjH5pd1JRRyl3HA5opvSlBqHEpMWlBxSUVi4lpjs0tMpc1nylJjqVTSUVi4mlx9KppoOaWsHEpMdRQvSiocS0wooorBxKTCiiisHEu4UUUVi4lJhRRRWTiWmFFFFYOJaYUUUVhKJaYUUUVySiUmFFFFZcpaYUUUVm4FJhRRRWMolJibaTFOoxXFOJaY3FKFpcUVmkVcKKKK05BXODUVNGKaq1IgxX9pNn4bHUevenZxTOlFczVzoWg7OaKaOKdWfLYd7ig4pd1NpN1TYVx+6jdTaKnlDmHbqN1NopcpSY7dRuptFTYdx26jdTaKXKVckyaN1JRWdi+YcDmlplKDipsNMcDilDUlFRYq44EUU2ipsO5LkUm4U3IoyKjlC47dRmm5FGRS5S0x9KDimdKcORUcpSY4HNLTKVT61Fi0SUUgPrS5FZ2LuFFFFKw0xc0bqSlFRYsdXP8Aj7x7pHw58OXGtazcLDbR/KkYP72dz0jjX+Jj6VS+I3xN0b4ZeHrjVtWnEcSjbDAD+8nk7Ko718C/ET4m638WPEb6rqzmOFCVtLJT+6t4/wD2Zv7zV14bCOu9VoduHous7Im+JvxR1r4v+JW1PVGNvZRErZacjZS2T+rnu3+TzymOBagLrCuBgmsa5u57q6jtbWJp7iVtqIv8zX08aapx5Yn0cYKC5US3t1caperp+nqZbmTg46KPU+gr6p/Z0/Z4j0e2j1rVIRczvtlAkUDzmH3Xdf7q9lH+9Vf9nb9ndLCGLW9ahLvPsdVccuf4Sf8AY9v4vvV9T2VokMYRFAAGOBwK8XHYrlTpw3PKxWK+xATTbBLaJY0UKqgAAVrRJsFMgi2ipq+aszy0OooopWNLj6UHFIDmis3Edx4opq96dWTQXHA5opo4p1LkLQUx0yKfRWbjY0joZ9xBvU1g6jYB1Yba6mRM5qhdW4dScVJseM+PvBVpr+mXFldwiWCUenKnsRXwN8X/AIRan8MtbmnhjZrKVjKhUcSD++v+1/eX/gVfp9qmmiWNgRXlvj3wDZeJ9Ln07UYBLA4O1scoezA9jXuZdj5YWXLL4WbQl0Pg74e/EKfSLmKWKUrtIyM9K+3fhH8W7fxFZxwzSr52ACCfvV8V/Fr4O6n8M9ckkjRns2O5JFHysP7y/wC1/eWpPhv4/m0W8iIkKgEcZ6V9naNaPPTZ2wn0Z+nuga+umokMz7tNPCSE/wDHv/sn/Y9/4f8Ad+72NfM3wq+KsGu2kcUsqmTAGCfvV7LoeutpChctPph6KOWt/cf9M/8AZ/hr5HMsq3rUF6oJ076o7eimhs06vjrHFsFFFFZtFIUGlptOHIrFotBRRRWdihQadTKcvSs3E0THLTqZTsisXEpCg4p1NpVPFQ4lpi0UUVi4lBRRRWDiWmFFFFc7iUgooorNxLQUUUVi4lBRT8UYrGUTRMZRT8UYrjlEpDKKfijFZ8paGUU/FGKlxKDFNIp1GK5HEpDKKKK4pxNEwooorKMR3FUZp2KAMUV0JEnEAD1pcim5ozX9iWZ+JJjs0ZpuaM1PKPmHZozTc0Zpco0x2aM03NGaXKO4+imUVPKO4+imUuTU2HcdSg0zNG6o5Rpj91LkVHupd1TyjuPopuaAcVFg5h1KDim7qXIqeUpMfmimUuTUWKTHUU3dS7qnlLuO3UbqSipsVcXdRupKKVh3HinKeKjU04HFRylKQ/NLupgNLUcpSkO3UbqbRS5EPmJQ1O3VEvSng1DiXF3H1wPxa+MGjfCPQ3v9UlEk8gItLBT+9uG9vRf7zfw1R+NPxy0n4S6O5mdbzWrhSLXT1b5j/tSf3V/ytfCPizxZq/j7xBc61rV813dSHgfdVF/hVF/hArrw+E9o+aWx6uFwzravYf47+ImvfE3X5NV1qYs+T5NsDiO3j/uqv9f4qwWuDbqfWmSTpCCF61zGoahLPPHFDF5ssn3I/wC//wDY19DCMacbRPpacYUo8sS9davPc3C21oplnkOFUV9Vfs2/s7rZRxa94ii8yWbDJE4/1n93jsv+z/F3qr+zb+zOukRReIPEsPmajNh4oHHK91JX+7/s/wDfVfW1jp62qrwN2McdB9K8fF4xK9OnueLjMb9imWrSzCqAAFUDGB2q9HEEFEK7Up9fPtXPHTuSr90UtIv3RRmosaJj6KKKzsO4U+ql/qNrpdnNeXtzHaWkK75biZsJGvck14jr/wC0jDqNxLbeGiIrQZU6pcJzJ7wxNz/wJv8Avk1pSoSquyOmlSlVdke26nq9no8Pm3t1DaxngNK+3P0rEPjmHJ+yWlxOP+eko8pf/Hvm/wDHa+eZviN5c5uC73N4etzcSGWX8CeF/wB0Vx3iD44xaeD++82vWp5bH7Z6cMFb4mfWb+M7nkNPpsH+88r/APxNSjxFct01Ow/8Bn/+OV8G3n7S8sBbysD8ay5P2otU/havRjgKKWx1Rw9NI/QlNZ1Aji+06X/tnJH/AOzNVuPV74A+bpwlX1tbhW/Rtpr4C0X9rbUYCBMc475r0jwr+2DZSyBLo7T3OaynllGWyJeGh0Prq11u1nk8rzjDMf8Aljcq0TH/AHd33v8AgNXq8o8K/GPQPF9qqGeGZWHKS4Nd1Z2g2BtEvfIXtYzlntz/ALo+9H/wE7f9lq8erlEo602YvDNbGpcWiyqSBzXP6no6yqwK1s2uvLd3H2C6ibTdSxn7NIeHX1jb7rr/AOPf3lWrE8PmKQfvCvDqUp0pcs1Yws46M8X8a+B7LxBps+n6jbie2kHccqexB7H3r4V+MHwe1H4X6w88CNJp7sSkijgj/wBlb+8v/fNfpjqumiVG45rzPxv4Js9d064sb6BZbWQENuHT3Hoa9fAY6WHdnsaRl0Z8J/D/AOI0+kXMbLKVwRkZ6V9gfCr40QapDFDcTANwMk18g/GD4Pat8N9Ye8s0a60+RsxyqOHHp7Sf7P8AF2rE8F+PpNOlSSGXawPK5619qnGtHngdtKpbRn6l6D4h+xIpiJntD1hHJT3j/wDif++ffurWZLq3jmidZIpF3I6nIIr41+EPxpivYYoLiTI4HJ5FfRPhrxP5YFzaN50EnM1tng+6/wB1v/Qq+QzLK1NurRWv5jrUeb3o7no1FV9Ov4b+382CUSxHv/d/2W/2qsV8a4nCrrcKKKK5Wih1FFFQWgoooqbGiYUu6korNoEx9KDikBzRWDRqmPopAaWsmh3HUUUVi4lBRRRWLiUgoooqHEtBRRRWLiUmFFFFZSiaIcvQ0tIvQ0tcs4lJhRRRXMolofRRRSlEq4yiiiuWUS0Mop+KMVxziaoZRT8UYrBRGFFFFaqJFzg91G6m5FGRX9jWPw647dRupuRRkUrDuO3UbqbkUZFKw7jt1G6m5FGRU8o7j6KMijIpWKuLmjdSZoqeUq44GlplFRyjuPopuaMmp5R3HZpcmmbqUNUcorjg1LkU0HNFTYpMfRk0zpShqjlLTH7qN1NzmlqbFJkm6jdTaKxsXcduo3U2ilYdx4OacpzTF70o4pWGmPoooqbFXF3UbqSilyjuOFeK/Hj9pHT/AIYW82k6SY9R8TyD5I/vRWv+1J7/AOzXE/H/AParTRFufDvgqaK51XlJ9VHKQeqx/wB5v9r7q/71fIs93Nd3Ek88jSyyMWaSQ5Zj7mu2hhOf3p7Hu4TBOXv1NuxqavrF94i1SfU9Vu5L/UZ23SzynJJqnNfLCpUct61Qmv8AyBWfHJd63qEem6XC93qEzBVVVyFz3NepyqKsj6GKUVZDbu9m1C/isLZTdXk/yRw9gP8Aa9q+u/2bv2XovDHleIPEsX2vVpNuyOT+D/P92tX9nX9mK08DW8Wsa3GLvXpQGw4z5f8A9f8A9Br6Tt7evKxGJv7kDwsXjOZ8lNjLGxS1GRhnx97HT2FaCDpXnXxW+N/hr4SWwivZG1HWpk3W+lWfMrjsXP8AyzX/AGmGP7u6vmLxd8Z/E/xIaSLV7wWWkE5XS7BikJH/AE0b70h/3vl9FWvPjh5T1Oahhp19j631n4x+FdJuHtlvzqF0nBg01PtDZ9Cy/Kp/3mFc/J8Z5rh2FrpkFsnaS+ud5/74T/4qvkr/AITtNITZAyxqOyiuZ1n40tAzLGzM/qTXbDBxW+p7lPAUofFqfccPxMun+/qmnx/9c7Rv/ZpK0o/HTSL/AMhy3/8AARf/AIuvzjufjbqrk7WI/GmQfHPV4zjefzrq+opq/Kb/AFWj/Kj9LrHxVPJ9zULCfP8AejKf+zNW1BrkxGZbLzF/v2rpLn8PlNfm7o/7R2qWxXfJ0969K8N/tTyIFEsh+oNYSwMHuiHgqEttC58afizrPxJ8QNaXRbT9CtJcwaUp4Zl6PKf4m9vur/49XF3HiH+z7c4NUNX8VWesa/czQyL5c8pcAnkZHArf034Hat8TxjT7u3tMf8/H3a6KVKNNcsUdkIwoxtFHk/iP4jz3DNHE28k4GDx+f+Fcjb3l5r9wVthNfMf4LZd1egeHv2ZvENx44m0nxt/xJJbd2dNP3/8AH3GP44pfuyL/ALS/d/i219TeBfhNp/h+38nT7SO0i/8AHqdXE06Om7OKpWaZ8i6R8GvF2thTFo5tkb/lpePj9K3If2bfFjn5pdPj+gNfcdh4MiUD93uPqRWmvg2IjmFfyrzJZjK/uo43Xn0Pgm5/Zy8XQZ2W9lcj1WQr/OuX1f4W+JvDpP2vRbuID+OIb1/76H+Nfo2/guHB/cise/8AB4Xdsynt2qI5pJP3kNYia3Pzj03xXqmhXH7i4mgdT91iQRX0F8KP2r9Q0d4rbV2M0IIG8nkV6X43+BWheJkkN3pqxTHpcWw2n/gQ6NXyh8T/AIM6/wDD26eaFDeaYT8k8I+UD0cfwmvVoYulX0W52U8QpaM/SHwx8RdC+JGjxiSVJEIQq6nZJGf4WVl+ZW/2q39L8Rywaimk6s4Mkr7LO/HC3B/55yf3ZP8Ax1v4fm+Wvy9+Fvxd1HwrfxjznEasA0bHkV9x+BPiVpnxE0Nre4kVpCoD5PIP972Nc2NwUa8Xbc1nTVRaHvc8G4EEcisLUtLWZGG38Kzvh94uk1B5dA1Ry2rWUQeKY/8AL3b/APPQH+8v3W/4C38VddLbiQcCvi505UpOEjz9YuzPGPGfga21iyuLa8t1uLWUYaNh/Kvh342/AnU/AOqPqOnI0thIchgPv/7Lf3ZP9r7rfz/TO+05ZVYFa4bxR4Pt9RtJre4gW4t5BteN1yCK9PBY+eGdnrEuMrH5teDPGc2nzoyyFSDg54/A+9fVnwm+MnEccsuegIJ615N8dP2d7rwzdT67ocZexzuZFH+r6/K/+z/00/76/vV5X4c8TT6VcYJaN0OGQ8FTX2UJwxMOeB3U6mlmfqD4Y8UCbbd2Uo3sBvjJ+WYejeje9eiaXq9vqkLPESrpxJE/3oz7/wCNfBfwn+Nr27xwSzccDk19PeFvF0OrRx3NrOI7hRxIPmyv91h/EtfO47LVXTlD4iZwUj2Sisfw/wCJYNWTyXXyLpRlomOfxU91rYr4arSlTk4yRySvHcTIoBptKveuflEpEg5ooXpRU2NbhRRRWTQ0wpymm0Vg0apj6UHFIORRWLQ7jwcUoNJRUuJdxwNFNpQcVi4lJi0UUVDiWmFFFFZOJVwooorJxNExy9DS0i9DS1zTiUmFFFFcnKWmPoooocblXE20baXBornnEpMZRRRXnzRtFhRRRWaiVcdto20tGDW6gZ3PPKKZmjNf2BY/DLj6KZmjNLlHcfRTM0ZqbFXH0UzNGaXKO5Luo3VHmjJqbBck3CjIqPJoyanlHck3e9Lu96i3Uu6o5R3JMmjJqPdQDmp5R3JqKYOaUHFTylpjqXNN3UuRU8pSY4HNLTKXOKixaY6im7qXdU8pVx4OaUHFRg5pwNZ8g+Yfuo3U0GlqeQfMOVutLuplGfeosMlp9Qg1jeMPG2j+AtEl1fW7xLOxi6sT8zHsFXufakos0im9jYvr2DTrOa7u5o7a1hXfLPK21EXuSa+M/jv+1NceMXuPD/hGR7TRBlbm/wA4e89l/ux/+PN/s1xnxo/aH1b4uXslrCz6Z4cRsRWaNgzj+9Mf4v8Ad+6teT/aBzXbSo296R9Ng8Cqfv1dx/SqVzfLECF5NQ3eoZyqHA9a3vh18Hdf+K2qR29pE9vYP8zzOcEJ6n+6P/Qv4a7laKPbnKMI3kzltB0PXPiBry6VoUTTTMcPJ/DGO5J/zivuj4Afs86X8LLKK6liW61mQAtOwztP+z/8VXVfCj4L6J8M9JjstOtlNxgedcsMtIfb+6v+zXptvb+QDXmYivze7HY+ZxWOdT3KeiJ7aCvD/wBoD9pmL4fiXwz4Z8q68V/8t7j70WnKf73rJ/dX/gTf3af+018d4/hH4ZFnprJN4q1NSlkh+cW6dGuHX/Z/hX+Jv91q+GbO4mknluLiaS6uJmaSWeZtzyOxyWY9zWVDD83vSNMDhPa+/PY6SW9uL69uL69upb2+uHMk9zcNukkb1Y9zVDVPE/2VCBIvHYVk6jrIiQxxnnpmt74cfCHxD8TbxDZwGDTw2Hu2HyrXqe7Ban0kpxguZnFXWp3epy7U3fMcDgkn6Ctnw/8ACnxL4mj8y10aeSI/8tZhtQ/p/WvsL4ffs0+HfB6pM1sdQv8Agtc3XzYP+ytepW/g6LH/ANauWWJUfhR5c8cr2R8Paf8Asw+JpwDJNZWq+0e41e/4ZY1vvqtt/wCA9fcEXhGEfwk/hSS+EoucAj8Kwljqi2Ob61Le58D6n+zZ4nstxhawuwPRyh/KvPPEPg3XfCsjLfaddW2OjqDtNfpLe+DdwOAG+orl9b8ERzwvFNAssZ6pIu4GnDHyT95GkcU+rPzptfEd1btgTbgP4ZBXt3wn+OlzoFzCGcqAQDk11nxA/ZcsNVMtxog+wXXXyj9xj7f3f/Hq+fPE/gPX/Al60Op2ksYU/K4HB9wR1/CvShOjXWmjO+niU9z9EfDfxA8M/FnSk0/XoIb8ZDp5hw8b/wB+N1wyN/tLtauv07w/qPh/mGaTxNpX/Af7Ri/9BWf/AMdk/wCulfml4R+It/oE6PHOxVSOQeRX1X8Jf2nVkWKDUJd3Qb88iuevhuZWkdLjCqrM+sdKey1CB7ixuVniQ4faMNGf7rp95W/2WGa0vsvHXP4Vwek+J9K8XhL+2uzaaiVCi/tSBKR/dkHSRf8AZdW/4DW3D4mutET/AIn8SC1PA1SyU+Sf+uq/eh+vzL/tLXzdbBzpu61R5lTDShqtjeNmOap3WmrIDxWpFLHcxLLE4eNhkMpyDQVzXA0crdjjr7ReG+XIrh/Evg+K+glRolkRwQ0bDIYV7HJbBgax7/SVlDYGDVRlyscZH5r/AB8+BE/gW5k1zR42Oms2ZEA/1R9D7f5+mZ8HPiPd6BqMMvmnAIDIT1HpX3/4p8I2+p209tdQLNBKpWSNhwwr89/ip8Orn4R+Prix5/s+ZvNtJSOGQnp9R0r6nBYlV48st0epQq82jPuCx1yXWdJ07XdGlUarYEXFsSeHGDvib2Zdyn/ez/DX0H4f1m18S6FaatZZNndRLKm77wH91v8AaH3f+A18Nfs++OPPsP7Plk5A3Jk/mP8APvX0T8A/E62fiDxB4Pkb92P+JrZg/wB2Rtsyj/dk2tj0krzMzw11zroVXhdcyPYJLYSKTWVeaeJFYYrdKFCfSo5YQykjrXy55tzzTXfDoZZPkDKeqkV8ifHf9nCRXn1rwvAeMtLaxjJT1KL/ABL/ALP8P8P92vvC9s/MU8Vx2taCJA7KvPcetejhMTPDyvHY1hNo/LXT9VutJvPKlDQ3CHp2PuK9w+Fvxon0u4ijlmIwRyTXovx2/Z4g8Uw3Gp6TCINXXLPGowly395f7sn+191v4v71fIV7bX/hu/ktr+KS2mifYxdSpB9GB6GvsqFenio80NzuhUufpT4K+INn4jt4iJRG45jeJsFD/s161oHi77UUttQZVkbiK4XhJPY+h9vyr8zfhj8VrnRLmOOSU7c+vWvrjwF8TrXXrVEeVX3AAhu/1rz8flscRHmS1OiUI1Y2Pp2n1w3hzxebZFjvHM9nwBcE5eD/AK6f3l/2v++v71dvC6zRh423Ke9fBYjDTw8uWaPPlBwdmS0UUVw2IF3UbqSisrGiHA5optKprFxuaJjwcCjIptFZOBVyQNSg5ptFZuJdx9FNBp1YuJSYqmlptOXpUNFphRRRWLiUmFFFFRymiY5ehpaRehpa55xKTCiiiuOUSkx9FFFEY3KuOppFOorCpEtMZijFLRXmyWpsmJijFLRRGI7gozTqBxRXQoEXPNMijIpmRSg5r+veU/CbjsijIptFLlGmOyKMim0UuUq47IoyKbRU8o7j6KKKnlKuGacOaaOTTqnlC4UUUVDiUmFFFFTyjuPozTc4oBqeUq48NS7qaOaKnlKTH0ZplKDio5SlIfuo3U0HNLU2LuOB9KcDmmL3pw4qGh3HUUUVFhpjs8VHnmjNfPvxz/aosPBMc+jeFWTVPEGNstz/AMsLY/8Aszf7P/fX92pVO510KM68uWCO/wDi58btC+EulvLfSi81KRf9G02Bsyuf7zf3V96+D/iP8VfEHxO1eS+1q8eRMsYLJTiGAf3QP/Zutc9rOt3+v6jPqOqXMl3fXDbpJZWyxrLnuMcV1U6aR9jhMFHDq8tyf7Tgc1UuLstlV4FR2ljeaxciC0jMjnv0A+pr6c+Bv7NBdrfV9dVtmAyxuMNJ/u/3V/8AHm/2RzWsmoK7OqtWhQjzSZw3wY/Z51Dxrcx32oI1vp6sMsw3Ivt/tN/s/dX+Kvtzwf4N07wppsdlp1usMSgZIHzMfUmtLR9Fg0+2jghhWGGMBVjQYAFbUcIUcCuCc3M+TxOMdd+QQwrGmMVmeJtfs/C+g6jq+oyiGxsYHuJpD2RQSf5Vr4r5a/br+Iv9keDNL8I2k2Jtbn8+7CnkW8JztP8AvSbf+/bVjClzyRz0I+1qKB8neNfGmofE3x5qXiXUjmS9k/cxZ4ghXiOMewXH/AtzfxVUuJxb25pdKswIt+OvA+lXNH8H3fjjxRp/h60/5eP9d/1z/i/+Jr1opJH3MIqnBQR0vwJ+DF/8WNeW9vEaHQoGBZiMeZ7Cvvfwt4TstA0+KysLdLeCMABUGBVf4dfDy08FaBa6ZZxBFiQAkDqa7u2sFiHSvJr1HJ6Hy2KxjrStHYq21iFHSr8dqqjoKmRAop1chxplcwhegqNoAwPFXdqJHJLI6xxRjc7ucBRXleu/tCaGNSXS/DYTWLluGvnbbZx/RvvSf8B+X/apqDnsdNKnOq+WCO/azU54qhd6WsgIKgiq2mar4jFql09nY+ILYjMkemhobhP92J2ZZP8AvpW/3q2dK1bT/EccpsblZZYjtmtmQxTwMOqyRt8ykehqZUZI3lRq0vjicfqHhlJASq4NcX4j8Fwajbvb3tpHdwHgrIua9pmsuDkVlXmlLJkFcisk3B6Exm1sfCnxK/ZcktfOvvC7FyMsbF/vf8BP8VeA3f8AaPhu+aG5ilsrhDghwRzX6har4bDBtq59q8r+IXwl0bxjbyRapYrI+MLOoxIv49/xr1KGOlHSeqO2niLHyT4J+M+q+HZ0IuHAHcNX1j8Kf2m7XVIo4Lq4HmEAMT/UV8tfED9nXW/CrS3WjE6nYrkmMD51H0/z/wABrzvTdUudIu9yFopYzhkPBBr00qdZXgetSrqWh+qOi3lncAXWgXy6ZM/LWrjfay+vyf8ALNjz80e31ZWrrNM8VRzzrZ6jEdL1KX/VQud8U/vG4+V/935W/wBmvzr+Hnx9vtFkSOSYlOAVY8V9beAfjfo/jTTxaXvk3Ebj57efkH6V5VfAxnfSzHOhCotNGe+4FRSwBwcVwzeM08HWQvjfG98PxcXEc5Mk9pH/AM9EPVkX+JW+bH3W/hrvDKh2lHWRCoYOhyDXzlSjKlK0jyKkJUnZmBqmniRSccivmD9sP4et4h+Hs2qwRbr3SX8/Kjlozwy/+zf8Br60u0yCfUV5x8SNETWPDmrWDrlLm1eEjHXKmtMNUdGopIKdW0j88fg/4rbTdSt3D4KsM819N6B4ifw58TPCHiFWxbG6FncNnA8m4Hl5PsrNG3/Aa+K/CbPYan5LZBjlKkfQ1+gPwB1HSl0qKa7NvN8o/wBZ81fXYinzRsz3o2nGx9SUzHBrmLUabIDJpd1JpTk52wsDGT6mNvlJ/CrL+IbjTVC6nEPs/bUbVSUH/XSPll/3vmX/AHa+KrYCtR1WqPNqYecX5GvImc1m3mniQMQPwrQguUnhWRHSaFvuyxncp/KnOn5V56djms4nB6vookRxtyK8L+L3wM03xzZys0a2+oBSI7pV+U+0i/xL/wCPLX1Hd2ImUkDmuc1HRRIG+XmumjWnSlzwZop21Py18VeA9Z+Hery2t3bSIE529fl/vIf4l/2v++q3/BPxBuNHnjZJjtz619u+Pvhpp3inT3s9Qt96DmOReJIW9VPb6V8Z/FT4Kar4Av3nhQzWbt8k8a/JJ7f7Lf7Pf+GvtcHjoYiNpaM7qVVH0x8MPjJDqEcccsoDcDk17l4Y8XtZbXtG861bl7bPT3T+79Pu/wC73/MPQ/Fd1pM4+do3U/Svon4VfG7cYoLuXDcAMT1oxOFhVi4zV0dvu1FqffOm6tbaxbCe2k3A8MpGGU+hHUGrleIeFvGC3Gy9tJwk2Ah53LKv92Re9eq6B4qg1hPIYfZr1RloCchh6q38S/5avg8bls8M3KOsThqUXHVG1RRRXiWMRV706mr1p1ZtFoVT2pabTlOaz5Sh9FAorNxLCnA5FNpVOM1jylJjqVTSUL1qHEtDqKKKxcSkwoooqbGg5ehpaRehpa55RKQUUUVxziWh9FFFEIlJjqKKKxqR0KQ09TRQeporypR1NkFA60UL1rSER3HUUUV0qJFzy7dQG9aSiv64sfgtx1FNHFKGpWKuLSg4pARRSsO4+imUuTSsO4/dQGpu6jdWdh8w/IozTMilzS5Skx1LTKKixaY+imZozU8pVyWim5ozU2FcdRTc0ZosO46lBxSZFGRWdi0x6ml3VHS5rPlL5iRTTt1RKeKcDWbQcxJVTWtbsPD2mT6jqd3FY2MA3SXEzbVUVxPxX+NGgfCbS2m1Sbzb11JtrCE5lnPr/sr7mvhj4rfGvxF8WdTMuqXJh09G/cadASIYx9P4j7mpjG57OEy+piNXoj0343ftW3/jLz9J8KmTS9G5VrvOLi5H1/5Zr7fe/lXz5PdcsSdzk5JJ/WqryhQec1UeYtmuqMUkfZ4ejDDx5YIsS3Oc85NbXg/wFqPja6CwhhbZ2+YRkt7KO9dn8MPgTqXiu9jluEOzIPln5Qi/3i39K+y/h/8ADHTfB9qi28Mc1yBzPsxj2UdhSb5Uc2Lx1PDabs4f4N/s96b4Wgiu9RhWW74ZYm+cK395v7zf+O17vY6alug4GfpUtnZrEuSOat4NedNuTuz4+tip4iXNNiIgAqUcCmAYFP8A4amxz3IppsAgV+bf7VXjN/FPx21xRJ5lppSppkWDwNo3N/4+zV+jV5KEVj6DNfkTr2qtr3jbX9TZtzXmoTzZPvIxFdWHje572VQUqjZ2ukQ7rVjX0n+xZ4Dju7nWvFdzHlWl+y2+4fwL8ufx+avnKzYW+lSP6ITX3R+yrpI034M6GSMPcJ55993NaTdlY+hzCahRZ7DbwrGMKOKnpF6VjeLfGmieBNJfUte1CKwtRwoY5klP92NOrt7CvNcb7HxcVfY3K88+JXx48N/DZxazSnVNXA40qx+aVP8Aro33Y1/3v+Ahq8C+KP7T2ueK1m07w0snh3SWyrXCNi9nX/eH+p/4D83+0teEicWwP+WdvU1pDDp7nvYbLZv3qh6X8RPjP4h+JEzLqtyLXSw2V0m0LLCvoZP4pD/vfL6Ktcf/AMJj/ZOZa4PUfFYAYRmuXv8AVpbtiWcgV3RpJaI+lpxp0I2ifXXwv/aZW1mjt7uTEYwA4bpX0JYeKPDnxDiiuZH+z6oqgRatZyeXcR/7O4feX/Zbcv8As1+WPnXFvn5pIvZ/vV2XhD4w6r4ZnTFw/lAjoaHSuhucZaNH6XjxJqfh2PGtR/2tpoH/ACGtOjwyD1mgX5l/3o9w77Vrfsry11eyivLKeK7tZhujnhbcjj1Br5M+Gn7Ty3SxpdzbumWzzXtmhS2GsyvqXh7Uf7E1OY+Y7RAS2l23rNF6/wC0u1v9qvMq4aS1R5lfARn71I9AubMODgfhWJfaMkykNHn8Kn03xX9lu4bLxBaf2NfSELDPu82zuj/0zm6bj/ck2t/vV0v2UdDz+FcLg1ueJOEqbtJHlmpeEUkDMqgn3rxn4mfs+aN4vEkhtv7Nv8cXVuvU/wC0vevqy60tJASBtPqK5nVNIDhlZeacJypu8WEKjjqj81fHvwt1/wCG9y3262M9iT+7voATG31PY+xqLwP4wutHvkeOZgoI5Br7q8W+Hh9mmjaJZYZAQyOMg+496/PXRedUn7/v2/8AQjXv4eq68Wpnv4Wt7RWPo3V/ibqk/hm5t2uHMcsDqw3dRivs/wCBepSax8GPBF3KcyPotoT/AN+1r88tTydII9q/QP8AZxH/ABYrwN/2BbX/ANAWvHzKNoxZGPdoxZ30i7k5rmfEVqHgf6V1L/dNc9rnMLj2rxqUbs8iO5+UCW4h8U6h3P26b/0Nq9G/4SDUtAsBJaSsqqABg154zZ8X6rz/AMv83/obV6BcskmkAEZyoNfbSdz6GlojV8M/tLa3ozKsszlQfWvon4cftMWmsJGl3IqM2Mknj8q+DZfBXi630qPXBZjVtKuE87Nt/rUz7d6h0TxNLay5tpmjdTzG3BH4UlTUkXGrrZn6n6XrTCQ6hoMsUbu3mTWMjD7Lc+//AEzk/wBpf+BK1d/4e8Q2niOwkntg8EsOI7i1mwJLd/7rL3z/AHvut95a+Bvgp8cGgaO0vJeOAQxr6Ss/FZS5h1rRZ1a+giwEJ/d3EfeCT1X+638Lc/3g3g43L4zTlHRk1qCnG8dz3kqMGqU8O7PFN8NeIbLxZosGpWJYQyZVon+/C4+8jDsQauuma+WcZQbizx3daM5nU9JEqsQvNcL4k8J2+o2k9tc26XFtKNrxSLlWFesvCCDmsq/0tZVYgc1pGVi4ux8C/Gb9nebSPO1LR0e4shlm4zJD/vf3l/2vvL/tV4ELm60W82PujdTuH90/7Qr9R9X0HcHwg5HKkcGvnb4s/s92Ouxz3OlRJbXvLNb9ElP95T/yzb/x1v4v71fT4LMrL2dbbudtOq46M8o+Ffxkm06WOG4l+XgZJ4NfU3hD4hWutQRZl+YYKsrYZT6g9q+A9e8Mah4Rv5VeN1RGw2V2lD6MvVTXYeAPidc6PNGrynYDjr0r2Z0VKN46o9GMlJH6XeG/HqsqQapIrI2Fjvv4W9pP7rf7X3T/ALPftK+OfAPxYgv4kVpQQwAIJ4Ne2eEPHJs41UMbix4zEDloveP1X/Z/75218Zj8pd3UofcYVKW7ietU+s7TNWttUgE1rMs0bcZU8hv7rDs3tV4c18w6bjoziTH0UUVjYq46iiioaKuFKDikorJoLj+lOBzTRyKVetYyiaRkPDUuRTaKxcS0x1FIppaysaJhTl6U2isXEtD6VetNBzS1g4miHinU2nVnYsbRRRUTjoOIq96WhRxRXlzjqbphRRRThElsVe9OpAMUtd0Y6GZ5PRTMijPvX9Zcp+CXJM0u6owaXdS5R3H5FLmo9wpc+9TyjuSZNG6mZNG6lyjuP3UbqZuo3VPKO4/dSg0zIpanlKTHUU2gHFRylpj80Zpu6jdU2KuSZozTc0ZqOUdx2aM03NGaVguP3UA5pKKzsaJko6UU2szxN4o0zwfo0+q6xew2FjCMtLM2M+gUdz7VNi6alN2ia1fOvxs/azsPCH2jR/CbR6trQyj3eM21of8A2o3/AI7/ACryL41/tT6p43M+l+Hmk0jQySplQ4uLof7TDov+yPxrwA3AwayaufX4DKL/ALyv9xf13X9Q8R6lPqGqXkt7eSnLSysST/gKyXuMZGaZNOWyF4Fbvg34d6l4tvY0jilSJzjdtyW/3fWqirH1Kioqy2MfTtNvNbuRBaxPNIxwFQZJr6Q+DX7Pcl00eoX6DygQfNYct7Rr/wCzV6N8KvgBYeGreOa7gVpeCYTzz/tN/F/u/dr3XTNMjtIlSNAoAA4GKUn2PmcZmqi3To/eZvhnwna6NaJDDEI4x2HVvc11MMQUAAYApIodtWFXFZNNnzDnKb5pMlj6GpMVGvepKysQAGKOxoozU8oXOf8AEDEW04/6Zt/6DX5Cacd99IfWVj+pr9e9aIkjcHuCK/JC/sv7G8TalZY2/ZryaLH+7Iw/pXTh1Zs+nyeVpS+X6np8diZNCl/64Mf/AB2vuj9ny8gsfgv4ZubmaO3torCJ5JZm2ooA5JNfH/wntbDxKYbO/l8uBxsYg9e1J4l1S9ECeHDrFzf6BpZFvZ2kmBEFU8FgMbm/2j61M1d2Po8ZQ+s0+ROx9NfEf9rTTtMM1j4Pt11a5XKnU5g32aM/9M1+9KfyX6181eIfFN94n1STU9b1CfULxxj7RdPuwv8AdUfdVfYcVyd7rENqpBYZ/uiucvvEEtySqHC0RgkRh8HRwy01fc6HV/EscAZICCem7/P/AOquT1DWJbpmLOeepPJqzoWg6t4q1BbPSrKW/um6JGOB9T2r6O+GX7JiJ5V74tlF3Jww0+DiNf8AePeqbjHVjq4uFPdnz54L+GfiP4iXqw6RYP8AZycPezjEa19OfD79mXRPB/l3l+P7b1QYPn3Q+VD/ALK175ofhC00mzjgtbeO2t0GFiiXCityLT1jHQVyzr30ieDWx85u0NEfP3j34T6V4rtJE1GxinYjCzBcSJ/unt+VfKvxG+A+v+DnkutLibWdOBJKoP38Y/3f4vwr9ILzQoJ1Y7Nreq/4VxuueEFcMfLDD1A4pQrSiTRxc4vU/M/R9aks5BNbSEYPK9MGvYvhv8a7/QLiPFwygHlWPBrW+N/gnwl4p1h30PeNbDHzNQsdv2VG/uyt/wAtG/2V/wCBFa46L4dRaWmTdidh32Y/rXZzKaufS4epKcbtH3H8OPjJp3i/STZX/kzxTpslt7hA8ci9wwPUV3Vja3ujL5nhi+S90/r/AGHqcx2qPSCflo/91ty/7tfnlYeLJ/CQ325I2nOB0r0LwN+05cWcirdSuMe+RWMqSktUbzpwqK0kfcmi+MLHWbo2LiXT9VXl9OvV8ufb/eX+GRf9pGZferV1brKDXknhz4n+H/iJp1vDqGycoQ8TltssL/3o5FO5W/2lZa7Szu9Z0iPKPJ4q0vH+ymoQj/x0T/8Ajrf9dK8yrhmtUeHXy+Ufep6lLxdY79PlwORX5k+HbfOqz/8AXdv/AEI1+oGoa3p+uaTez6fdJcpEpDqRtkiPPyyIeUb2NfmZ4cH/ABM5v+u7f+hGu3ANrmTNcvVnL+u56Bfxf8Sl/wDcr9Av2el2/BDwPj/oC2v/AKLWvgHUnA0l/wDrnX31+z7L/wAWR8D/APYFtf8A0Wtc+OXNT+ZtmH8OPqd+5whrnNfbEJroHb5DXNeIG/dGvEpnjo/KHcf+Ev1X/r/m/wDQ2rv5D/xKV/3B/KvPwM+LdUP/AE/zf+htXfy8aSPZB/Kvr5bH1FGOlj334N+Evt3wk8MTeXuLWSfzrk/il+zRZ+Jkm1DTIEsNYPP7viOU+jf3T/tdK+hfgBoKH4KeDsr9/S4W/MZro9S8N9SF/wAa+eeKqUqrszx/aNM/L9Pt/hbWJLO7R7e8t32lWGCcV9E/CD4qZEdvPJ7YJrp/2k/gsninRJdXsIgmtWgydo/18S/1WvlHwxrNxp99tbMc0TYZTxXu06kcTDmjuelh6t1bofevgT4kx+AvGUNxJKf7E1Zxb32fuxv0juMeq/db/Zb/AGa+oOpr88dG1OLXPDwjmIZWX5v9oY/wr6+/Zx8cv4z+HltDeS+Zq2jS/YLpieZNo/dSf8CjK/iGr5vMMPy++jHF07e8j1EpkVFJDuFWQM0Fa8E8sxLqxWQEEVzGr+HVmVvlz6EV3jxBgapz2oYEYyKSk0awnbRnzt8RfhFp/ii3cTxCK9Awl4i84/uuP4l9jXyD8RvhDqfg3UX8u3KdWCJkxzf9cz6f7J+av0o1TSFkVuMivPfF3gm01uyltL23WeB+xHQ+oPY17WDzGdB8stUdcKrifndofi660q4AjkeCRTgxvxzXvvw0+OHMcF3JtbgZJ61h/GH4DT6S0mowK1zZ55vVH7yL3mX+If7Q/wCBV4jIl5oF35U6mNhyrKchh6qe4/lX1kKlPExvE9GFS5+i/hLxysxS4s7kRTEDJ6hx6MO4r2bwz4uttdQQy4g1FR80BOd3vG3df5V+Z3w/+LV1o0saSSlovrX034G+JNrrMEWZQWGCCGwVPqp/hNeFjcsjXTlHRiqUlPVbn1uKK878L/EcpGkOpv59vwFvFHzL7SD/ANmH/AvWvQIpknjSWJ1licZV0OQa+KrYWdCVpo4ZQcNyaigHIoriaJuFFFFZWC45e9LTV606sZI0ixymlplOU1i0api04cim0A4rNxNEx1FFFZNGiYo4p1Mpy9K52jRMeOlPB4pi9KWsrFphQBmlApaznsVFhRRRXnSjqbphSikp4GKqESGwooorsitCLnkO6jcKZuo3V/WfKfgNx4PvSg4qMEUtLlHck3UbhTMml3UuUq48H3oz70wEUZqeUdyXdQGpm6jdWfKO5IDmimZFKDipsUmPBpQc0wNS1Fikx9FNBxRuqeUu46iiiiwxd1G6koqHEdx1PqjqurWeiafNfX9zHaWkQy80zbVX6mvkf41/tiT6glxo3gYvbQE7ZNWfiRx6Rr/B/vZLf7vfGSselg8LPFycIHtXxh/aL8PfCi1ktDKNV19l/dabE2Sp7NI38I/8er4l+IfxY8Q/FDV2vtduzKFOIrWE7YYR/dVe5/2jXGXV1Ne3Elzdzvc3Dks0kjEkmq7XBGcGsT7vCZfSwkdNX3Lks27PNRR7p5BHGu5icDFP0XR73XbjyraMvnqew+tfTnwc/Z92Qx314hQMATK/329lX+Ff9qlY7qteFCPNNnn3w0+A934jnWS+T5QQTG3ypF/10b1/2a+uvA3wz0/wrbKIolknwA0pXH/AV/uiuj0Hw1a6NbR29pCsMSDhUHA/z610VvbADpRY+Ix2aTxL5YaIjtLJUGcVoRRgdKaiH6CpkGKix4yY9VxTqQdKWnY0H0A4oorOxVx2ajLdaCeDUROc0rAY2qfdY+9fl/8AGK1sJ/iv4ln0u4ju7Ge+d0nh+45OWYj/AIFur6c/ar/aH8qe58DeGbn96fk1S+ib/V+tupH8X97/AL5/vV8q4qo6H12VYeUIupLqWfDPiW40Jg0blSpzxUeoeKZp5HYO3PvWbIACa9R+Hn7PXiDxqsVzPH/ZWnSDKzScyOPVVpvue/Oqqa1Z5VBJcancrFDFJNK5wscY3Ma9y+GP7MGreJvKu/ELHTbBsEW68yMPevoX4afALQfBESNbWatc4+a4mG5z9PSvX9N0WKFRgAH1PWoc0tj57E5l9mmch4F+GeleENPS00qyS0iAALAfO/1Nd3aaWkK/dFW4bYR1cRABXNL3tzw3UlN3kyvHb5GMYFSC2Hrms7xV4v0TwRpbajrmp2+n2gbYGlb5nb+6q9Wb2Ar5q+I/7Uuua95tl4QgbQLA5U6hcBWunH+yvKx/+PN/ums1C524fDVcS7QR7d8Svi94Z+GluU1Gfz9QYZi0u1IkuX99v8C/7TbVr5X+IXxl8QfEh5IbuQaRozcDSrRiQ4/6bSf8tPp8q/7Lda8/uZ8TTXE0rT3Mzb5ZpWJkkb+8zHljXO6j4lVQwjNbRgkfU4fL6dDWWrOjudUhtVIBFcrrXigsGVG/AVhy39zqEuyMMxbgBRkmvVPh1+zb4g8XBbq9QabaMMiScZJ+grZJI7ataNKN2eRmG41RwMOxY4VEGWb6CjUfCGsaKiSXFlPa7+VWdSpNfdHg34DaH4TQG0tQ9zjm5uFzIfoO1b2s/Dy21C1MNzaR3kR6pIN/60/bKJ4zzH3tD4G8LePdS8M3a+XK6FTkxscV9KfDD9ps2/lw3UxHQfMayPiP+zSsqy3WhqSRybSQ4Yf7rf8AxVfPureH7/w7dyQzxyRSRHDK6lWU+4qlKM0elRxEKq0ep+i1p4s8NfEAR3Lym11PYETULR9k4H90t/Gv+yylf9mvhfW/Cp8J+NdV08D5YbuQL/u7iQfyrC8PfEPVNBlUxXLgA9M1003jCPxFcG6uH3zt1zQoKOqOrzF1ad5LUxk8bcV+hP7P3/JEvA3/AGBrX/0WtfnbrMmy0mfsqE5/A1+iX7P3/JEvA3/YGtf/AEWteZjdKdjy8wdoRR3rn5a57Xv+PZ66Bulc9r/FrJXjU4+9Y8Wm7n5RQ8+J9SP/AE+Tf+jGrvLpsaW3+5XBQn/ipdRI/wCfyb/0Y1dveyY0xh/sV9dNaH11P4WfoB+z8m74J+Cf+wTb/wDoFdncQZzxXKfs8Ju+CXgj/sE2/wD6DXfTW4xXx1b+Kz5mc/faOB8QaGlzE5C5B6jHT3r89/2kPAJ+H3xEa6totthqWZY8DhWzytfpjd23Xjivlb9szwb/AGl8PG1CNMzadcq+R12nrXdgKvJU5X1OzC1LSsfPvw21qU2v2Z2yMZXP6ivo/wDZR8Vf2T8UbvSZHxBrNmQoJ486E7l/Eq0n5V8l+A77ypwc8Afoa9S+HHib+wfip4Pv921Y9XhVj/syHY3/AI6xr18XS9pTaPXrLmoyP0ojOakzUMZ60+vh+U+duOPSoyAc1J/DUfrWUogmVri1EgOBWDqGlhw3GRXT1BNbCQHHWpN0zzHV/Dyyq/yggjBBGQRXz18UPgFb6nHPcaRAkUjEs9ixwkrf3o/7h/8AHfpX1/dacHByuDXL6z4fWZW+Xnsa7MPip0JXTNoTcWfmT4h8E33ha7nXy5EjjbDxuuHhP+0P/Zh8taHhHx/d6DcphztB6Zr7T8efDGx8SwMl3D5c4H7u6jH7xf8AZ/2l9mr5O+JPwWv/AAtcPP5YWMn93PGP3Mvsf+ebex/CvrsNjKeJVnoz06dVM9o8AfGaK7VEeUA9wTXvXgr4gyWWHs5RLA3L2rn5T7r6GvzatdSu9Iudp3wSoeVbg17B8OvjNJZvHFcynAIGc1dbCxqx5Zq6Ou0aisz9JdA8SWevQbrZ8SAfPA/30/xH+1WvXyb4P+JcN8I5La42SDGJEbBH+f7te1eEfipDeiO31ZltpDwt2Plgf/e/ut/47XxWNyydBuVPVHFUoNK6PSKKKK8CxyWsFFFFZtFXH0UUVlylofRTVNOrFo0TFU0tNozWEkWmOpV70gOaUcVzSRomPWnUwcU+sLGlx1FFFYyLiwooorkcTdMVRTqKK0jEhsKKKK6EiLnje6lBFNor+tbH8/XHUtMBxTqVguLupcim0UrFXH0U0HFLuqbDuOyaN1MyaUHNTyjuPyKUGmUoOKmxSY8NS0wc0tRylpjwcUu6mA0tTYpMdkUZFR5NQX+o22lWM95e3EdraQIZJZpW2qijqSazLTLsbMBwB9e9ee/FP45eGfhVbkajdrd6owzFptu26V/rj7o92rwT4y/thSXKTab4DPlxHKvrMv3j/wBcV/8AZjXyvfaxc6ndzXF5cSXVxMxaW4lbLSH/AGmrmnOx9dl+Rzm+fE6LsekfFr42+IfiteyHUJzDpoP7rTojiCMf+zN7tXmZ4zSifI9akghac4HA9awTufb0qUKUeWCsisxzkV1vgn4a33iW5jMsbLG/3EHVv8+teg/Cr4I3WvOl1NBshByZXHC/T+83+zX1Z4Q+HWn+G4QLSHbIRh7huXf/AOtTSbPHxuZ0sNotWcZ8MPgZp/h62hlu4UaUAEQ4yoP+1/eNe2WVgltGFVQoHan2lksIzjLepq6q8VfIfDYnF1MTLmmyS3UY6VaUYFRxdKmVuKOU5birxTxTKUH1rOw0ySikDUoOak0TH0UDmjsaiw7hXiH7UHxp/wCFP+B5pbPA8Qai7Wun/wCw38U3/AV/XbXteecV+aP7TvxGb4nfFnUZY5DJpOlt9gtFB+U7W/eSD/ebd+AWhRuevluF+s1tdlueaQGWaWS6uXaWeVvMeRzku5OdzGppb/AwKQDg+9eq/ss/ChfiX4xm1i+hZtF004Ct92Z+4NK1j7ydSFCGp6j+zl+zmrRReJfE0QnupPnt7RjlY/8Aab/ar6osNCS3QJFGqAegqzpenR20KRRIERQAABWvDHsFYyd9D4fEYyVaTuQW2nJEMtyasLGFOcYxUgry74n/ALQ3hn4ciazif+3tdUYGnWbgLG3pNKRtj+nzN/s1lY5qUJ1pcsFc9MuLiKztpbieRIIIlLySyEKqr6k9q+ePiV+1xY6d5lj4Ihj1a66HVboEW0f+4v3pPqdq/wC9XgXxI+K3iP4pXJ/t29/0FG3RaZbEpaQ+mFH+sb/abd/wGuDudRFuDVKNz6jB5Vy+9WfyOo1vxZqPiXVJdW1zUZtU1GTrPcHIVf7qL91V/wBlflrKufEUZ+UEye2eB+HSuK1HxEzFgDisQa1IJupraMFY+hgo0lywVj0uc/b7aovh98JdZ+JGq3KWSYtLdj5s7dF5qvod4J7ZT6ivp39jbS45dK8VS4+9exj/AMcrNvlMMXVdKm5I6D4Y/s8aN4ViSR4Be3fGZJF+XPsK9n0/RI7VQCoGBgADpWta2SxLgLiri2/f+lc8pNnw1SvUqu82Zws4sfdFI1lFtPy1rCLA60GHIrEUXY4nUvD4nZiK858cfCrTfElu0eoWSykD5ZlGHX6GvdJLNWzxWVf6YHDAjIoTaOmnUcXdM/P/AOJP7OV/ozyXOjBr23GSUA/er+H8VeP6JO8N5sbIZTtYV+k/iTw9mGRlXPByK/N+yUHW7rj/AJav/wChV30p8yPpsDWlVTTex3NxzYknrsr9EP2fj/xZLwP/ANga1/8ARa1+d0//AB4f8Ar9Df2fT/xZHwN/2BrX/wBFrXHjF7iJzH4Ynfuetc94iOLeQe1dAx4Nc54kbEL/AO7XlJdjwqeh+UNo/wDxP78/9PUn/obV2F/L/oWM/wANcLaSY16/5/5eZP8A0Jq6++k/0L8K+omfYU37rP0i/Z0H/FkvA/8A2Cbf/wBBr0SUcGvPP2dP+SJeB/8AsE2//oNeiSDOa+NrfxJHy8v4kihcxZU14l+0fpv274UeKosZP2J5B/wE7q9ym+6a8c/aJf7N8LfFT/8AUPmH/juKrD/xYmlF2mj84fBk+4qf9muzkuvKv7CXP+ruI3/JhXEeCkxGp/2f6107P52qWMH/AD0uI0/NhX109j6X7B+t0RqQHFQx8cVKpzmvgrHzNyQH5aZ3pw6U0cmspIEOooorGxqmMkiDg8VnXNnkEEVqUjIGBBqbFpnHajoyTqwK5rg/EnhCO6glimhWaFxgqwzXsE9pnPFZV5pyuCCKcJSg7xNYycT4W+LX7PrWyy3mkRG6th8xt1fdPB/1zP8AEv8AstzXzlqWnXOg3RTkFTgNjGfr6V+oWv8AhYSBnjXB9PWvCPil8DNP8YRSugNhqQB2yoPlc/7Y719Pg80XwVT0KdY+X/BnxIutJnRWkZGHUE9f8a+ivAXxZg1KNIppBuIwQ3INfMPjX4ear4M1B7bULVojn5JV+449VP8ASoNB1250uVPnIweDmvelCFWPPB3R1qbP0f8AAvxMudGRI0Y3unHk2rN80Y9Y27f7p+X/AHete0aF4j0/xHamaxnEm3AeMja8Z9GU8ivzn8BfFt4GSOeTpgZzXtXhj4jlZI7yyuTDOv3ZYmwR/st6j/Zr5jF5VCq3KGjFOlGorrc+wKK818C/Gex1x49P1cpY6iWCxzA/uZz/AHc/wt/s16RXyFbDzoS5Zo89wlB2Y6iiiuewx9OFNpy9KwcTRC0UUVzyiWgU06m06uWSNUPFOHSmL0p69KwaKTH0UUVzyRrEKVRmkpy96x5TdC0UUVpGJDCiiitbE3PF80UzNANf1pyn88XH04HNR7qUGlyBckoBxTAaUNS5SuYkBozTAaM1PIO4+im5xS7qnlKuOBxTqj3UoPpU8pSY+nA1GGpQRUWLUiSimA0uTU8pVx1fLf7d/jC90rwloOiWk3lxahcySXCg8sqBdo/76bd/wGvqPIFeG/tKfCw/FfwqbSKXyNRtJBPZyEfKSAdyn/ZNYzi7aHpZbVp08TGVTVH5+W+ofaOKvWVhcalIY7aMyPjoKzPEPhvVPCOrTWGpWr2d5EcFWHDD1B7il0rVpIZVkRjHIvcV50lY/V4TUjrNX+HHi/w/4VvPEVz4dvZtItSFllhAcJnoW2tuVf8Aar2L9n/4Py+ItPtvEmsmBoplElrZ27blCn1PrWZ8IPjxqHhu5RPOGPutFNzG691I9DXuvg7RdOubyTWPhyYbGab97f8Ag+Q4trju0ls3/LNv9n7p/wBms4zjF+8Y42lXqUJLDuzPVPDnh6Gwto4441iijGFRRxXV28KhRxXOeENetPEdvJ9lLxzwNsuLScbZoG7qynkV1MabRiu+PK1dH5VONSlJwqKzRIiin4xSLgUtVYyuPHFOVqbRWdh8xKDmlBxTKcDmocSkx6tSg+tR04GsnE1TJQaXIqPNIXxSsFzgPjn42bwD8L/E+tRvsuLe1KW5z/y2kPlx4/4Ewr8ydNtwa+0f28/ET2fw00zTY22tqOqJuHqkaO3/AKFtr420UbhzUJ2R99kdO1D2n8xLc2U1wYbe1Qvc3TrBEoH8THbX6KfAr4bW3w4+HulaTDGBN5Yed8cs565r47+A3hc+K/jBosBTdDZK1y/pj7o/9CNfonBCqcAVmzLPcQ4ctKI+3h2CnytsFSgYxVW/kEcZYnAAyTUKJ8cmfL37W3x51Dw5qNt4I0W7fT5Lm3W5vryE4kMbMyqiH+H7rZPPavmL+0YcdRXS/tgTn/hecuP+gfb/AKl684sIWuIqTjY/RstoqGHUo9S9eawTuWPmst2lmz5j4H90feb6V0/w/wDh7qXxD1i4sdM2L9mwbiZ/ux5/nX1V8PP2d9H8Iol1JELy/wAc3V0uWU/7I/hoSsb4jF08OrPc+X/CXwK8S+LtktxG2gaa3O+Rc3Eg/wBkf8s/q2GrhvHvge28CeNbvR7PzDFHHG7NK+5mZl5JP4V+lM3h6NId23mvhL9o6xW1+MV+ijj7Pbkn1+Tk1rB2Z5mExcq1ZpmPoXy2ae1fXv7Ew3eHPEuf+f8AT/0WK+RNHTFsB6HFfXf7E3Hh3xL/ANf6f+ixWVW0mejmP+7M+m0UCpAM01e9PQda5LHwPtLjguRRtqRF607bWZqmQ7BUE8IZTVsio2HaosaJ2OI8TrttZ/8Adavy3tH/AOJzcH/ptJ/6E1fqT4q4trj6GvyrtZv+Jxcc/wDLaT/0KurD7M+lyp6y+X6notwP+Jf/AMAr9Cv2e/8AkhngY/8AUGt//QRXwBBAJ9NX3TFfYnw7+MWleEvhB4SsLeGTVdVi0+OJ7WJtkcLAdJZcFUP+yMt/s1OJg5wsj0cbSlVjFRR7tPPHa28k88iwwoMs7nAFeJ/Ef4xW8tu9p4ejjuW6HUbkfuf+2Y/5af8AoP8AtNXl/jX4m6p4suTJqF6WiB+SyQ4tkH+7/E3u36V5j4g8cfZ1bnmuSnQ6snD5co+9VZ5Trfw+fQ9VnmgmEts8jOePmySTVbV7wR2ZGei1b1/xVLfysqEkE9qk8C/DPxB8WfEEOi6JbNPM5BmlxlLePu7n0Feld21PSqzhCLZ+k37Of/JEvBH/AGCLf/0CvRax/BugQeFfC+laPbKEt7C1itYwPRVA/pWxXzFdKU20fIylzSciCZAc183/ALZniKLRvgzq0TNi4vnS0iHrlvm/QGvou9m8qJznnpXwP+2V48i8V/EOw8M2z77PRVMlxg8NcyfdX/gI/wDQq6MDT5qvodOGi6kzwrw9ZLaWe4jAx+ldP8K9FPij4v8AhLTMbkm1SFnH+yrbm/8AHRWMwENqEH0r2/8AYc8JHXvizea66brfRbVmViP+W0vyr/44Hr6GrNRi5HvVpezp3Pv/ABinL0pgOactfGNWPmObUkU8Uq8U1TTqxaLTHZFFNpy9KyaKTCiiis2jVMCMjFVprfINWaCMiosaJmJc2YYEEVy2t+HUnViF5rvZIQwPFULi1yCMVNjWL7Hz9458EWWrWMtpqVlHeWz9UkXI+tfFnxa+F9x8ONbsxoLrqtpqU/lQ6WWLXgY9Qg/ir7a+IvjOS9v7rRPDEMeo6hGf3+o3P/Hnaf7zfxv/ANM1/wDHa8/0vTNJ8G3MuoiVtT12dds+s3YUzyD+5GvSNP8AZX/x6vq8sVWCbk9D0qEJvV7HzQPhN43sP9dp3k+v79dyfX5q6HTtZ1Hw/wD8fXGK7Pxt8SVtlkVH4+vJrw7WvF11fO2XIX0zXvW5zra5T0DxB8WriWwaANtH1xX6P/BnXr3xR8KvCOraiWN9d6VbyzMxyXYr9/8AHrX5y/AT9nXX/jHrVrPdxPY+F45N8964K+av8UcefvN/tD7tfqDpNhBpen29naxiK2gjWGKNeioowo/IV8fnc6TUYR1kjjqzT0L1FFFfJGQ+ikBzS1DQ0KtOpg4p9c8kWhy9KKRehpa45I2iPooHNFc7Roh9KvQ0lKvQ1g0WhaKKKysaJjx0pV601elLVpAKeppKKKqwrniO6jIpmRS1/W9j+cbjwaUNUYOKcG9aLDuPBpc0wUA4qbDuSbqMimbqXIpWHzD8+9GaZS5xS5Skx4alBpgb1pQc1Nikx4NLupgOKUNUcpaY8GlzTKF61NiriuSBWJqsG8E4rac1XmhDipa0NYM8S+Ifwx0nxpavbanZrIoB8uYDEkZ9jXyV8TvgNrPgh5bu1U6hpgPE0S/Mg/2hX6D6hpiyK3Fcnq2hh1dWQOhGCCOv1rknS5j6HAZnUw3uy1ifm3a3TROCCVYHrXofg34m3/h+4idZ3XYQQysQR9DXrXxW/ZxttX87UNAVbS95Zrfokh9vQ18v6vY6joN9LZ38L288ZwyOMGvLqUnHc/QMHjoV43iz7i8GfG7R/GYtzq10dL1yMAQ6zbjDeyyr/EPevb9F8ZOskNjrSx291IMw3cTbre6H95G/pX5eaH4mmsZFw5GPevoL4W/HqXTbddN1ILqWkuRutZj933Q/wn6VhCU6TvHY1xeAoY+Npq0u591KTmng15x4H8WR3dgbvSp31fSwoM1u53XdoPU/89F+ld9pt/b6larcW0qzRN0Za9OnVjUV0fm+YZZXwDvUXu9y5SrSDgUVseRclXpS1GGp4NHKWmPBzSjiowacGrJxNUyQGq8z4zzUm6qtw3WsrFHxt+3/AHu648D2oPAN3MR+CCvmzw8Nymvon9vmH/TfBlx6LdR/+gH+lfPHhX5gR71hUVkj9Nya31WKPo79juy874karMRxFaxqP/Hq+2Ixivjf9kmJrH4janG3/La0iYfrX2QtZxjc+fz/APjr0J81Q1Fvlq3urN1F8CtOU+aPzv8A2vOfjbN/14W383rh9BH+jCu4/a8/5LZN/wBeFv8AzeuI0H/j2Wspn6hlz/cU4+R9DfsY2Hm6z40lx1+zrn/gLV9cQWQiXgc18yfsUWwNz4xOON9v/Jq+rtgxUHyuazccRKJiXibI29K/Pj9qm5CfHDUB/wBO1v8A+gmv0R1GLMb1+c/7V0ZHxxv/APr2t/8A0E1aReUy5qr9DM8NL9oh/wCBV9cfsWQ7fDviX/r/AE/9FivlX4aQR3UyQyPsDN1xmvt74UaDp3hzTvM8KXg+0XADXVhfnMdyw6upJ/dn/wAdrCWh9VjqE6+Gcae57FinrwaytO8SwXshs5VlsL8dbW4+R/8AeT+8v+0talZqx+dTpTpS5ZqzJ1fApQ+ah3UbsVHKNMnzUTdTRvqnq2p2uj2E17fXMdnaRDLzzNhF+pqOU1jqcx4qX/R7j6GvybtmI1e4/wCu0n/oQr78+Kf7QMeoiaw8KqUXlW1W6Xn/ALZxt0+rf9818caz4Ii02YyxTebEP++q1oq1z7HL8PUormkjtvhjqNtHqVs1+oltowGdSM5Fdj4l8fwS308kUYigkcssa/IB9BXhB1D7PwKo3OpSTZwcCt2rnuqVtzufEvxCaUvHC24+g6CuLNxeazeRwgS3E8rBUhiXc7H0Ve9d38LfgN4m+JM8U0MX9n6SeX1G9T76/wDTOPv/AL33a+zfhP8AAPQPh1bD7BbCfUGUCXULgbpX/wCBdFH+ytZSlGmjzMRjoU9Lnz58Jv2S9T8QCG/8UTNpVk2GFjEf9IkH+038P/oX0r7T8C+BdI8DaPFpmjafDp9ogHyRD5nPq7fxGrlhpMdtgkbmrctgMH8K8urWctD5+pipVvJE68Cn0Vz3jvx1pHw88Oz6zrNx5NrH8qovMkrnoqL3JrkUObQwipTfLE4L9oP4u2Xwl8EXeoSsHv5M29jbk/PPMQdv/Af4m/2RX50Wktzf3V3ql9IZby7la4mkb+KRjkn8Oleg/Ffx1q/xa8W3Gt6p+5tYiY7KxHzLBDk9f9pu5968+1K5SzhWFTjj9K9zDUlSj5n1WFw/sY67lTUtSIyinmv0R/ZE+G3/AAgHwksZriLZqmsEX9zkfMAw/dqfouP++mr4/wD2W/hC/wAWPiAt7fRFtA0l1nvSR8s75/dw/wDAv4vZf9qv0ntx5VcWNrW/do48wrX/AHcS3Tgc0wcinLXiM8RMkHIpwOaYvelrJo0TH05elRqcUuRWbRSY+igHiismjVMKDxmiuJ8e/EzT/B8TQjF5qjD93aIfmHu390U4UpVHZG9OMpuyOi1zxFp/hrT5r7UblLa2jGWkc9a8O8Y/Em/8YRyxRPLo2hyAjAO26ul9QR/q1/WuH8W+NbrWb37bq9yLmaM7oYf+WNv/ALq/xH/aNeV+Lvin9nLgzEn68/8A1q9yhgox1Z7lHCqC5pnf614w0/RLAWtq0dtBH92KE7QPevEPGXxKaZpI7dySeN1cTrvjW51OR1VyEPoa6b4SfA3xH8X9URrOJrHS42xJqcw/dr7L/eNexaNGHNLQ6nVjFWOLitNW8ValHaWVvLfXcx+SGIZY19T/AAQ/YviT7PrPjhlupTh49KjP7sf9dG7/AEFe8/CT4DeH/hbpwi0y1FxdsB5uoXIDTSn/ANlX/Zr1e1sACC5y3vXgYvM5SXJS0R5lWvzOyGeHdGt9JsYre3gSCGNQqRRrhVH0raXimxoETApy9a+Ulqc97kgpaQdKWsS0x1OU02ioaLTH05elMByKctc8kapj160tNHFOrlkjVMcvSlpq96dXO4miY+lXoaYvenL1rBxLTHUUUVlYtMcvQ0tNWnVSRVwoooosTc8MopmaXPvX9e2R/Ntx4NKDmmbqUEUrDuPHFKGpgNKGpWHcfmlqPIpc+9Kw7j+lGTTc0bqjlKuPDUtMDUoPpU2KTHg04HNRhqUEVFi0x9Lk0wGjdU2KuOZqbmjNJWdi1Ihli3ZrPnsw27itbHFQyJ1qOU2jNo47VNGDBio/CvKviT8INK8dWjx38AScD93dIPnT/GveZbYODkVmXelq6njIrKVNSWp2YfFzoy5qbPzd+I3wg1v4d3bG4ia508n93fRDKkf7X901zGl3z20n3iMV+jev+FIL+3lgmgSeCQYaOQZBFfMHxV/ZrlsjNqPhlSycs9g3Uf8AXM9/92vPlh2tj7/L85p1koVNGc18PfivqXhO+hntbuSMoRgq3I/z6V9bfDn4xaZ4zEbxXEWk622N4Jxb3J/2h/C3uK/PJZZrCdoplaORTghhjmun8PeM7jS51eKVkKnsa4JU3F80dGfWXhWh7OqrxZ+o2layt8zQSobe8T78D9fqPUe9aWa+RfhX+0FbahbW+m6/ungjwIp0bE0H+6e49q+idM8WCC1inubhb7TnwIdRh5H+7IP4TXRSxGtpHwuZcPypXq4XWPY64PzT1aqqtk1Khr090fFE26nK1MHSlXvWbLTJB0qrcNwas5wMVUueQazsa3Pkr9u3RmufBfh/VEGTZ6l5Ln0SRG/qq18seD3/ANIYGvv79oXwd/wmXwr8Sacqb5xbm5h9fMj+dcfXbt/4FX52+H7w2t4hPy84I9K46q0P0PJKqnQ5V0Pqv4H3v9i/EXQb0thLhTZP7lvmH/oNfao4r4B8EXR1CyRIG23UZWSJs9HU5X+WK+1Ph34uj8X+F7LUAcOyBJV7q44INRhndtMw4hotKnWW2x1LNWVqT8VoO9ZOpNwa7LI+Jufnx+123/F6ZP8Arwt//Zq4rQj/AKOn0rtv2uoz/wALnkP/AE4W/wD7NXD6IuLZPpXHNan6nlz/AHNN+R9YfsQDc3jE/wDTaH/0GvqfHNfLP7Dgz/wmP/XaH/0GvqgjBrOx8dnEv9skUr1f3b/Svzq/a54+OF1/15W//s1foten9030r86P2uT/AMXwu/8Arxt//ZqpG+Tv9815HCabdTWkSywsQwr0LwL8ddR0G5RJpm2KfWvPtJTfDsPQiuc1iWCy1MwF8E0nFPc+6UnBaH6BeB/j7pnim0itdU8u6QYKlz86H1VuqmvU9G1+7aESWFz/AG9aY/1TsoukHsfuyf8Ajrf71fl9pOu3ukSLJFMyqO4PNe4/Db4+3GmyxrczkYx+9B/mK53T7GdajRxMbVUffWka5Z6vHIbWbzHiO2WJlKyRN6Mp5H41fDZ6V4Z4V+L2i+NY4Xu22XSqFjv7V9kqD0z/ABD/AGW+WuQ+Onj7UVnXSm8RfbtPRMNFap5Pmf75X73/AKD/ALNRr1PnJ5G1L3J6Ho3xC/aM0fw2JbTQ9muaoOC8cn+jQn/ak/i+i/pXzV4v+Jus+NLw3Gs373rA5SAfJBH/ALsY4/4Efm/2q43VfFYVWjQhUH8CdPx/+vn8K4bVvFMl0WEbYHtTULnuYXA0sKr21Ov1jxZFBkGTzHHRQeB/QVxOp+IJ9QYgNhewHSsaSaa7uoreKKa7u5ztitrdd8kp9FXvXvfwp/ZZ1LX/AC77xY/2OzOCulW7/vG/66yD/wBBX/vqtVFRRrWxkKSvJ6HkXhDwHrnj/Ufseh2TX8wO2SXkQxf774PP+zy3tX1b8Kf2RNG8OyQaj4gkGv6mpDKrLi2iP+yn8X1b8hXt3hDwTYaBYQ2WnWcVrbRLtWONQqqPwrtYLJIlHG5vXsK5p1Hsj5jE5lKq+WnojJ07QIoK3ra2WJcAU+KAAZxUoGK4ZXZ5adxq9asJx0rzz4gfGnQPAbyWhdtV1lRkabZnLL6eY33Yx7t+VfOXj74wa742Z49SuxFppPGl2DFIP+Bt96Q/72F/2amNJs9TDYGrX12Xc998cftCaZowmsfDyxazeoCr3hY/Y4z/ALwI8xh/dU/8CU18y/EPxHqfjK7a71S8kvJsFVeTgRqf4UT7qr/nLVyur+MvswPIFcRqHjue7nKhvl+tdtOgkfT0MJSw693fuT+J9RSwhcA5A9O5rC8CeA9d+LXiyDRNFiLzStumlP3LeP8AikY9hV3UANQtvm5r7M/YtsdJf4Tiays4re/S9lhvpEHzSspyjMfXawrWpP2ULonFVXSpuSPUvhR8M9K+F/hOy0TSosQQDc8pX5p5D96Rv9r09q9AiXLc9BUVsBzVgcV89O8ndnyfPzaslHtS0ynA5rJokcppabS7qyaGhwOKN1JkUZFQbIkyaVpUt4mkkOFAzzWP4j8Uad4U0x7/AFO5S2gX+Jzivnf4h/F298Xh4C76fpH8FsjbZJh/009B/s1tSw7rOyPRw+GnW16Hd/ED40uwlsPD0iqBlZtRcZVR6R+p968F1/xRFZ+a4lZ5X+aSeVsySH1Y+ntXM+J/H8djEyK4CqMKo4C/h2rxzxH41udQdwrnYe/XNfQUcLGmrI+hpUYUF5nS+L/iM0zSRwPn1avL7q8vNavVhiSS5uJThIoxlmPtXSeAvhz4j+KetLp2hWbTjIM9y/EcK5+8x9K+5/gj+zLoPwtgiupoU1XX2GXv5UyF9o1P3frSq4inh99WYV8TGK0PDfgT+xpPqRh1jxwrW9scPFpSn53HbzG/hH+zX2r4d8LWehWENrZ20dtbxKAkUS7VUfStKy05IQCRlv5VoKmBXzOJxU6zd2ePKrKbGQQhBVyGPuabGmeT0qcEYry2ShQcU6mUqnFYtDQ8HFOplKDismjVDs04HNNoHFZtGyY8HFOplPHIrCSNEx9OHSmL0py9DXNJGqY4cU6mU8c1g4miYq9acKYKfWDiWmOooHSisbFoVetOplPp2KuFFFFKxNzwbcKXNMor+wOQ/mfmJAcUBqYDinA5pcpXMPB9KUNUdKDU8g+Yfupcim0UuUfMOBpQcUyjNLlKuSBqAaaDmipsWmSA4pd1Rg4p1RylJjgaXNMozU2LuSL3paYp4p4NZtDTCkK5paKysaKZEYwaieDINWqCOKixaZg3NkHzxXP6npAdW+Wu2eENmqNxZ7weKlo3p1GmfNnxU+BGl+NI5LiONbLVAPluUXh/Zx3+vWvkzxb4P1XwPqklnqMDRsp+WT+Fh6g96/Sm+0sOG4rg/Gnw/wBN8U6fLZ6laLcQsO4wy+4PauWpRU9VufX5dnM6PuVdUfBOleIZLOUFXKkGvdvhR8er3w5MImlElu/yyQS/Mjj0INcH8VPgNqvgh5r6xD6jpIOTKq/PF7MP615zpt88DgE4IryqlHoz9Bw+KjVjzU3dH6X+BfHVprNgLnQ3NxEBmbSpWzLH7xN/EvtXoWmapb6rbia3fcOjL0Kn0Ir83/h/8Tb3w3eRSQzsu0g8HpX118OfivpvjCON3uU0zXcAfaycQ3P+zMvZv9qlSrSovlnqjyMxyWjjU6tD3Z/gz3MU+sjStaF3IbadDbXiDLQsc5H95T/EK1a9OMlJXR+a4ihVw0/Z1VZjy1QSnKmlL8VGW61djJMxNZ/1Rr8zPjX4Nl+HXxK1fTolK2csv2qzP/TCTJx/wEll/wCA1+m2oxhyQeRXzR+1Z8I5fHPhZNT0+LdrWjh5oIwOZU/5aR/1X6f7Vc1SF0z6HKMX9Xr2ez0Pn74a+KjBLES+CCAea+sPhl4wTw3qP21WxoOqOEvAP+XS46K/+63evgXQr97C5V8lcHDKex9K+ofgn8RIIT9kuwtxZzgR3ED8iRPf6V5bTg+ZH6U40sXRdGpqmfbZY1Tu135zXG6Drv8AwhlvAlxcNf8AhacgWuosctZE9EmP93/artboq6K8bq6OuQy1306qmj8xxeAqYKp7Oep+f/7Xij/hcsn/AF4W/wD7NXA6QQLVPpXd/teS5+Msn/XhB/7NXnukyf6KlZzP0DLv92pvyPrb9hs5Xxj/ANdof/Qa+pZGr5W/YYbMXjE/9N4R/wCO19Tyc1mlc+Lzd/7bIp3jZif6V+dP7XR/4vfd/wDXjb/+zV+il0f3T/Svzq/a6H/F77v/AK8bf/2aix1ZM/37OP0Qf6OPXFdt8IfB0XibWPFazwR3UKxW6mKVMj/lpXE6J/x7j6V79+yTZ/btb8ZsP4Y7X/2pUJ3dj67MJqFBs8+8Wfs7zWJkn8MSeV3OlXhzGf8Arm3Vfx+WvLr3SLrSL97S8t5tKv16wXAxn/aVvusvutfond+FYpVbdEpB9BiuO8XfDLTPEdi1pqFlHdw/wrKOU91bqDTseBhs0cHyyd0fFWjeL9R8PXIaOR1Of4T1re1H4gXmvgiU8+ldH8Q/gDrXhrzrjQ1k1rTxybeYf6ZEP9k/dkH/AI9/vV5HuMLv94OhwyMu2RD6FahxPpqOJhWV4M62z8Pav4jnSGyheUt/drqR8APFlh4p07SfEEdt4V0+9/1Os3DrPBM39yJ1+XzP9mRl/wB1q4jwv41n0e6RvMKgHIINfTPw+/aBTUNLk0vVoYNS0+4Ty5ra7UNFIvoVNZvQ2lFyVj0v4X/s9eHfh1AGsLUzai4Hm6hdjfNP+P8A7Kvy165p+hrEAZOv615z4LuntoQ3hC/S7ssZbw1q02Sg/wCne4b5l9lk3L23LXpHh/xPY67JLbp5lpqNvgT6ddr5c8P4H7y+jLuU1zOd9D4/G4SvTbm9UbNtCsSBVGAP1q0oqleX1tpdjPe3txFaWkC7pJ53CIg9yeK8E+Iv7TMjebaeDrZGQZVtbvYmEQ9fKjOGk/3m2r/vVha5x4fC1cRK0Ee5eK/HGh+CNNa91nUFsosfu487pJj6Iq/Mx/3RXzx8Qv2htY8R+ba6UkvhnSzxmP8A4/5h7t92H/gO5v8AdrxXWfFE11qE19e3suoajKMPe3ThpCP7q/3V/wBlflri9Z8crlo4iWboWNaxpn1eFyynQ96pqzqtV1+CxhdEIjjJLMM5Lt6sTyx9zXDax4zmbcsZ2j1rn73VZrxyWYn610PgX4Q+JviUSdJszHZH72q3albb/gHeX/gPy/7VdMIKJ6dSpGnHXRHHajrjSbnklwCcbmPf0qhp+orcyyp5U8LRthkuI9jDr2r7B8Jfs06H4EMV7Osus6wuD9vvFB2H/pmv3Y/+A/N/tV80/F6D7J8Xtcgz91Ih/wCOVqpRexw08V7SVkX7GQSWg56gV9b/ALB94G0PxhY5yY7yGbHpvjYf+yV8Y6ddMkIGe1fXP/BP1zIvjljz81l/OWuLE/ATj3eiz69gTAqWkXjNLkV4tj5JMeOaKaDinDms2jZDgc0tMHFPHNZ8tykFcP8AET4q6X4HtniDreaqw/dWaNznsX9BXBfFD49ppxuNL8PyLNecrNfdUh9k9W96+cda8VHzprm5naWeQ7nmkbLsfc120cNfWR7+EwDladXbsdh4v8f32vXzXmqXP2if+CMcRxeyj+teSeKviF5e8JIQPaua8VePWlLxwtwfSuNsbTVPF2qRWGn201/fTHEdvAu5m+gr2oUuVHtynCmuWJJrHii41CR8MVT+dex/A39l3WPiO0Oqa6JdJ0EnK5XE1wPRQein+8a9c+A/7INj4a+zaz4sVNR1TAZLHrBAff8AvN+lfVen6ZHBGsaIAqjAVRgCvNxGNULwp79zx6+LT0ic/wCAvh/pHgnR4dO0iwisbSMDEaDlj/edurN7muyhtwnbn1NSQ2yxD1NTKvtXzs5ubbZ5bk5O7BFqXFA6UVg0NDxx0pQ1JRWVjVEimlptKprJo0Q4HFOplKDisWjREmaWmU+sWjRDl6U5e9MXvTl71izWJIvenL3pi96eveudo1iLTl702nL3rFo0QtPplPrCSLQq9KWkXvS1hYtBTxyKZTl6UWHcWm5NO7GmVIjwTNLTM0A1/Y1j+YOYfSg0zdSg1NilIfSg4pgNKGqLFpj8ilzTAaM1PKVcfSg4pu6lzRYdxwOaWmUoao5SlIeppaYDmlBxU2LUh1FIGpQc1FilIfSg+tIOaKjlLTHil3VHnHejd71HKUmSbqTNMDe9KDU8popCkcU0rwafRUcpSkZs9sGJrLu9MDg8V0RQGo3gBBqeRGqqNHnmr6AkyOjoGVhggjIIr5u+LP7NUNz52o+GVW2u+XewPCSf9c/7v+7X1/e2YYHiue1DShKrArXNUpKSsz2MHmNXCyvBn5ryR3Ok3clvdRtBPGcMrDBzXUeGPG0+jzq6SFcH1r6b+LPwR0/xtbyTKi2upqPkulH3vZv8a+RfF/hDV/BOpy2OpwNEw4D4+SVfVTXkVqDifpuX5lTxkUou0ux9f/DL472ur2NvpussZ4o/9VMGxNEfVW/pXv2j+L/s6QpezLcWM3FvqcZ+R/8AZf8AutX5f+H/ABHNpcy/OQAeDX0V8JfjhLpP+iXTLdWM2Flt5eUcf0PvXHCUqTvE7sXgqOYQ5Kq16M+3C3Wkrzbwp4tihsVu9NmbVdCxmSAnNzY//HEr0GxvYNQtUuLWVZ4HGVdDkGvVpVY1FofmGY5XiMvlaorx79BbmESKT3rnNX01bmJ1ZQciuq7VRvLcEEitrHmwkfCf7SnwOk8P6jN4m0OAnTJT5moWiD/j3f8AvqP7rf8Ajv8Au14zoWvT6NcJJE52A9u1fpJrWkiZJVeNXRwVKsMgg9j7V8kfGX9nSXSXuda8LW7SWfLz6aoy0fqYx3X/AGa46lK60PuMpzOOlKu7eZ2Hwh+P72Sra3TLPaSDbJDJyso/uste1aXfiSH7V4I1KJFIzJ4e1KTEJ/64v1j+jfLX53W2oSW+cV2Phn4o6roci+XMWRegJOR9DXlShKLvE+wn7KvHkrxuja/afu766+LbtqWmT6TdizhV7edlbsfmVl4YH19jXI6Wf3Aq78QfEo8c6vFqlyzPcpAsOWbPC5/xqlpf+oFbJt7l0qcKMVCnsj6x/YWP+g+Lz/09xj/x2vqs9DXyx+wtDjSvFxz/AMvkf/oNfU56V1wV0fnOcu2MkULs/I9fnh+14P8Ai911/wBeNv8A+zV+h93916/PD9rz/kt93/142/8A7NQ4nXkmuIfocZofNuPpX01+xZZZu/G7kc7rUZ/CSvmnwTdWy3aC5/1Q+8K+wvAl74LvLGz/ALGl/wCEY1mNAkeo2fzb/wDZuIj8sw/3vm/utXA3yyufZ4rDSxVFwi9T3b7IrL0FUrrSI5QcrXM2HxJn0KSO28X2sNmrnEWt2O5tOn/3m+9Cx/ut+dd3DIlxEskbrJG33XXkGt4zUtj88r4ephp8lRHD6p4ZDK2FyPpXkHxF+BmieMVd7m28i8A+S8g+WVfTJ/iHs1fSctuHB4rGv9HjnVvl5q9wpV50XeDPzk+IHwf13wHM73kJvtP/AIdStVJA/wCug/hP1+X3rlLO8utMcPE5KjuP6jtX6Oal4XWRXBQMDweOteC/Eb9nHT9Wlku9F26PfclkRcwS890/hPuvrUuKZ9RhM2UvdqHlvgP4yXWjyxh5WAU5HzdPoa+k/Cfx40fxXbW9trMa3vlf6qQt5dxAfVJB8y/jXxr4o8F6p4SvzbaravYS/wAE3WGX3Vuh+n3qyrfULu24z0rlnSTPpadWFRXWqPrD4wfEA6vqxt21S71Ows+IReOu1f8AaZF+Ut/tN81eO6z45X5ljO8+vavOpNevJ+JGYj60/TLO81zUIrOzt5ry6lOEgt03u30FTGmkF401aCsi5qWtTX8h3OWJ6AdKm8KeC9c8b6kbHQ9Om1C4A+d0GIYT/wBNJDwo9uW/2a99+GH7IUt+Ir7xjceSpwy6TaPyf+urj/0Ff++q+qfC3gfT/Dmnw2dhaRW0ES7VjjQKoH4Vq2oo8SvmUaTtDU+e/hZ+yDp1gYb7xbMuu3qkMLQKVsoz/u/8tD7tx/sivpHTtAt9MgSGCJURAFVVXCqB0AFbttYLEMkc1Ls7YrjnUb0PnquJqYiV5vTscX4j05VhJwOa/OD4pOdR+LviWfrtnWPP+6oFfo98S9et/DPhPVtVuseVa20knPqAcV+aFm8uoT3F/cfNPdSNM5PqxzW1Ha57eXRcm5D4x5cJNfan/BP/AEv7P4G8T6iRzd6ksQPtGgP/ALPXxVctsjIr9IP2WPBz+DPgf4ZtZU23NzCb+b3aZi4/8dK1livgsdmYTUaVu567uo3UlFeOfKJj6dUe6uY8c/EvRvh7pRvdUlYu52wW8YzJOw6hRStc6qMJVXyxOg1XW7LQdPlvtRuY7S1iGS8hxXzJ8Vvjpe+LBLZaW76do5+UtnE1wP8A2Va4X4h/FHUfG1+13qdzsgU5is1OI4vr6mvJ/EnjQxhhGxx6+v19K76OHtqz67C4GFFc09WbWs+KEtwyRnLegry7XvFk+oyMquQnrVDVNdlvmZVJSL9T9a9m+Bn7Luo/EJ4NX11ZdN0LOVBGJLgew7L/ALVehaNGPNM6q1eNOOp578M/hB4k+LmsfZdMgMdqrf6ReyAhIh6f73+zX3n8HvgL4f8AhXpypY2/nXzgedfTDMsh+vZfau28HeCdL8JaZDp+lWcdpbRjAWNcZ+tdXDAF5xzXi4nFSq+7HY+arYt1dI7EFtbRqOFX/vmtCKMAcfypUAHapVIry2jjTY9ABT1pgOKUNWVjRD6KAc0VDRaYq06mjinVg0axY5elLSL0NLWbRrEdRQOlFYNGiY8dKcOlMXpT16Vi0aocvenL1pi9aeKxaNEPXvTl601etOFc7Rsh1KvekpV61k0aIdSr1pKBxWDRY+nDpTacOlZWKQ5elLSL0pamxSEPSm0ppKzZSZ8/bqXIpmRS1/ZVj+V7jwaUNUYOKUN61NikyQGlzUYpQcVFi0yTdQDmmbqUHNTYq5LkUU2ilYdx4OKUN60wGlBzU2KTH0oOKYDilDVNi0x+RSg4plFRYpMmBwKM1FupQc1Fi0x+aKaKd0qbFphTxyKaBmnVFikxynilpgOKXdU2LuOpKWis7FJlWWINmqM1mGB4rUYdaiZM5qHE2jI5e+0sMG4yK4Dxx8OdN8V6fJaaharcREHBI+ZD6g9q9fktg+eKyr3TgQeKwlBM7qGInSlzQZ+d/wAVPgtqvw8uXuY4nutFdsJcKM7PZvT61xelanLYuCGO3+VfoxrXh+K7t5oJ4Unt5RteN1yrCvlT4wfs7T6K0+r+Go2nsuWlsurx+6+orya+Gcfeifo+V53HEfu67tLuQ/C/4w3nhy7jeOcgA888Ee9fUPgbxlB4gc6hoEsNnq0p3XOlO222vD/eT/nnJ+h9u/56W9xLaSnGVZTgqeK9D8D/ABFudHuI3SZlKkdDXm8rT5o7n17dOtB0qyumfo3oPiK11+KTyw0F1Cds9rMNskTehH9avSjOa+ePBXxVsvGMcMkt+NL8RRgLbauqbt3+xcL/ABx/+PLXr/h3x2mpXjaRrEKaZr0a5MKvujuF/wCekLfxKa9LD4hT92e5+d5rkksI3Woaw/I2rqBZEIxXK6vpWQ/y5B7Yrr25+lVri1EqniuuUbbHy0ZuLPmf4ofATRvGYlu4oRpurEZF5brguf8Apov8X86+cfFnwg8U+EGZ5bI3dop/4+bMeYoHqy9Vr9D7rRVcH5fyrn9Q8LrID8mfw5rnlSjJao+gwecVsO+WWsex+cwHFbOkNujAr3/9qDwFBF4OTWYII4LuyuQJpI0+Z4zxz+OK+dvDM26cqTXnTjys++wWLhi4c8T7E/Ykn2p4us8/vQ9tNj/ZIZf/AGWvqLPFfFf7OviIeD/iZYuz7NP1ZP7PlJPAf70Z/Qj8a+z8100tj4vPqbp4nnf2ivdfdavm/wDaj+CQ+JFtaarpYEfiCwQxrvGxbiH7xiZv4fm+63+0396vpCYbs1i6zZfaLcttywGCPUVo4niYfETw9RVIPVH5bavp1/oGoS2N/azWN3H9+GYYYVreHfHd/okq4lYqD619r/EX4W6T4xsWh1GyWUgfu5lGJYz7N/Svl/x7+z3rPhsy3GmA6zZLzhR/pKD/AGl/i/4D+Vc0qVz77B5vTruz91no3w5/aClSP7PdSLPbuNskMwDK49CD1r2XwnfiMfbPBWpx6cX+aTQNRlZ9PnP/AExf70DH/vnmvgGCWaxl3RkqQcEeld54P+Kd7osq7J2UDqpPBrkdO2x70uSvHkrRUkfoV4b8f2msagukajbTaF4gxk6dejb5nvE/3ZF91JrqZrQg8rzXy/4M+M2leL9Pj03XYY9UtRgpFOcSRt/ejb7yt/tLXrGg+I9W0GFW025k8ZaGo/4852U6rbj/AGW+7cKPT73+9Uqq4u0j5bGZJa88K7rsd1PYgg8VhaloSzhvl59a1fDnjHRvGFs8ukXi3OziS2cFZ4j3EiH5lNXSAa6ou6uj5dxlTfLJWZ5N4k8FWuq2ktrfWkd1buMMkihga+ePF/7LlwDJc+GphGOv2C9dtn0STGV/4FX2rdaalwDgAH0qtHoYU8gCoc0tGd9DGVaHws+KPB37KfijXp1Oqm10Ky674pVmnb/dX7v/AH1+VfU3wz+Cvh/4eaf5WlWY+0OB5t1L880p9Wf/ANl6V6LZ6YsY+7+JrWgt1QdMVjKemhrWzCrWVnsVLDSljUEitNI1QYApyjAormdzi5r7hTMU+vLPjn8arH4S+HZCCl5rl0hSxsg2Mt/ff0UVly3Z04eEqsuWJ4h+2l8S0uxbeA9Pk/eOVutRZT91B/q0/wCBfeP/AAGvmLAhUip7u7ur+8u9S1G5e81C7kM09xIctI56n6egrJubrJPNd8Vyqx91hqKo01E6v4YeDJPiP8SdA8OxglLy6UTsB9yBTukb/vkGv1Sghit4kiiRY4kUKqKMAAdK+T/2F/hY2laHfePNTg23eqp9m05XHKWqnmQf9dGH5L/tV9Xg8V52IlzOy6HgZhWVSpyroS9jUZNLjNfN/wAZv2jyvn6F4SmWRwuy41X+GP8A2Y/U1xqDZxYbCzxEuWJ2fxb+PeneBopNN08rqWusvy26H5YfeRv4fpXyX4i8Z3er6hLqWo3b3l7Ifvufuj0Ufwj6Vzmp6wYnlbzGkkc5eRzlmPqTXFaz4gkkZlRseprvo0EtWfY4bCwwsfM29e8VfeBfJ7KK5FGvddv47a3ikuJpm2xwxDJJqx4O8Ga38SfEMelaLavd3Tn5n/gjH9527D3r73+Av7OulfC62+1yn+0PEEn+uvf7n+zF/dWumdSNJXMcRjY0dN2ed/AL9k+PTxBr3jCIXN4MPDpjfPHD6GT+83+z92vq/T9MSCNURAiKMKqjAAqe0tViQKowBVuNNteFWqSqu7Pma2InWd5EsUCqOlTqopqdKkXtXLYzjsPUClJxSLSnpUtGiFHSigdKKyaNUPpVNJRWTQ0x1OXpTQc0q1g0aJj1606mDin1m0bJir0paRe9LWDRomOXvT171Gvenr3rNo0THDinU2nDpWMkapjxT6jXpTx0rnaNUx4pRxSL0orJo0TH0UUVztFpj6cOlMXpT16VlYtMcvQ0E4pAcUZpWLTEoyKQmkrJodz58opmaXPvX9lWP5TuPBpQc1HupQRU2KTJBxShqjBpQ1TYtMkzRTMilBqbFXJaXJqPd70ob3pWHckDUoqLdSg1Ni0yUGlBFRhvxoDVFikySlyajDUufepsVceGpwNMpQcVnY05iQHNPBzUIb8KcGqbFJkoOKXIqMN70u6osWmPzRupuRRU2KuPoplFRYpMfSEcU2iixomNK1BNFuU1ZxTSvFQ4I1U7GNcWYYEEVgajoocNhcg9q7KSEEGqc1tkHisJQOmnUad1ufKvxh/Z6t/EIm1LRkW11cfM0QGI5/8ABq+XL/T7zQ7+W1u4XtbqI4aNxgiv0y1HSxIGwOa8g+KvwZ03x3aOZIxb6ig/dXSDn6H1FeXWw19Yn3GWZ44WpV9V3Pkbw74sn024VlkMbA9QetfR/gD4p6f4m02HSPEO9lQg215E22e0f+9G3b3HSvmfxl4I1XwRqj2epQMmD8koHyOPUGotC8QS6fKoLkAHhvSvJnCz13P0GjWjUhdO8Wfop4Y8aXWlT2+l+IZUmScYsdZjGIbwejf3X9RXogt6+M/hb8X4Xs/7H1mEahpFzgSWrHnP95T/AAt/tV9HeEvFX9hWdvHcXx1Tw5IQltqbf6y1J+7HP6f73tXRRxVnyVD43Ncj3r4RadV/kd5JBwaoy2uSeK1GbOaiZcg16tj4VHmPxL8Ir4q8NarpLrn7VbvCpPZsHYf+AsFNfnfBHPoeszWlyhint5WikQ9QQcGv1F1CAEk18K/tZ/D4+G/F8Xie0j22WqP5dztHEdwP4v8AgS/+PK1edXp9UfYZDi1Tqeyk9y14IvYtSt/IMnlvwUkHVHByjD6ECvtL4WeNf+Ez8OQ+ccajaYguk7h/730brX5ueBfFcmmaguW6H86+uPh14jm1D7Pqeg4OtWkYR7ReFvoe8f8Avf3TXHCr7N6n1mZ4D+0MO4w+Jao+ncVBKmQao+FvE1p4s0tLy0bnpJE3DRt3UjsRWqVzXqJKS5kflcoTpScJqzRiXOnJNnK9a5zVPDiuGIX9K7prcHNQSWocEEZqXGxtTm47Hzp8QfgZovi1ZJZrb7Ne44vLcbX/AOBf3vxr5f8AH3wh1rwPOzzwmezz8t3CMr/wIdq/Ra90dXBwPwrjPEPhlbiGRTGrqRgowyDWMqaZ9Bg81qUXyyd0fnpYatd6W4IYgDuK9R8FfHDUNIdFkmaRBjq3I/Gur+IvwEt5TNc6IF065OSbZ/8Aj3b6D+H/AID/AN81886raXWgX5tNStn0+67I/wB2QeqN0YVySpdz7PDY6FbWLPtTQ/iLonxAkhurqaXTdbjULFrVgdlwg9JB92RfZq9N074han4biU+KIEvtK4A8S6WpaDHY3EX3o/8Ae5X6V+d2ieJbvTJlkgmZCvoa+hPhP8ebjTpoUmmwRwVY/K3+FcnLKnrE6cRhaGMjaorPufaen3VpqtrHdWVxFc28gykkLhkYexFX0twPQ14f4f8AEPhq+la80fUJ/CmpyfM8mnhWtp29ZbY/Kf8AgO2u10vxb4hjXaV0fxHH2l0+6+yzEepjk+XPsGqvaKXxHylfJMRCX7r3kd+qgVJXGReP70f63wrrWPWKGOUf+OyVYX4gSOPk8M6vn/pssUX/AKFJR7r6nnf2di07cjOuAzTwM15TrXxiv7OKUwW2laayd729+0Of+2cX+NeJ/EH4q3Wuq0WoatcaihP/AB758i3H0jXr9WZvpUNI7qGT4io/edj1b4sftGaZ4UWaz8PtFrGqJlWmLH7HAR/fbPzMP7q/+O9/i/xj4k1DxLqt3q+rXb3l9McyzyH/AMcUfwr7VZ8T+MoQWiiYOw4CJ91a4PUNSe9kLHj2pxikfU4bA0sKrR1fcbd3xkyAcV2X7P3wXu/jV44MUwki8M6e6yapeD5dy9oVP95v/HR8392qnwm+DGu/GXxF9i00Na6TAR9u1aUfu4l/ur/ekP8Ad7d6/RT4c+AtI+Hfhy10PQ7UWthAMZb78rfxSOe5anUlyxOTHYxUlyRep1ulWsGmWVvZ2sSwW0EaxxxIMBFAwFFT6hrFno1hNe39zHaWkK7pJpWwqiue8X+ONJ8CaJcarq95HbWUQ5Ynlj/dX1PtXxR8VPjZq3xWv385WsfDit/o+mE/NKP703/xNefGDlueLhcJPFyu9u56J8Yv2jL3xx5+k+H5JNO8PnKy3AOJbwf7J/hWvBtT1pbVTHGQAKzdR8ReSGRTk+tctd6hJcs3zda7IwSWh9lThDDw5YKxZ1PWmmZlRvqa6r4S/A3Xvi7qINujWejow8++kXjHcL6mu3+Av7Ml78QJIdY11HstByGRGGJbsf7P91f9qvuTw34asfD+nw2Gn2yWttEAFjjGBSnU5FoeRi8wUE4w3OZ+Fnwg0b4d6PHY6TaiJcDzbhhmSU+pNejW1osGcdxipYUCqABgegqYDFeZNubuz5hzcndixrxUqimqRingjFc7Q0yVehp1RhqeGBrOxqmODUtNpQcVJSY4HFOplKDisjVMcDinA5ptA4rFotMeDinU2nDkVg0aJj6cOlMXpT16Gs2jZMUcU6m04c1g0aIVetPXrUdPrJmiY+nL0ptKvesJI1ix696evSo1709e9YNGqY9e9LSL3payaNLjgaWmU8cismjRDl6U9elMXoacvQ1lYpMWiig9DU2LTG5pu6g0lZ2Hc+edwozTaK/svlP5OUh4OKUNTAcUoOamxaY8H0pQ1MpQaixSY/dRkU2ilylXJN1LuqPdShqVirjw3vTt1R0A4qbFJkganA+9Rg5paixSkP3U5TUQOKcrVNi0yZTxS7qjVuKUNWdi0x+6lBptFTYpMeGpwb0qNTS1Fi0yQNSg5qPJpwNS0UmSjmimg8UZNZWNEx1FNyaMmlY1THUUUUguIVqNkzmpaCKho2jIoTW4YHisi+01ZQeOa6NlzVeWAEHisJQ7HTCdjyfxp8P9O8T2EtpqVqs8TAgEjke4NfG3xW+D9/8ADzUGkRWudJkb9zcgfd/2W9DX6FX1kGB4rkfEHhm21Wzntrm3S4gkGHikGQ1cFbDqovM+my3NqmDlZ6xPz20jVZtPlUhyAOhB6V7v8K/jTcaLKIpZFlgkGySOT5kkX0Yd65b4wfBC68HzTaro8bz6OSTIgGWt/wD7H/aryi0vJLWTKk/SvAq0XF2Z+oYXFU8VDnps/Qzwp46g0iwW7sS114ZGPNgBLTaZnv8A7UP/AKDXqdlewajax3NtKk8EgDJIhyGHsa/Pf4b/ABWvPD9zGVmIUcEHkEehHcV9KeCvHqWEZ1TRGNxpkn7y/wBEByYP700H+z6rVUMTKi+Sex8/m2SLFJ1sMrT7d/8Agntt1GrE5rzn4k+CrHxjoeoaVqEIlt7qMqfVT/Cw9GBwa77TNUtde0+K8s5VmhlGVZf5Vn6nabmIIr3FFTjdbM/PISlSnro0fmX428D6j8OfE1xpF6CQp3QzgYEqZ4IrsPhh8R7nw/qEOZmRlIwc9a+rvir8KdP8f6NJa3aBJ1Ba1vVHzQN/8T/eWvi7xr4D1j4f6w1lqluYnzmKZeY5V9VNeRXouD8j9NynM1XgoSfvI+7fAfjKw8YSjVdG1CLS/EhA84Oc296PSRf4W/2u/evT9K8Y28t0NP1aA6Nq3QW9yfll/wBqN+jCvzT8IePr3w/dRuszIVPDKa+jfBX7TEV9ZLpuuQ2+o2TcGO5Xcv1HdT7iuenUnR+HVHoY7LMPmC5paS7n17UeK8Q8OeP9FmQNo/iG90dj/wAut232y2X2Xd8yj6NXZWfjTV3XMcugasnrBetbMf8AgMi/+zV2RxUH8Wh8bX4dxlL+G1I7aVAc1n3lisynjn1rDHjHUTndoaE/9MtWt2/9mrIvviZd2oO6y0q1HrdaqG/9Fq1P29LucqybHr7H4jfEHh5Z0cbM56ivnr4v+HtKt9PmtNVijlEn3Lb70r/7o+9/wKu48YfFm7keRTrkca/889IttgPsZJdzH/gKrXhfiDxTaG4mmjBE7/fnkdnkk/3nb5jWDrKWiPpcDlFWkuarO3kjze38Iz2BmeRpIoHO6KGY5eNfQn1o+0ixBEfUd6t6prLXbsFJ5NVbPTLjUZlihiaWVyFVVGSTWe59MlYltfFuqWzZhd1x6MRXT6X8Zda00BZC7gdmJNeg+EP2aZX0Uy61dSW2oTfMiRAFYV/usP4jVfUv2bNTjJ+yX9rOPSQNGT/6FS5EzgWY4bmcVMwoP2gtS5BD/rSy/Ha/kBwG/Wobr4A+Kbcnbp0c/wD1znU/+hYpifAzxWemht/4ER//ABVT7OPY6VjaT/5eIoXvxc1W6J2sVrl7/wAQ3+pOxmnY57Zr1DTv2bfF12AWj02xH/TWVnP5KtekeF/2RrXKSa3rF1fsMfurKNYEHtu+Zvy21PIYTzHDw3kfLcVlNcXkVvFHJdXMx2x29ujSSSH0VVBLfhXv/wAJ/wBknVfFbQXvi4SaFpRww06Li7nH+0f+WQ/8e+lfTfgf4UeHPA8O3RdFtdPcgBpgu+Z/95zya7+xsREuerHqaWiPCxGbOd1S2M7w14X0zwppNvpmkWMNhY26hY4IECqv+J9zVD4hfEbRvhl4dl1XWJ9uTsgtk5kuH/uqPWqnxT+LGjfCXRTe6i4mvZRiz05D89w39B718PeNfHGr/EDX5Na12fzbjkQ26n91bJ/dQfzPeuRpzd2RgsDUxL9pV2LPxF+JGt/EzWTqesyGO0jP+h6ap/dQDs2P4m/2q4m/1UIpVTUepanvyM8Vhpa3Oq3cdtbRPcTyttSKMZZj7Ct4RSPsIRjRhyRIJ7lrst82B7V9Qfs6/sqfajF4g8Yw/ufvwaU/8f8AtS//ABNdZ+zx+y9D4TSHXvEiJd61w0NqRmO2/wDij719O2FgIRzRKVj5jHZlzN06T+Y7TtOitIVihQRooAAUYAFa0ECoM96bbxDGe1WK4Jau7PnnNt3Y9FFO6U1e9OrE0TFXrTqavenVk0WmOpQcUlFZNGqZIDTqZTlNYtFJjgcUtNpQcVmzWLJM0Uyn1m0bIcvSnL3pi96evesWjRD1705e9NXvTl71kzZDqVe9JSr3rBosWnjpTKcvSs2jVDx0py96avSlXrWEkaoevWnr3pgpw4rFo1Q9etOpo4pwOaxaKQU5elNpy96yaNUxy96evemL3p696ysWLSGlpDSsUmMPemZNOPemVlYs+d6KbmjJr+zOU/kq48HFOzUYalBpWKTH04H1qMGl3VNi0ySimA0uTS5R8w8NSg0zdRkVnYq4+lHFMBpQ1KxSZIDmimA+lKDiosWpDwcUoNM3UZFTYpMlBpwNRg0oOKzsWmSjmlBxUYPpTg1TYtMeDmlHFMzSg1FjRMkHNKppgPpTgamxaY+lBxTN1KDUWLuPpaYDTgamxSY+lFMBxSg1Fi0ySjtTBS5qbFJ2EIzUbLnNSUYrOxqpFOWEMCCKzLuxznitwrULxZBFZONzeFTocFrOhJcRyKY1ZWGGQjIYV8r/ABl/Z+l0xp9c8OQM9rktcWCjJj9WQf3f9mvtS6sgwOBkVzupaVuDELn1GOtcdWiqisz3cBmNTBT5ovQ/Nu3ma2l69K9D8C+P7rQLuKSOVlCkHg9K9G+NPwEF75+ueHYQlwPmuLKIcP6sn+1/s189QyyWsrI4KuhwQa+erUHB2kfrOBx9PFwU4M+0/h/43+zzy6toce9nxJqOhQnas/8AemhXtL/eH8Ve5aPq9h4p0qLUNPlE0Eg/FT3Ujsa/PTwP49uNEu4pEmZChBVgeV/+tX0n4E8fzec2saMolnkAOpaOpwt4O8sX92UdePvfXqsPiJYd8stYnn5vk8MfF16GlRfie23un5DYGR3FcP4y8D6b4o02Sy1GzS8tmz8rfeQ+qnsa9B0XWrLxNpkV9YyiWCQfQqe6sOxHpTLzTxIDgYNe77tSN1qj81UqtCbtpJHw18Qf2edZ8Nma50LfrWnryYcf6TGPp/EP938q8t+xSxStGweCVTgpINrA1+i9/wCHllySMN2YCuP8TfDDTfEMbLqemwXfGBJt2yD6MvzCuCeFT1ifVYDiCUPdrq58T2mr6ppbBop3GPeuk0z4t6zYcO5ce9ezar+zLYvvbTNRntG6iK4USp+Yww/HNc1d/s367Hnyp7C4HuSn8xXG8PJH1tLOcHNayscXJ8ZtTcHr+v8AjWZcfFLU584Yiu6H7O/iMn/U2P8A3+FW4P2bPED/AHmsY/8Atpn/ANlrP2Mux0vMsLa6qI8hufEOpamx3SOQfeqf2KSUkySGvpLS/wBl2U4+2aqiDulrAT/48f8ACvTvCn7PnhrRSkgsPt0o/wCWl6d5/wC+fu1aos8ytneHp7O/ofMXw/8AgxrXjNlaxsWS1J+a7uBtjH0Y/e/4DX1V8Nvgho/ga2WQIL3UiBuuZVyFP+wvb+dek6Z4fitkVQgAUYCgYA/wragtETjAreNLlPlsXnFbEXjHSJgQ6BG45Vn+vAqGfwvC2f3RH0NdeLbil+zGm4nkRqN7nGR+FYx/B+dWYvDUa/8ALMV1i2g54py2oHasnEvnMG10VI/4QK04NPVf4a0EhC1IFArCSsLmbIIrYIOlcB8ZPjXpPwk0BpLgreavMMWmnIfmkbsW/ur/ALVUvjl8ctN+EOiNyt7rt0pFpYqeWb+83otfB+v+KNS8Ya1ca1rd699qszZMrH5Ik/55ov8ACtYPsfR5Zl8q79pP4TS8TeLtT8Ya3PrOuXTXepSnPzH5YV/uIv8ACtYF3qTSZVTgVTvL/qF/E+tWPCXhvVvGuuQ6VpFo93dzHHHCIP7znsPekon3PuUoXeiRFpOiaj4m1WDTtNtnvL24YJHDGMljX3B8Bf2dLP4aW6ahqMSX/iCQAmYjIg/2U/8Aiq2vgj8B9M+F+nJIiLd61Ko+0XxGf+Ar6CvYoYtgx37mnsj43H5m6rdOlpEisrIQr05q/HH7U6KPNS4xXOzwExY/lFSVGvSnr0rJotMeD6U7dUanFOrLlNkx9Kp60wHFOB9KTiUmPHFOBzTAc0tYOJsh1KpxTQ1LWTiWh44pw5pinNKDisXE2RLRSKaWsWjRDl6U9elMXpT16Vk0bIeOlPpi9KeOlYMtMcOlLSL0paysbRHU5elNpy9KzkjZElOpg5FOU8VzNG0WLSjikoqOU0Q+nKc0xehpRxWbQEq9KcveowcU9TWLRoiRehpy96jzSqajlNEPNMJpScCoi1S4gLSUinNLWDiaI+cs0A+9Mor+zLH8jXJA1LkVGDSg5pWKTJAaUNUYOKUNSsWmSAijPvTAc0tKxVyTdRkU3OaKzsNMf0pQ3rTBxSg+tTYpMeDmlzTKUHFRYtMfuozTcil61NirkgNOBxUYOaVTisrFpkoPpShvWoxxTgamxaY8HNKDimUqmosaJkgPpTgajBxThzU2NEyTdS5FNoqbGqkPHFKG9ajBxTutTYpMeDinA5qMHFOqLFpj6MmmA4pQ1RYpMfmjdTQc0tZmg7rTStAOKcDmoaKTK7x9az7q0DAkCtcrwagePrWLidEJ9GcfqOjLLuZRtf19frXzz8a/gZ/b4n1nRoBHqSZaa3UYE3uPf+f8/qqe1DA4rn9U03ILqPmrlqUVUVmezgcdUwdTmi9D82GWSwuWDAoynDKeoNdl4N8a3Gh3UckUrKFIPB6V7T8dvgiviKOfWtFhEeqIN00CjAnA7j/a/nXzAhe2kKONrDqK+frUHTdmfrWX5hHF0+eD1PsPwL8QmtbuTWNIILSgHUdKBwLkf89UXtIvf+9X0FoWtWfiTTIbyylE0Mq7gw/ka/O/wX4vl0u6jxIVKkbWzX0v8NfiSmlySajaHfbtg6hp4P8A5Gj9/wC8P8nPD13QlyS2OPOMojjoPEUF76/E+hWtyeMVG+mKwOV/KrOn31vq1lDeWsglglUMrLVsLgdK99NSV0flU1KEnGW6MJ9HT0qu2gxnPyj8q6Yxg0CFT2FDRUZtHNx6Eg/hH5VPHoyD+H9K6FYFpwhHpXO0a+0Mq30xV/hAq/FaKnarKoAKeq0rFKpcSOPsBU6Rhfc05BhaWoLTHYFOQcmkpV71k0apj1HFKBikUjFLWTGmFeY/G3436Z8I9A3ki71u6G2zsB1J/vN6LVr4yfGPTPhP4caecrc6lMCtnYKfmkPb6LX59+KPFGpeL9cvNZ1m4a5vpyTyeIx/dX0Fc0tT6nKsteJftavwr8SPxD4h1HxTrN1q2rXb3uo3BzJM5yFH91fQVhzT7QQvFSiXIrc8DeANV+IniCHStJhMkrkGSUj5Yk7s3tUcp903ChDskUvA/gfWPiFrkOmaZA0sshG5gPlQd2PtX338FvgtpXwv0VYLeNbjUJQDc3rD5pW/ugdlqf4TfCTSvhnoKWNhGJLhgDcXbL88zd/oPQV6daW4ijGBWb8j4jMMyliG4Q2FigINXYosCo0GKmR8VB4KY9V20tNDZpwrKxohy9DTl601e9LWbRaH0UgOaWsrGooOacDimU4VLLTH0oNNXpS1gzZMfSqaaKUVmy0x44p1Mp9YM2ix9OHNNpV71i0axY9e9OXvTF609etZNGyY9ehp69KYtOWsGi0x606mU4GsrG0WPpy96Yppw4qGjZMevenUynA1g0aJjgfWlptCnFTY0THg4p1Mpy9KyaKuSUq9DTVHFP6Cudo1QU5elMXvTxwKmxpcGbioC1PdutRDk0mhXJEOKfmogcUb6waLTPnKgHFMzS5r+yrH8h3HhvWlqMNSg0rFJkgOKUGmbqXIqbFpj6OlMB96XJpWKuS0A4pgNLmosO48H1paYDSipsUmPBxSg5pgalyKixaY+imjijJqbFcxLTgc1GDilBzUWLTJAcU6owfWlBqbFpjwcU4HNR7qcDUWNUyRTS0wGlBxU2LTJaUHFMBpd1YtGiY8c0oOKYKUN61NikyQc0oOKYDilBqLFpkg5oplKDipsUpDgcU4Go8mnA5qHE1TuPoBxmmUqnrU2NEySmuOtLnikPNZuJomRFeDWfdw7latMDOaryx5BrDlN1M5LUdMEysQPmr50+OXwN/tkT61osOzUly01ugwJx6j/a/9Cr6pmtgc8VharpYlU8c1zVqKqRsz2MuzCpg6inBn5tRs9tKysCrKcEHgg13/AIB8bTaVeIyyEMOCOzCvS/j18ETcef4g0KDFwoLXsCD74/56KPX+9+dfPFtcfZ+lfN1qLi+WR+xYDHQxVNVaT9T7h+FXxCj0YIyOX0eYgXNoOfszf319q9+inS4iR42WSJ1DK68hl9a/OrwH48l0y4TEnXhlPR1/u19VfCX4mRQRxWNxITp0x/0aVmz9mf8A55t7H+Gqwtd0peznseHnmURxcXicOrTW67/8E9upV60lFfQH5dclXpTlqMcU8Gs2ikx4GTT1FMFPWsmjRMkXpRQvSisi02PoopCcCoN0xN3vXF/Ff4raT8KPCs+r6lIGk+5bWoOGnk7KK0vGvjLTfA3h+71fVLgQWkCktk8sewX3r86Pin8T9T+K/ieXVb92S1QkWtrniNexx6muKpLoj6XKsseLl7Sp8K/Eh8ZeP9X8fa/da1rU/nXcx/dpn5YE7IvoK595i2c96rZ961/CPhnUvGuv2uj6Vbm4up2xx0Re7H2FYLU/Q+aFGHZI0PAfgXVPiBr0Ol6XCZHc/PJj5Y17kmvvz4T/AAo0v4aaElnZoJLlgDcXRHzTt/Rf9mq3wZ+D+mfDDw7HZ26LLeOAbq7I+aVv8BXpsCKowBgVdtD4TMs0eIk4Q2FhhAXhQPwq4OlMUcVJU2R8+hw6U5e9NpQcVm0apki9KcDxUYOKcDWTRqmPBzRTacDmsWi0xwOaWmU4NWTRqmSU5elMBpVOKhlJki9DS00cU6sGbJjh0py96YppwOKzZSY8dadTRxTqwZtFj6BxSKaWs2jeLHU8UxelOXpWTRsiQcU8cVGOlPHSsGi0x9FIvSlrKxtFjxxTqbSr3rNo2THqaWmUoOKysUmOBxThzTQc0q1DRomPXpTl701e9OXrWEkaJkq9qU9Kappc1g4miYq96cThaYDikduDU8pdyNm5pV6GoyeacrYFPlI5hXbFRb6JG61FurJxLUj54zS5plGa/six/ISY/dSgimA+tLRylJkgOKN1MBxSg1Ni0x+RSg0yilylXJgaMmmA0oaosO4/dSg+lMBBoqLFpkgb1pQaYDS1Nikx+aMmmUuTUWLuS5pQc1GDinVnYvmJA3rTgfSmA5o6VNi0yQGlBqMH1p1RY0UiQH1pwOKjBzSqamxakTBqN1NB45oBzWVjZMeKcGqMHFOqLFpjwcU4NUYOKdU2LTHijNMzilU1Nih4NL0ptOBzUNG0WOBpaZTlOazsaokooFFZtFgB1pjJkGpF70EVi0VcqPF1qnNbhgeK1GUGoXj61FjSMrHG6xpeQxAz6ivkv48fBo6NcT6/o0H+hud1zbIP9We7Aeh9K+07233Ka5bWdFjuoZI5Iw6MMMrDgiuWtQjVjZn0OWZjUwVVSi9D86YLhrdhzx/KvUfAXjVrWRYpX3I3BB/iH+NQfGv4SS+B9Xe8sIy2i3DZUj/lif7rV5zY3r2koBJGOh9K+bq0nFuMj9nwuIhiaSq09mfoj8H/AIiLrdlHpd3NvuY1/cSsf9anofcV6fX5/wDw58dyW80SmYxyIQyODyp9a+1fh143g8Y6Kkm4LeRALMme/r9DXXg8TZ+ym/Q+A4jyfkf13DrT7S/U64HIpV70wU4cV67R8JFki96cDimDinZFZtGqZKppcmo1PFLvwKycTRMlqtql/BplnNdXUqw20Kl5JGOAAKU3BzXxz+1Z8ef7cvLjwVoU3+gxN/xMbhTxIw/gX+tcdV2R7eWYKWPrcn2VucF+0P8AGqb4teJHgs3ZPD9ixW2QHiZh/wAtG/8AZa8ixxT6kt7aS6lWOJSzscACvOP1elShRgoQVkg0fRb7xBqkGn2ETT3MzBVRRmvvf4B/BO0+F+hB5kWbWrpQbicjlf8AYHoK579nD4FQ+AtOj1rU4Q+v3SggMP8AUIf4R7+te/29vitoQ7nw2bZn7V+xov3V+JNAgCgDoKuRJUUSYqwuAMVpY+WHU+mU+s7G6HUUZFFZtDTFBxSg5ptFZNGqZKDmlpg4p4rFotMcDmim9KcKyaNUx9OU1GOKd0rNxNESKacDimCnDkVg4myH05Tmo1NPBxWTiWh6nNOU4pgp1YuJtEfT6ZTl6Vm0bxHL3p696YvenL3rJo1TJF6U9elRr3p696wZohy96dTRTqysbRH0DikyKMipsbXH0UgPFLkVHKCYo4pw4plPHNQ4mkWPWnUwU+uaUTZDt1Kpph6GiPvWfKNEpOBUDvUkjYFVWfJNCgO4/NBfApFPFRO3WjlJuKWzRTFOafWbiNM+dKOlJuoyK/sKx/JFx4PrS0ygHFKw7j80u6mg5paVikxd1KrU2gcVNh3JRzR0poOKUNUhccGp1MpQcVFi0xwOKdTaVTipsaJi0q96SlHFRYtMkXpS00HFG6s7FIeDS0wHNOBqbFpjwc0tMBpQ1RY0TJAaUHFMyKKmxaZKGpwNR0oPrUWNUyQU4HNRg4pwqGjRMeOKcDmow1OB9KzaNUyRTxS9KYDTg1Z2NEx+aWmUoOKmxaY9TS0wHNOBxUNFqRIOaVTimA0oOazaNEySimA4pd1Ryl3EoxmgDNOAxWTiUmVposg8VlXVtweK3SuQaqzwgg8cVlY2hOzPOPGHhKz8RaXdWN5CJraddrqf518QfEj4e3ngHXpbCcM9sxLW056Onp9RX6HXlr1GOK8w+K/wztfHWhTWkihbpAWtpsco9cGJoe1jdbn2mS5u8HU5Knws+KND1BrWZTkgqa9/+EHxHl0LUYLlJCVGFlTP3o/8RXz1qum3Oh6nPa3KGKeBzG6njkVseH9cexmV1Y7c818tUg0z9cShVg4y1TP000TV4Na0+K6gcOjqGBFaNfM3wA+KC2d1HpFzLmzuf9WWP+rf0/z/ALVfSoNe/hK3tYWluj8cznLv7OxFl8MtiTpS7qaDmlrvWqPBHg4phbg0+uM+KvxCsfhv4Qvtc1B8RQIdkSn5pX7KvvWFRqEW2dWHozxFRUqe7PMP2nPjqPAGjNoOjzbvEWoIwDIebaP+J/rXxBEMZJO525Zj3PrVrxH4l1Hxl4g1DWtUkMl3eyb2yfuL2Qew/nVNDXgzm5u5+w4DBwwVFUqZYr6m/Zb+CQdovF2swfLkHToXHXn/AFjD/wBBryz9n74RyfErxQsl1Gw0WyYSXMnZ+eEHua+/NLsYrSCNI41iijULHGowFA6cVpSp82rPDzrM/YxeHpPV7/5Fq2tBGBVpRg0wVIorp5T4LmvqSKcVIDUY6U4HNS0WmSL1p1MHIpwNZtGqY7dSg5puaOlZNFoeOKdTAc05TWLRoiQcinL0qMHFOqWjVD6UGmg5paxaNB1PplOXpWTRoh46U5e9NXpSrxWLRrEdTl6U2nL0NYNG8R69DS0i9DS1k0aoevWnr3qOnqazaNESL3p696jXrTwcVg0axHDin0ylU1i0bIkXpRTQcU4HNTymiYu6jdSUVmomnMPDelLupg4pwOaTQJjxUi96iXpT1NZG8WSr0p4OajU04VhJHQmOpw4FMBpssmAazUbjuNmk61XzyaRpMmlHStlGxg5Dt+BUTNnNMeSiM5qHC2pKkTJTt1RlsCmb6y5LmqmfPG6lyKj3Uu6v6/sfyNzDwfSnBvWowfSlDUrD5iSlB9aYDilBzSsPmJKKZS5NTYfMP3UuRUe6lBrOxaZIDilBzUYOKcDmosWmSA4pQc0wH1pRU2NEx4OKXdTA1LkVNi0yTJpQ1M3Uo5qLFXHg5pQajpwOamxaY8GnA+tRjinA5qLGiY8HNFNoziosWmSg0oNR08HIqLFqRIDilFMBzSg4qWjRSJA3rSg+lMBzSg4rJo2UiUH0pQ1Rg4p9RY0Uh1KG9aaDS1Nikx4pQfWmA4p1Q0WmPBxTgc0xTxSjis2jRMeDil3U0c0VFi7j1OKfUY4pynFQ0aKQpNRsMinUVi4miZSuIdwNYl9abgwxXSOmQaz7q33A8Vg1Y6ITtoz5c/aQ+FP9rae/iLToc3tquLqNB9+P+9/vD+VfMNpKYpCpr9ItTsFlR8oGBGGUjhhXw98cfhy3gTxTJJbof7NuyZbduw/vJ/wH+VeHjaH24n6tw3mftYfVar1W3oM8Ha89vIE8wowxhgeh7Gvtn4KfEhPGehLaXMg/tO0UK/PLr2Nfnhp960Tgg8ivWPhZ49n8L67aalA5CxEC4TP+siz83/fP3q8ilN0p3R9TmOAhmOHlRktenqffympB0rN0PVbfXdKt7+1kEsMyhgwrQr6mL5o3R+JVKcqU3CW6HSSiKJpD9xfvH0r4D/aS+LknxS8XvZ2UxGgaa5jgUHiVx9+Q/wDste6fta/GD/hDvDA8NabPt1fV0IZkPzRW/IZv+Bfdr4tWvGxtW8uRdD9D4by90qX1mqtZbeg0Lmt3wb4Ov/G3iC00fTk3XM7Y3EcIvdj7Cs+2tw3Jr7Q/Zk+Eg8J+Hm13UItuqaiqlAw5ig/hX6t94/8AAa4qcHUdkfRZhjo5fQ9p9roepfDjwFp/gXw7a6VYRhYIQC8hHzSv3Y12UfemooAwOAKevWvWjBRVkfkkqjqScpbk0fQ1KOKiTpUgOaVhDgc05ajp46Vm0WmPU4p1NFOHIrNo1TCnKc02lHFZtGiY4cU4c02nL0rFo0THqcinKaYvenDioaNkx1KppKKxaNEyVTSrTBxThWTRqmSLTqYKfWTRpFjhyKcvemL3py96waN4sevenU1e9OrJo2THU5elIKcBWLRsh4p1NFOrFo0TFU4p1Mpy9Kysapj1OaWmU4Glyl3HbqN1NzS0uWxNxwOaVetMXrT161jJGsR696evQ01RwaeBgVzM3iOXpS5xTVOKXIrFq5snYUtiq8suc06V8A1VLZNawgZuYqnk05pMDFMzgVC0mTXSoX1MHMcTuNSpwDUUYzTi2Kzkr6EqQrPTaQcmn7KxasapnztupQabRX9a2P5JuP6U4H1qMHFKDmixVyQHFOBqMHFKDU2HckBxRupgNGTSsO4/dShqjyaUN61Ni7kgOKcDmowcU4HNTYtMkB9acDiowc04HFRY0THg5paZSg4qbFpktFNyaN1ZWKTHg0tMBzTgcVNi0x4OaWmA5pQ1Q0aJjw3rTutR5FLU2LTJAc04HFRg5pwNRYpSJBxTgc1GDinCoaNFIf0pwOajDetOB9KyaNoyJFNKDimA04NUWNFIkoBxTd1KDmpsapj6cpqMHFOBzUNGiY8cU4c0xTSg4rNo0THg4pQaaDmlqLFpjqVeKQHNFZWKH0UgNLSsNMQjNQSx7gasUhWocTdMxbu3BLdq8w+K/wAPrfxt4ZutOlQebgy28ndZB92vXZ4gSaxdTtN6sMe4rnnTUk0z1cLiZUZqpB6o/NS+06fSL65tLhDFPbyGN0PUEGtvw/dBeCa9c/ac+Hv9nalF4ltIsQXJEV0FHCv2b8f6V4haS+XnFfIV6TpzcWfumBxkcXQjWj1PsX9mf4ni1nbwvqE37mTc1kzHp/eT8P6+1e8eJPElp4c0a91G9lWC1tYmmlkJ+6oGTX536Zrt1DClxYzGDUrdhLBL6OOn59K7D4v/ALSo+JvgfR9J0tjDc3Q36yn/ADyZWK+X+YLf7pFb4bFOnBwfQ+czTJvrWNhWh8MviPOPiF4zu/iL401PxBdkg3Eo8iM/8soV+6o/z3rEUE0oFaOkaTcavfQWlqhkuJnCIo7k1xzvKVz6yMVTioR2R6z+zh8Kz4/8Vpc3cRbRtOKyzk9JG/hT8cc+1fdVvBiuK+D/AMP4fh74RsdHRR5iqJbl8f6yQ/ervVFe1hqHs4XfU/Jc4x/13EO3wx0Q9BinL1pB0py961seImPXvTwc1GOKcKVjVMlHSnL3qNTinjismi0yRehpQcU0HFOrJo1THUUZorFotMfTl6GmKc05TWLRpFj170tNBxTqho2TH0UgNLWLRomPpV70wHFOHFZWNEyRelOXvTFp68Vk0axY5aevWmU8Vg0bxY9adTV606srGyY9etPXrTBxTgaycTZMeOKdTAc0oOKycS0x1L0pu6jdUcpakPBzS0wHNKD70cpfMOoBxTcmnVnJDix69akUdajXtUq9q5ZI6Yj1FOpoOKC1YOJsnYdmml8CmF+tRtJ1ojATkEj5zUIODQXzTS2BXXGmczmDvwahHJpc5NKBitGuVGVyRTgU0nNJuoUVyyVjSJLGKlqFTin765nFs64vQ+csmnA5ptC9a/rqx/I46iiilYBwb1pRzTKKVikPozTQaXdSsA7dSg5ptKKiwx4OKcOKZTl6VFi0PpwOaYvSnKcVFjRMcDinUwHNKOKmxaY/OKUNTA1KOaixSY4HNOBxUdOU5qLFpjwc04H1qOnA5qbGiY8Gim0ZqLFXJQaUGo6cDkVNikyUHFKKYppQcVm0aJkgNKD6UwHNKprNo2iyQH0pwNRg4pwOaixomS7qWmUdKmxomSA4pw9qjBzSg4qGjRMlBzSg4plKprNo0TJAc0UynKazaNEySlU00HIpaxsbodSg4pByKKLDH0UUVBpcjlTINZ9zFvU1qEZFVZI+tZyRrTlys888d+FbfxNoV9plygaG5jKZI+6ex/A818E6rpc+g6xd6fcqVlt5DE2fYnmv0h1G13K3FfIv7UPgr+ztWh8QW8eIrv8AdXBA6SL90/iv/oNeJj6N4c66H6NwxjeSq8PJ6PY8csbgxSDB71m6vZQ2+oyyW6CPzj5kmO7Hqf5UQXHOehFS3D+fJuNfNpWP07canQV9I/skfD/+09ZuPEl1Fm2sf3duGHDTH+If7o/nXz1pVhJqF9DbxqWeRgoA9TX6JfCjwbH4G8DaZpIUCWKMPMfV25Nd2Fpe0qa7I+Z4gx/1TDckX70tPl1O3g6Zq0g4qrBVpPu175+R3HhaXpSAjFLWDRqmFKvekpVpWNUyRelOU0xacvWsmi0yRelOBxTFp1ZNGsWPpQaaDmlrJo1THCng5qNehpy96xaNESKc04HFRjin1DRsmOpc01ehpaxaNEPpw6U2nL0rJo0Q8U+mDpT6yaNYj6cKYvSnr0rBo3iPFPpi9qfWVjZChqcDimUqmp5TRMkBpd1MHFLurNxKTHbqN1M3e9Ab8ankKTHhqUGmA5py96XKVckpy9KavSnL0rlmjaNyRalXtUS9akU8VzWOqJJTGagmo3brS5Sm7DGfGahZ+tDt1qEtXRCmc8pjt9JuzTM0V0qFjDmuPXrTs4plGeazlG+pohRyakXpTENOLcVyyjc0TsIXxSeZUbN1pm+pVMrnseA5FGRTMilr+rj+Tbj6M0ylB9aB3HZNLupKKkpMXdSg5ptKvekO5IOaKRelLU2KuOXvS0wcU+paKTHL0pQcUxTinVDRaY4HNLTKcG9amxSZJRSBqWszVMFOKdTacpyKixVxVp1Mp4OamxSYDinA5ptFQUmSg5optKDU2NExymnUynBvWoaNEySlB4qMHFODVm0aJknSlDVGD70oaosWmTA05Tiog1OBrOxqmSg4pciowacDUNGiY+lBxUfSnA5qLGyZIKcDUamnA4rNotMkBpwOKi3U5WrI0TJVOKdUStTgag0TJd1GRTA1LmpY0xxNNIyKQmkqTWLKN2mVNeUfGXwiPFPgzVbELmYxmWHj+NeR/UfjXrkwzmsLVrQSRtxmuarTU4NHrYLEvD1o1F0PzS8po5CGGCDgircSZ5rqPih4aPhnxxq9jt2xrMZI/wDdbkfzrnrRNw+lfEVIOMmmf0BRqKpBTjsz2X9mLwGPE3j62vZ491npg+0uSOCw+4P++v5V9yRQ8V4D+yL4Wk07wbfapKuP7Qn2xH1RDg/+Pbq+g4xgYr38DS5Kd31PyLiTF+3x0qa2hp/mOjTbUw6VGvenA4ruaPmUx+aUc02lXvWDRrFki9KVe9NXoacOtZtG6Y6nL0ptOXpWTRqmPXpSikHSnKOKysbxYtOHSm08VmO45elOXoaaOlOXpWbRpFi0+mU+sWbRHDpTl6GmjpTl6VmaoWnr1plPFZM1RIvenL3pi09etYSRrEcKdTacOlYtG8WPHSikXoaWlY2TCnL0NNxSg4qLF8w8GkzTd1N3VagK47dSqaYDmnL3qJRLiyVOhqVKjTvUinFc7djaJIvSlpoOKUHNcclc64tDl608HFR9KUtWPKacySHlqhd+tNaTFQNJ1rohTuc86grt1qLNG7NJXWocqOZyuPFKFpBTs1ky0IelJQTSFuKhq5onYA2M0GSoWemqSTUqnbVi5iXOc0bDT4VzU+yndRGtT5zooor+oLH8pXHA0tMpQakaY9TjNOplAOKB3H0U3dS5qbDuPpQcU0NSjmkUmPHNKDimDilBzU2KTJOtAOKYDinA5qbFpjxzRTaMmosVcloHFNBpQaixSkPBzS9KZSg+tRYtMkBzSjimUoNTY0THg0tMoqbFpkuc0tMpQcVNi0xw4pwOabQvBrNo0THg4pQc02lWs2jRMdSg0lFRYu5IppwOKZSg+tKxSkSA+lOBzUYOKcD6Vm0aKQ8HFOpgNKDismjZSJAc07NRhqXdUWNFIfk0qmo8mlDVlylRkTKaepqENT1ap5TZSJqcvSoQ9ODis7FKRJRimb/egSVNjWLI5lqhdR7kNabfMKqyJkEVm0dUJHjPxO+DGmfEFFnkdrPU4gViuAM8ejDuK5Twj+yPFHqAm1PVxPaf88oI9pP+FfRD2wbqoNXLKFYkwFxXBUwtOcuZrU+jwueY3CUfYUp+6T6TpltpNlDaWkSwW8ShEjQYAAq9UMbYFSg5quW2iPFvfVklAOKQEUVJZItPWowc04HNZNGsSRaeKjU08HNZtGyH04dKYppymsWjRMkFPHSo1PFOBxWdjeLHU5elMyKcpxWNhpki9KVe9NU04cVm0axHU+mU5elYtHREevSnL0NNXpTl6Vm0bIWnCm0+sWjZD1604cU0cU6s+UtMeOaVTTAcUoOanlNFIkBxThzUYOKXIo5SuYfSZpm6lBzS5LApC5pKUDNOAxUPQ0ixFGKeooUU5RXPJnTEevenr0pi9Kco61zNXN0SCnL3qMHFOyKw5QUrClqieTGaR5MZqrJL1rWFK5LqD3l61EWqMvSr3rsjBRRz81yRTkU8UxelOBwKTNIjt1N3UlJXO4ml7C7qY0lIzYzUfWqjT6sjmuOB3ZqWNKZElWFGBUzfRGiHIdop/mVCWpu6s/Z33K5rHz7RTcmjJr+nD+U0x1FJuozQMd0oyaTNFQNDt1AOabR0oKJRyKWmUob1oKHg+tLTaUHFTYpMeDmlplKDiosWh4alyKbRU2KuS5FFNoBxU2BDwcU4c0wHNKOKmxaHg4p1MBzQDiosaJjwcUoNNBzS1Ni0yQHNLTKUHFTYtMeDinVGGpQfeoaLRIpp3Sot1KGrNo0TJQaXNRb6XfUWLuS7qN1RbxSb6ktE4alD1W8yl82s2aItB6UPVXzfejzfesWaot+ZR5lU/OpPO96yNEXhIKUSe9UfP96PP96DSKZfEtOEvvWd9oFL9p96hm6Roial86s37T70fafesmWomn51KJs96y/tPvSrddeazubxiawkz3pN4rPW7x3pPtY9azbNUjSVhUiOBWWt4PWnreD1rJs1VzXWQYpyy+9ZIvQO9OW9HrWLZsos1xLThL71lLeD1pwvMd6zbNVFmqJRT1lrKF3jvT1u+vNZHRGJqrLTxJWWt171It171mzZI0xJT1krNW596kW4681kykjRV6cHqis/vThPms2apF0PTlaqYmp6ze9ZWNEi6rU4NVRZaestZtGkUW1anqaqLLUiy1k0bRLSmnA4quslOElZNGqJw1OVqr+Z705XrLlNEywrU4NjvUCvTg9HKUmTbqUNUIanBqXKUmSg+hpd1RBqcD71Nikx+acpplOWs2zREq96cvemLTulc0jeI+nL0pgOaUHFc7R0RZKOlOXpUStTt3FRY15h26mNJimNJUDy1cKVzCUx0kvWqzNmhnzmm12xpqKOfmuKvepU6GolGKkU4rOSNYktFMDUu73rDlZd7DqazYBppk4qMtk1pCn1Yua4pOafGmaSNc1Mvy0pvoikKBtFG6mF6ZurFU+rL57ElJupm+jdWqjchu54BkUZFNor+jrH8uj6KaDinUhhThzTaVehpDQtFFFKw7j6KQHNLTFcUHFOplOXpUlJjl70tNpw5qCkxQcUoOabRU2LTJQc0tMpynNKxshacOabSqamwxwOKdTKcpqLFIWlBxSUVJSH0ZNN3Ubqk1Q/NG6o80VDNESbqN9R03dWTNETb6N9Q5NGaixZL5lJ5lQ7qQnioNES+b70nm+9QZpu6smapFnzfek873qtupN9YM1SLBmpDP71VL03fWJtFFnz/ek+0VUL0wyVNzrjEu/auOtNN371QMh5qNpTzWbZvGKNI3nvTftvvWUZTUZmPNYtmsYGx9u96T7f71imdqb9oPrWVzojBG7/AGh70n9o+9YRuDTftB9als1VNHQrqHvTxqHvXOrcH1p4uT61m2aqmdANQ96kXUPeueFwfWpEuD61i2bKCOiW/wDepFv/AHrnkuD61Mk59aybNVE6Bb33qRb33rDSY+tTJIaGUkbaXnvUyXfvWLHIamjkNZs0SNpLr3qZLr3rHjkNTpIaxY0jXS596kS496ykkNSpIazZrFGos9SLP71mpJ1qRZKRqkaST1Ks/vWasnvUqSe9ZspI0VmqRZqzlepUesmi0aCzU8Te9UVc1Ij1nYouiTNPWSqisakRqnlHctq9PV6rI1SKadikywrU8NUCmpFqGjREqmnr3qJelPQ1mWiVelPXvTF6GnL3rnaNkSL0p9Rr3qRa52bRY4DFBNLTD3qbXL5rBvppkpjNjNQu/WtI07kuY9petRF81GWNArrUFFHO5XF609RmmqOtPXoahjQtLSUhrLlNlIXd70FuKYTihTmqUAuBJzUka0irUgwBSl2Q1oOU4zTWemlutRk5qFTvuVzDi3vQDmm05BkU3CwriqM0/bTkXAp2KjYtHzyvQ0tNBxSqc1/Rh/LgtFFFKwBTl6U2nL0qQuLRRRQFx1FAOaKk0QU8dKZTx0pFIBT6ZT6ktBRRRQMdTl702lHFQWOpVpKBUlIfSrSUDioLQ6iiioKQuaVe9Npy9KyZshaKKULUWLTEpu2pNtG2psaJkeKSpNtG2psXci20m2p9lJ5dZ2NIsrlaaVqz5dJ5dZtHRFlUqaaVNWzFSeTWLRtGRSKk0hQ4q75PtSeR9ayaN4yRQMRNM8k1qeRSfZxWLRspoyTAaYYDzWubf2pPsvtWTRvGZim3NRm2PpW59l9qabT2rJxOmM0YZtjTfsp9K3fsftQLL2rOxspowvshPam/ZD6V0Isv9mgWP+zUNGsahzoszT1s29K6AWHtTl0/2rLlNVUMBbQ+lSJaHmt9dOHpT10+pcTRVDCS1NTR2praWx5PFPWx9qy5TT2hlJbkdqmjhNai2XHSnrZ+1ZOJamZ8cRqdI6uraU9bbrxWbiaKZWSOpUjNWktsZ4qVLepcS1IrJGalVKspB7U8QVk4mqmQIlSKhqwkFSrDgVPKWpldIzUqR1KsVPWP2qeUOe5GFIp6KcVMsVPWKpsNMjReDUig09Y6eExS5TVMRelSpSBKkRamxdx6d6kWmqtPArMLj171IvWo1HFSL1rJo0TJF6Gnr3qKnoetZWNUyde9OXvTFPWnZx3qGrmqY+nBsVGG/GkLcVnyGikS+ZUZk61EXppatFSJcxXkqPfk0hNNHU1ooWM3Ik60Ui9KWlyj5h9KvembqN4FTyhzEtRs2CaZ59IPnzRGIlIcBvp6ptpittqQPuptGiYo5o2mkUgUGQYpcpfMBOKaWzTCxanIlHKHMKg61OgwKaowKep4rKSNEPFFGRRkVnYs+d6UcUlFf0RY/l8fRSKaWkAUDg0UUrAPopoOKdUgKvelptKvQ0rFi05elNpV70ikOpw6U2lXvU2LQ6iiikUOoooqSkx9FIvelqWUh9FIvQ0tQy0OopFPWlqRhT6atOqLGiYqinAZpF6U5e9TYtMULRRSrUWNEwwaMGnUVNi0xNtG2nAZpQMVnYuLGhKNlPpQMVm0aqQzZR5dSgZpQMVm4lqRD5VL5VTBc0u2s+U1UyDyaPJqyEpdgrPlKUyr5NL5HtVoJTggNZuJtGZT+zj0pfs4q6IwacIxWLidEahQ+ze1Ktt14q+IqcsQrPlNVUKS23HSlFpkVfWIYpdg6VDiaxqFAWmKkW1x2q6sYp6xjms+U1VRlJbbGacLervligIKlxNVNlMWw9KctuPSrgjAp3l+1Zcpqpsqi3GKcIB6VYAFPVaycTZTKy2/tT1txzVlVFPCAVk4mqmV1gqRYKnCgU8Lik4lqZAsNPWGplWnKtZOJqpkaw09YalUcU9RxWbRpGRAIqcsVThQKdsFZs2REsdOCU+lC1Fi0xoWnBaWlWlY0TALinqtKo4pyisWXcFXFPC0KKWs7DTFUU4U1e9OpNGiY6lXvSUVk0apkqtS76i3Uhb3pKJdyXfSF+OtQ7qTdWigRzEhekpgOaXJq7WJUh1AGKB0o7VBomG7Hejd70wmmlvenyk8xJvpN2aizRk0cocxJtpyttqNXNPUZpOJSZKo30Y20wSbBSeZuoUTRMcZKRcnNNC5pw+WjlFzEirgUuai8w09TmlyjTJlbijdTVHFLWDR0ok3UbqSip0ND58ooor+gT+Ygp45ooqWAUUUUgClBxRRQA6gUUVBQ6lHFFFJlIdSg4oopFodRRRSGOoooqShV606iioLFWnUUVBQUoOaKKkseveloopDQ5e9KOKKKktDqKKKhmiClU0UVJZIvSloorItAvWnUUVLNEOXpS0UVmxj6KKKg0Q4HNFFFQaDlNOU0UVDNIjlNOoorFm8R9FFFZmqH0q9DRRUM0QtPoorM2Q+iiismaodT6KKzNohRRRWbNlsSL3qSiismOO4+nUUVLN4jx0pV60UVkzZEg6UUUVizaOw8HFPoorJm8Qp1FFSWgpV60UUFskHSloorFoqI6n0UVCNQp9FFJmiHUUUVkUw7GozRRWkUJsSiiitGgCiiiswQ+gng0UVMUadCI96iJOaKK2MkOXrUgHFFFQaD8Cm5xRRSKGk5p1FFAkPoooqTQKevWiis5DRIOlLRRWctjoiSL3paKK5kbI//9k=";var p3=t=>{throw TypeError(t)},b7=(t,e,n)=>e.has(t)||p3("Cannot "+n),Ix=(t,e,n)=>(b7(t,e,"read from private field"),n?n.call(t):e.get(t)),v7=(t,e,n)=>e.has(t)?p3("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),yM="popstate";function x7(t={}){function e(s,a){let{pathname:o="/",search:r="",hash:c=""}=Po(s.location.hash.substring(1));return!o.startsWith("/")&&!o.startsWith(".")&&(o="/"+o),um("",{pathname:o,search:r,hash:c},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function n(s,a){let o=s.document.querySelector("base"),r="";if(o&&o.getAttribute("href")){let c=s.location.href,d=c.indexOf("#");r=d===-1?c:c.slice(0,d)}return r+"#"+(typeof a=="string"?a:To(a))}function i(s,a){$n(s.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(a)})`)}return w7(e,n,i,t)}function qt(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function $n(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function S7(){return Math.random().toString(36).substring(2,10)}function bM(t,e){return{usr:t.state,key:t.key,idx:e}}function um(t,e,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?Po(e):e,state:n,key:e&&e.key||i||S7()}}function To({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Po(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substring(i),t=t.substring(0,i)),t&&(e.pathname=t)}return e}function w7(t,e,n,i={}){let{window:s=document.defaultView,v5Compat:a=!1}=i,o=s.history,r="POP",c=null,d=f();d==null&&(d=0,o.replaceState({...o.state,idx:d},""));function f(){return(o.state||{idx:null}).idx}function m(){r="POP";let x=f(),A=x==null?null:x-d;d=x,c&&c({action:r,location:v.location,delta:A})}function g(x,A){r="PUSH";let k=um(v.location,x,A);n&&n(k,x),d=f()+1;let T=bM(k,d),L=v.createHref(k);try{o.pushState(T,"",L)}catch(M){if(M instanceof DOMException&&M.name==="DataCloneError")throw M;s.location.assign(L)}a&&c&&c({action:r,location:v.location,delta:1})}function y(x,A){r="REPLACE";let k=um(v.location,x,A);n&&n(k,x),d=f();let T=bM(k,d),L=v.createHref(k);o.replaceState(T,"",L),a&&c&&c({action:r,location:v.location,delta:0})}function b(x){return g3(x)}let v={get action(){return r},get location(){return t(s,o)},listen(x){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(yM,m),c=x,()=>{s.removeEventListener(yM,m),c=null}},createHref(x){return e(s,x)},createURL:b,encodeLocation(x){let A=b(x);return{pathname:A.pathname,search:A.search,hash:A.hash}},push:g,replace:y,go(x){return o.go(x)}};return v}function g3(t,e=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),qt(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:To(t);return i=i.replace(/ $/,"%20"),!e&&i.startsWith("//")&&(i=n+i),new URL(i,n)}var kf,vM=class{constructor(t){if(v7(this,kf,new Map),t)for(let[e,n]of t)this.set(e,n)}get(t){if(Ix(this,kf).has(t))return Ix(this,kf).get(t);if(t.defaultValue!==void 0)return t.defaultValue;throw new Error("No value found for context")}set(t,e){Ix(this,kf).set(t,e)}};kf=new WeakMap;var k7=new Set(["lazy","caseSensitive","path","id","index","children"]);function C7(t){return k7.has(t)}var A7=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function N7(t){return A7.has(t)}function T7(t){return t.index===!0}function dm(t,e,n=[],i={},s=!1){return t.map((a,o)=>{let r=[...n,String(o)],c=typeof a.id=="string"?a.id:r.join("-");if(qt(a.index!==!0||!a.children,"Cannot specify children on an index route"),qt(s||!i[c],`Found a route id collision on id "${c}". Route id's must be globally unique within Data Router usages`),T7(a)){let d={...a,id:c};return i[c]=xM(d,e(d)),d}else{let d={...a,id:c,children:void 0};return i[c]=xM(d,e(d)),a.children&&(d.children=dm(a.children,e,r,i,s)),d}})}function xM(t,e){return Object.assign(t,{...e,...typeof e.lazy=="object"&&e.lazy!=null?{lazy:{...t.lazy,...e.lazy}}:{}})}function ml(t,e,n="/"){return Cf(t,e,n,!1)}function Cf(t,e,n,i){let s=typeof e=="string"?Po(e):e,a=Bs(s.pathname||"/",n);if(a==null)return null;let o=_3(t);L7(o);let r=null;for(let c=0;r==null&&c<o.length;++c){let d=z7(a);r=U7(o[c],d,i)}return r}function M7(t,e){let{route:n,pathname:i,params:s}=t;return{id:n.id,pathname:i,params:s,data:e[n.id],loaderData:e[n.id],handle:n.handle}}function _3(t,e=[],n=[],i="",s=!1){let a=(o,r,c=s,d)=>{let f={relativePath:d===void 0?o.path||"":d,caseSensitive:o.caseSensitive===!0,childrenIndex:r,route:o};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(i)&&c)return;qt(f.relativePath.startsWith(i),`Absolute route path "${f.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(i.length)}let m=Ao([i,f.relativePath]),g=n.concat(f);o.children&&o.children.length>0&&(qt(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),_3(o.children,e,g,m,c)),!(o.path==null&&!o.index)&&e.push({path:m,score:F7(m,o.index),routesMeta:g})};return t.forEach((o,r)=>{if(o.path===""||!o.path?.includes("?"))a(o,r);else for(let c of y3(o.path))a(o,r,!0,c)}),e}function y3(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,s=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return s?[a,""]:[a];let o=y3(i.join("/")),r=[];return r.push(...o.map(c=>c===""?a:[a,c].join("/"))),s&&r.push(...o),r.map(c=>t.startsWith("/")&&c===""?"/":c)}function L7(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:I7(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var O7=/^:[\w-]+$/,P7=3,E7=2,j7=1,R7=10,D7=-2,SM=t=>t==="*";function F7(t,e){let n=t.split("/"),i=n.length;return n.some(SM)&&(i+=D7),e&&(i+=E7),n.filter(s=>!SM(s)).reduce((s,a)=>s+(O7.test(a)?P7:a===""?j7:R7),i)}function I7(t,e){return t.length===e.length&&t.slice(0,-1).every((i,s)=>i===e[s])?t[t.length-1]-e[e.length-1]:0}function U7(t,e,n=!1){let{routesMeta:i}=t,s={},a="/",o=[];for(let r=0;r<i.length;++r){let c=i[r],d=r===i.length-1,f=a==="/"?e:e.slice(a.length)||"/",m=T0({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},f),g=c.route;if(!m&&d&&n&&!i[i.length-1].route.index&&(m=T0({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},f)),!m)return null;Object.assign(s,m.params),o.push({params:s,pathname:Ao([a,m.pathname]),pathnameBase:H7(Ao([a,m.pathnameBase])),route:g}),m.pathnameBase!=="/"&&(a=Ao([a,m.pathnameBase]))}return o}function T0(t,e){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[n,i]=B7(t.path,t.caseSensitive,t.end),s=e.match(n);if(!s)return null;let a=s[0],o=a.replace(/(.)\/+$/,"$1"),r=s.slice(1);return{params:i.reduce((d,{paramName:f,isOptional:m},g)=>{if(f==="*"){let b=r[g]||"";o=a.slice(0,a.length-b.length).replace(/(.)\/+$/,"$1")}const y=r[g];return m&&!y?d[f]=void 0:d[f]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:a,pathnameBase:o,pattern:t}}function B7(t,e=!1,n=!0){$n(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],s="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,r,c)=>(i.push({paramName:r,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),s+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":t!==""&&t!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,e?void 0:"i"),i]}function z7(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return $n(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function Bs(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}function q7({basename:t,pathname:e}){return e==="/"?t:Ao([t,e])}var b3=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ty=t=>b3.test(t);function K7(t,e="/"){let{pathname:n,search:i="",hash:s=""}=typeof t=="string"?Po(t):t,a;if(n)if(Ty(n))a=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),$n(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${n}`)}n.startsWith("/")?a=wM(n.substring(1),"/"):a=wM(n,e)}else a=e;return{pathname:a,search:V7(i),hash:W7(s)}}function wM(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function Ux(t,e,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function v3(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function My(t){let e=v3(t);return e.map((n,i)=>i===e.length-1?n.pathname:n.pathnameBase)}function Ly(t,e,n,i=!1){let s;typeof t=="string"?s=Po(t):(s={...t},qt(!s.pathname||!s.pathname.includes("?"),Ux("?","pathname","search",s)),qt(!s.pathname||!s.pathname.includes("#"),Ux("#","pathname","hash",s)),qt(!s.search||!s.search.includes("#"),Ux("#","search","hash",s)));let a=t===""||s.pathname==="",o=a?"/":s.pathname,r;if(o==null)r=n;else{let m=e.length-1;if(!i&&o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),m-=1;s.pathname=g.join("/")}r=m>=0?e[m]:"/"}let c=K7(s,r),d=o&&o!=="/"&&o.endsWith("/"),f=(a||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||f)&&(c.pathname+="/"),c}var Ao=t=>t.join("/").replace(/\/\/+/g,"/"),H7=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),V7=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,W7=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,qm=class{constructor(t,e,n,i=!1){this.status=t,this.statusText=e||"",this.internal=i,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function hm(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function Km(t){return t.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var x3=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function S3(t,e){let n=t;if(typeof n!="string"||!b3.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let i=n,s=!1;if(x3)try{let a=new URL(window.location.href),o=n.startsWith("//")?new URL(a.protocol+n):new URL(n),r=Bs(o.pathname,e);o.origin===a.origin&&r!=null?n=r+o.search+o.hash:s=!0}catch{$n(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:i,isExternal:s,to:n}}var _l=Symbol("Uninstrumented");function G7(t,e){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};t.forEach(s=>s({id:e.id,index:e.index,path:e.path,instrument(a){let o=Object.keys(n);for(let r of o)a[r]&&n[r].push(a[r])}}));let i={};if(typeof e.lazy=="function"&&n.lazy.length>0){let s=Yu(n.lazy,e.lazy,()=>{});s&&(i.lazy=s)}if(typeof e.lazy=="object"){let s=e.lazy;["middleware","loader","action"].forEach(a=>{let o=s[a],r=n[`lazy.${a}`];if(typeof o=="function"&&r.length>0){let c=Yu(r,o,()=>{});c&&(i.lazy=Object.assign(i.lazy||{},{[a]:c}))}})}return["loader","action"].forEach(s=>{let a=e[s];if(typeof a=="function"&&n[s].length>0){let o=a[_l]??a,r=Yu(n[s],o,(...c)=>kM(c[0]));r&&(s==="loader"&&o.hydrate===!0&&(r.hydrate=!0),r[_l]=o,i[s]=r)}}),e.middleware&&e.middleware.length>0&&n.middleware.length>0&&(i.middleware=e.middleware.map(s=>{let a=s[_l]??s,o=Yu(n.middleware,a,(...r)=>kM(r[0]));return o?(o[_l]=a,o):s})),i}function $7(t,e){let n={navigate:[],fetch:[]};if(e.forEach(i=>i({instrument(s){let a=Object.keys(s);for(let o of a)s[o]&&n[o].push(s[o])}})),n.navigate.length>0){let i=t.navigate[_l]??t.navigate,s=Yu(n.navigate,i,(...a)=>{let[o,r]=a;return{to:typeof o=="number"||typeof o=="string"?o:o?To(o):".",...CM(t,r??{})}});s&&(s[_l]=i,t.navigate=s)}if(n.fetch.length>0){let i=t.fetch[_l]??t.fetch,s=Yu(n.fetch,i,(...a)=>{let[o,,r,c]=a;return{href:r??".",fetcherKey:o,...CM(t,c??{})}});s&&(s[_l]=i,t.fetch=s)}return t}function Yu(t,e,n){return t.length===0?null:async(...i)=>{let s=await w3(t,n(...i),()=>e(...i),t.length-1);if(s.type==="error")throw s.value;return s.value}}async function w3(t,e,n,i){let s=t[i],a;if(s){let o,r=async()=>(o?console.error("You cannot call instrumented handlers more than once"):o=w3(t,e,n,i-1),a=await o,qt(a,"Expected a result"),a.type==="error"&&a.value instanceof Error?{status:"error",error:a.value}:{status:"success",error:void 0});try{await s(r,e)}catch(c){console.error("An instrumentation function threw an error:",c)}o||await r(),await o}else try{a={type:"success",value:await n()}}catch(o){a={type:"error",value:o}}return a||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function kM(t){let{request:e,context:n,params:i,unstable_pattern:s}=t;return{request:X7(e),params:{...i},unstable_pattern:s,context:Q7(n)}}function CM(t,e){return{currentUrl:To(t.state.location),..."formMethod"in e?{formMethod:e.formMethod}:{},..."formEncType"in e?{formEncType:e.formEncType}:{},..."formData"in e?{formData:e.formData}:{},..."body"in e?{body:e.body}:{}}}function X7(t){return{method:t.method,url:t.url,headers:{get:(...e)=>t.headers.get(...e)}}}function Q7(t){if(J7(t)){let e={...t};return Object.freeze(e),e}else return{get:e=>t.get(e)}}var Y7=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function J7(t){if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||e===null||Object.getOwnPropertyNames(e).sort().join("\0")===Y7}var k3=["POST","PUT","PATCH","DELETE"],Z7=new Set(k3),e9=["GET",...k3],t9=new Set(e9),C3=new Set([301,302,303,307,308]),n9=new Set([307,308]),Bx={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},i9={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Wu={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},s9=t=>({hasErrorBoundary:!!t.hasErrorBoundary}),A3="remix-router-transitions",N3=Symbol("ResetLoaderData");function a9(t){const e=t.window?t.window:typeof window<"u"?window:void 0,n=typeof e<"u"&&typeof e.document<"u"&&typeof e.document.createElement<"u";qt(t.routes.length>0,"You must provide a non-empty routes array to createRouter");let i=t.hydrationRouteProperties||[],s=t.mapRouteProperties||s9,a=s;if(t.unstable_instrumentations){let ne=t.unstable_instrumentations;a=de=>({...s(de),...G7(ne.map(ye=>ye.route).filter(Boolean),de)})}let o={},r=dm(t.routes,a,void 0,o),c,d=t.basename||"/";d.startsWith("/")||(d=`/${d}`);let f=t.dataStrategy||u9,m={...t.future},g=null,y=new Set,b=null,v=null,x=null,A=t.hydrationData!=null,k=ml(r,t.history.location,d),T=!1,L=null,M;if(k==null&&!t.patchRoutesOnNavigation){let ne=ga(404,{pathname:t.history.location.pathname}),{matches:de,route:ye}=Fg(r);M=!0,k=de,L={[ye.id]:ne}}else if(k&&!t.hydrationData&&nt(k,r,t.history.location.pathname).active&&(k=null),k)if(k.some(ne=>ne.route.lazy))M=!1;else if(!k.some(ne=>Mw(ne.route)))M=!0;else{let ne=t.hydrationData?t.hydrationData.loaderData:null,de=t.hydrationData?t.hydrationData.errors:null;if(de){let ye=k.findIndex(Le=>de[Le.route.id]!==void 0);M=k.slice(0,ye+1).every(Le=>!L2(Le.route,ne,de))}else M=k.every(ye=>!L2(ye.route,ne,de))}else{M=!1,k=[];let ne=nt(null,r,t.history.location.pathname);ne.active&&ne.matches&&(T=!0,k=ne.matches)}let O,N={historyAction:t.history.action,location:t.history.location,matches:k,initialized:M,navigation:Bx,restoreScrollPosition:t.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:t.hydrationData&&t.hydrationData.loaderData||{},actionData:t.hydrationData&&t.hydrationData.actionData||null,errors:t.hydrationData&&t.hydrationData.errors||L,fetchers:new Map,blockers:new Map},P="POP",E=null,R=!1,z,D=!1,Q=new Map,G=null,B=!1,I=!1,V=new Set,K=new Map,$=0,X=-1,U=new Map,q=new Set,Y=new Map,oe=new Map,se=new Set,F=new Map,Z,J=null;function te(){if(g=t.history.listen(({action:ne,location:de,delta:ye})=>{if(Z){Z(),Z=void 0;return}$n(F.size===0||ye!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let Le=xt({currentLocation:N.location,nextLocation:de,historyAction:ne});if(Le&&ye!=null){let De=new Promise(Qe=>{Z=Qe});t.history.go(ye*-1),on(Le,{state:"blocked",location:de,proceed(){on(Le,{state:"proceeding",proceed:void 0,reset:void 0,location:de}),De.then(()=>t.history.go(ye))},reset(){let Qe=new Map(N.blockers);Qe.set(Le,Wu),ue({blockers:Qe})}}),E?.resolve(),E=null;return}return ht(ne,de)}),n){T9(e,Q);let ne=()=>M9(e,Q);e.addEventListener("pagehide",ne),G=()=>e.removeEventListener("pagehide",ne)}return N.initialized||ht("POP",N.location,{initialHydration:!0}),O}function fe(){g&&g(),G&&G(),y.clear(),z&&z.abort(),N.fetchers.forEach((ne,de)=>Nt(de)),N.blockers.forEach((ne,de)=>kt(de))}function re(ne){return y.add(ne),()=>y.delete(ne)}function ue(ne,de={}){ne.matches&&(ne.matches=ne.matches.map(De=>{let Qe=o[De.route.id],ze=De.route;return ze.element!==Qe.element||ze.errorElement!==Qe.errorElement||ze.hydrateFallbackElement!==Qe.hydrateFallbackElement?{...De,route:Qe}:De})),N={...N,...ne};let ye=[],Le=[];N.fetchers.forEach((De,Qe)=>{De.state==="idle"&&(se.has(Qe)?ye.push(Qe):Le.push(Qe))}),se.forEach(De=>{!N.fetchers.has(De)&&!K.has(De)&&ye.push(De)}),[...y].forEach(De=>De(N,{deletedFetchers:ye,newErrors:ne.errors??null,viewTransitionOpts:de.viewTransitionOpts,flushSync:de.flushSync===!0})),ye.forEach(De=>Nt(De)),Le.forEach(De=>N.fetchers.delete(De))}function ee(ne,de,{flushSync:ye}={}){let Le=N.actionData!=null&&N.navigation.formMethod!=null&&Zi(N.navigation.formMethod)&&N.navigation.state==="loading"&&ne.state?._isRedirect!==!0,De;de.actionData?Object.keys(de.actionData).length>0?De=de.actionData:De=null:Le?De=N.actionData:De=null;let Qe=de.loaderData?RM(N.loaderData,de.loaderData,de.matches||[],de.errors):N.loaderData,ze=N.blockers;ze.size>0&&(ze=new Map(ze),ze.forEach((dt,rt)=>ze.set(rt,Wu)));let Ue=B?!1:Te(ne,de.matches||N.matches),qe=R===!0||N.navigation.formMethod!=null&&Zi(N.navigation.formMethod)&&ne.state?._isRedirect!==!0;c&&(r=c,c=void 0),B||P==="POP"||(P==="PUSH"?t.history.push(ne,ne.state):P==="REPLACE"&&t.history.replace(ne,ne.state));let it;if(P==="POP"){let dt=Q.get(N.location.pathname);dt&&dt.has(ne.pathname)?it={currentLocation:N.location,nextLocation:ne}:Q.has(ne.pathname)&&(it={currentLocation:ne,nextLocation:N.location})}else if(D){let dt=Q.get(N.location.pathname);dt?dt.add(ne.pathname):(dt=new Set([ne.pathname]),Q.set(N.location.pathname,dt)),it={currentLocation:N.location,nextLocation:ne}}ue({...de,actionData:De,loaderData:Qe,historyAction:P,location:ne,initialized:!0,navigation:Bx,revalidation:"idle",restoreScrollPosition:Ue,preventScrollReset:qe,blockers:ze},{viewTransitionOpts:it,flushSync:ye===!0}),P="POP",R=!1,D=!1,B=!1,I=!1,E?.resolve(),E=null,J?.resolve(),J=null}async function Ie(ne,de){if(E?.resolve(),E=null,typeof ne=="number"){E||(E=UM());let Ht=E.promise;return t.history.go(ne),Ht}let ye=M2(N.location,N.matches,d,ne,de?.fromRouteId,de?.relative),{path:Le,submission:De,error:Qe}=AM(!1,ye,de),ze=N.location,Ue=um(N.location,Le,de&&de.state);Ue={...Ue,...t.history.encodeLocation(Ue)};let qe=de&&de.replace!=null?de.replace:void 0,it="PUSH";qe===!0?it="REPLACE":qe===!1||De!=null&&Zi(De.formMethod)&&De.formAction===N.location.pathname+N.location.search&&(it="REPLACE");let dt=de&&"preventScrollReset"in de?de.preventScrollReset===!0:void 0,rt=(de&&de.flushSync)===!0,Kt=xt({currentLocation:ze,nextLocation:Ue,historyAction:it});if(Kt){on(Kt,{state:"blocked",location:Ue,proceed(){on(Kt,{state:"proceeding",proceed:void 0,reset:void 0,location:Ue}),Ie(ne,de)},reset(){let Ht=new Map(N.blockers);Ht.set(Kt,Wu),ue({blockers:Ht})}});return}await ht(it,Ue,{submission:De,pendingError:Qe,preventScrollReset:dt,replace:de&&de.replace,enableViewTransition:de&&de.viewTransition,flushSync:rt,callSiteDefaultShouldRevalidate:de&&de.unstable_defaultShouldRevalidate})}function Ke(){J||(J=UM()),pt(),ue({revalidation:"loading"});let ne=J.promise;return N.navigation.state==="submitting"?ne:N.navigation.state==="idle"?(ht(N.historyAction,N.location,{startUninterruptedRevalidation:!0}),ne):(ht(P||N.historyAction,N.navigation.location,{overrideNavigation:N.navigation,enableViewTransition:D===!0}),ne)}async function ht(ne,de,ye){z&&z.abort(),z=null,P=ne,B=(ye&&ye.startUninterruptedRevalidation)===!0,ws(N.location,N.matches),R=(ye&&ye.preventScrollReset)===!0,D=(ye&&ye.enableViewTransition)===!0;let Le=c||r,De=ye&&ye.overrideNavigation,Qe=ye?.initialHydration&&N.matches&&N.matches.length>0&&!T?N.matches:ml(Le,de,d),ze=(ye&&ye.flushSync)===!0;if(Qe&&N.initialized&&!I&&y9(N.location,de)&&!(ye&&ye.submission&&Zi(ye.submission.formMethod))){ee(de,{matches:Qe},{flushSync:ze});return}let Ue=nt(Qe,Le,de.pathname);if(Ue.active&&Ue.matches&&(Qe=Ue.matches),!Qe){let{error:jn,notFoundMatches:Kn,route:It}=ui(de.pathname);ee(de,{matches:Kn,loaderData:{},errors:{[It.id]:jn}},{flushSync:ze});return}z=new AbortController;let qe=Gu(t.history,de,z.signal,ye&&ye.submission),it=t.getContext?await t.getContext():new vM,dt;if(ye&&ye.pendingError)dt=[pl(Qe).route.id,{type:"error",error:ye.pendingError}];else if(ye&&ye.submission&&Zi(ye.submission.formMethod)){let jn=await wt(qe,de,ye.submission,Qe,it,Ue.active,ye&&ye.initialHydration===!0,{replace:ye.replace,flushSync:ze});if(jn.shortCircuited)return;if(jn.pendingActionResult){let[Kn,It]=jn.pendingActionResult;if(Zs(It)&&hm(It.error)&&It.error.status===404){z=null,ee(de,{matches:jn.matches,loaderData:{},errors:{[Kn]:It.error}});return}}Qe=jn.matches||Qe,dt=jn.pendingActionResult,De=zx(de,ye.submission),ze=!1,Ue.active=!1,qe=Gu(t.history,qe.url,qe.signal)}let{shortCircuited:rt,matches:Kt,loaderData:Ht,errors:yn}=await ft(qe,de,Qe,it,Ue.active,De,ye&&ye.submission,ye&&ye.fetcherSubmission,ye&&ye.replace,ye&&ye.initialHydration===!0,ze,dt,ye&&ye.callSiteDefaultShouldRevalidate);rt||(z=null,ee(de,{matches:Kt||Qe,...DM(dt),loaderData:Ht,errors:yn}))}async function wt(ne,de,ye,Le,De,Qe,ze,Ue={}){pt();let qe=A9(de,ye);if(ue({navigation:qe},{flushSync:Ue.flushSync===!0}),Qe){let rt=await yt(Le,de.pathname,ne.signal);if(rt.type==="aborted")return{shortCircuited:!0};if(rt.type==="error"){if(rt.partialMatches.length===0){let{matches:Ht,route:yn}=Fg(r);return{matches:Ht,pendingActionResult:[yn.id,{type:"error",error:rt.error}]}}let Kt=pl(rt.partialMatches).route.id;return{matches:rt.partialMatches,pendingActionResult:[Kt,{type:"error",error:rt.error}]}}else if(rt.matches)Le=rt.matches;else{let{notFoundMatches:Kt,error:Ht,route:yn}=ui(de.pathname);return{matches:Kt,pendingActionResult:[yn.id,{type:"error",error:Ht}]}}}let it,dt=t0(Le,de);if(!dt.route.action&&!dt.route.lazy)it={type:"error",error:ga(405,{method:ne.method,pathname:de.pathname,routeId:dt.route.id})};else{let rt=ud(a,o,ne,Le,dt,ze?[]:i,De),Kt=await mt(ne,rt,De,null);if(it=Kt[dt.route.id],!it){for(let Ht of Le)if(Kt[Ht.route.id]){it=Kt[Ht.route.id];break}}if(ne.signal.aborted)return{shortCircuited:!0}}if(xc(it)){let rt;return Ue&&Ue.replace!=null?rt=Ue.replace:rt=PM(it.response.headers.get("Location"),new URL(ne.url),d,t.history)===N.location.pathname+N.location.search,await Fe(ne,it,!0,{submission:ye,replace:rt}),{shortCircuited:!0}}if(Zs(it)){let rt=pl(Le,dt.route.id);return(Ue&&Ue.replace)!==!0&&(P="PUSH"),{matches:Le,pendingActionResult:[rt.route.id,it,dt.route.id]}}return{matches:Le,pendingActionResult:[dt.route.id,it]}}async function ft(ne,de,ye,Le,De,Qe,ze,Ue,qe,it,dt,rt,Kt){let Ht=Qe||zx(de,ze),yn=ze||Ue||IM(Ht),jn=!B&&!it;if(De){if(jn){let Hn=Xe(rt);ue({navigation:Ht,...Hn!==void 0?{actionData:Hn}:{}},{flushSync:dt})}let Xt=await yt(ye,de.pathname,ne.signal);if(Xt.type==="aborted")return{shortCircuited:!0};if(Xt.type==="error"){if(Xt.partialMatches.length===0){let{matches:Cs,route:fi}=Fg(r);return{matches:Cs,loaderData:{},errors:{[fi.id]:Xt.error}}}let Hn=pl(Xt.partialMatches).route.id;return{matches:Xt.partialMatches,loaderData:{},errors:{[Hn]:Xt.error}}}else if(Xt.matches)ye=Xt.matches;else{let{error:Hn,notFoundMatches:Cs,route:fi}=ui(de.pathname);return{matches:Cs,loaderData:{},errors:{[fi.id]:Hn}}}}let Kn=c||r,{dsMatches:It,revalidatingFetchers:Yn}=NM(ne,Le,a,o,t.history,N,ye,yn,de,it?[]:i,it===!0,I,V,se,Y,q,Kn,d,t.patchRoutesOnNavigation!=null,rt,Kt);if(X=++$,!t.dataStrategy&&!It.some(Xt=>Xt.shouldLoad)&&!It.some(Xt=>Xt.route.middleware&&Xt.route.middleware.length>0)&&Yn.length===0){let Xt=Ae();return ee(de,{matches:ye,loaderData:{},errors:rt&&Zs(rt[1])?{[rt[0]]:rt[1].error}:null,...DM(rt),...Xt?{fetchers:new Map(N.fetchers)}:{}},{flushSync:dt}),{shortCircuited:!0}}if(jn){let Xt={};if(!De){Xt.navigation=Ht;let Hn=Xe(rt);Hn!==void 0&&(Xt.actionData=Hn)}Yn.length>0&&(Xt.fetchers=Ot(Yn)),ue(Xt,{flushSync:dt})}Yn.forEach(Xt=>{ge(Xt.key),Xt.controller&&K.set(Xt.key,Xt.controller)});let Fi=()=>Yn.forEach(Xt=>ge(Xt.key));z&&z.signal.addEventListener("abort",Fi);let{loaderResults:mn,fetcherResults:Xi}=await je(It,Yn,ne,Le);if(ne.signal.aborted)return{shortCircuited:!0};z&&z.signal.removeEventListener("abort",Fi),Yn.forEach(Xt=>K.delete(Xt.key));let hi=Ig(mn);if(hi)return await Fe(ne,hi.result,!0,{replace:qe}),{shortCircuited:!0};if(hi=Ig(Xi),hi)return q.add(hi.key),await Fe(ne,hi.result,!0,{replace:qe}),{shortCircuited:!0};let{loaderData:ks,errors:wi}=jM(N,ye,mn,rt,Yn,Xi);it&&N.errors&&(wi={...N.errors,...wi});let sa=Ae(),Bo=tt(X),Ii=sa||Bo||Yn.length>0;return{matches:ye,loaderData:ks,errors:wi,...Ii?{fetchers:new Map(N.fetchers)}:{}}}function Xe(ne){if(ne&&!Zs(ne[1]))return{[ne[0]]:ne[1].data};if(N.actionData)return Object.keys(N.actionData).length===0?null:N.actionData}function Ot(ne){return ne.forEach(de=>{let ye=N.fetchers.get(de.key),Le=Xh(void 0,ye?ye.data:void 0);N.fetchers.set(de.key,Le)}),new Map(N.fetchers)}async function zt(ne,de,ye,Le){ge(ne);let De=(Le&&Le.flushSync)===!0,Qe=c||r,ze=M2(N.location,N.matches,d,ye,de,Le?.relative),Ue=ml(Qe,ze,d),qe=nt(Ue,Qe,ze);if(qe.active&&qe.matches&&(Ue=qe.matches),!Ue){Ee(ne,de,ga(404,{pathname:ze}),{flushSync:De});return}let{path:it,submission:dt,error:rt}=AM(!0,ze,Le);if(rt){Ee(ne,de,rt,{flushSync:De});return}let Kt=t.getContext?await t.getContext():new vM,Ht=(Le&&Le.preventScrollReset)===!0;if(dt&&Zi(dt.formMethod)){await sn(ne,de,it,Ue,Kt,qe.active,De,Ht,dt,Le&&Le.unstable_defaultShouldRevalidate);return}Y.set(ne,{routeId:de,path:it}),await an(ne,de,it,Ue,Kt,qe.active,De,Ht,dt)}async function sn(ne,de,ye,Le,De,Qe,ze,Ue,qe,it){pt(),Y.delete(ne);let dt=N.fetchers.get(ne);at(ne,N9(qe,dt),{flushSync:ze});let rt=new AbortController,Kt=Gu(t.history,ye,rt.signal,qe);if(Qe){let Gt=await yt(Le,new URL(Kt.url).pathname,Kt.signal,ne);if(Gt.type==="aborted")return;if(Gt.type==="error"){Ee(ne,de,Gt.error,{flushSync:ze});return}else if(Gt.matches)Le=Gt.matches;else{Ee(ne,de,ga(404,{pathname:ye}),{flushSync:ze});return}}let Ht=t0(Le,ye);if(!Ht.route.action&&!Ht.route.lazy){let Gt=ga(405,{method:qe.formMethod,pathname:ye,routeId:de});Ee(ne,de,Gt,{flushSync:ze});return}K.set(ne,rt);let yn=$,jn=ud(a,o,Kt,Le,Ht,i,De),Kn=await mt(Kt,jn,De,ne),It=Kn[Ht.route.id];if(!It){for(let Gt of jn)if(Kn[Gt.route.id]){It=Kn[Gt.route.id];break}}if(Kt.signal.aborted){K.get(ne)===rt&&K.delete(ne);return}if(se.has(ne)){if(xc(It)||Zs(It)){at(ne,hr(void 0));return}}else{if(xc(It))if(K.delete(ne),X>yn){at(ne,hr(void 0));return}else return q.add(ne),at(ne,Xh(qe)),Fe(Kt,It,!1,{fetcherSubmission:qe,preventScrollReset:Ue});if(Zs(It)){Ee(ne,de,It.error);return}}let Yn=N.navigation.location||N.location,Fi=Gu(t.history,Yn,rt.signal),mn=c||r,Xi=N.navigation.state!=="idle"?ml(mn,N.navigation.location,d):N.matches;qt(Xi,"Didn't find any matches after fetcher action");let hi=++$;U.set(ne,hi);let ks=Xh(qe,It.data);N.fetchers.set(ne,ks);let{dsMatches:wi,revalidatingFetchers:sa}=NM(Fi,De,a,o,t.history,N,Xi,qe,Yn,i,!1,I,V,se,Y,q,mn,d,t.patchRoutesOnNavigation!=null,[Ht.route.id,It],it);sa.filter(Gt=>Gt.key!==ne).forEach(Gt=>{let zo=Gt.key,tu=N.fetchers.get(zo),Ul=Xh(void 0,tu?tu.data:void 0);N.fetchers.set(zo,Ul),ge(zo),Gt.controller&&K.set(zo,Gt.controller)}),ue({fetchers:new Map(N.fetchers)});let Bo=()=>sa.forEach(Gt=>ge(Gt.key));rt.signal.addEventListener("abort",Bo);let{loaderResults:Ii,fetcherResults:Xt}=await je(wi,sa,Fi,De);if(rt.signal.aborted)return;if(rt.signal.removeEventListener("abort",Bo),U.delete(ne),K.delete(ne),sa.forEach(Gt=>K.delete(Gt.key)),N.fetchers.has(ne)){let Gt=hr(It.data);N.fetchers.set(ne,Gt)}let Hn=Ig(Ii);if(Hn)return Fe(Fi,Hn.result,!1,{preventScrollReset:Ue});if(Hn=Ig(Xt),Hn)return q.add(Hn.key),Fe(Fi,Hn.result,!1,{preventScrollReset:Ue});let{loaderData:Cs,errors:fi}=jM(N,Xi,Ii,void 0,sa,Xt);tt(hi),N.navigation.state==="loading"&&hi>X?(qt(P,"Expected pending action"),z&&z.abort(),ee(N.navigation.location,{matches:Xi,loaderData:Cs,errors:fi,fetchers:new Map(N.fetchers)})):(ue({errors:fi,loaderData:RM(N.loaderData,Cs,Xi,fi),fetchers:new Map(N.fetchers)}),I=!1)}async function an(ne,de,ye,Le,De,Qe,ze,Ue,qe){let it=N.fetchers.get(ne);at(ne,Xh(qe,it?it.data:void 0),{flushSync:ze});let dt=new AbortController,rt=Gu(t.history,ye,dt.signal);if(Qe){let It=await yt(Le,new URL(rt.url).pathname,rt.signal,ne);if(It.type==="aborted")return;if(It.type==="error"){Ee(ne,de,It.error,{flushSync:ze});return}else if(It.matches)Le=It.matches;else{Ee(ne,de,ga(404,{pathname:ye}),{flushSync:ze});return}}let Kt=t0(Le,ye);K.set(ne,dt);let Ht=$,yn=ud(a,o,rt,Le,Kt,i,De),Kn=(await mt(rt,yn,De,ne))[Kt.route.id];if(K.get(ne)===dt&&K.delete(ne),!rt.signal.aborted){if(se.has(ne)){at(ne,hr(void 0));return}if(xc(Kn))if(X>Ht){at(ne,hr(void 0));return}else{q.add(ne),await Fe(rt,Kn,!1,{preventScrollReset:Ue});return}if(Zs(Kn)){Ee(ne,de,Kn.error);return}at(ne,hr(Kn.data))}}async function Fe(ne,de,ye,{submission:Le,fetcherSubmission:De,preventScrollReset:Qe,replace:ze}={}){ye||(E?.resolve(),E=null),de.response.headers.has("X-Remix-Revalidate")&&(I=!0);let Ue=de.response.headers.get("Location");qt(Ue,"Expected a Location header on the redirect Response"),Ue=PM(Ue,new URL(ne.url),d,t.history);let qe=um(N.location,Ue,{_isRedirect:!0});if(n){let yn=!1;if(de.response.headers.has("X-Remix-Reload-Document"))yn=!0;else if(Ty(Ue)){const jn=g3(Ue,!0);yn=jn.origin!==e.location.origin||Bs(jn.pathname,d)==null}if(yn){ze?e.location.replace(Ue):e.location.assign(Ue);return}}z=null;let it=ze===!0||de.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:dt,formAction:rt,formEncType:Kt}=N.navigation;!Le&&!De&&dt&&rt&&Kt&&(Le=IM(N.navigation));let Ht=Le||De;if(n9.has(de.response.status)&&Ht&&Zi(Ht.formMethod))await ht(it,qe,{submission:{...Ht,formAction:Ue},preventScrollReset:Qe||R,enableViewTransition:ye?D:void 0});else{let yn=zx(qe,Le);await ht(it,qe,{overrideNavigation:yn,fetcherSubmission:De,preventScrollReset:Qe||R,enableViewTransition:ye?D:void 0})}}async function mt(ne,de,ye,Le){let De,Qe={};try{De=await h9(f,ne,de,Le,ye,!1)}catch(ze){return de.filter(Ue=>Ue.shouldLoad).forEach(Ue=>{Qe[Ue.route.id]={type:"error",error:ze}}),Qe}if(ne.signal.aborted)return Qe;if(!Zi(ne.method))for(let ze of de){if(De[ze.route.id]?.type==="error")break;!De.hasOwnProperty(ze.route.id)&&!N.loaderData.hasOwnProperty(ze.route.id)&&(!N.errors||!N.errors.hasOwnProperty(ze.route.id))&&ze.shouldCallHandler()&&(De[ze.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${ze.route.id}`)})}for(let[ze,Ue]of Object.entries(De))if(S9(Ue)){let qe=Ue.result;Qe[ze]={type:"redirect",response:g9(qe,ne,ze,de,d)}}else Qe[ze]=await p9(Ue);return Qe}async function je(ne,de,ye,Le){let De=mt(ye,ne,Le,null),Qe=Promise.all(de.map(async qe=>{if(qe.matches&&qe.match&&qe.request&&qe.controller){let dt=(await mt(qe.request,qe.matches,Le,qe.key))[qe.match.route.id];return{[qe.key]:dt}}else return Promise.resolve({[qe.key]:{type:"error",error:ga(404,{pathname:qe.path})}})})),ze=await De,Ue=(await Qe).reduce((qe,it)=>Object.assign(qe,it),{});return{loaderResults:ze,fetcherResults:Ue}}function pt(){I=!0,Y.forEach((ne,de)=>{K.has(de)&&V.add(de),ge(de)})}function at(ne,de,ye={}){N.fetchers.set(ne,de),ue({fetchers:new Map(N.fetchers)},{flushSync:(ye&&ye.flushSync)===!0})}function Ee(ne,de,ye,Le={}){let De=pl(N.matches,de);Nt(ne),ue({errors:{[De.route.id]:ye},fetchers:new Map(N.fetchers)},{flushSync:(Le&&Le.flushSync)===!0})}function ut(ne){return oe.set(ne,(oe.get(ne)||0)+1),se.has(ne)&&se.delete(ne),N.fetchers.get(ne)||i9}function Mt(ne,de){ge(ne,de?.reason),at(ne,hr(null))}function Nt(ne){let de=N.fetchers.get(ne);K.has(ne)&&!(de&&de.state==="loading"&&U.has(ne))&&ge(ne),Y.delete(ne),U.delete(ne),q.delete(ne),se.delete(ne),V.delete(ne),N.fetchers.delete(ne)}function le(ne){let de=(oe.get(ne)||0)-1;de<=0?(oe.delete(ne),se.add(ne)):oe.set(ne,de),ue({fetchers:new Map(N.fetchers)})}function ge(ne,de){let ye=K.get(ne);ye&&(ye.abort(de),K.delete(ne))}function ie(ne){for(let de of ne){let ye=ut(de),Le=hr(ye.data);N.fetchers.set(de,Le)}}function Ae(){let ne=[],de=!1;for(let ye of q){let Le=N.fetchers.get(ye);qt(Le,`Expected fetcher: ${ye}`),Le.state==="loading"&&(q.delete(ye),ne.push(ye),de=!0)}return ie(ne),de}function tt(ne){let de=[];for(let[ye,Le]of U)if(Le<ne){let De=N.fetchers.get(ye);qt(De,`Expected fetcher: ${ye}`),De.state==="loading"&&(ge(ye),U.delete(ye),de.push(ye))}return ie(de),de.length>0}function jt(ne,de){let ye=N.blockers.get(ne)||Wu;return F.get(ne)!==de&&F.set(ne,de),ye}function kt(ne){N.blockers.delete(ne),F.delete(ne)}function on(ne,de){let ye=N.blockers.get(ne)||Wu;qt(ye.state==="unblocked"&&de.state==="blocked"||ye.state==="blocked"&&de.state==="blocked"||ye.state==="blocked"&&de.state==="proceeding"||ye.state==="blocked"&&de.state==="unblocked"||ye.state==="proceeding"&&de.state==="unblocked",`Invalid blocker state transition: ${ye.state} -> ${de.state}`);let Le=new Map(N.blockers);Le.set(ne,de),ue({blockers:Le})}function xt({currentLocation:ne,nextLocation:de,historyAction:ye}){if(F.size===0)return;F.size>1&&$n(!1,"A router only supports one blocker at a time");let Le=Array.from(F.entries()),[De,Qe]=Le[Le.length-1],ze=N.blockers.get(De);if(!(ze&&ze.state==="proceeding")&&Qe({currentLocation:ne,nextLocation:de,historyAction:ye}))return De}function ui(ne){let de=ga(404,{pathname:ne}),ye=c||r,{matches:Le,route:De}=Fg(ye);return{notFoundMatches:Le,route:De,error:de}}function Di(ne,de,ye){if(b=ne,x=de,v=ye||null,!A&&N.navigation===Bx){A=!0;let Le=Te(N.location,N.matches);Le!=null&&ue({restoreScrollPosition:Le})}return()=>{b=null,x=null,v=null}}function ds(ne,de){return v&&v(ne,de.map(Le=>M7(Le,N.loaderData)))||ne.key}function ws(ne,de){if(b&&x){let ye=ds(ne,de);b[ye]=x()}}function Te(ne,de){if(b){let ye=ds(ne,de),Le=b[ye];if(typeof Le=="number")return Le}return null}function nt(ne,de,ye){if(t.patchRoutesOnNavigation)if(ne){if(Object.keys(ne[0].params).length>0)return{active:!0,matches:Cf(de,ye,d,!0)}}else return{active:!0,matches:Cf(de,ye,d,!0)||[]};return{active:!1,matches:null}}async function yt(ne,de,ye,Le){if(!t.patchRoutesOnNavigation)return{type:"success",matches:ne};let De=ne;for(;;){let Qe=c==null,ze=c||r,Ue=o;try{await t.patchRoutesOnNavigation({signal:ye,path:de,matches:De,fetcherKey:Le,patch:(dt,rt)=>{ye.aborted||TM(dt,rt,ze,Ue,a,!1)}})}catch(dt){return{type:"error",error:dt,partialMatches:De}}finally{Qe&&!ye.aborted&&(r=[...r])}if(ye.aborted)return{type:"aborted"};let qe=ml(ze,de,d),it=null;if(qe){if(Object.keys(qe[0].params).length===0)return{type:"success",matches:qe};if(it=Cf(ze,de,d,!0),!(it&&De.length<it.length&&ti(De,it.slice(0,De.length))))return{type:"success",matches:qe}}if(it||(it=Cf(ze,de,d,!0)),!it||ti(De,it))return{type:"success",matches:null};De=it}}function ti(ne,de){return ne.length===de.length&&ne.every((ye,Le)=>ye.route.id===de[Le].route.id)}function En(ne){o={},c=dm(ne,a,void 0,o)}function di(ne,de,ye=!1){let Le=c==null;TM(ne,de,c||r,o,a,ye),Le&&(r=[...r],ue({}))}return O={get basename(){return d},get future(){return m},get state(){return N},get routes(){return r},get window(){return e},initialize:te,subscribe:re,enableScrollRestoration:Di,navigate:Ie,fetch:zt,revalidate:Ke,createHref:ne=>t.history.createHref(ne),encodeLocation:ne=>t.history.encodeLocation(ne),getFetcher:ut,resetFetcher:Mt,deleteFetcher:le,dispose:fe,getBlocker:jt,deleteBlocker:kt,patchRoutes:di,_internalFetchControllers:K,_internalSetRoutes:En,_internalSetStateDoNotUseOrYouWillBreakYourApp(ne){ue(ne)}},t.unstable_instrumentations&&(O=$7(O,t.unstable_instrumentations.map(ne=>ne.router).filter(Boolean))),O}function o9(t){return t!=null&&("formData"in t&&t.formData!=null||"body"in t&&t.body!==void 0)}function M2(t,e,n,i,s,a){let o,r;if(s){o=[];for(let d of e)if(o.push(d),d.route.id===s){r=d;break}}else o=e,r=e[e.length-1];let c=Ly(i||".",My(o),Bs(t.pathname,n)||t.pathname,a==="path");if(i==null&&(c.search=t.search,c.hash=t.hash),(i==null||i===""||i===".")&&r){let d=Ow(c.search);if(r.route.index&&!d)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!r.route.index&&d){let f=new URLSearchParams(c.search),m=f.getAll("index");f.delete("index"),m.filter(y=>y).forEach(y=>f.append("index",y));let g=f.toString();c.search=g?`?${g}`:""}}return n!=="/"&&(c.pathname=q7({basename:n,pathname:c.pathname})),To(c)}function AM(t,e,n){if(!n||!o9(n))return{path:e};if(n.formMethod&&!C9(n.formMethod))return{path:e,error:ga(405,{method:n.formMethod})};let i=()=>({path:e,error:ga(400,{type:"invalid-body"})}),a=(n.formMethod||"get").toUpperCase(),o=E3(e);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!Zi(a))return i();let m=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((g,[y,b])=>`${g}${y}=${b}
|
||
`,""):String(n.body);return{path:e,submission:{formMethod:a,formAction:o,formEncType:n.formEncType,formData:void 0,json:void 0,text:m}}}else if(n.formEncType==="application/json"){if(!Zi(a))return i();try{let m=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:e,submission:{formMethod:a,formAction:o,formEncType:n.formEncType,formData:void 0,json:m,text:void 0}}}catch{return i()}}}qt(typeof FormData=="function","FormData is not available in this environment");let r,c;if(n.formData)r=P2(n.formData),c=n.formData;else if(n.body instanceof FormData)r=P2(n.body),c=n.body;else if(n.body instanceof URLSearchParams)r=n.body,c=EM(r);else if(n.body==null)r=new URLSearchParams,c=new FormData;else try{r=new URLSearchParams(n.body),c=EM(r)}catch{return i()}let d={formMethod:a,formAction:o,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:c,json:void 0,text:void 0};if(Zi(d.formMethod))return{path:e,submission:d};let f=Po(e);return t&&f.search&&Ow(f.search)&&r.append("index",""),f.search=`?${r}`,{path:To(f),submission:d}}function NM(t,e,n,i,s,a,o,r,c,d,f,m,g,y,b,v,x,A,k,T,L){let M=T?Zs(T[1])?T[1].error:T[1].data:void 0,O=s.createURL(a.location),N=s.createURL(c),P;if(f&&a.errors){let B=Object.keys(a.errors)[0];P=o.findIndex(I=>I.route.id===B)}else if(T&&Zs(T[1])){let B=T[0];P=o.findIndex(I=>I.route.id===B)-1}let E=T?T[1].statusCode:void 0,R=E&&E>=400,z={currentUrl:O,currentParams:a.matches[0]?.params||{},nextUrl:N,nextParams:o[0].params,...r,actionResult:M,actionStatus:E},D=Km(o),Q=o.map((B,I)=>{let{route:V}=B,K=null;if(P!=null&&I>P?K=!1:V.lazy?K=!0:Mw(V)?f?K=L2(V,a.loaderData,a.errors):r9(a.loaderData,a.matches[I],B)&&(K=!0):K=!1,K!==null)return O2(n,i,t,D,B,d,e,K);let $=!1;typeof L=="boolean"?$=L:R?$=!1:(m||O.pathname+O.search===N.pathname+N.search||O.search!==N.search||l9(a.matches[I],B))&&($=!0);let X={...z,defaultShouldRevalidate:$},U=zf(B,X);return O2(n,i,t,D,B,d,e,U,X,L)}),G=[];return b.forEach((B,I)=>{if(f||!o.some(oe=>oe.route.id===B.routeId)||y.has(I))return;let V=a.fetchers.get(I),K=V&&V.state!=="idle"&&V.data===void 0,$=ml(x,B.path,A);if(!$){if(k&&K)return;G.push({key:I,routeId:B.routeId,path:B.path,matches:null,match:null,request:null,controller:null});return}if(v.has(I))return;let X=t0($,B.path),U=new AbortController,q=Gu(s,B.path,U.signal),Y=null;if(g.has(I))g.delete(I),Y=ud(n,i,q,$,X,d,e);else if(K)m&&(Y=ud(n,i,q,$,X,d,e));else{let oe;typeof L=="boolean"?oe=L:R?oe=!1:oe=m;let se={...z,defaultShouldRevalidate:oe};zf(X,se)&&(Y=ud(n,i,q,$,X,d,e,se))}Y&&G.push({key:I,routeId:B.routeId,path:B.path,matches:Y,match:X,request:q,controller:U})}),{dsMatches:Q,revalidatingFetchers:G}}function Mw(t){return t.loader!=null||t.middleware!=null&&t.middleware.length>0}function L2(t,e,n){if(t.lazy)return!0;if(!Mw(t))return!1;let i=e!=null&&t.id in e,s=n!=null&&n[t.id]!==void 0;return!i&&s?!1:typeof t.loader=="function"&&t.loader.hydrate===!0?!0:!i&&!s}function r9(t,e,n){let i=!e||n.route.id!==e.route.id,s=!t.hasOwnProperty(n.route.id);return i||s}function l9(t,e){let n=t.route.path;return t.pathname!==e.pathname||n!=null&&n.endsWith("*")&&t.params["*"]!==e.params["*"]}function zf(t,e){if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate(e);if(typeof n=="boolean")return n}return e.defaultShouldRevalidate}function TM(t,e,n,i,s,a){let o;if(t){let d=i[t];qt(d,`No route found to patch children into: routeId = ${t}`),d.children||(d.children=[]),o=d.children}else o=n;let r=[],c=[];if(e.forEach(d=>{let f=o.find(m=>T3(d,m));f?c.push({existingRoute:f,newRoute:d}):r.push(d)}),r.length>0){let d=dm(r,s,[t||"_","patch",String(o?.length||"0")],i);o.push(...d)}if(a&&c.length>0)for(let d=0;d<c.length;d++){let{existingRoute:f,newRoute:m}=c[d],g=f,[y]=dm([m],s,[],{},!0);Object.assign(g,{element:y.element?y.element:g.element,errorElement:y.errorElement?y.errorElement:g.errorElement,hydrateFallbackElement:y.hydrateFallbackElement?y.hydrateFallbackElement:g.hydrateFallbackElement})}}function T3(t,e){return"id"in t&&"id"in e&&t.id===e.id?!0:t.index===e.index&&t.path===e.path&&t.caseSensitive===e.caseSensitive?(!t.children||t.children.length===0)&&(!e.children||e.children.length===0)?!0:t.children.every((n,i)=>e.children?.some(s=>T3(n,s))):!1}var MM=new WeakMap,M3=({key:t,route:e,manifest:n,mapRouteProperties:i})=>{let s=n[e.id];if(qt(s,"No route found in manifest"),!s.lazy||typeof s.lazy!="object")return;let a=s.lazy[t];if(!a)return;let o=MM.get(s);o||(o={},MM.set(s,o));let r=o[t];if(r)return r;let c=(async()=>{let d=C7(t),m=s[t]!==void 0&&t!=="hasErrorBoundary";if(d)$n(!d,"Route property "+t+" is not a supported lazy route property. This property will be ignored."),o[t]=Promise.resolve();else if(m)$n(!1,`Route "${s.id}" has a static property "${t}" defined. The lazy property will be ignored.`);else{let g=await a();g!=null&&(Object.assign(s,{[t]:g}),Object.assign(s,i(s)))}typeof s.lazy=="object"&&(s.lazy[t]=void 0,Object.values(s.lazy).every(g=>g===void 0)&&(s.lazy=void 0))})();return o[t]=c,c},LM=new WeakMap;function c9(t,e,n,i,s){let a=n[t.id];if(qt(a,"No route found in manifest"),!t.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof t.lazy=="function"){let f=LM.get(a);if(f)return{lazyRoutePromise:f,lazyHandlerPromise:f};let m=(async()=>{qt(typeof t.lazy=="function","No lazy route function found");let g=await t.lazy(),y={};for(let b in g){let v=g[b];if(v===void 0)continue;let x=N7(b),k=a[b]!==void 0&&b!=="hasErrorBoundary";x?$n(!x,"Route property "+b+" is not a supported property to be returned from a lazy route function. This property will be ignored."):k?$n(!k,`Route "${a.id}" has a static property "${b}" defined but its lazy function is also returning a value for this property. The lazy route property "${b}" will be ignored.`):y[b]=v}Object.assign(a,y),Object.assign(a,{...i(a),lazy:void 0})})();return LM.set(a,m),m.catch(()=>{}),{lazyRoutePromise:m,lazyHandlerPromise:m}}let o=Object.keys(t.lazy),r=[],c;for(let f of o){if(s&&s.includes(f))continue;let m=M3({key:f,route:t,manifest:n,mapRouteProperties:i});m&&(r.push(m),f===e&&(c=m))}let d=r.length>0?Promise.all(r).then(()=>{}):void 0;return d?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:d,lazyHandlerPromise:c}}async function OM(t){let e=t.matches.filter(s=>s.shouldLoad),n={};return(await Promise.all(e.map(s=>s.resolve()))).forEach((s,a)=>{n[e[a].route.id]=s}),n}async function u9(t){return t.matches.some(e=>e.route.middleware)?L3(t,()=>OM(t)):OM(t)}function L3(t,e){return d9(t,e,i=>{if(k9(i))throw i;return i},v9,n);function n(i,s,a){if(a)return Promise.resolve(Object.assign(a.value,{[s]:{type:"error",result:i}}));{let{matches:o}=t,r=Math.min(Math.max(o.findIndex(d=>d.route.id===s),0),Math.max(o.findIndex(d=>d.shouldCallHandler()),0)),c=pl(o,o[r].route.id).route.id;return Promise.resolve({[c]:{type:"error",result:i}})}}}async function d9(t,e,n,i,s){let{matches:a,request:o,params:r,context:c,unstable_pattern:d}=t,f=a.flatMap(g=>g.route.middleware?g.route.middleware.map(y=>[g.route.id,y]):[]);return await O3({request:o,params:r,context:c,unstable_pattern:d},f,e,n,i,s)}async function O3(t,e,n,i,s,a,o=0){let{request:r}=t;if(r.signal.aborted)throw r.signal.reason??new Error(`Request aborted: ${r.method} ${r.url}`);let c=e[o];if(!c)return await n();let[d,f]=c,m,g=async()=>{if(m)throw new Error("You may only call `next()` once per middleware");try{return m={value:await O3(t,e,n,i,s,a,o+1)},m.value}catch(y){return m={value:await a(y,d,m)},m.value}};try{let y=await f(t,g),b=y!=null?i(y):void 0;return s(b)?b:m?b??m.value:(m={value:await g()},m.value)}catch(y){return await a(y,d,m)}}function P3(t,e,n,i,s){let a=M3({key:"middleware",route:i.route,manifest:e,mapRouteProperties:t}),o=c9(i.route,Zi(n.method)?"action":"loader",e,t,s);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function O2(t,e,n,i,s,a,o,r,c=null,d){let f=!1,m=P3(t,e,n,s,a);return{...s,_lazyPromises:m,shouldLoad:r,shouldRevalidateArgs:c,shouldCallHandler(g){return f=!0,c?typeof d=="boolean"?zf(s,{...c,defaultShouldRevalidate:d}):typeof g=="boolean"?zf(s,{...c,defaultShouldRevalidate:g}):zf(s,c):r},resolve(g){let{lazy:y,loader:b,middleware:v}=s.route,x=f||r||g&&!Zi(n.method)&&(y||b),A=v&&v.length>0&&!b&&!y;return x&&(Zi(n.method)||!A)?f9({request:n,unstable_pattern:i,match:s,lazyHandlerPromise:m?.handler,lazyRoutePromise:m?.route,handlerOverride:g,scopedContext:o}):Promise.resolve({type:"data",result:void 0})}}}function ud(t,e,n,i,s,a,o,r=null){return i.map(c=>c.route.id!==s.route.id?{...c,shouldLoad:!1,shouldRevalidateArgs:r,shouldCallHandler:()=>!1,_lazyPromises:P3(t,e,n,c,a),resolve:()=>Promise.resolve({type:"data",result:void 0})}:O2(t,e,n,Km(i),c,a,o,!0,r))}async function h9(t,e,n,i,s,a){n.some(d=>d._lazyPromises?.middleware)&&await Promise.all(n.map(d=>d._lazyPromises?.middleware));let o={request:e,unstable_pattern:Km(n),params:n[0].params,context:s,matches:n},c=await t({...o,fetcherKey:i,runClientMiddleware:d=>{let f=o;return L3(f,()=>d({...f,fetcherKey:i,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(n.flatMap(d=>[d._lazyPromises?.handler,d._lazyPromises?.route]))}catch{}return c}async function f9({request:t,unstable_pattern:e,match:n,lazyHandlerPromise:i,lazyRoutePromise:s,handlerOverride:a,scopedContext:o}){let r,c,d=Zi(t.method),f=d?"action":"loader",m=g=>{let y,b=new Promise((A,k)=>y=k);c=()=>y(),t.signal.addEventListener("abort",c);let v=A=>typeof g!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${f}" [routeId: ${n.route.id}]`)):g({request:t,unstable_pattern:e,params:n.params,context:o},...A!==void 0?[A]:[]),x=(async()=>{try{return{type:"data",result:await(a?a(k=>v(k)):v())}}catch(A){return{type:"error",result:A}}})();return Promise.race([x,b])};try{let g=d?n.route.action:n.route.loader;if(i||s)if(g){let y,[b]=await Promise.all([m(g).catch(v=>{y=v}),i,s]);if(y!==void 0)throw y;r=b}else{await i;let y=d?n.route.action:n.route.loader;if(y)[r]=await Promise.all([m(y),s]);else if(f==="action"){let b=new URL(t.url),v=b.pathname+b.search;throw ga(405,{method:t.method,pathname:v,routeId:n.route.id})}else return{type:"data",result:void 0}}else if(g)r=await m(g);else{let y=new URL(t.url),b=y.pathname+y.search;throw ga(404,{pathname:b})}}catch(g){return{type:"error",result:g}}finally{c&&t.signal.removeEventListener("abort",c)}return r}async function m9(t){let e=t.headers.get("Content-Type");return e&&/\bapplication\/json\b/.test(e)?t.body==null?null:t.json():t.text()}async function p9(t){let{result:e,type:n}=t;if(Lw(e)){let i;try{i=await m9(e)}catch(s){return{type:"error",error:s}}return n==="error"?{type:"error",error:new qm(e.status,e.statusText,i),statusCode:e.status,headers:e.headers}:{type:"data",data:i,statusCode:e.status,headers:e.headers}}return n==="error"?FM(e)?e.data instanceof Error?{type:"error",error:e.data,statusCode:e.init?.status,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"error",error:b9(e),statusCode:hm(e)?e.status:void 0,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"error",error:e,statusCode:hm(e)?e.status:void 0}:FM(e)?{type:"data",data:e.data,statusCode:e.init?.status,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"data",data:e}}function g9(t,e,n,i,s){let a=t.headers.get("Location");if(qt(a,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ty(a)){let o=i.slice(0,i.findIndex(r=>r.route.id===n)+1);a=M2(new URL(e.url),o,s,a),t.headers.set("Location",a)}return t}function PM(t,e,n,i){let s=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(Ty(t)){let a=t,o=a.startsWith("//")?new URL(e.protocol+a):new URL(a);if(s.includes(o.protocol))throw new Error("Invalid redirect location");let r=Bs(o.pathname,n)!=null;if(o.origin===e.origin&&r)return o.pathname+o.search+o.hash}try{let a=i.createURL(t);if(s.includes(a.protocol))throw new Error("Invalid redirect location")}catch{}return t}function Gu(t,e,n,i){let s=t.createURL(E3(e)).toString(),a={signal:n};if(i&&Zi(i.formMethod)){let{formMethod:o,formEncType:r}=i;a.method=o.toUpperCase(),r==="application/json"?(a.headers=new Headers({"Content-Type":r}),a.body=JSON.stringify(i.json)):r==="text/plain"?a.body=i.text:r==="application/x-www-form-urlencoded"&&i.formData?a.body=P2(i.formData):a.body=i.formData}return new Request(s,a)}function P2(t){let e=new URLSearchParams;for(let[n,i]of t.entries())e.append(n,typeof i=="string"?i:i.name);return e}function EM(t){let e=new FormData;for(let[n,i]of t.entries())e.append(n,i);return e}function _9(t,e,n,i=!1,s=!1){let a={},o=null,r,c=!1,d={},f=n&&Zs(n[1])?n[1].error:void 0;return t.forEach(m=>{if(!(m.route.id in e))return;let g=m.route.id,y=e[g];if(qt(!xc(y),"Cannot handle redirect results in processLoaderData"),Zs(y)){let b=y.error;if(f!==void 0&&(b=f,f=void 0),o=o||{},s)o[g]=b;else{let v=pl(t,g);o[v.route.id]==null&&(o[v.route.id]=b)}i||(a[g]=N3),c||(c=!0,r=hm(y.error)?y.error.status:500),y.headers&&(d[g]=y.headers)}else a[g]=y.data,y.statusCode&&y.statusCode!==200&&!c&&(r=y.statusCode),y.headers&&(d[g]=y.headers)}),f!==void 0&&n&&(o={[n[0]]:f},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:r||200,loaderHeaders:d}}function jM(t,e,n,i,s,a){let{loaderData:o,errors:r}=_9(e,n,i);return s.filter(c=>!c.matches||c.matches.some(d=>d.shouldLoad)).forEach(c=>{let{key:d,match:f,controller:m}=c;if(m&&m.signal.aborted)return;let g=a[d];if(qt(g,"Did not find corresponding fetcher result"),Zs(g)){let y=pl(t.matches,f?.route.id);r&&r[y.route.id]||(r={...r,[y.route.id]:g.error}),t.fetchers.delete(d)}else if(xc(g))qt(!1,"Unhandled fetcher revalidation redirect");else{let y=hr(g.data);t.fetchers.set(d,y)}}),{loaderData:o,errors:r}}function RM(t,e,n,i){let s=Object.entries(e).filter(([,a])=>a!==N3).reduce((a,[o,r])=>(a[o]=r,a),{});for(let a of n){let o=a.route.id;if(!e.hasOwnProperty(o)&&t.hasOwnProperty(o)&&a.route.loader&&(s[o]=t[o]),i&&i.hasOwnProperty(o))break}return s}function DM(t){return t?Zs(t[1])?{actionData:{}}:{actionData:{[t[0]]:t[1].data}}:{}}function pl(t,e){return(e?t.slice(0,t.findIndex(i=>i.route.id===e)+1):[...t]).reverse().find(i=>i.route.hasErrorBoundary===!0)||t[0]}function Fg(t){let e=t.length===1?t[0]:t.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:e}],route:e}}function ga(t,{pathname:e,routeId:n,method:i,type:s,message:a}={}){let o="Unknown Server Error",r="Unknown @remix-run/router error";return t===400?(o="Bad Request",i&&e&&n?r=`You made a ${i} request to "${e}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:s==="invalid-body"&&(r="Unable to encode submission body")):t===403?(o="Forbidden",r=`Route "${n}" does not match URL "${e}"`):t===404?(o="Not Found",r=`No route matches URL "${e}"`):t===405&&(o="Method Not Allowed",i&&e&&n?r=`You made a ${i.toUpperCase()} request to "${e}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:i&&(r=`Invalid request method "${i.toUpperCase()}"`)),new qm(t||500,o,new Error(r),!0)}function Ig(t){let e=Object.entries(t);for(let n=e.length-1;n>=0;n--){let[i,s]=e[n];if(xc(s))return{key:i,result:s}}}function E3(t){let e=typeof t=="string"?Po(t):t;return To({...e,hash:""})}function y9(t,e){return t.pathname!==e.pathname||t.search!==e.search?!1:t.hash===""?e.hash!=="":t.hash===e.hash?!0:e.hash!==""}function b9(t){return new qm(t.init?.status??500,t.init?.statusText??"Internal Server Error",t.data)}function v9(t){return t!=null&&typeof t=="object"&&Object.entries(t).every(([e,n])=>typeof e=="string"&&x9(n))}function x9(t){return t!=null&&typeof t=="object"&&"type"in t&&"result"in t&&(t.type==="data"||t.type==="error")}function S9(t){return Lw(t.result)&&C3.has(t.result.status)}function Zs(t){return t.type==="error"}function xc(t){return(t&&t.type)==="redirect"}function FM(t){return typeof t=="object"&&t!=null&&"type"in t&&"data"in t&&"init"in t&&t.type==="DataWithResponseInit"}function Lw(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.headers=="object"&&typeof t.body<"u"}function w9(t){return C3.has(t)}function k9(t){return Lw(t)&&w9(t.status)&&t.headers.has("Location")}function C9(t){return t9.has(t.toUpperCase())}function Zi(t){return Z7.has(t.toUpperCase())}function Ow(t){return new URLSearchParams(t).getAll("index").some(e=>e==="")}function t0(t,e){let n=typeof e=="string"?Po(e).search:e.search;if(t[t.length-1].route.index&&Ow(n||""))return t[t.length-1];let i=v3(t);return i[i.length-1]}function IM(t){let{formMethod:e,formAction:n,formEncType:i,text:s,formData:a,json:o}=t;if(!(!e||!n||!i)){if(s!=null)return{formMethod:e,formAction:n,formEncType:i,formData:void 0,json:void 0,text:s};if(a!=null)return{formMethod:e,formAction:n,formEncType:i,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:e,formAction:n,formEncType:i,formData:void 0,json:o,text:void 0}}}function zx(t,e){return e?{state:"loading",location:t,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}:{state:"loading",location:t,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function A9(t,e){return{state:"submitting",location:t,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}}function Xh(t,e){return t?{state:"loading",formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text,data:e}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function N9(t,e){return{state:"submitting",formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text,data:e?e.data:void 0}}function hr(t){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function T9(t,e){try{let n=t.sessionStorage.getItem(A3);if(n){let i=JSON.parse(n);for(let[s,a]of Object.entries(i||{}))a&&Array.isArray(a)&&e.set(s,new Set(a||[]))}}catch{}}function M9(t,e){if(e.size>0){let n={};for(let[i,s]of e)n[i]=[...s];try{t.sessionStorage.setItem(A3,JSON.stringify(n))}catch(i){$n(!1,`Failed to save applied view transitions in sessionStorage (${i}).`)}}}function UM(){let t,e,n=new Promise((i,s)=>{t=async a=>{i(a);try{await n}catch{}},e=async a=>{s(a);try{await n}catch{}}});return{promise:n,resolve:t,reject:e}}var $c=S.createContext(null);$c.displayName="DataRouter";var Hm=S.createContext(null);Hm.displayName="DataRouterState";var j3=S.createContext(!1);function L9(){return S.useContext(j3)}var Pw=S.createContext({isTransitioning:!1});Pw.displayName="ViewTransition";var R3=S.createContext(new Map);R3.displayName="Fetchers";var O9=S.createContext(null);O9.displayName="Await";var ia=S.createContext(null);ia.displayName="Navigation";var Vm=S.createContext(null);Vm.displayName="Location";var Pa=S.createContext({outlet:null,matches:[],isDataRoute:!1});Pa.displayName="Route";var Ew=S.createContext(null);Ew.displayName="RouteError";var D3="REACT_ROUTER_ERROR",P9="REDIRECT",E9="ROUTE_ERROR_RESPONSE";function j9(t){if(t.startsWith(`${D3}:${P9}:{`))try{let e=JSON.parse(t.slice(28));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.location=="string"&&typeof e.reloadDocument=="boolean"&&typeof e.replace=="boolean")return e}catch{}}function R9(t){if(t.startsWith(`${D3}:${E9}:{`))try{let e=JSON.parse(t.slice(40));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string")return new qm(e.status,e.statusText,e.data)}catch{}}function D9(t,{relative:e}={}){qt(Kd(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:i}=S.useContext(ia),{hash:s,pathname:a,search:o}=Gm(t,{relative:e}),r=a;return n!=="/"&&(r=a==="/"?n:Ao([n,a])),i.createHref({pathname:r,search:o,hash:s})}function Kd(){return S.useContext(Vm)!=null}function Qn(){return qt(Kd(),"useLocation() may be used only in the context of a <Router> component."),S.useContext(Vm).location}var F3="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function I3(t){S.useContext(ia).static||S.useLayoutEffect(t)}function Ri(){let{isDataRoute:t}=S.useContext(Pa);return t?Q9():F9()}function F9(){qt(Kd(),"useNavigate() may be used only in the context of a <Router> component.");let t=S.useContext($c),{basename:e,navigator:n}=S.useContext(ia),{matches:i}=S.useContext(Pa),{pathname:s}=Qn(),a=JSON.stringify(My(i)),o=S.useRef(!1);return I3(()=>{o.current=!0}),S.useCallback((c,d={})=>{if($n(o.current,F3),!o.current)return;if(typeof c=="number"){n.go(c);return}let f=Ly(c,JSON.parse(a),s,d.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:Ao([e,f.pathname])),(d.replace?n.replace:n.push)(f,d.state,d)},[e,n,a,s,t])}var U3=S.createContext(null);function Oy(){return S.useContext(U3)}function I9(t){let e=S.useContext(Pa).outlet;return S.useMemo(()=>e&&S.createElement(U3.Provider,{value:t},e),[e,t])}function Wm(){let{matches:t}=S.useContext(Pa),e=t[t.length-1];return e?e.params:{}}function Gm(t,{relative:e}={}){let{matches:n}=S.useContext(Pa),{pathname:i}=Qn(),s=JSON.stringify(My(n));return S.useMemo(()=>Ly(t,JSON.parse(s),i,e==="path"),[t,s,i,e])}function U9(t,e){return B3(t,e)}function B3(t,e,n,i,s){qt(Kd(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=S.useContext(ia),{matches:o}=S.useContext(Pa),r=o[o.length-1],c=r?r.params:{},d=r?r.pathname:"/",f=r?r.pathnameBase:"/",m=r&&r.route;{let k=m&&m.path||"";H3(d,!m||k.endsWith("*")||k.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${d}" (under <Route path="${k}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
||
|
||
Please change the parent <Route path="${k}"> to <Route path="${k==="/"?"*":`${k}/*`}">.`)}let g=Qn(),y;if(e){let k=typeof e=="string"?Po(e):e;qt(f==="/"||k.pathname?.startsWith(f),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${f}" but pathname "${k.pathname}" was given in the \`location\` prop.`),y=k}else y=g;let b=y.pathname||"/",v=b;if(f!=="/"){let k=f.replace(/^\//,"").split("/");v="/"+b.replace(/^\//,"").split("/").slice(k.length).join("/")}let x=ml(t,{pathname:v});$n(m||x!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),$n(x==null||x[x.length-1].route.element!==void 0||x[x.length-1].route.Component!==void 0||x[x.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let A=H9(x&&x.map(k=>Object.assign({},k,{params:Object.assign({},c,k.params),pathname:Ao([f,a.encodeLocation?a.encodeLocation(k.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathname]),pathnameBase:k.pathnameBase==="/"?f:Ao([f,a.encodeLocation?a.encodeLocation(k.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathnameBase])})),o,n,i,s);return e&&A?S.createElement(Vm.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...y},navigationType:"POP"}},A):A}function B9(){let t=G9(),e=hm(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:i},a={padding:"2px 4px",backgroundColor:i},o=null;return console.error("Error handled by React Router default ErrorBoundary:",t),o=S.createElement(S.Fragment,null,S.createElement("p",null,"💿 Hey developer 👋"),S.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",S.createElement("code",{style:a},"ErrorBoundary")," or"," ",S.createElement("code",{style:a},"errorElement")," prop on your route.")),S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},e),n?S.createElement("pre",{style:s},n):null,o)}var z9=S.createElement(B9,null),z3=class extends S.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,e){return e.location!==t.location||e.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:e.error,location:e.location,revalidation:t.revalidation||e.revalidation}}componentDidCatch(t,e){this.props.onError?this.props.onError(t,e):console.error("React Router caught the following error during render",t)}render(){let t=this.state.error;if(this.context&&typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){const n=R9(t.digest);n&&(t=n)}let e=t!==void 0?S.createElement(Pa.Provider,{value:this.props.routeContext},S.createElement(Ew.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?S.createElement(q9,{error:t},e):e}};z3.contextType=j3;var qx=new WeakMap;function q9({children:t,error:e}){let{basename:n}=S.useContext(ia);if(typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let i=j9(e.digest);if(i){let s=qx.get(e);if(s)throw s;let a=S3(i.location,n);if(x3&&!qx.get(e))if(a.isExternal||i.reloadDocument)window.location.href=a.absoluteURL||a.to;else{const o=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:i.replace}));throw qx.set(e,o),o}return S.createElement("meta",{httpEquiv:"refresh",content:`0;url=${a.absoluteURL||a.to}`})}}return t}function K9({routeContext:t,match:e,children:n}){let i=S.useContext($c);return i&&i.static&&i.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=e.route.id),S.createElement(Pa.Provider,{value:t},n)}function H9(t,e=[],n=null,i=null,s=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let a=t,o=n?.errors;if(o!=null){let f=a.findIndex(m=>m.route.id&&o?.[m.route.id]!==void 0);qt(f>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,f+1))}let r=!1,c=-1;if(n)for(let f=0;f<a.length;f++){let m=a[f];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(c=f),m.route.id){let{loaderData:g,errors:y}=n,b=m.route.loader&&!g.hasOwnProperty(m.route.id)&&(!y||y[m.route.id]===void 0);if(m.route.lazy||b){r=!0,c>=0?a=a.slice(0,c+1):a=[a[0]];break}}}let d=n&&i?(f,m)=>{i(f,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:Km(n.matches),errorInfo:m})}:void 0;return a.reduceRight((f,m,g)=>{let y,b=!1,v=null,x=null;n&&(y=o&&m.route.id?o[m.route.id]:void 0,v=m.route.errorElement||z9,r&&(c<0&&g===0?(H3("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),b=!0,x=null):c===g&&(b=!0,x=m.route.hydrateFallbackElement||null)));let A=e.concat(a.slice(0,g+1)),k=()=>{let T;return y?T=v:b?T=x:m.route.Component?T=S.createElement(m.route.Component,null):m.route.element?T=m.route.element:T=f,S.createElement(K9,{match:m,routeContext:{outlet:f,matches:A,isDataRoute:n!=null},children:T})};return n&&(m.route.ErrorBoundary||m.route.errorElement||g===0)?S.createElement(z3,{location:n.location,revalidation:n.revalidation,component:v,error:y,children:k(),routeContext:{outlet:null,matches:A,isDataRoute:!0},onError:d}):k()},null)}function jw(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function q3(t){let e=S.useContext($c);return qt(e,jw(t)),e}function K3(t){let e=S.useContext(Hm);return qt(e,jw(t)),e}function V9(t){let e=S.useContext(Pa);return qt(e,jw(t)),e}function Rw(t){let e=V9(t),n=e.matches[e.matches.length-1];return qt(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function W9(){return Rw("useRouteId")}function G9(){let t=S.useContext(Ew),e=K3("useRouteError"),n=Rw("useRouteError");return t!==void 0?t:e.errors?.[n]}var $9=0;function X9(t){let{router:e,basename:n}=q3("useBlocker"),i=K3("useBlocker"),[s,a]=S.useState(""),o=S.useCallback(r=>{if(typeof t!="function")return!!t;if(n==="/")return t(r);let{currentLocation:c,nextLocation:d,historyAction:f}=r;return t({currentLocation:{...c,pathname:Bs(c.pathname,n)||c.pathname},nextLocation:{...d,pathname:Bs(d.pathname,n)||d.pathname},historyAction:f})},[n,t]);return S.useEffect(()=>{let r=String(++$9);return a(r),()=>e.deleteBlocker(r)},[e]),S.useEffect(()=>{s!==""&&e.getBlocker(s,o)},[e,s,o]),s&&i.blockers.has(s)?i.blockers.get(s):Wu}function Q9(){let{router:t}=q3("useNavigate"),e=Rw("useNavigate"),n=S.useRef(!1);return I3(()=>{n.current=!0}),S.useCallback(async(s,a={})=>{$n(n.current,F3),n.current&&(typeof s=="number"?await t.navigate(s):await t.navigate(s,{fromRouteId:e,...a}))},[t,e])}var BM={};function H3(t,e,n){!e&&!BM[t]&&(BM[t]=!0,$n(!1,n))}var zM={};function qM(t,e){!t&&!zM[e]&&(zM[e]=!0,console.warn(e))}var Y9="useOptimistic",KM=h7[Y9],J9=()=>{};function Z9(t){return KM?KM(t):[t,J9]}function ez(t){let e={hasErrorBoundary:t.hasErrorBoundary||t.ErrorBoundary!=null||t.errorElement!=null};return t.Component&&(t.element&&$n(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(e,{element:S.createElement(t.Component),Component:void 0})),t.HydrateFallback&&(t.hydrateFallbackElement&&$n(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(e,{hydrateFallbackElement:S.createElement(t.HydrateFallback),HydrateFallback:void 0})),t.ErrorBoundary&&(t.errorElement&&$n(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(e,{errorElement:S.createElement(t.ErrorBoundary),ErrorBoundary:void 0})),e}var tz=["HydrateFallback","hydrateFallbackElement"],nz=class{constructor(){this.status="pending",this.promise=new Promise((t,e)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",e(n))}})}};function iz({router:t,flushSync:e,onError:n,unstable_useTransitions:i}){i=L9()||i;let[a,o]=S.useState(t.state),[r,c]=Z9(a),[d,f]=S.useState(),[m,g]=S.useState({isTransitioning:!1}),[y,b]=S.useState(),[v,x]=S.useState(),[A,k]=S.useState(),T=S.useRef(new Map),L=S.useCallback((P,{deletedFetchers:E,newErrors:R,flushSync:z,viewTransitionOpts:D})=>{R&&n&&Object.values(R).forEach(G=>n(G,{location:P.location,params:P.matches[0]?.params??{},unstable_pattern:Km(P.matches)})),P.fetchers.forEach((G,B)=>{G.data!==void 0&&T.current.set(B,G.data)}),E.forEach(G=>T.current.delete(G)),qM(z===!1||e!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let Q=t.window!=null&&t.window.document!=null&&typeof t.window.document.startViewTransition=="function";if(qM(D==null||Q,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!D||!Q){e&&z?e(()=>o(P)):i===!1?o(P):S.startTransition(()=>{i===!0&&c(G=>HM(G,P)),o(P)});return}if(e&&z){e(()=>{v&&(y?.resolve(),v.skipTransition()),g({isTransitioning:!0,flushSync:!0,currentLocation:D.currentLocation,nextLocation:D.nextLocation})});let G=t.window.document.startViewTransition(()=>{e(()=>o(P))});G.finished.finally(()=>{e(()=>{b(void 0),x(void 0),f(void 0),g({isTransitioning:!1})})}),e(()=>x(G));return}v?(y?.resolve(),v.skipTransition(),k({state:P,currentLocation:D.currentLocation,nextLocation:D.nextLocation})):(f(P),g({isTransitioning:!0,flushSync:!1,currentLocation:D.currentLocation,nextLocation:D.nextLocation}))},[t.window,e,v,y,i,c,n]);S.useLayoutEffect(()=>t.subscribe(L),[t,L]),S.useEffect(()=>{m.isTransitioning&&!m.flushSync&&b(new nz)},[m]),S.useEffect(()=>{if(y&&d&&t.window){let P=d,E=y.promise,R=t.window.document.startViewTransition(async()=>{i===!1?o(P):S.startTransition(()=>{i===!0&&c(z=>HM(z,P)),o(P)}),await E});R.finished.finally(()=>{b(void 0),x(void 0),f(void 0),g({isTransitioning:!1})}),x(R)}},[d,y,t.window,i,c]),S.useEffect(()=>{y&&d&&r.location.key===d.location.key&&y.resolve()},[y,v,r.location,d]),S.useEffect(()=>{!m.isTransitioning&&A&&(f(A.state),g({isTransitioning:!0,flushSync:!1,currentLocation:A.currentLocation,nextLocation:A.nextLocation}),k(void 0))},[m.isTransitioning,A]);let M=S.useMemo(()=>({createHref:t.createHref,encodeLocation:t.encodeLocation,go:P=>t.navigate(P),push:(P,E,R)=>t.navigate(P,{state:E,preventScrollReset:R?.preventScrollReset}),replace:(P,E,R)=>t.navigate(P,{replace:!0,state:E,preventScrollReset:R?.preventScrollReset})}),[t]),O=t.basename||"/",N=S.useMemo(()=>({router:t,navigator:M,static:!1,basename:O,onError:n}),[t,M,O,n]);return S.createElement(S.Fragment,null,S.createElement($c.Provider,{value:N},S.createElement(Hm.Provider,{value:r},S.createElement(R3.Provider,{value:T.current},S.createElement(Pw.Provider,{value:m},S.createElement(oz,{basename:O,location:r.location,navigationType:r.historyAction,navigator:M,unstable_useTransitions:i},S.createElement(sz,{routes:t.routes,future:t.future,state:r,onError:n})))))),null)}function HM(t,e){return{...t,navigation:e.navigation.state!=="idle"?e.navigation:t.navigation,revalidation:e.revalidation!=="idle"?e.revalidation:t.revalidation,actionData:e.navigation.state!=="submitting"?e.actionData:t.actionData,fetchers:e.fetchers}}var sz=S.memo(az);function az({routes:t,future:e,state:n,onError:i}){return B3(t,void 0,n,i,e)}function qf({to:t,replace:e,state:n,relative:i}){qt(Kd(),"<Navigate> may be used only in the context of a <Router> component.");let{static:s}=S.useContext(ia);$n(!s,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:a}=S.useContext(Pa),{pathname:o}=Qn(),r=Ri(),c=Ly(t,My(a),o,i==="path"),d=JSON.stringify(c);return S.useEffect(()=>{r(JSON.parse(d),{replace:e,state:n,relative:i})},[r,d,i,e,n]),null}function Dw(t){return I9(t.context)}function oz({basename:t="/",children:e=null,location:n,navigationType:i="POP",navigator:s,static:a=!1,unstable_useTransitions:o}){qt(!Kd(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let r=t.replace(/^\/*/,"/"),c=S.useMemo(()=>({basename:r,navigator:s,static:a,unstable_useTransitions:o,future:{}}),[r,s,a,o]);typeof n=="string"&&(n=Po(n));let{pathname:d="/",search:f="",hash:m="",state:g=null,key:y="default"}=n,b=S.useMemo(()=>{let v=Bs(d,r);return v==null?null:{location:{pathname:v,search:f,hash:m,state:g,key:y},navigationType:i}},[r,d,f,m,g,y,i]);return $n(b!=null,`<Router basename="${r}"> is not able to match the URL "${d}${f}${m}" because it does not start with the basename, so the <Router> won't render anything.`),b==null?null:S.createElement(ia.Provider,{value:c},S.createElement(Vm.Provider,{children:e,value:b}))}var n0="get",i0="application/x-www-form-urlencoded";function Py(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function rz(t){return Py(t)&&t.tagName.toLowerCase()==="button"}function lz(t){return Py(t)&&t.tagName.toLowerCase()==="form"}function cz(t){return Py(t)&&t.tagName.toLowerCase()==="input"}function uz(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function dz(t,e){return t.button===0&&(!e||e==="_self")&&!uz(t)}function E2(t=""){return new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let i=t[n];return e.concat(Array.isArray(i)?i.map(s=>[n,s]):[[n,i]])},[]))}function hz(t,e){let n=E2(t);return e&&e.forEach((i,s)=>{n.has(s)||e.getAll(s).forEach(a=>{n.append(s,a)})}),n}var Ug=null;function fz(){if(Ug===null)try{new FormData(document.createElement("form"),0),Ug=!1}catch{Ug=!0}return Ug}var mz=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Kx(t){return t!=null&&!mz.has(t)?($n(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${i0}"`),null):t}function pz(t,e){let n,i,s,a,o;if(lz(t)){let r=t.getAttribute("action");i=r?Bs(r,e):null,n=t.getAttribute("method")||n0,s=Kx(t.getAttribute("enctype"))||i0,a=new FormData(t)}else if(rz(t)||cz(t)&&(t.type==="submit"||t.type==="image")){let r=t.form;if(r==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let c=t.getAttribute("formaction")||r.getAttribute("action");if(i=c?Bs(c,e):null,n=t.getAttribute("formmethod")||r.getAttribute("method")||n0,s=Kx(t.getAttribute("formenctype"))||Kx(r.getAttribute("enctype"))||i0,a=new FormData(r,t),!fz()){let{name:d,type:f,value:m}=t;if(f==="image"){let g=d?`${d}.`:"";a.append(`${g}x`,"0"),a.append(`${g}y`,"0")}else d&&a.append(d,m)}}else{if(Py(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=n0,i=null,s=i0,o=t}return a&&s==="text/plain"&&(o=a,a=void 0),{action:i,method:n.toLowerCase(),encType:s,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Fw(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function gz(t,e,n,i){let s=typeof t=="string"?new URL(t,typeof window>"u"?"server://singlefetch/":window.location.origin):t;return n?s.pathname.endsWith("/")?s.pathname=`${s.pathname}_.${i}`:s.pathname=`${s.pathname}.${i}`:s.pathname==="/"?s.pathname=`_root.${i}`:e&&Bs(s.pathname,e)==="/"?s.pathname=`${e.replace(/\/$/,"")}/_root.${i}`:s.pathname=`${s.pathname.replace(/\/$/,"")}.${i}`,s}async function _z(t,e){if(t.id in e)return e[t.id];try{let n=await import(t.module);return e[t.id]=n,n}catch(n){return console.error(`Error loading route module \`${t.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function yz(t){return t==null?!1:t.href==null?t.rel==="preload"&&typeof t.imageSrcSet=="string"&&typeof t.imageSizes=="string":typeof t.rel=="string"&&typeof t.href=="string"}async function bz(t,e,n){let i=await Promise.all(t.map(async s=>{let a=e.routes[s.route.id];if(a){let o=await _z(a,n);return o.links?o.links():[]}return[]}));return wz(i.flat(1).filter(yz).filter(s=>s.rel==="stylesheet"||s.rel==="preload").map(s=>s.rel==="stylesheet"?{...s,rel:"prefetch",as:"style"}:{...s,rel:"prefetch"}))}function VM(t,e,n,i,s,a){let o=(c,d)=>n[d]?c.route.id!==n[d].route.id:!0,r=(c,d)=>n[d].pathname!==c.pathname||n[d].route.path?.endsWith("*")&&n[d].params["*"]!==c.params["*"];return a==="assets"?e.filter((c,d)=>o(c,d)||r(c,d)):a==="data"?e.filter((c,d)=>{let f=i.routes[c.route.id];if(!f||!f.hasLoader)return!1;if(o(c,d)||r(c,d))return!0;if(c.route.shouldRevalidate){let m=c.route.shouldRevalidate({currentUrl:new URL(s.pathname+s.search+s.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(t,window.origin),nextParams:c.params,defaultShouldRevalidate:!0});if(typeof m=="boolean")return m}return!0}):[]}function vz(t,e,{includeHydrateFallback:n}={}){return xz(t.map(i=>{let s=e.routes[i.route.id];if(!s)return[];let a=[s.module];return s.clientActionModule&&(a=a.concat(s.clientActionModule)),s.clientLoaderModule&&(a=a.concat(s.clientLoaderModule)),n&&s.hydrateFallbackModule&&(a=a.concat(s.hydrateFallbackModule)),s.imports&&(a=a.concat(s.imports)),a}).flat(1))}function xz(t){return[...new Set(t)]}function Sz(t){let e={},n=Object.keys(t).sort();for(let i of n)e[i]=t[i];return e}function wz(t,e){let n=new Set;return new Set(e),t.reduce((i,s)=>{let a=JSON.stringify(Sz(s));return n.has(a)||(n.add(a),i.push({key:a,link:s})),i},[])}function V3(){let t=S.useContext($c);return Fw(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function kz(){let t=S.useContext(Hm);return Fw(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var Iw=S.createContext(void 0);Iw.displayName="FrameworkContext";function W3(){let t=S.useContext(Iw);return Fw(t,"You must render this element inside a <HydratedRouter> element"),t}function Cz(t,e){let n=S.useContext(Iw),[i,s]=S.useState(!1),[a,o]=S.useState(!1),{onFocus:r,onBlur:c,onMouseEnter:d,onMouseLeave:f,onTouchStart:m}=e,g=S.useRef(null);S.useEffect(()=>{if(t==="render"&&o(!0),t==="viewport"){let v=A=>{A.forEach(k=>{o(k.isIntersecting)})},x=new IntersectionObserver(v,{threshold:.5});return g.current&&x.observe(g.current),()=>{x.disconnect()}}},[t]),S.useEffect(()=>{if(i){let v=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(v)}}},[i]);let y=()=>{s(!0)},b=()=>{s(!1),o(!1)};return n?t!=="intent"?[a,g,{}]:[a,g,{onFocus:Qh(r,y),onBlur:Qh(c,b),onMouseEnter:Qh(d,y),onMouseLeave:Qh(f,b),onTouchStart:Qh(m,y)}]:[!1,g,{}]}function Qh(t,e){return n=>{t&&t(n),n.defaultPrevented||e(n)}}function Az({page:t,...e}){let{router:n}=V3(),i=S.useMemo(()=>ml(n.routes,t,n.basename),[n.routes,t,n.basename]);return i?S.createElement(Tz,{page:t,matches:i,...e}):null}function Nz(t){let{manifest:e,routeModules:n}=W3(),[i,s]=S.useState([]);return S.useEffect(()=>{let a=!1;return bz(t,e,n).then(o=>{a||s(o)}),()=>{a=!0}},[t,e,n]),i}function Tz({page:t,matches:e,...n}){let i=Qn(),{future:s,manifest:a,routeModules:o}=W3(),{basename:r}=V3(),{loaderData:c,matches:d}=kz(),f=S.useMemo(()=>VM(t,e,d,a,i,"data"),[t,e,d,a,i]),m=S.useMemo(()=>VM(t,e,d,a,i,"assets"),[t,e,d,a,i]),g=S.useMemo(()=>{if(t===i.pathname+i.search+i.hash)return[];let v=new Set,x=!1;if(e.forEach(k=>{let T=a.routes[k.route.id];!T||!T.hasLoader||(!f.some(L=>L.route.id===k.route.id)&&k.route.id in c&&o[k.route.id]?.shouldRevalidate||T.hasClientLoader?x=!0:v.add(k.route.id))}),v.size===0)return[];let A=gz(t,r,s.unstable_trailingSlashAwareDataRequests,"data");return x&&v.size>0&&A.searchParams.set("_routes",e.filter(k=>v.has(k.route.id)).map(k=>k.route.id).join(",")),[A.pathname+A.search]},[r,s.unstable_trailingSlashAwareDataRequests,c,i,a,f,e,t,o]),y=S.useMemo(()=>vz(m,a),[m,a]),b=Nz(m);return S.createElement(S.Fragment,null,g.map(v=>S.createElement("link",{key:v,rel:"prefetch",as:"fetch",href:v,...n})),y.map(v=>S.createElement("link",{key:v,rel:"modulepreload",href:v,...n})),b.map(({key:v,link:x})=>S.createElement("link",{key:v,nonce:n.nonce,...x})))}function Mz(...t){return e=>{t.forEach(n=>{typeof n=="function"?n(e):n!=null&&(n.current=e)})}}var Lz=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Lz&&(window.__reactRouterVersion="7.12.0")}catch{}function Oz(t,e){return a9({basename:e?.basename,getContext:e?.getContext,future:e?.future,history:x7({window:e?.window}),hydrationData:Pz(),routes:t,mapRouteProperties:ez,hydrationRouteProperties:tz,dataStrategy:e?.dataStrategy,patchRoutesOnNavigation:e?.patchRoutesOnNavigation,window:e?.window,unstable_instrumentations:e?.unstable_instrumentations}).initialize()}function Pz(){let t=window?.__staticRouterHydrationData;return t&&t.errors&&(t={...t,errors:Ez(t.errors)}),t}function Ez(t){if(!t)return null;let e=Object.entries(t),n={};for(let[i,s]of e)if(s&&s.__type==="RouteErrorResponse")n[i]=new qm(s.status,s.statusText,s.data,s.internal===!0);else if(s&&s.__type==="Error"){if(s.__subType){let a=window[s.__subType];if(typeof a=="function")try{let o=new a(s.message);o.stack="",n[i]=o}catch{}}if(n[i]==null){let a=new Error(s.message);a.stack="",n[i]=a}}else n[i]=s;return n}var G3=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,M0=S.forwardRef(function({onClick:e,discover:n="render",prefetch:i="none",relative:s,reloadDocument:a,replace:o,state:r,target:c,to:d,preventScrollReset:f,viewTransition:m,unstable_defaultShouldRevalidate:g,...y},b){let{basename:v,unstable_useTransitions:x}=S.useContext(ia),A=typeof d=="string"&&G3.test(d),k=S3(d,v);d=k.to;let T=D9(d,{relative:s}),[L,M,O]=Cz(i,y),N=Dz(d,{replace:o,state:r,target:c,preventScrollReset:f,relative:s,viewTransition:m,unstable_defaultShouldRevalidate:g,unstable_useTransitions:x});function P(R){e&&e(R),R.defaultPrevented||N(R)}let E=S.createElement("a",{...y,...O,href:k.absoluteURL||T,onClick:k.isExternal||a?e:P,ref:Mz(b,M),target:c,"data-discover":!A&&n==="render"?"true":void 0});return L&&!A?S.createElement(S.Fragment,null,E,S.createElement(Az,{page:T})):E});M0.displayName="Link";var $3=S.forwardRef(function({"aria-current":e="page",caseSensitive:n=!1,className:i="",end:s=!1,style:a,to:o,viewTransition:r,children:c,...d},f){let m=Gm(o,{relative:d.relative}),g=Qn(),y=S.useContext(Hm),{navigator:b,basename:v}=S.useContext(ia),x=y!=null&&zz(m)&&r===!0,A=b.encodeLocation?b.encodeLocation(m).pathname:m.pathname,k=g.pathname,T=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;n||(k=k.toLowerCase(),T=T?T.toLowerCase():null,A=A.toLowerCase()),T&&v&&(T=Bs(T,v)||T);const L=A!=="/"&&A.endsWith("/")?A.length-1:A.length;let M=k===A||!s&&k.startsWith(A)&&k.charAt(L)==="/",O=T!=null&&(T===A||!s&&T.startsWith(A)&&T.charAt(A.length)==="/"),N={isActive:M,isPending:O,isTransitioning:x},P=M?e:void 0,E;typeof i=="function"?E=i(N):E=[i,M?"active":null,O?"pending":null,x?"transitioning":null].filter(Boolean).join(" ");let R=typeof a=="function"?a(N):a;return S.createElement(M0,{...d,"aria-current":P,className:E,ref:f,style:R,to:o,viewTransition:r},typeof c=="function"?c(N):c)});$3.displayName="NavLink";var jz=S.forwardRef(({discover:t="render",fetcherKey:e,navigate:n,reloadDocument:i,replace:s,state:a,method:o=n0,action:r,onSubmit:c,relative:d,preventScrollReset:f,viewTransition:m,unstable_defaultShouldRevalidate:g,...y},b)=>{let{unstable_useTransitions:v}=S.useContext(ia),x=Uz(),A=Bz(r,{relative:d}),k=o.toLowerCase()==="get"?"get":"post",T=typeof r=="string"&&G3.test(r),L=M=>{if(c&&c(M),M.defaultPrevented)return;M.preventDefault();let O=M.nativeEvent.submitter,N=O?.getAttribute("formmethod")||o,P=()=>x(O||M.currentTarget,{fetcherKey:e,method:N,navigate:n,replace:s,state:a,relative:d,preventScrollReset:f,viewTransition:m,unstable_defaultShouldRevalidate:g});v&&n!==!1?S.startTransition(()=>P()):P()};return S.createElement("form",{ref:b,method:k,action:A,onSubmit:i?c:L,...y,"data-discover":!T&&t==="render"?"true":void 0})});jz.displayName="Form";function Rz(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function X3(t){let e=S.useContext($c);return qt(e,Rz(t)),e}function Dz(t,{target:e,replace:n,state:i,preventScrollReset:s,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:r,unstable_useTransitions:c}={}){let d=Ri(),f=Qn(),m=Gm(t,{relative:a});return S.useCallback(g=>{if(dz(g,e)){g.preventDefault();let y=n!==void 0?n:To(f)===To(m),b=()=>d(t,{replace:y,state:i,preventScrollReset:s,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:r});c?S.startTransition(()=>b()):b()}},[f,d,m,n,i,e,t,s,a,o,r,c])}function Q3(t){$n(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let e=S.useRef(E2(t)),n=S.useRef(!1),i=Qn(),s=S.useMemo(()=>hz(i.search,n.current?null:e.current),[i.search]),a=Ri(),o=S.useCallback((r,c)=>{const d=E2(typeof r=="function"?r(new URLSearchParams(s)):r);n.current=!0,a("?"+d,c)},[a,s]);return[s,o]}var Fz=0,Iz=()=>`__${String(++Fz)}__`;function Uz(){let{router:t}=X3("useSubmit"),{basename:e}=S.useContext(ia),n=W9(),i=t.fetch,s=t.navigate;return S.useCallback(async(a,o={})=>{let{action:r,method:c,encType:d,formData:f,body:m}=pz(a,e);if(o.navigate===!1){let g=o.fetcherKey||Iz();await i(g,n,o.action||r,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:f,body:m,formMethod:o.method||c,formEncType:o.encType||d,flushSync:o.flushSync})}else await s(o.action||r,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:f,body:m,formMethod:o.method||c,formEncType:o.encType||d,replace:o.replace,state:o.state,fromRouteId:n,flushSync:o.flushSync,viewTransition:o.viewTransition})},[i,s,e,n])}function Bz(t,{relative:e}={}){let{basename:n}=S.useContext(ia),i=S.useContext(Pa);qt(i,"useFormAction must be used inside a RouteContext");let[s]=i.matches.slice(-1),a={...Gm(t||".",{relative:e})},o=Qn();if(t==null){a.search=o.search;let r=new URLSearchParams(a.search),c=r.getAll("index");if(c.some(f=>f==="")){r.delete("index"),c.filter(m=>m).forEach(m=>r.append("index",m));let f=r.toString();a.search=f?`?${f}`:""}}return(!t||t===".")&&s.route.index&&(a.search=a.search?a.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(a.pathname=a.pathname==="/"?n:Ao([n,a.pathname])),To(a)}function zz(t,{relative:e}={}){let n=S.useContext(Pw);qt(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=X3("useViewTransitionState"),s=Gm(t,{relative:e});if(!n.isTransitioning)return!1;let a=Bs(n.currentLocation.pathname,i)||n.currentLocation.pathname,o=Bs(n.nextLocation.pathname,i)||n.nextLocation.pathname;return T0(s.pathname,o)!=null||T0(s.pathname,a)!=null}var Eo=m3();function qz(t){return S.createElement(iz,{flushSync:Eo.flushSync,...t})}const Tt=t=>typeof t=="string",Yh=()=>{let t,e;const n=new Promise((i,s)=>{t=i,e=s});return n.resolve=t,n.reject=e,n},WM=t=>t==null?"":""+t,Kz=(t,e,n)=>{t.forEach(i=>{e[i]&&(n[i]=e[i])})},Hz=/###/g,GM=t=>t&&t.indexOf("###")>-1?t.replace(Hz,"."):t,$M=t=>!t||Tt(t),Kf=(t,e,n)=>{const i=Tt(e)?e.split("."):e;let s=0;for(;s<i.length-1;){if($M(t))return{};const a=GM(i[s]);!t[a]&&n&&(t[a]=new n),Object.prototype.hasOwnProperty.call(t,a)?t=t[a]:t={},++s}return $M(t)?{}:{obj:t,k:GM(i[s])}},XM=(t,e,n)=>{const{obj:i,k:s}=Kf(t,e,Object);if(i!==void 0||e.length===1){i[s]=n;return}let a=e[e.length-1],o=e.slice(0,e.length-1),r=Kf(t,o,Object);for(;r.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),r=Kf(t,o,Object),r?.obj&&typeof r.obj[`${r.k}.${a}`]<"u"&&(r.obj=void 0);r.obj[`${r.k}.${a}`]=n},Vz=(t,e,n,i)=>{const{obj:s,k:a}=Kf(t,e,Object);s[a]=s[a]||[],s[a].push(n)},L0=(t,e)=>{const{obj:n,k:i}=Kf(t,e);if(n&&Object.prototype.hasOwnProperty.call(n,i))return n[i]},Wz=(t,e,n)=>{const i=L0(t,n);return i!==void 0?i:L0(e,n)},Y3=(t,e,n)=>{for(const i in e)i!=="__proto__"&&i!=="constructor"&&(i in t?Tt(t[i])||t[i]instanceof String||Tt(e[i])||e[i]instanceof String?n&&(t[i]=e[i]):Y3(t[i],e[i],n):t[i]=e[i]);return t},Ru=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Gz={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const $z=t=>Tt(t)?t.replace(/[&<>"'\/]/g,e=>Gz[e]):t;class Xz{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const n=this.regExpMap.get(e);if(n!==void 0)return n;const i=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,i),this.regExpQueue.push(e),i}}const Qz=[" ",",","?","!",";"],Yz=new Xz(20),Jz=(t,e,n)=>{e=e||"",n=n||"";const i=Qz.filter(o=>e.indexOf(o)<0&&n.indexOf(o)<0);if(i.length===0)return!0;const s=Yz.getRegExp(`(${i.map(o=>o==="?"?"\\?":o).join("|")})`);let a=!s.test(t);if(!a){const o=t.indexOf(n);o>0&&!s.test(t.substring(0,o))&&(a=!0)}return a},j2=(t,e,n=".")=>{if(!t)return;if(t[e])return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0;const i=e.split(n);let s=t;for(let a=0;a<i.length;){if(!s||typeof s!="object")return;let o,r="";for(let c=a;c<i.length;++c)if(c!==a&&(r+=n),r+=i[c],o=s[r],o!==void 0){if(["string","number","boolean"].indexOf(typeof o)>-1&&c<i.length-1)continue;a+=c-a+1;break}s=o}return s},fm=t=>t?.replace("_","-"),Zz={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console?.[t]?.apply?.(console,e)}};class O0{constructor(e,n={}){this.init(e,n)}init(e,n={}){this.prefix=n.prefix||"i18next:",this.logger=e||Zz,this.options=n,this.debug=n.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,n,i,s){return s&&!this.debug?null:(Tt(e[0])&&(e[0]=`${i}${this.prefix} ${e[0]}`),this.logger[n](e))}create(e){return new O0(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new O0(this.logger,e)}}var wo=new O0;class Ey{constructor(){this.observers={}}on(e,n){return e.split(" ").forEach(i=>{this.observers[i]||(this.observers[i]=new Map);const s=this.observers[i].get(n)||0;this.observers[i].set(n,s+1)}),this}off(e,n){if(this.observers[e]){if(!n){delete this.observers[e];return}this.observers[e].delete(n)}}emit(e,...n){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([s,a])=>{for(let o=0;o<a;o++)s(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([s,a])=>{for(let o=0;o<a;o++)s.apply(s,[e,...n])})}}class QM extends Ey{constructor(e,n={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const n=this.options.ns.indexOf(e);n>-1&&this.options.ns.splice(n,1)}getResource(e,n,i,s={}){const a=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,o=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure;let r;e.indexOf(".")>-1?r=e.split("."):(r=[e,n],i&&(Array.isArray(i)?r.push(...i):Tt(i)&&a?r.push(...i.split(a)):r.push(i)));const c=L0(this.data,r);return!c&&!n&&!i&&e.indexOf(".")>-1&&(e=r[0],n=r[1],i=r.slice(2).join(".")),c||!o||!Tt(i)?c:j2(this.data?.[e]?.[n],i,a)}addResource(e,n,i,s,a={silent:!1}){const o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let r=[e,n];i&&(r=r.concat(o?i.split(o):i)),e.indexOf(".")>-1&&(r=e.split("."),s=n,n=r[1]),this.addNamespaces(n),XM(this.data,r,s),a.silent||this.emit("added",e,n,i,s)}addResources(e,n,i,s={silent:!1}){for(const a in i)(Tt(i[a])||Array.isArray(i[a]))&&this.addResource(e,n,a,i[a],{silent:!0});s.silent||this.emit("added",e,n,i)}addResourceBundle(e,n,i,s,a,o={silent:!1,skipCopy:!1}){let r=[e,n];e.indexOf(".")>-1&&(r=e.split("."),s=i,i=n,n=r[1]),this.addNamespaces(n);let c=L0(this.data,r)||{};o.skipCopy||(i=JSON.parse(JSON.stringify(i))),s?Y3(c,i,a):c={...c,...i},XM(this.data,r,c),o.silent||this.emit("added",e,n,i)}removeResourceBundle(e,n){this.hasResourceBundle(e,n)&&delete this.data[e][n],this.removeNamespaces(n),this.emit("removed",e,n)}hasResourceBundle(e,n){return this.getResource(e,n)!==void 0}getResourceBundle(e,n){return n||(n=this.options.defaultNS),this.getResource(e,n)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const n=this.getDataByLanguage(e);return!!(n&&Object.keys(n)||[]).find(s=>n[s]&&Object.keys(n[s]).length>0)}toJSON(){return this.data}}var J3={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,n,i,s){return t.forEach(a=>{e=this.processors[a]?.process(e,n,i,s)??e}),e}};const Z3=Symbol("i18next/PATH_KEY");function eq(){const t=[],e=Object.create(null);let n;return e.get=(i,s)=>(n?.revoke?.(),s===Z3?t:(t.push(s),n=Proxy.revocable(i,e),n.proxy)),Proxy.revocable(Object.create(null),e).proxy}function P0(t,e){const{[Z3]:n}=t(eq());return n.join(e?.keySeparator??".")}const YM={},Hx=t=>!Tt(t)&&typeof t!="boolean"&&typeof t!="number";class E0 extends Ey{constructor(e,n={}){super(),Kz(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=wo.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,n={interpolation:{}}){const i={...n};if(e==null)return!1;const s=this.resolve(e,i);if(s?.res===void 0)return!1;const a=Hx(s.res);return!(i.returnObjects===!1&&a)}extractFromKey(e,n){let i=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const s=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let a=n.ns||this.options.defaultNS||[];const o=i&&e.indexOf(i)>-1,r=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!Jz(e,i,s);if(o&&!r){const c=e.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:e,namespaces:Tt(a)?[a]:a};const d=e.split(i);(i!==s||i===s&&this.options.ns.indexOf(d[0])>-1)&&(a=d.shift()),e=d.join(s)}return{key:e,namespaces:Tt(a)?[a]:a}}translate(e,n,i){let s=typeof n=="object"?{...n}:n;if(typeof s!="object"&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),typeof s=="object"&&(s={...s}),s||(s={}),e==null)return"";typeof e=="function"&&(e=P0(e,{...this.options,...s})),Array.isArray(e)||(e=[String(e)]);const a=s.returnDetails!==void 0?s.returnDetails:this.options.returnDetails,o=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,{key:r,namespaces:c}=this.extractFromKey(e[e.length-1],s),d=c[c.length-1];let f=s.nsSeparator!==void 0?s.nsSeparator:this.options.nsSeparator;f===void 0&&(f=":");const m=s.lng||this.language,g=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(m?.toLowerCase()==="cimode")return g?a?{res:`${d}${f}${r}`,usedKey:r,exactUsedKey:r,usedLng:m,usedNS:d,usedParams:this.getUsedParamsDetails(s)}:`${d}${f}${r}`:a?{res:r,usedKey:r,exactUsedKey:r,usedLng:m,usedNS:d,usedParams:this.getUsedParamsDetails(s)}:r;const y=this.resolve(e,s);let b=y?.res;const v=y?.usedKey||r,x=y?.exactUsedKey||r,A=["[object Number]","[object Function]","[object RegExp]"],k=s.joinArrays!==void 0?s.joinArrays:this.options.joinArrays,T=!this.i18nFormat||this.i18nFormat.handleAsObject,L=s.count!==void 0&&!Tt(s.count),M=E0.hasDefaultValue(s),O=L?this.pluralResolver.getSuffix(m,s.count,s):"",N=s.ordinal&&L?this.pluralResolver.getSuffix(m,s.count,{ordinal:!1}):"",P=L&&!s.ordinal&&s.count===0,E=P&&s[`defaultValue${this.options.pluralSeparator}zero`]||s[`defaultValue${O}`]||s[`defaultValue${N}`]||s.defaultValue;let R=b;T&&!b&&M&&(R=E);const z=Hx(R),D=Object.prototype.toString.apply(R);if(T&&R&&z&&A.indexOf(D)<0&&!(Tt(k)&&Array.isArray(R))){if(!s.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const Q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,R,{...s,ns:c}):`key '${r} (${this.language})' returned an object instead of string.`;return a?(y.res=Q,y.usedParams=this.getUsedParamsDetails(s),y):Q}if(o){const Q=Array.isArray(R),G=Q?[]:{},B=Q?x:v;for(const I in R)if(Object.prototype.hasOwnProperty.call(R,I)){const V=`${B}${o}${I}`;M&&!b?G[I]=this.translate(V,{...s,defaultValue:Hx(E)?E[I]:void 0,joinArrays:!1,ns:c}):G[I]=this.translate(V,{...s,joinArrays:!1,ns:c}),G[I]===V&&(G[I]=R[I])}b=G}}else if(T&&Tt(k)&&Array.isArray(b))b=b.join(k),b&&(b=this.extendTranslation(b,e,s,i));else{let Q=!1,G=!1;!this.isValidLookup(b)&&M&&(Q=!0,b=E),this.isValidLookup(b)||(G=!0,b=r);const I=(s.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&G?void 0:b,V=M&&E!==b&&this.options.updateMissing;if(G||Q||V){if(this.logger.log(V?"updateKey":"missingKey",m,d,r,V?E:b),o){const U=this.resolve(r,{...s,keySeparator:!1});U&&U.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let K=[];const $=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if(this.options.saveMissingTo==="fallback"&&$&&$[0])for(let U=0;U<$.length;U++)K.push($[U]);else this.options.saveMissingTo==="all"?K=this.languageUtils.toResolveHierarchy(s.lng||this.language):K.push(s.lng||this.language);const X=(U,q,Y)=>{const oe=M&&Y!==b?Y:I;this.options.missingKeyHandler?this.options.missingKeyHandler(U,d,q,oe,V,s):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(U,d,q,oe,V,s),this.emit("missingKey",U,d,q,b)};this.options.saveMissing&&(this.options.saveMissingPlurals&&L?K.forEach(U=>{const q=this.pluralResolver.getSuffixes(U,s);P&&s[`defaultValue${this.options.pluralSeparator}zero`]&&q.indexOf(`${this.options.pluralSeparator}zero`)<0&&q.push(`${this.options.pluralSeparator}zero`),q.forEach(Y=>{X([U],r+Y,s[`defaultValue${Y}`]||E)})}):X(K,r,E))}b=this.extendTranslation(b,e,s,y,i),G&&b===r&&this.options.appendNamespaceToMissingKey&&(b=`${d}${f}${r}`),(G||Q)&&this.options.parseMissingKeyHandler&&(b=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}${f}${r}`:r,Q?b:void 0,s))}return a?(y.res=b,y.usedParams=this.getUsedParamsDetails(s),y):b}extendTranslation(e,n,i,s,a){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||s.usedLng,s.usedNS,s.usedKey,{resolved:s});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const c=Tt(e)&&(i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(c){const m=e.match(this.interpolator.nestingRegexp);d=m&&m.length}let f=i.replace&&!Tt(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),e=this.interpolator.interpolate(e,f,i.lng||this.language||s.usedLng,i),c){const m=e.match(this.interpolator.nestingRegexp),g=m&&m.length;d<g&&(i.nest=!1)}!i.lng&&s&&s.res&&(i.lng=this.language||s.usedLng),i.nest!==!1&&(e=this.interpolator.nest(e,(...m)=>a?.[0]===m[0]&&!i.context?(this.logger.warn(`It seems you are nesting recursively key: ${m[0]} in key: ${n[0]}`),null):this.translate(...m,n),i)),i.interpolation&&this.interpolator.reset()}const o=i.postProcess||this.options.postProcess,r=Tt(o)?[o]:o;return e!=null&&r?.length&&i.applyPostProcessor!==!1&&(e=J3.handle(r,e,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...s,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),e}resolve(e,n={}){let i,s,a,o,r;return Tt(e)&&(e=[e]),e.forEach(c=>{if(this.isValidLookup(i))return;const d=this.extractFromKey(c,n),f=d.key;s=f;let m=d.namespaces;this.options.fallbackNS&&(m=m.concat(this.options.fallbackNS));const g=n.count!==void 0&&!Tt(n.count),y=g&&!n.ordinal&&n.count===0,b=n.context!==void 0&&(Tt(n.context)||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);m.forEach(x=>{this.isValidLookup(i)||(r=x,!YM[`${v[0]}-${x}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(r)&&(YM[`${v[0]}-${x}`]=!0,this.logger.warn(`key "${s}" for languages "${v.join(", ")}" won't get resolved as namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(A=>{if(this.isValidLookup(i))return;o=A;const k=[f];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(k,f,A,x,n);else{let L;g&&(L=this.pluralResolver.getSuffix(A,n.count,n));const M=`${this.options.pluralSeparator}zero`,O=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(n.ordinal&&L.indexOf(O)===0&&k.push(f+L.replace(O,this.options.pluralSeparator)),k.push(f+L),y&&k.push(f+M)),b){const N=`${f}${this.options.contextSeparator||"_"}${n.context}`;k.push(N),g&&(n.ordinal&&L.indexOf(O)===0&&k.push(N+L.replace(O,this.options.pluralSeparator)),k.push(N+L),y&&k.push(N+M))}}let T;for(;T=k.pop();)this.isValidLookup(i)||(a=T,i=this.getResource(A,x,T,n))}))})}),{res:i,usedKey:s,exactUsedKey:a,usedLng:o,usedNS:r}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,n,i,s={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,n,i,s):this.resourceStore.getResource(e,n,i,s)}getUsedParamsDetails(e={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=e.replace&&!Tt(e.replace);let s=i?e.replace:e;if(i&&typeof e.count<"u"&&(s.count=e.count),this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),!i){s={...s};for(const a of n)delete s[a]}return s}static hasDefaultValue(e){const n="defaultValue";for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n===i.substring(0,n.length)&&e[i]!==void 0)return!0;return!1}}class JM{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=wo.create("languageUtils")}getScriptPartFromCode(e){if(e=fm(e),!e||e.indexOf("-")<0)return null;const n=e.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(e){if(e=fm(e),!e||e.indexOf("-")<0)return e;const n=e.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(e){if(Tt(e)&&e.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(e)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let n;return e.forEach(i=>{if(n)return;const s=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(s))&&(n=s)}),!n&&this.options.supportedLngs&&e.forEach(i=>{if(n)return;const s=this.getScriptPartFromCode(i);if(this.isSupportedCode(s))return n=s;const a=this.getLanguagePartFromCode(i);if(this.isSupportedCode(a))return n=a;n=this.options.supportedLngs.find(o=>{if(o===a)return o;if(!(o.indexOf("-")<0&&a.indexOf("-")<0)&&(o.indexOf("-")>0&&a.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===a||o.indexOf(a)===0&&a.length>1))return o})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(e,n){if(!e)return[];if(typeof e=="function"&&(e=e(n)),Tt(e)&&(e=[e]),Array.isArray(e))return e;if(!n)return e.default||[];let i=e[n];return i||(i=e[this.getScriptPartFromCode(n)]),i||(i=e[this.formatLanguageCode(n)]),i||(i=e[this.getLanguagePartFromCode(n)]),i||(i=e.default),i||[]}toResolveHierarchy(e,n){const i=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],e),s=[],a=o=>{o&&(this.isSupportedCode(o)?s.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return Tt(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(e))):Tt(e)&&a(this.formatLanguageCode(e)),i.forEach(o=>{s.indexOf(o)<0&&a(this.formatLanguageCode(o))}),s}}const ZM={zero:0,one:1,two:2,few:3,many:4,other:5},eL={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class tq{constructor(e,n={}){this.languageUtils=e,this.options=n,this.logger=wo.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,n){this.rules[e]=n}clearCache(){this.pluralRulesCache={}}getRule(e,n={}){const i=fm(e==="dev"?"en":e),s=n.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:i,type:s});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let o;try{o=new Intl.PluralRules(i,{type:s})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),eL;if(!e.match(/-|_/))return eL;const c=this.languageUtils.getLanguagePartFromCode(e);o=this.getRule(c,n)}return this.pluralRulesCache[a]=o,o}needsPlural(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,n,i={}){return this.getSuffixes(e,i).map(s=>`${n}${s}`)}getSuffixes(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?i.resolvedOptions().pluralCategories.sort((s,a)=>ZM[s]-ZM[a]).map(s=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${s}`):[]}getSuffix(e,n,i={}){const s=this.getRule(e,i);return s?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${s.select(n)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",n,i))}}const tL=(t,e,n,i=".",s=!0)=>{let a=Wz(t,e,n);return!a&&s&&Tt(n)&&(a=j2(t,n,i),a===void 0&&(a=j2(e,n,i))),a},Vx=t=>t.replace(/\$/g,"$$$$");class nL{constructor(e={}){this.logger=wo.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(n=>n),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:n,escapeValue:i,useRawValueToEscape:s,prefix:a,prefixEscaped:o,suffix:r,suffixEscaped:c,formatSeparator:d,unescapeSuffix:f,unescapePrefix:m,nestingPrefix:g,nestingPrefixEscaped:y,nestingSuffix:b,nestingSuffixEscaped:v,nestingOptionsSeparator:x,maxReplaces:A,alwaysFormat:k}=e.interpolation;this.escape=n!==void 0?n:$z,this.escapeValue=i!==void 0?i:!0,this.useRawValueToEscape=s!==void 0?s:!1,this.prefix=a?Ru(a):o||"{{",this.suffix=r?Ru(r):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=f?"":m||"-",this.unescapeSuffix=this.unescapePrefix?"":f||"",this.nestingPrefix=g?Ru(g):y||Ru("$t("),this.nestingSuffix=b?Ru(b):v||Ru(")"),this.nestingOptionsSeparator=x||",",this.maxReplaces=A||1e3,this.alwaysFormat=k!==void 0?k:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(n,i)=>n?.source===i?(n.lastIndex=0,n):new RegExp(i,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,n,i,s){let a,o,r;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=y=>{if(y.indexOf(this.formatSeparator)<0){const A=tL(n,c,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(A,void 0,i,{...s,...n,interpolationkey:y}):A}const b=y.split(this.formatSeparator),v=b.shift().trim(),x=b.join(this.formatSeparator).trim();return this.format(tL(n,c,v,this.options.keySeparator,this.options.ignoreJSONStructure),x,i,{...s,...n,interpolationkey:v})};this.resetRegExp();const f=s?.missingInterpolationHandler||this.options.missingInterpolationHandler,m=s?.interpolation?.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>Vx(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?Vx(this.escape(y)):Vx(y)}].forEach(y=>{for(r=0;a=y.regex.exec(e);){const b=a[1].trim();if(o=d(b),o===void 0)if(typeof f=="function"){const x=f(e,a,s);o=Tt(x)?x:""}else if(s&&Object.prototype.hasOwnProperty.call(s,b))o="";else if(m){o=a[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${e}`),o="";else!Tt(o)&&!this.useRawValueToEscape&&(o=WM(o));const v=y.safeValue(o);if(e=e.replace(a[0],v),m?(y.regex.lastIndex+=o.length,y.regex.lastIndex-=a[0].length):y.regex.lastIndex=0,r++,r>=this.maxReplaces)break}}),e}nest(e,n,i={}){let s,a,o;const r=(c,d)=>{const f=this.nestingOptionsSeparator;if(c.indexOf(f)<0)return c;const m=c.split(new RegExp(`${f}[ ]*{`));let g=`{${m[1]}`;c=m[0],g=this.interpolate(g,o);const y=g.match(/'/g),b=g.match(/"/g);((y?.length??0)%2===0&&!b||b.length%2!==0)&&(g=g.replace(/'/g,'"'));try{o=JSON.parse(g),d&&(o={...d,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,v),`${c}${f}${g}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,c};for(;s=this.nestingRegexp.exec(e);){let c=[];o={...i},o=o.replace&&!Tt(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;const d=/{.*}/.test(s[1])?s[1].lastIndexOf("}")+1:s[1].indexOf(this.formatSeparator);if(d!==-1&&(c=s[1].slice(d).split(this.formatSeparator).map(f=>f.trim()).filter(Boolean),s[1]=s[1].slice(0,d)),a=n(r.call(this,s[1].trim(),o),o),a&&s[0]===e&&!Tt(a))return a;Tt(a)||(a=WM(a)),a||(this.logger.warn(`missed to resolve ${s[1]} for nesting ${e}`),a=""),c.length&&(a=c.reduce((f,m)=>this.format(f,m,i.lng,{...i,interpolationkey:s[1].trim()}),a.trim())),e=e.replace(s[0],a),this.regexp.lastIndex=0}return e}}const nq=t=>{let e=t.toLowerCase().trim();const n={};if(t.indexOf("(")>-1){const i=t.split("(");e=i[0].toLowerCase().trim();const s=i[1].substring(0,i[1].length-1);e==="currency"&&s.indexOf(":")<0?n.currency||(n.currency=s.trim()):e==="relativetime"&&s.indexOf(":")<0?n.range||(n.range=s.trim()):s.split(";").forEach(o=>{if(o){const[r,...c]=o.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),f=r.trim();n[f]||(n[f]=d),d==="false"&&(n[f]=!1),d==="true"&&(n[f]=!0),isNaN(d)||(n[f]=parseInt(d,10))}})}return{formatName:e,formatOptions:n}},iL=t=>{const e={};return(n,i,s)=>{let a=s;s&&s.interpolationkey&&s.formatParams&&s.formatParams[s.interpolationkey]&&s[s.interpolationkey]&&(a={...a,[s.interpolationkey]:void 0});const o=i+JSON.stringify(a);let r=e[o];return r||(r=t(fm(i),s),e[o]=r),r(n)}},iq=t=>(e,n,i)=>t(fm(n),i)(e);class sq{constructor(e={}){this.logger=wo.create("formatter"),this.options=e,this.init(e)}init(e,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const i=n.cacheInBuiltFormats?iL:iq;this.formats={number:i((s,a)=>{const o=new Intl.NumberFormat(s,{...a});return r=>o.format(r)}),currency:i((s,a)=>{const o=new Intl.NumberFormat(s,{...a,style:"currency"});return r=>o.format(r)}),datetime:i((s,a)=>{const o=new Intl.DateTimeFormat(s,{...a});return r=>o.format(r)}),relativetime:i((s,a)=>{const o=new Intl.RelativeTimeFormat(s,{...a});return r=>o.format(r,a.range||"day")}),list:i((s,a)=>{const o=new Intl.ListFormat(s,{...a});return r=>o.format(r)})}}add(e,n){this.formats[e.toLowerCase().trim()]=n}addCached(e,n){this.formats[e.toLowerCase().trim()]=iL(n)}format(e,n,i,s={}){const a=n.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(r=>r.indexOf(")")>-1)){const r=a.findIndex(c=>c.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,r)].join(this.formatSeparator)}return a.reduce((r,c)=>{const{formatName:d,formatOptions:f}=nq(c);if(this.formats[d]){let m=r;try{const g=s?.formatParams?.[s.interpolationkey]||{},y=g.locale||g.lng||s.locale||s.lng||i;m=this.formats[d](r,y,{...f,...s,...g})}catch(g){this.logger.warn(g)}return m}else this.logger.warn(`there was no format function for ${d}`);return r},e)}}const aq=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class oq extends Ey{constructor(e,n,i,s={}){super(),this.backend=e,this.store=n,this.services=i,this.languageUtils=i.languageUtils,this.options=s,this.logger=wo.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=s.maxParallelReads||10,this.readingCalls=0,this.maxRetries=s.maxRetries>=0?s.maxRetries:5,this.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(i,s.backend,s)}queueLoad(e,n,i,s){const a={},o={},r={},c={};return e.forEach(d=>{let f=!0;n.forEach(m=>{const g=`${d}|${m}`;!i.reload&&this.store.hasResourceBundle(d,m)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?o[g]===void 0&&(o[g]=!0):(this.state[g]=1,f=!1,o[g]===void 0&&(o[g]=!0),a[g]===void 0&&(a[g]=!0),c[m]===void 0&&(c[m]=!0)))}),f||(r[d]=!0)}),(Object.keys(a).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(a),pending:Object.keys(o),toLoadLanguages:Object.keys(r),toLoadNamespaces:Object.keys(c)}}loaded(e,n,i){const s=e.split("|"),a=s[0],o=s[1];n&&this.emit("failedLoading",a,o,n),!n&&i&&this.store.addResourceBundle(a,o,i,void 0,void 0,{skipCopy:!0}),this.state[e]=n?-1:2,n&&i&&(this.state[e]=0);const r={};this.queue.forEach(c=>{Vz(c.loaded,[a],o),aq(c,e),n&&c.errors.push(n),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{r[d]||(r[d]={});const f=c.loaded[d];f.length&&f.forEach(m=>{r[d][m]===void 0&&(r[d][m]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",r),this.queue=this.queue.filter(c=>!c.done)}read(e,n,i,s=0,a=this.retryTimeout,o){if(!e.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:n,fcName:i,tried:s,wait:a,callback:o});return}this.readingCalls++;const r=(d,f)=>{if(this.readingCalls--,this.waitingReads.length>0){const m=this.waitingReads.shift();this.read(m.lng,m.ns,m.fcName,m.tried,m.wait,m.callback)}if(d&&f&&s<this.maxRetries){setTimeout(()=>{this.read.call(this,e,n,i,s+1,a*2,o)},a);return}o(d,f)},c=this.backend[i].bind(this.backend);if(c.length===2){try{const d=c(e,n);d&&typeof d.then=="function"?d.then(f=>r(null,f)).catch(r):r(null,d)}catch(d){r(d)}return}return c(e,n,r)}prepareLoading(e,n,i={},s){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),s&&s();Tt(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Tt(n)&&(n=[n]);const a=this.queueLoad(e,n,i,s);if(!a.toLoad.length)return a.pending.length||s(),null;a.toLoad.forEach(o=>{this.loadOne(o)})}load(e,n,i){this.prepareLoading(e,n,{},i)}reload(e,n,i){this.prepareLoading(e,n,{reload:!0},i)}loadOne(e,n=""){const i=e.split("|"),s=i[0],a=i[1];this.read(s,a,"read",void 0,void 0,(o,r)=>{o&&this.logger.warn(`${n}loading namespace ${a} for language ${s} failed`,o),!o&&r&&this.logger.log(`${n}loaded namespace ${a} for language ${s}`,r),this.loaded(e,o,r)})}saveMissing(e,n,i,s,a,o={},r=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${i}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend?.create){const c={...o,isUpdate:a},d=this.backend.create.bind(this.backend);if(d.length<6)try{let f;d.length===5?f=d(e,n,i,s,c):f=d(e,n,i,s),f&&typeof f.then=="function"?f.then(m=>r(null,m)).catch(r):r(null,f)}catch(f){r(f)}else d(e,n,i,s,r,c)}!e||!e[0]||this.store.addResource(e[0],n,i,s)}}}const sL=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),Tt(t[1])&&(e.defaultValue=t[1]),Tt(t[2])&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const n=t[3]||t[2];Object.keys(n).forEach(i=>{e[i]=n[i]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),aL=t=>(Tt(t.ns)&&(t.ns=[t.ns]),Tt(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),Tt(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs?.indexOf?.("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),typeof t.initImmediate=="boolean"&&(t.initAsync=t.initImmediate),t),Bg=()=>{},rq=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(n=>{typeof t[n]=="function"&&(t[n]=t[n].bind(t))})};class Hf extends Ey{constructor(e={},n){if(super(),this.options=aL(e),this.services={},this.logger=wo,this.modules={external:[]},rq(this),n&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,n),this;setTimeout(()=>{this.init(e,n)},0)}}init(e={},n){this.isInitializing=!0,typeof e=="function"&&(n=e,e={}),e.defaultNS==null&&e.ns&&(Tt(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const i=sL();this.options={...i,...this.options,...aL(e)},this.options.interpolation={...i.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);const s=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?wo.init(s(this.modules.logger),this.options):wo.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:d=sq;const f=new JM(this.options);this.store=new QM(this.options.resources,this.options);const m=this.services;m.logger=wo,m.resourceStore=this.store,m.languageUtils=f,m.pluralResolver=new tq(f,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==i.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),d&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(m.formatter=s(d),m.formatter.init&&m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new nL(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new oq(s(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.languageDetector&&(m.languageDetector=s(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=s(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new E0(this.services,this.options),this.translator.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.external.forEach(y=>{y.init&&y.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Bg),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=(...f)=>this.store[d](...f)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=(...f)=>(this.store[d](...f),this)});const r=Yh(),c=()=>{const d=(f,m)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),r.resolve(m),n(f,m)};if(this.languages&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),r}loadResources(e,n=Bg){let i=n;const s=Tt(e)?e:this.language;if(typeof e=="function"&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(s?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const a=[],o=r=>{if(!r||r==="cimode")return;this.services.languageUtils.toResolveHierarchy(r).forEach(d=>{d!=="cimode"&&a.indexOf(d)<0&&a.push(d)})};s?o(s):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>o(c)),this.options.preload?.forEach?.(r=>o(r)),this.services.backendConnector.load(a,this.options.ns,r=>{!r&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(r)})}else i(null)}reloadResources(e,n,i){const s=Yh();return typeof e=="function"&&(i=e,e=void 0),typeof n=="function"&&(i=n,n=void 0),e||(e=this.languages),n||(n=this.options.ns),i||(i=Bg),this.services.backendConnector.reload(e,n,a=>{s.resolve(),i(a)}),s}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&J3.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let n=0;n<this.languages.length;n++){const i=this.languages[n];if(!(["cimode","dev"].indexOf(i)>-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,n){this.isLanguageChangingTo=e;const i=Yh();this.emit("languageChanging",e);const s=r=>{this.language=r,this.languages=this.services.languageUtils.toResolveHierarchy(r),this.resolvedLanguage=void 0,this.setResolvedLanguage(r)},a=(r,c)=>{c?this.isLanguageChangingTo===e&&(s(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,i.resolve((...d)=>this.t(...d)),n&&n(r,(...d)=>this.t(...d))},o=r=>{!e&&!r&&this.services.languageDetector&&(r=[]);const c=Tt(r)?r:r&&r[0],d=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(Tt(r)?[r]:r);d&&(this.language||s(d),this.translator.language||this.translator.changeLanguage(d),this.services.languageDetector?.cacheUserLanguage?.(d)),this.loadResources(d,f=>{a(f,d)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?o(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(o):this.services.languageDetector.detect(o):o(e),i}getFixedT(e,n,i){const s=(a,o,...r)=>{let c;typeof o!="object"?c=this.options.overloadTranslationOptionHandler([a,o].concat(r)):c={...o},c.lng=c.lng||s.lng,c.lngs=c.lngs||s.lngs,c.ns=c.ns||s.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||i||s.keyPrefix);const d=this.options.keySeparator||".";let f;return c.keyPrefix&&Array.isArray(a)?f=a.map(m=>(typeof m=="function"&&(m=P0(m,{...this.options,...o})),`${c.keyPrefix}${d}${m}`)):(typeof a=="function"&&(a=P0(a,{...this.options,...o})),f=c.keyPrefix?`${c.keyPrefix}${d}${a}`:a),this.t(f,c)};return Tt(e)?s.lng=e:s.lngs=e,s.ns=n,s.keyPrefix=i,s}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=n.lng||this.resolvedLanguage||this.languages[0],s=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const o=(r,c)=>{const d=this.services.backendConnector.state[`${r}|${c}`];return d===-1||d===0||d===2};if(n.precheck){const r=n.precheck(this,o);if(r!==void 0)return r}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(i,e)&&(!s||o(a,e)))}loadNamespaces(e,n){const i=Yh();return this.options.ns?(Tt(e)&&(e=[e]),e.forEach(s=>{this.options.ns.indexOf(s)<0&&this.options.ns.push(s)}),this.loadResources(s=>{i.resolve(),n&&n(s)}),i):(n&&n(),Promise.resolve())}loadLanguages(e,n){const i=Yh();Tt(e)&&(e=[e]);const s=this.options.preload||[],a=e.filter(o=>s.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return a.length?(this.options.preload=s.concat(a),this.loadResources(o=>{i.resolve(),n&&n(o)}),i):(n&&n(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const s=new Intl.Locale(e);if(s&&s.getTextInfo){const a=s.getTextInfo();if(a&&a.direction)return a.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services?.languageUtils||new JM(sL());return e.toLowerCase().indexOf("-latn")>1?"ltr":n.indexOf(i.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},n){const i=new Hf(e,n);return i.createInstance=Hf.createInstance,i}cloneInstance(e={},n=Bg){const i=e.forkResourceStore;i&&delete e.forkResourceStore;const s={...this.options,...e,isClone:!0},a=new Hf(s);if((e.debug!==void 0||e.prefix!==void 0)&&(a.logger=a.logger.clone(e)),["store","services","language"].forEach(r=>{a[r]=this[r]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},i){const r=Object.keys(this.store.data).reduce((c,d)=>(c[d]={...this.store.data[d]},c[d]=Object.keys(c[d]).reduce((f,m)=>(f[m]={...c[d][m]},f),c[d]),c),{});a.store=new QM(r,s),a.services.resourceStore=a.store}return e.interpolation&&(a.services.interpolator=new nL(s)),a.translator=new E0(a.services,s),a.translator.on("*",(r,...c)=>{a.emit(r,...c)}),a.init(s,n),a.translator.options=s,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Gi=Hf.createInstance();Gi.createInstance;Gi.dir;Gi.init;Gi.loadResources;Gi.reloadResources;Gi.use;Gi.changeLanguage;Gi.getFixedT;Gi.t;Gi.exists;Gi.setDefaultNamespace;Gi.hasLoadedNamespace;Gi.loadNamespaces;Gi.loadLanguages;var Wx,oL;function lq(){return oL||(oL=1,Wx={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Wx}var cq=lq();const uq=f3(cq);var dq=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function rL(t){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=t.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(e.name=n[1],(uq[n[1]]||t.charAt(t.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var i=t.indexOf("-->");return{type:"comment",comment:i!==-1?t.slice(4,i):""}}for(var s=new RegExp(dq),a=null;(a=s.exec(t))!==null;)if(a[0].trim())if(a[1]){var o=a[1].trim(),r=[o,""];o.indexOf("=")>-1&&(r=o.split("=")),e.attrs[r[0]]=r[1],s.lastIndex--}else a[2]&&(e.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return e}var hq=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,fq=/^\s*$/,mq=Object.create(null);function e4(t,e){switch(e.type){case"text":return t+e.content;case"tag":return t+="<"+e.name+(e.attrs?(function(n){var i=[];for(var s in n)i.push(s+'="'+n[s]+'"');return i.length?" "+i.join(" "):""})(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?t:t+e.children.reduce(e4,"")+"</"+e.name+">";case"comment":return t+"\x3C!--"+e.comment+"-->"}}var pq={parse:function(t,e){e||(e={}),e.components||(e.components=mq);var n,i=[],s=[],a=-1,o=!1;if(t.indexOf("<")!==0){var r=t.indexOf("<");i.push({type:"text",content:r===-1?t:t.substring(0,r)})}return t.replace(hq,function(c,d){if(o){if(c!=="</"+n.name+">")return;o=!1}var f,m=c.charAt(1)!=="/",g=c.startsWith("\x3C!--"),y=d+c.length,b=t.charAt(y);if(g){var v=rL(c);return a<0?(i.push(v),i):((f=s[a]).children.push(v),i)}if(m&&(a++,(n=rL(c)).type==="tag"&&e.components[n.name]&&(n.type="component",o=!0),n.voidElement||o||!b||b==="<"||n.children.push({type:"text",content:t.slice(y,t.indexOf("<",y))}),a===0&&i.push(n),(f=s[a-1])&&f.children.push(n),s[a]=n),(!m||n.voidElement)&&(a>-1&&(n.voidElement||n.name===c.slice(2,-1))&&(a--,n=a===-1?i:s[a]),!o&&b!=="<"&&b)){f=a===-1?i:s[a].children;var x=t.indexOf("<",y),A=t.slice(y,x===-1?void 0:x);fq.test(A)&&(A=" "),(x>-1&&a+f.length>=0||A!==" ")&&f.push({type:"text",content:A})}}),i},stringify:function(t){return t.reduce(function(e,n){return e+e4("",n)},"")}};const s0=(t,e,n,i)=>{const s=[n,{code:e,...i||{}}];if(t?.services?.logger?.forward)return t.services.logger.forward(s,"warn","react-i18next::",!0);na(s[0])&&(s[0]=`react-i18next:: ${s[0]}`),t?.services?.logger?.warn?t.services.logger.warn(...s):console?.warn&&console.warn(...s)},lL={},jy=(t,e,n,i)=>{na(n)&&lL[n]||(na(n)&&(lL[n]=new Date),s0(t,e,n,i))},t4=(t,e)=>()=>{if(t.isInitialized)e();else{const n=()=>{setTimeout(()=>{t.off("initialized",n)},0),e()};t.on("initialized",n)}},R2=(t,e,n)=>{t.loadNamespaces(e,t4(t,n))},cL=(t,e,n,i)=>{if(na(n)&&(n=[n]),t.options.preload&&t.options.preload.indexOf(e)>-1)return R2(t,n,i);n.forEach(s=>{t.options.ns.indexOf(s)<0&&t.options.ns.push(s)}),t.loadLanguages(e,t4(t,i))},gq=(t,e,n={})=>!e.languages||!e.languages.length?(jy(e,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:e.languages}),!0):e.hasLoadedNamespace(t,{lng:n.lng,precheck:(i,s)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!s(i.isLanguageChangingTo,t))return!1}}),na=t=>typeof t=="string",xr=t=>typeof t=="object"&&t!==null,_q=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,yq={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},bq=t=>yq[t],vq=t=>t.replace(_q,bq);let D2={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:vq};const xq=(t={})=>{D2={...D2,...t}},n4=()=>D2;let i4;const Sq=t=>{i4=t},Uw=()=>i4,a0=(t,e)=>{if(!t)return!1;const n=t.props?.children??t.children;return e?n.length>0:!!n},o0=t=>{if(!t)return[];const e=t.props?.children??t.children;return t.props?.i18nIsDynamicList?Sc(e):e},wq=t=>Array.isArray(t)&&t.every(S.isValidElement),Sc=t=>Array.isArray(t)?t:[t],kq=(t,e)=>{const n={...e};return n.props=Object.assign(t.props,e.props),n},Cq=t=>{const e={};if(!t)return e;const n=i=>{Sc(i).forEach(a=>{na(a)||(a0(a)?n(o0(a)):xr(a)&&!S.isValidElement(a)&&Object.assign(e,a))})};return n(t),e},s4=(t,e,n,i)=>{if(!t)return"";let s="";const a=Sc(t),o=e?.transSupportBasicHtmlNodes?e.transKeepBasicHtmlNodesFor??[]:[];return a.forEach((r,c)=>{if(na(r)){s+=`${r}`;return}if(S.isValidElement(r)){const{props:d,type:f}=r,m=Object.keys(d).length,g=o.indexOf(f)>-1,y=d.children;if(!y&&g&&!m){s+=`<${f}/>`;return}if(!y&&(!g||m)||d.i18nIsDynamicList){s+=`<${c}></${c}>`;return}if(g&&m===1&&na(y)){s+=`<${f}>${y}</${f}>`;return}const b=s4(y,e,n,i);s+=`<${c}>${b}</${c}>`;return}if(r===null){s0(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:i});return}if(xr(r)){const{format:d,...f}=r,m=Object.keys(f);if(m.length===1){const g=d?`${m[0]}, ${d}`:m[0];s+=`{{${g}}}`;return}s0(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:i,child:r});return}s0(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:i,child:r})}),s},Aq=(t,e=[],n={})=>{if(!t)return t;const i=Object.keys(n),s=[...e,...i];let a="",o=0;for(;o<t.length;)if(t[o]==="<"){let r=!1;const c=t.slice(o).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9-]*)>/);if(c){const d=c[1];(/^\d+$/.test(d)||s.includes(d))&&(r=!0,a+=c[0],o+=c[0].length)}if(!r){const d=t.slice(o).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(d){const f=d[1];(/^\d+$/.test(f)||s.includes(f))&&(r=!0,a+=d[0],o+=d[0].length)}}r||(a+="<",o+=1)}else a+=t[o],o+=1;return a},Nq=(t,e,n,i,s,a,o)=>{if(n==="")return[];const r=s.transKeepBasicHtmlNodesFor||[],c=n&&new RegExp(r.map(k=>`<${k}`).join("|")).test(n);if(!t&&!e&&!c&&!o)return[n];const d=e??{},f=k=>{Sc(k).forEach(L=>{na(L)||(a0(L)?f(o0(L)):xr(L)&&!S.isValidElement(L)&&Object.assign(d,L))})};f(t);const m=Aq(n,r,d),g=pq.parse(`<0>${m}</0>`),y={...d,...a},b=(k,T,L)=>{const M=o0(k),O=x(M,T.children,L);return wq(M)&&O.length===0||k.props?.i18nIsDynamicList?M:O},v=(k,T,L,M,O)=>{k.dummy?(k.children=T,L.push(S.cloneElement(k,{key:M},O?void 0:T))):L.push(...S.Children.map([k],N=>{const P="data-i18n-is-dynamic-list",E={key:M,[P]:void 0};return N&&N.props&&Object.keys(N.props).forEach(R=>{R==="ref"||R==="children"||R==="i18nIsDynamicList"||R===P||(E[R]=N.props[R])}),S.cloneElement(N,E,O?null:T)}))},x=(k,T,L)=>{const M=Sc(k);return Sc(T).reduce((N,P,E)=>{const R=P.children?.[0]?.content&&i.services.interpolator.interpolate(P.children[0].content,y,i.language);if(P.type==="tag"){let z=M[parseInt(P.name,10)];!z&&e&&(z=e[P.name]),L.length===1&&!z&&(z=L[0][P.name]),z||(z={});const D=Object.keys(P.attrs).length!==0?kq({props:P.attrs},z):z,Q=S.isValidElement(D),G=Q&&a0(P,!0)&&!P.voidElement,B=c&&xr(D)&&D.dummy&&!Q,I=xr(e)&&Object.hasOwnProperty.call(e,P.name);if(na(D)){const V=i.services.interpolator.interpolate(D,y,i.language);N.push(V)}else if(a0(D)||G){const V=b(D,P,L);v(D,V,N,E)}else if(B){const V=x(M,P.children,L);v(D,V,N,E)}else if(Number.isNaN(parseFloat(P.name)))if(I){const V=b(D,P,L);v(D,V,N,E,P.voidElement)}else if(s.transSupportBasicHtmlNodes&&r.indexOf(P.name)>-1)if(P.voidElement)N.push(S.createElement(P.name,{key:`${P.name}-${E}`}));else{const V=x(M,P.children,L);N.push(S.createElement(P.name,{key:`${P.name}-${E}`},V))}else if(P.voidElement)N.push(`<${P.name} />`);else{const V=x(M,P.children,L);N.push(`<${P.name}>${V}</${P.name}>`)}else if(xr(D)&&!Q){const V=P.children[0]?R:null;V&&N.push(V)}else v(D,R,N,E,P.children.length!==1||!R)}else if(P.type==="text"){const z=s.transWrapTextNodes,D=o?s.unescape(i.services.interpolator.interpolate(P.content,y,i.language)):i.services.interpolator.interpolate(P.content,y,i.language);z?N.push(S.createElement(z,{key:`${P.name}-${E}`},D)):N.push(D)}return N},[])},A=x([{dummy:!0,children:t||[]}],g,Sc(t||[]));return o0(A[0])},a4=(t,e,n)=>{const i=t.key||e,s=S.cloneElement(t,{key:i});if(!s.props||!s.props.children||n.indexOf(`${e}/>`)<0&&n.indexOf(`${e} />`)<0)return s;function a(){return S.createElement(S.Fragment,null,s)}return S.createElement(a,{key:i})},Tq=(t,e)=>t.map((n,i)=>a4(n,i,e)),Mq=(t,e)=>{const n={};return Object.keys(t).forEach(i=>{Object.assign(n,{[i]:a4(t[i],i,e)})}),n},Lq=(t,e,n,i)=>t?Array.isArray(t)?Tq(t,e):xr(t)?Mq(t,e):(jy(n,"TRANS_INVALID_COMPONENTS",'<Trans /> "components" prop expects an object or array',{i18nKey:i}),null):null,Oq=t=>!xr(t)||Array.isArray(t)?!1:Object.keys(t).reduce((e,n)=>e&&Number.isNaN(Number.parseFloat(n)),!0);function Pq({children:t,count:e,parent:n,i18nKey:i,context:s,tOptions:a={},values:o,defaults:r,components:c,ns:d,i18n:f,t:m,shouldUnescape:g,...y}){const b=f||Uw();if(!b)return jy(b,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:i}),t;const v=m||b.t.bind(b)||(B=>B),x={...n4(),...b.options?.react};let A=d||v.ns||b.options?.defaultNS;A=na(A)?[A]:A||["translation"];const k=s4(t,x,b,i),T=r||a?.defaultValue||k||x.transEmptyNodeValue||(typeof i=="function"?P0(i):i),{hashTransKey:L}=x,M=i||(L?L(k||T):k||T);b.options?.interpolation?.defaultVariables&&(o=o&&Object.keys(o).length>0?{...o,...b.options.interpolation.defaultVariables}:{...b.options.interpolation.defaultVariables});const O=Cq(t);O&&typeof O.count=="number"&&e===void 0&&(e=O.count);const N=o||e!==void 0&&!b.options?.interpolation?.alwaysFormat||!t?a.interpolation:{interpolation:{...a.interpolation,prefix:"#$?",suffix:"?$#"}},P={...a,context:s||a.context,count:e,...o,...N,defaultValue:T,ns:A};let E=M?v(M,P):T;E===M&&T&&(E=T);const R=Lq(c,E,b,i);let z=R||t,D=null;Oq(R)&&(D=R,z=t);const Q=Nq(z,D,E,b,x,P,g),G=n??x.defaultTransParent;return G?S.createElement(G,y,Q):Q}const Eq={type:"3rdParty",init(t){xq(t.options.react),Sq(t)}},o4=S.createContext();class jq{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}function uL({children:t,count:e,parent:n,i18nKey:i,context:s,tOptions:a={},values:o,defaults:r,components:c,ns:d,i18n:f,t:m,shouldUnescape:g,...y}){const{i18n:b,defaultNS:v}=S.useContext(o4)||{},x=f||b||Uw(),A=m||x?.t.bind(x);return Pq({children:t,count:e,parent:n,i18nKey:i,context:s,tOptions:a,values:o,defaults:r,components:c,ns:d||A?.ns||v||x?.options?.defaultNS,i18n:x,t:m,shouldUnescape:g,...y})}var Gx={exports:{}},$x={};var dL;function Rq(){if(dL)return $x;dL=1;var t=Ny();function e(m,g){return m===g&&(m!==0||1/m===1/g)||m!==m&&g!==g}var n=typeof Object.is=="function"?Object.is:e,i=t.useState,s=t.useEffect,a=t.useLayoutEffect,o=t.useDebugValue;function r(m,g){var y=g(),b=i({inst:{value:y,getSnapshot:g}}),v=b[0].inst,x=b[1];return a(function(){v.value=y,v.getSnapshot=g,c(v)&&x({inst:v})},[m,y,g]),s(function(){return c(v)&&x({inst:v}),m(function(){c(v)&&x({inst:v})})},[m]),o(y),y}function c(m){var g=m.getSnapshot;m=m.value;try{var y=g();return!n(m,y)}catch{return!0}}function d(m,g){return g()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?d:r;return $x.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:f,$x}var hL;function Dq(){return hL||(hL=1,Gx.exports=Rq()),Gx.exports}var Fq=Dq();const Iq=(t,e)=>na(e)?e:xr(e)&&na(e.defaultValue)?e.defaultValue:Array.isArray(t)?t[t.length-1]:t,Uq={t:Iq,ready:!1},Bq=()=>()=>{},et=(t,e={})=>{const{i18n:n}=e,{i18n:i,defaultNS:s}=S.useContext(o4)||{},a=n||i||Uw();a&&!a.reportNamespaces&&(a.reportNamespaces=new jq),a||jy(a,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const o=S.useMemo(()=>({...n4(),...a?.options?.react,...e}),[a,e]),{useSuspense:r,keyPrefix:c}=o,d=s||a?.options?.defaultNS,f=na(d)?[d]:d||["translation"],m=S.useMemo(()=>f,f);a?.reportNamespaces?.addUsedNamespaces?.(m);const g=S.useRef(0),y=S.useCallback(E=>{if(!a)return Bq;const{bindI18n:R,bindI18nStore:z}=o,D=()=>{g.current+=1,E()};return R&&a.on(R,D),z&&a.store.on(z,D),()=>{R&&R.split(" ").forEach(Q=>a.off(Q,D)),z&&z.split(" ").forEach(Q=>a.store.off(Q,D))}},[a,o]),b=S.useRef(),v=S.useCallback(()=>{if(!a)return Uq;const E=!!(a.isInitialized||a.initializedStoreOnce)&&m.every(B=>gq(B,a,o)),R=e.lng||a.language,z=g.current,D=b.current;if(D&&D.ready===E&&D.lng===R&&D.keyPrefix===c&&D.revision===z)return D;const G={t:a.getFixedT(R,o.nsMode==="fallback"?m:m[0],c),ready:E,lng:R,keyPrefix:c,revision:z};return b.current=G,G},[a,m,c,o,e.lng]),[x,A]=S.useState(0),{t:k,ready:T}=Fq.useSyncExternalStore(y,v,v);S.useEffect(()=>{if(a&&!T&&!r){const E=()=>A(R=>R+1);e.lng?cL(a,e.lng,m,E):R2(a,m,E)}},[a,e.lng,m,T,r,x]);const L=a||{},M=S.useRef(null),O=S.useRef(),N=E=>{const R=Object.getOwnPropertyDescriptors(E);R.__original&&delete R.__original;const z=Object.create(Object.getPrototypeOf(E),R);if(!Object.prototype.hasOwnProperty.call(z,"__original"))try{Object.defineProperty(z,"__original",{value:E,writable:!1,enumerable:!1,configurable:!1})}catch{}return z},P=S.useMemo(()=>{const E=L,R=E?.language;let z=E;E&&(M.current&&M.current.__original===E?O.current!==R?(z=N(E),M.current=z,O.current=R):z=M.current:(z=N(E),M.current=z,O.current=R));const D=[k,z,T];return D.t=k,D.i18n=z,D.ready=T,D},[k,L,T,L.resolvedLanguage,L.language,L.languages]);if(a&&r&&!T)throw new Promise(E=>{const R=()=>E();e.lng?cL(a,e.lng,m,R):R2(a,m,R)});return P};function me({children:t,variant:e="primary",size:n="md",fullWidth:i=!1,loading:s=!1,className:a="",disabled:o,...r}){const c=t!=null&&t!==!1,d=["btn",`btn-${e}`,n==="sm"?"btn-sm":"",i?"btn-full":"",a].filter(Boolean).join(" ");return h.jsxs("button",{className:d,disabled:o||s,...r,children:[s&&h.jsx("span",{className:"loading-spinner","aria-hidden":"true"}),c&&h.jsx("span",{children:t})]})}function ot({label:t,hint:e,error:n,rightElement:i,className:s="",id:a,...o}){const r=S.useId(),c=a??r,d=e?`${c}-hint`:void 0,f=n?`${c}-error`:void 0,m=[o["aria-describedby"],f,d].filter(Boolean).join(" ")||void 0;return h.jsxs("div",{className:"form-group",children:[t&&h.jsx("label",{htmlFor:c,children:t}),h.jsxs("div",{style:{position:"relative"},children:[h.jsx("input",{id:c,className:`input ${s}`.trim(),"aria-invalid":!!n||o["aria-invalid"],"aria-describedby":m,...o}),i&&h.jsx("div",{style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)"},children:i})]}),e&&h.jsx("div",{id:d,className:"hint",children:e}),n&&h.jsx("div",{id:f,className:"error-box",children:n})]})}const vn={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},jr={...vn,strokeWidth:1.72,strokeLinecap:"square",strokeLinejoin:"miter",strokeMiterlimit:10};function zq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),h.jsx("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),h.jsx("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),h.jsx("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),h.jsx("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),h.jsx("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),h.jsx("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),h.jsx("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),h.jsx("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]})}function F2({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"}),h.jsx("path",{d:"m21 2-9.6 9.6"}),h.jsx("circle",{cx:"7.5",cy:"15.5",r:"5.5"})]})}function qq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M12 8V4H8"}),h.jsx("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),h.jsx("path",{d:"M2 14h2"}),h.jsx("path",{d:"M20 14h2"}),h.jsx("path",{d:"M15 13v2"}),h.jsx("path",{d:"M9 13v2"})]})}function Kq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("rect",{x:"3",y:"5",width:"6",height:"6",rx:"1.5"}),h.jsx("rect",{x:"15",y:"5",width:"6",height:"6",rx:"1.5"}),h.jsx("rect",{x:"9",y:"13",width:"6",height:"6",rx:"1.5"}),h.jsx("path",{d:"M9 8h6"}),h.jsx("path",{d:"M12 11v2"}),h.jsx("path",{d:"M7.5 11v2"}),h.jsx("path",{d:"M16.5 11v2"})]})}function Hq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("rect",{x:"3.5",y:"3.5",width:"5",height:"5",rx:"1.4"}),h.jsx("rect",{x:"15.5",y:"3.5",width:"5",height:"5",rx:"1.4"}),h.jsx("rect",{x:"3.5",y:"15.5",width:"5",height:"5",rx:"1.4"}),h.jsx("rect",{x:"15.5",y:"15.5",width:"5",height:"5",rx:"1.4"}),h.jsx("path",{d:"M8.5 8.5 10.75 10.75"}),h.jsx("path",{d:"M15.5 8.5 13.25 10.75"}),h.jsx("path",{d:"M8.5 15.5 10.75 13.25"}),h.jsx("path",{d:"M15.5 15.5 13.25 13.25"}),h.jsx("circle",{cx:"12",cy:"12",r:"1.6",fill:"currentColor",stroke:"none"})]})}function Vq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),h.jsx("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),h.jsx("path",{d:"M10 9H8"}),h.jsx("path",{d:"M16 13H8"}),h.jsx("path",{d:"M16 17H8"})]})}function fL({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})})}function I2({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),h.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}function Bw({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("circle",{cx:"12",cy:"12",r:"10"}),h.jsx("path",{d:"M12 16v-4"}),h.jsx("path",{d:"M12 8h.01"})]})}function zw({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),h.jsx("path",{d:"M21 3v5h-5"})]})}function r4({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M12 15V3"}),h.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),h.jsx("path",{d:"m7 10 5 5 5-5"})]})}function Ry({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M3 6h18"}),h.jsx("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),h.jsx("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),h.jsx("line",{x1:"10",x2:"10",y1:"11",y2:"17"}),h.jsx("line",{x1:"14",x2:"14",y1:"11",y2:"17"})]})}function qw({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"m18 15-6-6-6 6"})})}function Dy({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"m6 9 6 6 6-6"})})}function Wq({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"m15 18-6-6 6-6"})})}function l4({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"m21 21-4.34-4.34"}),h.jsx("circle",{cx:"11",cy:"11",r:"8"})]})}function Xc({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M18 6 6 18"}),h.jsx("path",{d:"m6 6 12 12"})]})}function Kw({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"M20 6 9 17l-5-5"})})}function Gq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}),h.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}function c4({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"}),h.jsx("path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242"}),h.jsx("path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"}),h.jsx("path",{d:"m2 2 20 20"})]})}function $q({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12"}),h.jsx("path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"})]})}function Ju({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5"}),h.jsx("path",{d:"M16.5 7.5 19 5"}),h.jsx("path",{d:"m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5"}),h.jsx("path",{d:"M9 21a6 6 0 0 0-6-6"}),h.jsx("path",{d:"M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z"})]})}function U2({size:t=20,...e}){return h.jsx("svg",{...vn,width:t,height:t,...e,children:h.jsx("path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z"})})}function j0({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("line",{x1:"10",x2:"14",y1:"2",y2:"2"}),h.jsx("line",{x1:"12",x2:"15",y1:"14",y2:"11"}),h.jsx("circle",{cx:"12",cy:"14",r:"8"})]})}function B2({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M16 7h6v6"}),h.jsx("path",{d:"m22 7-8.5 8.5-5-5L2 17"})]})}function Xq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("line",{x1:"12",x2:"12",y1:"2",y2:"22"}),h.jsx("path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"})]})}function Qq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),h.jsx("path",{d:"M9 18c-4.51 2-5-2-7-2"})]})}function Xx({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M15 3h6v6"}),h.jsx("path",{d:"M10 14 21 3"}),h.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})}function Yq({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("path",{d:"M12 7v14"}),h.jsx("path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"})]})}function R0({size:t=20,...e}){return h.jsxs("svg",{...vn,width:t,height:t,...e,children:[h.jsx("polyline",{points:"16 18 22 12 16 6"}),h.jsx("polyline",{points:"8 6 2 12 8 18"})]})}function Jq({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("rect",{x:"3",y:"3",width:"7.5",height:"8",rx:"1.5"}),h.jsx("rect",{x:"13.5",y:"3",width:"7.5",height:"5",rx:"1.5",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("rect",{x:"3",y:"14",width:"7.5",height:"7",rx:"1.5",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("rect",{x:"13.5",y:"11",width:"7.5",height:"10",rx:"1.5"})]})}function Zq({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("path",{d:"M4 8h16"}),h.jsx("path",{d:"M4 16h16"}),h.jsx("circle",{cx:"9.5",cy:"8",r:"2.8",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("circle",{cx:"15",cy:"16",r:"2.8",fill:"currentColor",fillOpacity:"0.12"})]})}function eK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("circle",{cx:"12",cy:"5.5",r:"2.8",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("circle",{cx:"5.5",cy:"18.5",r:"2.8"}),h.jsx("circle",{cx:"18.5",cy:"18.5",r:"2.8"}),h.jsx("path",{d:"M10.2 7.8 7 16.2"}),h.jsx("path",{d:"M13.8 7.8 17 16.2"}),h.jsx("path",{d:"M8.3 18.5h7.4"})]})}function tK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("path",{d:"M7 3h7l4 4v12a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z"}),h.jsx("path",{d:"M14 3v4h4",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("path",{d:"M9 13l2 2 4-4"})]})}function nK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("path",{d:"M12 3l8 4v5c0 5.25-3.4 8.25-8 10-4.6-1.75-8-4.75-8-10V7Z",fill:"currentColor",fillOpacity:"0.08"}),h.jsx("circle",{cx:"12",cy:"11",r:"1.5",fill:"currentColor",stroke:"none"}),h.jsx("path",{d:"M12 12.5v2.5"})]})}function iK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("circle",{cx:"12",cy:"12",r:"8"}),h.jsx("path",{d:"M12 12V4a8 8 0 0 1 8 8Z",fill:"currentColor",fillOpacity:"0.12"})]})}function sK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("path",{d:"M3.5 20h17"}),h.jsx("rect",{x:"5",y:"13",width:"3.5",height:"7",rx:"0.5"}),h.jsx("rect",{x:"10.25",y:"7",width:"3.5",height:"13",rx:"0.5",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("rect",{x:"15.5",y:"10",width:"3.5",height:"10",rx:"0.5"})]})}function aK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),h.jsx("path",{d:"M3 8.5h18"}),h.jsx("circle",{cx:"5.5",cy:"6.2",r:"0.8",fill:"currentColor",stroke:"none"}),h.jsx("circle",{cx:"7.8",cy:"6.2",r:"0.8",fill:"currentColor",fillOpacity:"0.4",stroke:"none"}),h.jsx("path",{d:"M7 12l3 2.5-3 2.5"}),h.jsx("path",{d:"M13 17h4"})]})}function oK({size:t=20,...e}){return h.jsxs("svg",{...jr,width:t,height:t,...e,children:[h.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"}),h.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",fill:"currentColor",fillOpacity:"0.12"}),h.jsx("path",{d:"M6 10H3"}),h.jsx("path",{d:"M6 14H3"}),h.jsx("path",{d:"M21 10h-3"}),h.jsx("path",{d:"M21 14h-3"}),h.jsx("path",{d:"M10 6V3"}),h.jsx("path",{d:"M14 6V3"}),h.jsx("path",{d:"M10 21v-3"}),h.jsx("path",{d:"M14 21v-3"})]})}const rK="Select-module__wrap___8GKsa",lK="Select-module__wrapFullWidth___uQ1gt",cK="Select-module__trigger___nKY0l",uK="Select-module__triggerText___zQEIp",dK="Select-module__placeholder___N04iW",hK="Select-module__triggerIcon___ipYKn",fK="Select-module__dropdown___6YdcD",mK="Select-module__option___EKsSG",pK="Select-module__optionActive___y280o",gK="Select-module__optionHighlighted___CPa3K",ao={wrap:rK,wrapFullWidth:lK,trigger:cK,triggerText:uK,placeholder:dK,triggerIcon:hK,dropdown:fK,option:mK,optionActive:pK,optionHighlighted:gK},Du=8,zg=6,mL=240,pL=2010,_K=(t,e,n)=>Math.min(Math.max(t,e),n),yK=t=>{const e=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,s=Math.min(e.width,Math.max(0,n-Du*2)),a=_K(e.left,Du,Math.max(Du,n-s-Du)),o=i-e.bottom-Du-zg,r=e.top-Du-zg,c=o>=mL||o>=r?"down":"up",d=Math.max(0,Math.min(mL,c==="down"?o:r));return c==="down"?{position:"fixed",top:e.bottom+zg,left:a,width:s,maxHeight:d,zIndex:pL}:{position:"fixed",bottom:i-e.top+zg,left:a,width:s,maxHeight:d,zIndex:pL}};function Vi({value:t,options:e,onChange:n,placeholder:i,className:s,disabled:a=!1,ariaLabel:o,ariaLabelledBy:r,ariaDescribedBy:c,fullWidth:d=!0,id:f}){const m=S.useId(),g=f??m,y=`${g}-listbox`,[b,v]=S.useState(!1),[x,A]=S.useState(-1),k=S.useRef(null),T=S.useRef(null),L=S.useRef(null),[M,O]=S.useState(null),N=b&&!a;S.useEffect(()=>{if(!b||a)return;const $=X=>{const U=X.target;k.current?.contains(U)||T.current?.contains(U)||v(!1)};return document.addEventListener("mousedown",$),()=>document.removeEventListener("mousedown",$)},[a,b]);const P=S.useCallback(()=>{k.current&&O(yK(k.current))},[]),E=S.useCallback(()=>{typeof window>"u"||(L.current!==null&&window.cancelAnimationFrame(L.current),L.current=window.requestAnimationFrame(()=>{L.current=null,P()}))},[P]);S.useLayoutEffect(()=>{if(!N){L.current!==null&&typeof window<"u"&&(window.cancelAnimationFrame(L.current),L.current=null);return}P();const $=()=>{E()},X=typeof ResizeObserver<"u"&&k.current?new ResizeObserver(()=>{E()}):null;return X&&k.current&&X.observe(k.current),window.addEventListener("resize",$),window.addEventListener("scroll",$,!0),()=>{window.removeEventListener("resize",$),window.removeEventListener("scroll",$,!0),X?.disconnect(),L.current!==null&&(window.cancelAnimationFrame(L.current),L.current=null)}},[N,E,P]);const R=S.useMemo(()=>e.findIndex($=>$.value===t),[e,t]),z=x>=0?x:R>=0?R:e.length>0?0:-1,D=R>=0?e[R]:void 0,Q=D?.label??i??"",G=!D&&i,B=S.useCallback($=>{const X=e[$];X&&(n(X.value),v(!1),A($))},[n,e]),I=S.useCallback($=>{if(e.length===0)return;const X=(z+$+e.length)%e.length;A(X)},[e.length,z]),V=S.useCallback($=>{if(!a)switch($.key){case"ArrowDown":if($.preventDefault(),!N){v(!0);return}I(1);return;case"ArrowUp":if($.preventDefault(),!N){v(!0);return}I(-1);return;case"Home":if(!N||e.length===0)return;$.preventDefault(),A(0);return;case"End":if(!N||e.length===0)return;$.preventDefault(),A(e.length-1);return;case"Enter":case" ":{if($.preventDefault(),!N){v(!0);return}z>=0&&B(z);return}case"Escape":if(!N)return;$.preventDefault(),v(!1);return;case"Tab":N&&v(!1);return;default:return}},[B,a,N,I,e.length,z]);S.useEffect(()=>{if(!N||z<0)return;document.getElementById(`${g}-option-${z}`)?.scrollIntoView({block:"nearest"})},[N,z,g]);const K=N&&M?h.jsx("div",{ref:T,className:ao.dropdown,id:y,role:"listbox","aria-label":o,style:M,children:e.map(($,X)=>{const U=$.value===t,q=X===z;return h.jsx("button",{id:`${g}-option-${X}`,type:"button",role:"option","aria-selected":U,className:`${ao.option} ${U?ao.optionActive:""} ${q?ao.optionHighlighted:""}`.trim(),onMouseEnter:()=>A(X),onKeyDown:V,onClick:()=>B(X),children:$.label},$.value)})}):null;return h.jsxs(h.Fragment,{children:[h.jsx("div",{className:`${ao.wrap} ${d?ao.wrapFullWidth:""} ${s??""}`,ref:k,children:h.jsxs("button",{id:g,type:"button",className:ao.trigger,onClick:a?void 0:()=>v($=>!$),onKeyDown:V,"aria-haspopup":"listbox","aria-expanded":N,"aria-controls":N?y:void 0,"aria-activedescendant":N&&z>=0?`${g}-option-${z}`:void 0,"aria-label":o,"aria-labelledby":r,"aria-describedby":c,disabled:a,children:[h.jsx("span",{className:`${ao.triggerText} ${G?ao.placeholder:""}`,children:Q}),h.jsx("span",{className:ao.triggerIcon,"aria-hidden":"true",children:h.jsx(Dy,{size:14})})]})}),K&&(typeof document>"u"?K:Eo.createPortal(K,document.body))]})}const bK="SelectionCheckbox-module__root___LiMQt",vK="SelectionCheckbox-module__disabled___-T-uP",xK="SelectionCheckbox-module__input___b-Hpm",SK="SelectionCheckbox-module__box___FRD4m",wK="SelectionCheckbox-module__boxChecked___4lydu",kK="SelectionCheckbox-module__label___twhQj",Fu={root:bK,disabled:vK,input:xK,box:SK,boxChecked:wK,label:kK};function Ml({checked:t,onChange:e,label:n,ariaLabel:i,title:s,disabled:a=!1,className:o,labelClassName:r}){const c=[Fu.root,a?Fu.disabled:"",o].filter(Boolean).join(" "),d=[Fu.box,t?Fu.boxChecked:""].filter(Boolean).join(" "),f=[Fu.label,r].filter(Boolean).join(" "),m=g=>{e(g.target.checked)};return h.jsxs("label",{className:c,title:s,children:[h.jsx("input",{className:Fu.input,type:"checkbox",checked:t,onChange:m,"aria-label":i,disabled:a}),h.jsx("span",{className:d,children:t?h.jsx(Kw,{size:12}):null}),n?h.jsx("div",{className:f,children:n}):null]})}const gL=t=>{let e;const n=new Set,i=(d,f)=>{const m=typeof d=="function"?d(e):d;if(!Object.is(m,e)){const g=e;e=f??(typeof m!="object"||m===null)?m:Object.assign({},e,m),n.forEach(y=>y(e,g))}},s=()=>e,r={setState:i,getState:s,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d))},c=e=t(i,s,r);return r},CK=(t=>t?gL(t):gL),AK=t=>t;function NK(t,e=AK){const n=So.useSyncExternalStore(t.subscribe,So.useCallback(()=>e(t.getState()),[t,e]),So.useCallback(()=>e(t.getInitialState()),[t,e]));return So.useDebugValue(n),n}const _L=t=>{const e=CK(t),n=i=>NK(e,i);return Object.assign(n,e),n},jo=(t=>t?_L(t):_L);function Hw(){return`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}const TK=t=>t,u4=30*1e3,MK=8317,z2="/v0/management",yL=30*1e3,LK=["x-cpa-version","x-server-version"],OK=["x-cpa-build-date","x-server-build-date"],qg=60*1e3,D0=10*1024*1024,d4="cli-proxy-auth",PK="cli-proxy-theme",h4="cli-proxy-language",dd=TK(["zh-CN","en","ru"]),f4={"zh-CN":"language.chinese",en:"language.english",ru:"language.russian"},EK=dd,jK=3e3,_n=jo(t=>({notifications:[],confirmation:{isOpen:!1,isLoading:!1,options:null},showNotification:(e,n="info",i=jK)=>{const s=Hw(),a={id:s,message:e,type:n,duration:i};t(o=>({notifications:[...o.notifications,a]})),i>0&&setTimeout(()=>{t(o=>({notifications:o.notifications.filter(r=>r.id!==s)}))},i)},removeNotification:e=>{t(n=>({notifications:n.notifications.filter(i=>i.id!==e)}))},clearAll:()=>{t({notifications:[]})},showConfirmation:e=>{t({confirmation:{isOpen:!0,isLoading:!1,options:e}})},hideConfirmation:()=>{t(e=>({confirmation:{...e.confirmation,isOpen:!1,options:null}}))},setConfirmationLoading:e=>{t(n=>({confirmation:{...n.confirmation,isLoading:e}}))}}));function m4(t,e){let n;try{n=t()}catch{return}return{getItem:s=>{var a;const o=c=>c===null?null:JSON.parse(c,void 0),r=(a=n.getItem(s))!=null?a:null;return r instanceof Promise?r.then(o):o(r)},setItem:(s,a)=>n.setItem(s,JSON.stringify(a,void 0)),removeItem:s=>n.removeItem(s)}}const q2=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(i){return q2(i)(n)},catch(i){return this}}}catch(n){return{then(i){return this},catch(i){return q2(i)(n)}}}},RK=(t,e)=>(n,i,s)=>{let a={storage:m4(()=>localStorage),partialize:v=>v,version:0,merge:(v,x)=>({...x,...v}),...e},o=!1;const r=new Set,c=new Set;let d=a.storage;if(!d)return t((...v)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...v)},i,s);const f=()=>{const v=a.partialize({...i()});return d.setItem(a.name,{state:v,version:a.version})},m=s.setState;s.setState=(v,x)=>(m(v,x),f());const g=t((...v)=>(n(...v),f()),i,s);s.getInitialState=()=>g;let y;const b=()=>{var v,x;if(!d)return;o=!1,r.forEach(k=>{var T;return k((T=i())!=null?T:g)});const A=((x=a.onRehydrateStorage)==null?void 0:x.call(a,(v=i())!=null?v:g))||void 0;return q2(d.getItem.bind(d))(a.name).then(k=>{if(k)if(typeof k.version=="number"&&k.version!==a.version){if(a.migrate){const T=a.migrate(k.state,k.version);return T instanceof Promise?T.then(L=>[!0,L]):[!0,T]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,k.state];return[!1,void 0]}).then(k=>{var T;const[L,M]=k;if(y=a.merge(M,(T=i())!=null?T:g),n(y,!0),L)return f()}).then(()=>{A?.(y,void 0),y=i(),o=!0,c.forEach(k=>k(y))}).catch(k=>{A?.(void 0,k)})};return s.persist={setOptions:v=>{a={...a,...v},v.storage&&(d=v.storage)},clearStorage:()=>{d?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>b(),hasHydrated:()=>o,onHydrate:v=>(r.add(v),()=>{r.delete(v)}),onFinishHydration:v=>(c.add(v),()=>{c.delete(v)})},a.skipHydration||b(),y||g},Vw=RK,DK=()=>window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",p4=()=>DK()==="dark"?"dark":"white",bL=t=>t==="dark"?"dark":"light",FK=t=>t==="auto"?p4():t==="white"?"white":t,vL=t=>{if(t==="dark"){document.documentElement.setAttribute("data-theme","dark");return}if(t==="white"){document.documentElement.setAttribute("data-theme","white");return}document.documentElement.removeAttribute("data-theme")},Aa=jo()(Vw((t,e)=>({theme:"auto",resolvedTheme:"light",setTheme:n=>{const i=FK(n);vL(i),t({theme:n,resolvedTheme:bL(i)})},cycleTheme:()=>{const{theme:n,setTheme:i}=e(),s=["light","white","dark","auto"],a=s.indexOf(n),o=s[(a+1)%s.length];i(o)},initializeTheme:()=>{const{theme:n,setTheme:i}=e();if(i(n),!window.matchMedia)return()=>{};const s=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{const{theme:o}=e();if(o==="auto"){const r=p4();vL(r),t({resolvedTheme:bL(r)})}};return s.addEventListener("change",a),()=>s.removeEventListener("change",a)}}),{name:PK})),IK={login:"登录",logout:"登出",back:"返回",cancel:"取消",confirm:"确认",leave:"离开",stay:"继续编辑",save:"保存",delete:"删除",edit:"编辑",add:"添加",update:"更新",refresh:"刷新",close:"关闭",success:"成功",error:"错误",info:"信息",warning:"警告",loading:"加载中...",connecting:"连接中...",connected:"已连接",disconnected:"未连接",connecting_status:"连接中",connected_status:"已连接",disconnected_status:"未连接",yes:"是",no:"否",not_set:"未设置",optional:"可选",required:"必填",api_key:"密钥",base_url:"地址",prefix:"前缀",proxy_url:"代理",priority:"优先级",alias:"别名",failure:"失败",unknown_error:"未知错误",quota_update_required:"请更新 CPA 版本或检查更新",quota_check_credential:"请检查凭证状态",copy:"复制",expand:"展开",collapse:"收起",status:"状态",action:"操作",custom_headers_label:"自定义请求头",custom_headers_hint:"可选,设置需要附带到请求中的 HTTP 头,名称和值均不能为空。",custom_headers_add:"添加请求头",custom_headers_key_placeholder:"Header 名称,例如 X-Custom-Header",custom_headers_value_placeholder:"Header 值",model_name_placeholder:"模型名称,例如 claude-3-5-sonnet-20241022",model_alias_placeholder:"模型别名 (可选)",invalid_provider_index:"无效的提供商索引。",unsaved_changes_title:"未保存的更改",unsaved_changes_message:"你有未保存的更改,离开后将丢失这些更改。确定要离开吗?"},UK={main:"CLI Proxy API Management Center",login:"CLI Proxy API Management Center",abbr:"CPAMC"},BK={title:"CLI Proxy API",subtitle:"管理中心"},zK={title:"正在自动登录...",message:"正在使用本地保存的连接信息尝试连接服务器"},qK={subtitle:"请输入连接信息以访问管理界面",connection_title:"连接地址",connection_current:"当前地址",connection_auto_hint:"系统将自动使用当前访问地址进行连接",custom_connection_label:"自定义连接地址:",custom_connection_placeholder:"例如: https://example.com:8317",custom_connection_hint:"默认使用当前访问地址,若需要可手动输入其他地址。",use_current_address:"使用当前地址",remember_password_label:"记住密码",management_key_label:"管理密钥:",management_key_placeholder:"请输入管理密钥",connect_button:"连接",submit_button:"登录",submitting:"连接中...",error_title:"登录失败",error_required:"请填写完整的连接信息",error_invalid:"连接失败,请检查地址和密钥",error_network:"网络连接失败,请检查网络或服务器地址",error_timeout:"连接超时,服务器无响应",error_unauthorized:"认证失败,管理密钥无效",error_forbidden:"访问被拒绝,权限不足",error_not_found:"服务器地址无效或管理接口未启用",error_server:"服务器内部错误,请稍后重试",error_cors:"跨域请求被阻止,请检查服务器配置",error_ssl:"SSL/TLS 证书验证失败"},KK={check_connection:"检查连接",refresh_all:"刷新全部",logout:"登出"},HK={title:"连接信息",server_address:"服务器地址:",management_key:"管理密钥:",status:"连接状态:"},VK={dashboard:"仪表盘",basic_settings:"基础设置",api_keys:"API 密钥",ai_providers:"AI 提供商",auth_files:"认证文件",oauth:"OAuth 登录",quota_management:"配额管理",usage_stats:"使用统计",config_management:"配置面板",logs:"日志查看",system_info:"中心信息"},WK={title:"仪表盘",subtitle:"欢迎使用 CLI Proxy API 管理中心",openai_providers:"OpenAI 提供商",quick_actions:"快捷操作",current_config:"当前配置",management_keys:"管理密钥",provider_keys_detail:"G:{{gemini}} C:{{codex}} Cl:{{claude}} O:{{openai}}",oauth_credentials:"OAuth 凭证",usage_overview:"使用概览",total_requests:"总请求数",total_tokens:"总 Token 数",rpm_30min:"RPM (30分钟)",tpm_30min:"TPM (30分钟)",models_used:"使用模型数",no_usage_data:"暂无使用数据",view_detailed_usage:"查看详细统计",edit_settings:"编辑设置",routing_strategy:"路由策略",available_models:"可用模型",available_models_desc:"所有提供商的模型总数",welcome_back:"欢迎回来",greeting_morning:"早上好",greeting_afternoon:"下午好",greeting_evening:"晚上好",greeting_night:"夜深了",caring_morning:"新的一天,准备大展身手吧。",caring_afternoon:"稳步推进中,继续加油。",caring_evening:"今天辛苦了,收尾工作做好哦。",caring_night:"夜深了,别忘了早些休息。",system_overview:"系统概览"},GK={title:"基础设置",debug_title:"调试模式",debug_enable:"启用调试模式",proxy_title:"代理设置",proxy_url_label:"代理 URL:",proxy_url_placeholder:"例如: socks5://user:pass@127.0.0.1:1080/",proxy_update:"更新",proxy_clear:"清空",retry_title:"请求重试",retry_count_label:"重试次数:",retry_update:"更新",quota_title:"配额超出行为",quota_switch_project:"自动切换项目",quota_switch_preview:"切换到预览模型",usage_statistics_title:"使用统计",usage_statistics_enable:"启用使用统计",logging_title:"日志记录",logging_to_file_enable:"启用日志记录到文件",logs_max_total_size_title:"日志容量限制",logs_max_total_size_label:"日志总大小上限 (MB):",logs_max_total_size_hint:"设置为 0 表示不限制。",logs_max_total_size_update:"更新",request_log_title:"请求日志",request_log_enable:"启用请求日志",request_log_warning:"仅在需要排查问题时开启,日常请保持关闭。",force_model_prefix_enable:"强制模型前缀",ws_auth_title:"WebSocket 鉴权",ws_auth_enable:"启用 /ws/* 鉴权",routing_title:"路由策略",routing_strategy_label:"路由策略:",routing_strategy_hint:"round-robin 为轮询,fill-first 为优先填充。",routing_strategy_update:"更新",routing_strategy_round_robin:"round-robin (轮询)",routing_strategy_fill_first:"fill-first (优先填充)"},$K={title:"API 密钥管理",proxy_auth_title:"代理服务认证密钥",add_button:"添加密钥",empty_title:"暂无API密钥",empty_desc:"点击上方按钮添加第一个密钥",item_title:"API密钥",add_modal_title:"添加API密钥",add_modal_key_label:"API密钥:",add_modal_key_placeholder:"请输入API密钥",edit_modal_title:"编辑API密钥",edit_modal_key_label:"API密钥:",delete_confirm:"确定要删除这个API密钥吗?"},XK=JSON.parse('{"title":"AI 提供商配置","gemini_title":"Gemini API 密钥","gemini_add_button":"添加密钥","gemini_empty_title":"暂无Gemini密钥","gemini_empty_desc":"点击上方按钮添加第一个密钥","gemini_item_title":"Gemini密钥","gemini_add_modal_title":"添加Gemini API密钥","gemini_add_modal_key_label":"API密钥","gemini_add_modal_key_placeholder":"输入 Gemini API 密钥","gemini_add_modal_key_hint":"逐条输入密钥,可同时指定可选 Base URL。","gemini_keys_add_btn":"添加密钥","gemini_base_url_label":"Base URL (可选)","gemini_base_url_placeholder":"例如: https://generativelanguage.googleapis.com","gemini_add_modal_proxy_label":"代理 URL (可选):","gemini_add_modal_proxy_placeholder":"例如: socks5://proxy.example.com:1080","gemini_models_label":"自定义模型 (可选):","gemini_models_hint":"为空表示使用全部模型;可填写 name[, alias] 以限制或重命名模型。","gemini_models_add_btn":"添加模型","gemini_models_fetch_button":"从 /v1beta/models 获取","gemini_models_fetch_title":"从 Gemini /v1beta/models 选择模型","gemini_models_fetch_hint":"按 Gemini API 规范请求 GET /v1beta/models;默认附带 x-goog-api-key(来自 API Key 字段)并合并你配置的自定义请求头。","gemini_models_fetch_url_label":"请求地址","gemini_models_fetch_refresh":"重新获取","gemini_models_fetch_loading":"正在从 Gemini /v1beta/models 获取模型列表...","gemini_models_fetch_empty":"未获取到模型,请检查 Base URL、API Key 或请求头。","gemini_models_fetch_error":"获取 Gemini 模型失败","gemini_models_fetch_apply":"添加所选模型","model_discovery_select_visible":"全选当前列表","model_discovery_clear_selection":"清空已选","model_discovery_selected_count":"已选 {{count}} 项","gemini_models_search_label":"搜索模型","gemini_models_search_placeholder":"按名称、别名或描述筛选","gemini_models_search_empty":"没有匹配的模型,请更换关键字试试。","gemini_models_fetch_added":"已添加 {{count}} 个新模型","gemini_models_count":"模型数量","gemini_edit_modal_title":"编辑Gemini API密钥","gemini_edit_modal_key_label":"API密钥:","gemini_delete_confirm":"确定要删除这个Gemini密钥吗?","excluded_models_label":"排除的模型 (可选):","excluded_models_placeholder":"用逗号或换行分隔,例如: gemini-1.5-pro, gemini-1.5-flash","excluded_models_hint":"留空表示不过滤;保存时会自动去重并忽略空白。","excluded_models_count":"排除 {{count}} 个模型","prefix_label":"前缀 (可选):","prefix_placeholder":"例如: team-a","prefix_hint":"设置后可用 prefix/<model> 选择该条目。","priority_label":"优先级 (可选):","priority_hint":"数值越大优先级越高;留空表示默认(0)。","config_toggle_label":"启用","config_disabled_badge":"已停用","codex_title":"Codex API 配置","codex_add_button":"添加配置","codex_empty_title":"暂无Codex配置","codex_empty_desc":"点击上方按钮添加第一个配置","codex_item_title":"Codex配置","codex_add_modal_title":"添加Codex API配置","codex_add_modal_key_label":"API密钥:","codex_add_modal_key_placeholder":"请输入Codex API密钥","codex_add_modal_url_label":"Base URL (必填):","codex_add_modal_url_placeholder":"例如: https://api.example.com","codex_add_modal_proxy_label":"代理 URL (可选):","codex_add_modal_proxy_placeholder":"例如: socks5://proxy.example.com:1080","codex_websockets_label":"Websockets","codex_websockets_hint":"开启 Responses API 的 websocket 传输。","codex_models_label":"自定义模型 (可选):","codex_models_hint":"为空表示使用全部模型;可填写 name[, alias] 以限制或重命名模型。","codex_models_add_btn":"添加模型","codex_models_fetch_button":"从 /v1/models 获取","codex_models_fetch_title":"从 /v1/models 选择模型","codex_models_fetch_hint":"使用上方 Base URL 调用 /v1/models 端点,附带 API Key(Bearer)与自定义请求头。","codex_models_fetch_url_label":"请求地址","codex_models_fetch_refresh":"重新获取","codex_models_fetch_loading":"正在从 /v1/models 获取模型列表...","codex_models_fetch_empty":"未获取到模型,请检查端点或鉴权信息。","codex_models_fetch_error":"获取模型失败","codex_models_fetch_apply":"添加所选模型","codex_models_search_label":"搜索模型","codex_models_search_placeholder":"按名称、别名或描述筛选","codex_models_search_empty":"没有匹配的模型,请更换关键字试试。","codex_models_fetch_added":"已添加 {{count}} 个新模型","codex_models_count":"模型数量","codex_edit_modal_title":"编辑Codex API配置","codex_edit_modal_key_label":"API密钥:","codex_edit_modal_url_label":"Base URL (必填):","codex_edit_modal_proxy_label":"代理 URL (可选):","codex_delete_confirm":"确定要删除这个Codex配置吗?","claude_title":"Claude API 配置","claude_add_button":"添加配置","claude_empty_title":"暂无Claude配置","claude_empty_desc":"点击上方按钮添加第一个配置","claude_item_title":"Claude配置","claude_add_modal_title":"添加Claude API配置","claude_add_modal_key_label":"API密钥:","claude_add_modal_key_placeholder":"请输入Claude API密钥","claude_add_modal_url_label":"Base URL (可选):","claude_add_modal_url_placeholder":"例如: https://api.anthropic.com","claude_add_modal_proxy_label":"代理 URL (可选):","claude_add_modal_proxy_placeholder":"例如: socks5://proxy.example.com:1080","claude_edit_modal_title":"编辑Claude API配置","claude_edit_modal_key_label":"API密钥:","claude_edit_modal_url_label":"Base URL (可选):","claude_edit_modal_proxy_label":"代理 URL (可选):","claude_delete_confirm":"确定要删除这个Claude配置吗?","claude_models_label":"自定义模型 (可选):","claude_models_hint":"为空表示使用全部模型;可填写 name[, alias] 以限制或重命名模型。","claude_models_add_btn":"添加模型","claude_models_count":"模型数量","claude_models_fetch_button":"从 /v1/models 获取","claude_models_fetch_title":"从 Claude /v1/models 选择模型","claude_models_fetch_hint":"按 Anthropic 规范请求 GET /v1/models,默认附带 x-api-key 与 anthropic-version: 2023-06-01;也会合并你配置的自定义请求头。","claude_models_fetch_url_label":"请求地址","claude_models_fetch_refresh":"重新获取","claude_models_fetch_loading":"正在从 Claude /v1/models 获取模型列表...","claude_models_fetch_empty":"未获取到模型,请检查 Base URL、API Key 或请求头。","claude_models_fetch_error":"获取 Claude 模型失败","claude_models_fetch_apply":"添加所选模型","claude_models_search_label":"搜索模型","claude_models_search_placeholder":"按名称、别名或描述筛选","claude_models_search_empty":"没有匹配的模型,请更换关键字试试。","claude_models_fetch_added":"已添加 {{count}} 个新模型","claude_test_title":"连通性测试","claude_test_hint":"按 Anthropic 规范向 /v1/messages 发送测试请求,验证当前配置是否可用。","claude_test_select_placeholder":"从当前模型列表选择","claude_test_select_empty":"当前未配置模型,请先添加模型","claude_test_action":"测试","claude_test_running":"正在发送 Claude 测试请求...","claude_test_timeout":"测试请求超时({{seconds}}秒)。","claude_test_success":"测试成功,Claude 模型可用。","claude_test_failed":"测试失败","claude_test_key_required":"请先填写 Claude API Key 或在自定义请求头中设置 x-api-key","claude_test_model_required":"请选择要测试的模型","claude_test_endpoint_invalid":"无法构造有效的 Claude /v1/messages 请求地址","claude_cloak_title":"请求伪装 (可选):","claude_cloak_toggle_label":"启用","claude_cloak_toggle_aria":"切换请求伪装","claude_cloak_hint":"对非 Claude Code 客户端,将请求伪装成 Claude Code CLI 的格式。","claude_cloak_mode_label":"模式:","claude_cloak_mode_hint":"auto: 仅对非 Claude Code 客户端伪装;always: 总是伪装;never: 从不伪装。","claude_cloak_mode_auto":"自动(仅非 Claude Code)","claude_cloak_mode_always":"总是","claude_cloak_mode_never":"从不","claude_cloak_strict_label":"严格模式:","claude_cloak_strict_hint":"启用后会移除用户 system 消息,仅保留 Claude Code 提示词。","claude_cloak_sensitive_words_label":"敏感词 (可选):","claude_cloak_sensitive_words_placeholder":"用逗号或换行分隔,例如: internal-project","claude_cloak_sensitive_words_hint":"这些词会被插入零宽字符进行混淆。","claude_cloak_sensitive_words_count":"敏感词","vertex_title":"Vertex API 配置","vertex_add_button":"添加配置","vertex_empty_title":"暂无Vertex配置","vertex_empty_desc":"点击上方按钮添加第一个配置","vertex_item_title":"Vertex配置","vertex_add_modal_title":"添加Vertex API配置","vertex_add_modal_key_label":"API密钥:","vertex_add_modal_key_placeholder":"请输入Vertex API密钥","vertex_add_modal_url_label":"Base URL:","vertex_add_modal_url_placeholder":"例如: https://example.com/api","vertex_add_modal_proxy_label":"代理 URL (可选):","vertex_add_modal_proxy_placeholder":"例如: socks5://proxy.example.com:1080","vertex_edit_modal_title":"编辑Vertex API配置","vertex_edit_modal_key_label":"API密钥:","vertex_edit_modal_url_label":"Base URL:","vertex_edit_modal_proxy_label":"代理 URL (可选):","vertex_delete_confirm":"确定要删除这个Vertex配置吗?","vertex_models_label":"模型别名:","vertex_models_add_btn":"添加映射","vertex_models_count":"别名数量","ampcode_title":"Amp CLI 集成 (ampcode)","ampcode_modal_title":"配置 Ampcode","ampcode_upstream_url_label":"Upstream URL","ampcode_upstream_url_placeholder":"例如: https://ampcode.com","ampcode_upstream_url_hint":"可选;留空表示使用默认/自动发现的控制平面地址。","ampcode_upstream_api_key_label":"Upstream API Key (Amp官方)","ampcode_upstream_api_key_placeholder":"输入 sk-amp...(留空不修改)","ampcode_upstream_api_key_hint":"可选;留空不会修改当前Amp官方密钥,需清除请点击下方按钮。","ampcode_upstream_api_key_current":"当前Amp官方密钥: {{key}}","ampcode_clear_upstream_api_key":"清除官方密钥","ampcode_clear_upstream_api_key_confirm":"确定要清除 Ampcode 的 upstream API key(Amp官方)吗?","ampcode_upstream_api_keys_label":"多上游 API Key 路由","ampcode_upstream_api_keys_hint":"为指定客户端 API Key 绑定不同的 Amp 上游 API Key;客户端 key 可用逗号或换行分隔。","ampcode_upstream_api_keys_add_btn":"添加多上游映射","ampcode_upstream_api_keys_upstream_placeholder":"上游 API Key(sk-amp-...)","ampcode_upstream_api_keys_clients_placeholder":"客户端 API Keys,用逗号或换行分隔","ampcode_upstream_api_keys_item_title":"上游映射 #{{index}}","ampcode_upstream_api_keys_count":"多上游映射","ampcode_force_model_mappings_label":"强制应用模型映射","ampcode_force_model_mappings_hint":"开启后,模型映射将覆盖本地 API Key 可用性判断。","ampcode_model_mappings_label":"模型映射 (from → to)","ampcode_model_mappings_hint":"用于重写 Amp 请求中的模型名称;留空表示不做映射。","ampcode_model_mappings_add_btn":"添加映射","ampcode_model_mappings_from_placeholder":"from 模型(原始)","ampcode_model_mappings_to_placeholder":"to 模型(目标)","ampcode_model_mappings_count":"映射数量","ampcode_lists_overwrite_title":"覆盖列表配置","ampcode_lists_overwrite_confirm":"当前未成功加载服务器已有多上游/模型映射配置,继续保存可能覆盖或清空这些列表,是否继续?","ampcode_mappings_overwrite_confirm":"当前未成功加载服务器已有映射,继续保存可能覆盖或清空已有映射,是否继续?","openai_title":"OpenAI 兼容提供商","openai_add_button":"添加提供商","openai_empty_title":"暂无OpenAI兼容提供商","openai_empty_desc":"点击上方按钮添加第一个提供商","openai_add_modal_title":"添加OpenAI兼容提供商","openai_add_modal_name_label":"提供商名称:","openai_add_modal_name_placeholder":"例如: openrouter","openai_add_modal_url_label":"Base URL:","openai_add_modal_url_placeholder":"例如: https://openrouter.ai/api/v1","openai_add_modal_keys_label":"API密钥","openai_edit_modal_keys_label":"API密钥","openai_keys_hint":"每个密钥可搭配一个可选代理地址,更便于管理。","openai_keys_add_btn":"添加密钥","openai_key_placeholder":"输入 sk- 开头的密钥","openai_proxy_placeholder":"可选代理 URL (如 socks5://...)","openai_add_modal_models_label":"模型列表 (name[, alias] 每行一个):","openai_models_hint":"示例:gpt-4o-mini 或 moonshotai/kimi-k2:free, kimi-k2","openai_model_name_placeholder":"模型名称,如 moonshotai/kimi-k2:free","openai_model_alias_placeholder":"模型别名 (可选)","openai_models_add_btn":"添加模型","openai_models_fetch_button":"从 /models 获取","openai_models_fetch_title":"从 /models 选择模型","openai_models_fetch_hint":"使用上方 Base URL 调用 /models 端点,附带首个 API Key(Bearer)与自定义请求头。","openai_models_fetch_url_label":"请求地址","openai_models_fetch_refresh":"重新获取","openai_models_fetch_loading":"正在从 /models 获取模型列表...","openai_models_fetch_empty":"未获取到模型,请检查端点或鉴权信息。","openai_models_fetch_error":"获取模型失败","openai_models_fetch_back":"返回编辑","openai_models_fetch_apply":"添加所选模型","openai_models_search_label":"搜索模型","openai_models_search_placeholder":"按名称、别名或描述筛选","openai_models_search_empty":"没有匹配的模型,请更换关键字试试。","openai_models_fetch_invalid_url":"请先填写有效的 Base URL","openai_models_fetch_added":"已添加 {{count}} 个新模型","openai_edit_modal_title":"编辑OpenAI兼容提供商","openai_edit_modal_name_label":"提供商名称:","openai_edit_modal_url_label":"Base URL:","openai_edit_modal_models_label":"模型列表 (name[, alias] 每行一个):","openai_delete_confirm":"确定要删除这个OpenAI提供商吗?","openai_keys_count":"密钥数量","openai_models_count":"模型数量","openai_test_title":"连通性测试","openai_test_hint":"使用当前配置向 /chat/completions 请求,验证是否可用。","openai_test_model_placeholder":"选择或输入要测试的模型","openai_test_action":"发送测试","openai_test_running":"正在发送测试请求...","openai_test_timeout":"测试请求超时({{seconds}}秒)。","openai_test_success":"测试成功,模型可用。","openai_test_failed":"测试失败","openai_test_select_placeholder":"从当前模型列表选择","openai_test_select_empty":"当前未配置模型,请先添加模型","openai_test_single_action":"测试","openai_test_all_action":"一键测试全部密钥","openai_test_all_hint":"测试所有密钥的连接状态","openai_test_all_success":"所有 {{count}} 个密钥测试通过","openai_test_all_failed":"所有 {{count}} 个密钥测试失败","openai_test_all_partial":"测试完成:{{success}} 个通过,{{failed}} 个失败"}'),QK={title:"认证文件管理",title_section:"认证文件",description:"这里集中管理 CLI Proxy 支持的所有 JSON 认证文件(如 Qwen、Gemini、Vertex 等),上传后即可在运行时启用相应的 AI 服务。",upload_button:"上传文件",delete_all_button:"删除全部",empty_title:"暂无认证文件",empty_desc:"点击上方按钮上传第一个文件",search_empty_title:"没有匹配的配置文件",search_empty_desc:"请调整筛选条件或清空搜索关键字再试一次。",file_size:"大小",file_modified:"修改时间",health_status_label:"健康状态",health_status_healthy:"健康",health_status_warning:"警告",health_status_disabled:"已停用",health_status_unknown:"未知",health_status_no_message:"暂无状态说明",last_refresh_label:"最近刷新",refresh_not_available:"暂无",refresh_just_now:"刚刚",download_button:"下载",delete_button:"删除",delete_confirm:"确定要删除文件",delete_all_confirm:"确定要删除所有认证文件吗?此操作不可恢复!",delete_filtered_confirm:"确定要删除筛选出的 {{type}} 认证文件吗?此操作不可恢复!",delete_problem_button:"删除问题凭证",delete_problem_button_with_type:"删除 {{type}} 问题凭证",delete_problem_confirm:"确定要删除所有有问题的认证文件吗?此操作不可恢复!",delete_problem_filtered_confirm:"确定要删除筛选出的有问题的 {{type}} 认证文件吗?此操作不可恢复!",upload_error_json:"只能上传JSON文件",upload_error_size:"文件大小不能超过 {{maxSize}}",upload_success:"文件上传成功",download_success:"文件下载成功",delete_success:"文件删除成功",delete_all_success:"成功删除",delete_filtered_success:"成功删除 {{count}} 个 {{type}} 认证文件",delete_filtered_partial:"{{type}} 认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个",delete_filtered_none:"当前筛选类型 ({{type}}) 下没有可删除的认证文件",delete_problem_success:"成功删除 {{count}} 个有问题的认证文件",delete_problem_filtered_success:"成功删除 {{count}} 个有问题的 {{type}} 认证文件",delete_problem_partial:"有问题认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个",delete_problem_filtered_partial:"有问题的 {{type}} 认证文件删除完成,成功 {{success}} 个,失败 {{failed}} 个",delete_problem_none:"当前没有可删除的有问题认证文件",delete_problem_filtered_none:"当前筛选类型 ({{type}}) 下没有可删除的有问题认证文件",files_count:"个文件",pagination_prev:"上一页",pagination_next:"下一页",pagination_info:"第 {{current}} / {{total}} 页 · 共 {{count}} 个文件",search_label:"搜索配置文件",search_placeholder:"输入名称、类型或提供方关键字,支持 * 通配",problem_filter_label:"问题筛选",problem_filter_only:"仅显示有问题凭证",display_options_label:"显示选项",compact_mode_label:"简略模式",sort_label:"排序",sort_default:"默认",sort_az:"A-Z 名称",sort_priority:"优先级",priority_display:"优先级",page_size_label:"单页数量",page_size_unit:"个/页",view_mode_paged:"按页显示",view_mode_all:"显示全部",too_many_files_warning:"您的凭证总数过多,全部加载会导致页面卡顿,请保持单页浏览。",filter_all:"全部",filter_qwen:"Qwen",filter_gemini:"Gemini","filter_gemini-cli":"GeminiCLI",filter_kimi:"Kimi",filter_aistudio:"AIStudio",filter_claude:"Claude",filter_codex:"Codex",filter_antigravity:"Antigravity",filter_iflow:"iFlow",filter_vertex:"Vertex",filter_empty:"空文件",filter_unknown:"其他",type_qwen:"Qwen",type_gemini:"Gemini","type_gemini-cli":"GeminiCLI",type_kimi:"Kimi",type_aistudio:"AIStudio",type_claude:"Claude",type_codex:"Codex",type_antigravity:"Antigravity",type_iflow:"iFlow",type_vertex:"Vertex",type_empty:"空文件",type_unknown:"其他",type_virtual:"虚拟认证文件",models_button:"模型",models_title:"支持的模型",models_loading:"正在加载模型列表...",models_empty:"该凭证暂无可用模型",models_empty_desc:"该认证凭证可能尚未被服务器加载或没有绑定任何模型",models_unsupported:"当前版本不支持此功能",models_unsupported_desc:"请更新 CLI Proxy API 到最新版本后重试",models_excluded_badge:"已禁用",models_excluded_hint:"此 OAuth 模型已被禁用",status_toggle_label:"启用",status_enabled_success:'已启用 "{{name}}"',status_disabled_success:'已停用 "{{name}}"',batch_status_success:"已成功更新 {{count}} 个文件",batch_status_partial:"成功 {{success}} 个,失败 {{failed}} 个",batch_delete_title:"删除选中文件",batch_delete_confirm:"确定要删除 {{count}} 个文件吗?",batch_selected:"已选 {{count}} 项",batch_select_all:"全选",batch_select_page:"全选当前页",batch_select_filtered:"全选筛选结果",batch_invert_page:"反选当前页",batch_deselect:"取消选择",batch_download:"下载选中",batch_download_success:"已开始下载 {{count}} 个文件",batch_download_partial:"下载完成:成功 {{success}} 个,失败 {{failed}} 个",batch_enable:"启用",batch_disable:"禁用",prefix_proxy_button:"认证文件详情 / 编辑",auth_field_editor_title:"认证文件详情 / 编辑 - {{name}}",prefix_proxy_loading:"正在加载认证文件...",prefix_proxy_info_label:"认证文件信息(info)",prefix_proxy_source_label:"认证文件 JSON(预览)",prefix_label:"前缀(prefix)",proxy_url_label:"代理 URL(proxy_url)",prefix_placeholder:"",proxy_url_placeholder:"socks5://username:password@proxy_ip:port/",priority_label:"优先级(priority)",priority_placeholder:"例如: 10 或 -1",priority_hint:"仅支持整数;非法值会被忽略。数值越大优先级越高。",excluded_models_label:"排除模型(excluded_models)",excluded_models_placeholder:"用逗号或换行分隔,例如: model-a, gpt-5-*, *-preview",excluded_models_hint:"保存为数组;会自动 trim、小写、去重并排序。",disable_cooling_label:"禁用冷却(disable_cooling)",disable_cooling_placeholder:"例如: true / false / 1 / 0",disable_cooling_hint:"支持布尔值、0/非0 数字或字符串 true/false/1/0;无法解析时忽略。",note_label:"备注(note)",note_placeholder:"输入备注信息,例如:张三的账号",note_hint:"可选,用于标记凭证用途或归属;留空则不写入。",note_display:"备注",prefix_proxy_invalid_json:"该认证文件不是 JSON 对象,无法编辑字段。",prefix_proxy_saved_success:'已更新认证文件 "{{name}}"',quota_refresh_success:'已刷新 "{{name}}" 的额度',quota_refresh_failed:'刷新 "{{name}}" 的额度失败:{{message}}'},YK={title:"Antigravity 额度",empty_title:"暂无 Antigravity 认证",empty_desc:"上传 Antigravity 认证文件后即可查看额度。",idle:"点击此处刷新额度",loading:"正在加载额度...",load_failed:"额度获取失败:{{message}}",missing_auth_index:"认证文件缺少 auth_index",empty_models:"暂无额度数据",refresh_button:"刷新额度",fetch_all:"获取全部"},JK={title:"Claude 额度",empty_title:"暂无 Claude OAuth 认证",empty_desc:"使用 Claude OAuth 登录后即可查看额度。",idle:"点击此处刷新额度",loading:"正在加载额度...",load_failed:"额度获取失败:{{message}}",missing_auth_index:"认证文件缺少 auth_index",empty_windows:"暂无额度数据",refresh_button:"刷新额度",fetch_all:"获取全部",five_hour:"5 小时限额",seven_day:"7 天限额",seven_day_oauth_apps:"7 天 OAuth 应用",seven_day_opus:"7 天 Opus",seven_day_sonnet:"7 天 Sonnet",seven_day_cowork:"7 天 Cowork",iguana_necktie:"Iguana Necktie",extra_usage_label:"额外用量",plan_label:"套餐",plan_unknown:"未知",plan_free:"免费版",plan_pro:"专业版",plan_max:"Max",plan_max5:"Max 5x",plan_max20:"Max 20x"},ZK={title:"Codex 额度",empty_title:"暂无 Codex 认证",empty_desc:"上传 Codex 认证文件后即可查看额度。",idle:"点击此处刷新额度",loading:"正在加载额度...",load_failed:"额度获取失败:{{message}}",missing_auth_index:"认证文件缺少 auth_index",missing_account_id:"Codex 凭证缺少 ChatGPT 账号 ID",empty_windows:"暂无额度数据",no_access:"该凭证已无 Codex 访问权限(free)。",refresh_button:"刷新额度",fetch_all:"获取全部",primary_window:"5 小时限额",secondary_window:"周限额",code_review_primary_window:"代码审查 5 小时限额",code_review_secondary_window:"代码审查周限额",additional_primary_window:"{{name}} 5 小时限额",additional_secondary_window:"{{name}} 周限额",plan_label:"套餐",plan_plus:"Plus",plan_team:"Team",plan_free:"Free",plan_pro:"Pro"},eH={title:"Gemini CLI 额度",empty_title:"暂无 Gemini CLI 认证",empty_desc:"上传 Gemini CLI 认证文件后即可查看额度。",idle:"点击此处刷新额度",loading:"正在加载额度...",load_failed:"额度获取失败:{{message}}",missing_auth_index:"认证文件缺少 auth_index",missing_project_id:"Gemini CLI 凭证缺少 Project ID",empty_buckets:"暂无额度数据",refresh_button:"刷新额度",fetch_all:"获取全部",remaining_amount:"剩余 {{count}}",tier_label:"层级",tier_free:"免费版",tier_legacy:"旧版",tier_standard:"标准版",tier_pro:"Pro",tier_ultra:"Ultra",credit_label:"Google One AI 积分",credit_amount:"{{count}} 积分"},tH={title:"Kimi 额度",empty_title:"暂无 Kimi 认证",empty_desc:"上传 Kimi 认证文件后即可查看额度。",idle:"点击此处刷新额度",loading:"正在加载额度...",load_failed:"额度获取失败:{{message}}",missing_auth_index:"认证文件缺少 auth_index",empty_data:"暂无额度数据",refresh_button:"刷新额度",fetch_all:"获取全部",weekly_limit:"周限额",limit_window:"{{duration}} 限额",limit_index:"限额 #{{index}}",reset_hint:"{{hint}} 后重置"},nH={title:"Vertex JSON 登录",description:"上传 Google 服务账号 JSON,使用 CLI vertex-import 同步规则写入 auth-dir/vertex-<project>.json。",location_label:"目标区域 (可选)",location_placeholder:"us-central1",location_hint:"留空表示使用默认区域 us-central1。",file_label:"服务账号密钥 JSON",file_hint:"仅支持 Google Cloud service account key JSON 文件,私钥会自动规范化。",file_placeholder:"尚未选择文件",choose_file:"选择文件",import_button:"导入 Vertex 凭证",file_required:"请先选择 .json 凭证文件",success:"Vertex 凭证导入成功",result_title:"凭证已保存",result_project:"项目 ID",result_email:"服务账号",result_location:"区域",result_file:"存储文件"},iH={title:"OAuth 模型禁用",description:"按提供商分列展示,点击卡片编辑或删除;支持 * 通配符,范围跟随上方的配置文件过滤标签。",add:"新增禁用",add_title:"新增提供商模型禁用",edit_title:"编辑 {{provider}} 的模型禁用",refresh:"刷新",refreshing:"刷新中...",provider_label:"提供商",provider_auto:"跟随当前过滤",provider_placeholder:"例如 gemini-cli / openai",provider_hint:"默认选中当前筛选的提供商,也可直接输入或选择其他名称。",models_label:"禁用的模型",models_loading:"正在加载模型列表...",models_unsupported:"当前 CPA 版本不支持获取模型列表。",models_loaded:"已加载 {{count}} 个模型,勾选要禁用的模型。",no_models_available:"该提供商暂无可用模型列表。",save:"保存/更新",saving:"正在保存...",save_success:"模型禁用已更新",save_failed:"更新模型禁用失败",delete:"删除提供商",delete_confirm:"确定要删除 {{provider}} 的模型禁用吗?",delete_success:"已删除该提供商的模型禁用",delete_failed:"删除模型禁用失败",deleting:"正在删除...",no_models:"未配置禁用模型",model_count:"禁用 {{count}} 个模型",list_empty_all:"暂无任何提供商的模型禁用,点击“新增禁用”创建。",list_empty_filtered:"当前筛选下没有禁用项,点击“新增禁用”添加。",disconnected:"请先连接服务器以查看模型禁用",load_failed:"加载模型禁用失败",provider_required:"请先填写提供商名称",scope_all:"当前范围:全局(显示所有提供商)",scope_provider:"当前范围:{{provider}}",upgrade_required:"当前 CPA 版本不支持 OAuth 模型禁用,请升级 CPA 版本",upgrade_required_title:"需要升级 CPA 版本",upgrade_required_desc:"当前服务器版本不支持获取 OAuth 模型禁用功能,请升级到最新版本的 CPA(CLI Proxy API)后重试。"},sH={title:"OAuth 模型别名",add:"新增别名",add_title:"新增提供商模型别名",provider_label:"提供商",provider_placeholder:"例如 gemini-cli / vertex",provider_hint:"默认选中当前筛选的提供商,也可直接输入或选择其他名称。",model_source_loading:"正在加载模型列表...",model_source_unsupported:"当前 CPA 版本不支持获取模型列表(仍可手动输入)。",model_source_loaded:"已加载 {{count}} 个模型,可在“原模型名称”中下拉选择;也可手动输入。留空保存将删除该提供商记录;开启“保留原名”会在保留原模型名的同时新增别名。",alias_label:"模型别名",alias_name_placeholder:"原模型名称",alias_placeholder:"别名 (必填)",alias_fork_label:"保留原名",add_alias:"添加别名",save:"保存/更新",save_success:"模型别名已更新",save_failed:"更新模型别名失败",delete:"删除提供商",delete_confirm:"确定要删除 {{provider}} 的模型别名吗?",delete_link_title:"取消链接",delete_link_confirm:"确定取消 <code>{{sourceModel}}</code>({{provider}})到别名 <code>{{alias}}</code> 的映射?",delete_alias_title:"删除别名",delete_alias_confirm:"确定删除别名 <code>{{alias}}</code> 并取消所有关联模型的映射?",delete_success:"已删除该提供商的模型别名",delete_failed:"删除模型别名失败",no_models:"未配置模型别名",model_count:"{{count}} 条别名",list_empty_all:"暂无任何提供商的模型别名,点击“新增别名”创建。",chart_title:"全部映射概览",diagram_providers:"提供商",diagram_source_models:"源模型",diagram_aliases:"别名",diagram_expand:"展开",diagram_collapse:"收起",diagram_add_alias:"添加别名",diagram_rename:"重命名",diagram_rename_alias_title:"重命名别名",diagram_rename_alias_label:"新别名名称",diagram_rename_placeholder:"输入别名名称...",diagram_delete_link:"取消链接 {{provider}} / {{name}}",diagram_delete_alias:"删除别名",diagram_please_enter_alias:"请输入别名名称。",diagram_alias_exists:"该别名已存在。",diagram_add_alias_title:"添加别名",diagram_add_alias_label:"别名名称",diagram_add_placeholder:"输入新别名名称...",diagram_rename_btn:"重命名",diagram_add_btn:"添加",diagram_settings:"设置",diagram_settings_title:"别名设置 — {{alias}}",diagram_settings_source_title:"源模型设置",diagram_settings_empty:"该别名暂无映射。",diagram_tap_hint:"触摸设备上:先点选源模型,再点选别名即可建立映射。",view_mode:"视图模式",view_mode_diagram:"概览",view_mode_list:"管理",provider_required:"请先填写提供商名称",upgrade_required:"当前 CPA 版本不支持模型别名功能,请升级 CPA 版本",upgrade_required_title:"需要升级 CPA 版本",upgrade_required_desc:"当前服务器版本不支持 OAuth 模型别名功能,请升级到最新版本的 CPA(CLI Proxy API)后重试。"},aH={codex_oauth_title:"Codex OAuth",codex_oauth_button:"开始 Codex 登录",codex_oauth_hint:"通过 OAuth 流程登录 Codex 服务,自动获取并保存认证文件。",codex_oauth_url_label:"授权链接:",codex_open_link:"打开链接",codex_copy_link:"复制链接",codex_oauth_status_waiting:"等待认证中...",codex_oauth_status_success:"认证成功!",codex_oauth_status_error:"认证失败:",codex_oauth_start_error:"启动 Codex OAuth 失败:",codex_oauth_polling_error:"检查认证状态失败:",anthropic_oauth_title:"Anthropic OAuth",anthropic_oauth_button:"开始 Anthropic 登录",anthropic_oauth_hint:"通过 OAuth 流程登录 Anthropic (Claude) 服务,自动获取并保存认证文件。",anthropic_oauth_url_label:"授权链接:",anthropic_open_link:"打开链接",anthropic_copy_link:"复制链接",anthropic_oauth_status_waiting:"等待认证中...",anthropic_oauth_status_success:"认证成功!",anthropic_oauth_status_error:"认证失败:",anthropic_oauth_start_error:"启动 Anthropic OAuth 失败:",anthropic_oauth_polling_error:"检查认证状态失败:",antigravity_oauth_title:"Antigravity OAuth",antigravity_oauth_button:"开始 Antigravity 登录",antigravity_oauth_hint:"通过 OAuth 流程登录 Antigravity(Google 账号)服务,自动获取并保存认证文件。",antigravity_oauth_url_label:"授权链接:",antigravity_open_link:"打开链接",antigravity_copy_link:"复制链接",antigravity_oauth_status_waiting:"等待认证中...",antigravity_oauth_status_success:"认证成功!",antigravity_oauth_status_error:"认证失败:",antigravity_oauth_start_error:"启动 Antigravity OAuth 失败:",antigravity_oauth_polling_error:"检查认证状态失败:",gemini_cli_oauth_title:"Gemini CLI OAuth",gemini_cli_oauth_button:"开始 Gemini CLI 登录",gemini_cli_oauth_hint:"通过 OAuth 流程登录 Google Gemini CLI 服务,自动获取并保存认证文件。",gemini_cli_project_id_label:"Google Cloud 项目 ID (可选):",gemini_cli_project_id_placeholder:"留空将自动选择第一个可用项目",gemini_cli_project_id_hint:"可选填写项目 ID。如不填写,系统将自动选择您账号下的第一个可用项目。输入 ALL 可获取全部项目。",gemini_cli_project_id_required:"请填写 Google Cloud 项目 ID。",gemini_cli_oauth_url_label:"授权链接:",gemini_cli_open_link:"打开链接",gemini_cli_copy_link:"复制链接",gemini_cli_oauth_status_waiting:"等待认证中...",gemini_cli_oauth_status_success:"认证成功!",gemini_cli_oauth_status_error:"认证失败:",gemini_cli_oauth_start_error:"启动 Gemini CLI OAuth 失败:",gemini_cli_oauth_polling_error:"检查认证状态失败:",kimi_oauth_title:"Kimi OAuth",kimi_oauth_button:"开始 Kimi 登录",kimi_oauth_hint:"通过设备授权流程登录 Kimi 服务,自动获取并保存认证文件。",kimi_oauth_url_label:"授权链接:",kimi_open_link:"打开链接",kimi_copy_link:"复制链接",kimi_oauth_status_waiting:"等待认证中...",kimi_oauth_status_success:"认证成功!",kimi_oauth_status_error:"认证失败:",kimi_oauth_start_error:"启动 Kimi OAuth 失败:",kimi_oauth_polling_error:"检查认证状态失败:",qwen_oauth_title:"Qwen OAuth",qwen_oauth_button:"开始 Qwen 登录",qwen_oauth_hint:"通过设备授权流程登录 Qwen 服务,自动获取并保存认证文件。",qwen_oauth_url_label:"授权链接:",qwen_open_link:"打开链接",qwen_copy_link:"复制链接",qwen_oauth_status_waiting:"等待认证中...",qwen_oauth_status_success:"认证成功!",qwen_oauth_status_error:"认证失败:",qwen_oauth_start_error:"启动 Qwen OAuth 失败:",qwen_oauth_polling_error:"检查认证状态失败:",oauth_callback_label:"回调 URL",oauth_callback_placeholder:"http://localhost:1455/auth/callback?code=...&state=...",oauth_callback_hint:"远程浏览器模式:当授权跳转到 http://localhost:... 后,复制完整 URL 并提交到这里。",oauth_callback_button:"提交回调 URL",oauth_callback_required:"请先粘贴完整的回调 URL。",oauth_callback_success:"回调 URL 已提交,请继续等待认证。",oauth_callback_error:"提交回调 URL 失败:",oauth_callback_upgrade_hint:"请更新CLI Proxy API或检查连接",oauth_callback_status_success:"回调 URL 已提交,等待认证中...",oauth_callback_status_error:"回调 URL 提交失败:",missing_state:"无法获取认证状态参数",iflow_oauth_title:"iFlow OAuth",iflow_oauth_button:"开始 iFlow 登录",iflow_oauth_hint:"通过 OAuth 流程登录 iFlow 服务,自动获取并保存认证文件。",iflow_oauth_url_label:"授权链接:",iflow_open_link:"打开链接",iflow_copy_link:"复制链接",iflow_oauth_status_waiting:"等待认证中...",iflow_oauth_status_success:"认证成功!",iflow_oauth_status_error:"认证失败:",iflow_oauth_start_error:"启动 iFlow OAuth 失败:",iflow_oauth_polling_error:"检查认证状态失败:",iflow_cookie_title:"iFlow Cookie 登录",iflow_cookie_label:"Cookie 内容:",iflow_cookie_placeholder:"填入BXAuth值 以BXAuth=开头",iflow_cookie_hint:"直接提交 Cookie 以完成登录(无需打开授权链接),服务端将自动保存凭据。",iflow_cookie_key_hint:"提示:需在平台上先创建 Key。",iflow_cookie_button:"提交 Cookie 登录",iflow_cookie_status_success:"Cookie 登录成功,凭据已保存。",iflow_cookie_status_error:"Cookie 登录失败:",iflow_cookie_status_duplicate:"配置文件重复:",iflow_cookie_start_error:"提交 Cookie 登录失败:",iflow_cookie_config_duplicate:"检测到配置文件已存在(重复),如需重新保存请先删除原文件后重试。",iflow_cookie_required:"请先填写 Cookie 内容",iflow_cookie_result_title:"Cookie 登录结果",iflow_cookie_result_email:"账号",iflow_cookie_result_expired:"过期时间",iflow_cookie_result_path:"保存路径",iflow_cookie_result_type:"类型",remote_access_disabled:"远程访问不支持此登录方式,请从本地 (localhost) 访问"},oH={title:"使用统计",total_requests:"总请求数",success_requests:"成功请求",failed_requests:"失败请求",total_tokens:"总Token数",cached_tokens:"缓存 Tokens",reasoning_tokens:"思考 Tokens",rpm_30m:"RPM",tpm_30m:"TPM",rate_30m:"近30分钟速率",model_name:"模型名称",model_price_settings:"模型价格设置",saved_prices:"已保存的价格",requests_trend:"请求趋势",tokens_trend:"Token 使用趋势",api_details:"API 详细统计",by_hour:"按小时",by_day:"按天",range_filter:"时间范围",range_all:"全部时间",range_7h:"最近7小时",range_24h:"最近24小时",range_7d:"最近7天",filter_all:"全部",clear_filters:"清空筛选",refresh:"刷新",export:"导出数据",import:"导入数据",export_csv:"导出 CSV",export_json:"导出 JSON",export_success:"使用统计已导出",import_success:"导入完成:新增 {{added}},跳过 {{skipped}},总请求 {{total}},失败 {{failed}}",import_invalid:"导入文件格式不正确",chart_line_label_1:"曲线 1",chart_line_label_2:"曲线 2",chart_line_label_3:"曲线 3",chart_line_label_4:"曲线 4",chart_line_label_5:"曲线 5",chart_line_label_6:"曲线 6",chart_line_label_7:"曲线 7",chart_line_label_8:"曲线 8",chart_line_label_9:"曲线 9",chart_line_hidden:"不显示",chart_line_actions_label:"曲线数量",chart_line_add:"增加曲线",chart_line_all:"全部",chart_line_delete:"删除曲线",chart_line_hint:"最多同时显示 9 条模型曲线",no_data:"暂无数据",loading_error:"加载失败",api_endpoint:"API端点",requests_count:"请求次数",tokens_count:"Token数量",models:"模型统计",success_rate:"成功率",total_cost:"总花费",total_cost_hint:"基于已设置的模型单价",model_price_title:"模型价格",model_price_reset:"清除价格",model_price_model_label:"选择模型",model_price_select_placeholder:"选择模型",model_price_select_hint:"模型列表来自使用统计明细",model_price_prompt:"提示价格",model_price_completion:"补全价格",model_price_cache:"缓存价格",model_price_save:"保存价格",model_price_empty:"暂未设置任何模型价格",model_price_model:"模型",model_price_saved:"模型价格已保存",model_price_model_required:"请选择要设置价格的模型",cost_trend:"花费统计",cost_axis_label:"花费 ($)",cost_need_price:"请先设置模型价格",cost_need_usage:"暂无使用数据,无法计算花费",cost_no_data:"没有可计算的花费数据",credential_stats:"凭证统计",credential_name:"凭证",token_breakdown:"Token 类型分布",request_events_title:"请求事件明细",request_events_filter_model:"模型",request_events_filter_source:"来源",request_events_filter_auth_index:"认证索引",request_events_timestamp:"时间",request_events_source:"来源",request_events_auth_index:"认证索引",request_events_result:"结果",request_events_empty_title:"暂无请求事件",request_events_empty_desc:"当前时间范围内暂无可用的请求明细数据。",request_events_no_result_title:"没有匹配结果",request_events_no_result_desc:"请尝试调整筛选条件,或清空当前筛选。",request_events_count:"{{count}} 条事件",request_events_limit_hint:"为保证渲染性能,仅展示 {{shown}} / {{total}} 条事件。",input_tokens:"输入 Tokens",output_tokens:"输出 Tokens",last_updated:"更新于"},rH={success:"成功",failure:"失败"},lH={success_short:"✓",failure_short:"✗",no_requests:"无请求"},cH={title:"服务健康监测",window:"最近 7 天",oldest:"最早",newest:"最新"},uH={title:"日志查看",refresh_button:"刷新日志",clear_button:"清空日志",download_button:"下载日志",error_log_button:"选择错误日志",error_logs_modal_title:"错误请求日志",error_logs_description:"请选择要下载的错误请求日志文件(仅在关闭请求日志时生成)。",error_logs_request_log_enabled:"当前已开启请求日志,按接口约定错误请求日志列表会始终为空。关闭请求日志后再刷新即可查看。",error_logs_empty:"暂无错误请求日志文件",error_logs_load_error:"加载错误日志列表失败",error_logs_size:"大小",error_logs_modified:"最后修改",error_logs_download:"下载",error_log_download_success:"错误日志下载成功",request_log_download_title:"下载报文",request_log_download_confirm:"是否要下载id为{{id}}的报文?",request_log_download_success:"报文下载成功",empty_title:"暂无日志记录",empty_desc:'当启用"日志记录到文件"功能后,日志将显示在这里',log_content:"日志内容",loading:"正在加载日志...",load_error:"加载日志失败",clear_confirm:"确定要清空所有日志吗?此操作不可恢复!",clear_success:"日志已清空",download_success:"日志下载成功",auto_refresh:"自动刷新",auto_refresh_enabled:"自动刷新已开启",auto_refresh_disabled:"自动刷新已关闭",load_more_hint:"向上滚动加载更多",hidden_lines:"已隐藏 {{count}} 行",loaded_lines:"已载入 {{count}} 行",filtered_lines:"已过滤 {{count}} 行",hide_management_logs:"屏蔽 {{prefix}} 日志",show_raw_logs:"显示原始日志",show_raw_logs_hint:"直接显示原始日志文本,方便多行复制",search_placeholder:"搜索日志内容或关键字",filter_panel_title:"结构化筛选",filter_panel_expand:"展开结构化筛选",filter_panel_collapse:"收起结构化筛选",filter_panel_active_count:"已选 {{count}} 项",filter_method:"请求方法",filter_status:"状态码",filter_path:"路径",filter_path_empty:"暂无可筛选路径",filter_status_2xx:"2xx",filter_status_3xx:"3xx",filter_status_4xx:"4xx",filter_status_5xx:"5xx",clear_filters:"清空筛选",trace_button:"请求追踪",trace_title:"请求追踪 (V1)",trace_notice:"V1 通过日志与 usage 事件做启发式关联,结果为估算,不是严格 request_id 级精准匹配。",trace_log_info:"日志事件",trace_candidates_title:"Usage 候选匹配",trace_loading:"正在匹配 usage 事件...",trace_no_match:"未找到候选匹配结果。",trace_usage_load_error:"加载请求追踪所需 usage 明细失败",trace_download_request_log:"下载请求日志",trace_confidence_high:"高",trace_confidence_medium:"中",trace_confidence_low:"低",trace_score:"分数 {{score}}",trace_delta_seconds:"时间差 {{seconds}} 秒",trace_model_matched:"模型匹配",trace_request_id:"请求 ID",trace_method:"请求方法",trace_path:"路径",trace_status_code:"状态码",trace_latency:"耗时",trace_ip:"IP",trace_timestamp:"时间",trace_message:"消息",trace_endpoint:"Usage 接口",trace_model:"模型",trace_source:"来源",trace_auth_index:"认证索引",trace_result:"结果",search_empty_title:"未找到匹配的日志",search_empty_desc:"尝试更换关键字或清空筛选条件。",double_click_copy_hint:"双击复制日志原文",copy_success:"已复制日志原文",copy_failed:"复制失败",lines:"行",removed:"已过滤",upgrade_required_title:"需要升级 CLI Proxy API",upgrade_required_desc:"当前服务器版本不支持日志查看功能,请升级到最新版本的 CLI Proxy API 以使用此功能。"},dH={title:"配置面板",editor_title:"配置文件",reload:"重新加载",reload_confirm_message:"重新加载将丢弃你当前未保存的修改,确定继续吗?",save:"保存",description:"通过可视化或者源文件方式编辑 config.yaml 配置文件",status_idle:"等待操作",status_loading:"加载配置中...",status_loading_short:"加载中",status_loaded:"配置已加载",status_loaded_short:"已加载",status_dirty:"有未保存的更改",status_dirty_short:"未保存",status_disconnected:"请先连接服务器以加载配置",status_disconnected_short:"未连接",status_load_failed:"加载失败",status_load_failed_short:"失败",status_saving:"正在保存配置...",status_saving_short:"保存中",status_saved:"配置保存完成",status_save_failed:"保存失败",save_success:"配置已保存",error_yaml_not_supported:"服务器未返回 YAML 格式,请确认 /config.yaml 接口可用",visual_mode_unavailable:"YAML 语法修复前无法使用可视化编辑",visual_mode_unavailable_short:"YAML错误",validation_blocked_short:"待修复",visual_mode_unavailable_detail:"当前配置存在无效 YAML,暂时无法使用可视化编辑:{{message}}",visual_mode_save_blocked:"请先修复 YAML 语法错误,再从可视化模式保存",visual_mode_latest_yaml_invalid:"服务端最新配置包含无效 YAML,请先切回源码模式检查后再保存可视化修改:{{message}}",editor_placeholder:"key: value",search_placeholder:"搜索配置内容...",search_button:"搜索",search_no_results:"无结果",search_prev:"上一个",search_next:"下一个",diff:{title:"确认变更",current:"当前配置",modified:"修改后",confirm:"确认保存",no_changes:"未检测到变更"},tabs:{visual:"可视化编辑",source:"源文件编辑"},visual:{notice:"可视化模式覆盖常用字段,未覆盖的配置仍需在源文件模式中查看或编辑。",quick_jump:"快速跳转",sections:{server:{title:"服务器配置",description:"基础服务器设置",host:"主机地址",port:"端口"},tls:{title:"TLS/SSL 配置",description:"HTTPS 安全连接设置",enable:"启用 TLS",enable_desc:"启用 HTTPS 安全连接",cert:"证书文件路径",key:"私钥文件路径"},remote:{title:"远程管理",description:"远程访问和控制面板设置",allow_remote:"允许远程访问",allow_remote_desc:"允许从其他主机访问管理接口",disable_panel:"禁用控制面板",disable_panel_desc:"禁用内置的 Web 控制面板",secret_key:"管理密钥",secret_key_placeholder:"设置管理密钥",panel_repo:"面板仓库"},auth:{title:"认证配置",description:"API 密钥与认证文件目录设置",auth_dir:"认证文件目录 (auth-dir)",auth_dir_hint:"存放认证文件的目录路径(支持 ~)"},system:{title:"系统配置",description:"调试、日志、统计与性能调试设置",debug:"调试模式",debug_desc:"启用详细的调试日志",commercial_mode:"商业模式",commercial_mode_desc:"禁用高开销中间件以支持高并发",logging_to_file:"写入日志文件",logging_to_file_desc:"将日志保存到文件",usage_statistics:"使用统计",usage_statistics_desc:"收集使用统计信息",logs_max_size:"日志文件大小限制 (MB)"},network:{title:"网络配置",description:"代理、重试和路由设置",proxy_url:"代理 URL",request_retry:"请求重试次数",max_retry_credentials:"最大重试凭据数",max_retry_credentials_hint:"留空表示不设置;设为 0 表示保留 legacy 行为,并尝试所有可用凭据。",max_retry_interval:"最大重试间隔 (秒)",routing_strategy:"路由策略",routing_strategy_hint:"选择凭据选择策略",strategy_round_robin:"轮询 (Round Robin)",strategy_fill_first:"填充优先 (Fill First)",force_model_prefix:"强制模型前缀",force_model_prefix_desc:"未带前缀的模型请求只使用无前缀凭据",ws_auth:"WebSocket 认证",ws_auth_desc:"启用 WebSocket 连接认证 (/v1/ws)"},quota:{title:"配额回退",description:"配额耗尽时的回退策略",switch_project:"切换项目",switch_project_desc:"配额耗尽时自动切换到其他项目",switch_preview_model:"切换预览模型",switch_preview_model_desc:"配额耗尽时切换到预览版本模型"},streaming:{title:"流式传输配置",description:"Keepalive 与 bootstrap 重试设置",keepalive_seconds:"Keepalive 秒数",keepalive_hint:"设置为 0 或留空表示禁用 keepalive",bootstrap_retries:"Bootstrap 重试次数",bootstrap_hint:"流式传输启动时(首包前)的重试次数",nonstream_keepalive:"非流式 Keepalive 间隔 (秒)",nonstream_keepalive_hint:"非流式响应时每隔 N 秒发送空行以防止空闲超时,设置为 0 或留空表示禁用",disabled:"已禁用"},payload:{title:"Payload 配置",description:"默认值、原始 JSON 规则、覆盖规则与过滤规则",default_rules:"默认规则",default_rules_desc:"当请求中未指定参数时,使用这些默认值",default_raw_rules:"默认 Raw 规则",default_raw_rules_desc:'当请求中未指定参数时,按原始 JSON 片段写入这些值,例如 true、123、"high" 或 {"type":"object"}',override_rules:"覆盖规则",override_rules_desc:"强制覆盖请求中的参数值",override_raw_rules:"覆盖 Raw 规则",override_raw_rules_desc:"始终按原始 JSON 片段覆盖参数值,适合 response_format、schema 等复杂字段",filter_rules:"过滤规则",filter_rules_desc:"通过 JSON Path 预过滤上游请求体,自动剔除不合规/冗余参数(Request Sanitization)"}},api_keys:{label:"API 密钥列表 (api-keys)",add:"添加 API 密钥",generate:"生成",empty:"暂无 API 密钥",hint:"每个条目代表一个 API 密钥(与 「API 密钥管理」 页面样式一致)",edit_title:"编辑 API 密钥",add_title:"添加 API 密钥",input_label:"API 密钥",input_placeholder:"粘贴你的 API 密钥",input_hint:"此处仅修改本地配置文件内容,不会自动同步到 API 密钥管理接口",error_empty:"请输入 API 密钥",error_invalid:"API 密钥包含无效字符"},payload_rules:{rule:"规则",models:"适用模型",model_name:"模型名称",provider_type:"供应商类型",add_model:"添加模型",params:"参数设置",remove_params:"移除参数",json_path:"JSON 路径 (如 temperature)",json_path_filter:"JSON 路径 (gjson/sjson),如 generationConfig.thinkingConfig.thinkingBudget",param_type:"参数类型",param_value:"参数值",add_param:"添加参数",no_rules:"暂无规则",add_rule:"添加规则",provider_default:"默认",provider_openai:"OpenAI",provider_openai_response:"OpenAI Response",provider_gemini:"Gemini",provider_claude:"Claude",provider_codex:"Codex",provider_antigravity:"Antigravity",value_type_string:"字符串",value_type_number:"数字",value_type_boolean:"布尔",value_type_json:"JSON",value_string:"字符串值",value_number:"数字值 (如 0.7)",value_boolean:"true 或 false",value_json:"JSON 值",value_raw_json:'原始 JSON 片段,如 true、123、"high" 或 {"type":"object"}',value_default:"值",boolean_true:"true",boolean_false:"false"},validation:{validation_blocked:"请先修复表单校验错误再保存",port_range:"请输入 1 到 65535 之间的有效端口",non_negative_integer:"请输入非负整数",payload_invalid_number:"请输入有效数字",payload_invalid_boolean:"请选择 true 或 false",payload_invalid_json:"请输入有效的 JSON"},common:{edit:"编辑",delete:"删除",cancel:"取消",update:"更新",add:"添加"}}},hH={title:"配额管理",description:"集中查看 OAuth 额度与剩余情况",refresh_files:"刷新认证文件",refresh_files_and_quota:"刷新认证文件&额度",refresh_all_credentials:"刷新全部凭证",card_idle_hint:"请使用顶部“刷新全部凭证”按钮获取最新额度。"},fH={title:"管理中心信息",about_title:"CLI Proxy API Management Center",connection_status_title:"连接状态",api_status_label:"API 状态:",config_status_label:"配置状态:",last_update_label:"最后更新:",cache_data:"缓存数据",real_time_data:"实时数据",not_loaded:"未加载",seconds_ago:"秒前",models_title:"可用模型列表",models_desc:"展示 /models 返回的模型,并自动使用服务器保存的 API Key 进行鉴权。",models_loading:"正在加载可用模型...",models_empty:"未从 /models 获取到模型数据",models_error:"获取模型列表失败",models_count:"可用模型 {{count}} 个",version_check_title:"版本检查",version_check_desc:"调用 /latest-version 接口比对服务器版本,提示是否有可用更新。",version_current_label:"当前版本",version_latest_label:"最新版本",version_check_button:"检查更新",version_check_idle:"点击检查更新",version_checking:"正在检查最新版本...",version_update_available:"有新版本可用:{{version}}",version_is_latest:"当前已是最新版本",version_check_error:"检查更新失败",version_current_missing:"未获取到服务器版本号,暂无法比对",version_unknown:"未知",quick_links_title:"快捷链接",quick_links_desc:"访问项目仓库和文档,获取帮助和更新。",link_main_repo:"主程序仓库",link_main_repo_desc:"CLI Proxy API 核心程序源代码",link_webui_repo:"WebUI 仓库",link_webui_repo_desc:"管理中心前端界面源代码",link_docs:"使用教程",link_docs_desc:"配置指南和使用说明",clear_login_title:"本地登录信息",clear_login_desc:"清理本地保存的登录信息并退出登录,不会影响使用统计中的价格设置。",clear_login_button:"清理登录信息",clear_login_confirm:"确认清理本地登录信息并退出登录?"},mH={debug_updated:"调试设置已更新",proxy_updated:"代理设置已更新",proxy_cleared:"代理设置已清空",retry_updated:"重试设置已更新",quota_switch_project_updated:"项目切换设置已更新",quota_switch_preview_updated:"预览模型切换设置已更新",usage_statistics_updated:"使用统计设置已更新",logging_to_file_updated:"日志记录设置已更新",logs_max_total_size_updated:"日志容量设置已更新",request_log_updated:"请求日志设置已更新",force_model_prefix_updated:"模型前缀设置已更新",ws_auth_updated:"WebSocket 鉴权设置已更新",routing_strategy_updated:"路由策略已更新",login_storage_cleared:"本地登录信息已清理",api_key_added:"API密钥添加成功",api_key_updated:"API密钥更新成功",api_key_deleted:"API密钥删除成功",api_key_invalid_chars:"API密钥仅支持英文字母、数字和符号",gemini_key_added:"Gemini密钥添加成功",gemini_key_updated:"Gemini密钥更新成功",gemini_key_deleted:"Gemini密钥删除成功",gemini_multi_input_required:"请先输入至少一个Gemini密钥",gemini_multi_failed:"Gemini密钥批量添加失败",gemini_multi_summary:"Gemini批量添加完成:成功 {{success}},跳过 {{skipped}},失败 {{failed}}",codex_config_added:"Codex配置添加成功",codex_config_updated:"Codex配置更新成功",codex_config_deleted:"Codex配置删除成功",codex_base_url_required:"请填写Codex Base URL",claude_config_added:"Claude配置添加成功",claude_config_updated:"Claude配置更新成功",claude_config_deleted:"Claude配置删除成功",vertex_config_added:"Vertex配置添加成功",vertex_config_updated:"Vertex配置更新成功",vertex_config_deleted:"Vertex配置删除成功",config_enabled:"配置已启用",config_disabled:"配置已停用",field_required:"必填字段不能为空",openai_provider_required:"请填写提供商名称和Base URL",openai_provider_added:"OpenAI提供商添加成功",openai_provider_updated:"OpenAI提供商更新成功",openai_provider_deleted:"OpenAI提供商删除成功",ampcode_updated:"Ampcode 配置已更新",ampcode_upstream_api_key_cleared:"Ampcode upstream API key 覆盖已清除",openai_model_name_required:"请填写模型名称",openai_test_url_required:"请先填写有效的 Base URL 以进行测试",openai_test_key_required:"请至少填写一个 API 密钥以进行测试",openai_test_model_required:"请选择要测试的模型",data_refreshed:"数据刷新成功",connection_required:"请先建立连接",refresh_failed:"刷新失败",update_failed:"更新失败",add_failed:"添加失败",delete_failed:"删除失败",upload_failed:"上传失败",download_failed:"下载失败",login_failed:"登录失败",please_enter:"请输入",please_fill:"请填写",provider_name_url:"提供商名称和Base URL",api_key:"API密钥",gemini_api_key:"Gemini API密钥",codex_api_key:"Codex API密钥",claude_api_key:"Claude API密钥",commercial_mode_restart_required:"商业模式开关已变更,请重启服务后生效",copy_failed:"复制失败",link_copied:"已复制"},pH={switch:"语言",chinese:"中文",english:"English",russian:"Русский"},gH={switch:"主题",light:"羊毛纸",white:"纯白",dark:"暗色",switch_to_light:"切换到羊毛纸模式",switch_to_dark:"切换到暗色模式",auto:"跟随系统"},_H={toggle_expand:"展开侧边栏",toggle_collapse:"收起侧边栏"},yH={api_version:"CLI Proxy API 版本",build_date:"构建时间",version:"管理中心版本",author:"作者"},bH={common:IK,title:UK,splash:BK,auto_login:zK,login:qK,header:KK,connection:HK,nav:VK,dashboard:WK,basic_settings:GK,api_keys:$K,ai_providers:XK,auth_files:QK,antigravity_quota:YK,claude_quota:JK,codex_quota:ZK,gemini_cli_quota:eH,kimi_quota:tH,vertex_import:nH,oauth_excluded:iH,oauth_model_alias:sH,auth_login:aH,usage_stats:oH,stats:rH,status_bar:lH,service_health:cH,logs:uH,config_management:dH,quota_management:hH,system_info:fH,notification:mH,language:pH,theme:gH,sidebar:_H,footer:yH},vH={login:"Login",logout:"Logout",back:"Back",cancel:"Cancel",confirm:"Confirm",leave:"Leave",stay:"Stay",save:"Save",delete:"Delete",edit:"Edit",add:"Add",update:"Update",refresh:"Refresh",close:"Close",success:"Success",error:"Error",info:"Info",warning:"Warning",loading:"Loading...",connecting:"Connecting...",connected:"Connected",disconnected:"Disconnected",connecting_status:"Connecting",connected_status:"Connected",disconnected_status:"Disconnected",yes:"Yes",no:"No",not_set:"Not set",optional:"Optional",required:"Required",api_key:"Key",base_url:"Address",prefix:"Prefix",proxy_url:"Proxy",priority:"Priority",alias:"Alias",failure:"Failure",unknown_error:"Unknown error",quota_update_required:"Please update the CPA version or check for updates",quota_check_credential:"Please check the credential status",copy:"Copy",expand:"Expand",collapse:"Collapse",status:"Status",action:"Action",custom_headers_label:"Custom Headers",custom_headers_hint:"Optional HTTP headers to send with the request. Leave blank to remove.",custom_headers_add:"Add Header",custom_headers_key_placeholder:"Header name, e.g. X-Custom-Header",custom_headers_value_placeholder:"Header value",model_name_placeholder:"Model name, e.g. claude-3-5-sonnet-20241022",model_alias_placeholder:"Model alias (optional)",invalid_provider_index:"Invalid provider index.",unsaved_changes_title:"Unsaved changes",unsaved_changes_message:"You have unsaved changes. Leaving now will discard them. Do you want to leave?"},xH={main:"CLI Proxy API Management Center",login:"CLI Proxy API Management Center",abbr:"CPAMC"},SH={title:"CLI Proxy API",subtitle:"Management Center"},wH={title:"Auto Login in Progress...",message:"Attempting to connect to server using locally saved connection information"},kH={subtitle:"Please enter connection information to access the management interface",connection_title:"Connection Address",connection_current:"Current URL",connection_auto_hint:"The system will automatically use the current URL for connection",custom_connection_label:"Custom Connection URL:",custom_connection_placeholder:"Eg: https://example.com:8317",custom_connection_hint:"By default the current URL is used. Override it here if needed.",use_current_address:"Use Current URL",remember_password_label:"Remember password",management_key_label:"Management Key:",management_key_placeholder:"Enter the management key",connect_button:"Connect",submit_button:"Login",submitting:"Connecting...",error_title:"Login Failed",error_required:"Please fill in complete connection information",error_invalid:"Connection failed, please check address and key",error_network:"Network connection failed, please check your network or server address",error_timeout:"Connection timed out, server not responding",error_unauthorized:"Authentication failed, invalid management key",error_forbidden:"Access denied, insufficient permissions",error_not_found:"Server address invalid or management API not enabled",error_server:"Internal server error, please try again later",error_cors:"Cross-origin request blocked, please check server configuration",error_ssl:"SSL/TLS certificate verification failed"},CH={check_connection:"Check Connection",refresh_all:"Refresh All",logout:"Logout"},AH={title:"Connection Information",server_address:"Server Address:",management_key:"Management Key:",status:"Connection Status:"},NH={dashboard:"Dashboard",basic_settings:"Basic Settings",api_keys:"API Keys",ai_providers:"AI Providers",auth_files:"Auth Files",oauth:"OAuth Login",quota_management:"Quota Management",usage_stats:"Usage Statistics",config_management:"Config Panel",logs:"Logs Viewer",system_info:"Management Center Info"},TH={title:"Dashboard",subtitle:"Welcome to CLI Proxy API Management Center",openai_providers:"OpenAI Providers",quick_actions:"Quick Actions",current_config:"Current Configuration",management_keys:"Management Keys",provider_keys_detail:"G:{{gemini}} C:{{codex}} Cl:{{claude}} O:{{openai}}",oauth_credentials:"OAuth Credentials",usage_overview:"Usage Overview",total_requests:"Total Requests",total_tokens:"Total Tokens",rpm_30min:"RPM (30min)",tpm_30min:"TPM (30min)",models_used:"Models Used",no_usage_data:"No usage data available",view_detailed_usage:"View Detailed Stats",edit_settings:"Edit Settings",routing_strategy:"Routing Strategy",available_models:"Available Models",available_models_desc:"Total models from all providers",welcome_back:"Welcome Back",greeting_morning:"Good Morning",greeting_afternoon:"Good Afternoon",greeting_evening:"Good Evening",greeting_night:"Good Night",caring_morning:"A fresh start — let's make today count.",caring_afternoon:"Steady progress — you're doing great.",caring_evening:"Wrapping up nicely — almost there.",caring_night:"Burning the midnight oil? Don't forget to rest.",system_overview:"System Overview"},MH={title:"Basic Settings",debug_title:"Debug Mode",debug_enable:"Enable Debug Mode",proxy_title:"Proxy Settings",proxy_url_label:"Proxy URL:",proxy_url_placeholder:"e.g.: socks5://user:pass@127.0.0.1:1080/",proxy_update:"Update",proxy_clear:"Clear",retry_title:"Request Retry",retry_count_label:"Retry Count:",retry_update:"Update",quota_title:"Quota Exceeded Behavior",quota_switch_project:"Auto Switch Project",quota_switch_preview:"Switch to Preview Model",usage_statistics_title:"Usage Statistics",usage_statistics_enable:"Enable usage statistics",logging_title:"Logging",logging_to_file_enable:"Enable logging to file",logs_max_total_size_title:"Log Size Limit",logs_max_total_size_label:"Total log size cap (MB):",logs_max_total_size_hint:"Set to 0 to disable the limit.",logs_max_total_size_update:"Update",request_log_title:"Request Logging",request_log_enable:"Enable request logging",request_log_warning:"Keep this off unless you need detailed troubleshooting.",force_model_prefix_enable:"Force model prefix",ws_auth_title:"WebSocket Authentication",ws_auth_enable:"Require auth for /ws/*",routing_title:"Routing Strategy",routing_strategy_label:"Routing strategy:",routing_strategy_hint:"round-robin cycles through keys; fill-first prioritizes the first available key.",routing_strategy_update:"Update",routing_strategy_round_robin:"round-robin (cycle)",routing_strategy_fill_first:"fill-first (prioritize)"},LH={title:"API Keys Management",proxy_auth_title:"Proxy Service Authentication Keys",add_button:"Add Key",empty_title:"No API Keys",empty_desc:"Click the button above to add the first key",item_title:"API Key",add_modal_title:"Add API Key",add_modal_key_label:"API Key:",add_modal_key_placeholder:"Please enter API key",edit_modal_title:"Edit API Key",edit_modal_key_label:"API Key:",delete_confirm:"Are you sure you want to delete this API key?"},OH=JSON.parse('{"title":"AI Providers Configuration","gemini_title":"Gemini API Keys","gemini_add_button":"Add Key","gemini_empty_title":"No Gemini Keys","gemini_empty_desc":"Click the button above to add the first key","gemini_item_title":"Gemini Key","gemini_add_modal_title":"Add Gemini API Key","gemini_add_modal_key_label":"API Keys:","gemini_add_modal_key_placeholder":"Enter Gemini API key","gemini_add_modal_key_hint":"Add keys one by one and optionally specify a Base URL.","gemini_keys_add_btn":"Add Key","gemini_base_url_label":"Base URL (Optional):","gemini_base_url_placeholder":"e.g.: https://generativelanguage.googleapis.com","gemini_add_modal_proxy_label":"Proxy URL (Optional):","gemini_add_modal_proxy_placeholder":"e.g.: socks5://proxy.example.com:1080","gemini_models_label":"Custom Models (Optional):","gemini_models_hint":"Leave empty to allow all models, or add name[, alias] entries to limit/alias them for this key.","gemini_models_add_btn":"Add Model","gemini_models_fetch_button":"Fetch via /v1beta/models","gemini_models_fetch_title":"Pick Models from Gemini /v1beta/models","gemini_models_fetch_hint":"Call GET /v1beta/models per the Gemini API. By default, it sends x-goog-api-key from the API Key field, merged with your custom headers.","gemini_models_fetch_url_label":"Request URL","gemini_models_fetch_refresh":"Refresh","gemini_models_fetch_loading":"Fetching models from Gemini /v1beta/models...","gemini_models_fetch_empty":"No models returned. Please check Base URL, API key, or headers.","gemini_models_fetch_error":"Failed to fetch Gemini models","gemini_models_fetch_apply":"Add selected models","model_discovery_select_visible":"Select current list","model_discovery_clear_selection":"Clear selection","model_discovery_selected_count":"{{count}} selected","gemini_models_search_label":"Search models","gemini_models_search_placeholder":"Filter by name, alias, or description","gemini_models_search_empty":"No models match your search. Try a different keyword.","gemini_models_fetch_added":"{{count}} new models added","gemini_models_count":"Models Count","gemini_edit_modal_title":"Edit Gemini API Key","gemini_edit_modal_key_label":"API Key:","gemini_delete_confirm":"Are you sure you want to delete this Gemini key?","excluded_models_label":"Excluded models (optional):","excluded_models_placeholder":"Comma or newline separated, e.g. gemini-1.5-pro, gemini-1.5-flash","excluded_models_hint":"Leave empty to allow all models; values are trimmed and deduplicated automatically.","excluded_models_count":"Excluding {{count}} models","prefix_label":"Prefix (Optional):","prefix_placeholder":"e.g.: team-a","prefix_hint":"When set, call models as prefix/<model> to target this entry.","priority_label":"Priority (Optional):","priority_hint":"Higher values are preferred. Leave empty for default (0).","config_toggle_label":"Enabled","config_disabled_badge":"Disabled","codex_title":"Codex API Configuration","codex_add_button":"Add Configuration","codex_empty_title":"No Codex Configuration","codex_empty_desc":"Click the button above to add the first configuration","codex_item_title":"Codex Configuration","codex_add_modal_title":"Add Codex API Configuration","codex_add_modal_key_label":"API Key:","codex_add_modal_key_placeholder":"Please enter Codex API key","codex_add_modal_url_label":"Base URL (Required):","codex_add_modal_url_placeholder":"e.g.: https://api.example.com","codex_add_modal_proxy_label":"Proxy URL (Optional):","codex_add_modal_proxy_placeholder":"e.g.: socks5://proxy.example.com:1080","codex_websockets_label":"Websockets","codex_websockets_hint":"Enable Responses API websocket transport for this key.","codex_models_label":"Custom Models (Optional):","codex_models_hint":"Leave empty to allow all models, or add name[, alias] entries to limit/alias them.","codex_models_add_btn":"Add Model","codex_models_fetch_button":"Fetch via /v1/models","codex_models_fetch_title":"Pick Models from /v1/models","codex_models_fetch_hint":"Call GET /v1/models using the Base URL above, sending the API key as Bearer (if provided) and merging your custom headers.","codex_models_fetch_url_label":"Request URL","codex_models_fetch_refresh":"Refresh","codex_models_fetch_loading":"Fetching models from /v1/models...","codex_models_fetch_empty":"No models returned. Please check Base URL, API key, or headers.","codex_models_fetch_error":"Failed to fetch models","codex_models_fetch_apply":"Add selected models","codex_models_search_label":"Search models","codex_models_search_placeholder":"Filter by name, alias, or description","codex_models_search_empty":"No models match your search. Try a different keyword.","codex_models_fetch_added":"{{count}} new models added","codex_models_count":"Models Count","codex_edit_modal_title":"Edit Codex API Configuration","codex_edit_modal_key_label":"API Key:","codex_edit_modal_url_label":"Base URL (Required):","codex_edit_modal_proxy_label":"Proxy URL (Optional):","codex_delete_confirm":"Are you sure you want to delete this Codex configuration?","claude_title":"Claude API Configuration","claude_add_button":"Add Configuration","claude_empty_title":"No Claude Configuration","claude_empty_desc":"Click the button above to add the first configuration","claude_item_title":"Claude Configuration","claude_add_modal_title":"Add Claude API Configuration","claude_add_modal_key_label":"API Key:","claude_add_modal_key_placeholder":"Please enter Claude API key","claude_add_modal_url_label":"Base URL (Optional):","claude_add_modal_url_placeholder":"e.g.: https://api.anthropic.com","claude_add_modal_proxy_label":"Proxy URL (Optional):","claude_add_modal_proxy_placeholder":"e.g.: socks5://proxy.example.com:1080","claude_edit_modal_title":"Edit Claude API Configuration","claude_edit_modal_key_label":"API Key:","claude_edit_modal_url_label":"Base URL (Optional):","claude_edit_modal_proxy_label":"Proxy URL (Optional):","claude_delete_confirm":"Are you sure you want to delete this Claude configuration?","claude_models_label":"Custom Models (Optional):","claude_models_hint":"Leave empty to allow all models, or add name[, alias] entries to limit/alias them.","claude_models_add_btn":"Add Model","claude_models_count":"Models Count","claude_models_fetch_button":"Fetch via /v1/models","claude_models_fetch_title":"Pick Models from Claude /v1/models","claude_models_fetch_hint":"Call GET /v1/models with Anthropic headers. By default, this sends x-api-key and anthropic-version: 2023-06-01, merged with your custom headers.","claude_models_fetch_url_label":"Request URL","claude_models_fetch_refresh":"Refresh","claude_models_fetch_loading":"Fetching models from Claude /v1/models...","claude_models_fetch_empty":"No models returned. Please check Base URL, API key, or headers.","claude_models_fetch_error":"Failed to fetch Claude models","claude_models_fetch_apply":"Add selected models","claude_models_search_label":"Search models","claude_models_search_placeholder":"Filter by name, alias, or description","claude_models_search_empty":"No models match your search. Try a different keyword.","claude_models_fetch_added":"{{count}} new models added","claude_test_title":"Connection Test","claude_test_hint":"Send a test request to /v1/messages using Anthropic headers to verify this configuration.","claude_test_select_placeholder":"Choose from current models","claude_test_select_empty":"No models configured. Add models first","claude_test_action":"Test","claude_test_running":"Sending Claude test request...","claude_test_timeout":"Test request timed out after {{seconds}} seconds.","claude_test_success":"Test succeeded. Claude model responded.","claude_test_failed":"Test failed","claude_test_key_required":"Please provide a Claude API key or set x-api-key in custom headers","claude_test_model_required":"Please select a model to test","claude_test_endpoint_invalid":"Unable to build a valid Claude /v1/messages endpoint","claude_cloak_title":"Request Cloaking (Optional):","claude_cloak_toggle_label":"Enable","claude_cloak_toggle_aria":"Toggle request cloaking","claude_cloak_hint":"Cloaking disguises requests to appear as coming from the official Claude Code CLI for non-Claude-Code clients.","claude_cloak_mode_label":"Mode:","claude_cloak_mode_hint":"auto: cloak only when client is not Claude Code; always: always cloak; never: never cloak.","claude_cloak_mode_auto":"Auto (non-Claude-Code only)","claude_cloak_mode_always":"Always","claude_cloak_mode_never":"Never","claude_cloak_strict_label":"Strict mode:","claude_cloak_strict_hint":"When enabled, strip user system messages and keep only the Claude Code prompt.","claude_cloak_sensitive_words_label":"Sensitive words (optional):","claude_cloak_sensitive_words_placeholder":"Comma or newline separated, e.g. internal-project","claude_cloak_sensitive_words_hint":"These words are obfuscated with zero-width characters.","claude_cloak_sensitive_words_count":"Sensitive words","vertex_title":"Vertex API Configuration","vertex_add_button":"Add Configuration","vertex_empty_title":"No Vertex Configuration","vertex_empty_desc":"Click the button above to add the first configuration","vertex_item_title":"Vertex Configuration","vertex_add_modal_title":"Add Vertex API Configuration","vertex_add_modal_key_label":"API Key:","vertex_add_modal_key_placeholder":"Please enter Vertex API key","vertex_add_modal_url_label":"Base URL:","vertex_add_modal_url_placeholder":"e.g.: https://example.com/api","vertex_add_modal_proxy_label":"Proxy URL (Optional):","vertex_add_modal_proxy_placeholder":"e.g.: socks5://proxy.example.com:1080","vertex_edit_modal_title":"Edit Vertex API Configuration","vertex_edit_modal_key_label":"API Key:","vertex_edit_modal_url_label":"Base URL:","vertex_edit_modal_proxy_label":"Proxy URL (Optional):","vertex_delete_confirm":"Are you sure you want to delete this Vertex configuration?","vertex_models_label":"Model aliases:","vertex_models_add_btn":"Add Mapping","vertex_models_count":"Alias count","ampcode_title":"Amp CLI Integration (ampcode)","ampcode_modal_title":"Configure Ampcode","ampcode_upstream_url_label":"Upstream URL","ampcode_upstream_url_placeholder":"e.g. https://ampcode.com","ampcode_upstream_url_hint":"Optional. Leave empty to use the default/auto-discovered control plane URL.","ampcode_upstream_api_key_label":"Upstream API Key (Amp Official)","ampcode_upstream_api_key_placeholder":"Enter sk-amp... (leave empty to keep current)","ampcode_upstream_api_key_hint":"Optional. Leaving it empty will not change the current Amp official key. Use the button below to clear it.","ampcode_upstream_api_key_current":"Current Amp official key: {{key}}","ampcode_clear_upstream_api_key":"Clear official key","ampcode_clear_upstream_api_key_confirm":"Are you sure you want to clear the Ampcode upstream API key (Amp official)?","ampcode_upstream_api_keys_label":"Multi-upstream API key routing","ampcode_upstream_api_keys_hint":"Bind different Amp upstream API keys to specific client API keys. Client keys can be separated by commas or new lines.","ampcode_upstream_api_keys_add_btn":"Add upstream mapping","ampcode_upstream_api_keys_upstream_placeholder":"Upstream API key (sk-amp-...)","ampcode_upstream_api_keys_clients_placeholder":"Client API keys, separated by commas or new lines","ampcode_upstream_api_keys_item_title":"Upstream mapping #{{index}}","ampcode_upstream_api_keys_count":"Upstream mappings","ampcode_force_model_mappings_label":"Force model mappings","ampcode_force_model_mappings_hint":"When enabled, mappings override local API-key availability checks.","ampcode_model_mappings_label":"Model mappings (from → to)","ampcode_model_mappings_hint":"Rewrites model names in Amp requests. Leave empty to disable mappings.","ampcode_model_mappings_add_btn":"Add mapping","ampcode_model_mappings_from_placeholder":"from model (source)","ampcode_model_mappings_to_placeholder":"to model (target)","ampcode_model_mappings_count":"Mappings Count","ampcode_lists_overwrite_title":"Overwrite list settings","ampcode_lists_overwrite_confirm":"Existing multi-upstream/model mapping lists could not be loaded. Continuing may overwrite or clear them. Continue?","ampcode_mappings_overwrite_confirm":"Existing mappings could not be loaded. Continuing may overwrite or clear them. Continue?","openai_title":"OpenAI Compatible Providers","openai_add_button":"Add Provider","openai_empty_title":"No OpenAI Compatible Providers","openai_empty_desc":"Click the button above to add the first provider","openai_add_modal_title":"Add OpenAI Compatible Provider","openai_add_modal_name_label":"Provider Name:","openai_add_modal_name_placeholder":"e.g.: openrouter","openai_add_modal_url_label":"Base URL:","openai_add_modal_url_placeholder":"e.g.: https://openrouter.ai/api/v1","openai_add_modal_keys_label":"API Keys","openai_edit_modal_keys_label":"API Keys","openai_keys_hint":"Add each key separately with an optional proxy URL to keep things organized.","openai_keys_add_btn":"Add Key","openai_key_placeholder":"sk-... key","openai_proxy_placeholder":"Optional proxy URL (e.g. socks5://...)","openai_add_modal_models_label":"Model List (name[, alias] one per line):","openai_models_hint":"Example: gpt-4o-mini or moonshotai/kimi-k2:free, kimi-k2","openai_model_name_placeholder":"Model name, e.g. moonshotai/kimi-k2:free","openai_model_alias_placeholder":"Model alias (optional)","openai_models_add_btn":"Add Model","openai_models_fetch_button":"Fetch via /models","openai_models_fetch_title":"Pick Models from /models","openai_models_fetch_hint":"Call the /models endpoint using the Base URL above, sending the first API key as Bearer plus custom headers.","openai_models_fetch_url_label":"Request URL","openai_models_fetch_refresh":"Refresh","openai_models_fetch_loading":"Fetching models from /models...","openai_models_fetch_empty":"No models returned. Please check the endpoint or auth.","openai_models_fetch_error":"Failed to fetch models","openai_models_fetch_back":"Back to edit","openai_models_fetch_apply":"Add selected models","openai_models_search_label":"Search models","openai_models_search_placeholder":"Filter by name, alias, or description","openai_models_search_empty":"No models match your search. Try a different keyword.","openai_models_fetch_invalid_url":"Please enter a valid Base URL first","openai_models_fetch_added":"{{count}} new models added","openai_edit_modal_title":"Edit OpenAI Compatible Provider","openai_edit_modal_name_label":"Provider Name:","openai_edit_modal_url_label":"Base URL:","openai_edit_modal_models_label":"Model List (name[, alias] one per line):","openai_delete_confirm":"Are you sure you want to delete this OpenAI provider?","openai_keys_count":"Keys Count","openai_models_count":"Models Count","openai_test_title":"Connection Test","openai_test_hint":"Send a /chat/completions request with the current settings to verify availability.","openai_test_model_placeholder":"Model to test","openai_test_action":"Run Test","openai_test_running":"Sending test request...","openai_test_timeout":"Test request timed out after {{seconds}} seconds.","openai_test_success":"Test succeeded. The model responded.","openai_test_failed":"Test failed","openai_test_select_placeholder":"Choose from current models","openai_test_select_empty":"No models configured. Add models first","openai_test_single_action":"Test","openai_test_all_action":"Test All Keys","openai_test_all_hint":"Test connection status for all keys","openai_test_all_success":"All {{count}} keys passed the test","openai_test_all_failed":"All {{count}} keys failed the test","openai_test_all_partial":"Test completed: {{success}} passed, {{failed}} failed"}'),PH={title:"Auth Files Management",title_section:"Auth Files",description:"Manage all CLI Proxy JSON auth files here (e.g. Qwen, Gemini, Vertex). Uploading a credential immediately enables the corresponding AI integration.",upload_button:"Upload File",delete_all_button:"Delete All",empty_title:"No Auth Files",empty_desc:"Click the button above to upload the first file",search_empty_title:"No matching files",search_empty_desc:"Try changing the filters or clearing the search box.",file_size:"Size",file_modified:"Modified",health_status_label:"Health",health_status_healthy:"Healthy",health_status_warning:"Warning",health_status_disabled:"Disabled",health_status_unknown:"Unknown",health_status_no_message:"No status message",last_refresh_label:"Last Refresh",refresh_not_available:"N/A",refresh_just_now:"Just now",download_button:"Download",delete_button:"Delete",delete_confirm:"Are you sure you want to delete file",delete_all_confirm:"Are you sure you want to delete all auth files? This operation cannot be undone!",delete_filtered_confirm:"Are you sure you want to delete all {{type}} auth files? This operation cannot be undone!",delete_problem_button:"Delete Problem Files",delete_problem_button_with_type:"Delete Problematic {{type}} Files",delete_problem_confirm:"Are you sure you want to delete all problematic auth files? This operation cannot be undone!",delete_problem_filtered_confirm:"Are you sure you want to delete all problematic {{type}} auth files? This operation cannot be undone!",upload_error_json:"Only JSON files are allowed",upload_error_size:"File size cannot exceed {{maxSize}}",upload_success:"File uploaded successfully",download_success:"File downloaded successfully",delete_success:"File deleted successfully",delete_all_success:"Successfully deleted",delete_filtered_success:"Deleted {{count}} {{type}} auth files successfully",delete_filtered_partial:"{{type}} auth files deletion finished: {{success}} succeeded, {{failed}} failed",delete_filtered_none:"No deletable auth files under the current filter ({{type}})",delete_problem_success:"Deleted {{count}} problematic auth files successfully",delete_problem_filtered_success:"Deleted {{count}} problematic {{type}} auth files successfully",delete_problem_partial:"Problematic auth files deletion finished: {{success}} succeeded, {{failed}} failed",delete_problem_filtered_partial:"Problematic {{type}} auth files deletion finished: {{success}} succeeded, {{failed}} failed",delete_problem_none:"No deletable problematic auth files under the current filter",delete_problem_filtered_none:"No deletable problematic {{type}} auth files under the current filter",files_count:"files",pagination_prev:"Previous",pagination_next:"Next",pagination_info:"Page {{current}} / {{total}} · {{count}} files",search_label:"Search configs",search_placeholder:"Filter by name, type, or provider. Use * as a wildcard",problem_filter_label:"Problem Filter",problem_filter_only:"Only show problematic credentials",display_options_label:"Display options",compact_mode_label:"Compact mode",sort_label:"Sort",sort_default:"Default",sort_az:"A-Z Name",sort_priority:"Priority",priority_display:"Priority",page_size_label:"Per page",page_size_unit:"items",view_mode_paged:"Paged",view_mode_all:"Show all",too_many_files_warning:"Too many credentials. Showing all may cause performance issues, please use paged view.",filter_all:"All",filter_qwen:"Qwen",filter_gemini:"Gemini","filter_gemini-cli":"GeminiCLI",filter_kimi:"Kimi",filter_aistudio:"AIStudio",filter_claude:"Claude",filter_codex:"Codex",filter_antigravity:"Antigravity",filter_iflow:"iFlow",filter_vertex:"Vertex",filter_empty:"Empty",filter_unknown:"Other",type_qwen:"Qwen",type_gemini:"Gemini","type_gemini-cli":"GeminiCLI",type_kimi:"Kimi",type_aistudio:"AIStudio",type_claude:"Claude",type_codex:"Codex",type_antigravity:"Antigravity",type_iflow:"iFlow",type_vertex:"Vertex",type_empty:"Empty",type_unknown:"Other",type_virtual:"Virtual auth file",models_button:"Models",models_title:"Supported models",models_loading:"Loading model list...",models_empty:"No available models for this credential",models_empty_desc:"This credential may not be loaded by the server yet, or no models are bound to it.",models_unsupported:"This feature is not supported in the current version",models_unsupported_desc:"Please update CLI Proxy API to the latest version and try again",models_excluded_badge:"Disabled",models_excluded_hint:"This OAuth model is disabled",status_toggle_label:"Enabled",status_enabled_success:'"{{name}}" enabled',status_disabled_success:'"{{name}}" disabled',batch_status_success:"{{count}} files updated successfully",batch_status_partial:"{{success}} updated, {{failed}} failed",batch_delete_title:"Delete Selected Files",batch_delete_confirm:"Are you sure you want to delete {{count}} files?",batch_selected:"{{count}} selected",batch_select_all:"Select All",batch_select_page:"Select page",batch_select_filtered:"Select filtered",batch_invert_page:"Invert page",batch_deselect:"Deselect",batch_download:"Download selected",batch_download_success:"Started downloading {{count}} files",batch_download_partial:"Download finished: {{success}} succeeded, {{failed}} failed",batch_enable:"Enable",batch_disable:"Disable",prefix_proxy_button:"Auth File Details / Edit",auth_field_editor_title:"Auth File Details / Edit - {{name}}",prefix_proxy_loading:"Loading auth file...",prefix_proxy_info_label:"Auth file info (info)",prefix_proxy_source_label:"Auth file JSON (preview)",prefix_label:"Prefix (prefix)",proxy_url_label:"Proxy URL (proxy_url)",prefix_placeholder:"",proxy_url_placeholder:"socks5://username:password@proxy_ip:port/",priority_label:"Priority (priority)",priority_placeholder:"e.g. 10 or -1",priority_hint:"Integers only. Invalid values are ignored. Larger value means higher priority.",excluded_models_label:"Excluded models (excluded_models)",excluded_models_placeholder:"Comma or newline separated, e.g. model-a, gpt-5-*, *-preview",excluded_models_hint:"Saved as an array and normalized by trim/lowercase/dedup/sort.",disable_cooling_label:"Disable cooling (disable_cooling)",disable_cooling_placeholder:"e.g. true / false / 1 / 0",disable_cooling_hint:"Supports booleans, numeric 0/non-0, and strings like true/false/1/0; unparseable values are ignored.",note_label:"Note",note_placeholder:"Enter a note, e.g.: John's account",note_hint:"Optional. Used to describe the purpose or owner of this credential; leave empty to omit.",note_display:"Note",prefix_proxy_invalid_json:"This auth file is not a JSON object, so fields cannot be edited.",prefix_proxy_saved_success:'Updated auth file "{{name}}" successfully',quota_refresh_success:'Quota refreshed for "{{name}}"',quota_refresh_failed:'Failed to refresh quota for "{{name}}": {{message}}'},EH={title:"Antigravity Quota",empty_title:"No Antigravity Auth Files",empty_desc:"Upload an Antigravity credential to view remaining quota.",idle:"Click here to refresh quota",loading:"Loading quota...",load_failed:"Failed to load quota: {{message}}",missing_auth_index:"Auth file missing auth_index",empty_models:"No quota data available",refresh_button:"Refresh Quota",fetch_all:"Fetch All"},jH={title:"Claude Quota",empty_title:"No Claude OAuth Files",empty_desc:"Log in with Claude OAuth to view quota.",idle:"Click here to refresh quota",loading:"Loading quota...",load_failed:"Failed to load quota: {{message}}",missing_auth_index:"Auth file missing auth_index",empty_windows:"No quota data available",refresh_button:"Refresh Quota",fetch_all:"Fetch All",five_hour:"5-hour limit",seven_day:"7-day limit",seven_day_oauth_apps:"7-day OAuth apps",seven_day_opus:"7-day Opus",seven_day_sonnet:"7-day Sonnet",seven_day_cowork:"7-day Cowork",iguana_necktie:"Iguana Necktie",extra_usage_label:"Extra Usage",plan_label:"Plan",plan_unknown:"Unknown",plan_free:"Free",plan_pro:"Pro",plan_max:"Max",plan_max5:"Max 5x",plan_max20:"Max 20x"},RH={title:"Codex Quota",empty_title:"No Codex Auth Files",empty_desc:"Upload a Codex credential to view quota.",idle:"Click here to refresh quota",loading:"Loading quota...",load_failed:"Failed to load quota: {{message}}",missing_auth_index:"Auth file missing auth_index",missing_account_id:"Codex credential missing ChatGPT account ID",empty_windows:"No quota data available",no_access:"This credential has no Codex access (plan: free).",refresh_button:"Refresh Quota",fetch_all:"Fetch All",primary_window:"5-hour limit",secondary_window:"Weekly limit",code_review_primary_window:"Code review 5-hour limit",code_review_secondary_window:"Code review weekly limit",additional_primary_window:"{{name}} 5-hour limit",additional_secondary_window:"{{name}} weekly limit",plan_label:"Plan",plan_plus:"Plus",plan_team:"Team",plan_free:"Free",plan_pro:"Pro"},DH={title:"Gemini CLI Quota",empty_title:"No Gemini CLI Auth Files",empty_desc:"Upload a Gemini CLI credential to view remaining quota.",idle:"Click here to refresh quota",loading:"Loading quota...",load_failed:"Failed to load quota: {{message}}",missing_auth_index:"Auth file missing auth_index",missing_project_id:"Gemini CLI credential missing project ID",empty_buckets:"No quota data available",refresh_button:"Refresh Quota",fetch_all:"Fetch All",remaining_amount:"Remaining {{count}}",tier_label:"Tier",tier_free:"Free",tier_legacy:"Legacy",tier_standard:"Standard",tier_pro:"Pro",tier_ultra:"Ultra",credit_label:"Google One AI Credits",credit_amount:"{{count}} credits"},FH={title:"Kimi Quota",empty_title:"No Kimi Auth Files",empty_desc:"Upload a Kimi credential to view remaining quota.",idle:"Click here to refresh quota",loading:"Loading quota...",load_failed:"Failed to load quota: {{message}}",missing_auth_index:"Auth file missing auth_index",empty_data:"No quota data available",refresh_button:"Refresh Quota",fetch_all:"Fetch All",weekly_limit:"Weekly limit",limit_window:"{{duration}} limit",limit_index:"Limit #{{index}}",reset_hint:"resets in {{hint}}"},IH={title:"Vertex JSON Login",description:"Upload a Google service account JSON to store it as auth-dir/vertex-<project>.json using the same rules as the CLI vertex-import helper.",location_label:"Region (optional)",location_placeholder:"us-central1",location_hint:"Leave empty to use the default region us-central1.",file_label:"Service account key JSON",file_hint:"Only Google Cloud service account key JSON files are accepted.",file_placeholder:"No file selected",choose_file:"Choose File",import_button:"Import Vertex Credential",file_required:"Select a .json credential file first",success:"Vertex credential imported successfully",result_title:"Credential saved",result_project:"Project ID",result_email:"Service account",result_location:"Region",result_file:"Persisted file"},UH={title:"OAuth Model Disablement",description:"Per-provider model disablement is shown as cards; click a card to edit or delete. Wildcards * are supported and the scope follows the auth file filter.",add:"Add Disablement",add_title:"Add provider model disablement",edit_title:"Edit model disablement for {{provider}}",refresh:"Refresh",refreshing:"Refreshing...",provider_label:"Provider",provider_auto:"Follow current filter",provider_placeholder:"e.g. gemini-cli",provider_hint:"Defaults to the current filter; pick an existing provider or type a new name.",models_label:"Models to disable",models_loading:"Loading models...",models_unsupported:"Current CPA version does not support fetching model lists.",models_loaded:"{{count}} models loaded. Check the models to disable.",no_models_available:"No models available for this provider.",save:"Save/Update",saving:"Saving...",save_success:"Model disablement updated",save_failed:"Failed to update model disablement",delete:"Delete Provider",delete_confirm:"Delete model disablement for {{provider}}?",delete_success:"Provider model disablement removed",delete_failed:"Failed to delete model disablement",deleting:"Deleting...",no_models:"No disabled models configured",model_count:"{{count}} models disabled",list_empty_all:"No provider model disablement yet; click “Add Disablement” to create one.",list_empty_filtered:"No disabled items in this scope; click “Add Disablement” to add.",disconnected:"Connect to the server to view model disablement",load_failed:"Failed to load model disablement",provider_required:"Please enter a provider first",scope_all:"Scope: All providers",scope_provider:"Scope: {{provider}}",upgrade_required:"Current CPA version does not support OAuth model disablement. Please upgrade.",upgrade_required_title:"Please upgrade CLI Proxy API",upgrade_required_desc:"The current server version does not support fetching OAuth model disablement. Please upgrade to the latest CPA (CLI Proxy API) version and try again."},BH={title:"OAuth Model Aliases",add:"Add Alias",add_title:"Add provider model aliases",provider_label:"Provider",provider_placeholder:"e.g. gemini-cli / vertex",provider_hint:"Defaults to the current filter; pick an existing provider or type a new name.",model_source_loading:"Loading models...",model_source_unsupported:"The current CPA version does not support fetching model lists (manual input still works).",model_source_loaded:"{{count}} models loaded. Use the dropdown in 'Source model name', or type custom values. Saving an empty list removes that provider. Enable 'Keep original' to keep the original name while adding the alias.",alias_label:"Model aliases",alias_name_placeholder:"Source model name",alias_placeholder:"Alias (required)",alias_fork_label:"Keep original",add_alias:"Add alias",save:"Save/Update",save_success:"Model aliases updated",save_failed:"Failed to update model aliases",delete:"Delete Provider",delete_confirm:"Delete model aliases for {{provider}}?",delete_link_title:"Unlink mapping",delete_link_confirm:"Unlink mapping from <code>{{sourceModel}}</code> ({{provider}}) to alias <code>{{alias}}</code>?",delete_alias_title:"Delete Alias",delete_alias_confirm:"Delete alias <code>{{alias}}</code> and unmap all associated models?",delete_success:"Model aliases removed",delete_failed:"Failed to delete model aliases",no_models:"No model aliases",model_count:"{{count}} aliases",list_empty_all:"No model aliases yet—use “Add Alias” to create one.",chart_title:"All mappings overview",diagram_providers:"Providers",diagram_source_models:"Source Models",diagram_aliases:"Aliases",diagram_expand:"Expand",diagram_collapse:"Collapse",diagram_add_alias:"Add Alias",diagram_rename:"Rename",diagram_rename_alias_title:"Rename alias",diagram_rename_alias_label:"New alias name",diagram_rename_placeholder:"Enter alias name...",diagram_delete_link:"Unlink from {{provider}} / {{name}}",diagram_delete_alias:"Delete alias",diagram_please_enter_alias:"Please enter an alias name.",diagram_alias_exists:"This alias already exists.",diagram_add_alias_title:"Add alias",diagram_add_alias_label:"Alias name",diagram_add_placeholder:"Enter new alias name...",diagram_rename_btn:"Rename",diagram_add_btn:"Add",diagram_settings:"Settings",diagram_settings_title:"Alias settings — {{alias}}",diagram_settings_source_title:"Source model settings",diagram_settings_empty:"No mappings for this alias yet.",diagram_tap_hint:"On touch devices: tap a source model, then tap an alias to link.",view_mode:"View mode",view_mode_diagram:"Diagram",view_mode_list:"List",provider_required:"Please enter a provider first",upgrade_required:"This feature requires a newer CLI Proxy API (CPA) version. Please upgrade.",upgrade_required_title:"Please upgrade CLI Proxy API",upgrade_required_desc:"The current server does not support the OAuth model aliases API. Please upgrade to the latest CLI Proxy API (CPA) version."},zH={codex_oauth_title:"Codex OAuth",codex_oauth_button:"Start Codex Login",codex_oauth_hint:"Login to Codex service through OAuth flow, automatically obtain and save authentication files.",codex_oauth_url_label:"Authorization URL:",codex_open_link:"Open Link",codex_copy_link:"Copy Link",codex_oauth_status_waiting:"Waiting for authentication...",codex_oauth_status_success:"Authentication successful!",codex_oauth_status_error:"Authentication failed:",codex_oauth_start_error:"Failed to start Codex OAuth:",codex_oauth_polling_error:"Failed to check authentication status:",anthropic_oauth_title:"Anthropic OAuth",anthropic_oauth_button:"Start Anthropic Login",anthropic_oauth_hint:"Login to Anthropic (Claude) service through OAuth flow, automatically obtain and save authentication files.",anthropic_oauth_url_label:"Authorization URL:",anthropic_open_link:"Open Link",anthropic_copy_link:"Copy Link",anthropic_oauth_status_waiting:"Waiting for authentication...",anthropic_oauth_status_success:"Authentication successful!",anthropic_oauth_status_error:"Authentication failed:",anthropic_oauth_start_error:"Failed to start Anthropic OAuth:",anthropic_oauth_polling_error:"Failed to check authentication status:",antigravity_oauth_title:"Antigravity OAuth",antigravity_oauth_button:"Start Antigravity Login",antigravity_oauth_hint:"Login to Antigravity service (Google account) through OAuth flow, automatically obtain and save authentication files.",antigravity_oauth_url_label:"Authorization URL:",antigravity_open_link:"Open Link",antigravity_copy_link:"Copy Link",antigravity_oauth_status_waiting:"Waiting for authentication...",antigravity_oauth_status_success:"Authentication successful!",antigravity_oauth_status_error:"Authentication failed:",antigravity_oauth_start_error:"Failed to start Antigravity OAuth:",antigravity_oauth_polling_error:"Failed to check authentication status:",gemini_cli_oauth_title:"Gemini CLI OAuth",gemini_cli_oauth_button:"Start Gemini CLI Login",gemini_cli_oauth_hint:"Login to Google Gemini CLI service through OAuth flow, automatically obtain and save authentication files.",gemini_cli_project_id_label:"Google Cloud Project ID (Optional):",gemini_cli_project_id_placeholder:"Leave blank to auto-select first available project",gemini_cli_project_id_hint:"Optional. If not provided, the system will automatically select the first available project from your account. Enter ALL to fetch all projects.",gemini_cli_project_id_required:"Please enter a Google Cloud project ID.",gemini_cli_oauth_url_label:"Authorization URL:",gemini_cli_open_link:"Open Link",gemini_cli_copy_link:"Copy Link",gemini_cli_oauth_status_waiting:"Waiting for authentication...",gemini_cli_oauth_status_success:"Authentication successful!",gemini_cli_oauth_status_error:"Authentication failed:",gemini_cli_oauth_start_error:"Failed to start Gemini CLI OAuth:",gemini_cli_oauth_polling_error:"Failed to check authentication status:",kimi_oauth_title:"Kimi OAuth",kimi_oauth_button:"Start Kimi Login",kimi_oauth_hint:"Login to Kimi service through OAuth device flow, automatically obtain and save authentication files.",kimi_oauth_url_label:"Authorization URL:",kimi_open_link:"Open Link",kimi_copy_link:"Copy Link",kimi_oauth_status_waiting:"Waiting for authentication...",kimi_oauth_status_success:"Authentication successful!",kimi_oauth_status_error:"Authentication failed:",kimi_oauth_start_error:"Failed to start Kimi OAuth:",kimi_oauth_polling_error:"Failed to check authentication status:",qwen_oauth_title:"Qwen OAuth",qwen_oauth_button:"Start Qwen Login",qwen_oauth_hint:"Login to Qwen service through device authorization flow, automatically obtain and save authentication files.",qwen_oauth_url_label:"Authorization URL:",qwen_open_link:"Open Link",qwen_copy_link:"Copy Link",qwen_oauth_status_waiting:"Waiting for authentication...",qwen_oauth_status_success:"Authentication successful!",qwen_oauth_status_error:"Authentication failed:",qwen_oauth_start_error:"Failed to start Qwen OAuth:",qwen_oauth_polling_error:"Failed to check authentication status:",oauth_callback_label:"Callback URL",oauth_callback_placeholder:"http://localhost:1455/auth/callback?code=...&state=...",oauth_callback_hint:"Remote browser mode: after the provider redirects to http://localhost:..., copy the full URL and submit it here.",oauth_callback_button:"Submit Callback URL",oauth_callback_required:"Please paste the full redirect URL first.",oauth_callback_success:"Callback URL submitted. Continue waiting for authentication.",oauth_callback_error:"Failed to submit callback URL:",oauth_callback_upgrade_hint:"Please update CLI Proxy API or check the connection.",oauth_callback_status_success:"Callback URL submitted, waiting for authentication...",oauth_callback_status_error:"Callback URL submission failed:",missing_state:"Unable to retrieve authentication state parameter",iflow_oauth_title:"iFlow OAuth",iflow_oauth_button:"Start iFlow Login",iflow_oauth_hint:"Login to iFlow service through OAuth flow, automatically obtain and save authentication files.",iflow_oauth_url_label:"Authorization URL:",iflow_open_link:"Open Link",iflow_copy_link:"Copy Link",iflow_oauth_status_waiting:"Waiting for authentication...",iflow_oauth_status_success:"Authentication successful!",iflow_oauth_status_error:"Authentication failed:",iflow_oauth_start_error:"Failed to start iFlow OAuth:",iflow_oauth_polling_error:"Failed to check authentication status:",iflow_cookie_title:"iFlow Cookie Login",iflow_cookie_label:"Cookie Value:",iflow_cookie_placeholder:"Enter the BXAuth value, starting with BXAuth=",iflow_cookie_hint:"Submit an existing cookie to finish login without opening the authorization link; the credential file will be saved automatically.",iflow_cookie_key_hint:"Note: Create a key on the platform first.",iflow_cookie_button:"Submit Cookie Login",iflow_cookie_status_success:"Cookie login succeeded and credentials are saved.",iflow_cookie_status_error:"Cookie login failed:",iflow_cookie_status_duplicate:"Duplicate config:",iflow_cookie_start_error:"Failed to submit cookie login:",iflow_cookie_config_duplicate:"A config file already exists (duplicate). Remove the existing file and try again if you want to re-save it.",iflow_cookie_required:"Please provide the Cookie value first.",iflow_cookie_result_title:"Cookie Login Result",iflow_cookie_result_email:"Account",iflow_cookie_result_expired:"Expires At",iflow_cookie_result_path:"Saved Path",iflow_cookie_result_type:"Type",remote_access_disabled:"This login method is not available for remote access. Please access from localhost."},qH={title:"Usage Statistics",total_requests:"Total Requests",success_requests:"Success Requests",failed_requests:"Failed Requests",total_tokens:"Total Tokens",cached_tokens:"Cached Tokens",reasoning_tokens:"Reasoning Tokens",rpm_30m:"RPM",tpm_30m:"TPM",rate_30m:"Rate (last 30 min)",model_name:"Model Name",model_price_settings:"Model Pricing Settings",saved_prices:"Saved Prices",requests_trend:"Request Trends",tokens_trend:"Token Usage Trends",api_details:"API Details",by_hour:"By Hour",by_day:"By Day",range_filter:"Time Range",range_all:"All Time",range_7h:"Last 7 Hours",range_24h:"Last 24 Hours",range_7d:"Last 7 Days",filter_all:"All",clear_filters:"Clear Filters",refresh:"Refresh",export:"Export",import:"Import",export_csv:"Export CSV",export_json:"Export JSON",export_success:"Usage export downloaded",import_success:"Import complete: added {{added}}, skipped {{skipped}}, total {{total}}, failed {{failed}}",import_invalid:"Invalid usage export file",chart_line_label_1:"Line 1",chart_line_label_2:"Line 2",chart_line_label_3:"Line 3",chart_line_label_4:"Line 4",chart_line_label_5:"Line 5",chart_line_label_6:"Line 6",chart_line_label_7:"Line 7",chart_line_label_8:"Line 8",chart_line_label_9:"Line 9",chart_line_hidden:"Hide",chart_line_actions_label:"Lines to display",chart_line_add:"Add line",chart_line_all:"All",chart_line_delete:"Delete line",chart_line_hint:"Show up to 9 model lines at once",no_data:"No Data Available",loading_error:"Loading Failed",api_endpoint:"API Endpoint",requests_count:"Request Count",tokens_count:"Token Count",models:"Model Statistics",success_rate:"Success Rate",total_cost:"Total Cost",total_cost_hint:"Based on configured model pricing",model_price_title:"Model Pricing",model_price_reset:"Clear Prices",model_price_model_label:"Model",model_price_select_placeholder:"Choose a model",model_price_select_hint:"Models come from usage details",model_price_prompt:"Prompt price",model_price_completion:"Completion price",model_price_cache:"Cache price",model_price_save:"Save Price",model_price_empty:"No model prices set",model_price_model:"Model",model_price_saved:"Model price saved",model_price_model_required:"Please choose a model to set pricing",cost_trend:"Cost Overview",cost_axis_label:"Cost ($)",cost_need_price:"Set a model price to view cost stats",cost_need_usage:"No usage data available to calculate cost",cost_no_data:"No cost data yet",credential_stats:"Credential Statistics",credential_name:"Credential",token_breakdown:"Token Type Breakdown",request_events_title:"Request Events",request_events_filter_model:"Model",request_events_filter_source:"Source",request_events_filter_auth_index:"Auth Index",request_events_timestamp:"Timestamp",request_events_source:"Source",request_events_auth_index:"Auth Index",request_events_result:"Result",request_events_empty_title:"No request events",request_events_empty_desc:"No request details are available for the selected time range.",request_events_no_result_title:"No matching events",request_events_no_result_desc:"Try different filters or clear the current filters.",request_events_count:"{{count}} events",request_events_limit_hint:"Showing {{shown}} of {{total}} events to keep rendering responsive.",input_tokens:"Input Tokens",output_tokens:"Output Tokens",last_updated:"Updated"},KH={success:"Success",failure:"Failure"},HH={success_short:"✓",failure_short:"✗",no_requests:"No requests"},VH={title:"Service Health",window:"Last 7 days",oldest:"Oldest",newest:"Latest"},WH={title:"Logs Viewer",refresh_button:"Refresh Logs",clear_button:"Clear Logs",download_button:"Download Logs",error_log_button:"Select Error Log",error_logs_modal_title:"Error Request Logs",error_logs_description:"Pick an error request log file to download (only generated when request logging is off).",error_logs_request_log_enabled:"Request logging is enabled, so this list will always be empty. Disable request logging and refresh to view error logs.",error_logs_empty:"No error request log files found",error_logs_load_error:"Failed to load error log list",error_logs_size:"Size",error_logs_modified:"Last modified",error_logs_download:"Download",error_log_download_success:"Error log downloaded successfully",request_log_download_title:"Download Request Log",request_log_download_confirm:"Download request log for ID {{id}}?",request_log_download_success:"Request log downloaded successfully",empty_title:"No Logs Available",empty_desc:'When "Enable logging to file" is enabled, logs will be displayed here',log_content:"Log Content",loading:"Loading logs...",load_error:"Failed to load logs",clear_confirm:"Are you sure you want to clear all logs? This action cannot be undone!",clear_success:"Logs cleared successfully",download_success:"Logs downloaded successfully",auto_refresh:"Auto Refresh",auto_refresh_enabled:"Auto refresh enabled",auto_refresh_disabled:"Auto refresh disabled",load_more_hint:"Scroll up to load more",hidden_lines:"Hidden: {{count}} lines",loaded_lines:"Loaded: {{count}} lines",filtered_lines:"Filtered: {{count}} lines",hide_management_logs:"Hide {{prefix}} logs",show_raw_logs:"Show Raw Logs",show_raw_logs_hint:"Show original log text for easier multi-line copy",search_placeholder:"Search logs by content or keyword",filter_panel_title:"Structured Filters",filter_panel_expand:"Expand structured filters",filter_panel_collapse:"Collapse structured filters",filter_panel_active_count:"{{count}} active",filter_method:"Method",filter_status:"Status",filter_path:"Path",filter_path_empty:"No path candidates",filter_status_2xx:"2xx",filter_status_3xx:"3xx",filter_status_4xx:"4xx",filter_status_5xx:"5xx",clear_filters:"Clear Filters",trace_button:"Trace",trace_title:"Request Trace (V1)",trace_notice:"V1 uses heuristic correlation between logs and usage events. Results are estimates, not strict request_id matches.",trace_log_info:"Log Event",trace_candidates_title:"Usage Match Candidates",trace_loading:"Matching usage events...",trace_no_match:"No candidate matches found.",trace_usage_load_error:"Failed to load usage details for tracing",trace_download_request_log:"Download Request Log",trace_confidence_high:"High",trace_confidence_medium:"Medium",trace_confidence_low:"Low",trace_score:"Score {{score}}",trace_delta_seconds:"Δt {{seconds}}s",trace_model_matched:"Model Matched",trace_request_id:"Request ID",trace_method:"Method",trace_path:"Path",trace_status_code:"Status",trace_latency:"Latency",trace_ip:"IP",trace_timestamp:"Timestamp",trace_message:"Message",trace_endpoint:"Usage Endpoint",trace_model:"Model",trace_source:"Source",trace_auth_index:"Auth Index",trace_result:"Result",search_empty_title:"No matching logs found",search_empty_desc:"Try a different keyword or clear the filters.",double_click_copy_hint:"Double-click to copy raw log line",copy_success:"Log copied to clipboard",copy_failed:"Copy failed",lines:"lines",removed:"Filtered",upgrade_required_title:"Please Upgrade CLI Proxy API",upgrade_required_desc:"The current server version does not support the logs viewing feature. Please upgrade to the latest version of CLI Proxy API to use this feature."},GH={title:"Config Panel",editor_title:"Configuration File",reload:"Reload",reload_confirm_message:"Reloading will discard your unsaved changes. Do you want to continue?",save:"Save",description:"Edit config.yaml via visual editor or source file",status_idle:"Waiting for action",status_loading:"Loading configuration...",status_loading_short:"Loading",status_loaded:"Configuration loaded",status_loaded_short:"Loaded",status_dirty:"Unsaved changes",status_dirty_short:"Unsaved",status_disconnected:"Connect to the server to load the configuration",status_disconnected_short:"Disconnected",status_load_failed:"Load failed",status_load_failed_short:"Failed",status_saving:"Saving configuration...",status_saving_short:"Saving",status_saved:"Configuration saved",status_save_failed:"Save failed",save_success:"Configuration saved successfully",error_yaml_not_supported:"Server did not return YAML. Verify the /config.yaml endpoint is available.",visual_mode_unavailable:"Visual editor unavailable until YAML syntax is fixed",visual_mode_unavailable_short:"YAML issue",validation_blocked_short:"Fix errors",visual_mode_unavailable_detail:"Visual editor is unavailable because the configuration contains invalid YAML: {{message}}",visual_mode_save_blocked:"Cannot save from visual mode until the YAML syntax is fixed",visual_mode_latest_yaml_invalid:"The latest server configuration contains invalid YAML. Review it in source mode before saving visual changes: {{message}}",editor_placeholder:"key: value",search_placeholder:"Search config...",search_button:"Search",search_no_results:"No results",search_prev:"Previous",search_next:"Next",diff:{title:"Review Changes",current:"Current",modified:"Modified",confirm:"Confirm Save",no_changes:"No changes detected"},tabs:{visual:"Visual Editor",source:"Source File Editor"},visual:{notice:"Visual mode covers common fields. Review or edit unsupported config.yaml entries in source mode.",quick_jump:"Quick Jump",sections:{server:{title:"Server Configuration",description:"Basic server settings",host:"Host Address",port:"Port"},tls:{title:"TLS/SSL Configuration",description:"HTTPS secure connection settings",enable:"Enable TLS",enable_desc:"Enable HTTPS secure connection",cert:"Certificate File Path",key:"Private Key File Path"},remote:{title:"Remote Management",description:"Remote access and control panel settings",allow_remote:"Allow Remote Access",allow_remote_desc:"Allow management access from other hosts",disable_panel:"Disable Control Panel",disable_panel_desc:"Disable the built-in web control panel",secret_key:"Management Key",secret_key_placeholder:"Set management key",panel_repo:"Panel Repository"},auth:{title:"Authentication Configuration",description:"API keys and authentication directory settings",auth_dir:"Auth Directory (auth-dir)",auth_dir_hint:"Directory path for authentication files (supports ~)"},system:{title:"System Configuration",description:"Debug, logging, statistics, and performance settings",debug:"Debug Mode",debug_desc:"Enable verbose debug logging",commercial_mode:"Commercial Mode",commercial_mode_desc:"Disable high-overhead middleware to support high concurrency",logging_to_file:"Log to File",logging_to_file_desc:"Save logs to files",usage_statistics:"Usage Statistics",usage_statistics_desc:"Collect usage statistics",logs_max_size:"Log File Size Limit (MB)"},network:{title:"Network Configuration",description:"Proxy, retry, and routing settings",proxy_url:"Proxy URL",request_retry:"Request Retry Count",max_retry_credentials:"Max Retry Credentials",max_retry_credentials_hint:"Leave empty to keep it unset. Set to 0 to preserve legacy behavior and try all available credentials.",max_retry_interval:"Max Retry Interval (seconds)",routing_strategy:"Routing Strategy",routing_strategy_hint:"Select credential selection strategy",strategy_round_robin:"Round Robin",strategy_fill_first:"Fill First",force_model_prefix:"Force Model Prefix",force_model_prefix_desc:"Unprefixed model requests only use credentials without prefix",ws_auth:"WebSocket Authentication",ws_auth_desc:"Enable WebSocket authentication (/v1/ws)"},quota:{title:"Quota Fallback",description:"Fallback strategy when quota is exceeded",switch_project:"Switch Project",switch_project_desc:"Automatically switch to another project when quota is exceeded",switch_preview_model:"Switch to Preview Model",switch_preview_model_desc:"Switch to preview model version when quota is exceeded"},streaming:{title:"Streaming Configuration",description:"Keepalive and bootstrap retry settings",keepalive_seconds:"Keepalive Seconds",keepalive_hint:"Set to 0 or leave empty to disable keepalive",bootstrap_retries:"Bootstrap Retries",bootstrap_hint:"Number of retries during stream startup (before first byte)",nonstream_keepalive:"Non-stream Keepalive Interval (seconds)",nonstream_keepalive_hint:"Send blank lines every N seconds for non-streaming responses to prevent idle timeout, set to 0 or leave empty to disable",disabled:"Disabled"},payload:{title:"Payload Configuration",description:"Default values, raw JSON rules, override rules, and filter rules",default_rules:"Default Rules",default_rules_desc:"Use these default values when parameters are not specified in the request",default_raw_rules:"Default Raw Rules",default_raw_rules_desc:'When parameters are missing, write these values as raw JSON fragments such as true, 123, "high", or {"type":"object"}',override_rules:"Override Rules",override_rules_desc:"Force override parameter values in the request",override_raw_rules:"Override Raw Rules",override_raw_rules_desc:"Always overwrite parameter values as raw JSON fragments, useful for response_format, schemas, and other complex fields",filter_rules:"Filter Rules",filter_rules_desc:"Pre-filter upstream request body via JSON Path, automatically remove non-compliant/redundant parameters (Request Sanitization)"}},api_keys:{label:"API Keys List (api-keys)",add:"Add API Key",generate:"Generate",empty:"No API keys",hint:"Each entry represents an API key (consistent with 'API Key Management' page style)",edit_title:"Edit API Key",add_title:"Add API Key",input_label:"API Key",input_placeholder:"Paste your API key",input_hint:"This only modifies the local config file content, it will not sync to the API Key Management interface",error_empty:"Please enter an API key",error_invalid:"API key contains invalid characters"},payload_rules:{rule:"Rule",models:"Applicable Models",model_name:"Model Name",provider_type:"Provider Type",add_model:"Add Model",params:"Parameter Settings",remove_params:"Remove Parameters",json_path:"JSON Path (e.g., temperature)",json_path_filter:"JSON Path (gjson/sjson), e.g., generationConfig.thinkingConfig.thinkingBudget",param_type:"Parameter Type",param_value:"Parameter Value",add_param:"Add Parameter",no_rules:"No rules",add_rule:"Add Rule",provider_default:"Default",provider_openai:"OpenAI",provider_openai_response:"OpenAI Response",provider_gemini:"Gemini",provider_claude:"Claude",provider_codex:"Codex",provider_antigravity:"Antigravity",value_type_string:"String",value_type_number:"Number",value_type_boolean:"Boolean",value_type_json:"JSON",value_string:"String value",value_number:"Number value (e.g., 0.7)",value_boolean:"true or false",value_json:"JSON value",value_raw_json:'Raw JSON fragment, e.g. true, 123, "high", or {"type":"object"}',value_default:"Value",boolean_true:"true",boolean_false:"false"},validation:{validation_blocked:"Fix validation errors before saving",port_range:"Enter a valid port between 1 and 65535",non_negative_integer:"Enter a non-negative whole number",payload_invalid_number:"Enter a valid number",payload_invalid_boolean:"Choose true or false",payload_invalid_json:"Enter valid JSON"},common:{edit:"Edit",delete:"Delete",cancel:"Cancel",update:"Update",add:"Add"}}},$H={title:"Quota Management",description:"Monitor OAuth quota status for Antigravity, Codex, and Gemini CLI credentials.",refresh_files:"Refresh auth files",refresh_files_and_quota:"Refresh files & quota",refresh_all_credentials:"Refresh all credentials",card_idle_hint:'Use the top "Refresh all credentials" button to fetch the latest quota data.'},XH={title:"Management Center Info",about_title:"CLI Proxy API Management Center",connection_status_title:"Connection Status",api_status_label:"API Status:",config_status_label:"Config Status:",last_update_label:"Last Update:",cache_data:"Cache Data",real_time_data:"Real-time Data",not_loaded:"Not Loaded",seconds_ago:"seconds ago",models_title:"Available Models",models_desc:"Shows the /models response and uses saved API keys for auth automatically.",models_loading:"Loading available models...",models_empty:"No models returned by /models",models_error:"Failed to load model list",models_count:"{{count}} available models",version_check_title:"Update Check",version_check_desc:"Call the /latest-version endpoint to compare with the server version and see if an update is available.",version_current_label:"Current version",version_latest_label:"Latest version",version_check_button:"Check for updates",version_check_idle:"Click to check for updates",version_checking:"Checking for the latest version...",version_update_available:"An update is available: {{version}}",version_is_latest:"You are on the latest version",version_check_error:"Update check failed",version_current_missing:"Server version is unavailable; cannot compare",version_unknown:"Unknown",quick_links_title:"Quick Links",quick_links_desc:"Access project repositories and documentation for help and updates.",link_main_repo:"Main Repository",link_main_repo_desc:"CLI Proxy API core program source code",link_webui_repo:"WebUI Repository",link_webui_repo_desc:"Management Center frontend source code",link_docs:"Documentation",link_docs_desc:"Usage tutorials and configuration guides",clear_login_title:"Local Login Data",clear_login_desc:"Clear locally saved login data and sign out. Usage stats pricing settings will remain untouched.",clear_login_button:"Clear login data",clear_login_confirm:"Clear local login data and sign out now?"},QH={debug_updated:"Debug settings updated",proxy_updated:"Proxy settings updated",proxy_cleared:"Proxy settings cleared",retry_updated:"Retry settings updated",quota_switch_project_updated:"Project switch settings updated",quota_switch_preview_updated:"Preview model switch settings updated",usage_statistics_updated:"Usage statistics settings updated",logging_to_file_updated:"Logging settings updated",logs_max_total_size_updated:"Log size limit updated",request_log_updated:"Request logging setting updated",force_model_prefix_updated:"Model prefix setting updated",ws_auth_updated:"WebSocket authentication setting updated",routing_strategy_updated:"Routing strategy updated",login_storage_cleared:"Local login data cleared",api_key_added:"API key added successfully",api_key_updated:"API key updated successfully",api_key_deleted:"API key deleted successfully",api_key_invalid_chars:"API key can only contain letters, numbers, and symbols",gemini_key_added:"Gemini key added successfully",gemini_key_updated:"Gemini key updated successfully",gemini_key_deleted:"Gemini key deleted successfully",gemini_multi_input_required:"Please enter at least one Gemini key",gemini_multi_failed:"Gemini bulk add failed",gemini_multi_summary:"Gemini bulk add finished: {{success}} added, {{skipped}} skipped, {{failed}} failed",codex_config_added:"Codex configuration added successfully",codex_config_updated:"Codex configuration updated successfully",codex_config_deleted:"Codex configuration deleted successfully",codex_base_url_required:"Please enter the Codex Base URL",claude_config_added:"Claude configuration added successfully",claude_config_updated:"Claude configuration updated successfully",claude_config_deleted:"Claude configuration deleted successfully",vertex_config_added:"Vertex configuration added successfully",vertex_config_updated:"Vertex configuration updated successfully",vertex_config_deleted:"Vertex configuration deleted successfully",config_enabled:"Configuration enabled",config_disabled:"Configuration disabled",field_required:"Required fields cannot be empty",openai_provider_required:"Please fill in provider name and Base URL",openai_provider_added:"OpenAI provider added successfully",openai_provider_updated:"OpenAI provider updated successfully",openai_provider_deleted:"OpenAI provider deleted successfully",ampcode_updated:"Ampcode configuration updated",ampcode_upstream_api_key_cleared:"Ampcode upstream API key override cleared",openai_model_name_required:"Model name is required",openai_test_url_required:"Please provide a valid Base URL before testing",openai_test_key_required:"Please add at least one API key before testing",openai_test_model_required:"Please select a model to test",data_refreshed:"Data refreshed successfully",connection_required:"Please establish connection first",refresh_failed:"Refresh failed",update_failed:"Update failed",add_failed:"Add failed",delete_failed:"Delete failed",upload_failed:"Upload failed",download_failed:"Download failed",login_failed:"Login failed",please_enter:"Please enter",please_fill:"Please fill",provider_name_url:"provider name and Base URL",api_key:"API key",gemini_api_key:"Gemini API key",codex_api_key:"Codex API key",claude_api_key:"Claude API key",commercial_mode_restart_required:"Commercial mode setting changed. Please restart the service for it to take effect",copy_failed:"Copy failed",link_copied:"Link copied to clipboard"},YH={switch:"Language",chinese:"中文",english:"English",russian:"Русский"},JH={switch:"Theme",light:"Wool Paper",white:"Pure White",dark:"Dark",switch_to_light:"Switch to wool paper mode",switch_to_dark:"Switch to dark mode",auto:"Follow system"},ZH={toggle_expand:"Expand sidebar",toggle_collapse:"Collapse sidebar"},eV={api_version:"CLI Proxy API Version",build_date:"Build Time",version:"Management UI Version",author:"Author"},tV={common:vH,title:xH,splash:SH,auto_login:wH,login:kH,header:CH,connection:AH,nav:NH,dashboard:TH,basic_settings:MH,api_keys:LH,ai_providers:OH,auth_files:PH,antigravity_quota:EH,claude_quota:jH,codex_quota:RH,gemini_cli_quota:DH,kimi_quota:FH,vertex_import:IH,oauth_excluded:UH,oauth_model_alias:BH,auth_login:zH,usage_stats:qH,stats:KH,status_bar:HH,service_health:VH,logs:WH,config_management:GH,quota_management:$H,system_info:XH,notification:QH,language:YH,theme:JH,sidebar:ZH,footer:eV},nV={login:"Войти",logout:"Выйти",back:"Назад",cancel:"Отмена",confirm:"Подтвердить",leave:"Уйти",stay:"Остаться",save:"Сохранить",delete:"Удалить",edit:"Редактировать",add:"Добавить",update:"Обновить",refresh:"Обновить",close:"Закрыть",success:"Успешно",error:"Ошибка",info:"Информация",warning:"Внимание",loading:"Загрузка...",connecting:"Подключение...",connected:"Подключено",disconnected:"Отключено",connecting_status:"Подключение",connected_status:"Подключено",disconnected_status:"Отключено",yes:"Да",no:"Нет",not_set:"Не задано",optional:"Необязательно",required:"Обязательно",api_key:"Ключ",base_url:"Адрес",prefix:"Префикс",proxy_url:"Прокси",priority:"Приоритет",alias:"Псевдоним",failure:"Сбой",unknown_error:"Неизвестная ошибка",quota_update_required:"Пожалуйста, обновите CPA или проверьте наличие обновлений",quota_check_credential:"Пожалуйста, проверьте статус учётных данных",copy:"Копировать",expand:"Развернуть",collapse:"Свернуть",status:"Статус",action:"Действие",custom_headers_label:"Пользовательские заголовки",custom_headers_hint:"Необязательно — HTTP-заголовки для отправки с запросом. Оставьте пустым для удаления.",custom_headers_add:"Добавить заголовок",custom_headers_key_placeholder:"Имя заголовка, например X-Custom-Header",custom_headers_value_placeholder:"Значение заголовка",model_name_placeholder:"Имя модели, напр. claude-3-5-sonnet-20241022",model_alias_placeholder:"Псевдоним модели (необязательно)",invalid_provider_index:"Неверный индекс провайдера.",unsaved_changes_title:"Несохранённые изменения",unsaved_changes_message:"У вас есть несохранённые изменения. Если вы уйдёте, они будут потеряны. Выйти?"},iV={main:"Центр управления CLI Proxy API",login:"Центр управления CLI Proxy API",abbr:"CPAMC"},sV={title:"CLI Proxy API",subtitle:"Центр управления"},aV={title:"Автовход...",message:"Пытаемся подключиться к серверу, используя сохранённые данные"},oV={subtitle:"Введите данные подключения, чтобы получить доступ к панели управления",connection_title:"Адрес подключения",connection_current:"Текущий URL",connection_auto_hint:"Система автоматически использует текущий URL для подключения",custom_connection_label:"Пользовательский URL подключения:",custom_connection_placeholder:"Напр.: https://example.com:8317",custom_connection_hint:"По умолчанию используется текущий URL. При необходимости замените его.",use_current_address:"Использовать текущий URL",remember_password_label:"Запомнить пароль",management_key_label:"Ключ управления:",management_key_placeholder:"Введите ключ управления",connect_button:"Подключиться",submit_button:"Войти",submitting:"Подключение...",error_title:"Ошибка входа",error_required:"Пожалуйста, заполните все данные подключения",error_invalid:"Подключение не удалось, проверьте адрес и ключ",error_network:"Сетевая ошибка, проверьте подключение или адрес сервера",error_timeout:"Время ожидания истекло, сервер не отвечает",error_unauthorized:"Аутентификация не удалась, неверный ключ управления",error_forbidden:"Доступ запрещён, недостаточно прав",error_not_found:"Неверный адрес сервера или интерфейс управления не включён",error_server:"Внутренняя ошибка сервера, попробуйте позже",error_cors:"Блокировка CORS, проверьте конфигурацию сервера",error_ssl:"Ошибка проверки SSL/TLS сертификата"},rV={check_connection:"Проверить подключение",refresh_all:"Обновить всё",logout:"Выйти"},lV={title:"Информация о подключении",server_address:"Адрес сервера:",management_key:"Ключ управления:",status:"Статус подключения:"},cV={dashboard:"Панель",basic_settings:"Основные настройки",api_keys:"API ключи",ai_providers:"Поставщики AI",auth_files:"Файлы аутентификации",oauth:"OAuth вход",quota_management:"Управление квотами",usage_stats:"Статистика использования",config_management:"Панель конфигурации",logs:"Просмотр логов",system_info:"Информация системы"},uV={title:"Панель управления",subtitle:"Добро пожаловать в Центр управления CLI Proxy API",openai_providers:"Поставщики OpenAI",quick_actions:"Быстрые действия",current_config:"Текущая конфигурация",management_keys:"Ключи управления",provider_keys_detail:"G:{{gemini}} C:{{codex}} Cl:{{claude}} O:{{openai}}",oauth_credentials:"Учётные данные OAuth",usage_overview:"Обзор использования",total_requests:"Всего запросов",total_tokens:"Всего токенов",rpm_30min:"RPM (30 мин)",tpm_30min:"TPM (30 мин)",models_used:"Используемые модели",no_usage_data:"Данные об использовании отсутствуют",view_detailed_usage:"Просмотреть детальную статистику",edit_settings:"Изменить настройки",routing_strategy:"Стратегия маршрутизации",available_models:"Доступные модели",available_models_desc:"Всего моделей от всех провайдеров",welcome_back:"С возвращением",greeting_morning:"Доброе утро",greeting_afternoon:"Добрый день",greeting_evening:"Добрый вечер",greeting_night:"Доброй ночи",caring_morning:"Новый день — начнём продуктивно.",caring_afternoon:"Уверенный прогресс — отличная работа.",caring_evening:"День подходит к концу — финальный рывок.",caring_night:"Поздняя работа? Не забудьте отдохнуть.",system_overview:"Обзор системы"},dV={title:"Основные настройки",debug_title:"Режим отладки",debug_enable:"Включить режим отладки",proxy_title:"Настройки прокси",proxy_url_label:"URL прокси:",proxy_url_placeholder:"например: socks5://user:pass@127.0.0.1:1080/",proxy_update:"Обновить",proxy_clear:"Очистить",retry_title:"Повтор запросов",retry_count_label:"Количество повторов:",retry_update:"Обновить",quota_title:"Поведение при превышении квоты",quota_switch_project:"Автоматически переключать проект",quota_switch_preview:"Переключаться на preview-модель",usage_statistics_title:"Статистика использования",usage_statistics_enable:"Включить статистику использования",logging_title:"Журналирование",logging_to_file_enable:"Включить журналирование в файл",logs_max_total_size_title:"Лимит размера журналов",logs_max_total_size_label:"Максимальный общий размер журналов (МБ):",logs_max_total_size_hint:"Установите 0, чтобы отключить лимит.",logs_max_total_size_update:"Обновить",request_log_title:"Журналирование запросов",request_log_enable:"Включить журналирование запросов",request_log_warning:"Оставьте выключенным, если подробная диагностика не нужна.",force_model_prefix_enable:"Включить принудительный префикс модели",ws_auth_title:"Аутентификация WebSocket",ws_auth_enable:"Требовать аутентификацию для /ws/*",routing_title:"Стратегия маршрутизации",routing_strategy_label:"Стратегия маршрутизации:",routing_strategy_hint:"round-robin циклически перебирает ключи; fill-first отдаёт приоритет первому доступному ключу.",routing_strategy_update:"Обновить",routing_strategy_round_robin:"round-robin (цикл)",routing_strategy_fill_first:"fill-first (приоритет)"},hV={title:"Управление API-ключами",proxy_auth_title:"Ключи аутентификации прокси-сервиса",add_button:"Добавить ключ",empty_title:"API-ключи отсутствуют",empty_desc:"Нажмите кнопку выше, чтобы добавить первый ключ",item_title:"API-ключ",add_modal_title:"Добавление API-ключа",add_modal_key_label:"API-ключ:",add_modal_key_placeholder:"Введите API-ключ",edit_modal_title:"Редактирование API-ключа",edit_modal_key_label:"API-ключ:",delete_confirm:"Удалить этот API-ключ?"},fV=JSON.parse('{"title":"Конфигурация AI-провайдеров","gemini_title":"API-ключи Gemini","gemini_add_button":"Добавить ключ","gemini_empty_title":"Ключи Gemini отсутствуют","gemini_empty_desc":"Нажмите кнопку выше, чтобы добавить первый ключ","gemini_item_title":"Ключ Gemini","gemini_add_modal_title":"Добавление API-ключа Gemini","gemini_add_modal_key_label":"API-ключи:","gemini_add_modal_key_placeholder":"Введите API-ключ Gemini","gemini_add_modal_key_hint":"Добавляйте ключи по одному и при необходимости указывайте базовый URL.","gemini_keys_add_btn":"Добавить ключ","gemini_base_url_label":"Базовый URL (необязательно):","gemini_base_url_placeholder":"например: https://generativelanguage.googleapis.com","gemini_add_modal_proxy_label":"URL прокси (необязательно):","gemini_add_modal_proxy_placeholder":"например: socks5://proxy.example.com:1080","gemini_models_label":"Пользовательские модели (необязательно):","gemini_models_hint":"Оставьте пустым, чтобы разрешить все модели, или добавьте записи name[, alias], чтобы ограничить/переименовать их для этого ключа.","gemini_models_add_btn":"Добавить модель","gemini_models_fetch_button":"Получить через /v1beta/models","gemini_models_fetch_title":"Выбор моделей из Gemini /v1beta/models","gemini_models_fetch_hint":"Вызывает GET /v1beta/models по спецификации Gemini API. По умолчанию отправляется x-goog-api-key из поля API-ключа, объединённый с вашими пользовательскими заголовками.","gemini_models_fetch_url_label":"URL запроса","gemini_models_fetch_refresh":"Обновить","gemini_models_fetch_loading":"Получение моделей из Gemini /v1beta/models...","gemini_models_fetch_empty":"Модели не получены. Проверьте Base URL, API-ключ или заголовки.","gemini_models_fetch_error":"Не удалось получить модели Gemini","gemini_models_fetch_apply":"Добавить выбранные модели","model_discovery_select_visible":"Выбрать текущий список","model_discovery_clear_selection":"Очистить выбор","model_discovery_selected_count":"Выбрано: {{count}}","gemini_models_search_label":"Поиск моделей","gemini_models_search_placeholder":"Фильтр по имени, псевдониму или описанию","gemini_models_search_empty":"Нет подходящих моделей. Попробуйте другой запрос.","gemini_models_fetch_added":"Добавлено новых моделей: {{count}}","gemini_models_count":"Количество моделей","gemini_edit_modal_title":"Редактирование API-ключа Gemini","gemini_edit_modal_key_label":"API-ключ:","gemini_delete_confirm":"Удалить этот ключ Gemini?","excluded_models_label":"Исключённые модели (необязательно):","excluded_models_placeholder":"Через запятую или с новой строки, например gemini-1.5-pro, gemini-1.5-flash","excluded_models_hint":"Оставьте пустым, чтобы разрешить все модели; значения автоматически обрезаются и дедуплицируются.","excluded_models_count":"Исключено моделей: {{count}}","prefix_label":"Префикс (необязательно):","prefix_placeholder":"например: team-a","prefix_hint":"Если задано, обращайтесь к моделям как prefix/<model>, чтобы выбрать эту запись.","priority_label":"Приоритет (необязательно):","priority_hint":"Чем больше значение, тем выше приоритет. Оставьте пустым для значения по умолчанию (0).","config_toggle_label":"Включено","config_disabled_badge":"Отключено","codex_title":"Конфигурация Codex API","codex_add_button":"Добавить конфигурацию","codex_empty_title":"Конфигурации Codex отсутствуют","codex_empty_desc":"Нажмите кнопку выше, чтобы добавить первую конфигурацию","codex_item_title":"Конфигурация Codex","codex_add_modal_title":"Добавление конфигурации Codex API","codex_add_modal_key_label":"API-ключ:","codex_add_modal_key_placeholder":"Введите API-ключ Codex","codex_add_modal_url_label":"Базовый URL (обязательно):","codex_add_modal_url_placeholder":"например: https://api.example.com","codex_add_modal_proxy_label":"URL прокси (необязательно):","codex_add_modal_proxy_placeholder":"например: socks5://proxy.example.com:1080","codex_websockets_label":"Websockets","codex_websockets_hint":"Включает websocket-транспорт Responses API для этого ключа.","codex_models_label":"Пользовательские модели (необязательно):","codex_models_hint":"Оставьте пустым, чтобы разрешить все модели, или добавьте записи name[, alias], чтобы ограничить/переименовать их.","codex_models_add_btn":"Добавить модель","codex_models_fetch_button":"Получить через /v1/models","codex_models_fetch_title":"Выбор моделей из Codex /v1/models","codex_models_fetch_hint":"Вызывает GET /v1/models по спецификации OpenAI. По умолчанию отправляет API-ключ как Bearer (если указан) и объединяет его с пользовательскими заголовками.","codex_models_fetch_url_label":"URL запроса","codex_models_fetch_refresh":"Обновить","codex_models_fetch_loading":"Получение моделей из /v1/models...","codex_models_fetch_empty":"Модели не получены. Проверьте Base URL, API-ключ или заголовки.","codex_models_fetch_error":"Не удалось получить модели","codex_models_fetch_apply":"Добавить выбранные модели","codex_models_search_label":"Поиск моделей","codex_models_search_placeholder":"Фильтр по имени, псевдониму или описанию","codex_models_search_empty":"Модели по запросу не найдены. Попробуйте другой запрос.","codex_models_fetch_added":"Добавлено новых моделей: {{count}}","codex_models_count":"Количество моделей","codex_edit_modal_title":"Редактирование конфигурации Codex API","codex_edit_modal_key_label":"API-ключ:","codex_edit_modal_url_label":"Базовый URL (обязательно):","codex_edit_modal_proxy_label":"URL прокси (необязательно):","codex_delete_confirm":"Удалить эту конфигурацию Codex?","claude_title":"Конфигурация Claude API","claude_add_button":"Добавить конфигурацию","claude_empty_title":"Конфигурации Claude отсутствуют","claude_empty_desc":"Нажмите кнопку выше, чтобы добавить первую конфигурацию","claude_item_title":"Конфигурация Claude","claude_add_modal_title":"Добавление конфигурации Claude API","claude_add_modal_key_label":"API-ключ:","claude_add_modal_key_placeholder":"Введите API-ключ Claude","claude_add_modal_url_label":"Базовый URL (необязательно):","claude_add_modal_url_placeholder":"например: https://api.anthropic.com","claude_add_modal_proxy_label":"URL прокси (необязательно):","claude_add_modal_proxy_placeholder":"например: socks5://proxy.example.com:1080","claude_edit_modal_title":"Редактирование конфигурации Claude API","claude_edit_modal_key_label":"API-ключ:","claude_edit_modal_url_label":"Базовый URL (необязательно):","claude_edit_modal_proxy_label":"URL прокси (необязательно):","claude_delete_confirm":"Удалить эту конфигурацию Claude?","claude_models_label":"Пользовательские модели (необязательно):","claude_models_hint":"Оставьте пустым, чтобы разрешить все модели, или добавьте записи name[, alias], чтобы ограничить/переименовать их.","claude_models_add_btn":"Добавить модель","claude_models_count":"Количество моделей","claude_models_fetch_button":"Получить через /v1/models","claude_models_fetch_title":"Выбор моделей из Claude /v1/models","claude_models_fetch_hint":"Вызывает GET /v1/models по спецификации Anthropic. По умолчанию отправляются x-api-key и anthropic-version: 2023-06-01, объединённые с вашими пользовательскими заголовками.","claude_models_fetch_url_label":"URL запроса","claude_models_fetch_refresh":"Обновить","claude_models_fetch_loading":"Получение моделей из Claude /v1/models...","claude_models_fetch_empty":"Модели не вернулись. Проверьте Base URL, API-ключ или заголовки.","claude_models_fetch_error":"Не удалось получить модели Claude","claude_models_fetch_apply":"Добавить выбранные модели","claude_models_search_label":"Поиск моделей","claude_models_search_placeholder":"Фильтр по имени, псевдониму или описанию","claude_models_search_empty":"Модели по запросу не найдены. Попробуйте другой ключ.","claude_models_fetch_added":"Добавлено новых моделей: {{count}}","claude_test_title":"Тест подключения","claude_test_hint":"Отправляет тестовый запрос в /v1/messages по спецификации Anthropic, чтобы проверить текущую конфигурацию.","claude_test_select_placeholder":"Выберите из текущих моделей","claude_test_select_empty":"Модели не настроены. Сначала добавьте модели","claude_test_action":"Тест","claude_test_running":"Отправка тестового запроса Claude...","claude_test_timeout":"Тестовый запрос превысил тайм-аут {{seconds}} с","claude_test_success":"Тест выполнен успешно. Модель Claude ответила.","claude_test_failed":"Тест не выполнен","claude_test_key_required":"Укажите Claude API-ключ или задайте x-api-key в пользовательских заголовках","claude_test_model_required":"Выберите модель для теста","claude_test_endpoint_invalid":"Не удалось сформировать корректный endpoint Claude /v1/messages","claude_cloak_title":"Маскировка запросов (необязательно):","claude_cloak_toggle_label":"Включить","claude_cloak_toggle_aria":"Переключить маскировку запросов","claude_cloak_hint":"Маскировка делает запросы похожими на запросы официального CLI Claude Code для клиентов, которые не являются Claude Code.","claude_cloak_mode_label":"Режим:","claude_cloak_mode_hint":"auto: маскировать только если клиент не Claude Code; always: всегда; never: никогда.","claude_cloak_mode_auto":"Auto (только не-Claude Code)","claude_cloak_mode_always":"Всегда","claude_cloak_mode_never":"Никогда","claude_cloak_strict_label":"Строгий режим:","claude_cloak_strict_hint":"Если включено, пользовательские system-сообщения удаляются, остаётся только промпт Claude Code.","claude_cloak_sensitive_words_label":"Чувствительные слова (необязательно):","claude_cloak_sensitive_words_placeholder":"Через запятую или с новой строки, например internal-project","claude_cloak_sensitive_words_hint":"Эти слова будут обфусцированы с помощью символов нулевой ширины.","claude_cloak_sensitive_words_count":"Чувствительные слова","vertex_title":"Конфигурация Vertex API","vertex_add_button":"Добавить конфигурацию","vertex_empty_title":"Конфигурации Vertex отсутствуют","vertex_empty_desc":"Нажмите кнопку выше, чтобы добавить первую конфигурацию","vertex_item_title":"Конфигурация Vertex","vertex_add_modal_title":"Добавление конфигурации Vertex API","vertex_add_modal_key_label":"API-ключ:","vertex_add_modal_key_placeholder":"Введите API-ключ Vertex","vertex_add_modal_url_label":"Базовый URL:","vertex_add_modal_url_placeholder":"например: https://example.com/api","vertex_add_modal_proxy_label":"URL прокси (необязательно):","vertex_add_modal_proxy_placeholder":"например: socks5://proxy.example.com:1080","vertex_edit_modal_title":"Редактирование конфигурации Vertex API","vertex_edit_modal_key_label":"API-ключ:","vertex_edit_modal_url_label":"Базовый URL:","vertex_edit_modal_proxy_label":"URL прокси (необязательно):","vertex_delete_confirm":"Удалить эту конфигурацию Vertex?","vertex_models_label":"Псевдонимы моделей:","vertex_models_add_btn":"Добавить сопоставление","vertex_models_count":"Количество псевдонимов","ampcode_title":"Интеграция Amp CLI (ampcode)","ampcode_modal_title":"Настройка Ampcode","ampcode_upstream_url_label":"Upstream URL","ampcode_upstream_url_placeholder":"например: https://ampcode.com","ampcode_upstream_url_hint":"Необязательно. Оставьте пустым, чтобы использовать URL плоскости управления по умолчанию/обнаруженный автоматически.","ampcode_upstream_api_key_label":"Upstream API-ключ (официальный Amp)","ampcode_upstream_api_key_placeholder":"Введите sk-amp... (оставьте пустым, чтобы сохранить текущий)","ampcode_upstream_api_key_hint":"Необязательно. Пустое значение не изменит текущий официальный ключ Amp. Используйте кнопку ниже, чтобы очистить его.","ampcode_upstream_api_key_current":"Текущий официальный ключ Amp: {{key}}","ampcode_clear_upstream_api_key":"Очистить официальный ключ","ampcode_clear_upstream_api_key_confirm":"Очистить upstream API-ключ Ampcode (официальный Amp)?","ampcode_upstream_api_keys_label":"Маршрутизация нескольких upstream API-ключей","ampcode_upstream_api_keys_hint":"Привяжите разные upstream API-ключи Amp к указанным клиентским API-ключам. Клиентские ключи можно разделять запятыми или переводами строки.","ampcode_upstream_api_keys_add_btn":"Добавить upstream-сопоставление","ampcode_upstream_api_keys_upstream_placeholder":"Upstream API-ключ (sk-amp-...)","ampcode_upstream_api_keys_clients_placeholder":"Клиентские API-ключи, через запятую или с новой строки","ampcode_upstream_api_keys_item_title":"Upstream-сопоставление #{{index}}","ampcode_upstream_api_keys_count":"Количество upstream-сопоставлений","ampcode_force_model_mappings_label":"Принудительно применять сопоставления моделей","ampcode_force_model_mappings_hint":"При включении сопоставления переопределяют локальные проверки доступности API-ключей.","ampcode_model_mappings_label":"Сопоставления моделей (из → в)","ampcode_model_mappings_hint":"Переименовывает модели в запросах Amp. Оставьте пустым, чтобы отключить сопоставления.","ampcode_model_mappings_add_btn":"Добавить сопоставление","ampcode_model_mappings_from_placeholder":"исходная модель","ampcode_model_mappings_to_placeholder":"целевая модель","ampcode_model_mappings_count":"Количество сопоставлений","ampcode_lists_overwrite_title":"Перезаписать списки","ampcode_lists_overwrite_confirm":"Существующие списки multi-upstream/сопоставлений моделей не удалось загрузить. Продолжение может перезаписать или очистить их. Продолжить?","ampcode_mappings_overwrite_confirm":"Не удалось загрузить существующие сопоставления. Продолжение может перезаписать или очистить их. Продолжить?","openai_title":"Совместимые с OpenAI провайдеры","openai_add_button":"Добавить провайдера","openai_empty_title":"Провайдеры OpenAI отсутствуют","openai_empty_desc":"Нажмите кнопку выше, чтобы добавить первого провайдера","openai_add_modal_title":"Добавление совместимого с OpenAI провайдера","openai_add_modal_name_label":"Имя провайдера:","openai_add_modal_name_placeholder":"например: openrouter","openai_add_modal_url_label":"Базовый URL:","openai_add_modal_url_placeholder":"например: https://openrouter.ai/api/v1","openai_add_modal_keys_label":"API-ключи","openai_edit_modal_keys_label":"API-ключи","openai_keys_hint":"Добавляйте каждый ключ отдельно с необязательным URL прокси для удобства.","openai_keys_add_btn":"Добавить ключ","openai_key_placeholder":"ключ вида sk-...","openai_proxy_placeholder":"Необязательный URL прокси (например, socks5://...)","openai_add_modal_models_label":"Список моделей (name[, alias] по строкам):","openai_models_hint":"Пример: gpt-4o-mini или moonshotai/kimi-k2:free, kimi-k2","openai_model_name_placeholder":"Имя модели, например moonshotai/kimi-k2:free","openai_model_alias_placeholder":"Псевдоним модели (необязательно)","openai_models_add_btn":"Добавить модель","openai_models_fetch_button":"Получить через /models","openai_models_fetch_title":"Выбор моделей из /models","openai_models_fetch_hint":"Вызовите эндпоинт /models, используя указанный выше базовый URL, отправив первый API-ключ как Bearer с дополнительными заголовками.","openai_models_fetch_url_label":"URL запроса","openai_models_fetch_refresh":"Обновить","openai_models_fetch_loading":"Получение моделей из /models...","openai_models_fetch_empty":"Модели не вернулись. Проверьте эндпоинт или авторизацию.","openai_models_fetch_error":"Не удалось получить модели","openai_models_fetch_back":"Вернуться к редактированию","openai_models_fetch_apply":"Добавить выбранные модели","openai_models_search_label":"Поиск моделей","openai_models_search_placeholder":"Фильтр по имени, псевдониму или описанию","openai_models_search_empty":"Модели по запросу не найдены. Попробуйте другой ключ.","openai_models_fetch_invalid_url":"Сначала введите корректный базовый URL","openai_models_fetch_added":"Добавлено новых моделей: {{count}}","openai_edit_modal_title":"Редактирование совместимого с OpenAI провайдера","openai_edit_modal_name_label":"Имя провайдера:","openai_edit_modal_url_label":"Базовый URL:","openai_edit_modal_models_label":"Список моделей (name[, alias] по строкам):","openai_delete_confirm":"Удалить этого провайдера OpenAI?","openai_keys_count":"Количество ключей","openai_models_count":"Количество моделей","openai_test_title":"Тест подключения","openai_test_hint":"Отправьте запрос /chat/completions с текущими настройками, чтобы проверить доступность.","openai_test_model_placeholder":"Модель для теста","openai_test_action":"Запустить тест","openai_test_running":"Отправка тестового запроса...","openai_test_timeout":"Тестовый запрос превысил тайм-аут {{seconds}} с","openai_test_success":"Тест выполнен успешно. Модель ответила.","openai_test_failed":"Тест не выполнен","openai_test_select_placeholder":"Выберите из текущих моделей","openai_test_select_empty":"Модели не настроены. Сначала добавьте модели","openai_test_single_action":"Тест","openai_test_all_action":"Тестировать все ключи","openai_test_all_hint":"Проверить состояние подключения для всех ключей","openai_test_all_success":"Все {{count}} ключей прошли тест","openai_test_all_failed":"Все {{count}} ключей не прошли тест","openai_test_all_partial":"Тест завершен: {{success}} прошло, {{failed}} не прошло"}'),mV={title:"Управление файлами авторизации",title_section:"Файлы авторизации",description:"Управляйте всеми JSON-файлами авторизации CLI Proxy (например, Qwen, Gemini, Vertex). Загрузка учётных данных сразу включает соответствующую интеграцию AI.",upload_button:"Загрузить файл",delete_all_button:"Удалить всё",empty_title:"Файлы авторизации отсутствуют",empty_desc:"Нажмите кнопку выше, чтобы загрузить первый файл",search_empty_title:"Файлы не найдены",search_empty_desc:"Попробуйте изменить фильтры или очистить строку поиска.",file_size:"Размер",file_modified:"Изменён",health_status_label:"Состояние",health_status_healthy:"Нормально",health_status_warning:"Предупреждение",health_status_disabled:"Отключено",health_status_unknown:"Неизвестно",health_status_no_message:"Нет сообщения о статусе",last_refresh_label:"Последнее обновление",refresh_not_available:"Н/Д",refresh_just_now:"Только что",download_button:"Скачать",delete_button:"Удалить",delete_confirm:"Удалить файл",delete_all_confirm:"Удалить все файлы авторизации? Это действие нельзя отменить!",delete_filtered_confirm:"Удалить все файлы авторизации {{type}}? Это действие нельзя отменить!",delete_problem_button:"Удалить проблемные",delete_problem_button_with_type:"Удалить проблемные файлы {{type}}",delete_problem_confirm:"Удалить все проблемные файлы авторизации? Это действие нельзя отменить!",delete_problem_filtered_confirm:"Удалить все проблемные файлы авторизации {{type}}? Это действие нельзя отменить!",upload_error_json:"Допустимы только файлы JSON",upload_error_size:"Размер файла не может превышать {{maxSize}}",upload_success:"Файл успешно загружен",download_success:"Файл успешно скачан",delete_success:"Файл успешно удалён",delete_all_success:"Удаление завершено",delete_filtered_success:"Удалено файлов {{type}}: {{count}}",delete_filtered_partial:"Удаление файлов {{type}} завершено: успешных {{success}}, ошибок {{failed}}",delete_filtered_none:"Нет файлов {{type}} для удаления при текущем фильтре",delete_problem_success:"Удалено проблемных файлов авторизации: {{count}}",delete_problem_filtered_success:"Удалено проблемных файлов авторизации {{type}}: {{count}}",delete_problem_partial:"Удаление проблемных файлов авторизации завершено: успешных {{success}}, ошибок {{failed}}",delete_problem_filtered_partial:"Удаление проблемных файлов авторизации {{type}} завершено: успешных {{success}}, ошибок {{failed}}",delete_problem_none:"Нет проблемных файлов авторизации для удаления при текущем фильтре",delete_problem_filtered_none:"Нет проблемных файлов авторизации {{type}} для удаления при текущем фильтре",files_count:"файлов",pagination_prev:"Предыдущая",pagination_next:"Следующая",pagination_info:"Страница {{current}} / {{total}} · {{count}} файлов",search_label:"Поиск конфигов",search_placeholder:"Фильтр по имени, типу или провайдеру, поддерживается wildcard *",problem_filter_label:"Фильтр проблем",problem_filter_only:"Показывать только проблемные учётные данные",display_options_label:"Параметры отображения",compact_mode_label:"Компактный режим",sort_label:"Сортировка",sort_default:"По умолчанию",sort_az:"A-Z Имя",sort_priority:"Приоритет",priority_display:"Приоритет",page_size_label:"На странице",page_size_unit:"элементов",view_mode_paged:"Постранично",view_mode_all:"Показать все",too_many_files_warning:"Слишком много учётных данных. Полный список может повлиять на производительность, используйте постраничный режим.",filter_all:"Все",filter_qwen:"Qwen",filter_gemini:"Gemini","filter_gemini-cli":"GeminiCLI",filter_kimi:"Kimi",filter_aistudio:"AIStudio",filter_claude:"Claude",filter_codex:"Codex",filter_antigravity:"Antigravity",filter_iflow:"iFlow",filter_vertex:"Vertex",filter_empty:"Пусто",filter_unknown:"Другое",type_qwen:"Qwen",type_gemini:"Gemini","type_gemini-cli":"GeminiCLI",type_kimi:"Kimi",type_aistudio:"AIStudio",type_claude:"Claude",type_codex:"Codex",type_antigravity:"Antigravity",type_iflow:"iFlow",type_vertex:"Vertex",type_empty:"Пусто",type_unknown:"Другое",type_virtual:"Виртуальный файл авторизации",models_button:"Модели",models_title:"Поддерживаемые модели",models_loading:"Загрузка списка моделей...",models_empty:"Для этих учётных данных нет доступных моделей",models_empty_desc:"Возможно, учётные данные ещё не загружены сервером или к ним не привязаны модели.",models_unsupported:"Функция не поддерживается в текущей версии",models_unsupported_desc:"Обновите CLI Proxy API до последней версии и повторите попытку",models_excluded_badge:"Отключена",models_excluded_hint:"Эта OAuth-модель отключена",status_toggle_label:"Включено",status_enabled_success:'"{{name}}" включён',status_disabled_success:'"{{name}}" отключён',batch_status_success:"{{count}} файлов обновлено",batch_status_partial:"{{success}} обновлено, {{failed}} не удалось",batch_delete_title:"Удалить выбранные файлы",batch_delete_confirm:"Удалить {{count}} файлов?",batch_selected:"{{count}} выбрано",batch_select_all:"Выбрать все",batch_select_page:"Выбрать страницу",batch_select_filtered:"Выбрать по фильтру",batch_invert_page:"Инвертировать страницу",batch_deselect:"Отменить",batch_download:"Скачать выбранные",batch_download_success:"Запущена загрузка {{count}} файлов",batch_download_partial:"Загрузка завершена: успешно {{success}}, ошибок {{failed}}",batch_enable:"Включить",batch_disable:"Отключить",prefix_proxy_button:"Просмотр / редактирование файла авторизации",auth_field_editor_title:"Просмотр / редактирование файла авторизации - {{name}}",prefix_proxy_loading:"Загрузка файла авторизации...",prefix_proxy_info_label:"Информация о файле авторизации (info)",prefix_proxy_source_label:"JSON файла авторизации (предпросмотр)",prefix_label:"Префикс (prefix)",proxy_url_label:"URL прокси (proxy_url)",prefix_placeholder:"",proxy_url_placeholder:"socks5://username:password@proxy_ip:port/",priority_label:"Приоритет (priority)",priority_placeholder:"например: 10 или -1",priority_hint:"Только целые числа. Некорректные значения игнорируются. Чем больше число, тем выше приоритет.",excluded_models_label:"Исключённые модели (excluded_models)",excluded_models_placeholder:"Через запятую или с новой строки, например: model-a, gpt-5-*, *-preview",excluded_models_hint:"Сохраняется как массив; значения trim/нижний регистр/без дублей/с сортировкой.",disable_cooling_label:"Отключение охлаждения (disable_cooling)",disable_cooling_placeholder:"например: true / false / 1 / 0",disable_cooling_hint:"Поддерживает boolean, числа 0/не 0 и строки true/false/1/0; непарсируемые значения игнорируются.",note_label:"Заметка (note)",note_placeholder:"Введите заметку, например: аккаунт Ивана",note_hint:"Необязательно. Используется для описания назначения или владельца учётных данных; оставьте пустым, чтобы не записывать.",note_display:"Заметка",prefix_proxy_invalid_json:"Этот файл авторизации не является JSON-объектом, поэтому поля нельзя редактировать.",prefix_proxy_saved_success:'Файл авторизации "{{name}}" успешно обновлён',card_tools_title:"Инструменты",quota_refresh_single:"Обновить квоту",quota_refresh_hint:"Обновить квоту только для этих учётных данных",quota_refresh_success:'Квота для "{{name}}" обновлена',quota_refresh_failed:'Не удалось обновить квоту для "{{name}}": {{message}}'},pV={title:"Квота Antigravity",empty_title:"Файлы авторизации Antigravity отсутствуют",empty_desc:"Загрузите учётные данные Antigravity, чтобы увидеть оставшуюся квоту.",idle:'Не загружено. Нажмите "Обновить квоту".',loading:"Загрузка квоты...",load_failed:"Не удалось загрузить квоту: {{message}}",missing_auth_index:"В файле авторизации отсутствует auth_index",empty_models:"Данные по квоте отсутствуют",refresh_button:"Обновить квоту",fetch_all:"Получить все"},gV={title:"Квота Claude",empty_title:"Файлы авторизации Claude OAuth отсутствуют",empty_desc:"Войдите через Claude OAuth, чтобы увидеть квоту.",idle:'Не загружено. Нажмите "Обновить квоту".',loading:"Загрузка квоты...",load_failed:"Не удалось загрузить квоту: {{message}}",missing_auth_index:"В файле авторизации отсутствует auth_index",empty_windows:"Данные по квоте отсутствуют",refresh_button:"Обновить квоту",fetch_all:"Получить все",five_hour:"Лимит на 5 часов",seven_day:"Лимит на 7 дней",seven_day_oauth_apps:"7 дней OAuth приложения",seven_day_opus:"7 дней Opus",seven_day_sonnet:"7 дней Sonnet",seven_day_cowork:"7 дней Cowork",iguana_necktie:"Iguana Necktie",extra_usage_label:"Дополнительное использование",plan_label:"План",plan_unknown:"Неизвестно",plan_free:"Free",plan_pro:"Pro",plan_max:"Max",plan_max5:"Max 5x",plan_max20:"Max 20x"},_V={title:"Квота Codex",empty_title:"Файлы авторизации Codex отсутствуют",empty_desc:"Загрузите учётные данные Codex, чтобы увидеть квоту.",idle:'Не загружено. Нажмите "Обновить квоту".',loading:"Загрузка квоты...",load_failed:"Не удалось загрузить квоту: {{message}}",missing_auth_index:"В файле авторизации отсутствует auth_index",missing_account_id:"В учётных данных Codex отсутствует идентификатор аккаунта ChatGPT",empty_windows:"Данные по квоте отсутствуют",no_access:"У этих учётных данных нет доступа Codex (план: free).",refresh_button:"Обновить квоту",fetch_all:"Получить все",primary_window:"Лимит на 5 часов",secondary_window:"Недельный лимит",code_review_primary_window:"Лимит code review на 5 часов",code_review_secondary_window:"Недельный лимит code review",additional_primary_window:"{{name}}: лимит на 5 часов",additional_secondary_window:"{{name}}: недельный лимит",plan_label:"Тариф",plan_plus:"Plus",plan_team:"Team",plan_free:"Free",plan_pro:"Pro"},yV={title:"Квота Gemini CLI",empty_title:"Файлы авторизации Gemini CLI отсутствуют",empty_desc:"Загрузите учётные данные Gemini CLI, чтобы увидеть оставшуюся квоту.",idle:'Не загружено. Нажмите "Обновить квоту".',loading:"Загрузка квоты...",load_failed:"Не удалось загрузить квоту: {{message}}",missing_auth_index:"В файле авторизации отсутствует auth_index",missing_project_id:"В учётных данных Gemini CLI отсутствует идентификатор проекта",empty_buckets:"Данные по квоте отсутствуют",refresh_button:"Обновить квоту",fetch_all:"Получить все",remaining_amount:"Осталось {{count}}",tier_label:"Уровень",tier_free:"Бесплатный",tier_legacy:"Устаревший",tier_standard:"Стандартный",tier_pro:"Pro",tier_ultra:"Ultra",credit_label:"Google One AI кредиты",credit_amount:"{{count}} кредитов"},bV={title:"Квота Kimi",empty_title:"Файлы авторизации Kimi отсутствуют",empty_desc:"Загрузите учётные данные Kimi, чтобы увидеть оставшуюся квоту.",idle:'Не загружено. Нажмите "Обновить квоту".',loading:"Загрузка квоты...",load_failed:"Не удалось загрузить квоту: {{message}}",missing_auth_index:"В файле авторизации отсутствует auth_index",empty_data:"Данные по квоте отсутствуют",refresh_button:"Обновить квоту",fetch_all:"Получить все",weekly_limit:"Недельный лимит",limit_window:"Лимит {{duration}}",limit_index:"Лимит #{{index}}",reset_hint:"сброс через {{hint}}"},vV={title:"Вход с Vertex JSON",description:"Загрузите JSON ключа сервисного аккаунта Google, чтобы сохранить его как auth-dir/vertex-<project>.json по тем же правилам, что и помощник CLI vertex-import.",location_label:"Регион (необязательно)",location_placeholder:"us-central1",location_hint:"Оставьте пустым, чтобы использовать регион us-central1 по умолчанию.",file_label:"JSON ключ сервисного аккаунта",file_hint:"Принимаются только JSON-файлы ключей сервисных аккаунтов Google Cloud.",file_placeholder:"Файл не выбран",choose_file:"Выбрать файл",import_button:"Импортировать учётные данные Vertex",file_required:"Сначала выберите файл учётных данных .json",success:"Учётные данные Vertex успешно импортированы",result_title:"Учётные данные сохранены",result_project:"ID проекта",result_email:"Сервисный аккаунт",result_location:"Регион",result_file:"Сохранённый файл"},xV={title:"Отключение OAuth-моделей",description:"Отключения моделей по провайдерам отображаются карточками; нажмите карточку, чтобы изменить или удалить. Поддерживаются шаблоны *. Область зависит от фильтра файлов авторизации.",add:"Добавить отключение",add_title:"Добавление отключения моделей для провайдера",edit_title:"Редактирование отключения моделей для {{provider}}",refresh:"Обновить",refreshing:"Обновляется...",provider_label:"Провайдер",provider_auto:"Следовать текущему фильтру",provider_placeholder:"например: gemini-cli",provider_hint:"По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.",models_label:"Отключаемые модели",models_loading:"Загрузка моделей...",models_unsupported:"Текущая версия CPA не поддерживает загрузку списка моделей.",models_loaded:"Загружено моделей: {{count}}. Отметьте модели, которые нужно отключить.",no_models_available:"Для этого провайдера нет доступных моделей.",save:"Сохранить/обновить",saving:"Сохранение...",save_success:"Отключение моделей обновлено",save_failed:"Не удалось обновить отключение моделей",delete:"Удалить провайдера",delete_confirm:"Удалить отключение моделей для {{provider}}?",delete_success:"Отключение моделей провайдера удалено",delete_failed:"Не удалось удалить отключение моделей",deleting:"Удаление...",no_models:"Отключаемые модели не настроены",model_count:"Отключено моделей: {{count}}",list_empty_all:'Отключений моделей пока нет — используйте "Добавить отключение".',list_empty_filtered:'В этой области нет отключённых моделей; нажмите "Добавить отключение".',disconnected:"Подключитесь к серверу, чтобы просматривать отключение моделей",load_failed:"Не удалось загрузить отключение моделей",provider_required:"Сначала укажите провайдера",scope_all:"Область: все провайдеры",scope_provider:"Область: {{provider}}",upgrade_required:"Текущая версия CPA не поддерживает отключение OAuth-моделей. Пожалуйста, обновите систему.",upgrade_required_title:"Пожалуйста, обновите CLI Proxy API",upgrade_required_desc:"Текущая версия сервера не поддерживает получение отключения OAuth-моделей. Обновите CPA (CLI Proxy API) до последней версии и повторите попытку."},SV={title:"Псевдонимы моделей OAuth",add:"Добавить псевдоним",add_title:"Добавление псевдонимов моделей провайдера",provider_label:"Провайдер",provider_placeholder:"например: gemini-cli / vertex",provider_hint:"По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.",model_source_loading:"Загрузка моделей...",model_source_unsupported:"Текущая версия CPA не поддерживает загрузку списка моделей (ручной ввод остаётся доступным).",model_source_loaded:'Загружено моделей: {{count}}. Используйте выпадающий список "Исходная модель" или введите своё значение. Сохранение пустого списка удаляет провайдера. Включите "Сохранить оригинал", чтобы оставить исходное имя вместе с псевдонимом.',alias_label:"Псевдонимы моделей",alias_name_placeholder:"Исходное имя модели",alias_placeholder:"Псевдоним (обязательно)",alias_fork_label:"Сохранить оригинал",add_alias:"Добавить псевдоним",save:"Сохранить/обновить",save_success:"Псевдонимы моделей обновлены",save_failed:"Не удалось обновить псевдонимы моделей",delete:"Удалить провайдера",delete_confirm:"Удалить псевдонимы моделей для {{provider}}?",delete_link_title:"Убрать сопоставление",delete_link_confirm:"Удалить сопоставление из <code>{{sourceModel}}</code> ({{provider}}) к псевдониму <code>{{alias}}</code>?",delete_alias_title:"Удалить псевдоним",delete_alias_confirm:"Удалить псевдоним <code>{{alias}}</code> и все связанные сопоставления?",delete_success:"Псевдонимы моделей удалены",delete_failed:"Не удалось удалить псевдонимы моделей",no_models:"Псевдонимов нет",model_count:"Количество псевдонимов: {{count}}",list_empty_all:'Псевдонимы ещё не созданы — используйте "Добавить псевдоним".',chart_title:"Обзор всех сопоставлений",diagram_providers:"Провайдеры",diagram_source_models:"Исходные модели",diagram_aliases:"Псевдонимы",diagram_expand:"Развернуть",diagram_collapse:"Свернуть",diagram_add_alias:"Добавить псевдоним",diagram_rename:"Переименовать",diagram_rename_alias_title:"Переименование псевдонима",diagram_rename_alias_label:"Новое имя псевдонима",diagram_rename_placeholder:"Введите имя псевдонима...",diagram_delete_link:"Убрать связь {{provider}} / {{name}}",diagram_delete_alias:"Удалить псевдоним",diagram_please_enter_alias:"Введите имя псевдонима.",diagram_alias_exists:"Этот псевдоним уже существует.",diagram_add_alias_title:"Добавление псевдонима",diagram_add_alias_label:"Имя псевдонима",diagram_add_placeholder:"Введите новое имя псевдонима...",diagram_rename_btn:"Переименовать",diagram_add_btn:"Добавить",diagram_settings:"Настройки",diagram_settings_title:"Настройки псевдонима — {{alias}}",diagram_settings_source_title:"Настройки исходной модели",diagram_settings_empty:"Для этого псевдонима ещё нет сопоставлений.",diagram_tap_hint:"На сенсорных устройствах: коснитесь исходной модели, затем псевдонима для связывания.",view_mode:"Режим просмотра",view_mode_diagram:"Диаграмма",view_mode_list:"Список",provider_required:"Сначала укажите провайдера",upgrade_required:"Эта функция требует более новой версии CLI Proxy API (CPA). Обновите систему.",upgrade_required_title:"Пожалуйста, обновите CLI Proxy API",upgrade_required_desc:"Текущая версия сервера не поддерживает API псевдонимов моделей OAuth. Обновите CLI Proxy API (CPA) до последней версии."},wV={codex_oauth_title:"Codex OAuth",codex_oauth_button:"Начать вход Codex",codex_oauth_hint:"Выполните вход в сервис Codex через OAuth и автоматически получите/сохраните файлы авторизации.",codex_oauth_url_label:"URL авторизации:",codex_open_link:"Открыть ссылку",codex_copy_link:"Скопировать ссылку",codex_oauth_status_waiting:"Ожидание аутентификации...",codex_oauth_status_success:"Аутентификация успешна!",codex_oauth_status_error:"Ошибка аутентификации:",codex_oauth_start_error:"Не удалось запустить Codex OAuth:",codex_oauth_polling_error:"Не удалось проверить статус аутентификации:",anthropic_oauth_title:"Anthropic OAuth",anthropic_oauth_button:"Начать вход Anthropic",anthropic_oauth_hint:"Выполните вход в сервис Anthropic (Claude) через OAuth и автоматически получите/сохраните файлы авторизации.",anthropic_oauth_url_label:"URL авторизации:",anthropic_open_link:"Открыть ссылку",anthropic_copy_link:"Скопировать ссылку",anthropic_oauth_status_waiting:"Ожидание аутентификации...",anthropic_oauth_status_success:"Аутентификация успешна!",anthropic_oauth_status_error:"Ошибка аутентификации:",anthropic_oauth_start_error:"Не удалось запустить Anthropic OAuth:",anthropic_oauth_polling_error:"Не удалось проверить статус аутентификации:",antigravity_oauth_title:"Antigravity OAuth",antigravity_oauth_button:"Начать вход Antigravity",antigravity_oauth_hint:"Выполните вход в сервис Antigravity (Google) через OAuth и автоматически получите/сохраните файлы авторизации.",antigravity_oauth_url_label:"URL авторизации:",antigravity_open_link:"Открыть ссылку",antigravity_copy_link:"Скопировать ссылку",antigravity_oauth_status_waiting:"Ожидание аутентификации...",antigravity_oauth_status_success:"Аутентификация успешна!",antigravity_oauth_status_error:"Ошибка аутентификации:",antigravity_oauth_start_error:"Не удалось запустить Antigravity OAuth:",antigravity_oauth_polling_error:"Не удалось проверить статус аутентификации:",gemini_cli_oauth_title:"Gemini CLI OAuth",gemini_cli_oauth_button:"Начать вход Gemini CLI",gemini_cli_oauth_hint:"Выполните вход в сервис Google Gemini CLI через OAuth и автоматически получите/сохраните файлы авторизации.",gemini_cli_project_id_label:"Google Cloud Project ID (необязательно):",gemini_cli_project_id_placeholder:"Оставьте пустым, чтобы выбрать первый доступный проект автоматически",gemini_cli_project_id_hint:"Необязательно. Если не указано, система автоматически выберет первый доступный проект вашей учётной записи. Введите ALL, чтобы получить все проекты.",gemini_cli_project_id_required:"Укажите идентификатор проекта Google Cloud.",gemini_cli_oauth_url_label:"URL авторизации:",gemini_cli_open_link:"Открыть ссылку",gemini_cli_copy_link:"Скопировать ссылку",gemini_cli_oauth_status_waiting:"Ожидание аутентификации...",gemini_cli_oauth_status_success:"Аутентификация успешна!",gemini_cli_oauth_status_error:"Ошибка аутентификации:",gemini_cli_oauth_start_error:"Не удалось запустить Gemini CLI OAuth:",gemini_cli_oauth_polling_error:"Не удалось проверить статус аутентификации:",kimi_oauth_title:"Kimi OAuth",kimi_oauth_button:"Начать вход Kimi",kimi_oauth_hint:"Выполните вход в сервис Kimi через поток авторизации устройства и автоматически получите/сохраните файлы авторизации.",kimi_oauth_url_label:"URL авторизации:",kimi_open_link:"Открыть ссылку",kimi_copy_link:"Скопировать ссылку",kimi_oauth_status_waiting:"Ожидание аутентификации...",kimi_oauth_status_success:"Аутентификация успешна!",kimi_oauth_status_error:"Ошибка аутентификации:",kimi_oauth_start_error:"Не удалось запустить Kimi OAuth:",kimi_oauth_polling_error:"Не удалось проверить статус аутентификации:",qwen_oauth_title:"Qwen OAuth",qwen_oauth_button:"Начать вход Qwen",qwen_oauth_hint:"Выполните вход в сервис Qwen через поток авторизации устройства и автоматически получите/сохраните файлы авторизации.",qwen_oauth_url_label:"URL авторизации:",qwen_open_link:"Открыть ссылку",qwen_copy_link:"Скопировать ссылку",qwen_oauth_status_waiting:"Ожидание аутентификации...",qwen_oauth_status_success:"Аутентификация успешна!",qwen_oauth_status_error:"Ошибка аутентификации:",qwen_oauth_start_error:"Не удалось запустить Qwen OAuth:",qwen_oauth_polling_error:"Не удалось проверить статус аутентификации:",oauth_callback_label:"Callback URL",oauth_callback_placeholder:"http://localhost:1455/auth/callback?code=...&state=...",oauth_callback_hint:"Режим удалённого браузера: после перенаправления провайдера на http://localhost:... скопируйте полный URL и отправьте его здесь.",oauth_callback_button:"Отправить Callback URL",oauth_callback_required:"Сначала вставьте полный URL перенаправления.",oauth_callback_success:"Callback URL отправлен. Продолжайте ожидать аутентификацию.",oauth_callback_error:"Не удалось отправить Callback URL:",oauth_callback_upgrade_hint:"Обновите CLI Proxy API или проверьте подключение.",oauth_callback_status_success:"Callback URL отправлен, ожидаем аутентификацию...",oauth_callback_status_error:"Не удалось отправить Callback URL:",missing_state:"Не удалось получить параметр состояния аутентификации",iflow_oauth_title:"iFlow OAuth",iflow_oauth_button:"Начать вход iFlow",iflow_oauth_hint:"Выполните вход в сервис iFlow через OAuth и автоматически получите/сохраните файлы авторизации.",iflow_oauth_url_label:"URL авторизации:",iflow_open_link:"Открыть ссылку",iflow_copy_link:"Скопировать ссылку",iflow_oauth_status_waiting:"Ожидание аутентификации...",iflow_oauth_status_success:"Аутентификация успешна!",iflow_oauth_status_error:"Ошибка аутентификации:",iflow_oauth_start_error:"Не удалось запустить iFlow OAuth:",iflow_oauth_polling_error:"Не удалось проверить статус аутентификации:",iflow_cookie_title:"Вход iFlow по cookie",iflow_cookie_label:"Значение cookie:",iflow_cookie_placeholder:"Введите значение BXAuth, начиная с BXAuth=",iflow_cookie_hint:"Отправьте существующий cookie, чтобы завершить вход без открытия ссылки авторизации; файл учётных данных будет сохранён автоматически.",iflow_cookie_key_hint:"Примечание: сначала создайте ключ на платформе.",iflow_cookie_button:"Отправить вход по cookie",iflow_cookie_status_success:"Вход по cookie выполнен, учётные данные сохранены.",iflow_cookie_status_error:"Ошибка входа по cookie:",iflow_cookie_status_duplicate:"Дублирующая конфигурация:",iflow_cookie_start_error:"Не удалось отправить вход по cookie:",iflow_cookie_config_duplicate:"Такая конфигурация уже существует. Удалите файл и повторите, если хотите перезаписать.",iflow_cookie_required:"Сначала укажите значение cookie.",iflow_cookie_result_title:"Результат входа по cookie",iflow_cookie_result_email:"Аккаунт",iflow_cookie_result_expired:"Истекает",iflow_cookie_result_path:"Путь сохранения",iflow_cookie_result_type:"Тип",remote_access_disabled:"Этот способ входа недоступен при удалённом доступе. Подключитесь с localhost."},kV={title:"Статистика использования",total_requests:"Всего запросов",success_requests:"Успешные запросы",failed_requests:"Неуспешные запросы",total_tokens:"Всего токенов",cached_tokens:"Кэшированные токены",reasoning_tokens:"Токены рассуждений",rpm_30m:"RPM",tpm_30m:"TPM",rate_30m:"Скорость (последние 30 мин)",model_name:"Название модели",model_price_settings:"Настройки стоимости моделей",saved_prices:"Сохранённые цены",requests_trend:"Динамика запросов",tokens_trend:"Динамика токенов",api_details:"Детали API",by_hour:"По часам",by_day:"По дням",range_filter:"Диапазон времени",range_all:"За всё время",range_7h:"Последние 7 часов",range_24h:"Последние 24 часа",range_7d:"Последние 7 дней",filter_all:"Все",clear_filters:"Сбросить фильтры",refresh:"Обновить",export:"Экспорт",import:"Импорт",export_csv:"Экспорт CSV",export_json:"Экспорт JSON",export_success:"Экспорт использования скачан",import_success:"Импорт завершён: добавлено {{added}}, пропущено {{skipped}}, всего {{total}}, ошибок {{failed}}",import_invalid:"Недопустимый файл экспорта использования",chart_line_label_1:"Линия 1",chart_line_label_2:"Линия 2",chart_line_label_3:"Линия 3",chart_line_label_4:"Линия 4",chart_line_label_5:"Линия 5",chart_line_label_6:"Линия 6",chart_line_label_7:"Линия 7",chart_line_label_8:"Линия 8",chart_line_label_9:"Линия 9",chart_line_hidden:"Скрыть",chart_line_actions_label:"Линии для отображения",chart_line_add:"Добавить линию",chart_line_all:"Все",chart_line_delete:"Удалить линию",chart_line_hint:"Отображайте до 9 линий моделей одновременно",no_data:"Данные отсутствуют",loading_error:"Не удалось загрузить",api_endpoint:"API-эндпоинт",requests_count:"Количество запросов",tokens_count:"Количество токенов",models:"Статистика моделей",success_rate:"Успешность",total_cost:"Общая стоимость",total_cost_hint:"Основано на настроенной стоимости моделей",model_price_title:"Стоимость моделей",model_price_reset:"Сбросить цены",model_price_model_label:"Модель",model_price_select_placeholder:"Выберите модель",model_price_select_hint:"Модели берутся из детальной статистики использования",model_price_prompt:"Цена prompt",model_price_completion:"Цена completion",model_price_cache:"Цена кэша",model_price_save:"Сохранить цену",model_price_empty:"Цена для моделей не задана",model_price_model:"Модель",model_price_saved:"Цена модели сохранена",model_price_model_required:"Выберите модель для задания цены",cost_trend:"Обзор стоимости",cost_axis_label:"Стоимость ($)",cost_need_price:"Задайте стоимость модели, чтобы увидеть статистику затрат",cost_need_usage:"Нет данных использования для расчёта стоимости",cost_no_data:"Данных о стоимости ещё нет",credential_stats:"Статистика учётных данных",credential_name:"Учётные данные",token_breakdown:"Распределение типов токенов",request_events_title:"События запросов",request_events_filter_model:"Модель",request_events_filter_source:"Источник",request_events_filter_auth_index:"Auth Index",request_events_timestamp:"Время",request_events_source:"Источник",request_events_auth_index:"Auth Index",request_events_result:"Результат",request_events_empty_title:"События запросов отсутствуют",request_events_empty_desc:"Нет деталей запросов для выбранного диапазона времени.",request_events_no_result_title:"Совпадений не найдено",request_events_no_result_desc:"Попробуйте другие фильтры или очистите текущие.",request_events_count:"{{count}} событий",request_events_limit_hint:"Показано {{shown}} из {{total}} событий для стабильной производительности.",input_tokens:"Входные токены",output_tokens:"Выходные токены",last_updated:"Обновлено"},CV={success:"Успех",failure:"Сбой"},AV={success_short:"✓",failure_short:"✗",no_requests:"Нет запросов"},NV={title:"Состояние сервиса",window:"Последние 7 дней",oldest:"Старые",newest:"Новые"},TV={title:"Просмотр журналов",refresh_button:"Обновить журналы",clear_button:"Очистить журналы",download_button:"Скачать журналы",error_log_button:"Выбрать журнал ошибок",error_logs_modal_title:"Журналы ошибок запросов",error_logs_description:"Выберите файл журнала ошибок запроса для скачивания (создаётся только при отключённом журналировании запросов).",error_logs_request_log_enabled:"Журналирование запросов включено, поэтому этот список всегда будет пустым. Отключите журналирование запросов и обновите список, чтобы просмотреть журналы ошибок.",error_logs_empty:"Файлы журнала ошибок запросов не найдены",error_logs_load_error:"Не удалось загрузить список журналов ошибок",error_logs_size:"Размер",error_logs_modified:"Изменён",error_logs_download:"Скачать",error_log_download_success:"Журнал ошибок успешно скачан",request_log_download_title:"Скачать журнал запросов",request_log_download_confirm:"Скачать журнал запросов с идентификатором {{id}}?",request_log_download_success:"Журнал запросов успешно скачан",empty_title:"Журналы недоступны",empty_desc:'Когда включена опция "Включить журналирование в файл", журналы появятся здесь',log_content:"Содержимое журнала",loading:"Загрузка журналов...",load_error:"Не удалось загрузить журналы",clear_confirm:"Очистить все журналы? Действие нельзя отменить!",clear_success:"Журналы успешно очищены",download_success:"Журналы успешно скачаны",auto_refresh:"Автообновление",auto_refresh_enabled:"Автообновление включено",auto_refresh_disabled:"Автообновление выключено",load_more_hint:"Прокрутите вверх, чтобы загрузить ещё",hidden_lines:"Скрыто: {{count}} строк",loaded_lines:"Загружено: {{count}} строк",filtered_lines:"Отфильтровано: {{count}} строк",hide_management_logs:"Скрыть журналы {{prefix}}",show_raw_logs:"Показать исходные журналы",show_raw_logs_hint:"Показать текст журнала без обработки для удобного копирования в несколько строк",search_placeholder:"Искать по содержимому или ключевым словам",filter_panel_title:"Структурные фильтры",filter_panel_expand:"Развернуть структурные фильтры",filter_panel_collapse:"Свернуть структурные фильтры",filter_panel_active_count:"Активно: {{count}}",filter_method:"Метод",filter_status:"Статус",filter_path:"Путь",filter_path_empty:"Нет доступных путей",filter_status_2xx:"2xx",filter_status_3xx:"3xx",filter_status_4xx:"4xx",filter_status_5xx:"5xx",clear_filters:"Очистить фильтры",trace_button:"Трассировка",trace_title:"Трассировка запроса (V1)",trace_notice:"V1 использует эвристическую корреляцию между логами и usage-событиями. Результаты оценочные и не являются точным сопоставлением по request_id.",trace_log_info:"Событие лога",trace_candidates_title:"Кандидаты из usage",trace_loading:"Сопоставление usage-событий...",trace_no_match:"Подходящие кандидаты не найдены.",trace_usage_load_error:"Не удалось загрузить usage-детали для трассировки",trace_download_request_log:"Скачать журнал запроса",trace_confidence_high:"Высокая",trace_confidence_medium:"Средняя",trace_confidence_low:"Низкая",trace_score:"Оценка {{score}}",trace_delta_seconds:"Δt {{seconds}}с",trace_model_matched:"Модель совпала",trace_request_id:"Request ID",trace_method:"Метод",trace_path:"Путь",trace_status_code:"Статус",trace_latency:"Задержка",trace_ip:"IP",trace_timestamp:"Время",trace_message:"Сообщение",trace_endpoint:"Usage-эндпоинт",trace_model:"Модель",trace_source:"Источник",trace_auth_index:"Auth Index",trace_result:"Результат",search_empty_title:"Подходящих журналов не найдено",search_empty_desc:"Попробуйте другой запрос или сбросьте фильтры.",double_click_copy_hint:"Дважды нажмите, чтобы скопировать строку журнала",copy_success:"Строка журнала скопирована",copy_failed:"Не удалось скопировать",lines:"строк",removed:"Отфильтровано",upgrade_required_title:"Обновите CLI Proxy API",upgrade_required_desc:"Текущая версия сервера не поддерживает просмотр журналов. Обновите CLI Proxy API до последней версии, чтобы использовать эту функцию."},MV={title:"Панель конфигурации",editor_title:"Файл конфигурации",reload:"Перезагрузить",reload_confirm_message:"Перезагрузка отбросит ваши несохранённые изменения. Продолжить?",save:"Сохранить",description:"Редактируйте config.yaml через визуальный редактор или исходный файл",status_idle:"Ожидание действия",status_loading:"Загрузка конфигурации...",status_loading_short:"Загрузка",status_loaded:"Конфигурация загружена",status_loaded_short:"Загружено",status_dirty:"Есть несохранённые изменения",status_dirty_short:"Несохранено",status_disconnected:"Подключитесь к серверу, чтобы загрузить конфигурацию",status_disconnected_short:"Нет связи",status_load_failed:"Не удалось загрузить",status_load_failed_short:"Ошибка",status_saving:"Сохранение конфигурации...",status_saving_short:"Сохранение",status_saved:"Конфигурация сохранена",status_save_failed:"Не удалось сохранить",save_success:"Конфигурация успешно сохранена",error_yaml_not_supported:"Сервер не вернул YAML. Убедитесь, что доступна конечная точка /config.yaml.",visual_mode_unavailable:"Визуальный редактор недоступен, пока не исправлен синтаксис YAML",visual_mode_unavailable_short:"Ошибка YAML",validation_blocked_short:"Есть ошибки",visual_mode_unavailable_detail:"Визуальный редактор недоступен, потому что в конфигурации есть некорректный YAML: {{message}}",visual_mode_save_blocked:"Нельзя сохранять из визуального режима, пока не исправлен синтаксис YAML",visual_mode_latest_yaml_invalid:"Последняя конфигурация на сервере содержит некорректный YAML. Проверьте её в режиме исходника перед сохранением визуальных изменений: {{message}}",editor_placeholder:"key: value",search_placeholder:"Поиск по конфигурации...",search_button:"Поиск",search_no_results:"Нет результатов",search_prev:"Назад",search_next:"Вперёд",diff:{title:"Обзор изменений",current:"Текущая",modified:"Изменённая",confirm:"Подтвердить",no_changes:"Изменений не обнаружено"},tabs:{visual:"Визуальный редактор",source:"Редактор файла"},visual:{notice:"Визуальный режим охватывает основные поля. Остальные параметры config.yaml по-прежнему нужно проверять или редактировать в режиме исходника.",quick_jump:"Быстрый переход",sections:{server:{title:"Настройки сервера",description:"Базовые параметры сервера",host:"Адрес хоста",port:"Порт"},tls:{title:"Настройка TLS/SSL",description:"Параметры безопасного HTTPS-соединения",enable:"Включить TLS",enable_desc:"Включить безопасное HTTPS-соединение",cert:"Путь к сертификату",key:"Путь к закрытому ключу"},remote:{title:"Удалённое управление",description:"Настройки удалённого доступа и панели управления",allow_remote:"Разрешить удалённый доступ",allow_remote_desc:"Разрешить управление с других хостов",disable_panel:"Отключить панель",disable_panel_desc:"Отключить встроенную веб-панель управления",secret_key:"Ключ управления",secret_key_placeholder:"Задайте ключ управления",panel_repo:"Репозиторий панели"},auth:{title:"Настройки аутентификации",description:"API-ключи и каталог аутентификации",auth_dir:"Каталог auth-dir",auth_dir_hint:"Путь к каталогу с файлами аутентификации (поддерживает ~)"},system:{title:"Системные настройки",description:"Отладка, журналирование, статистика и производительность",debug:"Режим отладки",debug_desc:"Включить подробные отладочные журналы",commercial_mode:"Коммерческий режим",commercial_mode_desc:"Отключить тяжёлое промежуточное ПО для поддержки высокой нагрузки",logging_to_file:"Журналировать в файл",logging_to_file_desc:"Сохранять журналы в файлы",usage_statistics:"Статистика использования",usage_statistics_desc:"Собирать статистику использования",logs_max_size:"Максимальный размер файла журнала (МБ)",usage_retention_days:"Хранить статистику (дней)",usage_retention_hint:"0 означает без ограничений (без очистки)"},network:{title:"Сетевые настройки",description:"Параметры прокси, повторов и маршрутизации",proxy_url:"URL прокси",request_retry:"Количество повторов запросов",max_retry_credentials:"Максимум учётных данных для повторов",max_retry_credentials_hint:"Оставьте пустым, чтобы не задавать поле. Значение 0 сохраняет legacy-поведение и позволяет перебрать все доступные учётные данные.",max_retry_interval:"Максимальный интервал повтора (сек)",routing_strategy:"Стратегия маршрутизации",routing_strategy_hint:"Выберите стратегию подбора учётных данных",strategy_round_robin:"По кругу",strategy_fill_first:"Сначала заполнить",force_model_prefix:"Принудительный префикс модели",force_model_prefix_desc:"Запросы к моделям без префикса используют только учётные данные без префикса",ws_auth:"Аутентификация WebSocket",ws_auth_desc:"Включить аутентификацию WebSocket (/v1/ws)"},quota:{title:"Резерв по квоте",description:"Стратегия при превышении квоты",switch_project:"Переключить проект",switch_project_desc:"Автоматически переходить на другой проект при превышении квоты",switch_preview_model:"Переключить на preview-модель",switch_preview_model_desc:"Переключаться на preview-версию модели при превышении квоты"},streaming:{title:"Настройки стриминга",description:"Параметры keepalive и повторов запуска",keepalive_seconds:"Период keepalive (сек)",keepalive_hint:"Установите 0 или оставьте поле пустым, чтобы отключить keepalive",bootstrap_retries:"Повторы запуска",bootstrap_hint:"Количество попыток при запуске стрима (до первого байта)",nonstream_keepalive:"Интервал keepalive для нестиминговых ответов (сек)",nonstream_keepalive_hint:"Отправлять пустые строки каждые N секунд для нестиминговых ответов, чтобы избежать простоя; установите 0 или оставьте пустым для отключения",disabled:"Отключено"},payload:{title:"Настройки полезной нагрузки",description:"Значения по умолчанию, raw JSON-правила, правила переопределения и фильтрации",default_rules:"Правила по умолчанию",default_rules_desc:"Использовать эти значения, если параметр не указан в запросе",default_raw_rules:"Raw-правила по умолчанию",default_raw_rules_desc:'Если параметр отсутствует, записывать эти значения как raw JSON-фрагменты, например true, 123, "high" или {"type":"object"}',override_rules:"Правила переопределения",override_rules_desc:"Принудительно задавать значения параметров в запросе",override_raw_rules:"Raw-правила переопределения",override_raw_rules_desc:"Всегда перезаписывать значения как raw JSON-фрагменты; полезно для response_format, схем и других сложных полей",filter_rules:"Правила фильтрации",filter_rules_desc:"Предварительно фильтровать тело исходящего запроса через JSON Path, автоматически удалять несоответствующие или лишние параметры (санитизация запроса)"}},api_keys:{label:"Список API-ключей (api-keys)",add:"Добавить API-ключ",generate:"Сгенерировать",empty:"API-ключи отсутствуют",hint:"Каждая запись — это API-ключ (в том же стиле, что и на странице управления API-ключами)",edit_title:"Редактирование API-ключа",add_title:"Добавление API-ключа",input_label:"API-ключ",input_placeholder:"Вставьте API-ключ",input_hint:"Меняет только содержимое локального файла конфигурации, не синхронизируется с интерфейсом управления API-ключами",error_empty:"Введите API-ключ",error_invalid:"API-ключ содержит недопустимые символы"},payload_rules:{rule:"Правило",models:"Применимые модели",model_name:"Название модели",provider_type:"Тип провайдера",add_model:"Добавить модель",params:"Настройки параметров",remove_params:"Удалить параметры",json_path:"JSON Path (например, temperature)",json_path_filter:"JSON Path (gjson/sjson), например generationConfig.thinkingConfig.thinkingBudget",param_type:"Тип параметра",param_value:"Значение параметра",add_param:"Добавить параметр",no_rules:"Правил нет",add_rule:"Добавить правило",provider_default:"По умолчанию",provider_openai:"OpenAI",provider_openai_response:"OpenAI Response",provider_gemini:"Gemini",provider_claude:"Claude",provider_codex:"Codex",provider_antigravity:"Antigravity",value_type_string:"Строка",value_type_number:"Число",value_type_boolean:"Булево",value_type_json:"JSON",value_string:"Строковое значение",value_number:"Числовое значение (например, 0.7)",value_boolean:"true или false",value_json:"Значение JSON",value_raw_json:'Raw JSON-фрагмент, например true, 123, "high" или {"type":"object"}',value_default:"Значение",boolean_true:"true",boolean_false:"false"},validation:{validation_blocked:"Исправьте ошибки валидации перед сохранением",port_range:"Введите корректный порт от 1 до 65535",non_negative_integer:"Введите неотрицательное целое число",payload_invalid_number:"Введите корректное число",payload_invalid_boolean:"Выберите true или false",payload_invalid_json:"Введите корректный JSON"},common:{edit:"Изменить",delete:"Удалить",cancel:"Отменить",update:"Обновить",add:"Добавить"}}},LV={title:"Управление квотами",description:"Следите за статусом квот OAuth для учётных данных Antigravity, Codex и Gemini CLI.",refresh_files:"Обновить файлы авторизации",refresh_files_and_quota:"Обновить файлы и квоты",refresh_all_credentials:"Обновить все учётные данные",card_idle_hint:"Используйте кнопку «Обновить все учётные данные» сверху, чтобы загрузить актуальные данные по квотам."},OV={title:"Информация о центре управления",about_title:"CLI Proxy API Management Center",connection_status_title:"Статус подключения",api_status_label:"Статус API:",config_status_label:"Статус конфигурации:",last_update_label:"Последнее обновление:",cache_data:"Данные из кэша",real_time_data:"Данные в реальном времени",not_loaded:"Не загружено",seconds_ago:"секунд назад",models_title:"Доступные модели",models_desc:"Показывает ответ /models и автоматически использует сохранённые API-ключи для авторизации.",models_loading:"Загрузка доступных моделей...",models_empty:"Сервис /models не вернул модели",models_error:"Не удалось загрузить список моделей",models_count:"Доступно моделей: {{count}}",version_check_title:"Проверка обновлений",version_check_desc:"Вызовите эндпоинт /latest-version, чтобы сравнить с версией сервера и узнать о доступных обновлениях.",version_current_label:"Текущая версия",version_latest_label:"Последняя версия",version_check_button:"Проверить обновления",version_check_idle:"Нажмите, чтобы проверить обновления",version_checking:"Поиск последней версии...",version_update_available:"Доступно обновление: {{version}}",version_is_latest:"Установлена последняя версия",version_check_error:"Не удалось проверить обновление",version_current_missing:"Версия сервера недоступна; сравнение невозможно",version_unknown:"Неизвестно",quick_links_title:"Быстрые ссылки",quick_links_desc:"Доступ к репозиториям проекта и документации для помощи и обновлений.",link_main_repo:"Основной репозиторий",link_main_repo_desc:"Исходный код основной программы CLI Proxy API",link_webui_repo:"Репозиторий WebUI",link_webui_repo_desc:"Исходный код фронтенда центра управления",link_docs:"Документация",link_docs_desc:"Учебные пособия и руководства по настройке",clear_login_title:"Локальные данные входа",clear_login_desc:"Очистите локально сохранённые данные входа и выполните выход. Настройки стоимости статистики использования сохранятся.",clear_login_button:"Очистить данные входа",clear_login_confirm:"Очистить локальные данные входа и выйти?"},PV={debug_updated:"Настройки отладки обновлены",proxy_updated:"Настройки прокси обновлены",proxy_cleared:"Настройки прокси очищены",retry_updated:"Настройки повторов обновлены",quota_switch_project_updated:"Настройки переключения проектов обновлены",quota_switch_preview_updated:"Настройки переключения на preview-модель обновлены",usage_statistics_updated:"Настройки статистики использования обновлены",logging_to_file_updated:"Настройки журналирования обновлены",logs_max_total_size_updated:"Лимит размера журналов обновлён",request_log_updated:"Настройка журналирования запросов обновлена",force_model_prefix_updated:"Настройка префикса модели обновлена",ws_auth_updated:"Настройка аутентификации WebSocket обновлена",routing_strategy_updated:"Стратегия маршрутизации обновлена",login_storage_cleared:"Локальные данные входа очищены",api_key_added:"API-ключ успешно добавлен",api_key_updated:"API-ключ успешно обновлён",api_key_deleted:"API-ключ успешно удалён",api_key_invalid_chars:"API-ключ может содержать только буквы, цифры и символы",gemini_key_added:"Ключ Gemini успешно добавлен",gemini_key_updated:"Ключ Gemini успешно обновлён",gemini_key_deleted:"Ключ Gemini успешно удалён",gemini_multi_input_required:"Введите хотя бы один ключ Gemini",gemini_multi_failed:"Пакетное добавление Gemini не удалось",gemini_multi_summary:"Пакетное добавление Gemini завершено: добавлено {{success}}, пропущено {{skipped}}, ошибок {{failed}}",codex_config_added:"Конфигурация Codex успешно добавлена",codex_config_updated:"Конфигурация Codex успешно обновлена",codex_config_deleted:"Конфигурация Codex успешно удалена",codex_base_url_required:"Введите базовый URL Codex",claude_config_added:"Конфигурация Claude успешно добавлена",claude_config_updated:"Конфигурация Claude успешно обновлена",claude_config_deleted:"Конфигурация Claude успешно удалена",vertex_config_added:"Конфигурация Vertex успешно добавлена",vertex_config_updated:"Конфигурация Vertex успешно обновлена",vertex_config_deleted:"Конфигурация Vertex успешно удалена",config_enabled:"Конфигурация включена",config_disabled:"Конфигурация выключена",field_required:"Обязательные поля не могут быть пустыми",openai_provider_required:"Заполните имя провайдера и базовый URL",openai_provider_added:"Провайдер OpenAI успешно добавлен",openai_provider_updated:"Провайдер OpenAI успешно обновлён",openai_provider_deleted:"Провайдер OpenAI успешно удалён",ampcode_updated:"Настройки Ampcode обновлены",ampcode_upstream_api_key_cleared:"Переопределение upstream-ключа Ampcode очищено",openai_model_name_required:"Введите имя модели",openai_test_url_required:"Укажите корректный базовый URL перед тестированием",openai_test_key_required:"Добавьте хотя бы один API-ключ перед тестированием",openai_test_model_required:"Выберите модель для теста",data_refreshed:"Данные успешно обновлены",connection_required:"Сначала установите подключение",refresh_failed:"Не удалось обновить",update_failed:"Не удалось обновить",add_failed:"Не удалось добавить",delete_failed:"Не удалось удалить",upload_failed:"Не удалось загрузить",download_failed:"Не удалось скачать",login_failed:"Вход не выполнен",please_enter:"Пожалуйста, введите",please_fill:"Пожалуйста, заполните",provider_name_url:"имя провайдера и базовый URL",api_key:"API-ключ",gemini_api_key:"API-ключ Gemini",codex_api_key:"API-ключ Codex",claude_api_key:"API-ключ Claude",commercial_mode_restart_required:"Режим коммерческого использования изменён. Перезапустите сервис, чтобы применить изменения",copy_failed:"Не удалось скопировать",link_copied:"Ссылка скопирована в буфер обмена"},EV={switch:"Язык",chinese:"中文",english:"English",russian:"Русский"},jV={switch:"Тема",light:"Шерстяная бумага",white:"Чисто-белая",dark:"Тёмная",switch_to_light:"Переключиться на тему «Шерстяная бумага»",switch_to_dark:"Переключиться на тёмную тему",auto:"Следовать системе"},RV={toggle_expand:"Развернуть боковую панель",toggle_collapse:"Свернуть боковую панель"},DV={api_version:"Версия CLI Proxy API",build_date:"Время сборки",version:"Версия интерфейса управления",author:"Автор"},FV={common:nV,title:iV,splash:sV,auto_login:aV,login:oV,header:rV,connection:lV,nav:cV,dashboard:uV,basic_settings:dV,api_keys:hV,ai_providers:fV,auth_files:mV,antigravity_quota:pV,claude_quota:gV,codex_quota:_V,gemini_cli_quota:yV,kimi_quota:bV,vertex_import:vV,oauth_excluded:xV,oauth_model_alias:SV,auth_login:wV,usage_stats:kV,stats:CV,status_bar:AV,service_health:NV,logs:TV,config_management:MV,quota_management:LV,system_info:OV,notification:PV,language:EV,theme:jV,sidebar:RV,footer:DV},kd=t=>EK.includes(t),IV=t=>{try{const e=JSON.parse(t),n=e?.state?.language??e?.language??e;if(typeof n=="string"&&kd(n))return n}catch{if(kd(t))return t}return null},UV=()=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(h4);return t?IV(t):null}catch{return null}},BV=()=>{if(typeof navigator>"u")return"zh-CN";const e=(navigator.languages?.[0]||navigator.language||"zh-CN").toLowerCase();return e.startsWith("zh")?"zh-CN":e.startsWith("ru")?"ru":"en"},g4=()=>UV()??BV();Gi.use(Eq).init({resources:{"zh-CN":{translation:bH},en:{translation:tV},ru:{translation:FV}},lng:g4(),fallbackLng:"zh-CN",interpolation:{escapeValue:!1},react:{useSuspense:!1}});const Cd=jo()(Vw((t,e)=>({language:g4(),setLanguage:n=>{kd(n)&&(Gi.changeLanguage(n),t({language:n}))},toggleLanguage:()=>{const{language:n,setLanguage:i}=e(),s=dd.indexOf(n),a=dd[(s+1)%dd.length];i(a)}}),{name:h4,merge:(t,e)=>{const n=t?.language;return typeof n=="string"&&kd(n)?{...e,...t,language:n}:e}})),F0="enc::v1::",xL="cli-proxy-api-webui::secure-storage";let Jh=null;function K2(t){return new TextEncoder().encode(t)}function zV(t){return new TextDecoder().decode(t)}function _4(){if(Jh)return Jh;try{const t=window.location.host,e=navigator.userAgent;Jh=K2(`${xL}|${t}|${e}`)}catch(t){console.warn("Obfuscation fallback to simple key:",t),Jh=K2(xL)}return Jh}function y4(t,e){const n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t[i]^e[i%e.length];return n}function qV(t){let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e)}function KV(t){const e=atob(t),n=new Uint8Array(e.length);for(let i=0;i<e.length;i++)n[i]=e.charCodeAt(i);return n}function HV(t){if(!t)return t;try{const e=_4(),n=y4(K2(t),e);return`${F0}${qV(n)}`}catch(e){return console.warn("Obfuscation failed, fallback to plaintext:",e),t}}function SL(t){if(!t||!t.startsWith(F0))return t;try{const e=t.slice(F0.length),n=KV(e),i=y4(n,_4());return zV(i)}catch(e){return console.warn("Deobfuscation failed, return as-is:",e),t}}function VV(t){return t?.startsWith(F0)||!1}class WV{setItem(e,n,i={}){const s=i.obfuscate??i.encrypt??!0;if(n==null){this.removeItem(e);return}const a=JSON.stringify(n),o=s?HV(a):a;localStorage.setItem(e,o)}getItem(e,n={}){const i=n.obfuscate??n.encrypt??!0,s=localStorage.getItem(e);if(s===null)return null;try{const a=i?SL(s):s;return JSON.parse(a)}catch{try{return i&&VV(s)?SL(s):s}catch{return null}}}removeItem(e){localStorage.removeItem(e)}clear(){localStorage.clear()}migratePlaintextKeys(e){e.forEach(n=>{const i=localStorage.getItem(n);if(!i||i.startsWith("enc::v1::"))return;let s=i;try{s=JSON.parse(i)}catch{s=i}try{this.setItem(n,s)}catch(a){console.warn(`Failed to migrate key "${n}":`,a)}})}hasItem(e){return localStorage.getItem(e)!==null}}const nc=new WV;function b4(t,e){return function(){return t.apply(e,arguments)}}const{toString:GV}=Object.prototype,{getPrototypeOf:Ww}=Object,{iterator:Fy,toStringTag:v4}=Symbol,Iy=(t=>e=>{const n=GV.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ya=t=>(t=t.toLowerCase(),e=>Iy(e)===t),Uy=t=>e=>typeof e===t,{isArray:Hd}=Array,Ad=Uy("undefined");function $m(t){return t!==null&&!Ad(t)&&t.constructor!==null&&!Ad(t.constructor)&&Is(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const x4=Ya("ArrayBuffer");function $V(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&x4(t.buffer),e}const XV=Uy("string"),Is=Uy("function"),S4=Uy("number"),Xm=t=>t!==null&&typeof t=="object",QV=t=>t===!0||t===!1,r0=t=>{if(Iy(t)!=="object")return!1;const e=Ww(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(v4 in t)&&!(Fy in t)},YV=t=>{if(!Xm(t)||$m(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},JV=Ya("Date"),ZV=Ya("File"),eW=Ya("Blob"),tW=Ya("FileList"),nW=t=>Xm(t)&&Is(t.pipe),iW=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Is(t.append)&&((e=Iy(t))==="formdata"||e==="object"&&Is(t.toString)&&t.toString()==="[object FormData]"))},sW=Ya("URLSearchParams"),[aW,oW,rW,lW]=["ReadableStream","Request","Response","Headers"].map(Ya),cW=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Qm(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,s;if(typeof t!="object"&&(t=[t]),Hd(t))for(i=0,s=t.length;i<s;i++)e.call(null,t[i],i,t);else{if($m(t))return;const a=n?Object.getOwnPropertyNames(t):Object.keys(t),o=a.length;let r;for(i=0;i<o;i++)r=a[i],e.call(null,t[r],r,t)}}function w4(t,e){if($m(t))return null;e=e.toLowerCase();const n=Object.keys(t);let i=n.length,s;for(;i-- >0;)if(s=n[i],e===s.toLowerCase())return s;return null}const wc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,k4=t=>!Ad(t)&&t!==wc;function H2(){const{caseless:t,skipUndefined:e}=k4(this)&&this||{},n={},i=(s,a)=>{if(a==="__proto__"||a==="constructor"||a==="prototype")return;const o=t&&w4(n,a)||a;r0(n[o])&&r0(s)?n[o]=H2(n[o],s):r0(s)?n[o]=H2({},s):Hd(s)?n[o]=s.slice():(!e||!Ad(s))&&(n[o]=s)};for(let s=0,a=arguments.length;s<a;s++)arguments[s]&&Qm(arguments[s],i);return n}const uW=(t,e,n,{allOwnKeys:i}={})=>(Qm(e,(s,a)=>{n&&Is(s)?Object.defineProperty(t,a,{value:b4(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,a,{value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),dW=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),hW=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},fW=(t,e,n,i)=>{let s,a,o;const r={};if(e=e||{},t==null)return e;do{for(s=Object.getOwnPropertyNames(t),a=s.length;a-- >0;)o=s[a],(!i||i(o,t,e))&&!r[o]&&(e[o]=t[o],r[o]=!0);t=n!==!1&&Ww(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},mW=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},pW=t=>{if(!t)return null;if(Hd(t))return t;let e=t.length;if(!S4(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},gW=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Ww(Uint8Array)),_W=(t,e)=>{const i=(t&&t[Fy]).call(t);let s;for(;(s=i.next())&&!s.done;){const a=s.value;e.call(t,a[0],a[1])}},yW=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},bW=Ya("HTMLFormElement"),vW=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,i,s){return i.toUpperCase()+s}),wL=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),xW=Ya("RegExp"),C4=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Qm(n,(s,a)=>{let o;(o=e(s,a,t))!==!1&&(i[a]=o||s)}),Object.defineProperties(t,i)},SW=t=>{C4(t,(e,n)=>{if(Is(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const i=t[n];if(Is(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},wW=(t,e)=>{const n={},i=s=>{s.forEach(a=>{n[a]=!0})};return Hd(t)?i(t):i(String(t).split(e)),n},kW=()=>{},CW=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function AW(t){return!!(t&&Is(t.append)&&t[v4]==="FormData"&&t[Fy])}const NW=t=>{const e=new Array(10),n=(i,s)=>{if(Xm(i)){if(e.indexOf(i)>=0)return;if($m(i))return i;if(!("toJSON"in i)){e[s]=i;const a=Hd(i)?[]:{};return Qm(i,(o,r)=>{const c=n(o,s+1);!Ad(c)&&(a[r]=c)}),e[s]=void 0,a}}return i};return n(t,0)},TW=Ya("AsyncFunction"),MW=t=>t&&(Xm(t)||Is(t))&&Is(t.then)&&Is(t.catch),A4=((t,e)=>t?setImmediate:e?((n,i)=>(wc.addEventListener("message",({source:s,data:a})=>{s===wc&&a===n&&i.length&&i.shift()()},!1),s=>{i.push(s),wc.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Is(wc.postMessage)),LW=typeof queueMicrotask<"u"?queueMicrotask.bind(wc):typeof process<"u"&&process.nextTick||A4,OW=t=>t!=null&&Is(t[Fy]),Se={isArray:Hd,isArrayBuffer:x4,isBuffer:$m,isFormData:iW,isArrayBufferView:$V,isString:XV,isNumber:S4,isBoolean:QV,isObject:Xm,isPlainObject:r0,isEmptyObject:YV,isReadableStream:aW,isRequest:oW,isResponse:rW,isHeaders:lW,isUndefined:Ad,isDate:JV,isFile:ZV,isBlob:eW,isRegExp:xW,isFunction:Is,isStream:nW,isURLSearchParams:sW,isTypedArray:gW,isFileList:tW,forEach:Qm,merge:H2,extend:uW,trim:cW,stripBOM:dW,inherits:hW,toFlatObject:fW,kindOf:Iy,kindOfTest:Ya,endsWith:mW,toArray:pW,forEachEntry:_W,matchAll:yW,isHTMLForm:bW,hasOwnProperty:wL,hasOwnProp:wL,reduceDescriptors:C4,freezeMethods:SW,toObjectSet:wW,toCamelCase:vW,noop:kW,toFiniteNumber:CW,findKey:w4,global:wc,isContextDefined:k4,isSpecCompliantForm:AW,toJSONObject:NW,isAsyncFn:TW,isThenable:MW,setImmediate:A4,asap:LW,isIterable:OW};let Ct=class N4 extends Error{static from(e,n,i,s,a,o){const r=new N4(e.message,n||e.code,i,s,a);return r.cause=e,r.name=e.name,o&&Object.assign(r,o),r}constructor(e,n,i,s,a){super(e),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),s&&(this.request=s),a&&(this.response=a,this.status=a.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Se.toJSONObject(this.config),code:this.code,status:this.status}}};Ct.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";Ct.ERR_BAD_OPTION="ERR_BAD_OPTION";Ct.ECONNABORTED="ECONNABORTED";Ct.ETIMEDOUT="ETIMEDOUT";Ct.ERR_NETWORK="ERR_NETWORK";Ct.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";Ct.ERR_DEPRECATED="ERR_DEPRECATED";Ct.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";Ct.ERR_BAD_REQUEST="ERR_BAD_REQUEST";Ct.ERR_CANCELED="ERR_CANCELED";Ct.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";Ct.ERR_INVALID_URL="ERR_INVALID_URL";const PW=null;function V2(t){return Se.isPlainObject(t)||Se.isArray(t)}function T4(t){return Se.endsWith(t,"[]")?t.slice(0,-2):t}function kL(t,e,n){return t?t.concat(e).map(function(s,a){return s=T4(s),!n&&a?"["+s+"]":s}).join(n?".":""):e}function EW(t){return Se.isArray(t)&&!t.some(V2)}const jW=Se.toFlatObject(Se,{},null,function(e){return/^is[A-Z]/.test(e)});function By(t,e,n){if(!Se.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=Se.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,x){return!Se.isUndefined(x[v])});const i=n.metaTokens,s=n.visitor||f,a=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&Se.isSpecCompliantForm(e);if(!Se.isFunction(s))throw new TypeError("visitor must be a function");function d(b){if(b===null)return"";if(Se.isDate(b))return b.toISOString();if(Se.isBoolean(b))return b.toString();if(!c&&Se.isBlob(b))throw new Ct("Blob is not supported. Use a Buffer instead.");return Se.isArrayBuffer(b)||Se.isTypedArray(b)?c&&typeof Blob=="function"?new Blob([b]):Buffer.from(b):b}function f(b,v,x){let A=b;if(b&&!x&&typeof b=="object"){if(Se.endsWith(v,"{}"))v=i?v:v.slice(0,-2),b=JSON.stringify(b);else if(Se.isArray(b)&&EW(b)||(Se.isFileList(b)||Se.endsWith(v,"[]"))&&(A=Se.toArray(b)))return v=T4(v),A.forEach(function(T,L){!(Se.isUndefined(T)||T===null)&&e.append(o===!0?kL([v],L,a):o===null?v:v+"[]",d(T))}),!1}return V2(b)?!0:(e.append(kL(x,v,a),d(b)),!1)}const m=[],g=Object.assign(jW,{defaultVisitor:f,convertValue:d,isVisitable:V2});function y(b,v){if(!Se.isUndefined(b)){if(m.indexOf(b)!==-1)throw Error("Circular reference detected in "+v.join("."));m.push(b),Se.forEach(b,function(A,k){(!(Se.isUndefined(A)||A===null)&&s.call(e,A,Se.isString(k)?k.trim():k,v,g))===!0&&y(A,v?v.concat(k):[k])}),m.pop()}}if(!Se.isObject(t))throw new TypeError("data must be an object");return y(t),e}function CL(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function Gw(t,e){this._pairs=[],t&&By(t,this,e)}const M4=Gw.prototype;M4.append=function(e,n){this._pairs.push([e,n])};M4.toString=function(e){const n=e?function(i){return e.call(this,i,CL)}:CL;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function RW(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function L4(t,e,n){if(!e)return t;const i=n&&n.encode||RW,s=Se.isFunction(n)?{serialize:n}:n,a=s&&s.serialize;let o;if(a?o=a(e,s):o=Se.isURLSearchParams(e)?e.toString():new Gw(e,s).toString(i),o){const r=t.indexOf("#");r!==-1&&(t=t.slice(0,r)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}class AL{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Se.forEach(this.handlers,function(i){i!==null&&e(i)})}}const $w={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},DW=typeof URLSearchParams<"u"?URLSearchParams:Gw,FW=typeof FormData<"u"?FormData:null,IW=typeof Blob<"u"?Blob:null,UW={isBrowser:!0,classes:{URLSearchParams:DW,FormData:FW,Blob:IW},protocols:["http","https","file","blob","url","data"]},Xw=typeof window<"u"&&typeof document<"u",W2=typeof navigator=="object"&&navigator||void 0,BW=Xw&&(!W2||["ReactNative","NativeScript","NS"].indexOf(W2.product)<0),zW=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",qW=Xw&&window.location.href||"http://localhost",KW=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xw,hasStandardBrowserEnv:BW,hasStandardBrowserWebWorkerEnv:zW,navigator:W2,origin:qW},Symbol.toStringTag,{value:"Module"})),ts={...KW,...UW};function HW(t,e){return By(t,new ts.classes.URLSearchParams,{visitor:function(n,i,s,a){return ts.isNode&&Se.isBuffer(n)?(this.append(i,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...e})}function VW(t){return Se.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function WW(t){const e={},n=Object.keys(t);let i;const s=n.length;let a;for(i=0;i<s;i++)a=n[i],e[a]=t[a];return e}function O4(t){function e(n,i,s,a){let o=n[a++];if(o==="__proto__")return!0;const r=Number.isFinite(+o),c=a>=n.length;return o=!o&&Se.isArray(s)?s.length:o,c?(Se.hasOwnProp(s,o)?s[o]=[s[o],i]:s[o]=i,!r):((!s[o]||!Se.isObject(s[o]))&&(s[o]=[]),e(n,i,s[o],a)&&Se.isArray(s[o])&&(s[o]=WW(s[o])),!r)}if(Se.isFormData(t)&&Se.isFunction(t.entries)){const n={};return Se.forEachEntry(t,(i,s)=>{e(VW(i),s,n,0)}),n}return null}function GW(t,e,n){if(Se.isString(t))try{return(e||JSON.parse)(t),Se.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const Ym={transitional:$w,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const i=n.getContentType()||"",s=i.indexOf("application/json")>-1,a=Se.isObject(e);if(a&&Se.isHTMLForm(e)&&(e=new FormData(e)),Se.isFormData(e))return s?JSON.stringify(O4(e)):e;if(Se.isArrayBuffer(e)||Se.isBuffer(e)||Se.isStream(e)||Se.isFile(e)||Se.isBlob(e)||Se.isReadableStream(e))return e;if(Se.isArrayBufferView(e))return e.buffer;if(Se.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let r;if(a){if(i.indexOf("application/x-www-form-urlencoded")>-1)return HW(e,this.formSerializer).toString();if((r=Se.isFileList(e))||i.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return By(r?{"files[]":e}:e,c&&new c,this.formSerializer)}}return a||s?(n.setContentType("application/json",!1),GW(e)):e}],transformResponse:[function(e){const n=this.transitional||Ym.transitional,i=n&&n.forcedJSONParsing,s=this.responseType==="json";if(Se.isResponse(e)||Se.isReadableStream(e))return e;if(e&&Se.isString(e)&&(i&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(e,this.parseReviver)}catch(r){if(o)throw r.name==="SyntaxError"?Ct.from(r,Ct.ERR_BAD_RESPONSE,this,null,this.response):r}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ts.classes.FormData,Blob:ts.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Se.forEach(["delete","get","head","post","put","patch"],t=>{Ym.headers[t]={}});const $W=Se.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),XW=t=>{const e={};let n,i,s;return t&&t.split(`
|
||
`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),i=o.substring(s+1).trim(),!(!n||e[n]&&$W[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e},NL=Symbol("internals");function Zh(t){return t&&String(t).trim().toLowerCase()}function l0(t){return t===!1||t==null?t:Se.isArray(t)?t.map(l0):String(t)}function QW(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const YW=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Qx(t,e,n,i,s){if(Se.isFunction(i))return i.call(this,e,n);if(s&&(e=n),!!Se.isString(e)){if(Se.isString(i))return e.indexOf(i)!==-1;if(Se.isRegExp(i))return i.test(e)}}function JW(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function ZW(t,e){const n=Se.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(s,a,o){return this[i].call(this,e,s,a,o)},configurable:!0})})}let Us=class{constructor(e){e&&this.set(e)}set(e,n,i){const s=this;function a(r,c,d){const f=Zh(c);if(!f)throw new Error("header name must be a non-empty string");const m=Se.findKey(s,f);(!m||s[m]===void 0||d===!0||d===void 0&&s[m]!==!1)&&(s[m||c]=l0(r))}const o=(r,c)=>Se.forEach(r,(d,f)=>a(d,f,c));if(Se.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(Se.isString(e)&&(e=e.trim())&&!YW(e))o(XW(e),n);else if(Se.isObject(e)&&Se.isIterable(e)){let r={},c,d;for(const f of e){if(!Se.isArray(f))throw TypeError("Object iterator must return a key-value pair");r[d=f[0]]=(c=r[d])?Se.isArray(c)?[...c,f[1]]:[c,f[1]]:f[1]}o(r,n)}else e!=null&&a(n,e,i);return this}get(e,n){if(e=Zh(e),e){const i=Se.findKey(this,e);if(i){const s=this[i];if(!n)return s;if(n===!0)return QW(s);if(Se.isFunction(n))return n.call(this,s,i);if(Se.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Zh(e),e){const i=Se.findKey(this,e);return!!(i&&this[i]!==void 0&&(!n||Qx(this,this[i],i,n)))}return!1}delete(e,n){const i=this;let s=!1;function a(o){if(o=Zh(o),o){const r=Se.findKey(i,o);r&&(!n||Qx(i,i[r],r,n))&&(delete i[r],s=!0)}}return Se.isArray(e)?e.forEach(a):a(e),s}clear(e){const n=Object.keys(this);let i=n.length,s=!1;for(;i--;){const a=n[i];(!e||Qx(this,this[a],a,e,!0))&&(delete this[a],s=!0)}return s}normalize(e){const n=this,i={};return Se.forEach(this,(s,a)=>{const o=Se.findKey(i,a);if(o){n[o]=l0(s),delete n[a];return}const r=e?JW(a):String(a).trim();r!==a&&delete n[a],n[r]=l0(s),i[r]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return Se.forEach(this,(i,s)=>{i!=null&&i!==!1&&(n[s]=e&&Se.isArray(i)?i.join(", "):i)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(`
|
||
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const i=new this(e);return n.forEach(s=>i.set(s)),i}static accessor(e){const i=(this[NL]=this[NL]={accessors:{}}).accessors,s=this.prototype;function a(o){const r=Zh(o);i[r]||(ZW(s,o),i[r]=!0)}return Se.isArray(e)?e.forEach(a):a(e),this}};Us.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Se.reduceDescriptors(Us.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}});Se.freezeMethods(Us);function Yx(t,e){const n=this||Ym,i=e||n,s=Us.from(i.headers);let a=i.data;return Se.forEach(t,function(r){a=r.call(n,a,s.normalize(),e?e.status:void 0)}),s.normalize(),a}function P4(t){return!!(t&&t.__CANCEL__)}let Jm=class extends Ct{constructor(e,n,i){super(e??"canceled",Ct.ERR_CANCELED,n,i),this.name="CanceledError",this.__CANCEL__=!0}};function E4(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new Ct("Request failed with status code "+n.status,[Ct.ERR_BAD_REQUEST,Ct.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function eG(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function tG(t,e){t=t||10;const n=new Array(t),i=new Array(t);let s=0,a=0,o;return e=e!==void 0?e:1e3,function(c){const d=Date.now(),f=i[a];o||(o=d),n[s]=c,i[s]=d;let m=a,g=0;for(;m!==s;)g+=n[m++],m=m%t;if(s=(s+1)%t,s===a&&(a=(a+1)%t),d-o<e)return;const y=f&&d-f;return y?Math.round(g*1e3/y):void 0}}function nG(t,e){let n=0,i=1e3/e,s,a;const o=(d,f=Date.now())=>{n=f,s=null,a&&(clearTimeout(a),a=null),t(...d)};return[(...d)=>{const f=Date.now(),m=f-n;m>=i?o(d,f):(s=d,a||(a=setTimeout(()=>{a=null,o(s)},i-m)))},()=>s&&o(s)]}const I0=(t,e,n=3)=>{let i=0;const s=tG(50,250);return nG(a=>{const o=a.loaded,r=a.lengthComputable?a.total:void 0,c=o-i,d=s(c),f=o<=r;i=o;const m={loaded:o,total:r,progress:r?o/r:void 0,bytes:c,rate:d||void 0,estimated:d&&r&&f?(r-o)/d:void 0,event:a,lengthComputable:r!=null,[e?"download":"upload"]:!0};t(m)},n)},TL=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},ML=t=>(...e)=>Se.asap(()=>t(...e)),iG=ts.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,ts.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(ts.origin),ts.navigator&&/(msie|trident)/i.test(ts.navigator.userAgent)):()=>!0,sG=ts.hasStandardBrowserEnv?{write(t,e,n,i,s,a,o){if(typeof document>"u")return;const r=[`${t}=${encodeURIComponent(e)}`];Se.isNumber(n)&&r.push(`expires=${new Date(n).toUTCString()}`),Se.isString(i)&&r.push(`path=${i}`),Se.isString(s)&&r.push(`domain=${s}`),a===!0&&r.push("secure"),Se.isString(o)&&r.push(`SameSite=${o}`),document.cookie=r.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function aG(t){return typeof t!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function oG(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function j4(t,e,n){let i=!aG(e);return t&&(i||n==!1)?oG(t,e):e}const LL=t=>t instanceof Us?{...t}:t;function Ic(t,e){e=e||{};const n={};function i(d,f,m,g){return Se.isPlainObject(d)&&Se.isPlainObject(f)?Se.merge.call({caseless:g},d,f):Se.isPlainObject(f)?Se.merge({},f):Se.isArray(f)?f.slice():f}function s(d,f,m,g){if(Se.isUndefined(f)){if(!Se.isUndefined(d))return i(void 0,d,m,g)}else return i(d,f,m,g)}function a(d,f){if(!Se.isUndefined(f))return i(void 0,f)}function o(d,f){if(Se.isUndefined(f)){if(!Se.isUndefined(d))return i(void 0,d)}else return i(void 0,f)}function r(d,f,m){if(m in e)return i(d,f);if(m in t)return i(void 0,d)}const c={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:r,headers:(d,f,m)=>s(LL(d),LL(f),m,!0)};return Se.forEach(Object.keys({...t,...e}),function(f){if(f==="__proto__"||f==="constructor"||f==="prototype")return;const m=Se.hasOwnProp(c,f)?c[f]:s,g=m(t[f],e[f],f);Se.isUndefined(g)&&m!==r||(n[f]=g)}),n}const R4=t=>{const e=Ic({},t);let{data:n,withXSRFToken:i,xsrfHeaderName:s,xsrfCookieName:a,headers:o,auth:r}=e;if(e.headers=o=Us.from(o),e.url=L4(j4(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),r&&o.set("Authorization","Basic "+btoa((r.username||"")+":"+(r.password?unescape(encodeURIComponent(r.password)):""))),Se.isFormData(n)){if(ts.hasStandardBrowserEnv||ts.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(Se.isFunction(n.getHeaders)){const c=n.getHeaders(),d=["content-type","content-length"];Object.entries(c).forEach(([f,m])=>{d.includes(f.toLowerCase())&&o.set(f,m)})}}if(ts.hasStandardBrowserEnv&&(i&&Se.isFunction(i)&&(i=i(e)),i||i!==!1&&iG(e.url))){const c=s&&a&&sG.read(a);c&&o.set(s,c)}return e},rG=typeof XMLHttpRequest<"u",lG=rG&&function(t){return new Promise(function(n,i){const s=R4(t);let a=s.data;const o=Us.from(s.headers).normalize();let{responseType:r,onUploadProgress:c,onDownloadProgress:d}=s,f,m,g,y,b;function v(){y&&y(),b&&b(),s.cancelToken&&s.cancelToken.unsubscribe(f),s.signal&&s.signal.removeEventListener("abort",f)}let x=new XMLHttpRequest;x.open(s.method.toUpperCase(),s.url,!0),x.timeout=s.timeout;function A(){if(!x)return;const T=Us.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),M={data:!r||r==="text"||r==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:T,config:t,request:x};E4(function(N){n(N),v()},function(N){i(N),v()},M),x=null}"onloadend"in x?x.onloadend=A:x.onreadystatechange=function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(A)},x.onabort=function(){x&&(i(new Ct("Request aborted",Ct.ECONNABORTED,t,x)),x=null)},x.onerror=function(L){const M=L&&L.message?L.message:"Network Error",O=new Ct(M,Ct.ERR_NETWORK,t,x);O.event=L||null,i(O),x=null},x.ontimeout=function(){let L=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||$w;s.timeoutErrorMessage&&(L=s.timeoutErrorMessage),i(new Ct(L,M.clarifyTimeoutError?Ct.ETIMEDOUT:Ct.ECONNABORTED,t,x)),x=null},a===void 0&&o.setContentType(null),"setRequestHeader"in x&&Se.forEach(o.toJSON(),function(L,M){x.setRequestHeader(M,L)}),Se.isUndefined(s.withCredentials)||(x.withCredentials=!!s.withCredentials),r&&r!=="json"&&(x.responseType=s.responseType),d&&([g,b]=I0(d,!0),x.addEventListener("progress",g)),c&&x.upload&&([m,y]=I0(c),x.upload.addEventListener("progress",m),x.upload.addEventListener("loadend",y)),(s.cancelToken||s.signal)&&(f=T=>{x&&(i(!T||T.type?new Jm(null,t,x):T),x.abort(),x=null)},s.cancelToken&&s.cancelToken.subscribe(f),s.signal&&(s.signal.aborted?f():s.signal.addEventListener("abort",f)));const k=eG(s.url);if(k&&ts.protocols.indexOf(k)===-1){i(new Ct("Unsupported protocol "+k+":",Ct.ERR_BAD_REQUEST,t));return}x.send(a||null)})},cG=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let i=new AbortController,s;const a=function(d){if(!s){s=!0,r();const f=d instanceof Error?d:this.reason;i.abort(f instanceof Ct?f:new Jm(f instanceof Error?f.message:f))}};let o=e&&setTimeout(()=>{o=null,a(new Ct(`timeout of ${e}ms exceeded`,Ct.ETIMEDOUT))},e);const r=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(d=>{d.unsubscribe?d.unsubscribe(a):d.removeEventListener("abort",a)}),t=null)};t.forEach(d=>d.addEventListener("abort",a));const{signal:c}=i;return c.unsubscribe=()=>Se.asap(r),c}},uG=function*(t,e){let n=t.byteLength;if(n<e){yield t;return}let i=0,s;for(;i<n;)s=i+e,yield t.slice(i,s),i=s},dG=async function*(t,e){for await(const n of hG(t))yield*uG(n,e)},hG=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:n,value:i}=await e.read();if(n)break;yield i}}finally{await e.cancel()}},OL=(t,e,n,i)=>{const s=dG(t,e);let a=0,o,r=c=>{o||(o=!0,i&&i(c))};return new ReadableStream({async pull(c){try{const{done:d,value:f}=await s.next();if(d){r(),c.close();return}let m=f.byteLength;if(n){let g=a+=m;n(g)}c.enqueue(new Uint8Array(f))}catch(d){throw r(d),d}},cancel(c){return r(c),s.return()}},{highWaterMark:2})},PL=64*1024,{isFunction:Kg}=Se,fG=(({Request:t,Response:e})=>({Request:t,Response:e}))(Se.global),{ReadableStream:EL,TextEncoder:jL}=Se.global,RL=(t,...e)=>{try{return!!t(...e)}catch{return!1}},mG=t=>{t=Se.merge.call({skipUndefined:!0},fG,t);const{fetch:e,Request:n,Response:i}=t,s=e?Kg(e):typeof fetch=="function",a=Kg(n),o=Kg(i);if(!s)return!1;const r=s&&Kg(EL),c=s&&(typeof jL=="function"?(b=>v=>b.encode(v))(new jL):async b=>new Uint8Array(await new n(b).arrayBuffer())),d=a&&r&&RL(()=>{let b=!1;const v=new n(ts.origin,{body:new EL,method:"POST",get duplex(){return b=!0,"half"}}).headers.has("Content-Type");return b&&!v}),f=o&&r&&RL(()=>Se.isReadableStream(new i("").body)),m={stream:f&&(b=>b.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(b=>{!m[b]&&(m[b]=(v,x)=>{let A=v&&v[b];if(A)return A.call(v);throw new Ct(`Response type '${b}' is not supported`,Ct.ERR_NOT_SUPPORT,x)})});const g=async b=>{if(b==null)return 0;if(Se.isBlob(b))return b.size;if(Se.isSpecCompliantForm(b))return(await new n(ts.origin,{method:"POST",body:b}).arrayBuffer()).byteLength;if(Se.isArrayBufferView(b)||Se.isArrayBuffer(b))return b.byteLength;if(Se.isURLSearchParams(b)&&(b=b+""),Se.isString(b))return(await c(b)).byteLength},y=async(b,v)=>{const x=Se.toFiniteNumber(b.getContentLength());return x??g(v)};return async b=>{let{url:v,method:x,data:A,signal:k,cancelToken:T,timeout:L,onDownloadProgress:M,onUploadProgress:O,responseType:N,headers:P,withCredentials:E="same-origin",fetchOptions:R}=R4(b),z=e||fetch;N=N?(N+"").toLowerCase():"text";let D=cG([k,T&&T.toAbortSignal()],L),Q=null;const G=D&&D.unsubscribe&&(()=>{D.unsubscribe()});let B;try{if(O&&d&&x!=="get"&&x!=="head"&&(B=await y(P,A))!==0){let U=new n(v,{method:"POST",body:A,duplex:"half"}),q;if(Se.isFormData(A)&&(q=U.headers.get("content-type"))&&P.setContentType(q),U.body){const[Y,oe]=TL(B,I0(ML(O)));A=OL(U.body,PL,Y,oe)}}Se.isString(E)||(E=E?"include":"omit");const I=a&&"credentials"in n.prototype,V={...R,signal:D,method:x.toUpperCase(),headers:P.normalize().toJSON(),body:A,duplex:"half",credentials:I?E:void 0};Q=a&&new n(v,V);let K=await(a?z(Q,R):z(v,V));const $=f&&(N==="stream"||N==="response");if(f&&(M||$&&G)){const U={};["status","statusText","headers"].forEach(se=>{U[se]=K[se]});const q=Se.toFiniteNumber(K.headers.get("content-length")),[Y,oe]=M&&TL(q,I0(ML(M),!0))||[];K=new i(OL(K.body,PL,Y,()=>{oe&&oe(),G&&G()}),U)}N=N||"text";let X=await m[Se.findKey(m,N)||"text"](K,b);return!$&&G&&G(),await new Promise((U,q)=>{E4(U,q,{data:X,headers:Us.from(K.headers),status:K.status,statusText:K.statusText,config:b,request:Q})})}catch(I){throw G&&G(),I&&I.name==="TypeError"&&/Load failed|fetch/i.test(I.message)?Object.assign(new Ct("Network Error",Ct.ERR_NETWORK,b,Q,I&&I.response),{cause:I.cause||I}):Ct.from(I,I&&I.code,b,Q,I&&I.response)}}},pG=new Map,D4=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:s}=e,a=[i,s,n];let o=a.length,r=o,c,d,f=pG;for(;r--;)c=a[r],d=f.get(c),d===void 0&&f.set(c,d=r?new Map:mG(e)),f=d;return d};D4();const Qw={http:PW,xhr:lG,fetch:{get:D4}};Se.forEach(Qw,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const DL=t=>`- ${t}`,gG=t=>Se.isFunction(t)||t===null||t===!1;function _G(t,e){t=Se.isArray(t)?t:[t];const{length:n}=t;let i,s;const a={};for(let o=0;o<n;o++){i=t[o];let r;if(s=i,!gG(i)&&(s=Qw[(r=String(i)).toLowerCase()],s===void 0))throw new Ct(`Unknown adapter '${r}'`);if(s&&(Se.isFunction(s)||(s=s.get(e))))break;a[r||"#"+o]=s}if(!s){const o=Object.entries(a).map(([c,d])=>`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let r=n?o.length>1?`since :
|
||
`+o.map(DL).join(`
|
||
`):" "+DL(o[0]):"as no adapter specified";throw new Ct("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return s}const F4={getAdapter:_G,adapters:Qw};function Jx(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Jm(null,t)}function FL(t){return Jx(t),t.headers=Us.from(t.headers),t.data=Yx.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),F4.getAdapter(t.adapter||Ym.adapter,t)(t).then(function(i){return Jx(t),i.data=Yx.call(t,t.transformResponse,i),i.headers=Us.from(i.headers),i},function(i){return P4(i)||(Jx(t),i&&i.response&&(i.response.data=Yx.call(t,t.transformResponse,i.response),i.response.headers=Us.from(i.response.headers))),Promise.reject(i)})}const I4="1.13.5",zy={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{zy[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});const IL={};zy.transitional=function(e,n,i){function s(a,o){return"[Axios v"+I4+"] Transitional option '"+a+"'"+o+(i?". "+i:"")}return(a,o,r)=>{if(e===!1)throw new Ct(s(o," has been removed"+(n?" in "+n:"")),Ct.ERR_DEPRECATED);return n&&!IL[o]&&(IL[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(a,o,r):!0}};zy.spelling=function(e){return(n,i)=>(console.warn(`${i} is likely a misspelling of ${e}`),!0)};function yG(t,e,n){if(typeof t!="object")throw new Ct("options must be an object",Ct.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let s=i.length;for(;s-- >0;){const a=i[s],o=e[a];if(o){const r=t[a],c=r===void 0||o(r,a,t);if(c!==!0)throw new Ct("option "+a+" must be "+c,Ct.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ct("Unknown option "+a,Ct.ERR_BAD_OPTION)}}const c0={assertOptions:yG,validators:zy},fa=c0.validators;let Oc=class{constructor(e){this.defaults=e||{},this.interceptors={request:new AL,response:new AL}}async request(e,n){try{return await this._request(e,n)}catch(i){if(i instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const a=s.stack?s.stack.replace(/^.+\n/,""):"";try{i.stack?a&&!String(i.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(i.stack+=`
|
||
`+a):i.stack=a}catch{}}throw i}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Ic(this.defaults,n);const{transitional:i,paramsSerializer:s,headers:a}=n;i!==void 0&&c0.assertOptions(i,{silentJSONParsing:fa.transitional(fa.boolean),forcedJSONParsing:fa.transitional(fa.boolean),clarifyTimeoutError:fa.transitional(fa.boolean),legacyInterceptorReqResOrdering:fa.transitional(fa.boolean)},!1),s!=null&&(Se.isFunction(s)?n.paramsSerializer={serialize:s}:c0.assertOptions(s,{encode:fa.function,serialize:fa.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),c0.assertOptions(n,{baseUrl:fa.spelling("baseURL"),withXsrfToken:fa.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=a&&Se.merge(a.common,a[n.method]);a&&Se.forEach(["delete","get","head","post","put","patch","common"],b=>{delete a[b]}),n.headers=Us.concat(o,a);const r=[];let c=!0;this.interceptors.request.forEach(function(v){if(typeof v.runWhen=="function"&&v.runWhen(n)===!1)return;c=c&&v.synchronous;const x=n.transitional||$w;x&&x.legacyInterceptorReqResOrdering?r.unshift(v.fulfilled,v.rejected):r.push(v.fulfilled,v.rejected)});const d=[];this.interceptors.response.forEach(function(v){d.push(v.fulfilled,v.rejected)});let f,m=0,g;if(!c){const b=[FL.bind(this),void 0];for(b.unshift(...r),b.push(...d),g=b.length,f=Promise.resolve(n);m<g;)f=f.then(b[m++],b[m++]);return f}g=r.length;let y=n;for(;m<g;){const b=r[m++],v=r[m++];try{y=b(y)}catch(x){v.call(this,x);break}}try{f=FL.call(this,y)}catch(b){return Promise.reject(b)}for(m=0,g=d.length;m<g;)f=f.then(d[m++],d[m++]);return f}getUri(e){e=Ic(this.defaults,e);const n=j4(e.baseURL,e.url,e.allowAbsoluteUrls);return L4(n,e.params,e.paramsSerializer)}};Se.forEach(["delete","get","head","options"],function(e){Oc.prototype[e]=function(n,i){return this.request(Ic(i||{},{method:e,url:n,data:(i||{}).data}))}});Se.forEach(["post","put","patch"],function(e){function n(i){return function(a,o,r){return this.request(Ic(r||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:a,data:o}))}}Oc.prototype[e]=n(),Oc.prototype[e+"Form"]=n(!0)});let bG=class U4{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(a){n=a});const i=this;this.promise.then(s=>{if(!i._listeners)return;let a=i._listeners.length;for(;a-- >0;)i._listeners[a](s);i._listeners=null}),this.promise.then=s=>{let a;const o=new Promise(r=>{i.subscribe(r),a=r}).then(s);return o.cancel=function(){i.unsubscribe(a)},o},e(function(a,o,r){i.reason||(i.reason=new Jm(a,o,r),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new U4(function(s){e=s}),cancel:e}}};function vG(t){return function(n){return t.apply(null,n)}}function xG(t){return Se.isObject(t)&&t.isAxiosError===!0}const G2={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(G2).forEach(([t,e])=>{G2[e]=t});function B4(t){const e=new Oc(t),n=b4(Oc.prototype.request,e);return Se.extend(n,Oc.prototype,e,{allOwnKeys:!0}),Se.extend(n,e,null,{allOwnKeys:!0}),n.create=function(s){return B4(Ic(t,s))},n}const Xn=B4(Ym);Xn.Axios=Oc;Xn.CanceledError=Jm;Xn.CancelToken=bG;Xn.isCancel=P4;Xn.VERSION=I4;Xn.toFormData=By;Xn.AxiosError=Ct;Xn.Cancel=Xn.CanceledError;Xn.all=function(e){return Promise.all(e)};Xn.spread=vG;Xn.isAxiosError=xG;Xn.mergeConfig=Ic;Xn.AxiosHeaders=Us;Xn.formToJSON=t=>O4(Se.isHTMLForm(t)?new FormData(t):t);Xn.getAdapter=F4.getAdapter;Xn.HttpStatusCode=G2;Xn.default=Xn;const{Axios:XTe,AxiosError:QTe,CanceledError:YTe,isCancel:JTe,CancelToken:ZTe,VERSION:eMe,all:tMe,Cancel:nMe,isAxiosError:iMe,spread:sMe,toFormData:aMe,AxiosHeaders:oMe,HttpStatusCode:rMe,formToJSON:lMe,getAdapter:cMe,mergeConfig:uMe}=Xn,Mo=t=>{let e=(t||"").trim();return e?(e=e.replace(/\/?v0\/management\/?$/i,""),e=e.replace(/\/+$/i,""),/^https?:\/\//i.test(e)||(e=`http://${e}`),e):""},SG=t=>{const e=Mo(t);return e?`${e}${z2}`:""},z4=()=>{try{const{protocol:t,hostname:e,port:n}=window.location,i=n?`:${n}`:"";return Mo(`${t}//${e}${i}`)}catch(t){return console.warn("Failed to detect api base from location, fallback to default",t),Mo(`http://localhost:${MK}`)}};class wG{constructor(){Pt(this,"instance");Pt(this,"apiBase","");Pt(this,"managementKey","");this.instance=Xn.create({timeout:yL,headers:{"Content-Type":"application/json"}}),this.setupInterceptors()}setConfig(e){this.apiBase=SG(e.apiBase),this.managementKey=e.managementKey,e.timeout?this.instance.defaults.timeout=e.timeout:this.instance.defaults.timeout=yL}readHeader(e,n){if(!e)return null;const i=r=>{if(r==null)return null;if(Array.isArray(r)){const d=r.find(f=>f!=null&&String(f).trim());return d!==void 0?String(d):null}const c=String(r);return c||null},s=e.get;if(typeof s=="function")for(const r of n){const c=i(s.call(e,r));if(c)return c}const a=typeof e.entries=="function"?Array.from(e.entries()):Object.entries(e),o=Object.fromEntries(a.map(([r,c])=>[String(r).toLowerCase(),c]));for(const r of n){const c=i(o[r.toLowerCase()]);if(c)return c}return null}setupInterceptors(){this.instance.interceptors.request.use(e=>(e.baseURL=this.apiBase,e.url&&(e.url=e.url.replace(/\/generative-language-api-key\b/g,"/gemini-api-key")),this.managementKey&&(e.headers.Authorization=`Bearer ${this.managementKey}`),e),e=>Promise.reject(this.handleError(e))),this.instance.interceptors.response.use(e=>{const n=e.headers,i=this.readHeader(n,LK),s=this.readHeader(n,OK);return(i||s)&&window.dispatchEvent(new CustomEvent("server-version-update",{detail:{version:i||null,buildDate:s||null}})),e},e=>Promise.reject(this.handleError(e)))}handleError(e){const n=a=>a!==null&&typeof a=="object";if(Xn.isAxiosError(e)){const a=e.response?.data,o=n(a)?a:null,r=o?.error,c=typeof r=="string"?r:n(r)&&typeof r.message=="string"?r.message:typeof o?.message=="string"?o.message:e.message||"Request failed",d=new Error(c);return d.name="ApiError",d.status=e.response?.status,d.code=e.code,d.details=a,d.data=a,e.response?.status===401&&window.dispatchEvent(new Event("unauthorized")),d}const i=e instanceof Error?e.message:typeof e=="string"?e:"Unknown error occurred",s=new Error(i);return s.name="ApiError",s}async get(e,n){return(await this.instance.get(e,n)).data}async post(e,n,i){return(await this.instance.post(e,n,i)).data}async put(e,n,i){return(await this.instance.put(e,n,i)).data}async patch(e,n,i){return(await this.instance.patch(e,n,i)).data}async delete(e,n){return(await this.instance.delete(e,n)).data}async getRaw(e,n){return this.instance.get(e,n)}async postForm(e,n,i){return(await this.instance.post(e,n,{...i,headers:{...i?.headers||{},"Content-Type":"multipart/form-data"}})).data}async requestRaw(e){return this.instance.request(e)}}const Be=new wG;function gs(t){return t?Array.isArray(t)?t.reduce((e,n)=>{const i=n?.key?.trim(),s=n?.value?.trim();return i&&s!==void 0&&s!==null&&s!==""&&(e[i]=s),e},{}):Object.entries(t).reduce((e,[n,i])=>{const s=n?.trim(),a=typeof i=="string"?i.trim():i;return s&&a!==void 0&&a!==null&&a!==""&&(e[s]=String(a)),e},{}):{}}function q4(t,e){if(!t)return!1;const n=e.toLowerCase();return Object.keys(t).some(i=>i.toLowerCase()===n)}function Zm(t){return!t||typeof t!="object"?[]:Object.entries(t).filter(([,e])=>e!=null&&e!=="").map(([e,n])=>({key:e,value:String(n)}))}const Ro=t=>(t??[]).map(e=>({key:String(e?.key??"").trim(),value:String(e?.value??"").trim()})).filter(e=>e.key||e.value).sort((e,n)=>{const i=e.key.toLowerCase().localeCompare(n.key.toLowerCase());return i!==0?i:e.value.localeCompare(n.value)}),ss=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),Ka=t=>{if(t!=null){if(typeof t=="boolean")return t;if(typeof t=="number")return t!==0;if(typeof t=="string"){const e=t.trim().toLowerCase();if(["true","1","yes","y","on"].includes(e))return!0;if(["false","0","no","n","off"].includes(e))return!1}return!!t}},Yw=t=>Array.isArray(t)?t.map(e=>{if(e==null)return null;if(typeof e=="string"){const r=e.trim();return r?{name:r}:null}if(!ss(e))return null;const n=e.name||e.id||e.model;if(!n)return null;const i=e.alias||e.display_name||e.displayName,s=e.priority??e.priority,a=e["test-model"]??e.testModel,o={name:String(n)};if(i&&i!==n&&(o.alias=String(i)),s!==void 0){const r=Number(s);Number.isFinite(r)&&(o.priority=r)}return a&&(o.testModel=String(a)),o}).filter(Boolean):[],qy=t=>{if(!t||typeof t!="object")return;const e=gs((Array.isArray(t),t));return Object.keys(e).length?e:void 0},U0=t=>{const e=Array.isArray(t)?t:typeof t=="string"?t.split(/[\n,]/):[],n=new Set,i=[];return e.forEach(s=>{const a=String(s??"").trim();if(!a)return;const o=a.toLowerCase();n.has(o)||(n.add(o),i.push(a))}),i},Jw=t=>{if(t==null)return;const e=String(t).trim();return e||void 0},UL=t=>{if(t==null)return null;const e=ss(t)?t:null,n=e?.["api-key"]??e?.apiKey??e?.key??(typeof t=="string"?t:""),i=String(n||"").trim();if(!i)return null;const s=e?e["proxy-url"]??e.proxyUrl:void 0,a=e?qy(e.headers):void 0;return{apiKey:i,proxyUrl:s?String(s):void 0,headers:a}},hd=t=>{if(t==null)return null;const e=ss(t)?t:null,n=e?.["api-key"]??e?.apiKey??(typeof t=="string"?t:""),i=String(n||"").trim();if(!i)return null;const s={apiKey:i},a=e?.priority??e?.priority;if(a!=null&&String(a).trim()!==""){const b=Number(a);Number.isFinite(b)&&(s.priority=b)}const o=Jw(e?.prefix??e?.prefix);o&&(s.prefix=o);const r=e?e["base-url"]??e.baseUrl:void 0,c=e?e["proxy-url"]??e.proxyUrl:void 0;r&&(s.baseUrl=String(r));const d=Ka(e?.websockets??e?.websockets);d!==void 0&&(s.websockets=d),c&&(s.proxyUrl=String(c));const f=qy(e?.headers);f&&(s.headers=f);const m=Yw(e?.models);m.length&&(s.models=m);const g=U0(e?.["excluded-models"]??e?.excludedModels??e?.excluded_models??e?.excluded_models);g.length&&(s.excludedModels=g);const y=e?.cloak;if(ss(y)){const b={},v=y.mode??y.mode;typeof v=="string"&&v.trim()&&(b.mode=v.trim());const x=Ka(y["strict-mode"]??y.strictMode??y.strict_mode);x!==void 0&&(b.strictMode=x);const A=U0(y["sensitive-words"]??y.sensitiveWords??y.sensitive_words);A.length&&(b.sensitiveWords=A),Object.keys(b).length&&(s.cloak=b)}return s},K4=t=>{if(t==null)return null;const e=ss(t)?t:null;let n=e?.["api-key"]??e?.apiKey;!n&&typeof t=="string"&&(n=t);const i=String(n||"").trim();if(!i)return null;const s={apiKey:i},a=e?.priority??e?.priority;if(a!=null&&String(a).trim()!==""){const g=Number(a);Number.isFinite(g)&&(s.priority=g)}const o=Jw(e?.prefix??e?.prefix);o&&(s.prefix=o);const r=e?e["base-url"]??e.baseUrl??e.base_url:void 0;r&&(s.baseUrl=String(r));const c=e?e["proxy-url"]??e.proxyUrl??e.proxy_url:void 0;c&&(s.proxyUrl=String(c));const d=Yw(e?.models);d.length&&(s.models=d);const f=qy(e?.headers);f&&(s.headers=f);const m=U0(e?.["excluded-models"]??e?.excludedModels);return m.length&&(s.excludedModels=m),s},H4=t=>{if(!ss(t))return null;const e=t.name||t.id,n=t["base-url"]??t.baseUrl;if(!e||!n)return null;let i=[];Array.isArray(t["api-key-entries"])?i=t["api-key-entries"].map(f=>UL(f)).filter(Boolean):Array.isArray(t["api-keys"])&&(i=t["api-keys"].map(f=>UL({"api-key":f})).filter(Boolean));const s=qy(t.headers),a=Yw(t.models),o=t.priority??t.priority,r=t["test-model"]??t.testModel,c={name:String(e),baseUrl:String(n),apiKeyEntries:i},d=Jw(t.prefix??t.prefix);return d&&(c.prefix=d),s&&(c.headers=s),a.length&&(c.models=a),o!==void 0&&(c.priority=Number(o)),r&&(c.testModel=String(r)),c},kG=t=>{if(!ss(t))return;const e=t["oauth-excluded-models"]??t.items??t;if(!ss(e))return;const n={};return Object.entries(e).forEach(([i,s])=>{const a=String(i||"").trim();if(!a)return;const o=U0(s);n[a.toLowerCase()]=o}),n},V4=t=>{if(!Array.isArray(t))return[];const e=new Set,n=[];return t.forEach(i=>{if(!ss(i))return;const s=String(i.from??i.from??"").trim(),a=String(i.to??i.to??"").trim();if(!s||!a)return;const o=s.toLowerCase();e.has(o)||(e.add(o),n.push({from:s,to:a}))}),n},W4=t=>{if(!Array.isArray(t))return[];const e=new Set,n=[];return t.forEach(i=>{if(!ss(i))return;const s=String(i["upstream-api-key"]??i.upstreamApiKey??i.upstream_api_key??"").trim();if(!s||e.has(s))return;const a=i["api-keys"]??i.apiKeys??i.api_keys??[],o=Array.isArray(a)?Array.from(new Set(a.map(r=>String(r??"").trim()).filter(Boolean))):[];o.length&&(e.add(s),n.push({upstreamApiKey:s,apiKeys:o}))}),n},G4=t=>{const e=ss(t)?t.ampcode??t:t;if(!ss(e))return;const n=e,i={},s=n["upstream-url"]??n.upstreamUrl??n.upstream_url;s&&(i.upstreamUrl=String(s));const a=n["upstream-api-key"]??n.upstreamApiKey??n.upstream_api_key;a&&(i.upstreamApiKey=String(a));const o=W4(n["upstream-api-keys"]??n.upstreamApiKeys??n.upstream_api_keys);o.length&&(i.upstreamApiKeys=o);const r=Ka(n["force-model-mappings"]??n.forceModelMappings??n.force_model_mappings);r!==void 0&&(i.forceModelMappings=r);const c=V4(n["model-mappings"]??n.modelMappings??n.model_mappings);return c.length&&(i.modelMappings=c),i},CG=t=>{const e={raw:ss(t)?t:{}};if(!ss(t))return e;e.debug=Ka(t.debug);const n=t["proxy-url"]??t.proxyUrl;e.proxyUrl=typeof n=="string"?n:n==null?void 0:String(n);const i=t["request-retry"]??t.requestRetry;if(typeof i=="number"&&Number.isFinite(i))e.requestRetry=i;else if(typeof i=="string"&&i.trim()!==""){const x=Number(i);Number.isFinite(x)&&(e.requestRetry=x)}const s=t["quota-exceeded"]??t.quotaExceeded;ss(s)&&(e.quotaExceeded={switchProject:Ka(s["switch-project"]??s.switchProject),switchPreviewModel:Ka(s["switch-preview-model"]??s.switchPreviewModel)}),e.usageStatisticsEnabled=Ka(t["usage-statistics-enabled"]??t.usageStatisticsEnabled),e.requestLog=Ka(t["request-log"]??t.requestLog),e.loggingToFile=Ka(t["logging-to-file"]??t.loggingToFile);const a=t["logs-max-total-size-mb"]??t.logsMaxTotalSizeMb;if(typeof a=="number"&&Number.isFinite(a))e.logsMaxTotalSizeMb=a;else if(typeof a=="string"&&a.trim()!==""){const x=Number(a);Number.isFinite(x)&&(e.logsMaxTotalSizeMb=x)}e.wsAuth=Ka(t["ws-auth"]??t.wsAuth),e.forceModelPrefix=Ka(t["force-model-prefix"]??t.forceModelPrefix);const o=t.routing,r=ss(o)?o.strategy??o.strategy:t["routing-strategy"]??t.routingStrategy;r!=null&&(e.routingStrategy=String(r));const c=t["api-keys"]??t.apiKeys;Array.isArray(c)&&(e.apiKeys=c.map(x=>String(x)).filter(x=>x.trim()!==""));const d=t["gemini-api-key"]??t.geminiApiKey??t.geminiApiKeys;Array.isArray(d)&&(e.geminiApiKeys=d.map(x=>K4(x)).filter(Boolean));const f=t["codex-api-key"]??t.codexApiKey??t.codexApiKeys;Array.isArray(f)&&(e.codexApiKeys=f.map(x=>hd(x)).filter(Boolean));const m=t["claude-api-key"]??t.claudeApiKey??t.claudeApiKeys;Array.isArray(m)&&(e.claudeApiKeys=m.map(x=>hd(x)).filter(Boolean));const g=t["vertex-api-key"]??t.vertexApiKey??t.vertexApiKeys;Array.isArray(g)&&(e.vertexApiKeys=g.map(x=>hd(x)).filter(Boolean));const y=t["openai-compatibility"]??t.openaiCompatibility??t.openAICompatibility;Array.isArray(y)&&(e.openaiCompatibility=y.map(x=>H4(x)).filter(Boolean));const b=G4(t.ampcode);b&&(e.ampcode=b);const v=kG(t["oauth-excluded-models"]??t.oauthExcludedModels);return v&&(e.oauthExcludedModels=v),e},$4={async getConfig(){const t=await Be.get("/config");return CG(t)},getRawConfig:()=>Be.get("/config"),updateDebug:t=>Be.put("/debug",{value:t}),updateProxyUrl:t=>Be.put("/proxy-url",{value:t}),clearProxyUrl:()=>Be.delete("/proxy-url"),updateRequestRetry:t=>Be.put("/request-retry",{value:t}),updateSwitchProject:t=>Be.put("/quota-exceeded/switch-project",{value:t}),updateSwitchPreviewModel:t=>Be.put("/quota-exceeded/switch-preview-model",{value:t}),updateUsageStatistics:t=>Be.put("/usage-statistics-enabled",{value:t}),updateRequestLog:t=>Be.put("/request-log",{value:t}),updateLoggingToFile:t=>Be.put("/logging-to-file",{value:t}),async getLogsMaxTotalSizeMb(){const t=await Be.get("/logs-max-total-size-mb"),e=t?.["logs-max-total-size-mb"]??t?.logsMaxTotalSizeMb??0,n=Number(e);return Number.isFinite(n)?n:0},updateLogsMaxTotalSizeMb:t=>Be.put("/logs-max-total-size-mb",{value:t}),updateWsAuth:t=>Be.put("/ws-auth",{value:t}),async getForceModelPrefix(){const t=await Be.get("/force-model-prefix");return!!(t?.["force-model-prefix"]??t?.forceModelPrefix??!1)},updateForceModelPrefix:t=>Be.put("/force-model-prefix",{value:t}),async getRoutingStrategy(){const t=await Be.get("/routing/strategy"),e=t?.strategy??t?.["routing-strategy"]??t?.routingStrategy;return typeof e=="string"?e:"round-robin"},updateRoutingStrategy:t=>Be.put("/routing/strategy",{value:t})};let ef=0,ic=null;const AG=["debug","proxy-url","request-retry","quota-exceeded","usage-statistics-enabled","request-log","logging-to-file","logs-max-total-size-mb","ws-auth","force-model-prefix","routing/strategy","api-keys","ampcode","gemini-api-key","codex-api-key","claude-api-key","vertex-api-key","openai-compatibility","oauth-excluded-models"],tf=(t,e)=>{if(t)switch(e){case"debug":return t.debug;case"proxy-url":return t.proxyUrl;case"request-retry":return t.requestRetry;case"quota-exceeded":return t.quotaExceeded;case"usage-statistics-enabled":return t.usageStatisticsEnabled;case"request-log":return t.requestLog;case"logging-to-file":return t.loggingToFile;case"logs-max-total-size-mb":return t.logsMaxTotalSizeMb;case"ws-auth":return t.wsAuth;case"force-model-prefix":return t.forceModelPrefix;case"routing/strategy":return t.routingStrategy;case"api-keys":return t.apiKeys;case"ampcode":return t.ampcode;case"gemini-api-key":return t.geminiApiKeys;case"codex-api-key":return t.codexApiKeys;case"claude-api-key":return t.claudeApiKeys;case"vertex-api-key":return t.vertexApiKeys;case"openai-compatibility":return t.openaiCompatibility;case"oauth-excluded-models":return t.oauthExcludedModels;default:return e?t.raw?.[e]:void 0}},Bt=jo((t,e)=>({config:null,cache:new Map,loading:!1,error:null,fetchConfig:(async(n,i=!1)=>{const{cache:s,isCacheValid:a}=e(),o=n||"__full__";if(!i&&a(n)){const c=s.get(o);if(c)return c.data}if(!i&&n&&a()){const c=s.get("__full__");if(c?.data)return tf(c.data,n)}if(ic){const c=await ic.promise;return n?tf(c,n):c}t({loading:!0,error:null});const r=ef+=1;try{const c=$4.getConfig();ic={id:r,promise:c};const d=await c,f=Date.now();if(r!==ef)return n?tf(d,n):d;const m=new Map(s);return m.set("__full__",{data:d,timestamp:f}),AG.forEach(g=>{const y=tf(d,g);y!==void 0&&m.set(g,{data:y,timestamp:f})}),t({config:d,cache:m,loading:!1}),n?tf(d,n):d}catch(c){const d=c instanceof Error?c.message:typeof c=="string"?c:"Failed to fetch config";throw r===ef&&t({error:d||"Failed to fetch config",loading:!1}),c}finally{ic?.id===r&&(ic=null)}}),updateConfigValue:(n,i)=>{t(s=>{const a={...s.config?.raw||{}};a[n]=i;const o={...s.config||{},raw:a};switch(n){case"debug":o.debug=i;break;case"proxy-url":o.proxyUrl=i;break;case"request-retry":o.requestRetry=i;break;case"quota-exceeded":o.quotaExceeded=i;break;case"usage-statistics-enabled":o.usageStatisticsEnabled=i;break;case"request-log":o.requestLog=i;break;case"logging-to-file":o.loggingToFile=i;break;case"logs-max-total-size-mb":o.logsMaxTotalSizeMb=i;break;case"ws-auth":o.wsAuth=i;break;case"force-model-prefix":o.forceModelPrefix=i;break;case"routing/strategy":o.routingStrategy=i;break;case"api-keys":o.apiKeys=i;break;case"ampcode":o.ampcode=i;break;case"gemini-api-key":o.geminiApiKeys=i;break;case"codex-api-key":o.codexApiKeys=i;break;case"claude-api-key":o.claudeApiKeys=i;break;case"vertex-api-key":o.vertexApiKeys=i;break;case"openai-compatibility":o.openaiCompatibility=i;break;case"oauth-excluded-models":o.oauthExcludedModels=i;break}return{config:o}}),e().clearCache(n)},clearCache:n=>{const{cache:i}=e(),s=new Map(i);if(n){s.delete(n),s.delete("__full__"),ef+=1,ic=null,t({cache:s,loading:!1,error:null});return}else s.clear();ef+=1,ic=null,t({config:null,cache:s,loading:!1,error:null})},isCacheValid:n=>{const{cache:i}=e(),s=n||"__full__",a=i.get(s);return a?Date.now()-a.timestamp<u4:!1}})),NG=t=>{if(t==null)return{bodyText:"",body:null};if(typeof t=="string"){const e=t,n=e.trim();if(!n)return{bodyText:e,body:null};try{return{bodyText:e,body:JSON.parse(n)}}catch{return{bodyText:e,body:e}}}try{return{bodyText:JSON.stringify(t),body:t}}catch{return{bodyText:String(t),body:t}}},Ha=t=>{const e=o=>o!==null&&typeof o=="object",n=t.statusCode,i=t.body,s=t.bodyText;let a="";if(e(i)){const o=i.error;e(o)&&typeof o.message=="string"?a=o.message:typeof o=="string"&&(a=o),!a&&typeof i.message=="string"&&(a=i.message)}else typeof i=="string"&&(a=i);return!a&&s&&(a=s),n&&a?`${n} ${a}`.trim():n?`HTTP ${n}`:a||"Request failed"},ea={request:async(t,e)=>{const n=await Be.post("/api-call",t,e),i=Number(n?.status_code??n?.statusCode??0),s=n?.header??n?.headers??{},{bodyText:a,body:o}=NG(n?.body);return{statusCode:i,header:s,bodyText:a,body:o}}},Af={async fetchConfigYaml(){const e=(await Be.getRaw("/config.yaml",{responseType:"text",headers:{Accept:"application/yaml, text/yaml, text/plain"}})).data;return typeof e=="string"?e:e==null?"":String(e)},async saveConfigYaml(t){await Be.put("/config.yaml",t,{headers:{"Content-Type":"application/yaml",Accept:"application/json, text/plain, */*"}})}},$2={async list(){const t=await Be.get("/api-keys"),e=t["api-keys"]??t.apiKeys;return Array.isArray(e)?e.map(n=>String(n)):[]},replace:t=>Be.put("/api-keys",t),update:(t,e)=>Be.patch("/api-keys",{index:t,value:e}),delete:t=>Be.delete(`/api-keys?index=${t}`)},BL=t=>t.map(e=>({"upstream-api-key":e.upstreamApiKey,"api-keys":e.apiKeys})),qa={async getAmpcode(){const t=await Be.get("/ampcode");return G4(t)??{}},updateUpstreamUrl:t=>Be.put("/ampcode/upstream-url",{value:t}),clearUpstreamUrl:()=>Be.delete("/ampcode/upstream-url"),updateUpstreamApiKey:t=>Be.put("/ampcode/upstream-api-key",{value:t}),clearUpstreamApiKey:()=>Be.delete("/ampcode/upstream-api-key"),async getUpstreamApiKeys(){const t=await Be.get("/ampcode/upstream-api-keys"),e=t?.["upstream-api-keys"]??t?.upstreamApiKeys??t?.items??t;return W4(e)},saveUpstreamApiKeys:t=>Be.put("/ampcode/upstream-api-keys",{value:BL(t)}),patchUpstreamApiKeys:t=>Be.patch("/ampcode/upstream-api-keys",{value:BL(t)}),deleteUpstreamApiKeys:t=>Be.delete("/ampcode/upstream-api-keys",{data:{value:t}}),async getModelMappings(){const t=await Be.get("/ampcode/model-mappings"),e=t?.["model-mappings"]??t?.modelMappings??t?.items??t;return V4(e)},saveModelMappings:t=>Be.put("/ampcode/model-mappings",{value:t}),patchModelMappings:t=>Be.patch("/ampcode/model-mappings",{value:t}),clearModelMappings:()=>Be.delete("/ampcode/model-mappings"),deleteModelMappings:t=>Be.delete("/ampcode/model-mappings",{data:{value:t}}),updateForceModelMappings:t=>Be.put("/ampcode/force-model-mappings",{value:t})},ep=t=>t&&Object.keys(t).length?t:void 0,TG=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),nf=(t,e)=>{if(Array.isArray(t))return t;if(!TG(t))return[];const n=t[e]??t.items??t.data??t;return Array.isArray(n)?n:[]},Hg=(t,e)=>{const n=new URLSearchParams;return n.set("api-key",t.trim()),n.set("base-url",(e??"").trim()),`?${n.toString()}`},Zw=t=>Array.isArray(t)?t.map(e=>{if(!e?.name)return null;const n={name:e.name};return e.alias&&e.alias!==e.name&&(n.alias=e.alias),e.priority!==void 0&&(n.priority=e.priority),e.testModel&&(n["test-model"]=e.testModel),n}).filter(Boolean):void 0,MG=t=>{const e={"api-key":t.apiKey};t.proxyUrl&&(e["proxy-url"]=t.proxyUrl);const n=ep(t.headers);return n&&(e.headers=n),e},Vg=t=>{const e={"api-key":t.apiKey};t.priority!==void 0&&(e.priority=t.priority),t.prefix?.trim()&&(e.prefix=t.prefix.trim()),t.baseUrl&&(e["base-url"]=t.baseUrl),t.websockets!==void 0&&(e.websockets=t.websockets),t.proxyUrl&&(e["proxy-url"]=t.proxyUrl);const n=ep(t.headers);n&&(e.headers=n);const i=Zw(t.models);if(i&&i.length&&(e.models=i),t.excludedModels&&t.excludedModels.length&&(e["excluded-models"]=t.excludedModels),t.cloak){const s={},a=t.cloak.mode?.trim();a&&(s.mode=a),t.cloak.strictMode!==void 0&&(s["strict-mode"]=t.cloak.strictMode),t.cloak.sensitiveWords&&t.cloak.sensitiveWords.length&&(s["sensitive-words"]=t.cloak.sensitiveWords),Object.keys(s).length&&(e.cloak=s)}return e},LG=t=>Array.isArray(t)?t.map(e=>{const n=typeof e?.name=="string"?e.name.trim():"",i=typeof e?.alias=="string"?e.alias.trim():"";return!n||!i?null:{name:n,alias:i}}).filter(Boolean):void 0,zL=t=>{const e={"api-key":t.apiKey};t.priority!==void 0&&(e.priority=t.priority),t.prefix?.trim()&&(e.prefix=t.prefix.trim()),t.baseUrl&&(e["base-url"]=t.baseUrl),t.proxyUrl&&(e["proxy-url"]=t.proxyUrl);const n=ep(t.headers);n&&(e.headers=n);const i=LG(t.models);return i&&i.length&&(e.models=i),t.excludedModels&&t.excludedModels.length&&(e["excluded-models"]=t.excludedModels),e},qL=t=>{const e={"api-key":t.apiKey};t.priority!==void 0&&(e.priority=t.priority),t.prefix?.trim()&&(e.prefix=t.prefix.trim()),t.baseUrl&&(e["base-url"]=t.baseUrl),t.proxyUrl&&(e["proxy-url"]=t.proxyUrl);const n=ep(t.headers);n&&(e.headers=n);const i=Zw(t.models);return i&&i.length&&(e.models=i),t.excludedModels&&t.excludedModels.length&&(e["excluded-models"]=t.excludedModels),e},KL=t=>{const e={name:t.name,"base-url":t.baseUrl,"api-key-entries":Array.isArray(t.apiKeyEntries)?t.apiKeyEntries.map(s=>MG(s)):[]};t.prefix?.trim()&&(e.prefix=t.prefix.trim());const n=ep(t.headers);n&&(e.headers=n);const i=Zw(t.models);return i&&i.length&&(e.models=i),t.priority!==void 0&&(e.priority=t.priority),t.testModel&&(e["test-model"]=t.testModel),e},yi={async getGeminiKeys(){const t=await Be.get("/gemini-api-key");return nf(t,"gemini-api-key").map(n=>K4(n)).filter(Boolean)},saveGeminiKeys:t=>Be.put("/gemini-api-key",t.map(e=>qL(e))),updateGeminiKey:(t,e)=>Be.patch("/gemini-api-key",{index:t,value:qL(e)}),deleteGeminiKey:(t,e)=>Be.delete(`/gemini-api-key${Hg(t,e)}`),async getCodexConfigs(){const t=await Be.get("/codex-api-key");return nf(t,"codex-api-key").map(n=>hd(n)).filter(Boolean)},saveCodexConfigs:t=>Be.put("/codex-api-key",t.map(e=>Vg(e))),updateCodexConfig:(t,e)=>Be.patch("/codex-api-key",{index:t,value:Vg(e)}),deleteCodexConfig:(t,e)=>Be.delete(`/codex-api-key${Hg(t,e)}`),async getClaudeConfigs(){const t=await Be.get("/claude-api-key");return nf(t,"claude-api-key").map(n=>hd(n)).filter(Boolean)},saveClaudeConfigs:t=>Be.put("/claude-api-key",t.map(e=>Vg(e))),updateClaudeConfig:(t,e)=>Be.patch("/claude-api-key",{index:t,value:Vg(e)}),deleteClaudeConfig:(t,e)=>Be.delete(`/claude-api-key${Hg(t,e)}`),async getVertexConfigs(){const t=await Be.get("/vertex-api-key");return nf(t,"vertex-api-key").map(n=>hd(n)).filter(Boolean)},saveVertexConfigs:t=>Be.put("/vertex-api-key",t.map(e=>zL(e))),updateVertexConfig:(t,e)=>Be.patch("/vertex-api-key",{index:t,value:zL(e)}),deleteVertexConfig:(t,e)=>Be.delete(`/vertex-api-key${Hg(t,e)}`),async getOpenAIProviders(){const t=await Be.get("/openai-compatibility");return nf(t,"openai-compatibility").map(n=>H4(n)).filter(Boolean)},saveOpenAIProviders:t=>Be.put("/openai-compatibility",t.map(e=>KL(e))),updateOpenAIProvider:(t,e)=>Be.patch("/openai-compatibility",{index:t,value:KL(e)}),deleteOpenAIProvider:t=>Be.delete(`/openai-compatibility?name=${encodeURIComponent(t)}`)},HL="AUTH_FILE_INVALID_JSON_OBJECT",OG=t=>{if(!(!t||typeof t!="object")&&"status"in t)return t.status},X4=t=>{const e=new Set,n=[];return t.forEach(i=>{const s=String(i??"").trim();!s||e.has(s)||(e.add(s),n.push(s))}),n},Q4=t=>Array.isArray(t)?X4(t.map(e=>String(e??""))):[],Y4=t=>Array.isArray(t)?t.reduce((e,n)=>{if(!n||typeof n!="object")return e;const i=n,s=String(i.name??"").trim(),a=typeof i.error=="string"?i.error.trim():typeof i.message=="string"?i.message.trim():"";return!s&&!a||e.push({name:s,error:a||"Unknown error"}),e},[]):[],J4=(t,e)=>{const n=new Set(e.map(i=>i.name.trim()).filter(Boolean));return n.size===0?[...t]:t.filter(i=>!n.has(i))},PG=(t,e)=>{const n=Y4(t?.failed),i=Q4(t?.files),s=typeof t?.uploaded=="number"?t.uploaded:i.length>0?i.length:e.length===1&&n.length===0?1:0;let a=i;if(a.length===0&&s>0)if(n.length===0&&s===e.length)a=[...e];else{const o=J4(e,n);o.length===s&&(a=o)}return{status:typeof t?.status=="string"?t.status:n.length>0?"partial":"ok",uploaded:s,files:a,failed:n}},EG=(t,e)=>{const n=Y4(t?.failed),i=Q4(t?.files),s=typeof t?.deleted=="number"?t.deleted:i.length>0?i.length:e.length===1&&n.length===0?1:0;let a=i;if(a.length===0&&s>0)if(n.length===0&&s===e.length)a=[...e];else{const o=J4(e,n);o.length===s&&(a=o)}return{status:typeof t?.status=="string"?t.status:n.length>0?"partial":"ok",deleted:s,files:a,failed:n}},Vf=(t,e)=>{const n=t[e];return typeof n=="string"?n.trim():""},X2=t=>{const e=[t.modtime,t.modified,t.updated_at,t.last_refresh];for(const n of e){if(typeof n=="number"&&Number.isFinite(n))return n<1e12?n*1e3:n;if(typeof n=="string"){const i=n.trim();if(!i)continue;const s=Number(i);if(Number.isFinite(s))return s<1e12?s*1e3:s;const a=Date.parse(i);if(!Number.isNaN(a))return a}}return 0},jG=t=>{const e=t.runtime_only??t.runtimeOnly;return typeof e=="boolean"?e:typeof e=="string"?e.trim().toLowerCase()==="true":!1},Q2=t=>t==null?!1:typeof t=="string"?t.trim().length>0:Array.isArray(t)?t.length>0:!0,VL=t=>Object.values(t).reduce((e,n)=>e+(Q2(n)?1:0),0),WL=t=>{let e=0;return Vf(t,"source").toLowerCase()==="file"&&(e+=32),Vf(t,"path")&&(e+=16),jG(t)||(e+=8),t.disabled!==!0&&(e+=4),X2(t)>0&&(e+=2),e},RG=(t,e)=>{const n=WL(e)-WL(t);if(n!==0)return n;const i=X2(e)-X2(t);if(i!==0)return i;const s=VL(e)-VL(t);return s!==0?s:0},DG=t=>{const[e,...n]=[...t].sort(RG),i={...e};return n.forEach(s=>{Object.entries(s).forEach(([a,o])=>{!Q2(i[a])&&Q2(o)&&(i[a]=o)})}),i},FG=t=>{const e=Array.isArray(t?.files)?t.files:[],n=new Map;e.forEach(s=>{const o=Vf(s,"name")||JSON.stringify(s),r=n.get(o);if(r){r.push(s);return}n.set(o,[s])});const i=Array.from(n.values()).map(DG);return i.sort((s,a)=>Vf(s,"name").localeCompare(Vf(a,"name"),void 0,{sensitivity:"accent"})),{...t,files:i,total:i.length}},IG=t=>{const e=t.trim();let n;try{n=JSON.parse(e)}catch{throw new Error(HL)}if(!n||typeof n!="object"||Array.isArray(n))throw new Error(HL);return{...n}},GL=async(t,e)=>{const n=new File([e],t,{type:"application/json"});await At.upload(n)},$L=t=>{if(!t||typeof t!="object")return{};const e=t,n=e["oauth-excluded-models"]??e.items??t;if(!n||typeof n!="object")return{};const i={};return Object.entries(n).forEach(([s,a])=>{const o=String(s??"").trim().toLowerCase();if(!o)return;const r=Array.isArray(a)?a:typeof a=="string"?a.split(/[\n,]+/):[],c=new Set,d=[];r.forEach(f=>{const m=String(f??"").trim();if(!m)return;const g=m.toLowerCase();c.has(g)||(c.add(g),d.push(m))}),i[o]=d}),i},XL=t=>{if(!t||typeof t!="object")return{};const e=t,n=e["oauth-model-alias"]??e.items??t;if(!n||typeof n!="object")return{};const i={};return Object.entries(n).forEach(([s,a])=>{const o=String(s??"").trim().toLowerCase();if(!o||!Array.isArray(a))return;const r=new Set,c=a.map(d=>{if(!d||typeof d!="object")return null;const f=d,m=String(f.name??f.id??f.model??"").trim(),g=String(f.alias??"").trim();if(!m||!g)return null;const y=f.fork===!0;return y?{name:m,alias:g,fork:y}:{name:m,alias:g}}).filter(Boolean).filter(d=>{const f=d,m=`${f.name.toLowerCase()}::${f.alias.toLowerCase()}::${f.fork?"1":"0"}`;return r.has(m)?!1:(r.add(m),!0)});c.length&&(i[o]=c)}),i},Wg="/oauth-model-alias",At={list:async()=>FG(await Be.get("/auth-files")),setStatus:(t,e)=>Be.patch("/auth-files/status",{name:t,disabled:e}),uploadFiles:async t=>{const e=t.map(s=>s.name);if(e.length===0)return{status:"ok",uploaded:0,files:[],failed:[]};const n=new FormData;t.forEach(s=>{n.append("file",s,s.name)});const i=await Be.postForm("/auth-files",n);return PG(i,e)},upload:t=>At.uploadFiles([t]),deleteFiles:async t=>{const e=X4(t);if(e.length===0)return{status:"ok",deleted:0,files:[],failed:[]};const n=await Be.delete("/auth-files",{data:{names:e}});return EG(n,e)},deleteFile:t=>At.deleteFiles([t]),deleteAll:()=>Be.delete("/auth-files",{params:{all:!0}}),downloadText:async t=>(await Be.getRaw(`/auth-files/download?name=${encodeURIComponent(t)}`,{responseType:"blob"})).data.text(),async downloadJsonObject(t){const e=await At.downloadText(t);return IG(e)},saveText:(t,e)=>GL(t,e),saveJsonObject:(t,e)=>GL(t,JSON.stringify(e)),async getOauthExcludedModels(){const t=await Be.get("/oauth-excluded-models");return $L(t)},saveOauthExcludedModels:(t,e)=>Be.patch("/oauth-excluded-models",{provider:t,models:e}),deleteOauthExcludedEntry:t=>Be.delete(`/oauth-excluded-models?provider=${encodeURIComponent(t)}`),replaceOauthExcludedModels:t=>Be.put("/oauth-excluded-models",$L(t)),async getOauthModelAlias(){const t=await Be.get(Wg);return XL(t)},saveOauthModelAlias:async(t,e)=>{const n=String(t??"").trim().toLowerCase(),i=XL({[n]:e})[n]??[];await Be.patch(Wg,{channel:n,aliases:i})},deleteOauthModelAlias:async t=>{const e=String(t??"").trim().toLowerCase();try{await Be.patch(Wg,{channel:e,aliases:[]})}catch(n){if(OG(n)!==405)throw n;await Be.delete(`${Wg}?channel=${encodeURIComponent(e)}`)}},async getModelsForAuthFile(t){const e=await Be.get(`/auth-files/models?name=${encodeURIComponent(t)}`),n=e.models??e.models;return Array.isArray(n)?n:[]},async getModelDefinitions(t){const e=String(t??"").trim().toLowerCase();if(!e)return[];const n=await Be.get(`/model-definitions/${encodeURIComponent(e)}`),i=n.models??n.models;return Array.isArray(i)?i:[]}},UG=["codex","anthropic","antigravity","gemini-cli"],BG={"gemini-cli":"gemini"},Gg={startAuth:(t,e)=>{const n={};return UG.includes(t)&&(n.is_webui=!0),t==="gemini-cli"&&e?.projectId&&(n.project_id=e.projectId),Be.get(`/${t}-auth-url`,{params:Object.keys(n).length?n:void 0})},getAuthStatus:t=>Be.get("/get-auth-status",{params:{state:t}}),submitCallback:(t,e)=>{const n=BG[t]??t;return Be.post("/oauth-callback",{provider:n,redirect_url:e})},iflowCookieAuth:t=>Be.post("/iflow-auth-url",{cookie:t})};function Ea(t){const e=String(t||"").trim();if(!e)return"";const n=10,i=e.length<4?1:2,s=e.slice(0,i),a=e.slice(-i),o=Math.max(n-i*2,1),r="*".repeat(o);return`${s}${r}${a}`}function ek(t){if(t===0)return"0 B";const e=["B","KB","MB","GB"],n=1024,i=Math.floor(Math.log(t)/Math.log(n));return`${(t/Math.pow(n,i)).toFixed(2)} ${e[i]}`}function zG(t,e){if(t==null||t==="")return"";const n=typeof t=="number"?t:Number(t),i=(()=>{if(!Number.isFinite(n)||Number.isNaN(n))return new Date(String(t));const s=Math.abs(n);return s<1e11?new Date(n*1e3):s<1e14?new Date(n):s<1e17?new Date(Math.round(n/1e3)):new Date(Math.round(n/1e6))})();return Number.isNaN(i.getTime())?"":e?i.toLocaleString(e):i.toLocaleString()}const Zx=1e6,Z4="cli-proxy-model-prices-v2",qG=/^(GET|POST|PUT|PATCH|DELETE|OPTIONS|HEAD)\s+(\S+)/i,KG={"7h":420*60*1e3,"24h":1440*60*1e3,"7d":10080*60*1e3},Zt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),Qc=t=>{const e=Zt(t)?t:null,n=e?e.apis:null;return Zt(n)?n:null},e1=()=>({totalRequests:0,successCount:0,failureCount:0,totalTokens:0}),t1=t=>({total_requests:t.totalRequests,success_count:t.successCount,failure_count:t.failureCount,total_tokens:t.totalTokens});function HG(t,e,n=Date.now()){if(e==="all")return t;const i=Zt(t)?t:null,s=Qc(t);if(!i||!s)return t;const a=KG[e];if(!Number.isFinite(a)||a<=0)return t;const o=n-a,r={},c=e1();return Object.entries(s).forEach(([d,f])=>{if(!Zt(f))return;const m=Zt(f.models)?f.models:null;if(!m)return;const g={},y=e1();let b=!1;Object.entries(m).forEach(([v,x])=>{if(!Zt(x))return;const A=Array.isArray(x.details)?x.details:[],k=e1(),T=[];A.forEach(L=>{const M=Zt(L)?L:null;if(!M||typeof M.timestamp!="string")return;const O=Date.parse(M.timestamp);Number.isNaN(O)||O<o||O>n||(T.push(L),k.totalRequests+=1,M.failed===!0?k.failureCount+=1:k.successCount+=1,k.totalTokens+=Vd(M))}),T.length&&(g[v]={...x,...t1(k),details:T},b=!0,y.totalRequests+=k.totalRequests,y.successCount+=k.successCount,y.failureCount+=k.failureCount,y.totalTokens+=k.totalTokens)}),b&&(r[d]={...f,...t1(y),models:g},c.totalRequests+=y.totalRequests,c.successCount+=y.successCount,c.failureCount+=y.failureCount,c.totalTokens+=y.totalTokens)}),{...i,...t1(c),apis:r}}const rs=t=>{if(typeof t=="number"&&Number.isFinite(t))return t.toString();if(typeof t=="string"){const e=t.trim();return e||null}return null},eD="k:",tD="m:",nD="t:",iD=/(sk-[A-Za-z0-9-_]{6,}|sk-ant-[A-Za-z0-9-_]{6,}|AIza[0-9A-Za-z-_]{8,}|AI[a-zA-Z0-9_-]{6,}|hf_[A-Za-z0-9]{6,}|pk_[A-Za-z0-9]{6,}|rk_[A-Za-z0-9]{6,})/,VG=/^[^\s]{1,24}(\*{2,}|\.{3}|…)[^\s]{1,24}$/,QL=new Map,sD=t=>{const e=QL.get(t);if(e)return e;const n=0xcbf29ce484222325n,i=0x100000001b3n;let s=n;for(let o=0;o<t.length;o++)s^=BigInt(t.charCodeAt(o)),s=s*i&0xffffffffffffffffn;const a=s.toString(16).padStart(16,"0");return QL.set(t,a),a},$g=t=>{if(!t||/\s/.test(t))return!1;const e=t.toLowerCase();return e.endsWith(".json")||e.startsWith("http://")||e.startsWith("https://")||/[\\/]/.test(t)?!1:iD.test(t)||t.length>=32&&t.length<=512?!0:t.length>=16&&t.length<32&&/^[A-Za-z0-9._=-]+$/.test(t)?/[A-Za-z]/.test(t)&&/\d/.test(t):!1},WG=t=>{if(!t)return null;if($g(t))return t;const e=t.match(iD);if(e?.[0])return e[0];const i=t.match(/(?:[?&])(api[-_]?key|key|token|access_token|authorization)=([^&#\s]+)/i)?.[2];if(i&&$g(i))return i;const a=t.match(/(api[-_]?key|key|token|access[-_]?token|authorization)\s*[:=]\s*([A-Za-z0-9._=-]+)/i)?.[2];if(a&&$g(a))return a;const r=t.match(/\bBearer\s+([A-Za-z0-9._=-]{6,})/i)?.[1];return r&&$g(r)?r:null};function mm(t,e=Ea){const i=(typeof t=="string"?t:t==null?"":String(t)).trim();if(!i)return"";const s=WG(i);return s?`${eD}${sD(s)}`:VG.test(i)?`${tD}${e(i)}`:`${nD}${i}`}function _s(t){const e=[],n=t.prefix?.trim();n&&e.push(`${nD}${n}`);const i=t.apiKey?.trim();return i&&(e.push(`${eD}${sD(i)}`),e.push(`${tD}${Ea(i)}`)),Array.from(new Set(e))}function GG(t,e=Ea){if(t==null)return"";const n=typeof t=="string"?t:String(t);if(!n)return"";let i=n;const s=/([?&])(api[-_]?key|key|token|access_token|authorization)=([^&#\s]+)/gi;i=i.replace(s,(r,c,d,f)=>`${c}${d}=${e(f)}`);const a=/(api[-_]?key|key|token|access[-_]?token|authorization)\s*([:=])\s*([A-Za-z0-9._-]+)/gi;i=i.replace(a,(r,c,d,f)=>`${c}${d}${e(f)}`);const o=/(sk-[A-Za-z0-9]{6,}|AI[a-zA-Z0-9_-]{6,}|AIza[0-9A-Za-z-_]{8,}|hf_[A-Za-z0-9]{6,}|pk_[A-Za-z0-9]{6,}|rk_[A-Za-z0-9]{6,})/g;if(i=i.replace(o,r=>e(r)),i===n){const r=n.trim();if(r&&!/\s/.test(r)&&(/^sk-/i.test(r)||/^AI/i.test(r)||/^AIza/i.test(r)||/^hf_/i.test(r)||/^pk_/i.test(r)||/^rk_/i.test(r)||!/[\\/]/.test(r)&&(/\d/.test(r)||r.length>=10)||r.length>=24))return e(r)}return i}function YL(t){const e=Number(t);if(!Number.isFinite(e))return"0.00";const n=Math.abs(e);return n>=1e3?Math.round(e).toLocaleString():n>=100?e.toFixed(0):n>=10?e.toFixed(1):e.toFixed(2)}function br(t){const e=Number(t);if(!Number.isFinite(e))return"0";const n=Math.abs(e);return n>=1e6?`${(e/1e6).toFixed(1)}M`:n>=1e3?`${(e/1e3).toFixed(1)}K`:n>=1?e.toFixed(0):e.toFixed(2)}function Ky(t){const e=Number(t);if(!Number.isFinite(e))return"$0.00";const n=e.toFixed(2);return`$${Number(n).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`}const JL=new WeakMap,ZL=new WeakMap;function ja(t){const e=Zt(t)?t:null;if(e){const o=JL.get(e);if(o)return o}const n=Qc(t);if(!n)return[];const i=[],s=new Map,a=o=>{const c=(typeof o=="string"?o:o==null?"":String(o)).trim();if(!c)return"";const d=s.get(c);if(d!==void 0)return d;const f=mm(c);return s.set(c,f),f};return Object.values(n).forEach(o=>{if(!Zt(o))return;const r=o.models,c=Zt(r)?r:null;c&&Object.entries(c).forEach(([d,f])=>{if(!Zt(f))return;const m=f.details;(Array.isArray(m)?m:[]).forEach(y=>{if(!Zt(y)||typeof y.timestamp!="string")return;const b=y.timestamp,v=Date.parse(b),x=Zt(y.tokens)?y.tokens:{};i.push({timestamp:b,source:a(y.source),auth_index:y.auth_index,tokens:x,failed:y.failed===!0,__modelName:d,__timestampMs:Number.isNaN(v)?0:v})})})}),e&&JL.set(e,i),i}function $G(t){const e=Zt(t)?t:null;if(e){const o=ZL.get(e);if(o)return o}const n=Qc(t);if(!n)return[];const i=[],s=new Map,a=o=>{const c=(typeof o=="string"?o:o==null?"":String(o)).trim();if(!c)return"";const d=s.get(c);if(d!==void 0)return d;const f=mm(c);return s.set(c,f),f};return Object.entries(n).forEach(([o,r])=>{if(!Zt(r))return;const c=r.models,d=Zt(c)?c:null;if(!d)return;const f=o.match(qG),m=f?.[1]?.toUpperCase(),g=f?.[2];Object.entries(d).forEach(([y,b])=>{if(!Zt(b))return;const v=b.details;(Array.isArray(v)?v:[]).forEach(A=>{if(!Zt(A)||typeof A.timestamp!="string")return;const k=A.timestamp,T=Date.parse(k),L=Zt(A.tokens)?A.tokens:{};i.push({timestamp:k,source:a(A.source),auth_index:A.auth_index,tokens:L,failed:A.failed===!0,__modelName:y,__endpoint:o,__endpointMethod:m,__endpointPath:g,__timestampMs:Number.isNaN(T)?0:T})})})}),e&&ZL.set(e,i),i}function Vd(t){const n=(Zt(t)?t:null)?.tokens,i=Zt(n)?n:{};if(typeof i.total_tokens=="number")return i.total_tokens;const s=typeof i.input_tokens=="number"?i.input_tokens:0,a=typeof i.output_tokens=="number"?i.output_tokens:0,o=typeof i.reasoning_tokens=="number"?i.reasoning_tokens:0,r=Math.max(typeof i.cached_tokens=="number"?Math.max(i.cached_tokens,0):0,typeof i.cache_tokens=="number"?Math.max(i.cache_tokens,0):0);return s+a+o+r}function XG(t){const e=Qc(t);if(!e)return[];const n=new Set;return Object.values(e).forEach(i=>{if(!Zt(i))return;const s=i.models,a=Zt(s)?s:null;a&&Object.keys(a).forEach(o=>{o&&n.add(o)})}),Array.from(n).sort((i,s)=>i.localeCompare(s))}function tp(t,e){const n=t.__modelName||"",i=e[n];if(!i)return 0;const s=t.tokens,a=Number(s.input_tokens),o=Number(s.output_tokens),r=Number(s.cached_tokens),c=Number(s.cache_tokens),d=Number.isFinite(a)?Math.max(a,0):0,f=Number.isFinite(o)?Math.max(o,0):0,m=Math.max(Number.isFinite(r)?Math.max(r,0):0,Number.isFinite(c)?Math.max(c,0):0),y=Math.max(d-m,0)/Zx*(Number(i.prompt)||0),b=m/Zx*(Number(i.cache)||0),v=f/Zx*(Number(i.completion)||0),x=y+b+v;return Number.isFinite(x)&&x>0?x:0}function QG(){try{if(typeof localStorage>"u")return{};const t=localStorage.getItem(Z4);if(!t)return{};const e=JSON.parse(t);if(!Zt(e))return{};const n={};return Object.entries(e).forEach(([i,s])=>{if(!i)return;const a=Zt(s)?s:null,o=Number(a?.prompt),r=Number(a?.completion),c=Number(a?.cache);if(!Number.isFinite(o)&&!Number.isFinite(r)&&!Number.isFinite(c))return;const d=Number.isFinite(o)&&o>=0?o:0,f=Number.isFinite(r)&&r>=0?r:0,m=Number.isFinite(c)&&c>=0?c:Number.isFinite(o)&&o>=0?o:d;n[i]={prompt:d,completion:f,cache:m}}),n}catch{return{}}}function YG(t){try{if(typeof localStorage>"u")return;localStorage.setItem(Z4,JSON.stringify(t))}catch{console.warn("保存模型价格失败")}}function JG(t,e){const n=Qc(t);if(!n)return[];const i=[];return Object.entries(n).forEach(([s,a])=>{if(!Zt(a))return;const o={};let r=0,c=0,d=0;const f=Zt(a.models)?a.models:{};Object.entries(f).forEach(([b,v])=>{if(!Zt(v))return;const x=Array.isArray(v.details)?v.details:[],A=typeof v.success_count=="number"||typeof v.failure_count=="number";let k=0,T=0;A&&(k+=Number(v.success_count)||0,T+=Number(v.failure_count)||0);const L=e[b];x.length>0&&(!A||L)&&x.forEach(M=>{const O=Zt(M)?M:null;A||(O?.failed===!0?T+=1:k+=1),L&&O&&(d+=tp({...O,__modelName:b},e))}),o[b]={requests:Number(v.total_requests)||0,successCount:k,failureCount:T,tokens:Number(v.total_tokens)||0},r+=k,c+=T});const m=typeof a.success_count=="number"||typeof a.failure_count=="number",g=m?Number(a.success_count)||0:r,y=m?Number(a.failure_count)||0:c;i.push({endpoint:GG(s)||s,totalRequests:Number(a.total_requests)||0,successCount:g,failureCount:y,totalTokens:Number(a.total_tokens)||0,totalCost:d,models:o})}),i}function ZG(t,e){const n=Qc(t);if(!n)return[];const i=new Map;return Object.values(n).forEach(s=>{if(!Zt(s))return;const a=s.models,o=Zt(a)?a:null;o&&Object.entries(o).forEach(([r,c])=>{if(!Zt(c))return;const d=i.get(r)||{requests:0,successCount:0,failureCount:0,tokens:0,cost:0};d.requests+=Number(c.total_requests)||0,d.tokens+=Number(c.total_tokens)||0;const f=Array.isArray(c.details)?c.details:[],m=e[r],g=typeof c.success_count=="number"||typeof c.failure_count=="number";g&&(d.successCount+=Number(c.success_count)||0,d.failureCount+=Number(c.failure_count)||0),f.length>0&&(!g||m)&&f.forEach(y=>{const b=Zt(y)?y:null;g||(b?.failed===!0?d.failureCount+=1:d.successCount+=1),m&&b&&(d.cost+=tp({...b,__modelName:r},e))}),i.set(r,d)})}),Array.from(i.entries()).map(([s,a])=>({model:s,...a})).sort((s,a)=>a.requests-s.requests)}function tk(t){if(!(t instanceof Date))return"";const e=(t.getMonth()+1).toString().padStart(2,"0"),n=t.getDate().toString().padStart(2,"0"),i=t.getHours().toString().padStart(2,"0");return`${e}-${n} ${i}:00`}function nk(t){if(!(t instanceof Date))return"";const e=t.getFullYear(),n=(t.getMonth()+1).toString().padStart(2,"0"),i=t.getDate().toString().padStart(2,"0");return`${e}-${n}-${i}`}function e$(t,e="requests",n=24){const s=Number.isFinite(n)&&n>0?Math.min(Math.max(Math.floor(n),1),744):24,a=new Date,o=new Date(a);o.setMinutes(0,0,0);const r=new Date(o);r.setHours(r.getHours()-(s-1));const c=r.getTime(),d=[];for(let y=0;y<s;y++){const b=c+y*36e5;d.push(tk(new Date(b)))}const f=ja(t),m=new Map;let g=!1;return f.length?(f.forEach(y=>{const b=typeof y.__timestampMs=="number"?y.__timestampMs:Date.parse(y.timestamp);if(!Number.isFinite(b)||b<=0)return;const v=new Date(b);v.setMinutes(0,0,0);const x=v.getTime(),A=c+(d.length-1)*36e5;if(x<c||x>A)return;const k=Math.floor((x-c)/36e5);if(k<0||k>=d.length)return;const T=y.__modelName||"Unknown";m.has(T)||m.set(T,new Array(d.length).fill(0));const L=m.get(T);e==="tokens"?L[k]+=Vd(y):L[k]+=1,g=!0}),{labels:d,dataByModel:m,hasData:g}):{labels:d,dataByModel:m,hasData:g}}function t$(t,e="requests"){const n=ja(t),i=new Map,s=new Set;let a=!1;if(!n.length)return{labels:[],dataByModel:new Map,hasData:a};n.forEach(c=>{const d=typeof c.__timestampMs=="number"?c.__timestampMs:Date.parse(c.timestamp);if(!Number.isFinite(d)||d<=0)return;const f=nk(new Date(d));if(!f)return;const m=c.__modelName||"Unknown";i.has(m)||i.set(m,new Map);const g=i.get(m),y=e==="tokens"?Vd(c):1;g.set(f,(g.get(f)||0)+y),s.add(f),a=!0});const o=Array.from(s).sort(),r=new Map;return i.forEach((c,d)=>{const f=o.map(m=>c.get(m)||0);r.set(d,f)}),{labels:o,dataByModel:r,hasData:a}}const eO=[{borderColor:"#8b8680",backgroundColor:"rgba(139, 134, 128, 0.15)"},{borderColor:"#22c55e",backgroundColor:"rgba(34, 197, 94, 0.15)"},{borderColor:"#f59e0b",backgroundColor:"rgba(245, 158, 11, 0.15)"},{borderColor:"#c65746",backgroundColor:"rgba(198, 87, 70, 0.15)"},{borderColor:"#8b5cf6",backgroundColor:"rgba(139, 92, 246, 0.15)"},{borderColor:"#06b6d4",backgroundColor:"rgba(6, 182, 212, 0.15)"},{borderColor:"#ec4899",backgroundColor:"rgba(236, 72, 153, 0.15)"},{borderColor:"#84cc16",backgroundColor:"rgba(132, 204, 22, 0.15)"},{borderColor:"#f97316",backgroundColor:"rgba(249, 115, 22, 0.15)"}],n$=(t,e,n)=>Math.min(Math.max(t,e),n),i$=t=>{const e=t.trim().replace("#","");if(e.length!==6)return null;const n=Number.parseInt(e.slice(0,2),16),i=Number.parseInt(e.slice(2,4),16),s=Number.parseInt(e.slice(4,6),16);return[n,i,s].every(a=>Number.isFinite(a))?{r:n,g:i,b:s}:null},n1=(t,e)=>{const n=i$(t);if(!n)return t;const i=n$(e,0,1);return`rgba(${n.r}, ${n.g}, ${n.b}, ${i})`},s$=(t,e,n)=>{const i=t.chart,s=i.ctx,a=i.chartArea;if(!a)return n;const o=s.createLinearGradient(0,a.top,0,a.bottom);return o.addColorStop(0,n1(e,.28)),o.addColorStop(.6,n1(e,.12)),o.addColorStop(1,n1(e,.02)),o};function tO(t,e="day",n="requests",i=[],s={}){const a=e==="hour"?e$(t,n,s.hourWindowHours):t$(t,n),{labels:o,dataByModel:r}=a,c=()=>{const m=new Array(o.length).fill(0);return r.forEach(g=>{g.forEach((y,b)=>{m[b]=(m[b]||0)+y})}),m},d=i.length>0?i:["all"],f=d.map((m,g)=>{const y=m==="all",b=y?c():r.get(m)||new Array(o.length).fill(0),v=g%eO.length,x=eO[v],A=d.length===1||y&&d.length>1;return{label:y?"All Models":m,data:b,borderColor:x.borderColor,backgroundColor:A?k=>s$(k,x.borderColor,x.backgroundColor):x.backgroundColor,pointBackgroundColor:x.borderColor,pointBorderColor:x.borderColor,fill:A,tension:.35}});return{labels:o,datasets:f}}function Na(t,e,n){const o=Date.now(),r=o-12e6,c=Array.from({length:20},()=>({success:0,failure:0}));let d=0,f=0;t.forEach(v=>{const x=typeof v.__timestampMs=="number"?v.__timestampMs:Date.parse(v.timestamp);if(!Number.isFinite(x)||x<=0||x<r||x>o)return;const A=o-x,k=19-Math.floor(A/6e5);k>=0&&k<20&&(v.failed?(c[k].failure+=1,f+=1):(c[k].success+=1,d+=1))});const m=[],g=[];c.forEach((v,x)=>{const A=v.success+v.failure;A===0?m.push("idle"):v.failure===0?m.push("success"):v.success===0?m.push("failure"):m.push("mixed");const k=r+x*6e5;g.push({success:v.success,failure:v.failure,rate:A>0?v.success/A:-1,startTime:k,endTime:k+6e5})});const y=d+f,b=y>0?d/y*100:100;return{blocks:m,blockDetails:g,successRate:b,totalSuccess:d,totalFailure:f}}function a$(t){const o=Date.now(),r=o-6048e5,c=Array.from({length:672},()=>({success:0,failure:0}));let d=0,f=0;t.forEach(v=>{const x=typeof v.__timestampMs=="number"?v.__timestampMs:Date.parse(v.timestamp);if(!Number.isFinite(x)||x<=0||x<r||x>o)return;const A=o-x,k=671-Math.floor(A/9e5);k>=0&&k<672&&(v.failed?(c[k].failure+=1,f+=1):(c[k].success+=1,d+=1))});const m=[],g=[];c.forEach((v,x)=>{const A=v.success+v.failure;A===0?m.push("idle"):v.failure===0?m.push("success"):v.success===0?m.push("failure"):m.push("mixed");const k=r+x*9e5;g.push({success:v.success,failure:v.failure,rate:A>0?v.success/A:-1,startTime:k,endTime:k+9e5})});const y=d+f,b=y>0?d/y*100:100;return{blocks:m,blockDetails:g,successRate:b,totalSuccess:d,totalFailure:f,rows:7,cols:96}}function o$(t,e=Ea){const n=Qc(t);if(!n)return{bySource:{},byAuthIndex:{}};const i={},s={},a=(o,r)=>(o[r]||(o[r]={success:0,failure:0}),o[r]);return Object.values(n).forEach(o=>{if(!Zt(o))return;const r=o.models,c=Zt(r)?r:null;c&&Object.values(c).forEach(d=>{if(!Zt(d))return;(Array.isArray(d.details)?d.details:[]).forEach(m=>{const g=Zt(m)?m:null,y=mm(g?.source,e),b=rs(g?.auth_index),v=g?.failed===!0;if(y){const x=a(i,y);v?x.failure+=1:x.success+=1}if(b){const x=a(s,b);v?x.failure+=1:x.success+=1}})})}),{bySource:i,byAuthIndex:s}}function r$(t){const e={},n={},i=(s,a)=>(s[a]||(s[a]={success:0,failure:0}),s[a]);return t.forEach(s=>{const a=s.source,o=rs(s.auth_index),r=s.failed===!0;if(a){const c=i(e,a);r?c.failure+=1:c.success+=1}if(o){const c=i(n,o);r?c.failure+=1:c.success+=1}}),{bySource:e,byAuthIndex:n}}function l$(t,e=24){const i=Number.isFinite(e)&&e>0?Math.min(Math.max(Math.floor(e),1),744):24,s=new Date,a=new Date(s);a.setMinutes(0,0,0);const o=new Date(a);o.setHours(o.getHours()-(i-1));const r=o.getTime(),c=[];for(let g=0;g<i;g++)c.push(tk(new Date(r+g*36e5)));const d={input:new Array(c.length).fill(0),output:new Array(c.length).fill(0),cached:new Array(c.length).fill(0),reasoning:new Array(c.length).fill(0)},f=ja(t);let m=!1;return f.forEach(g=>{const y=typeof g.__timestampMs=="number"?g.__timestampMs:Date.parse(g.timestamp);if(!Number.isFinite(y)||y<=0)return;const b=new Date(y);b.setMinutes(0,0,0);const v=b.getTime(),x=r+(c.length-1)*36e5;if(v<r||v>x)return;const A=Math.floor((v-r)/36e5);if(A<0||A>=c.length)return;const k=g.tokens,T=typeof k.input_tokens=="number"?Math.max(k.input_tokens,0):0,L=typeof k.output_tokens=="number"?Math.max(k.output_tokens,0):0,M=Math.max(typeof k.cached_tokens=="number"?Math.max(k.cached_tokens,0):0,typeof k.cache_tokens=="number"?Math.max(k.cache_tokens,0):0),O=typeof k.reasoning_tokens=="number"?Math.max(k.reasoning_tokens,0):0;d.input[A]+=T,d.output[A]+=L,d.cached[A]+=M,d.reasoning[A]+=O,m=!0}),{labels:c,dataByCategory:d,hasData:m}}function c$(t){const e=ja(t),n={};let i=!1;e.forEach(o=>{const r=typeof o.__timestampMs=="number"?o.__timestampMs:Date.parse(o.timestamp);if(!Number.isFinite(r)||r<=0)return;const c=nk(new Date(r));if(!c)return;n[c]||(n[c]={input:0,output:0,cached:0,reasoning:0});const d=o.tokens,f=typeof d.input_tokens=="number"?Math.max(d.input_tokens,0):0,m=typeof d.output_tokens=="number"?Math.max(d.output_tokens,0):0,g=Math.max(typeof d.cached_tokens=="number"?Math.max(d.cached_tokens,0):0,typeof d.cache_tokens=="number"?Math.max(d.cache_tokens,0):0),y=typeof d.reasoning_tokens=="number"?Math.max(d.reasoning_tokens,0):0;n[c].input+=f,n[c].output+=m,n[c].cached+=g,n[c].reasoning+=y,i=!0});const s=Object.keys(n).sort(),a={input:s.map(o=>n[o].input),output:s.map(o=>n[o].output),cached:s.map(o=>n[o].cached),reasoning:s.map(o=>n[o].reasoning)};return{labels:s,dataByCategory:a,hasData:i}}function u$(t,e,n=24){const s=Number.isFinite(n)&&n>0?Math.min(Math.max(Math.floor(n),1),744):24,a=new Date,o=new Date(a);o.setMinutes(0,0,0);const r=new Date(o);r.setHours(r.getHours()-(s-1));const c=r.getTime(),d=[];for(let y=0;y<s;y++)d.push(tk(new Date(c+y*36e5)));const f=new Array(d.length).fill(0),m=ja(t);let g=!1;return m.forEach(y=>{const b=typeof y.__timestampMs=="number"?y.__timestampMs:Date.parse(y.timestamp);if(!Number.isFinite(b)||b<=0)return;const v=new Date(b);v.setMinutes(0,0,0);const x=v.getTime(),A=c+(d.length-1)*36e5;if(x<c||x>A)return;const k=Math.floor((x-c)/36e5);if(k<0||k>=d.length)return;const T=tp(y,e);T>0&&(f[k]+=T,g=!0)}),{labels:d,data:f,hasData:g}}function d$(t,e){const n=ja(t),i={};let s=!1;n.forEach(r=>{const c=typeof r.__timestampMs=="number"?r.__timestampMs:Date.parse(r.timestamp);if(!Number.isFinite(c)||c<=0)return;const d=nk(new Date(c));if(!d)return;const f=tp(r,e);f>0&&(i[d]=(i[d]||0)+f,s=!0)});const a=Object.keys(i).sort(),o=a.map(r=>i[r]);return{labels:a,data:o,hasData:s}}const Xg=60*1e3,Y2={getUsage:()=>Be.get("/usage",{timeout:Xg}),exportUsage:()=>Be.get("/usage/export",{timeout:Xg}),importUsage:t=>Be.post("/usage/import",t,{timeout:Xg}),async getKeyStats(t){let e=t;if(!e){const n=await Be.get("/usage",{timeout:Xg});e=n?.usage??n}return o$(e)}},sf={fetchLogs:(t={})=>Be.get("/logs",{params:t,timeout:qg}),clearLogs:()=>Be.delete("/logs"),fetchErrorLogs:()=>Be.get("/request-error-logs",{timeout:qg}),downloadErrorLog:t=>Be.getRaw(`/request-error-logs/${encodeURIComponent(t)}`,{responseType:"blob",timeout:qg}),downloadRequestLogById:t=>Be.getRaw(`/request-log-by-id/${encodeURIComponent(t)}`,{responseType:"blob",timeout:qg})},h$={checkLatest:()=>Be.get("/latest-version")},aD=[{id:"gpt",label:"GPT",patterns:[/gpt/i,/\bo\d\b/i,/\bo\d+\.?/i,/\bchatgpt/i]},{id:"claude",label:"Claude",patterns:[/claude/i]},{id:"gemini",label:"Gemini",patterns:[/gemini/i,/\bgai\b/i]},{id:"kimi",label:"Kimi",patterns:[/kimi/i]},{id:"qwen",label:"Qwen",patterns:[/qwen/i]},{id:"glm",label:"GLM",patterns:[/glm/i,/chatglm/i]},{id:"grok",label:"Grok",patterns:[/grok/i]},{id:"deepseek",label:"DeepSeek",patterns:[/deepseek/i]},{id:"minimax",label:"MiniMax",patterns:[/minimax/i,/abab/i]}],f$=t=>{for(const e of aD)if(e.patterns.some(n=>n.test(t)))return e.id;return null},nO=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);function af(t,{dedupe:e=!1}={}){const n=o=>{if(typeof o=="string")return{name:o};if(!nO(o))return null;const r=o.id||o.name||o.model||o.value;if(!r)return null;const c=o.alias||o.display_name||o.displayName,d=o.description||o.note||o.comment,f={name:String(r)};return c&&c!==r&&(f.alias=String(c)),d&&(f.description=String(d)),f};let i=[];Array.isArray(t)?i=t.map(n):nO(t)&&(Array.isArray(t.data)?i=t.data.map(n):Array.isArray(t.models)&&(i=t.models.map(n)));const s=i.filter(Boolean);if(!e)return s;const a=new Set;return s.filter(o=>{const r=(o?.name||"").toLowerCase();return!r||a.has(r)?!1:(a.add(r),!0)})}function m$(t=[],{otherLabel:e="Other"}={}){const n=aD.map(a=>({id:a.id,label:a.label,items:[]})),i={id:"other",label:e,items:[]};t.forEach(a=>{const o=(a?.name||"").toString(),r=(a?.alias||"").toString(),c=`${o} ${r}`.toLowerCase(),d=f$(c),f=d?n.find(m=>m.id===d):null;f?f.items.push(a):i.items.push(a)});const s=n.filter(a=>a.items.length>0);return i.items.length&&s.push(i),s}const p$="https://api.anthropic.com",g$="https://generativelanguage.googleapis.com",_$="2023-06-01",i1=new Map,s1=new Map,y$=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),iO=(t,e)=>{const n=Object.entries(e).sort(([i],[s])=>i.toLowerCase().localeCompare(s.toLowerCase())).map(([i,s])=>`${i}:${s}`).join("|");return`${t}||${n}`},b$=t=>{const e=Mo(t);if(!e)return"";const n=e.replace(/\/+$/g,"");return/\/models$/i.test(n)?n:`${n}/models`},a1=t=>{const e=Mo(t);if(!e)return"";const n=e.replace(/\/+$/g,"");return/\/v1\/models$/i.test(n)?n:/\/v1$/i.test(n)?`${n}/models`:`${n}/v1/models`},sO=t=>{let i=(Mo(t)||p$).replace(/\/+$/g,"");return i=i.replace(/\/v1\/models$/i,""),i=i.replace(/\/v1(?:\/.*)?$/i,""),`${i}/v1/models`},aO=t=>{let i=(Mo(t)||g$).replace(/\/+$/g,"");return i=i.replace(/\/v1beta\/models$/i,""),i=i.replace(/\/v1beta(?:\/.*)?$/i,""),`${i}/v1beta/models`},v$=t=>{const e=String(t??"").trim();return e?e.replace(/^\/?models\//i,""):""},sc=(t,e)=>{const n=e.toLowerCase();return Object.keys(t).some(i=>i.toLowerCase()===n)},x$=t=>{const e=Object.entries(t).find(([s])=>s.toLowerCase()==="authorization");if(!e)return"";const n=String(e[1]??"").trim();return n&&n.match(/^Bearer\s+(.+)$/i)?.[1]?.trim()||""},Tr={async fetchModels(t,e,n={}){const i=a1(t);if(!i)throw new Error("Invalid base url");const s={...n};e&&!sc(s,"authorization")&&(s.Authorization=`Bearer ${e}`);const a=await Xn.get(i,{headers:Object.keys(s).length?s:void 0}),o=a.data?.data??a.data?.models??a.data;return af(o,{dedupe:!0})},async fetchV1ModelsViaApiCall(t,e,n={}){const i=a1(t);if(!i)throw new Error("Invalid base url");const s={...n};e&&!sc(s,"authorization")&&(s.Authorization=`Bearer ${e}`);const a=await ea.request({method:"GET",url:i,header:Object.keys(s).length?s:void 0});if(a.statusCode<200||a.statusCode>=300)throw new Error(Ha(a));const o=a.body??a.bodyText;return af(o,{dedupe:!0})},async fetchModelsViaApiCall(t,e,n={}){const i=b$(t);if(!i)throw new Error("Invalid base url");const s={...n};e&&!sc(s,"authorization")&&(s.Authorization=`Bearer ${e}`);const a=await ea.request({method:"GET",url:i,header:Object.keys(s).length?s:void 0});if(a.statusCode<200||a.statusCode>=300)throw new Error(Ha(a));const o=a.body??a.bodyText;return af(o,{dedupe:!0})},buildV1ModelsEndpoint(t){return a1(t)},buildClaudeModelsEndpoint(t){return sO(t)},buildGeminiModelsEndpoint(t){return aO(t)},async fetchClaudeModelsViaApiCall(t,e,n={}){const i=sO(t);if(!i)throw new Error("Invalid base url");const s={...n};let a=String(e??"").trim();!a&&!sc(s,"x-api-key")&&(a=x$(s)),a&&!sc(s,"x-api-key")&&(s["x-api-key"]=a),sc(s,"anthropic-version")||(s["anthropic-version"]=_$);const o=iO(i,s),r=i1.get(o);if(r)return r;const c=(async()=>{const d=await ea.request({method:"GET",url:i,header:Object.keys(s).length?s:void 0});if(d.statusCode<200||d.statusCode>=300)throw new Error(Ha(d));const f=d.body??d.bodyText;return af(f,{dedupe:!0})})();i1.set(o,c);try{return await c}finally{i1.delete(o)}},async fetchGeminiModelsViaApiCall(t,e,n={}){const i=aO(t);if(!i)throw new Error("Invalid base url");const s={...n},a=String(e??"").trim();a&&!sc(s,"x-goog-api-key")&&(s["x-goog-api-key"]=a);const o=iO(i,s),r=s1.get(o);if(r)return r;const c=(async()=>{const d=new Set,f=[];let m="";for(let g=0;g<20;g+=1){const y=new URL(i);m&&y.searchParams.set("pageToken",m);const b=await ea.request({method:"GET",url:y.toString(),header:Object.keys(s).length?s:void 0});if(b.statusCode<200||b.statusCode>=300)throw new Error(Ha(b));const v=b.body??b.bodyText;af(v,{dedupe:!1}).forEach(k=>{const T=v$(k.name),L=(T||"").toLowerCase();if(!L||d.has(L))return;d.add(L);const M={...k,name:T};M.alias&&M.alias.trim()===T&&(M.alias=void 0),f.push(M)});const A=y$(v)&&typeof v.nextPageToken=="string"?v.nextPageToken:"";if(!A)break;m=A}return f})();s1.set(o,c);try{return await c}finally{s1.delete(o)}}},S$={importCredential:(t,e)=>{const n=new FormData;return n.append("file",t),e&&n.append("location",e),Be.postForm("/vertex/import",n)}},Cr=24e4,o1=()=>({bySource:{},byAuthIndex:{}});let of=0,oo=null;const w$=t=>t instanceof Error?t.message:typeof t=="string"?t:Gi.t("usage_stats.loading_error"),ns=jo((t,e)=>({usage:null,keyStats:o1(),usageDetails:[],loading:!1,error:null,lastRefreshedAt:null,scopeKey:"",loadUsageStats:async(n={})=>{const i=n.force===!0,s=n.staleTimeMs??Cr,{apiBase:a="",managementKey:o=""}=nn.getState(),r=`${a}::${o}`,c=e(),d=c.scopeKey!==r;if(oo&&oo.scopeKey===r){await oo.promise;return}oo&&oo.scopeKey!==r&&(of+=1,oo=null);const f=!d&&c.lastRefreshedAt!==null&&Date.now()-c.lastRefreshedAt<s;if(!i&&f)return;d&&t({usage:null,keyStats:o1(),usageDetails:[],error:null,lastRefreshedAt:null,scopeKey:r});const m=of+=1;t({loading:!0,error:null,scopeKey:r});const g=(async()=>{try{const y=await Y2.getUsage(),b=y?.usage??y,v=b&&typeof b=="object"?b:null;if(m!==of)return;const x=ja(v);t({usage:v,keyStats:r$(x),usageDetails:x,loading:!1,error:null,lastRefreshedAt:Date.now(),scopeKey:r})}catch(y){if(m!==of)return;const b=w$(y);throw t({loading:!1,error:b,scopeKey:r}),new Error(b)}finally{oo?.id===m&&(oo=null)}})();oo={id:m,scopeKey:r,promise:g},await g},clearUsageStats:()=>{of+=1,oo=null,t({usage:null,keyStats:o1(),usageDetails:[],loading:!1,error:null,lastRefreshedAt:null,scopeKey:""})}})),Sr=jo((t,e)=>({models:[],loading:!1,error:null,cache:null,fetchModels:async(n,i,s=!1)=>{const{cache:a,isCacheValid:o}=e(),r=i?.trim()||"";if(!s&&o(n,r)&&a)return t({models:a.data,error:null}),a.data;t({loading:!0,error:null});try{const c=await Tr.fetchModels(n,r||void 0),d=Date.now();return t({models:c,loading:!1,cache:{data:c,timestamp:d,apiBase:n,apiKey:r}}),c}catch(c){const d=c instanceof Error?c.message:typeof c=="string"?c:"Failed to fetch models";throw t({error:d,loading:!1,models:[]}),c}},clearCache:()=>{t({cache:null,models:[]})},isCacheValid:(n,i)=>{const{cache:s}=e();if(!s||s.apiBase!==n)return!1;const a=i?.trim()||"";return(s.apiKey||"")!==a?!1:Date.now()-s.timestamp<u4}}));let rf=null;const nn=jo()(Vw((t,e)=>({isAuthenticated:!1,apiBase:"",managementKey:"",rememberPassword:!1,serverVersion:null,serverBuildDate:null,connectionStatus:"disconnected",connectionError:null,restoreSession:()=>rf||(rf=(async()=>{nc.migratePlaintextKeys(["apiBase","apiUrl","managementKey"]);const n=localStorage.getItem("isLoggedIn")==="true",i=nc.getItem("apiBase")||nc.getItem("apiUrl",{encrypt:!0}),s=nc.getItem("managementKey"),{apiBase:a,managementKey:o,rememberPassword:r}=e(),c=Mo(a||i||z4()),d=o||s||"",f=r||!!o||!!s;if(t({apiBase:c,managementKey:d,rememberPassword:f}),Be.setConfig({apiBase:c,managementKey:d}),n&&c&&d)try{return await e().login({apiBase:c,managementKey:d,rememberPassword:f}),!0}catch(m){return console.warn("Auto login failed:",m),!1}return!1})(),rf),login:async n=>{const i=Mo(n.apiBase),s=n.managementKey.trim(),a=n.rememberPassword??e().rememberPassword??!1;try{t({connectionStatus:"connecting"}),Sr.getState().clearCache(),Be.setConfig({apiBase:i,managementKey:s}),await Bt.getState().fetchConfig(void 0,!0),t({isAuthenticated:!0,apiBase:i,managementKey:s,rememberPassword:a,connectionStatus:"connected",connectionError:null}),a?localStorage.setItem("isLoggedIn","true"):localStorage.removeItem("isLoggedIn")}catch(o){const r=o instanceof Error?o.message:typeof o=="string"?o:"Connection failed";throw t({connectionStatus:"error",connectionError:r||"Connection failed"}),o}},logout:()=>{rf=null,Bt.getState().clearCache(),ns.getState().clearUsageStats(),Sr.getState().clearCache(),t({isAuthenticated:!1,apiBase:"",managementKey:"",serverVersion:null,serverBuildDate:null,connectionStatus:"disconnected",connectionError:null}),localStorage.removeItem("isLoggedIn")},checkAuth:async()=>{const{managementKey:n,apiBase:i}=e();if(!n||!i)return!1;try{return Be.setConfig({apiBase:i,managementKey:n}),await Bt.getState().fetchConfig(),t({isAuthenticated:!0,connectionStatus:"connected"}),!0}catch{return t({isAuthenticated:!1,connectionStatus:"error"}),!1}},updateServerVersion:(n,i)=>{t({serverVersion:n||null,serverBuildDate:i||null})},updateConnectionStatus:(n,i=null)=>{t({connectionStatus:n,connectionError:i})}}),{name:d4,storage:m4(()=>({getItem:t=>{const e=nc.getItem(t);return e?JSON.stringify(e):null},setItem:(t,e)=>{nc.setItem(t,JSON.parse(e))},removeItem:t=>{nc.removeItem(t)}})),partialize:t=>({apiBase:t.apiBase,...t.rememberPassword?{managementKey:t.managementKey}:{},rememberPassword:t.rememberPassword,serverVersion:t.serverVersion,serverBuildDate:t.serverBuildDate})}));typeof window<"u"&&(window.addEventListener("unauthorized",()=>{nn.getState().logout()}),window.addEventListener("server-version-update",(t=>{const e=t.detail||{};nn.getState().updateServerVersion(e.version||null,e.buildDate||null)})));const lf=(t,e)=>typeof t=="function"?t(e):t,Nd=jo(t=>({antigravityQuota:{},claudeQuota:{},codexQuota:{},geminiCliQuota:{},kimiQuota:{},setAntigravityQuota:e=>t(n=>({antigravityQuota:lf(e,n.antigravityQuota)})),setClaudeQuota:e=>t(n=>({claudeQuota:lf(e,n.claudeQuota)})),setCodexQuota:e=>t(n=>({codexQuota:lf(e,n.codexQuota)})),setGeminiCliQuota:e=>t(n=>({geminiCliQuota:lf(e,n.geminiCliQuota)})),setKimiQuota:e=>t(n=>({kimiQuota:lf(e,n.kimiQuota)})),clearQuotaCache:()=>t({antigravityQuota:{},claudeQuota:{},codexQuota:{},geminiCliQuota:{},kimiQuota:{}})})),ik="*",Sa=t=>Array.isArray(t)&&t.some(e=>String(e??"").trim()===ik),oD=t=>Array.isArray(t)?t.filter(e=>String(e??"").trim()!==ik):[],oO=t=>[...oD(t),ik],rO=t=>oD(t),sk=t=>t.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean),Ta=sk,Hy=t=>Array.isArray(t)?t.join(`
|
||
`):"",rD=t=>{let e=String(t||"").trim();return e?(e=e.replace(/\/?v0\/management\/?$/i,""),e=e.replace(/\/+$/g,""),/^https?:\/\//i.test(e)||(e=`http://${e}`),e):""},k$=t=>{let e=String(t||"").trim();return e?(e=e.replace(/\/?v0\/management\/?$/i,""),e=e.replace(/\/+$/g,""),/^https?:\/\//i.test(e)||(e=`http://${e}`),e):"https://api.anthropic.com"},C$=t=>{const e=rD(t);return e?`${e}/models`:""},lO=t=>{const e=rD(t);return e?e.endsWith("/chat/completions")?e:`${e}/chat/completions`:""},A$=t=>{const e=k$(t);return e?e.endsWith("/v1/messages")?e:e.endsWith("/v1")?`${e}/messages`:`${e}/v1/messages`:""},np=(t,e,n)=>{const i=e.bySource??{},s=_s({apiKey:t,prefix:n});if(!s.length)return{success:0,failure:0};let a=0,o=0;return s.forEach(r=>{const c=i[r];c&&(a+=c.success,o+=c.failure)}),{success:a,failure:o}},N$=(t,e,n)=>{const i=e.bySource??{},s=new Set;_s({prefix:n}).forEach(r=>s.add(r)),(t||[]).forEach(r=>{_s({apiKey:r?.apiKey}).forEach(c=>s.add(c))});let a=0,o=0;return s.forEach(r=>{const c=i[r];c&&(a+=c.success,o+=c.failure)}),{success:a,failure:o}},fd=t=>({apiKey:"",proxyUrl:"",headers:{}}),T$=t=>!Array.isArray(t)||t.length===0?[{name:"",alias:""}]:t.map(e=>({name:e.from??"",alias:e.to??""})),M$=t=>{const e=new Set,n=[];return t.forEach(i=>{const s=i.name.trim(),a=i.alias.trim();if(!s||!a)return;const o=s.toLowerCase();e.has(o)||(e.add(o),n.push({from:s,to:a}))}),n},L$=t=>!Array.isArray(t)||t.length===0?[{upstreamApiKey:"",clientApiKeysText:""}]:t.map(e=>({upstreamApiKey:e.upstreamApiKey??"",clientApiKeysText:Array.isArray(e.apiKeys)?e.apiKeys.join(`
|
||
`):""})),J2=t=>{const e=new Set,n=[];return t.forEach(i=>{const s=String(i?.upstreamApiKey??"").trim();if(!s||e.has(s))return;const a=Array.from(new Set(sk(String(i?.clientApiKeysText??""))));a.length&&(e.add(s),n.push({upstreamApiKey:s,apiKeys:a}))}),n},Qg=t=>({upstreamUrl:t?.upstreamUrl??"",upstreamApiKey:"",forceModelMappings:t?.forceModelMappings??!1,mappingEntries:T$(t?.modelMappings),upstreamApiKeyEntries:L$(t?.upstreamApiKeys)}),Yg=(t,e)=>typeof t=="function"?t(e):t,O$=()=>({name:"",prefix:"",baseUrl:"",headers:[],apiKeyEntries:[fd()],modelEntries:[{name:"",alias:""}],testModel:void 0}),ar=()=>({initialized:!1,baseline:null,form:O$(),testModel:"",testStatus:"idle",testMessage:"",keyTestStatuses:[]}),Ua=jo((t,e)=>({drafts:{},refCounts:{},acquireDraft:n=>{n&&t(i=>{const s=i.drafts[n],a=i.refCounts[n]??0;return{drafts:s?i.drafts:{...i.drafts,[n]:ar()},refCounts:{...i.refCounts,[n]:a+1}}})},releaseDraft:n=>{n&&t(i=>{const s=i.refCounts[n];if(!s)return i;if(s>1)return{refCounts:{...i.refCounts,[n]:s-1}};const a={...i.refCounts};delete a[n];const o={...i.drafts};return delete o[n],{refCounts:a,drafts:o}})},ensureDraft:n=>{!n||e().drafts[n]||t(s=>({drafts:{...s.drafts,[n]:ar()}}))},initDraft:(n,i)=>{!n||e().drafts[n]?.initialized||t(a=>({drafts:{...a.drafts,[n]:{...i,initialized:!0}}}))},setDraftBaseline:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar();return{drafts:{...s.drafts,[n]:{...a,initialized:!0,baseline:i}}}})},setDraftForm:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar(),o=Yg(i,a.form);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,form:o}}}})},setDraftTestModel:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar(),o=Yg(i,a.testModel);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testModel:o}}}})},setDraftTestStatus:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar(),o=Yg(i,a.testStatus);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testStatus:o}}}})},setDraftTestMessage:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar(),o=Yg(i,a.testMessage);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testMessage:o}}}})},setDraftKeyTestStatus:(n,i,s)=>{n&&t(a=>{const o=a.drafts[n]??ar(),r=[...o.keyTestStatuses];return r[i]=s,{drafts:{...a.drafts,[n]:{...o,initialized:!0,keyTestStatuses:r}}}})},resetDraftKeyTestStatuses:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ar();return{drafts:{...s.drafts,[n]:{...a,initialized:!0,keyTestStatuses:Array.from({length:i},()=>({status:"idle",message:""}))}}}})},clearDraft:n=>{n&&t(i=>{if(!i.drafts[n]&&!i.refCounts[n])return i;const s={...i.drafts};delete s[n];const a={...i.refCounts};return delete a[n],{drafts:s,refCounts:a}})}})),Jg=(t,e)=>typeof t=="function"?t(e):t,P$=()=>({apiKey:"",prefix:"",baseUrl:"",proxyUrl:"",headers:[],models:[],excludedModels:[],modelEntries:[{name:"",alias:""}],excludedText:""}),ac=()=>({initialized:!1,baseline:null,form:P$(),testModel:"",testStatus:"idle",testMessage:""}),or=jo((t,e)=>({drafts:{},refCounts:{},acquireDraft:n=>{n&&t(i=>{const s=i.drafts[n],a=i.refCounts[n]??0;return{drafts:s?i.drafts:{...i.drafts,[n]:ac()},refCounts:{...i.refCounts,[n]:a+1}}})},releaseDraft:n=>{n&&t(i=>{const s=i.refCounts[n];if(!s)return i;if(s>1)return{refCounts:{...i.refCounts,[n]:s-1}};const a={...i.refCounts};delete a[n];const o={...i.drafts};return delete o[n],{refCounts:a,drafts:o}})},ensureDraft:n=>{!n||e().drafts[n]||t(s=>({drafts:{...s.drafts,[n]:ac()}}))},initDraft:(n,i)=>{!n||e().drafts[n]?.initialized||t(a=>({drafts:{...a.drafts,[n]:{...i,initialized:!0}}}))},setDraftBaseline:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ac();return{drafts:{...s.drafts,[n]:{...a,initialized:!0,baseline:i}}}})},setDraftForm:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ac(),o=Jg(i,a.form);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,form:o}}}})},setDraftTestModel:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ac(),o=Jg(i,a.testModel);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testModel:o}}}})},setDraftTestStatus:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ac(),o=Jg(i,a.testStatus);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testStatus:o}}}})},setDraftTestMessage:(n,i)=>{n&&t(s=>{const a=s.drafts[n]??ac(),o=Jg(i,a.testMessage);return{drafts:{...s.drafts,[n]:{...a,initialized:!0,testMessage:o}}}})},clearDraft:n=>{n&&t(i=>{if(!i.drafts[n]&&!i.refCounts[n])return i;const s={...i.drafts};delete s[n];const a={...i.refCounts};return delete a[n],{drafts:s,refCounts:a}})}})),E$="LoginPage-module__container___bHtIX",j$="LoginPage-module__brandPanel___kKUR5",R$="LoginPage-module__brandContent___ZEhbk",D$="LoginPage-module__brandWord___3DkwD",F$="LoginPage-module__formPanel___Nrtrt",I$="LoginPage-module__formContent___H8fD-",U$="LoginPage-module__logo___ASmao",B$="LoginPage-module__loginCard___OgP-R",z$="LoginPage-module__loginHeader___3kAvs",q$="LoginPage-module__titleRow___9h914",K$="LoginPage-module__title___I-LuY",H$="LoginPage-module__subtitle___Q41SH",V$="LoginPage-module__languageSelect___KUNwV",W$="LoginPage-module__connectionBox___B5--X",G$="LoginPage-module__label___2fkY-",$$="LoginPage-module__value___JFrYC",X$="LoginPage-module__hint___bcz4d",Q$="LoginPage-module__toggleAdvanced___4aKnv",Y$="LoginPage-module__toggleLabel___C3t9M",J$="LoginPage-module__errorBox___wX1tT",Z$="LoginPage-module__splashContent___Cc3DZ",eX="LoginPage-module__splashLogo___yzbbw",tX="LoginPage-module__splashTitle___G-HEP",nX="LoginPage-module__splashSubtitle___BYSQi",iX="LoginPage-module__splashLoader___SdvUl",sX="LoginPage-module__splashLoaderBar___lyVXw",xn={container:E$,brandPanel:j$,brandContent:R$,brandWord:D$,formPanel:F$,formContent:I$,logo:U$,loginCard:B$,loginHeader:z$,titleRow:q$,title:K$,subtitle:H$,languageSelect:V$,connectionBox:W$,label:G$,value:$$,hint:X$,toggleAdvanced:Q$,toggleLabel:Y$,errorBox:J$,splashContent:Z$,splashLogo:eX,splashTitle:tX,splashSubtitle:nX,splashLoader:iX,splashLoaderBar:sX};function aX(t,e){const n=t,i=typeof n.status=="number"?n.status:void 0,s=typeof n.code=="string"?n.code:void 0,a=t instanceof Error?t.message:typeof n.message=="string"?n.message:typeof t=="string"?t:"";return i===401?e("login.error_unauthorized"):i===403?e("login.error_forbidden"):i===404?e("login.error_not_found"):i&&i>=500?e("login.error_server"):s==="ECONNABORTED"||a.toLowerCase().includes("timeout")?e("login.error_timeout"):s==="ERR_NETWORK"||a.toLowerCase().includes("network error")?e("login.error_network"):s==="ERR_CERT_AUTHORITY_INVALID"||a.toLowerCase().includes("certificate")?e("login.error_ssl"):a.toLowerCase().includes("cors")||a.toLowerCase().includes("cross-origin")?e("login.error_cors"):e("login.error_invalid")}function oX(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i}=_n(),s=Cd(X=>X.language),a=Cd(X=>X.setLanguage),o=nn(X=>X.isAuthenticated),r=nn(X=>X.login),c=nn(X=>X.restoreSession),d=nn(X=>X.apiBase),f=nn(X=>X.managementKey),m=nn(X=>X.rememberPassword),[g,y]=S.useState(""),[b,v]=S.useState(""),[x,A]=S.useState(!1),[k,T]=S.useState(!1),[L,M]=S.useState(!1),[O,N]=S.useState(!1),[P,E]=S.useState(!0),[R,z]=S.useState(!1),[D,Q]=S.useState(""),G=S.useMemo(()=>z4(),[]),B=S.useMemo(()=>dd.map(X=>({value:X,label:t(f4[X])})),[t]),I=S.useCallback(X=>{kd(X)&&a(X)},[a]);S.useEffect(()=>{(async()=>{try{await c()?(z(!0),setTimeout(()=>{const q=n.state?.from?.pathname||"/";e(q,{replace:!0})},1500)):(y(d||G),v(f||""),M(m||!!f))}finally{R||E(!1)}})()},[]);const V=S.useCallback(async()=>{if(!b.trim()){Q(t("login.error_required"));return}const X=g?Mo(g):G;N(!0),Q("");try{await r({apiBase:X,managementKey:b.trim(),rememberPassword:L}),i(t("common.connected_status"),"success"),e("/",{replace:!0})}catch(U){const q=aX(U,t);Q(q),i(`${t("notification.login_failed")}: ${q}`,"error")}finally{N(!1)}},[g,G,r,b,e,L,i,t]),K=S.useCallback(X=>{X.key==="Enter"&&!O&&(X.preventDefault(),V())},[O,V]);if(o&&!P&&!R){const X=n.state?.from?.pathname||"/";return h.jsx(qf,{to:X,replace:!0})}const $=P||R;return h.jsxs("div",{className:xn.container,children:[h.jsx("div",{className:xn.brandPanel,children:h.jsxs("div",{className:xn.brandContent,children:[h.jsx("span",{className:xn.brandWord,children:"CLI"}),h.jsx("span",{className:xn.brandWord,children:"PROXY"}),h.jsx("span",{className:xn.brandWord,children:"API"})]})}),h.jsx("div",{className:xn.formPanel,children:$?h.jsxs("div",{className:xn.splashContent,children:[h.jsx("img",{src:wd,alt:"CPAMC",className:xn.splashLogo}),h.jsx("h1",{className:xn.splashTitle,children:t("splash.title")}),h.jsx("p",{className:xn.splashSubtitle,children:t("splash.subtitle")}),h.jsx("div",{className:xn.splashLoader,children:h.jsx("div",{className:xn.splashLoaderBar})})]}):h.jsxs("div",{className:xn.formContent,children:[h.jsx("img",{src:wd,alt:"Logo",className:xn.logo}),h.jsxs("div",{className:xn.loginCard,children:[h.jsxs("div",{className:xn.loginHeader,children:[h.jsxs("div",{className:xn.titleRow,children:[h.jsx("div",{className:xn.title,children:t("title.login")}),h.jsx(Vi,{className:xn.languageSelect,value:s,options:B,onChange:I,fullWidth:!1,ariaLabel:t("language.switch")})]}),h.jsx("div",{className:xn.subtitle,children:t("login.subtitle")})]}),h.jsxs("div",{className:xn.connectionBox,children:[h.jsx("div",{className:xn.label,children:t("login.connection_current")}),h.jsx("div",{className:xn.value,children:g||G}),h.jsx("div",{className:xn.hint,children:t("login.connection_auto_hint")})]}),h.jsx("div",{className:xn.toggleAdvanced,children:h.jsx(Ml,{checked:x,onChange:A,ariaLabel:t("login.custom_connection_label"),label:t("login.custom_connection_label"),labelClassName:xn.toggleLabel})}),x&&h.jsx(ot,{label:t("login.custom_connection_label"),placeholder:t("login.custom_connection_placeholder"),value:g,onChange:X=>y(X.target.value),hint:t("login.custom_connection_hint")}),h.jsx(ot,{autoFocus:!0,label:t("login.management_key_label"),placeholder:t("login.management_key_placeholder"),type:k?"text":"password",value:b,onChange:X=>v(X.target.value),onKeyDown:K,rightElement:h.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>T(X=>!X),"aria-label":k?t("login.hide_key",{defaultValue:"隐藏密钥"}):t("login.show_key",{defaultValue:"显示密钥"}),title:k?t("login.hide_key",{defaultValue:"隐藏密钥"}):t("login.show_key",{defaultValue:"显示密钥"}),children:k?h.jsx(c4,{size:16}):h.jsx(Gq,{size:16})})}),h.jsx("div",{className:xn.toggleAdvanced,children:h.jsx(Ml,{checked:L,onChange:M,ariaLabel:t("login.remember_password_label"),label:t("login.remember_password_label"),labelClassName:xn.toggleLabel})}),h.jsx(me,{fullWidth:!0,onClick:V,loading:O,children:t(O?"login.submitting":"login.submit_button")}),D&&h.jsx("div",{className:xn.errorBox,children:D})]})]})})]})}const cO=300;function rX(){const{t}=et(),{notifications:e,removeNotification:n}=_n(),[i,s]=S.useState([]),a=S.useRef([]);S.useEffect(()=>{const r=a.current,c=new Set(r.map(g=>g.id)),d=new Set(e.map(g=>g.id)),f=e.filter(g=>!c.has(g.id)),m=new Set(r.filter(g=>!d.has(g.id)).map(g=>g.id));s(g=>{let y=g.map(b=>m.has(b.id)?{...b,isExiting:!0}:b);return f.forEach(b=>{y.find(v=>v.id===b.id)||y.push({...b,isExiting:!1})}),y=y.filter(b=>d.has(b.id)||b.isExiting),y}),m.size>0&&setTimeout(()=>{s(g=>g.filter(y=>!m.has(y.id)))},cO),a.current=e},[e]);const o=r=>{s(c=>c.map(d=>d.id===r?{...d,isExiting:!0}:d)),setTimeout(()=>{n(r)},cO)};return i.length?h.jsx("div",{className:"notification-container",children:i.map(r=>h.jsxs("div",{className:`notification ${r.type} ${r.isExiting?"exiting":"entering"}`,children:[h.jsx("div",{className:"message",children:r.message}),h.jsx("button",{type:"button",className:"close-btn",onClick:()=>o(r.id),"aria-label":t("common.close"),children:h.jsx(Xc,{size:16})})]},r.id))}):null}const lX=350,B0="modal-open",cX=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");let Wf=0;const Wn={scrollY:0,contentScrollTop:0,contentEl:null,bodyPosition:"",bodyTop:"",bodyLeft:"",bodyRight:"",bodyWidth:"",bodyOverflow:"",htmlOverflow:""},uX=()=>{if(typeof document>"u")return null;const t=document.querySelector(".content");return t instanceof HTMLElement?t:null},dX=()=>{if(!(typeof document>"u")){if(Wf===0){const t=document.body,e=document.documentElement,n=uX();Wn.scrollY=window.scrollY||window.pageYOffset||e.scrollTop||0,Wn.contentEl=n,Wn.contentScrollTop=n?.scrollTop??0,Wn.bodyPosition=t.style.position,Wn.bodyTop=t.style.top,Wn.bodyLeft=t.style.left,Wn.bodyRight=t.style.right,Wn.bodyWidth=t.style.width,Wn.bodyOverflow=t.style.overflow,Wn.htmlOverflow=e.style.overflow,t.classList.add(B0),e.classList.add(B0),t.style.position="fixed",t.style.top=`-${Wn.scrollY}px`,t.style.left="0",t.style.right="0",t.style.width="100%",t.style.overflow="hidden",e.style.overflow="hidden"}Wf+=1}},hX=()=>{if(!(typeof document>"u")&&(Wf=Math.max(0,Wf-1),Wf===0)){const t=document.body,e=document.documentElement,n=Wn.scrollY,i=Wn.contentScrollTop,s=Wn.contentEl;t.classList.remove(B0),e.classList.remove(B0),t.style.position=Wn.bodyPosition,t.style.top=Wn.bodyTop,t.style.left=Wn.bodyLeft,t.style.right=Wn.bodyRight,t.style.width=Wn.bodyWidth,t.style.overflow=Wn.bodyOverflow,e.style.overflow=Wn.htmlOverflow,s&&s.scrollTo({top:i,left:0,behavior:"auto"}),window.scrollTo({top:n,left:0,behavior:"auto"}),Wn.scrollY=0,Wn.contentScrollTop=0,Wn.contentEl=null}};function Ss({open:t,title:e,onClose:n,footer:i,width:s=520,className:a,closeDisabled:o=!1,children:r}){const{t:c}=et(),d=S.useId(),[f,m]=S.useState(!1),[g,y]=S.useState(!1),b=S.useRef(null),v=S.useRef(null),x=S.useRef(null),A=S.useRef(null),k=S.useCallback(()=>v.current?Array.from(v.current.querySelectorAll(cX)).filter(E=>!E.hasAttribute("disabled")&&E.tabIndex!==-1):[],[]),T=S.useCallback(E=>{b.current===null&&(y(!0),b.current=window.setTimeout(()=>{m(!1),y(!1),b.current=null,E&&n()},lX))},[n]);S.useEffect(()=>{let E=!1;return t?(b.current!==null&&(window.clearTimeout(b.current),b.current=null),queueMicrotask(()=>{E||(m(!0),y(!1))})):f&&queueMicrotask(()=>{E||T(!1)}),()=>{E=!0}},[t,f,T]);const L=S.useCallback(()=>{T(!0)},[T]);S.useEffect(()=>()=>{b.current!==null&&window.clearTimeout(b.current)},[]);const M=t||f;if(S.useEffect(()=>{if(M)return dX(),()=>hX()},[M]),S.useEffect(()=>{if(!t)return;A.current=document.activeElement instanceof HTMLElement?document.activeElement:null;const E=window.setTimeout(()=>{(k()[0]??x.current??v.current)?.focus()},0);return()=>{window.clearTimeout(E)}},[k,t]),S.useEffect(()=>{t||f||(A.current?.focus(),A.current=null)},[f,t]),S.useEffect(()=>{if(!t)return;const E=R=>{if(R.key==="Escape"){if(o)return;R.preventDefault(),L();return}if(R.key!=="Tab")return;const z=k();if(z.length===0){R.preventDefault(),v.current?.focus();return}const D=z[0],Q=z[z.length-1],G=document.activeElement;if(R.shiftKey){(G===D||G===v.current)&&(R.preventDefault(),Q.focus());return}G===Q&&(R.preventDefault(),D.focus())};return document.addEventListener("keydown",E),()=>document.removeEventListener("keydown",E)},[o,k,L,t]),!t&&!f)return null;const O=`modal-overlay ${g?"modal-overlay-closing":"modal-overlay-entering"}`,N=`modal ${g?"modal-closing":"modal-entering"}${a?` ${a}`:""}`,P=h.jsx("div",{className:O,children:h.jsxs("div",{ref:v,className:N,style:{width:s,maxWidth:"100%"},role:"dialog","aria-modal":"true","aria-labelledby":e?d:void 0,tabIndex:-1,children:[h.jsx("button",{ref:x,type:"button",className:"modal-close-floating",onClick:o?void 0:L,"aria-label":c("common.close"),disabled:o,children:h.jsx(Xc,{size:20})}),h.jsx("div",{className:"modal-header",children:h.jsx("div",{className:"modal-title",id:e?d:void 0,children:e})}),h.jsx("div",{className:"modal-body",children:r}),i&&h.jsx("div",{className:"modal-footer",children:i})]})});return typeof document>"u"?P:Eo.createPortal(P,document.body)}function fX(){const{t}=et(),e=_n(x=>x.confirmation),n=_n(x=>x.hideConfirmation),i=_n(x=>x.setConfirmationLoading),{isOpen:s,isLoading:a,options:o}=e;if(!s||!o)return null;const{title:r,message:c,onConfirm:d,onCancel:f,confirmText:m,cancelText:g,variant:y="primary"}=o,b=async()=>{try{i(!0),await d(),n()}catch(x){console.error("Confirmation action failed:",x)}finally{i(!1)}},v=()=>{a||(f&&f(),n())};return h.jsxs(Ss,{open:s,onClose:v,title:r,closeDisabled:a,children:[typeof c=="string"?h.jsx("p",{style:{margin:"1rem 0"},children:c}):h.jsx("div",{style:{margin:"1rem 0"},children:c}),h.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"1rem",marginTop:"2rem"},children:[h.jsx(me,{variant:"ghost",onClick:v,disabled:a,children:g||t("common.cancel")}),h.jsx(me,{variant:y,onClick:b,loading:a,children:m||t("common.confirm")})]})]})}let mX=()=>{};function pX(t){let e;return()=>(e===void 0&&(e=t()),e)}const gX=t=>t,Z2=t=>t*1e3,r1=t=>t/1e3,_X=t=>Array.isArray(t)&&typeof t[0]=="number",yX=(t,e,n=10)=>{let i="";const s=Math.max(Math.round(e/n),2);for(let a=0;a<s;a++)i+=Math.round(t(a/(s-1))*1e4)/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},bX=t=>t!==null;function vX(t,{repeat:e,repeatType:n="loop"},i,s=1){const a=t.filter(bX),r=s<0||e&&n!=="loop"&&e%2===1?0:a.length-1;return!r||i===void 0?a[r]:i}class xX{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,n){return this.finished.then(e,n)}}function SX(t){for(let e=1;e<t.length;e++)t[e]??(t[e]=t[e-1])}const lD=t=>t.startsWith("--");function wX(t,e,n){lD(e)?t.style.setProperty(e,n):t.style[e]=n}const kX={};function cD(t,e){const n=pX(t);return()=>kX[e]??n()}const CX=cD(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),uD=cD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Nf=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,uO={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Nf([0,.65,.55,1]),circOut:Nf([.55,0,1,.45]),backIn:Nf([.31,.01,.66,-.59]),backOut:Nf([.33,1.53,.69,.99])};function dD(t,e){if(t)return typeof t=="function"?uD()?yX(t,e):"ease-out":_X(t)?Nf(t):Array.isArray(t)?t.map(n=>dD(n,e)||uO.easeOut):uO[t]}function AX(t,e,n,{delay:i=0,duration:s=300,repeat:a=0,repeatType:o="loop",ease:r="easeOut",times:c}={},d=void 0){const f={[e]:n};c&&(f.offset=c);const m=dD(r,s);Array.isArray(m)&&(f.easing=m);const g={delay:i,duration:s,easing:Array.isArray(m)?"linear":m,fill:"both",iterations:a+1,direction:o==="reverse"?"alternate":"normal"};return d&&(g.pseudoElement=d),t.animate(f,g)}function NX(t){return typeof t=="function"&&"applyToOptions"in t}function TX({type:t,...e}){return NX(t)&&uD()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class MX extends xX{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:n,name:i,keyframes:s,pseudoElement:a,allowFlatten:o=!1,finalKeyframe:r,onComplete:c}=e;this.isPseudoElement=!!a,this.allowFlatten=o,this.options=e,mX(typeof e.type!="string");const d=TX(e);this.animation=AX(n,i,s,d,a),d.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!a){const f=vX(s,this.options,r,this.speed);this.updateMotionValue?this.updateMotionValue(f):wX(n,i,f),this.animation.cancel()}c?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return r1(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+r1(e)}get time(){return r1(Number(this.animation.currentTime)||0)}set time(e){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Z2(e)}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&CX()?(this.animation.timeline=e,gX):n(this)}}class LX{constructor(e){this.stop=()=>this.runAll("stop"),this.animations=e.filter(Boolean)}get finished(){return Promise.all(this.animations.map(e=>e.finished))}getAll(e){return this.animations[0][e]}setAll(e,n){for(let i=0;i<this.animations.length;i++)this.animations[i][e]=n}attachTimeline(e){const n=this.animations.map(i=>i.attachTimeline(e));return()=>{n.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(e){this.setAll("time",e)}get speed(){return this.getAll("speed")}set speed(e){this.setAll("speed",e)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return dO(this.animations,"duration")}get iterationDuration(){return dO(this.animations,"iterationDuration")}runAll(e){this.animations.forEach(n=>n[e]())}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function dO(t,e){let n=0;for(let i=0;i<t.length;i++){const s=t[i][e];s!==null&&s>n&&(n=s)}return n}class OX extends LX{then(e,n){return this.finished.finally(e).then(()=>{})}}const hO=new WeakMap,PX=(t,e="")=>`${t}:${e}`;function EX(t){const e=hO.get(t)||new Map;return hO.set(t,e),e}function jX(t,e){if(t?.inherit&&e){const{inherit:n,...i}=t;return{...e,...i}}return t}function RX(t,e){const n=t?.[e]??t?.default??t;return n!==t?jX(n,t):n}const DX=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function FX(t,e){for(let n=0;n<t.length;n++)typeof t[n]=="number"&&DX.has(e)&&(t[n]=t[n]+"px")}function IX(t,e,n){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){let i=document;e&&(i=e.current);const s=i.querySelectorAll(t);return s?Array.from(s):[]}return Array.from(t).filter(i=>i!=null)}function fO(t,e){const n=window.getComputedStyle(t);return lD(e)?n.getPropertyValue(e):n[e]}function UX(t,e,n,i){if(t==null)return[];const s=IX(t,i),a=s.length,o=[];for(let c=0;c<a;c++){const d=s[c],f={...n};typeof f.delay=="function"&&(f.delay=f.delay(c,a));for(const m in e){let g=e[m];Array.isArray(g)||(g=[g]);const y={...RX(f,m)};y.duration&&(y.duration=Z2(y.duration)),y.delay&&(y.delay=Z2(y.delay));const b=EX(d),v=PX(m,y.pseudoElement||""),x=b.get(v);x&&x.stop(),o.push({map:b,key:v,unresolvedKeyframes:g,options:{...y,element:d,name:m,allowFlatten:!f.type&&!f.ease}})}}for(let c=0;c<o.length;c++){const{unresolvedKeyframes:d,options:f}=o[c],{element:m,name:g,pseudoElement:y}=f;!y&&d[0]===null&&(d[0]=fO(m,g)),SX(d),FX(d,g),!y&&d.length<2&&d.unshift(fO(m,g)),f.keyframes=d}const r=[];for(let c=0;c<o.length;c++){const{map:d,key:f,options:m}=o[c],g=new MX(m);d.set(f,g),g.finished.finally(()=>d.delete(f)),r.push(g)}return r}const BX=t=>{function e(n,i,s){return new OX(UX(n,i,s,t))}return e},Zu=BX(),hD=S.createContext(null),zX={current:{status:"current",isCurrentLayer:!0},stacked:{status:"stacked",isCurrentLayer:!1},exiting:{status:"exiting",isCurrentLayer:!1}};function Wd(){return S.useContext(hD)}const mO=.35,Zg=60,pO=.42,qX=100,KX=-30,HX=100,VX=-30,WX=.72,GX="-14px 0 24px rgba(0, 0, 0, 0.16)",gO=t=>1-(1-t)**3,_O=t=>Math.sqrt(1-(t-1)**2),Iu=t=>`translate3d(0px, ${t}px, 0px)`,Uu=(t,e)=>`translate3d(${t}%, ${e}px, 0px)`,e_=t=>{t&&(t.style.removeProperty("transform"),t.style.removeProperty("opacity"),t.style.removeProperty("box-shadow"))};function $X({render:t,getRouteOrder:e,getTransitionVariant:n,scrollContainerRef:i}){const s=Qn(),a=S.useRef(null),o=S.useRef(null),r=S.useRef("forward"),c=S.useRef("vertical"),d=S.useRef(0),f=S.useRef(0),m=S.useRef(new Map),g=S.useRef(null),[y,b]=S.useState(!1),[v,x]=S.useState(()=>[{key:s.key,location:s,status:"current"}]),A=v.find(M=>M.status==="current")??v[v.length-1],k=A?.key??s.key,T=A?.location.pathname,L=S.useCallback(()=>i?.current?i.current:typeof document>"u"?null:document.scrollingElement,[i]);return S.useLayoutEffect(()=>{if(y||s.key===k||T===s.pathname)return;const O=L()?.scrollTop??0;d.current=O,m.current.set(k,O),f.current=m.current.get(s.key)??0;const N=Q=>{if(!e||!Q)return null;const G=e(Q);return typeof G=="number"&&G>=0?G:null},P=N(T),E=N(s.pathname),R=n?n(T??"",s.pathname):"vertical";let z=P===null||E===null||P===E||E>P?"forward":"backward";R==="ios"&&v.some(Q=>Q.key===s.key)&&(z="backward"),r.current=z,c.current=R;const D=(()=>{if(R!=="ios"||z!=="backward")return!1;const Q=I=>I.split("/").filter(Boolean).filter(V=>V.length>0),G=Q(T??""),B=Q(s.pathname);return!G.length||!B.length?!1:G[0]===B[0]&&B.length===1})();x(Q=>{const G=c.current,B=r.current,I=Q.findIndex(q=>q.status==="current"),V=I>=0?I:Q.length-1,K=Q[V],$=Q.filter((q,Y)=>Y!==V).map(q=>({...q,status:"stacked"})),X={key:s.key,location:s,status:"current"};if(!K)return g.current=[X],[X];if(G==="ios"){if(B==="forward"){const Y={...K,status:"exiting"},oe={...K,status:"stacked"};return g.current=[...$,oe,X],[...$,Y,X]}const q=Q.findIndex(Y=>Y.key===s.key);if(q!==-1){const Y=Q.slice(0,q+1).map((se,F)=>{const Z=F===q;return{...se,location:Z?s:se.location,status:Z?"current":"stacked"}});if(D)return g.current=Y,Y;const oe={...K,status:"exiting"};return g.current=Y,[...Y,oe]}}if(D)return g.current=[X],[X];const U={...K,status:"exiting"};return g.current=[X],[U,X]}),b(!0)},[y,s,k,T,e,n,L,v]),S.useLayoutEffect(()=>{if(!y||!a.current)return;const M=a.current,O=o.current,N=c.current;e_(M),e_(O);const P=L(),E=d.current,R=f.current;P&&E!==R&&P.scrollTo({top:R,left:0,behavior:"auto"});const D=r.current==="forward",Q=D?Zg:-Zg,G=D?-Zg:Zg,B=R-E,I=[];let V=!1,K=!1;const $=()=>{if(K)return;K=!0;const X=g.current;g.current=null,x(U=>X??U.filter(q=>q.status!=="exiting")),b(!1),e_(M),e_(O)};if(N==="ios"){const X=D?KX:HX,U=D?qX:VX;O&&(O.style.transform=Uu(0,B),O.style.opacity="1"),M.style.transform=Uu(U,0),M.style.opacity="1";const q=D?M:O;q&&(q.style.boxShadow=GX),O&&I.push(Zu(O,{transform:[Uu(0,B),Uu(X,B)],opacity:[1,D?WX:1]},{duration:pO,ease:gO})),I.push(Zu(M,{transform:[Uu(U,0),Uu(0,0)],opacity:[1,1]},{duration:pO,ease:gO}))}else O&&(O.style.transform=Iu(B),I.push(Zu(O,{transform:[Iu(B),Iu(B+G)],opacity:[1,0]},{duration:mO,ease:_O}))),M.style.transform=Iu(Q),M.style.opacity="0",I.push(Zu(M,{transform:[Iu(Q),Iu(0)],opacity:[0,1]},{duration:mO,ease:_O}));return I.length?Promise.all(I.map(X=>X.finished.catch(()=>{}))).then(()=>{V||$()}):$(),()=>{V=!0,I.forEach(X=>X.stop())}},[y,L]),h.jsx("div",{className:`page-transition${y?" page-transition--animating":""}`,children:(()=>{const M=v.findIndex(P=>P.status==="current"),O=M===-1?v.length-1:M,N=v.slice(0,O).map((P,E)=>({layer:P,index:E})).reverse().find(({layer:P})=>P.status==="stacked")?.index;return v.map((P,E)=>{const R=P.status==="stacked"&&E===N;return h.jsx("div",{className:["page-transition__layer",P.status==="exiting"?"page-transition__layer--exit":"",P.status==="stacked"?"page-transition__layer--stacked":"",R?"page-transition__layer--stacked-keep":""].filter(Boolean).join(" "),"aria-hidden":P.status!=="current",inert:P.status!=="current",ref:P.status==="exiting"?o:P.status==="current"?a:void 0,children:h.jsx(hD.Provider,{value:zX[P.status],children:t(P.location)})},P.key)})})()})}const XX="DashboardPage-module__dashboard___c-JEy",QX="DashboardPage-module__backgroundOrbs___ZlInx",YX="DashboardPage-module__orb1___msZV4",JX="DashboardPage-module__orb2___rkxwt",ZX="DashboardPage-module__hero___4gtI-",eQ="DashboardPage-module__heroWatermark___eoPCs",tQ="DashboardPage-module__heroContent___rRgSn",nQ="DashboardPage-module__heroGreeting___LkC-3",iQ="DashboardPage-module__heroTitle___583C6",sQ="DashboardPage-module__heroCaring___4RIkE",aQ="DashboardPage-module__heroMeta___-2WgN",oQ="DashboardPage-module__dateTimeBlock___nv-GA",rQ="DashboardPage-module__time___r-JWY",lQ="DashboardPage-module__date___fd2-M",cQ="DashboardPage-module__connectionPill___Jf-zm",uQ="DashboardPage-module__statusDot___4w7W-",dQ="DashboardPage-module__connected___CeELY",hQ="DashboardPage-module__connecting___j03PZ",fQ="DashboardPage-module__disconnected___3l11q",mQ="DashboardPage-module__pillText___HO7gg",pQ="DashboardPage-module__buildDate___zr4hY",gQ="DashboardPage-module__statsSection___E5LH9",_Q="DashboardPage-module__sectionHeading___j2-4e",yQ="DashboardPage-module__bentoGrid___L3GMN",bQ="DashboardPage-module__bentoCard___fZ0NR",vQ="DashboardPage-module__bentoLarge___OI8ha",xQ="DashboardPage-module__bentoValue___4z4aG",SQ="DashboardPage-module__bentoIcon___yMz7f",wQ="DashboardPage-module__bentoContent___7qrNg",kQ="DashboardPage-module__bentoLabel___s0-b2",CQ="DashboardPage-module__bentoSublabel___LRcJB",AQ="DashboardPage-module__configSection___G0W4F",NQ="DashboardPage-module__configPillGrid___Ie76m",TQ="DashboardPage-module__configPill___C2Adr",MQ="DashboardPage-module__configPillWide___2Bkpx",LQ="DashboardPage-module__configPillLabel___eK-LR",OQ="DashboardPage-module__configPillValue___k6VI3",PQ="DashboardPage-module__on___kqLdD",EQ="DashboardPage-module__off___gkz6F",jQ="DashboardPage-module__configPillMono___pEsgq",RQ="DashboardPage-module__configBadge___TrJTP",DQ="DashboardPage-module__configBadgeRoundRobin___wgPLB",FQ="DashboardPage-module__configBadgeFillFirst___N5vai",IQ="DashboardPage-module__configBadgeUnknown___Jo3zP",UQ="DashboardPage-module__viewMoreLink___wKvoJ",Ye={dashboard:XX,backgroundOrbs:QX,orb1:YX,orb2:JX,hero:ZX,heroWatermark:eQ,heroContent:tQ,heroGreeting:nQ,heroTitle:iQ,heroCaring:sQ,heroMeta:aQ,dateTimeBlock:oQ,time:rQ,date:lQ,connectionPill:cQ,statusDot:uQ,connected:dQ,connecting:hQ,disconnected:fQ,pillText:mQ,buildDate:pQ,statsSection:gQ,sectionHeading:_Q,bentoGrid:yQ,bentoCard:bQ,bentoLarge:vQ,bentoValue:xQ,bentoIcon:SQ,bentoContent:wQ,bentoLabel:kQ,bentoSublabel:CQ,configSection:AQ,configPillGrid:NQ,configPill:TQ,configPillWide:MQ,configPillLabel:LQ,configPillValue:OQ,on:PQ,off:EQ,configPillMono:jQ,configBadge:RQ,configBadgeRoundRobin:DQ,configBadgeFillFirst:FQ,configBadgeUnknown:IQ,viewMoreLink:UQ};function yO(){const t=new Date().getHours();return t>=5&&t<12?"morning":t>=12&&t<17?"afternoon":t>=17&&t<21?"evening":"night"}function bO(){const{t,i18n:e}=et(),n=nn($=>$.connectionStatus),i=nn($=>$.serverVersion),s=nn($=>$.serverBuildDate),a=nn($=>$.apiBase),o=Bt($=>$.config),r=Sr($=>$.models),c=Sr($=>$.loading),d=Sr($=>$.fetchModels),[f,m]=S.useState({apiKeys:null,authFiles:null}),[g,y]=S.useState({gemini:null,codex:null,claude:null,openai:null}),[b,v]=S.useState(!0),[x,A]=S.useState(yO),[k,T]=S.useState(()=>new Date),L=S.useRef([]);S.useEffect(()=>{L.current=[]},[a,o?.apiKeys]),S.useEffect(()=>{const $=setInterval(()=>{A(yO()),T(new Date)},6e4);return()=>clearInterval($)},[]);const M=$=>{if(!Array.isArray($))return[];const X=new Set,U=[];return $.forEach(q=>{const Y=q!==null&&typeof q=="object"&&!Array.isArray(q)?q:null,oe=typeof q=="string"?q:Y?Y["api-key"]??Y.apiKey??Y.key??Y.Key:"",se=String(oe??"").trim();!se||X.has(se)||(X.add(se),U.push(se))}),U},O=S.useCallback(async()=>{if(L.current.length)return L.current;const $=M(o?.apiKeys);if($.length)return L.current=$,$;try{const X=await $2.list(),U=M(X);return U.length&&(L.current=U),U}catch{return[]}},[o?.apiKeys]),N=S.useCallback(async()=>{if(!(n!=="connected"||!a))try{const X=(await O())[0];await d(a,X)}catch{}},[n,a,O,d]);S.useEffect(()=>{n==="connected"?((async()=>{v(!0);try{const[X,U,q,Y,oe,se]=await Promise.allSettled([$2.list(),At.list(),yi.getGeminiKeys(),yi.getCodexConfigs(),yi.getClaudeConfigs(),yi.getOpenAIProviders()]);m({apiKeys:X.status==="fulfilled"?X.value.length:null,authFiles:U.status==="fulfilled"?U.value.files.length:null}),y({gemini:q.status==="fulfilled"?q.value.length:null,codex:Y.status==="fulfilled"?Y.value.length:null,claude:oe.status==="fulfilled"?oe.value.length:null,openai:se.status==="fulfilled"?se.value.length:null})}finally{v(!1)}})(),N()):v(!1)},[n,N]);const P=g.gemini!==null&&g.codex!==null&&g.claude!==null&&g.openai!==null,E=g.gemini!==null||g.codex!==null||g.claude!==null||g.openai!==null,R=P?(g.gemini??0)+(g.codex??0)+(g.claude??0)+(g.openai??0):0,z=[{label:t("dashboard.management_keys"),value:f.apiKeys??"-",icon:h.jsx(F2,{size:24}),path:"/config",loading:b&&f.apiKeys===null,sublabel:t("nav.config_management")},{label:t("nav.ai_providers"),value:b?"-":P?R:"-",icon:h.jsx(qq,{size:24}),path:"/ai-providers",loading:b,sublabel:E?t("dashboard.provider_keys_detail",{gemini:g.gemini??"-",codex:g.codex??"-",claude:g.claude??"-",openai:g.openai??"-"}):void 0},{label:t("nav.auth_files"),value:f.authFiles??"-",icon:h.jsx(Vq,{size:24}),path:"/auth-files",loading:b&&f.authFiles===null,sublabel:t("dashboard.oauth_credentials")},{label:t("dashboard.available_models"),value:c?"-":r.length,icon:h.jsx(Ju,{size:24}),path:"/system",loading:c,sublabel:t("dashboard.available_models_desc")}],D=o?.routingStrategy?.trim()||"",Q=D?D==="round-robin"?t("basic_settings.routing_strategy_round_robin"):D==="fill-first"?t("basic_settings.routing_strategy_fill_first"):D:"-",G=D?D==="round-robin"?Ye.configBadgeRoundRobin:D==="fill-first"?Ye.configBadgeFillFirst:Ye.configBadgeUnknown:Ye.configBadgeUnknown,B=`dashboard.greeting_${x}`,I=`dashboard.caring_${x}`,V=k.toLocaleDateString(e.language,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),K=k.toLocaleTimeString(e.language,{hour:"2-digit",minute:"2-digit"});return h.jsxs("div",{className:Ye.dashboard,children:[h.jsxs("div",{className:Ye.backgroundOrbs,"aria-hidden":"true",children:[h.jsx("div",{className:Ye.orb1}),h.jsx("div",{className:Ye.orb2})]}),h.jsxs("section",{className:Ye.hero,children:[h.jsx("span",{className:Ye.heroWatermark,"aria-hidden":"true",children:"OVERVIEW"}),h.jsxs("div",{className:Ye.heroContent,children:[h.jsx("span",{className:Ye.heroGreeting,children:t(B)}),h.jsx("h1",{className:Ye.heroTitle,children:t("dashboard.welcome_back")}),h.jsx("p",{className:Ye.heroCaring,children:t(I)})]}),h.jsxs("div",{className:Ye.heroMeta,children:[h.jsxs("div",{className:Ye.dateTimeBlock,children:[h.jsx("span",{className:Ye.time,children:K}),h.jsx("span",{className:Ye.date,children:V})]}),h.jsxs("div",{className:Ye.connectionPill,children:[h.jsx("span",{className:`${Ye.statusDot} ${n==="connected"?Ye.connected:n==="connecting"?Ye.connecting:Ye.disconnected}`}),h.jsx("span",{className:Ye.pillText,children:i?`v${i.trim().replace(/^[vV]+/,"")}`:t(n==="connected"?"common.connected":n==="connecting"?"common.connecting":"common.disconnected")})]}),s&&h.jsx("span",{className:Ye.buildDate,children:new Date(s).toLocaleDateString(e.language)})]})]}),h.jsxs("section",{className:Ye.statsSection,children:[h.jsx("h2",{className:Ye.sectionHeading,children:t("dashboard.system_overview")}),h.jsx("div",{className:Ye.bentoGrid,children:z.map(($,X)=>h.jsxs(M0,{to:$.path,className:`${Ye.bentoCard} ${X===0?Ye.bentoLarge:""}`,style:{animationDelay:`${X*80}ms`},children:[h.jsx("div",{className:Ye.bentoIcon,children:$.icon}),h.jsxs("div",{className:Ye.bentoContent,children:[h.jsx("span",{className:Ye.bentoValue,children:$.loading?"...":$.value}),h.jsx("span",{className:Ye.bentoLabel,children:$.label}),$.sublabel&&!$.loading&&h.jsx("span",{className:Ye.bentoSublabel,children:$.sublabel})]})]},$.path))})]}),o&&h.jsxs("section",{className:Ye.configSection,children:[h.jsx("h2",{className:Ye.sectionHeading,children:t("dashboard.current_config")}),h.jsxs("div",{className:Ye.configPillGrid,children:[h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.debug_enable")}),h.jsx("span",{className:`${Ye.configPillValue} ${o.debug?Ye.on:Ye.off}`,children:o.debug?t("common.yes"):t("common.no")})]}),h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.usage_statistics_enable")}),h.jsx("span",{className:`${Ye.configPillValue} ${o.usageStatisticsEnabled?Ye.on:Ye.off}`,children:o.usageStatisticsEnabled?t("common.yes"):t("common.no")})]}),h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.logging_to_file_enable")}),h.jsx("span",{className:`${Ye.configPillValue} ${o.loggingToFile?Ye.on:Ye.off}`,children:o.loggingToFile?t("common.yes"):t("common.no")})]}),h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.retry_count_label")}),h.jsx("span",{className:Ye.configPillValue,children:o.requestRetry??0})]}),h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.ws_auth_enable")}),h.jsx("span",{className:`${Ye.configPillValue} ${o.wsAuth?Ye.on:Ye.off}`,children:o.wsAuth?t("common.yes"):t("common.no")})]}),h.jsxs("div",{className:Ye.configPill,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("dashboard.routing_strategy")}),h.jsx("span",{className:`${Ye.configBadge} ${G}`,children:Q})]}),o.proxyUrl&&h.jsxs("div",{className:`${Ye.configPill} ${Ye.configPillWide}`,children:[h.jsx("span",{className:Ye.configPillLabel,children:t("basic_settings.proxy_url_label")}),h.jsx("span",{className:Ye.configPillMono,children:o.proxyUrl})]})]}),h.jsxs(M0,{to:"/config",className:Ye.viewMoreLink,children:[t("dashboard.edit_settings")," →"]})]})]})}function Dt({title:t,extra:e,children:n,className:i}){return h.jsxs("div",{className:i?`card ${i}`:"card",children:[(t||e)&&h.jsxs("div",{className:"card-header",children:[h.jsx("div",{className:"title",children:t}),e]}),n]})}const fD="data:image/svg+xml,%3csvg%20width='400'%20height='400'%20viewBox='0%200%2028%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M13.9197%2013.61L17.3816%2026.566L14.242%2027.4049L11.2645%2016.2643L0.119926%2013.2906L0.957817%2010.15L13.9197%2013.61Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M13.7391%2016.0892L4.88169%2024.9056L2.58872%2022.6019L11.4461%2013.7865L13.7391%2016.0892Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M18.9386%208.58315L22.4005%2021.5392L19.2609%2022.3781L16.2833%2011.2374L5.13879%208.26381L5.97668%205.12318L18.9386%208.58315Z'%20fill='%23F34E3F'/%3e%3cpath%20d='M23.9803%203.55632L27.4422%2016.5124L24.3025%2017.3512L21.325%206.21062L10.1805%203.23698L11.0183%200.0963593L23.9803%203.55632Z'%20fill='%23F34E3F'/%3e%3c/svg%3e",BQ="AiProvidersPage-module__container___y-jfS",zQ="AiProvidersPage-module__cardTitle___vO4i3",qQ="AiProvidersPage-module__cardTitleIcon___-rTw0",KQ="AiProvidersPage-module__pageTitle___DoSv8",HQ="AiProvidersPage-module__content___E2Czu",VQ="AiProvidersPage-module__cardStats___rELY1",WQ="AiProvidersPage-module__statPill___d812A",GQ="AiProvidersPage-module__statSuccess___5dRtj",$Q="AiProvidersPage-module__statFailure___krDjY",XQ="AiProvidersPage-module__fieldRow___XK6hX",QQ="AiProvidersPage-module__fieldLabel___cLX9f",YQ="AiProvidersPage-module__fieldValue___VdFCH",JQ="AiProvidersPage-module__headerBadgeList___kwkIM",ZQ="AiProvidersPage-module__headerBadge___eN0Fd",eY="AiProvidersPage-module__modelTagList___shUnj",tY="AiProvidersPage-module__modelCountLabel___uV8s-",nY="AiProvidersPage-module__modelTag___k-VuJ",iY="AiProvidersPage-module__modelName___-6r4h",sY="AiProvidersPage-module__modelAlias___ljQjM",aY="AiProvidersPage-module__excludedModelTag___emTfi",oY="AiProvidersPage-module__excludedModelsSection___XFykq",rY="AiProvidersPage-module__excludedModelsLabel___Drdds",lY="AiProvidersPage-module__apiKeyEntriesSection___60ydj",cY="AiProvidersPage-module__apiKeyEntriesLabel___c5W8h",uY="AiProvidersPage-module__apiKeyEntryList___-xrgk",dY="AiProvidersPage-module__apiKeyEntryCard___Y5gRi",hY="AiProvidersPage-module__apiKeyEntryIndex___h8oWW",fY="AiProvidersPage-module__apiKeyEntryKey___JgU0c",mY="AiProvidersPage-module__apiKeyEntryProxy___gy9Vu",pY="AiProvidersPage-module__apiKeyEntryStats___Whq5E",gY="AiProvidersPage-module__apiKeyEntryStat___rwvkB",_Y="AiProvidersPage-module__apiKeyEntryStatSuccess___GXIwG",yY="AiProvidersPage-module__apiKeyEntryStatFailure___XV9wg",bY="AiProvidersPage-module__modelDiscoveryList___HKeOb",vY="AiProvidersPage-module__modelDiscoveryRow___3J8pc",xY="AiProvidersPage-module__modelDiscoverySelectionLabel___GsF2O",SY="AiProvidersPage-module__modelDiscoveryRowSelected___VLfIp",wY="AiProvidersPage-module__modelDiscoveryMeta___7D6Y5",kY="AiProvidersPage-module__modelDiscoveryName___yf70V",CY="AiProvidersPage-module__modelDiscoveryAlias___N2nU7",AY="AiProvidersPage-module__modelDiscoveryDesc___nsrtd",NY="AiProvidersPage-module__modelDiscoveryToolbar___FOjvS",TY="AiProvidersPage-module__modelDiscoveryToolbarActions___a8qmb",MY="AiProvidersPage-module__modelDiscoverySelectionSummary___7PhM7",LY="AiProvidersPage-module__statusBar___gAS9s",OY="AiProvidersPage-module__statusBlocks___RESqk",PY="AiProvidersPage-module__statusBlockWrapper___crE7L",EY="AiProvidersPage-module__statusBlock___nUV1s",jY="AiProvidersPage-module__statusBlockActive___MgbMs",RY="AiProvidersPage-module__statusBlockIdle___WEMXo",DY="AiProvidersPage-module__statusTooltip___leV9X",FY="AiProvidersPage-module__statusTooltipLeft___avU77",IY="AiProvidersPage-module__statusTooltipRight___k2gcI",UY="AiProvidersPage-module__tooltipTime___SU0zH",BY="AiProvidersPage-module__tooltipStats___c6Xho",zY="AiProvidersPage-module__tooltipSuccess___Nl3Pt",qY="AiProvidersPage-module__tooltipFailure___1XMCP",KY="AiProvidersPage-module__tooltipRate___YDCOe",HY="AiProvidersPage-module__statusRate___mqcEs",VY="AiProvidersPage-module__statusRateHigh___GpDhl",WY="AiProvidersPage-module__statusRateMedium___hdtEj",GY="AiProvidersPage-module__statusRateLow___mNI2c",$Y="AiProvidersPage-module__openaiEditForm___axTov",XY="AiProvidersPage-module__modelConfigSection___0v-e8",QY="AiProvidersPage-module__sectionHint___-aBFT",YY="AiProvidersPage-module__openaiModelsContent___yEApy",JY="AiProvidersPage-module__openaiModelsEndpointSection___FvBIQ",ZY="AiProvidersPage-module__openaiModelsEndpointLabel___-rOEU",eJ="AiProvidersPage-module__openaiModelsEndpointControls___pLkMs",tJ="AiProvidersPage-module__openaiModelsEndpointInput___4xH3Y",nJ="AiProvidersPage-module__modelConfigHeader___bXtq4",iJ="AiProvidersPage-module__modelConfigTitle___ppVRn",sJ="AiProvidersPage-module__modelConfigToolbar___nrb6R",aJ="AiProvidersPage-module__modelInputList___AbYq6",oJ="AiProvidersPage-module__modelInputRow___j-ubV",rJ="AiProvidersPage-module__modelInputField___QdqkU",lJ="AiProvidersPage-module__modelRowRemoveButton___lEFpT",cJ="AiProvidersPage-module__modelTestPanel___SyW9P",uJ="AiProvidersPage-module__modelTestMeta___XMH-g",dJ="AiProvidersPage-module__modelTestLabel___HqcWx",hJ="AiProvidersPage-module__modelTestHint___kUgyp",fJ="AiProvidersPage-module__modelTestControls___yPmI0",mJ="AiProvidersPage-module__keyEntriesSection___XD0xH",pJ="AiProvidersPage-module__keyEntriesHeader___yZxok",gJ="AiProvidersPage-module__keyEntriesTitle___MEybu",_J="AiProvidersPage-module__keyEntriesHint___gn0EN",yJ="AiProvidersPage-module__keyEntriesList___Gtpin",bJ="AiProvidersPage-module__keyEntriesToolbar___eSzyC",vJ="AiProvidersPage-module__keyEntriesCount___e6jgL",xJ="AiProvidersPage-module__keyTableShell___0nNxe",SJ="AiProvidersPage-module__keyTableHeader___ZbWah",wJ="AiProvidersPage-module__keyTableRow___0MOQW",kJ="AiProvidersPage-module__keyTableColIndex___U12X-",CJ="AiProvidersPage-module__keyTableColStatus___Dzw88",AJ="AiProvidersPage-module__keyTableColKey___V9Md3",NJ="AiProvidersPage-module__keyTableColProxy___9hcue",TJ="AiProvidersPage-module__keyTableColAction___oZsbE",MJ="AiProvidersPage-module__keyTableInput___bo5JN",LJ="AiProvidersPage-module__addKeyButton___xuMah",OJ="AiProvidersPage-module__openaiTestSelect___7-Upw",PJ="AiProvidersPage-module__modelTestAllButton___SRL9M",EJ="AiProvidersPage-module__statusIconSpin___DC8Ww",H={container:BQ,cardTitle:zQ,cardTitleIcon:qQ,pageTitle:KQ,content:HQ,cardStats:VQ,statPill:WQ,statSuccess:GQ,statFailure:$Q,fieldRow:XQ,fieldLabel:QQ,fieldValue:YQ,headerBadgeList:JQ,headerBadge:ZQ,modelTagList:eY,modelCountLabel:tY,modelTag:nY,modelName:iY,modelAlias:sY,excludedModelTag:aY,excludedModelsSection:oY,excludedModelsLabel:rY,apiKeyEntriesSection:lY,apiKeyEntriesLabel:cY,apiKeyEntryList:uY,apiKeyEntryCard:dY,apiKeyEntryIndex:hY,apiKeyEntryKey:fY,apiKeyEntryProxy:mY,apiKeyEntryStats:pY,apiKeyEntryStat:gY,apiKeyEntryStatSuccess:_Y,apiKeyEntryStatFailure:yY,modelDiscoveryList:bY,modelDiscoveryRow:vY,modelDiscoverySelectionLabel:xY,modelDiscoveryRowSelected:SY,modelDiscoveryMeta:wY,modelDiscoveryName:kY,modelDiscoveryAlias:CY,modelDiscoveryDesc:AY,modelDiscoveryToolbar:NY,modelDiscoveryToolbarActions:TY,modelDiscoverySelectionSummary:MY,statusBar:LY,statusBlocks:OY,statusBlockWrapper:PY,statusBlock:EY,statusBlockActive:jY,statusBlockIdle:RY,statusTooltip:DY,statusTooltipLeft:FY,statusTooltipRight:IY,tooltipTime:UY,tooltipStats:BY,tooltipSuccess:zY,tooltipFailure:qY,tooltipRate:KY,statusRate:HY,statusRateHigh:VY,statusRateMedium:WY,statusRateLow:GY,openaiEditForm:$Y,modelConfigSection:XY,sectionHint:QY,openaiModelsContent:YY,openaiModelsEndpointSection:JY,openaiModelsEndpointLabel:ZY,openaiModelsEndpointControls:eJ,openaiModelsEndpointInput:tJ,modelConfigHeader:nJ,modelConfigTitle:iJ,modelConfigToolbar:sJ,modelInputList:aJ,modelInputRow:oJ,modelInputField:rJ,modelRowRemoveButton:lJ,modelTestPanel:cJ,modelTestMeta:uJ,modelTestLabel:dJ,modelTestHint:hJ,modelTestControls:fJ,keyEntriesSection:mJ,keyEntriesHeader:pJ,keyEntriesTitle:gJ,keyEntriesHint:_J,keyEntriesList:yJ,keyEntriesToolbar:bJ,keyEntriesCount:vJ,keyTableShell:xJ,keyTableHeader:SJ,keyTableRow:wJ,keyTableColIndex:kJ,keyTableColStatus:CJ,keyTableColKey:AJ,keyTableColProxy:NJ,keyTableColAction:TJ,keyTableInput:MJ,addKeyButton:LJ,openaiTestSelect:OJ,modelTestAllButton:PJ,statusIconSpin:EJ};function jJ({config:t,loading:e,disableControls:n,isSwitching:i,onEdit:s}){const{t:a}=et(),o=e&&!t;return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:fD,alt:"",className:H.cardTitleIcon}),a("ai_providers.ampcode_title")]}),extra:h.jsx(me,{size:"sm",onClick:s,disabled:n||e||i,children:a("common.edit")}),children:o?h.jsx("div",{className:"hint",children:a("common.loading")}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[a("ai_providers.ampcode_upstream_url_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:t?.upstreamUrl||a("common.not_set")})]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[a("ai_providers.ampcode_upstream_api_key_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:t?.upstreamApiKey?Ea(t.upstreamApiKey):a("common.not_set")})]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[a("ai_providers.ampcode_force_model_mappings_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:t?.forceModelMappings??!1?a("common.yes"):a("common.no")})]}),h.jsxs("div",{className:H.fieldRow,style:{marginTop:8},children:[h.jsxs("span",{className:H.fieldLabel,children:[a("ai_providers.ampcode_model_mappings_count"),":"]}),h.jsx("span",{className:H.fieldValue,children:t?.modelMappings?.length||0})]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[a("ai_providers.ampcode_upstream_api_keys_count"),":"]}),h.jsx("span",{className:H.fieldValue,children:t?.upstreamApiKeys?.length||0})]}),t?.modelMappings?.length?h.jsxs("div",{className:H.modelTagList,children:[t.modelMappings.slice(0,5).map(r=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:r.from}),h.jsx("span",{className:H.modelAlias,children:r.to})]},`${r.from}→${r.to}`)),t.modelMappings.length>5&&h.jsx("span",{className:H.modelTag,children:h.jsxs("span",{className:H.modelName,children:["+",t.modelMappings.length-5]})})]}):null]})})})}const RJ="ToggleSwitch-module__root___IUqKD",DJ="ToggleSwitch-module__labelLeft___Pc6fJ",FJ="ToggleSwitch-module__label___4iQkR",IJ="ToggleSwitch-module__disabled___GNGHj",UJ="ToggleSwitch-module__track___zFtXx",BJ="ToggleSwitch-module__thumb___gQ45C",Bu={root:RJ,labelLeft:DJ,label:FJ,disabled:IJ,track:UJ,thumb:BJ};function Si({checked:t,onChange:e,label:n,ariaLabel:i,disabled:s=!1,labelPosition:a="right"}){const o=c=>{e(c.target.checked)},r=[Bu.root,a==="left"?Bu.labelLeft:"",s?Bu.disabled:""].filter(Boolean).join(" ");return h.jsxs("label",{className:r,children:[h.jsx("input",{type:"checkbox",checked:t,onChange:o,disabled:s,"aria-label":i}),h.jsx("span",{className:Bu.track,children:h.jsx("span",{className:Bu.thumb})}),n&&h.jsx("span",{className:Bu.label,children:n})]})}const ip="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e",zJ=[];function qJ(t){const e=new Map;return t.forEach(n=>{const i=n.source;if(!i)return;const s=e.get(i);s?s.push(n):e.set(i,[n])}),e}function sp(t,e){let n=null,i=null;for(const s of e){const a=t.get(s);if(!(!a||a.length===0)){if(!n){n=a;continue}i||(i=[...n]);for(const o of a)i.push(o)}}return i??n??zJ}function os({title:t,description:e,action:n}){return h.jsxs("div",{className:"empty-state",children:[h.jsxs("div",{className:"empty-content",children:[h.jsx("div",{className:"empty-icon","aria-hidden":"true",children:h.jsx($q,{size:20})}),h.jsxs("div",{children:[h.jsx("div",{className:"empty-title",children:t}),e&&h.jsx("div",{className:"empty-desc",children:e})]})]}),n&&h.jsx("div",{className:"empty-action",children:n})]})}function ap({items:t,loading:e,keyField:n,renderContent:i,onEdit:s,onDelete:a,emptyTitle:o,emptyDescription:r,deleteLabel:c,actionsDisabled:d=!1,getRowDisabled:f,renderExtraActions:m}){const{t:g}=et();return e&&t.length===0?h.jsx("div",{className:"hint",children:g("common.loading")}):t.length?h.jsx("div",{className:"item-list",children:t.map((y,b)=>{const v=f?f(y,b):!1;return h.jsxs("div",{className:"item-row",style:v?{opacity:.6}:void 0,children:[h.jsx("div",{className:"item-meta",children:i(y,b)}),h.jsxs("div",{className:"item-actions",children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>s(b),disabled:d,children:g("common.edit")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>a(b),disabled:d,children:c||g("common.delete")}),m?m(y,b):null]})]},n(y,b))})}):h.jsx(os,{title:o,description:r})}const vO=[{r:239,g:68,b:68},{r:250,g:204,b:21},{r:34,g:197,b:94}];function KJ(t){const e=Math.max(0,Math.min(1,t)),n=e<.5?0:1,i=n===0?e*2:(e-.5)*2,s=vO[n],a=vO[n+1],o=Math.round(s.r+(a.r-s.r)*i),r=Math.round(s.g+(a.g-s.g)*i),c=Math.round(s.b+(a.b-s.b)*i);return`rgb(${o}, ${r}, ${c})`}function xO(t){const e=new Date(t),n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0");return`${n}:${i}`}function HJ(t){const e=t.toFixed(1);return`${e.endsWith(".0")?e.slice(0,-2):e}%`}function Gd({statusData:t,styles:e}){const{t:n}=et(),i=e||H,[s,a]=S.useState(null),o=S.useRef(null),r=t.totalSuccess+t.totalFailure>0,c=r?t.successRate>=90?i.statusRateHigh:t.successRate>=50?i.statusRateMedium:i.statusRateLow:"";S.useEffect(()=>{if(s===null)return;const b=v=>{o.current&&!o.current.contains(v.target)&&a(null)};return document.addEventListener("pointerdown",b),()=>document.removeEventListener("pointerdown",b)},[s]);const d=S.useCallback((b,v)=>{b.pointerType==="mouse"&&a(v)},[]),f=S.useCallback(b=>{b.pointerType==="mouse"&&a(null)},[]),m=S.useCallback((b,v)=>{b.pointerType==="touch"&&(b.preventDefault(),a(x=>x===v?null:v))},[]),g=(b,v)=>b<=2?i.statusTooltipLeft:b>=v-3?i.statusTooltipRight:"",y=(b,v)=>{const x=b.success+b.failure,A=g(v,t.blockDetails.length),k=`${xO(b.startTime)} – ${xO(b.endTime)}`;return h.jsxs("div",{className:`${i.statusTooltip} ${A}`,children:[h.jsx("span",{className:i.tooltipTime,children:k}),x>0?h.jsxs("span",{className:i.tooltipStats,children:[h.jsxs("span",{className:i.tooltipSuccess,children:[n("status_bar.success_short")," ",b.success]}),h.jsxs("span",{className:i.tooltipFailure,children:[n("status_bar.failure_short")," ",b.failure]}),h.jsxs("span",{className:i.tooltipRate,children:["(",(b.rate*100).toFixed(1),"%)"]})]}):h.jsx("span",{className:i.tooltipStats,children:n("status_bar.no_requests")})]})};return h.jsxs("div",{className:i.statusBar,children:[h.jsx("div",{className:i.statusBlocks,ref:o,children:t.blockDetails.map((b,v)=>{const x=b.rate===-1,A=x?void 0:{backgroundColor:KJ(b.rate)},k=s===v;return h.jsxs("div",{className:`${i.statusBlockWrapper} ${k?i.statusBlockActive:""}`,onPointerEnter:T=>d(T,v),onPointerLeave:f,onPointerDown:T=>m(T,v),children:[h.jsx("div",{className:`${i.statusBlock} ${x?i.statusBlockIdle:""}`,style:A}),k&&y(b,v)]},v)})}),h.jsx("span",{className:`${i.statusRate} ${c}`,children:r?HJ(t.successRate):"--"})]})}function VJ({configs:t,keyStats:e,usageDetailsBySource:n,loading:i,disableControls:s,isSwitching:a,onAdd:o,onEdit:r,onDelete:c,onToggle:d}){const{t:f}=et(),m=s||i||a,g=s||i||a,y=S.useMemo(()=>{const b=new Map;return t.forEach(v=>{if(!v.apiKey)return;const x=_s({apiKey:v.apiKey,prefix:v.prefix});x.length&&b.set(v.apiKey,Na(sp(n,x)))}),b},[t,n]);return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:ip,alt:"",className:H.cardTitleIcon}),f("ai_providers.claude_title")]}),extra:h.jsx(me,{size:"sm",onClick:o,disabled:m,children:f("ai_providers.claude_add_button")}),children:h.jsx(ap,{items:t,loading:i,keyField:b=>b.apiKey,emptyTitle:f("ai_providers.claude_empty_title"),emptyDescription:f("ai_providers.claude_empty_desc"),onEdit:r,onDelete:c,actionsDisabled:m,getRowDisabled:b=>Sa(b.excludedModels),renderExtraActions:(b,v)=>h.jsx(Si,{label:f("ai_providers.config_toggle_label"),checked:!Sa(b.excludedModels),disabled:g,onChange:x=>void d(v,x)}),renderContent:b=>{const v=np(b.apiKey,e,b.prefix),x=Object.entries(b.headers||{}),A=Sa(b.excludedModels),k=b.excludedModels??[],T=y.get(b.apiKey)||Na([]);return h.jsxs(S.Fragment,{children:[h.jsx("div",{className:"item-title",children:f("ai_providers.claude_item_title")}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.api_key"),":"]}),h.jsx("span",{className:H.fieldValue,children:Ea(b.apiKey)})]}),b.priority!==void 0&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.priority"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.priority})]}),b.prefix&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.prefix"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.prefix})]}),b.baseUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.base_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.baseUrl})]}),b.proxyUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.proxy_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.proxyUrl})]}),b.cloak&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("ai_providers.claude_cloak_mode_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:(()=>{const L=(b.cloak?.mode??"").trim().toLowerCase();return f(`ai_providers.claude_cloak_mode_${L==="always"||L==="never"?L:"auto"}`)})()})]}),b.cloak?.strictMode?h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("ai_providers.claude_cloak_strict_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:f("common.yes")})]}):null,b.cloak?.sensitiveWords?.length?h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("ai_providers.claude_cloak_sensitive_words_count"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.cloak.sensitiveWords.length})]}):null,x.length>0&&h.jsx("div",{className:H.headerBadgeList,children:x.map(([L,M])=>h.jsxs("span",{className:H.headerBadge,children:[h.jsxs("strong",{children:[L,":"]})," ",M]},L))}),A&&h.jsx("div",{className:"status-badge warning",style:{marginTop:8,marginBottom:0},children:f("ai_providers.config_disabled_badge")}),b.models?.length?h.jsxs("div",{className:H.modelTagList,children:[h.jsxs("span",{className:H.modelCountLabel,children:[f("ai_providers.claude_models_count"),": ",b.models.length]}),b.models.map(L=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:L.name}),L.alias&&L.alias!==L.name&&h.jsx("span",{className:H.modelAlias,children:L.alias})]},L.name))]}):null,k.length?h.jsxs("div",{className:H.excludedModelsSection,children:[h.jsx("div",{className:H.excludedModelsLabel,children:f("ai_providers.excluded_models_count",{count:k.length})}),h.jsx("div",{className:H.modelTagList,children:k.map(L=>h.jsx("span",{className:`${H.modelTag} ${H.excludedModelTag}`,children:h.jsx("span",{className:H.modelName,children:L})},L))})]}):null,h.jsxs("div",{className:H.cardStats,children:[h.jsxs("span",{className:`${H.statPill} ${H.statSuccess}`,children:[f("stats.success"),": ",v.success]}),h.jsxs("span",{className:`${H.statPill} ${H.statFailure}`,children:[f("stats.failure"),": ",v.failure]})]}),h.jsx(Gd,{statusData:T})]})}})})})}const Vy="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eCodex%3c/title%3e%3cpath%20d='M19.503%200H4.496A4.496%204.496%200%20000%204.496v15.007A4.496%204.496%200%20004.496%2024h15.007A4.496%204.496%200%200024%2019.503V4.496A4.496%204.496%200%200019.503%200z'%20fill='%23fff'%3e%3c/path%3e%3cpath%20d='M9.064%203.344a4.578%204.578%200%20012.285-.312c1%20.115%201.891.54%202.673%201.275.01.01.024.017.037.021a.09.09%200%2000.043%200%204.55%204.55%200%20013.046.275l.047.022.116.057a4.581%204.581%200%20012.188%202.399c.209.51.313%201.041.315%201.595a4.24%204.24%200%2001-.134%201.223.123.123%200%2000.03.115c.594.607.988%201.33%201.183%202.17.289%201.425-.007%202.71-.887%203.854l-.136.166a4.548%204.548%200%2001-2.201%201.388.123.123%200%2000-.081.076c-.191.551-.383%201.023-.74%201.494-.9%201.187-2.222%201.846-3.711%201.838-1.187-.006-2.239-.44-3.157-1.302a.107.107%200%2000-.105-.024c-.388.125-.78.143-1.204.138a4.441%204.441%200%2001-1.945-.466%204.544%204.544%200%2001-1.61-1.335c-.152-.202-.303-.392-.414-.617a5.81%205.81%200%2001-.37-.961%204.582%204.582%200%2001-.014-2.298.124.124%200%2000.006-.056.085.085%200%2000-.027-.048%204.467%204.467%200%2001-1.034-1.651%203.896%203.896%200%2001-.251-1.192%205.189%205.189%200%2001.141-1.6c.337-1.112.982-1.985%201.933-2.618.212-.141.413-.251.601-.33.215-.089.43-.164.646-.227a.098.098%200%2000.065-.066%204.51%204.51%200%2001.829-1.615%204.535%204.535%200%20011.837-1.388zm3.482%2010.565a.637.637%200%20000%201.272h3.636a.637.637%200%20100-1.272h-3.636zM8.462%209.23a.637.637%200%2000-1.106.631l1.272%202.224-1.266%202.136a.636.636%200%20101.095.649l1.454-2.455a.636.636%200%2000.005-.64L8.462%209.23z'%20fill='url(%23lobe-icons-codex-fill)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-codex-fill'%20x1='12'%20x2='12'%20y1='3'%20y2='21'%3e%3cstop%20stop-color='%23B1A7FF'%3e%3c/stop%3e%3cstop%20offset='.5'%20stop-color='%237A9DFF'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%233941FF'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";function WJ({configs:t,keyStats:e,usageDetailsBySource:n,loading:i,disableControls:s,isSwitching:a,onAdd:o,onEdit:r,onDelete:c,onToggle:d}){const{t:f}=et(),m=s||i||a,g=s||i||a,y=S.useMemo(()=>{const b=new Map;return t.forEach(v=>{if(!v.apiKey)return;const x=_s({apiKey:v.apiKey,prefix:v.prefix});x.length&&b.set(v.apiKey,Na(sp(n,x)))}),b},[t,n]);return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:Vy,alt:"",className:H.cardTitleIcon}),f("ai_providers.codex_title")]}),extra:h.jsx(me,{size:"sm",onClick:o,disabled:m,children:f("ai_providers.codex_add_button")}),children:h.jsx(ap,{items:t,loading:i,keyField:b=>b.apiKey,emptyTitle:f("ai_providers.codex_empty_title"),emptyDescription:f("ai_providers.codex_empty_desc"),onEdit:r,onDelete:c,actionsDisabled:m,getRowDisabled:b=>Sa(b.excludedModels),renderExtraActions:(b,v)=>h.jsx(Si,{label:f("ai_providers.config_toggle_label"),checked:!Sa(b.excludedModels),disabled:g,onChange:x=>void d(v,x)}),renderContent:b=>{const v=np(b.apiKey,e,b.prefix),x=Object.entries(b.headers||{}),A=Sa(b.excludedModels),k=b.excludedModels??[],T=y.get(b.apiKey)||Na([]);return h.jsxs(S.Fragment,{children:[h.jsx("div",{className:"item-title",children:f("ai_providers.codex_item_title")}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.api_key"),":"]}),h.jsx("span",{className:H.fieldValue,children:Ea(b.apiKey)})]}),b.priority!==void 0&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.priority"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.priority})]}),b.prefix&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.prefix"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.prefix})]}),b.baseUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.base_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.baseUrl})]}),b.proxyUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.proxy_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.proxyUrl})]}),b.websockets!==void 0&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("ai_providers.codex_websockets_label"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.websockets?f("common.yes"):f("common.no")})]}),x.length>0&&h.jsx("div",{className:H.headerBadgeList,children:x.map(([L,M])=>h.jsxs("span",{className:H.headerBadge,children:[h.jsxs("strong",{children:[L,":"]})," ",M]},L))}),A&&h.jsx("div",{className:"status-badge warning",style:{marginTop:8,marginBottom:0},children:f("ai_providers.config_disabled_badge")}),b.models?.length?h.jsxs("div",{className:H.modelTagList,children:[h.jsxs("span",{className:H.modelCountLabel,children:[f("ai_providers.codex_models_count"),": ",b.models.length]}),b.models.map(L=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:L.name}),L.alias&&L.alias!==L.name&&h.jsx("span",{className:H.modelAlias,children:L.alias})]},L.name))]}):null,k.length?h.jsxs("div",{className:H.excludedModelsSection,children:[h.jsx("div",{className:H.excludedModelsLabel,children:f("ai_providers.excluded_models_count",{count:k.length})}),h.jsx("div",{className:H.modelTagList,children:k.map(L=>h.jsx("span",{className:`${H.modelTag} ${H.excludedModelTag}`,children:h.jsx("span",{className:H.modelName,children:L})},L))})]}):null,h.jsxs("div",{className:H.cardStats,children:[h.jsxs("span",{className:`${H.statPill} ${H.statSuccess}`,children:[f("stats.success"),": ",v.success]}),h.jsxs("span",{className:`${H.statPill} ${H.statFailure}`,children:[f("stats.failure"),": ",v.failure]})]}),h.jsx(Gd,{statusData:T})]})}})})})}const Pc="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-0)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-1)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-fill-2)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-0'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-1'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-fill-2'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";function GJ({configs:t,keyStats:e,usageDetailsBySource:n,loading:i,disableControls:s,isSwitching:a,onAdd:o,onEdit:r,onDelete:c,onToggle:d}){const{t:f}=et(),m=s||i||a,g=s||i||a,y=S.useMemo(()=>{const b=new Map;return t.forEach(v=>{if(!v.apiKey)return;const x=_s({apiKey:v.apiKey,prefix:v.prefix});x.length&&b.set(v.apiKey,Na(sp(n,x)))}),b},[t,n]);return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:Pc,alt:"",className:H.cardTitleIcon}),f("ai_providers.gemini_title")]}),extra:h.jsx(me,{size:"sm",onClick:o,disabled:m,children:f("ai_providers.gemini_add_button")}),children:h.jsx(ap,{items:t,loading:i,keyField:b=>b.apiKey,emptyTitle:f("ai_providers.gemini_empty_title"),emptyDescription:f("ai_providers.gemini_empty_desc"),onEdit:r,onDelete:c,actionsDisabled:m,getRowDisabled:b=>Sa(b.excludedModels),renderExtraActions:(b,v)=>h.jsx(Si,{label:f("ai_providers.config_toggle_label"),checked:!Sa(b.excludedModels),disabled:g,onChange:x=>void d(v,x)}),renderContent:(b,v)=>{const x=np(b.apiKey,e,b.prefix),A=Object.entries(b.headers||{}),k=Sa(b.excludedModels),T=b.excludedModels??[],L=y.get(b.apiKey)||Na([]);return h.jsxs(S.Fragment,{children:[h.jsxs("div",{className:"item-title",children:[f("ai_providers.gemini_item_title")," #",v+1]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.api_key"),":"]}),h.jsx("span",{className:H.fieldValue,children:Ea(b.apiKey)})]}),b.priority!==void 0&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.priority"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.priority})]}),b.prefix&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.prefix"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.prefix})]}),b.baseUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.base_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.baseUrl})]}),b.proxyUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.proxy_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.proxyUrl})]}),A.length>0&&h.jsx("div",{className:H.headerBadgeList,children:A.map(([M,O])=>h.jsxs("span",{className:H.headerBadge,children:[h.jsxs("strong",{children:[M,":"]})," ",O]},M))}),k&&h.jsx("div",{className:"status-badge warning",style:{marginTop:8,marginBottom:0},children:f("ai_providers.config_disabled_badge")}),b.models?.length?h.jsxs("div",{className:H.modelTagList,children:[h.jsxs("span",{className:H.modelCountLabel,children:[f("ai_providers.gemini_models_count"),": ",b.models.length]}),b.models.map(M=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:M.name}),M.alias&&M.alias!==M.name&&h.jsx("span",{className:H.modelAlias,children:M.alias})]},M.name))]}):null,T.length?h.jsxs("div",{className:H.excludedModelsSection,children:[h.jsx("div",{className:H.excludedModelsLabel,children:f("ai_providers.excluded_models_count",{count:T.length})}),h.jsx("div",{className:H.modelTagList,children:T.map(M=>h.jsx("span",{className:`${H.modelTag} ${H.excludedModelTag}`,children:h.jsx("span",{className:H.modelName,children:M})},M))})]}):null,h.jsxs("div",{className:H.cardStats,children:[h.jsxs("span",{className:`${H.statPill} ${H.statSuccess}`,children:[f("stats.success"),": ",x.success]}),h.jsxs("span",{className:`${H.statPill} ${H.statFailure}`,children:[f("stats.failure"),": ",x.failure]})]}),h.jsx(Gd,{statusData:L})]})}})})})}const ak="data:image/svg+xml,%3csvg%20fill='%23000000'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e",ok="data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M21.55%2010.004a5.416%205.416%200%2000-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59%205.59%200%200010.831%201C8.39.995%206.224%202.546%205.473%204.838A5.553%205.553%200%20001.76%207.496a5.487%205.487%200%2000.691%206.5%205.416%205.416%200%2000.477%204.502c1.217%202.09%203.662%203.165%206.05%202.66A5.586%205.586%200%200013.168%2023c2.443.006%204.61-1.546%205.361-3.84a5.553%205.553%200%20003.715-2.66%205.488%205.488%200%2000-.693-6.497v.001zm-8.381%2011.558a4.199%204.199%200%2001-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71%200%2000.364-.623v-6.176l1.877%201.069c.02.01.033.029.036.05v5.115c-.003%202.274-1.87%204.118-4.174%204.123zM4.192%2017.78a4.059%204.059%200%2001-.498-2.763c.032.02.09.055.131.078l4.44%202.53c.225.13.504.13.73%200l5.42-3.088v2.138a.068.068%200%2001-.027.057L9.9%2019.288c-1.999%201.136-4.552.46-5.707-1.51h-.001zM3.023%208.216A4.15%204.15%200%20015.198%206.41l-.002.151v5.06a.711.711%200%2000.364.624l5.42%203.087-1.876%201.07a.067.067%200%2001-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417%203.54l-5.42-3.088L14.896%207.6a.067.067%200%2001.063-.006l4.489%202.557c1.998%201.14%202.683%203.662%201.529%205.633a4.163%204.163%200%2001-2.174%201.807V12.38a.71.71%200%2000-.363-.623zm1.867-2.773a6.04%206.04%200%2000-.132-.078l-4.44-2.53a.731.731%200%2000-.729%200l-5.42%203.088V7.325a.068.068%200%2001.027-.057L14.1%204.713c2-1.137%204.555-.46%205.707%201.513.487.833.664%201.809.499%202.757h.001zm-11.741%203.81l-1.877-1.068a.065.065%200%2001-.036-.051V6.559c.001-2.277%201.873-4.122%204.181-4.12.976%200%201.92.338%202.671.954-.034.018-.092.05-.131.073l-4.44%202.53a.71.71%200%2000-.365.623l-.003%206.173v.002zm1.02-2.168L12%209.25l2.414%201.375v2.75L12%2014.75l-2.415-1.375v-2.75z'%3e%3c/path%3e%3c/svg%3e";function $J({configs:t,keyStats:e,usageDetailsBySource:n,loading:i,disableControls:s,isSwitching:a,resolvedTheme:o,onAdd:r,onEdit:c,onDelete:d}){const{t:f}=et(),m=s||i||a,g=S.useMemo(()=>{const y=new Map;return t.forEach(b=>{const v=new Set;_s({prefix:b.prefix}).forEach(A=>v.add(A)),(b.apiKeyEntries||[]).forEach(A=>{_s({apiKey:A.apiKey}).forEach(k=>v.add(k))});const x=v.size?sp(n,v):[];y.set(b.name,Na(x))}),y},[t,n]);return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:o==="dark"?ok:ak,alt:"",className:H.cardTitleIcon}),f("ai_providers.openai_title")]}),extra:h.jsx(me,{size:"sm",onClick:r,disabled:m,children:f("ai_providers.openai_add_button")}),children:h.jsx(ap,{items:t,loading:i,keyField:(y,b)=>`openai-provider-${b}`,emptyTitle:f("ai_providers.openai_empty_title"),emptyDescription:f("ai_providers.openai_empty_desc"),onEdit:c,onDelete:d,actionsDisabled:m,renderContent:y=>{const b=N$(y.apiKeyEntries,e,y.prefix),v=Object.entries(y.headers||{}),x=y.apiKeyEntries||[],A=g.get(y.name)||Na([]);return h.jsxs(S.Fragment,{children:[h.jsx("div",{className:"item-title",children:y.name}),y.priority!==void 0&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.priority"),":"]}),h.jsx("span",{className:H.fieldValue,children:y.priority})]}),y.prefix&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.prefix"),":"]}),h.jsx("span",{className:H.fieldValue,children:y.prefix})]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.base_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:y.baseUrl})]}),v.length>0&&h.jsx("div",{className:H.headerBadgeList,children:v.map(([k,T])=>h.jsxs("span",{className:H.headerBadge,children:[h.jsxs("strong",{children:[k,":"]})," ",T]},k))}),x.length>0&&h.jsxs("div",{className:H.apiKeyEntriesSection,children:[h.jsxs("div",{className:H.apiKeyEntriesLabel,children:[f("ai_providers.openai_keys_count"),": ",x.length]}),h.jsx("div",{className:H.apiKeyEntryList,children:x.map((k,T)=>{const L=np(k.apiKey,e);return h.jsxs("div",{className:H.apiKeyEntryCard,children:[h.jsx("span",{className:H.apiKeyEntryIndex,children:T+1}),h.jsx("span",{className:H.apiKeyEntryKey,children:Ea(k.apiKey)}),k.proxyUrl&&h.jsx("span",{className:H.apiKeyEntryProxy,children:k.proxyUrl}),h.jsxs("div",{className:H.apiKeyEntryStats,children:[h.jsxs("span",{className:`${H.apiKeyEntryStat} ${H.apiKeyEntryStatSuccess}`,children:[h.jsx(Kw,{size:12})," ",L.success]}),h.jsxs("span",{className:`${H.apiKeyEntryStat} ${H.apiKeyEntryStatFailure}`,children:[h.jsx(Xc,{size:12})," ",L.failure]})]})]},T)})})]}),h.jsxs("div",{className:H.fieldRow,style:{marginTop:"8px"},children:[h.jsxs("span",{className:H.fieldLabel,children:[f("ai_providers.openai_models_count"),":"]}),h.jsx("span",{className:H.fieldValue,children:y.models?.length||0})]}),y.models?.length?h.jsx("div",{className:H.modelTagList,children:y.models.map(k=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:k.name}),k.alias&&k.alias!==k.name&&h.jsx("span",{className:H.modelAlias,children:k.alias})]},k.name))}):null,y.testModel&&h.jsxs("div",{className:H.fieldRow,children:[h.jsx("span",{className:H.fieldLabel,children:"Test Model:"}),h.jsx("span",{className:H.fieldValue,children:y.testModel})]}),h.jsxs("div",{className:H.cardStats,children:[h.jsxs("span",{className:`${H.statPill} ${H.statSuccess}`,children:[f("stats.success"),": ",b.success]}),h.jsxs("span",{className:`${H.statPill} ${H.statFailure}`,children:[f("stats.failure"),": ",b.failure]})]}),h.jsx(Gd,{statusData:A})]})}})})})}const Wy="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24px'%20height='24px'%3e%3cpath%20d='M20,13.89A.77.77,0,0,0,19,13.73l-7,5.14v.22a.72.72,0,1,1,0,1.43v0a.74.74,0,0,0,.45-.15l7.41-5.47A.76.76,0,0,0,20,13.89Z'%20style='fill:%23669df6'/%3e%3cpath%20d='M12,20.52a.72.72,0,0,1,0-1.43h0v-.22L5,13.73a.76.76,0,0,0-1,.16.74.74,0,0,0,.16,1l7.41,5.47a.73.73,0,0,0,.44.15v0Z'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M12,18.34a1.47,1.47,0,1,0,1.47,1.47A1.47,1.47,0,0,0,12,18.34Zm0,2.18a.72.72,0,1,1,.72-.71A.71.71,0,0,1,12,20.52Z'%20style='fill:%234285f4'/%3e%3cpath%20d='M6,6.11a.76.76,0,0,1-.75-.75V3.48a.76.76,0,1,1,1.51,0V5.36A.76.76,0,0,1,6,6.11Z'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='12'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='9.79'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='5.98'%20cy='7.57'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M18,8.31a.76.76,0,0,1-.75-.76V5.67a.75.75,0,1,1,1.5,0V7.55A.75.75,0,0,1,18,8.31Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='12.01'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='9.76'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='18.02'%20cy='3.48'%20r='0.76'%20style='fill:%234285f4'/%3e%3cpath%20d='M12,15a.76.76,0,0,1-.75-.75V12.34a.76.76,0,0,1,1.51,0v1.89A.76.76,0,0,1,12,15Z'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='16.45'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='10.14'%20r='0.76'%20style='fill:%23669df6'/%3e%3ccircle%20cx='12'%20cy='7.92'%20r='0.76'%20style='fill:%23669df6'/%3e%3cpath%20d='M15,10.54a.76.76,0,0,1-.75-.75V7.91a.76.76,0,1,1,1.51,0V9.79A.76.76,0,0,1,15,10.54Z'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='5.69'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='14.19'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='15.01'%20cy='11.97'%20r='0.76'%20style='fill:%234285f4'/%3e%3ccircle%20cx='8.99'%20cy='14.19'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='7.92'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3ccircle%20cx='8.99'%20cy='5.69'%20r='0.76'%20style='fill:%23aecbfa'/%3e%3cpath%20d='M9,12.73A.76.76,0,0,1,8.24,12V10.1a.75.75,0,1,1,1.5,0V12A.75.75,0,0,1,9,12.73Z'%20style='fill:%23aecbfa'/%3e%3c/svg%3e";function XJ({configs:t,keyStats:e,usageDetailsBySource:n,loading:i,disableControls:s,isSwitching:a,onAdd:o,onEdit:r,onDelete:c,onToggle:d}){const{t:f}=et(),m=s||i||a,g=s||i||a,y=S.useMemo(()=>{const b=new Map;return t.forEach(v=>{if(!v.apiKey)return;const x=_s({apiKey:v.apiKey,prefix:v.prefix});x.length&&b.set(v.apiKey,Na(sp(n,x)))}),b},[t,n]);return h.jsx(h.Fragment,{children:h.jsx(Dt,{title:h.jsxs("span",{className:H.cardTitle,children:[h.jsx("img",{src:Wy,alt:"",className:H.cardTitleIcon}),f("ai_providers.vertex_title")]}),extra:h.jsx(me,{size:"sm",onClick:o,disabled:m,children:f("ai_providers.vertex_add_button")}),children:h.jsx(ap,{items:t,loading:i,keyField:b=>b.apiKey,emptyTitle:f("ai_providers.vertex_empty_title"),emptyDescription:f("ai_providers.vertex_empty_desc"),onEdit:r,onDelete:c,actionsDisabled:m,getRowDisabled:b=>Sa(b.excludedModels),renderExtraActions:(b,v)=>h.jsx(Si,{label:f("ai_providers.config_toggle_label"),checked:!Sa(b.excludedModels),disabled:g,onChange:x=>void d(v,x)}),renderContent:(b,v)=>{const x=np(b.apiKey,e,b.prefix),A=Object.entries(b.headers||{}),k=Sa(b.excludedModels),T=b.excludedModels??[],L=y.get(b.apiKey)||Na([]);return h.jsxs(S.Fragment,{children:[h.jsxs("div",{className:"item-title",children:[f("ai_providers.vertex_item_title")," #",v+1]}),h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.api_key"),":"]}),h.jsx("span",{className:H.fieldValue,children:Ea(b.apiKey)})]}),b.prefix&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.prefix"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.prefix})]}),b.baseUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.base_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.baseUrl})]}),b.proxyUrl&&h.jsxs("div",{className:H.fieldRow,children:[h.jsxs("span",{className:H.fieldLabel,children:[f("common.proxy_url"),":"]}),h.jsx("span",{className:H.fieldValue,children:b.proxyUrl})]}),A.length>0&&h.jsx("div",{className:H.headerBadgeList,children:A.map(([M,O])=>h.jsxs("span",{className:H.headerBadge,children:[h.jsxs("strong",{children:[M,":"]})," ",O]},M))}),k&&h.jsx("div",{className:"status-badge warning",style:{marginTop:8,marginBottom:0},children:f("ai_providers.config_disabled_badge")}),b.models?.length?h.jsxs("div",{className:H.modelTagList,children:[h.jsxs("span",{className:H.modelCountLabel,children:[f("ai_providers.vertex_models_count"),": ",b.models.length]}),b.models.map(M=>h.jsxs("span",{className:H.modelTag,children:[h.jsx("span",{className:H.modelName,children:M.name}),M.alias&&h.jsx("span",{className:H.modelAlias,children:M.alias})]},`${M.name}-${M.alias||"default"}`))]}):null,T.length?h.jsxs("div",{className:H.excludedModelsSection,children:[h.jsx("div",{className:H.excludedModelsLabel,children:f("ai_providers.excluded_models_count",{count:T.length})}),h.jsx("div",{className:H.modelTagList,children:T.map(M=>h.jsx("span",{className:`${H.modelTag} ${H.excludedModelTag}`,children:h.jsx("span",{className:H.modelName,children:M})},M))})]}):null,h.jsxs("div",{className:H.cardStats,children:[h.jsxs("span",{className:`${H.statPill} ${H.statSuccess}`,children:[f("stats.success"),": ",x.success]}),h.jsxs("span",{className:`${H.statPill} ${H.statFailure}`,children:[f("stats.failure"),": ",x.failure]})]}),h.jsx(Gd,{statusData:L})]})}})})})}const QJ="ProviderNav-module__navContainer___Ym-Eg",YJ="ProviderNav-module__navList___7nsum",JJ="ProviderNav-module__indicator___Ta8ib",ZJ="ProviderNav-module__indicatorVisible___U7LEL",eZ="ProviderNav-module__indicatorNoTransition___dtZdn",tZ="ProviderNav-module__navItem___LRkPI",nZ="ProviderNav-module__active___Jo0X6",iZ="ProviderNav-module__icon___X-NJQ",ol={navContainer:QJ,navList:YJ,indicator:JJ,indicatorVisible:ZJ,indicatorNoTransition:eZ,navItem:tZ,active:nZ,icon:iZ},l1=[{id:"gemini",label:"Gemini",getIcon:()=>Pc},{id:"codex",label:"Codex",getIcon:()=>Vy},{id:"claude",label:"Claude",getIcon:()=>ip},{id:"vertex",label:"Vertex",getIcon:()=>Wy},{id:"ampcode",label:"Ampcode",getIcon:()=>fD},{id:"openai",label:"OpenAI",getIcon:t=>t==="dark"?ok:ak}],c1=24;function sZ(){const t=Qn(),e=Wd(),n=e?e.status==="current":!0,i=Aa(P=>P.resolvedTheme),[s,a]=S.useState(null),o=S.useRef(null),r=S.useRef(null),c=S.useRef(null),d=S.useRef({gemini:null,codex:null,claude:null,vertex:null,ampcode:null,openai:null}),[f,m]=S.useState(null),[g,y]=S.useState(!1),b=S.useRef(!1),v=t.pathname.length>1&&t.pathname.endsWith("/")?t.pathname.slice(0,-1):t.pathname,x=n&&v==="/ai-providers",A=S.useCallback(()=>{const P=document.querySelector(".main-header");if(P)return P.getBoundingClientRect().height;const E=getComputedStyle(document.documentElement).getPropertyValue("--header-height"),R=Number.parseFloat(E);return Number.isFinite(R)?R:0},[]),k=S.useCallback(()=>{if(o.current&&document.contains(o.current))return o.current;const P=document.querySelector(".content");return o.current=P,P},[]),T=S.useCallback(()=>window.matchMedia("(max-width: 768px)").matches?window:k()??window,[k]),L=S.useCallback(()=>{const P=T();if(!P)return;const E=P instanceof HTMLElement,R=E?0:A(),D=(E?P.getBoundingClientRect().top:0)+R+c1+1;let Q=null;for(const G of l1){const B=document.getElementById(`provider-${G.id}`);if(!B)continue;if(B.getBoundingClientRect().top<=D){Q=G.id;continue}if(Q)break}Q||(Q=l1.find(B=>document.getElementById(`provider-${B.id}`))?.id??null),a(Q)},[A,T]);S.useEffect(()=>{if(!x)return;const P=k();window.addEventListener("scroll",L,{passive:!0}),P?.addEventListener("scroll",L,{passive:!0}),window.addEventListener("resize",L);const E=requestAnimationFrame(L);return()=>{cancelAnimationFrame(E),window.removeEventListener("scroll",L),window.removeEventListener("resize",L),P?.removeEventListener("scroll",L)}},[k,L,x]);const M=S.useCallback(P=>{if(!P){m(null);return}const E=d.current[P];E&&(m({x:E.offsetLeft,y:E.offsetTop,width:E.offsetWidth,height:E.offsetHeight}),b.current||(b.current=!0,requestAnimationFrame(()=>y(!0))))},[]);S.useLayoutEffect(()=>{if(!x)return;const P=requestAnimationFrame(()=>M(s));return()=>cancelAnimationFrame(P)},[s,x,M]),S.useLayoutEffect(()=>{if(!x)return;const P=c.current;if(!P)return;const E=()=>{const z=P.getBoundingClientRect().height;document.documentElement.style.setProperty("--provider-nav-height",`${z}px`)};E(),window.addEventListener("resize",E);const R=typeof ResizeObserver>"u"?null:new ResizeObserver(E);return R?.observe(P),()=>{R?.disconnect(),window.removeEventListener("resize",E),document.documentElement.style.removeProperty("--provider-nav-height")}},[x]);const O=P=>{const E=T(),R=document.getElementById(`provider-${P}`);if(!R||!E)return;if(a(P),M(P),!(E instanceof HTMLElement)){const G=A(),B=R.getBoundingClientRect().top+window.scrollY,I=Math.max(0,B-G-c1);window.scrollTo({top:I,behavior:"smooth"});return}const z=E.getBoundingClientRect(),D=R.getBoundingClientRect(),Q=E.scrollTop+(D.top-z.top)-c1;E.scrollTo({top:Q,behavior:"smooth"})};S.useEffect(()=>{if(!x)return;const P=()=>M(s);return window.addEventListener("resize",P),()=>{window.removeEventListener("resize",P)}},[s,x,M]);const N=h.jsx("div",{className:ol.navContainer,ref:c,children:h.jsxs("div",{className:ol.navList,ref:r,children:[h.jsx("div",{className:[ol.indicator,f?ol.indicatorVisible:"",g?"":ol.indicatorNoTransition].filter(Boolean).join(" "),style:f?{transform:`translate3d(${f.x}px, ${f.y}px, 0)`,width:f.width,height:f.height}:void 0}),l1.map(P=>{const E=s===P.id;return h.jsx("button",{className:`${ol.navItem} ${E?ol.active:""}`,ref:R=>{d.current[P.id]=R},onClick:()=>O(P.id),title:P.label,type:"button","aria-label":P.label,"aria-pressed":E,children:h.jsx("img",{src:P.getIcon(i),alt:P.label,className:ol.icon})},P.id)})]})});return typeof document>"u"||!x?null:Eo.createPortal(N,document.body)}function mD(t,e){const n=S.useRef(null);S.useEffect(()=>{n.current=t},[t]),S.useEffect(()=>{if(e===null)return;const s=setInterval(()=>{n.current?.()},e);return()=>clearInterval(s)},[e])}const aZ={bySource:{},byAuthIndex:{}},oZ=[],rZ=(t={})=>{const e=t.enabled??!0,n=ns(c=>e?c.keyStats:aZ),i=ns(c=>e?c.usageDetails:oZ),s=ns(c=>e?c.loading:!1),a=ns(c=>c.loadUsageStats),o=S.useCallback(async()=>{await a({staleTimeMs:Cr})},[a]),r=S.useCallback(async()=>{await a({force:!0,staleTimeMs:Cr})},[a]);return mD(()=>{r().catch(()=>{})},e?24e4:null),{keyStats:n,usageDetails:i,loadKeyStats:o,refreshKeyStats:r,isLoading:s}};let _c=null;const pD=async()=>{_c&&await _c()},op=(t,e=!0)=>{const n=S.useRef(null);S.useEffect(()=>{const i=n.current;if(n.current=t??null,!e||!t){i&&_c===i&&(_c=null);return}return _c=t,()=>{_c===t&&(_c=null)}},[e,t])};function SO(){const{t}=et(),e=Ri(),{showNotification:n,showConfirmation:i}=_n(),s=Aa(te=>te.resolvedTheme),a=nn(te=>te.connectionStatus),o=Bt(te=>te.config),r=Bt(te=>te.fetchConfig),c=Bt(te=>te.updateConfigValue),d=Bt(te=>te.clearCache),f=Bt(te=>te.isCacheValid),m=S.useRef(!1),[g,y]=S.useState(()=>!f()),[b,v]=S.useState(""),[x,A]=S.useState(()=>o?.geminiApiKeys||[]),[k,T]=S.useState(()=>o?.codexApiKeys||[]),[L,M]=S.useState(()=>o?.claudeApiKeys||[]),[O,N]=S.useState(()=>o?.vertexApiKeys||[]),[P,E]=S.useState(()=>o?.openaiCompatibility||[]),[R,z]=S.useState(null),D=a!=="connected",Q=!!R,G=Wd(),B=G?G.status==="current":!0,{keyStats:I,usageDetails:V,loadKeyStats:K,refreshKeyStats:$}=rZ({enabled:B}),X=S.useMemo(()=>qJ(V),[V]),U=te=>te instanceof Error?te.message:typeof te=="string"?te:"",q=S.useCallback(async()=>{f()||y(!0),v("");try{const[fe,re,ue]=await Promise.allSettled([r(),yi.getVertexConfigs(),qa.getAmpcode()]);if(fe.status!=="fulfilled")throw fe.reason;const ee=fe.value;A(ee?.geminiApiKeys||[]),T(ee?.codexApiKeys||[]),M(ee?.claudeApiKeys||[]),N(ee?.vertexApiKeys||[]),E(ee?.openaiCompatibility||[]),re.status==="fulfilled"&&(N(re.value||[]),c("vertex-api-key",re.value||[]),d("vertex-api-key")),ue.status==="fulfilled"&&(c("ampcode",ue.value),d("ampcode"))}catch(fe){const re=U(fe)||t("notification.refresh_failed");v(re)}finally{y(!1)}},[d,r,f,t,c]);S.useEffect(()=>{m.current||(m.current=!0,q())},[q]),S.useEffect(()=>{B&&K().catch(()=>{})},[B,K]),S.useEffect(()=>{o?.geminiApiKeys&&A(o.geminiApiKeys),o?.codexApiKeys&&T(o.codexApiKeys),o?.claudeApiKeys&&M(o.claudeApiKeys),o?.vertexApiKeys&&N(o.vertexApiKeys),o?.openaiCompatibility&&E(o.openaiCompatibility)},[o?.geminiApiKeys,o?.codexApiKeys,o?.claudeApiKeys,o?.vertexApiKeys,o?.openaiCompatibility]),op($,B);const Y=S.useCallback(te=>{e(te,{state:{fromAiProviders:!0}})},[e]),oe=async te=>{const fe=x[te];fe&&i({title:t("ai_providers.gemini_delete_title",{defaultValue:"Delete Gemini Key"}),message:t("ai_providers.gemini_delete_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{try{await yi.deleteGeminiKey(fe.apiKey,fe.baseUrl);const re=x.filter((ue,ee)=>ee!==te);A(re),c("gemini-api-key",re),d("gemini-api-key"),n(t("notification.gemini_key_deleted"),"success")}catch(re){const ue=U(re);n(`${t("notification.delete_failed")}: ${ue}`,"error")}}})},se=async(te,fe,re)=>{if(te==="gemini"){const Xe=x[fe];if(!Xe)return;const Ot=`${te}:${Xe.apiKey}`;z(Ot);const zt=x,sn=re?rO(Xe.excludedModels):oO(Xe.excludedModels),an={...Xe,excludedModels:sn},Fe=zt.map((mt,je)=>je===fe?an:mt);A(Fe),c("gemini-api-key",Fe),d("gemini-api-key");try{await yi.saveGeminiKeys(Fe),n(t(re?"notification.config_enabled":"notification.config_disabled"),"success")}catch(mt){const je=U(mt);A(zt),c("gemini-api-key",zt),d("gemini-api-key"),n(`${t("notification.update_failed")}: ${je}`,"error")}finally{z(null)}return}const ue=te==="codex"?k:te==="claude"?L:O,ee=ue[fe];if(!ee)return;const Ie=`${te}:${ee.apiKey}`;z(Ie);const Ke=ue,ht=re?rO(ee.excludedModels):oO(ee.excludedModels),wt={...ee,excludedModels:ht},ft=Ke.map((Xe,Ot)=>Ot===fe?wt:Xe);te==="codex"?(T(ft),c("codex-api-key",ft),d("codex-api-key")):te==="claude"?(M(ft),c("claude-api-key",ft),d("claude-api-key")):(N(ft),c("vertex-api-key",ft),d("vertex-api-key"));try{te==="codex"?await yi.saveCodexConfigs(ft):te==="claude"?await yi.saveClaudeConfigs(ft):await yi.saveVertexConfigs(ft),n(t(re?"notification.config_enabled":"notification.config_disabled"),"success")}catch(Xe){const Ot=U(Xe);te==="codex"?(T(Ke),c("codex-api-key",Ke),d("codex-api-key")):te==="claude"?(M(Ke),c("claude-api-key",Ke),d("claude-api-key")):(N(Ke),c("vertex-api-key",Ke),d("vertex-api-key")),n(`${t("notification.update_failed")}: ${Ot}`,"error")}finally{z(null)}},F=async(te,fe)=>{const ue=(te==="codex"?k:L)[fe];ue&&i({title:t(`ai_providers.${te}_delete_title`,{defaultValue:`Delete ${te==="codex"?"Codex":"Claude"} Config`}),message:t(`ai_providers.${te}_delete_confirm`),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{try{if(te==="codex"){await yi.deleteCodexConfig(ue.apiKey,ue.baseUrl);const ee=k.filter((Ie,Ke)=>Ke!==fe);T(ee),c("codex-api-key",ee),d("codex-api-key"),n(t("notification.codex_config_deleted"),"success")}else{await yi.deleteClaudeConfig(ue.apiKey,ue.baseUrl);const ee=L.filter((Ie,Ke)=>Ke!==fe);M(ee),c("claude-api-key",ee),d("claude-api-key"),n(t("notification.claude_config_deleted"),"success")}}catch(ee){const Ie=U(ee);n(`${t("notification.delete_failed")}: ${Ie}`,"error")}}})},Z=async te=>{const fe=O[te];fe&&i({title:t("ai_providers.vertex_delete_title",{defaultValue:"Delete Vertex Config"}),message:t("ai_providers.vertex_delete_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{try{await yi.deleteVertexConfig(fe.apiKey,fe.baseUrl);const re=O.filter((ue,ee)=>ee!==te);N(re),c("vertex-api-key",re),d("vertex-api-key"),n(t("notification.vertex_config_deleted"),"success")}catch(re){const ue=U(re);n(`${t("notification.delete_failed")}: ${ue}`,"error")}}})},J=async te=>{const fe=P[te];fe&&i({title:t("ai_providers.openai_delete_title",{defaultValue:"Delete OpenAI Provider"}),message:t("ai_providers.openai_delete_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{try{await yi.deleteOpenAIProvider(fe.name);const re=P.filter((ue,ee)=>ee!==te);E(re),c("openai-compatibility",re),d("openai-compatibility"),n(t("notification.openai_provider_deleted"),"success")}catch(re){const ue=U(re);n(`${t("notification.delete_failed")}: ${ue}`,"error")}}})};return h.jsxs("div",{className:H.container,children:[h.jsx("h1",{className:H.pageTitle,children:t("ai_providers.title")}),h.jsxs("div",{className:H.content,children:[b&&h.jsx("div",{className:"error-box",children:b}),h.jsx("div",{id:"provider-gemini",children:h.jsx(GJ,{configs:x,keyStats:I,usageDetailsBySource:X,loading:g,disableControls:D,isSwitching:Q,onAdd:()=>Y("/ai-providers/gemini/new"),onEdit:te=>Y(`/ai-providers/gemini/${te}`),onDelete:oe,onToggle:(te,fe)=>void se("gemini",te,fe)})}),h.jsx("div",{id:"provider-codex",children:h.jsx(WJ,{configs:k,keyStats:I,usageDetailsBySource:X,loading:g,disableControls:D,isSwitching:Q,onAdd:()=>Y("/ai-providers/codex/new"),onEdit:te=>Y(`/ai-providers/codex/${te}`),onDelete:te=>void F("codex",te),onToggle:(te,fe)=>void se("codex",te,fe)})}),h.jsx("div",{id:"provider-claude",children:h.jsx(VJ,{configs:L,keyStats:I,usageDetailsBySource:X,loading:g,disableControls:D,isSwitching:Q,onAdd:()=>Y("/ai-providers/claude/new"),onEdit:te=>Y(`/ai-providers/claude/${te}`),onDelete:te=>void F("claude",te),onToggle:(te,fe)=>void se("claude",te,fe)})}),h.jsx("div",{id:"provider-vertex",children:h.jsx(XJ,{configs:O,keyStats:I,usageDetailsBySource:X,loading:g,disableControls:D,isSwitching:Q,onAdd:()=>Y("/ai-providers/vertex/new"),onEdit:te=>Y(`/ai-providers/vertex/${te}`),onDelete:Z,onToggle:(te,fe)=>void se("vertex",te,fe)})}),h.jsx("div",{id:"provider-ampcode",children:h.jsx(jJ,{config:o?.ampcode,loading:g,disableControls:D,isSwitching:Q,onEdit:()=>Y("/ai-providers/ampcode")})}),h.jsx("div",{id:"provider-openai",children:h.jsx($J,{configs:P,keyStats:I,usageDetailsBySource:X,loading:g,disableControls:D,isSwitching:Q,resolvedTheme:s,onAdd:()=>Y("/ai-providers/openai/new"),onEdit:te=>Y(`/ai-providers/openai/${te}`),onDelete:J})})]}),h.jsx(sZ,{})]})}function $d({entries:t,onChange:e,addLabel:n,disabled:i=!1,namePlaceholder:s="model-name",aliasPlaceholder:a="alias (optional)",hideAddButton:o=!1,onAdd:r,className:c="",rowClassName:d="",inputClassName:f="",removeButtonClassName:m="",removeButtonTitle:g="Remove",removeButtonAriaLabel:y="Remove"}){const b=t.length?t:[{name:"",alias:""}],v=["header-input-list",c].filter(Boolean).join(" "),x=["input",f].filter(Boolean).join(" "),A=["header-input-row",d].filter(Boolean).join(" "),k=(M,O,N)=>{const P=b.map((E,R)=>R===M?{...E,[O]:N}:E);e(P)},T=()=>{r?r():e([...b,{name:"",alias:""}])},L=M=>{const O=b.filter((N,P)=>P!==M);e(O.length?O:[{name:"",alias:""}])};return h.jsxs("div",{className:v,children:[b.map((M,O)=>h.jsx(S.Fragment,{children:h.jsxs("div",{className:A,children:[h.jsx("input",{className:x,placeholder:s,value:M.name,onChange:N=>k(O,"name",N.target.value),disabled:i}),h.jsx("span",{className:"header-separator",children:"→"}),h.jsx("input",{className:x,placeholder:a,value:M.alias,onChange:N=>k(O,"alias",N.target.value),disabled:i}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>L(O),disabled:i||b.length<=1,className:m,title:g,"aria-label":y,children:h.jsx(Xc,{size:14})})]})},O)),!o&&n&&h.jsx(me,{variant:"secondary",size:"sm",onClick:T,disabled:i,className:"align-start",children:n})]})}const lZ=28,cZ=90,wO=1.2;function Do({enabled:t=!0,edgeSize:e=lZ,threshold:n=cZ,onBack:i}){const s=S.useRef(null),a=S.useRef(null);return S.useEffect(()=>{if(!t)return;const o=s.current;if(!o)return;const r=()=>{a.current=null},c=g=>{const y=a.current;if(!y?.active||g.pointerId!==y.pointerId)return;const b=g.clientX-y.startX,v=g.clientY-y.startY;Math.abs(v)>Math.abs(b)*wO&&r()},d=g=>{const y=a.current;if(!y?.active||g.pointerId!==y.pointerId)return;const b=g.clientX-y.startX,v=g.clientY-y.startY,x=Math.abs(b)>Math.abs(v)*wO;r(),b>=n&&x&&i()},f=g=>{const y=a.current;y?.active&&g.pointerId===y.pointerId&&r()},m=g=>{g.pointerType==="touch"&&g.isPrimary&&(g.clientX>e||(a.current={pointerId:g.pointerId,startX:g.clientX,startY:g.clientY,active:!0}))};return o.addEventListener("pointerdown",m,{passive:!0}),window.addEventListener("pointermove",c,{passive:!0}),window.addEventListener("pointerup",d,{passive:!0}),window.addEventListener("pointercancel",f,{passive:!0}),()=>{o.removeEventListener("pointerdown",m),window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",f)}},[e,t,i,n]),s}function Xd(t){const{enabled:e=!0,shouldBlock:n,dialog:i}=t,{showConfirmation:s}=_n(),a=S.useRef(""),o=S.useRef(0),r=S.useRef(""),c=Qn(),d=S.useCallback(()=>{o.current=Date.now()+2e3,r.current=""},[]),f=S.useCallback(y=>{if(!e)return!1;const b=Date.now();if(o.current>b){const v=`${y.nextLocation.pathname}${y.nextLocation.search}${y.nextLocation.hash}`;if(r.current||(r.current=v),r.current===v)return!1}else o.current!==0&&(o.current=0,r.current="");return typeof n=="function"?n(y):n},[e,n]),m=X9(f);S.useEffect(()=>{o.current!==0&&(o.current=0,r.current="")},[c.key]);const g=S.useMemo(()=>m.state!=="blocked"||!m.location?"":`${m.location.pathname}${m.location.search}${m.location.hash}`,[m.location,m.state]);return S.useEffect(()=>{if(m.state!=="blocked"){a.current="";return}!g||a.current===g||(a.current=g,s({title:i.title,message:i.message,confirmText:i.confirmText,cancelText:i.cancelText,variant:i.variant??"danger",onConfirm:()=>m.proceed(),onCancel:()=>m.reset()}))},[g,m,i,s]),{allowNextNavigation:d}}function Uc({size:t=20,className:e=""}){return h.jsx("div",{className:`loading-spinner${e?` ${e}`:""}`,style:{width:t,height:t,borderWidth:t/7},role:"status","aria-live":"polite"})}const uZ="SecondaryScreenShell-module__container___9DAwq",dZ="SecondaryScreenShell-module__topBar___vHzq4",hZ="SecondaryScreenShell-module__topBarTitle___Q8LCy",fZ="SecondaryScreenShell-module__backButton___d6Zgy",mZ="SecondaryScreenShell-module__backIcon___R8Iyn",pZ="SecondaryScreenShell-module__backText___CODk7",gZ="SecondaryScreenShell-module__rightSlot___ZvWJR",_Z="SecondaryScreenShell-module__loadingState___4Jbsa",yZ="SecondaryScreenShell-module__content___nVk3R",bZ="SecondaryScreenShell-module__contentWithFloatingAction___4gXgb",vZ="SecondaryScreenShell-module__floatingActionContainer___sSKk-",xZ="SecondaryScreenShell-module__floatingActionSurface___Wfab-",ma={container:uZ,topBar:dZ,topBarTitle:hZ,backButton:fZ,backIcon:mZ,backText:pZ,rightSlot:gZ,loadingState:_Z,content:yZ,contentWithFloatingAction:bZ,floatingActionContainer:vZ,floatingActionSurface:xZ},Fo=S.forwardRef(function({title:e,onBack:n,backLabel:i="Back",backAriaLabel:s,rightAction:a,hideTopBarBackButton:o=!1,hideTopBarRightAction:r=!1,floatingAction:c,isLoading:d=!1,loadingLabel:f="Loading...",className:m="",contentClassName:g="",children:y},b){const v=[ma.container,m].filter(Boolean).join(" "),x=[ma.content,c?ma.contentWithFloatingAction:"",g].filter(Boolean).join(" "),A=typeof e=="string"?e:void 0,k=s??i,T=Wd(),L=T?T.isCurrentLayer:!0,M=!!c&&L,O=S.useRef(null);return S.useLayoutEffect(()=>{if(!M)return;const N=O.current;if(!N)return;const P=()=>{const R=N.getBoundingClientRect().height;document.documentElement.style.setProperty("--secondary-shell-floating-action-height",`${R}px`)};P(),window.addEventListener("resize",P);const E=typeof ResizeObserver>"u"?null:new ResizeObserver(P);return E?.observe(N),()=>{E?.disconnect(),window.removeEventListener("resize",P),document.documentElement.style.removeProperty("--secondary-shell-floating-action-height")}},[M]),h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:v,ref:b,children:[h.jsxs("div",{className:ma.topBar,children:[n&&!o?h.jsxs(me,{variant:"ghost",size:"sm",onClick:n,className:ma.backButton,"aria-label":k,children:[h.jsx("span",{className:ma.backIcon,children:h.jsx(Wq,{size:18})}),h.jsx("span",{className:ma.backText,children:i})]}):h.jsx("div",{}),h.jsx("div",{className:ma.topBarTitle,title:A,children:e}),h.jsx("div",{className:ma.rightSlot,children:r?null:a})]}),d?h.jsxs("div",{className:ma.loadingState,children:[h.jsx(Uc,{size:16}),h.jsx("span",{children:f})]}):h.jsx("div",{className:x,children:y})]}),M&&typeof document<"u"?Eo.createPortal(h.jsx("div",{className:ma.floatingActionContainer,children:h.jsx("div",{className:ma.floatingActionSurface,ref:O,children:c})}),document.body):null]})});function Qd(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1)if(t[n]!==e[n])return!1;return!0}function Yd(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.key!==s.key||i.value!==s.value)return!1}return!0}function rp(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.name!==s.name||i.alias!==s.alias)return!1}return!0}const SZ="AiProvidersEditLayout-module__content___v2E8m",wZ="AiProvidersEditLayout-module__floatingActions___PxOCK",kZ="AiProvidersEditLayout-module__floatingBackButton___8aBq-",CZ="AiProvidersEditLayout-module__floatingSaveButton___mkAOu",AZ="AiProvidersEditLayout-module__upstreamApiKeyRow___z09Am",NZ="AiProvidersEditLayout-module__upstreamApiKeyHint___xz0n6",TZ="AiProvidersEditLayout-module__ampcodeUpstreamMappingsHeader___QmHOa",MZ="AiProvidersEditLayout-module__ampcodeUpstreamMappingsList___L5-l5",LZ="AiProvidersEditLayout-module__ampcodeUpstreamMappingCard___bQzJ0",OZ="AiProvidersEditLayout-module__ampcodeUpstreamMappingCardTop___V69Ba",PZ="AiProvidersEditLayout-module__ampcodeUpstreamMappingTitle___ofJgZ",Wt={content:SZ,floatingActions:wZ,floatingBackButton:kZ,floatingSaveButton:CZ,upstreamApiKeyRow:AZ,upstreamApiKeyHint:NZ,ampcodeUpstreamMappingsHeader:TZ,ampcodeUpstreamMappingsList:MZ,ampcodeUpstreamMappingCard:LZ,ampcodeUpstreamMappingCardTop:OZ,ampcodeUpstreamMappingTitle:PZ},u1=t=>t instanceof Error?t.message:typeof t=="string"?t:"",gD=t=>(t??[]).reduce((e,n)=>{const i=String(n?.name??"").trim(),s=String(n?.alias??"").trim();return!i&&!s||e.push({from:i,to:s}),e},[]),t_=t=>({upstreamUrl:String(t.upstreamUrl??"").trim(),upstreamApiKey:String(t.upstreamApiKey??"").trim(),forceModelMappings:!!t.forceModelMappings,upstreamApiKeys:J2(t.upstreamApiKeyEntries),modelMappings:gD(t.mappingEntries)}),EZ=(t,e)=>{if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.upstreamApiKey!==s.upstreamApiKey||!Qd(i.apiKeys,s.apiKeys))return!1}return!0},jZ=(t,e)=>{if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.from!==s.from||i.to!==s.to)return!1}return!0};function RZ(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i,showConfirmation:s}=_n(),o=nn(F=>F.connectionStatus)!=="connected",r=Bt(F=>F.config),c=Bt(F=>F.updateConfigValue),d=Bt(F=>F.clearCache),[f,m]=S.useState(()=>Qg(null)),[g,y]=S.useState(!1),[b,v]=S.useState(!1),[x,A]=S.useState(!1),[k,T]=S.useState(!1),[L,M]=S.useState(""),[O,N]=S.useState(!1),[P,E]=S.useState(()=>t_(Qg(null))),R=S.useRef(!1),z=S.useRef(!1),D=S.useMemo(()=>t("ai_providers.ampcode_modal_title"),[t]),Q=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]),G=Do({onBack:Q});S.useEffect(()=>{const F=Z=>{Z.key==="Escape"&&Q()};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[Q]),S.useEffect(()=>(z.current=!0,()=>{z.current=!1}),[]),S.useEffect(()=>{if(R.current)return;R.current=!0,y(!0),v(!1),A(!1),T(!1),M("");const F=Qg(Bt.getState().config?.ampcode??null);m(F),E(t_(F)),(async()=>{try{const Z=await qa.getAmpcode();if(!z.current)return;v(!0),c("ampcode",Z),d("ampcode");const J=Qg(Z);m(J),E(t_(J))}catch(Z){if(!z.current)return;M(u1(Z)||t("notification.refresh_failed"))}finally{z.current&&y(!1)}})()},[d,t,c]);const B=S.useMemo(()=>J2(f.upstreamApiKeyEntries),[f.upstreamApiKeyEntries]),I=S.useMemo(()=>gD(f.mappingEntries),[f.mappingEntries]),V=S.useMemo(()=>!EZ(P.upstreamApiKeys,B),[P.upstreamApiKeys,B]),K=S.useMemo(()=>!jZ(P.modelMappings,I),[P.modelMappings,I]),$=P.upstreamUrl!==f.upstreamUrl.trim()||P.upstreamApiKey!==f.upstreamApiKey.trim()||P.forceModelMappings!==!!f.forceModelMappings||V||K,X=!g&&!O,{allowNextNavigation:U}=Xd({enabled:X,shouldBlock:({currentLocation:F,nextLocation:Z})=>$&&F.pathname!==Z.pathname,dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}}),q=async()=>{s({title:t("ai_providers.ampcode_clear_upstream_api_key_title",{defaultValue:"Clear Upstream API Key"}),message:t("ai_providers.ampcode_clear_upstream_api_key_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{N(!0),M("");try{await qa.clearUpstreamApiKey();const Z={...r?.ampcode??{}};delete Z.upstreamApiKey,c("ampcode",Z),d("ampcode"),i(t("notification.ampcode_upstream_api_key_cleared"),"success")}catch(F){const Z=u1(F);M(Z),i(`${t("notification.update_failed")}: ${Z}`,"error")}finally{N(!1)}}})},Y=async()=>{N(!0),M("");try{const F=f.upstreamUrl.trim(),Z=f.upstreamApiKey.trim(),J=J2(f.upstreamApiKeyEntries),te=M$(f.mappingEntries);F?await qa.updateUpstreamUrl(F):await qa.clearUpstreamUrl(),await qa.updateForceModelMappings(f.forceModelMappings),(b||k)&&(J.length?await qa.saveUpstreamApiKeys(J):await qa.deleteUpstreamApiKeys([])),(b||x)&&(te.length?await qa.saveModelMappings(te):await qa.clearModelMappings()),Z&&await qa.updateUpstreamApiKey(Z);const re={...r?.ampcode??{},forceModelMappings:f.forceModelMappings};F?re.upstreamUrl=F:delete re.upstreamUrl,Z&&(re.upstreamApiKey=Z),(b||k)&&(J.length?re.upstreamApiKeys=J:delete re.upstreamApiKeys),(b||x)&&(te.length?re.modelMappings=te:delete re.modelMappings),c("ampcode",re),d("ampcode"),i(t("notification.ampcode_updated"),"success"),U(),E(t_(f)),Q()}catch(F){const Z=u1(F);M(Z),i(`${t("notification.update_failed")}: ${Z}`,"error")}finally{N(!1)}},oe=async()=>{if(!b&&(x||k)){s({title:t("ai_providers.ampcode_lists_overwrite_title"),message:t("ai_providers.ampcode_lists_overwrite_confirm"),variant:"secondary",confirmText:t("common.confirm"),onConfirm:Y});return}await Y()},se=!o&&!O&&!g;return h.jsx(Fo,{ref:G,contentClassName:Wt.content,title:D,onBack:Q,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:Q,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:()=>void oe(),loading:O,disabled:!se,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:g,loadingLabel:t("common.loading"),children:h.jsxs(Dt,{children:[L&&h.jsx("div",{className:"error-box",children:L}),h.jsx(ot,{label:t("ai_providers.ampcode_upstream_url_label"),placeholder:t("ai_providers.ampcode_upstream_url_placeholder"),value:f.upstreamUrl,onChange:F=>m(Z=>({...Z,upstreamUrl:F.target.value})),disabled:g||O||o,hint:t("ai_providers.ampcode_upstream_url_hint")}),h.jsx(ot,{label:t("ai_providers.ampcode_upstream_api_key_label"),placeholder:t("ai_providers.ampcode_upstream_api_key_placeholder"),type:"password",value:f.upstreamApiKey,onChange:F=>m(Z=>({...Z,upstreamApiKey:F.target.value})),disabled:g||O||o,hint:t("ai_providers.ampcode_upstream_api_key_hint")}),h.jsxs("div",{className:Wt.upstreamApiKeyRow,children:[h.jsx("div",{className:Wt.upstreamApiKeyHint,children:t("ai_providers.ampcode_upstream_api_key_current",{key:r?.ampcode?.upstreamApiKey?Ea(r.ampcode.upstreamApiKey):t("common.not_set")})}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>void q(),disabled:g||O||o||!r?.ampcode?.upstreamApiKey,children:t("ai_providers.ampcode_clear_upstream_api_key")})]}),h.jsxs("div",{className:"form-group",children:[h.jsxs("div",{className:Wt.ampcodeUpstreamMappingsHeader,children:[h.jsx("label",{children:t("ai_providers.ampcode_upstream_api_keys_label")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>{T(!0),m(F=>({...F,upstreamApiKeyEntries:[...F.upstreamApiKeyEntries,{upstreamApiKey:"",clientApiKeysText:""}]}))},disabled:g||O||o,children:t("ai_providers.ampcode_upstream_api_keys_add_btn")})]}),h.jsx("div",{className:Wt.ampcodeUpstreamMappingsList,children:(f.upstreamApiKeyEntries.length?f.upstreamApiKeyEntries:[{upstreamApiKey:"",clientApiKeysText:""}]).map((F,Z,J)=>h.jsxs("div",{className:Wt.ampcodeUpstreamMappingCard,children:[h.jsxs("div",{className:Wt.ampcodeUpstreamMappingCardTop,children:[h.jsx("span",{className:Wt.ampcodeUpstreamMappingTitle,children:t("ai_providers.ampcode_upstream_api_keys_item_title",{index:Z+1})}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>{T(!0),m(te=>{const fe=te.upstreamApiKeyEntries.filter((re,ue)=>ue!==Z);return{...te,upstreamApiKeyEntries:fe.length?fe:[{upstreamApiKey:"",clientApiKeysText:""}]}})},disabled:g||O||o||J.length<=1,children:t("common.delete")})]}),h.jsx("input",{className:"input",placeholder:t("ai_providers.ampcode_upstream_api_keys_upstream_placeholder"),"aria-label":t("ai_providers.ampcode_upstream_api_keys_upstream_placeholder"),value:F.upstreamApiKey,onChange:te=>{const fe=te.target.value;T(!0),m(re=>({...re,upstreamApiKeyEntries:re.upstreamApiKeyEntries.map((ue,ee)=>ee===Z?{...ue,upstreamApiKey:fe}:ue)}))},disabled:g||O||o}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.ampcode_upstream_api_keys_clients_placeholder"),"aria-label":t("ai_providers.ampcode_upstream_api_keys_clients_placeholder"),value:F.clientApiKeysText,onChange:te=>{const fe=te.target.value;T(!0),m(re=>({...re,upstreamApiKeyEntries:re.upstreamApiKeyEntries.map((ue,ee)=>ee===Z?{...ue,clientApiKeysText:fe}:ue)}))},rows:3,disabled:g||O||o})]},Z))}),h.jsx("div",{className:"hint",children:t("ai_providers.ampcode_upstream_api_keys_hint")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx(Si,{label:t("ai_providers.ampcode_force_model_mappings_label"),checked:f.forceModelMappings,onChange:F=>m(Z=>({...Z,forceModelMappings:F})),disabled:g||O||o}),h.jsx("div",{className:"hint",children:t("ai_providers.ampcode_force_model_mappings_hint")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.ampcode_model_mappings_label")}),h.jsx($d,{entries:f.mappingEntries,onChange:F=>{A(!0),m(Z=>({...Z,mappingEntries:F}))},addLabel:t("ai_providers.ampcode_model_mappings_add_btn"),namePlaceholder:t("ai_providers.ampcode_model_mappings_from_placeholder"),aliasPlaceholder:t("ai_providers.ampcode_model_mappings_to_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:g||O||o}),h.jsx("div",{className:"hint",children:t("ai_providers.ampcode_model_mappings_hint")})]})]})})}const lp=t=>!Array.isArray(t)||t.length===0?[{name:"",alias:""}]:t.map(e=>({name:e.name||"",alias:e.alias||""})),rk=t=>t.filter(e=>e.name.trim()).map(e=>{const n={name:e.name.trim()},i=e.alias.trim();return i&&i!==n.name&&(n.alias=i),n}),kO=()=>({apiKey:"",priority:void 0,prefix:"",baseUrl:"",proxyUrl:"",headers:[],models:[],excludedModels:[],modelEntries:[{name:"",alias:""}],excludedText:""}),DZ=t=>{if(!t)return null;const e=Number.parseInt(t,10);return Number.isFinite(e)?e:null},CO=t=>t instanceof Error?t.message:typeof t=="string"?t:"",_D=t=>(t??[]).reduce((e,n)=>{const i=String(n?.name??"").trim();let s=String(n?.alias??"").trim();return i&&(s=s||i),!i&&!s||e.push({name:i,alias:s}),e},[]),yD=t=>{if(!t)return null;const e=String(t.mode??"").trim().toLowerCase()||"auto",n=!!t.strictMode,i=Array.isArray(t.sensitiveWords)?t.sensitiveWords.map(s=>String(s??"").trim()).filter(Boolean):[];return{mode:e,strictMode:n,sensitiveWords:i.length?i:null}},d1=t=>({apiKey:String(t.apiKey??"").trim(),priority:t.priority!==void 0&&Number.isFinite(t.priority)?Math.trunc(t.priority):null,prefix:String(t.prefix??"").trim(),baseUrl:String(t.baseUrl??"").trim(),proxyUrl:String(t.proxyUrl??"").trim(),headers:Ro(t.headers),models:_D(t.modelEntries),excludedModels:Ta(t.excludedText??""),cloak:yD(t.cloak)}),FZ=(t,e)=>t===e?!0:!t||!e||t.mode!==e.mode||t.strictMode!==e.strictMode?!1:t.sensitiveWords===null||e.sensitiveWords===null?t.sensitiveWords===e.sensitiveWords:Qd(t.sensitiveWords,e.sensitiveWords);function AO(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i}=_n(),s=Wm(),a=typeof s.index=="string",o=S.useMemo(()=>DZ(s.index),[s.index]),r=a&&o===null,d=nn(Fe=>Fe.connectionStatus)!=="connected",f=Bt(Fe=>Fe.config),m=Bt(Fe=>Fe.fetchConfig),g=Bt(Fe=>Fe.isCacheValid),y=Bt(Fe=>Fe.updateConfigValue),b=Bt(Fe=>Fe.clearCache),[v,x]=S.useState(()=>f?.claudeApiKeys??[]),[A,k]=S.useState(()=>!g("claude-api-key")),[T,L]=S.useState(!1),M=S.useMemo(()=>r?`claude:invalid:${s.index??"unknown"}`:o===null?"claude:new":`claude:${o}`,[o,r,s.index]),O=or(Fe=>Fe.drafts[M]),N=or(Fe=>Fe.acquireDraft),P=or(Fe=>Fe.releaseDraft),E=or(Fe=>Fe.initDraft),R=or(Fe=>Fe.setDraftBaseline),z=or(Fe=>Fe.setDraftForm),D=or(Fe=>Fe.setDraftTestModel),Q=or(Fe=>Fe.setDraftTestStatus),G=or(Fe=>Fe.setDraftTestMessage),B=O?.form??kO(),I=O?.testModel??"",V=O?.testStatus??"idle",K=O?.testMessage??"",$=S.useCallback(Fe=>{z(M,Fe)},[M,z]),X=S.useCallback(Fe=>{D(M,Fe)},[M,D]),U=S.useCallback(Fe=>{Q(M,Fe)},[M,Q]),q=S.useCallback(Fe=>{G(M,Fe)},[M,G]),Y=S.useMemo(()=>{if(o!==null)return v[o]},[v,o]),oe=o!==null&&!Y,se=S.useMemo(()=>B.modelEntries.map(Fe=>Fe.name.trim()).filter(Boolean),[B.modelEntries]);S.useEffect(()=>(N(M),()=>P(M)),[N,M,P]);const F=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]);S.useEffect(()=>{let Fe=!1;return g("claude-api-key")||k(!0),m("claude-api-key").then(je=>{Fe||x(Array.isArray(je)?je:[])}).catch(je=>{if(Fe)return;const pt=CO(je)||t("notification.refresh_failed");i(`${t("notification.load_failed")}: ${pt}`,"error")}).finally(()=>{Fe||k(!1)}),()=>{Fe=!0}},[m,g,i,t]),S.useEffect(()=>{if(A||O?.initialized)return;if(Y){const mt={...Y,headers:Zm(Y.headers),modelEntries:lp(Y.models),excludedText:Hy(Y.excludedModels)},je=mt.modelEntries.map(at=>at.name.trim()).filter(Boolean),pt=d1(mt);E(M,{baseline:pt,form:mt,testModel:je[0]||"",testStatus:"idle",testMessage:""});return}const Fe=kO();E(M,{baseline:d1(Fe),form:Fe,testModel:"",testStatus:"idle",testMessage:""})},[O?.initialized,M,E,Y,A]);const Z=!O?.initialized,J=O?.baseline??null,te=S.useMemo(()=>Ro(B.headers),[B.headers]),fe=S.useMemo(()=>_D(B.modelEntries),[B.modelEntries]),re=S.useMemo(()=>Ta(B.excludedText??""),[B.excludedText]),ue=S.useMemo(()=>yD(B.cloak),[B.cloak]),ee=S.useMemo(()=>B.priority!==void 0&&Number.isFinite(B.priority)?Math.trunc(B.priority):null,[B.priority]),Ie=S.useMemo(()=>J?!Yd(J.headers,te):!1,[J,te]),Ke=S.useMemo(()=>J?!rp(J.models,fe):!1,[J,fe]),ht=S.useMemo(()=>J?!Qd(J.excludedModels,re):!1,[J,re]),wt=S.useMemo(()=>J?!FZ(J.cloak,ue):!1,[J,ue]),ft=!!O?.initialized&&J!==null&&(J.apiKey!==B.apiKey.trim()||J.priority!==ee||J.prefix!==String(B.prefix??"").trim()||J.baseUrl!==String(B.baseUrl??"").trim()||J.proxyUrl!==String(B.proxyUrl??"").trim()||Ie||Ke||ht||wt),Xe=S.useMemo(()=>a?`/ai-providers/claude/${s.index??""}`:"/ai-providers/claude/new",[a,s.index]),Ot=!Z&&!T&&!r&&!oe,{allowNextNavigation:zt}=Xd({enabled:Ot,shouldBlock:({nextLocation:Fe})=>{const mt=Fe.pathname,je=mt===Xe||mt.startsWith(`${Xe}/`);return ft&&!je},dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}});S.useEffect(()=>{if(!Z){if(se.length===0){I&&(X(""),U("idle"),q(""));return}(!I||!se.includes(I))&&(X(se[0]),U("idle"),q(""))}},[se,Z,q,X,U,I]);const sn=S.useCallback(Fe=>{if(!Fe.length)return;let mt=0;$(je=>{const pt=new Map;je.modelEntries.forEach(Ee=>{const ut=Ee.name.trim();ut&&pt.set(ut,{name:ut,alias:Ee.alias?.trim()||""})}),Fe.forEach(Ee=>{const ut=Ee.name.trim();!ut||pt.has(ut)||(pt.set(ut,{name:ut,alias:Ee.alias??""}),mt+=1)});const at=Array.from(pt.values());return{...je,modelEntries:at.length?at:[{name:"",alias:""}]}}),mt>0&&i(t("ai_providers.claude_models_fetch_added",{count:mt}),"success")},[$,i,t]),an=S.useCallback(async()=>{if(!d&&!T&&!Z&&!r&&!oe){L(!0);try{const mt={apiKey:B.apiKey.trim(),priority:B.priority!==void 0?Math.trunc(B.priority):void 0,prefix:B.prefix?.trim()||void 0,baseUrl:(B.baseUrl??"").trim()||void 0,proxyUrl:B.proxyUrl?.trim()||void 0,headers:gs(B.headers),models:B.modelEntries.map(pt=>{const at=pt.name.trim();if(!at)return null;const Ee=pt.alias.trim();return{name:at,alias:Ee||at}}).filter(Boolean),excludedModels:Ta(B.excludedText),cloak:B.cloak},je=o!==null?v.map((pt,at)=>at===o?mt:pt):[...v,mt];await yi.saveClaudeConfigs(je),x(je),y("claude-api-key",je),b("claude-api-key"),i(t(o!==null?"notification.claude_config_updated":"notification.claude_config_added"),"success"),zt(),R(M,d1(B)),F()}catch(mt){i(`${t("notification.update_failed")}: ${CO(mt)}`,"error")}finally{L(!1)}}},[zt,b,v,M,d,o,B,F,oe,r,Z,R,T,i,t,y]);return h.jsx(Dw,{context:{hasIndexParam:a,editIndex:o,invalidIndexParam:r,invalidIndex:oe,disableControls:d,loading:Z,saving:T,form:B,setForm:$,testModel:I,setTestModel:X,testStatus:V,setTestStatus:U,testMessage:K,setTestMessage:q,availableModels:se,handleBack:F,handleSave:an,mergeDiscoveredModels:sn}})}function cp({entries:t,onChange:e,addLabel:n,disabled:i=!1,keyPlaceholder:s="X-Custom-Header",valuePlaceholder:a="value",removeButtonTitle:o="Remove",removeButtonAriaLabel:r="Remove"}){const c=t.length?t:[{key:"",value:""}],d=(g,y,b)=>{const v=c.map((x,A)=>A===g?{...x,[y]:b}:x);e(v)},f=()=>{e([...c,{key:"",value:""}])},m=g=>{const y=c.filter((b,v)=>v!==g);e(y.length?y:[{key:"",value:""}])};return h.jsxs("div",{className:"header-input-list",children:[c.map((g,y)=>h.jsx(S.Fragment,{children:h.jsxs("div",{className:"header-input-row",children:[h.jsx("input",{className:"input",placeholder:s,value:g.key,onChange:b=>d(y,"key",b.target.value),disabled:i}),h.jsx("span",{className:"header-separator",children:":"}),h.jsx("input",{className:"input",placeholder:a,value:g.value,onChange:b=>d(y,"value",b.target.value),disabled:i}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>m(y),disabled:i||c.length<=1,title:o,"aria-label":r,children:h.jsx(Xc,{size:14})})]})},y)),h.jsx(me,{variant:"secondary",size:"sm",onClick:f,disabled:i,className:"align-start",children:n})]})}const NO=3e4,TO="2023-06-01",IZ=t=>t instanceof Error?t.message:typeof t=="string"?t:"",MO=(t,e)=>{const n=e.toLowerCase();return Object.keys(t).some(i=>i.toLowerCase()===n)},UZ=t=>{const e=Object.entries(t).find(([s])=>s.toLowerCase()==="authorization");if(!e)return"";const n=String(e[1]??"").trim();return n&&n.match(/^Bearer\s+(.+)$/i)?.[1]?.trim()||""};function LO(){const{t}=et(),e=Ri(),{showNotification:n}=_n(),{hasIndexParam:i,invalidIndexParam:s,invalidIndex:a,disableControls:o,loading:r,saving:c,form:d,setForm:f,testModel:m,setTestModel:g,testStatus:y,setTestStatus:b,testMessage:v,setTestMessage:x,availableModels:A,handleBack:k,handleSave:T}=Oy(),L=t(i?"ai_providers.claude_edit_modal_title":"ai_providers.claude_add_modal_title"),M=Do({onBack:k}),[O,N]=S.useState(!1),P=S.useRef(null);S.useEffect(()=>{const V=K=>{K.key==="Escape"&&k()};return window.addEventListener("keydown",V),()=>window.removeEventListener("keydown",V)},[k]),S.useEffect(()=>{d.cloak&&(P.current=d.cloak)},[d.cloak]);const E=!o&&!r&&!c&&!s&&!a&&!O,R=S.useMemo(()=>{const V=new Set;return d.modelEntries.reduce((K,$)=>{const X=$.name.trim();if(!X||V.has(X))return K;V.add(X);const U=$.alias.trim();return K.push({value:X,label:U&&U!==X?`${X} (${U})`:X}),K},[])},[d.modelEntries]),z=S.useMemo(()=>[{value:"auto",label:t("ai_providers.claude_cloak_mode_auto")},{value:"always",label:t("ai_providers.claude_cloak_mode_always")},{value:"never",label:t("ai_providers.claude_cloak_mode_never")}],[t]),D=S.useMemo(()=>{const V=(d.cloak?.mode??"").trim().toLowerCase();return!V||V==="provider"?"auto":V==="auto"||V==="always"||V==="never"?V:"auto"},[d.cloak?.mode]),Q=S.useMemo(()=>{const V=d.headers.map($=>`${$.key.trim()}:${$.value.trim()}`).join("|"),K=d.modelEntries.map($=>`${$.name.trim()}:${$.alias.trim()}`).join("|");return[d.apiKey.trim(),d.baseUrl?.trim()??"",m.trim(),V,K].join("||")},[d.apiKey,d.baseUrl,d.headers,d.modelEntries,m]),G=S.useRef(Q);S.useEffect(()=>{G.current!==Q&&(G.current=Q,b("idle"),x(""))},[Q,x,b]);const B=()=>{e("models")},I=S.useCallback(async()=>{if(O)return;const V=m.trim()||A[0]||"";if(!V){const se=t("ai_providers.claude_test_model_required");b("error"),x(se),n(se,"error");return}const K=gs(d.headers),$=d.apiKey.trim(),X=MO(K,"x-api-key"),U=UZ(K),q=$||U;if(!q&&!X){const se=t("ai_providers.claude_test_key_required");b("error"),x(se),n(se,"error");return}const Y=A$(d.baseUrl??"");if(!Y){const se=t("ai_providers.claude_test_endpoint_invalid");b("error"),x(se),n(se,"error");return}const oe={"Content-Type":"application/json",...K};MO(oe,"anthropic-version")||(oe["anthropic-version"]=TO),Object.prototype.hasOwnProperty.call(oe,"Anthropic-Version")||(oe["Anthropic-Version"]=oe["anthropic-version"]??TO),!X&&q&&(oe["x-api-key"]=q),!Object.prototype.hasOwnProperty.call(oe,"X-Api-Key")&&q&&(oe["X-Api-Key"]=q),N(!0),b("loading"),x(t("ai_providers.claude_test_running"));try{const se=await ea.request({method:"POST",url:Y,header:oe,data:JSON.stringify({model:V,max_tokens:8,messages:[{role:"user",content:"Hi"}]})},{timeout:NO});if(se.statusCode<200||se.statusCode>=300)throw new Error(Ha(se));const F=t("ai_providers.claude_test_success");b("success"),x(F),n(F,"success")}catch(se){const F=IZ(se),te=(typeof se=="object"&&se!==null&&"code"in se?String(se.code):"")==="ECONNABORTED"||F.toLowerCase().includes("timeout")?t("ai_providers.claude_test_timeout",{seconds:NO/1e3}):`${t("ai_providers.claude_test_failed")}: ${F||t("common.unknown_error")}`;b("error"),x(te),n(te,"error")}finally{N(!1)}},[A,d.apiKey,d.baseUrl,d.headers,O,x,b,n,t,m]);return h.jsx(Fo,{ref:M,contentClassName:Wt.content,title:L,onBack:k,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:k,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:()=>void T(),loading:c,disabled:!E,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:r,loadingLabel:t("common.loading"),children:h.jsx(Dt,{children:s||a?h.jsx("div",{className:H.sectionHint,children:t("common.invalid_provider_index")}):h.jsxs("div",{className:H.openaiEditForm,children:[h.jsx(ot,{label:t("ai_providers.claude_add_modal_key_label"),value:d.apiKey,onChange:V=>f(K=>({...K,apiKey:V.target.value})),disabled:c||o||O}),h.jsx(ot,{label:t("ai_providers.priority_label"),hint:t("ai_providers.priority_hint"),type:"number",step:1,value:d.priority??"",onChange:V=>{const K=V.target.value,$=K.trim()===""?void 0:Number(K);f(X=>({...X,priority:$!==void 0&&Number.isFinite($)?$:void 0}))},disabled:c||o||O}),h.jsx(ot,{label:t("ai_providers.prefix_label"),placeholder:t("ai_providers.prefix_placeholder"),value:d.prefix??"",onChange:V=>f(K=>({...K,prefix:V.target.value})),hint:t("ai_providers.prefix_hint"),disabled:c||o||O}),h.jsx(ot,{label:t("ai_providers.claude_add_modal_url_label"),value:d.baseUrl??"",onChange:V=>f(K=>({...K,baseUrl:V.target.value})),disabled:c||o||O}),h.jsx(ot,{label:t("ai_providers.claude_add_modal_proxy_label"),value:d.proxyUrl??"",onChange:V=>f(K=>({...K,proxyUrl:V.target.value})),disabled:c||o||O}),h.jsx(cp,{entries:d.headers,onChange:V=>f(K=>({...K,headers:V})),addLabel:t("common.custom_headers_add"),keyPlaceholder:t("common.custom_headers_key_placeholder"),valuePlaceholder:t("common.custom_headers_value_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:c||o||O}),h.jsxs("div",{className:H.modelConfigSection,children:[h.jsxs("div",{className:H.modelConfigHeader,children:[h.jsx("label",{className:H.modelConfigTitle,children:t("ai_providers.claude_models_label")}),h.jsxs("div",{className:H.modelConfigToolbar,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>f(V=>({...V,modelEntries:[...V.modelEntries,{name:"",alias:""}]})),disabled:c||o||O,children:t("ai_providers.claude_models_add_btn")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:B,disabled:c||o||O,children:t("ai_providers.claude_models_fetch_button")})]})]}),h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_models_hint")}),h.jsx($d,{entries:d.modelEntries,onChange:V=>f(K=>({...K,modelEntries:V})),namePlaceholder:t("common.model_name_placeholder"),aliasPlaceholder:t("common.model_alias_placeholder"),disabled:c||o||O,hideAddButton:!0,className:H.modelInputList,rowClassName:H.modelInputRow,inputClassName:H.modelInputField,removeButtonClassName:H.modelRowRemoveButton,removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete")}),h.jsxs("div",{className:H.modelTestPanel,children:[h.jsxs("div",{className:H.modelTestMeta,children:[h.jsx("label",{className:H.modelTestLabel,children:t("ai_providers.claude_test_title")}),h.jsx("span",{className:H.modelTestHint,children:t("ai_providers.claude_test_hint")})]}),h.jsxs("div",{className:H.modelTestControls,children:[h.jsx(Vi,{value:m,options:R,onChange:V=>{g(V),b("idle"),x("")},placeholder:A.length?t("ai_providers.claude_test_select_placeholder"):t("ai_providers.claude_test_select_empty"),className:H.openaiTestSelect,ariaLabel:t("ai_providers.claude_test_title"),disabled:c||o||O||y==="loading"||A.length===0}),h.jsx(me,{variant:y==="error"?"danger":"secondary",size:"sm",onClick:()=>void I(),loading:y==="loading",disabled:c||o||O||y==="loading"||A.length===0,className:H.modelTestAllButton,children:t("ai_providers.claude_test_action")})]})]}),v&&h.jsx("div",{className:`status-badge ${y==="error"?"error":y==="success"?"success":"muted"}`,children:v})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.excluded_models_label")}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.excluded_models_placeholder"),value:d.excludedText,onChange:V=>f(K=>({...K,excludedText:V.target.value})),rows:4,disabled:c||o||O}),h.jsx("div",{className:"hint",children:t("ai_providers.excluded_models_hint")})]}),h.jsxs("div",{className:H.modelConfigSection,children:[h.jsxs("div",{className:H.modelConfigHeader,children:[h.jsx("label",{className:H.modelConfigTitle,children:t("ai_providers.claude_cloak_title")}),h.jsx("div",{className:H.modelConfigToolbar,children:h.jsx(Si,{checked:!!d.cloak,onChange:V=>f(K=>{if(!V)return K.cloak&&(P.current=K.cloak),{...K,cloak:void 0};const $=K.cloak??P.current??{mode:"auto",strictMode:!1,sensitiveWords:[]},X=String($.mode??"auto").trim()||"auto";return{...K,cloak:{mode:X,strictMode:$.strictMode??!1,sensitiveWords:$.sensitiveWords??[]}}}),disabled:c||o||O,ariaLabel:t("ai_providers.claude_cloak_toggle_aria"),label:t("ai_providers.claude_cloak_toggle_label")})})]}),h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_cloak_hint")}),d.cloak?h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.claude_cloak_mode_label")}),h.jsx(Vi,{value:D,options:z,onChange:V=>f(K=>({...K,cloak:{...K.cloak??{},mode:V}})),ariaLabel:t("ai_providers.claude_cloak_mode_label"),disabled:c||o||O}),h.jsx("div",{className:"hint",children:t("ai_providers.claude_cloak_mode_hint")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.claude_cloak_strict_label")}),h.jsx(Si,{checked:!!d.cloak.strictMode,onChange:V=>f(K=>({...K,cloak:{...K.cloak??{},strictMode:V}})),disabled:c||o||O,ariaLabel:t("ai_providers.claude_cloak_strict_label")}),h.jsx("div",{className:"hint",children:t("ai_providers.claude_cloak_strict_hint")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.claude_cloak_sensitive_words_label")}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.claude_cloak_sensitive_words_placeholder"),value:(d.cloak.sensitiveWords??[]).join(`
|
||
`),onChange:V=>{const K=sk(V.target.value);f($=>({...$,cloak:{...$.cloak??{},sensitiveWords:K.length?K:void 0}}))},rows:3,disabled:c||o||O}),h.jsx("div",{className:"hint",children:t("ai_providers.claude_cloak_sensitive_words_hint")})]})]}):null]})]})})})}const BZ=t=>t instanceof Error?t.message:typeof t=="string"?t:"";function OO(){const{t}=et(),e=Ri(),{disableControls:n,loading:i,saving:s,form:a,mergeDiscoveredModels:o}=Oy(),[r,c]=S.useState(""),[d,f]=S.useState([]),[m,g]=S.useState(!1),[y,b]=S.useState(""),[v,x]=S.useState(""),[A,k]=S.useState(new Set),T=S.useRef(""),L=S.useMemo(()=>{const B=v.trim().toLowerCase();return B?d.filter(I=>{const V=(I.name||"").toLowerCase(),K=(I.alias||"").toLowerCase(),$=(I.description||"").toLowerCase();return V.includes(B)||K.includes(B)||$.includes(B)}):d},[d,v]),M=S.useMemo(()=>L.map(B=>B.name),[L]),O=S.useMemo(()=>M.length>0&&M.every(B=>A.has(B)),[A,M]),N=S.useCallback(async()=>{g(!0),b("");const B=gs(a.headers);try{const I=await Tr.fetchClaudeModelsViaApiCall(a.baseUrl??"",a.apiKey.trim()||void 0,B);f(I)}catch(I){f([]);const V=BZ(I),K=Object.keys(B).some(q=>q.toLowerCase()==="x-api-key"),$=Object.keys(B).some(q=>q.toLowerCase()==="authorization"),U=V.toLowerCase().includes("x-api-key")||V.includes("401")?` [diag: apiKeyField=${a.apiKey.trim()?"yes":"no"}, customXApiKey=${K?"yes":"no"}, customAuthorization=${$?"yes":"no"}]`:"";b(`${t("ai_providers.claude_models_fetch_error")}: ${V}${U}`)}finally{g(!1)}},[a.apiKey,a.baseUrl,a.headers,t]);S.useEffect(()=>{if(i)return;const B=Tr.buildClaudeModelsEndpoint(a.baseUrl??"");c(B),f([]),x(""),k(new Set),b("");const I=gs(a.headers),V=Object.keys(I).some(Y=>Y.toLowerCase()==="x-api-key"),K=Object.keys(I).some(Y=>Y.toLowerCase()==="authorization");if(!(!!a.apiKey.trim()||V||K))return;const U=Object.entries(I).sort(([Y],[oe])=>Y.toLowerCase().localeCompare(oe.toLowerCase())).map(([Y,oe])=>`${Y}:${oe}`).join("|"),q=`${B}||${a.apiKey.trim()}||${U}`;T.current!==q&&(T.current=q,N())},[N,a.apiKey,a.baseUrl,a.headers,i]),S.useEffect(()=>{const B=new Set(d.map(I=>I.name));k(I=>{let V=!1;const K=new Set;return I.forEach($=>{B.has($)?K.add($):V=!0}),V?K:I})},[d]);const P=S.useCallback(()=>{e(-1)},[e]),E=Do({onBack:P});S.useEffect(()=>{const B=I=>{I.key==="Escape"&&P()};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[P]);const R=B=>{k(I=>{const V=new Set(I);return V.has(B)?V.delete(B):V.add(B),V})},z=S.useCallback(()=>{k(B=>{const I=new Set(B);return M.forEach(V=>I.add(V)),I})},[M]),D=S.useCallback(()=>{k(new Set)},[]),Q=()=>{const B=d.filter(I=>A.has(I.name));B.length&&o(B),P()},G=!n&&!s&&!m&&A.size>0;return h.jsx(Fo,{ref:E,contentClassName:Wt.content,title:t("ai_providers.claude_models_fetch_title"),onBack:P,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:P,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:Q,disabled:!G,className:Wt.floatingSaveButton,children:t("ai_providers.claude_models_fetch_apply")})]}),isLoading:i,loadingLabel:t("common.loading"),children:h.jsx(Dt,{children:h.jsxs("div",{className:H.openaiModelsContent,children:[h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_models_fetch_hint")}),h.jsxs("div",{className:H.openaiModelsEndpointSection,children:[h.jsx("label",{className:H.openaiModelsEndpointLabel,children:t("ai_providers.claude_models_fetch_url_label")}),h.jsxs("div",{className:H.openaiModelsEndpointControls,children:[h.jsx("input",{className:`input ${H.openaiModelsEndpointInput}`,readOnly:!0,value:r}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void N(),loading:m,disabled:n||s,children:t("ai_providers.claude_models_fetch_refresh")})]})]}),h.jsx(ot,{label:t("ai_providers.claude_models_search_label"),placeholder:t("ai_providers.claude_models_search_placeholder"),value:v,onChange:B=>x(B.target.value),disabled:m}),d.length>0&&h.jsxs("div",{className:H.modelDiscoveryToolbar,children:[h.jsxs("div",{className:H.modelDiscoveryToolbarActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:z,disabled:n||s||m||L.length===0||O,children:t("ai_providers.model_discovery_select_visible")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:D,disabled:n||s||m||A.size===0,children:t("ai_providers.model_discovery_clear_selection")})]}),h.jsx("div",{className:H.modelDiscoverySelectionSummary,children:t("ai_providers.model_discovery_selected_count",{count:A.size})})]}),y&&h.jsx("div",{className:"error-box",children:y}),m?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_models_fetch_loading")}):d.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_models_fetch_empty")}):L.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.claude_models_search_empty")}):h.jsx("div",{className:H.modelDiscoveryList,children:L.map(B=>{const I=A.has(B.name);return h.jsx(Ml,{checked:I,onChange:()=>R(B.name),disabled:n||s||m,ariaLabel:B.name,className:`${H.modelDiscoveryRow} ${I?H.modelDiscoveryRowSelected:""}`,labelClassName:H.modelDiscoverySelectionLabel,label:h.jsxs("div",{className:H.modelDiscoveryMeta,children:[h.jsxs("div",{className:H.modelDiscoveryName,children:[B.name,B.alias&&h.jsx("span",{className:H.modelDiscoveryAlias,children:B.alias})]}),B.description&&h.jsx("div",{className:H.modelDiscoveryDesc,children:B.description})]})},B.name)})})]})})})}const h1=()=>({apiKey:"",priority:void 0,prefix:"",baseUrl:"",websockets:!1,proxyUrl:"",headers:[],models:[],excludedModels:[],modelEntries:[{name:"",alias:""}],excludedText:""}),zZ=t=>{if(!t)return null;const e=Number.parseInt(t,10);return Number.isFinite(e)?e:null},qZ=t=>t instanceof Error?t.message:typeof t=="string"?t:"",bD=t=>(t??[]).reduce((e,n)=>{const i=String(n?.name??"").trim();let s=String(n?.alias??"").trim();return i&&s===i&&(s=""),!i&&!s||e.push({name:i,alias:s}),e},[]),n_=t=>({apiKey:String(t.apiKey??"").trim(),priority:t.priority!==void 0&&Number.isFinite(t.priority)?Math.trunc(t.priority):null,prefix:String(t.prefix??"").trim(),baseUrl:String(t.baseUrl??"").trim(),websockets:!!t.websockets,proxyUrl:String(t.proxyUrl??"").trim(),headers:Ro(t.headers),models:bD(t.modelEntries),excludedModels:Ta(t.excludedText??"")});function PO(){const{t}=et(),e=Ri(),n=Qn(),i=Wm(),{showNotification:s}=_n(),o=nn(le=>le.connectionStatus)!=="connected",r=Bt(le=>le.fetchConfig),c=Bt(le=>le.updateConfigValue),d=Bt(le=>le.clearCache),[f,m]=S.useState([]),[g,y]=S.useState(!0),[b,v]=S.useState(!1),[x,A]=S.useState(""),[k,T]=S.useState(()=>h1()),[L,M]=S.useState(()=>n_(h1())),[O,N]=S.useState(!1),[P,E]=S.useState(""),[R,z]=S.useState([]),[D,Q]=S.useState(!1),[G,B]=S.useState(""),[I,V]=S.useState(""),[K,$]=S.useState(new Set),X=S.useRef(""),U=S.useRef(0),q=typeof i.index=="string",Y=S.useMemo(()=>zZ(i.index),[i.index]),oe=q&&Y===null,se=S.useMemo(()=>{if(Y!==null)return f[Y]},[f,Y]),F=Y!==null&&!se,Z=t(Y!==null?"ai_providers.codex_edit_modal_title":"ai_providers.codex_add_modal_title"),J=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]),te=Do({onBack:J});S.useEffect(()=>{const le=ge=>{ge.key==="Escape"&&J()};return window.addEventListener("keydown",le),()=>window.removeEventListener("keydown",le)},[J]),S.useEffect(()=>{let le=!1;return y(!0),A(""),r("codex-api-key").then(ge=>{le||m(Array.isArray(ge)?ge:[])}).catch(ge=>{if(le)return;const ie=ge instanceof Error?ge.message:"";A(ie||t("notification.refresh_failed"))}).finally(()=>{le||y(!1)}),()=>{le=!0}},[r,t]),S.useEffect(()=>{if(g)return;if(se){const ge={...se,websockets:!!se.websockets,headers:Zm(se.headers),modelEntries:lp(se.models),excludedText:Hy(se.excludedModels)};T(ge),M(n_(ge));return}const le=h1();T(le),M(n_(le))},[se,g]);const fe=S.useMemo(()=>Ro(k.headers),[k.headers]),re=S.useMemo(()=>bD(k.modelEntries),[k.modelEntries]),ue=S.useMemo(()=>Ta(k.excludedText??""),[k.excludedText]),ee=S.useMemo(()=>k.priority!==void 0&&Number.isFinite(k.priority)?Math.trunc(k.priority):null,[k.priority]),Ie=S.useMemo(()=>!Yd(L.headers,fe),[L.headers,fe]),Ke=S.useMemo(()=>!rp(L.models,re),[L.models,re]),ht=S.useMemo(()=>!Qd(L.excludedModels,ue),[L.excludedModels,ue]),wt=L.apiKey!==k.apiKey.trim()||L.priority!==ee||L.prefix!==String(k.prefix??"").trim()||L.baseUrl!==String(k.baseUrl??"").trim()||L.websockets!==!!k.websockets||L.proxyUrl!==String(k.proxyUrl??"").trim()||Ie||Ke||ht,ft=!g&&!b&&!oe&&!F,{allowNextNavigation:Xe}=Xd({enabled:ft,shouldBlock:({currentLocation:le,nextLocation:ge})=>wt&&le.pathname!==ge.pathname,dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}}),Ot=!o&&!b&&!g&&!oe&&!F,zt=S.useMemo(()=>{const le=I.trim().toLowerCase();return le?R.filter(ge=>{const ie=(ge.name||"").toLowerCase(),Ae=(ge.alias||"").toLowerCase(),tt=(ge.description||"").toLowerCase();return ie.includes(le)||Ae.includes(le)||tt.includes(le)}):R},[R,I]),sn=S.useMemo(()=>zt.map(le=>le.name),[zt]),an=S.useMemo(()=>sn.length>0&&sn.every(le=>K.has(le)),[K,sn]),Fe=S.useCallback(le=>{if(!le.length)return;let ge=0;T(ie=>{const Ae=new Map;ie.modelEntries.forEach(jt=>{const kt=jt.name.trim();kt&&Ae.set(kt.toLowerCase(),{name:kt,alias:jt.alias?.trim()||""})}),le.forEach(jt=>{const kt=String(jt.name??"").trim();if(!kt)return;const on=kt.toLowerCase();Ae.has(on)||(Ae.set(on,{name:kt,alias:jt.alias??""}),ge+=1)});const tt=Array.from(Ae.values());return{...ie,modelEntries:tt.length?tt:[{name:"",alias:""}]}}),ge>0&&s(t("ai_providers.codex_models_fetch_added",{count:ge}),"success")},[T,s,t]),mt=S.useCallback(async()=>{const le=U.current+=1;Q(!0),B("");try{const ge=gs(k.headers),ie=Object.keys(ge).some(jt=>jt.toLowerCase()==="authorization"),Ae=k.apiKey.trim()||void 0,tt=await Tr.fetchV1ModelsViaApiCall(k.baseUrl??"",ie?void 0:Ae,ge);if(U.current!==le)return;z(tt)}catch(ge){if(U.current!==le)return;z([]);const ie=qZ(ge);B(`${t("ai_providers.codex_models_fetch_error")}: ${ie}`)}finally{U.current===le&&Q(!1)}},[k.apiKey,k.baseUrl,k.headers,t]);S.useEffect(()=>{if(!O){X.current="",U.current+=1,Q(!1);return}const le=Tr.buildV1ModelsEndpoint(k.baseUrl??"");if(E(le),z([]),V(""),$(new Set),B(""),!le)return;const ge=gs(k.headers),ie=Object.keys(ge).some(on=>on.toLowerCase()==="authorization");if(!(!!k.apiKey.trim()||ie))return;const jt=Object.entries(ge).sort(([on],[xt])=>on.toLowerCase().localeCompare(xt.toLowerCase())).map(([on,xt])=>`${on}:${xt}`).join("|"),kt=`${le}||${k.apiKey.trim()}||${jt}`;X.current!==kt&&(X.current=kt,mt())},[mt,k.apiKey,k.baseUrl,k.headers,O]),S.useEffect(()=>{const le=new Set(R.map(ge=>ge.name));$(ge=>{let ie=!1;const Ae=new Set;return ge.forEach(tt=>{le.has(tt)?Ae.add(tt):ie=!0}),ie?Ae:ge})},[R]);const je=le=>{$(ge=>{const ie=new Set(ge);return ie.has(le)?ie.delete(le):ie.add(le),ie})},pt=S.useCallback(()=>{$(le=>{const ge=new Set(le);return sn.forEach(ie=>ge.add(ie)),ge})},[sn]),at=S.useCallback(()=>{$(new Set)},[]),Ee=()=>{const le=R.filter(ge=>K.has(ge.name));le.length&&Fe(le),N(!1)},ut=S.useCallback(async()=>{if(!Ot)return;const ge=(k.baseUrl??"").trim()||void 0;if(!ge){s(t("notification.codex_base_url_required"),"error");return}v(!0),A("");try{const ie={apiKey:k.apiKey.trim(),priority:k.priority!==void 0?Math.trunc(k.priority):void 0,prefix:k.prefix?.trim()||void 0,baseUrl:ge,websockets:!!k.websockets,proxyUrl:k.proxyUrl?.trim()||void 0,headers:gs(k.headers),models:rk(k.modelEntries),excludedModels:Ta(k.excludedText)},Ae=Y!==null?f.map((tt,jt)=>jt===Y?ie:tt):[...f,ie];await yi.saveCodexConfigs(Ae),c("codex-api-key",Ae),d("codex-api-key"),s(t(Y!==null?"notification.codex_config_updated":"notification.codex_config_added"),"success"),Xe(),M(n_(k)),J()}catch(ie){const Ae=ie instanceof Error?ie.message:"";A(Ae),s(`${t("notification.update_failed")}: ${Ae}`,"error")}finally{v(!1)}},[Xe,Ot,d,f,Y,k,J,s,t,c]),Mt=!o&&!b&&!g&&!oe&&!F&&!!(k.baseUrl??"").trim(),Nt=!o&&!b&&!D&&K.size>0;return h.jsx(Fo,{ref:te,contentClassName:Wt.content,title:Z,onBack:J,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:J,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:ut,loading:b,disabled:!Ot,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:g,loadingLabel:t("common.loading"),children:h.jsxs(Dt,{children:[x&&h.jsx("div",{className:"error-box",children:x}),oe||F?h.jsx("div",{className:"hint",children:t("common.invalid_provider_index")}):h.jsxs(h.Fragment,{children:[h.jsx(ot,{label:t("ai_providers.codex_add_modal_key_label"),value:k.apiKey,onChange:le=>T(ge=>({...ge,apiKey:le.target.value})),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.priority_label"),hint:t("ai_providers.priority_hint"),type:"number",step:1,value:k.priority??"",onChange:le=>{const ge=le.target.value,ie=ge.trim()===""?void 0:Number(ge);T(Ae=>({...Ae,priority:ie!==void 0&&Number.isFinite(ie)?ie:void 0}))},disabled:o||b}),h.jsx(ot,{label:t("ai_providers.prefix_label"),placeholder:t("ai_providers.prefix_placeholder"),value:k.prefix??"",onChange:le=>T(ge=>({...ge,prefix:le.target.value})),hint:t("ai_providers.prefix_hint"),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.codex_add_modal_url_label"),value:k.baseUrl??"",onChange:le=>T(ge=>({...ge,baseUrl:le.target.value})),disabled:o||b}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.codex_websockets_label")}),h.jsx(Si,{checked:!!k.websockets,onChange:le=>T(ge=>({...ge,websockets:le})),disabled:o||b,ariaLabel:t("ai_providers.codex_websockets_label")}),h.jsx("div",{className:"hint",children:t("ai_providers.codex_websockets_hint")})]}),h.jsx(ot,{label:t("ai_providers.codex_add_modal_proxy_label"),value:k.proxyUrl??"",onChange:le=>T(ge=>({...ge,proxyUrl:le.target.value})),disabled:o||b}),h.jsx(cp,{entries:k.headers,onChange:le=>T(ge=>({...ge,headers:le})),addLabel:t("common.custom_headers_add"),keyPlaceholder:t("common.custom_headers_key_placeholder"),valuePlaceholder:t("common.custom_headers_value_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:o||b}),h.jsxs("div",{className:H.modelConfigSection,children:[h.jsxs("div",{className:H.modelConfigHeader,children:[h.jsx("label",{className:H.modelConfigTitle,children:t("ai_providers.codex_models_label")}),h.jsxs("div",{className:H.modelConfigToolbar,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>T(le=>({...le,modelEntries:[...le.modelEntries,{name:"",alias:""}]})),disabled:o||b,children:t("ai_providers.codex_models_add_btn")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>N(!0),disabled:!Mt,children:t("ai_providers.codex_models_fetch_button")})]})]}),h.jsx("div",{className:H.sectionHint,children:t("ai_providers.codex_models_hint")}),h.jsx($d,{entries:k.modelEntries,onChange:le=>T(ge=>({...ge,modelEntries:le})),namePlaceholder:t("common.model_name_placeholder"),aliasPlaceholder:t("common.model_alias_placeholder"),disabled:o||b,hideAddButton:!0,className:H.modelInputList,rowClassName:H.modelInputRow,inputClassName:H.modelInputField,removeButtonClassName:H.modelRowRemoveButton,removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.excluded_models_label")}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.excluded_models_placeholder"),value:k.excludedText,onChange:le=>T(ge=>({...ge,excludedText:le.target.value})),rows:4,disabled:o||b}),h.jsx("div",{className:"hint",children:t("ai_providers.excluded_models_hint")})]}),h.jsx(Ss,{open:O,title:t("ai_providers.codex_models_fetch_title"),onClose:()=>N(!1),width:720,footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>N(!1),disabled:D,children:t("common.cancel")}),h.jsx(me,{size:"sm",onClick:Ee,disabled:!Nt,children:t("ai_providers.codex_models_fetch_apply")})]}),children:h.jsxs("div",{className:H.openaiModelsContent,children:[h.jsx("div",{className:H.sectionHint,children:t("ai_providers.codex_models_fetch_hint")}),h.jsxs("div",{className:H.openaiModelsEndpointSection,children:[h.jsx("label",{className:H.openaiModelsEndpointLabel,children:t("ai_providers.codex_models_fetch_url_label")}),h.jsxs("div",{className:H.openaiModelsEndpointControls,children:[h.jsx("input",{className:`input ${H.openaiModelsEndpointInput}`,readOnly:!0,value:P}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void mt(),loading:D,disabled:o||b,children:t("ai_providers.codex_models_fetch_refresh")})]})]}),h.jsx(ot,{label:t("ai_providers.codex_models_search_label"),placeholder:t("ai_providers.codex_models_search_placeholder"),value:I,onChange:le=>V(le.target.value),disabled:D}),R.length>0&&h.jsxs("div",{className:H.modelDiscoveryToolbar,children:[h.jsxs("div",{className:H.modelDiscoveryToolbarActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:pt,disabled:o||b||D||zt.length===0||an,children:t("ai_providers.model_discovery_select_visible")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:at,disabled:o||b||D||K.size===0,children:t("ai_providers.model_discovery_clear_selection")})]}),h.jsx("div",{className:H.modelDiscoverySelectionSummary,children:t("ai_providers.model_discovery_selected_count",{count:K.size})})]}),G&&h.jsx("div",{className:"error-box",children:G}),D?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.codex_models_fetch_loading")}):R.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.codex_models_fetch_empty")}):zt.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.codex_models_search_empty")}):h.jsx("div",{className:H.modelDiscoveryList,children:zt.map(le=>{const ge=K.has(le.name);return h.jsx(Ml,{checked:ge,onChange:()=>je(le.name),disabled:o||b||D,ariaLabel:le.name,className:`${H.modelDiscoveryRow} ${ge?H.modelDiscoveryRowSelected:""}`,labelClassName:H.modelDiscoverySelectionLabel,label:h.jsxs("div",{className:H.modelDiscoveryMeta,children:[h.jsxs("div",{className:H.modelDiscoveryName,children:[le.name,le.alias&&h.jsx("span",{className:H.modelDiscoveryAlias,children:le.alias})]}),le.description&&h.jsx("div",{className:H.modelDiscoveryDesc,children:le.description})]})},le.name)})})]})})]})]})})}const f1=()=>({apiKey:"",priority:void 0,prefix:"",baseUrl:"",proxyUrl:"",headers:[],modelEntries:[{name:"",alias:""}],excludedModels:[],excludedText:""}),KZ=t=>{if(!t)return null;const e=Number.parseInt(t,10);return Number.isFinite(e)?e:null},Tf=t=>String(t??"").trim().replace(/^\/?models\//i,""),vD=t=>(t??[]).reduce((e,n)=>{const i=Tf(n?.name??"").trim();let s=String(n?.alias??"").trim();return i&&s===i&&(s=""),!i&&!s||e.push({name:i,alias:s}),e},[]),i_=t=>({apiKey:String(t.apiKey??"").trim(),priority:t.priority!==void 0&&Number.isFinite(t.priority)?Math.trunc(t.priority):null,prefix:String(t.prefix??"").trim(),baseUrl:String(t.baseUrl??"").trim(),proxyUrl:String(t.proxyUrl??"").trim(),headers:Ro(t.headers),models:vD(t.modelEntries),excludedModels:Ta(t.excludedText??"")});function EO(){const{t}=et(),e=Ri(),n=Qn(),i=Wm(),{showNotification:s}=_n(),o=nn(le=>le.connectionStatus)!=="connected",r=Bt(le=>le.fetchConfig),c=Bt(le=>le.updateConfigValue),d=Bt(le=>le.clearCache),[f,m]=S.useState([]),[g,y]=S.useState(!0),[b,v]=S.useState(!1),[x,A]=S.useState(""),[k,T]=S.useState(()=>f1()),[L,M]=S.useState(()=>i_(f1())),[O,N]=S.useState(!1),[P,E]=S.useState(""),[R,z]=S.useState([]),[D,Q]=S.useState(!1),[G,B]=S.useState(""),[I,V]=S.useState(""),[K,$]=S.useState(new Set),X=S.useRef(""),U=S.useRef(0),q=typeof i.index=="string",Y=S.useMemo(()=>KZ(i.index),[i.index]),oe=q&&Y===null,se=S.useMemo(()=>{if(Y!==null)return f[Y]},[f,Y]),F=Y!==null&&!se,Z=t(Y!==null?"ai_providers.gemini_edit_modal_title":"ai_providers.gemini_add_modal_title"),J=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]),te=Do({onBack:J});S.useEffect(()=>{const le=ge=>{ge.key==="Escape"&&J()};return window.addEventListener("keydown",le),()=>window.removeEventListener("keydown",le)},[J]),S.useEffect(()=>{let le=!1;return y(!0),A(""),r("gemini-api-key").then(ge=>{le||m(Array.isArray(ge)?ge:[])}).catch(ge=>{if(le)return;const ie=ge instanceof Error?ge.message:"";A(ie||t("notification.refresh_failed"))}).finally(()=>{le||y(!1)}),()=>{le=!0}},[r,t]),S.useEffect(()=>{if(g)return;if(se){const{headers:ge,models:ie,...Ae}=se,tt={...Ae,headers:Zm(ge),modelEntries:lp(ie).map(jt=>({...jt,name:Tf(jt.name)})),excludedText:Hy(se.excludedModels)};T(tt),M(i_(tt));return}const le=f1();T(le),M(i_(le))},[se,g]);const fe=!o&&!b&&!g&&!oe&&!F,re=S.useMemo(()=>{const le=I.trim().toLowerCase();return le?R.filter(ge=>{const ie=(ge.name||"").toLowerCase(),Ae=(ge.alias||"").toLowerCase(),tt=(ge.description||"").toLowerCase();return ie.includes(le)||Ae.includes(le)||tt.includes(le)}):R},[R,I]),ue=S.useMemo(()=>re.map(le=>le.name),[re]),ee=S.useMemo(()=>ue.length>0&&ue.every(le=>K.has(le)),[K,ue]),Ie=S.useCallback(le=>{if(!le.length)return;let ge=0;T(ie=>{const Ae=new Map;ie.modelEntries.forEach(jt=>{const kt=Tf(jt.name);kt&&Ae.set(kt,{name:kt,alias:jt.alias?.trim()||""})}),le.forEach(jt=>{const kt=Tf(jt.name);!kt||Ae.has(kt)||(Ae.set(kt,{name:kt,alias:jt.alias??""}),ge+=1)});const tt=Array.from(Ae.values());return{...ie,modelEntries:tt.length?tt:[{name:"",alias:""}]}}),ge>0&&s(t("ai_providers.gemini_models_fetch_added",{count:ge}),"success")},[T,s,t]),Ke=S.useCallback(async()=>{const le=U.current+=1;Q(!0),B("");const ge=gs(k.headers);try{const ie=await Tr.fetchGeminiModelsViaApiCall(k.baseUrl??"",k.apiKey.trim()||void 0,ge);if(U.current!==le)return;z(ie)}catch(ie){if(U.current!==le)return;z([]);const Ae=ie instanceof Error?ie.message:typeof ie=="string"?ie:"",tt=Object.keys(ge).some(xt=>xt.toLowerCase()==="x-goog-api-key"),jt=Object.keys(ge).some(xt=>xt.toLowerCase()==="authorization"),on=Ae.toLowerCase().includes("api key")||Ae.includes("401")?` [diag: apiKeyField=${k.apiKey.trim()?"yes":"no"}, customXGoogApiKey=${tt?"yes":"no"}, customAuthorization=${jt?"yes":"no"}]`:"";B(`${t("ai_providers.gemini_models_fetch_error")}: ${Ae}${on}`)}finally{U.current===le&&Q(!1)}},[k.apiKey,k.baseUrl,k.headers,t]);S.useEffect(()=>{if(!O){X.current="",U.current+=1,Q(!1);return}const le=Tr.buildGeminiModelsEndpoint(k.baseUrl??"");E(le),z([]),V(""),$(new Set),B("");const ge=gs(k.headers),ie=Object.keys(ge).some(xt=>xt.toLowerCase()==="x-goog-api-key"),Ae=Object.keys(ge).some(xt=>xt.toLowerCase()==="authorization");if(!(!!k.apiKey.trim()||ie||Ae))return;const kt=Object.entries(ge).sort(([xt],[ui])=>xt.toLowerCase().localeCompare(ui.toLowerCase())).map(([xt,ui])=>`${xt}:${ui}`).join("|"),on=`${le}||${k.apiKey.trim()}||${kt}`;X.current!==on&&(X.current=on,Ke())},[Ke,k.apiKey,k.baseUrl,k.headers,O]),S.useEffect(()=>{const le=new Set(R.map(ge=>ge.name));$(ge=>{let ie=!1;const Ae=new Set;return ge.forEach(tt=>{le.has(tt)?Ae.add(tt):ie=!0}),ie?Ae:ge})},[R]);const ht=le=>{$(ge=>{const ie=new Set(ge);return ie.has(le)?ie.delete(le):ie.add(le),ie})},wt=S.useCallback(()=>{$(le=>{const ge=new Set(le);return ue.forEach(ie=>ge.add(ie)),ge})},[ue]),ft=S.useCallback(()=>{$(new Set)},[]),Xe=()=>{const le=R.filter(ge=>K.has(ge.name));le.length&&Ie(le),N(!1)},Ot=S.useMemo(()=>Ro(k.headers),[k.headers]),zt=S.useMemo(()=>vD(k.modelEntries),[k.modelEntries]),sn=S.useMemo(()=>Ta(k.excludedText??""),[k.excludedText]),an=S.useMemo(()=>k.priority!==void 0&&Number.isFinite(k.priority)?Math.trunc(k.priority):null,[k.priority]),Fe=S.useMemo(()=>!Yd(L.headers,Ot),[L.headers,Ot]),mt=S.useMemo(()=>!rp(L.models,zt),[L.models,zt]),je=S.useMemo(()=>!Qd(L.excludedModels,sn),[L.excludedModels,sn]),pt=L.apiKey!==k.apiKey.trim()||L.priority!==an||L.prefix!==String(k.prefix??"").trim()||L.baseUrl!==String(k.baseUrl??"").trim()||L.proxyUrl!==String(k.proxyUrl??"").trim()||Fe||mt||je,at=!g&&!b&&!oe&&!F,{allowNextNavigation:Ee}=Xd({enabled:at,shouldBlock:({currentLocation:le,nextLocation:ge})=>pt&&le.pathname!==ge.pathname,dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}}),ut=S.useCallback(async()=>{if(fe){v(!0),A("");try{const le=k.modelEntries.map(Ae=>({...Ae,name:Tf(Ae.name)})),ge={apiKey:k.apiKey.trim(),priority:k.priority!==void 0?Math.trunc(k.priority):void 0,prefix:k.prefix?.trim()||void 0,baseUrl:k.baseUrl?.trim()||void 0,proxyUrl:k.proxyUrl?.trim()||void 0,headers:gs(k.headers),models:rk(le),excludedModels:Ta(k.excludedText)},ie=Y!==null?f.map((Ae,tt)=>tt===Y?ge:Ae):[...f,ge];await yi.saveGeminiKeys(ie),c("gemini-api-key",ie),d("gemini-api-key"),s(t(Y!==null?"notification.gemini_key_updated":"notification.gemini_key_added"),"success"),Ee(),M(i_(k)),J()}catch(le){const ge=le instanceof Error?le.message:"";A(ge),s(`${t("notification.update_failed")}: ${ge}`,"error")}finally{v(!1)}}},[Ee,fe,d,f,Y,k,J,s,t,c]),Mt=!o&&!b&&!g&&!oe&&!F,Nt=!o&&!b&&!D&&K.size>0;return h.jsx(Fo,{ref:te,contentClassName:Wt.content,title:Z,onBack:J,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:J,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:ut,loading:b,disabled:!fe,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:g,loadingLabel:t("common.loading"),children:h.jsxs(Dt,{children:[x&&h.jsx("div",{className:"error-box",children:x}),oe||F?h.jsx("div",{className:"hint",children:t("common.invalid_provider_index")}):h.jsxs(h.Fragment,{children:[h.jsx(ot,{label:t("ai_providers.gemini_add_modal_key_label"),placeholder:t("ai_providers.gemini_add_modal_key_placeholder"),value:k.apiKey,onChange:le=>T(ge=>({...ge,apiKey:le.target.value})),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.priority_label"),hint:t("ai_providers.priority_hint"),type:"number",step:1,value:k.priority??"",onChange:le=>{const ge=le.target.value,ie=ge.trim()===""?void 0:Number(ge);T(Ae=>({...Ae,priority:ie!==void 0&&Number.isFinite(ie)?ie:void 0}))},disabled:o||b}),h.jsx(ot,{label:t("ai_providers.prefix_label"),placeholder:t("ai_providers.prefix_placeholder"),value:k.prefix??"",onChange:le=>T(ge=>({...ge,prefix:le.target.value})),hint:t("ai_providers.prefix_hint"),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.gemini_base_url_label"),placeholder:t("ai_providers.gemini_base_url_placeholder"),value:k.baseUrl??"",onChange:le=>T(ge=>({...ge,baseUrl:le.target.value})),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.gemini_add_modal_proxy_label"),placeholder:t("ai_providers.gemini_add_modal_proxy_placeholder"),value:k.proxyUrl??"",onChange:le=>T(ge=>({...ge,proxyUrl:le.target.value})),disabled:o||b}),h.jsx(cp,{entries:k.headers,onChange:le=>T(ge=>({...ge,headers:le})),addLabel:t("common.custom_headers_add"),keyPlaceholder:t("common.custom_headers_key_placeholder"),valuePlaceholder:t("common.custom_headers_value_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:o||b}),h.jsxs("div",{className:H.modelConfigSection,children:[h.jsxs("div",{className:H.modelConfigHeader,children:[h.jsx("label",{className:H.modelConfigTitle,children:t("ai_providers.gemini_models_label")}),h.jsxs("div",{className:H.modelConfigToolbar,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>T(le=>({...le,modelEntries:[...le.modelEntries,{name:"",alias:""}]})),disabled:o||b,children:t("ai_providers.gemini_models_add_btn")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>N(!0),disabled:!Mt,children:t("ai_providers.gemini_models_fetch_button")})]})]}),h.jsx("div",{className:H.sectionHint,children:t("ai_providers.gemini_models_hint")}),h.jsx($d,{entries:k.modelEntries,onChange:le=>T(ge=>({...ge,modelEntries:le})),namePlaceholder:t("common.model_name_placeholder"),aliasPlaceholder:t("common.model_alias_placeholder"),disabled:o||b,hideAddButton:!0,className:H.modelInputList,rowClassName:H.modelInputRow,inputClassName:H.modelInputField,removeButtonClassName:H.modelRowRemoveButton,removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete")})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.excluded_models_label")}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.excluded_models_placeholder"),value:k.excludedText,onChange:le=>T(ge=>({...ge,excludedText:le.target.value})),rows:4,disabled:o||b}),h.jsx("div",{className:"hint",children:t("ai_providers.excluded_models_hint")})]}),h.jsx(Ss,{open:O,title:t("ai_providers.gemini_models_fetch_title"),onClose:()=>N(!1),width:720,footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>N(!1),disabled:D,children:t("common.cancel")}),h.jsx(me,{size:"sm",onClick:Xe,disabled:!Nt,children:t("ai_providers.gemini_models_fetch_apply")})]}),children:h.jsxs("div",{className:H.openaiModelsContent,children:[h.jsx("div",{className:H.sectionHint,children:t("ai_providers.gemini_models_fetch_hint")}),h.jsxs("div",{className:H.openaiModelsEndpointSection,children:[h.jsx("label",{className:H.openaiModelsEndpointLabel,children:t("ai_providers.gemini_models_fetch_url_label")}),h.jsxs("div",{className:H.openaiModelsEndpointControls,children:[h.jsx("input",{className:`input ${H.openaiModelsEndpointInput}`,readOnly:!0,value:P}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void Ke(),loading:D,disabled:o||b,children:t("ai_providers.gemini_models_fetch_refresh")})]})]}),h.jsx(ot,{label:t("ai_providers.gemini_models_search_label"),placeholder:t("ai_providers.gemini_models_search_placeholder"),value:I,onChange:le=>V(le.target.value),disabled:D}),R.length>0&&h.jsxs("div",{className:H.modelDiscoveryToolbar,children:[h.jsxs("div",{className:H.modelDiscoveryToolbarActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:wt,disabled:o||b||D||re.length===0||ee,children:t("ai_providers.model_discovery_select_visible")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:ft,disabled:o||b||D||K.size===0,children:t("ai_providers.model_discovery_clear_selection")})]}),h.jsx("div",{className:H.modelDiscoverySelectionSummary,children:t("ai_providers.model_discovery_selected_count",{count:K.size})})]}),G&&h.jsx("div",{className:"error-box",children:G}),D?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.gemini_models_fetch_loading")}):R.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.gemini_models_fetch_empty")}):re.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.gemini_models_search_empty")}):h.jsx("div",{className:H.modelDiscoveryList,children:re.map(le=>{const ge=K.has(le.name);return h.jsx(Ml,{checked:ge,onChange:()=>ht(le.name),disabled:o||b||D,ariaLabel:le.name,className:`${H.modelDiscoveryRow} ${ge?H.modelDiscoveryRowSelected:""}`,labelClassName:H.modelDiscoverySelectionLabel,label:h.jsxs("div",{className:H.modelDiscoveryMeta,children:[h.jsxs("div",{className:H.modelDiscoveryName,children:[le.name,le.alias&&h.jsx("span",{className:H.modelDiscoveryAlias,children:le.alias})]}),le.description&&h.jsx("div",{className:H.modelDiscoveryDesc,children:le.description})]})},le.name)})})]})})]})]})})}const jO=()=>({name:"",priority:void 0,prefix:"",baseUrl:"",headers:[],apiKeyEntries:[fd()],modelEntries:[{name:"",alias:""}],testModel:void 0}),HZ=t=>{if(!t)return null;const e=Number.parseInt(t,10);return Number.isFinite(e)?e:null},RO=t=>t instanceof Error?t.message:typeof t=="string"?t:"",xD=t=>(t??[]).reduce((e,n)=>{const i=String(n?.name??"").trim();let s=String(n?.alias??"").trim();return i&&(s===""||s===i)&&(s=""),!i&&!s||e.push({name:i,alias:s}),e},[]),VZ=t=>!t||typeof t!="object"?[]:Object.entries(t).map(([e,n])=>({key:String(e??"").trim(),value:String(n??"").trim()})).filter(e=>e.key||e.value).sort((e,n)=>{const i=e.key.toLowerCase().localeCompare(n.key.toLowerCase());return i!==0?i:e.value.localeCompare(n.value)}),SD=t=>(t??[]).reduce((e,n)=>{const i=String(n?.apiKey??"").trim(),s=String(n?.proxyUrl??"").trim(),a=VZ(n?.headers);return!i&&!s&&a.length===0||e.push({apiKey:i,proxyUrl:s,headers:a}),e},[]),m1=(t,e)=>({name:String(t.name??"").trim(),priority:t.priority!==void 0&&Number.isFinite(t.priority)?Math.trunc(t.priority):null,prefix:String(t.prefix??"").trim(),baseUrl:String(t.baseUrl??"").trim(),headers:Ro(t.headers),apiKeyEntries:SD(t.apiKeyEntries),models:xD(t.modelEntries),testModel:String(e??"").trim()}),WZ=(t,e)=>{if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.apiKey!==s.apiKey||i.proxyUrl!==s.proxyUrl||!Yd(i.headers,s.headers))return!1}return!0};function DO(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i}=_n(),s=Wm(),a=typeof s.index=="string",o=S.useMemo(()=>HZ(s.index),[s.index]),r=a&&o===null,d=nn(je=>je.connectionStatus)!=="connected",f=Bt(je=>je.config),m=Bt(je=>je.fetchConfig),g=Bt(je=>je.isCacheValid),[y,b]=S.useState(()=>f?.openaiCompatibility??[]),[v,x]=S.useState(()=>!g("openai-compatibility")),[A,k]=S.useState(!1),T=S.useMemo(()=>r?`openai:invalid:${s.index??"unknown"}`:o===null?"openai:new":`openai:${o}`,[o,r,s.index]),L=Ua(je=>je.drafts[T]),M=Ua(je=>je.acquireDraft),O=Ua(je=>je.releaseDraft),N=Ua(je=>je.initDraft),P=Ua(je=>je.setDraftBaseline),E=Ua(je=>je.setDraftForm),R=Ua(je=>je.setDraftTestModel),z=Ua(je=>je.setDraftTestStatus),D=Ua(je=>je.setDraftTestMessage),Q=Ua(je=>je.setDraftKeyTestStatus),G=Ua(je=>je.resetDraftKeyTestStatuses),B=L?.form??jO(),I=L?.testModel??"",V=L?.testStatus??"idle",K=L?.testMessage??"",$=L?.keyTestStatuses??[],X=S.useCallback(je=>{E(T,je)},[T,E]),U=S.useCallback(je=>{R(T,je)},[T,R]),q=S.useCallback(je=>{z(T,je)},[T,z]),Y=S.useCallback(je=>{D(T,je)},[T,D]),oe=S.useCallback((je,pt)=>{Q(T,je,pt)},[T,Q]),se=S.useCallback(je=>{G(T,je)},[T,G]),F=S.useMemo(()=>{if(o!==null)return y[o]},[o,y]),Z=o!==null&&!F,J=S.useMemo(()=>B.modelEntries.map(je=>je.name.trim()).filter(Boolean),[B.modelEntries]);S.useEffect(()=>(M(T),()=>O(T)),[M,T,O]);const te=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]);S.useEffect(()=>{let je=!1;return g("openai-compatibility")||x(!0),m("openai-compatibility").then(at=>{je||b(Array.isArray(at)?at:[])}).catch(at=>{if(je)return;const Ee=RO(at)||t("notification.refresh_failed");i(`${t("notification.load_failed")}: ${Ee}`,"error")}).finally(()=>{je||x(!1)}),()=>{je=!0}},[m,g,i,t]),S.useEffect(()=>{if(!v&&!L?.initialized)if(F){const je=lp(F.models),pt={name:F.name,priority:F.priority,prefix:F.prefix??"",baseUrl:F.baseUrl,headers:Zm(F.headers),testModel:F.testModel,modelEntries:je,apiKeyEntries:F.apiKeyEntries?.length?F.apiKeyEntries:[fd()]},at=je.map(Mt=>Mt.name.trim()).filter(Boolean),Ee=F.testModel&&at.includes(F.testModel)?F.testModel:at[0]||"",ut=m1(pt,Ee);N(T,{baseline:ut,form:pt,testModel:Ee,testStatus:"idle",testMessage:"",keyTestStatuses:[]})}else{const je=jO();N(T,{baseline:m1(je,""),form:je,testModel:"",testStatus:"idle",testMessage:"",keyTestStatuses:[]})}},[L?.initialized,T,N,F,v]),S.useEffect(()=>{if(!v){if(J.length===0){I&&(U(""),q("idle"),Y(""));return}(!I||!J.includes(I))&&(U(J[0]),q("idle"),Y(""))}},[J,v,Y,U,q,I]);const fe=S.useCallback(je=>{if(!je.length)return;let pt=0;X(at=>{const Ee=new Map;at.modelEntries.forEach(Mt=>{const Nt=Mt.name.trim();Nt&&Ee.set(Nt,{name:Nt,alias:Mt.alias?.trim()||""})}),je.forEach(Mt=>{const Nt=Mt.name.trim();!Nt||Ee.has(Nt)||(Ee.set(Nt,{name:Nt,alias:Mt.alias??""}),pt+=1)});const ut=Array.from(Ee.values());return{...at,modelEntries:ut.length?ut:[{name:"",alias:""}]}}),pt>0&&i(t("ai_providers.openai_models_fetch_added",{count:pt}),"success")},[X,i,t]),re=!L?.initialized,ue=L?.baseline??null,ee=S.useMemo(()=>Ro(B.headers),[B.headers]),Ie=S.useMemo(()=>xD(B.modelEntries),[B.modelEntries]),Ke=S.useMemo(()=>SD(B.apiKeyEntries),[B.apiKeyEntries]),ht=S.useMemo(()=>B.priority!==void 0&&Number.isFinite(B.priority)?Math.trunc(B.priority):null,[B.priority]),wt=S.useMemo(()=>String(I??"").trim(),[I]),ft=S.useMemo(()=>ue?!Yd(ue.headers,ee):!1,[ue,ee]),Xe=S.useMemo(()=>ue?!rp(ue.models,Ie):!1,[ue,Ie]),Ot=S.useMemo(()=>ue?!WZ(ue.apiKeyEntries,Ke):!1,[ue,Ke]),zt=!!L?.initialized&&ue!==null&&(ue.name!==B.name.trim()||ue.priority!==ht||ue.prefix!==B.prefix.trim()||ue.baseUrl!==B.baseUrl.trim()||ue.testModel!==wt||ft||Ot||Xe),sn=S.useMemo(()=>a?`/ai-providers/openai/${s.index??""}`:"/ai-providers/openai/new",[a,s.index]),an=!re&&!A&&!r&&!Z,{allowNextNavigation:Fe}=Xd({enabled:an,shouldBlock:({nextLocation:je})=>{const pt=je.pathname,at=pt===sn||pt.startsWith(`${sn}/`);return zt&&!at},dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}}),mt=S.useCallback(async()=>{const je=B.name.trim(),pt=B.baseUrl.trim();if(!je||!pt){i(t("notification.openai_provider_required"),"error");return}k(!0);try{const at={name:je,prefix:B.prefix?.trim()||void 0,baseUrl:pt,headers:gs(B.headers),apiKeyEntries:B.apiKeyEntries.map(le=>({apiKey:le.apiKey.trim(),proxyUrl:le.proxyUrl?.trim()||void 0,headers:le.headers}))};B.priority!==void 0&&Number.isFinite(B.priority)&&(at.priority=Math.trunc(B.priority));const Ee=I.trim();Ee&&(at.testModel=Ee);const ut=rk(B.modelEntries);ut.length&&(at.models=ut);const Mt=o!==null?y.map((le,ge)=>ge===o?at:le):[...y,at];await yi.saveOpenAIProviders(Mt);let Nt=Mt;try{const le=await m("openai-compatibility",!0);Array.isArray(le)&&(Nt=le)}catch{}b(Nt),i(t(o!==null?"notification.openai_provider_updated":"notification.openai_provider_added"),"success"),Fe(),P(T,m1(B,I)),te()}catch(at){i(`${t("notification.update_failed")}: ${RO(at)}`,"error")}finally{k(!1)}},[Fe,T,o,m,B,te,y,P,i,t,I]);return h.jsx(Dw,{context:{hasIndexParam:a,editIndex:o,invalidIndexParam:r,invalidIndex:Z,disableControls:d,loading:re,saving:A,form:B,setForm:X,testModel:I,setTestModel:U,testStatus:V,setTestStatus:q,testMessage:K,setTestMessage:Y,keyTestStatuses:$,setDraftKeyTestStatus:oe,resetDraftKeyTestStatuses:se,availableModels:J,handleBack:te,handleSave:mt,mergeDiscoveredModels:fe}})}const FO=3e4,GZ=t=>t instanceof Error?t.message:typeof t=="string"?t:"";function $Z(){return h.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:H.statusIconSpin,children:[h.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"2"}),h.jsx("path",{d:"M8 1A7 7 0 0 1 8 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})}function XZ(){return h.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[h.jsx("circle",{cx:"8",cy:"8",r:"8",fill:"var(--success-color, #22c55e)"}),h.jsx("path",{d:"M4.5 8L7 10.5L11.5 6",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function QZ(){return h.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[h.jsx("circle",{cx:"8",cy:"8",r:"8",fill:"var(--danger-color, #c65746)"}),h.jsx("path",{d:"M5 5L11 11M11 5L5 11",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function YZ(){return h.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:h.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"var(--text-tertiary, #9ca3af)",strokeWidth:"2"})})}function JZ({status:t}){switch(t){case"loading":return h.jsx($Z,{});case"success":return h.jsx(XZ,{});case"error":return h.jsx(QZ,{});default:return h.jsx(YZ,{})}}function IO(){const{t}=et(),e=Ri(),{showNotification:n}=_n(),{hasIndexParam:i,invalidIndexParam:s,invalidIndex:a,disableControls:o,loading:r,saving:c,form:d,setForm:f,testModel:m,setTestModel:g,testStatus:y,setTestStatus:b,testMessage:v,setTestMessage:x,keyTestStatuses:A,setDraftKeyTestStatus:k,resetDraftKeyTestStatuses:T,availableModels:L,handleBack:M,handleSave:O}=Oy(),N=t(i?"ai_providers.openai_edit_modal_title":"ai_providers.openai_add_modal_title"),P=Do({onBack:M}),[E,R]=S.useState(!1);S.useEffect(()=>{const q=Y=>{Y.key==="Escape"&&M()};return window.addEventListener("keydown",q),()=>window.removeEventListener("keydown",q)},[M]);const z=!o&&!r&&!c&&!s&&!a&&!E,D=d.modelEntries.some(q=>q.name.trim()),Q=d.apiKeyEntries.some(q=>q.apiKey?.trim()),G=S.useMemo(()=>{const q=new Set;return d.modelEntries.reduce((Y,oe)=>{const se=oe.name.trim();if(!se||q.has(se))return Y;q.add(se);const F=oe.alias.trim();return Y.push({value:se,label:F&&F!==se?`${se} (${F})`:se}),Y},[])},[d.modelEntries]),B=S.useMemo(()=>{const q=d.headers.map(oe=>`${oe.key.trim()}:${oe.value.trim()}`).join("|"),Y=d.modelEntries.map(oe=>`${oe.name.trim()}:${oe.alias.trim()}`).join("|");return[d.baseUrl.trim(),m.trim(),q,Y].join("||")},[d.baseUrl,d.headers,d.modelEntries,m]),I=S.useRef(B);S.useEffect(()=>{I.current!==B&&(I.current=B,T(d.apiKeyEntries.length),b("idle"),x(""))},[B,d.apiKeyEntries.length,T,b,x]);const V=S.useCallback(async q=>{const Y=d.baseUrl.trim();if(!Y)return n(t("notification.openai_test_url_required"),"error"),!1;const oe=lO(Y);if(!oe)return n(t("notification.openai_test_url_required"),"error"),!1;const se=d.apiKeyEntries[q];if(!se?.apiKey?.trim())return k(q,{status:"error",message:t("notification.openai_test_key_required")}),!1;const F=m.trim()||L[0]||"";if(!F)return n(t("notification.openai_test_model_required"),"error"),!1;const J={"Content-Type":"application/json",...gs(d.headers)};q4(J,"authorization")||(J.Authorization=`Bearer ${se.apiKey.trim()}`),k(q,{status:"loading",message:""});try{const te=await ea.request({method:"POST",url:oe,header:Object.keys(J).length?J:void 0,data:JSON.stringify({model:F,messages:[{role:"user",content:"Hi"}],stream:!1,max_tokens:5})},{timeout:FO});if(te.statusCode<200||te.statusCode>=300)throw new Error(Ha(te));return k(q,{status:"success",message:""}),!0}catch(te){const fe=GZ(te),ee=(typeof te=="object"&&te!==null&&"code"in te?String(te.code):"")==="ECONNABORTED"||fe.toLowerCase().includes("timeout")?t("ai_providers.openai_test_timeout",{seconds:FO/1e3}):fe;return k(q,{status:"error",message:ee}),!1}},[d.baseUrl,d.apiKeyEntries,d.headers,m,L,t,k,n]),K=S.useCallback(async q=>{if(E)return!1;R(!0);try{return await V(q)}finally{R(!1)}},[E,V]),$=S.useCallback(async()=>{if(E)return;const q=d.baseUrl.trim();if(!q){const F=t("notification.openai_test_url_required");b("error"),x(F),n(F,"error");return}if(!lO(q)){const F=t("notification.openai_test_url_required");b("error"),x(F),n(F,"error");return}if(!(m.trim()||L[0]||"")){const F=t("notification.openai_test_model_required");b("error"),x(F),n(F,"error");return}const se=d.apiKeyEntries.map((F,Z)=>F.apiKey?.trim()?Z:-1).filter(F=>F>=0);if(se.length===0){const F=t("notification.openai_test_key_required");b("error"),x(F),n(F,"error");return}R(!0),b("loading"),x(t("ai_providers.openai_test_running")),T(d.apiKeyEntries.length);try{const Z=(await Promise.all(se.map(te=>V(te)))).filter(Boolean).length,J=se.length-Z;if(J===0){const te=t("ai_providers.openai_test_all_success",{count:Z});b("success"),x(te),n(te,"success")}else if(Z===0){const te=t("ai_providers.openai_test_all_failed",{count:J});b("error"),x(te),n(te,"error")}else{const te=t("ai_providers.openai_test_all_partial",{success:Z,failed:J});b("error"),x(te),n(te,"warning")}}finally{R(!1)}},[E,d.baseUrl,d.apiKeyEntries,m,L,t,b,x,T,V,n]),X=()=>{if(!d.baseUrl.trim()){n(t("ai_providers.openai_models_fetch_invalid_url"),"error");return}e("models")},U=q=>{const Y=q.length?q:[fd()],oe=(Z,J,te)=>{const fe=Y.map((re,ue)=>ue===Z?{...re,[J]:te}:re);f(re=>({...re,apiKeyEntries:fe})),k(Z,{status:"idle",message:""}),b("idle"),x("")},se=Z=>{const J=Y.filter((fe,re)=>re!==Z),te=J.length?J.length:1;f(fe=>({...fe,apiKeyEntries:J.length?J:[fd()]})),T(te),b("idle"),x("")},F=()=>{f(Z=>({...Z,apiKeyEntries:[...Y,fd()]})),T(Y.length+1),b("idle"),x("")};return h.jsxs("div",{className:H.keyEntriesList,children:[h.jsxs("div",{className:H.keyEntriesToolbar,children:[h.jsxs("span",{className:H.keyEntriesCount,children:[t("ai_providers.openai_keys_count"),": ",Y.length]}),h.jsx(me,{variant:"secondary",size:"sm",onClick:F,disabled:c||o||E,className:H.addKeyButton,children:t("ai_providers.openai_keys_add_btn")})]}),h.jsxs("div",{className:H.keyTableShell,children:[h.jsxs("div",{className:H.keyTableHeader,children:[h.jsx("div",{className:H.keyTableColIndex,children:"#"}),h.jsx("div",{className:H.keyTableColStatus,children:t("common.status")}),h.jsx("div",{className:H.keyTableColKey,children:t("common.api_key")}),h.jsx("div",{className:H.keyTableColProxy,children:t("common.proxy_url")}),h.jsx("div",{className:H.keyTableColAction,children:t("common.action")})]}),Y.map((Z,J)=>{const te=A[J]?.status??"idle",fe=!!Z.apiKey?.trim()&&D;return h.jsxs("div",{className:H.keyTableRow,children:[h.jsx("div",{className:H.keyTableColIndex,children:J+1}),h.jsx("div",{className:H.keyTableColStatus,title:A[J]?.message||"",children:h.jsx(JZ,{status:te})}),h.jsx("div",{className:H.keyTableColKey,children:h.jsx("input",{type:"text",value:Z.apiKey,onChange:re=>oe(J,"apiKey",re.target.value),disabled:c||o||E,className:`input ${H.keyTableInput}`,placeholder:t("ai_providers.openai_key_placeholder")})}),h.jsx("div",{className:H.keyTableColProxy,children:h.jsx("input",{type:"text",value:Z.proxyUrl??"",onChange:re=>oe(J,"proxyUrl",re.target.value),disabled:c||o||E,className:`input ${H.keyTableInput}`,placeholder:t("ai_providers.openai_proxy_placeholder")})}),h.jsxs("div",{className:H.keyTableColAction,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void K(J),disabled:c||o||E||!fe,loading:te==="loading",children:t("ai_providers.openai_test_single_action")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>se(J),disabled:c||o||E||Y.length<=1,children:t("common.delete")})]})]},J)})]})]})};return h.jsx(Fo,{ref:P,contentClassName:Wt.content,title:N,onBack:M,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:M,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:()=>void O(),loading:c,disabled:!z,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:r,loadingLabel:t("common.loading"),children:h.jsx(Dt,{children:s||a?h.jsx("div",{className:H.sectionHint,children:t("common.invalid_provider_index")}):h.jsxs("div",{className:H.openaiEditForm,children:[h.jsx(ot,{label:t("ai_providers.openai_add_modal_name_label"),value:d.name,onChange:q=>f(Y=>({...Y,name:q.target.value})),disabled:c||o||E}),h.jsx(ot,{label:t("ai_providers.priority_label"),hint:t("ai_providers.priority_hint"),type:"number",step:1,value:d.priority??"",onChange:q=>{const Y=q.target.value,oe=Y.trim()===""?void 0:Number(Y);f(se=>({...se,priority:oe!==void 0&&Number.isFinite(oe)?oe:void 0}))},disabled:c||o||E}),h.jsx(ot,{label:t("ai_providers.prefix_label"),placeholder:t("ai_providers.prefix_placeholder"),value:d.prefix??"",onChange:q=>f(Y=>({...Y,prefix:q.target.value})),hint:t("ai_providers.prefix_hint"),disabled:c||o||E}),h.jsx(ot,{label:t("ai_providers.openai_add_modal_url_label"),value:d.baseUrl,onChange:q=>f(Y=>({...Y,baseUrl:q.target.value})),disabled:c||o||E}),h.jsx(cp,{entries:d.headers,onChange:q=>f(Y=>({...Y,headers:q})),addLabel:t("common.custom_headers_add"),keyPlaceholder:t("common.custom_headers_key_placeholder"),valuePlaceholder:t("common.custom_headers_value_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:c||o||E}),h.jsxs("div",{className:H.modelConfigSection,children:[h.jsxs("div",{className:H.modelConfigHeader,children:[h.jsx("label",{className:H.modelConfigTitle,children:t(i?"ai_providers.openai_edit_modal_models_label":"ai_providers.openai_add_modal_models_label")}),h.jsxs("div",{className:H.modelConfigToolbar,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>f(q=>({...q,modelEntries:[...q.modelEntries,{name:"",alias:""}]})),disabled:c||o||E,children:t("ai_providers.openai_models_add_btn")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:X,disabled:c||o||E,children:t("ai_providers.openai_models_fetch_button")})]})]}),h.jsx("div",{className:H.sectionHint,children:t("ai_providers.openai_models_hint")}),h.jsx($d,{entries:d.modelEntries,onChange:q=>f(Y=>({...Y,modelEntries:q})),namePlaceholder:t("common.model_name_placeholder"),aliasPlaceholder:t("common.model_alias_placeholder"),disabled:c||o||E,hideAddButton:!0,className:H.modelInputList,rowClassName:H.modelInputRow,inputClassName:H.modelInputField,removeButtonClassName:H.modelRowRemoveButton,removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete")}),h.jsxs("div",{className:H.modelTestPanel,children:[h.jsxs("div",{className:H.modelTestMeta,children:[h.jsx("label",{className:H.modelTestLabel,children:t("ai_providers.openai_test_title")}),h.jsx("span",{className:H.modelTestHint,children:t("ai_providers.openai_test_hint")})]}),h.jsxs("div",{className:H.modelTestControls,children:[h.jsx(Vi,{value:m,options:G,onChange:q=>{g(q),b("idle"),x("")},placeholder:L.length?t("ai_providers.openai_test_select_placeholder"):t("ai_providers.openai_test_select_empty"),className:H.openaiTestSelect,ariaLabel:t("ai_providers.openai_test_title"),disabled:c||o||E||y==="loading"||L.length===0}),h.jsx(me,{variant:y==="error"?"danger":"secondary",size:"sm",onClick:()=>void $(),loading:y==="loading",disabled:c||o||E||y==="loading"||!D||!Q,title:t("ai_providers.openai_test_all_hint"),className:H.modelTestAllButton,children:t("ai_providers.openai_test_all_action")})]})]}),v&&h.jsx("div",{className:`status-badge ${y==="error"?"error":y==="success"?"success":"muted"}`,children:v})]}),h.jsxs("div",{className:H.keyEntriesSection,children:[h.jsxs("div",{className:H.keyEntriesHeader,children:[h.jsx("label",{className:H.keyEntriesTitle,children:t("ai_providers.openai_add_modal_keys_label")}),h.jsx("span",{className:H.keyEntriesHint,children:t("ai_providers.openai_keys_hint")})]}),U(d.apiKeyEntries)]})]})})})}const p1=t=>t instanceof Error?t.message:typeof t=="string"?t:"";function UO(){const{t}=et(),e=Ri(),{disableControls:n,loading:i,saving:s,form:a,mergeDiscoveredModels:o}=Oy(),[r,c]=S.useState(""),[d,f]=S.useState([]),[m,g]=S.useState(!1),[y,b]=S.useState(""),[v,x]=S.useState(""),[A,k]=S.useState(new Set),T=S.useMemo(()=>{const G=v.trim().toLowerCase();return G?d.filter(B=>{const I=(B.name||"").toLowerCase(),V=(B.alias||"").toLowerCase(),K=(B.description||"").toLowerCase();return I.includes(G)||V.includes(G)||K.includes(G)}):d},[d,v]),L=S.useMemo(()=>T.map(G=>G.name),[T]),M=S.useMemo(()=>L.length>0&&L.every(G=>A.has(G)),[A,L]),O=S.useCallback(async({allowFallback:G=!0}={})=>{const B=a.baseUrl.trim();if(B){g(!0),b("");try{const I=gs(a.headers),V=a.apiKeyEntries.find(X=>X.apiKey?.trim())?.apiKey?.trim(),K=q4(I,"authorization"),$=await Tr.fetchModelsViaApiCall(B,K?void 0:V,I);f($)}catch(I){if(G)try{const V=await Tr.fetchModelsViaApiCall(B);f(V);return}catch(V){const K=p1(V)||p1(I);f([]),b(`${t("ai_providers.openai_models_fetch_error")}: ${K}`)}else f([]),b(`${t("ai_providers.openai_models_fetch_error")}: ${p1(I)}`)}finally{g(!1)}}},[a.apiKeyEntries,a.baseUrl,a.headers,t]);S.useEffect(()=>{i||(c(C$(a.baseUrl)),f([]),x(""),k(new Set),b(""),O())},[O,a.baseUrl,i]),S.useEffect(()=>{const G=new Set(d.map(B=>B.name));k(B=>{let I=!1;const V=new Set;return B.forEach(K=>{G.has(K)?V.add(K):I=!0}),I?V:B})},[d]);const N=S.useCallback(()=>{e(-1)},[e]),P=Do({onBack:N});S.useEffect(()=>{const G=B=>{B.key==="Escape"&&N()};return window.addEventListener("keydown",G),()=>window.removeEventListener("keydown",G)},[N]);const E=G=>{k(B=>{const I=new Set(B);return I.has(G)?I.delete(G):I.add(G),I})},R=S.useCallback(()=>{k(G=>{const B=new Set(G);return L.forEach(I=>B.add(I)),B})},[L]),z=S.useCallback(()=>{k(new Set)},[]),D=()=>{const G=d.filter(B=>A.has(B.name));G.length&&o(G),N()},Q=!n&&!s&&!m&&A.size>0;return h.jsx(Fo,{ref:P,contentClassName:Wt.content,title:t("ai_providers.openai_models_fetch_title"),onBack:N,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:N,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:D,disabled:!Q,className:Wt.floatingSaveButton,children:t("ai_providers.openai_models_fetch_apply")})]}),isLoading:i,loadingLabel:t("common.loading"),children:h.jsx(Dt,{children:h.jsxs("div",{className:H.openaiModelsContent,children:[h.jsx("div",{className:H.sectionHint,children:t("ai_providers.openai_models_fetch_hint")}),h.jsxs("div",{className:H.openaiModelsEndpointSection,children:[h.jsx("label",{className:H.openaiModelsEndpointLabel,children:t("ai_providers.openai_models_fetch_url_label")}),h.jsxs("div",{className:H.openaiModelsEndpointControls,children:[h.jsx("input",{className:`input ${H.openaiModelsEndpointInput}`,readOnly:!0,value:r}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void O({allowFallback:!0}),loading:m,disabled:n||s,children:t("ai_providers.openai_models_fetch_refresh")})]})]}),h.jsx(ot,{label:t("ai_providers.openai_models_search_label"),placeholder:t("ai_providers.openai_models_search_placeholder"),value:v,onChange:G=>x(G.target.value),disabled:m}),d.length>0&&h.jsxs("div",{className:H.modelDiscoveryToolbar,children:[h.jsxs("div",{className:H.modelDiscoveryToolbarActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:R,disabled:n||s||m||T.length===0||M,children:t("ai_providers.model_discovery_select_visible")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:z,disabled:n||s||m||A.size===0,children:t("ai_providers.model_discovery_clear_selection")})]}),h.jsx("div",{className:H.modelDiscoverySelectionSummary,children:t("ai_providers.model_discovery_selected_count",{count:A.size})})]}),y&&h.jsx("div",{className:"error-box",children:y}),m?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.openai_models_fetch_loading")}):d.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.openai_models_fetch_empty")}):T.length===0?h.jsx("div",{className:H.sectionHint,children:t("ai_providers.openai_models_search_empty")}):h.jsx("div",{className:H.modelDiscoveryList,children:T.map(G=>{const B=A.has(G.name);return h.jsx(Ml,{checked:B,onChange:()=>E(G.name),disabled:n||s||m,ariaLabel:G.name,className:`${H.modelDiscoveryRow} ${B?H.modelDiscoveryRowSelected:""}`,labelClassName:H.modelDiscoverySelectionLabel,label:h.jsxs("div",{className:H.modelDiscoveryMeta,children:[h.jsxs("div",{className:H.modelDiscoveryName,children:[G.name,G.alias&&h.jsx("span",{className:H.modelDiscoveryAlias,children:G.alias})]}),G.description&&h.jsx("div",{className:H.modelDiscoveryDesc,children:G.description})]})},G.name)})})]})})})}const g1=()=>({apiKey:"",prefix:"",baseUrl:"",proxyUrl:"",headers:[],models:[],excludedModels:[],modelEntries:[{name:"",alias:""}],excludedText:""}),ZZ=t=>{if(!t)return null;const e=Number.parseInt(t,10);return Number.isFinite(e)?e:null},wD=t=>(t??[]).reduce((e,n)=>{const i=String(n?.name??"").trim(),s=String(n?.alias??"").trim();return!i&&!s||e.push({name:i,alias:s}),e},[]),s_=t=>({apiKey:String(t.apiKey??"").trim(),priority:t.priority!==void 0&&Number.isFinite(t.priority)?Math.trunc(t.priority):null,prefix:String(t.prefix??"").trim(),baseUrl:String(t.baseUrl??"").trim(),proxyUrl:String(t.proxyUrl??"").trim(),headers:Ro(t.headers),models:wD(t.modelEntries),excludedModels:Ta(t.excludedText??"")});function BO(){const{t}=et(),e=Ri(),n=Qn(),i=Wm(),{showNotification:s}=_n(),o=nn(F=>F.connectionStatus)!=="connected",r=Bt(F=>F.fetchConfig),c=Bt(F=>F.updateConfigValue),d=Bt(F=>F.clearCache),[f,m]=S.useState([]),[g,y]=S.useState(!0),[b,v]=S.useState(!1),[x,A]=S.useState(""),[k,T]=S.useState(()=>g1()),[L,M]=S.useState(()=>s_(g1())),O=typeof i.index=="string",N=S.useMemo(()=>ZZ(i.index),[i.index]),P=O&&N===null,E=S.useMemo(()=>{if(N!==null)return f[N]},[f,N]),R=N!==null&&!E,z=t(N!==null?"ai_providers.vertex_edit_modal_title":"ai_providers.vertex_add_modal_title"),D=S.useCallback(()=>{if(n.state?.fromAiProviders){e(-1);return}e("/ai-providers",{replace:!0})},[n.state,e]),Q=Do({onBack:D});S.useEffect(()=>{const F=Z=>{Z.key==="Escape"&&D()};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[D]),S.useEffect(()=>{let F=!1;return y(!0),A(""),Promise.all([r("vertex-api-key"),yi.getVertexConfigs()]).then(([Z,J])=>{if(F)return;const te=Array.isArray(J)?J:Array.isArray(Z)?Z:[];m(te),c("vertex-api-key",te),d("vertex-api-key")}).catch(Z=>{if(F)return;const J=Z instanceof Error?Z.message:"";A(J||t("notification.refresh_failed"))}).finally(()=>{F||y(!1)}),()=>{F=!0}},[d,r,t,c]),S.useEffect(()=>{if(g)return;if(E){const Z={...E,headers:Zm(E.headers),modelEntries:lp(E.models),excludedText:Hy(E.excludedModels)};T(Z),M(s_(Z));return}const F=g1();T(F),M(s_(F))},[E,g]);const G=!o&&!b&&!g&&!P&&!R,B=S.useMemo(()=>Ro(k.headers),[k.headers]),I=S.useMemo(()=>wD(k.modelEntries),[k.modelEntries]),V=S.useMemo(()=>Ta(k.excludedText??""),[k.excludedText]),K=S.useMemo(()=>k.priority!==void 0&&Number.isFinite(k.priority)?Math.trunc(k.priority):null,[k.priority]),$=S.useMemo(()=>!Yd(L.headers,B),[L.headers,B]),X=S.useMemo(()=>!rp(L.models,I),[L.models,I]),U=S.useMemo(()=>!Qd(L.excludedModels,V),[L.excludedModels,V]),q=L.apiKey!==k.apiKey.trim()||L.priority!==K||L.prefix!==String(k.prefix??"").trim()||L.baseUrl!==String(k.baseUrl??"").trim()||L.proxyUrl!==String(k.proxyUrl??"").trim()||$||X||U,Y=!g&&!b&&!P&&!R,{allowNextNavigation:oe}=Xd({enabled:Y,shouldBlock:({currentLocation:F,nextLocation:Z})=>q&&F.pathname!==Z.pathname,dialog:{title:t("common.unsaved_changes_title"),message:t("common.unsaved_changes_message"),confirmText:t("common.leave"),cancelText:t("common.stay"),variant:"danger"}}),se=S.useCallback(async()=>{if(!G)return;const Z=(k.baseUrl??"").trim()||void 0;v(!0),A("");try{const J={apiKey:k.apiKey.trim(),priority:k.priority!==void 0&&Number.isFinite(k.priority)?Math.trunc(k.priority):void 0,prefix:k.prefix?.trim()||void 0,baseUrl:Z,proxyUrl:k.proxyUrl?.trim()||void 0,headers:gs(k.headers),models:k.modelEntries.map(fe=>{const re=fe.name.trim(),ue=fe.alias.trim();return!re||!ue?null:{name:re,alias:ue}}).filter(Boolean),excludedModels:Ta(k.excludedText)},te=N!==null?f.map((fe,re)=>re===N?J:fe):[...f,J];await yi.saveVertexConfigs(te),c("vertex-api-key",te),d("vertex-api-key"),s(t(N!==null?"notification.vertex_config_updated":"notification.vertex_config_added"),"success"),oe(),M(s_(k)),D()}catch(J){const te=J instanceof Error?J.message:"";A(te),s(`${t("notification.update_failed")}: ${te}`,"error")}finally{v(!1)}},[oe,G,d,f,N,k,D,s,t,c]);return h.jsx(Fo,{ref:Q,contentClassName:Wt.content,title:z,onBack:D,backLabel:t("common.back"),backAriaLabel:t("common.back"),hideTopBarBackButton:!0,hideTopBarRightAction:!0,floatingAction:h.jsxs("div",{className:Wt.floatingActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:D,className:Wt.floatingBackButton,children:t("common.back")}),h.jsx(me,{size:"sm",onClick:se,loading:b,disabled:!G,className:Wt.floatingSaveButton,children:t("common.save")})]}),isLoading:g,loadingLabel:t("common.loading"),children:h.jsxs(Dt,{children:[x&&h.jsx("div",{className:"error-box",children:x}),P||R?h.jsx("div",{className:"hint",children:t("common.invalid_provider_index")}):h.jsxs(h.Fragment,{children:[h.jsx(ot,{label:t("ai_providers.vertex_add_modal_key_label"),placeholder:t("ai_providers.vertex_add_modal_key_placeholder"),value:k.apiKey,onChange:F=>T(Z=>({...Z,apiKey:F.target.value})),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.prefix_label"),placeholder:t("ai_providers.prefix_placeholder"),value:k.prefix??"",onChange:F=>T(Z=>({...Z,prefix:F.target.value})),hint:t("ai_providers.prefix_hint"),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.vertex_add_modal_url_label"),placeholder:t("ai_providers.vertex_add_modal_url_placeholder"),value:k.baseUrl??"",onChange:F=>T(Z=>({...Z,baseUrl:F.target.value})),disabled:o||b}),h.jsx(ot,{label:t("ai_providers.vertex_add_modal_proxy_label"),placeholder:t("ai_providers.vertex_add_modal_proxy_placeholder"),value:k.proxyUrl??"",onChange:F=>T(Z=>({...Z,proxyUrl:F.target.value})),disabled:o||b}),h.jsx(cp,{entries:k.headers,onChange:F=>T(Z=>({...Z,headers:F})),addLabel:t("common.custom_headers_add"),keyPlaceholder:t("common.custom_headers_key_placeholder"),valuePlaceholder:t("common.custom_headers_value_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:o||b}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.vertex_models_label")}),h.jsx($d,{entries:k.modelEntries,onChange:F=>T(Z=>({...Z,modelEntries:F})),addLabel:t("ai_providers.vertex_models_add_btn"),namePlaceholder:t("common.model_name_placeholder"),aliasPlaceholder:t("common.model_alias_placeholder"),removeButtonTitle:t("common.delete"),removeButtonAriaLabel:t("common.delete"),disabled:o||b})]}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:t("ai_providers.excluded_models_label")}),h.jsx("textarea",{className:"input",placeholder:t("ai_providers.excluded_models_placeholder"),value:k.excludedText,onChange:F=>T(Z=>({...Z,excludedText:F.target.value})),rows:4,disabled:o||b}),h.jsx("div",{className:"hint",children:t("ai_providers.excluded_models_hint")})]})]})]})})}async function Gy(t){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}try{if(typeof document>"u"||!document.body)return!1;const e=document.activeElement,n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.opacity="0",n.style.pointerEvents="none",n.style.left="-9999px",n.style.top="0",n.style.width="1px",n.style.height="1px",n.style.padding="0",n.style.border="0",document.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);const i=document.execCommand("copy");if(document.body.removeChild(n),e?.focus)try{e.focus()}catch{}return i}catch{return!1}}const kD="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generator:%20visioncortex%20VTracer%200.6.4%20--%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='59'%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L27,40%20L32,50%20L36,54%20L35,59%20L30,59%20L22,52%20L11,35%20L6,33%20L-1,34%20L-6,39%20L-14,52%20L-22,59%20L-28,59%20L-27,53%20L-22,47%20L-17,34%20L-10,12%20L-5,3%20Z%20'%20fill='%233789F9'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L25,35%20L21,34%20L16,29%20L11,26%20L7,20%20L7,18%20L2,16%20L-3,15%20L-8,18%20L-12,19%20L-9,9%20L-4,2%20Z%20'%20fill='%236D80D8'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L8,0%20L14,4%20L19,14%20L20,19%20L13,15%20L10,12%20L3,10%20L-1,8%20L-7,7%20L-4,2%20Z%20'%20fill='%23D78240'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L5,1%20L10,4%20L12,9%20L1,8%20L-5,13%20L-10,21%20L-13,26%20L-16,26%20L-9,5%20L-4,2%20Z%20M6,7%20Z%20'%20fill='%233294CC'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,2%20L10,10%20L12,18%20L5,14%20L1,10%20L0,4%20L-3,3%20L0,2%20Z%20'%20fill='%23E45C49'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L9,1%20L12,3%20L12,5%20L7,6%20L4,8%20L-1,11%20L-5,12%20L-2,2%20Z%20'%20fill='%2390AE64'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L5,1%20L5,4%20L-2,7%20L-7,11%20L-11,10%20L-9,5%20L-4,2%20Z%20'%20fill='%2353A89A'%20transform='translate(25,14)'/%3e%3cpath%20d='M0,0%20L5,0%20L16,9%20L17,13%20L12,12%20L8,9%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%23B5677D'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,0%20L14,6%20L19,11%20L23,12%20L22,15%20L15,12%20L10,8%20L10,6%20L4,5%20Z%20'%20fill='%23778998'%20transform='translate(27,12)'/%3e%3cpath%20d='M0,0%20L4,2%20L-11,17%20L-12,14%20L-5,4%20Z%20'%20fill='%233390DF'%20transform='translate(26,21)'/%3e%3cpath%20d='M0,0%20L2,1%20L-4,5%20L-9,9%20L-13,13%20L-14,10%20L-13,7%20L-6,4%20L-3,1%20Z%20'%20fill='%233FA1B7'%20transform='translate(27,18)'/%3e%3cpath%20d='M0,0%20L4,0%20L9,5%20L13,6%20L12,9%20L5,6%20L0,2%20Z%20'%20fill='%238277BB'%20transform='translate(37,18)'/%3e%3cpath%20d='M0,0%20L5,1%20L7,6%20L-2,5%20Z%20M1,4%20Z%20'%20fill='%234989CF'%20transform='translate(30,17)'/%3e%3cpath%20d='M0,0%20L5,1%20L2,3%20L-3,6%20L-7,7%20L-6,3%20Z%20'%20fill='%2371B774'%20transform='translate(23,12)'/%3e%3cpath%20d='M0,0%20L7,1%20L9,7%20L5,6%20L0,1%20Z%20'%20fill='%236687E9'%20transform='translate(44,28)'/%3e%3cpath%20d='M0,0%20L7,0%20L5,1%20L5,3%20L8,4%20L4,5%20L-2,4%20Z%20'%20fill='%23C7AF38'%20transform='translate(23,3)'/%3e%3cpath%20d='M0,0%20L8,0%20L8,3%20L4,4%20L-4,3%20Z%20'%20fill='%23EF842A'%20transform='translate(28,0)'/%3e%3cpath%20d='M0,0%20L7,4%20L7,6%20L10,6%20L11,10%20L4,6%20L0,2%20Z%20'%20fill='%23CD5D67'%20transform='translate(37,9)'/%3e%3cpath%20d='M0,0%20L5,2%20L9,8%20L8,11%20L2,3%20L0,2%20Z%20'%20fill='%23F35241'%20transform='translate(36,1)'/%3e%3cpath%20d='M0,0%20L8,2%20L9,6%20L4,5%20L0,2%20Z%20'%20fill='%23A667A2'%20transform='translate(41,18)'/%3e%3cpath%20d='M0,0%20L9,1%20L8,3%20L-2,3%20Z%20'%20fill='%23A4B34C'%20transform='translate(21,7)'/%3e%3cpath%20d='M0,0%20L2,0%20L7,5%20L8,7%20L3,6%20L0,2%20Z%20'%20fill='%23617FCF'%20transform='translate(35,18)'/%3e%3cpath%20d='M0,0%20L5,2%20L8,7%20L4,5%20L0,2%20Z%20'%20fill='%239D7784'%20transform='translate(33,11)'/%3e%3cpath%20d='M0,0%20L6,2%20L6,4%20L0,3%20Z%20'%20fill='%23BC7F59'%20transform='translate(31,7)'/%3e%3c/svg%3e",CD="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cfilter%20id='master_svg0_278_51503'%20filterUnits='objectBoundingBox'%20color-interpolation-filters='sRGB'%20x='0'%20y='0'%20width='1'%20height='1'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='BackgroundImageFix'%20result='shape'/%3e%3cfeGaussianBlur%20in='BackgroundImageFix'%20stdDeviation='1.3333334922790527'/%3e%3cfeComposite%20in2='SourceAlpha'%20operator='in'%20result='effect1_foregroundBlur'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_foregroundBlur'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20x1='0.07353696972131729'%20y1='0.12899449467658997'%20x2='0.9907095821060244'%20y2='0.9383787344260006'%20id='master_svg1_93_40276'%3e%3cstop%20offset='0%25'%20stop-color='%235C5CFF'%20stop-opacity='1'/%3e%3cstop%20offset='100%25'%20stop-color='%23AE5CFF'%20stop-opacity='1'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%3e%3cg%20filter='url(%23master_svg0_278_51503)'%3e%3crect%20x='0'%20y='0'%20width='32'%20height='32'%20rx='16'%20fill='%23F0F2F5'%20fill-opacity='0'/%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M31.843111328125,14.751C31.315411328125,7.18121,25.497411328125,1.04691,17.966011328125,0.119698C10.434711328125,-0.807512,3.302541328125,3.73244,0.954596328125,10.9482C0.345662328125,12.8248,1.732821328125,14.751,3.705641328125,14.751C4.950051328125,14.7517,6.055631328125,13.9569,6.451401328125,12.7772C7.497331328125,9.65101,10.504411328125,3.91401,18.482011328125,3.91401Q29.445911328125,3.91401,31.843111328125,14.751ZM9.127681328125,17.3314L9.127681328125,13.0862Q9.127681328125,13.0022,9.144081328125,12.9198Q9.160481328125,12.8373,9.192641328125,12.7597Q9.224801328125,12.682,9.271501328125,12.6122Q9.318191328125,12.5423,9.377621328125,12.4828Q9.437051328125,12.4234,9.506931328125,12.3767Q9.576811328125,12.33,9.654461328125,12.2979Q9.732111328125,12.2657,9.814541328125,12.2493Q9.896971328125,12.2329,9.981021328125,12.2329L11.049211328125,12.2329Q11.133211328125,12.2329,11.215711328125,12.2493Q11.298111328125,12.2657,11.375811328125,12.2979Q11.453411328125,12.33,11.523311328125,12.3767Q11.593211328125,12.4234,11.652611328125,12.4828Q11.712011328125,12.5423,11.758711328125,12.6122Q11.805411328125,12.682,11.837611328125,12.7597Q11.869711328125,12.8373,11.886111328125,12.9198Q11.902511328125,13.0022,11.902511328125,13.0862L11.902511328125,17.3314Q11.902511328125,17.4154,11.886111328125,17.4978Q11.869711328125,17.5803,11.837611328125,17.6579Q11.805411328125,17.7356,11.758711328125,17.8055Q11.712011328125,17.8753,11.652611328125,17.9348Q11.593211328125,17.9942,11.523311328125,18.0409Q11.453411328125,18.0876,11.375811328125,18.1197Q11.298111328125,18.1519,11.215711328125,18.1683Q11.133211328125,18.1847,11.049211328125,18.1847L9.981021328125,18.1847Q9.896971328125,18.1847,9.814541328125,18.1683Q9.732111328125,18.1519,9.654461328125,18.1197Q9.576811328125,18.0876,9.506931328125,18.0409Q9.437051328125,17.9942,9.377621328125,17.9348Q9.318191328125,17.8753,9.271501328125,17.8055Q9.224801328125,17.7356,9.192641328125,17.6579Q9.160481328125,17.5803,9.144081328125,17.4978Q9.127681328125,17.4154,9.127681328125,17.3314ZM17.273611328125,17.3295C17.272611328125,17.8015,17.654911328125,18.1847,18.126911328125,18.1847L19.408411328125,18.1847C19.879011328125,18.1847,20.260711328125,17.8038,20.261811328125,17.3332L20.266411328125,15.2107L20.266411328125,15.2069L20.261811328125,13.0844C20.260711328125,12.6138,19.879011328125,12.2329,19.408411328125,12.2329L18.126911328125,12.2329C17.654911328125,12.2329,17.272611328125,12.6161,17.273611328125,13.0881L17.278211328125,15.2069L17.278211328125,15.2107L17.273611328125,17.3295ZM13.574711328125,28.0523C21.552211328125,28.0523,24.559311328125,22.3153,25.605811328125,19.1897C26.001411328125,18.0098,27.107111328125,17.215,28.351511328125,17.2158C30.323811328125,17.2158,31.711511328125,19.1416,31.102611328125,21.0181C30.552411328125,22.7189,29.716211328125,24.3134,28.629811328125,25.733L30.137611328125,30.2235L24.775211328125,29.3432C14.645911328125,36.0484,1.048779328125,29.3346,0.214111328125,17.2158Q2.611231328125,28.0523,13.574711328125,28.0523Z'%20fill-rule='evenodd'%20fill='url(%23master_svg1_93_40276)'%20fill-opacity='1'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",lk="data:image/svg+xml,%3csvg%20fill='%23FFFFFF'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23FFFFFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e",ck="data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M19.738%205.776c.163-.209.306-.4.457-.585.07-.087.064-.153-.004-.244-.655-.861-.717-1.817-.34-2.787.283-.73.909-1.072%201.674-1.145.477-.045.945.004%201.379.236.57.305.902.77%201.01%201.412.086.512.07%201.012-.075%201.508-.257.878-.888%201.333-1.753%201.448-.718.096-1.446.108-2.17.157-.056.004-.113%200-.178%200z'%20fill='%23027AFF'%3e%3c/path%3e%3cpath%20d='M17.962%201.844h-4.326l-3.425%207.81H5.369V1.878H1.5V22h3.87v-8.477h6.824a3.025%203.025%200%20002.743-1.75V22h3.87v-8.477a3.87%203.87%200%2000-3.588-3.86v-.01h-2.125a3.94%203.94%200%20002.323-2.12l2.545-5.689z'%3e%3c/path%3e%3c/svg%3e",uk="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-fill'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e",AD=new Set(["antigravity","claude","codex","gemini-cli","kimi"]),eS=3,tS=30,eee=/^[+-]?\d+$/,tee=new Set(["true","1","yes","y","on"]),nee=new Set(["false","0","no","n","off"]),zO={qwen:{light:{bg:"#ede5fd",text:"#5530c7"},dark:{bg:"#36208a",text:"#b5a3f0"}},kimi:{light:{bg:"#dce8ff",text:"#0560cf"},dark:{bg:"#003880",text:"#70b5ff"}},gemini:{light:{bg:"#e3f2fd",text:"#1565c0"},dark:{bg:"#0d47a1",text:"#64b5f6"}},"gemini-cli":{light:{bg:"#e0e8ff",text:"#1e4fa3"},dark:{bg:"#1c3f73",text:"#a8c7ff"}},aistudio:{light:{bg:"#f0f2f5",text:"#2f343c"},dark:{bg:"#373c42",text:"#cfd3db"}},claude:{light:{bg:"#fbece4",text:"#c05621"},dark:{bg:"#5e2c14",text:"#e8a882"}},codex:{light:{bg:"#eae7ff",text:"#3538d4"},dark:{bg:"#262395",text:"#b5b0ff"}},antigravity:{light:{bg:"#e0f7fa",text:"#006064"},dark:{bg:"#004d40",text:"#80deea"}},iflow:{light:{bg:"#f5e3fc",text:"#9025c8"},dark:{bg:"#521490",text:"#d49cf5"}},vertex:{light:{bg:"#e4edfd",text:"#2b5fbc"},dark:{bg:"#1a3d80",text:"#89b3f7"}},empty:{light:{bg:"#f5f5f5",text:"#616161"},dark:{bg:"#424242",text:"#bdbdbd"}},unknown:{light:{bg:"#f0f0f0",text:"#666666",border:"1px dashed #999999"},dark:{bg:"#3a3a3a",text:"#aaaaaa",border:"1px dashed #666666"}}},iee={antigravity:kD,aistudio:Pc,claude:ip,codex:Vy,gemini:Pc,"gemini-cli":Pc,iflow:CD,kimi:{light:ck,dark:lk},qwen:uk,vertex:Wy},a_=t=>Math.min(tS,Math.max(eS,Math.round(t))),see=(t,e,n)=>e===404?t("common.quota_update_required"):e===403?t("common.quota_check_credential"):n,Ys=t=>t.trim().toLowerCase(),ND=t=>{const e=t.status_message??t.statusMessage;return typeof e=="string"?e.trim():e==null?"":String(e).trim()},TD=t=>ND(t).length>0,ed=(t,e)=>{const n=`auth_files.filter_${e}`,i=t(n);return i!==n?i:e.toLowerCase()==="iflow"?"iFlow":e.charAt(0).toUpperCase()+e.slice(1)},MD=(t,e)=>{const n=zO[t]||zO.unknown;return e==="dark"&&n.dark?n.dark:n.light},LD=(t,e)=>{const n=iee[Ys(t)];return n?typeof n=="string"?n:e==="dark"?n.dark:n.light:null},pm=t=>{if(typeof t=="number")return Number.isInteger(t)?t:void 0;if(typeof t!="string")return;const e=t.trim();if(!e||!eee.test(e))return;const n=Number.parseInt(e,10);return Number.isSafeInteger(n)?n:void 0},OD=t=>{if(!Array.isArray(t))return[];const e=new Set,n=[];return t.forEach(i=>{const s=String(i??"").trim().toLowerCase();!s||e.has(s)||(e.add(s),n.push(s))}),n.sort((i,s)=>i.localeCompare(s))},aee=t=>OD(t.split(/[\n,]+/)),dk=t=>{if(typeof t=="boolean")return t;if(typeof t=="number"&&Number.isFinite(t))return t!==0;if(typeof t!="string")return;const e=t.trim().toLowerCase();if(e){if(tee.has(e))return!0;if(nee.has(e))return!1}},qO=t=>dk(t.websockets)??!1,oee=(t,e)=>{const n={...t};return delete n.websocket,n.websockets=e,n};function yl(t){const e=t.runtime_only??t.runtimeOnly;return typeof e=="boolean"?e:typeof e=="string"?e.trim().toLowerCase()==="true":!1}function ree(t,e){const n={success:0,failure:0},i=t?.name||"",s=t.auth_index??t.authIndex,a=rs(s);if(a&&e.byAuthIndex?.[a])return e.byAuthIndex[a];const o=i?mm(i):"";if(o&&e.bySource?.[o]){const r=e.bySource[o];if(r.success>0||r.failure>0)return r}if(i){const r=i.replace(/\.[^/.]+$/,"");if(r&&r!==i){const c=mm(r),d=c?e.bySource?.[c]:void 0;if(d&&(d.success>0||d.failure>0))return d}}return n}const lee=t=>{const e=t.modtime??t.modified;if(!e)return"-";const n=Number(e),i=Number.isFinite(n)&&!Number.isNaN(n)?new Date(n<1e12?n*1e3:n):new Date(String(e));return Number.isNaN(i.getTime())?"-":i.toLocaleString()},cee=(t,e,n)=>{const i=Ys(e);return(n[i]||n[e]||[]).some(a=>{if(a.includes("*")){const o=a.split("*").map(c=>c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*");return new RegExp(`^${o}$`,"i").test(t)}return a.toLowerCase()===t.toLowerCase()})},KO={qwen:{light:{bg:"#ede5fd",text:"#5530c7"},dark:{bg:"#36208a",text:"#b5a3f0"}},gemini:{light:{bg:"#e3f2fd",text:"#1565c0"},dark:{bg:"#0d47a1",text:"#64b5f6"}},"gemini-cli":{light:{bg:"#e0e8ff",text:"#1e4fa3"},dark:{bg:"#1c3f73",text:"#a8c7ff"}},aistudio:{light:{bg:"#f0f2f5",text:"#2f343c"},dark:{bg:"#373c42",text:"#cfd3db"}},claude:{light:{bg:"#fbece4",text:"#c05621"},dark:{bg:"#5e2c14",text:"#e8a882"}},codex:{light:{bg:"#eae7ff",text:"#3538d4"},dark:{bg:"#262395",text:"#b5b0ff"}},kimi:{light:{bg:"#dce8ff",text:"#0560cf"},dark:{bg:"#003880",text:"#70b5ff"}},antigravity:{light:{bg:"#e0f7fa",text:"#006064"},dark:{bg:"#004d40",text:"#80deea"}},iflow:{light:{bg:"#f5e3fc",text:"#9025c8"},dark:{bg:"#521490",text:"#d49cf5"}},vertex:{light:{bg:"#e4edfd",text:"#2b5fbc"},dark:{bg:"#1a3d80",text:"#89b3f7"}},empty:{light:{bg:"#f5f5f5",text:"#616161"},dark:{bg:"#424242",text:"#bdbdbd"}},unknown:{light:{bg:"#f0f0f0",text:"#666666",border:"1px dashed #999999"},dark:{bg:"#3a3a3a",text:"#aaaaaa",border:"1px dashed #666666"}}},uee=["https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels","https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:fetchAvailableModels","https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels"],dee={Authorization:"Bearer $TOKEN$","Content-Type":"application/json","User-Agent":"antigravity/1.11.5 windows/amd64"},hee=[{id:"claude-gpt",label:"Claude/GPT",identifiers:["claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium"]},{id:"gemini-3-pro",label:"Gemini 3 Pro",identifiers:["gemini-3-pro-high","gemini-3-pro-low"]},{id:"gemini-3-1-pro-series",label:"Gemini 3.1 Pro Series",identifiers:["gemini-3.1-pro-high","gemini-3.1-pro-low"]},{id:"gemini-2-5-flash",label:"Gemini 2.5 Flash",identifiers:["gemini-2.5-flash","gemini-2.5-flash-thinking"]},{id:"gemini-2-5-flash-lite",label:"Gemini 2.5 Flash Lite",identifiers:["gemini-2.5-flash-lite"]},{id:"gemini-2-5-cu",label:"Gemini 2.5 CU",identifiers:["rev19-uic3-1p"]},{id:"gemini-3-flash",label:"Gemini 3 Flash",identifiers:["gemini-3-flash"]},{id:"gemini-image",label:"gemini-3.1-flash-image",identifiers:["gemini-3.1-flash-image"],labelFromModel:!0}],fee="https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",mee="https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",PD={Authorization:"Bearer $TOKEN$","Content-Type":"application/json"},ED=[{id:"gemini-flash-lite-series",label:"Gemini Flash Lite Series",preferredModelId:"gemini-2.5-flash-lite",modelIds:["gemini-2.5-flash-lite"]},{id:"gemini-flash-series",label:"Gemini Flash Series",preferredModelId:"gemini-3-flash-preview",modelIds:["gemini-3-flash-preview","gemini-2.5-flash"]},{id:"gemini-pro-series",label:"Gemini Pro Series",preferredModelId:"gemini-3.1-pro-preview",modelIds:["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-2.5-pro"]}],pee=new Map(ED.map((t,e)=>[t.id,e])),gee=new Map(ED.flatMap(t=>t.modelIds.map(e=>[e,t]))),_ee=["gemini-2.0-flash"],yee="https://api.anthropic.com/api/oauth/profile",bee="https://api.anthropic.com/api/oauth/usage",HO={Authorization:"Bearer $TOKEN$","Content-Type":"application/json","anthropic-beta":"oauth-2025-04-20"},vee=[{key:"five_hour",id:"five-hour",labelKey:"claude_quota.five_hour"},{key:"seven_day",id:"seven-day",labelKey:"claude_quota.seven_day"},{key:"seven_day_oauth_apps",id:"seven-day-oauth-apps",labelKey:"claude_quota.seven_day_oauth_apps"},{key:"seven_day_opus",id:"seven-day-opus",labelKey:"claude_quota.seven_day_opus"},{key:"seven_day_sonnet",id:"seven-day-sonnet",labelKey:"claude_quota.seven_day_sonnet"},{key:"seven_day_cowork",id:"seven-day-cowork",labelKey:"claude_quota.seven_day_cowork"},{key:"iguana_necktie",id:"iguana-necktie",labelKey:"claude_quota.iguana_necktie"}],xee="https://chatgpt.com/backend-api/wham/usage",See={Authorization:"Bearer $TOKEN$","Content-Type":"application/json","User-Agent":"codex_cli_rs/0.76.0 (Debian 13.0.0; x86_64) WindowsTerminal"},wee="https://api.kimi.com/coding/v1/usages",kee={Authorization:"Bearer $TOKEN$"},VO="_vertex";function ys(t){if(typeof t=="string"){const e=t.trim();return e||null}return typeof t=="number"&&Number.isFinite(t)?t.toString():null}function Cee(t){const e=ys(t);return e?e.endsWith(VO)?e.slice(0,-VO.length):e:null}function Ll(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"){const e=t.trim();if(!e)return null;const n=Number(e);return Number.isFinite(n)?n:null}return null}function jD(t){const e=Ll(t);if(e!==null)return e;if(typeof t=="string"){const n=t.trim();if(!n)return null;if(n.endsWith("%")){const i=Number(n.slice(0,-1));return Number.isFinite(i)?i/100:null}}return null}function z0(t){const e=ys(t);return e?e.toLowerCase():null}function Aee(t){const e=t.trim();if(!e)return null;try{const n=e.replace(/-/g,"+").replace(/_/g,"/"),i=n.padEnd(Math.ceil(n.length/4)*4,"=");if(typeof window<"u"&&typeof window.atob=="function")return window.atob(i);if(typeof atob=="function")return atob(i)}catch{return null}return null}function Nee(t){if(!t)return null;if(typeof t=="object")return Array.isArray(t)?null:t;if(typeof t!="string")return null;const e=t.trim();if(!e)return null;try{const s=JSON.parse(e);if(s&&typeof s=="object")return s}catch{}const n=e.split(".");if(n.length<2)return null;const i=Aee(n[1]);if(!i)return null;try{const s=JSON.parse(i);if(s&&typeof s=="object")return s}catch{return null}return null}function Tee(t){const e=s=>{if(s==null)return null;if(typeof s=="string"){const a=s.trim();if(!a)return null;try{const o=JSON.parse(a);if(o&&typeof o=="object"&&!Array.isArray(o))return o}catch{return null}return null}return typeof s=="object"&&!Array.isArray(s)?s:null},n=e(t);if(!n)return null;if("models"in n)return n;const i=e(n.body);return i||n}function Mee(t){if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null}function Lee(t){if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null}function Oee(t){if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null}function Pee(t){if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null}function Eee(t){if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null}function jee(t){const e=Nee(t);return e?ys(e.chatgpt_account_id??e.chatgptAccountId):null}function Ree(t){const e=t&&typeof t.metadata=="object"&&t.metadata!==null?t.metadata:null,n=t&&typeof t.attributes=="object"&&t.attributes!==null?t.attributes:null,i=[t.id_token,e?.id_token,n?.id_token];for(const s of i){const a=jee(s);if(a)return a}return null}function Dee(t){const e=t&&typeof t.metadata=="object"&&t.metadata!==null?t.metadata:null,n=t&&typeof t.attributes=="object"&&t.attributes!==null?t.attributes:null,i=t&&typeof t.id_token=="object"&&t.id_token!==null?t.id_token:null,s=e&&typeof e.id_token=="object"&&e.id_token!==null?e.id_token:null,a=[t.plan_type,t.planType,t.plan_type,t.planType,t.id_token,i?.plan_type,i?.planType,e?.plan_type,e?.planType,e?.id_token,s?.plan_type,s?.planType,n?.plan_type,n?.planType,n?.id_token];for(const o of a){const r=z0(o);if(r)return r}return null}function Fee(t){if(typeof t!="string")return null;const e=Array.from(t.matchAll(/\(([^()]+)\)/g));if(e.length===0)return null;const n=e[e.length-1]?.[1]?.trim();return n||null}function Iee(t){const e=t&&typeof t.metadata=="object"&&t.metadata!==null?t.metadata:null,n=t&&typeof t.attributes=="object"&&t.attributes!==null?t.attributes:null,i=[t.account,t.account,e?.account,n?.account];for(const s of i){const a=Fee(s);if(a)return a}return null}function hk(t){if(!t)return"-";const e=new Date(t);return Number.isNaN(e.getTime())?"-":e.toLocaleString(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1})}function WO(t){if(!t)return"-";const e=new Date(t*1e3);return Number.isNaN(e.getTime())?"-":e.toLocaleString(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1})}function Uee(t){if(!t)return"-";const e=Ll(t.reset_at??t.resetAt);if(e!==null&&e>0)return WO(e);const n=Ll(t.reset_after_seconds??t.resetAfterSeconds);if(n!==null&&n>0){const i=Math.floor(Date.now()/1e3+n);return WO(i)}return"-"}function up(t,e){const n=new Error(t);return e!==void 0&&(n.status=e),n}function $y(t){if(typeof t=="object"&&t!==null&&"status"in t){const e=t.status;if(typeof e=="number"&&Number.isFinite(e))return e;const n=Number(e);if(Number.isFinite(n)&&n>0)return n}}function Bee(t,e){return e?t("kimi_quota.reset_hint",{hint:e}):""}function Jd(t){const e=t.provider??t.type??"";return String(e).trim().toLowerCase()}function zee(t){return Jd(t)==="antigravity"}function qee(t){return Jd(t)==="claude"}function Kee(t){return Jd(t)==="codex"}function Hee(t){return Jd(t)==="gemini-cli"}function Vee(t){return Jd(t)==="kimi"}function Wee(t){const e=t.runtime_only??t.runtimeOnly;return typeof e=="boolean"?e:typeof e=="string"?e.trim().toLowerCase()==="true":!1}function dp(t){const e=t.disabled;return typeof e=="boolean"?e:typeof e=="number"?e!==0:typeof e=="string"?e.trim().toLowerCase()==="true":!1}function Gee(t){return _ee.some(e=>t===e||t.startsWith(`${e}-`))}function $ee(t,e){if(!t)return e;if(!e)return t;const n=new Date(t).getTime(),i=new Date(e).getTime();return Number.isNaN(n)?e:Number.isNaN(i)||n<=i?t:e}function GO(t,e){return t===null?e:e===null?t:Math.min(t,e)}function Xee(t){if(t.length===0)return[];const e=new Map;t.forEach(i=>{if(Gee(i.modelId))return;const s=gee.get(i.modelId),a=s?.id??i.modelId,o=s?.label??i.modelId,r=i.tokenType??"",c=`${a}::${r}`,d=e.get(c);if(!d){const f=s?.preferredModelId,m=f&&i.modelId===f?i:void 0;e.set(c,{id:`${a}${r?`-${r}`:""}`,label:o,tokenType:i.tokenType,modelIds:[i.modelId],preferredModelId:f,preferredBucket:m,fallbackRemainingFraction:i.remainingFraction,fallbackRemainingAmount:i.remainingAmount,fallbackResetTime:i.resetTime});return}d.fallbackRemainingFraction=GO(d.fallbackRemainingFraction,i.remainingFraction),d.fallbackRemainingAmount=GO(d.fallbackRemainingAmount,i.remainingAmount),d.fallbackResetTime=$ee(d.fallbackResetTime,i.resetTime),d.modelIds.push(i.modelId),d.preferredModelId&&i.modelId===d.preferredModelId&&(d.preferredBucket=i)});const n=i=>{const s=i.tokenType?`-${i.tokenType}`:"",a=i.id.endsWith(s)?i.id.slice(0,i.id.length-s.length):i.id;return pee.get(a)??Number.MAX_SAFE_INTEGER};return Array.from(e.values()).sort((i,s)=>{const a=n(i)-n(s);if(a!==0)return a;const o=i.tokenType??"",r=s.tokenType??"";return o.localeCompare(r)}).map(i=>{const s=Array.from(new Set(i.modelIds)),a=i.preferredBucket,o=a?a.remainingFraction:i.fallbackRemainingFraction,r=a?a.remainingAmount:i.fallbackRemainingAmount,c=a?a.resetTime:i.fallbackResetTime;return{id:i.id,label:i.label,remainingFraction:o,remainingAmount:r,resetTime:c,tokenType:i.tokenType,modelIds:s}})}function Qee(t){if(!t)return{remainingFraction:null};const e=t.quotaInfo??t.quota_info??{},n=e.remainingFraction??e.remaining_fraction??e.remaining,i=jD(n),s=e.resetTime??e.reset_time,a=typeof s=="string"?s:void 0,o=typeof t.displayName=="string"?t.displayName:void 0;return{remainingFraction:i,resetTime:a,displayName:o}}function Yee(t,e){const n=t[e];if(n)return{id:e,entry:n};const i=Object.entries(t).find(([,s])=>(typeof s?.displayName=="string"?s.displayName:"").toLowerCase()===e.toLowerCase());return i?{id:i[0],entry:i[1]}:null}function Jee(t){const e=[],n=new Map(hee.map(c=>[c.id,c])),i=(c,d)=>{const m=c.identifiers.map(x=>Yee(t,x)).filter(x=>!!x).map(({id:x,entry:A})=>{const k=Qee(A),T=k.remainingFraction??(k.resetTime?0:null);return T===null?null:{id:x,remainingFraction:T,resetTime:k.resetTime,displayName:k.displayName}}).filter(x=>x!==null);if(m.length===0)return null;const g=Math.min(...m.map(x=>x.remainingFraction)),y=d??m.map(x=>x.resetTime).find(Boolean),b=m.map(x=>x.displayName).find(Boolean),v=c.labelFromModel&&b?b:c.label;return{id:c.id,label:v,models:m.map(x=>x.id),remainingFraction:g,resetTime:y}},s=(c,d)=>{const f=n.get(c);if(!f)return null;const m=i(f,d);return m&&e.push(m),m};s("claude-gpt");const a=s("gemini-3-1-pro-series"),o=s("gemini-3-pro"),r=a?.resetTime??o?.resetTime;return s("gemini-2-5-flash"),s("gemini-2-5-flash-lite"),s("gemini-2-5-cu"),s("gemini-3-flash"),s("gemini-image",r),e}function Ec(t){if(typeof t=="number"&&Number.isFinite(t))return Math.floor(t);if(typeof t=="string"){const e=Number(t.trim());return Number.isFinite(e)?Math.floor(e):null}return null}function Zee(t){const e=["reset_at","resetAt","reset_time","resetTime"];for(const i of e){const s=t[i];if(typeof s=="string"&&s.trim())try{const a=s.replace(/(\.\d{6})\d+/,"$1"),o=new Date(a);if(Number.isNaN(o.getTime()))continue;const r=Date.now(),c=o.getTime()-r;if(c<=0)return;const d=Math.floor(c/6e4),f=Math.floor(d/60),m=d%60;return f>0&&m>0?`${f}h ${m}m`:f>0?`${f}h`:m>0?`${m}m`:"<1m"}catch{continue}}const n=["reset_in","resetIn","ttl"];for(const i of n){const s=Ec(t[i]);if(s!==null&&s>0){const a=Math.floor(s/3600),o=Math.floor(s%3600/60);return a>0&&o>0?`${a}h ${o}m`:a>0?`${a}h`:o>0?`${o}m`:"<1m"}}}function ete(t,e){const n=typeof e=="string"?e.trim().toUpperCase():"";return n==="MINUTES"?t%60===0?`${t/60}h`:`${t}m`:n==="HOURS"?`${t}h`:n==="DAYS"?`${t}d`:`${t}s`}function tte(t,e,n,i){for(const o of["name","title","scope"]){const r=t[o]??e[o];if(typeof r=="string"&&r.trim())return{label:r.trim()}}const s=Ec(n.duration)??Ec(t.duration)??Ec(e.duration),a=n.timeUnit??t.timeUnit??e.timeUnit;return s!==null&&s>0?{labelKey:"kimi_quota.limit_window",labelParams:{duration:ete(s,a)}}:{labelKey:"kimi_quota.limit_index",labelParams:{index:i+1}}}function $O(t,e){const n=Ec(t.limit);let i=Ec(t.used);if(i===null){const o=Ec(t.remaining);o!==null&&n!==null&&(i=n-o)}if(i===null&&n===null)return null;const s=typeof t.name=="string"&&t.name.trim()||typeof t.title=="string"&&t.title.trim();return{...s?{label:s}:e,used:i??0,limit:n??0,resetHint:Zee(t)}}function nte(t){const e=[],n=t.usage;if(n&&typeof n=="object"){const s=$O(n,{labelKey:"kimi_quota.weekly_limit"});s&&e.push({id:"summary",...s})}const i=t.limits;return Array.isArray(i)&&i.forEach((s,a)=>{const o=s.detail&&typeof s.detail=="object"?s.detail:s,r=s.window&&typeof s.window=="object"?s.window:{},c=tte(s,o,r,a),d=$O(o,c);d&&e.push({id:`limit-${a}`,...d})}),e}const ite="QuotaPage-module__container___CkTNE",ste="QuotaPage-module__pageHeader___7RVAE",ate="QuotaPage-module__pageTitle___c6BF7",ote="QuotaPage-module__description___qDPuI",rte="QuotaPage-module__headerActions___Jfu3A",lte="QuotaPage-module__titleWrapper___lHVCF",cte="QuotaPage-module__countBadge___tuPLs",ute="QuotaPage-module__errorBox___Ub2Qs",dte="QuotaPage-module__pageSizeSelect___1AaaU",hte="QuotaPage-module__statsInfo___coFxw",fte="QuotaPage-module__antigravityGrid___d29-f",mte="QuotaPage-module__claudeGrid___g3N0r",pte="QuotaPage-module__codexGrid___gQjcK",gte="QuotaPage-module__geminiCliGrid___R6KEW",_te="QuotaPage-module__kimiGrid___-9u7J",yte="QuotaPage-module__antigravityControls___jdhuf",bte="QuotaPage-module__claudeControls___CJ9XX",vte="QuotaPage-module__codexControls___ZabMA",xte="QuotaPage-module__geminiCliControls___aWZsx",Ste="QuotaPage-module__kimiControls___3WNBe",wte="QuotaPage-module__antigravityControl___Z2Ti6",kte="QuotaPage-module__claudeControl___4J9Tz",Cte="QuotaPage-module__codexControl___P4r4g",Ate="QuotaPage-module__geminiCliControl___SIXi-",Nte="QuotaPage-module__kimiControl___5rxbt",Tte="QuotaPage-module__viewModeToggle___BHo1O",Mte="QuotaPage-module__viewModeButton___jjKnb",Lte="QuotaPage-module__viewModeButtonActive___LGwRk",Ote="QuotaPage-module__refreshAllButton___c9-I-",Pte="QuotaPage-module__claudeCard___z9zBZ",Ete="QuotaPage-module__antigravityCard___0jKaG",jte="QuotaPage-module__codexCard___2xhZX",Rte="QuotaPage-module__geminiCliCard___i8Qjn",Dte="QuotaPage-module__kimiCard___WWvTD",Fte="QuotaPage-module__quotaSection___Yb6bk",Ite="QuotaPage-module__quotaRow___uNjD0",Ute="QuotaPage-module__quotaRowHeader___jr9zd",Bte="QuotaPage-module__quotaModel___-3mcR",zte="QuotaPage-module__quotaBar___ATY20",qte="QuotaPage-module__quotaBarFill___arMGf",Kte="QuotaPage-module__quotaBarFillHigh___yfdzz",Hte="QuotaPage-module__quotaBarFillMedium___PbU2j",Vte="QuotaPage-module__quotaBarFillLow___1dvgT",Wte="QuotaPage-module__quotaMeta___2Gr-S",Gte="QuotaPage-module__quotaPercent___dwFKN",$te="QuotaPage-module__quotaReset___AQC0c",Xte="QuotaPage-module__quotaAmount___liJkK",Qte="QuotaPage-module__quotaMessage___tXEKQ",Yte="QuotaPage-module__quotaMessageAction___lCJz4",Jte="QuotaPage-module__quotaError___rIKP-",Zte="QuotaPage-module__quotaWarning___phfIc",ene="QuotaPage-module__codexPlan___cNsir",tne="QuotaPage-module__codexPlanLabel___NR4tn",nne="QuotaPage-module__codexPlanValue___TZDzO",ine="QuotaPage-module__premiumPlanValue___7ouKX",sne="QuotaPage-module__fileCard___7ZTk-",ane="QuotaPage-module__cardHeader___vBGld",one="QuotaPage-module__typeBadge___ubtCA",rne="QuotaPage-module__fileName___ATlvN",lne="QuotaPage-module__pagination___W2eGv",cne="QuotaPage-module__pageInfo___yNU7E",une="QuotaPage-module__warningOverlay___lVjB7",dne="QuotaPage-module__warningModal___2pPNd",gt={container:ite,pageHeader:ste,pageTitle:ate,description:ote,headerActions:rte,titleWrapper:lte,countBadge:cte,errorBox:ute,pageSizeSelect:dte,statsInfo:hte,antigravityGrid:fte,claudeGrid:mte,codexGrid:pte,geminiCliGrid:gte,kimiGrid:_te,antigravityControls:yte,claudeControls:bte,codexControls:vte,geminiCliControls:xte,kimiControls:Ste,antigravityControl:wte,claudeControl:kte,codexControl:Cte,geminiCliControl:Ate,kimiControl:Nte,viewModeToggle:Tte,viewModeButton:Mte,viewModeButtonActive:Lte,refreshAllButton:Ote,claudeCard:Pte,antigravityCard:Ete,codexCard:jte,geminiCliCard:Rte,kimiCard:Dte,quotaSection:Fte,quotaRow:Ite,quotaRowHeader:Ute,quotaModel:Bte,quotaBar:zte,quotaBarFill:qte,quotaBarFillHigh:Kte,quotaBarFillMedium:Hte,quotaBarFillLow:Vte,quotaMeta:Wte,quotaPercent:Gte,quotaReset:$te,quotaAmount:Xte,quotaMessage:Qte,quotaMessageAction:Yte,quotaError:Jte,quotaWarning:Zte,codexPlan:ene,codexPlanLabel:tne,codexPlanValue:nne,premiumPlanValue:ine,fileCard:sne,cardHeader:ane,typeBadge:one,fileName:rne,pagination:lne,pageInfo:cne,warningOverlay:une,warningModal:dne};function hne({percent:t,highThreshold:e,mediumThreshold:n}){const s=t===null?null:((r,c,d)=>Math.min(d,Math.max(c,r)))(t,0,100),a=s===null?gt.quotaBarFillMedium:s>=e?gt.quotaBarFillHigh:s>=n?gt.quotaBarFillMedium:gt.quotaBarFillLow,o=Math.round(s??0);return h.jsx("div",{className:gt.quotaBar,children:h.jsx("div",{className:`${gt.quotaBarFill} ${a}`,style:{width:`${o}%`}})})}function fne({item:t,quota:e,resolvedTheme:n,i18nPrefix:i,cardIdleMessageKey:s,cardClassName:a,defaultType:o,canRefresh:r=!1,onRefresh:c,renderQuotaItems:d}){const{t:f}=et(),m=t.type||t.provider||o,g=KO[m]||KO.unknown,y=n==="dark"&&g.dark?g.dark:g.light,b=e?.status??"idle",v=mne(f,e?.errorStatus,e?.error||f("common.unknown_error")),x=c?`${i}.idle`:s??`${i}.idle`,A=k=>{const T=`auth_files.filter_${k}`,L=f(T);return L!==T?L:k.toLowerCase()==="iflow"?"iFlow":k.charAt(0).toUpperCase()+k.slice(1)};return h.jsxs("div",{className:`${gt.fileCard} ${a}`,children:[h.jsxs("div",{className:gt.cardHeader,children:[h.jsx("span",{className:gt.typeBadge,style:{backgroundColor:y.bg,color:y.text,...y.border?{border:y.border}:{}},children:A(m)}),h.jsx("span",{className:gt.fileName,children:t.name})]}),h.jsx("div",{className:gt.quotaSection,children:b==="loading"?h.jsx("div",{className:gt.quotaMessage,children:f(`${i}.loading`)}):b==="idle"?c?h.jsx("button",{type:"button",className:`${gt.quotaMessage} ${gt.quotaMessageAction}`,onClick:c,disabled:!r,children:f(x)}):h.jsx("div",{className:gt.quotaMessage,children:f(x)}):b==="error"?h.jsx("div",{className:gt.quotaError,children:f(`${i}.load_failed`,{message:v})}):e?d(e,f,{styles:gt,QuotaProgressBar:hne}):h.jsx("div",{className:gt.quotaMessage,children:f(x)})})]})}const mne=(t,e,n)=>e===404?t("common.quota_update_required"):e===403?t("common.quota_check_credential"):n;function pne(t){const{t:e}=et(),n=Nd(t.storeSelector),i=Nd(r=>r[t.storeSetter]),s=S.useRef(!1),a=S.useRef(0),o=S.useCallback(async(r,c,d)=>{if(s.current)return;s.current=!0;const f=++a.current;d(!0,c);try{if(r.length===0)return;i(g=>{const y={...g};return r.forEach(b=>{y[b.name]=t.buildLoadingState()}),y});const m=await Promise.all(r.map(async g=>{try{const y=await t.fetchQuota(g,e);return{name:g.name,status:"success",data:y}}catch(y){const b=y instanceof Error?y.message:e("common.unknown_error"),v=$y(y);return{name:g.name,status:"error",error:b,errorStatus:v}}}));if(f!==a.current)return;i(g=>{const y={...g};return m.forEach(b=>{b.status==="success"?y[b.name]=t.buildSuccessState(b.data):y[b.name]=t.buildErrorState(b.error||e("common.unknown_error"),b.errorStatus)}),y})}finally{f===a.current&&(d(!1),s.current=!1)}},[t,i,e]);return{quota:n,loadQuota:o}}function gne(t,e=16){const[n,i]=S.useState(1),[s,a]=S.useState(null),o=S.useCallback(r=>{a(r)},[]);return S.useEffect(()=>{if(!s)return;const r=()=>{const d=s.clientWidth,f=t+e,m=Math.floor((d+e)/f);i(Math.max(1,m))};r();const c=new ResizeObserver(()=>{r()});return c.observe(s),()=>c.disconnect()},[s,t,e]),[n,o]}const _ne=25,XO=30,yne=(t,e=6)=>{const[n,i]=S.useState(1),[s,a]=S.useState(e),[o,r]=S.useState(!1),[c,d]=S.useState(null),f=S.useMemo(()=>Math.max(1,Math.ceil(t.length/s)),[t.length,s]),m=S.useMemo(()=>Math.min(n,f),[n,f]),g=S.useMemo(()=>{const A=(m-1)*s;return t.slice(A,A+s)},[t,m,s]),y=S.useCallback(A=>{a(A),i(1)},[]),b=S.useCallback(()=>{i(A=>Math.max(1,A-1))},[]),v=S.useCallback(()=>{i(A=>Math.min(f,A+1))},[f]),x=S.useCallback((A,k)=>{r(A),d(A?k??null:null)},[]);return{pageSize:s,totalPages:f,currentPage:m,pageItems:g,setPageSize:y,goToPrev:b,goToNext:v,loading:o,loadingScope:c,setLoading:x}};function cf({config:t,files:e,loading:n,disabled:i}){const{t:s}=et(),a=Aa(K=>K.resolvedTheme),o=_n(K=>K.showNotification),r=Nd(K=>K[t.storeSetter]),[c,d]=gne(380),[f,m]=S.useState("paged"),[g,y]=S.useState(!1),b=S.useMemo(()=>e.filter(K=>t.filterFn(K)),[e,t]),v=b.length<=XO,x=f==="all"&&!v?"paged":f,{pageSize:A,totalPages:k,currentPage:T,pageItems:L,setPageSize:M,goToPrev:O,goToNext:N,loading:P,setLoading:E}=yne(b);S.useEffect(()=>{if(v||f!=="all")return;let K=!1;return queueMicrotask(()=>{K||(m("paged"),y(!0))}),()=>{K=!0}},[v,f]),S.useEffect(()=>{M(x==="all"?Math.max(1,b.length):Math.min(c*3,_ne))},[x,c,b.length,M]);const{quota:R,loadQuota:z}=pne(t),D=S.useRef(!1),Q=S.useRef(n),G=S.useCallback(()=>{D.current=!0,pD()},[]);S.useEffect(()=>{const K=Q.current;if(Q.current=n,!D.current||n||!K)return;D.current=!1;const $=x==="all"?"all":"page",X=x==="all"?b:L;X.length!==0&&z(X,$,E)},[n,x,b,L,z,E]),S.useEffect(()=>{if(!n){if(b.length===0){r({});return}r(K=>{const $={};return b.forEach(X=>{const U=K[X.name];U&&($[X.name]=U)}),$})}},[b,n,r]);const B=S.useCallback(async K=>{if(!(i||K.disabled)&&R[K.name]?.status!=="loading"){r($=>({...$,[K.name]:t.buildLoadingState()}));try{const $=await t.fetchQuota(K,s);r(X=>({...X,[K.name]:t.buildSuccessState($)})),o(s("auth_files.quota_refresh_success",{name:K.name}),"success")}catch($){const X=$ instanceof Error?$.message:s("common.unknown_error"),U=$y($);r(q=>({...q,[K.name]:t.buildErrorState(X,U)})),o(s("auth_files.quota_refresh_failed",{name:K.name,message:X}),"error")}}},[t,i,R,r,o,s]),I=h.jsxs("div",{className:gt.titleWrapper,children:[h.jsx("span",{children:s(`${t.i18nPrefix}.title`)}),b.length>0&&h.jsx("span",{className:gt.countBadge,children:b.length})]}),V=P||n;return h.jsxs(Dt,{title:I,extra:h.jsxs("div",{className:gt.headerActions,children:[h.jsxs("div",{className:gt.viewModeToggle,children:[h.jsx(me,{variant:"secondary",size:"sm",className:`${gt.viewModeButton} ${x==="paged"?gt.viewModeButtonActive:""}`,onClick:()=>m("paged"),children:s("auth_files.view_mode_paged")}),h.jsx(me,{variant:"secondary",size:"sm",className:`${gt.viewModeButton} ${x==="all"?gt.viewModeButtonActive:""}`,onClick:()=>{b.length>XO?y(!0):m("all")},children:s("auth_files.view_mode_all")})]}),h.jsxs(me,{variant:"secondary",size:"sm",className:gt.refreshAllButton,onClick:G,disabled:i||V,loading:V,title:s("quota_management.refresh_all_credentials"),"aria-label":s("quota_management.refresh_all_credentials"),children:[!V&&h.jsx(zw,{size:16}),s("quota_management.refresh_all_credentials")]})]}),children:[b.length===0?h.jsx(os,{title:s(`${t.i18nPrefix}.empty_title`),description:s(`${t.i18nPrefix}.empty_desc`)}):h.jsxs(h.Fragment,{children:[h.jsx("div",{ref:d,className:t.gridClassName,children:L.map(K=>h.jsx(fne,{item:K,quota:R[K.name],resolvedTheme:a,i18nPrefix:t.i18nPrefix,cardIdleMessageKey:t.cardIdleMessageKey,cardClassName:t.cardClassName,defaultType:t.type,canRefresh:!i&&!K.disabled,onRefresh:()=>void B(K),renderQuotaItems:t.renderQuotaItems},K.name))}),b.length>A&&x==="paged"&&h.jsxs("div",{className:gt.pagination,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:O,disabled:T<=1,children:s("auth_files.pagination_prev")}),h.jsx("div",{className:gt.pageInfo,children:s("auth_files.pagination_info",{current:T,total:k,count:b.length})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:N,disabled:T>=k,children:s("auth_files.pagination_next")})]})]}),g&&h.jsx("div",{className:gt.warningOverlay,onClick:()=>y(!1),children:h.jsxs("div",{className:gt.warningModal,onClick:K=>K.stopPropagation(),children:[h.jsx("p",{children:s("auth_files.too_many_files_warning")}),h.jsx(me,{variant:"primary",size:"sm",onClick:()=>y(!1),children:s("common.confirm")})]})})]})}const _1="bamboo-precept-lgxtn",hp=70,fp=30,y1=new Map,nS=new Map,bne=async t=>{try{const n=(await At.downloadText(t.name)).trim();if(!n)return _1;const i=JSON.parse(n),s=ys(i.project_id??i.projectId);if(s)return s;const a=i.installed&&typeof i.installed=="object"&&i.installed!==null?i.installed:null,o=a?ys(a.project_id??a.projectId):null;if(o)return o;const r=i.web&&typeof i.web=="object"&&i.web!==null?i.web:null,c=r?ys(r.project_id??r.projectId):null;if(c)return c}catch{return _1}return _1},vne=async(t,e)=>{const n=t.auth_index??t.authIndex,i=rs(n);if(!i)throw new Error(e("antigravity_quota.missing_auth_index"));const s=await bne(t),a=JSON.stringify({project:s});let o="",r,c,d=!1;for(const f of uee)try{const m=await ea.request({authIndex:i,method:"POST",url:f,header:{...dee},data:a});if(m.statusCode<200||m.statusCode>=300){o=Ha(m),r=m.statusCode,(m.statusCode===403||m.statusCode===404)&&(c??(c=m.statusCode));continue}d=!0;const y=Tee(m.body??m.bodyText)?.models;if(!y||typeof y!="object"||Array.isArray(y)){o=e("antigravity_quota.empty_models");continue}const b=Jee(y);if(b.length===0){o=e("antigravity_quota.empty_models");continue}return b}catch(m){o=m instanceof Error?m.message:e("common.unknown_error");const g=$y(m);g&&(r=g,(g===403||g===404)&&(c??(c=g)))}if(d)return[];throw up(o||e("common.unknown_error"),c??r)},xne=(t,e)=>{const s={codeFiveHour:{id:"five-hour",labelKey:"codex_quota.primary_window"},codeWeekly:{id:"weekly",labelKey:"codex_quota.secondary_window"},codeReviewFiveHour:{id:"code-review-five-hour",labelKey:"codex_quota.code_review_primary_window"},codeReviewWeekly:{id:"code-review-weekly",labelKey:"codex_quota.code_review_secondary_window"}},a=t.rate_limit??t.rateLimit??void 0,o=t.code_review_rate_limit??t.codeReviewRateLimit??void 0,r=t.additional_rate_limits??t.additionalRateLimits??[],c=[],d=(T,L,M,O,N,P,E)=>{if(!N)return;const R=Uee(N),Q=Ll(N.used_percent??N.usedPercent)??((!!P||E===!1)&&R!=="-"?100:null);c.push({id:T,label:L,labelKey:M,labelParams:O,usedPercent:Q,resetLabel:R})},f=T=>T?Ll(T.limit_window_seconds??T.limitWindowSeconds):null,m=a?.limit_reached??a?.limitReached,g=a?.allowed,y=(T,L)=>{const M=T?.primary_window??T?.primaryWindow??null,O=T?.secondary_window??T?.secondaryWindow??null,N=[M,O];let P=null,E=null;for(const R of N){if(!R)continue;const z=f(R);z===18e3&&!P?P=R:z===604800&&!E&&(E=R)}return P||(P=M&&M!==E?M:null),E||(E=O&&O!==P?O:null),{fiveHourWindow:P,weeklyWindow:E}},b=y(a);d(s.codeFiveHour.id,e(s.codeFiveHour.labelKey),s.codeFiveHour.labelKey,void 0,b.fiveHourWindow,m,g),d(s.codeWeekly.id,e(s.codeWeekly.labelKey),s.codeWeekly.labelKey,void 0,b.weeklyWindow,m,g);const v=y(o),x=o?.limit_reached??o?.limitReached,A=o?.allowed;d(s.codeReviewFiveHour.id,e(s.codeReviewFiveHour.labelKey),s.codeReviewFiveHour.labelKey,void 0,v.fiveHourWindow,x,A),d(s.codeReviewWeekly.id,e(s.codeReviewWeekly.labelKey),s.codeReviewWeekly.labelKey,void 0,v.weeklyWindow,x,A);const k=T=>T.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return Array.isArray(r)&&r.forEach((T,L)=>{const M=T?.rate_limit??T?.rateLimit??null;if(!M)return;const O=ys(T?.limit_name??T?.limitName)??ys(T?.metered_feature??T?.meteredFeature)??`additional-${L+1}`,N=k(O)||`additional-${L+1}`,P=M.primary_window??M.primaryWindow??null,E=M.secondary_window??M.secondaryWindow??null,R=M.limit_reached??M.limitReached,z=M.allowed;d(`${N}-five-hour-${L}`,e("codex_quota.additional_primary_window",{name:O}),"codex_quota.additional_primary_window",{name:O},P,R,z),d(`${N}-weekly-${L}`,e("codex_quota.additional_secondary_window",{name:O}),"codex_quota.additional_secondary_window",{name:O},E,R,z)}),c},Sne=async(t,e)=>{const n=t.auth_index??t.authIndex,i=rs(n);if(!i)throw new Error(e("codex_quota.missing_auth_index"));const s=Dee(t),a=Ree(t);if(!a)throw new Error(e("codex_quota.missing_account_id"));const o={...See,"Chatgpt-Account-Id":a},r=await ea.request({authIndex:i,method:"GET",url:xee,header:o});if(r.statusCode<200||r.statusCode>=300)throw up(Ha(r),r.statusCode);const c=Lee(r.body??r.bodyText);if(!c)throw new Error(e("codex_quota.empty_windows"));const d=z0(c.plan_type??c.planType),f=xne(c,e);return{planType:d??s,windows:f}},wne="GOOGLE_ONE_AI",kne={"free-tier":"tier_free","legacy-tier":"tier_legacy","standard-tier":"tier_standard","g1-pro-tier":"tier_pro","g1-ultra-tier":"tier_ultra"},Cne=(t,e)=>{if(!t)return null;const n=t.currentTier??t.current_tier,i=t.paidTier??t.paid_tier,s=ys(i?.id)??ys(n?.id);if(!s)return null;const a=s.toLowerCase(),o=kne[a];return o?e(`gemini_cli_quota.${o}`):s},Ane=t=>{if(!t)return null;const e=t.currentTier??t.current_tier,n=t.paidTier??t.paid_tier,i=ys(n?.id)??ys(e?.id);return i?i.toLowerCase():null},Nne=t=>{if(!t)return null;const e=t.paidTier??t.paid_tier,n=t.currentTier??t.current_tier,i=e??n;if(!i)return null;const s=i.availableCredits??i.available_credits??[];let a=0,o=!1;for(const r of s){if(ys(r.creditType??r.credit_type)!==wne)continue;const d=Ll(r.creditAmount??r.credit_amount);d!==null&&(a+=d,o=!0)}return o?a:null},Tne=async(t,e,n)=>{try{const i=await ea.request({authIndex:t,method:"POST",url:mee,header:{...PD},data:JSON.stringify({cloudaicompanionProject:e,metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI",duetProject:e}})});if(i.statusCode<200||i.statusCode>=300)return{tierLabel:null,tierId:null,creditBalance:null};const s=Pee(i.body??i.bodyText);return{tierLabel:Cne(s,n),tierId:Ane(s),creditBalance:Nne(s)}}catch{return{tierLabel:null,tierId:null,creditBalance:null}}},RD=(t,e)=>{const n=nS.get(t);return!n||n.requestId!==e?{tierLabel:null,tierId:null,creditBalance:null}:{tierLabel:n.tierLabel,tierId:n.tierId,creditBalance:n.creditBalance}},Mne=(t,e,n,i)=>{const s=(y1.get(t)??0)+1;return y1.set(t,s),nS.delete(t),(async()=>{const a=await Tne(e,n,i);y1.get(t)===s&&(nS.set(t,{requestId:s,...a}),Nd.getState().setGeminiCliQuota(o=>{const r=o[t];return!r||r.status!=="success"||r.tierLabel===a.tierLabel&&r.tierId===a.tierId&&r.creditBalance===a.creditBalance?o:{...o,[t]:{...r,tierLabel:a.tierLabel,tierId:a.tierId,creditBalance:a.creditBalance}}}))})(),s},Lne=async(t,e)=>{const n=t.auth_index??t.authIndex,i=rs(n);if(!i)throw new Error(e("gemini_cli_quota.missing_auth_index"));const s=Iee(t);if(!s)throw new Error(e("gemini_cli_quota.missing_project_id"));const a=await ea.request({authIndex:i,method:"POST",url:fee,header:{...PD},data:JSON.stringify({project:s})});if(a.statusCode<200||a.statusCode>=300)throw up(Ha(a),a.statusCode);const o=Oee(a.body??a.bodyText),c=(Array.isArray(o?.buckets)?o?.buckets:[]).map(g=>{const y=Cee(g.modelId??g.model_id);if(!y)return null;const b=ys(g.tokenType??g.token_type),v=jD(g.remainingFraction??g.remaining_fraction),x=Ll(g.remainingAmount??g.remaining_amount),A=ys(g.resetTime??g.reset_time)??void 0;let k=null;return x!==null?k=x<=0?0:null:A&&(k=0),{modelId:y,tokenType:b,remainingFraction:v??k,remainingAmount:x,resetTime:A}}).filter(g=>g!==null),d=Xee(c),f=Mne(t.name,i,s,e),m=RD(t.name,f);return{fileName:t.name,supplementaryRequestId:f,buckets:d,tierLabel:m.tierLabel,tierId:m.tierId,creditBalance:m.creditBalance}},One=(t,e,n)=>{const{styles:i,QuotaProgressBar:s}=n,{createElement:a}=So,o=t.groups??[];return o.length===0?a("div",{className:i.quotaMessage},e("antigravity_quota.empty_models")):o.map(r=>{const c=Math.max(0,Math.min(1,r.remainingFraction)),d=Math.round(c*100),f=hk(r.resetTime);return a("div",{key:r.id,className:i.quotaRow},a("div",{className:i.quotaRowHeader},a("span",{className:i.quotaModel,title:r.models.join(", ")},r.label),a("div",{className:i.quotaMeta},a("span",{className:i.quotaPercent},`${d}%`),a("span",{className:i.quotaReset},f))),a(s,{percent:d,highThreshold:hp,mediumThreshold:fp}))})},Pne=new Set(["g1-ultra-tier"]),Ene=(t,e,n)=>{const{styles:i,QuotaProgressBar:s}=n,{createElement:a,Fragment:o}=So,r=t.windows??[],c=t.planType??null,f=(y=>{const b=z0(y);return b?b==="pro"?e("codex_quota.plan_pro"):b==="plus"?e("codex_quota.plan_plus"):b==="team"?e("codex_quota.plan_team"):b==="free"?e("codex_quota.plan_free"):y||b:null})(c),m=z0(c)==="pro",g=[];if(f){const y=m?i.premiumPlanValue:i.codexPlanValue;g.push(a("div",{key:"plan",className:i.codexPlan},a("span",{className:i.codexPlanLabel},e("codex_quota.plan_label")),a("span",{className:y},f)))}return r.length===0?(g.push(a("div",{key:"empty",className:i.quotaMessage},e("codex_quota.empty_windows"))),a(o,null,...g)):(g.push(...r.map(y=>{const b=y.usedPercent,v=b===null?null:Math.max(0,Math.min(100,b)),x=v===null?null:Math.max(0,Math.min(100,100-v)),A=x===null?"--":`${Math.round(x)}%`,k=y.labelKey?e(y.labelKey,y.labelParams):y.label;return a("div",{key:y.id,className:i.quotaRow},a("div",{className:i.quotaRowHeader},a("span",{className:i.quotaModel},k),a("div",{className:i.quotaMeta},a("span",{className:i.quotaPercent},A),a("span",{className:i.quotaReset},y.resetLabel))),a(s,{percent:x,highThreshold:hp,mediumThreshold:fp}))})),a(o,null,...g))},jne=(t,e,n)=>{const{styles:i,QuotaProgressBar:s}=n,{createElement:a,Fragment:o}=So,r=t.buckets??[],c=t.tierLabel??null,d=t.tierId??null,f=t.creditBalance??null,m=d!==null&&Pne.has(d),g=[];if(c){const y=m?i.premiumPlanValue:i.codexPlanValue;g.push(a("div",{key:"tier",className:i.codexPlan},a("span",{className:i.codexPlanLabel},e("gemini_cli_quota.tier_label")),a("span",{className:y},c)))}return f!==null&&g.push(a("div",{key:"credits",className:i.codexPlan},a("span",{className:i.codexPlanLabel},e("gemini_cli_quota.credit_label")),a("span",{className:i.codexPlanValue},e("gemini_cli_quota.credit_amount",{count:f})))),r.length===0?(g.push(a("div",{key:"empty",className:i.quotaMessage},e("gemini_cli_quota.empty_buckets"))),a(o,null,...g)):(g.push(...r.map(y=>{const b=y.remainingFraction,v=b===null?null:Math.max(0,Math.min(1,b)),x=v===null?null:Math.round(v*100),A=x===null?"--":`${x}%`,k=y.remainingAmount===null||y.remainingAmount===void 0?null:e("gemini_cli_quota.remaining_amount",{count:y.remainingAmount}),T=y.modelIds&&y.modelIds.length>0?y.modelIds.join(", "):y.label,L=y.tokenType?`${T} (${y.tokenType})`:T,M=hk(y.resetTime);return a("div",{key:y.id,className:i.quotaRow},a("div",{className:i.quotaRowHeader},a("span",{className:i.quotaModel,title:L},y.label),a("div",{className:i.quotaMeta},a("span",{className:i.quotaPercent},A),k?a("span",{className:i.quotaAmount},k):null,a("span",{className:i.quotaReset},M))),a(s,{percent:x,highThreshold:hp,mediumThreshold:fp}))})),a(o,null,...g))},Rne=(t,e)=>{const n=[];for(const{key:i,id:s,labelKey:a}of vee){const o=t[i];if(!o||typeof o!="object"||!("utilization"in o))continue;const r=o,c=Ll(r.utilization),d=hk(r.resets_at);n.push({id:s,label:e(a),labelKey:a,usedPercent:c,resetLabel:d})}return n},QO=t=>{if(t!=null){if(typeof t=="boolean")return t;if(typeof t=="number")return t!==0;if(typeof t=="string"){const e=t.trim().toLowerCase();if(["true","1","yes","y","on"].includes(e))return!0;if(["false","0","no","n","off"].includes(e))return!1}}},Dne=t=>{if(t==null)return null;if(typeof t=="string"){const e=t.trim();if(!e)return null;try{return JSON.parse(e)}catch{return null}}return typeof t=="object"?t:null},Fne=t=>{if(!t)return null;const e=QO(t.account?.has_claude_max);if(e)return"plan_max";const n=QO(t.account?.has_claude_pro);return n?"plan_pro":e===!1&&n===!1?"plan_free":null},Ine=async(t,e)=>{const n=t.auth_index??t.authIndex,i=rs(n);if(!i)throw new Error(e("claude_quota.missing_auth_index"));const[s,a]=await Promise.allSettled([ea.request({authIndex:i,method:"GET",url:bee,header:{...HO}}),ea.request({authIndex:i,method:"GET",url:yee,header:{...HO}})]);if(s.status==="rejected")throw s.reason;const o=s.value;if(o.statusCode<200||o.statusCode>=300)throw up(Ha(o),o.statusCode);const r=Mee(o.body??o.bodyText);if(!r)throw new Error(e("claude_quota.empty_windows"));const c=Rne(r,e),d=a.status==="fulfilled"&&a.value.statusCode>=200&&a.value.statusCode<300?Fne(Dne(a.value.body??a.value.bodyText)):null;return{windows:c,extraUsage:r.extra_usage,planType:d}},Une=(t,e,n)=>{const{styles:i,QuotaProgressBar:s}=n,{createElement:a,Fragment:o}=So,r=t.windows??[],c=t.extraUsage??null,d=t.planType??null,f=[];if(d&&f.push(a("div",{key:"plan",className:i.codexPlan},a("span",{className:i.codexPlanLabel},e("claude_quota.plan_label")),a("span",{className:i.codexPlanValue},e(`claude_quota.${d}`)))),c&&c.is_enabled){const m=`$${(c.used_credits/100).toFixed(2)} / $${(c.monthly_limit/100).toFixed(2)}`;f.push(a("div",{key:"extra",className:i.codexPlan},a("span",{className:i.codexPlanLabel},e("claude_quota.extra_usage_label")),a("span",{className:i.codexPlanValue},m)))}return r.length===0?(f.push(a("div",{key:"empty",className:i.quotaMessage},e("claude_quota.empty_windows"))),a(o,null,...f)):(f.push(...r.map(m=>{const g=m.usedPercent,y=g===null?null:Math.max(0,Math.min(100,g)),b=y===null?null:Math.max(0,Math.min(100,100-y)),v=b===null?"--":`${Math.round(b)}%`,x=m.labelKey?e(m.labelKey):m.label;return a("div",{key:m.id,className:i.quotaRow},a("div",{className:i.quotaRowHeader},a("span",{className:i.quotaModel},x),a("div",{className:i.quotaMeta},a("span",{className:i.quotaPercent},v),a("span",{className:i.quotaReset},m.resetLabel))),a(s,{percent:b,highThreshold:hp,mediumThreshold:fp}))})),a(o,null,...f))},DD={type:"claude",i18nPrefix:"claude_quota",cardIdleMessageKey:"quota_management.card_idle_hint",filterFn:t=>qee(t)&&!dp(t),fetchQuota:Ine,storeSelector:t=>t.claudeQuota,storeSetter:"setClaudeQuota",buildLoadingState:()=>({status:"loading",windows:[]}),buildSuccessState:t=>({status:"success",windows:t.windows,extraUsage:t.extraUsage,planType:t.planType}),buildErrorState:(t,e)=>({status:"error",windows:[],error:t,errorStatus:e}),cardClassName:gt.claudeCard,controlsClassName:gt.claudeControls,controlClassName:gt.claudeControl,gridClassName:gt.claudeGrid,renderQuotaItems:Une},FD={type:"antigravity",i18nPrefix:"antigravity_quota",cardIdleMessageKey:"quota_management.card_idle_hint",filterFn:t=>zee(t)&&!dp(t),fetchQuota:vne,storeSelector:t=>t.antigravityQuota,storeSetter:"setAntigravityQuota",buildLoadingState:()=>({status:"loading",groups:[]}),buildSuccessState:t=>({status:"success",groups:t}),buildErrorState:(t,e)=>({status:"error",groups:[],error:t,errorStatus:e}),cardClassName:gt.antigravityCard,controlsClassName:gt.antigravityControls,controlClassName:gt.antigravityControl,gridClassName:gt.antigravityGrid,renderQuotaItems:One},ID={type:"codex",i18nPrefix:"codex_quota",cardIdleMessageKey:"quota_management.card_idle_hint",filterFn:t=>Kee(t)&&!dp(t),fetchQuota:Sne,storeSelector:t=>t.codexQuota,storeSetter:"setCodexQuota",buildLoadingState:()=>({status:"loading",windows:[]}),buildSuccessState:t=>({status:"success",windows:t.windows,planType:t.planType}),buildErrorState:(t,e)=>({status:"error",windows:[],error:t,errorStatus:e}),cardClassName:gt.codexCard,controlsClassName:gt.codexControls,controlClassName:gt.codexControl,gridClassName:gt.codexGrid,renderQuotaItems:Ene},UD={type:"gemini-cli",i18nPrefix:"gemini_cli_quota",cardIdleMessageKey:"quota_management.card_idle_hint",filterFn:t=>Hee(t)&&!Wee(t)&&!dp(t),fetchQuota:Lne,storeSelector:t=>t.geminiCliQuota,storeSetter:"setGeminiCliQuota",buildLoadingState:()=>({status:"loading",buckets:[],tierLabel:null,tierId:null,creditBalance:null}),buildSuccessState:t=>{const e=RD(t.fileName,t.supplementaryRequestId);return{status:"success",buckets:t.buckets,tierLabel:e.tierLabel??t.tierLabel,tierId:e.tierId??t.tierId,creditBalance:e.creditBalance??t.creditBalance}},buildErrorState:(t,e)=>({status:"error",buckets:[],error:t,errorStatus:e}),cardClassName:gt.geminiCliCard,controlsClassName:gt.geminiCliControls,controlClassName:gt.geminiCliControl,gridClassName:gt.geminiCliGrid,renderQuotaItems:jne},Bne=async(t,e)=>{const n=t.auth_index??t.authIndex,i=rs(n);if(!i)throw new Error(e("kimi_quota.missing_auth_index"));const s=await ea.request({authIndex:i,method:"GET",url:wee,header:{...kee}});if(s.statusCode<200||s.statusCode>=300)throw up(Ha(s),s.statusCode);const a=Eee(s.body??s.bodyText);if(!a)throw new Error(e("kimi_quota.empty_data"));return nte(a)},zne=(t,e,n)=>{const{styles:i,QuotaProgressBar:s}=n,{createElement:a}=So,o=t.rows??[];return o.length===0?a("div",{className:i.quotaMessage},e("kimi_quota.empty_data")):o.map(r=>{const c=r.limit,d=r.used,f=c>0?Math.max(0,Math.min(100,Math.round((c-d)/c*100))):d>0?0:null,m=f===null?"--":`${f}%`,g=r.labelKey?e(r.labelKey,r.labelParams??{}):r.label??"",y=Bee(e,r.resetHint);return a("div",{key:r.id,className:i.quotaRow},a("div",{className:i.quotaRowHeader},a("span",{className:i.quotaModel},g),a("div",{className:i.quotaMeta},a("span",{className:i.quotaPercent},m),c>0?a("span",{className:i.quotaAmount},`${d} / ${c}`):null,y?a("span",{className:i.quotaReset},y):null)),a(s,{percent:f,highThreshold:hp,mediumThreshold:fp}))})},BD={type:"kimi",i18nPrefix:"kimi_quota",cardIdleMessageKey:"quota_management.card_idle_hint",filterFn:t=>Vee(t)&&!dp(t),fetchQuota:Bne,storeSelector:t=>t.kimiQuota,storeSetter:"setKimiQuota",buildLoadingState:()=>({status:"loading",rows:[]}),buildSuccessState:t=>({status:"success",rows:t}),buildErrorState:(t,e)=>({status:"error",rows:[],error:t,errorStatus:e}),cardClassName:gt.kimiCard,controlsClassName:gt.kimiControls,controlClassName:gt.kimiControl,gridClassName:gt.kimiGrid,renderQuotaItems:zne},qne="AuthFilesPage-module__container___u1c4k",Kne="AuthFilesPage-module__pageHeader___DVV58",Hne="AuthFilesPage-module__pageTitle___1TOZn",Vne="AuthFilesPage-module__description___N3RjR",Wne="AuthFilesPage-module__headerActions___j0ROO",Gne="AuthFilesPage-module__titleWrapper___PLYyj",$ne="AuthFilesPage-module__countBadge___DQWug",Xne="AuthFilesPage-module__errorBox___A9vF2",Qne="AuthFilesPage-module__filterSection___qQ3Zo",Yne="AuthFilesPage-module__filterRail___YRraq",Jne="AuthFilesPage-module__filterAllIconWrap___jMF1r",Zne="AuthFilesPage-module__filterAllIcon___mqchB",eie="AuthFilesPage-module__filterContent___xfK-G",tie="AuthFilesPage-module__filterTags___A24A3",nie="AuthFilesPage-module__filterTag___-YnCU",iie="AuthFilesPage-module__filterTagActive___Rnbcs",sie="AuthFilesPage-module__filterTagIconWrap___pN6-v",aie="AuthFilesPage-module__filterTagLabel___pP8yh",oie="AuthFilesPage-module__filterTagIcon___j068V",rie="AuthFilesPage-module__filterTagIconFallback___4ALgn",lie="AuthFilesPage-module__filterTagText___b9X07",cie="AuthFilesPage-module__filterTagCount___RxSVk",uie="AuthFilesPage-module__filterControlsPanel___V-IZn",die="AuthFilesPage-module__filterControls___PfZDU",hie="AuthFilesPage-module__filterItem___Kko4o",fie="AuthFilesPage-module__filterToggleItem___m2sGr",mie="AuthFilesPage-module__filterToggleGroup___TdMH-",pie="AuthFilesPage-module__filterToggleCard___N4oxi",gie="AuthFilesPage-module__filterToggle___mi9Sd",_ie="AuthFilesPage-module__filterToggleLabel___5rAlu",yie="AuthFilesPage-module__pageSizeSelect___yEBvp",bie="AuthFilesPage-module__fileGrid___ajvi5",vie="AuthFilesPage-module__fileGridQuotaManaged___kOhRx",xie="AuthFilesPage-module__fileGridCompact___meaAl",Sie="AuthFilesPage-module__antigravityGrid___N7Got",wie="AuthFilesPage-module__codexGrid___vLB3H",kie="AuthFilesPage-module__geminiCliGrid___5IwI3",Cie="AuthFilesPage-module__antigravityControls___gn3rt",Aie="AuthFilesPage-module__antigravityControl___rQ8wo",Nie="AuthFilesPage-module__codexControls___Clxl6",Tie="AuthFilesPage-module__codexControl___E7Mtk",Mie="AuthFilesPage-module__geminiCliControls___Y3V2-",Lie="AuthFilesPage-module__geminiCliControl___ZOIpb",Oie="AuthFilesPage-module__antigravityCard___rt36l",Pie="AuthFilesPage-module__claudeCard___L-dIs",Eie="AuthFilesPage-module__codexCard___FiEQ6",jie="AuthFilesPage-module__geminiCliCard___4PuI5",Rie="AuthFilesPage-module__kimiCard___zWq5C",Die="AuthFilesPage-module__quotaSection___hXy5f",Fie="AuthFilesPage-module__quotaRow___P2dUi",Iie="AuthFilesPage-module__quotaRowHeader___IKu7H",Uie="AuthFilesPage-module__quotaModel___huwv6",Bie="AuthFilesPage-module__quotaBar___ex7am",zie="AuthFilesPage-module__quotaBarFill___KqH7M",qie="AuthFilesPage-module__quotaBarFillHigh___F8WGP",Kie="AuthFilesPage-module__quotaBarFillMedium___ae0Pi",Hie="AuthFilesPage-module__quotaBarFillLow___dX4lb",Vie="AuthFilesPage-module__quotaMeta___HcbUH",Wie="AuthFilesPage-module__quotaPercent___6J9UR",Gie="AuthFilesPage-module__quotaReset___bmEse",$ie="AuthFilesPage-module__quotaAmount___k3Wx6",Xie="AuthFilesPage-module__quotaMessage___1w3oM",Qie="AuthFilesPage-module__quotaMessageAction___9r9cq",Yie="AuthFilesPage-module__quotaError___dEV4B",Jie="AuthFilesPage-module__quotaWarning___G1Tvc",Zie="AuthFilesPage-module__codexPlan___4IbAU",ese="AuthFilesPage-module__codexPlanLabel___RZN4K",tse="AuthFilesPage-module__codexPlanValue___Z0Kgr",nse="AuthFilesPage-module__premiumPlanValue___9WyhU",ise="AuthFilesPage-module__fileCard___j9Jtq",sse="AuthFilesPage-module__fileCardSelected___9i7m1",ase="AuthFilesPage-module__fileCardDisabled___hbSbQ",ose="AuthFilesPage-module__fileCardCompact___u9yZu",rse="AuthFilesPage-module__fileCardMain___6JwC7",lse="AuthFilesPage-module__cardHeader___uJMtL",cse="AuthFilesPage-module__cardSelection___wOE11",use="AuthFilesPage-module__providerAvatar___4xnYu",dse="AuthFilesPage-module__providerAvatarImage___QL5oK",hse="AuthFilesPage-module__providerAvatarFallback___H9Mgn",fse="AuthFilesPage-module__cardHeaderContent___rh9WP",mse="AuthFilesPage-module__cardBadgeRow___SeOzZ",pse="AuthFilesPage-module__typeBadge___Dtm6A",gse="AuthFilesPage-module__stateBadge___Cq7id",_se="AuthFilesPage-module__fileName___DZ39s",yse="AuthFilesPage-module__healthStatusMessage___KKfW-",bse="AuthFilesPage-module__cardActions___mJgkW",vse="AuthFilesPage-module__cardActionsMain___9Lsw7",xse="AuthFilesPage-module__primaryActionButton___ex-Us",Sse="AuthFilesPage-module__cardUtilityActions___LX5uj",wse="AuthFilesPage-module__iconButton___XT5TY",kse="AuthFilesPage-module__statusToggle___H8bxD",Cse="AuthFilesPage-module__statusToggleLabel___Wdwo7",Ase="AuthFilesPage-module__fileCardLayout___HRpBj",Nse="AuthFilesPage-module__stateBadgeActive___Fo6ts",Tse="AuthFilesPage-module__stateBadgeWarning___vMjci",Mse="AuthFilesPage-module__stateBadgeDisabled___uB-Ra",Lse="AuthFilesPage-module__stateBadgeVirtual___Ig7fr",Ose="AuthFilesPage-module__cardMeta___H6kAQ",Pse="AuthFilesPage-module__cardMetaCompact___h-CkT",Ese="AuthFilesPage-module__metaLabel___4mGPs",jse="AuthFilesPage-module__metaValue___VKbWa",Rse="AuthFilesPage-module__metaItem___f62C0",Dse="AuthFilesPage-module__priorityBadge___vHY0g",Fse="AuthFilesPage-module__priorityValue___cH2dN",Ise="AuthFilesPage-module__noteText___xsgqc",Use="AuthFilesPage-module__noteLabel___DrD8k",Bse="AuthFilesPage-module__noteValue___-wZpH",zse="AuthFilesPage-module__sortSelect___4fEjm",qse="AuthFilesPage-module__messageIcon___X3Cwx",Kse="AuthFilesPage-module__cardInsights___ci5AY",Hse="AuthFilesPage-module__cardInsightsCompact___y0Q4G",Vse="AuthFilesPage-module__cardStats___JQ4ig",Wse="AuthFilesPage-module__cardStatsCompact___gRvUT",Gse="AuthFilesPage-module__statPill___wFsBu",$se="AuthFilesPage-module__statLabel___x0iKO",Xse="AuthFilesPage-module__statValue___0Cyg5",Qse="AuthFilesPage-module__statSuccess___mh8iR",Yse="AuthFilesPage-module__statFailure___ivDGu",Jse="AuthFilesPage-module__statusPanel___jxcFi",Zse="AuthFilesPage-module__statusPanelCompact___qla9F",eae="AuthFilesPage-module__statusPanelLabel___D3k8N",tae="AuthFilesPage-module__statusBar___n-3Gp",nae="AuthFilesPage-module__statusBlocks___DpQaY",iae="AuthFilesPage-module__statusBlockWrapper___XCgvC",sae="AuthFilesPage-module__statusRate___LZm5e",aae="AuthFilesPage-module__statusBlock___RPMAs",oae="AuthFilesPage-module__statusBlockActive___pjNyd",rae="AuthFilesPage-module__statusBlockIdle___6Uc0C",lae="AuthFilesPage-module__statusTooltip___skNaB",cae="AuthFilesPage-module__statusTooltipLeft___ZK0OM",uae="AuthFilesPage-module__statusTooltipRight___MrcVP",dae="AuthFilesPage-module__tooltipTime___6rx7A",hae="AuthFilesPage-module__tooltipStats___rDF8h",fae="AuthFilesPage-module__tooltipSuccess___DygUj",mae="AuthFilesPage-module__tooltipFailure___Som0h",pae="AuthFilesPage-module__tooltipRate___gbhZZ",gae="AuthFilesPage-module__statusRateHigh___seYyb",_ae="AuthFilesPage-module__statusRateMedium___aNblo",yae="AuthFilesPage-module__statusRateLow___BxxBi",bae="AuthFilesPage-module__prefixProxyEditor___QyoN1",vae="AuthFilesPage-module__prefixProxyLoading___pipJw",xae="AuthFilesPage-module__prefixProxyError___HNtOZ",Sae="AuthFilesPage-module__prefixProxyJsonWrapper___j237Y",wae="AuthFilesPage-module__prefixProxyLabel___IJHtd",kae="AuthFilesPage-module__prefixProxyTextarea___wcym6",Cae="AuthFilesPage-module__prefixProxyFields___da72p",Aae="AuthFilesPage-module__modelsActionButton___-ihP6",Nae="AuthFilesPage-module__modelsActionIconWrap___KD-87",Tae="AuthFilesPage-module__actionButtonLabel___B0RSa",Mae="AuthFilesPage-module__actionIcon___F2TRI",Lae="AuthFilesPage-module__pagination___Hwpg2",Oae="AuthFilesPage-module__batchActionContainer___qPwxN",Pae="AuthFilesPage-module__batchActionBar___YEJju",Eae="AuthFilesPage-module__batchActionLeft___g851y",jae="AuthFilesPage-module__batchActionRight___NDPeh",Rae="AuthFilesPage-module__batchSelectionText___rSTLk",Dae="AuthFilesPage-module__pageInfo___Fkfbg",Fae="AuthFilesPage-module__excludedList___9OGiS",Iae="AuthFilesPage-module__excludedItem___J3Xxa",Uae="AuthFilesPage-module__excludedInfo___0hKQa",Bae="AuthFilesPage-module__excludedProvider___6pkYz",zae="AuthFilesPage-module__excludedModels___QdpJB",qae="AuthFilesPage-module__excludedActions___jP49M",Kae="AuthFilesPage-module__providerField___end0y",Hae="AuthFilesPage-module__providerTagList___dCCYW",Vae="AuthFilesPage-module__providerTag___RADdc",Wae="AuthFilesPage-module__providerTagActive___j4vQJ",Gae="AuthFilesPage-module__aliasChartSection___uS-yX",$ae="AuthFilesPage-module__aliasChartHeader___ABhkk",Xae="AuthFilesPage-module__aliasChartTitle___OSz75",Qae="AuthFilesPage-module__aliasChart___XbONn",Yae="AuthFilesPage-module__cardExtraButtons___P-fL4",Jae="AuthFilesPage-module__viewModeSwitch___CxLpP",Zae="AuthFilesPage-module__mappingRow___b1MBs",eoe="AuthFilesPage-module__mappingSeparator___Wx18F",toe="AuthFilesPage-module__mappingFork___nRhwu",noe="AuthFilesPage-module__detailContent___K3wet",ioe="AuthFilesPage-module__jsonContent___5lYBo",soe="AuthFilesPage-module__formGroup___1YGlp",aoe="AuthFilesPage-module__textarea___IAg4a",ooe="AuthFilesPage-module__hint___YExGS",roe="AuthFilesPage-module__modelsList___KKhRE",loe="AuthFilesPage-module__modelItem___VMfPD",coe="AuthFilesPage-module__modelId___4wMUh",uoe="AuthFilesPage-module__modelDisplayName___znKrk",doe="AuthFilesPage-module__modelType___B0C7D",hoe="AuthFilesPage-module__modelItemExcluded___I5sBn",foe="AuthFilesPage-module__modelExcludedBadge___FyRdH",moe="AuthFilesPage-module__excludedCheckList___8T3-H",poe="AuthFilesPage-module__excludedCheckItem___2z42k",goe="AuthFilesPage-module__excludedCheckLabel___tg4BJ",_oe="AuthFilesPage-module__excludedCheckDisplayName___Cno8d",_e={container:qne,pageHeader:Kne,pageTitle:Hne,description:Vne,headerActions:Wne,titleWrapper:Gne,countBadge:$ne,errorBox:Xne,filterSection:Qne,filterRail:Yne,filterAllIconWrap:Jne,filterAllIcon:Zne,filterContent:eie,filterTags:tie,filterTag:nie,filterTagActive:iie,filterTagIconWrap:sie,filterTagLabel:aie,filterTagIcon:oie,filterTagIconFallback:rie,filterTagText:lie,filterTagCount:cie,filterControlsPanel:uie,filterControls:die,filterItem:hie,filterToggleItem:fie,filterToggleGroup:mie,filterToggleCard:pie,filterToggle:gie,filterToggleLabel:_ie,pageSizeSelect:yie,fileGrid:bie,fileGridQuotaManaged:vie,fileGridCompact:xie,antigravityGrid:Sie,codexGrid:wie,geminiCliGrid:kie,antigravityControls:Cie,antigravityControl:Aie,codexControls:Nie,codexControl:Tie,geminiCliControls:Mie,geminiCliControl:Lie,antigravityCard:Oie,claudeCard:Pie,codexCard:Eie,geminiCliCard:jie,kimiCard:Rie,quotaSection:Die,quotaRow:Fie,quotaRowHeader:Iie,quotaModel:Uie,quotaBar:Bie,quotaBarFill:zie,quotaBarFillHigh:qie,quotaBarFillMedium:Kie,quotaBarFillLow:Hie,quotaMeta:Vie,quotaPercent:Wie,quotaReset:Gie,quotaAmount:$ie,quotaMessage:Xie,quotaMessageAction:Qie,quotaError:Yie,quotaWarning:Jie,codexPlan:Zie,codexPlanLabel:ese,codexPlanValue:tse,premiumPlanValue:nse,fileCard:ise,fileCardSelected:sse,fileCardDisabled:ase,fileCardCompact:ose,fileCardMain:rse,cardHeader:lse,cardSelection:cse,providerAvatar:use,providerAvatarImage:dse,providerAvatarFallback:hse,cardHeaderContent:fse,cardBadgeRow:mse,typeBadge:pse,stateBadge:gse,fileName:_se,healthStatusMessage:yse,cardActions:bse,cardActionsMain:vse,primaryActionButton:xse,cardUtilityActions:Sse,iconButton:wse,statusToggle:kse,statusToggleLabel:Cse,fileCardLayout:Ase,stateBadgeActive:Nse,stateBadgeWarning:Tse,stateBadgeDisabled:Mse,stateBadgeVirtual:Lse,cardMeta:Ose,cardMetaCompact:Pse,metaLabel:Ese,metaValue:jse,metaItem:Rse,priorityBadge:Dse,priorityValue:Fse,noteText:Ise,noteLabel:Use,noteValue:Bse,sortSelect:zse,messageIcon:qse,cardInsights:Kse,cardInsightsCompact:Hse,cardStats:Vse,cardStatsCompact:Wse,statPill:Gse,statLabel:$se,statValue:Xse,statSuccess:Qse,statFailure:Yse,statusPanel:Jse,statusPanelCompact:Zse,statusPanelLabel:eae,statusBar:tae,statusBlocks:nae,statusBlockWrapper:iae,statusRate:sae,statusBlock:aae,statusBlockActive:oae,statusBlockIdle:rae,statusTooltip:lae,statusTooltipLeft:cae,statusTooltipRight:uae,tooltipTime:dae,tooltipStats:hae,tooltipSuccess:fae,tooltipFailure:mae,tooltipRate:pae,statusRateHigh:gae,statusRateMedium:_ae,statusRateLow:yae,prefixProxyEditor:bae,prefixProxyLoading:vae,prefixProxyError:xae,prefixProxyJsonWrapper:Sae,prefixProxyLabel:wae,prefixProxyTextarea:kae,prefixProxyFields:Cae,modelsActionButton:Aae,modelsActionIconWrap:Nae,actionButtonLabel:Tae,actionIcon:Mae,pagination:Lae,batchActionContainer:Oae,batchActionBar:Pae,batchActionLeft:Eae,batchActionRight:jae,batchSelectionText:Rae,pageInfo:Dae,excludedList:Fae,excludedItem:Iae,excludedInfo:Uae,excludedProvider:Bae,excludedModels:zae,excludedActions:qae,providerField:Kae,providerTagList:Hae,providerTag:Vae,providerTagActive:Wae,aliasChartSection:Gae,aliasChartHeader:$ae,aliasChartTitle:Xae,aliasChart:Qae,cardExtraButtons:Yae,viewModeSwitch:Jae,mappingRow:Zae,mappingSeparator:eoe,mappingFork:toe,detailContent:noe,jsonContent:ioe,formGroup:soe,textarea:aoe,hint:ooe,modelsList:roe,modelItem:loe,modelId:coe,modelDisplayName:uoe,modelType:doe,modelItemExcluded:hoe,modelExcludedBadge:foe,excludedCheckList:moe,excludedCheckItem:poe,excludedCheckLabel:goe,excludedCheckDisplayName:_oe};function yoe({percent:t,highThreshold:e,mediumThreshold:n}){const s=t===null?null:((r,c,d)=>Math.min(d,Math.max(c,r)))(t,0,100),a=s===null?_e.quotaBarFillMedium:s>=e?_e.quotaBarFillHigh:s>=n?_e.quotaBarFillMedium:_e.quotaBarFillLow,o=Math.round(s??0);return h.jsx("div",{className:_e.quotaBar,children:h.jsx("div",{className:`${_e.quotaBarFill} ${a}`,style:{width:`${o}%`}})})}const YO=t=>t==="antigravity"?FD:t==="claude"?DD:t==="codex"?ID:t==="kimi"?BD:UD;function boe(t){const{file:e,quotaType:n,disableControls:i}=t,{t:s}=et(),a=_n(y=>y.showNotification),o=Nd(y=>n==="antigravity"?y.antigravityQuota[e.name]:n==="claude"?y.claudeQuota[e.name]:n==="codex"?y.codexQuota[e.name]:n==="kimi"?y.kimiQuota[e.name]:y.geminiCliQuota[e.name]),r=Nd(y=>n==="antigravity"?y.setAntigravityQuota:n==="claude"?y.setClaudeQuota:n==="codex"?y.setCodexQuota:n==="kimi"?y.setKimiQuota:y.setGeminiCliQuota),c=S.useCallback(async()=>{if(i||yl(e)||e.disabled||o?.status==="loading")return;const y=YO(n);r(b=>({...b,[e.name]:y.buildLoadingState()}));try{const b=await y.fetchQuota(e,s);r(v=>({...v,[e.name]:y.buildSuccessState(b)})),a(s("auth_files.quota_refresh_success",{name:e.name}),"success")}catch(b){const v=b instanceof Error?b.message:s("common.unknown_error"),x=$y(b);r(A=>({...A,[e.name]:y.buildErrorState(v,x)})),a(s("auth_files.quota_refresh_failed",{name:e.name,message:v}),"error")}},[i,e,o?.status,n,a,s,r]),d=YO(n),f=o?.status??"idle",m=!i&&!e.disabled,g=see(s,o?.errorStatus,o?.error||s("common.unknown_error"));return h.jsx("div",{className:_e.quotaSection,children:f==="loading"?h.jsx("div",{className:_e.quotaMessage,children:s(`${d.i18nPrefix}.loading`)}):f==="idle"?h.jsx("button",{type:"button",className:`${_e.quotaMessage} ${_e.quotaMessageAction}`,onClick:()=>void c(),disabled:!m,children:s(`${d.i18nPrefix}.idle`)}):f==="error"?h.jsx("div",{className:_e.quotaError,children:s(`${d.i18nPrefix}.load_failed`,{message:g})}):o?d.renderQuotaItems(o,s,{styles:_e,QuotaProgressBar:yoe}):h.jsx("div",{className:_e.quotaMessage,children:s(`${d.i18nPrefix}.idle`)})})}const voe=new Set(["ok","healthy","ready","success","available"]),xoe=t=>{const e=Jd(t);return AD.has(e)?e:null};function Soe(t){const{t:e}=et(),{file:n,compact:i,selected:s,resolvedTheme:a,disableControls:o,deleting:r,statusUpdating:c,quotaFilterType:d,keyStats:f,statusBarCache:m,onShowModels:g,onDownload:y,onOpenPrefixProxyEditor:b,onDelete:v,onToggleStatus:x,onToggleSelect:A}=t,k=ree(n,f),T=yl(n),L=(n.type||"").toLowerCase()==="aistudio",M=!T||L,O=MD(n.type||"unknown",a),N=ed(e,n.type||"unknown"),P=LD(n.type||"unknown",a),E=d&&xoe(n)===d?d:null,R=!!E&&!T&&!i,z=E==="antigravity"?_e.antigravityCard:E==="claude"?_e.claudeCard:E==="codex"?_e.codexCard:E==="gemini-cli"?_e.geminiCliCard:E==="kimi"?_e.kimiCard:"",D=n.auth_index??n.authIndex,Q=rs(D),G=Q&&m.get(Q)||Na([]),B=ND(n),I=!!B&&!voe.has(B.toLowerCase()),V=pm(n.priority??n.priority),K=typeof n.note=="string"?n.note.trim():"",$=T?e("auth_files.type_virtual")||"虚拟认证文件":n.disabled?e("auth_files.health_status_disabled"):e(I?"auth_files.health_status_warning":B?"auth_files.health_status_healthy":"auth_files.status_toggle_label"),X=T?_e.stateBadgeVirtual:n.disabled?_e.stateBadgeDisabled:I?_e.stateBadgeWarning:_e.stateBadgeActive;return h.jsx("div",{className:`${_e.fileCard} ${i?_e.fileCardCompact:""} ${z} ${s?_e.fileCardSelected:""} ${n.disabled?_e.fileCardDisabled:""}`,children:h.jsx("div",{className:_e.fileCardLayout,children:h.jsxs("div",{className:_e.fileCardMain,children:[h.jsxs("div",{className:_e.cardHeader,children:[!T&&h.jsx(Ml,{checked:s,onChange:()=>A(n.name),className:_e.cardSelection,"aria-label":e(s?"auth_files.batch_deselect":"auth_files.batch_select_all"),title:e(s?"auth_files.batch_deselect":"auth_files.batch_select_all")}),h.jsx("div",{className:_e.providerAvatar,style:{backgroundColor:O.bg,color:O.text,...O.border?{border:O.border}:{}},children:P?h.jsx("img",{src:P,alt:"",className:_e.providerAvatarImage}):h.jsx("span",{className:_e.providerAvatarFallback,children:N.slice(0,1).toUpperCase()})}),h.jsxs("div",{className:_e.cardHeaderContent,children:[h.jsxs("div",{className:_e.cardBadgeRow,children:[h.jsx("span",{className:_e.typeBadge,style:{backgroundColor:O.bg,color:O.text,...O.border?{border:O.border}:{}},children:N}),h.jsx("span",{className:`${_e.stateBadge} ${X}`,children:$})]}),h.jsx("span",{className:_e.fileName,title:n.name,children:n.name}),!i&&K&&h.jsxs("div",{className:_e.noteText,title:K,children:[h.jsx("span",{className:_e.noteLabel,children:e("auth_files.note_display")}),h.jsx("span",{className:_e.noteValue,children:K})]})]})]}),h.jsxs("div",{className:`${_e.cardMeta} ${i?_e.cardMetaCompact:""}`,children:[h.jsxs("div",{className:_e.metaItem,children:[h.jsx("span",{className:_e.metaLabel,children:e("auth_files.file_size")}),h.jsx("span",{className:_e.metaValue,children:n.size?ek(n.size):"-"})]}),h.jsxs("div",{className:_e.metaItem,children:[h.jsx("span",{className:_e.metaLabel,children:e("auth_files.file_modified")}),h.jsx("span",{className:_e.metaValue,children:lee(n)})]}),V!==void 0&&h.jsxs("div",{className:`${_e.metaItem} ${_e.priorityBadge}`,children:[h.jsx("span",{className:_e.metaLabel,children:e("auth_files.priority_display")}),h.jsx("span",{className:`${_e.metaValue} ${_e.priorityValue}`,children:V})]})]}),B&&I&&h.jsxs("div",{className:_e.healthStatusMessage,title:B,children:[h.jsx(Bw,{className:_e.messageIcon,size:14}),h.jsx("span",{children:B})]}),h.jsxs("div",{className:`${_e.cardInsights} ${i?_e.cardInsightsCompact:""}`,children:[h.jsxs("div",{className:`${_e.cardStats} ${i?_e.cardStatsCompact:""}`,children:[h.jsxs("div",{className:`${_e.statPill} ${_e.statSuccess}`,children:[h.jsx("span",{className:_e.statLabel,children:e("stats.success")}),h.jsx("span",{className:_e.statValue,children:k.success})]}),h.jsxs("div",{className:`${_e.statPill} ${_e.statFailure}`,children:[h.jsx("span",{className:_e.statLabel,children:e("stats.failure")}),h.jsx("span",{className:_e.statValue,children:k.failure})]})]}),h.jsxs("div",{className:`${_e.statusPanel} ${i?_e.statusPanelCompact:""}`,children:[h.jsx("div",{className:_e.statusPanelLabel,children:h.jsx("span",{children:e("auth_files.health_status_label")})}),h.jsx(Gd,{statusData:G,styles:_e})]}),R&&E&&h.jsx(boe,{file:n,quotaType:E,disableControls:o})]}),h.jsxs("div",{className:_e.cardActions,children:[h.jsxs("div",{className:_e.cardActionsMain,children:[M&&h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>g(n),className:`${_e.primaryActionButton} ${_e.modelsActionButton}`,title:e("auth_files.models_button",{defaultValue:"模型"}),disabled:o,children:h.jsxs(h.Fragment,{children:[h.jsx("span",{className:_e.modelsActionIconWrap,children:h.jsx(Kq,{className:_e.actionIcon,size:16})}),h.jsx("span",{className:_e.actionButtonLabel,children:e("auth_files.models_button",{defaultValue:"模型"})})]})}),!T&&h.jsxs("div",{className:_e.cardUtilityActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>y(n.name),className:_e.iconButton,title:e("auth_files.download_button"),disabled:o,children:h.jsx(r4,{className:_e.actionIcon,size:16})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>b(n),className:_e.iconButton,title:e("auth_files.prefix_proxy_button"),disabled:o,children:h.jsx(I2,{className:_e.actionIcon,size:16})}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>v(n.name),className:_e.iconButton,title:e("auth_files.delete_button"),disabled:o||r===n.name,children:r===n.name?h.jsx(Uc,{size:14}):h.jsx(Ry,{className:_e.actionIcon,size:16})})]})]}),!T&&h.jsxs("div",{className:_e.statusToggle,children:[h.jsx("span",{className:_e.statusToggleLabel,children:e("auth_files.status_toggle_label")}),h.jsx(Si,{ariaLabel:e("auth_files.status_toggle_label"),checked:!n.disabled,disabled:o||c[n.name]===!0,onChange:U=>x(n,U)})]})]})]})})})}function woe(t){const{t:e}=et(),{open:n,fileName:i,fileType:s,loading:a,error:o,models:r,excluded:c,onClose:d,onCopyText:f}=t;return h.jsx(Ss,{open:n,onClose:d,title:e("auth_files.models_title",{defaultValue:"支持的模型"})+` - ${i}`,footer:h.jsx(me,{variant:"secondary",onClick:d,children:e("common.close")}),children:a?h.jsx("div",{className:_e.hint,children:e("auth_files.models_loading",{defaultValue:"正在加载模型列表..."})}):o==="unsupported"?h.jsx(os,{title:e("auth_files.models_unsupported",{defaultValue:"当前版本不支持此功能"}),description:e("auth_files.models_unsupported_desc",{defaultValue:"请更新 CLI Proxy API 到最新版本后重试"})}):r.length===0?h.jsx(os,{title:e("auth_files.models_empty",{defaultValue:"该凭证暂无可用模型"}),description:e("auth_files.models_empty_desc",{defaultValue:"该认证凭证可能尚未被服务器加载或没有绑定任何模型"})}):h.jsx("div",{className:_e.modelsList,children:r.map(m=>{const g=cee(m.id,s,c);return h.jsxs("div",{className:`${_e.modelItem} ${g?_e.modelItemExcluded:""}`,onClick:()=>{f(m.id)},title:g?e("auth_files.models_excluded_hint",{defaultValue:"此 OAuth 模型已被禁用"}):e("common.copy",{defaultValue:"点击复制"}),children:[h.jsx("span",{className:_e.modelId,children:m.id}),m.display_name&&m.display_name!==m.id&&h.jsx("span",{className:_e.modelDisplayName,children:m.display_name}),m.type&&h.jsx("span",{className:_e.modelType,children:m.type}),g&&h.jsx("span",{className:_e.modelExcludedBadge,children:e("auth_files.models_excluded_badge",{defaultValue:"已禁用"})})]},m.id)})})})}function koe(t){const{t:e}=et(),{disableControls:n,editor:i,updatedText:s,dirty:a,onClose:o,onCopyText:r,onSave:c,onChange:d}=t,m=(g=>{if(!g)return"";try{return JSON.stringify(JSON.parse(g),null,2)}catch{return g}})(s);return h.jsx(Ss,{open:!!i,onClose:o,closeDisabled:i?.saving===!0,width:720,title:i?.fileName?e("auth_files.auth_field_editor_title",{name:i.fileName}):e("auth_files.prefix_proxy_button"),footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:o,disabled:i?.saving===!0,children:e(a?"common.cancel":"common.close")}),h.jsx(me,{variant:"secondary",onClick:()=>{s&&r(s)},disabled:i?.saving===!0||!s,children:e("common.copy")}),h.jsx(me,{onClick:c,loading:i?.saving===!0,disabled:n||i?.saving===!0||!a||!i?.json,children:e("common.save")})]}),children:i&&h.jsx("div",{className:_e.prefixProxyEditor,children:i.loading?h.jsxs("div",{className:_e.prefixProxyLoading,children:[h.jsx(Uc,{size:14}),h.jsx("span",{children:e("auth_files.prefix_proxy_loading")})]}):h.jsxs(h.Fragment,{children:[i.error&&h.jsx("div",{className:_e.prefixProxyError,children:i.error}),h.jsxs("div",{className:_e.prefixProxyJsonWrapper,children:[h.jsx("label",{className:_e.prefixProxyLabel,children:e("auth_files.prefix_proxy_info_label")}),h.jsx("textarea",{className:_e.prefixProxyTextarea,rows:8,readOnly:!0,value:i.fileInfoText})]}),h.jsxs("div",{className:_e.prefixProxyJsonWrapper,children:[h.jsx("label",{className:_e.prefixProxyLabel,children:e("auth_files.prefix_proxy_source_label")}),h.jsx("textarea",{className:_e.prefixProxyTextarea,rows:10,readOnly:!0,value:m})]}),h.jsxs("div",{className:_e.prefixProxyFields,children:[h.jsx(ot,{label:e("auth_files.prefix_label"),value:i.prefix,disabled:n||i.saving||!i.json,onChange:g=>d("prefix",g.target.value)}),h.jsx(ot,{label:e("auth_files.proxy_url_label"),value:i.proxyUrl,placeholder:e("auth_files.proxy_url_placeholder"),disabled:n||i.saving||!i.json,onChange:g=>d("proxyUrl",g.target.value)}),h.jsx(ot,{label:e("auth_files.priority_label"),value:i.priority,placeholder:e("auth_files.priority_placeholder"),hint:e("auth_files.priority_hint"),disabled:n||i.saving||!i.json,onChange:g=>d("priority",g.target.value)}),h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:e("auth_files.excluded_models_label")}),h.jsx("textarea",{className:"input",value:i.excludedModelsText,placeholder:e("auth_files.excluded_models_placeholder"),rows:4,disabled:n||i.saving||!i.json,onChange:g=>d("excludedModelsText",g.target.value)}),h.jsx("div",{className:"hint",children:e("auth_files.excluded_models_hint")})]}),h.jsx(ot,{label:e("auth_files.disable_cooling_label"),value:i.disableCooling,placeholder:e("auth_files.disable_cooling_placeholder"),hint:e("auth_files.disable_cooling_hint"),disabled:n||i.saving||!i.json,onChange:g=>d("disableCooling",g.target.value)}),h.jsx(ot,{label:e("auth_files.note_label"),value:i.note,placeholder:e("auth_files.note_placeholder"),hint:e("auth_files.note_hint"),disabled:n||i.saving||!i.json,onChange:g=>d("note",g.target.value)}),i.isCodexFile&&h.jsxs("div",{className:"form-group",children:[h.jsx("label",{children:e("ai_providers.codex_websockets_label")}),h.jsx(Si,{checked:!!i.websockets,disabled:n||i.saving||!i.json,ariaLabel:e("ai_providers.codex_websockets_label"),onChange:g=>d("websockets",g)}),h.jsx("div",{className:"hint",children:e("ai_providers.codex_websockets_hint")})]})]})]})})})}function Coe(t){const{t:e}=et(),{disableControls:n,excludedError:i,excluded:s,onAdd:a,onEdit:o,onDelete:r}=t;return h.jsx(Dt,{title:e("oauth_excluded.title"),extra:h.jsx(me,{size:"sm",onClick:a,disabled:n||i==="unsupported",children:e("oauth_excluded.add")}),children:i==="unsupported"?h.jsx(os,{title:e("oauth_excluded.upgrade_required_title"),description:e("oauth_excluded.upgrade_required_desc")}):Object.keys(s).length===0?h.jsx(os,{title:e("oauth_excluded.list_empty_all")}):h.jsx("div",{className:_e.excludedList,children:Object.entries(s).map(([c,d])=>h.jsxs("div",{className:_e.excludedItem,children:[h.jsxs("div",{className:_e.excludedInfo,children:[h.jsx("div",{className:_e.excludedProvider,children:c}),h.jsx("div",{className:_e.excludedModels,children:d?.length?e("oauth_excluded.model_count",{count:d.length}):e("oauth_excluded.no_models")})]}),h.jsxs("div",{className:_e.excludedActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>o(c),children:e("common.edit")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>r(c),children:e("oauth_excluded.delete")})]})]},c))})})}const Aoe="ModelMappingDiagram-module__scrollContainer___CVtMl",Noe="ModelMappingDiagram-module__tapHint___WVg9j",Toe="ModelMappingDiagram-module__container___5GMeJ",Moe="ModelMappingDiagram-module__connections___-pgzq",Loe="ModelMappingDiagram-module__column___Guf-v",Ooe="ModelMappingDiagram-module__providers___n0NN6",Poe="ModelMappingDiagram-module__sources___N646E",Eoe="ModelMappingDiagram-module__aliases___zg5ma",joe="ModelMappingDiagram-module__columnHeader___QAC6y",Roe="ModelMappingDiagram-module__item___KBTKp",Doe="ModelMappingDiagram-module__dropTarget___dAYPB",Foe="ModelMappingDiagram-module__selected___r3Gyz",Ioe="ModelMappingDiagram-module__providerItem___4PZQM",Uoe="ModelMappingDiagram-module__providerLabel___E2vNu",Boe="ModelMappingDiagram-module__collapseBtn___RXanB",zoe="ModelMappingDiagram-module__chevronDown___AP7zK",qoe="ModelMappingDiagram-module__chevronRight___bbMVy",Koe="ModelMappingDiagram-module__providerGroup___5JNQu",Hoe="ModelMappingDiagram-module__sourceItem___TjDG6",Voe="ModelMappingDiagram-module__aliasItem___h6w7D",Woe="ModelMappingDiagram-module__dragging___lhx9y",Goe="ModelMappingDiagram-module__dot___AOWIN",$oe="ModelMappingDiagram-module__dotLeft___BKXAm",Xoe="ModelMappingDiagram-module__itemName___MjfSv",Qoe="ModelMappingDiagram-module__itemCount___B-gtl",Yoe="ModelMappingDiagram-module__contextMenu___VHX-s",Joe="ModelMappingDiagram-module__menuItem___e-LvI",Zoe="ModelMappingDiagram-module__danger___klXxM",ere="ModelMappingDiagram-module__menuDivider___XtoCo",tre="ModelMappingDiagram-module__settingsEmpty___N0gFF",nre="ModelMappingDiagram-module__settingsList___ovuWo",ire="ModelMappingDiagram-module__settingsRow___wH-TW",sre="ModelMappingDiagram-module__settingsNames___QDn9j",are="ModelMappingDiagram-module__settingsSource___Hz9zo",ore="ModelMappingDiagram-module__settingsAlias___Ov9zt",rre="ModelMappingDiagram-module__settingsArrow___SKvFd",lre="ModelMappingDiagram-module__settingsActions___PYXMU",cre="ModelMappingDiagram-module__settingsLabel___R--i-",ure="ModelMappingDiagram-module__settingsDelete___PDG7z",Je={scrollContainer:Aoe,tapHint:Noe,container:Toe,connections:Moe,column:Loe,providers:Ooe,sources:Poe,aliases:Eoe,columnHeader:joe,item:Roe,dropTarget:Doe,selected:Foe,providerItem:Ioe,providerLabel:Uoe,collapseBtn:Boe,chevronDown:zoe,chevronRight:qoe,providerGroup:Koe,sourceItem:Hoe,aliasItem:Voe,dragging:Woe,dot:Goe,dotLeft:$oe,itemName:Xoe,itemCount:Qoe,contextMenu:Yoe,menuItem:Joe,danger:Zoe,menuDivider:ere,settingsEmpty:tre,settingsList:nre,settingsRow:ire,settingsNames:sre,settingsSource:are,settingsAlias:ore,settingsArrow:rre,settingsActions:lre,settingsLabel:cre,settingsDelete:ure};function dre({providerNodes:t,collapsedProviders:e,getProviderColor:n,providerGroupHeights:i={},providerRefs:s,onToggleCollapse:a,onContextMenu:o,label:r,expandLabel:c,collapseLabel:d}){return h.jsxs("div",{className:`${Je.column} ${Je.providers}`,onContextMenu:f=>{f.preventDefault(),f.stopPropagation(),o(f,"background")},children:[h.jsx("div",{className:Je.columnHeader,children:r}),t.map(({provider:f,sources:m})=>{const g=e.has(f),y=g?void 0:i[f];return h.jsx("div",{className:Je.providerGroup,style:y?{height:y}:void 0,children:h.jsxs("div",{ref:b=>{b?s.current?.set(f,b):s.current?.delete(f)},className:`${Je.item} ${Je.providerItem}`,style:{borderLeftColor:n(f)},onContextMenu:b=>{b.preventDefault(),b.stopPropagation(),o(b,"provider",f)},children:[h.jsx("button",{type:"button",className:Je.collapseBtn,onClick:()=>a(f),"aria-label":g?c:d,title:g?c:d,children:h.jsx("span",{className:g?Je.chevronRight:Je.chevronDown})}),h.jsx("span",{className:Je.providerLabel,style:{color:n(f)},children:f}),h.jsx("span",{className:Je.itemCount,children:m.length})]})},f)})]})}function hre({providerNodes:t,collapsedProviders:e,sourceRefs:n,getProviderColor:i,selectedSourceId:s,onSelectSource:a,draggedSource:o,dropTargetSource:r,draggable:c,onDragStart:d,onDragEnd:f,onDragOver:m,onDragLeave:g,onDrop:y,onContextMenu:b,label:v}){return h.jsxs("div",{className:`${Je.column} ${Je.sources}`,onContextMenu:x=>{x.preventDefault(),x.stopPropagation(),b(x,"background")},children:[h.jsx("div",{className:Je.columnHeader,children:v}),t.flatMap(({provider:x,sources:A})=>e.has(x)?[]:A.map(k=>h.jsxs("div",{ref:T=>{T?n.current?.set(k.id,T):n.current?.delete(k.id)},className:`${Je.item} ${Je.sourceItem} ${o?.id===k.id?Je.dragging:""} ${r===k.id?Je.dropTarget:""} ${s===k.id?Je.selected:""}`,onClick:()=>a?.(k),draggable:c,onDragStart:T=>d(T,k),onDragEnd:f,onDragOver:T=>m(T,k),onDragLeave:g,onDrop:T=>y(T,k),onContextMenu:T=>{T.preventDefault(),T.stopPropagation(),b(T,"source",k.id)},children:[h.jsx("span",{className:Je.itemName,title:k.name,children:k.name}),h.jsx("div",{className:Je.dot,style:{background:i(k.provider),opacity:k.aliases.length>0?1:.3}})]},k.id)))]})}function fre({aliasNodes:t,aliasRefs:e,dropTargetAlias:n,draggedAlias:i,selectedAlias:s,onSelectAlias:a,draggable:o,onDragStart:r,onDragEnd:c,onDragOver:d,onDragLeave:f,onDrop:m,onContextMenu:g,label:y}){return h.jsxs("div",{className:`${Je.column} ${Je.aliases}`,onContextMenu:b=>{b.preventDefault(),b.stopPropagation(),g(b,"background")},children:[h.jsx("div",{className:Je.columnHeader,children:y}),t.map(b=>h.jsxs("div",{ref:v=>{v?e.current?.set(b.id,v):e.current?.delete(b.id)},className:`${Je.item} ${Je.aliasItem} ${n===b.alias?Je.dropTarget:""} ${i===b.alias?Je.dragging:""} ${s===b.alias?Je.selected:""}`,onClick:()=>a?.(b.alias),draggable:o,onDragStart:v=>r(v,b.alias),onDragEnd:c,onDragOver:v=>d(v,b.alias),onDragLeave:f,onDrop:v=>m(v,b.alias),onContextMenu:v=>{v.preventDefault(),v.stopPropagation(),g(v,"alias",b.alias)},children:[h.jsx("div",{className:`${Je.dot} ${Je.dotLeft}`}),h.jsx("span",{className:Je.itemName,title:b.alias,children:b.alias}),h.jsx("span",{className:Je.itemCount,children:b.sources.length})]},b.id))]})}function mre({contextMenu:t,t:e,onRequestClose:n,onAddAlias:i,onRenameAlias:s,onOpenAliasSettings:a,onDeleteAlias:o,onEditProvider:r,onDeleteProvider:c,onOpenSourceSettings:d}){const f=S.useRef(null);if(S.useEffect(()=>{if(!t)return;const A=k=>{f.current?.contains(k.target)||n()};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[t,n]),!t)return null;const{type:m,data:g}=t,y=()=>h.jsx("div",{className:Je.menuItem,onClick:i,children:h.jsx("span",{children:e("oauth_model_alias.diagram_add_alias")})}),b=()=>g?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:Je.menuItem,onClick:()=>s(g),children:h.jsx("span",{children:e("oauth_model_alias.diagram_rename")})}),h.jsx("div",{className:Je.menuItem,onClick:()=>a(g),children:h.jsx("span",{children:e("oauth_model_alias.diagram_settings")})}),h.jsx("div",{className:Je.menuDivider}),h.jsx("div",{className:`${Je.menuItem} ${Je.danger}`,onClick:()=>o(g),children:h.jsx("span",{children:e("oauth_model_alias.diagram_delete_alias")})})]}):null,v=()=>g?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:Je.menuItem,onClick:()=>r(g),children:h.jsx("span",{children:e("common.edit")})}),h.jsx("div",{className:Je.menuDivider}),h.jsx("div",{className:`${Je.menuItem} ${Je.danger}`,onClick:()=>c(g),children:h.jsx("span",{children:e("oauth_model_alias.delete")})})]}):null,x=()=>g?h.jsx("div",{className:Je.menuItem,onClick:()=>d(g),children:h.jsx("span",{children:e("oauth_model_alias.diagram_settings")})}):null;return Eo.createPortal(h.jsxs("div",{ref:f,className:Je.contextMenu,style:{top:t.y,left:t.x},onClick:A=>A.stopPropagation(),children:[m==="background"&&y(),m==="alias"&&b(),m==="provider"&&v(),m==="source"&&x()]}),document.body)}function pre({open:t,t:e,value:n,error:i,onChange:s,onClose:a,onSubmit:o}){return h.jsx(Ss,{open:t,onClose:a,title:e("oauth_model_alias.diagram_rename_alias_title"),width:400,footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:a,children:e("common.cancel")}),h.jsx(me,{onClick:o,children:e("oauth_model_alias.diagram_rename_btn")})]}),children:h.jsx(ot,{label:e("oauth_model_alias.diagram_rename_alias_label"),value:n,onChange:r=>s(r.target.value),onKeyDown:r=>{r.key==="Enter"&&o()},error:i,placeholder:e("oauth_model_alias.diagram_rename_placeholder"),autoFocus:!0})})}function gre({open:t,t:e,value:n,error:i,onChange:s,onClose:a,onSubmit:o}){return h.jsx(Ss,{open:t,onClose:a,title:e("oauth_model_alias.diagram_add_alias_title"),width:400,footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:a,children:e("common.cancel")}),h.jsx(me,{onClick:o,children:e("oauth_model_alias.diagram_add_btn")})]}),children:h.jsx(ot,{label:e("oauth_model_alias.diagram_add_alias_label"),value:n,onChange:r=>s(r.target.value),onKeyDown:r=>{r.key==="Enter"&&o()},error:i,placeholder:e("oauth_model_alias.diagram_add_placeholder"),autoFocus:!0})})}function _re({open:t,t:e,alias:n,aliasNodes:i,onClose:s,onToggleFork:a,onUnlink:o}){return h.jsx(Ss,{open:t,onClose:s,title:e("oauth_model_alias.diagram_settings_title",{alias:n??""}),width:720,footer:h.jsx(me,{variant:"secondary",onClick:s,children:e("common.close")}),children:n?(()=>{const r=i.find(c=>c.alias===n);return!r||r.sources.length===0?h.jsx("div",{className:Je.settingsEmpty,children:e("oauth_model_alias.diagram_settings_empty")}):h.jsx("div",{className:Je.settingsList,children:r.sources.map(c=>{const f=c.aliases.find(m=>m.alias===n)?.fork===!0;return h.jsxs("div",{className:Je.settingsRow,children:[h.jsxs("div",{className:Je.settingsNames,children:[h.jsx("span",{className:Je.settingsSource,children:c.name}),h.jsx("span",{className:Je.settingsArrow,children:"→"}),h.jsx("span",{className:Je.settingsAlias,children:n})]}),h.jsxs("div",{className:Je.settingsActions,children:[h.jsx("span",{className:Je.settingsLabel,children:e("oauth_model_alias.alias_fork_label")}),h.jsx(Si,{checked:f,onChange:m=>a(c.provider,c.name,n,m),ariaLabel:e("oauth_model_alias.alias_fork_label")}),h.jsx("button",{type:"button",className:Je.settingsDelete,onClick:()=>o(c.provider,c.name,n),"aria-label":e("oauth_model_alias.diagram_delete_link",{provider:c.provider,name:c.name}),title:e("oauth_model_alias.diagram_delete_link",{provider:c.provider,name:c.name}),children:h.jsx(Ry,{size:14})})]})]},c.id)})})})():null})}function yre({open:t,t:e,source:n,onClose:i,onToggleFork:s,onUnlink:a}){return h.jsx(Ss,{open:t,onClose:i,title:e("oauth_model_alias.diagram_settings_source_title"),width:720,footer:h.jsx(me,{variant:"secondary",onClick:i,children:e("common.close")}),children:n?n.aliases.length===0?h.jsx("div",{className:Je.settingsEmpty,children:e("oauth_model_alias.diagram_settings_empty")}):h.jsx("div",{className:Je.settingsList,children:n.aliases.map(o=>h.jsxs("div",{className:Je.settingsRow,children:[h.jsxs("div",{className:Je.settingsNames,children:[h.jsx("span",{className:Je.settingsSource,children:n.name}),h.jsx("span",{className:Je.settingsArrow,children:"→"}),h.jsx("span",{className:Je.settingsAlias,children:o.alias})]}),h.jsxs("div",{className:Je.settingsActions,children:[h.jsx("span",{className:Je.settingsLabel,children:e("oauth_model_alias.alias_fork_label")}),h.jsx(Si,{checked:o.fork===!0,onChange:r=>s(n.provider,n.name,o.alias,r),ariaLabel:e("oauth_model_alias.alias_fork_label")}),h.jsx("button",{type:"button",className:Je.settingsDelete,onClick:()=>a(n.provider,n.name,o.alias),"aria-label":e("oauth_model_alias.diagram_delete_link",{provider:n.provider,name:n.name}),title:e("oauth_model_alias.diagram_delete_link",{provider:n.provider,name:n.name}),children:h.jsx(Ry,{size:14})})]})]},`${n.id}-${o.alias}`))}):null})}const JO=["#8b8680","#10b981","#f59e0b","#c65746","#8b5cf6","#ec4899","#06b6d4","#84cc16"];function b1(t){const e=t.split("").reduce((n,i)=>n+i.charCodeAt(0),0);return JO[e%JO.length]}const bre=S.forwardRef(function({modelAlias:e,allProviderModels:n={},onUpdate:i,onDeleteLink:s,onToggleFork:a,onRenameAlias:o,onDeleteAlias:r,onEditProvider:c,onDeleteProvider:d,className:f},m){const{t:g}=et(),b=Aa(Te=>Te.resolvedTheme)==="dark",v=S.useMemo(()=>typeof window>"u"||typeof window.matchMedia>"u"?!1:window.matchMedia("(any-pointer: coarse)").matches&&!window.matchMedia("(any-pointer: fine)").matches,[]),x=S.useRef(null),[A,k]=S.useState([]),[T,L]=S.useState(null),[M,O]=S.useState(null),[N,P]=S.useState(null),[E,R]=S.useState(null),[z,D]=S.useState(null),[Q,G]=S.useState(null),[B,I]=S.useState([]),[V,K]=S.useState(null),[$,X]=S.useState(new Set),[U,q]=S.useState({}),[Y,oe]=S.useState(null),[se,F]=S.useState(""),[Z,J]=S.useState(""),[te,fe]=S.useState(!1),[re,ue]=S.useState(""),[ee,Ie]=S.useState(""),[Ke,ht]=S.useState(null),[wt,ft]=S.useState(null),{aliasNodes:Xe,providerNodes:Ot}=S.useMemo(()=>{const Te=new Map,nt=new Set;Object.entries(e).forEach(([ne,de])=>{(de??[]).forEach(ye=>{const Le=(ye?.name||"").trim(),De=(ye?.alias||"").trim();if(!Le||!De)return;const Qe=`${ne.toLowerCase()}::${Le.toLowerCase()}`;Te.has(Qe)||Te.set(Qe,{provider:ne,name:Le,aliases:new Map}),Te.get(Qe).aliases.set(De,ye?.fork===!0),nt.add(De)})}),Object.entries(n).forEach(([ne,de])=>{(de??[]).forEach(ye=>{const Le=(ye.id||"").trim();if(!Le)return;const De=`${ne.toLowerCase()}::${Le.toLowerCase()}`;Te.has(De)||Te.set(De,{provider:ne,name:Le,aliases:new Map})})});const yt=Array.from(Te.entries()).map(([ne,de])=>({id:ne,provider:de.provider,name:de.name,aliases:Array.from(de.aliases.entries()).map(([ye,Le])=>({alias:ye,fork:Le}))})).sort((ne,de)=>ne.provider!==de.provider?ne.provider.localeCompare(de.provider):ne.name.localeCompare(de.name));B.forEach(ne=>nt.add(ne));const ti=Array.from(nt).map(ne=>({id:ne,alias:ne,sources:yt.filter(de=>de.aliases.some(ye=>ye.alias===ne))})).sort((ne,de)=>de.sources.length!==ne.sources.length?de.sources.length-ne.sources.length:ne.alias.localeCompare(de.alias)),En=new Map;yt.forEach(ne=>{En.has(ne.provider)||En.set(ne.provider,[]),En.get(ne.provider).push(ne)});const di=Array.from(En.entries()).map(([ne,de])=>({provider:ne,sources:de})).sort((ne,de)=>ne.provider.localeCompare(de.provider));return{aliasNodes:ti,providerNodes:di}},[e,n,B]),zt=S.useRef(new Map),sn=S.useRef(new Map),an=S.useRef(new Map),Fe=Te=>{X(nt=>{const yt=new Set(nt);return yt.has(Te)?yt.delete(Te):yt.add(Te),yt})},mt=S.useCallback(()=>{if(!x.current)return;const Te=x.current.getBoundingClientRect(),nt=[],yt={},ti=(En,di,ne,de)=>{const ye=En+(ne-En)*.5,Le=ne-(ne-En)*.5;return`M ${En} ${di} C ${ye} ${di}, ${Le} ${de}, ${ne} ${de}`};Ot.forEach(({provider:En,sources:di})=>{if($.has(En))return;if(di.length>0){const ze=sn.current.get(di[0].id),Ue=sn.current.get(di[di.length-1].id);if(ze&&Ue){const qe=Math.max(0,Math.round(Ue.getBoundingClientRect().bottom-ze.getBoundingClientRect().top));qe>0&&(yt[En]=qe)}}const de=zt.current.get(En);if(!de)return;const ye=de.getBoundingClientRect(),Le=ye.right-Te.left,De=ye.top+ye.height/2-Te.top,Qe=b1(En);di.forEach(ze=>{const Ue=sn.current.get(ze.id);if(!Ue)return;const qe=Ue.getBoundingClientRect(),it=qe.left-Te.left,dt=qe.top+qe.height/2-Te.top;nt.push({id:`provider-${En}-source-${ze.id}`,path:ti(Le,De,it,dt),color:Qe})}),di.forEach(ze=>{!ze.aliases||ze.aliases.length===0||ze.aliases.forEach(Ue=>{const qe=sn.current.get(ze.id),it=an.current.get(Ue.alias);if(!qe||!it)return;const dt=qe.getBoundingClientRect(),rt=it.getBoundingClientRect(),Kt=dt.right-Te.left,Ht=dt.top+dt.height/2-Te.top,yn=rt.left-Te.left,jn=rt.top+rt.height/2-Te.top;nt.push({id:`${ze.id}-${Ue.alias}`,path:ti(Kt,Ht,yn,jn),color:Qe})})})}),k(nt),q(En=>{const di=Object.keys(En),ne=Object.keys(yt);if(di.length!==ne.length)return yt;for(const de of ne)if(!(de in En)||En[de]!==yt[de])return yt;return En})},[Ot,$]);S.useImperativeHandle(m,()=>({collapseAll:()=>X(new Set(Ot.map(Te=>Te.provider))),refreshLayout:()=>mt()}),[Ot,mt]),S.useLayoutEffect(()=>{const Te=requestAnimationFrame(mt);return window.addEventListener("resize",mt),()=>{cancelAnimationFrame(Te),window.removeEventListener("resize",mt)}},[mt,Xe]),S.useLayoutEffect(()=>{const Te=requestAnimationFrame(mt);return()=>cancelAnimationFrame(Te)},[U,mt]),S.useEffect(()=>{if(!x.current||typeof ResizeObserver>"u")return;const Te=new ResizeObserver(()=>mt());return Te.observe(x.current),()=>Te.disconnect()},[mt]);const je=(Te,nt)=>{D(null),G(null),L(nt),Te.dataTransfer.setData("text/plain",nt.id),Te.dataTransfer.effectAllowed="link"},pt=(Te,nt)=>{!T||T.aliases.some(yt=>yt.alias===nt)||(Te.preventDefault(),Te.dataTransfer.dropEffect="link",P(nt))},at=()=>{P(null)},Ee=(Te,nt)=>{Te.preventDefault(),T&&!T.aliases.some(yt=>yt.alias===nt)&&i&&i(T.provider,T.name,nt),L(null),P(null)},ut=(Te,nt)=>{D(null),G(null),O(nt),Te.dataTransfer.setData("text/plain",nt),Te.dataTransfer.effectAllowed="link"},Mt=(Te,nt)=>{!M||nt.aliases.some(yt=>yt.alias===M)||(Te.preventDefault(),Te.dataTransfer.dropEffect="link",R(nt.id))},Nt=()=>{R(null)},le=(Te,nt)=>{Te.preventDefault(),M&&!nt.aliases.some(yt=>yt.alias===M)&&i&&i(nt.provider,nt.name,M),O(null),R(null)},ge=(Te,nt,yt)=>{Te.preventDefault(),Te.stopPropagation(),K({x:Te.clientX,y:Te.clientY,type:nt,data:yt})},ie=()=>K(null),Ae=S.useCallback(Te=>{if(!Te)return null;for(const{sources:nt}of Ot){const yt=nt.find(ti=>ti.id===Te);if(yt)return yt}return null},[Ot]),tt=Te=>{if(i){if(z===Te.id){D(null);return}if(Q){i(Te.provider,Te.name,Q),D(null),G(null);return}D(Te.id),G(null)}},jt=Te=>{if(i){if(Q===Te){G(null);return}if(z){const nt=Ae(z);nt&&i(nt.provider,nt.name,Te),D(null),G(null);return}G(Te),D(null)}},kt=(Te,nt,yt)=>{s&&s(Te,nt,yt)},on=(Te,nt,yt,ti)=>{a&&a(Te,nt,yt,ti)},xt=()=>{ie(),fe(!0),ue(""),Ie("")},ui=()=>{const Te=re.trim();if(!Te){Ie(g("oauth_model_alias.diagram_please_enter_alias"));return}if(Xe.some(nt=>nt.alias===Te)){Ie(g("oauth_model_alias.diagram_alias_exists"));return}I(nt=>[...nt,Te]),fe(!1)},Di=Te=>{ie(),oe({oldAlias:Te}),F(Te),J("")},ds=()=>{const Te=se.trim();if(!Te){J(g("oauth_model_alias.diagram_please_enter_alias"));return}if(Te===Y?.oldAlias){oe(null);return}if(Xe.some(nt=>nt.alias===Te)){J(g("oauth_model_alias.diagram_alias_exists"));return}o&&Y&&o(Y.oldAlias,Te),B.includes(Y?.oldAlias??"")&&I(nt=>nt.map(yt=>yt===Y?.oldAlias?Te:yt)),oe(null)},ws=Te=>{ie();const nt=Xe.find(yt=>yt.alias===Te);nt&&(nt.sources.length===0?I(yt=>yt.filter(ti=>ti!==Te)):r&&r(Te))};return h.jsxs("div",{className:[Je.scrollContainer,f].filter(Boolean).join(" "),children:[v&&i&&h.jsx("div",{className:Je.tapHint,children:g("oauth_model_alias.diagram_tap_hint")}),h.jsxs("div",{className:Je.container,ref:x,onContextMenu:Te=>{Te.preventDefault(),Te.stopPropagation(),ge(Te,"background")},children:[h.jsx("svg",{className:Je.connections,children:A.map(Te=>h.jsx("path",{d:Te.path,stroke:Te.color,strokeOpacity:b?.4:.3},Te.id))}),h.jsx(dre,{providerNodes:Ot,collapsedProviders:$,getProviderColor:b1,providerGroupHeights:U,providerRefs:zt,onToggleCollapse:Fe,onContextMenu:(Te,nt,yt)=>ge(Te,nt,yt),label:g("oauth_model_alias.diagram_providers"),expandLabel:g("oauth_model_alias.diagram_expand"),collapseLabel:g("oauth_model_alias.diagram_collapse")}),h.jsx(hre,{providerNodes:Ot,collapsedProviders:$,sourceRefs:sn,getProviderColor:b1,selectedSourceId:v?z:null,onSelectSource:v?tt:void 0,draggedSource:T,dropTargetSource:E,draggable:!!i,onDragStart:je,onDragEnd:()=>{L(null),P(null)},onDragOver:Mt,onDragLeave:Nt,onDrop:le,onContextMenu:(Te,nt,yt)=>ge(Te,nt,yt),label:g("oauth_model_alias.diagram_source_models")}),h.jsx(fre,{aliasNodes:Xe,aliasRefs:an,dropTargetAlias:N,draggedAlias:M,selectedAlias:v?Q:null,onSelectAlias:v?jt:void 0,draggable:!!i,onDragStart:ut,onDragEnd:()=>{O(null),R(null)},onDragOver:pt,onDragLeave:at,onDrop:Ee,onContextMenu:(Te,nt,yt)=>ge(Te,nt,yt),label:g("oauth_model_alias.diagram_aliases")})]}),h.jsx(mre,{contextMenu:V,t:g,onRequestClose:()=>K(null),onAddAlias:xt,onRenameAlias:Di,onOpenAliasSettings:Te=>{K(null),ht(Te)},onDeleteAlias:ws,onEditProvider:Te=>{K(null),c?.(Te)},onDeleteProvider:Te=>{K(null),d?.(Te)},onOpenSourceSettings:Te=>{K(null),ft(Te)}}),h.jsx(pre,{open:!!Y,t:g,value:se,error:Z,onChange:Te=>{F(Te),J("")},onClose:()=>oe(null),onSubmit:ds}),h.jsx(gre,{open:te,t:g,value:re,error:ee,onChange:Te=>{ue(Te),Ie("")},onClose:()=>fe(!1),onSubmit:ui}),h.jsx(_re,{open:!!Ke,t:g,alias:Ke,aliasNodes:Xe,onClose:()=>ht(null),onToggleFork:on,onUnlink:kt}),h.jsx(yre,{open:!!wt,t:g,source:Ae(wt),onClose:()=>ft(null),onToggleFork:on,onUnlink:kt})]})});function vre(t){const{t:e}=et(),n=S.useRef(null),{disableControls:i,viewMode:s,onViewModeChange:a,onAdd:o,onEditProvider:r,onDeleteProvider:c,modelAliasError:d,modelAlias:f,allProviderModels:m,onUpdate:g,onDeleteLink:y,onToggleFork:b,onRenameAlias:v,onDeleteAlias:x}=t;return h.jsx(Dt,{title:e("oauth_model_alias.title"),extra:h.jsxs("div",{className:_e.cardExtraButtons,children:[h.jsxs("div",{className:_e.viewModeSwitch,children:[h.jsx(me,{variant:s==="list"?"secondary":"ghost",size:"sm",onClick:()=>a("list"),disabled:i||d==="unsupported",children:e("oauth_model_alias.view_mode_list")}),h.jsx(me,{variant:s==="diagram"?"secondary":"ghost",size:"sm",onClick:()=>a("diagram"),disabled:i||d==="unsupported",children:e("oauth_model_alias.view_mode_diagram")})]}),h.jsx(me,{size:"sm",onClick:o,disabled:i||d==="unsupported",children:e("oauth_model_alias.add")})]}),children:d==="unsupported"?h.jsx(os,{title:e("oauth_model_alias.upgrade_required_title"),description:e("oauth_model_alias.upgrade_required_desc")}):s==="diagram"?Object.keys(f).length===0?h.jsx(os,{title:e("oauth_model_alias.list_empty_all")}):h.jsxs("div",{className:_e.aliasChartSection,children:[h.jsxs("div",{className:_e.aliasChartHeader,children:[h.jsx("h4",{className:_e.aliasChartTitle,children:e("oauth_model_alias.chart_title")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>n.current?.collapseAll(),disabled:i||d==="unsupported",title:e("oauth_model_alias.diagram_collapse"),"aria-label":e("oauth_model_alias.diagram_collapse"),children:h.jsx(qw,{size:16})})]}),h.jsx(bre,{ref:n,modelAlias:f,allProviderModels:m,onUpdate:g,onDeleteLink:y,onToggleFork:b,onRenameAlias:v,onDeleteAlias:x,onEditProvider:r,onDeleteProvider:c,className:_e.aliasChart})]}):Object.keys(f).length===0?h.jsx(os,{title:e("oauth_model_alias.list_empty_all")}):h.jsx("div",{className:_e.excludedList,children:Object.entries(f).map(([A,k])=>h.jsxs("div",{className:_e.excludedItem,children:[h.jsxs("div",{className:_e.excludedInfo,children:[h.jsx("div",{className:_e.excludedProvider,children:A}),h.jsx("div",{className:_e.excludedModels,children:k?.length?e("oauth_model_alias.model_count",{count:k.length}):e("oauth_model_alias.no_models")})]}),h.jsxs("div",{className:_e.excludedActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>r(A),children:e("common.edit")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>c(A),children:e("oauth_model_alias.delete")})]})]},A))})})}function Cl({filename:t,blob:e,revokeDelayMs:n=1e3}){const i=window.URL.createObjectURL(e),s=document.createElement("a");s.href=i,s.download=t,s.rel="noopener",s.style.display="none",document.body.appendChild(s),s.click(),window.setTimeout(()=>{window.URL.revokeObjectURL(i),s.remove()},n)}function xre(t){const{refreshKeyStats:e}=t,{t:n}=et(),{showNotification:i,showConfirmation:s}=_n(),[a,o]=S.useState([]),[r,c]=S.useState(!0),[d,f]=S.useState(""),[m,g]=S.useState(!1),[y,b]=S.useState(null),[v,x]=S.useState(!1),[A,k]=S.useState({}),[T,L]=S.useState(!1),[M,O]=S.useState(new Set),N=S.useRef(null),P=S.useRef(!1),E=M.size,R=S.useCallback(se=>{O(F=>{const Z=new Set(F);return Z.has(se)?Z.delete(se):Z.add(se),Z})},[]),z=S.useCallback(se=>{const F=se.filter(Z=>!yl(Z)).map(Z=>Z.name);F.length!==0&&O(Z=>{const J=new Set(Z);return F.forEach(te=>J.add(te)),J})},[]),D=S.useCallback(se=>{const F=se.filter(Z=>!yl(Z)).map(Z=>Z.name);F.length!==0&&O(Z=>{const J=new Set(Z);return F.forEach(te=>{J.has(te)?J.delete(te):J.add(te)}),J})},[]),Q=S.useCallback(()=>{O(new Set)},[]),G=S.useCallback(se=>{const F=Array.from(new Set(se.map(J=>J.trim()).filter(Boolean)));if(F.length===0)return;const Z=new Set(F);o(J=>J.filter(te=>!Z.has(te.name))),O(J=>{if(J.size===0)return J;let te=!1;const fe=new Set;return J.forEach(re=>{Z.has(re)?te=!0:fe.add(re)}),te?fe:J})},[]);S.useEffect(()=>{if(M.size===0)return;const se=new Set(a.map(F=>F.name));O(F=>{let Z=!1;const J=new Set;return F.forEach(te=>{se.has(te)?J.add(te):Z=!0}),Z?J:F})},[a,M.size]);const B=S.useCallback(async()=>{c(!0),f("");try{const se=await At.list();o(se?.files||[])}catch(se){const F=se instanceof Error?se.message:n("notification.refresh_failed");f(F)}finally{c(!1)}},[n]),I=S.useCallback(()=>{N.current?.click()},[]),V=S.useCallback(async se=>{const F=se.target.files;if(!F||F.length===0)return;const Z=Array.from(F),J=[],te=[],fe=[];if(Z.forEach(re=>{if(!re.name.endsWith(".json")){te.push(re.name);return}if(re.size>D0){fe.push(re.name);return}J.push(re)}),te.length>0&&i(n("auth_files.upload_error_json"),"error"),fe.length>0&&i(n("auth_files.upload_error_size",{maxSize:ek(D0)}),"error"),J.length===0){se.target.value="";return}g(!0);try{const re=await At.uploadFiles(J),ue=re.uploaded;if(ue>0){const ee=J.length>1?` (${ue}/${J.length})`:"";i(`${n("auth_files.upload_success")}${ee}`,re.failed.length?"warning":"success"),await B(),await e()}if(re.failed.length>0){const ee=re.failed.map(Ie=>`${Ie.name}: ${Ie.error}`).join("; ");i(`${n("notification.upload_failed")}: ${ee}`,"error")}}catch(re){const ue=re instanceof Error?re.message:"Unknown error";i(`${n("notification.upload_failed")}: ${ue}`,"error")}finally{g(!1),se.target.value=""}},[B,e,i,n]),K=S.useCallback(se=>{s({title:n("auth_files.delete_title",{defaultValue:"Delete File"}),message:`${n("auth_files.delete_confirm")} "${se}" ?`,variant:"danger",confirmText:n("common.confirm"),onConfirm:async()=>{b(se);try{const F=await At.deleteFile(se);i(n("auth_files.delete_success"),"success"),G(F.files.length>0?F.files:[se])}catch(F){const Z=F instanceof Error?F.message:"";i(`${n("notification.delete_failed")}: ${Z}`,"error")}finally{b(null)}}})},[G,s,i,n]),$=S.useCallback(se=>{const{filter:F,problemOnly:Z,onResetFilterToAll:J,onResetProblemOnly:te}=se,fe=F!=="all",re=Z===!0,ue=fe?ed(n,F):n("auth_files.filter_all"),ee=re?fe?n("auth_files.delete_problem_filtered_confirm",{type:ue}):n("auth_files.delete_problem_confirm"):fe?n("auth_files.delete_filtered_confirm",{type:ue}):n("auth_files.delete_all_confirm");s({title:n("auth_files.delete_all_title",{defaultValue:"Delete All Files"}),message:ee,variant:"danger",confirmText:n("common.confirm"),onConfirm:async()=>{x(!0);try{if(!fe&&!re)await At.deleteAll(),i(n("auth_files.delete_all_success"),"success"),o(Ie=>Ie.filter(Ke=>yl(Ke))),Q();else{const Ie=a.filter(ft=>!(yl(ft)||fe&&ft.type!==F||re&&!TD(ft)));if(Ie.length===0){const ft=re?fe?n("auth_files.delete_problem_filtered_none",{type:ue}):n("auth_files.delete_problem_none"):n("auth_files.delete_filtered_none",{type:ue});i(ft,"info"),x(!1);return}const Ke=await At.deleteFiles(Ie.map(ft=>ft.name)),ht=Ke.deleted,wt=Ke.failed.length;G(Ke.files),wt===0&&re?i(fe?n("auth_files.delete_problem_filtered_success",{count:ht,type:ue}):n("auth_files.delete_problem_success",{count:ht}),"success"):wt===0?i(n("auth_files.delete_filtered_success",{count:ht,type:ue}),"success"):i(re?fe?n("auth_files.delete_problem_filtered_partial",{success:ht,failed:wt,type:ue}):n("auth_files.delete_problem_partial",{success:ht,failed:wt}):n("auth_files.delete_filtered_partial",{success:ht,failed:wt,type:ue}),"warning"),fe&&J(),re&&te()}}catch(Ie){const Ke=Ie instanceof Error?Ie.message:"";i(`${n("notification.delete_failed")}: ${Ke}`,"error")}finally{x(!1)}}})},[G,Q,a,s,i,n]),X=S.useCallback(async se=>{try{const F=await Be.getRaw(`/auth-files/download?name=${encodeURIComponent(se)}`,{responseType:"blob"}),Z=new Blob([F.data]);Cl({filename:se,blob:Z}),i(n("auth_files.download_success"),"success")}catch(F){const Z=F instanceof Error?F.message:"";i(`${n("notification.download_failed")}: ${Z}`,"error")}},[i,n]),U=S.useCallback(async(se,F)=>{const Z=se.name,J=!F,te=se.disabled===!0;k(fe=>({...fe,[Z]:!0})),o(fe=>fe.map(re=>re.name===Z?{...re,disabled:J}:re));try{const fe=await At.setStatus(Z,J);o(re=>re.map(ue=>ue.name===Z?{...ue,disabled:fe.disabled}:ue)),i(F?n("auth_files.status_enabled_success",{name:Z}):n("auth_files.status_disabled_success",{name:Z}),"success")}catch(fe){const re=fe instanceof Error?fe.message:"";o(ue=>ue.map(ee=>ee.name===Z?{...ee,disabled:te}:ee)),i(`${n("notification.update_failed")}: ${re}`,"error")}finally{k(fe=>{if(!fe[Z])return fe;const re={...fe};return delete re[Z],re})}},[i,n]),q=S.useCallback(async(se,F)=>{if(P.current)return;const Z=Array.from(new Set(se));if(Z.length===0||Z.some(ue=>A[ue]===!0))return;const J=new Map(a.filter(ue=>Z.includes(ue.name)).map(ue=>[ue.name,ue.disabled===!0])),te=new Set(J.keys()),fe=Array.from(te);if(fe.length===0)return;const re=!F;P.current=!0,L(!0),k(ue=>{const ee={...ue};return fe.forEach(Ie=>{ee[Ie]=!0}),ee}),o(ue=>ue.map(ee=>te.has(ee.name)?{...ee,disabled:re}:ee));try{const ue=await Promise.allSettled(fe.map(wt=>At.setStatus(wt,re)));let ee=0,Ie=0;const Ke=new Set,ht=new Map;ue.forEach((wt,ft)=>{const Xe=fe[ft];wt.status==="fulfilled"?(ee++,ht.set(Xe,wt.value.disabled)):(Ie++,Ke.add(Xe))}),o(wt=>wt.map(ft=>Ke.has(ft.name)?{...ft,disabled:J.get(ft.name)===!0}:ht.has(ft.name)?{...ft,disabled:ht.get(ft.name)}:ft)),Ie===0?i(n("auth_files.batch_status_success",{count:ee}),"success"):i(n("auth_files.batch_status_partial",{success:ee,failed:Ie}),"warning"),Q()}finally{P.current=!1,L(!1),k(ue=>{const ee={...ue};return fe.forEach(Ie=>{delete ee[Ie]}),ee})}},[Q,a,i,A,n]),Y=S.useCallback(async se=>{const F=Array.from(new Set(se));if(F.length===0)return;let Z=0,J=0;for(const te of F)try{const fe=await Be.getRaw(`/auth-files/download?name=${encodeURIComponent(te)}`,{responseType:"blob"}),re=new Blob([fe.data]);Cl({filename:te,blob:re}),Z++}catch{J++}J===0?i(n("auth_files.batch_download_success",{count:Z}),"success"):i(n("auth_files.batch_download_partial",{success:Z,failed:J}),"warning")},[i,n]),oe=S.useCallback(se=>{const F=Array.from(new Set(se));F.length!==0&&s({title:n("auth_files.batch_delete_title"),message:n("auth_files.batch_delete_confirm",{count:F.length}),variant:"danger",confirmText:n("common.confirm"),onConfirm:async()=>{try{const Z=await At.deleteFiles(F);G(Z.files),Z.failed.length===0?i(`${n("auth_files.delete_all_success")} (${Z.deleted})`,"success"):i(n("auth_files.delete_filtered_partial",{success:Z.deleted,failed:Z.failed.length,type:n("auth_files.filter_all")}),"warning")}catch(Z){const J=Z instanceof Error?Z.message:"";i(`${n("notification.delete_failed")}: ${J}`,"error")}}})},[G,s,i,n]);return{files:a,selectedFiles:M,selectionCount:E,loading:r,error:d,uploading:m,deleting:y,deletingAll:v,statusUpdating:A,batchStatusUpdating:T,fileInputRef:N,loadFiles:B,handleUploadClick:I,handleFileChange:V,handleDelete:K,handleDeleteAll:$,handleDownload:X,handleStatusToggle:U,toggleSelect:R,selectAllVisible:z,invertVisibleSelection:D,deselectAll:Q,batchDownload:Y,batchSetStatus:q,batchDelete:oe}}function Sre(){const{t}=et(),e=_n(A=>A.showNotification),[n,i]=S.useState(!1),[s,a]=S.useState(!1),[o,r]=S.useState([]),[c,d]=S.useState(""),[f,m]=S.useState(""),[g,y]=S.useState(null),b=S.useRef(new Map),v=S.useCallback(()=>{i(!1)},[]),x=S.useCallback(async A=>{d(A.name),m(A.type||""),r([]),y(null),i(!0);const k=b.current.get(A.name);if(k){r(k),a(!1);return}a(!0);try{const T=await At.getModelsForAuthFile(A.name);b.current.set(A.name,T),r(T)}catch(T){const L=T instanceof Error?T.message:"";L.includes("404")||L.includes("not found")||L.includes("Not Found")?y("unsupported"):e(`${t("notification.load_failed")}: ${L}`,"error")}finally{a(!1)}},[e,t]);return{modelsModalOpen:n,modelsLoading:s,modelsList:o,modelsFileName:c,modelsFileType:f,modelsError:g,showModels:x,closeModelsModal:v}}function wre(t){const{viewMode:e,files:n}=t,{t:i}=et(),{showNotification:s,showConfirmation:a}=_n(),[o,r]=S.useState({}),[c,d]=S.useState(null),[f,m]=S.useState({}),[g,y]=S.useState(null),[b,v]=S.useState({}),x=S.useRef(!1),A=S.useRef(!1),k=S.useMemo(()=>{const D=new Set;return Object.keys(f).forEach(Q=>{const G=Q.trim().toLowerCase();G&&D.add(G)}),n.forEach(Q=>{if(typeof Q.type=="string"){const G=Q.type.trim().toLowerCase();G&&D.add(G)}if(typeof Q.provider=="string"){const G=Q.provider.trim().toLowerCase();G&&D.add(G)}}),Array.from(D)},[n,f]);S.useEffect(()=>{if(e!=="diagram")return;let D=!1;return(async()=>{if(k.length===0){D||v({});return}const G=await Promise.all(k.map(async I=>{try{const V=await At.getModelDefinitions(I);return{provider:I,models:V}}catch{return{provider:I,models:[]}}}));if(D)return;const B={};G.forEach(({provider:I,models:V})=>{V.length>0&&(B[I]=V)}),v(B)})(),()=>{D=!0}},[k,e]);const T=S.useCallback(async()=>{try{const D=await At.getOauthExcludedModels();x.current=!1,r(D||{}),d(null)}catch(D){if((typeof D=="object"&&D!==null&&"status"in D?D.status:void 0)===404){r({}),d("unsupported"),x.current||(x.current=!0,s(i("oauth_excluded.upgrade_required"),"warning"));return}}},[s,i]),L=S.useCallback(async()=>{try{const D=await At.getOauthModelAlias();A.current=!1,m(D||{}),y(null)}catch(D){if((typeof D=="object"&&D!==null&&"status"in D?D.status:void 0)===404){m({}),y("unsupported"),A.current||(A.current=!0,s(i("oauth_model_alias.upgrade_required"),"warning"));return}}},[s,i]),M=S.useCallback(D=>{const Q=D.trim()||D;a({title:i("oauth_excluded.delete_title",{defaultValue:"Delete Exclusion"}),message:i("oauth_excluded.delete_confirm",{provider:Q}),variant:"danger",confirmText:i("common.confirm"),onConfirm:async()=>{const G=Ys(D);if(!G){s(i("oauth_excluded.provider_required"),"error");return}try{await At.deleteOauthExcludedEntry(G),await T(),s(i("oauth_excluded.delete_success"),"success")}catch(B){try{const I=await At.getOauthExcludedModels(),V={};Object.entries(I).forEach(([K,$])=>{Ys(K)!==G&&(V[K]=$)}),await At.replaceOauthExcludedModels(V),await T(),s(i("oauth_excluded.delete_success"),"success")}catch(I){const V=I instanceof Error?I.message:B instanceof Error?B.message:"";s(`${i("oauth_excluded.delete_failed")}: ${V}`,"error")}}}})},[T,a,s,i]),O=S.useCallback(D=>{a({title:i("oauth_model_alias.delete_title",{defaultValue:"Delete Mappings"}),message:i("oauth_model_alias.delete_confirm",{provider:D}),variant:"danger",confirmText:i("common.confirm"),onConfirm:async()=>{try{await At.deleteOauthModelAlias(D),await L(),s(i("oauth_model_alias.delete_success"),"success")}catch(Q){const G=Q instanceof Error?Q.message:"";s(`${i("oauth_model_alias.delete_failed")}: ${G}`,"error")}}})},[L,a,s,i]),N=S.useCallback(async(D,Q,G)=>{if(!D||!Q||!G)return;const B=Ys(D);if(!B)return;const I=Object.keys(f).find(Y=>Ys(Y)===B),V=(I?f[I]:null)??[],K=Q.trim(),$=G.trim(),X=K.toLowerCase(),U=$.toLowerCase();if(V.some(Y=>(Y.name??"").trim().toLowerCase()===X&&(Y.alias??"").trim().toLowerCase()===U))return;const q=[...V,{name:K,alias:$,fork:!0}];try{await At.saveOauthModelAlias(B,q),await L(),s(i("oauth_model_alias.save_success"),"success")}catch(Y){const oe=Y instanceof Error?Y.message:"";s(`${i("oauth_model_alias.save_failed")}: ${oe}`,"error")}},[L,f,s,i]),P=S.useCallback((D,Q,G)=>{const B=Q.trim(),I=G.trim();!D||!B||!I||a({title:i("oauth_model_alias.delete_link_title",{defaultValue:"Unlink mapping"}),message:h.jsx(uL,{i18nKey:"oauth_model_alias.delete_link_confirm",values:{provider:D,sourceModel:B,alias:I},components:{code:h.jsx("code",{})}}),variant:"danger",confirmText:i("common.confirm"),onConfirm:async()=>{const V=Ys(D),K=Object.keys(f).find(Y=>Ys(Y)===V),$=(K?f[K]:null)??[],X=B.toLowerCase(),U=I.toLowerCase(),q=$.filter(Y=>(Y.name??"").trim().toLowerCase()!==X||(Y.alias??"").trim().toLowerCase()!==U);if(q.length!==$.length)try{q.length===0?await At.deleteOauthModelAlias(V):await At.saveOauthModelAlias(V,q),await L(),s(i("oauth_model_alias.save_success"),"success")}catch(Y){const oe=Y instanceof Error?Y.message:"";s(`${i("oauth_model_alias.save_failed")}: ${oe}`,"error")}}})},[L,f,a,s,i]),E=S.useCallback(async(D,Q,G,B)=>{const I=Ys(D);if(!I)return;const V=Object.keys(f).find(Y=>Ys(Y)===I),K=(V?f[V]:null)??[],$=Q.trim().toLowerCase(),X=G.trim().toLowerCase();let U=!1;const q=K.map(Y=>{const oe=(Y.name??"").trim().toLowerCase(),se=(Y.alias??"").trim().toLowerCase();return oe===$&&se===X?(U=!0,B?{...Y,fork:!0}:{name:Y.name,alias:Y.alias}):Y});if(U)try{await At.saveOauthModelAlias(I,q),await L(),s(i("oauth_model_alias.save_success"),"success")}catch(Y){const oe=Y instanceof Error?Y.message:"";s(`${i("oauth_model_alias.save_failed")}: ${oe}`,"error")}},[L,f,s,i]),R=S.useCallback(async(D,Q)=>{const G=D.trim(),B=Q.trim();if(!G||!B||G===B)return;const I=G.toLowerCase(),V=Object.entries(f).filter(([X,U])=>U.some(q=>(q.alias??"").trim().toLowerCase()===I));if(V.length===0)return;let K=!1,$="";try{const U=(await Promise.allSettled(V.map(([q,Y])=>{const oe=Y.map(se=>(se.alias??"").trim().toLowerCase()===I?{...se,alias:B}:se);return At.saveOauthModelAlias(q,oe)}))).filter(q=>q.status==="rejected");if(U.length>0){K=!0;const q=U[0].reason;$=q instanceof Error?q.message:String(q??"")}}finally{await L()}K?s($?`${i("oauth_model_alias.save_failed")}: ${$}`:i("oauth_model_alias.save_failed"),"error"):s(i("oauth_model_alias.save_success"),"success")},[L,f,s,i]),z=S.useCallback(D=>{const Q=D.trim();if(!Q)return;const G=Q.toLowerCase(),B=Object.entries(f).filter(([I,V])=>V.some(K=>(K.alias??"").trim().toLowerCase()===G));B.length!==0&&a({title:i("oauth_model_alias.delete_alias_title",{defaultValue:"Delete Alias"}),message:h.jsx(uL,{i18nKey:"oauth_model_alias.delete_alias_confirm",values:{alias:Q},components:{code:h.jsx("code",{})}}),variant:"danger",confirmText:i("common.confirm"),onConfirm:async()=>{let I=!1,V="";try{const $=(await Promise.allSettled(B.map(([X,U])=>{const q=U.filter(Y=>(Y.alias??"").trim().toLowerCase()!==G);return q.length===0?At.deleteOauthModelAlias(X):At.saveOauthModelAlias(X,q)}))).filter(X=>X.status==="rejected");if($.length>0){I=!0;const X=$[0].reason;V=X instanceof Error?X.message:String(X??"")}}finally{await L()}I?s(V?`${i("oauth_model_alias.delete_failed")}: ${V}`:i("oauth_model_alias.delete_failed"),"error"):s(i("oauth_model_alias.delete_success"),"success")}})},[L,f,a,s,i]);return{excluded:o,excludedError:c,modelAlias:f,modelAliasError:g,allProviderModels:b,providerList:k,loadExcluded:T,loadModelAlias:L,deleteExcluded:M,deleteModelAlias:O,handleMappingUpdate:N,handleDeleteLink:P,handleToggleFork:E,handleRenameAlias:R,handleDeleteAlias:z}}const kre=t=>{if(!t?.json)return t?.rawText??"";const e={...t.json};("prefix"in e||t.prefix.trim())&&(e.prefix=t.prefix),("proxy_url"in e||t.proxyUrl.trim())&&(e.proxy_url=t.proxyUrl);const n=pm(t.priority);n!==void 0?e.priority=n:"priority"in e&&delete e.priority;const i=aee(t.excludedModelsText);i.length>0?e.excluded_models=i:"excluded_models"in e&&delete e.excluded_models;const s=dk(t.disableCooling);return s!==void 0?e.disable_cooling=s:"disable_cooling"in e&&delete e.disable_cooling,t.noteTouched&&(t.note.trim()?e.note=t.note:"note"in e&&delete e.note),JSON.stringify(t.isCodexFile?oee(e,t.websockets):e)};function Cre(t){const{disableControls:e,loadFiles:n,loadKeyStats:i}=t,{t:s}=et(),a=_n(b=>b.showNotification),[o,r]=S.useState(null),c=kre(o),d=!!o?.json&&!!o?.originalText&&c!==o?.originalText;return{prefixProxyEditor:o,prefixProxyUpdatedText:c,prefixProxyDirty:d,openPrefixProxyEditor:async b=>{const v=b.name,x=String(b.type??"").trim().toLowerCase(),A=String(b.provider??"").trim().toLowerCase(),k=x==="codex"||A==="codex";if(!e){if(o?.fileName===v){r(null);return}r({fileName:v,fileInfoText:JSON.stringify(b,null,2),isCodexFile:k,loading:!0,saving:!1,error:null,originalText:"",rawText:"",json:null,prefix:"",proxyUrl:"",priority:"",excludedModelsText:"",disableCooling:"",websockets:!1,note:"",noteTouched:!1});try{const L=(await At.downloadText(v)).trim();let M;try{M=JSON.parse(L)}catch{r(B=>!B||B.fileName!==v?B:{...B,loading:!1,error:s("auth_files.prefix_proxy_invalid_json"),rawText:L,originalText:L});return}if(!M||typeof M!="object"||Array.isArray(M)){r(B=>!B||B.fileName!==v?B:{...B,loading:!1,error:s("auth_files.prefix_proxy_invalid_json"),rawText:L,originalText:L});return}const O={...M};if(k){const B=qO(O);delete O.websocket,O.websockets=B}const N=JSON.stringify(O),P=typeof O.prefix=="string"?O.prefix:"",E=typeof O.proxy_url=="string"?O.proxy_url:"",R=pm(O.priority),z=OD(O.excluded_models),D=dk(O.disable_cooling),Q=qO(O),G=typeof O.note=="string"?O.note:"";r(B=>!B||B.fileName!==v?B:{...B,loading:!1,originalText:N,rawText:N,json:O,prefix:P,proxyUrl:E,priority:R!==void 0?String(R):"",excludedModelsText:z.join(`
|
||
`),disableCooling:D===void 0?"":D?"true":"false",websockets:Q,note:G,noteTouched:!1,error:null})}catch(T){const L=T instanceof Error?T.message:s("notification.download_failed");r(M=>!M||M.fileName!==v?M:{...M,loading:!1,error:L,rawText:""}),a(`${s("notification.download_failed")}: ${L}`,"error")}}},closePrefixProxyEditor:()=>{r(null)},handlePrefixProxyChange:(b,v)=>{r(x=>x&&(b==="prefix"?{...x,prefix:String(v)}:b==="proxyUrl"?{...x,proxyUrl:String(v)}:b==="priority"?{...x,priority:String(v)}:b==="excludedModelsText"?{...x,excludedModelsText:String(v)}:b==="disableCooling"?{...x,disableCooling:String(v)}:b==="note"?{...x,note:String(v),noteTouched:!0}:{...x,websockets:!!v}))},handlePrefixProxySave:async()=>{if(!o?.json||!d)return;const b=o.fileName,v=c;if(new Blob([v]).size>D0){a(s("auth_files.upload_error_size",{maxSize:ek(D0)}),"error");return}r(A=>!A||A.fileName!==b?A:{...A,saving:!0});try{await At.saveText(b,v),a(s("auth_files.prefix_proxy_saved_success",{name:b}),"success"),await n(),await i(),r(null)}catch(A){const k=A instanceof Error?A.message:"";a(`${s("notification.upload_failed")}: ${k}`,"error"),r(T=>!T||T.fileName!==b?T:{...T,saving:!1})}}}}function Are(){const t=ns(a=>a.keyStats),e=ns(a=>a.usageDetails),n=ns(a=>a.loadUsageStats),i=S.useCallback(async()=>{await n({staleTimeMs:Cr})},[n]),s=S.useCallback(async()=>{await n({force:!0,staleTimeMs:Cr})},[n]);return{keyStats:t,usageDetails:e,loadKeyStats:i,refreshKeyStats:s}}function Nre(t,e){return S.useMemo(()=>{const n=new Map,i=new Map;e.forEach(a=>{const o=rs(a.auth_index);if(!o)return;const r=i.get(o);r?r.push(a):i.set(o,[a])});const s=new Set;return t.forEach(a=>{const o=a.auth_index??a.authIndex,r=rs(o);r&&s.add(r)}),s.forEach(a=>{n.set(a,Na(i.get(a)??[]))}),n},[t,e])}const Tre=["default","az","priority"],iS="authFilesPage.uiState",zD="authFilesPage.compactMode",Mre=new Set(Tre),ZO=t=>typeof t=="string"&&Mre.has(t),eP=t=>{if(!t)return null;const e=t.getItem(iS);if(!e)return null;const n=JSON.parse(e);return n&&typeof n=="object"?n:null},Lre=()=>{if(typeof window>"u")return null;try{return eP(window.localStorage)??eP(window.sessionStorage)}catch{return null}},Ore=t=>{if(!(typeof window>"u")){try{window.localStorage.setItem(iS,JSON.stringify(t))}catch{}try{window.sessionStorage.removeItem(iS)}catch{}}},Pre=()=>{if(typeof window>"u")return null;try{const t=window.localStorage.getItem(zD);return t===null?null:JSON.parse(t)===!0}catch{return null}},Ere=t=>{if(!(typeof window>"u"))try{window.localStorage.setItem(zD,JSON.stringify(t))}catch{}},jre=t=>1-(1-t)**4,Rre=t=>t**3,v1="translateX(-50%)",tP="translateX(-50%) translateY(56px)",nP=9,iP=12,Dre=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Fre=t=>{if(!t.includes("*"))return null;const e=t.split("*").map(Dre).join(".*");return new RegExp(e,"i")};function Ire(){const{t}=et(),e=_n(He=>He.showNotification),n=nn(He=>He.connectionStatus),i=Aa(He=>He.resolvedTheme),s=Wd(),a=s?s.status==="current":!0,o=Ri(),[r,c]=S.useState("all"),[d,f]=S.useState(!1),[m,g]=S.useState(!1),[y,b]=S.useState(""),[v,x]=S.useState(1),[A,k]=S.useState({regular:nP,compact:iP}),[T,L]=S.useState("9"),[M,O]=S.useState("list"),[N,P]=S.useState("default"),[E,R]=S.useState(!1),[z,D]=S.useState(!1),Q=S.useRef(null),G=S.useRef(null),B=S.useRef(0),I=S.useRef(0),{keyStats:V,usageDetails:K,loadKeyStats:$,refreshKeyStats:X}=Are(),{files:U,selectedFiles:q,selectionCount:Y,loading:oe,error:se,uploading:F,deleting:Z,deletingAll:J,statusUpdating:te,batchStatusUpdating:fe,fileInputRef:re,loadFiles:ue,handleUploadClick:ee,handleFileChange:Ie,handleDelete:Ke,handleDeleteAll:ht,handleDownload:wt,handleStatusToggle:ft,toggleSelect:Xe,selectAllVisible:Ot,invertVisibleSelection:zt,deselectAll:sn,batchDownload:an,batchSetStatus:Fe,batchDelete:mt}=xre({refreshKeyStats:X}),je=Nre(U,K),{excluded:pt,excludedError:at,modelAlias:Ee,modelAliasError:ut,allProviderModels:Mt,loadExcluded:Nt,loadModelAlias:le,deleteExcluded:ge,deleteModelAlias:ie,handleMappingUpdate:Ae,handleDeleteLink:tt,handleToggleFork:jt,handleRenameAlias:kt,handleDeleteAlias:on}=wre({viewMode:M,files:U}),{modelsModalOpen:xt,modelsLoading:ui,modelsList:Di,modelsFileName:ds,modelsFileType:ws,modelsError:Te,showModels:nt,closeModelsModal:yt}=Sre(),{prefixProxyEditor:ti,prefixProxyUpdatedText:En,prefixProxyDirty:di,openPrefixProxyEditor:ne,closePrefixProxyEditor:de,handlePrefixProxyChange:ye,handlePrefixProxySave:Le}=Cre({disableControls:n!=="connected",loadFiles:ue,loadKeyStats:X}),De=n!=="connected",Qe=Ys(String(r)),ze=AD.has(Qe)?Qe:null,Ue=m?A.compact:A.regular;S.useEffect(()=>{const He=Pre();typeof He=="boolean"&&g(He);const Ve=Lre();if(Ve){typeof Ve.filter=="string"&&Ve.filter.trim()&&c(Ve.filter),typeof Ve.problemOnly=="boolean"&&f(Ve.problemOnly),typeof He!="boolean"&&typeof Ve.compactMode=="boolean"&&g(Ve.compactMode),typeof Ve.search=="string"&&b(Ve.search),typeof Ve.page=="number"&&Number.isFinite(Ve.page)&&x(Math.max(1,Math.round(Ve.page)));const Vt=typeof Ve.pageSize=="number"&&Number.isFinite(Ve.pageSize)?a_(Ve.pageSize):null,Qt=typeof Ve.regularPageSize=="number"&&Number.isFinite(Ve.regularPageSize)?a_(Ve.regularPageSize):Vt??nP,Qi=typeof Ve.compactPageSize=="number"&&Number.isFinite(Ve.compactPageSize)?a_(Ve.compactPageSize):Vt??iP;k({regular:Qt,compact:Qi}),ZO(Ve.sortMode)&&P(Ve.sortMode)}D(!0)},[]),S.useEffect(()=>{z&&(Ore({filter:r,problemOnly:d,compactMode:m,search:y,page:v,pageSize:Ue,regularPageSize:A.regular,compactPageSize:A.compact,sortMode:N}),Ere(m))},[m,r,v,Ue,A,d,y,N,z]),S.useEffect(()=>{L(String(Ue))},[Ue]);const qe=S.useCallback(He=>{k(Ve=>m?{...Ve,compact:He}:{...Ve,regular:He})},[m]),it=He=>{const Ve=He.trim();if(!Ve){L(String(Ue));return}const Vt=Number(Ve);if(!Number.isFinite(Vt)){L(String(Ue));return}const Qt=a_(Vt);qe(Qt),L(String(Qt)),x(1)},dt=He=>{const Ve=He.currentTarget.value;L(Ve);const Vt=Ve.trim();if(!Vt)return;const Qt=Number(Vt);if(!Number.isFinite(Qt))return;const Qi=Math.round(Qt);Qi<eS||Qi>tS||(qe(Qi),x(1))},rt=S.useCallback(He=>{!ZO(He)||He===N||(P(He),x(1),ue().catch(()=>{}))},[ue,N]),Kt=S.useCallback(async()=>{await Promise.all([ue(),X(),Nt(),le()])},[ue,X,Nt,le]);op(Kt),S.useEffect(()=>{a&&(ue(),$().catch(()=>{}),Nt(),le())},[a,ue,$,Nt,le]),mD(()=>{X().catch(()=>{})},a?24e4:null);const Ht=S.useMemo(()=>{const He=new Set(["all"]);return U.forEach(Ve=>{Ve.type&&He.add(Ve.type)}),Array.from(He)},[U]),yn=S.useMemo(()=>d?U.filter(TD):U,[U,d]),jn=S.useMemo(()=>[{value:"default",label:t("auth_files.sort_default")},{value:"az",label:t("auth_files.sort_az")},{value:"priority",label:t("auth_files.sort_priority")}],[t]),Kn=S.useMemo(()=>{const He={all:yn.length};return yn.forEach(Ve=>{Ve.type&&(He[Ve.type]=(He[Ve.type]||0)+1)}),He},[yn]),It=y.trim(),Yn=S.useMemo(()=>Fre(It),[It]),Fi=S.useMemo(()=>{const He=It.toLowerCase();return yn.filter(Ve=>{const Vt=r==="all"||Ve.type===r,Qt=!It||[Ve.name,Ve.type,Ve.provider].some(Qi=>{const Dr=(Qi||"").toString();return Yn?Yn.test(Dr):Dr.toLowerCase().includes(He)});return Vt&&Qt})},[yn,r,It,Yn]),mn=S.useMemo(()=>{const He=[...Fi];return N==="default"?He.sort((Ve,Vt)=>{const Qt=Ys(String(Ve.provider??Ve.type??"unknown")),Qi=Ys(String(Vt.provider??Vt.type??"unknown")),Dr=Qt.localeCompare(Qi);return Dr!==0?Dr:Ve.name.localeCompare(Vt.name)}):N==="az"?He.sort((Ve,Vt)=>Ve.name.localeCompare(Vt.name)):N==="priority"&&He.sort((Ve,Vt)=>{const Qt=pm(Ve.priority??Ve.priority)??0;return(pm(Vt.priority??Vt.priority)??0)-Qt}),He},[Fi,N]),Xi=Math.max(1,Math.ceil(mn.length/Ue)),hi=Math.min(v,Xi),ks=(hi-1)*Ue,wi=mn.slice(ks,ks+Ue),sa=S.useMemo(()=>wi.filter(He=>!yl(He)),[wi]),Bo=S.useMemo(()=>mn.filter(He=>!yl(He)),[mn]),Ii=S.useMemo(()=>Array.from(q),[q]),Xt=S.useMemo(()=>Ii.some(He=>te[He]===!0),[Ii,te]),Hn=De||Ii.length===0||fe||Xt,Cs=S.useCallback(async He=>{const Ve=await Gy(He);e(Ve?t("notification.link_copied",{defaultValue:"Copied to clipboard"}):t("notification.copy_failed",{defaultValue:"Copy failed"}),Ve?"success":"error")},[e,t]),fi=S.useCallback(He=>{const Ve=(He||(r!=="all"?String(r):"")).trim(),Vt=new URLSearchParams;Ve&&Vt.set("provider",Ve);const Qt=Vt.toString();o(`/auth-files/oauth-excluded${Qt?`?${Qt}`:""}`,{state:{fromAuthFiles:!0}})},[r,o]),Gt=S.useCallback(He=>{const Ve=(He||(r!=="all"?String(r):"")).trim(),Vt=new URLSearchParams;Ve&&Vt.set("provider",Ve);const Qt=Vt.toString();o(`/auth-files/oauth-model-alias${Qt?`?${Qt}`:""}`,{state:{fromAuthFiles:!0}})},[r,o]);S.useLayoutEffect(()=>{if(typeof window>"u")return;const He=Q.current;if(!He){document.documentElement.style.removeProperty("--auth-files-action-bar-height");return}const Ve=()=>{const Qt=He.getBoundingClientRect().height;document.documentElement.style.setProperty("--auth-files-action-bar-height",`${Qt}px`)};Ve(),window.addEventListener("resize",Ve);const Vt=typeof ResizeObserver>"u"?null:new ResizeObserver(Ve);return Vt?.observe(He),()=>{Vt?.disconnect(),window.removeEventListener("resize",Ve),document.documentElement.style.removeProperty("--auth-files-action-bar-height")}},[E,Y]),S.useEffect(()=>{I.current=Y,Y>0&&R(!0)},[Y]),S.useLayoutEffect(()=>{if(!E)return;const He=Y,Ve=B.current,Vt=Q.current;Vt&&(G.current?.stop(),G.current=null,He>0&&Ve===0?G.current=Zu(Vt,{transform:[tP,v1],opacity:[0,1]},{duration:.28,ease:jre,onComplete:()=>{Vt.style.transform=v1,Vt.style.opacity="1"}}):He===0&&Ve>0&&(G.current=Zu(Vt,{transform:[v1,tP],opacity:[1,0]},{duration:.22,ease:Rre,onComplete:()=>{I.current===0&&R(!1)}})),B.current=He)},[E,Y]),S.useEffect(()=>()=>{G.current?.stop(),G.current=null},[]);const zo=()=>h.jsx("div",{className:_e.filterRail,children:h.jsx("div",{className:_e.filterTags,children:Ht.map(He=>{const Ve=r===He,Vt=LD(He,i),Qt=He==="all"?{bg:"var(--bg-tertiary)",text:"var(--text-primary)"}:MD(He,i),Qi={"--filter-color":Qt.text,"--filter-surface":Qt.bg,"--filter-active-text":i==="dark"?"#111827":"#ffffff"};return h.jsxs("button",{className:`${_e.filterTag} ${Ve?_e.filterTagActive:""}`,style:Qi,onClick:()=>{c(He),x(1)},children:[h.jsxs("span",{className:_e.filterTagLabel,children:[He==="all"?h.jsx("span",{className:`${_e.filterTagIconWrap} ${_e.filterAllIconWrap}`,children:h.jsx(Hq,{className:_e.filterAllIcon,size:16})}):h.jsx("span",{className:_e.filterTagIconWrap,children:Vt?h.jsx("img",{src:Vt,alt:"",className:_e.filterTagIcon}):h.jsx("span",{className:_e.filterTagIconFallback,children:ed(t,He).slice(0,1).toUpperCase()})}),h.jsx("span",{className:_e.filterTagText,children:ed(t,He)})]}),h.jsx("span",{className:_e.filterTagCount,children:Kn[He]??0})]},He)})})}),tu=h.jsxs("div",{className:_e.titleWrapper,children:[h.jsx("span",{children:t("auth_files.title_section")}),U.length>0&&h.jsx("span",{className:_e.countBadge,children:U.length})]}),Ul=d?r==="all"?t("auth_files.delete_problem_button"):t("auth_files.delete_problem_button_with_type",{type:ed(t,r)}):r==="all"?t("auth_files.delete_all_button"):`${t("common.delete")} ${ed(t,r)}`;return h.jsxs("div",{className:_e.container,children:[h.jsxs("div",{className:_e.pageHeader,children:[h.jsx("h1",{className:_e.pageTitle,children:t("auth_files.title")}),h.jsx("p",{className:_e.description,children:t("auth_files.description")})]}),h.jsxs(Dt,{title:tu,extra:h.jsxs("div",{className:_e.headerActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:Kt,disabled:oe,children:t("common.refresh")}),h.jsx(me,{size:"sm",onClick:ee,disabled:De||F,loading:F,children:t("auth_files.upload_button")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>ht({filter:r,problemOnly:d,onResetFilterToAll:()=>c("all"),onResetProblemOnly:()=>f(!1)}),disabled:De||oe||J,loading:J,children:Ul}),h.jsx("input",{ref:re,type:"file",accept:".json,application/json",multiple:!0,style:{display:"none"},onChange:Ie})]}),children:[se&&h.jsx("div",{className:_e.errorBox,children:se}),h.jsxs("div",{className:_e.filterSection,children:[zo(),h.jsxs("div",{className:_e.filterContent,children:[h.jsx("div",{className:_e.filterControlsPanel,children:h.jsxs("div",{className:_e.filterControls,children:[h.jsxs("div",{className:_e.filterItem,children:[h.jsx("label",{children:t("auth_files.search_label")}),h.jsx(ot,{value:y,onChange:He=>{b(He.target.value),x(1)},placeholder:t("auth_files.search_placeholder")})]}),h.jsxs("div",{className:_e.filterItem,children:[h.jsx("label",{children:t("auth_files.page_size_label")}),h.jsx("input",{className:_e.pageSizeSelect,type:"number",min:eS,max:tS,step:1,value:T,onChange:dt,onBlur:He=>it(He.currentTarget.value),onKeyDown:He=>{He.key==="Enter"&&He.currentTarget.blur()}})]}),h.jsxs("div",{className:_e.filterItem,children:[h.jsx("label",{children:t("auth_files.sort_label")}),h.jsx(Vi,{className:_e.sortSelect,value:N,options:jn,onChange:rt,ariaLabel:t("auth_files.sort_label"),fullWidth:!0})]}),h.jsxs("div",{className:`${_e.filterItem} ${_e.filterToggleItem}`,children:[h.jsx("label",{children:t("auth_files.display_options_label")}),h.jsxs("div",{className:_e.filterToggleGroup,children:[h.jsx("div",{className:_e.filterToggleCard,children:h.jsx(Si,{checked:d,onChange:He=>{f(He),x(1)},ariaLabel:t("auth_files.problem_filter_only"),label:h.jsx("span",{className:_e.filterToggleLabel,children:t("auth_files.problem_filter_only")})})}),h.jsx("div",{className:_e.filterToggleCard,children:h.jsx(Si,{checked:m,onChange:He=>g(He),ariaLabel:t("auth_files.compact_mode_label"),label:h.jsx("span",{className:_e.filterToggleLabel,children:t("auth_files.compact_mode_label")})})})]})]})]})}),oe?h.jsx("div",{className:_e.hint,children:t("common.loading")}):wi.length===0?h.jsx(os,{title:t("auth_files.search_empty_title"),description:t("auth_files.search_empty_desc")}):h.jsx("div",{className:`${_e.fileGrid} ${ze?_e.fileGridQuotaManaged:""} ${m?_e.fileGridCompact:""}`,children:wi.map(He=>h.jsx(Soe,{file:He,compact:m,selected:q.has(He.name),resolvedTheme:i,disableControls:De,deleting:Z,statusUpdating:te,quotaFilterType:ze,keyStats:V,statusBarCache:je,onShowModels:nt,onDownload:wt,onOpenPrefixProxyEditor:ne,onDelete:Ke,onToggleStatus:ft,onToggleSelect:Xe},He.name))}),!oe&&mn.length>Ue&&h.jsxs("div",{className:_e.pagination,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>x(Math.max(1,hi-1)),disabled:hi<=1,children:t("auth_files.pagination_prev")}),h.jsx("div",{className:_e.pageInfo,children:t("auth_files.pagination_info",{current:hi,total:Xi,count:mn.length})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>x(Math.min(Xi,hi+1)),disabled:hi>=Xi,children:t("auth_files.pagination_next")})]})]})]})]}),h.jsx(Coe,{disableControls:De,excludedError:at,excluded:pt,onAdd:()=>fi(),onEdit:fi,onDelete:ge}),h.jsx(vre,{disableControls:De,viewMode:M,onViewModeChange:O,onAdd:()=>Gt(),onEditProvider:Gt,onDeleteProvider:ie,modelAliasError:ut,modelAlias:Ee,allProviderModels:Mt,onUpdate:Ae,onDeleteLink:tt,onToggleFork:jt,onRenameAlias:kt,onDeleteAlias:on}),h.jsx(woe,{open:xt,fileName:ds,fileType:ws,loading:ui,error:Te,models:Di,excluded:pt,onClose:yt,onCopyText:Cs}),h.jsx(koe,{disableControls:De,editor:ti,updatedText:En,dirty:di,onClose:de,onCopyText:Cs,onSave:Le,onChange:ye}),E&&typeof document<"u"?Eo.createPortal(h.jsx("div",{className:_e.batchActionContainer,ref:Q,children:h.jsxs("div",{className:_e.batchActionBar,children:[h.jsxs("div",{className:_e.batchActionLeft,children:[h.jsx("span",{className:_e.batchSelectionText,children:t("auth_files.batch_selected",{count:Y})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>Ot(wi),disabled:sa.length===0,children:t("auth_files.batch_select_page")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>Ot(mn),disabled:Bo.length===0,children:t("auth_files.batch_select_filtered")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>zt(wi),disabled:sa.length===0,children:t("auth_files.batch_invert_page")}),h.jsx(me,{variant:"ghost",size:"sm",onClick:sn,children:t("auth_files.batch_deselect")})]}),h.jsxs("div",{className:_e.batchActionRight,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void an(Ii),disabled:De||Ii.length===0,children:t("auth_files.batch_download")}),h.jsx(me,{size:"sm",onClick:()=>Fe(Ii,!0),disabled:Hn,children:t("auth_files.batch_enable")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>Fe(Ii,!1),disabled:Hn,children:t("auth_files.batch_disable")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>mt(Ii),disabled:De||Ii.length===0,children:t("common.delete")})]})]})}),document.body):null]})}function sS({label:t,value:e,onChange:n,options:i,placeholder:s,disabled:a,hint:o,error:r,className:c="",wrapperClassName:d="",wrapperStyle:f,id:m,rightElement:g}){const[y,b]=S.useState(!1),[v,x]=S.useState(-1),A=S.useRef(null),T=i.map(N=>typeof N=="string"?{value:N,label:N}:{value:N.value,label:N.label||N.value}).filter(N=>{const P=e.toLowerCase();return N.value.toLowerCase().includes(P)||N.label&&N.label.toLowerCase().includes(P)});S.useEffect(()=>{const N=P=>{A.current&&!A.current.contains(P.target)&&b(!1)};return document.addEventListener("mousedown",N),()=>document.removeEventListener("mousedown",N)},[]);const L=N=>{n(N.target.value),b(!0),x(-1)},M=N=>{n(N),b(!1)},O=N=>{if(!a)if(N.key==="ArrowDown"){if(N.preventDefault(),!y){b(!0);return}x(P=>P<T.length-1?P+1:P)}else N.key==="ArrowUp"?(N.preventDefault(),x(P=>P>0?P-1:0)):N.key==="Enter"?y&&v>=0&&v<T.length?(N.preventDefault(),M(T[v].value)):y&&(N.preventDefault(),b(!1)):(N.key==="Escape"||N.key==="Tab")&&b(!1)};return h.jsxs("div",{className:`form-group ${d}`,ref:A,style:f,children:[t&&h.jsx("label",{htmlFor:m,children:t}),h.jsxs("div",{style:{position:"relative"},children:[h.jsx("input",{id:m,className:`input ${c}`.trim(),value:e,onChange:L,onFocus:()=>b(!0),onKeyDown:O,placeholder:s,disabled:a,autoComplete:"off",style:{paddingRight:32}}),h.jsxs("div",{style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",pointerEvents:a?"none":"auto",cursor:"pointer",height:"100%"},onClick:()=>!a&&b(!y),children:[g,h.jsx(Dy,{size:16,style:{opacity:.5,marginLeft:4}})]}),y&&T.length>0&&!a&&h.jsx("div",{className:"autocomplete-dropdown",style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:1e3,backgroundColor:"var(--bg-secondary)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",maxHeight:200,overflowY:"auto",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"},children:T.map((N,P)=>h.jsxs("div",{onClick:()=>M(N.value),style:{padding:"8px 12px",cursor:"pointer",backgroundColor:P===v?"var(--bg-tertiary)":"transparent",color:"var(--text-primary)",display:"flex",flexDirection:"column",fontSize:"0.9rem"},onMouseEnter:()=>x(P),children:[h.jsx("span",{style:{fontWeight:500},children:N.value}),N.label&&N.label!==N.value&&h.jsx("span",{style:{fontSize:"0.85em",color:"var(--text-secondary)"},children:N.label})]},`${N.value}-${P}`))})]}),o&&h.jsx("div",{className:"hint",children:o}),r&&h.jsx("div",{className:"error-box",children:r})]})}const Ure="AuthFilesOAuthExcludedEditPage-module__pageContent___42nA2",Bre="AuthFilesOAuthExcludedEditPage-module__settingsCard___EE-1z",zre="AuthFilesOAuthExcludedEditPage-module__settingsHeader___Jm0RO",qre="AuthFilesOAuthExcludedEditPage-module__settingsHeaderTitle___nOj9w",Kre="AuthFilesOAuthExcludedEditPage-module__settingsHeaderHint___EzQSN",Hre="AuthFilesOAuthExcludedEditPage-module__settingsSection___ozndx",Vre="AuthFilesOAuthExcludedEditPage-module__settingsRow___z6QPQ",Wre="AuthFilesOAuthExcludedEditPage-module__settingsInfo___lRYwp",Gre="AuthFilesOAuthExcludedEditPage-module__settingsLabel___KbPgc",$re="AuthFilesOAuthExcludedEditPage-module__settingsDesc___6LSPN",Xre="AuthFilesOAuthExcludedEditPage-module__settingsControl___luVcd",Qre="AuthFilesOAuthExcludedEditPage-module__tagList___Is0Fd",Yre="AuthFilesOAuthExcludedEditPage-module__tag___fyrKv",Jre="AuthFilesOAuthExcludedEditPage-module__tagActive___EkiBG",Zre="AuthFilesOAuthExcludedEditPage-module__modelsHint___Rm6l4",ele="AuthFilesOAuthExcludedEditPage-module__loadingModels___-9Wy6",tle="AuthFilesOAuthExcludedEditPage-module__modelList___6ebAr",nle="AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o",ile="AuthFilesOAuthExcludedEditPage-module__modelText___50mQC",sle="AuthFilesOAuthExcludedEditPage-module__modelId___Z2Ylu",ale="AuthFilesOAuthExcludedEditPage-module__modelDisplayName___ATlA5",ole="AuthFilesOAuthExcludedEditPage-module__emptyModels___kAuwa",Rn={pageContent:Ure,settingsCard:Bre,settingsHeader:zre,settingsHeaderTitle:qre,settingsHeaderHint:Kre,settingsSection:Hre,settingsRow:Vre,settingsInfo:Wre,settingsLabel:Gre,settingsDesc:$re,settingsControl:Xre,tagList:Qre,tag:Yre,tagActive:Jre,modelsHint:Zre,loadingModels:ele,modelList:tle,modelItem:nle,modelText:ile,modelId:sle,modelDisplayName:ale,emptyModels:ole},sP=["gemini-cli","vertex","aistudio","antigravity","claude","codex","qwen","kimi","iflow"],rle=new Set(["all","unknown","empty"]),x1=t=>t.trim().toLowerCase();function lle(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i}=_n(),a=nn(F=>F.connectionStatus)!=="connected",[o,r]=Q3(),c=o.get("provider")??"",[d,f]=S.useState(c),[m,g]=S.useState([]),[y,b]=S.useState({}),[v,x]=S.useState({}),[A,k]=S.useState(!0),[T,L]=S.useState(!1),[M,O]=S.useState(new Set),[N,P]=S.useState([]),[E,R]=S.useState(!1),[z,D]=S.useState(null),[Q,G]=S.useState(!1);S.useEffect(()=>{f(c)},[c]);const B=S.useMemo(()=>{const F=new Set;Object.keys(y).forEach(fe=>F.add(fe)),Object.keys(v).forEach(fe=>F.add(fe)),m.forEach(fe=>{typeof fe.type=="string"&&F.add(fe.type),typeof fe.provider=="string"&&F.add(fe.provider)});const Z=Array.from(F).map(fe=>fe.trim()).filter(fe=>fe&&!rle.has(fe.toLowerCase())),J=new Set(sP.map(fe=>fe.toLowerCase())),te=Z.filter(fe=>!J.has(fe.toLowerCase())).sort((fe,re)=>fe.localeCompare(re));return[...sP,...te]},[y,m,v]),I=S.useCallback(F=>{const Z=`auth_files.filter_${F}`,J=t(Z);return J!==Z?J:F.toLowerCase()==="iflow"?"iFlow":F.charAt(0).toUpperCase()+F.slice(1)},[t]),V=S.useMemo(()=>x1(d),[d]),K=S.useMemo(()=>V?Object.prototype.hasOwnProperty.call(y,V):!1,[y,V]),$=S.useMemo(()=>K?t("oauth_excluded.edit_title",{provider:d.trim()||V}):t("oauth_excluded.add_title"),[K,d,V,t]),X=S.useCallback(()=>{if(n.state?.fromAuthFiles){e(-1);return}e("/auth-files",{replace:!0})},[n.state,e]),U=Do({onBack:X});S.useEffect(()=>{const F=Z=>{Z.key==="Escape"&&X()};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[X]),S.useEffect(()=>{let F=!1;return(async()=>{k(!0),L(!1);try{const[J,te,fe]=await Promise.allSettled([At.list(),At.getOauthExcludedModels(),At.getOauthModelAlias()]);if(F)return;if(J.status==="fulfilled"&&g(J.value?.files??[]),fe.status==="fulfilled"&&x(fe.value??{}),te.status==="fulfilled"){b(te.value??{});return}const re=te.status==="rejected"?te.reason:null;if((typeof re=="object"&&re!==null&&"status"in re?re.status:void 0)===404){L(!0);return}}finally{F||k(!1)}})().catch(()=>{F||k(!1)}),()=>{F=!0}},[]),S.useEffect(()=>{if(!V){O(new Set);return}const F=y[V]??[];O(new Set(F))},[y,V]),S.useEffect(()=>{if(!V||T){P([]),D(null),R(!1);return}let F=!1;return R(!0),D(null),At.getModelDefinitions(V).then(Z=>{F||P(Z)}).catch(Z=>{if(F)return;if((typeof Z=="object"&&Z!==null&&"status"in Z?Z.status:void 0)===404){P([]),D("unsupported");return}const te=Z instanceof Error?Z.message:"";i(`${t("notification.load_failed")}: ${te}`,"error")}).finally(()=>{F||R(!1)}),()=>{F=!0}},[T,V,i,t]);const q=S.useCallback(F=>{f(F);const Z=new URLSearchParams(o),J=F.trim();J?Z.set("provider",J):Z.delete("provider"),r(Z,{replace:!0})},[o,r]),Y=S.useCallback((F,Z)=>{O(J=>{const te=new Set(J);return Z?te.add(F):te.delete(F),te})},[]),oe=S.useCallback(async()=>{const F=x1(d);if(!F){i(t("oauth_excluded.provider_required"),"error");return}const Z=[...M];G(!0);try{Z.length?await At.saveOauthExcludedModels(F,Z):await At.deleteOauthExcludedEntry(F),i(t("oauth_excluded.save_success"),"success"),X()}catch(J){const te=J instanceof Error?J.message:"";i(`${t("oauth_excluded.save_failed")}: ${te}`,"error")}finally{G(!1)}},[X,d,M,i,t]),se=!a&&!Q&&!T;return h.jsx(Fo,{ref:U,title:$,onBack:X,backLabel:t("common.back"),backAriaLabel:t("common.back"),contentClassName:Rn.pageContent,rightAction:h.jsx(me,{size:"sm",onClick:oe,loading:Q,disabled:!se,children:t("oauth_excluded.save")}),isLoading:A,loadingLabel:t("common.loading"),children:T?h.jsx(Dt,{children:h.jsx(os,{title:t("oauth_excluded.upgrade_required_title"),description:t("oauth_excluded.upgrade_required_desc")})}):h.jsxs(h.Fragment,{children:[h.jsxs(Dt,{className:Rn.settingsCard,children:[h.jsxs("div",{className:Rn.settingsHeader,children:[h.jsxs("div",{className:Rn.settingsHeaderTitle,children:[h.jsx(Bw,{size:16}),h.jsx("span",{children:t("oauth_excluded.title")})]}),h.jsx("div",{className:Rn.settingsHeaderHint,children:t("oauth_excluded.description")})]}),h.jsxs("div",{className:Rn.settingsSection,children:[h.jsxs("div",{className:Rn.settingsRow,children:[h.jsxs("div",{className:Rn.settingsInfo,children:[h.jsx("div",{className:Rn.settingsLabel,children:t("oauth_excluded.provider_label")}),h.jsx("div",{className:Rn.settingsDesc,children:t("oauth_excluded.provider_hint")})]}),h.jsx("div",{className:Rn.settingsControl,children:h.jsx(sS,{id:"oauth-excluded-provider",placeholder:t("oauth_excluded.provider_placeholder"),value:d,onChange:q,options:B,disabled:a||Q,wrapperStyle:{marginBottom:0}})})]}),B.length>0&&h.jsx("div",{className:Rn.tagList,children:B.map(F=>{const Z=x1(d)===F.toLowerCase();return h.jsx("button",{type:"button",className:`${Rn.tag} ${Z?Rn.tagActive:""}`,onClick:()=>q(F),disabled:a||Q,children:I(F)},F)})})]})]}),h.jsxs(Dt,{className:Rn.settingsCard,children:[h.jsxs("div",{className:Rn.settingsHeader,children:[h.jsx("div",{className:Rn.settingsHeaderTitle,children:t("oauth_excluded.models_label")}),V&&h.jsx("div",{className:Rn.modelsHint,children:E?h.jsxs(h.Fragment,{children:[h.jsx(Uc,{size:14}),h.jsx("span",{children:t("oauth_excluded.models_loading")})]}):z==="unsupported"?h.jsx("span",{children:t("oauth_excluded.models_unsupported")}):N.length>0?h.jsx("span",{children:t("oauth_excluded.models_loaded",{count:N.length})}):h.jsx("span",{children:t("oauth_excluded.no_models_available")})})]}),E?h.jsxs("div",{className:Rn.loadingModels,children:[h.jsx(Uc,{size:16}),h.jsx("span",{children:t("common.loading")})]}):N.length>0?h.jsx("div",{className:Rn.modelList,children:N.map(F=>{const Z=M.has(F.id);return h.jsx(Ml,{checked:Z,disabled:a||Q,onChange:J=>Y(F.id,J),className:Rn.modelItem,labelClassName:Rn.modelText,label:h.jsxs(h.Fragment,{children:[h.jsx("span",{className:Rn.modelId,children:F.id}),F.display_name&&F.display_name!==F.id&&h.jsx("span",{className:Rn.modelDisplayName,children:F.display_name})]})},F.id)})}):V?h.jsx("div",{className:Rn.emptyModels,children:t(z==="unsupported"?"oauth_excluded.models_unsupported":"oauth_excluded.no_models_available")}):h.jsx("div",{className:Rn.emptyModels,children:t("oauth_excluded.provider_required")})]})]})})}const cle="AuthFilesOAuthModelAliasEditPage-module__pageContent___mxGSP",ule="AuthFilesOAuthModelAliasEditPage-module__settingsCard___4uMxA",dle="AuthFilesOAuthModelAliasEditPage-module__settingsHeader___h4vIs",hle="AuthFilesOAuthModelAliasEditPage-module__settingsHeaderTitle___GExPS",fle="AuthFilesOAuthModelAliasEditPage-module__settingsHeaderHint___C94bR",mle="AuthFilesOAuthModelAliasEditPage-module__settingsSection___JQr18",ple="AuthFilesOAuthModelAliasEditPage-module__settingsRow___qzQdL",gle="AuthFilesOAuthModelAliasEditPage-module__settingsInfo___Jt7Ub",_le="AuthFilesOAuthModelAliasEditPage-module__settingsLabel___v6dmL",yle="AuthFilesOAuthModelAliasEditPage-module__settingsDesc___TgK3P",ble="AuthFilesOAuthModelAliasEditPage-module__settingsControl___nSl-3",vle="AuthFilesOAuthModelAliasEditPage-module__tagList___OxNTF",xle="AuthFilesOAuthModelAliasEditPage-module__tag___sULm6",Sle="AuthFilesOAuthModelAliasEditPage-module__tagActive___CcyFC",wle="AuthFilesOAuthModelAliasEditPage-module__mappingsHeader___wddAp",kle="AuthFilesOAuthModelAliasEditPage-module__mappingsTitle___QywAa",Cle="AuthFilesOAuthModelAliasEditPage-module__mappingsBody___jOz-S",Ale="AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41",Nle="AuthFilesOAuthModelAliasEditPage-module__mappingSeparator___dN9rZ",Tle="AuthFilesOAuthModelAliasEditPage-module__mappingAliasInput___iG0V3",Mle="AuthFilesOAuthModelAliasEditPage-module__mappingFork___4pAg3",ei={pageContent:cle,settingsCard:ule,settingsHeader:dle,settingsHeaderTitle:hle,settingsHeaderHint:fle,settingsSection:mle,settingsRow:ple,settingsInfo:gle,settingsLabel:_le,settingsDesc:yle,settingsControl:ble,tagList:vle,tag:xle,tagActive:Sle,mappingsHeader:wle,mappingsTitle:kle,mappingsBody:Cle,mappingRow:Ale,mappingSeparator:Nle,mappingAliasInput:Tle,mappingFork:Mle},aP=["gemini-cli","vertex","aistudio","antigravity","claude","codex","qwen","kimi","iflow"],Lle=new Set(["all","unknown","empty"]),oP=t=>t.trim().toLowerCase(),Mf=()=>({id:Hw(),name:"",alias:"",fork:!0}),Ole=t=>!Array.isArray(t)||t.length===0?[Mf()]:t.map(e=>({id:Hw(),name:e.name??"",alias:e.alias??"",fork:!!e.fork}));function Ple(){const{t}=et(),e=Ri(),n=Qn(),{showNotification:i}=_n(),a=nn(J=>J.connectionStatus)!=="connected",[o,r]=Q3(),c=o.get("provider")??"",[d,f]=S.useState(c),[m,g]=S.useState([]),[y,b]=S.useState({}),[v,x]=S.useState({}),[A,k]=S.useState(!0),[T,L]=S.useState(!1),[M,O]=S.useState([Mf()]),[N,P]=S.useState([]),[E,R]=S.useState(!1),[z,D]=S.useState(null),[Q,G]=S.useState(!1);S.useEffect(()=>{f(c)},[c]);const B=S.useMemo(()=>{const J=new Set;Object.keys(y).forEach(ue=>J.add(ue)),Object.keys(v).forEach(ue=>J.add(ue)),m.forEach(ue=>{typeof ue.type=="string"&&J.add(ue.type),typeof ue.provider=="string"&&J.add(ue.provider)});const te=Array.from(J).map(ue=>ue.trim()).filter(ue=>ue&&!Lle.has(ue.toLowerCase())),fe=new Set(aP.map(ue=>ue.toLowerCase())),re=te.filter(ue=>!fe.has(ue.toLowerCase())).sort((ue,ee)=>ue.localeCompare(ee));return[...aP,...re]},[y,m,v]),I=S.useCallback(J=>{const te=`auth_files.filter_${J}`,fe=t(te);return fe!==te?fe:J.toLowerCase()==="iflow"?"iFlow":J.charAt(0).toUpperCase()+J.slice(1)},[t]),V=S.useMemo(()=>oP(d),[d]),K=S.useMemo(()=>t("oauth_model_alias.add_title"),[t]),$=S.useMemo(()=>d.trim()?E?t("oauth_model_alias.model_source_loading"):z==="unsupported"?t("oauth_model_alias.model_source_unsupported"):t("oauth_model_alias.model_source_loaded",{count:N.length}):t("oauth_model_alias.provider_hint"),[z,N.length,E,d,t]),X=S.useCallback(()=>{if(n.state?.fromAuthFiles){e(-1);return}e("/auth-files",{replace:!0})},[n.state,e]),U=Do({onBack:X});S.useEffect(()=>{const J=te=>{te.key==="Escape"&&X()};return window.addEventListener("keydown",J),()=>window.removeEventListener("keydown",J)},[X]),S.useEffect(()=>{let J=!1;return(async()=>{k(!0),L(!1);try{const[fe,re,ue]=await Promise.allSettled([At.list(),At.getOauthExcludedModels(),At.getOauthModelAlias()]);if(J)return;if(fe.status==="fulfilled"&&g(fe.value?.files??[]),re.status==="fulfilled"&&b(re.value??{}),ue.status==="fulfilled"){x(ue.value??{});return}const ee=ue.status==="rejected"?ue.reason:null;if((typeof ee=="object"&&ee!==null&&"status"in ee?ee.status:void 0)===404){L(!0);return}}finally{J||k(!1)}})().catch(()=>{J||k(!1)}),()=>{J=!0}},[]),S.useEffect(()=>{if(!V){O([Mf()]);return}const J=v[V]??[];O(Ole(J))},[v,V]),S.useEffect(()=>{if(!V||T){P([]),D(null),R(!1);return}let J=!1;return R(!0),D(null),At.getModelDefinitions(V).then(te=>{J||P(te)}).catch(te=>{if(J)return;if((typeof te=="object"&&te!==null&&"status"in te?te.status:void 0)===404){P([]),D("unsupported");return}const re=te instanceof Error?te.message:"";i(`${t("notification.load_failed")}: ${re}`,"error")}).finally(()=>{J||R(!1)}),()=>{J=!0}},[T,V,i,t]);const q=S.useCallback(J=>{f(J);const te=new URLSearchParams(o),fe=J.trim();fe?te.set("provider",fe):te.delete("provider"),r(te,{replace:!0})},[o,r]),Y=S.useCallback((J,te,fe)=>{O(re=>re.map((ue,ee)=>ee===J?{...ue,[te]:fe}:ue))},[]),oe=S.useCallback(()=>{O(J=>[...J,Mf()])},[]),se=S.useCallback(J=>{O(te=>{const fe=te.filter((re,ue)=>ue!==J);return fe.length?fe:[Mf()]})},[]),F=S.useCallback(async()=>{const J=d.trim();if(!J){i(t("oauth_model_alias.provider_required"),"error");return}const te=new Set,fe=M.map(re=>{const ue=String(re.name??"").trim(),ee=String(re.alias??"").trim();if(!ue||!ee)return null;const Ie=`${ue.toLowerCase()}::${ee.toLowerCase()}::${re.fork?"1":"0"}`;return te.has(Ie)?null:(te.add(Ie),re.fork?{name:ue,alias:ee,fork:!0}:{name:ue,alias:ee})}).filter(Boolean);G(!0);try{fe.length?await At.saveOauthModelAlias(J,fe):await At.deleteOauthModelAlias(J),i(t("oauth_model_alias.save_success"),"success"),X()}catch(re){const ue=re instanceof Error?re.message:"";i(`${t("oauth_model_alias.save_failed")}: ${ue}`,"error")}finally{G(!1)}},[X,M,d,i,t]),Z=!a&&!Q&&!T;return h.jsx(Fo,{ref:U,title:K,onBack:X,backLabel:t("common.back"),backAriaLabel:t("common.back"),contentClassName:ei.pageContent,rightAction:h.jsx(me,{size:"sm",onClick:F,loading:Q,disabled:!Z,children:t("oauth_model_alias.save")}),isLoading:A,loadingLabel:t("common.loading"),children:T?h.jsx(Dt,{children:h.jsx(os,{title:t("oauth_model_alias.upgrade_required_title"),description:t("oauth_model_alias.upgrade_required_desc")})}):h.jsxs(h.Fragment,{children:[h.jsxs(Dt,{className:ei.settingsCard,children:[h.jsxs("div",{className:ei.settingsHeader,children:[h.jsxs("div",{className:ei.settingsHeaderTitle,children:[h.jsx(Bw,{size:16}),h.jsx("span",{children:t("oauth_model_alias.title")})]}),h.jsx("div",{className:ei.settingsHeaderHint,children:$})]}),h.jsxs("div",{className:ei.settingsSection,children:[h.jsxs("div",{className:ei.settingsRow,children:[h.jsxs("div",{className:ei.settingsInfo,children:[h.jsx("div",{className:ei.settingsLabel,children:t("oauth_model_alias.provider_label")}),h.jsx("div",{className:ei.settingsDesc,children:t("oauth_model_alias.provider_hint")})]}),h.jsx("div",{className:ei.settingsControl,children:h.jsx(sS,{id:"oauth-model-alias-provider",placeholder:t("oauth_model_alias.provider_placeholder"),value:d,onChange:q,options:B,disabled:a||Q,wrapperStyle:{marginBottom:0}})})]}),B.length>0&&h.jsx("div",{className:ei.tagList,children:B.map(J=>{const te=oP(d)===J.toLowerCase();return h.jsx("button",{type:"button",className:`${ei.tag} ${te?ei.tagActive:""}`,onClick:()=>q(J),disabled:a||Q,children:I(J)},J)})})]})]}),h.jsxs(Dt,{className:ei.settingsCard,children:[h.jsxs("div",{className:ei.mappingsHeader,children:[h.jsx("div",{className:ei.mappingsTitle,children:t("oauth_model_alias.alias_label")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:oe,disabled:a||Q||T,children:t("oauth_model_alias.add_alias")})]}),h.jsx("div",{className:ei.mappingsBody,children:M.map((J,te)=>h.jsxs("div",{className:ei.mappingRow,children:[h.jsx(sS,{wrapperStyle:{flex:1,marginBottom:0},placeholder:t("oauth_model_alias.alias_name_placeholder"),value:J.name,onChange:fe=>Y(te,"name",fe),disabled:a||Q,options:N.map(fe=>({value:fe.id,label:fe.display_name&&fe.display_name!==fe.id?fe.display_name:void 0}))}),h.jsx("span",{className:ei.mappingSeparator,children:"→"}),h.jsx("input",{className:`input ${ei.mappingAliasInput}`,placeholder:t("oauth_model_alias.alias_placeholder"),value:J.alias,onChange:fe=>Y(te,"alias",fe.target.value),disabled:a||Q}),h.jsx("div",{className:ei.mappingFork,children:h.jsx(Si,{label:t("oauth_model_alias.alias_fork_label"),labelPosition:"left",checked:!!J.fork,onChange:fe=>Y(te,"fork",fe),disabled:a||Q})}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>se(te),disabled:a||Q||M.length<=1,title:t("common.delete"),"aria-label":t("common.delete"),children:h.jsx(Xc,{size:14})})]},J.id))})]})]})})}const Ele="OAuthPage-module__container___LCCdH",jle="OAuthPage-module__cardTitle___yFaP0",Rle="OAuthPage-module__cardTitleIcon___eAnql",Dle="OAuthPage-module__pageTitle___BQQ2z",Fle="OAuthPage-module__content___Phg9V",Ile="OAuthPage-module__cardContent___1sXLA",Ule="OAuthPage-module__cardHint___ttOpd",Ble="OAuthPage-module__cardHintSecondary___tWM17",zle="OAuthPage-module__callbackSection___8kA31",qle="OAuthPage-module__callbackActions___wtkMI",Kle="OAuthPage-module__authUrlBox___Iu1d4",Hle="OAuthPage-module__authUrlLabel___mYFJB",Vle="OAuthPage-module__authUrlValue___axvUJ",Wle="OAuthPage-module__authUrlActions___venPj",Gle="OAuthPage-module__geminiProjectField___g456A",$le="OAuthPage-module__formItem___Bgt9S",Xle="OAuthPage-module__formItemLabel___QZFrG",Qle="OAuthPage-module__filePicker___NmFjy",Yle="OAuthPage-module__fileName___9ZbQI",Jle="OAuthPage-module__fileNamePlaceholder___WHjj4",Zle="OAuthPage-module__connectionBox___Gwo4r",ece="OAuthPage-module__connectionLabel___cJMrf",tce="OAuthPage-module__keyValueList___lEOY0",nce="OAuthPage-module__keyValueItem___XOwWB",ice="OAuthPage-module__keyValueKey___WF-VN",sce="OAuthPage-module__keyValueValue___m2I-C",ct={container:Ele,cardTitle:jle,cardTitleIcon:Rle,pageTitle:Dle,content:Fle,cardContent:Ile,cardHint:Ule,cardHintSecondary:Ble,callbackSection:zle,callbackActions:qle,authUrlBox:Kle,authUrlLabel:Hle,authUrlValue:Vle,authUrlActions:Wle,geminiProjectField:Gle,formItem:$le,formItemLabel:Xle,filePicker:Qle,fileName:Yle,fileNamePlaceholder:Jle,connectionBox:Zle,connectionLabel:ece,keyValueList:tce,keyValueItem:nce,keyValueKey:ice,keyValueValue:sce};function qD(t){return t!==null&&typeof t=="object"}function uf(t){return t instanceof Error||qD(t)&&typeof t.message=="string"?t.message:typeof t=="string"?t:""}function rP(t){if(qD(t))return typeof t.status=="number"?t.status:void 0}const ace=[{id:"codex",titleKey:"auth_login.codex_oauth_title",hintKey:"auth_login.codex_oauth_hint",urlLabelKey:"auth_login.codex_oauth_url_label",icon:Vy},{id:"anthropic",titleKey:"auth_login.anthropic_oauth_title",hintKey:"auth_login.anthropic_oauth_hint",urlLabelKey:"auth_login.anthropic_oauth_url_label",icon:ip},{id:"antigravity",titleKey:"auth_login.antigravity_oauth_title",hintKey:"auth_login.antigravity_oauth_hint",urlLabelKey:"auth_login.antigravity_oauth_url_label",icon:kD},{id:"gemini-cli",titleKey:"auth_login.gemini_cli_oauth_title",hintKey:"auth_login.gemini_cli_oauth_hint",urlLabelKey:"auth_login.gemini_cli_oauth_url_label",icon:Pc},{id:"kimi",titleKey:"auth_login.kimi_oauth_title",hintKey:"auth_login.kimi_oauth_hint",urlLabelKey:"auth_login.kimi_oauth_url_label",icon:{light:ck,dark:lk}},{id:"qwen",titleKey:"auth_login.qwen_oauth_title",hintKey:"auth_login.qwen_oauth_hint",urlLabelKey:"auth_login.qwen_oauth_url_label",icon:uk}],oce=["codex","anthropic","antigravity","gemini-cli"],rce=t=>t.replace("-","_"),rl=(t,e)=>`auth_login.${rce(t)}_${e}`,lce=(t,e)=>typeof t=="string"?t:t[e];function cce(){const{t}=et(),{showNotification:e}=_n(),n=Aa(M=>M.resolvedTheme),[i,s]=S.useState({}),[a,o]=S.useState({cookie:"",loading:!1}),[r,c]=S.useState({fileName:"",location:"",loading:!1}),d=S.useRef({}),f=S.useRef(null),m=S.useCallback(()=>{Object.values(d.current).forEach(M=>window.clearInterval(M)),d.current={}},[]);S.useEffect(()=>()=>{m()},[m]);const g=(M,O)=>{s(N=>({...N,[M]:{...N[M]??{},...O}}))},y=(M,O)=>{d.current[M]&&clearInterval(d.current[M]);const N=window.setInterval(async()=>{try{const P=await Gg.getAuthStatus(O);P.status==="ok"?(g(M,{status:"success",polling:!1}),e(t(rl(M,"oauth_status_success")),"success"),window.clearInterval(N),delete d.current[M]):P.status==="error"&&(g(M,{status:"error",error:P.error,polling:!1}),e(`${t(rl(M,"oauth_status_error"))} ${P.error||""}`,"error"),window.clearInterval(N),delete d.current[M])}catch(P){g(M,{status:"error",error:uf(P),polling:!1}),window.clearInterval(N),delete d.current[M]}},3e3);d.current[M]=N},b=async M=>{const O=M==="gemini-cli"?i[M]:void 0,N=M==="gemini-cli"?(O?.projectId||"").trim():"",P=N?N.toUpperCase()==="ALL"?"ALL":N:void 0;M==="gemini-cli"&&g(M,{projectIdError:void 0}),g(M,{status:"waiting",polling:!0,error:void 0,callbackStatus:void 0,callbackError:void 0,callbackUrl:""});try{const E=await Gg.startAuth(M,M==="gemini-cli"?{projectId:P||void 0}:void 0);g(M,{url:E.url,state:E.state,status:"waiting",polling:!0}),E.state&&y(M,E.state)}catch(E){const R=uf(E);g(M,{status:"error",error:R,polling:!1}),e(`${t(rl(M,"oauth_start_error"))}${R?` ${R}`:""}`,"error")}},v=async M=>{if(!M)return;const O=await Gy(M);e(t(O?"notification.link_copied":"notification.copy_failed"),O?"success":"error")},x=async M=>{const O=(i[M]?.callbackUrl||"").trim();if(!O){e(t("auth_login.oauth_callback_required"),"warning");return}g(M,{callbackSubmitting:!0,callbackStatus:void 0,callbackError:void 0});try{await Gg.submitCallback(M,O),g(M,{callbackSubmitting:!1,callbackStatus:"success"}),e(t("auth_login.oauth_callback_success"),"success")}catch(N){const P=rP(N),E=uf(N),R=P===404?t("auth_login.oauth_callback_upgrade_hint",{defaultValue:"Please update CLI Proxy API or check the connection."}):E||void 0;g(M,{callbackSubmitting:!1,callbackStatus:"error",callbackError:R});const z=R?`${t("auth_login.oauth_callback_error")} ${R}`:t("auth_login.oauth_callback_error");e(z,"error")}},A=async()=>{const M=a.cookie.trim();if(!M){e(t("auth_login.iflow_cookie_required"),"warning");return}o(O=>({...O,loading:!0,error:void 0,errorType:void 0,result:void 0}));try{const O=await Gg.iflowCookieAuth(M);O.status==="ok"?(o(N=>({...N,loading:!1,result:O})),e(t("auth_login.iflow_cookie_status_success"),"success")):(o(N=>({...N,loading:!1,error:O.error,errorType:"error"})),e(`${t("auth_login.iflow_cookie_status_error")} ${O.error||""}`,"error"))}catch(O){if(rP(O)===409){const P=t("auth_login.iflow_cookie_config_duplicate");o(E=>({...E,loading:!1,error:P,errorType:"warning"})),e(P,"warning");return}const N=uf(O);o(P=>({...P,loading:!1,error:N,errorType:"error"})),e(`${t("auth_login.iflow_cookie_start_error")}${N?` ${N}`:""}`,"error")}},k=()=>{f.current?.click()},T=M=>{const O=M.target.files?.[0];if(O){if(!O.name.endsWith(".json")){e(t("vertex_import.file_required"),"warning"),M.target.value="";return}c(N=>({...N,file:O,fileName:O.name,error:void 0,result:void 0})),M.target.value=""}},L=async()=>{if(!r.file){const O=t("vertex_import.file_required");c(N=>({...N,error:O})),e(O,"warning");return}const M=r.location.trim();c(O=>({...O,loading:!0,error:void 0,result:void 0}));try{const O=await S$.importCredential(r.file,M||void 0),N={projectId:O.project_id,email:O.email,location:O.location,authFile:O["auth-file"]??O.auth_file};c(P=>({...P,loading:!1,result:N})),e(t("vertex_import.success"),"success")}catch(O){const N=uf(O);c(E=>({...E,loading:!1,error:N||t("notification.upload_failed")}));const P=N?`${t("notification.upload_failed")}: ${N}`:t("notification.upload_failed");e(P,"error")}};return h.jsxs("div",{className:ct.container,children:[h.jsx("h1",{className:ct.pageTitle,children:t("nav.oauth",{defaultValue:"OAuth"})}),h.jsxs("div",{className:ct.content,children:[ace.map(M=>{const O=i[M.id]||{},N=oce.includes(M.id)&&!!O.url;return h.jsx("div",{children:h.jsx(Dt,{title:h.jsxs("span",{className:ct.cardTitle,children:[h.jsx("img",{src:lce(M.icon,n),alt:"",className:ct.cardTitleIcon}),t(M.titleKey)]}),extra:h.jsx(me,{onClick:()=>b(M.id),loading:O.polling,children:t("common.login")}),children:h.jsxs("div",{className:ct.cardContent,children:[h.jsx("div",{className:ct.cardHint,children:t(M.hintKey)}),M.id==="gemini-cli"&&h.jsx("div",{className:ct.geminiProjectField,children:h.jsx(ot,{label:t("auth_login.gemini_cli_project_id_label"),hint:t("auth_login.gemini_cli_project_id_hint"),value:O.projectId||"",error:O.projectIdError,disabled:!!O.polling,onChange:P=>g(M.id,{projectId:P.target.value,projectIdError:void 0}),placeholder:t("auth_login.gemini_cli_project_id_placeholder")})}),O.url&&h.jsxs("div",{className:ct.authUrlBox,children:[h.jsx("div",{className:ct.authUrlLabel,children:t(M.urlLabelKey)}),h.jsx("div",{className:ct.authUrlValue,children:O.url}),h.jsxs("div",{className:ct.authUrlActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>v(O.url),children:t(rl(M.id,"copy_link"))}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>window.open(O.url,"_blank","noopener,noreferrer"),children:t(rl(M.id,"open_link"))})]})]}),N&&h.jsxs("div",{className:ct.callbackSection,children:[h.jsx(ot,{label:t("auth_login.oauth_callback_label"),hint:t("auth_login.oauth_callback_hint"),value:O.callbackUrl||"",onChange:P=>g(M.id,{callbackUrl:P.target.value,callbackStatus:void 0,callbackError:void 0}),placeholder:t("auth_login.oauth_callback_placeholder")}),h.jsx("div",{className:ct.callbackActions,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>x(M.id),loading:O.callbackSubmitting,children:t("auth_login.oauth_callback_button")})}),O.callbackStatus==="success"&&O.status==="waiting"&&h.jsx("div",{className:"status-badge success",children:t("auth_login.oauth_callback_status_success")}),O.callbackStatus==="error"&&h.jsxs("div",{className:"status-badge error",children:[t("auth_login.oauth_callback_status_error")," ",O.callbackError||""]})]}),O.status&&O.status!=="idle"&&h.jsx("div",{className:"status-badge",children:O.status==="success"?t(rl(M.id,"oauth_status_success")):O.status==="error"?`${t(rl(M.id,"oauth_status_error"))} ${O.error||""}`:t(rl(M.id,"oauth_status_waiting"))})]})})},M.id)}),h.jsx(Dt,{title:h.jsxs("span",{className:ct.cardTitle,children:[h.jsx("img",{src:Wy,alt:"",className:ct.cardTitleIcon}),t("vertex_import.title")]}),extra:h.jsx(me,{onClick:L,loading:r.loading,children:t("vertex_import.import_button")}),children:h.jsxs("div",{className:ct.cardContent,children:[h.jsx("div",{className:ct.cardHint,children:t("vertex_import.description")}),h.jsx(ot,{label:t("vertex_import.location_label"),hint:t("vertex_import.location_hint"),value:r.location,onChange:M=>c(O=>({...O,location:M.target.value})),placeholder:t("vertex_import.location_placeholder")}),h.jsxs("div",{className:ct.formItem,children:[h.jsx("label",{className:ct.formItemLabel,children:t("vertex_import.file_label")}),h.jsxs("div",{className:ct.filePicker,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:k,children:t("vertex_import.choose_file")}),h.jsx("div",{className:`${ct.fileName} ${r.fileName?"":ct.fileNamePlaceholder}`.trim(),children:r.fileName||t("vertex_import.file_placeholder")})]}),h.jsx("div",{className:ct.cardHintSecondary,children:t("vertex_import.file_hint")}),h.jsx("input",{ref:f,type:"file",accept:".json,application/json",style:{display:"none"},onChange:T})]}),r.error&&h.jsx("div",{className:"status-badge error",children:r.error}),r.result&&h.jsxs("div",{className:ct.connectionBox,children:[h.jsx("div",{className:ct.connectionLabel,children:t("vertex_import.result_title")}),h.jsxs("div",{className:ct.keyValueList,children:[r.result.projectId&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("vertex_import.result_project")}),h.jsx("span",{className:ct.keyValueValue,children:r.result.projectId})]}),r.result.email&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("vertex_import.result_email")}),h.jsx("span",{className:ct.keyValueValue,children:r.result.email})]}),r.result.location&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("vertex_import.result_location")}),h.jsx("span",{className:ct.keyValueValue,children:r.result.location})]}),r.result.authFile&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("vertex_import.result_file")}),h.jsx("span",{className:ct.keyValueValue,children:r.result.authFile})]})]})]})]})}),h.jsx(Dt,{title:h.jsxs("span",{className:ct.cardTitle,children:[h.jsx("img",{src:CD,alt:"",className:ct.cardTitleIcon}),t("auth_login.iflow_cookie_title")]}),extra:h.jsx(me,{onClick:A,loading:a.loading,children:t("auth_login.iflow_cookie_button")}),children:h.jsxs("div",{className:ct.cardContent,children:[h.jsx("div",{className:ct.cardHint,children:t("auth_login.iflow_cookie_hint")}),h.jsx("div",{className:ct.cardHintSecondary,children:t("auth_login.iflow_cookie_key_hint")}),h.jsxs("div",{className:ct.formItem,children:[h.jsx("label",{className:ct.formItemLabel,children:t("auth_login.iflow_cookie_label")}),h.jsx(ot,{value:a.cookie,onChange:M=>o(O=>({...O,cookie:M.target.value})),placeholder:t("auth_login.iflow_cookie_placeholder")})]}),a.error&&h.jsxs("div",{className:`status-badge ${a.errorType==="warning"?"warning":"error"}`,children:[a.errorType==="warning"?t("auth_login.iflow_cookie_status_duplicate"):t("auth_login.iflow_cookie_status_error")," ",a.error]}),a.result&&a.result.status==="ok"&&h.jsxs("div",{className:ct.connectionBox,children:[h.jsx("div",{className:ct.connectionLabel,children:t("auth_login.iflow_cookie_result_title")}),h.jsxs("div",{className:ct.keyValueList,children:[a.result.email&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("auth_login.iflow_cookie_result_email")}),h.jsx("span",{className:ct.keyValueValue,children:a.result.email})]}),a.result.expired&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("auth_login.iflow_cookie_result_expired")}),h.jsx("span",{className:ct.keyValueValue,children:a.result.expired})]}),a.result.saved_path&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("auth_login.iflow_cookie_result_path")}),h.jsx("span",{className:ct.keyValueValue,children:a.result.saved_path})]}),a.result.type&&h.jsxs("div",{className:ct.keyValueItem,children:[h.jsx("span",{className:ct.keyValueKey,children:t("auth_login.iflow_cookie_result_type")}),h.jsx("span",{className:ct.keyValueValue,children:a.result.type})]})]})]})]})})]})]})}function uce(){const{t}=et(),e=nn(g=>g.connectionStatus),[n,i]=S.useState([]),[s,a]=S.useState(!0),[o,r]=S.useState(""),c=e!=="connected",d=S.useCallback(async()=>{try{await Af.fetchConfigYaml()}catch(g){const y=g instanceof Error?g.message:t("notification.refresh_failed");r(b=>b||y)}},[t]),f=S.useCallback(async()=>{a(!0),r("");try{const g=await At.list();i(g?.files||[])}catch(g){const y=g instanceof Error?g.message:t("notification.refresh_failed");r(y)}finally{a(!1)}},[t]),m=S.useCallback(async()=>{await Promise.all([d(),f()])},[d,f]);return op(m),S.useEffect(()=>{f(),d()},[f,d]),h.jsxs("div",{className:gt.container,children:[h.jsxs("div",{className:gt.pageHeader,children:[h.jsx("h1",{className:gt.pageTitle,children:t("quota_management.title")}),h.jsx("p",{className:gt.description,children:t("quota_management.description")})]}),o&&h.jsx("div",{className:gt.errorBox,children:o}),h.jsx(cf,{config:DD,files:n,loading:s,disabled:c}),h.jsx(cf,{config:FD,files:n,loading:s,disabled:c}),h.jsx(cf,{config:ID,files:n,loading:s,disabled:c}),h.jsx(cf,{config:UD,files:n,loading:s,disabled:c}),h.jsx(cf,{config:BD,files:n,loading:s,disabled:c})]})}function mp(t){return t+.5|0}const bl=(t,e,n)=>Math.max(Math.min(t,n),e);function Lf(t){return bl(mp(t*2.55),0,255)}function Al(t){return bl(mp(t*255),0,255)}function pr(t){return bl(mp(t/2.55)/100,0,1)}function lP(t){return bl(mp(t*100),0,100)}const pa={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},aS=[..."0123456789ABCDEF"],dce=t=>aS[t&15],hce=t=>aS[(t&240)>>4]+aS[t&15],o_=t=>(t&240)>>4===(t&15),fce=t=>o_(t.r)&&o_(t.g)&&o_(t.b)&&o_(t.a);function mce(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&pa[t[1]]*17,g:255&pa[t[2]]*17,b:255&pa[t[3]]*17,a:e===5?pa[t[4]]*17:255}:(e===7||e===9)&&(n={r:pa[t[1]]<<4|pa[t[2]],g:pa[t[3]]<<4|pa[t[4]],b:pa[t[5]]<<4|pa[t[6]],a:e===9?pa[t[7]]<<4|pa[t[8]]:255})),n}const pce=(t,e)=>t<255?e(t):"";function gce(t){var e=fce(t)?dce:hce;return t?"#"+e(t.r)+e(t.g)+e(t.b)+pce(t.a,e):void 0}const _ce=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function KD(t,e,n){const i=e*Math.min(n,1-n),s=(a,o=(a+t/30)%12)=>n-i*Math.max(Math.min(o-3,9-o,1),-1);return[s(0),s(8),s(4)]}function yce(t,e,n){const i=(s,a=(s+t/60)%6)=>n-n*e*Math.max(Math.min(a,4-a,1),0);return[i(5),i(3),i(1)]}function bce(t,e,n){const i=KD(t,1,.5);let s;for(e+n>1&&(s=1/(e+n),e*=s,n*=s),s=0;s<3;s++)i[s]*=1-e-n,i[s]+=e;return i}function vce(t,e,n,i,s){return t===s?(e-n)/i+(e<n?6:0):e===s?(n-t)/i+2:(t-e)/i+4}function fk(t){const n=t.r/255,i=t.g/255,s=t.b/255,a=Math.max(n,i,s),o=Math.min(n,i,s),r=(a+o)/2;let c,d,f;return a!==o&&(f=a-o,d=r>.5?f/(2-a-o):f/(a+o),c=vce(n,i,s,f,a),c=c*60+.5),[c|0,d||0,r]}function mk(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Al)}function pk(t,e,n){return mk(KD,t,e,n)}function xce(t,e,n){return mk(bce,t,e,n)}function Sce(t,e,n){return mk(yce,t,e,n)}function HD(t){return(t%360+360)%360}function wce(t){const e=_ce.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?Lf(+e[5]):Al(+e[5]));const s=HD(+e[2]),a=+e[3]/100,o=+e[4]/100;return e[1]==="hwb"?i=xce(s,a,o):e[1]==="hsv"?i=Sce(s,a,o):i=pk(s,a,o),{r:i[0],g:i[1],b:i[2],a:n}}function kce(t,e){var n=fk(t);n[0]=HD(n[0]+e),n=pk(n),t.r=n[0],t.g=n[1],t.b=n[2]}function Cce(t){if(!t)return;const e=fk(t),n=e[0],i=lP(e[1]),s=lP(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${s}%, ${pr(t.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const cP={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},uP={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Ace(){const t={},e=Object.keys(uP),n=Object.keys(cP);let i,s,a,o,r;for(i=0;i<e.length;i++){for(o=r=e[i],s=0;s<n.length;s++)a=n[s],r=r.replace(a,cP[a]);a=parseInt(uP[o],16),t[r]=[a>>16&255,a>>8&255,a&255]}return t}let r_;function Nce(t){r_||(r_=Ace(),r_.transparent=[0,0,0,0]);const e=r_[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const Tce=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Mce(t){const e=Tce.exec(t);let n=255,i,s,a;if(e){if(e[7]!==i){const o=+e[7];n=e[8]?Lf(o):bl(o*255,0,255)}return i=+e[1],s=+e[3],a=+e[5],i=255&(e[2]?Lf(i):bl(i,0,255)),s=255&(e[4]?Lf(s):bl(s,0,255)),a=255&(e[6]?Lf(a):bl(a,0,255)),{r:i,g:s,b:a,a:n}}}function Lce(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${pr(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const S1=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,zu=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Oce(t,e,n){const i=zu(pr(t.r)),s=zu(pr(t.g)),a=zu(pr(t.b));return{r:Al(S1(i+n*(zu(pr(e.r))-i))),g:Al(S1(s+n*(zu(pr(e.g))-s))),b:Al(S1(a+n*(zu(pr(e.b))-a))),a:t.a+n*(e.a-t.a)}}function l_(t,e,n){if(t){let i=fk(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=pk(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function VD(t,e){return t&&Object.assign(e||{},t)}function dP(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Al(t[3]))):(e=VD(t,{r:0,g:0,b:0,a:1}),e.a=Al(e.a)),e}function Pce(t){return t.charAt(0)==="r"?Mce(t):wce(t)}class gm{constructor(e){if(e instanceof gm)return e;const n=typeof e;let i;n==="object"?i=dP(e):n==="string"&&(i=mce(e)||Nce(e)||Pce(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=VD(this._rgb);return e&&(e.a=pr(e.a)),e}set rgb(e){this._rgb=dP(e)}rgbString(){return this._valid?Lce(this._rgb):void 0}hexString(){return this._valid?gce(this._rgb):void 0}hslString(){return this._valid?Cce(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,s=e.rgb;let a;const o=n===a?.5:n,r=2*o-1,c=i.a-s.a,d=((r*c===-1?r:(r+c)/(1+r*c))+1)/2;a=1-d,i.r=255&d*i.r+a*s.r+.5,i.g=255&d*i.g+a*s.g+.5,i.b=255&d*i.b+a*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=Oce(this._rgb,e._rgb,n)),this}clone(){return new gm(this.rgb)}alpha(e){return this._rgb.a=Al(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=mp(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return l_(this._rgb,2,e),this}darken(e){return l_(this._rgb,2,-e),this}saturate(e){return l_(this._rgb,1,e),this}desaturate(e){return l_(this._rgb,1,-e),this}rotate(e){return kce(this._rgb,e),this}}function rr(){}const Ece=(()=>{let t=0;return()=>t++})();function Dn(t){return t==null}function Ni(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function hn(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function ls(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function ro(t,e){return ls(t)?t:e}function cn(t,e){return typeof t>"u"?e:t}const jce=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function Bn(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Cn(t,e,n,i){let s,a,o;if(Ni(t))for(a=t.length,s=0;s<a;s++)e.call(n,t[s],s);else if(hn(t))for(o=Object.keys(t),a=o.length,s=0;s<a;s++)e.call(n,t[o[s]],o[s])}function q0(t,e){let n,i,s,a;if(!t||!e||t.length!==e.length)return!1;for(n=0,i=t.length;n<i;++n)if(s=t[n],a=e[n],s.datasetIndex!==a.datasetIndex||s.index!==a.index)return!1;return!0}function K0(t){if(Ni(t))return t.map(K0);if(hn(t)){const e=Object.create(null),n=Object.keys(t),i=n.length;let s=0;for(;s<i;++s)e[n[s]]=K0(t[n[s]]);return e}return t}function WD(t){return["__proto__","prototype","constructor"].indexOf(t)===-1}function Rce(t,e,n,i){if(!WD(t))return;const s=e[t],a=n[t];hn(s)&&hn(a)?_m(s,a,i):e[t]=K0(a)}function _m(t,e,n){const i=Ni(e)?e:[e],s=i.length;if(!hn(t))return t;n=n||{};const a=n.merger||Rce;let o;for(let r=0;r<s;++r){if(o=i[r],!hn(o))continue;const c=Object.keys(o);for(let d=0,f=c.length;d<f;++d)a(c[d],t,o,n)}return t}function Gf(t,e){return _m(t,e,{merger:Dce})}function Dce(t,e,n){if(!WD(t))return;const i=e[t],s=n[t];hn(i)&&hn(s)?Gf(i,s):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=K0(s))}const hP={"":t=>t,x:t=>t.x,y:t=>t.y};function Fce(t){const e=t.split("."),n=[];let i="";for(const s of e)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function Ice(t){const e=Fce(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function H0(t,e){return(hP[e]||(hP[e]=Ice(e)))(t)}function gk(t){return t.charAt(0).toUpperCase()+t.slice(1)}const V0=t=>typeof t<"u",Ol=t=>typeof t=="function",fP=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function Uce(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const ji=Math.PI,Ga=2*ji,Bce=Ga+ji,W0=Number.POSITIVE_INFINITY,zce=ji/180,Va=ji/2,oc=ji/4,mP=ji*2/3,GD=Math.log10,Td=Math.sign;function $f(t,e,n){return Math.abs(t-e)<n}function pP(t){const e=Math.round(t);t=$f(t,e,t/1e3)?e:t;const n=Math.pow(10,Math.floor(GD(t))),i=t/n;return(i<=1?1:i<=2?2:i<=5?5:10)*n}function qce(t){const e=[],n=Math.sqrt(t);let i;for(i=1;i<n;i++)t%i===0&&(e.push(i),e.push(t/i));return n===(n|0)&&e.push(n),e.sort((s,a)=>s-a).pop(),e}function Kce(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function ym(t){return!Kce(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function Hce(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function Vce(t,e,n){let i,s,a;for(i=0,s=t.length;i<s;i++)a=t[i][n],isNaN(a)||(e.min=Math.min(e.min,a),e.max=Math.max(e.max,a))}function kc(t){return t*(ji/180)}function Wce(t){return t*(180/ji)}function gP(t){if(!ls(t))return;let e=1,n=0;for(;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Gce(t,e){const n=e.x-t.x,i=e.y-t.y,s=Math.sqrt(n*n+i*i);let a=Math.atan2(i,n);return a<-.5*ji&&(a+=Ga),{angle:a,distance:s}}function oS(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function $ce(t,e){return(t-e+Bce)%Ga-ji}function yo(t){return(t%Ga+Ga)%Ga}function $D(t,e,n,i){const s=yo(t),a=yo(e),o=yo(n),r=yo(a-s),c=yo(o-s),d=yo(s-a),f=yo(s-o);return s===a||s===o||i&&a===o||r>c&&d<f}function ya(t,e,n){return Math.max(e,Math.min(n,t))}function Xce(t){return ya(t,-32768,32767)}function td(t,e,n,i=1e-6){return t>=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function _k(t,e,n){n=n||(o=>t[o]<e);let i=t.length-1,s=0,a;for(;i-s>1;)a=s+i>>1,n(a)?s=a:i=a;return{lo:s,hi:i}}const Cc=(t,e,n,i)=>_k(t,n,i?s=>{const a=t[s][e];return a<n||a===n&&t[s+1][e]===n}:s=>t[s][e]<n),Qce=(t,e,n)=>_k(t,n,i=>t[i][e]>=n);function Yce(t,e,n){let i=0,s=t.length;for(;i<s&&t[i]<e;)i++;for(;s>i&&t[s-1]>n;)s--;return i>0||s<t.length?t.slice(i,s):t}const XD=["push","pop","shift","splice","unshift"];function Jce(t,e){if(t._chartjs){t._chartjs.listeners.push(e);return}Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),XD.forEach(n=>{const i="_onData"+gk(n),s=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...a){const o=s.apply(this,a);return t._chartjs.listeners.forEach(r=>{typeof r[i]=="function"&&r[i](...a)}),o}})})}function _P(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(e);s!==-1&&i.splice(s,1),!(i.length>0)&&(XD.forEach(a=>{delete t[a]}),delete t._chartjs)}function Zce(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const QD=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function YD(t,e){let n=[],i=!1;return function(...s){n=s,i||(i=!0,QD.call(window,()=>{i=!1,t.apply(e,n)}))}}function eue(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const yk=t=>t==="start"?"left":t==="end"?"right":"center",Ji=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,tue=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function nue(t,e,n){const i=e.length;let s=0,a=i;if(t._sorted){const{iScale:o,vScale:r,_parsed:c}=t,d=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,f=o.axis,{min:m,max:g,minDefined:y,maxDefined:b}=o.getUserBounds();if(y){if(s=Math.min(Cc(c,f,m).lo,n?i:Cc(e,f,o.getPixelForValue(m)).lo),d){const v=c.slice(0,s+1).reverse().findIndex(x=>!Dn(x[r.axis]));s-=Math.max(0,v)}s=ya(s,0,i-1)}if(b){let v=Math.max(Cc(c,o.axis,g,!0).hi+1,n?0:Cc(e,f,o.getPixelForValue(g),!0).hi+1);if(d){const x=c.slice(v-1).findIndex(A=>!Dn(A[r.axis]));v+=Math.max(0,x)}a=ya(v,s,i)-s}else a=i-s}return{start:s,count:a}}function iue(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,s={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=s,!0;const a=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),a}const c_=t=>t===0||t===1,yP=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*Ga/n)),bP=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*Ga/n)+1,Xf={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*Va)+1,easeOutSine:t=>Math.sin(t*Va),easeInOutSine:t=>-.5*(Math.cos(ji*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>c_(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>c_(t)?t:yP(t,.075,.3),easeOutElastic:t=>c_(t)?t:bP(t,.075,.3),easeInOutElastic(t){return c_(t)?t:t<.5?.5*yP(t*2,.1125,.45):.5+.5*bP(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Xf.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Xf.easeInBounce(t*2)*.5:Xf.easeOutBounce(t*2-1)*.5+.5};function bk(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function vP(t){return bk(t)?t:new gm(t)}function w1(t){return bk(t)?t:new gm(t).saturate(.5).darken(.1).hexString()}const sue=["x","y","borderWidth","radius","tension"],aue=["color","borderColor","backgroundColor"];function oue(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:aue},numbers:{type:"number",properties:sue}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function rue(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const xP=new Map;function lue(t,e){e=e||{};const n=t+JSON.stringify(e);let i=xP.get(n);return i||(i=new Intl.NumberFormat(t,e),xP.set(n,i)),i}function JD(t,e,n){return lue(e,n).format(t)}const cue={values(t){return Ni(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let s,a=t;if(n.length>1){const d=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(d<1e-4||d>1e15)&&(s="scientific"),a=uue(t,n)}const o=GD(Math.abs(a)),r=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:s,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(c,this.options.ticks.format),JD(t,i,c)}};function uue(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var ZD={formatters:cue};function due(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ZD.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const Bc=Object.create(null),rS=Object.create(null);function Qf(t,e){if(!e)return t;const n=e.split(".");for(let i=0,s=n.length;i<s;++i){const a=n[i];t=t[a]||(t[a]=Object.create(null))}return t}function k1(t,e,n){return typeof e=="string"?_m(Qf(t,e),n):_m(Qf(t,""),e)}class hue{constructor(e,n){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=i=>i.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>w1(s.backgroundColor),this.hoverBorderColor=(i,s)=>w1(s.borderColor),this.hoverColor=(i,s)=>w1(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return k1(this,e,n)}get(e){return Qf(this,e)}describe(e,n){return k1(rS,e,n)}override(e,n){return k1(Bc,e,n)}route(e,n,i,s){const a=Qf(this,e),o=Qf(this,i),r="_"+n;Object.defineProperties(a,{[r]:{value:a[n],writable:!0},[n]:{enumerable:!0,get(){const c=this[r],d=o[s];return hn(c)?Object.assign({},d,c):cn(c,d)},set(c){this[r]=c}}})}apply(e){e.forEach(n=>n(this))}}var oi=new hue({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[oue,rue,due]);function fue(t){return!t||Dn(t.size)||Dn(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function SP(t,e,n,i,s){let a=e[s];return a||(a=e[s]=t.measureText(s).width,n.push(s)),a>i&&(i=a),i}function rc(t,e,n){const i=t.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((e-s)*i)/i+s}function wP(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function lS(t,e,n,i){e5(t,e,n,i,null)}function e5(t,e,n,i,s){let a,o,r,c,d,f,m,g;const y=e.pointStyle,b=e.rotation,v=e.radius;let x=(b||0)*zce;if(y&&typeof y=="object"&&(a=y.toString(),a==="[object HTMLImageElement]"||a==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(x),t.drawImage(y,-y.width/2,-y.height/2,y.width,y.height),t.restore();return}if(!(isNaN(v)||v<=0)){switch(t.beginPath(),y){default:s?t.ellipse(n,i,s/2,v,0,0,Ga):t.arc(n,i,v,0,Ga),t.closePath();break;case"triangle":f=s?s/2:v,t.moveTo(n+Math.sin(x)*f,i-Math.cos(x)*v),x+=mP,t.lineTo(n+Math.sin(x)*f,i-Math.cos(x)*v),x+=mP,t.lineTo(n+Math.sin(x)*f,i-Math.cos(x)*v),t.closePath();break;case"rectRounded":d=v*.516,c=v-d,o=Math.cos(x+oc)*c,m=Math.cos(x+oc)*(s?s/2-d:c),r=Math.sin(x+oc)*c,g=Math.sin(x+oc)*(s?s/2-d:c),t.arc(n-m,i-r,d,x-ji,x-Va),t.arc(n+g,i-o,d,x-Va,x),t.arc(n+m,i+r,d,x,x+Va),t.arc(n-g,i+o,d,x+Va,x+ji),t.closePath();break;case"rect":if(!b){c=Math.SQRT1_2*v,f=s?s/2:c,t.rect(n-f,i-c,2*f,2*c);break}x+=oc;case"rectRot":m=Math.cos(x)*(s?s/2:v),o=Math.cos(x)*v,r=Math.sin(x)*v,g=Math.sin(x)*(s?s/2:v),t.moveTo(n-m,i-r),t.lineTo(n+g,i-o),t.lineTo(n+m,i+r),t.lineTo(n-g,i+o),t.closePath();break;case"crossRot":x+=oc;case"cross":m=Math.cos(x)*(s?s/2:v),o=Math.cos(x)*v,r=Math.sin(x)*v,g=Math.sin(x)*(s?s/2:v),t.moveTo(n-m,i-r),t.lineTo(n+m,i+r),t.moveTo(n+g,i-o),t.lineTo(n-g,i+o);break;case"star":m=Math.cos(x)*(s?s/2:v),o=Math.cos(x)*v,r=Math.sin(x)*v,g=Math.sin(x)*(s?s/2:v),t.moveTo(n-m,i-r),t.lineTo(n+m,i+r),t.moveTo(n+g,i-o),t.lineTo(n-g,i+o),x+=oc,m=Math.cos(x)*(s?s/2:v),o=Math.cos(x)*v,r=Math.sin(x)*v,g=Math.sin(x)*(s?s/2:v),t.moveTo(n-m,i-r),t.lineTo(n+m,i+r),t.moveTo(n+g,i-o),t.lineTo(n-g,i+o);break;case"line":o=s?s/2:Math.cos(x)*v,r=Math.sin(x)*v,t.moveTo(n-o,i-r),t.lineTo(n+o,i+r);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(x)*(s?s/2:v),i+Math.sin(x)*v);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function bm(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.x<e.right+n&&t.y>e.top-n&&t.y<e.bottom+n}function Xy(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function Qy(t){t.restore()}function mue(t,e,n,i,s){if(!e)return t.lineTo(n.x,n.y);if(s==="middle"){const a=(e.x+n.x)/2;t.lineTo(a,e.y),t.lineTo(a,n.y)}else s==="after"!=!!i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y);t.lineTo(n.x,n.y)}function pue(t,e,n,i){if(!e)return t.lineTo(n.x,n.y);t.bezierCurveTo(i?e.cp1x:e.cp2x,i?e.cp1y:e.cp2y,i?n.cp2x:n.cp1x,i?n.cp2y:n.cp1y,n.x,n.y)}function gue(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),Dn(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}function _ue(t,e,n,i,s){if(s.strikethrough||s.underline){const a=t.measureText(i),o=e-a.actualBoundingBoxLeft,r=e+a.actualBoundingBoxRight,c=n-a.actualBoundingBoxAscent,d=n+a.actualBoundingBoxDescent,f=s.strikethrough?(c+d)/2:d;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=s.decorationWidth||2,t.moveTo(o,f),t.lineTo(r,f),t.stroke()}}function yue(t,e){const n=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=n}function vm(t,e,n,i,s,a={}){const o=Ni(e)?e:[e],r=a.strokeWidth>0&&a.strokeColor!=="";let c,d;for(t.save(),t.font=s.string,gue(t,a),c=0;c<o.length;++c)d=o[c],a.backdrop&&yue(t,a.backdrop),r&&(a.strokeColor&&(t.strokeStyle=a.strokeColor),Dn(a.strokeWidth)||(t.lineWidth=a.strokeWidth),t.strokeText(d,n,i,a.maxWidth)),t.fillText(d,n,i,a.maxWidth),_ue(t,n,i,d,a),i+=Number(s.lineHeight);t.restore()}function cS(t,e){const{x:n,y:i,w:s,h:a,radius:o}=e;t.arc(n+o.topLeft,i+o.topLeft,o.topLeft,1.5*ji,ji,!0),t.lineTo(n,i+a-o.bottomLeft),t.arc(n+o.bottomLeft,i+a-o.bottomLeft,o.bottomLeft,ji,Va,!0),t.lineTo(n+s-o.bottomRight,i+a),t.arc(n+s-o.bottomRight,i+a-o.bottomRight,o.bottomRight,Va,0,!0),t.lineTo(n+s,i+o.topRight),t.arc(n+s-o.topRight,i+o.topRight,o.topRight,0,-Va,!0),t.lineTo(n+o.topLeft,i)}const bue=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,vue=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function xue(t,e){const n=(""+t).match(bue);if(!n||n[1]==="normal")return e*1.2;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100;break}return e*t}const Sue=t=>+t||0;function t5(t,e){const n={},i=hn(e),s=i?Object.keys(e):e,a=hn(t)?i?o=>cn(t[o],t[e[o]]):o=>t[o]:()=>t;for(const o of s)n[o]=Sue(a(o));return n}function wue(t){return t5(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Yf(t){return t5(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Ma(t){const e=wue(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function as(t,e){t=t||{},e=e||oi.font;let n=cn(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=cn(t.style,e.style);i&&!(""+i).match(vue)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:cn(t.family,e.family),lineHeight:xue(cn(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:cn(t.weight,e.weight),string:""};return s.string=fue(s),s}function u_(t,e,n,i){let s,a,o;for(s=0,a=t.length;s<a;++s)if(o=t[s],o!==void 0&&o!==void 0)return o}function kue(t,e,n){const{min:i,max:s}=t,a=jce(e,(s-i)/2),o=(r,c)=>n&&r===0?0:r+c;return{min:o(i,-Math.abs(a)),max:o(s,a)}}function Yc(t,e){return Object.assign(Object.create(t),e)}function vk(t,e=[""],n,i,s=()=>t[0]){const a=n||t;typeof i>"u"&&(i=a5("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:a,_fallback:i,_getTarget:s,override:r=>vk([r,...t],e,a,i)};return new Proxy(o,{deleteProperty(r,c){return delete r[c],delete r._keys,delete t[0][c],!0},get(r,c){return i5(r,c,()=>Pue(c,e,t,r))},getOwnPropertyDescriptor(r,c){return Reflect.getOwnPropertyDescriptor(r._scopes[0],c)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(r,c){return CP(r).includes(c)},ownKeys(r){return CP(r)},set(r,c,d){const f=r._storage||(r._storage=s());return r[c]=f[c]=d,delete r._keys,!0}})}function Md(t,e,n,i){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:n5(t,i),setContext:a=>Md(t,a,n,i),override:a=>Md(t.override(a),e,n,i)};return new Proxy(s,{deleteProperty(a,o){return delete a[o],delete t[o],!0},get(a,o,r){return i5(a,o,()=>Aue(a,o,r))},getOwnPropertyDescriptor(a,o){return a._descriptors.allKeys?Reflect.has(t,o)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,o)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(a,o){return Reflect.has(t,o)},ownKeys(){return Reflect.ownKeys(t)},set(a,o,r){return t[o]=r,delete a[o],!0}})}function n5(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:n,indexable:i,isScriptable:Ol(n)?n:()=>n,isIndexable:Ol(i)?i:()=>i}}const Cue=(t,e)=>t?t+gk(e):e,xk=(t,e)=>hn(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function i5(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function Aue(t,e,n){const{_proxy:i,_context:s,_subProxy:a,_descriptors:o}=t;let r=i[e];return Ol(r)&&o.isScriptable(e)&&(r=Nue(e,r,t,n)),Ni(r)&&r.length&&(r=Tue(e,r,t,o.isIndexable)),xk(e,r)&&(r=Md(r,s,a&&a[e],o)),r}function Nue(t,e,n,i){const{_proxy:s,_context:a,_subProxy:o,_stack:r}=n;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let c=e(a,o||i);return r.delete(t),xk(t,c)&&(c=Sk(s._scopes,s,t,c)),c}function Tue(t,e,n,i){const{_proxy:s,_context:a,_subProxy:o,_descriptors:r}=n;if(typeof a.index<"u"&&i(t))return e[a.index%e.length];if(hn(e[0])){const c=e,d=s._scopes.filter(f=>f!==c);e=[];for(const f of c){const m=Sk(d,s,t,f);e.push(Md(m,a,o&&o[t],r))}}return e}function s5(t,e,n){return Ol(t)?t(e,n):t}const Mue=(t,e)=>t===!0?e:typeof t=="string"?H0(e,t):void 0;function Lue(t,e,n,i,s){for(const a of e){const o=Mue(n,a);if(o){t.add(o);const r=s5(o._fallback,n,s);if(typeof r<"u"&&r!==n&&r!==i)return r}else if(o===!1&&typeof i<"u"&&n!==i)return null}return!1}function Sk(t,e,n,i){const s=e._rootScopes,a=s5(e._fallback,n,i),o=[...t,...s],r=new Set;r.add(i);let c=kP(r,o,n,a||n,i);return c===null||typeof a<"u"&&a!==n&&(c=kP(r,o,a,c,i),c===null)?!1:vk(Array.from(r),[""],s,a,()=>Oue(e,n,i))}function kP(t,e,n,i,s){for(;n;)n=Lue(t,e,n,i,s);return n}function Oue(t,e,n){const i=t._getTarget();e in i||(i[e]={});const s=i[e];return Ni(s)&&hn(n)?n:s||{}}function Pue(t,e,n,i){let s;for(const a of e)if(s=a5(Cue(a,t),n),typeof s<"u")return xk(t,s)?Sk(n,i,t,s):s}function a5(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function CP(t){let e=t._keys;return e||(e=t._keys=Eue(t._scopes)),e}function Eue(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))e.add(i);return Array.from(e)}const jue=Number.EPSILON||1e-14,Ld=(t,e)=>e<t.length&&!t[e].skip&&t[e],o5=t=>t==="x"?"y":"x";function Rue(t,e,n,i){const s=t.skip?e:t,a=e,o=n.skip?e:n,r=oS(a,s),c=oS(o,a);let d=r/(r+c),f=c/(r+c);d=isNaN(d)?0:d,f=isNaN(f)?0:f;const m=i*d,g=i*f;return{previous:{x:a.x-m*(o.x-s.x),y:a.y-m*(o.y-s.y)},next:{x:a.x+g*(o.x-s.x),y:a.y+g*(o.y-s.y)}}}function Due(t,e,n){const i=t.length;let s,a,o,r,c,d=Ld(t,0);for(let f=0;f<i-1;++f)if(c=d,d=Ld(t,f+1),!(!c||!d)){if($f(e[f],0,jue)){n[f]=n[f+1]=0;continue}s=n[f]/e[f],a=n[f+1]/e[f],r=Math.pow(s,2)+Math.pow(a,2),!(r<=9)&&(o=3/Math.sqrt(r),n[f]=s*o*e[f],n[f+1]=a*o*e[f])}}function Fue(t,e,n="x"){const i=o5(n),s=t.length;let a,o,r,c=Ld(t,0);for(let d=0;d<s;++d){if(o=r,r=c,c=Ld(t,d+1),!r)continue;const f=r[n],m=r[i];o&&(a=(f-o[n])/3,r[`cp1${n}`]=f-a,r[`cp1${i}`]=m-a*e[d]),c&&(a=(c[n]-f)/3,r[`cp2${n}`]=f+a,r[`cp2${i}`]=m+a*e[d])}}function Iue(t,e="x"){const n=o5(e),i=t.length,s=Array(i).fill(0),a=Array(i);let o,r,c,d=Ld(t,0);for(o=0;o<i;++o)if(r=c,c=d,d=Ld(t,o+1),!!c){if(d){const f=d[e]-c[e];s[o]=f!==0?(d[n]-c[n])/f:0}a[o]=r?d?Td(s[o-1])!==Td(s[o])?0:(s[o-1]+s[o])/2:s[o-1]:s[o]}Due(t,s,a),Fue(t,a,e)}function d_(t,e,n){return Math.max(Math.min(t,n),e)}function Uue(t,e){let n,i,s,a,o,r=bm(t[0],e);for(n=0,i=t.length;n<i;++n)o=a,a=r,r=n<i-1&&bm(t[n+1],e),a&&(s=t[n],o&&(s.cp1x=d_(s.cp1x,e.left,e.right),s.cp1y=d_(s.cp1y,e.top,e.bottom)),r&&(s.cp2x=d_(s.cp2x,e.left,e.right),s.cp2y=d_(s.cp2y,e.top,e.bottom)))}function Bue(t,e,n,i,s){let a,o,r,c;if(e.spanGaps&&(t=t.filter(d=>!d.skip)),e.cubicInterpolationMode==="monotone")Iue(t,s);else{let d=i?t[t.length-1]:t[0];for(a=0,o=t.length;a<o;++a)r=t[a],c=Rue(d,r,t[Math.min(a+1,o-(i?0:1))%o],e.tension),r.cp1x=c.previous.x,r.cp1y=c.previous.y,r.cp2x=c.next.x,r.cp2y=c.next.y,d=r}e.capBezierPoints&&Uue(t,n)}function wk(){return typeof window<"u"&&typeof document<"u"}function kk(t){let e=t.parentNode;return e&&e.toString()==="[object ShadowRoot]"&&(e=e.host),e}function G0(t,e,n){let i;return typeof t=="string"?(i=parseInt(t,10),t.indexOf("%")!==-1&&(i=i/100*e.parentNode[n])):i=t,i}const Yy=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function zue(t,e){return Yy(t).getPropertyValue(e)}const que=["top","right","bottom","left"];function jc(t,e,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const a=que[s];i[a]=parseFloat(t[e+"-"+a+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const Kue=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function Hue(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:s,offsetY:a}=i;let o=!1,r,c;if(Kue(s,a,t.target))r=s,c=a;else{const d=e.getBoundingClientRect();r=i.clientX-d.left,c=i.clientY-d.top,o=!0}return{x:r,y:c,box:o}}function fc(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,s=Yy(n),a=s.boxSizing==="border-box",o=jc(s,"padding"),r=jc(s,"border","width"),{x:c,y:d,box:f}=Hue(t,n),m=o.left+(f&&r.left),g=o.top+(f&&r.top);let{width:y,height:b}=e;return a&&(y-=o.width+r.width,b-=o.height+r.height),{x:Math.round((c-m)/y*n.width/i),y:Math.round((d-g)/b*n.height/i)}}function Vue(t,e,n){let i,s;if(e===void 0||n===void 0){const a=t&&kk(t);if(!a)e=t.clientWidth,n=t.clientHeight;else{const o=a.getBoundingClientRect(),r=Yy(a),c=jc(r,"border","width"),d=jc(r,"padding");e=o.width-d.width-c.width,n=o.height-d.height-c.height,i=G0(r.maxWidth,a,"clientWidth"),s=G0(r.maxHeight,a,"clientHeight")}}return{width:e,height:n,maxWidth:i||W0,maxHeight:s||W0}}const vl=t=>Math.round(t*10)/10;function Wue(t,e,n,i){const s=Yy(t),a=jc(s,"margin"),o=G0(s.maxWidth,t,"clientWidth")||W0,r=G0(s.maxHeight,t,"clientHeight")||W0,c=Vue(t,e,n);let{width:d,height:f}=c;if(s.boxSizing==="content-box"){const g=jc(s,"border","width"),y=jc(s,"padding");d-=y.width+g.width,f-=y.height+g.height}return d=Math.max(0,d-a.width),f=Math.max(0,i?d/i:f-a.height),d=vl(Math.min(d,o,c.maxWidth)),f=vl(Math.min(f,r,c.maxHeight)),d&&!f&&(f=vl(d/2)),(e!==void 0||n!==void 0)&&i&&c.height&&f>c.height&&(f=c.height,d=vl(Math.floor(f*i))),{width:d,height:f}}function AP(t,e,n){const i=e||1,s=vl(t.height*i),a=vl(t.width*i);t.height=vl(t.height),t.width=vl(t.width);const o=t.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${t.height}px`,o.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||o.height!==s||o.width!==a?(t.currentDevicePixelRatio=i,o.height=s,o.width=a,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const Gue=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};wk()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function NP(t,e){const n=zue(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function mc(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function $ue(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function Xue(t,e,n,i){const s={x:t.cp2x,y:t.cp2y},a={x:e.cp1x,y:e.cp1y},o=mc(t,s,n),r=mc(s,a,n),c=mc(a,e,n),d=mc(o,r,n),f=mc(r,c,n);return mc(d,f,n)}const Que=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},Yue=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function md(t,e,n){return t?Que(e,n):Yue()}function r5(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function l5(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function c5(t){return t==="angle"?{between:$D,compare:$ce,normalize:yo}:{between:td,compare:(e,n)=>e-n,normalize:e=>e}}function TP({start:t,end:e,count:n,loop:i,style:s}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:s}}function Jue(t,e,n){const{property:i,start:s,end:a}=n,{between:o,normalize:r}=c5(i),c=e.length;let{start:d,end:f,loop:m}=t,g,y;if(m){for(d+=c,f+=c,g=0,y=c;g<y&&o(r(e[d%c][i]),s,a);++g)d--,f--;d%=c,f%=c}return f<d&&(f+=c),{start:d,end:f,loop:m,style:t.style}}function u5(t,e,n){if(!n)return[t];const{property:i,start:s,end:a}=n,o=e.length,{compare:r,between:c,normalize:d}=c5(i),{start:f,end:m,loop:g,style:y}=Jue(t,e,n),b=[];let v=!1,x=null,A,k,T;const L=()=>c(s,T,A)&&r(s,T)!==0,M=()=>r(a,A)===0||c(a,T,A),O=()=>v||L(),N=()=>!v||M();for(let P=f,E=f;P<=m;++P)k=e[P%o],!k.skip&&(A=d(k[i]),A!==T&&(v=c(A,s,a),x===null&&O()&&(x=r(A,s)===0?P:E),x!==null&&N()&&(b.push(TP({start:x,end:P,loop:g,count:o,style:y})),x=null),E=P,T=A));return x!==null&&b.push(TP({start:x,end:m,loop:g,count:o,style:y})),b}function d5(t,e){const n=[],i=t.segments;for(let s=0;s<i.length;s++){const a=u5(i[s],t.points,e);a.length&&n.push(...a)}return n}function Zue(t,e,n,i){let s=0,a=e-1;if(n&&!i)for(;s<e&&!t[s].skip;)s++;for(;s<e&&t[s].skip;)s++;for(s%=e,n&&(a+=s);a>s&&t[a%e].skip;)a--;return a%=e,{start:s,end:a}}function ede(t,e,n,i){const s=t.length,a=[];let o=e,r=t[e],c;for(c=e+1;c<=n;++c){const d=t[c%s];d.skip||d.stop?r.skip||(i=!1,a.push({start:e%s,end:(c-1)%s,loop:i}),e=o=d.stop?c:null):(o=c,r.skip&&(e=c)),r=d}return o!==null&&a.push({start:e%s,end:o%s,loop:i}),a}function tde(t,e){const n=t.points,i=t.options.spanGaps,s=n.length;if(!s)return[];const a=!!t._loop,{start:o,end:r}=Zue(n,s,a,i);if(i===!0)return MP(t,[{start:o,end:r,loop:a}],n,e);const c=r<o?r+s:r,d=!!t._fullLoop&&o===0&&r===s-1;return MP(t,ede(n,o,c,d),n,e)}function MP(t,e,n,i){return!i||!i.setContext||!n?e:nde(t,e,n,i)}function nde(t,e,n,i){const s=t._chart.getContext(),a=LP(t.options),{_datasetIndex:o,options:{spanGaps:r}}=t,c=n.length,d=[];let f=a,m=e[0].start,g=m;function y(b,v,x,A){const k=r?-1:1;if(b!==v){for(b+=c;n[b%c].skip;)b-=k;for(;n[v%c].skip;)v+=k;b%c!==v%c&&(d.push({start:b%c,end:v%c,loop:x,style:A}),f=A,m=v%c)}}for(const b of e){m=r?m:b.start;let v=n[m%c],x;for(g=m+1;g<=b.end;g++){const A=n[g%c];x=LP(i.setContext(Yc(s,{type:"segment",p0:v,p1:A,p0DataIndex:(g-1)%c,p1DataIndex:g%c,datasetIndex:o}))),ide(x,f)&&y(m,g-1,b.loop,f),v=A,f=x}m<g-1&&y(m,g-1,b.loop,f)}return d}function LP(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function ide(t,e){if(!e)return!1;const n=[],i=function(s,a){return bk(a)?(n.includes(a)||n.push(a),n.indexOf(a)):a};return JSON.stringify(t,i)!==JSON.stringify(e,i)}function h_(t,e,n){return t.options.clip?t[n]:e[n]}function sde(t,e){const{xScale:n,yScale:i}=t;return n&&i?{left:h_(n,e,"left"),right:h_(n,e,"right"),top:h_(i,e,"top"),bottom:h_(i,e,"bottom")}:e}function h5(t,e){const n=e._clip;if(n.disabled)return!1;const i=sde(e,t.chartArea);return{left:n.left===!1?0:i.left-(n.left===!0?0:n.left),right:n.right===!1?t.width:i.right+(n.right===!0?0:n.right),top:n.top===!1?0:i.top-(n.top===!0?0:n.top),bottom:n.bottom===!1?t.height:i.bottom+(n.bottom===!0?0:n.bottom)}}class ade{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(e,n,i,s){const a=n.listeners[s],o=n.duration;a.forEach(r=>r({chart:e,initial:n.initial,numSteps:o,currentStep:Math.min(i-n.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=QD.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const a=i.items;let o=a.length-1,r=!1,c;for(;o>=0;--o)c=a[o],c._active?(c._total>i.duration&&(i.duration=c._total),c.tick(e),r=!0):(a[o]=a[a.length-1],a.pop());r&&(s.draw(),this._notify(s,i,e,"progress")),a.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),n+=a.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var fr=new ade;const OP="transparent",ode={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=vP(t||OP),s=i.valid&&vP(e||OP);return s&&s.valid?s.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class rde{constructor(e,n,i,s){const a=n[i];s=u_([e.to,s,a,e.from]);const o=u_([e.from,a,s]);this._active=!0,this._fn=e.fn||ode[e.type||typeof o],this._easing=Xf[e.easing]||Xf.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],a=i-this._start,o=this._duration-a;this._start=i,this._duration=Math.floor(Math.max(o,e.duration)),this._total+=a,this._loop=!!e.loop,this._to=u_([e.to,n,s,e.from]),this._from=u_([e.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,s=this._prop,a=this._from,o=this._loop,r=this._to;let c;if(this._active=a!==r&&(o||n<i),!this._active){this._target[s]=r,this._notify(!0);return}if(n<0){this._target[s]=a;return}c=n/i%2,c=o&&c>1?2-c:c,c=this._easing(Math.min(1,Math.max(0,c))),this._target[s]=this._fn(a,r,c)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][n]()}}class f5{constructor(e,n){this._chart=e,this._properties=new Map,this.configure(n)}configure(e){if(!hn(e))return;const n=Object.keys(oi.animation),i=this._properties;Object.getOwnPropertyNames(e).forEach(s=>{const a=e[s];if(!hn(a))return;const o={};for(const r of n)o[r]=a[r];(Ni(a.properties)&&a.properties||[s]).forEach(r=>{(r===s||!i.has(r))&&i.set(r,o)})})}_animateOptions(e,n){const i=n.options,s=cde(e,i);if(!s)return[];const a=this._createAnimations(s,i);return i.$shared&&lde(e.options.$animations,i).then(()=>{e.options=i},()=>{}),a}_createAnimations(e,n){const i=this._properties,s=[],a=e.$animations||(e.$animations={}),o=Object.keys(n),r=Date.now();let c;for(c=o.length-1;c>=0;--c){const d=o[c];if(d.charAt(0)==="$")continue;if(d==="options"){s.push(...this._animateOptions(e,n));continue}const f=n[d];let m=a[d];const g=i.get(d);if(m)if(g&&m.active()){m.update(g,f,r);continue}else m.cancel();if(!g||!g.duration){e[d]=f;continue}a[d]=m=new rde(g,e,d,f),s.push(m)}return s}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return fr.add(this._chart,i),!0}}function lde(t,e){const n=[],i=Object.keys(e);for(let s=0;s<i.length;s++){const a=t[i[s]];a&&a.active()&&n.push(a.wait())}return Promise.all(n)}function cde(t,e){if(!e)return;let n=t.options;if(!n){t.options=e;return}return n.$shared&&(t.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function PP(t,e){const n=t&&t.options||{},i=n.reverse,s=n.min===void 0?e:0,a=n.max===void 0?e:0;return{start:i?a:s,end:i?s:a}}function ude(t,e,n){if(n===!1)return!1;const i=PP(t,n),s=PP(e,n);return{top:s.end,right:i.end,bottom:s.start,left:i.start}}function dde(t){let e,n,i,s;return hn(t)?(e=t.top,n=t.right,i=t.bottom,s=t.left):e=n=i=s=t,{top:e,right:n,bottom:i,left:s,disabled:t===!1}}function m5(t,e){const n=[],i=t._getSortedDatasetMetas(e);let s,a;for(s=0,a=i.length;s<a;++s)n.push(i[s].index);return n}function EP(t,e,n,i={}){const s=t.keys,a=i.mode==="single";let o,r,c,d;if(e===null)return;let f=!1;for(o=0,r=s.length;o<r;++o){if(c=+s[o],c===n){if(f=!0,i.all)continue;break}d=t.values[c],ls(d)&&(a||e===0||Td(e)===Td(d))&&(e+=d)}return!f&&!i.all?0:e}function hde(t,e){const{iScale:n,vScale:i}=e,s=n.axis==="x"?"x":"y",a=i.axis==="x"?"x":"y",o=Object.keys(t),r=new Array(o.length);let c,d,f;for(c=0,d=o.length;c<d;++c)f=o[c],r[c]={[s]:f,[a]:t[f]};return r}function C1(t,e){const n=t&&t.options.stacked;return n||n===void 0&&e.stack!==void 0}function fde(t,e,n){return`${t.id}.${e.id}.${n.stack||n.type}`}function mde(t){const{min:e,max:n,minDefined:i,maxDefined:s}=t.getUserBounds();return{min:i?e:Number.NEGATIVE_INFINITY,max:s?n:Number.POSITIVE_INFINITY}}function pde(t,e,n){const i=t[e]||(t[e]={});return i[n]||(i[n]={})}function jP(t,e,n,i){for(const s of e.getMatchingVisibleMetas(i).reverse()){const a=t[s.index];if(n&&a>0||!n&&a<0)return s.index}return null}function RP(t,e){const{chart:n,_cachedMeta:i}=t,s=n._stacks||(n._stacks={}),{iScale:a,vScale:o,index:r}=i,c=a.axis,d=o.axis,f=fde(a,o,i),m=e.length;let g;for(let y=0;y<m;++y){const b=e[y],{[c]:v,[d]:x}=b,A=b._stacks||(b._stacks={});g=A[d]=pde(s,f,v),g[r]=x,g._top=jP(g,o,!0,i.type),g._bottom=jP(g,o,!1,i.type);const k=g._visualValues||(g._visualValues={});k[r]=x}}function A1(t,e){const n=t.scales;return Object.keys(n).filter(i=>n[i].axis===e).shift()}function gde(t,e){return Yc(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function _de(t,e,n){return Yc(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function df(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const s of e){const a=s._stacks;if(!a||a[i]===void 0||a[i][n]===void 0)return;delete a[i][n],a[i]._visualValues!==void 0&&a[i]._visualValues[n]!==void 0&&delete a[i]._visualValues[n]}}}const N1=t=>t==="reset"||t==="none",DP=(t,e)=>e?t:Object.assign({},t),yde=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:m5(n,!0),values:null};class Jf{constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=C1(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&df(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(m,g,y,b)=>m==="x"?g:m==="r"?b:y,a=n.xAxisID=cn(i.xAxisID,A1(e,"x")),o=n.yAxisID=cn(i.yAxisID,A1(e,"y")),r=n.rAxisID=cn(i.rAxisID,A1(e,"r")),c=n.indexAxis,d=n.iAxisID=s(c,a,o,r),f=n.vAxisID=s(c,o,a,r);n.xScale=this.getScaleForId(a),n.yScale=this.getScaleForId(o),n.rScale=this.getScaleForId(r),n.iScale=this.getScaleForId(d),n.vScale=this.getScaleForId(f)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&_P(this._data,this),e._stacked&&df(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(hn(n)){const s=this._cachedMeta;this._data=hde(n,s)}else if(i!==n){if(i){_P(i,this);const s=this._cachedMeta;df(s),s._parsed=[]}n&&Object.isExtensible(n)&&Jce(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const a=n._stacked;n._stacked=C1(n.vScale,n),n.stack!==i.stack&&(s=!0,df(n),n.stack=i.stack),this._resyncElements(e),(s||a!==n._stacked)&&(RP(this,n._parsed),n._stacked=C1(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:s}=this,{iScale:a,_stacked:o}=i,r=a.axis;let c=e===0&&n===s.length?!0:i._sorted,d=e>0&&i._parsed[e-1],f,m,g;if(this._parsing===!1)i._parsed=s,i._sorted=!0,g=s;else{Ni(s[e])?g=this.parseArrayData(i,s,e,n):hn(s[e])?g=this.parseObjectData(i,s,e,n):g=this.parsePrimitiveData(i,s,e,n);const y=()=>m[r]===null||d&&m[r]<d[r];for(f=0;f<n;++f)i._parsed[f+e]=m=g[f],c&&(y()&&(c=!1),d=m);i._sorted=c}o&&RP(this,g)}parsePrimitiveData(e,n,i,s){const{iScale:a,vScale:o}=e,r=a.axis,c=o.axis,d=a.getLabels(),f=a===o,m=new Array(s);let g,y,b;for(g=0,y=s;g<y;++g)b=g+i,m[g]={[r]:f||a.parse(d[b],b),[c]:o.parse(n[b],b)};return m}parseArrayData(e,n,i,s){const{xScale:a,yScale:o}=e,r=new Array(s);let c,d,f,m;for(c=0,d=s;c<d;++c)f=c+i,m=n[f],r[c]={x:a.parse(m[0],f),y:o.parse(m[1],f)};return r}parseObjectData(e,n,i,s){const{xScale:a,yScale:o}=e,{xAxisKey:r="x",yAxisKey:c="y"}=this._parsing,d=new Array(s);let f,m,g,y;for(f=0,m=s;f<m;++f)g=f+i,y=n[g],d[f]={x:a.parse(H0(y,r),g),y:o.parse(H0(y,c),g)};return d}getParsed(e){return this._cachedMeta._parsed[e]}getDataElement(e){return this._cachedMeta.data[e]}applyStack(e,n,i){const s=this.chart,a=this._cachedMeta,o=n[e.axis],r={keys:m5(s,!0),values:n._stacks[e.axis]._visualValues};return EP(r,o,a.index,{mode:i})}updateRangeFromParsed(e,n,i,s){const a=i[n.axis];let o=a===null?NaN:a;const r=s&&i._stacks[n.axis];s&&r&&(s.values=r,o=EP(s,a,this._cachedMeta.index)),e.min=Math.min(e.min,o),e.max=Math.max(e.max,o)}getMinMax(e,n){const i=this._cachedMeta,s=i._parsed,a=i._sorted&&e===i.iScale,o=s.length,r=this._getOtherScale(e),c=yde(n,i,this.chart),d={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:f,max:m}=mde(r);let g,y;function b(){y=s[g];const v=y[r.axis];return!ls(y[e.axis])||f>v||m<v}for(g=0;g<o&&!(!b()&&(this.updateRangeFromParsed(d,e,y,c),a));++g);if(a){for(g=o-1;g>=0;--g)if(!b()){this.updateRangeFromParsed(d,e,y,c);break}}return d}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let s,a,o;for(s=0,a=n.length;s<a;++s)o=n[s][e.axis],ls(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(e){const n=this._cachedMeta,i=n.iScale,s=n.vScale,a=this.getParsed(e);return{label:i?""+i.getLabelForValue(a[i.axis]):"",value:s?""+s.getLabelForValue(a[s.axis]):""}}_update(e){const n=this._cachedMeta;this.update(e||"default"),n._clip=dde(cn(this.options.clip,ude(n.xScale,n.yScale,this.getMaxOverflow())))}update(e){}draw(){const e=this._ctx,n=this.chart,i=this._cachedMeta,s=i.data||[],a=n.chartArea,o=[],r=this._drawStart||0,c=this._drawCount||s.length-r,d=this.options.drawActiveElementsOnTop;let f;for(i.dataset&&i.dataset.draw(e,a,r,c),f=r;f<r+c;++f){const m=s[f];m.hidden||(m.active&&d?o.push(m):m.draw(e,a))}for(f=0;f<o.length;++f)o[f].draw(e,a)}getStyle(e,n){const i=n?"active":"default";return e===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(e||0,i)}getContext(e,n,i){const s=this.getDataset();let a;if(e>=0&&e<this._cachedMeta.data.length){const o=this._cachedMeta.data[e];a=o.$context||(o.$context=_de(this.getContext(),e,o)),a.parsed=this.getParsed(e),a.raw=s.data[e],a.index=a.dataIndex=e}else a=this.$context||(this.$context=gde(this.chart.getContext(),this.index)),a.dataset=s,a.index=a.datasetIndex=this.index;return a.active=!!n,a.mode=i,a}resolveDatasetElementOptions(e){return this._resolveElementOptions(this.datasetElementType.id,e)}resolveDataElementOptions(e,n){return this._resolveElementOptions(this.dataElementType.id,n,e)}_resolveElementOptions(e,n="default",i){const s=n==="active",a=this._cachedDataOpts,o=e+"-"+n,r=a[o],c=this.enableOptionSharing&&V0(i);if(r)return DP(r,c);const d=this.chart.config,f=d.datasetElementScopeKeys(this._type,e),m=s?[`${e}Hover`,"hover",e,""]:[e,""],g=d.getOptionScopes(this.getDataset(),f),y=Object.keys(oi.elements[e]),b=()=>this.getContext(i,s,n),v=d.resolveNamedOptions(g,y,b,m);return v.$shared&&(v.$shared=c,a[o]=Object.freeze(DP(v,c))),v}_resolveAnimations(e,n,i){const s=this.chart,a=this._cachedDataOpts,o=`animation-${n}`,r=a[o];if(r)return r;let c;if(s.options.animation!==!1){const f=this.chart.config,m=f.datasetAnimationScopeKeys(this._type,n),g=f.getOptionScopes(this.getDataset(),m);c=f.createResolver(g,this.getContext(e,i,n))}const d=new f5(s,c&&c.animations);return c&&c._cacheable&&(a[o]=Object.freeze(d)),d}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||N1(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),s=this._sharedOptions,a=this.getSharedOptions(i),o=this.includeOptions(n,a)||a!==s;return this.updateSharedOptions(a,n,i),{sharedOptions:a,includeOptions:o}}updateElement(e,n,i,s){N1(s)?Object.assign(e,i):this._resolveAnimations(n,s).update(e,i)}updateSharedOptions(e,n,i){e&&!N1(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,s){e.active=s;const a=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(e,{options:!s&&this.getSharedOptions(a)||a})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[r,c,d]of this._syncList)this[r](c,d);this._syncList=[];const s=i.length,a=n.length,o=Math.min(a,s);o&&this.parse(0,o),a>s?this._insertElements(s,a-s,e):a<s&&this._removeElements(a,s-a)}_insertElements(e,n,i=!0){const s=this._cachedMeta,a=s.data,o=e+n;let r;const c=d=>{for(d.length+=n,r=d.length-1;r>=o;r--)d[r]=d[r-n]};for(c(a),r=e;r<o;++r)a[r]=new this.dataElementType;this._parsing&&c(s._parsed),this.parse(e,n),i&&this.updateElements(a,e,n,"reset")}updateElements(e,n,i,s){}_removeElements(e,n){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(e,n);i._stacked&&df(i,s)}i.data.splice(e,n)}_sync(e){if(this._parsing)this._syncList.push(e);else{const[n,i,s]=e;this[n](i,s)}this.chart._dataChanges.push([this.index,...e])}_onDataPush(){const e=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-e,e])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(e,n){n&&this._sync(["_removeElements",e,n]);const i=arguments.length-2;i&&this._sync(["_insertElements",e,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}Pt(Jf,"defaults",{}),Pt(Jf,"datasetElementType",null),Pt(Jf,"dataElementType",null);class u0 extends Jf{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const n=this._cachedMeta,{dataset:i,data:s=[],_dataset:a}=n,o=this.chart._animationsDisabled;let{start:r,count:c}=nue(n,s,o);this._drawStart=r,this._drawCount=c,iue(n)&&(r=0,c=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!a._decimated,i.points=s;const d=this.resolveDatasetElementOptions(e);this.options.showLine||(d.borderWidth=0),d.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:d},e),this.updateElements(s,r,c,e)}updateElements(e,n,i,s){const a=s==="reset",{iScale:o,vScale:r,_stacked:c,_dataset:d}=this._cachedMeta,{sharedOptions:f,includeOptions:m}=this._getSharedOptions(n,s),g=o.axis,y=r.axis,{spanGaps:b,segment:v}=this.options,x=ym(b)?b:Number.POSITIVE_INFINITY,A=this.chart._animationsDisabled||a||s==="none",k=n+i,T=e.length;let L=n>0&&this.getParsed(n-1);for(let M=0;M<T;++M){const O=e[M],N=A?O:{};if(M<n||M>=k){N.skip=!0;continue}const P=this.getParsed(M),E=Dn(P[y]),R=N[g]=o.getPixelForValue(P[g],M),z=N[y]=a||E?r.getBasePixel():r.getPixelForValue(c?this.applyStack(r,P,c):P[y],M);N.skip=isNaN(R)||isNaN(z)||E,N.stop=M>0&&Math.abs(P[g]-L[g])>x,v&&(N.parsed=P,N.raw=d.data[M]),m&&(N.options=f||this.resolveDataElementOptions(M,O.active?"active":s)),A||this.updateElement(O,M,N,s),L=P}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,s=e.data||[];if(!s.length)return i;const a=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,a,o)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}Pt(u0,"id","line"),Pt(u0,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Pt(u0,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});function lc(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Ck{constructor(e){Pt(this,"options");this.options=e||{}}static override(e){Object.assign(Ck.prototype,e)}init(){}formats(){return lc()}parse(){return lc()}format(){return lc()}add(){return lc()}diff(){return lc()}startOf(){return lc()}endOf(){return lc()}}var bde={_date:Ck};function vde(t,e,n,i){const{controller:s,data:a,_sorted:o}=t,r=s._cachedMeta.iScale,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(r&&e===r.axis&&e!=="r"&&o&&a.length){const d=r._reversePixels?Qce:Cc;if(i){if(s._sharedOptions){const f=a[0],m=typeof f.getRange=="function"&&f.getRange(e);if(m){const g=d(a,e,n-m),y=d(a,e,n+m);return{lo:g.lo,hi:y.hi}}}}else{const f=d(a,e,n);if(c){const{vScale:m}=s._cachedMeta,{_parsed:g}=t,y=g.slice(0,f.lo+1).reverse().findIndex(v=>!Dn(v[m.axis]));f.lo-=Math.max(0,y);const b=g.slice(f.hi).findIndex(v=>!Dn(v[m.axis]));f.hi+=Math.max(0,b)}return f}}return{lo:0,hi:a.length-1}}function Jy(t,e,n,i,s){const a=t.getSortedVisibleDatasetMetas(),o=n[e];for(let r=0,c=a.length;r<c;++r){const{index:d,data:f}=a[r],{lo:m,hi:g}=vde(a[r],e,o,s);for(let y=m;y<=g;++y){const b=f[y];b.skip||i(b,d,y)}}}function xde(t){const e=t.indexOf("x")!==-1,n=t.indexOf("y")!==-1;return function(i,s){const a=e?Math.abs(i.x-s.x):0,o=n?Math.abs(i.y-s.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function T1(t,e,n,i,s){const a=[];return!s&&!t.isPointInArea(e)||Jy(t,n,e,function(r,c,d){!s&&!bm(r,t.chartArea,0)||r.inRange(e.x,e.y,i)&&a.push({element:r,datasetIndex:c,index:d})},!0),a}function Sde(t,e,n,i){let s=[];function a(o,r,c){const{startAngle:d,endAngle:f}=o.getProps(["startAngle","endAngle"],i),{angle:m}=Gce(o,{x:e.x,y:e.y});$D(m,d,f)&&s.push({element:o,datasetIndex:r,index:c})}return Jy(t,n,e,a),s}function wde(t,e,n,i,s,a){let o=[];const r=xde(n);let c=Number.POSITIVE_INFINITY;function d(f,m,g){const y=f.inRange(e.x,e.y,s);if(i&&!y)return;const b=f.getCenterPoint(s);if(!(!!a||t.isPointInArea(b))&&!y)return;const x=r(e,b);x<c?(o=[{element:f,datasetIndex:m,index:g}],c=x):x===c&&o.push({element:f,datasetIndex:m,index:g})}return Jy(t,n,e,d),o}function M1(t,e,n,i,s,a){return!a&&!t.isPointInArea(e)?[]:n==="r"&&!i?Sde(t,e,n,s):wde(t,e,n,i,s,a)}function FP(t,e,n,i,s){const a=[],o=n==="x"?"inXRange":"inYRange";let r=!1;return Jy(t,n,e,(c,d,f)=>{c[o]&&c[o](e[n],s)&&(a.push({element:c,datasetIndex:d,index:f}),r=r||c.inRange(e.x,e.y,s))}),i&&!r?[]:a}var kde={modes:{index(t,e,n,i){const s=fc(e,t),a=n.axis||"x",o=n.includeInvisible||!1,r=n.intersect?T1(t,s,a,i,o):M1(t,s,a,!1,i,o),c=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach(d=>{const f=r[0].index,m=d.data[f];m&&!m.skip&&c.push({element:m,datasetIndex:d.index,index:f})}),c):[]},dataset(t,e,n,i){const s=fc(e,t),a=n.axis||"xy",o=n.includeInvisible||!1;let r=n.intersect?T1(t,s,a,i,o):M1(t,s,a,!1,i,o);if(r.length>0){const c=r[0].datasetIndex,d=t.getDatasetMeta(c).data;r=[];for(let f=0;f<d.length;++f)r.push({element:d[f],datasetIndex:c,index:f})}return r},point(t,e,n,i){const s=fc(e,t),a=n.axis||"xy",o=n.includeInvisible||!1;return T1(t,s,a,i,o)},nearest(t,e,n,i){const s=fc(e,t),a=n.axis||"xy",o=n.includeInvisible||!1;return M1(t,s,a,n.intersect,i,o)},x(t,e,n,i){const s=fc(e,t);return FP(t,s,"x",n.intersect,i)},y(t,e,n,i){const s=fc(e,t);return FP(t,s,"y",n.intersect,i)}}};const p5=["left","top","right","bottom"];function hf(t,e){return t.filter(n=>n.pos===e)}function IP(t,e){return t.filter(n=>p5.indexOf(n.pos)===-1&&n.box.axis===e)}function ff(t,e){return t.sort((n,i)=>{const s=e?i:n,a=e?n:i;return s.weight===a.weight?s.index-a.index:s.weight-a.weight})}function Cde(t){const e=[];let n,i,s,a,o,r;for(n=0,i=(t||[]).length;n<i;++n)s=t[n],{position:a,options:{stack:o,stackWeight:r=1}}=s,e.push({index:n,box:s,pos:a,horizontal:s.isHorizontal(),weight:s.weight,stack:o&&a+o,stackWeight:r});return e}function Ade(t){const e={};for(const n of t){const{stack:i,pos:s,stackWeight:a}=n;if(!i||!p5.includes(s))continue;const o=e[i]||(e[i]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=a}return e}function Nde(t,e){const n=Ade(t),{vBoxMaxWidth:i,hBoxMaxHeight:s}=e;let a,o,r;for(a=0,o=t.length;a<o;++a){r=t[a];const{fullSize:c}=r.box,d=n[r.stack],f=d&&r.stackWeight/d.weight;r.horizontal?(r.width=f?f*i:c&&e.availableWidth,r.height=s):(r.width=i,r.height=f?f*s:c&&e.availableHeight)}return n}function Tde(t){const e=Cde(t),n=ff(e.filter(d=>d.box.fullSize),!0),i=ff(hf(e,"left"),!0),s=ff(hf(e,"right")),a=ff(hf(e,"top"),!0),o=ff(hf(e,"bottom")),r=IP(e,"x"),c=IP(e,"y");return{fullSize:n,leftAndTop:i.concat(a),rightAndBottom:s.concat(c).concat(o).concat(r),chartArea:hf(e,"chartArea"),vertical:i.concat(s).concat(c),horizontal:a.concat(o).concat(r)}}function UP(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function g5(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Mde(t,e,n,i){const{pos:s,box:a}=n,o=t.maxPadding;if(!hn(s)){n.size&&(t[s]-=n.size);const m=i[n.stack]||{size:0,count:1};m.size=Math.max(m.size,n.horizontal?a.height:a.width),n.size=m.size/m.count,t[s]+=n.size}a.getPadding&&g5(o,a.getPadding());const r=Math.max(0,e.outerWidth-UP(o,t,"left","right")),c=Math.max(0,e.outerHeight-UP(o,t,"top","bottom")),d=r!==t.w,f=c!==t.h;return t.w=r,t.h=c,n.horizontal?{same:d,other:f}:{same:f,other:d}}function Lde(t){const e=t.maxPadding;function n(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function Ode(t,e){const n=e.maxPadding;function i(s){const a={left:0,top:0,right:0,bottom:0};return s.forEach(o=>{a[o]=Math.max(e[o],n[o])}),a}return i(t?["left","right"]:["top","bottom"])}function Of(t,e,n,i){const s=[];let a,o,r,c,d,f;for(a=0,o=t.length,d=0;a<o;++a){r=t[a],c=r.box,c.update(r.width||e.w,r.height||e.h,Ode(r.horizontal,e));const{same:m,other:g}=Mde(e,n,r,i);d|=m&&s.length,f=f||g,c.fullSize||s.push(r)}return d&&Of(s,e,n,i)||f}function f_(t,e,n,i,s){t.top=n,t.left=e,t.right=e+i,t.bottom=n+s,t.width=i,t.height=s}function BP(t,e,n,i){const s=n.padding;let{x:a,y:o}=e;for(const r of t){const c=r.box,d=i[r.stack]||{placed:0,weight:1},f=r.stackWeight/d.weight||1;if(r.horizontal){const m=e.w*f,g=d.size||c.height;V0(d.start)&&(o=d.start),c.fullSize?f_(c,s.left,o,n.outerWidth-s.right-s.left,g):f_(c,e.left+d.placed,o,m,g),d.start=o,d.placed+=m,o=c.bottom}else{const m=e.h*f,g=d.size||c.width;V0(d.start)&&(a=d.start),c.fullSize?f_(c,a,s.top,g,n.outerHeight-s.bottom-s.top):f_(c,a,e.top+d.placed,g,m),d.start=a,d.placed+=m,a=c.right}}e.x=a,e.y=o}var ba={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(n){e.draw(n)}}]},t.boxes.push(e)},removeBox(t,e){const n=t.boxes?t.boxes.indexOf(e):-1;n!==-1&&t.boxes.splice(n,1)},configure(t,e,n){e.fullSize=n.fullSize,e.position=n.position,e.weight=n.weight},update(t,e,n,i){if(!t)return;const s=Ma(t.options.layout.padding),a=Math.max(e-s.width,0),o=Math.max(n-s.height,0),r=Tde(t.boxes),c=r.vertical,d=r.horizontal;Cn(t.boxes,v=>{typeof v.beforeLayout=="function"&&v.beforeLayout()});const f=c.reduce((v,x)=>x.box.options&&x.box.options.display===!1?v:v+1,0)||1,m=Object.freeze({outerWidth:e,outerHeight:n,padding:s,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/f,hBoxMaxHeight:o/2}),g=Object.assign({},s);g5(g,Ma(i));const y=Object.assign({maxPadding:g,w:a,h:o,x:s.left,y:s.top},s),b=Nde(c.concat(d),m);Of(r.fullSize,y,m,b),Of(c,y,m,b),Of(d,y,m,b)&&Of(c,y,m,b),Lde(y),BP(r.leftAndTop,y,m,b),y.x+=y.w,y.y+=y.h,BP(r.rightAndBottom,y,m,b),t.chartArea={left:y.left,top:y.top,right:y.left+y.w,bottom:y.top+y.h,height:y.h,width:y.w},Cn(r.chartArea,v=>{const x=v.box;Object.assign(x,t.chartArea),x.update(y.w,y.h,{left:0,top:0,right:0,bottom:0})})}};class _5{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,s){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(e){return!0}updateConfig(e){}}class Pde extends _5{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const d0="$chartjs",Ede={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},zP=t=>t===null||t==="";function jde(t,e){const n=t.style,i=t.getAttribute("height"),s=t.getAttribute("width");if(t[d0]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",zP(s)){const a=NP(t,"width");a!==void 0&&(t.width=a)}if(zP(i))if(t.style.height==="")t.height=t.width/(e||2);else{const a=NP(t,"height");a!==void 0&&(t.height=a)}return t}const y5=Gue?{passive:!0}:!1;function Rde(t,e,n){t&&t.addEventListener(e,n,y5)}function Dde(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,y5)}function Fde(t,e){const n=Ede[t.type]||t.type,{x:i,y:s}=fc(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:s!==void 0?s:null}}function $0(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function Ide(t,e,n){const i=t.canvas,s=new MutationObserver(a=>{let o=!1;for(const r of a)o=o||$0(r.addedNodes,i),o=o&&!$0(r.removedNodes,i);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function Ude(t,e,n){const i=t.canvas,s=new MutationObserver(a=>{let o=!1;for(const r of a)o=o||$0(r.removedNodes,i),o=o&&!$0(r.addedNodes,i);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const xm=new Map;let qP=0;function b5(){const t=window.devicePixelRatio;t!==qP&&(qP=t,xm.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function Bde(t,e){xm.size||window.addEventListener("resize",b5),xm.set(t,e)}function zde(t){xm.delete(t),xm.size||window.removeEventListener("resize",b5)}function qde(t,e,n){const i=t.canvas,s=i&&kk(i);if(!s)return;const a=YD((r,c)=>{const d=s.clientWidth;n(r,c),d<s.clientWidth&&n()},window),o=new ResizeObserver(r=>{const c=r[0],d=c.contentRect.width,f=c.contentRect.height;d===0&&f===0||a(d,f)});return o.observe(s),Bde(t,a),o}function L1(t,e,n){n&&n.disconnect(),e==="resize"&&zde(t)}function Kde(t,e,n){const i=t.canvas,s=YD(a=>{t.ctx!==null&&n(Fde(a,t))},t);return Rde(i,e,s),s}class Hde extends _5{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(jde(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[d0])return!1;const i=n[d0].initial;["height","width"].forEach(a=>{const o=i[a];Dn(o)?n.removeAttribute(a):n.setAttribute(a,o)});const s=i.style||{};return Object.keys(s).forEach(a=>{n.style[a]=s[a]}),n.width=n.width,delete n[d0],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const s=e.$proxies||(e.$proxies={}),o={attach:Ide,detach:Ude,resize:qde}[n]||Kde;s[n]=o(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),s=i[n];if(!s)return;({attach:L1,detach:L1,resize:L1}[n]||Dde)(e,n,s),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,s){return Wue(e,n,i,s)}isAttached(e){const n=e&&kk(e);return!!(n&&n.isConnected)}}function Vde(t){return!wk()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Pde:Hde}class Mr{constructor(){Pt(this,"x");Pt(this,"y");Pt(this,"active",!1);Pt(this,"options");Pt(this,"$animations")}tooltipPosition(e){const{x:n,y:i}=this.getProps(["x","y"],e);return{x:n,y:i}}hasValue(){return ym(this.x)&&ym(this.y)}getProps(e,n){const i=this.$animations;if(!n||!i)return this;const s={};return e.forEach(a=>{s[a]=i[a]&&i[a].active()?i[a]._to:this[a]}),s}}Pt(Mr,"defaults",{}),Pt(Mr,"defaultRoutes");function Wde(t,e){const n=t.options.ticks,i=Gde(t),s=Math.min(n.maxTicksLimit||i,i),a=n.major.enabled?Xde(e):[],o=a.length,r=a[0],c=a[o-1],d=[];if(o>s)return Qde(e,d,a,o/s),d;const f=$de(a,e,s);if(o>0){let m,g;const y=o>1?Math.round((c-r)/(o-1)):null;for(m_(e,d,f,Dn(y)?0:r-y,r),m=0,g=o-1;m<g;m++)m_(e,d,f,a[m],a[m+1]);return m_(e,d,f,c,Dn(y)?e.length:c+y),d}return m_(e,d,f),d}function Gde(t){const e=t.options.offset,n=t._tickSize(),i=t._length/n+(e?0:1),s=t._maxLength/n;return Math.floor(Math.min(i,s))}function $de(t,e,n){const i=Yde(t),s=e.length/n;if(!i)return Math.max(s,1);const a=qce(i);for(let o=0,r=a.length-1;o<r;o++){const c=a[o];if(c>s)return c}return Math.max(s,1)}function Xde(t){const e=[];let n,i;for(n=0,i=t.length;n<i;n++)t[n].major&&e.push(n);return e}function Qde(t,e,n,i){let s=0,a=n[0],o;for(i=Math.ceil(i),o=0;o<t.length;o++)o===a&&(e.push(t[o]),s++,a=n[s*i])}function m_(t,e,n,i,s){const a=cn(i,0),o=Math.min(cn(s,t.length),t.length);let r=0,c,d,f;for(n=Math.ceil(n),s&&(c=s-i,n=c/Math.floor(c/n)),f=a;f<0;)r++,f=Math.round(a+r*n);for(d=Math.max(a,0);d<o;d++)d===f&&(e.push(t[d]),r++,f=Math.round(a+r*n))}function Yde(t){const e=t.length;let n,i;if(e<2)return!1;for(i=t[0],n=1;n<e;++n)if(t[n]-t[n-1]!==i)return!1;return i}const Jde=t=>t==="left"?"right":t==="right"?"left":t,KP=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,HP=(t,e)=>Math.min(e||t,t);function VP(t,e){const n=[],i=t.length/e,s=t.length;let a=0;for(;a<s;a+=i)n.push(t[Math.floor(a)]);return n}function Zde(t,e,n){const i=t.ticks.length,s=Math.min(e,i-1),a=t._startPixel,o=t._endPixel,r=1e-6;let c=t.getPixelForTick(s),d;if(!(n&&(i===1?d=Math.max(c-a,o-c):e===0?d=(t.getPixelForTick(1)-c)/2:d=(c-t.getPixelForTick(s-1))/2,c+=s<e?d:-d,c<a-r||c>o+r)))return c}function ehe(t,e){Cn(t,n=>{const i=n.gc,s=i.length/2;let a;if(s>e){for(a=0;a<s;++a)delete n.data[i[a]];i.splice(0,s)}})}function mf(t){return t.drawTicks?t.tickLength:0}function WP(t,e){if(!t.display)return 0;const n=as(t.font,e),i=Ma(t.padding);return(Ni(t.text)?t.text.length:1)*n.lineHeight+i.height}function the(t,e){return Yc(t,{scale:e,type:"scale"})}function nhe(t,e,n){return Yc(t,{tick:n,index:e,type:"tick"})}function ihe(t,e,n){let i=yk(t);return(n&&e!=="right"||!n&&e==="right")&&(i=Jde(i)),i}function she(t,e,n,i){const{top:s,left:a,bottom:o,right:r,chart:c}=t,{chartArea:d,scales:f}=c;let m=0,g,y,b;const v=o-s,x=r-a;if(t.isHorizontal()){if(y=Ji(i,a,r),hn(n)){const A=Object.keys(n)[0],k=n[A];b=f[A].getPixelForValue(k)+v-e}else n==="center"?b=(d.bottom+d.top)/2+v-e:b=KP(t,n,e);g=r-a}else{if(hn(n)){const A=Object.keys(n)[0],k=n[A];y=f[A].getPixelForValue(k)-x+e}else n==="center"?y=(d.left+d.right)/2-x+e:y=KP(t,n,e);b=Ji(i,o,s),m=n==="left"?-Va:Va}return{titleX:y,titleY:b,maxWidth:g,rotation:m}}class Zd extends Mr{constructor(e){super(),this.id=e.id,this.type=e.type,this.options=void 0,this.ctx=e.ctx,this.chart=e.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(e){this.options=e.setContext(this.getContext()),this.axis=e.axis,this._userMin=this.parse(e.min),this._userMax=this.parse(e.max),this._suggestedMin=this.parse(e.suggestedMin),this._suggestedMax=this.parse(e.suggestedMax)}parse(e,n){return e}getUserBounds(){let{_userMin:e,_userMax:n,_suggestedMin:i,_suggestedMax:s}=this;return e=ro(e,Number.POSITIVE_INFINITY),n=ro(n,Number.NEGATIVE_INFINITY),i=ro(i,Number.POSITIVE_INFINITY),s=ro(s,Number.NEGATIVE_INFINITY),{min:ro(e,i),max:ro(n,s),minDefined:ls(e),maxDefined:ls(n)}}getMinMax(e){let{min:n,max:i,minDefined:s,maxDefined:a}=this.getUserBounds(),o;if(s&&a)return{min:n,max:i};const r=this.getMatchingVisibleMetas();for(let c=0,d=r.length;c<d;++c)o=r[c].controller.getMinMax(this,e),s||(n=Math.min(n,o.min)),a||(i=Math.max(i,o.max));return n=a&&n>i?i:n,i=s&&n>i?n:i,{min:ro(n,ro(i,n)),max:ro(i,ro(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Bn(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:s,grace:a,ticks:o}=this.options,r=o.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=kue(this,a,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const c=r<this.ticks.length;this._convertTicksToLabels(c?VP(this.ticks,r):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||o.source==="auto")&&(this.ticks=Wde(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),c&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let e=this.options.reverse,n,i;this.isHorizontal()?(n=this.left,i=this.right):(n=this.top,i=this.bottom,e=!e),this._startPixel=n,this._endPixel=i,this._reversePixels=e,this._length=i-n,this._alignToPixels=this.options.alignToPixels}afterUpdate(){Bn(this.options.afterUpdate,[this])}beforeSetDimensions(){Bn(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){Bn(this.options.afterSetDimensions,[this])}_callHooks(e){this.chart.notifyPlugins(e,this.getContext()),Bn(this.options[e],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){Bn(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(e){const n=this.options.ticks;let i,s,a;for(i=0,s=e.length;i<s;i++)a=e[i],a.label=Bn(n.callback,[a.value,i,e],this)}afterTickToLabelConversion(){Bn(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){Bn(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const e=this.options,n=e.ticks,i=HP(this.ticks.length,e.ticks.maxTicksLimit),s=n.minRotation||0,a=n.maxRotation;let o=s,r,c,d;if(!this._isVisible()||!n.display||s>=a||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const f=this._getLabelSizes(),m=f.widest.width,g=f.highest.height,y=ya(this.chart.width-m,0,this.maxWidth);r=e.offset?this.maxWidth/i:y/(i-1),m+6>r&&(r=y/(i-(e.offset?.5:1)),c=this.maxHeight-mf(e.grid)-n.padding-WP(e.title,this.chart.options.font),d=Math.sqrt(m*m+g*g),o=Wce(Math.min(Math.asin(ya((f.highest.height+6)/r,-1,1)),Math.asin(ya(c/d,-1,1))-Math.asin(ya(g/d,-1,1)))),o=Math.max(s,Math.min(a,o))),this.labelRotation=o}afterCalculateLabelRotation(){Bn(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Bn(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:a}}=this,o=this._isVisible(),r=this.isHorizontal();if(o){const c=WP(s,n.options.font);if(r?(e.width=this.maxWidth,e.height=mf(a)+c):(e.height=this.maxHeight,e.width=mf(a)+c),i.display&&this.ticks.length){const{first:d,last:f,widest:m,highest:g}=this._getLabelSizes(),y=i.padding*2,b=kc(this.labelRotation),v=Math.cos(b),x=Math.sin(b);if(r){const A=i.mirror?0:x*m.width+v*g.height;e.height=Math.min(this.maxHeight,e.height+A+y)}else{const A=i.mirror?0:v*m.width+x*g.height;e.width=Math.min(this.maxWidth,e.width+A+y)}this._calculatePadding(d,f,x,v)}}this._handleMargins(),r?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,s){const{ticks:{align:a,padding:o},position:r}=this.options,c=this.labelRotation!==0,d=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const f=this.getPixelForTick(0)-this.left,m=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,y=0;c?d?(g=s*e.width,y=i*n.height):(g=i*e.height,y=s*n.width):a==="start"?y=n.width:a==="end"?g=e.width:a!=="inner"&&(g=e.width/2,y=n.width/2),this.paddingLeft=Math.max((g-f+o)*this.width/(this.width-f),0),this.paddingRight=Math.max((y-m+o)*this.width/(this.width-m),0)}else{let f=n.height/2,m=e.height/2;a==="start"?(f=0,m=e.height):a==="end"&&(f=n.height,m=0),this.paddingTop=f+o,this.paddingBottom=m+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Bn(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n<i;n++)Dn(e[n].label)&&(e.splice(n,1),i--,n--);this.afterTickToLabelConversion()}_getLabelSizes(){let e=this._labelSizes;if(!e){const n=this.options.ticks.sampleSize;let i=this.ticks;n<i.length&&(i=VP(i,n)),this._labelSizes=e=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return e}_computeLabelSizes(e,n,i){const{ctx:s,_longestTextCache:a}=this,o=[],r=[],c=Math.floor(n/HP(n,i));let d=0,f=0,m,g,y,b,v,x,A,k,T,L,M;for(m=0;m<n;m+=c){if(b=e[m].label,v=this._resolveTickFontOptions(m),s.font=x=v.string,A=a[x]=a[x]||{data:{},gc:[]},k=v.lineHeight,T=L=0,!Dn(b)&&!Ni(b))T=SP(s,A.data,A.gc,T,b),L=k;else if(Ni(b))for(g=0,y=b.length;g<y;++g)M=b[g],!Dn(M)&&!Ni(M)&&(T=SP(s,A.data,A.gc,T,M),L+=k);o.push(T),r.push(L),d=Math.max(T,d),f=Math.max(L,f)}ehe(a,n);const O=o.indexOf(d),N=r.indexOf(f),P=E=>({width:o[E]||0,height:r[E]||0});return{first:P(0),last:P(n-1),widest:P(O),highest:P(N),widths:o,heights:r}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return Xce(this._alignToPixels?rc(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&e<n.length){const i=n[e];return i.$context||(i.$context=nhe(this.getContext(),e,i))}return this.$context||(this.$context=the(this.chart.getContext(),this))}_tickSize(){const e=this.options.ticks,n=kc(this.labelRotation),i=Math.abs(Math.cos(n)),s=Math.abs(Math.sin(n)),a=this._getLabelSizes(),o=e.autoSkipPadding||0,r=a?a.widest.width+o:0,c=a?a.highest.height+o:0;return this.isHorizontal()?c*i>r*s?r/i:c/s:c*s<r*i?c/i:r/s}_isVisible(){const e=this.options.display;return e!=="auto"?!!e:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(e){const n=this.axis,i=this.chart,s=this.options,{grid:a,position:o,border:r}=s,c=a.offset,d=this.isHorizontal(),m=this.ticks.length+(c?1:0),g=mf(a),y=[],b=r.setContext(this.getContext()),v=b.display?b.width:0,x=v/2,A=function(I){return rc(i,I,v)};let k,T,L,M,O,N,P,E,R,z,D,Q;if(o==="top")k=A(this.bottom),N=this.bottom-g,E=k-x,z=A(e.top)+x,Q=e.bottom;else if(o==="bottom")k=A(this.top),z=e.top,Q=A(e.bottom)-x,N=k+x,E=this.top+g;else if(o==="left")k=A(this.right),O=this.right-g,P=k-x,R=A(e.left)+x,D=e.right;else if(o==="right")k=A(this.left),R=e.left,D=A(e.right)-x,O=k+x,P=this.left+g;else if(n==="x"){if(o==="center")k=A((e.top+e.bottom)/2+.5);else if(hn(o)){const I=Object.keys(o)[0],V=o[I];k=A(this.chart.scales[I].getPixelForValue(V))}z=e.top,Q=e.bottom,N=k+x,E=N+g}else if(n==="y"){if(o==="center")k=A((e.left+e.right)/2);else if(hn(o)){const I=Object.keys(o)[0],V=o[I];k=A(this.chart.scales[I].getPixelForValue(V))}O=k-x,P=O-g,R=e.left,D=e.right}const G=cn(s.ticks.maxTicksLimit,m),B=Math.max(1,Math.ceil(m/G));for(T=0;T<m;T+=B){const I=this.getContext(T),V=a.setContext(I),K=r.setContext(I),$=V.lineWidth,X=V.color,U=K.dash||[],q=K.dashOffset,Y=V.tickWidth,oe=V.tickColor,se=V.tickBorderDash||[],F=V.tickBorderDashOffset;L=Zde(this,T,c),L!==void 0&&(M=rc(i,L,$),d?O=P=R=D=M:N=E=z=Q=M,y.push({tx1:O,ty1:N,tx2:P,ty2:E,x1:R,y1:z,x2:D,y2:Q,width:$,color:X,borderDash:U,borderDashOffset:q,tickWidth:Y,tickColor:oe,tickBorderDash:se,tickBorderDashOffset:F}))}return this._ticksLength=m,this._borderValue=k,y}_computeLabelItems(e){const n=this.axis,i=this.options,{position:s,ticks:a}=i,o=this.isHorizontal(),r=this.ticks,{align:c,crossAlign:d,padding:f,mirror:m}=a,g=mf(i.grid),y=g+f,b=m?-f:y,v=-kc(this.labelRotation),x=[];let A,k,T,L,M,O,N,P,E,R,z,D,Q="middle";if(s==="top")O=this.bottom-b,N=this._getXAxisLabelAlignment();else if(s==="bottom")O=this.top+b,N=this._getXAxisLabelAlignment();else if(s==="left"){const B=this._getYAxisLabelAlignment(g);N=B.textAlign,M=B.x}else if(s==="right"){const B=this._getYAxisLabelAlignment(g);N=B.textAlign,M=B.x}else if(n==="x"){if(s==="center")O=(e.top+e.bottom)/2+y;else if(hn(s)){const B=Object.keys(s)[0],I=s[B];O=this.chart.scales[B].getPixelForValue(I)+y}N=this._getXAxisLabelAlignment()}else if(n==="y"){if(s==="center")M=(e.left+e.right)/2-y;else if(hn(s)){const B=Object.keys(s)[0],I=s[B];M=this.chart.scales[B].getPixelForValue(I)}N=this._getYAxisLabelAlignment(g).textAlign}n==="y"&&(c==="start"?Q="top":c==="end"&&(Q="bottom"));const G=this._getLabelSizes();for(A=0,k=r.length;A<k;++A){T=r[A],L=T.label;const B=a.setContext(this.getContext(A));P=this.getPixelForTick(A)+a.labelOffset,E=this._resolveTickFontOptions(A),R=E.lineHeight,z=Ni(L)?L.length:1;const I=z/2,V=B.color,K=B.textStrokeColor,$=B.textStrokeWidth;let X=N;o?(M=P,N==="inner"&&(A===k-1?X=this.options.reverse?"left":"right":A===0?X=this.options.reverse?"right":"left":X="center"),s==="top"?d==="near"||v!==0?D=-z*R+R/2:d==="center"?D=-G.highest.height/2-I*R+R:D=-G.highest.height+R/2:d==="near"||v!==0?D=R/2:d==="center"?D=G.highest.height/2-I*R:D=G.highest.height-z*R,m&&(D*=-1),v!==0&&!B.showLabelBackdrop&&(M+=R/2*Math.sin(v))):(O=P,D=(1-z)*R/2);let U;if(B.showLabelBackdrop){const q=Ma(B.backdropPadding),Y=G.heights[A],oe=G.widths[A];let se=D-q.top,F=0-q.left;switch(Q){case"middle":se-=Y/2;break;case"bottom":se-=Y;break}switch(N){case"center":F-=oe/2;break;case"right":F-=oe;break;case"inner":A===k-1?F-=oe:A>0&&(F-=oe/2);break}U={left:F,top:se,width:oe+q.width,height:Y+q.height,color:B.backdropColor}}x.push({label:L,font:E,textOffset:D,options:{rotation:v,color:V,strokeColor:K,strokeWidth:$,textAlign:X,textBaseline:Q,translation:[M,O],backdrop:U}})}return x}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-kc(this.labelRotation))return e==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:s,padding:a}}=this.options,o=this._getLabelSizes(),r=e+a,c=o.widest.width;let d,f;return n==="left"?s?(f=this.right+a,i==="near"?d="left":i==="center"?(d="center",f+=c/2):(d="right",f+=c)):(f=this.right-r,i==="near"?d="right":i==="center"?(d="center",f-=c/2):(d="left",f=this.left)):n==="right"?s?(f=this.left+a,i==="near"?d="right":i==="center"?(d="center",f-=c/2):(d="left",f-=c)):(f=this.left+r,i==="near"?d="left":i==="center"?(d="center",f+=c/2):(d="right",f=this.right)):d="right",{textAlign:d,x:f}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:s,width:a,height:o}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,s,a,o),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(a=>a.value===e);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let a,o;const r=(c,d,f)=>{!f.width||!f.color||(i.save(),i.lineWidth=f.width,i.strokeStyle=f.color,i.setLineDash(f.borderDash||[]),i.lineDashOffset=f.borderDashOffset,i.beginPath(),i.moveTo(c.x,c.y),i.lineTo(d.x,d.y),i.stroke(),i.restore())};if(n.display)for(a=0,o=s.length;a<o;++a){const c=s[a];n.drawOnChartArea&&r({x:c.x1,y:c.y1},{x:c.x2,y:c.y2},c),n.drawTicks&&r({x:c.tx1,y:c.ty1},{x:c.tx2,y:c.ty2},{color:c.tickColor,width:c.tickWidth,borderDash:c.tickBorderDash,borderDashOffset:c.tickBorderDashOffset})}}drawBorder(){const{chart:e,ctx:n,options:{border:i,grid:s}}=this,a=i.setContext(this.getContext()),o=i.display?a.width:0;if(!o)return;const r=s.setContext(this.getContext(0)).lineWidth,c=this._borderValue;let d,f,m,g;this.isHorizontal()?(d=rc(e,this.left,o)-o/2,f=rc(e,this.right,r)+r/2,m=g=c):(m=rc(e,this.top,o)-o/2,g=rc(e,this.bottom,r)+r/2,d=f=c),n.save(),n.lineWidth=a.width,n.strokeStyle=a.color,n.beginPath(),n.moveTo(d,m),n.lineTo(f,g),n.stroke(),n.restore()}drawLabels(e){if(!this.options.ticks.display)return;const i=this.ctx,s=this._computeLabelArea();s&&Xy(i,s);const a=this.getLabelItems(e);for(const o of a){const r=o.options,c=o.font,d=o.label,f=o.textOffset;vm(i,d,0,f,c,r)}s&&Qy(i)}drawTitle(){const{ctx:e,options:{position:n,title:i,reverse:s}}=this;if(!i.display)return;const a=as(i.font),o=Ma(i.padding),r=i.align;let c=a.lineHeight/2;n==="bottom"||n==="center"||hn(n)?(c+=o.bottom,Ni(i.text)&&(c+=a.lineHeight*(i.text.length-1))):c+=o.top;const{titleX:d,titleY:f,maxWidth:m,rotation:g}=she(this,c,n,r);vm(e,i.text,0,0,a,{color:i.color,maxWidth:m,rotation:g,textAlign:ihe(r,n,s),textBaseline:"middle",translation:[d,f]})}draw(e){this._isVisible()&&(this.drawBackground(),this.drawGrid(e),this.drawBorder(),this.drawTitle(),this.drawLabels(e))}_layers(){const e=this.options,n=e.ticks&&e.ticks.z||0,i=cn(e.grid&&e.grid.z,-1),s=cn(e.border&&e.border.z,0);return!this._isVisible()||this.draw!==Zd.prototype.draw?[{z:n,draw:a=>{this.draw(a)}}]:[{z:i,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:a=>{this.drawLabels(a)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let a,o;for(a=0,o=n.length;a<o;++a){const r=n[a];r[i]===this.id&&(!e||r.type===e)&&s.push(r)}return s}_resolveTickFontOptions(e){const n=this.options.ticks.setContext(this.getContext(e));return as(n.font)}_maxDigits(){const e=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/e}}class p_{constructor(e,n,i){this.type=e,this.scope=n,this.override=i,this.items=Object.create(null)}isForType(e){return Object.prototype.isPrototypeOf.call(this.type.prototype,e.prototype)}register(e){const n=Object.getPrototypeOf(e);let i;rhe(n)&&(i=this.register(n));const s=this.items,a=e.id,o=this.scope+"."+a;if(!a)throw new Error("class does not have id: "+e);return a in s||(s[a]=e,ahe(e,o,i),this.override&&oi.override(e.id,e.overrides)),o}get(e){return this.items[e]}unregister(e){const n=this.items,i=e.id,s=this.scope;i in n&&delete n[i],s&&i in oi[s]&&(delete oi[s][i],this.override&&delete Bc[i])}}function ahe(t,e,n){const i=_m(Object.create(null),[n?oi.get(n):{},oi.get(e),t.defaults]);oi.set(e,i),t.defaultRoutes&&ohe(e,t.defaultRoutes),t.descriptors&&oi.describe(e,t.descriptors)}function ohe(t,e){Object.keys(e).forEach(n=>{const i=n.split("."),s=i.pop(),a=[t].concat(i).join("."),o=e[n].split("."),r=o.pop(),c=o.join(".");oi.route(a,s,c,r)})}function rhe(t){return"id"in t&&"defaults"in t}class lhe{constructor(){this.controllers=new p_(Jf,"datasets",!0),this.elements=new p_(Mr,"elements"),this.plugins=new p_(Object,"plugins"),this.scales=new p_(Zd,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(s=>{const a=i||this._getRegistryForType(s);i||a.isForType(s)||a===this.plugins&&s.id?this._exec(e,a,s):Cn(s,o=>{const r=i||this._getRegistryForType(o);this._exec(e,r,o)})})}_exec(e,n,i){const s=gk(e);Bn(i["before"+s],[],i),n[e](i),Bn(i["after"+s],[],i)}_getRegistryForType(e){for(let n=0;n<this._typedRegistries.length;n++){const i=this._typedRegistries[n];if(i.isForType(e))return i}return this.plugins}_get(e,n,i){const s=n.get(e);if(s===void 0)throw new Error('"'+e+'" is not a registered '+i+".");return s}}var _o=new lhe;class che{constructor(){this._init=void 0}notify(e,n,i,s){if(n==="beforeInit"&&(this._init=this._createDescriptors(e,!0),this._notify(this._init,e,"install")),this._init===void 0)return;const a=s?this._descriptors(e).filter(s):this._descriptors(e),o=this._notify(a,e,n,i);return n==="afterDestroy"&&(this._notify(a,e,"stop"),this._notify(this._init,e,"uninstall"),this._init=void 0),o}_notify(e,n,i,s){s=s||{};for(const a of e){const o=a.plugin,r=o[i],c=[n,s,a.options];if(Bn(r,c,o)===!1&&s.cancelable)return!1}return!0}invalidate(){Dn(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(e){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(e);return this._notifyStateChanges(e),n}_createDescriptors(e,n){const i=e&&e.config,s=cn(i.options&&i.options.plugins,{}),a=uhe(i);return s===!1&&!n?[]:hhe(e,a,s,n)}_notifyStateChanges(e){const n=this._oldCache||[],i=this._cache,s=(a,o)=>a.filter(r=>!o.some(c=>r.plugin.id===c.plugin.id));this._notify(s(n,i),e,"stop"),this._notify(s(i,n),e,"start")}}function uhe(t){const e={},n=[],i=Object.keys(_o.plugins.items);for(let a=0;a<i.length;a++)n.push(_o.getPlugin(i[a]));const s=t.plugins||[];for(let a=0;a<s.length;a++){const o=s[a];n.indexOf(o)===-1&&(n.push(o),e[o.id]=!0)}return{plugins:n,localIds:e}}function dhe(t,e){return!e&&t===!1?null:t===!0?{}:t}function hhe(t,{plugins:e,localIds:n},i,s){const a=[],o=t.getContext();for(const r of e){const c=r.id,d=dhe(i[c],s);d!==null&&a.push({plugin:r,options:fhe(t.config,{plugin:r,local:n[c]},d,o)})}return a}function fhe(t,{plugin:e,local:n},i,s){const a=t.pluginScopeKeys(e),o=t.getOptionScopes(i,a);return n&&e.defaults&&o.push(e.defaults),t.createResolver(o,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function uS(t,e){const n=oi.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||n.indexAxis||"x"}function mhe(t,e){let n=t;return t==="_index_"?n=e:t==="_value_"&&(n=e==="x"?"y":"x"),n}function phe(t,e){return t===e?"_index_":"_value_"}function GP(t){if(t==="x"||t==="y"||t==="r")return t}function ghe(t){if(t==="top"||t==="bottom")return"x";if(t==="left"||t==="right")return"y"}function dS(t,...e){if(GP(t))return t;for(const n of e){const i=n.axis||ghe(n.position)||t.length>1&&GP(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function $P(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function _he(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return $P(t,"x",n[0])||$P(t,"y",n[0])}return{}}function yhe(t,e){const n=Bc[t.type]||{scales:{}},i=e.scales||{},s=uS(t.type,e),a=Object.create(null);return Object.keys(i).forEach(o=>{const r=i[o];if(!hn(r))return console.error(`Invalid scale configuration for scale: ${o}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${o}`);const c=dS(o,r,_he(o,t),oi.scales[r.type]),d=phe(c,s),f=n.scales||{};a[o]=Gf(Object.create(null),[{axis:c},r,f[c],f[d]])}),t.data.datasets.forEach(o=>{const r=o.type||t.type,c=o.indexAxis||uS(r,e),f=(Bc[r]||{}).scales||{};Object.keys(f).forEach(m=>{const g=mhe(m,c),y=o[g+"AxisID"]||g;a[y]=a[y]||Object.create(null),Gf(a[y],[{axis:g},i[y],f[m]])})}),Object.keys(a).forEach(o=>{const r=a[o];Gf(r,[oi.scales[r.type],oi.scale])}),a}function v5(t){const e=t.options||(t.options={});e.plugins=cn(e.plugins,{}),e.scales=yhe(t,e)}function x5(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function bhe(t){return t=t||{},t.data=x5(t.data),v5(t),t}const XP=new Map,S5=new Set;function g_(t,e){let n=XP.get(t);return n||(n=e(),XP.set(t,n),S5.add(n)),n}const pf=(t,e,n)=>{const i=H0(e,n);i!==void 0&&t.add(i)};class vhe{constructor(e){this._config=bhe(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=x5(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),v5(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return g_(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return g_(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return g_(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return g_(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let s=i.get(e);return(!s||n)&&(s=new Map,i.set(e,s)),s}getOptionScopes(e,n,i){const{options:s,type:a}=this,o=this._cachedScopes(e,i),r=o.get(n);if(r)return r;const c=new Set;n.forEach(f=>{e&&(c.add(e),f.forEach(m=>pf(c,e,m))),f.forEach(m=>pf(c,s,m)),f.forEach(m=>pf(c,Bc[a]||{},m)),f.forEach(m=>pf(c,oi,m)),f.forEach(m=>pf(c,rS,m))});const d=Array.from(c);return d.length===0&&d.push(Object.create(null)),S5.has(n)&&o.set(n,d),d}chartOptionScopes(){const{options:e,type:n}=this;return[e,Bc[n]||{},oi.datasets[n]||{},{type:n},oi,rS]}resolveNamedOptions(e,n,i,s=[""]){const a={$shared:!0},{resolver:o,subPrefixes:r}=QP(this._resolverCache,e,s);let c=o;if(She(o,n)){a.$shared=!1,i=Ol(i)?i():i;const d=this.createResolver(e,i,r);c=Md(o,i,d)}for(const d of n)a[d]=c[d];return a}createResolver(e,n,i=[""],s){const{resolver:a}=QP(this._resolverCache,e,i);return hn(n)?Md(a,n,void 0,s):a}}function QP(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const s=n.join();let a=i.get(s);return a||(a={resolver:vk(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(s,a)),a}const xhe=t=>hn(t)&&Object.getOwnPropertyNames(t).some(e=>Ol(t[e]));function She(t,e){const{isScriptable:n,isIndexable:i}=n5(t);for(const s of e){const a=n(s),o=i(s),r=(o||a)&&t[s];if(a&&(Ol(r)||xhe(r))||o&&Ni(r))return!0}return!1}var whe="4.5.1";const khe=["top","bottom","left","right","chartArea"];function YP(t,e){return t==="top"||t==="bottom"||khe.indexOf(t)===-1&&e==="x"}function JP(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function ZP(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),Bn(n&&n.onComplete,[t],e)}function Che(t){const e=t.chart,n=e.options.animation;Bn(n&&n.onProgress,[t],e)}function w5(t){return wk()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const h0={},eE=t=>{const e=w5(t);return Object.values(h0).filter(n=>n.canvas===e).pop()};function Ahe(t,e,n){const i=Object.keys(t);for(const s of i){const a=+s;if(a>=e){const o=t[s];delete t[s],(n>0||a>e)&&(t[a+n]=o)}}}function Nhe(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}var ul;let Zy=(ul=class{static register(...e){_o.add(...e),tE()}static unregister(...e){_o.remove(...e),tE()}constructor(e,n){const i=this.config=new vhe(n),s=w5(e),a=eE(s);if(a)throw new Error("Canvas is already in use. Chart with ID '"+a.id+"' must be destroyed before the canvas with ID '"+a.canvas.id+"' can be reused.");const o=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Vde(s)),this.platform.updateConfig(i);const r=this.platform.acquireContext(s,o.aspectRatio),c=r&&r.canvas,d=c&&c.height,f=c&&c.width;if(this.id=Ece(),this.ctx=r,this.canvas=c,this.width=f,this.height=d,this._options=o,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new che,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=eue(m=>this.update(m),o.resizeDelay||0),this._dataChanges=[],h0[this.id]=this,!r||!c){console.error("Failed to create chart: can't acquire context from the given item");return}fr.listen(this,"complete",ZP),fr.listen(this,"progress",Che),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:n},width:i,height:s,_aspectRatio:a}=this;return Dn(e)?n&&a?a:s?i/s:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return _o}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():AP(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return wP(this.canvas,this.ctx),this}stop(){return fr.stop(this),this}resize(e,n){fr.running(this)?this._resizeBeforeDraw={width:e,height:n}:this._resize(e,n)}_resize(e,n){const i=this.options,s=this.canvas,a=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,e,n,a),r=i.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,AP(this,r,!0)&&(this.notifyPlugins("resize",{size:o}),Bn(i.onResize,[this,o],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};Cn(n,(i,s)=>{i.id=s})}buildOrUpdateScales(){const e=this.options,n=e.scales,i=this.scales,s=Object.keys(i).reduce((o,r)=>(o[r]=!1,o),{});let a=[];n&&(a=a.concat(Object.keys(n).map(o=>{const r=n[o],c=dS(o,r),d=c==="r",f=c==="x";return{options:r,dposition:d?"chartArea":f?"bottom":"left",dtype:d?"radialLinear":f?"category":"linear"}}))),Cn(a,o=>{const r=o.options,c=r.id,d=dS(c,r),f=cn(r.type,o.dtype);(r.position===void 0||YP(r.position,d)!==YP(o.dposition))&&(r.position=o.dposition),s[c]=!0;let m=null;if(c in i&&i[c].type===f)m=i[c];else{const g=_o.getScale(f);m=new g({id:c,type:f,ctx:this.ctx,chart:this}),i[m.id]=m}m.init(r,e)}),Cn(s,(o,r)=>{o||delete i[r]}),Cn(i,o=>{ba.configure(this,o,o.options),ba.addBox(this,o)})}_updateMetasets(){const e=this._metasets,n=this.data.datasets.length,i=e.length;if(e.sort((s,a)=>s.index-a.index),i>n){for(let s=n;s<i;++s)this._destroyDatasetMeta(s);e.splice(n,i-n)}this._sortedMetasets=e.slice(0).sort(JP("order","index"))}_removeUnreferencedMetasets(){const{_metasets:e,data:{datasets:n}}=this;e.length>n.length&&delete this._stacks,e.forEach((i,s)=>{n.filter(a=>a===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const e=[],n=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=n.length;i<s;i++){const a=n[i];let o=this.getDatasetMeta(i);const r=a.type||this.config.type;if(o.type&&o.type!==r&&(this._destroyDatasetMeta(i),o=this.getDatasetMeta(i)),o.type=r,o.indexAxis=a.indexAxis||uS(r,this.options),o.order=a.order||0,o.index=i,o.label=""+a.label,o.visible=this.isDatasetVisible(i),o.controller)o.controller.updateIndex(i),o.controller.linkScales();else{const c=_o.getController(r),{datasetElementType:d,dataElementType:f}=oi.datasets[r];Object.assign(c,{dataElementType:_o.getElement(f),datasetElementType:d&&_o.getElement(d)}),o.controller=new c(this,i),e.push(o.controller)}}return this._updateMetasets(),e}_resetElements(){Cn(this.data.datasets,(e,n)=>{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;const a=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let d=0,f=this.data.datasets.length;d<f;d++){const{controller:m}=this.getDatasetMeta(d),g=!s&&a.indexOf(m)===-1;m.buildOrUpdateElements(g),o=Math.max(+m.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||Cn(a,d=>{d.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(JP("z","_idx"));const{_active:r,_lastEvent:c}=this;c?this._eventHandler(c,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Cn(this.scales,e=>{ba.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(e.events);(!fP(n,i)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:a}of n){const o=i==="_removeElements"?-a:a;Ahe(e,s,o)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=a=>new Set(e.filter(o=>o[0]===a).map((o,r)=>r+","+o.splice(1).join(","))),s=i(0);for(let a=1;a<n;a++)if(!fP(s,i(a)))return;return Array.from(s).map(a=>a.split(",")).map(a=>({method:a[1],start:+a[2],count:+a[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ba.update(this,this.width,this.height,e);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],Cn(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,a)=>{s._idx=a}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n<i;++n)this.getDatasetMeta(n).controller.configure();for(let n=0,i=this.data.datasets.length;n<i;++n)this._updateDataset(n,Ol(e)?e({datasetIndex:n}):e);this.notifyPlugins("afterDatasetsUpdate",{mode:e})}}_updateDataset(e,n){const i=this.getDatasetMeta(e),s={meta:i,index:e,mode:n,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",s)!==!1&&(i.controller._update(n),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(fr.has(this)?this.attached&&!fr.running(this)&&fr.start(this):(this.draw(),ZP({chart:this})))}draw(){let e;if(this._resizeBeforeDraw){const{width:i,height:s}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(i,s)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;const n=this._layers;for(e=0;e<n.length&&n[e].z<=0;++e)n[e].draw(this.chartArea);for(this._drawDatasets();e<n.length;++e)n[e].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(e){const n=this._sortedMetasets,i=[];let s,a;for(s=0,a=n.length;s<a;++s){const o=n[s];(!e||o.visible)&&i.push(o)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;const e=this.getSortedVisibleDatasetMetas();for(let n=e.length-1;n>=0;--n)this._drawDataset(e[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const n=this.ctx,i={meta:e,index:e.index,cancelable:!0},s=h5(this,e);this.notifyPlugins("beforeDatasetDraw",i)!==!1&&(s&&Xy(n,s),e.controller.draw(),s&&Qy(n),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(e){return bm(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,n,i,s){const a=kde.modes[n];return typeof a=="function"?a(this,e,i,s):[]}getDatasetMeta(e){const n=this.data.datasets[e],i=this._metasets;let s=i.filter(a=>a&&a._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:e,_dataset:n,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Yc(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const n=this.data.datasets[e];if(!n)return!1;const i=this.getDatasetMeta(e);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(e,n){const i=this.getDatasetMeta(e);i.hidden=!n}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,n,i){const s=i?"show":"hide",a=this.getDatasetMeta(e),o=a.controller._resolveAnimations(void 0,s);V0(n)?(a.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),o.update(a,{visible:i}),this.update(r=>r.datasetIndex===e?s:void 0))}hide(e,n){this._updateVisibility(e,n,!1)}show(e,n){this._updateVisibility(e,n,!0)}_destroyDatasetMeta(e){const n=this._metasets[e];n&&n.controller&&n.controller._destroy(),delete this._metasets[e]}_stop(){let e,n;for(this.stop(),fr.remove(this),e=0,n=this.data.datasets.length;e<n;++e)this._destroyDatasetMeta(e)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:e,ctx:n}=this;this._stop(),this.config.clearCache(),e&&(this.unbindEvents(),wP(e,n),this.platform.releaseContext(n),this.canvas=null,this.ctx=null),delete h0[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...e){return this.canvas.toDataURL(...e)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const e=this._listeners,n=this.platform,i=(a,o)=>{n.addEventListener(this,a,o),e[a]=o},s=(a,o,r)=>{a.offsetX=o,a.offsetY=r,this._eventHandler(a)};Cn(this.options.events,a=>i(a,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,n=this.platform,i=(c,d)=>{n.addEventListener(this,c,d),e[c]=d},s=(c,d)=>{e[c]&&(n.removeEventListener(this,c,d),delete e[c])},a=(c,d)=>{this.canvas&&this.resize(c,d)};let o;const r=()=>{s("attach",r),this.attached=!0,this.resize(),i("resize",a),i("detach",o)};o=()=>{this.attached=!1,s("resize",a),this._stop(),this._resize(0,0),i("attach",r)},n.isAttached(this.canvas)?r():o()}unbindEvents(){Cn(this._listeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._listeners={},Cn(this._responsiveListeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,n,i){const s=i?"set":"remove";let a,o,r,c;for(n==="dataset"&&(a=this.getDatasetMeta(e[0].datasetIndex),a.controller["_"+s+"DatasetHoverStyle"]()),r=0,c=e.length;r<c;++r){o=e[r];const d=o&&this.getDatasetMeta(o.datasetIndex).controller;d&&d[s+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(e){const n=this._active||[],i=e.map(({datasetIndex:a,index:o})=>{const r=this.getDatasetMeta(a);if(!r)throw new Error("No dataset found at index "+a);return{datasetIndex:a,element:r.data[o],index:o}});!q0(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(e,n,i){return this._plugins.notify(this,e,n,i)}isPluginEnabled(e){return this._plugins._cache.filter(n=>n.plugin.id===e).length===1}_updateHoverStyles(e,n,i){const s=this.options.hover,a=(c,d)=>c.filter(f=>!d.some(m=>f.datasetIndex===m.datasetIndex&&f.index===m.index)),o=a(n,e),r=i?e:a(e,n);o.length&&this.updateHoverStyle(o,s.mode,!1),r.length&&s.mode&&this.updateHoverStyle(r,s.mode,!0)}_eventHandler(e,n){const i={event:e,replay:n,cancelable:!0,inChartArea:this.isPointInArea(e)},s=o=>(o.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const a=this._handleEvent(e,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(a||i.changed)&&this.render(),this}_handleEvent(e,n,i){const{_active:s=[],options:a}=this,o=n,r=this._getActiveElements(e,s,i,o),c=Uce(e),d=Nhe(e,this._lastEvent,i,c);i&&(this._lastEvent=null,Bn(a.onHover,[e,r,this],this),c&&Bn(a.onClick,[e,r,this],this));const f=!q0(r,s);return(f||n)&&(this._active=r,this._updateHoverStyles(r,s,n)),this._lastEvent=d,f}_getActiveElements(e,n,i,s){if(e.type==="mouseout")return[];if(!i)return n;const a=this.options.hover;return this.getElementsAtEventForMode(e,a.mode,a,s)}},Pt(ul,"defaults",oi),Pt(ul,"instances",h0),Pt(ul,"overrides",Bc),Pt(ul,"registry",_o),Pt(ul,"version",whe),Pt(ul,"getChart",eE),ul);function tE(){return Cn(Zy.instances,t=>t._plugins.invalidate())}function k5(t,e,n=e){t.lineCap=cn(n.borderCapStyle,e.borderCapStyle),t.setLineDash(cn(n.borderDash,e.borderDash)),t.lineDashOffset=cn(n.borderDashOffset,e.borderDashOffset),t.lineJoin=cn(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=cn(n.borderWidth,e.borderWidth),t.strokeStyle=cn(n.borderColor,e.borderColor)}function The(t,e,n){t.lineTo(n.x,n.y)}function Mhe(t){return t.stepped?mue:t.tension||t.cubicInterpolationMode==="monotone"?pue:The}function C5(t,e,n={}){const i=t.length,{start:s=0,end:a=i-1}=n,{start:o,end:r}=e,c=Math.max(s,o),d=Math.min(a,r),f=s<o&&a<o||s>r&&a>r;return{count:i,start:c,loop:e.loop,ilen:d<c&&!f?i+d-c:d-c}}function Lhe(t,e,n,i){const{points:s,options:a}=e,{count:o,start:r,loop:c,ilen:d}=C5(s,n,i),f=Mhe(a);let{move:m=!0,reverse:g}=i||{},y,b,v;for(y=0;y<=d;++y)b=s[(r+(g?d-y:y))%o],!b.skip&&(m?(t.moveTo(b.x,b.y),m=!1):f(t,v,b,g,a.stepped),v=b);return c&&(b=s[(r+(g?d:0))%o],f(t,v,b,g,a.stepped)),!!c}function Ohe(t,e,n,i){const s=e.points,{count:a,start:o,ilen:r}=C5(s,n,i),{move:c=!0,reverse:d}=i||{};let f=0,m=0,g,y,b,v,x,A;const k=L=>(o+(d?r-L:L))%a,T=()=>{v!==x&&(t.lineTo(f,x),t.lineTo(f,v),t.lineTo(f,A))};for(c&&(y=s[k(0)],t.moveTo(y.x,y.y)),g=0;g<=r;++g){if(y=s[k(g)],y.skip)continue;const L=y.x,M=y.y,O=L|0;O===b?(M<v?v=M:M>x&&(x=M),f=(m*f+L)/++m):(T(),t.lineTo(L,M),b=O,m=0,v=x=M),A=M}T()}function hS(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?Ohe:Lhe}function Phe(t){return t.stepped?$ue:t.tension||t.cubicInterpolationMode==="monotone"?Xue:mc}function Ehe(t,e,n,i){let s=e._path;s||(s=e._path=new Path2D,e.path(s,n,i)&&s.closePath()),k5(t,e.options),t.stroke(s)}function jhe(t,e,n,i){const{segments:s,options:a}=e,o=hS(e);for(const r of s)k5(t,a,r.style),t.beginPath(),o(t,e,r,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const Rhe=typeof Path2D=="function";function Dhe(t,e,n,i){Rhe&&!e.options.segment?Ehe(t,e,n,i):jhe(t,e,n,i)}class xl extends Mr{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Bue(this._points,i,e,s,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=tde(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,s=e[n],a=this.points,o=d5(this,{property:n,start:s,end:s});if(!o.length)return;const r=[],c=Phe(i);let d,f;for(d=0,f=o.length;d<f;++d){const{start:m,end:g}=o[d],y=a[m],b=a[g];if(y===b){r.push(y);continue}const v=Math.abs((s-y[n])/(b[n]-y[n])),x=c(y,b,v,i.stepped);x[n]=e[n],r.push(x)}return r.length===1?r[0]:r}pathSegment(e,n,i){return hS(this)(e,this,n,i)}path(e,n,i){const s=this.segments,a=hS(this);let o=this._loop;n=n||0,i=i||this.points.length-n;for(const r of s)o&=a(e,this,r,{start:n,end:n+i-1});return!!o}draw(e,n,i,s){const a=this.options||{};(this.points||[]).length&&a.borderWidth&&(e.save(),Dhe(e,this,i,s),e.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}Pt(xl,"id","line"),Pt(xl,"defaults",{borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0}),Pt(xl,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"}),Pt(xl,"descriptors",{_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"});function nE(t,e,n,i){const s=t.options,{[n]:a}=t.getProps([n],i);return Math.abs(e-a)<s.radius+s.hitRadius}class f0 extends Mr{constructor(n){super();Pt(this,"parsed");Pt(this,"skip");Pt(this,"stop");this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,n&&Object.assign(this,n)}inRange(n,i,s){const a=this.options,{x:o,y:r}=this.getProps(["x","y"],s);return Math.pow(n-o,2)+Math.pow(i-r,2)<Math.pow(a.hitRadius+a.radius,2)}inXRange(n,i){return nE(this,n,"x",i)}inYRange(n,i){return nE(this,n,"y",i)}getCenterPoint(n){const{x:i,y:s}=this.getProps(["x","y"],n);return{x:i,y:s}}size(n){n=n||this.options||{};let i=n.radius||0;i=Math.max(i,i&&n.hoverRadius||0);const s=i&&n.borderWidth||0;return(i+s)*2}draw(n,i){const s=this.options;this.skip||s.radius<.1||!bm(this,i,this.size(s)/2)||(n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.fillStyle=s.backgroundColor,lS(n,s,this.x,this.y))}getRange(){const n=this.options||{};return n.radius+n.hitRadius}}Pt(f0,"id","point"),Pt(f0,"defaults",{borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0}),Pt(f0,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});function Fhe(t,e,n){const i=t.segments,s=t.points,a=e.points,o=[];for(const r of i){let{start:c,end:d}=r;d=eb(c,d,s);const f=fS(n,s[c],s[d],r.loop);if(!e.segments){o.push({source:r,target:f,start:s[c],end:s[d]});continue}const m=d5(e,f);for(const g of m){const y=fS(n,a[g.start],a[g.end],g.loop),b=u5(r,s,y);for(const v of b)o.push({source:v,target:g,start:{[n]:iE(f,y,"start",Math.max)},end:{[n]:iE(f,y,"end",Math.min)}})}}return o}function fS(t,e,n,i){if(i)return;let s=e[t],a=n[t];return t==="angle"&&(s=yo(s),a=yo(a)),{property:t,start:s,end:a}}function Ihe(t,e){const{x:n=null,y:i=null}=t||{},s=e.points,a=[];return e.segments.forEach(({start:o,end:r})=>{r=eb(o,r,s);const c=s[o],d=s[r];i!==null?(a.push({x:c.x,y:i}),a.push({x:d.x,y:i})):n!==null&&(a.push({x:n,y:c.y}),a.push({x:n,y:d.y}))}),a}function eb(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function iE(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function A5(t,e){let n=[],i=!1;return Ni(t)?(i=!0,n=t):n=Ihe(t,e),n.length?new xl({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function sE(t){return t&&t.fill!==!1}function Uhe(t,e,n){let s=t[e].fill;const a=[e];let o;if(!n)return s;for(;s!==!1&&a.indexOf(s)===-1;){if(!ls(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;a.push(s),s=o.fill}return!1}function Bhe(t,e,n){const i=Hhe(t);if(hn(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return ls(s)&&Math.floor(s)===s?zhe(i[0],e,s,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function zhe(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function qhe(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:hn(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function Khe(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:hn(t)?i=t.value:i=e.getBaseValue(),i}function Hhe(t){const e=t.options,n=e.fill;let i=cn(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function Vhe(t){const{scale:e,index:n,line:i}=t,s=[],a=i.segments,o=i.points,r=Whe(e,n);r.push(A5({x:null,y:e.bottom},i));for(let c=0;c<a.length;c++){const d=a[c];for(let f=d.start;f<=d.end;f++)Ghe(s,o[f],r)}return new xl({points:s,options:{}})}function Whe(t,e){const n=[],i=t.getMatchingVisibleMetas("line");for(let s=0;s<i.length;s++){const a=i[s];if(a.index===e)break;a.hidden||n.unshift(a.dataset)}return n}function Ghe(t,e,n){const i=[];for(let s=0;s<n.length;s++){const a=n[s],{first:o,last:r,point:c}=$he(a,e,"x");if(!(!c||o&&r)){if(o)i.unshift(c);else if(t.push(c),!r)break}}t.push(...i)}function $he(t,e,n){const i=t.interpolate(e,n);if(!i)return{};const s=i[n],a=t.segments,o=t.points;let r=!1,c=!1;for(let d=0;d<a.length;d++){const f=a[d],m=o[f.start][n],g=o[f.end][n];if(td(s,m,g)){r=s===m,c=s===g;break}}return{first:r,last:c,point:i}}class N5{constructor(e){this.x=e.x,this.y=e.y,this.radius=e.radius}pathSegment(e,n,i){const{x:s,y:a,radius:o}=this;return n=n||{start:0,end:Ga},e.arc(s,a,o,n.end,n.start,!0),!i.bounds}interpolate(e){const{x:n,y:i,radius:s}=this,a=e.angle;return{x:n+Math.cos(a)*s,y:i+Math.sin(a)*s,angle:a}}}function Xhe(t){const{chart:e,fill:n,line:i}=t;if(ls(n))return Qhe(e,n);if(n==="stack")return Vhe(t);if(n==="shape")return!0;const s=Yhe(t);return s instanceof N5?s:A5(s,i)}function Qhe(t,e){const n=t.getDatasetMeta(e);return n&&t.isDatasetVisible(e)?n.dataset:null}function Yhe(t){return(t.scale||{}).getPointPositionForValue?Zhe(t):Jhe(t)}function Jhe(t){const{scale:e={},fill:n}=t,i=qhe(n,e);if(ls(i)){const s=e.isHorizontal();return{x:s?i:null,y:s?null:i}}return null}function Zhe(t){const{scale:e,fill:n}=t,i=e.options,s=e.getLabels().length,a=i.reverse?e.max:e.min,o=Khe(n,e,a),r=[];if(i.grid.circular){const c=e.getPointPositionForValue(0,a);return new N5({x:c.x,y:c.y,radius:e.getDistanceFromCenterForValue(o)})}for(let c=0;c<s;++c)r.push(e.getPointPositionForValue(c,o));return r}function O1(t,e,n){const i=Xhe(e),{chart:s,index:a,line:o,scale:r,axis:c}=e,d=o.options,f=d.fill,m=d.backgroundColor,{above:g=m,below:y=m}=f||{},b=s.getDatasetMeta(a),v=h5(s,b);i&&o.points.length&&(Xy(t,n),efe(t,{line:o,target:i,above:g,below:y,area:n,scale:r,axis:c,clip:v}),Qy(t))}function efe(t,e){const{line:n,target:i,above:s,below:a,area:o,scale:r,clip:c}=e,d=n._loop?"angle":e.axis;t.save();let f=a;a!==s&&(d==="x"?(aE(t,i,o.top),P1(t,{line:n,target:i,color:s,scale:r,property:d,clip:c}),t.restore(),t.save(),aE(t,i,o.bottom)):d==="y"&&(oE(t,i,o.left),P1(t,{line:n,target:i,color:a,scale:r,property:d,clip:c}),t.restore(),t.save(),oE(t,i,o.right),f=s)),P1(t,{line:n,target:i,color:f,scale:r,property:d,clip:c}),t.restore()}function aE(t,e,n){const{segments:i,points:s}=e;let a=!0,o=!1;t.beginPath();for(const r of i){const{start:c,end:d}=r,f=s[c],m=s[eb(c,d,s)];a?(t.moveTo(f.x,f.y),a=!1):(t.lineTo(f.x,n),t.lineTo(f.x,f.y)),o=!!e.pathSegment(t,r,{move:o}),o?t.closePath():t.lineTo(m.x,n)}t.lineTo(e.first().x,n),t.closePath(),t.clip()}function oE(t,e,n){const{segments:i,points:s}=e;let a=!0,o=!1;t.beginPath();for(const r of i){const{start:c,end:d}=r,f=s[c],m=s[eb(c,d,s)];a?(t.moveTo(f.x,f.y),a=!1):(t.lineTo(n,f.y),t.lineTo(f.x,f.y)),o=!!e.pathSegment(t,r,{move:o}),o?t.closePath():t.lineTo(n,m.y)}t.lineTo(n,e.first().y),t.closePath(),t.clip()}function P1(t,e){const{line:n,target:i,property:s,color:a,scale:o,clip:r}=e,c=Fhe(n,i,s);for(const{source:d,target:f,start:m,end:g}of c){const{style:{backgroundColor:y=a}={}}=d,b=i!==!0;t.save(),t.fillStyle=y,tfe(t,o,r,b&&fS(s,m,g)),t.beginPath();const v=!!n.pathSegment(t,d);let x;if(b){v?t.closePath():rE(t,i,g,s);const A=!!i.pathSegment(t,f,{move:v,reverse:!0});x=v&&A,x||rE(t,i,m,s)}t.closePath(),t.fill(x?"evenodd":"nonzero"),t.restore()}}function tfe(t,e,n,i){const s=e.chart.chartArea,{property:a,start:o,end:r}=i||{};if(a==="x"||a==="y"){let c,d,f,m;a==="x"?(c=o,d=s.top,f=r,m=s.bottom):(c=s.left,d=o,f=s.right,m=r),t.beginPath(),n&&(c=Math.max(c,n.left),f=Math.min(f,n.right),d=Math.max(d,n.top),m=Math.min(m,n.bottom)),t.rect(c,d,f-c,m-d),t.clip()}}function rE(t,e,n,i){const s=e.interpolate(n,i);s&&t.lineTo(s.x,s.y)}var nfe={id:"filler",afterDatasetsUpdate(t,e,n){const i=(t.data.datasets||[]).length,s=[];let a,o,r,c;for(o=0;o<i;++o)a=t.getDatasetMeta(o),r=a.dataset,c=null,r&&r.options&&r instanceof xl&&(c={visible:t.isDatasetVisible(o),index:o,fill:Bhe(r,o,i),chart:t,axis:a.controller.options.indexAxis,scale:a.vScale,line:r}),a.$filler=c,s.push(c);for(o=0;o<i;++o)c=s[o],!(!c||c.fill===!1)&&(c.fill=Uhe(s,o,n.propagate))},beforeDraw(t,e,n){const i=n.drawTime==="beforeDraw",s=t.getSortedVisibleDatasetMetas(),a=t.chartArea;for(let o=s.length-1;o>=0;--o){const r=s[o].$filler;r&&(r.line.updateControlPoints(a,r.axis),i&&r.fill&&O1(t.ctx,r,a))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){const a=i[s].$filler;sE(a)&&O1(t.ctx,a,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!sE(i)||n.drawTime!=="beforeDatasetDraw"||O1(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const lE=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},ife=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class cE extends Mr{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=Bn(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,s)=>e.sort(i,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,s=as(i.font),a=s.size,o=this._computeTitleHeight(),{boxWidth:r,itemHeight:c}=lE(i,a);let d,f;n.font=s.string,this.isHorizontal()?(d=this.maxWidth,f=this._fitRows(o,a,r,c)+10):(f=this.maxHeight,d=this._fitCols(o,s,r,c)+10),this.width=Math.min(d,e.maxWidth||this.maxWidth),this.height=Math.min(f,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,s){const{ctx:a,maxWidth:o,options:{labels:{padding:r}}}=this,c=this.legendHitBoxes=[],d=this.lineWidths=[0],f=s+r;let m=e;a.textAlign="left",a.textBaseline="middle";let g=-1,y=-f;return this.legendItems.forEach((b,v)=>{const x=i+n/2+a.measureText(b.text).width;(v===0||d[d.length-1]+x+2*r>o)&&(m+=f,d[d.length-(v>0?0:1)]=0,y+=f,g++),c[v]={left:0,top:y,row:g,width:x,height:s},d[d.length-1]+=x+r}),m}_fitCols(e,n,i,s){const{ctx:a,maxHeight:o,options:{labels:{padding:r}}}=this,c=this.legendHitBoxes=[],d=this.columnSizes=[],f=o-e;let m=r,g=0,y=0,b=0,v=0;return this.legendItems.forEach((x,A)=>{const{itemWidth:k,itemHeight:T}=sfe(i,n,a,x,s);A>0&&y+T+2*r>f&&(m+=g+r,d.push({width:g,height:y}),b+=g+r,v++,g=y=0),c[A]={left:b,top:y,col:v,width:k,height:T},g=Math.max(g,k),y+=T+r}),m+=g,d.push({width:g,height:y}),m}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:s},rtl:a}}=this,o=md(a,this.left,this.width);if(this.isHorizontal()){let r=0,c=Ji(i,this.left+s,this.right-this.lineWidths[r]);for(const d of n)r!==d.row&&(r=d.row,c=Ji(i,this.left+s,this.right-this.lineWidths[r])),d.top+=this.top+e+s,d.left=o.leftForLtr(o.x(c),d.width),c+=d.width+s}else{let r=0,c=Ji(i,this.top+e+s,this.bottom-this.columnSizes[r].height);for(const d of n)d.col!==r&&(r=d.col,c=Ji(i,this.top+e+s,this.bottom-this.columnSizes[r].height)),d.top=c,d.left+=this.left+s,d.left=o.leftForLtr(o.x(d.left),d.width),c+=d.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;Xy(e,this),this._draw(),Qy(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:s}=this,{align:a,labels:o}=e,r=oi.color,c=md(e.rtl,this.left,this.width),d=as(o.font),{padding:f}=o,m=d.size,g=m/2;let y;this.drawTitle(),s.textAlign=c.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=d.string;const{boxWidth:b,boxHeight:v,itemHeight:x}=lE(o,m),A=function(O,N,P){if(isNaN(b)||b<=0||isNaN(v)||v<0)return;s.save();const E=cn(P.lineWidth,1);if(s.fillStyle=cn(P.fillStyle,r),s.lineCap=cn(P.lineCap,"butt"),s.lineDashOffset=cn(P.lineDashOffset,0),s.lineJoin=cn(P.lineJoin,"miter"),s.lineWidth=E,s.strokeStyle=cn(P.strokeStyle,r),s.setLineDash(cn(P.lineDash,[])),o.usePointStyle){const R={radius:v*Math.SQRT2/2,pointStyle:P.pointStyle,rotation:P.rotation,borderWidth:E},z=c.xPlus(O,b/2),D=N+g;e5(s,R,z,D,o.pointStyleWidth&&b)}else{const R=N+Math.max((m-v)/2,0),z=c.leftForLtr(O,b),D=Yf(P.borderRadius);s.beginPath(),Object.values(D).some(Q=>Q!==0)?cS(s,{x:z,y:R,w:b,h:v,radius:D}):s.rect(z,R,b,v),s.fill(),E!==0&&s.stroke()}s.restore()},k=function(O,N,P){vm(s,P.text,O,N+x/2,d,{strikethrough:P.hidden,textAlign:c.textAlign(P.textAlign)})},T=this.isHorizontal(),L=this._computeTitleHeight();T?y={x:Ji(a,this.left+f,this.right-i[0]),y:this.top+f+L,line:0}:y={x:this.left+f,y:Ji(a,this.top+L+f,this.bottom-n[0].height),line:0},r5(this.ctx,e.textDirection);const M=x+f;this.legendItems.forEach((O,N)=>{s.strokeStyle=O.fontColor,s.fillStyle=O.fontColor;const P=s.measureText(O.text).width,E=c.textAlign(O.textAlign||(O.textAlign=o.textAlign)),R=b+g+P;let z=y.x,D=y.y;c.setWidth(this.width),T?N>0&&z+R+f>this.right&&(D=y.y+=M,y.line++,z=y.x=Ji(a,this.left+f,this.right-i[y.line])):N>0&&D+M>this.bottom&&(z=y.x=z+n[y.line].width+f,y.line++,D=y.y=Ji(a,this.top+L+f,this.bottom-n[y.line].height));const Q=c.x(z);if(A(Q,D,O),z=tue(E,z+b+g,T?z+R:this.right,e.rtl),k(c.x(z),D,O),T)y.x+=R+f;else if(typeof O.text!="string"){const G=d.lineHeight;y.y+=T5(O,G)+f}else y.y+=M}),l5(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=as(n.font),s=Ma(n.padding);if(!n.display)return;const a=md(e.rtl,this.left,this.width),o=this.ctx,r=n.position,c=i.size/2,d=s.top+c;let f,m=this.left,g=this.width;if(this.isHorizontal())g=Math.max(...this.lineWidths),f=this.top+d,m=Ji(e.align,m,this.right-g);else{const b=this.columnSizes.reduce((v,x)=>Math.max(v,x.height),0);f=d+Ji(e.align,this.top,this.bottom-b-e.labels.padding-this._computeTitleHeight())}const y=Ji(r,m,m+g);o.textAlign=a.textAlign(yk(r)),o.textBaseline="middle",o.strokeStyle=n.color,o.fillStyle=n.color,o.font=i.string,vm(o,n.text,y,f,i)}_computeTitleHeight(){const e=this.options.title,n=as(e.font),i=Ma(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,s,a;if(td(e,this.left,this.right)&&td(n,this.top,this.bottom)){for(a=this.legendHitBoxes,i=0;i<a.length;++i)if(s=a[i],td(e,s.left,s.left+s.width)&&td(n,s.top,s.top+s.height))return this.legendItems[i]}return null}handleEvent(e){const n=this.options;if(!rfe(e.type,n))return;const i=this._getLegendItemAt(e.x,e.y);if(e.type==="mousemove"||e.type==="mouseout"){const s=this._hoveredItem,a=ife(s,i);s&&!a&&Bn(n.onLeave,[e,s,this],this),this._hoveredItem=i,i&&!a&&Bn(n.onHover,[e,i,this],this)}else i&&Bn(n.onClick,[e,i,this],this)}}function sfe(t,e,n,i,s){const a=afe(i,t,e,n),o=ofe(s,i,e.lineHeight);return{itemWidth:a,itemHeight:o}}function afe(t,e,n,i){let s=t.text;return s&&typeof s!="string"&&(s=s.reduce((a,o)=>a.length>o.length?a:o)),e+n.size/2+i.measureText(s).width}function ofe(t,e,n){let i=t;return typeof e.text!="string"&&(i=T5(e,n)),i}function T5(t,e){const n=t.text?t.text.length:0;return e*n}function rfe(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var lfe={id:"legend",_element:cE,start(t,e,n){const i=t.legend=new cE({ctx:t.ctx,options:n,chart:t});ba.configure(t,i,n),ba.addBox(t,i)},stop(t){ba.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;ba.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,s=n.chart;s.isDatasetVisible(i)?(s.hide(i),e.hidden=!0):(s.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:s,color:a,useBorderRadius:o,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map(c=>{const d=c.controller.getStyle(n?0:void 0),f=Ma(d.borderWidth);return{text:e[c.index].label,fillStyle:d.backgroundColor,fontColor:a,hidden:!c.visible,lineCap:d.borderCapStyle,lineDash:d.borderDash,lineDashOffset:d.borderDashOffset,lineJoin:d.borderJoinStyle,lineWidth:(f.width+f.height)/4,strokeStyle:d.borderColor,pointStyle:i||d.pointStyle,rotation:d.rotation,textAlign:s||d.textAlign,borderRadius:o&&(r||d.borderRadius),datasetIndex:c.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class M5 extends Mr{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n){const i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=n;const s=Ni(i.text)?i.text.length:1;this._padding=Ma(i.padding);const a=s*as(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=a:this.width=a}isHorizontal(){const e=this.options.position;return e==="top"||e==="bottom"}_drawArgs(e){const{top:n,left:i,bottom:s,right:a,options:o}=this,r=o.align;let c=0,d,f,m;return this.isHorizontal()?(f=Ji(r,i,a),m=n+e,d=a-i):(o.position==="left"?(f=i+e,m=Ji(r,s,n),c=ji*-.5):(f=a-e,m=Ji(r,n,s),c=ji*.5),d=s-n),{titleX:f,titleY:m,maxWidth:d,rotation:c}}draw(){const e=this.ctx,n=this.options;if(!n.display)return;const i=as(n.font),a=i.lineHeight/2+this._padding.top,{titleX:o,titleY:r,maxWidth:c,rotation:d}=this._drawArgs(a);vm(e,n.text,0,0,i,{color:n.color,maxWidth:c,rotation:d,textAlign:yk(n.align),textBaseline:"middle",translation:[o,r]})}}function cfe(t,e){const n=new M5({ctx:t.ctx,options:e,chart:t});ba.configure(t,n,e),ba.addBox(t,n),t.titleBlock=n}var ufe={id:"title",_element:M5,start(t,e,n){cfe(t,n)},stop(t){const e=t.titleBlock;ba.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,n){const i=t.titleBlock;ba.configure(t,i,n),i.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Pf={average(t){if(!t.length)return!1;let e,n,i=new Set,s=0,a=0;for(e=0,n=t.length;e<n;++e){const r=t[e].element;if(r&&r.hasValue()){const c=r.tooltipPosition();i.add(c.x),s+=c.y,++a}}return a===0||i.size===0?!1:{x:[...i].reduce((r,c)=>r+c)/i.size,y:s/a}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,s=Number.POSITIVE_INFINITY,a,o,r;for(a=0,o=t.length;a<o;++a){const c=t[a].element;if(c&&c.hasValue()){const d=c.getCenterPoint(),f=oS(e,d);f<s&&(s=f,r=c)}}if(r){const c=r.tooltipPosition();n=c.x,i=c.y}return{x:n,y:i}}};function po(t,e){return e&&(Ni(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function mr(t){return(typeof t=="string"||t instanceof String)&&t.indexOf(`
|
||
`)>-1?t.split(`
|
||
`):t}function dfe(t,e){const{element:n,datasetIndex:i,index:s}=e,a=t.getDatasetMeta(i).controller,{label:o,value:r}=a.getLabelAndValue(s);return{chart:t,label:o,parsed:a.getParsed(s),raw:t.data.datasets[i].data[s],formattedValue:r,dataset:a.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function uE(t,e){const n=t.chart.ctx,{body:i,footer:s,title:a}=t,{boxWidth:o,boxHeight:r}=e,c=as(e.bodyFont),d=as(e.titleFont),f=as(e.footerFont),m=a.length,g=s.length,y=i.length,b=Ma(e.padding);let v=b.height,x=0,A=i.reduce((L,M)=>L+M.before.length+M.lines.length+M.after.length,0);if(A+=t.beforeBody.length+t.afterBody.length,m&&(v+=m*d.lineHeight+(m-1)*e.titleSpacing+e.titleMarginBottom),A){const L=e.displayColors?Math.max(r,c.lineHeight):c.lineHeight;v+=y*L+(A-y)*c.lineHeight+(A-1)*e.bodySpacing}g&&(v+=e.footerMarginTop+g*f.lineHeight+(g-1)*e.footerSpacing);let k=0;const T=function(L){x=Math.max(x,n.measureText(L).width+k)};return n.save(),n.font=d.string,Cn(t.title,T),n.font=c.string,Cn(t.beforeBody.concat(t.afterBody),T),k=e.displayColors?o+2+e.boxPadding:0,Cn(i,L=>{Cn(L.before,T),Cn(L.lines,T),Cn(L.after,T)}),k=0,n.font=f.string,Cn(t.footer,T),n.restore(),x+=b.width,{width:x,height:v}}function hfe(t,e){const{y:n,height:i}=e;return n<i/2?"top":n>t.height-i/2?"bottom":"center"}function ffe(t,e,n,i){const{x:s,width:a}=i,o=n.caretSize+n.caretPadding;if(t==="left"&&s+a+o>e.width||t==="right"&&s-a-o<0)return!0}function mfe(t,e,n,i){const{x:s,width:a}=n,{width:o,chartArea:{left:r,right:c}}=t;let d="center";return i==="center"?d=s<=(r+c)/2?"left":"right":s<=a/2?d="left":s>=o-a/2&&(d="right"),ffe(d,t,e,n)&&(d="center"),d}function dE(t,e,n){const i=n.yAlign||e.yAlign||hfe(t,n);return{xAlign:n.xAlign||e.xAlign||mfe(t,e,n,i),yAlign:i}}function pfe(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function gfe(t,e,n){let{y:i,height:s}=t;return e==="top"?i+=n:e==="bottom"?i-=s+n:i-=s/2,i}function hE(t,e,n,i){const{caretSize:s,caretPadding:a,cornerRadius:o}=t,{xAlign:r,yAlign:c}=n,d=s+a,{topLeft:f,topRight:m,bottomLeft:g,bottomRight:y}=Yf(o);let b=pfe(e,r);const v=gfe(e,c,d);return c==="center"?r==="left"?b+=d:r==="right"&&(b-=d):r==="left"?b-=Math.max(f,g)+s:r==="right"&&(b+=Math.max(m,y)+s),{x:ya(b,0,i.width-e.width),y:ya(v,0,i.height-e.height)}}function __(t,e,n){const i=Ma(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function fE(t){return po([],mr(t))}function _fe(t,e,n){return Yc(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function mE(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const L5={beforeTitle:rr,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex<i)return n[e.dataIndex]}return""},afterTitle:rr,beforeBody:rr,beforeLabel:rr,label(t){if(this&&this.options&&this.options.mode==="dataset")return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const n=t.formattedValue;return Dn(n)||(e+=n),e},labelColor(t){const n=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const n=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:rr,afterBody:rr,beforeFooter:rr,footer:rr,afterFooter:rr};function Ps(t,e,n,i){const s=t[e].call(n,i);return typeof s>"u"?L5[e].call(n,i):s}class mS extends Mr{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,a=new f5(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(a)),a}getContext(){return this.$context||(this.$context=_fe(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,s=Ps(i,"beforeTitle",this,e),a=Ps(i,"title",this,e),o=Ps(i,"afterTitle",this,e);let r=[];return r=po(r,mr(s)),r=po(r,mr(a)),r=po(r,mr(o)),r}getBeforeBody(e,n){return fE(Ps(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,s=[];return Cn(e,a=>{const o={before:[],lines:[],after:[]},r=mE(i,a);po(o.before,mr(Ps(r,"beforeLabel",this,a))),po(o.lines,Ps(r,"label",this,a)),po(o.after,mr(Ps(r,"afterLabel",this,a))),s.push(o)}),s}getAfterBody(e,n){return fE(Ps(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,s=Ps(i,"beforeFooter",this,e),a=Ps(i,"footer",this,e),o=Ps(i,"afterFooter",this,e);let r=[];return r=po(r,mr(s)),r=po(r,mr(a)),r=po(r,mr(o)),r}_createItems(e){const n=this._active,i=this.chart.data,s=[],a=[],o=[];let r=[],c,d;for(c=0,d=n.length;c<d;++c)r.push(dfe(this.chart,n[c]));return e.filter&&(r=r.filter((f,m,g)=>e.filter(f,m,g,i))),e.itemSort&&(r=r.sort((f,m)=>e.itemSort(f,m,i))),Cn(r,f=>{const m=mE(e.callbacks,f);s.push(Ps(m,"labelColor",this,f)),a.push(Ps(m,"labelPointStyle",this,f)),o.push(Ps(m,"labelTextColor",this,f))}),this.labelColors=s,this.labelPointStyles=a,this.labelTextColors=o,this.dataPoints=r,r}update(e,n){const i=this.options.setContext(this.getContext()),s=this._active;let a,o=[];if(!s.length)this.opacity!==0&&(a={opacity:0});else{const r=Pf[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const c=this._size=uE(this,i),d=Object.assign({},r,c),f=dE(this.chart,i,d),m=hE(i,d,f,this.chart);this.xAlign=f.xAlign,this.yAlign=f.yAlign,a={opacity:1,x:m.x,y:m.y,width:c.width,height:c.height,caretX:r.x,caretY:r.y}}this._tooltipItems=o,this.$context=void 0,a&&this._resolveAnimations().update(this,a),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,s){const a=this.getCaretPosition(e,i,s);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)}getCaretPosition(e,n,i){const{xAlign:s,yAlign:a}=this,{caretSize:o,cornerRadius:r}=i,{topLeft:c,topRight:d,bottomLeft:f,bottomRight:m}=Yf(r),{x:g,y}=e,{width:b,height:v}=n;let x,A,k,T,L,M;return a==="center"?(L=y+v/2,s==="left"?(x=g,A=x-o,T=L+o,M=L-o):(x=g+b,A=x+o,T=L-o,M=L+o),k=x):(s==="left"?A=g+Math.max(c,f)+o:s==="right"?A=g+b-Math.max(d,m)-o:A=this.caretX,a==="top"?(T=y,L=T-o,x=A-o,k=A+o):(T=y+v,L=T+o,x=A+o,k=A-o),M=T),{x1:x,x2:A,x3:k,y1:T,y2:L,y3:M}}drawTitle(e,n,i){const s=this.title,a=s.length;let o,r,c;if(a){const d=md(i.rtl,this.x,this.width);for(e.x=__(this,i.titleAlign,i),n.textAlign=d.textAlign(i.titleAlign),n.textBaseline="middle",o=as(i.titleFont),r=i.titleSpacing,n.fillStyle=i.titleColor,n.font=o.string,c=0;c<a;++c)n.fillText(s[c],d.x(e.x),e.y+o.lineHeight/2),e.y+=o.lineHeight+r,c+1===a&&(e.y+=i.titleMarginBottom-r)}}_drawColorBox(e,n,i,s,a){const o=this.labelColors[i],r=this.labelPointStyles[i],{boxHeight:c,boxWidth:d}=a,f=as(a.bodyFont),m=__(this,"left",a),g=s.x(m),y=c<f.lineHeight?(f.lineHeight-c)/2:0,b=n.y+y;if(a.usePointStyle){const v={radius:Math.min(d,c)/2,pointStyle:r.pointStyle,rotation:r.rotation,borderWidth:1},x=s.leftForLtr(g,d)+d/2,A=b+c/2;e.strokeStyle=a.multiKeyBackground,e.fillStyle=a.multiKeyBackground,lS(e,v,x,A),e.strokeStyle=o.borderColor,e.fillStyle=o.backgroundColor,lS(e,v,x,A)}else{e.lineWidth=hn(o.borderWidth)?Math.max(...Object.values(o.borderWidth)):o.borderWidth||1,e.strokeStyle=o.borderColor,e.setLineDash(o.borderDash||[]),e.lineDashOffset=o.borderDashOffset||0;const v=s.leftForLtr(g,d),x=s.leftForLtr(s.xPlus(g,1),d-2),A=Yf(o.borderRadius);Object.values(A).some(k=>k!==0)?(e.beginPath(),e.fillStyle=a.multiKeyBackground,cS(e,{x:v,y:b,w:d,h:c,radius:A}),e.fill(),e.stroke(),e.fillStyle=o.backgroundColor,e.beginPath(),cS(e,{x,y:b+1,w:d-2,h:c-2,radius:A}),e.fill()):(e.fillStyle=a.multiKeyBackground,e.fillRect(v,b,d,c),e.strokeRect(v,b,d,c),e.fillStyle=o.backgroundColor,e.fillRect(x,b+1,d-2,c-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:s}=this,{bodySpacing:a,bodyAlign:o,displayColors:r,boxHeight:c,boxWidth:d,boxPadding:f}=i,m=as(i.bodyFont);let g=m.lineHeight,y=0;const b=md(i.rtl,this.x,this.width),v=function(P){n.fillText(P,b.x(e.x+y),e.y+g/2),e.y+=g+a},x=b.textAlign(o);let A,k,T,L,M,O,N;for(n.textAlign=o,n.textBaseline="middle",n.font=m.string,e.x=__(this,x,i),n.fillStyle=i.bodyColor,Cn(this.beforeBody,v),y=r&&x!=="right"?o==="center"?d/2+f:d+2+f:0,L=0,O=s.length;L<O;++L){for(A=s[L],k=this.labelTextColors[L],n.fillStyle=k,Cn(A.before,v),T=A.lines,r&&T.length&&(this._drawColorBox(n,e,L,b,i),g=Math.max(m.lineHeight,c)),M=0,N=T.length;M<N;++M)v(T[M]),g=m.lineHeight;Cn(A.after,v)}y=0,g=m.lineHeight,Cn(this.afterBody,v),e.y-=a}drawFooter(e,n,i){const s=this.footer,a=s.length;let o,r;if(a){const c=md(i.rtl,this.x,this.width);for(e.x=__(this,i.footerAlign,i),e.y+=i.footerMarginTop,n.textAlign=c.textAlign(i.footerAlign),n.textBaseline="middle",o=as(i.footerFont),n.fillStyle=i.footerColor,n.font=o.string,r=0;r<a;++r)n.fillText(s[r],c.x(e.x),e.y+o.lineHeight/2),e.y+=o.lineHeight+i.footerSpacing}}drawBackground(e,n,i,s){const{xAlign:a,yAlign:o}=this,{x:r,y:c}=e,{width:d,height:f}=i,{topLeft:m,topRight:g,bottomLeft:y,bottomRight:b}=Yf(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(r+m,c),o==="top"&&this.drawCaret(e,n,i,s),n.lineTo(r+d-g,c),n.quadraticCurveTo(r+d,c,r+d,c+g),o==="center"&&a==="right"&&this.drawCaret(e,n,i,s),n.lineTo(r+d,c+f-b),n.quadraticCurveTo(r+d,c+f,r+d-b,c+f),o==="bottom"&&this.drawCaret(e,n,i,s),n.lineTo(r+y,c+f),n.quadraticCurveTo(r,c+f,r,c+f-y),o==="center"&&a==="left"&&this.drawCaret(e,n,i,s),n.lineTo(r,c+m),n.quadraticCurveTo(r,c,r+m,c),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,s=i&&i.x,a=i&&i.y;if(s||a){const o=Pf[e.position].call(this,this._active,this._eventPosition);if(!o)return;const r=this._size=uE(this,e),c=Object.assign({},o,this._size),d=dE(n,e,c),f=hE(e,c,d,n);(s._to!==f.x||a._to!==f.y)&&(this.xAlign=d.xAlign,this.yAlign=d.yAlign,this.width=r.width,this.height=r.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,f))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},a={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Ma(n.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&r&&(e.save(),e.globalAlpha=i,this.drawBackground(a,e,s,n),r5(e,n.textDirection),a.y+=o.top,this.drawTitle(a,e,n),this.drawBody(a,e,n),this.drawFooter(a,e,n),l5(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,s=e.map(({datasetIndex:r,index:c})=>{const d=this.chart.getDatasetMeta(r);if(!d)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:d.data[c],index:c}}),a=!q0(i,s),o=this._positionChanged(s,n);(a||o)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,a=this._active||[],o=this._getActiveElements(e,a,n,i),r=this._positionChanged(o,e),c=n||!q0(o,a)||r;return c&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),c}_getActiveElements(e,n,i,s){const a=this.options;if(e.type==="mouseout")return[];if(!s)return n.filter(r=>this.chart.data.datasets[r.datasetIndex]&&this.chart.getDatasetMeta(r.datasetIndex).controller.getParsed(r.index)!==void 0);const o=this.chart.getElementsAtEventForMode(e,a.mode,a,i);return a.reverse&&o.reverse(),o}_positionChanged(e,n){const{caretX:i,caretY:s,options:a}=this,o=Pf[a.position].call(this,e,n);return o!==!1&&(i!==o.x||s!==o.y)}}Pt(mS,"positioners",Pf);var yfe={id:"tooltip",_element:mS,positioners:Pf,afterInit(t,e,n){n&&(t.tooltip=new mS({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:L5},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const bfe=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function vfe(t,e,n,i){const s=t.indexOf(e);if(s===-1)return bfe(t,e,n,i);const a=t.lastIndexOf(e);return s!==a?n:s}const xfe=(t,e)=>t===null?null:ya(Math.round(t),0,e);function pE(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class pS extends Zd{constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const n=this._addedLabels;if(n.length){const i=this.getLabels();for(const{index:s,label:a}of n)i[s]===a&&i.splice(s,1);this._addedLabels=[]}super.init(e)}parse(e,n){if(Dn(e))return null;const i=this.getLabels();return n=isFinite(n)&&i[n]===e?n:vfe(i,e,cn(n,e),this._addedLabels),xfe(n,i.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(e||(i=0),n||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const e=this.min,n=this.max,i=this.options.offset,s=[];let a=this.getLabels();a=e===0&&n===a.length-1?a:a.slice(e,n+1),this._valueRange=Math.max(a.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=e;o<=n;o++)s.push({value:o});return s}getLabelForValue(e){return pE.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return typeof e!="number"&&(e=this.parse(e)),e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}Pt(pS,"id","category"),Pt(pS,"defaults",{ticks:{callback:pE}});function Sfe(t,e){const n=[],{bounds:s,step:a,min:o,max:r,precision:c,count:d,maxTicks:f,maxDigits:m,includeBounds:g}=t,y=a||1,b=f-1,{min:v,max:x}=e,A=!Dn(o),k=!Dn(r),T=!Dn(d),L=(x-v)/(m+1);let M=pP((x-v)/b/y)*y,O,N,P,E;if(M<1e-14&&!A&&!k)return[{value:v},{value:x}];E=Math.ceil(x/M)-Math.floor(v/M),E>b&&(M=pP(E*M/b/y)*y),Dn(c)||(O=Math.pow(10,c),M=Math.ceil(M*O)/O),s==="ticks"?(N=Math.floor(v/M)*M,P=Math.ceil(x/M)*M):(N=v,P=x),A&&k&&a&&Hce((r-o)/a,M/1e3)?(E=Math.round(Math.min((r-o)/M,f)),M=(r-o)/E,N=o,P=r):T?(N=A?o:N,P=k?r:P,E=d-1,M=(P-N)/E):(E=(P-N)/M,$f(E,Math.round(E),M/1e3)?E=Math.round(E):E=Math.ceil(E));const R=Math.max(gP(M),gP(N));O=Math.pow(10,Dn(c)?R:c),N=Math.round(N*O)/O,P=Math.round(P*O)/O;let z=0;for(A&&(g&&N!==o?(n.push({value:o}),N<o&&z++,$f(Math.round((N+z*M)*O)/O,o,gE(o,L,t))&&z++):N<o&&z++);z<E;++z){const D=Math.round((N+z*M)*O)/O;if(k&&D>r)break;n.push({value:D})}return k&&g&&P!==r?n.length&&$f(n[n.length-1].value,r,gE(r,L,t))?n[n.length-1].value=r:n.push({value:r}):(!k||P===r)&&n.push({value:P}),n}function gE(t,e,{horizontal:n,minRotation:i}){const s=kc(i),a=(n?Math.sin(s):Math.cos(s))||.001,o=.75*e*(""+t).length;return Math.min(e/a,o)}class wfe extends Zd{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Dn(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:a}=this;const o=c=>s=n?s:c,r=c=>a=i?a:c;if(e){const c=Td(s),d=Td(a);c<0&&d<0?r(0):c>0&&d>0&&o(0)}if(s===a){let c=a===0?1:Math.abs(a*.05);r(a+c),e||o(s-c)}this.min=s,this.max=a}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},a=this._range||this,o=Sfe(s,a);return e.bounds==="ticks"&&Vce(o,this,"value"),e.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const s=(i-n)/Math.max(e.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return JD(e,this.chart.options.locale,this.options.ticks.format)}}class gS extends wfe{determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=ls(e)?e:0,this.max=ls(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=kc(this.options.ticks.minRotation),s=(e?Math.sin(i):Math.cos(i))||.001,a=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,a.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}Pt(gS,"id","linear"),Pt(gS,"defaults",{ticks:{callback:ZD.formatters.numeric}});const tb={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Rs=Object.keys(tb);function _E(t,e){return t-e}function yE(t,e){if(Dn(e))return null;const n=t._adapter,{parser:i,round:s,isoWeekday:a}=t._parseOpts;let o=e;return typeof i=="function"&&(o=i(o)),ls(o)||(o=typeof i=="string"?n.parse(o,i):n.parse(o)),o===null?null:(s&&(o=s==="week"&&(ym(a)||a===!0)?n.startOf(o,"isoWeek",a):n.startOf(o,s)),+o)}function bE(t,e,n,i){const s=Rs.length;for(let a=Rs.indexOf(t);a<s-1;++a){const o=tb[Rs[a]],r=o.steps?o.steps:Number.MAX_SAFE_INTEGER;if(o.common&&Math.ceil((n-e)/(r*o.size))<=i)return Rs[a]}return Rs[s-1]}function kfe(t,e,n,i,s){for(let a=Rs.length-1;a>=Rs.indexOf(n);a--){const o=Rs[a];if(tb[o].common&&t._adapter.diff(s,i,o)>=e-1)return o}return Rs[n?Rs.indexOf(n):0]}function Cfe(t){for(let e=Rs.indexOf(t)+1,n=Rs.length;e<n;++e)if(tb[Rs[e]].common)return Rs[e]}function vE(t,e,n){if(!n)t[e]=!0;else if(n.length){const{lo:i,hi:s}=_k(n,e),a=n[i]>=e?n[i]:n[s];t[a]=!0}}function Afe(t,e,n,i){const s=t._adapter,a=+s.startOf(e[0].value,i),o=e[e.length-1].value;let r,c;for(r=a;r<=o;r=+s.add(r,1,i))c=n[r],c>=0&&(e[c].major=!0);return e}function xE(t,e,n){const i=[],s={},a=e.length;let o,r;for(o=0;o<a;++o)r=e[o],s[r]=o,i.push({value:r,major:!1});return a===0||!n?i:Afe(t,i,s,n)}class X0 extends Zd{constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,n={}){const i=e.time||(e.time={}),s=this._adapter=new bde._date(e.adapters.date);s.init(n),Gf(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(e),this._normalized=n.normalized}parse(e,n){return e===void 0?null:yE(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const e=this.options,n=this._adapter,i=e.time.unit||"day";let{min:s,max:a,minDefined:o,maxDefined:r}=this.getUserBounds();function c(d){!o&&!isNaN(d.min)&&(s=Math.min(s,d.min)),!r&&!isNaN(d.max)&&(a=Math.max(a,d.max))}(!o||!r)&&(c(this._getLabelBounds()),(e.bounds!=="ticks"||e.ticks.source!=="labels")&&c(this.getMinMax(!1))),s=ls(s)&&!isNaN(s)?s:+n.startOf(Date.now(),i),a=ls(a)&&!isNaN(a)?a:+n.endOf(Date.now(),i)+1,this.min=Math.min(s,a-1),this.max=Math.max(s+1,a)}_getLabelBounds(){const e=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return e.length&&(n=e[0],i=e[e.length-1]),{min:n,max:i}}buildTicks(){const e=this.options,n=e.time,i=e.ticks,s=i.source==="labels"?this.getLabelTimestamps():this._generate();e.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const a=this.min,o=this.max,r=Yce(s,a,o);return this._unit=n.unit||(i.autoSkip?bE(n.minUnit,this.min,this.max,this._getLabelCapacity(a)):kfe(this,r.length,n.minUnit,this.min,this.max)),this._majorUnit=!i.major.enabled||this._unit==="year"?void 0:Cfe(this._unit),this.initOffsets(s),e.reverse&&r.reverse(),xE(this,r,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(e=>+e.value))}initOffsets(e=[]){let n=0,i=0,s,a;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?n=1-s:n=(this.getDecimalForValue(e[1])-s)/2,a=this.getDecimalForValue(e[e.length-1]),e.length===1?i=a:i=(a-this.getDecimalForValue(e[e.length-2]))/2);const o=e.length<3?.5:.25;n=ya(n,0,o),i=ya(i,0,o),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,s=this.options,a=s.time,o=a.unit||bE(a.minUnit,n,i,this._getLabelCapacity(n)),r=cn(s.ticks.stepSize,1),c=o==="week"?a.isoWeekday:!1,d=ym(c)||c===!0,f={};let m=n,g,y;if(d&&(m=+e.startOf(m,"isoWeek",c)),m=+e.startOf(m,d?"day":o),e.diff(i,n,o)>1e5*r)throw new Error(n+" and "+i+" are too far apart with stepSize of "+r+" "+o);const b=s.ticks.source==="data"&&this.getDataTimestamps();for(g=m,y=0;g<i;g=+e.add(g,r,o),y++)vE(f,g,b);return(g===i||s.bounds==="ticks"||y===1)&&vE(f,g,b),Object.keys(f).sort(_E).map(v=>+v)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const s=this.options.time.displayFormats,a=this._unit,o=n||s[a];return this._adapter.format(e,o)}_tickFormatFunction(e,n,i,s){const a=this.options,o=a.ticks.callback;if(o)return Bn(o,[e,n,i],this);const r=a.time.displayFormats,c=this._unit,d=this._majorUnit,f=c&&r[c],m=d&&r[d],g=i[n],y=d&&m&&g&&g.major;return this._adapter.format(e,s||(y?m:f))}generateTickLabels(e){let n,i,s;for(n=0,i=e.length;n<i;++n)s=e[n],s.label=this._tickFormatFunction(s.value,n,e)}getDecimalForValue(e){return e===null?NaN:(e-this.min)/(this.max-this.min)}getPixelForValue(e){const n=this._offsets,i=this.getDecimalForValue(e);return this.getPixelForDecimal((n.start+i)*n.factor)}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return this.min+i*(this.max-this.min)}_getLabelSize(e){const n=this.options.ticks,i=this.ctx.measureText(e).width,s=kc(this.isHorizontal()?n.maxRotation:n.minRotation),a=Math.cos(s),o=Math.sin(s),r=this._resolveTickFontOptions(0).size;return{w:i*a+r*o,h:i*o+r*a}}_getLabelCapacity(e){const n=this.options.time,i=n.displayFormats,s=i[n.unit]||i.millisecond,a=this._tickFormatFunction(e,0,xE(this,[e],this._majorUnit),s),o=this._getLabelSize(a),r=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return r>0?r:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n<i;++n)e=e.concat(s[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(e)}getLabelTimestamps(){const e=this._cache.labels||[];let n,i;if(e.length)return e;const s=this.getLabels();for(n=0,i=s.length;n<i;++n)e.push(yE(this,s[n]));return this._cache.labels=this._normalized?e:this.normalize(e)}normalize(e){return Zce(e.sort(_E))}}Pt(X0,"id","time"),Pt(X0,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function y_(t,e,n){let i=0,s=t.length-1,a,o,r,c;n?(e>=t[i].pos&&e<=t[s].pos&&({lo:i,hi:s}=Cc(t,"pos",e)),{pos:a,time:r}=t[i],{pos:o,time:c}=t[s]):(e>=t[i].time&&e<=t[s].time&&({lo:i,hi:s}=Cc(t,"time",e)),{time:a,pos:r}=t[i],{time:o,pos:c}=t[s]);const d=o-a;return d?r+(c-r)*(e-a)/d:r}class SE extends X0{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=y_(n,this.min),this._tableRange=y_(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,s=[],a=[];let o,r,c,d,f;for(o=0,r=e.length;o<r;++o)d=e[o],d>=n&&d<=i&&s.push(d);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(o=0,r=s.length;o<r;++o)f=s[o+1],c=s[o-1],d=s[o],Math.round((f+c)/2)!==d&&a.push({time:d,pos:o/(r-1)});return a}_generate(){const e=this.min,n=this.max;let i=super.getDataTimestamps();return(!i.includes(e)||!i.length)&&i.splice(0,0,e),(!i.includes(n)||i.length===1)&&i.push(n),i.sort((s,a)=>s-a)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(y_(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return y_(this._table,i*this._tableRange+this._minPos,!0)}}Pt(SE,"id","timeseries"),Pt(SE,"defaults",X0.defaults);function Q0(t){const[e,n]=S.useState(()=>window.matchMedia(t).matches);return S.useEffect(()=>{const i=window.matchMedia(t),s=a=>{n(a.matches)};return s({matches:i.matches}),i.addEventListener("change",s),()=>i.removeEventListener("change",s)},[t]),e}function Nfe(){const{t}=et(),{showNotification:e}=_n(),n=ns(O=>O.usage),i=ns(O=>O.loading),s=ns(O=>O.error),a=ns(O=>O.lastRefreshedAt),o=ns(O=>O.loadUsageStats),[r,c]=S.useState({}),[d,f]=S.useState(!1),[m,g]=S.useState(!1),y=S.useRef(null),b=S.useCallback(async()=>{await o({force:!0,staleTimeMs:Cr})},[o]);S.useEffect(()=>{o({staleTimeMs:Cr}).catch(()=>{}),c(QG())},[o]);const v=async()=>{f(!0);try{const O=await Y2.exportUsage(),N=typeof O?.exported_at=="string"?new Date(O.exported_at):new Date,E=`usage-export-${(Number.isNaN(N.getTime())?new Date().toISOString():N.toISOString()).replace(/[:.]/g,"-")}.json`;Cl({filename:E,blob:new Blob([JSON.stringify(O??{},null,2)],{type:"application/json"})}),e(t("usage_stats.export_success"),"success")}catch(O){const N=O instanceof Error?O.message:"";e(`${t("notification.download_failed")}${N?`: ${N}`:""}`,"error")}finally{f(!1)}},x=()=>{y.current?.click()},A=async O=>{const N=O.target.files?.[0];if(O.target.value="",!!N){g(!0);try{const P=await N.text();let E;try{E=JSON.parse(P)}catch{e(t("usage_stats.import_invalid"),"error");return}const R=await Y2.importUsage(E);e(t("usage_stats.import_success",{added:R?.added??0,skipped:R?.skipped??0,total:R?.total_requests??0,failed:R?.failed_requests??0}),"success");try{await o({force:!0,staleTimeMs:Cr})}catch(z){const D=z instanceof Error?z.message:"";e(`${t("notification.refresh_failed")}${D?`: ${D}`:""}`,"error")}}catch(P){const E=P instanceof Error?P.message:"";e(`${t("notification.upload_failed")}${E?`: ${E}`:""}`,"error")}finally{g(!1)}}},k=S.useCallback(O=>{c(O),YG(O)},[]),T=n,L=s||"",M=a?new Date(a):null;return{usage:T,loading:i,error:L,lastRefreshedAt:M,modelPrices:r,setModelPrices:k,loadUsage:b,handleExport:v,handleImport:x,handleImportChange:A,importInputRef:y,exporting:d,importing:m}}function Tfe({usage:t,loading:e,nowMs:n}){const i=S.useMemo(()=>{if(!t)return{labels:[],requests:[],tokens:[]};if(!Number.isFinite(n)||n<=0)return{labels:[],requests:[],tokens:[]};const f=ja(t);if(!f.length)return{labels:[],requests:[],tokens:[]};const m=60,g=n,y=g-m*60*1e3,b=new Array(m).fill(0),v=new Array(m).fill(0);return f.forEach(A=>{const k=A.__timestampMs??0;if(!Number.isFinite(k)||k<y||k>g)return;const T=Math.min(m-1,Math.floor((k-y)/6e4));b[T]+=1,v[T]+=Vd(A)}),{labels:b.map((A,k)=>{const T=new Date(y+(k+1)*6e4),L=T.getHours().toString().padStart(2,"0"),M=T.getMinutes().toString().padStart(2,"0");return`${L}:${M}`}),requests:b,tokens:v}},[n,t]),s=S.useCallback((f,m,g)=>{if(e||!f?.data?.length)return null;const y=Math.max(f.data.length-60,0),b=f.labels.slice(y),v=f.data.slice(y);return{data:{labels:b,datasets:[{data:v,borderColor:m,backgroundColor:g,fill:!0,tension:.45,pointRadius:0,borderWidth:2}]}}},[e]),a=S.useMemo(()=>s({labels:i.labels,data:i.requests},"#8b8680","rgba(139, 134, 128, 0.18)"),[s,i.labels,i.requests]),o=S.useMemo(()=>s({labels:i.labels,data:i.tokens},"#8b5cf6","rgba(139, 92, 246, 0.18)"),[s,i.labels,i.tokens]),r=S.useMemo(()=>s({labels:i.labels,data:i.requests},"#22c55e","rgba(34, 197, 94, 0.18)"),[s,i.labels,i.requests]),c=S.useMemo(()=>s({labels:i.labels,data:i.tokens},"#f97316","rgba(249, 115, 22, 0.18)"),[s,i.labels,i.tokens]),d=S.useMemo(()=>s({labels:i.labels,data:i.tokens},"#f59e0b","rgba(245, 158, 11, 0.18)"),[s,i.labels,i.tokens]);return{requestsSparkline:a,tokensSparkline:o,rpmSparkline:r,tpmSparkline:c,costSparkline:d}}const Mfe={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{x:{display:!1},y:{display:!1}},elements:{line:{tension:.45},point:{radius:0}}};function Y0({period:t,labels:e,isDark:n,isMobile:i}){const s=i&&t==="hour"?0:i?2:4,a=i?10:12,o=i?t==="hour"?8:6:t==="hour"?12:10,r=n?"rgba(255, 255, 255, 0.06)":"rgba(17, 24, 39, 0.06)",c=n?"rgba(255, 255, 255, 0.10)":"rgba(17, 24, 39, 0.10)",d=n?"rgba(255, 255, 255, 0.72)":"rgba(17, 24, 39, 0.72)";return{responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{backgroundColor:n?"rgba(17, 24, 39, 0.92)":"rgba(255, 255, 255, 0.98)",titleColor:n?"#ffffff":"#111827",bodyColor:n?"rgba(255, 255, 255, 0.86)":"#374151",borderColor:n?"rgba(255, 255, 255, 0.10)":"rgba(17, 24, 39, 0.10)",borderWidth:1,padding:10,displayColors:!0,usePointStyle:!0}},scales:{x:{grid:{color:r,drawTicks:!1},border:{color:c},ticks:{color:d,font:{size:a},maxRotation:i?0:45,minRotation:0,autoSkip:!0,maxTicksLimit:o,callback:b=>{const v=typeof b=="number"?b:Number(b),x=Number.isFinite(v)&&e[v]?e[v]:typeof b=="string"?b:"";if(t==="hour"){const[A,k]=x.split(" ");return k?k.startsWith("00:")&&A?[A,k]:k:x}if(i){const A=x.split("-");if(A.length===3)return`${A[1]}-${A[2]}`}return x}}},y:{beginAtZero:!0,grid:{color:r},border:{color:c},ticks:{color:d,font:{size:a}}}},elements:{line:{tension:.35,borderWidth:i?1.5:2},point:{borderWidth:2,radius:s,hoverRadius:4}}}}function Ak(t,e){return!e||t<=0?void 0:`${Math.min(t*56,3e3)}px`}function Lfe({usage:t,chartLines:e,isDark:n,isMobile:i,hourWindowHours:s}){const[a,o]=S.useState("day"),[r,c]=S.useState("day"),d=S.useMemo(()=>t?tO(t,a,"requests",e,{hourWindowHours:s}):{labels:[],datasets:[]},[t,a,e,s]),f=S.useMemo(()=>t?tO(t,r,"tokens",e,{hourWindowHours:s}):{labels:[],datasets:[]},[t,r,e,s]),m=S.useMemo(()=>Y0({period:a,labels:d.labels,isDark:n,isMobile:i}),[a,d.labels,n,i]),g=S.useMemo(()=>Y0({period:r,labels:f.labels,isDark:n,isMobile:i}),[r,f.labels,n,i]);return{requestsPeriod:a,setRequestsPeriod:o,tokensPeriod:r,setTokensPeriod:c,requestsChartData:d,tokensChartData:f,requestsChartOptions:m,tokensChartOptions:g}}const O5="label";function wE(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function Ofe(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function P5(t,e){t.labels=e}function E5(t,e,n=O5){const i=[];t.datasets=e.map(s=>{const a=t.datasets.find(o=>o[n]===s[n]);return!a||!s.data||i.includes(a)?{...s}:(i.push(a),Object.assign(a,s),a)})}function Pfe(t,e=O5){const n={labels:[],datasets:[]};return P5(n,t.labels),E5(n,t.datasets,e),n}function Efe(t,e){const{height:n=150,width:i=300,redraw:s=!1,datasetIdKey:a,type:o,data:r,options:c,plugins:d=[],fallbackContent:f,updateMode:m,...g}=t,y=S.useRef(null),b=S.useRef(null),v=()=>{y.current&&(b.current=new Zy(y.current,{type:o,data:Pfe(r,a),options:c&&{...c},plugins:d}),wE(e,b.current))},x=()=>{wE(e,null),b.current&&(b.current.destroy(),b.current=null)};return S.useEffect(()=>{!s&&b.current&&c&&Ofe(b.current,c)},[s,c]),S.useEffect(()=>{!s&&b.current&&P5(b.current.config.data,r.labels)},[s,r.labels]),S.useEffect(()=>{!s&&b.current&&r.datasets&&E5(b.current.config.data,r.datasets,a)},[s,r.datasets]),S.useEffect(()=>{b.current&&(s?(x(),setTimeout(v)):b.current.update(m))},[s,c,r.labels,r.datasets,m]),S.useEffect(()=>{b.current&&(x(),setTimeout(v))},[o]),S.useEffect(()=>(v(),()=>x()),[]),h.jsx("canvas",{ref:y,role:"img",height:n,width:i,...g,children:f})}const jfe=S.forwardRef(Efe);function Rfe(t,e){return Zy.register(e),S.forwardRef((n,i)=>h.jsx(jfe,{...n,ref:i,type:t}))}const nb=Rfe("line",u0),Dfe="UsagePage-module__container___nCAFc",Ffe="UsagePage-module__header___HxnC8",Ife="UsagePage-module__headerActions___3cXLO",Ufe="UsagePage-module__lastRefreshed___cqlrd",Bfe="UsagePage-module__timeRangeGroup___hI2kH",zfe="UsagePage-module__timeRangeLabel___2VsOz",qfe="UsagePage-module__timeRangeSelectControl___6vBeH",Kfe="UsagePage-module__pageTitle___70rs5",Hfe="UsagePage-module__errorBox___gB8Rj",Vfe="UsagePage-module__hint___pUQ06",Wfe="UsagePage-module__loadingOverlay___BuX9V",Gfe="UsagePage-module__loadingOverlayContent___3vf0S",$fe="UsagePage-module__loadingOverlaySpinner___MvMZD",Xfe="UsagePage-module__loadingOverlayText___64YIy",Qfe="UsagePage-module__statsGrid___Q0sW-",Yfe="UsagePage-module__statCard___iCndn",Jfe="UsagePage-module__statValue___duHNu",Zfe="UsagePage-module__statCardHeader___IbBKW",eme="UsagePage-module__statLabelGroup___SMxKl",tme="UsagePage-module__statIconBadge___bPCTx",nme="UsagePage-module__statLabel___V2mir",ime="UsagePage-module__statSuccess___AmaqC",sme="UsagePage-module__statFailure___jWtUQ",ame="UsagePage-module__statNeutral___IhwNw",ome="UsagePage-module__statMetaRow___VB7gR",rme="UsagePage-module__statMetaItem___YIXw2",lme="UsagePage-module__statMetaDot___daNGF",cme="UsagePage-module__statSubtle___yXU7t",ume="UsagePage-module__statTrend___ra06-",dme="UsagePage-module__statTrendPlaceholder___oRADx",hme="UsagePage-module__sparkline___1tqGF",fme="UsagePage-module__apiSortBar___MpyiE",mme="UsagePage-module__apiSortBtn___AkzG0",pme="UsagePage-module__apiSortBtnActive___-PugQ",gme="UsagePage-module__apiList___2kChf",_me="UsagePage-module__apiItem___cyn0u",yme="UsagePage-module__apiHeader___tT8FK",bme="UsagePage-module__apiInfo___OFEK-",vme="UsagePage-module__apiEndpoint___J38DV",xme="UsagePage-module__apiStats___blw7G",Sme="UsagePage-module__apiBadge___OAqI7",wme="UsagePage-module__expandIcon___5FU6h",kme="UsagePage-module__apiModels___eZNUp",Cme="UsagePage-module__modelRow___ZKhXO",Ame="UsagePage-module__modelName___mlOFW",Nme="UsagePage-module__modelStat___9behg",Tme="UsagePage-module__detailsFixedCard___5TOHu",Mme="UsagePage-module__detailsScroll___FxWDO",Lme="UsagePage-module__tableWrapper___Sax8l",Ome="UsagePage-module__table___-sWaI",Pme="UsagePage-module__sortableHeader___khBCr",Eme="UsagePage-module__sortHeaderButton___T3KIB",jme="UsagePage-module__modelCell___0d7fk",Rme="UsagePage-module__credentialType___FoGup",Dme="UsagePage-module__requestCountCell___17o3C",Fme="UsagePage-module__requestBreakdown___VDvhm",Ime="UsagePage-module__pricingSection___jk8kk",Ume="UsagePage-module__priceForm___OJwRe",Bme="UsagePage-module__formRow___sHXY2",zme="UsagePage-module__formField___Vf4b-",qme="UsagePage-module__pricesList___ys67C",Kme="UsagePage-module__pricesTitle___CJRmb",Hme="UsagePage-module__pricesGrid___rCyGv",Vme="UsagePage-module__priceItem___I0JbD",Wme="UsagePage-module__priceInfo___TteL5",Gme="UsagePage-module__priceModel___GvFG8",$me="UsagePage-module__priceMeta___V2rEi",Xme="UsagePage-module__priceActions___2BFSQ",Qme="UsagePage-module__editModalBody___z4n58",Yme="UsagePage-module__chartWrapper___lAIqa",Jme="UsagePage-module__chartLegend___OA6vI",Zme="UsagePage-module__legendItem___g2pb0",epe="UsagePage-module__legendDot___Ehp8J",tpe="UsagePage-module__legendLabel___pjtGV",npe="UsagePage-module__chartArea___ZykTT",ipe="UsagePage-module__chartScroller___AtIi0",spe="UsagePage-module__chartCanvas___NYz9z",ape="UsagePage-module__periodButtons___MD8jm",ope="UsagePage-module__chartsGrid___k56wO",rpe="UsagePage-module__detailsGrid___zSOOI",lpe="UsagePage-module__requestEventsActions___cJzSl",cpe="UsagePage-module__requestEventsToolbar___xx5kv",upe="UsagePage-module__requestEventsFilterItem___5vPqu",dpe="UsagePage-module__requestEventsFilterLabel___UeBCu",hpe="UsagePage-module__requestEventsSelect___GDYz1",fpe="UsagePage-module__requestEventsMeta___jhpNH",mpe="UsagePage-module__requestEventsLimitHint___vP-TA",ppe="UsagePage-module__requestEventsTableWrapper___QQY-f",gpe="UsagePage-module__requestEventsTimestamp___I6vM1",_pe="UsagePage-module__requestEventsSourceCell___y8Who",ype="UsagePage-module__requestEventsAuthIndex___DAZfi",bpe="UsagePage-module__requestEventsResultSuccess___Ovwcs",vpe="UsagePage-module__requestEventsResultFailed___sUYiy",xpe="UsagePage-module__chartLineHeader___xPk4F",Spe="UsagePage-module__chartLineList___Le-PV",wpe="UsagePage-module__chartLineItem___p7NYT",kpe="UsagePage-module__chartLineLabel___jA5Ww",Cpe="UsagePage-module__chartLineCount___yVkE2",Ape="UsagePage-module__chartLineHint___v7FGv",Npe="UsagePage-module__healthCard___FpTJ7",Tpe="UsagePage-module__healthHeader___uxdUE",Mpe="UsagePage-module__healthTitle___G-5Ux",Lpe="UsagePage-module__healthMeta___DeEqL",Ope="UsagePage-module__healthWindow___T1kJo",Ppe="UsagePage-module__healthRate___EKiz8",Epe="UsagePage-module__healthRateHigh___iGuwG",jpe="UsagePage-module__healthRateMedium___E67ug",Rpe="UsagePage-module__healthRateLow___RqYIj",Dpe="UsagePage-module__healthGridScroller___g50pg",Fpe="UsagePage-module__healthGrid___QWLzl",Ipe="UsagePage-module__healthBlockWrapper___1Q1f5",Upe="UsagePage-module__healthBlock___7ZNns",Bpe="UsagePage-module__healthBlockActive___vtccW",zpe="UsagePage-module__healthBlockIdle___qnkeV",qpe="UsagePage-module__healthTooltip___Ah2TY",Kpe="UsagePage-module__healthTooltipBelow___IwlME",Hpe="UsagePage-module__healthTooltipLeft___bxqyd",Vpe="UsagePage-module__healthTooltipRight___snBMi",Wpe="UsagePage-module__healthTooltipTime___aOKYR",Gpe="UsagePage-module__healthTooltipStats___EqRXO",$pe="UsagePage-module__healthTooltipSuccess___Qc947",Xpe="UsagePage-module__healthTooltipFailure___4fKGK",Qpe="UsagePage-module__healthTooltipRate___rg7Rm",Ype="UsagePage-module__healthLegend___lLmsq",Jpe="UsagePage-module__healthLegendLabel___muJul",Zpe="UsagePage-module__healthLegendColors___HbDI-",ege="UsagePage-module__healthLegendBlock___r3rdr",ce={container:Dfe,header:Ffe,headerActions:Ife,lastRefreshed:Ufe,timeRangeGroup:Bfe,timeRangeLabel:zfe,timeRangeSelectControl:qfe,pageTitle:Kfe,errorBox:Hfe,hint:Vfe,loadingOverlay:Wfe,loadingOverlayContent:Gfe,loadingOverlaySpinner:$fe,loadingOverlayText:Xfe,statsGrid:Qfe,statCard:Yfe,statValue:Jfe,statCardHeader:Zfe,statLabelGroup:eme,statIconBadge:tme,statLabel:nme,statSuccess:ime,statFailure:sme,statNeutral:ame,statMetaRow:ome,statMetaItem:rme,statMetaDot:lme,statSubtle:cme,statTrend:ume,statTrendPlaceholder:dme,sparkline:hme,apiSortBar:fme,apiSortBtn:mme,apiSortBtnActive:pme,apiList:gme,apiItem:_me,apiHeader:yme,apiInfo:bme,apiEndpoint:vme,apiStats:xme,apiBadge:Sme,expandIcon:wme,apiModels:kme,modelRow:Cme,modelName:Ame,modelStat:Nme,detailsFixedCard:Tme,detailsScroll:Mme,tableWrapper:Lme,table:Ome,sortableHeader:Pme,sortHeaderButton:Eme,modelCell:jme,credentialType:Rme,requestCountCell:Dme,requestBreakdown:Fme,pricingSection:Ime,priceForm:Ume,formRow:Bme,formField:zme,pricesList:qme,pricesTitle:Kme,pricesGrid:Hme,priceItem:Vme,priceInfo:Wme,priceModel:Gme,priceMeta:$me,priceActions:Xme,editModalBody:Qme,chartWrapper:Yme,chartLegend:Jme,legendItem:Zme,legendDot:epe,legendLabel:tpe,chartArea:npe,chartScroller:ipe,chartCanvas:spe,periodButtons:ape,chartsGrid:ope,detailsGrid:rpe,requestEventsActions:lpe,requestEventsToolbar:cpe,requestEventsFilterItem:upe,requestEventsFilterLabel:dpe,requestEventsSelect:hpe,requestEventsMeta:fpe,requestEventsLimitHint:mpe,requestEventsTableWrapper:ppe,requestEventsTimestamp:gpe,requestEventsSourceCell:_pe,requestEventsAuthIndex:ype,requestEventsResultSuccess:bpe,requestEventsResultFailed:vpe,chartLineHeader:xpe,chartLineList:Spe,chartLineItem:wpe,chartLineLabel:kpe,chartLineCount:Cpe,chartLineHint:Ape,healthCard:Npe,healthHeader:Tpe,healthTitle:Mpe,healthMeta:Lpe,healthWindow:Ope,healthRate:Ppe,healthRateHigh:Epe,healthRateMedium:jpe,healthRateLow:Rpe,healthGridScroller:Dpe,healthGrid:Fpe,healthBlockWrapper:Ipe,healthBlock:Upe,healthBlockActive:Bpe,healthBlockIdle:zpe,healthTooltip:qpe,healthTooltipBelow:Kpe,healthTooltipLeft:Hpe,healthTooltipRight:Vpe,healthTooltipTime:Wpe,healthTooltipStats:Gpe,healthTooltipSuccess:$pe,healthTooltipFailure:Xpe,healthTooltipRate:Qpe,healthLegend:Ype,healthLegendLabel:Jpe,healthLegendColors:Zpe,healthLegendBlock:ege};function tge({usage:t,loading:e,modelPrices:n,nowMs:i,sparklines:s}){const{t:a}=et(),o=Object.keys(n).length>0,{tokenBreakdown:r,rateStats:c,totalCost:d}=S.useMemo(()=>{const m={tokenBreakdown:{cachedTokens:0,reasoningTokens:0},rateStats:{rpm:0,tpm:0,windowMinutes:30,requestCount:0,tokenCount:0},totalCost:0};if(!t)return m;const g=ja(t);if(!g.length)return m;let y=0,b=0,v=0;const x=i,A=30,k=x-A*60*1e3;let T=0,L=0;const M=Number.isFinite(x)&&x>0;g.forEach(N=>{const P=N.tokens;y+=Math.max(typeof P.cached_tokens=="number"?Math.max(P.cached_tokens,0):0,typeof P.cache_tokens=="number"?Math.max(P.cache_tokens,0):0),typeof P.reasoning_tokens=="number"&&(b+=P.reasoning_tokens);const E=N.__timestampMs??0;M&&Number.isFinite(E)&&E>=k&&E<=x&&(T+=1,L+=Vd(N)),o&&(v+=tp(N,n))});const O=A;return{tokenBreakdown:{cachedTokens:y,reasoningTokens:b},rateStats:{rpm:T/O,tpm:L/O,windowMinutes:A,requestCount:T,tokenCount:L},totalCost:v}},[o,n,i,t]),f=[{key:"requests",label:a("usage_stats.total_requests"),icon:h.jsx(Ju,{size:16}),accent:"#8b8680",accentSoft:"rgba(139, 134, 128, 0.18)",accentBorder:"rgba(139, 134, 128, 0.35)",value:e?"-":(t?.total_requests??0).toLocaleString(),meta:h.jsxs(h.Fragment,{children:[h.jsxs("span",{className:ce.statMetaItem,children:[h.jsx("span",{className:ce.statMetaDot,style:{backgroundColor:"#10b981"}}),a("usage_stats.success_requests"),": ",e?"-":t?.success_count??0]}),h.jsxs("span",{className:ce.statMetaItem,children:[h.jsx("span",{className:ce.statMetaDot,style:{backgroundColor:"#c65746"}}),a("usage_stats.failed_requests"),": ",e?"-":t?.failure_count??0]})]}),trend:s.requests},{key:"tokens",label:a("usage_stats.total_tokens"),icon:h.jsx(U2,{size:16}),accent:"#8b5cf6",accentSoft:"rgba(139, 92, 246, 0.18)",accentBorder:"rgba(139, 92, 246, 0.35)",value:e?"-":br(t?.total_tokens??0),meta:h.jsxs(h.Fragment,{children:[h.jsxs("span",{className:ce.statMetaItem,children:[a("usage_stats.cached_tokens"),": ",e?"-":br(r.cachedTokens)]}),h.jsxs("span",{className:ce.statMetaItem,children:[a("usage_stats.reasoning_tokens"),": ",e?"-":br(r.reasoningTokens)]})]}),trend:s.tokens},{key:"rpm",label:a("usage_stats.rpm_30m"),icon:h.jsx(j0,{size:16}),accent:"#22c55e",accentSoft:"rgba(34, 197, 94, 0.18)",accentBorder:"rgba(34, 197, 94, 0.32)",value:e?"-":YL(c.rpm),meta:h.jsxs("span",{className:ce.statMetaItem,children:[a("usage_stats.total_requests"),": ",e?"-":c.requestCount.toLocaleString()]}),trend:s.rpm},{key:"tpm",label:a("usage_stats.tpm_30m"),icon:h.jsx(B2,{size:16}),accent:"#f97316",accentSoft:"rgba(249, 115, 22, 0.18)",accentBorder:"rgba(249, 115, 22, 0.32)",value:e?"-":YL(c.tpm),meta:h.jsxs("span",{className:ce.statMetaItem,children:[a("usage_stats.total_tokens"),": ",e?"-":br(c.tokenCount)]}),trend:s.tpm},{key:"cost",label:a("usage_stats.total_cost"),icon:h.jsx(Xq,{size:16}),accent:"#f59e0b",accentSoft:"rgba(245, 158, 11, 0.18)",accentBorder:"rgba(245, 158, 11, 0.32)",value:e?"-":o?Ky(d):"--",meta:h.jsxs(h.Fragment,{children:[h.jsxs("span",{className:ce.statMetaItem,children:[a("usage_stats.total_tokens"),": ",e?"-":br(t?.total_tokens??0)]}),!o&&h.jsx("span",{className:`${ce.statMetaItem} ${ce.statSubtle}`,children:a("usage_stats.cost_need_price")})]}),trend:o?s.cost:null}];return h.jsx("div",{className:ce.statsGrid,children:f.map(m=>h.jsxs("div",{className:ce.statCard,style:{"--accent":m.accent,"--accent-soft":m.accentSoft,"--accent-border":m.accentBorder},children:[h.jsxs("div",{className:ce.statCardHeader,children:[h.jsx("div",{className:ce.statLabelGroup,children:h.jsx("span",{className:ce.statLabel,children:m.label})}),h.jsx("span",{className:ce.statIconBadge,children:m.icon})]}),h.jsx("div",{className:ce.statValue,children:m.value}),m.meta&&h.jsx("div",{className:ce.statMetaRow,children:m.meta}),h.jsx("div",{className:ce.statTrend,children:m.trend?h.jsx(nb,{className:ce.sparkline,data:m.trend.data,options:Mfe}):h.jsx("div",{className:ce.statTrendPlaceholder})})]},m.key))})}function kE({title:t,period:e,onPeriodChange:n,chartData:i,chartOptions:s,loading:a,isMobile:o,emptyText:r}){const{t:c}=et();return h.jsx(Dt,{title:t,extra:h.jsxs("div",{className:ce.periodButtons,children:[h.jsx(me,{variant:e==="hour"?"primary":"secondary",size:"sm",onClick:()=>n("hour"),children:c("usage_stats.by_hour")}),h.jsx(me,{variant:e==="day"?"primary":"secondary",size:"sm",onClick:()=>n("day"),children:c("usage_stats.by_day")})]}),children:a?h.jsx("div",{className:ce.hint,children:c("common.loading")}):i.labels.length>0?h.jsxs("div",{className:ce.chartWrapper,children:[h.jsx("div",{className:ce.chartLegend,"aria-label":"Chart legend",children:i.datasets.map((d,f)=>h.jsxs("div",{className:ce.legendItem,title:d.label,children:[h.jsx("span",{className:ce.legendDot,style:{backgroundColor:d.borderColor}}),h.jsx("span",{className:ce.legendLabel,children:d.label})]},`${d.label}-${f}`))}),h.jsx("div",{className:ce.chartArea,children:h.jsx("div",{className:ce.chartScroller,children:h.jsx("div",{className:ce.chartCanvas,style:e==="hour"?{minWidth:Ak(i.labels.length,o)}:void 0,children:h.jsx(nb,{data:i,options:s})})})})]}):h.jsx("div",{className:ce.hint,children:r})})}function nge({chartLines:t,modelNames:e,maxLines:n=9,onChange:i}){const{t:s}=et(),a=()=>{if(t.length>=n)return;const d=e.find(f=>!t.includes(f));i(d?[...t,d]:[...t,"all"])},o=d=>{if(t.length<=1)return;const f=[...t];f.splice(d,1),i(f)},r=(d,f)=>{const m=[...t];m[d]=f,i(m)},c=S.useMemo(()=>[{value:"all",label:s("usage_stats.chart_line_all")},...e.map(d=>({value:d,label:d}))],[e,s]);return h.jsxs(Dt,{title:s("usage_stats.chart_line_actions_label"),extra:h.jsxs("div",{className:ce.chartLineHeader,children:[h.jsxs("span",{className:ce.chartLineCount,children:[t.length,"/",n]}),h.jsx(me,{variant:"secondary",size:"sm",onClick:a,disabled:t.length>=n,children:s("usage_stats.chart_line_add")})]}),children:[h.jsx("div",{className:ce.chartLineList,children:t.map((d,f)=>h.jsxs("div",{className:ce.chartLineItem,children:[h.jsx("span",{className:ce.chartLineLabel,children:s(`usage_stats.chart_line_label_${f+1}`)}),h.jsx(Vi,{value:d,options:c,onChange:m=>r(f,m)}),t.length>1&&h.jsx(me,{variant:"danger",size:"sm",onClick:()=>o(f),children:s("usage_stats.chart_line_delete")})]},f))}),h.jsx("p",{className:ce.chartLineHint,children:s("usage_stats.chart_line_hint")})]})}function ige({apiStats:t,loading:e,hasPrices:n}){const{t:i}=et(),[s,a]=S.useState(new Set),[o,r]=S.useState("requests"),[c,d]=S.useState("desc"),f=b=>{a(v=>{const x=new Set(v);return x.has(b)?x.delete(b):x.add(b),x})},m=b=>{o===b?d(v=>v==="asc"?"desc":"asc"):(r(b),d(b==="endpoint"?"asc":"desc"))},g=S.useMemo(()=>{const b=[...t],v=c==="asc"?1:-1;return b.sort((x,A)=>{switch(o){case"endpoint":return v*x.endpoint.localeCompare(A.endpoint);case"requests":return v*(x.totalRequests-A.totalRequests);case"tokens":return v*(x.totalTokens-A.totalTokens);case"cost":return v*(x.totalCost-A.totalCost);default:return 0}}),b},[t,o,c]),y=b=>o===b?c==="asc"?" ▲":" ▼":"";return h.jsx(Dt,{title:i("usage_stats.api_details"),className:ce.detailsFixedCard,children:e?h.jsx("div",{className:ce.hint,children:i("common.loading")}):g.length>0?h.jsxs(h.Fragment,{children:[h.jsx("div",{className:ce.apiSortBar,children:[["endpoint","usage_stats.api_endpoint"],["requests","usage_stats.requests_count"],["tokens","usage_stats.tokens_count"],...n?[["cost","usage_stats.total_cost"]]:[]].map(([b,v])=>h.jsxs("button",{type:"button","aria-pressed":o===b,className:`${ce.apiSortBtn} ${o===b?ce.apiSortBtnActive:""}`,onClick:()=>m(b),children:[i(v),y(b)]},b))}),h.jsx("div",{className:ce.detailsScroll,children:h.jsx("div",{className:ce.apiList,children:g.map((b,v)=>{const x=s.has(b.endpoint),A=`api-models-${v}`;return h.jsxs("div",{className:ce.apiItem,children:[h.jsxs("button",{type:"button",className:ce.apiHeader,onClick:()=>f(b.endpoint),"aria-expanded":x,"aria-controls":A,children:[h.jsxs("div",{className:ce.apiInfo,children:[h.jsx("span",{className:ce.apiEndpoint,children:b.endpoint}),h.jsxs("div",{className:ce.apiStats,children:[h.jsx("span",{className:ce.apiBadge,children:h.jsxs("span",{className:ce.requestCountCell,children:[h.jsxs("span",{children:[i("usage_stats.requests_count"),": ",b.totalRequests.toLocaleString()]}),h.jsxs("span",{className:ce.requestBreakdown,children:["(",h.jsx("span",{className:ce.statSuccess,children:b.successCount.toLocaleString()})," ",h.jsx("span",{className:ce.statFailure,children:b.failureCount.toLocaleString()}),")"]})]})}),h.jsxs("span",{className:ce.apiBadge,children:[i("usage_stats.tokens_count"),": ",br(b.totalTokens)]}),n&&b.totalCost>0&&h.jsxs("span",{className:ce.apiBadge,children:[i("usage_stats.total_cost"),": ",Ky(b.totalCost)]})]})]}),h.jsx("span",{className:ce.expandIcon,children:x?"▼":"▶"})]}),x&&h.jsx("div",{id:A,className:ce.apiModels,children:Object.entries(b.models).map(([k,T])=>h.jsxs("div",{className:ce.modelRow,children:[h.jsx("span",{className:ce.modelName,children:k}),h.jsx("span",{className:ce.modelStat,children:h.jsxs("span",{className:ce.requestCountCell,children:[h.jsx("span",{children:T.requests.toLocaleString()}),h.jsxs("span",{className:ce.requestBreakdown,children:["(",h.jsx("span",{className:ce.statSuccess,children:T.successCount.toLocaleString()})," ",h.jsx("span",{className:ce.statFailure,children:T.failureCount.toLocaleString()}),")"]})]})}),h.jsx("span",{className:ce.modelStat,children:br(T.tokens)})]},k))})]},b.endpoint)})})})]}):h.jsx("div",{className:ce.hint,children:i("usage_stats.no_data")})})}function sge({modelStats:t,loading:e,hasPrices:n}){const{t:i}=et(),[s,a]=S.useState("requests"),[o,r]=S.useState("desc"),c=g=>{s===g?r(y=>y==="asc"?"desc":"asc"):(a(g),r(g==="model"?"asc":"desc"))},d=S.useMemo(()=>{const g=t.map(b=>({...b,successRate:b.requests>0?b.successCount/b.requests*100:100})),y=o==="asc"?1:-1;return g.sort((b,v)=>s==="model"?y*b.model.localeCompare(v.model):y*(b[s]-v[s])),g},[t,s,o]),f=g=>s===g?o==="asc"?" ▲":" ▼":"",m=g=>s===g?o==="asc"?"ascending":"descending":"none";return h.jsx(Dt,{title:i("usage_stats.models"),className:ce.detailsFixedCard,children:e?h.jsx("div",{className:ce.hint,children:i("common.loading")}):d.length>0?h.jsx("div",{className:ce.detailsScroll,children:h.jsx("div",{className:ce.tableWrapper,children:h.jsxs("table",{className:ce.table,children:[h.jsx("thead",{children:h.jsxs("tr",{children:[h.jsx("th",{className:ce.sortableHeader,"aria-sort":m("model"),children:h.jsxs("button",{type:"button",className:ce.sortHeaderButton,onClick:()=>c("model"),children:[i("usage_stats.model_name"),f("model")]})}),h.jsx("th",{className:ce.sortableHeader,"aria-sort":m("requests"),children:h.jsxs("button",{type:"button",className:ce.sortHeaderButton,onClick:()=>c("requests"),children:[i("usage_stats.requests_count"),f("requests")]})}),h.jsx("th",{className:ce.sortableHeader,"aria-sort":m("tokens"),children:h.jsxs("button",{type:"button",className:ce.sortHeaderButton,onClick:()=>c("tokens"),children:[i("usage_stats.tokens_count"),f("tokens")]})}),h.jsx("th",{className:ce.sortableHeader,"aria-sort":m("successRate"),children:h.jsxs("button",{type:"button",className:ce.sortHeaderButton,onClick:()=>c("successRate"),children:[i("usage_stats.success_rate"),f("successRate")]})}),n&&h.jsx("th",{className:ce.sortableHeader,"aria-sort":m("cost"),children:h.jsxs("button",{type:"button",className:ce.sortHeaderButton,onClick:()=>c("cost"),children:[i("usage_stats.total_cost"),f("cost")]})})]})}),h.jsx("tbody",{children:d.map(g=>h.jsxs("tr",{children:[h.jsx("td",{className:ce.modelCell,children:g.model}),h.jsx("td",{children:h.jsxs("span",{className:ce.requestCountCell,children:[h.jsx("span",{children:g.requests.toLocaleString()}),h.jsxs("span",{className:ce.requestBreakdown,children:["(",h.jsx("span",{className:ce.statSuccess,children:g.successCount.toLocaleString()})," ",h.jsx("span",{className:ce.statFailure,children:g.failureCount.toLocaleString()}),")"]})]})}),h.jsx("td",{children:br(g.tokens)}),h.jsx("td",{children:h.jsxs("span",{className:g.successRate>=95?ce.statSuccess:g.successRate>=80?ce.statNeutral:ce.statFailure,children:[g.successRate.toFixed(1),"%"]})}),n&&h.jsx("td",{children:g.cost>0?Ky(g.cost):"--"})]},g.model))})]})})}):h.jsx("div",{className:ce.hint,children:i("usage_stats.no_data")})})}function age({modelNames:t,modelPrices:e,onPricesChange:n}){const{t:i}=et(),[s,a]=S.useState(""),[o,r]=S.useState(""),[c,d]=S.useState(""),[f,m]=S.useState(""),[g,y]=S.useState(null),[b,v]=S.useState(""),[x,A]=S.useState(""),[k,T]=S.useState(""),L=()=>{if(!s)return;const R=parseFloat(o)||0,z=parseFloat(c)||0,D=f.trim()===""?R:parseFloat(f)||0,Q={...e,[s]:{prompt:R,completion:z,cache:D}};n(Q),a(""),r(""),d(""),m("")},M=R=>{const z={...e};delete z[R],n(z)},O=R=>{const z=e[R];y(R),v(z?.prompt?.toString()||""),A(z?.completion?.toString()||""),T(z?.cache?.toString()||"")},N=()=>{if(!g)return;const R=parseFloat(b)||0,z=parseFloat(x)||0,D=k.trim()===""?R:parseFloat(k)||0,Q={...e,[g]:{prompt:R,completion:z,cache:D}};n(Q),y(null)},P=R=>{a(R);const z=e[R];z?(r(z.prompt.toString()),d(z.completion.toString()),m(z.cache.toString())):(r(""),d(""),m(""))},E=S.useMemo(()=>[{value:"",label:i("usage_stats.model_price_select_placeholder")},...t.map(R=>({value:R,label:R}))],[t,i]);return h.jsxs(Dt,{title:i("usage_stats.model_price_settings"),children:[h.jsxs("div",{className:ce.pricingSection,children:[h.jsx("div",{className:ce.priceForm,children:h.jsxs("div",{className:ce.formRow,children:[h.jsxs("div",{className:ce.formField,children:[h.jsx("label",{children:i("usage_stats.model_name")}),h.jsx(Vi,{value:s,options:E,onChange:P,placeholder:i("usage_stats.model_price_select_placeholder")})]}),h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_prompt")," ($/1M)"]}),h.jsx(ot,{type:"number",value:o,onChange:R=>r(R.target.value),placeholder:"0.00",step:"0.0001"})]}),h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_completion")," ($/1M)"]}),h.jsx(ot,{type:"number",value:c,onChange:R=>d(R.target.value),placeholder:"0.00",step:"0.0001"})]}),h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_cache")," ($/1M)"]}),h.jsx(ot,{type:"number",value:f,onChange:R=>m(R.target.value),placeholder:"0.00",step:"0.0001"})]}),h.jsx(me,{variant:"primary",onClick:L,disabled:!s,children:i("common.save")})]})}),h.jsxs("div",{className:ce.pricesList,children:[h.jsx("h4",{className:ce.pricesTitle,children:i("usage_stats.saved_prices")}),Object.keys(e).length>0?h.jsx("div",{className:ce.pricesGrid,children:Object.entries(e).map(([R,z])=>h.jsxs("div",{className:ce.priceItem,children:[h.jsxs("div",{className:ce.priceInfo,children:[h.jsx("span",{className:ce.priceModel,children:R}),h.jsxs("div",{className:ce.priceMeta,children:[h.jsxs("span",{children:[i("usage_stats.model_price_prompt"),": $",z.prompt.toFixed(4),"/1M"]}),h.jsxs("span",{children:[i("usage_stats.model_price_completion"),": $",z.completion.toFixed(4),"/1M"]}),h.jsxs("span",{children:[i("usage_stats.model_price_cache"),": $",z.cache.toFixed(4),"/1M"]})]})]}),h.jsxs("div",{className:ce.priceActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>O(R),children:i("common.edit")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>M(R),children:i("common.delete")})]})]},R))}):h.jsx("div",{className:ce.hint,children:i("usage_stats.model_price_empty")})]})]}),h.jsx(Ss,{open:g!==null,title:g??"",onClose:()=>y(null),footer:h.jsxs("div",{className:ce.priceActions,children:[h.jsx(me,{variant:"secondary",onClick:()=>y(null),children:i("common.cancel")}),h.jsx(me,{variant:"primary",onClick:N,children:i("common.save")})]}),width:420,children:h.jsxs("div",{className:ce.editModalBody,children:[h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_prompt")," ($/1M)"]}),h.jsx(ot,{type:"number",value:b,onChange:R=>v(R.target.value),placeholder:"0.00",step:"0.0001"})]}),h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_completion")," ($/1M)"]}),h.jsx(ot,{type:"number",value:x,onChange:R=>A(R.target.value),placeholder:"0.00",step:"0.0001"})]}),h.jsxs("div",{className:ce.formField,children:[h.jsxs("label",{children:[i("usage_stats.model_price_cache")," ($/1M)"]}),h.jsx(ot,{type:"number",value:k,onChange:R=>T(R.target.value),placeholder:"0.00",step:"0.0001"})]})]})})]})}function oge({usage:t,loading:e,geminiKeys:n,claudeConfigs:i,codexConfigs:s,vertexConfigs:a,openaiProviders:o}){const{t:r}=et(),[c,d]=S.useState(new Map);S.useEffect(()=>{let m=!1;return At.list().then(g=>{if(m)return;const y=Array.isArray(g)?g:g?.files;if(!Array.isArray(y))return;const b=new Map;y.forEach(v=>{const x=v.auth_index??v.authIndex,A=rs(x);A&&b.set(A,{name:v.name||A,type:(v.type||v.provider||"").toString()})}),d(b)}).catch(()=>{}),()=>{m=!0}},[]);const f=S.useMemo(()=>{if(!t)return[];const m=ja(t),g={},y=[],b=new Set,v=new Map,x=new Map,A=new Map,k=new Map;m.forEach(M=>{const O=rs(M.auth_index),N=M.source,P=M.failed===!0;if(!N){if(!O)return;const R=k.get(O)??{success:0,failure:0};P?R.failure+=1:R.success+=1,k.set(O,R);return}const E=g[N]??{success:0,failure:0};if(P?E.failure+=1:E.success+=1,g[N]=E,O&&!x.has(N)&&x.set(N,O),O&&!A.has(N)){const R=c.get(O);R&&A.set(N,R)}});const T=(M,O)=>{const N=y[M];N&&(N.success+=O.success,N.failure+=O.failure,N.total=N.success+N.failure,N.successRate=N.total>0?N.success/N.total*100:100)},L=(M,O,N,P,E)=>{const R=_s({apiKey:M,prefix:O});let z=0,D=0;R.forEach(G=>{const B=g[G];B&&(z+=B.success,D+=B.failure,b.add(G))});const Q=z+D;Q>0&&y.push({key:E,displayName:N,type:P,success:z,failure:D,total:Q,successRate:z/Q*100})};return n.forEach((M,O)=>L(M.apiKey,M.prefix,M.prefix?.trim()||`Gemini #${O+1}`,"gemini",`gemini:${O}`)),i.forEach((M,O)=>L(M.apiKey,M.prefix,M.prefix?.trim()||`Claude #${O+1}`,"claude",`claude:${O}`)),s.forEach((M,O)=>L(M.apiKey,M.prefix,M.prefix?.trim()||`Codex #${O+1}`,"codex",`codex:${O}`)),a.forEach((M,O)=>L(M.apiKey,M.prefix,M.prefix?.trim()||`Vertex #${O+1}`,"vertex",`vertex:${O}`)),o.forEach((M,O)=>{const N=M.prefix,P=N?.trim()||M.name||`OpenAI #${O+1}`,E=new Set;_s({prefix:N}).forEach(Q=>E.add(Q)),(M.apiKeyEntries||[]).forEach(Q=>{_s({apiKey:Q.apiKey}).forEach(G=>E.add(G))});let R=0,z=0;E.forEach(Q=>{const G=g[Q];G&&(R+=G.success,z+=G.failure,b.add(Q))});const D=R+z;D>0&&y.push({key:`openai:${O}`,displayName:P,type:"openai",success:R,failure:z,total:D,successRate:R/D*100})}),Object.entries(g).forEach(([M,O])=>{if(b.has(M))return;const N=O.success+O.failure,P=A.get(M),E={key:M,displayName:P?.name||(M.startsWith("t:")?M.slice(2):M),type:P?.type||"",success:O.success,failure:O.failure,total:N,successRate:N>0?O.success/N*100:100},R=y.push(E)-1,z=x.get(M);z&&!v.has(z)&&v.set(z,R)}),k.forEach((M,O)=>{if(M.success+M.failure===0)return;const N=c.get(O);let P=v.get(O);if(P===void 0&&N){const z=y.findIndex(D=>D.displayName===N.name&&D.type===N.type);z>=0&&(P=z,v.set(O,z))}if(P!==void 0){T(P,M);return}const E=M.success+M.failure,R=y.push({key:`auth:${O}`,displayName:N?.name||O,type:N?.type||"",success:M.success,failure:M.failure,total:E,successRate:M.success/E*100})-1;v.set(O,R)}),y.sort((M,O)=>O.total-M.total)},[t,n,i,s,a,o,c]);return h.jsx(Dt,{title:r("usage_stats.credential_stats"),className:ce.detailsFixedCard,children:e?h.jsx("div",{className:ce.hint,children:r("common.loading")}):f.length>0?h.jsx("div",{className:ce.detailsScroll,children:h.jsx("div",{className:ce.tableWrapper,children:h.jsxs("table",{className:ce.table,children:[h.jsx("thead",{children:h.jsxs("tr",{children:[h.jsx("th",{children:r("usage_stats.credential_name")}),h.jsx("th",{children:r("usage_stats.requests_count")}),h.jsx("th",{children:r("usage_stats.success_rate")})]})}),h.jsx("tbody",{children:f.map(m=>h.jsxs("tr",{children:[h.jsxs("td",{className:ce.modelCell,children:[h.jsx("span",{children:m.displayName}),m.type&&h.jsx("span",{className:ce.credentialType,children:m.type})]}),h.jsx("td",{children:h.jsxs("span",{className:ce.requestCountCell,children:[h.jsx("span",{children:br(m.total)}),h.jsxs("span",{className:ce.requestBreakdown,children:["(",h.jsx("span",{className:ce.statSuccess,children:m.success.toLocaleString()})," ",h.jsx("span",{className:ce.statFailure,children:m.failure.toLocaleString()}),")"]})]})}),h.jsx("td",{children:h.jsxs("span",{className:m.successRate>=95?ce.statSuccess:m.successRate>=80?ce.statNeutral:ce.statFailure,children:[m.successRate.toFixed(1),"%"]})})]},m.key))})]})})}):h.jsx("div",{className:ce.hint,children:r("usage_stats.no_data")})})}const b_={input:{border:"#8b8680",bg:"rgba(139, 134, 128, 0.25)"},output:{border:"#22c55e",bg:"rgba(34, 197, 94, 0.25)"},cached:{border:"#f59e0b",bg:"rgba(245, 158, 11, 0.25)"},reasoning:{border:"#8b5cf6",bg:"rgba(139, 92, 246, 0.25)"}},rge=["input","output","cached","reasoning"];function lge({usage:t,loading:e,isDark:n,isMobile:i,hourWindowHours:s}){const{t:a}=et(),[o,r]=S.useState("hour"),{chartData:c,chartOptions:d}=S.useMemo(()=>{const f=o==="hour"?l$(t,s):c$(t),m={input:a("usage_stats.input_tokens"),output:a("usage_stats.output_tokens"),cached:a("usage_stats.cached_tokens"),reasoning:a("usage_stats.reasoning_tokens")},g={labels:f.labels,datasets:rge.map(v=>({label:m[v],data:f.dataByCategory[v],borderColor:b_[v].border,backgroundColor:b_[v].bg,pointBackgroundColor:b_[v].border,pointBorderColor:b_[v].border,fill:!0,tension:.35}))},y=Y0({period:o,labels:f.labels,isDark:n,isMobile:i}),b={...y,scales:{...y.scales,y:{...y.scales?.y,stacked:!0},x:{...y.scales?.x,stacked:!0}}};return{chartData:g,chartOptions:b}},[t,o,n,i,s,a]);return h.jsx(Dt,{title:a("usage_stats.token_breakdown"),extra:h.jsxs("div",{className:ce.periodButtons,children:[h.jsx(me,{variant:o==="hour"?"primary":"secondary",size:"sm",onClick:()=>r("hour"),children:a("usage_stats.by_hour")}),h.jsx(me,{variant:o==="day"?"primary":"secondary",size:"sm",onClick:()=>r("day"),children:a("usage_stats.by_day")})]}),children:e?h.jsx("div",{className:ce.hint,children:a("common.loading")}):c.labels.length>0?h.jsxs("div",{className:ce.chartWrapper,children:[h.jsx("div",{className:ce.chartLegend,"aria-label":"Chart legend",children:c.datasets.map((f,m)=>h.jsxs("div",{className:ce.legendItem,title:f.label,children:[h.jsx("span",{className:ce.legendDot,style:{backgroundColor:f.borderColor}}),h.jsx("span",{className:ce.legendLabel,children:f.label})]},`${f.label}-${m}`))}),h.jsx("div",{className:ce.chartArea,children:h.jsx("div",{className:ce.chartScroller,children:h.jsx("div",{className:ce.chartCanvas,style:o==="hour"?{minWidth:Ak(c.labels.length,i)}:void 0,children:h.jsx(nb,{data:c,options:d})})})})]}):h.jsx("div",{className:ce.hint,children:a("usage_stats.no_data")})})}const E1="#f59e0b",cge="rgba(245, 158, 11, 0.15)";function uge(t){const e=t.chart,n=e.chartArea;if(!n)return cge;const i=e.ctx.createLinearGradient(0,n.top,0,n.bottom);return i.addColorStop(0,"rgba(245, 158, 11, 0.28)"),i.addColorStop(.6,"rgba(245, 158, 11, 0.12)"),i.addColorStop(1,"rgba(245, 158, 11, 0.02)"),i}function dge({usage:t,loading:e,isDark:n,isMobile:i,modelPrices:s,hourWindowHours:a}){const{t:o}=et(),[r,c]=S.useState("hour"),d=Object.keys(s).length>0,{chartData:f,chartOptions:m,hasData:g}=S.useMemo(()=>{if(!d||!t)return{chartData:{labels:[],datasets:[]},chartOptions:{},hasData:!1};const y=r==="hour"?u$(t,s,a):d$(t,s),b={labels:y.labels,datasets:[{label:o("usage_stats.total_cost"),data:y.data,borderColor:E1,backgroundColor:uge,pointBackgroundColor:E1,pointBorderColor:E1,fill:!0,tension:.35}]},v=Y0({period:r,labels:y.labels,isDark:n,isMobile:i}),x={...v,scales:{...v.scales,y:{...v.scales?.y,ticks:{...v.scales?.y&&"ticks"in v.scales.y?v.scales.y.ticks:{},callback:A=>Ky(Number(A))}}}};return{chartData:b,chartOptions:x,hasData:y.hasData}},[t,r,n,i,s,d,a,o]);return h.jsx(Dt,{title:o("usage_stats.cost_trend"),extra:h.jsxs("div",{className:ce.periodButtons,children:[h.jsx(me,{variant:r==="hour"?"primary":"secondary",size:"sm",onClick:()=>c("hour"),children:o("usage_stats.by_hour")}),h.jsx(me,{variant:r==="day"?"primary":"secondary",size:"sm",onClick:()=>c("day"),children:o("usage_stats.by_day")})]}),children:e?h.jsx("div",{className:ce.hint,children:o("common.loading")}):d?g?h.jsx("div",{className:ce.chartWrapper,children:h.jsx("div",{className:ce.chartArea,children:h.jsx("div",{className:ce.chartScroller,children:h.jsx("div",{className:ce.chartCanvas,style:r==="hour"?{minWidth:Ak(f.labels.length,i)}:void 0,children:h.jsx(nb,{data:f,options:m})})})})}):h.jsx("div",{className:ce.hint,children:o("usage_stats.cost_no_data")}):h.jsx("div",{className:ce.hint,children:o("usage_stats.cost_need_price")})})}const CE=[{r:239,g:68,b:68},{r:250,g:204,b:21},{r:34,g:197,b:94}],AE=8,NE=180,hge=72;function fge(t){const e=Math.max(0,Math.min(1,t)),n=e<.5?0:1,i=n===0?e*2:(e-.5)*2,s=CE[n],a=CE[n+1],o=Math.round(s.r+(a.r-s.r)*i),r=Math.round(s.g+(a.g-s.g)*i),c=Math.round(s.b+(a.b-s.b)*i);return`rgb(${o}, ${r}, ${c})`}function TE(t){const e=new Date(t),n=(e.getMonth()+1).toString().padStart(2,"0"),i=e.getDate().toString().padStart(2,"0"),s=e.getHours().toString().padStart(2,"0"),a=e.getMinutes().toString().padStart(2,"0");return`${n}/${i} ${s}:${a}`}function mge({usage:t,loading:e}){const{t:n}=et(),[i,s]=S.useState(null),a=S.useRef(null),o=S.useMemo(()=>{const v=t?ja(t):[];return a$(v)},[t]),r=o.totalSuccess+o.totalFailure>0;S.useEffect(()=>{if(i===null)return;const v=x=>{a.current&&!a.current.contains(x.target)&&s(null)};return document.addEventListener("pointerdown",v),()=>document.removeEventListener("pointerdown",v)},[i]);const c=S.useCallback((v,x)=>{if(!x||!x.isConnected)return null;const A=x.getBoundingClientRect(),k=A.left+A.width/2;let T="center",L=k;k<=NE/2?(T="left",L=A.left):k>=window.innerWidth-NE/2&&(T="right",L=A.right);const M=A.top<=hge?"below":"above",O=M==="below"?A.bottom+AE:A.top-AE,N=T==="center"?"-50%":T==="right"?"-100%":"0",P=M==="below"?"0":"-100%";return{idx:v,anchorEl:x,horizontal:T,vertical:M,left:Math.round(L),top:Math.round(O),transform:`translate(${N}, ${P})`}},[]);S.useEffect(()=>{if(!i)return;const v=()=>{if(!document.body.contains(i.anchorEl)){s(null);return}s(c(i.idx,i.anchorEl))};return window.addEventListener("resize",v),window.addEventListener("scroll",v,!0),()=>{window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0)}},[i,c]);const d=S.useCallback((v,x)=>{s(c(v,x))},[c]),f=S.useCallback((v,x)=>{v.pointerType==="mouse"&&d(x,v.currentTarget)},[d]),m=S.useCallback(v=>{v.pointerType==="mouse"&&s(null)},[]),g=S.useCallback((v,x)=>{if(v.pointerType==="touch"){v.preventDefault();const A=v.currentTarget;s(k=>k?.idx===x?null:c(x,A))}},[c]),y=(v,x)=>{const A=v.success+v.failure,k=x.horizontal==="left"?ce.healthTooltipLeft:x.horizontal==="right"?ce.healthTooltipRight:"",T=x.vertical==="below"?ce.healthTooltipBelow:"",L=`${TE(v.startTime)} – ${TE(v.endTime)}`,M=h.jsxs("div",{className:`${ce.healthTooltip} ${k} ${T}`,style:{position:"fixed",left:`${x.left}px`,top:`${x.top}px`,bottom:"auto",right:"auto",transform:x.transform},children:[h.jsx("span",{className:ce.healthTooltipTime,children:L}),A>0?h.jsxs("span",{className:ce.healthTooltipStats,children:[h.jsxs("span",{className:ce.healthTooltipSuccess,children:[n("status_bar.success_short")," ",v.success]}),h.jsxs("span",{className:ce.healthTooltipFailure,children:[n("status_bar.failure_short")," ",v.failure]}),h.jsxs("span",{className:ce.healthTooltipRate,children:["(",(v.rate*100).toFixed(1),"%)"]})]}):h.jsx("span",{className:ce.healthTooltipStats,children:n("status_bar.no_requests")})]});return typeof document>"u"?M:Eo.createPortal(M,document.body)},b=r?o.successRate>=90?ce.healthRateHigh:o.successRate>=50?ce.healthRateMedium:ce.healthRateLow:"";return h.jsxs("div",{className:ce.healthCard,children:[h.jsxs("div",{className:ce.healthHeader,children:[h.jsx("h3",{className:ce.healthTitle,children:n("service_health.title")}),h.jsxs("div",{className:ce.healthMeta,children:[h.jsx("span",{className:ce.healthWindow,children:n("service_health.window")}),h.jsx("span",{className:`${ce.healthRate} ${b}`,children:e?"--":r?`${o.successRate.toFixed(1)}%`:"--"})]})]}),h.jsx("div",{className:ce.healthGridScroller,children:h.jsx("div",{className:ce.healthGrid,ref:a,children:o.blockDetails.map((v,x)=>{const A=v.rate===-1,k=A?void 0:{backgroundColor:fge(v.rate)},T=i?.idx===x;return h.jsxs("div",{className:`${ce.healthBlockWrapper} ${T?ce.healthBlockActive:""}`,onPointerEnter:L=>f(L,x),onPointerLeave:m,onPointerDown:L=>g(L,x),children:[h.jsx("div",{className:`${ce.healthBlock} ${A?ce.healthBlockIdle:""}`,style:k}),T&&i&&y(v,i)]},x)})})}),h.jsxs("div",{className:ce.healthLegend,children:[h.jsx("span",{className:ce.healthLegendLabel,children:n("service_health.oldest")}),h.jsxs("div",{className:ce.healthLegendColors,children:[h.jsx("div",{className:`${ce.healthLegendBlock} ${ce.healthBlockIdle}`}),h.jsx("div",{className:ce.healthLegendBlock,style:{backgroundColor:"#ef4444"}}),h.jsx("div",{className:ce.healthLegendBlock,style:{backgroundColor:"#facc15"}}),h.jsx("div",{className:ce.healthLegendBlock,style:{backgroundColor:"#22c55e"}})]}),h.jsx("span",{className:ce.healthLegendLabel,children:n("service_health.newest")})]})]})}function j5(t){const e=new Map,n=(a,o,r)=>{!a||!o||e.has(a)||e.set(a,{displayName:o,type:r})},i=(a,o,r)=>{r.forEach(c=>n(c,a,o))};return[{items:t.geminiApiKeys||[],type:"gemini",label:"Gemini"},{items:t.claudeApiKeys||[],type:"claude",label:"Claude"},{items:t.codexApiKeys||[],type:"codex",label:"Codex"},{items:t.vertexApiKeys||[],type:"vertex",label:"Vertex"}].forEach(({items:a,type:o,label:r})=>{a.forEach((c,d)=>{const f=c.prefix?.trim()||`${r} #${d+1}`;i(f,o,_s({apiKey:c.apiKey,prefix:c.prefix}))})}),(t.openaiCompatibility||[]).forEach((a,o)=>{const r=a.prefix?.trim()||a.name||`OpenAI #${o+1}`,c=new Set;_s({prefix:a.prefix}).forEach(d=>c.add(d)),(a.apiKeyEntries||[]).forEach(d=>{_s({apiKey:d.apiKey}).forEach(f=>c.add(f))}),i(r,"openai",Array.from(c))}),e}function R5(t,e,n,i){const s=t.trim(),a=n.get(s);if(a)return a;const o=rs(e);if(o){const r=i.get(o);if(r)return{displayName:r.name||o,type:r.type}}return{displayName:s.startsWith("t:")?s.slice(2):s||"-",type:""}}const Li="__all__",j1=500,qu=t=>{const e=Number(t);return Number.isFinite(e)?e:0},pge=t=>{const e=String(t??""),n=e.replace(/^\s+/,"");return`"${(n&&/^[=+\-@]/.test(n)?`'${e}`:e).replace(/"/g,'""')}"`};function gge({usage:t,loading:e,geminiKeys:n,claudeConfigs:i,codexConfigs:s,vertexConfigs:a,openaiProviders:o}){const{t:r,i18n:c}=et(),[d,f]=S.useState(Li),[m,g]=S.useState(Li),[y,b]=S.useState(Li),[v,x]=S.useState(new Map);S.useEffect(()=>{let K=!1;return At.list().then($=>{if(K)return;const X=Array.isArray($)?$:$?.files;if(!Array.isArray(X))return;const U=new Map;X.forEach(q=>{const Y=rs(q.auth_index??q.authIndex);Y&&U.set(Y,{name:q.name||Y,type:(q.type||q.provider||"").toString()})}),x(U)}).catch(()=>{}),()=>{K=!0}},[]);const A=S.useMemo(()=>j5({geminiApiKeys:n,claudeApiKeys:i,codexApiKeys:s,vertexApiKeys:a,openaiCompatibility:o}),[i,s,n,o,a]),k=S.useMemo(()=>ja(t).map(($,X)=>{const U=$.timestamp,q=typeof $.__timestampMs=="number"&&$.__timestampMs>0?$.__timestampMs:Date.parse(U),Y=Number.isNaN(q)?null:new Date(q),oe=String($.source??"").trim(),se=$.auth_index,F=se==null||se===""?"-":String(se),Z=R5(oe,se,A,v),J=Z.displayName,te=Z.type,fe=String($.__modelName??"").trim()||"-",re=Math.max(qu($.tokens?.input_tokens),0),ue=Math.max(qu($.tokens?.output_tokens),0),ee=Math.max(qu($.tokens?.reasoning_tokens),0),Ie=Math.max(Math.max(qu($.tokens?.cached_tokens),0),Math.max(qu($.tokens?.cache_tokens),0)),Ke=Math.max(qu($.tokens?.total_tokens),Vd($));return{id:`${U}-${fe}-${oe||J}-${F}-${X}`,timestamp:U,timestampMs:Number.isNaN(q)?0:q,timestampLabel:Y?Y.toLocaleString(c.language):U||"-",model:fe,sourceRaw:oe||"-",source:J,sourceType:te,authIndex:F,failed:$.failed===!0,inputTokens:re,outputTokens:ue,reasoningTokens:ee,cachedTokens:Ie,totalTokens:Ke}}).sort(($,X)=>X.timestampMs-$.timestampMs),[v,c.language,A,t]),T=S.useMemo(()=>[{value:Li,label:r("usage_stats.filter_all")},...Array.from(new Set(k.map(K=>K.model))).map(K=>({value:K,label:K}))],[k,r]),L=S.useMemo(()=>[{value:Li,label:r("usage_stats.filter_all")},...Array.from(new Set(k.map(K=>K.source))).map(K=>({value:K,label:K}))],[k,r]),M=S.useMemo(()=>[{value:Li,label:r("usage_stats.filter_all")},...Array.from(new Set(k.map(K=>K.authIndex))).map(K=>({value:K,label:K}))],[k,r]),O=S.useMemo(()=>new Set(T.map(K=>K.value)),[T]),N=S.useMemo(()=>new Set(L.map(K=>K.value)),[L]),P=S.useMemo(()=>new Set(M.map(K=>K.value)),[M]),E=O.has(d)?d:Li,R=N.has(m)?m:Li,z=P.has(y)?y:Li,D=S.useMemo(()=>k.filter(K=>{const $=E===Li||K.model===E,X=R===Li||K.source===R,U=z===Li||K.authIndex===z;return $&&X&&U}),[z,E,R,k]),Q=S.useMemo(()=>D.slice(0,j1),[D]),G=E!==Li||R!==Li||z!==Li,B=()=>{f(Li),g(Li),b(Li)},I=()=>{if(!D.length)return;const K=["timestamp","model","source","source_raw","auth_index","result","input_tokens","output_tokens","reasoning_tokens","cached_tokens","total_tokens"],$=D.map(q=>[q.timestamp,q.model,q.source,q.sourceRaw,q.authIndex,q.failed?"failed":"success",q.inputTokens,q.outputTokens,q.reasoningTokens,q.cachedTokens,q.totalTokens].map(Y=>pge(Y)).join(",")),X=[K.join(","),...$].join(`
|
||
`),U=new Date().toISOString().replace(/[:.]/g,"-");Cl({filename:`usage-events-${U}.csv`,blob:new Blob([X],{type:"text/csv;charset=utf-8"})})},V=()=>{if(!D.length)return;const K=D.map(U=>({timestamp:U.timestamp,model:U.model,source:U.source,source_raw:U.sourceRaw,auth_index:U.authIndex,failed:U.failed,tokens:{input_tokens:U.inputTokens,output_tokens:U.outputTokens,reasoning_tokens:U.reasoningTokens,cached_tokens:U.cachedTokens,total_tokens:U.totalTokens}})),$=JSON.stringify(K,null,2),X=new Date().toISOString().replace(/[:.]/g,"-");Cl({filename:`usage-events-${X}.json`,blob:new Blob([$],{type:"application/json;charset=utf-8"})})};return h.jsxs(Dt,{title:r("usage_stats.request_events_title"),extra:h.jsxs("div",{className:ce.requestEventsActions,children:[h.jsx(me,{variant:"ghost",size:"sm",onClick:B,disabled:!G,children:r("usage_stats.clear_filters")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:I,disabled:D.length===0,children:r("usage_stats.export_csv")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:V,disabled:D.length===0,children:r("usage_stats.export_json")})]}),children:[h.jsxs("div",{className:ce.requestEventsToolbar,children:[h.jsxs("div",{className:ce.requestEventsFilterItem,children:[h.jsx("span",{className:ce.requestEventsFilterLabel,children:r("usage_stats.request_events_filter_model")}),h.jsx(Vi,{value:E,options:T,onChange:f,className:ce.requestEventsSelect,ariaLabel:r("usage_stats.request_events_filter_model"),fullWidth:!1})]}),h.jsxs("div",{className:ce.requestEventsFilterItem,children:[h.jsx("span",{className:ce.requestEventsFilterLabel,children:r("usage_stats.request_events_filter_source")}),h.jsx(Vi,{value:R,options:L,onChange:g,className:ce.requestEventsSelect,ariaLabel:r("usage_stats.request_events_filter_source"),fullWidth:!1})]}),h.jsxs("div",{className:ce.requestEventsFilterItem,children:[h.jsx("span",{className:ce.requestEventsFilterLabel,children:r("usage_stats.request_events_filter_auth_index")}),h.jsx(Vi,{value:z,options:M,onChange:b,className:ce.requestEventsSelect,ariaLabel:r("usage_stats.request_events_filter_auth_index"),fullWidth:!1})]})]}),e&&k.length===0?h.jsx("div",{className:ce.hint,children:r("common.loading")}):k.length===0?h.jsx(os,{title:r("usage_stats.request_events_empty_title"),description:r("usage_stats.request_events_empty_desc")}):D.length===0?h.jsx(os,{title:r("usage_stats.request_events_no_result_title"),description:r("usage_stats.request_events_no_result_desc")}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:ce.requestEventsMeta,children:[h.jsx("span",{children:r("usage_stats.request_events_count",{count:D.length})}),D.length>j1&&h.jsx("span",{className:ce.requestEventsLimitHint,children:r("usage_stats.request_events_limit_hint",{shown:j1,total:D.length})})]}),h.jsx("div",{className:ce.requestEventsTableWrapper,children:h.jsxs("table",{className:ce.table,children:[h.jsx("thead",{children:h.jsxs("tr",{children:[h.jsx("th",{children:r("usage_stats.request_events_timestamp")}),h.jsx("th",{children:r("usage_stats.model_name")}),h.jsx("th",{children:r("usage_stats.request_events_source")}),h.jsx("th",{children:r("usage_stats.request_events_auth_index")}),h.jsx("th",{children:r("usage_stats.request_events_result")}),h.jsx("th",{children:r("usage_stats.input_tokens")}),h.jsx("th",{children:r("usage_stats.output_tokens")}),h.jsx("th",{children:r("usage_stats.reasoning_tokens")}),h.jsx("th",{children:r("usage_stats.cached_tokens")}),h.jsx("th",{children:r("usage_stats.total_tokens")})]})}),h.jsx("tbody",{children:Q.map(K=>h.jsxs("tr",{children:[h.jsx("td",{title:K.timestamp,className:ce.requestEventsTimestamp,children:K.timestampLabel}),h.jsx("td",{className:ce.modelCell,children:K.model}),h.jsxs("td",{className:ce.requestEventsSourceCell,title:K.source,children:[h.jsx("span",{children:K.source}),K.sourceType&&h.jsx("span",{className:ce.credentialType,children:K.sourceType})]}),h.jsx("td",{className:ce.requestEventsAuthIndex,title:K.authIndex,children:K.authIndex}),h.jsx("td",{children:h.jsx("span",{className:K.failed?ce.requestEventsResultFailed:ce.requestEventsResultSuccess,children:K.failed?r("stats.failure"):r("stats.success")})}),h.jsx("td",{children:K.inputTokens.toLocaleString()}),h.jsx("td",{children:K.outputTokens.toLocaleString()}),h.jsx("td",{children:K.reasoningTokens.toLocaleString()}),h.jsx("td",{children:K.cachedTokens.toLocaleString()}),h.jsx("td",{children:K.totalTokens.toLocaleString()})]},K.id))})]})})]})]})}Zy.register(pS,gS,f0,xl,ufe,yfe,lfe,nfe);const D5="cli-proxy-usage-chart-lines-v1",F5="cli-proxy-usage-time-range-v1",Zf=["all"],R1="24h",I5=9,_ge=[{value:"all",labelKey:"usage_stats.range_all"},{value:"7h",labelKey:"usage_stats.range_7h"},{value:"24h",labelKey:"usage_stats.range_24h"},{value:"7d",labelKey:"usage_stats.range_7d"}],yge={"7h":7,"24h":24,"7d":168},bge=t=>t==="7h"||t==="24h"||t==="7d"||t==="all",U5=(t,e=I5)=>{if(!Array.isArray(t))return Zf;const n=t.filter(i=>typeof i=="string").map(i=>i.trim()).filter(Boolean).slice(0,e);return n.length?n:Zf},vge=()=>{try{if(typeof localStorage>"u")return Zf;const t=localStorage.getItem(D5);return t?U5(JSON.parse(t)):Zf}catch{return Zf}},xge=()=>{try{if(typeof localStorage>"u")return R1;const t=localStorage.getItem(F5);return bge(t)?t:R1}catch{return R1}};function Sge(){const{t}=et(),e=Q0("(max-width: 768px)"),i=Aa(J=>J.resolvedTheme)==="dark",s=Bt(J=>J.config),{usage:a,loading:o,error:r,lastRefreshedAt:c,modelPrices:d,setModelPrices:f,loadUsage:m,handleExport:g,handleImport:y,handleImportChange:b,importInputRef:v,exporting:x,importing:A}=Nfe();op(m);const[k,T]=S.useState(vge),[L,M]=S.useState(xge),O=S.useMemo(()=>_ge.map(J=>({value:J.value,label:t(J.labelKey)})),[t]),N=S.useMemo(()=>a?HG(a,L):null,[a,L]),P=L==="all"?void 0:yge[L],E=S.useCallback(J=>{T(U5(J))},[]);S.useEffect(()=>{try{if(typeof localStorage>"u")return;localStorage.setItem(D5,JSON.stringify(k))}catch{}},[k]),S.useEffect(()=>{try{if(typeof localStorage>"u")return;localStorage.setItem(F5,L)}catch{}},[L]);const R=c?.getTime()??0,{requestsSparkline:z,tokensSparkline:D,rpmSparkline:Q,tpmSparkline:G,costSparkline:B}=Tfe({usage:N,loading:o,nowMs:R}),{requestsPeriod:I,setRequestsPeriod:V,tokensPeriod:K,setTokensPeriod:$,requestsChartData:X,tokensChartData:U,requestsChartOptions:q,tokensChartOptions:Y}=Lfe({usage:N,chartLines:k,isDark:i,isMobile:e,hourWindowHours:P}),oe=S.useMemo(()=>XG(a),[a]),se=S.useMemo(()=>JG(N,d),[N,d]),F=S.useMemo(()=>ZG(N,d),[N,d]),Z=Object.keys(d).length>0;return h.jsxs("div",{className:ce.container,children:[o&&!a&&h.jsx("div",{className:ce.loadingOverlay,"aria-busy":"true",children:h.jsxs("div",{className:ce.loadingOverlayContent,children:[h.jsx(Uc,{size:28,className:ce.loadingOverlaySpinner}),h.jsx("span",{className:ce.loadingOverlayText,children:t("common.loading")})]})}),h.jsxs("div",{className:ce.header,children:[h.jsx("h1",{className:ce.pageTitle,children:t("usage_stats.title")}),h.jsxs("div",{className:ce.headerActions,children:[h.jsxs("div",{className:ce.timeRangeGroup,children:[h.jsx("span",{className:ce.timeRangeLabel,children:t("usage_stats.range_filter")}),h.jsx(Vi,{value:L,options:O,onChange:J=>M(J),className:ce.timeRangeSelectControl,ariaLabel:t("usage_stats.range_filter"),fullWidth:!1})]}),h.jsx(me,{variant:"secondary",size:"sm",onClick:g,loading:x,disabled:o||A,children:t("usage_stats.export")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:y,loading:A,disabled:o||x,children:t("usage_stats.import")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>void m().catch(()=>{}),disabled:o||x||A,children:t(o?"common.loading":"usage_stats.refresh")}),h.jsx("input",{ref:v,type:"file",accept:".json,application/json",style:{display:"none"},onChange:b}),c&&h.jsxs("span",{className:ce.lastRefreshed,children:[t("usage_stats.last_updated"),": ",c.toLocaleTimeString()]})]})]}),r&&h.jsx("div",{className:ce.errorBox,children:r}),h.jsx(tge,{usage:N,loading:o,modelPrices:d,nowMs:R,sparklines:{requests:z,tokens:D,rpm:Q,tpm:G,cost:B}}),h.jsx(nge,{chartLines:k,modelNames:oe,maxLines:I5,onChange:E}),h.jsx(mge,{usage:a,loading:o}),h.jsxs("div",{className:ce.chartsGrid,children:[h.jsx(kE,{title:t("usage_stats.requests_trend"),period:I,onPeriodChange:V,chartData:X,chartOptions:q,loading:o,isMobile:e,emptyText:t("usage_stats.no_data")}),h.jsx(kE,{title:t("usage_stats.tokens_trend"),period:K,onPeriodChange:$,chartData:U,chartOptions:Y,loading:o,isMobile:e,emptyText:t("usage_stats.no_data")})]}),h.jsx(lge,{usage:N,loading:o,isDark:i,isMobile:e,hourWindowHours:P}),h.jsx(dge,{usage:N,loading:o,isDark:i,isMobile:e,modelPrices:d,hourWindowHours:P}),h.jsxs("div",{className:ce.detailsGrid,children:[h.jsx(ige,{apiStats:se,loading:o,hasPrices:Z}),h.jsx(sge,{modelStats:F,loading:o,hasPrices:Z})]}),h.jsx(gge,{usage:N,loading:o,geminiKeys:s?.geminiApiKeys||[],claudeConfigs:s?.claudeApiKeys||[],codexConfigs:s?.codexApiKeys||[],vertexConfigs:s?.vertexApiKeys||[],openaiProviders:s?.openaiCompatibility||[]}),h.jsx(oge,{usage:N,loading:o,geminiKeys:s?.geminiApiKeys||[],claudeConfigs:s?.claudeApiKeys||[],codexConfigs:s?.codexApiKeys||[],vertexConfigs:s?.vertexApiKeys||[],openaiProviders:s?.openaiCompatibility||[]}),h.jsx(age,{modelNames:oe,modelPrices:d,onPricesChange:f})]})}const wge="modulepreload",kge=function(t,e){return new URL(t,e).href},ME={},Cge=function(e,n,i){let s=Promise.resolve();if(n&&n.length>0){let d=function(f){return Promise.all(f.map(m=>Promise.resolve(m).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const o=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),c=r?.nonce||r?.getAttribute("nonce");s=d(n.map(f=>{if(f=kge(f,i),f in ME)return;ME[f]=!0;const m=f.endsWith(".css"),g=m?'[rel="stylesheet"]':"";if(i)for(let b=o.length-1;b>=0;b--){const v=o[b];if(v.href===f&&(!m||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${g}`))return;const y=document.createElement("link");if(y.rel=m?"stylesheet":wge,m||(y.as="script"),y.crossOrigin="",y.href=f,c&&y.setAttribute("nonce",c),document.head.appendChild(y),m)return new Promise((b,v)=>{y.addEventListener("load",b),y.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${f}`)))})}))}function a(o){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=o,window.dispatchEvent(r),!r.defaultPrevented)throw o}return s.then(o=>{for(const r of o||[])r.status==="rejected"&&a(r.reason);return e().catch(a)})},Nk=Symbol.for("yaml.alias"),_S=Symbol.for("yaml.document"),Nl=Symbol.for("yaml.map"),B5=Symbol.for("yaml.pair"),Lo=Symbol.for("yaml.scalar"),eh=Symbol.for("yaml.seq"),La=Symbol.for("yaml.node.type"),Jc=t=>!!t&&typeof t=="object"&&t[La]===Nk,ib=t=>!!t&&typeof t=="object"&&t[La]===_S,Fl=t=>!!t&&typeof t=="object"&&t[La]===Nl,li=t=>!!t&&typeof t=="object"&&t[La]===B5,Fn=t=>!!t&&typeof t=="object"&&t[La]===Lo,pp=t=>!!t&&typeof t=="object"&&t[La]===eh;function ai(t){if(t&&typeof t=="object")switch(t[La]){case Nl:case eh:return!0}return!1}function ri(t){if(t&&typeof t=="object")switch(t[La]){case Nk:case Nl:case Lo:case eh:return!0}return!1}const z5=t=>(Fn(t)||ai(t))&&!!t.anchor,pc=Symbol("break visit"),Age=Symbol("skip children"),em=Symbol("remove node");function th(t,e){const n=Nge(e);ib(t)?nd(null,t.contents,n,Object.freeze([t]))===em&&(t.contents=null):nd(null,t,n,Object.freeze([]))}th.BREAK=pc;th.SKIP=Age;th.REMOVE=em;function nd(t,e,n,i){const s=Tge(t,e,n,i);if(ri(s)||li(s))return Mge(t,i,s),nd(t,s,n,i);if(typeof s!="symbol"){if(ai(e)){i=Object.freeze(i.concat(e));for(let a=0;a<e.items.length;++a){const o=nd(a,e.items[a],n,i);if(typeof o=="number")a=o-1;else{if(o===pc)return pc;o===em&&(e.items.splice(a,1),a-=1)}}}else if(li(e)){i=Object.freeze(i.concat(e));const a=nd("key",e.key,n,i);if(a===pc)return pc;a===em&&(e.key=null);const o=nd("value",e.value,n,i);if(o===pc)return pc;o===em&&(e.value=null)}}return s}function Nge(t){return typeof t=="object"&&(t.Collection||t.Node||t.Value)?Object.assign({Alias:t.Node,Map:t.Node,Scalar:t.Node,Seq:t.Node},t.Value&&{Map:t.Value,Scalar:t.Value,Seq:t.Value},t.Collection&&{Map:t.Collection,Seq:t.Collection},t):t}function Tge(t,e,n,i){if(typeof n=="function")return n(t,e,i);if(Fl(e))return n.Map?.(t,e,i);if(pp(e))return n.Seq?.(t,e,i);if(li(e))return n.Pair?.(t,e,i);if(Fn(e))return n.Scalar?.(t,e,i);if(Jc(e))return n.Alias?.(t,e,i)}function Mge(t,e,n){const i=e[e.length-1];if(ai(i))i.items[t]=n;else if(li(i))t==="key"?i.key=n:i.value=n;else if(ib(i))i.contents=n;else{const s=Jc(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}const Lge={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Oge=t=>t.replace(/[!,[\]{}]/g,e=>Lge[e]);class fs{constructor(e,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},fs.defaultYaml,e),this.tags=Object.assign({},fs.defaultTags,n)}clone(){const e=new fs(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){const e=new fs(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:fs.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},fs.defaultTags);break}return e}add(e,n){this.atNextDocument&&(this.yaml={explicit:fs.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},fs.defaultTags),this.atNextDocument=!1);const i=e.trim().split(/[ \t]+/),s=i.shift();switch(s){case"%TAG":{if(i.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;const[a,o]=i;return this.tags[a]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[a]=i;if(a==="1.1"||a==="1.2")return this.yaml.version=a,!0;{const o=/^\d+\.\d+$/.test(a);return n(6,`Unsupported YAML version ${a}`,o),!1}}default:return n(0,`Unknown directive ${s}`,!0),!1}}tagName(e,n){if(e==="!")return"!";if(e[0]!=="!")return n(`Not a valid tag: ${e}`),null;if(e[1]==="<"){const o=e.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,i,s]=e.match(/^(.*!)([^!]*)$/s);s||n(`The ${e} tag has no suffix`);const a=this.tags[i];if(a)try{return a+decodeURIComponent(s)}catch(o){return n(String(o)),null}return i==="!"?e:(n(`Could not resolve tag: ${e}`),null)}tagString(e){for(const[n,i]of Object.entries(this.tags))if(e.startsWith(i))return n+Oge(e.substring(i.length));return e[0]==="!"?e:`!<${e}>`}toString(e){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags);let s;if(e&&i.length>0&&ri(e.contents)){const a={};th(e.contents,(o,r)=>{ri(r)&&r.tag&&(a[r.tag]=!0)}),s=Object.keys(a)}else s=[];for(const[a,o]of i)a==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(r=>r.startsWith(o)))&&n.push(`%TAG ${a} ${o}`);return n.join(`
|
||
`)}}fs.defaultYaml={explicit:!1,version:"1.2"};fs.defaultTags={"!!":"tag:yaml.org,2002:"};function q5(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(n)}return!0}function K5(t){const e=new Set;return th(t,{Value(n,i){i.anchor&&e.add(i.anchor)}}),e}function H5(t,e){for(let n=1;;++n){const i=`${t}${n}`;if(!e.has(i))return i}}function Pge(t,e){const n=[],i=new Map;let s=null;return{onAnchor:a=>{n.push(a),s??(s=K5(t));const o=H5(e,s);return s.add(o),o},setAnchors:()=>{for(const a of n){const o=i.get(a);if(typeof o=="object"&&o.anchor&&(Fn(o.node)||ai(o.node)))o.node.anchor=o.anchor;else{const r=new Error("Failed to resolve repeated object (this should not happen)");throw r.source=a,r}}},sourceObjects:i}}function id(t,e,n,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let s=0,a=i.length;s<a;++s){const o=i[s],r=id(t,i,String(s),o);r===void 0?delete i[s]:r!==o&&(i[s]=r)}else if(i instanceof Map)for(const s of Array.from(i.keys())){const a=i.get(s),o=id(t,i,s,a);o===void 0?i.delete(s):o!==a&&i.set(s,o)}else if(i instanceof Set)for(const s of Array.from(i)){const a=id(t,i,s,s);a===void 0?i.delete(s):a!==s&&(i.delete(s),i.add(a))}else for(const[s,a]of Object.entries(i)){const o=id(t,i,s,a);o===void 0?delete i[s]:o!==a&&(i[s]=o)}return t.call(e,n,i)}function wa(t,e,n){if(Array.isArray(t))return t.map((i,s)=>wa(i,String(s),n));if(t&&typeof t.toJSON=="function"){if(!n||!z5(t))return t.toJSON(e,n);const i={aliasCount:0,count:1,res:void 0};n.anchors.set(t,i),n.onCreate=a=>{i.res=a,delete n.onCreate};const s=t.toJSON(e,n);return n.onCreate&&n.onCreate(s),s}return typeof t=="bigint"&&!n?.keep?Number(t):t}class Tk{constructor(e){Object.defineProperty(this,La,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:n,maxAliasCount:i,onAnchor:s,reviver:a}={}){if(!ib(e))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:e,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},r=wa(this,"",o);if(typeof s=="function")for(const{count:c,res:d}of o.anchors.values())s(d,c);return typeof a=="function"?id(a,{"":r},"",r):r}}let Mk=class extends Tk{constructor(e){super(Nk),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,n){let i;n?.aliasResolveCache?i=n.aliasResolveCache:(i=[],th(e,{Node:(a,o)=>{(Jc(o)||z5(o))&&i.push(o)}}),n&&(n.aliasResolveCache=i));let s;for(const a of i){if(a===this)break;a.anchor===this.source&&(s=a)}return s}toJSON(e,n){if(!n)return{source:this.source};const{anchors:i,doc:s,maxAliasCount:a}=n,o=this.resolve(s,n);if(!o){const c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let r=i.get(o);if(r||(wa(o,null,n),r=i.get(o)),r?.res===void 0){const c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(a>=0&&(r.count+=1,r.aliasCount===0&&(r.aliasCount=m0(s,o,i)),r.count*r.aliasCount>a)){const c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return r.res}toString(e,n,i){const s=`*${this.source}`;if(e){if(q5(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const a=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(a)}if(e.implicitKey)return`${s} `}return s}};function m0(t,e,n){if(Jc(e)){const i=e.resolve(t),s=n&&i&&n.get(i);return s?s.count*s.aliasCount:0}else if(ai(e)){let i=0;for(const s of e.items){const a=m0(t,s,n);a>i&&(i=a)}return i}else if(li(e)){const i=m0(t,e.key,n),s=m0(t,e.value,n);return Math.max(i,s)}return 1}const V5=t=>!t||typeof t!="function"&&typeof t!="object";class Et extends Tk{constructor(e){super(Lo),this.value=e}toJSON(e,n){return n?.keep?this.value:wa(this.value,e,n)}toString(){return String(this.value)}}Et.BLOCK_FOLDED="BLOCK_FOLDED";Et.BLOCK_LITERAL="BLOCK_LITERAL";Et.PLAIN="PLAIN";Et.QUOTE_DOUBLE="QUOTE_DOUBLE";Et.QUOTE_SINGLE="QUOTE_SINGLE";const Ege="tag:yaml.org,2002:";function jge(t,e,n){if(e){const i=n.filter(a=>a.tag===e),s=i.find(a=>!a.format)??i[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return n.find(i=>i.identify?.(t)&&!i.format)}function Sm(t,e,n){if(ib(t)&&(t=t.contents),ri(t))return t;if(li(t)){const m=n.schema[Nl].createNode?.(n.schema,null,n);return m.items.push(t),m}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());const{aliasDuplicateObjects:i,onAnchor:s,onTagObj:a,schema:o,sourceObjects:r}=n;let c;if(i&&t&&typeof t=="object"){if(c=r.get(t),c)return c.anchor??(c.anchor=s(t)),new Mk(c.anchor);c={anchor:null,node:null},r.set(t,c)}e?.startsWith("!!")&&(e=Ege+e.slice(2));let d=jge(t,e,o.tags);if(!d){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){const m=new Et(t);return c&&(c.node=m),m}d=t instanceof Map?o[Nl]:Symbol.iterator in Object(t)?o[eh]:o[Nl]}a&&(a(d),delete n.onTagObj);const f=d?.createNode?d.createNode(n.schema,t,n):typeof d?.nodeClass?.from=="function"?d.nodeClass.from(n.schema,t,n):new Et(t);return e?f.tag=e:d.default||(f.tag=d.tag),c&&(c.node=f),f}function J0(t,e,n){let i=n;for(let s=e.length-1;s>=0;--s){const a=e[s];if(typeof a=="number"&&Number.isInteger(a)&&a>=0){const o=[];o[a]=i,i=o}else i=new Map([[a,i]])}return Sm(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}const Ef=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done;class W5 extends Tk{constructor(e,n){super(e),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(e){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(n.schema=e),n.items=n.items.map(i=>ri(i)||li(i)?i.clone(e):i),this.range&&(n.range=this.range.slice()),n}addIn(e,n){if(Ef(e))this.add(n);else{const[i,...s]=e,a=this.get(i,!0);if(ai(a))a.addIn(s,n);else if(a===void 0&&this.schema)this.set(i,J0(this.schema,s,n));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${s}`)}}deleteIn(e){const[n,...i]=e;if(i.length===0)return this.delete(n);const s=this.get(n,!0);if(ai(s))return s.deleteIn(i);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}getIn(e,n){const[i,...s]=e,a=this.get(i,!0);return s.length===0?!n&&Fn(a)?a.value:a:ai(a)?a.getIn(s,n):void 0}hasAllNullValues(e){return this.items.every(n=>{if(!li(n))return!1;const i=n.value;return i==null||e&&Fn(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(e){const[n,...i]=e;if(i.length===0)return this.has(n);const s=this.get(n,!0);return ai(s)?s.hasIn(i):!1}setIn(e,n){const[i,...s]=e;if(s.length===0)this.set(i,n);else{const a=this.get(i,!0);if(ai(a))a.setIn(s,n);else if(a===void 0&&this.schema)this.set(i,J0(this.schema,s,n));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${s}`)}}}const Rge=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function wr(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}const Ac=(t,e,n)=>t.endsWith(`
|
||
`)?wr(n,e):n.includes(`
|
||
`)?`
|
||
`+wr(n,e):(t.endsWith(" ")?"":" ")+n,G5="flow",yS="block",p0="quoted";function sb(t,e,n="flow",{indentAtStart:i,lineWidth:s=80,minContentWidth:a=20,onFold:o,onOverflow:r}={}){if(!s||s<0)return t;s<a&&(a=0);const c=Math.max(1+a,1+s-e.length);if(t.length<=c)return t;const d=[],f={};let m=s-e.length;typeof i=="number"&&(i>s-Math.max(2,a)?d.push(0):m=s-i);let g,y,b=!1,v=-1,x=-1,A=-1;n===yS&&(v=LE(t,v,e.length),v!==-1&&(m=v+c));for(let T;T=t[v+=1];){if(n===p0&&T==="\\"){switch(x=v,t[v+1]){case"x":v+=3;break;case"u":v+=5;break;case"U":v+=9;break;default:v+=1}A=v}if(T===`
|
||
`)n===yS&&(v=LE(t,v,e.length)),m=v+e.length+c,g=void 0;else{if(T===" "&&y&&y!==" "&&y!==`
|
||
`&&y!==" "){const L=t[v+1];L&&L!==" "&&L!==`
|
||
`&&L!==" "&&(g=v)}if(v>=m)if(g)d.push(g),m=g+c,g=void 0;else if(n===p0){for(;y===" "||y===" ";)y=T,T=t[v+=1],b=!0;const L=v>A+1?v-2:x-1;if(f[L])return t;d.push(L),f[L]=!0,m=L+c,g=void 0}else b=!0}y=T}if(b&&r&&r(),d.length===0)return t;o&&o();let k=t.slice(0,d[0]);for(let T=0;T<d.length;++T){const L=d[T],M=d[T+1]||t.length;L===0?k=`
|
||
${e}${t.slice(0,M)}`:(n===p0&&f[L]&&(k+=`${t[L]}\\`),k+=`
|
||
${e}${t.slice(L+1,M)}`)}return k}function LE(t,e,n){let i=e,s=e+1,a=t[s];for(;a===" "||a===" ";)if(e<s+n)a=t[++e];else{do a=t[++e];while(a&&a!==`
|
||
`);i=e,s=e+1,a=t[s]}return i}const ab=(t,e)=>({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),ob=t=>/^(%|---|\.\.\.)/m.test(t);function Dge(t,e,n){if(!e||e<0)return!1;const i=e-n,s=t.length;if(s<=i)return!1;for(let a=0,o=0;a<s;++a)if(t[a]===`
|
||
`){if(a-o>i)return!0;if(o=a+1,s-o<=i)return!1}return!0}function tm(t,e){const n=JSON.stringify(t);if(e.options.doubleQuotedAsJSON)return n;const{implicitKey:i}=e,s=e.options.doubleQuotedMinMultiLineLength,a=e.indent||(ob(t)?" ":"");let o="",r=0;for(let c=0,d=n[c];d;d=n[++c])if(d===" "&&n[c+1]==="\\"&&n[c+2]==="n"&&(o+=n.slice(r,c)+"\\ ",c+=1,r=c,d="\\"),d==="\\")switch(n[c+1]){case"u":{o+=n.slice(r,c);const f=n.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=n.substr(c,6)}c+=5,r=c+1}break;case"n":if(i||n[c+2]==='"'||n.length<s)c+=1;else{for(o+=n.slice(r,c)+`
|
||
|
||
`;n[c+2]==="\\"&&n[c+3]==="n"&&n[c+4]!=='"';)o+=`
|
||
`,c+=2;o+=a,n[c+2]===" "&&(o+="\\"),c+=1,r=c+1}break;default:c+=1}return o=r?o+n.slice(r):n,i?o:sb(o,a,p0,ab(e,!1))}function bS(t,e){if(e.options.singleQuote===!1||e.implicitKey&&t.includes(`
|
||
`)||/[ \t]\n|\n[ \t]/.test(t))return tm(t,e);const n=e.indent||(ob(t)?" ":""),i="'"+t.replace(/'/g,"''").replace(/\n+/g,`$&
|
||
${n}`)+"'";return e.implicitKey?i:sb(i,n,G5,ab(e,!1))}function sd(t,e){const{singleQuote:n}=e.options;let i;if(n===!1)i=tm;else{const s=t.includes('"'),a=t.includes("'");s&&!a?i=bS:a&&!s?i=tm:i=n?bS:tm}return i(t,e)}let vS;try{vS=new RegExp(`(^|(?<!
|
||
))
|
||
+(?!
|
||
|$)`,"g")}catch{vS=/\n+(?!\n|$)/g}function g0({comment:t,type:e,value:n},i,s,a){const{blockQuote:o,commentString:r,lineWidth:c}=i.options;if(!o||/\n[\t ]+$/.test(n))return sd(n,i);const d=i.indent||(i.forceBlockIndent||ob(n)?" ":""),f=o==="literal"?!0:o==="folded"||e===Et.BLOCK_FOLDED?!1:e===Et.BLOCK_LITERAL?!0:!Dge(n,c,d.length);if(!n)return f?`|
|
||
`:`>
|
||
`;let m,g;for(g=n.length;g>0;--g){const M=n[g-1];if(M!==`
|
||
`&&M!==" "&&M!==" ")break}let y=n.substring(g);const b=y.indexOf(`
|
||
`);b===-1?m="-":n===y||b!==y.length-1?(m="+",a&&a()):m="",y&&(n=n.slice(0,-y.length),y[y.length-1]===`
|
||
`&&(y=y.slice(0,-1)),y=y.replace(vS,`$&${d}`));let v=!1,x,A=-1;for(x=0;x<n.length;++x){const M=n[x];if(M===" ")v=!0;else if(M===`
|
||
`)A=x;else break}let k=n.substring(0,A<x?A+1:x);k&&(n=n.substring(k.length),k=k.replace(/\n+/g,`$&${d}`));let L=(v?d?"2":"1":"")+m;if(t&&(L+=" "+r(t.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){const M=n.replace(/\n+/g,`
|
||
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);let O=!1;const N=ab(i,!0);o!=="folded"&&e!==Et.BLOCK_FOLDED&&(N.onOverflow=()=>{O=!0});const P=sb(`${k}${M}${y}`,d,yS,N);if(!O)return`>${L}
|
||
${d}${P}`}return n=n.replace(/\n+/g,`$&${d}`),`|${L}
|
||
${d}${k}${n}${y}`}function Fge(t,e,n,i){const{type:s,value:a}=t,{actualString:o,implicitKey:r,indent:c,indentStep:d,inFlow:f}=e;if(r&&a.includes(`
|
||
`)||f&&/[[\]{},]/.test(a))return sd(a,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return r||f||!a.includes(`
|
||
`)?sd(a,e):g0(t,e,n,i);if(!r&&!f&&s!==Et.PLAIN&&a.includes(`
|
||
`))return g0(t,e,n,i);if(ob(a)){if(c==="")return e.forceBlockIndent=!0,g0(t,e,n,i);if(r&&c===d)return sd(a,e)}const m=a.replace(/\n+/g,`$&
|
||
${c}`);if(o){const g=v=>v.default&&v.tag!=="tag:yaml.org,2002:str"&&v.test?.test(m),{compat:y,tags:b}=e.doc.schema;if(b.some(g)||y?.some(g))return sd(a,e)}return r?m:sb(m,c,G5,ab(e,!1))}function Lk(t,e,n,i){const{implicitKey:s,inFlow:a}=e,o=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)});let{type:r}=t;r!==Et.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(r=Et.QUOTE_DOUBLE);const c=f=>{switch(f){case Et.BLOCK_FOLDED:case Et.BLOCK_LITERAL:return s||a?sd(o.value,e):g0(o,e,n,i);case Et.QUOTE_DOUBLE:return tm(o.value,e);case Et.QUOTE_SINGLE:return bS(o.value,e);case Et.PLAIN:return Fge(o,e,n,i);default:return null}};let d=c(r);if(d===null){const{defaultKeyType:f,defaultStringType:m}=e.options,g=s&&f||m;if(d=c(g),d===null)throw new Error(`Unsupported default string type ${g}`)}return d}function $5(t,e){const n=Object.assign({blockQuote:!0,commentString:Rge,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},t.schema.toStringOptions,e);let i;switch(n.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:t,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:i,options:n}}function Ige(t,e){if(e.tag){const s=t.filter(a=>a.tag===e.tag);if(s.length>0)return s.find(a=>a.format===e.format)??s[0]}let n,i;if(Fn(e)){i=e.value;let s=t.filter(a=>a.identify?.(i));if(s.length>1){const a=s.filter(o=>o.test);a.length>0&&(s=a)}n=s.find(a=>a.format===e.format)??s.find(a=>!a.format)}else i=e,n=t.find(s=>s.nodeClass&&i instanceof s.nodeClass);if(!n){const s=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${s} value`)}return n}function Uge(t,e,{anchors:n,doc:i}){if(!i.directives)return"";const s=[],a=(Fn(t)||ai(t))&&t.anchor;a&&q5(a)&&(n.add(a),s.push(`&${a}`));const o=t.tag??(e.default?null:e.tag);return o&&s.push(i.directives.tagString(o)),s.join(" ")}function Od(t,e,n,i){if(li(t))return t.toString(e,n,i);if(Jc(t)){if(e.doc.directives)return t.toString(e);if(e.resolvedAliases?.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(t):e.resolvedAliases=new Set([t]),t=t.resolve(e.doc)}let s;const a=ri(t)?t:e.doc.createNode(t,{onTagObj:c=>s=c});s??(s=Ige(e.doc.schema.tags,a));const o=Uge(a,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);const r=typeof s.stringify=="function"?s.stringify(a,e,n,i):Fn(a)?Lk(a,e,n,i):a.toString(e,n,i);return o?Fn(a)||r[0]==="{"||r[0]==="["?`${o} ${r}`:`${o}
|
||
${e.indent}${r}`:r}function Bge({key:t,value:e},n,i,s){const{allNullValues:a,doc:o,indent:r,indentStep:c,options:{commentString:d,indentSeq:f,simpleKeys:m}}=n;let g=ri(t)&&t.comment||null;if(m){if(g)throw new Error("With simple keys, key nodes cannot have comments");if(ai(t)||!ri(t)&&typeof t=="object"){const N="With simple keys, collection cannot be used as a key value";throw new Error(N)}}let y=!m&&(!t||g&&e==null&&!n.inFlow||ai(t)||(Fn(t)?t.type===Et.BLOCK_FOLDED||t.type===Et.BLOCK_LITERAL:typeof t=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!y&&(m||!a),indent:r+c});let b=!1,v=!1,x=Od(t,n,()=>b=!0,()=>v=!0);if(!y&&!n.inFlow&&x.length>1024){if(m)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=!0}if(n.inFlow){if(a||e==null)return b&&i&&i(),x===""?"?":y?`? ${x}`:x}else if(a&&!m||e==null&&y)return x=`? ${x}`,g&&!b?x+=Ac(x,n.indent,d(g)):v&&s&&s(),x;b&&(g=null),y?(g&&(x+=Ac(x,n.indent,d(g))),x=`? ${x}
|
||
${r}:`):(x=`${x}:`,g&&(x+=Ac(x,n.indent,d(g))));let A,k,T;ri(e)?(A=!!e.spaceBefore,k=e.commentBefore,T=e.comment):(A=!1,k=null,T=null,e&&typeof e=="object"&&(e=o.createNode(e))),n.implicitKey=!1,!y&&!g&&Fn(e)&&(n.indentAtStart=x.length+1),v=!1,!f&&c.length>=2&&!n.inFlow&&!y&&pp(e)&&!e.flow&&!e.tag&&!e.anchor&&(n.indent=n.indent.substring(2));let L=!1;const M=Od(e,n,()=>L=!0,()=>v=!0);let O=" ";if(g||A||k){if(O=A?`
|
||
`:"",k){const N=d(k);O+=`
|
||
${wr(N,n.indent)}`}M===""&&!n.inFlow?O===`
|
||
`&&T&&(O=`
|
||
|
||
`):O+=`
|
||
${n.indent}`}else if(!y&&ai(e)){const N=M[0],P=M.indexOf(`
|
||
`),E=P!==-1,R=n.inFlow??e.flow??e.items.length===0;if(E||!R){let z=!1;if(E&&(N==="&"||N==="!")){let D=M.indexOf(" ");N==="&"&&D!==-1&&D<P&&M[D+1]==="!"&&(D=M.indexOf(" ",D+1)),(D===-1||P<D)&&(z=!0)}z||(O=`
|
||
${n.indent}`)}}else(M===""||M[0]===`
|
||
`)&&(O="");return x+=O+M,n.inFlow?L&&i&&i():T&&!L?x+=Ac(x,n.indent,d(T)):v&&s&&s(),x}function X5(t,e){(t==="debug"||t==="warn")&&console.warn(e)}const v_="<<",Ar={identify:t=>t===v_||typeof t=="symbol"&&t.description===v_,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Et(Symbol(v_)),{addToJSMap:Q5}),stringify:()=>v_},zge=(t,e)=>(Ar.identify(e)||Fn(e)&&(!e.type||e.type===Et.PLAIN)&&Ar.identify(e.value))&&t?.doc.schema.tags.some(n=>n.tag===Ar.tag&&n.default);function Q5(t,e,n){if(n=t&&Jc(n)?n.resolve(t.doc):n,pp(n))for(const i of n.items)D1(t,e,i);else if(Array.isArray(n))for(const i of n)D1(t,e,i);else D1(t,e,n)}function D1(t,e,n){const i=t&&Jc(n)?n.resolve(t.doc):n;if(!Fl(i))throw new Error("Merge sources must be maps or map aliases");const s=i.toJSON(null,t,Map);for(const[a,o]of s)e instanceof Map?e.has(a)||e.set(a,o):e instanceof Set?e.add(a):Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function Y5(t,e,{key:n,value:i}){if(ri(n)&&n.addToJSMap)n.addToJSMap(t,e,i);else if(zge(t,n))Q5(t,e,i);else{const s=wa(n,"",t);if(e instanceof Map)e.set(s,wa(i,s,t));else if(e instanceof Set)e.add(s);else{const a=qge(n,s,t),o=wa(i,a,t);a in e?Object.defineProperty(e,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[a]=o}}return e}function qge(t,e,n){if(e===null)return"";if(typeof e!="object")return String(e);if(ri(t)&&n?.doc){const i=$5(n.doc,{});i.anchors=new Set;for(const a of n.anchors.keys())i.anchors.add(a.anchor);i.inFlow=!0,i.inStringifyKey=!0;const s=t.toString(i);if(!n.mapKeyWarned){let a=JSON.stringify(s);a.length>40&&(a=a.substring(0,36)+'..."'),X5(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${a}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return s}return JSON.stringify(e)}function Ok(t,e,n){const i=Sm(t,void 0,n),s=Sm(e,void 0,n);return new bs(i,s)}class bs{constructor(e,n=null){Object.defineProperty(this,La,{value:B5}),this.key=e,this.value=n}clone(e){let{key:n,value:i}=this;return ri(n)&&(n=n.clone(e)),ri(i)&&(i=i.clone(e)),new bs(n,i)}toJSON(e,n){const i=n?.mapAsMap?new Map:{};return Y5(n,i,this)}toString(e,n,i){return e?.doc?Bge(this,e,n,i):JSON.stringify(this)}}function J5(t,e,n){return(e.inFlow??t.flow?Hge:Kge)(t,e,n)}function Kge({comment:t,items:e},n,{blockItemPrefix:i,flowChars:s,itemIndent:a,onChompKeep:o,onComment:r}){const{indent:c,options:{commentString:d}}=n,f=Object.assign({},n,{indent:a,type:null});let m=!1;const g=[];for(let b=0;b<e.length;++b){const v=e[b];let x=null;if(ri(v))!m&&v.spaceBefore&&g.push(""),Z0(n,g,v.commentBefore,m),v.comment&&(x=v.comment);else if(li(v)){const k=ri(v.key)?v.key:null;k&&(!m&&k.spaceBefore&&g.push(""),Z0(n,g,k.commentBefore,m))}m=!1;let A=Od(v,f,()=>x=null,()=>m=!0);x&&(A+=Ac(A,a,d(x))),m&&x&&(m=!1),g.push(i+A)}let y;if(g.length===0)y=s.start+s.end;else{y=g[0];for(let b=1;b<g.length;++b){const v=g[b];y+=v?`
|
||
${c}${v}`:`
|
||
`}}return t?(y+=`
|
||
`+wr(d(t),c),r&&r()):m&&o&&o(),y}function Hge({items:t},e,{flowChars:n,itemIndent:i}){const{indent:s,indentStep:a,flowCollectionPadding:o,options:{commentString:r}}=e;i+=a;const c=Object.assign({},e,{indent:i,inFlow:!0,type:null});let d=!1,f=0;const m=[];for(let b=0;b<t.length;++b){const v=t[b];let x=null;if(ri(v))v.spaceBefore&&m.push(""),Z0(e,m,v.commentBefore,!1),v.comment&&(x=v.comment);else if(li(v)){const k=ri(v.key)?v.key:null;k&&(k.spaceBefore&&m.push(""),Z0(e,m,k.commentBefore,!1),k.comment&&(d=!0));const T=ri(v.value)?v.value:null;T?(T.comment&&(x=T.comment),T.commentBefore&&(d=!0)):v.value==null&&k?.comment&&(x=k.comment)}x&&(d=!0);let A=Od(v,c,()=>x=null);b<t.length-1&&(A+=","),x&&(A+=Ac(A,i,r(x))),!d&&(m.length>f||A.includes(`
|
||
`))&&(d=!0),m.push(A),f=m.length}const{start:g,end:y}=n;if(m.length===0)return g+y;if(!d){const b=m.reduce((v,x)=>v+x.length+2,2);d=e.options.lineWidth>0&&b>e.options.lineWidth}if(d){let b=g;for(const v of m)b+=v?`
|
||
${a}${s}${v}`:`
|
||
`;return`${b}
|
||
${s}${y}`}else return`${g}${o}${m.join(" ")}${o}${y}`}function Z0({indent:t,options:{commentString:e}},n,i,s){if(i&&s&&(i=i.replace(/^\n+/,"")),i){const a=wr(e(i),t);n.push(a.trimStart())}}function Nc(t,e){const n=Fn(e)?e.value:e;for(const i of t)if(li(i)&&(i.key===e||i.key===n||Fn(i.key)&&i.key.value===n))return i}class _a extends W5{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Nl,e),this.items=[]}static from(e,n,i){const{keepUndefined:s,replacer:a}=i,o=new this(e),r=(c,d)=>{if(typeof a=="function")d=a.call(n,c,d);else if(Array.isArray(a)&&!a.includes(c))return;(d!==void 0||s)&&o.items.push(Ok(c,d,i))};if(n instanceof Map)for(const[c,d]of n)r(c,d);else if(n&&typeof n=="object")for(const c of Object.keys(n))r(c,n[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,n){let i;li(e)?i=e:!e||typeof e!="object"||!("key"in e)?i=new bs(e,e?.value):i=new bs(e.key,e.value);const s=Nc(this.items,i.key),a=this.schema?.sortMapEntries;if(s){if(!n)throw new Error(`Key ${i.key} already set`);Fn(s.value)&&V5(i.value)?s.value.value=i.value:s.value=i.value}else if(a){const o=this.items.findIndex(r=>a(i,r)<0);o===-1?this.items.push(i):this.items.splice(o,0,i)}else this.items.push(i)}delete(e){const n=Nc(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){const s=Nc(this.items,e)?.value;return(!n&&Fn(s)?s.value:s)??void 0}has(e){return!!Nc(this.items,e)}set(e,n){this.add(new bs(e,n),!0)}toJSON(e,n,i){const s=i?new i:n?.mapAsMap?new Map:{};n?.onCreate&&n.onCreate(s);for(const a of this.items)Y5(n,s,a);return s}toString(e,n,i){if(!e)return JSON.stringify(this);for(const s of this.items)if(!li(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),J5(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:i,onComment:n})}}const nh={collection:"map",default:!0,nodeClass:_a,tag:"tag:yaml.org,2002:map",resolve(t,e){return Fl(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,n)=>_a.from(t,e,n)};class zc extends W5{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(eh,e),this.items=[]}add(e){this.items.push(e)}delete(e){const n=x_(e);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(e,n){const i=x_(e);if(typeof i!="number")return;const s=this.items[i];return!n&&Fn(s)?s.value:s}has(e){const n=x_(e);return typeof n=="number"&&n<this.items.length}set(e,n){const i=x_(e);if(typeof i!="number")throw new Error(`Expected a valid index, not ${e}.`);const s=this.items[i];Fn(s)&&V5(n)?s.value=n:this.items[i]=n}toJSON(e,n){const i=[];n?.onCreate&&n.onCreate(i);let s=0;for(const a of this.items)i.push(wa(a,String(s++),n));return i}toString(e,n,i){return e?J5(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:i,onComment:n}):JSON.stringify(this)}static from(e,n,i){const{replacer:s}=i,a=new this(e);if(n&&Symbol.iterator in Object(n)){let o=0;for(let r of n){if(typeof s=="function"){const c=n instanceof Set?r:String(o++);r=s.call(n,c,r)}a.items.push(Sm(r,void 0,i))}}return a}}function x_(t){let e=Fn(t)?t.value:t;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}const ih={collection:"seq",default:!0,nodeClass:zc,tag:"tag:yaml.org,2002:seq",resolve(t,e){return pp(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,n)=>zc.from(t,e,n)},rb={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,e,n,i){return e=Object.assign({actualString:!0},e),Lk(t,e,n,i)}},lb={identify:t=>t==null,createNode:()=>new Et(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Et(null),stringify:({source:t},e)=>typeof t=="string"&&lb.test.test(t)?t:e.options.nullStr},Pk={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new Et(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},n){if(t&&Pk.test.test(t)){const i=t[0]==="t"||t[0]==="T";if(e===i)return t}return e?n.options.trueStr:n.options.falseStr}};function Ja({format:t,minFractionDigits:e,tag:n,value:i}){if(typeof i=="bigint")return String(i);const s=typeof i=="number"?i:Number(i);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let a=Object.is(i,-0)?"-0":JSON.stringify(i);if(!t&&e&&(!n||n==="tag:yaml.org,2002:float")&&/^\d/.test(a)){let o=a.indexOf(".");o<0&&(o=a.length,a+=".");let r=e-(a.length-o-1);for(;r-- >0;)a+="0"}return a}const Z5={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ja},e6={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){const e=Number(t.value);return isFinite(e)?e.toExponential():Ja(t)}},t6={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){const e=new Et(parseFloat(t)),n=t.indexOf(".");return n!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-n-1),e},stringify:Ja},cb=t=>typeof t=="bigint"||Number.isInteger(t),Ek=(t,e,n,{intAsBigInt:i})=>i?BigInt(t):parseInt(t.substring(e),n);function n6(t,e,n){const{value:i}=t;return cb(i)&&i>=0?n+i.toString(e):Ja(t)}const i6={identify:t=>cb(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,n)=>Ek(t,2,8,n),stringify:t=>n6(t,8,"0o")},s6={identify:cb,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,n)=>Ek(t,0,10,n),stringify:Ja},a6={identify:t=>cb(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,n)=>Ek(t,2,16,n),stringify:t=>n6(t,16,"0x")},Vge=[nh,ih,rb,lb,Pk,i6,s6,a6,Z5,e6,t6];function OE(t){return typeof t=="bigint"||Number.isInteger(t)}const S_=({value:t})=>JSON.stringify(t),Wge=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:S_},{identify:t=>t==null,createNode:()=>new Et(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:S_},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:S_},{identify:OE,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,e,{intAsBigInt:n})=>n?BigInt(t):parseInt(t,10),stringify:({value:t})=>OE(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:S_}],Gge={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},$ge=[nh,ih].concat(Wge,Gge),jk={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof atob=="function"){const n=atob(t.replace(/[\n\r]/g,"")),i=new Uint8Array(n.length);for(let s=0;s<n.length;++s)i[s]=n.charCodeAt(s);return i}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),t},stringify({comment:t,type:e,value:n},i,s,a){if(!n)return"";const o=n;let r;if(typeof btoa=="function"){let c="";for(let d=0;d<o.length;++d)c+=String.fromCharCode(o[d]);r=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=Et.BLOCK_LITERAL),e!==Et.QUOTE_DOUBLE){const c=Math.max(i.options.lineWidth-i.indent.length,i.options.minContentWidth),d=Math.ceil(r.length/c),f=new Array(d);for(let m=0,g=0;m<d;++m,g+=c)f[m]=r.substr(g,c);r=f.join(e===Et.BLOCK_LITERAL?`
|
||
`:" ")}return Lk({comment:t,type:e,value:r},i,s,a)}};function o6(t,e){if(pp(t))for(let n=0;n<t.items.length;++n){let i=t.items[n];if(!li(i)){if(Fl(i)){i.items.length>1&&e("Each pair must have its own sequence indicator");const s=i.items[0]||new bs(new Et(null));if(i.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${i.commentBefore}
|
||
${s.key.commentBefore}`:i.commentBefore),i.comment){const a=s.value??s.key;a.comment=a.comment?`${i.comment}
|
||
${a.comment}`:i.comment}i=s}t.items[n]=li(i)?i:new bs(i)}}else e("Expected a sequence for this tag");return t}function r6(t,e,n){const{replacer:i}=n,s=new zc(t);s.tag="tag:yaml.org,2002:pairs";let a=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof i=="function"&&(o=i.call(e,String(a++),o));let r,c;if(Array.isArray(o))if(o.length===2)r=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const d=Object.keys(o);if(d.length===1)r=d[0],c=o[r];else throw new TypeError(`Expected tuple with one key, not ${d.length} keys`)}else r=o;s.items.push(Ok(r,c,n))}return s}const Rk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:o6,createNode:r6};class pd extends zc{constructor(){super(),this.add=_a.prototype.add.bind(this),this.delete=_a.prototype.delete.bind(this),this.get=_a.prototype.get.bind(this),this.has=_a.prototype.has.bind(this),this.set=_a.prototype.set.bind(this),this.tag=pd.tag}toJSON(e,n){if(!n)return super.toJSON(e);const i=new Map;n?.onCreate&&n.onCreate(i);for(const s of this.items){let a,o;if(li(s)?(a=wa(s.key,"",n),o=wa(s.value,a,n)):a=wa(s,"",n),i.has(a))throw new Error("Ordered maps must not include duplicate keys");i.set(a,o)}return i}static from(e,n,i){const s=r6(e,n,i),a=new this;return a.items=s.items,a}}pd.tag="tag:yaml.org,2002:omap";const Dk={collection:"seq",identify:t=>t instanceof Map,nodeClass:pd,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){const n=o6(t,e),i=[];for(const{key:s}of n.items)Fn(s)&&(i.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):i.push(s.value));return Object.assign(new pd,n)},createNode:(t,e,n)=>pd.from(t,e,n)};function l6({value:t,source:e},n){return e&&(t?c6:u6).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}const c6={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Et(!0),stringify:l6},u6={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Et(!1),stringify:l6},Xge={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ja},Qge={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){const e=Number(t.value);return isFinite(e)?e.toExponential():Ja(t)}},Yge={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){const e=new Et(parseFloat(t.replace(/_/g,""))),n=t.indexOf(".");if(n!==-1){const i=t.substring(n+1).replace(/_/g,"");i[i.length-1]==="0"&&(e.minFractionDigits=i.length)}return e},stringify:Ja},gp=t=>typeof t=="bigint"||Number.isInteger(t);function ub(t,e,n,{intAsBigInt:i}){const s=t[0];if((s==="-"||s==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),i){switch(n){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}const o=BigInt(t);return s==="-"?BigInt(-1)*o:o}const a=parseInt(t,n);return s==="-"?-1*a:a}function Fk(t,e,n){const{value:i}=t;if(gp(i)){const s=i.toString(e);return i<0?"-"+n+s.substr(1):n+s}return Ja(t)}const Jge={identify:gp,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>ub(t,2,2,n),stringify:t=>Fk(t,2,"0b")},Zge={identify:gp,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>ub(t,1,8,n),stringify:t=>Fk(t,8,"0")},e_e={identify:gp,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>ub(t,0,10,n),stringify:Ja},t_e={identify:gp,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>ub(t,2,16,n),stringify:t=>Fk(t,16,"0x")};class gd extends _a{constructor(e){super(e),this.tag=gd.tag}add(e){let n;li(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new bs(e.key,null):n=new bs(e,null),Nc(this.items,n.key)||this.items.push(n)}get(e,n){const i=Nc(this.items,e);return!n&&li(i)?Fn(i.key)?i.key.value:i.key:i}set(e,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const i=Nc(this.items,e);i&&!n?this.items.splice(this.items.indexOf(i),1):!i&&n&&this.items.push(new bs(e))}toJSON(e,n){return super.toJSON(e,n,Set)}toString(e,n,i){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),n,i);throw new Error("Set items must all have null values")}static from(e,n,i){const{replacer:s}=i,a=new this(e);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof s=="function"&&(o=s.call(n,o,o)),a.items.push(Ok(o,null,i));return a}}gd.tag="tag:yaml.org,2002:set";const Ik={collection:"map",identify:t=>t instanceof Set,nodeClass:gd,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>gd.from(t,e,n),resolve(t,e){if(Fl(t)){if(t.hasAllNullValues(!0))return Object.assign(new gd,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};function Uk(t,e){const n=t[0],i=n==="-"||n==="+"?t.substring(1):t,s=o=>e?BigInt(o):Number(o),a=i.replace(/_/g,"").split(":").reduce((o,r)=>o*s(60)+s(r),s(0));return n==="-"?s(-1)*a:a}function d6(t){let{value:e}=t,n=o=>o;if(typeof e=="bigint")n=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Ja(t);let i="";e<0&&(i="-",e*=n(-1));const s=n(60),a=[e%s];return e<60?a.unshift(0):(e=(e-a[0])/s,a.unshift(e%s),e>=60&&(e=(e-a[0])/s,a.unshift(e))),i+a.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const h6={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:n})=>Uk(t,n),stringify:d6},f6={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>Uk(t,!1),stringify:d6},db={identify:t=>t instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(t){const e=t.match(db.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,i,s,a,o,r]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0;let d=Date.UTC(n,i-1,s,a||0,o||0,r||0,c);const f=e[8];if(f&&f!=="Z"){let m=Uk(f,!1);Math.abs(m)<30&&(m*=60),d-=6e4*m}return new Date(d)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""},PE=[nh,ih,rb,lb,c6,u6,Jge,Zge,e_e,t_e,Xge,Qge,Yge,jk,Ar,Dk,Rk,Ik,h6,f6,db],EE=new Map([["core",Vge],["failsafe",[nh,ih,rb]],["json",$ge],["yaml11",PE],["yaml-1.1",PE]]),jE={binary:jk,bool:Pk,float:t6,floatExp:e6,floatNaN:Z5,floatTime:f6,int:s6,intHex:a6,intOct:i6,intTime:h6,map:nh,merge:Ar,null:lb,omap:Dk,pairs:Rk,seq:ih,set:Ik,timestamp:db},n_e={"tag:yaml.org,2002:binary":jk,"tag:yaml.org,2002:merge":Ar,"tag:yaml.org,2002:omap":Dk,"tag:yaml.org,2002:pairs":Rk,"tag:yaml.org,2002:set":Ik,"tag:yaml.org,2002:timestamp":db};function F1(t,e,n){const i=EE.get(e);if(i&&!t)return n&&!i.includes(Ar)?i.concat(Ar):i.slice();let s=i;if(!s)if(Array.isArray(t))s=[];else{const a=Array.from(EE.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${a} or define customTags array`)}if(Array.isArray(t))for(const a of t)s=s.concat(a);else typeof t=="function"&&(s=t(s.slice()));return n&&(s=s.concat(Ar)),s.reduce((a,o)=>{const r=typeof o=="string"?jE[o]:o;if(!r){const c=JSON.stringify(o),d=Object.keys(jE).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${d}`)}return a.includes(r)||a.push(r),a},[])}const i_e=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0;class Bk{constructor({compat:e,customTags:n,merge:i,resolveKnownTags:s,schema:a,sortMapEntries:o,toStringDefaults:r}){this.compat=Array.isArray(e)?F1(e,"compat"):e?F1(null,e):null,this.name=typeof a=="string"&&a||"core",this.knownTags=s?n_e:{},this.tags=F1(n,this.name,i),this.toStringOptions=r??null,Object.defineProperty(this,Nl,{value:nh}),Object.defineProperty(this,Lo,{value:rb}),Object.defineProperty(this,eh,{value:ih}),this.sortMapEntries=typeof o=="function"?o:o===!0?i_e:null}clone(){const e=Object.create(Bk.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}}function s_e(t,e){const n=[];let i=e.directives===!0;if(e.directives!==!1&&t.directives){const c=t.directives.toString(t);c?(n.push(c),i=!0):t.directives.docStart&&(i=!0)}i&&n.push("---");const s=$5(t,e),{commentString:a}=s.options;if(t.commentBefore){n.length!==1&&n.unshift("");const c=a(t.commentBefore);n.unshift(wr(c,""))}let o=!1,r=null;if(t.contents){if(ri(t.contents)){if(t.contents.spaceBefore&&i&&n.push(""),t.contents.commentBefore){const f=a(t.contents.commentBefore);n.push(wr(f,""))}s.forceBlockIndent=!!t.comment,r=t.contents.comment}const c=r?void 0:()=>o=!0;let d=Od(t.contents,s,()=>r=null,c);r&&(d+=Ac(d,"",a(r))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(Od(t.contents,s));if(t.directives?.docEnd)if(t.comment){const c=a(t.comment);c.includes(`
|
||
`)?(n.push("..."),n.push(wr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=t.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||r)&&n[n.length-1]!==""&&n.push(""),n.push(wr(a(c),"")))}return n.join(`
|
||
`)+`
|
||
`}class hb{constructor(e,n,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,La,{value:_S});let s=null;typeof n=="function"||Array.isArray(n)?s=n:i===void 0&&n&&(i=n,n=void 0);const a=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},i);this.options=a;let{version:o}=a;i?._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new fs({version:o}),this.setSchema(o,i),this.contents=e===void 0?null:this.createNode(e,s,i)}clone(){const e=Object.create(hb.prototype,{[La]:{value:_S}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=ri(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ku(this.contents)&&this.contents.add(e)}addIn(e,n){Ku(this.contents)&&this.contents.addIn(e,n)}createAlias(e,n){if(!e.anchor){const i=K5(this);e.anchor=!n||i.has(n)?H5(n||"a",i):n}return new Mk(e.anchor)}createNode(e,n,i){let s;if(typeof n=="function")e=n.call({"":e},"",e),s=n;else if(Array.isArray(n)){const x=k=>typeof k=="number"||k instanceof String||k instanceof Number,A=n.filter(x).map(String);A.length>0&&(n=n.concat(A)),s=n}else i===void 0&&n&&(i=n,n=void 0);const{aliasDuplicateObjects:a,anchorPrefix:o,flow:r,keepUndefined:c,onTagObj:d,tag:f}=i??{},{onAnchor:m,setAnchors:g,sourceObjects:y}=Pge(this,o||"a"),b={aliasDuplicateObjects:a??!0,keepUndefined:c??!1,onAnchor:m,onTagObj:d,replacer:s,schema:this.schema,sourceObjects:y},v=Sm(e,f,b);return r&&ai(v)&&(v.flow=!0),g(),v}createPair(e,n,i={}){const s=this.createNode(e,null,i),a=this.createNode(n,null,i);return new bs(s,a)}delete(e){return Ku(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Ef(e)?this.contents==null?!1:(this.contents=null,!0):Ku(this.contents)?this.contents.deleteIn(e):!1}get(e,n){return ai(this.contents)?this.contents.get(e,n):void 0}getIn(e,n){return Ef(e)?!n&&Fn(this.contents)?this.contents.value:this.contents:ai(this.contents)?this.contents.getIn(e,n):void 0}has(e){return ai(this.contents)?this.contents.has(e):!1}hasIn(e){return Ef(e)?this.contents!==void 0:ai(this.contents)?this.contents.hasIn(e):!1}set(e,n){this.contents==null?this.contents=J0(this.schema,[e],n):Ku(this.contents)&&this.contents.set(e,n)}setIn(e,n){Ef(e)?this.contents=n:this.contents==null?this.contents=J0(this.schema,Array.from(e),n):Ku(this.contents)&&this.contents.setIn(e,n)}setSchema(e,n={}){typeof e=="number"&&(e=String(e));let i;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new fs({version:"1.1"}),i={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new fs({version:e}),i={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{const s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(i)this.schema=new Bk(Object.assign(i,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:n,mapAsMap:i,maxAliasCount:s,onAnchor:a,reviver:o}={}){const r={anchors:new Map,doc:this,keep:!e,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=wa(this.contents,n??"",r);if(typeof a=="function")for(const{count:d,res:f}of r.anchors.values())a(f,d);return typeof o=="function"?id(o,{"":c},"",c):c}toJSON(e,n){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:n})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const n=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return s_e(this,e)}}function Ku(t){if(ai(t))return!0;throw new Error("Expected a YAML collection as document contents")}class m6 extends Error{constructor(e,n,i,s){super(),this.name=e,this.code=i,this.message=s,this.pos=n}}class jf extends m6{constructor(e,n,i){super("YAMLParseError",e,n,i)}}class a_e extends m6{constructor(e,n,i){super("YAMLWarning",e,n,i)}}const RE=(t,e)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(r=>e.linePos(r));const{line:i,col:s}=n.linePos[0];n.message+=` at line ${i}, column ${s}`;let a=s-1,o=t.substring(e.lineStarts[i-1],e.lineStarts[i]).replace(/[\n\r]+$/,"");if(a>=60&&o.length>80){const r=Math.min(a-39,o.length-79);o="…"+o.substring(r),a-=r-1}if(o.length>80&&(o=o.substring(0,79)+"…"),i>1&&/^ *$/.test(o.substring(0,a))){let r=t.substring(e.lineStarts[i-2],e.lineStarts[i-1]);r.length>80&&(r=r.substring(0,79)+`…
|
||
`),o=r+o}if(/[^ ]/.test(o)){let r=1;const c=n.linePos[1];c?.line===i&&c.col>s&&(r=Math.max(1,Math.min(c.col-s,80-a)));const d=" ".repeat(a)+"^".repeat(r);n.message+=`:
|
||
|
||
${o}
|
||
${d}
|
||
`}};function Pd(t,{flow:e,indicator:n,next:i,offset:s,onError:a,parentIndent:o,startOnNewline:r}){let c=!1,d=r,f=r,m="",g="",y=!1,b=!1,v=null,x=null,A=null,k=null,T=null,L=null,M=null;for(const P of t)switch(b&&(P.type!=="space"&&P.type!=="newline"&&P.type!=="comma"&&a(P.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b=!1),v&&(d&&P.type!=="comment"&&P.type!=="newline"&&a(v,"TAB_AS_INDENT","Tabs are not allowed as indentation"),v=null),P.type){case"space":!e&&(n!=="doc-start"||i?.type!=="flow-collection")&&P.source.includes(" ")&&(v=P),f=!0;break;case"comment":{f||a(P,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const E=P.source.substring(1)||" ";m?m+=g+E:m=E,g="",d=!1;break}case"newline":d?m?m+=P.source:(!L||n!=="seq-item-ind")&&(c=!0):g+=P.source,d=!0,y=!0,(x||A)&&(k=P),f=!0;break;case"anchor":x&&a(P,"MULTIPLE_ANCHORS","A node can have at most one anchor"),P.source.endsWith(":")&&a(P.offset+P.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),x=P,M??(M=P.offset),d=!1,f=!1,b=!0;break;case"tag":{A&&a(P,"MULTIPLE_TAGS","A node can have at most one tag"),A=P,M??(M=P.offset),d=!1,f=!1,b=!0;break}case n:(x||A)&&a(P,"BAD_PROP_ORDER",`Anchors and tags must be after the ${P.source} indicator`),L&&a(P,"UNEXPECTED_TOKEN",`Unexpected ${P.source} in ${e??"collection"}`),L=P,d=n==="seq-item-ind"||n==="explicit-key-ind",f=!1;break;case"comma":if(e){T&&a(P,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),T=P,d=!1,f=!1;break}default:a(P,"UNEXPECTED_TOKEN",`Unexpected ${P.type} token`),d=!1,f=!1}const O=t[t.length-1],N=O?O.offset+O.source.length:s;return b&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&a(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),v&&(d&&v.indent<=o||i?.type==="block-map"||i?.type==="block-seq")&&a(v,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:T,found:L,spaceBefore:c,comment:m,hasNewline:y,anchor:x,tag:A,newlineAfterProp:k,end:N,start:M??N}}function wm(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(`
|
||
`))return!0;if(t.end){for(const e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(const e of t.items){for(const n of e.start)if(n.type==="newline")return!0;if(e.sep){for(const n of e.sep)if(n.type==="newline")return!0}if(wm(e.key)||wm(e.value))return!0}return!1;default:return!0}}function xS(t,e,n){if(e?.type==="flow-collection"){const i=e.end[0];i.indent===t&&(i.source==="]"||i.source==="}")&&wm(e)&&n(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function p6(t,e,n){const{uniqueKeys:i}=t.options;if(i===!1)return!1;const s=typeof i=="function"?i:(a,o)=>a===o||Fn(a)&&Fn(o)&&a.value===o.value;return e.some(a=>s(a.key,n))}const DE="All mapping items must start at the same column";function o_e({composeNode:t,composeEmptyNode:e},n,i,s,a){const o=a?.nodeClass??_a,r=new o(n.schema);n.atRoot&&(n.atRoot=!1);let c=i.offset,d=null;for(const f of i.items){const{start:m,key:g,sep:y,value:b}=f,v=Pd(m,{indicator:"explicit-key-ind",next:g??y?.[0],offset:c,onError:s,parentIndent:i.indent,startOnNewline:!0}),x=!v.found;if(x){if(g&&(g.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in g&&g.indent!==i.indent&&s(c,"BAD_INDENT",DE)),!v.anchor&&!v.tag&&!y){d=v.end,v.comment&&(r.comment?r.comment+=`
|
||
`+v.comment:r.comment=v.comment);continue}(v.newlineAfterProp||wm(g))&&s(g??m[m.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else v.found?.indent!==i.indent&&s(c,"BAD_INDENT",DE);n.atKey=!0;const A=v.end,k=g?t(n,g,v,s):e(n,A,m,null,v,s);n.schema.compat&&xS(i.indent,g,s),n.atKey=!1,p6(n,r.items,k)&&s(A,"DUPLICATE_KEY","Map keys must be unique");const T=Pd(y??[],{indicator:"map-value-ind",next:b,offset:k.range[2],onError:s,parentIndent:i.indent,startOnNewline:!g||g.type==="block-scalar"});if(c=T.end,T.found){x&&(b?.type==="block-map"&&!T.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&v.start<T.found.offset-1024&&s(k.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));const L=b?t(n,b,T,s):e(n,c,y,null,T,s);n.schema.compat&&xS(i.indent,b,s),c=L.range[2];const M=new bs(k,L);n.options.keepSourceTokens&&(M.srcToken=f),r.items.push(M)}else{x&&s(k.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),T.comment&&(k.comment?k.comment+=`
|
||
`+T.comment:k.comment=T.comment);const L=new bs(k);n.options.keepSourceTokens&&(L.srcToken=f),r.items.push(L)}}return d&&d<c&&s(d,"IMPOSSIBLE","Map comment with trailing content"),r.range=[i.offset,c,d??c],r}function r_e({composeNode:t,composeEmptyNode:e},n,i,s,a){const o=a?.nodeClass??zc,r=new o(n.schema);n.atRoot&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let c=i.offset,d=null;for(const{start:f,value:m}of i.items){const g=Pd(f,{indicator:"seq-item-ind",next:m,offset:c,onError:s,parentIndent:i.indent,startOnNewline:!0});if(!g.found)if(g.anchor||g.tag||m)m?.type==="block-seq"?s(g.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{d=g.end,g.comment&&(r.comment=g.comment);continue}const y=m?t(n,m,g,s):e(n,g.end,f,null,g,s);n.schema.compat&&xS(i.indent,m,s),c=y.range[2],r.items.push(y)}return r.range=[i.offset,c,d??c],r}function _p(t,e,n,i){let s="";if(t){let a=!1,o="";for(const r of t){const{source:c,type:d}=r;switch(d){case"space":a=!0;break;case"comment":{n&&!a&&i(r,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),a=!0;break;default:i(r,"UNEXPECTED_TOKEN",`Unexpected ${d} at node end`)}e+=c.length}}return{comment:s,offset:e}}const I1="Block collections are not allowed within flow collections",U1=t=>t&&(t.type==="block-map"||t.type==="block-seq");function l_e({composeNode:t,composeEmptyNode:e},n,i,s,a){const o=i.start.source==="{",r=o?"flow map":"flow sequence",c=a?.nodeClass??(o?_a:zc),d=new c(n.schema);d.flow=!0;const f=n.atRoot;f&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let m=i.offset+i.start.source.length;for(let x=0;x<i.items.length;++x){const A=i.items[x],{start:k,key:T,sep:L,value:M}=A,O=Pd(k,{flow:r,indicator:"explicit-key-ind",next:T??L?.[0],offset:m,onError:s,parentIndent:i.indent,startOnNewline:!1});if(!O.found){if(!O.anchor&&!O.tag&&!L&&!M){x===0&&O.comma?s(O.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${r}`):x<i.items.length-1&&s(O.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${r}`),O.comment&&(d.comment?d.comment+=`
|
||
`+O.comment:d.comment=O.comment),m=O.end;continue}!o&&n.options.strict&&wm(T)&&s(T,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(x===0)O.comma&&s(O.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${r}`);else if(O.comma||s(O.start,"MISSING_CHAR",`Missing , between ${r} items`),O.comment){let N="";e:for(const P of k)switch(P.type){case"comma":case"space":break;case"comment":N=P.source.substring(1);break e;default:break e}if(N){let P=d.items[d.items.length-1];li(P)&&(P=P.value??P.key),P.comment?P.comment+=`
|
||
`+N:P.comment=N,O.comment=O.comment.substring(N.length+1)}}if(!o&&!L&&!O.found){const N=M?t(n,M,O,s):e(n,O.end,L,null,O,s);d.items.push(N),m=N.range[2],U1(M)&&s(N.range,"BLOCK_IN_FLOW",I1)}else{n.atKey=!0;const N=O.end,P=T?t(n,T,O,s):e(n,N,k,null,O,s);U1(T)&&s(P.range,"BLOCK_IN_FLOW",I1),n.atKey=!1;const E=Pd(L??[],{flow:r,indicator:"map-value-ind",next:M,offset:P.range[2],onError:s,parentIndent:i.indent,startOnNewline:!1});if(E.found){if(!o&&!O.found&&n.options.strict){if(L)for(const D of L){if(D===E.found)break;if(D.type==="newline"){s(D,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}O.start<E.found.offset-1024&&s(E.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else M&&("source"in M&&M.source?.[0]===":"?s(M,"MISSING_CHAR",`Missing space after : in ${r}`):s(E.start,"MISSING_CHAR",`Missing , or : between ${r} items`));const R=M?t(n,M,E,s):E.found?e(n,E.end,L,null,E,s):null;R?U1(M)&&s(R.range,"BLOCK_IN_FLOW",I1):E.comment&&(P.comment?P.comment+=`
|
||
`+E.comment:P.comment=E.comment);const z=new bs(P,R);if(n.options.keepSourceTokens&&(z.srcToken=A),o){const D=d;p6(n,D.items,P)&&s(N,"DUPLICATE_KEY","Map keys must be unique"),D.items.push(z)}else{const D=new _a(n.schema);D.flow=!0,D.items.push(z);const Q=(R??P).range;D.range=[P.range[0],Q[1],Q[2]],d.items.push(D)}m=R?R.range[2]:E.end}}const g=o?"}":"]",[y,...b]=i.end;let v=m;if(y?.source===g)v=y.offset+y.source.length;else{const x=r[0].toUpperCase()+r.substring(1),A=f?`${x} must end with a ${g}`:`${x} in block collection must be sufficiently indented and end with a ${g}`;s(m,f?"MISSING_CHAR":"BAD_INDENT",A),y&&y.source.length!==1&&b.unshift(y)}if(b.length>0){const x=_p(b,v,n.options.strict,s);x.comment&&(d.comment?d.comment+=`
|
||
`+x.comment:d.comment=x.comment),d.range=[i.offset,v,x.offset]}else d.range=[i.offset,v,v];return d}function B1(t,e,n,i,s,a){const o=n.type==="block-map"?o_e(t,e,n,i,a):n.type==="block-seq"?r_e(t,e,n,i,a):l_e(t,e,n,i,a),r=o.constructor;return s==="!"||s===r.tagName?(o.tag=r.tagName,o):(s&&(o.tag=s),o)}function c_e(t,e,n,i,s){const a=i.tag,o=a?e.directives.tagName(a.source,g=>s(a,"TAG_RESOLVE_FAILED",g)):null;if(n.type==="block-seq"){const{anchor:g,newlineAfterProp:y}=i,b=g&&a?g.offset>a.offset?g:a:g??a;b&&(!y||y.offset<b.offset)&&s(b,"MISSING_CHAR","Missing newline after block sequence props")}const r=n.type==="block-map"?"map":n.type==="block-seq"?"seq":n.start.source==="{"?"map":"seq";if(!a||!o||o==="!"||o===_a.tagName&&r==="map"||o===zc.tagName&&r==="seq")return B1(t,e,n,s,o);let c=e.schema.tags.find(g=>g.tag===o&&g.collection===r);if(!c){const g=e.schema.knownTags[o];if(g?.collection===r)e.schema.tags.push(Object.assign({},g,{default:!1})),c=g;else return g?s(a,"BAD_COLLECTION_TYPE",`${g.tag} used for ${r} collection, but expects ${g.collection??"scalar"}`,!0):s(a,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),B1(t,e,n,s,o)}const d=B1(t,e,n,s,o,c),f=c.resolve?.(d,g=>s(a,"TAG_RESOLVE_FAILED",g),e.options)??d,m=ri(f)?f:new Et(f);return m.range=d.range,m.tag=o,c?.format&&(m.format=c.format),m}function u_e(t,e,n){const i=e.offset,s=d_e(e,t.options.strict,n);if(!s)return{value:"",type:null,comment:"",range:[i,i,i]};const a=s.mode===">"?Et.BLOCK_FOLDED:Et.BLOCK_LITERAL,o=e.source?h_e(e.source):[];let r=o.length;for(let v=o.length-1;v>=0;--v){const x=o[v][1];if(x===""||x==="\r")r=v;else break}if(r===0){const v=s.chomp==="+"&&o.length>0?`
|
||
`.repeat(Math.max(1,o.length-1)):"";let x=i+s.length;return e.source&&(x+=e.source.length),{value:v,type:a,comment:s.comment,range:[i,x,x]}}let c=e.indent+s.indent,d=e.offset+s.length,f=0;for(let v=0;v<r;++v){const[x,A]=o[v];if(A===""||A==="\r")s.indent===0&&x.length>c&&(c=x.length);else{x.length<c&&n(d+x.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=x.length),f=v,c===0&&!t.atRoot&&n(d,"BAD_INDENT","Block scalar values in collections must be indented");break}d+=x.length+A.length+1}for(let v=o.length-1;v>=r;--v)o[v][0].length>c&&(r=v+1);let m="",g="",y=!1;for(let v=0;v<f;++v)m+=o[v][0].slice(c)+`
|
||
`;for(let v=f;v<r;++v){let[x,A]=o[v];d+=x.length+A.length+1;const k=A[A.length-1]==="\r";if(k&&(A=A.slice(0,-1)),A&&x.length<c){const L=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;n(d-A.length-(k?2:1),"BAD_INDENT",L),x=""}a===Et.BLOCK_LITERAL?(m+=g+x.slice(c)+A,g=`
|
||
`):x.length>c||A[0]===" "?(g===" "?g=`
|
||
`:!y&&g===`
|
||
`&&(g=`
|
||
|
||
`),m+=g+x.slice(c)+A,g=`
|
||
`,y=!0):A===""?g===`
|
||
`?m+=`
|
||
`:g=`
|
||
`:(m+=g+A,g=" ",y=!1)}switch(s.chomp){case"-":break;case"+":for(let v=r;v<o.length;++v)m+=`
|
||
`+o[v][0].slice(c);m[m.length-1]!==`
|
||
`&&(m+=`
|
||
`);break;default:m+=`
|
||
`}const b=i+s.length+e.source.length;return{value:m,type:a,comment:s.comment,range:[i,b,b]}}function d_e({offset:t,props:e},n,i){if(e[0].type!=="block-scalar-header")return i(e[0],"IMPOSSIBLE","Block scalar header not found"),null;const{source:s}=e[0],a=s[0];let o=0,r="",c=-1;for(let g=1;g<s.length;++g){const y=s[g];if(!r&&(y==="-"||y==="+"))r=y;else{const b=Number(y);!o&&b?o=b:c===-1&&(c=t+g)}}c!==-1&&i(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let d=!1,f="",m=s.length;for(let g=1;g<e.length;++g){const y=e[g];switch(y.type){case"space":d=!0;case"newline":m+=y.source.length;break;case"comment":n&&!d&&i(y,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),m+=y.source.length,f=y.source.substring(1);break;case"error":i(y,"UNEXPECTED_TOKEN",y.message),m+=y.source.length;break;default:{const b=`Unexpected token in block scalar header: ${y.type}`;i(y,"UNEXPECTED_TOKEN",b);const v=y.source;v&&typeof v=="string"&&(m+=v.length)}}}return{mode:a,indent:o,chomp:r,comment:f,length:m}}function h_e(t){const e=t.split(/\n( *)/),n=e[0],i=n.match(/^( *)/),a=[i?.[1]?[i[1],n.slice(i[1].length)]:["",n]];for(let o=1;o<e.length;o+=2)a.push([e[o],e[o+1]]);return a}function f_e(t,e,n){const{offset:i,type:s,source:a,end:o}=t;let r,c;const d=(g,y,b)=>n(i+g,y,b);switch(s){case"scalar":r=Et.PLAIN,c=m_e(a,d);break;case"single-quoted-scalar":r=Et.QUOTE_SINGLE,c=p_e(a,d);break;case"double-quoted-scalar":r=Et.QUOTE_DOUBLE,c=g_e(a,d);break;default:return n(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[i,i+a.length,i+a.length]}}const f=i+a.length,m=_p(o,f,e,n);return{value:c,type:r,comment:m.comment,range:[i,f,m.offset]}}function m_e(t,e){let n="";switch(t[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${t[0]}`;break}case"@":case"`":{n=`reserved character ${t[0]}`;break}}return n&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),g6(t)}function p_e(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),g6(t.slice(1,-1)).replace(/''/g,"'")}function g6(t){let e,n;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
||
`,"sy"),n=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
||
`,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let i=e.exec(t);if(!i)return t;let s=i[1],a=" ",o=e.lastIndex;for(n.lastIndex=o;i=n.exec(t);)i[1]===""?a===`
|
||
`?s+=a:a=`
|
||
`:(s+=a+i[1],a=" "),o=n.lastIndex;const r=/[ \t]*(.*)/sy;return r.lastIndex=o,i=r.exec(t),s+a+(i?.[1]??"")}function g_e(t,e){let n="";for(let i=1;i<t.length-1;++i){const s=t[i];if(!(s==="\r"&&t[i+1]===`
|
||
`))if(s===`
|
||
`){const{fold:a,offset:o}=__e(t,i);n+=a,i=o}else if(s==="\\"){let a=t[++i];const o=y_e[a];if(o)n+=o;else if(a===`
|
||
`)for(a=t[i+1];a===" "||a===" ";)a=t[++i+1];else if(a==="\r"&&t[i+1]===`
|
||
`)for(a=t[++i+1];a===" "||a===" ";)a=t[++i+1];else if(a==="x"||a==="u"||a==="U"){const r={x:2,u:4,U:8}[a];n+=b_e(t,i+1,r,e),i+=r}else{const r=t.substr(i-1,2);e(i-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${r}`),n+=r}}else if(s===" "||s===" "){const a=i;let o=t[i+1];for(;o===" "||o===" ";)o=t[++i+1];o!==`
|
||
`&&!(o==="\r"&&t[i+2]===`
|
||
`)&&(n+=i>a?t.slice(a,i+1):s)}else n+=s}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),n}function __e(t,e){let n="",i=t[e+1];for(;(i===" "||i===" "||i===`
|
||
`||i==="\r")&&!(i==="\r"&&t[e+2]!==`
|
||
`);)i===`
|
||
`&&(n+=`
|
||
`),e+=1,i=t[e+1];return n||(n=" "),{fold:n,offset:e}}const y_e={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
||
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function b_e(t,e,n,i){const s=t.substr(e,n),o=s.length===n&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){const r=t.substr(e-2,n+2);return i(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${r}`),r}return String.fromCodePoint(o)}function _6(t,e,n,i){const{value:s,type:a,comment:o,range:r}=e.type==="block-scalar"?u_e(t,e,i):f_e(e,t.options.strict,i),c=n?t.directives.tagName(n.source,m=>i(n,"TAG_RESOLVE_FAILED",m)):null;let d;t.options.stringKeys&&t.atKey?d=t.schema[Lo]:c?d=v_e(t.schema,s,c,n,i):e.type==="scalar"?d=x_e(t,s,e,i):d=t.schema[Lo];let f;try{const m=d.resolve(s,g=>i(n??e,"TAG_RESOLVE_FAILED",g),t.options);f=Fn(m)?m:new Et(m)}catch(m){const g=m instanceof Error?m.message:String(m);i(n??e,"TAG_RESOLVE_FAILED",g),f=new Et(s)}return f.range=r,f.source=s,a&&(f.type=a),c&&(f.tag=c),d.format&&(f.format=d.format),o&&(f.comment=o),f}function v_e(t,e,n,i,s){if(n==="!")return t[Lo];const a=[];for(const r of t.tags)if(!r.collection&&r.tag===n)if(r.default&&r.test)a.push(r);else return r;for(const r of a)if(r.test?.test(e))return r;const o=t.knownTags[n];return o&&!o.collection?(t.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),t[Lo])}function x_e({atKey:t,directives:e,schema:n},i,s,a){const o=n.tags.find(r=>(r.default===!0||t&&r.default==="key")&&r.test?.test(i))||n[Lo];if(n.compat){const r=n.compat.find(c=>c.default&&c.test?.test(i))??n[Lo];if(o.tag!==r.tag){const c=e.tagString(o.tag),d=e.tagString(r.tag),f=`Value may be parsed as either ${c} or ${d}`;a(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}function S_e(t,e,n){if(e){n??(n=e.length);for(let i=n-1;i>=0;--i){let s=e[i];switch(s.type){case"space":case"comment":case"newline":t-=s.source.length;continue}for(s=e[++i];s?.type==="space";)t+=s.source.length,s=e[++i];break}}return t}const w_e={composeNode:y6,composeEmptyNode:zk};function y6(t,e,n,i){const s=t.atKey,{spaceBefore:a,comment:o,anchor:r,tag:c}=n;let d,f=!0;switch(e.type){case"alias":d=k_e(t,e,i),(r||c)&&i(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":d=_6(t,e,c,i),r&&(d.anchor=r.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":d=c_e(w_e,t,e,n,i),r&&(d.anchor=r.source.substring(1));break;default:{const m=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;i(e,"UNEXPECTED_TOKEN",m),d=zk(t,e.offset,void 0,null,n,i),f=!1}}return r&&d.anchor===""&&i(r,"BAD_ALIAS","Anchor cannot be an empty string"),s&&t.options.stringKeys&&(!Fn(d)||typeof d.value!="string"||d.tag&&d.tag!=="tag:yaml.org,2002:str")&&i(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),a&&(d.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?d.comment=o:d.commentBefore=o),t.options.keepSourceTokens&&f&&(d.srcToken=e),d}function zk(t,e,n,i,{spaceBefore:s,comment:a,anchor:o,tag:r,end:c},d){const f={type:"scalar",offset:S_e(e,n,i),indent:-1,source:""},m=_6(t,f,r,d);return o&&(m.anchor=o.source.substring(1),m.anchor===""&&d(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(m.spaceBefore=!0),a&&(m.comment=a,m.range[2]=c),m}function k_e({options:t},{offset:e,source:n,end:i},s){const a=new Mk(n.substring(1));a.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),a.source.endsWith(":")&&s(e+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=e+n.length,r=_p(i,o,t.strict,s);return a.range=[e,o,r.offset],r.comment&&(a.comment=r.comment),a}function C_e(t,e,{offset:n,start:i,value:s,end:a},o){const r=Object.assign({_directives:e},t),c=new hb(void 0,r),d={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Pd(i,{indicator:"doc-start",next:s??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?y6(d,s,f,o):zk(d,f.end,i,null,f,o);const m=c.contents.range[2],g=_p(a,m,!1,o);return g.comment&&(c.comment=g.comment),c.range=[n,m,g.offset],c}function gf(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];const{offset:e,source:n}=t;return[e,e+(typeof n=="string"?n.length:1)]}function FE(t){let e="",n=!1,i=!1;for(let s=0;s<t.length;++s){const a=t[s];switch(a[0]){case"#":e+=(e===""?"":i?`
|
||
|
||
`:`
|
||
`)+(a.substring(1)||" "),n=!0,i=!1;break;case"%":t[s+1]?.[0]!=="#"&&(s+=1),n=!1;break;default:n||(i=!0),n=!1}}return{comment:e,afterEmptyLine:i}}class A_e{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,i,s,a)=>{const o=gf(n);a?this.warnings.push(new a_e(o,i,s)):this.errors.push(new jf(o,i,s))},this.directives=new fs({version:e.version||"1.2"}),this.options=e}decorate(e,n){const{comment:i,afterEmptyLine:s}=FE(this.prelude);if(i){const a=e.contents;if(n)e.comment=e.comment?`${e.comment}
|
||
${i}`:i;else if(s||e.directives.docStart||!a)e.commentBefore=i;else if(ai(a)&&!a.flow&&a.items.length>0){let o=a.items[0];li(o)&&(o=o.key);const r=o.commentBefore;o.commentBefore=r?`${i}
|
||
${r}`:i}else{const o=a.commentBefore;a.commentBefore=o?`${i}
|
||
${o}`:i}}n?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:FE(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,n=!1,i=-1){for(const s of e)yield*this.next(s);yield*this.end(n,i)}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(n,i,s)=>{const a=gf(e);a[0]+=n,this.onError(a,"BAD_DIRECTIVE",i,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{const n=C_e(this.options,this.directives,e,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const n=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,i=new jf(gf(e),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){const i="Unexpected doc-end without preceding document";this.errors.push(new jf(gf(e),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;const n=_p(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const i=this.doc.comment;this.doc.comment=i?`${i}
|
||
${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new jf(gf(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){const i=Object.assign({_directives:this.directives},this.options),s=new hb(void 0,i);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,n,n],this.decorate(s,!1),yield s}}}const b6="\uFEFF",v6="",x6="",SS="";function N_e(t){switch(t){case b6:return"byte-order-mark";case v6:return"doc-mode";case x6:return"flow-error-end";case SS:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
||
`:case`\r
|
||
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(t[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Ba(t){switch(t){case void 0:case" ":case`
|
||
`:case"\r":case" ":return!0;default:return!1}}const IE=new Set("0123456789ABCDEFabcdef"),T_e=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),w_=new Set(",[]{}"),M_e=new Set(` ,[]{}
|
||
\r `),z1=t=>!t||M_e.has(t);class L_e{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,n=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!n;let i=this.next??"stream";for(;i&&(n||this.hasChars(1));)i=yield*this.parseNext(i)}atLineEnd(){let e=this.pos,n=this.buffer[e];for(;n===" "||n===" ";)n=this.buffer[++e];return!n||n==="#"||n===`
|
||
`?!0:n==="\r"?this.buffer[e+1]===`
|
||
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let n=this.buffer[e];if(this.indentNext>0){let i=0;for(;n===" ";)n=this.buffer[++i+e];if(n==="\r"){const s=this.buffer[i+e+1];if(s===`
|
||
`||!s&&!this.atEnd)return e+i+1}return n===`
|
||
`||i>=this.indentNext||!n&&!this.atEnd?e+i:-1}if(n==="-"||n==="."){const i=this.buffer.substr(e,3);if((i==="---"||i==="...")&&Ba(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
||
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===b6&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let n=e.length,i=e.indexOf("#");for(;i!==-1;){const a=e[i-1];if(a===" "||a===" "){n=i-1;break}else i=e.indexOf("#",i+1)}for(;;){const a=e[n-1];if(a===" "||a===" ")n-=1;else break}const s=(yield*this.pushCount(n))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){const n=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-n),yield*this.pushNewline(),"stream"}return yield v6,yield*this.parseLineStart()}*parseLineStart(){const e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");const n=this.peek(3);if((n==="---"||n==="...")&&Ba(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,n==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Ba(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[e,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Ba(n)){const i=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=i,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const e=this.getLine();if(e===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(e[n]){case"#":yield*this.pushCount(e.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(z1),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,n,i=-1;do e=yield*this.pushNewline(),e>0?(n=yield*this.pushSpaces(!1),this.indentValue=i=n):n=0,n+=yield*this.pushSpaces(!0);while(e+n>0);const s=this.getLine();if(s===null)return this.setNext("flow");if((i!==-1&&i<this.indentNext&&s[0]!=="#"||i===0&&(s.startsWith("---")||s.startsWith("..."))&&Ba(s[3]))&&!(i===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield x6,yield*this.parseLineStart();let a=0;for(;s[a]===",";)a+=yield*this.pushCount(1),a+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(a+=yield*this.pushIndicators(),s[a]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-a),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(z1),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{const o=this.charAt(1);if(this.flowKey||Ba(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){const e=this.charAt(0);let n=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;n!==-1&&this.buffer[n+1]==="'";)n=this.buffer.indexOf("'",n+2);else for(;n!==-1;){let a=0;for(;this.buffer[n-1-a]==="\\";)a+=1;if(a%2===0)break;n=this.buffer.indexOf('"',n+1)}const i=this.buffer.substring(0,n);let s=i.indexOf(`
|
||
`,this.pos);if(s!==-1){for(;s!==-1;){const a=this.continueScalar(s+1);if(a===-1)break;s=i.indexOf(`
|
||
`,a)}s!==-1&&(n=s-(i[s-1]==="\r"?2:1))}if(n===-1){if(!this.atEnd)return this.setNext("quoted-scalar");n=this.buffer.length}return yield*this.pushToIndex(n+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){const n=this.buffer[++e];if(n==="+")this.blockScalarKeep=!0;else if(n>"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Ba(n)||n==="#")}*parseBlockScalar(){let e=this.pos-1,n=0,i;e:for(let a=this.pos;i=this.buffer[a];++a)switch(i){case" ":n+=1;break;case`
|
||
`:e=a,n=0;break;case"\r":{const o=this.buffer[a+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
||
`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const a=this.continueScalar(e+1);if(a===-1)break;e=this.buffer.indexOf(`
|
||
`,a)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(i=this.buffer[s];i===" ";)i=this.buffer[++s];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===`
|
||
`;)i=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let a=e-1,o=this.buffer[a];o==="\r"&&(o=this.buffer[--a]);const r=a;for(;o===" ";)o=this.buffer[--a];if(o===`
|
||
`&&a>=this.pos&&a+1+n>r)e=a;else break}while(!0);return yield SS,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let n=this.pos-1,i=this.pos-1,s;for(;s=this.buffer[++i];)if(s===":"){const a=this.buffer[i+1];if(Ba(a)||e&&w_.has(a))break;n=i}else if(Ba(s)){let a=this.buffer[i+1];if(s==="\r"&&(a===`
|
||
`?(i+=1,s=`
|
||
`,a=this.buffer[i+1]):n=i),a==="#"||e&&w_.has(a))break;if(s===`
|
||
`){const o=this.continueScalar(i+1);if(o===-1)break;i=Math.max(i,o-2)}}else{if(e&&w_.has(s))break;n=i}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield SS,yield*this.pushToIndex(n+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,n){const i=this.buffer.slice(this.pos,e);return i?(yield i,this.pos+=i.length,i.length):(n&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(z1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0,n=this.charAt(1);if(Ba(n)||e&&w_.has(n))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,n=this.buffer[e];for(;!Ba(n)&&n!==">";)n=this.buffer[++e];return yield*this.pushToIndex(n===">"?e+1:e,!1)}else{let e=this.pos+1,n=this.buffer[e];for(;n;)if(T_e.has(n))n=this.buffer[++e];else if(n==="%"&&IE.has(this.buffer[e+1])&&IE.has(this.buffer[e+2]))n=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){const e=this.buffer[this.pos];return e===`
|
||
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
||
`?yield*this.pushCount(2):0}*pushSpaces(e){let n=this.pos-1,i;do i=this.buffer[++n];while(i===" "||e&&i===" ");const s=n-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=n),s}*pushUntil(e){let n=this.pos,i=this.buffer[n];for(;!e(i);)i=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class O_e{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let n=0,i=this.lineStarts.length;for(;n<i;){const a=n+i>>1;this.lineStarts[a]<e?n=a+1:i=a}if(this.lineStarts[n]===e)return{line:n+1,col:1};if(n===0)return{line:0,col:e};const s=this.lineStarts[n-1];return{line:n,col:e-s+1}}}}function dl(t,e){for(let n=0;n<t.length;++n)if(t[n].type===e)return!0;return!1}function UE(t){for(let e=0;e<t.length;++e)switch(t[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function S6(t){switch(t?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function k_(t){switch(t.type){case"document":return t.start;case"block-map":{const e=t.items[t.items.length-1];return e.sep??e.start}case"block-seq":return t.items[t.items.length-1].start;default:return[]}}function Hu(t){if(t.length===0)return[];let e=t.length;e:for(;--e>=0;)switch(t[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;t[++e]?.type==="space";);return t.splice(e,t.length)}function BE(t){if(t.start.type==="flow-seq-start")for(const e of t.items)e.sep&&!e.value&&!dl(e.start,"explicit-key-ind")&&!dl(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,S6(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}let P_e=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new L_e,this.onNewLine=e}*parse(e,n=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(const i of this.lexer.lex(e,n))yield*this.next(i);n||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}const n=N_e(e);if(n)if(n==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=n,yield*this.step(),n){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{const i=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:i,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const n=e??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const i=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in i?i.indent:0:n.type==="flow-collection"&&i.type==="document"&&(n.indent=0),n.type==="flow-collection"&&BE(n),i.type){case"document":i.value=n;break;case"block-scalar":i.props.push(n);break;case"block-map":{const s=i.items[i.items.length-1];if(s.value){i.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=n;else{Object.assign(s,{key:n,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{const s=i.items[i.items.length-1];s.value?i.items.push({start:[],value:n}):s.value=n;break}case"flow-collection":{const s=i.items[i.items.length-1];!s||s.value?i.items.push({start:[],key:n,sep:[]}):s.sep?s.value=n:Object.assign(s,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const s=n.items[n.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&UE(s.start)===-1&&(n.indent===0||s.start.every(a=>a.type!=="comment"||a.indent<n.indent))&&(i.type==="document"?i.end=s.start:i.items.push({start:s.start}),n.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{const e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{UE(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}const n=this.startBlockValue(e);n?this.stack.push(n):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){const n=k_(this.peek(2)),i=Hu(n);let s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];const a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let n=this.source.indexOf(`
|
||
`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(`
|
||
`,n)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){const n=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,n.value){const i="end"in n.value?n.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)e.items.push({start:[this.sourceToken]});else if(n.sep)n.sep.push(this.sourceToken);else{if(this.atIndentedComment(n.start,e.indent)){const s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,n.start),s.push(this.sourceToken),e.items.pop();return}}n.start.push(this.sourceToken)}return}if(this.indent>=e.indent){const i=!this.onKeyLine&&this.indent===e.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let a=[];if(s&&n.sep&&!n.value){const o=[];for(let r=0;r<n.sep.length;++r){const c=n.sep[r];switch(c.type){case"newline":o.push(r);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(a=n.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(a.push(this.sourceToken),e.items.push({start:a}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(a.push(this.sourceToken),e.items.push({start:a,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(dl(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]});else if(S6(n.key)&&!dl(n.sep,"newline")){const o=Hu(n.start),r=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:r,sep:c}]})}else a.length>0?n.sep=n.sep.concat(a,this.sourceToken):n.sep.push(this.sourceToken);else if(dl(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const o=Hu(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?e.items.push({start:a,key:null,sep:[this.sourceToken]}):dl(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const o=this.flowScalar(this.type);s||n.value?(e.items.push({start:a,key:o,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(o):(Object.assign(n,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{const o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!n.explicitKey&&n.sep&&!dl(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&e.items.push({start:a});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){const n=e.items[e.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,e.indent)){const s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,n.start),s.push(this.sourceToken),e.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=e.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;n.value||dl(n.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>e.indent){const i=this.startBlockValue(e);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){const n=e.items[e.items.length-1];if(this.type==="flow-error-end"){let i;do yield*this.pop(),i=this.peek(1);while(i?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?e.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const s=this.flowScalar(this.type);!n||n.value?e.items.push({start:[],key:s,sep:[]}):n.sep?this.stack.push(s):Object.assign(n,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const i=this.startBlockValue(e);i?this.stack.push(i):(yield*this.pop(),yield*this.step())}else{const i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===e.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){const s=k_(i),a=Hu(s);BE(e);const o=e.end.splice(1,e.end.length);o.push(this.sourceToken);const r={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:a,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let n=this.source.indexOf(`
|
||
`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(`
|
||
`,n)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=k_(e),i=Hu(n);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=k_(e),i=Hu(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,n){return this.type!=="comment"||this.indent<=n?!1:e.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};function E_e(t){const e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new O_e||null,prettyErrors:e}}function km(t,e={}){const{lineCounter:n,prettyErrors:i}=E_e(e),s=new P_e(n?.addNewLine),a=new A_e(e);let o=null;for(const r of a.compose(s.parse(t),!0,t.length))if(!o)o=r;else if(o.options.logLevel!=="silent"){o.errors.push(new jf(r.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&n&&(o.errors.forEach(RE(t,n)),o.warnings.forEach(RE(t,n))),o}function w6(t,e,n){let i;const s=km(t,n);if(!s)return null;if(s.warnings.forEach(a=>X5(s.options.logLevel,a)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:i},n))}const j_e="ConfigSection-module__section___36A5y",R_e="ConfigSection-module__header___9y9kI",D_e="ConfigSection-module__titleRow___MDqPS",F_e="ConfigSection-module__indexBadge___BNk-6",I_e="ConfigSection-module__iconBadge___608--",U_e="ConfigSection-module__headingGroup___iqK3P",B_e="ConfigSection-module__title___fNwM-",z_e="ConfigSection-module__description___uM2Zw",q_e="ConfigSection-module__content___RBAGw",lr={section:j_e,header:R_e,titleRow:D_e,indexBadge:F_e,iconBadge:I_e,headingGroup:U_e,title:B_e,description:z_e,content:q_e},cr=S.forwardRef(function({title:e,description:n,indexLabel:i,icon:s,className:a,children:o,...r},c){const d=[lr.section,a].filter(Boolean).join(" ");return h.jsxs("section",{ref:c,className:d,...r,children:[h.jsxs("header",{className:lr.header,children:[h.jsxs("div",{className:lr.titleRow,children:[i?h.jsx("span",{className:lr.indexBadge,children:i}):null,s?h.jsx("span",{className:lr.iconBadge,children:s}):null]}),h.jsxs("div",{className:lr.headingGroup,children:[h.jsx("h2",{className:lr.title,children:e}),n?h.jsx("p",{className:lr.description,children:n}):null]})]}),h.jsx("div",{className:lr.content,children:o})]})}),K_e="VisualConfigEditor-module__visualEditor___qt8bb",H_e="VisualConfigEditor-module__expandableInputWrapper___k5rpc",V_e="VisualConfigEditor-module__expandableTextarea___OVvmN",W_e="VisualConfigEditor-module__expandableToggle___M5mBU",G_e="VisualConfigEditor-module__expandableInputExpanded___9zfyv",$_e="VisualConfigEditor-module__overview___OzHQc",X_e="VisualConfigEditor-module__overviewHeader___A8kWa",Q_e="VisualConfigEditor-module__overviewMeta___SM8ZF",Y_e="VisualConfigEditor-module__overviewPill___eXq54",J_e="VisualConfigEditor-module__overviewPillWarning___ruscj",Z_e="VisualConfigEditor-module__overviewFocusList___UfkDy",e0e="VisualConfigEditor-module__overviewFocusLink___CSqNR",t0e="VisualConfigEditor-module__overviewFocusLinkActive___LCEnC",n0e="VisualConfigEditor-module__focusIcon___9SvWW",i0e="VisualConfigEditor-module__focusCopy___FTgbh",s0e="VisualConfigEditor-module__focusTitle___mIxOM",a0e="VisualConfigEditor-module__focusDescription___NUwa3",o0e="VisualConfigEditor-module__workspace___gqLDP",r0e="VisualConfigEditor-module__mobileSectionNav___d-TWK",l0e="VisualConfigEditor-module__mobileSectionNavScroller___VGXz-",c0e="VisualConfigEditor-module__mobileSectionNavButton___mR9BT",u0e="VisualConfigEditor-module__mobileSectionNavButtonActive___ug6e6",d0e="VisualConfigEditor-module__mobileSectionNavIndex___eVeF8",h0e="VisualConfigEditor-module__mobileSectionNavLabel___oOjqs",f0e="VisualConfigEditor-module__mobileSectionNavBadge___Gp-uW",m0e="VisualConfigEditor-module__sidebar___SiTqL",p0e="VisualConfigEditor-module__sidebarPlaceholder___LpX2Y",g0e="VisualConfigEditor-module__sidebarRail___aktyQ",_0e="VisualConfigEditor-module__floatingSidebarContainer___FWwFS",y0e="VisualConfigEditor-module__floatingSidebarRail___ym20u",b0e="VisualConfigEditor-module__navList___Z7CyL",v0e="VisualConfigEditor-module__navButton___EtGL7",x0e="VisualConfigEditor-module__navButtonActive___oMl0Y",S0e="VisualConfigEditor-module__navIndex___NEFe2",w0e="VisualConfigEditor-module__navMain___JoJFq",k0e="VisualConfigEditor-module__navHeadingRow___ulXXL",C0e="VisualConfigEditor-module__navLabelWrap___3-6B4",A0e="VisualConfigEditor-module__navIcon___ZGr7m",N0e="VisualConfigEditor-module__navLabel___-reRP",T0e="VisualConfigEditor-module__navDescription___PvAH-",M0e="VisualConfigEditor-module__navBadge___UKNbs",L0e="VisualConfigEditor-module__sections___UAac4",O0e="VisualConfigEditor-module__sectionGrid___KHy6p",P0e="VisualConfigEditor-module__sectionStack___nY-l7",E0e="VisualConfigEditor-module__divider___RHNc6",j0e="VisualConfigEditor-module__toggleRow___Lb65M",R0e="VisualConfigEditor-module__toggleCopy___IC6RU",D0e="VisualConfigEditor-module__toggleTitle___ep81q",F0e="VisualConfigEditor-module__toggleDescription___DrJw5",I0e="VisualConfigEditor-module__fieldShell___Q-UC-",U0e="VisualConfigEditor-module__fieldLabel___B0C9J",B0e="VisualConfigEditor-module__fieldControl___bzi3y",z0e="VisualConfigEditor-module__fieldHint___lA9jH",q0e="VisualConfigEditor-module__inlinePill___qI2DE",K0e="VisualConfigEditor-module__subsection___wLWRY",H0e="VisualConfigEditor-module__subsectionHeader___OAu1N",V0e="VisualConfigEditor-module__subsectionTitle___9spj4",W0e="VisualConfigEditor-module__subsectionDescription___Cy1zr",G0e="VisualConfigEditor-module__blockHeaderRow___bw0Ek",$0e="VisualConfigEditor-module__blockStack___skL7x",X0e="VisualConfigEditor-module__ruleCard___PtDhf",Q0e="VisualConfigEditor-module__ruleCardHeader___MYRwJ",Y0e="VisualConfigEditor-module__ruleCardTitle___tshgp",J0e="VisualConfigEditor-module__blockLabel___NjEEm",Z0e="VisualConfigEditor-module__actionRow___XLzbJ",eye="VisualConfigEditor-module__emptyState___A7-n3",tye="VisualConfigEditor-module__stringList___lQQGc",nye="VisualConfigEditor-module__stringListRow___4k2cz",iye="VisualConfigEditor-module__payloadRuleModelRow___VKBv1",sye="VisualConfigEditor-module__payloadRuleModelRowProtocolFirst___OaJ2F",aye="VisualConfigEditor-module__payloadRuleParamRow___KZJW-",oye="VisualConfigEditor-module__payloadRuleParamGroup___1QLNQ",rye="VisualConfigEditor-module__payloadJsonInput___ewOqz",lye="VisualConfigEditor-module__payloadParamError___wGWdg",cye="VisualConfigEditor-module__payloadFilterModelRow___MeP9-",uye="VisualConfigEditor-module__apiKeyModalInputRow___08QmU",dye="VisualConfigEditor-module__payloadRowActionButton___8Fdka",Re={visualEditor:K_e,expandableInputWrapper:H_e,expandableTextarea:V_e,expandableToggle:W_e,expandableInputExpanded:G_e,overview:$_e,overviewHeader:X_e,overviewMeta:Q_e,overviewPill:Y_e,overviewPillWarning:J_e,overviewFocusList:Z_e,overviewFocusLink:e0e,overviewFocusLinkActive:t0e,focusIcon:n0e,focusCopy:i0e,focusTitle:s0e,focusDescription:a0e,workspace:o0e,mobileSectionNav:r0e,mobileSectionNavScroller:l0e,mobileSectionNavButton:c0e,mobileSectionNavButtonActive:u0e,mobileSectionNavIndex:d0e,mobileSectionNavLabel:h0e,mobileSectionNavBadge:f0e,sidebar:m0e,sidebarPlaceholder:p0e,sidebarRail:g0e,floatingSidebarContainer:_0e,floatingSidebarRail:y0e,navList:b0e,navButton:v0e,navButtonActive:x0e,navIndex:S0e,navMain:w0e,navHeadingRow:k0e,navLabelWrap:C0e,navIcon:A0e,navLabel:N0e,navDescription:T0e,navBadge:M0e,sections:L0e,sectionGrid:O0e,sectionStack:P0e,divider:E0e,toggleRow:j0e,toggleCopy:R0e,toggleTitle:D0e,toggleDescription:F0e,fieldShell:I0e,fieldLabel:U0e,fieldControl:B0e,fieldHint:z0e,inlinePill:q0e,subsection:K0e,subsectionHeader:H0e,subsectionTitle:V0e,subsectionDescription:W0e,blockHeaderRow:G0e,blockStack:$0e,ruleCard:X0e,ruleCardHeader:Q0e,ruleCardTitle:Y0e,blockLabel:J0e,actionRow:Z0e,emptyState:eye,stringList:tye,stringListRow:nye,payloadRuleModelRow:iye,payloadRuleModelRowProtocolFirst:sye,payloadRuleParamRow:aye,payloadRuleParamGroup:oye,payloadJsonInput:rye,payloadParamError:lye,payloadFilterModelRow:cye,apiKeyModalInputRow:uye,payloadRowActionButton:dye},$a=()=>typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():`${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`,hye={host:"",port:"",tlsEnable:!1,tlsCert:"",tlsKey:"",rmAllowRemote:!1,rmSecretKey:"",rmDisableControlPanel:!1,rmPanelRepo:"",authDir:"",apiKeysText:"",debug:!1,commercialMode:!1,loggingToFile:!1,logsMaxTotalSizeMb:"",usageStatisticsEnabled:!1,proxyUrl:"",forceModelPrefix:!1,requestRetry:"",maxRetryCredentials:"",maxRetryInterval:"",quotaSwitchProject:!0,quotaSwitchPreviewModel:!0,routingStrategy:"round-robin",wsAuth:!1,payloadDefaultRules:[],payloadDefaultRawRules:[],payloadOverrideRules:[],payloadOverrideRawRules:[],payloadFilterRules:[],streaming:{keepaliveSeconds:"",bootstrapRetries:"",nonstreamKeepaliveInterval:""}};function Ci(t){return t===null||typeof t!="object"||Array.isArray(t)?null:t}function fye(t){if(typeof t=="string"){const i=t.trim();return i||null}const e=Ci(t);if(!e)return null;const n=[e["api-key"],e.apiKey,e.key,e.Key];for(const i of n)if(typeof i=="string"){const s=i.trim();if(s)return s}return null}function q1(t){if(!Array.isArray(t))return"";const e=[];for(const n of t){const i=fye(n);i&&e.push(i)}return e.join(`
|
||
`)}function mye(t){if(Object.prototype.hasOwnProperty.call(t,"api-keys"))return q1(t["api-keys"]);const e=Ci(t.auth),n=Ci(e?.providers),i=Ci(n?.["config-api-key"]);return i?Object.prototype.hasOwnProperty.call(i,"api-key-entries")?q1(i["api-key-entries"]):q1(i["api-keys"]):""}function Oi(t,e){return t.hasIn(e)}function Vu(t,e){const n=t.getIn(e,!0);Fl(n)||t.setIn(e,t.createNode({}))}function gr(t,e){const n=t.getIn(e,!0);Fl(n)&&n.items.length===0&&t.deleteIn(e)}function ur(t,e,n){if(n){t.setIn(e,!0);return}Oi(t,e)&&t.setIn(e,!1)}function cc(t,e,n){const i=typeof n=="string"?n:"";if(i.trim()!==""){t.setIn(e,i);return}Oi(t,e)&&t.setIn(e,"")}function ll(t,e,n){const s=(typeof n=="string"?n:"").trim();if(s===""){Oi(t,e)&&t.deleteIn(e);return}if(!/^-?\d+$/.test(s))return;const a=Number(s);if(Number.isFinite(a)){t.setIn(e,a);return}}function uc(t){const e=t.trim();if(e)return/^-?\d+$/.test(e)&&Number(e)>=0?void 0:"non_negative_integer"}function pye(t){const e=t.trim();if(!e)return;if(!/^\d+$/.test(e))return"port_range";const n=Number(e);return n>=1&&n<=65535?void 0:"port_range"}function gye(t){return{port:pye(t.port),logsMaxTotalSizeMb:uc(t.logsMaxTotalSizeMb),requestRetry:uc(t.requestRetry),maxRetryCredentials:uc(t.maxRetryCredentials),maxRetryInterval:uc(t.maxRetryInterval),"streaming.keepaliveSeconds":uc(t.streaming.keepaliveSeconds),"streaming.bootstrapRetries":uc(t.streaming.bootstrapRetries),"streaming.nonstreamKeepaliveInterval":uc(t.streaming.nonstreamKeepaliveInterval)}}function k6(t){const e=t.value.trim();switch(t.valueType){case"number":{if(!e)return"payload_invalid_number";const n=Number(e);return Number.isFinite(n)?void 0:"payload_invalid_number"}case"boolean":{const n=e.toLowerCase();return n==="true"||n==="false"?void 0:"payload_invalid_boolean"}case"json":{if(!e)return"payload_invalid_json";try{JSON.parse(t.value);return}catch{return"payload_invalid_json"}}default:return}}function C_(t){return t.some(e=>e.params.some(n=>!!k6(n)))}function wS(t){return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}function C6(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.id!==s.id||i.name!==s.name||i.protocol!==s.protocol)return!1}return!0}function _ye(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.id!==s.id||i.path!==s.path||i.valueType!==s.valueType||i.value!==s.value)return!1}return!0}function A_(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.id!==s.id||!C6(i.models,s.models)||!_ye(i.params,s.params))return!1}return!0}function yye(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],s=e[n];if(!i||!s||i.id!==s.id||!C6(i.models,s.models)||i.params.length!==s.params.length)return!1;for(let a=0;a<i.params.length;a+=1)if(i.params[a]!==s.params[a])return!1}return!0}function bye(t){if(typeof t=="number")return{valueType:"number",value:String(t)};if(typeof t=="boolean")return{valueType:"boolean",value:String(t)};if(t===null||typeof t=="object")try{return{valueType:"json",value:JSON.stringify(t,null,2)??"null"}}catch{return{valueType:"json",value:String(t)}}return{valueType:"string",value:String(t??"")}}function vye(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)??""}catch{return String(t??"")}}function qk(t){if(typeof t=="string")return t.trim()?t:void 0}function xye(t){Oi(t,["auth","providers","config-api-key","api-key-entries"])&&t.deleteIn(["auth","providers","config-api-key","api-key-entries"]),Oi(t,["auth","providers","config-api-key","api-keys"])&&t.deleteIn(["auth","providers","config-api-key","api-keys"]),gr(t,["auth","providers","config-api-key"]),gr(t,["auth","providers"]),gr(t,["auth"])}function zE(t){return Array.isArray(t)?t.map((e,n)=>{const i=Ci(e)??{},s=i.models,a=Array.isArray(s)?s.map((c,d)=>{const f=Ci(c),m=typeof c=="string"?c:f?.name??f?.id??"",g=typeof m=="string"?m:String(m??"");return{id:`model-${n}-${d}`,name:g,protocol:qk(f?.protocol)}}):[],o=Ci(i.params),r=o?Object.entries(o).map(([c,d],f)=>{const m=bye(d);return{id:`param-${n}-${f}`,path:c,valueType:m.valueType,value:m.value}}):[];return{id:`payload-rule-${n}`,models:a,params:r}}):[]}function Sye(t){return Array.isArray(t)?t.map((e,n)=>{const i=Ci(e)??{},s=i.models,a=Array.isArray(s)?s.map((c,d)=>{const f=Ci(c),m=typeof c=="string"?c:f?.name??f?.id??"",g=typeof m=="string"?m:String(m??"");return{id:`filter-model-${n}-${d}`,name:g,protocol:qk(f?.protocol)}}):[],o=i.params,r=Array.isArray(o)?o.map(String):[];return{id:`payload-filter-rule-${n}`,models:a,params:r}}):[]}function qE(t){return Array.isArray(t)?t.map((e,n)=>{const i=Ci(e)??{},s=i.models,a=Array.isArray(s)?s.map((c,d)=>{const f=Ci(c),m=typeof c=="string"?c:f?.name??f?.id??"",g=typeof m=="string"?m:String(m??"");return{id:`raw-model-${n}-${d}`,name:g,protocol:qk(f?.protocol)}}):[],o=Ci(i.params),r=o?Object.entries(o).map(([c,d],f)=>({id:`raw-param-${n}-${f}`,path:c,valueType:"json",value:vye(d)})):[];return{id:`payload-raw-rule-${n}`,models:a,params:r}}):[]}function KE(t){return t.map(e=>{const n=(e.models||[]).filter(s=>s.name?.trim()).map(s=>{const a={name:s.name.trim()};return s.protocol&&(a.protocol=s.protocol),a}),i={};for(const s of e.params||[]){if(!s.path?.trim())continue;let a=s.value;if(s.valueType==="number"){const o=Number(s.value);a=Number.isFinite(o)?o:s.value}else if(s.valueType==="boolean")a=s.value==="true";else if(s.valueType==="json")try{a=JSON.parse(s.value)}catch{a=s.value}i[s.path.trim()]=a}return{models:n,params:i}}).filter(e=>e.models.length>0)}function wye(t){return t.map(e=>{const n=(e.models||[]).filter(s=>s.name?.trim()).map(s=>{const a={name:s.name.trim()};return s.protocol&&(a.protocol=s.protocol),a}),i=(Array.isArray(e.params)?e.params:[]).map(s=>String(s).trim()).filter(Boolean);return{models:n,params:i}}).filter(e=>e.models.length>0)}function HE(t){return t.map(e=>{const n=(e.models||[]).filter(s=>s.name?.trim()).map(s=>{const a={name:s.name.trim()};return s.protocol&&(a.protocol=s.protocol),a}),i={};for(const s of e.params||[])s.path?.trim()&&(i[s.path.trim()]=s.value);return{models:n,params:i}}).filter(e=>e.models.length>0)}function kye(){const t=wS(hye);return{visualValues:t,baselineValues:wS(t),dirtyFields:new Set,visualParseError:null}}function Cye(t,e){const n={...t,...e};return e.streaming&&(n.streaming={...t.streaming,...e.streaming}),n}function Aye(t,e,n,i){const s=new Set(t),a=(o,r)=>{r?s.delete(o):s.add(o)};if(Object.prototype.hasOwnProperty.call(e,"host")&&a("host",n.host===i.host),Object.prototype.hasOwnProperty.call(e,"port")&&a("port",n.port===i.port),Object.prototype.hasOwnProperty.call(e,"tlsEnable")&&a("tlsEnable",n.tlsEnable===i.tlsEnable),Object.prototype.hasOwnProperty.call(e,"tlsCert")&&a("tlsCert",n.tlsCert===i.tlsCert),Object.prototype.hasOwnProperty.call(e,"tlsKey")&&a("tlsKey",n.tlsKey===i.tlsKey),Object.prototype.hasOwnProperty.call(e,"rmAllowRemote")&&a("rmAllowRemote",n.rmAllowRemote===i.rmAllowRemote),Object.prototype.hasOwnProperty.call(e,"rmSecretKey")&&a("rmSecretKey",n.rmSecretKey===i.rmSecretKey),Object.prototype.hasOwnProperty.call(e,"rmDisableControlPanel")&&a("rmDisableControlPanel",n.rmDisableControlPanel===i.rmDisableControlPanel),Object.prototype.hasOwnProperty.call(e,"rmPanelRepo")&&a("rmPanelRepo",n.rmPanelRepo===i.rmPanelRepo),Object.prototype.hasOwnProperty.call(e,"authDir")&&a("authDir",n.authDir===i.authDir),Object.prototype.hasOwnProperty.call(e,"apiKeysText")&&a("apiKeysText",n.apiKeysText===i.apiKeysText),Object.prototype.hasOwnProperty.call(e,"debug")&&a("debug",n.debug===i.debug),Object.prototype.hasOwnProperty.call(e,"commercialMode")&&a("commercialMode",n.commercialMode===i.commercialMode),Object.prototype.hasOwnProperty.call(e,"loggingToFile")&&a("loggingToFile",n.loggingToFile===i.loggingToFile),Object.prototype.hasOwnProperty.call(e,"logsMaxTotalSizeMb")&&a("logsMaxTotalSizeMb",n.logsMaxTotalSizeMb===i.logsMaxTotalSizeMb),Object.prototype.hasOwnProperty.call(e,"usageStatisticsEnabled")&&a("usageStatisticsEnabled",n.usageStatisticsEnabled===i.usageStatisticsEnabled),Object.prototype.hasOwnProperty.call(e,"proxyUrl")&&a("proxyUrl",n.proxyUrl===i.proxyUrl),Object.prototype.hasOwnProperty.call(e,"forceModelPrefix")&&a("forceModelPrefix",n.forceModelPrefix===i.forceModelPrefix),Object.prototype.hasOwnProperty.call(e,"requestRetry")&&a("requestRetry",n.requestRetry===i.requestRetry),Object.prototype.hasOwnProperty.call(e,"maxRetryCredentials")&&a("maxRetryCredentials",n.maxRetryCredentials===i.maxRetryCredentials),Object.prototype.hasOwnProperty.call(e,"maxRetryInterval")&&a("maxRetryInterval",n.maxRetryInterval===i.maxRetryInterval),Object.prototype.hasOwnProperty.call(e,"wsAuth")&&a("wsAuth",n.wsAuth===i.wsAuth),Object.prototype.hasOwnProperty.call(e,"quotaSwitchProject")&&a("quotaSwitchProject",n.quotaSwitchProject===i.quotaSwitchProject),Object.prototype.hasOwnProperty.call(e,"quotaSwitchPreviewModel")&&a("quotaSwitchPreviewModel",n.quotaSwitchPreviewModel===i.quotaSwitchPreviewModel),Object.prototype.hasOwnProperty.call(e,"routingStrategy")&&a("routingStrategy",n.routingStrategy===i.routingStrategy),Object.prototype.hasOwnProperty.call(e,"payloadDefaultRules")&&a("payloadDefaultRules",A_(n.payloadDefaultRules,i.payloadDefaultRules)),Object.prototype.hasOwnProperty.call(e,"payloadDefaultRawRules")&&a("payloadDefaultRawRules",A_(n.payloadDefaultRawRules,i.payloadDefaultRawRules)),Object.prototype.hasOwnProperty.call(e,"payloadOverrideRules")&&a("payloadOverrideRules",A_(n.payloadOverrideRules,i.payloadOverrideRules)),Object.prototype.hasOwnProperty.call(e,"payloadOverrideRawRules")&&a("payloadOverrideRawRules",A_(n.payloadOverrideRawRules,i.payloadOverrideRawRules)),Object.prototype.hasOwnProperty.call(e,"payloadFilterRules")&&a("payloadFilterRules",yye(n.payloadFilterRules,i.payloadFilterRules)),e.streaming){const o=e.streaming;Object.prototype.hasOwnProperty.call(o,"keepaliveSeconds")&&a("streaming.keepaliveSeconds",n.streaming.keepaliveSeconds===i.streaming.keepaliveSeconds),Object.prototype.hasOwnProperty.call(o,"bootstrapRetries")&&a("streaming.bootstrapRetries",n.streaming.bootstrapRetries===i.streaming.bootstrapRetries),Object.prototype.hasOwnProperty.call(o,"nonstreamKeepaliveInterval")&&a("streaming.nonstreamKeepaliveInterval",n.streaming.nonstreamKeepaliveInterval===i.streaming.nonstreamKeepaliveInterval)}return s}function Nye(t,e){switch(e.type){case"load_success":return{visualValues:e.values,baselineValues:wS(e.values),dirtyFields:new Set,visualParseError:null};case"load_error":return{...t,visualParseError:e.error};case"set_values":{const n=Cye(t.visualValues,e.values),i=Aye(t.dirtyFields,e.values,n,t.baselineValues);return{...t,visualValues:n,dirtyFields:i}}default:return t}}function Tye(){const[t,e]=S.useReducer(Nye,void 0,kye),{visualValues:n,visualParseError:i}=t,s=t.dirtyFields.size>0,a=S.useMemo(()=>gye(n),[n]),o=S.useMemo(()=>C_(n.payloadDefaultRules)||C_(n.payloadDefaultRawRules)||C_(n.payloadOverrideRules)||C_(n.payloadOverrideRawRules),[n.payloadDefaultRules,n.payloadDefaultRawRules,n.payloadOverrideRules,n.payloadOverrideRawRules]),r=S.useCallback(f=>{try{const m=km(f);if(m.errors.length>0)throw new Error(m.errors[0]?.message??"Invalid YAML");const g=w6(f)||{},y=Ci(g)??{},b=Ci(y.tls),v=Ci(y["remote-management"]),x=Ci(y["quota-exceeded"]),A=Ci(y.routing),k=Ci(y.payload),T=Ci(y.streaming),L={host:typeof y.host=="string"?y.host:"",port:String(y.port??""),tlsEnable:!!b?.enable,tlsCert:typeof b?.cert=="string"?b.cert:"",tlsKey:typeof b?.key=="string"?b.key:"",rmAllowRemote:!!v?.["allow-remote"],rmSecretKey:typeof v?.["secret-key"]=="string"?v["secret-key"]:"",rmDisableControlPanel:!!v?.["disable-control-panel"],rmPanelRepo:typeof v?.["panel-github-repository"]=="string"?v["panel-github-repository"]:typeof v?.["panel-repo"]=="string"?v["panel-repo"]:"",authDir:typeof y["auth-dir"]=="string"?y["auth-dir"]:"",apiKeysText:mye(y),debug:!!y.debug,commercialMode:!!y["commercial-mode"],loggingToFile:!!y["logging-to-file"],logsMaxTotalSizeMb:String(y["logs-max-total-size-mb"]??""),usageStatisticsEnabled:!!y["usage-statistics-enabled"],proxyUrl:typeof y["proxy-url"]=="string"?y["proxy-url"]:"",forceModelPrefix:!!y["force-model-prefix"],requestRetry:String(y["request-retry"]??""),maxRetryCredentials:String(y["max-retry-credentials"]??""),maxRetryInterval:String(y["max-retry-interval"]??""),wsAuth:!!y["ws-auth"],quotaSwitchProject:!!(x?.["switch-project"]??!0),quotaSwitchPreviewModel:!!(x?.["switch-preview-model"]??!0),routingStrategy:A?.strategy==="fill-first"?"fill-first":"round-robin",payloadDefaultRules:zE(k?.default),payloadDefaultRawRules:qE(k?.["default-raw"]),payloadOverrideRules:zE(k?.override),payloadOverrideRawRules:qE(k?.["override-raw"]),payloadFilterRules:Sye(k?.filter),streaming:{keepaliveSeconds:String(T?.["keepalive-seconds"]??""),bootstrapRetries:String(T?.["bootstrap-retries"]??""),nonstreamKeepaliveInterval:String(y["nonstream-keepalive-interval"]??"")}};return e({type:"load_success",values:L}),{ok:!0}}catch(m){const g=m instanceof Error?m.message:"Invalid YAML";return e({type:"load_error",error:g}),{ok:!1,error:g}}},[]),c=S.useCallback(f=>{try{const m=km(f);if(m.errors.length>0)return f;Fl(m.contents)||(m.contents=m.createNode({}));const g=n;cc(m,["host"],g.host),ll(m,["port"],g.port),(Oi(m,["tls"])||g.tlsEnable||g.tlsCert.trim()||g.tlsKey.trim())&&(Vu(m,["tls"]),ur(m,["tls","enable"],g.tlsEnable),cc(m,["tls","cert"],g.tlsCert),cc(m,["tls","key"],g.tlsKey),gr(m,["tls"])),(Oi(m,["remote-management"])||g.rmAllowRemote||g.rmSecretKey.trim()||g.rmDisableControlPanel||g.rmPanelRepo.trim())&&(Vu(m,["remote-management"]),ur(m,["remote-management","allow-remote"],g.rmAllowRemote),cc(m,["remote-management","secret-key"],g.rmSecretKey),ur(m,["remote-management","disable-control-panel"],g.rmDisableControlPanel),cc(m,["remote-management","panel-github-repository"],g.rmPanelRepo),Oi(m,["remote-management","panel-repo"])&&m.deleteIn(["remote-management","panel-repo"]),gr(m,["remote-management"])),cc(m,["auth-dir"],g.authDir);const y=g.apiKeysText.split(`
|
||
`).map(k=>k.trim()).filter(Boolean);y.length>0?m.setIn(["api-keys"],y):Oi(m,["api-keys"])&&m.deleteIn(["api-keys"]),xye(m),ur(m,["debug"],g.debug),ur(m,["commercial-mode"],g.commercialMode),ur(m,["logging-to-file"],g.loggingToFile),ll(m,["logs-max-total-size-mb"],g.logsMaxTotalSizeMb),ur(m,["usage-statistics-enabled"],g.usageStatisticsEnabled),cc(m,["proxy-url"],g.proxyUrl),ur(m,["force-model-prefix"],g.forceModelPrefix),ll(m,["request-retry"],g.requestRetry),ll(m,["max-retry-credentials"],g.maxRetryCredentials),ll(m,["max-retry-interval"],g.maxRetryInterval),ur(m,["ws-auth"],g.wsAuth),(Oi(m,["quota-exceeded"])||!g.quotaSwitchProject||!g.quotaSwitchPreviewModel)&&(Vu(m,["quota-exceeded"]),m.setIn(["quota-exceeded","switch-project"],g.quotaSwitchProject),m.setIn(["quota-exceeded","switch-preview-model"],g.quotaSwitchPreviewModel),gr(m,["quota-exceeded"])),(Oi(m,["routing"])||g.routingStrategy!=="round-robin")&&(Vu(m,["routing"]),m.setIn(["routing","strategy"],g.routingStrategy),gr(m,["routing"]));const b=typeof g.streaming?.keepaliveSeconds=="string"?g.streaming.keepaliveSeconds:"",v=typeof g.streaming?.bootstrapRetries=="string"?g.streaming.bootstrapRetries:"",x=typeof g.streaming?.nonstreamKeepaliveInterval=="string"?g.streaming.nonstreamKeepaliveInterval:"";return(Oi(m,["streaming"])||b.trim()||v.trim())&&(Vu(m,["streaming"]),ll(m,["streaming","keepalive-seconds"],b),ll(m,["streaming","bootstrap-retries"],v),gr(m,["streaming"])),ll(m,["nonstream-keepalive-interval"],x),(Oi(m,["payload"])||g.payloadDefaultRules.length>0||g.payloadDefaultRawRules.length>0||g.payloadOverrideRules.length>0||g.payloadOverrideRawRules.length>0||g.payloadFilterRules.length>0)&&(Vu(m,["payload"]),g.payloadDefaultRules.length>0?m.setIn(["payload","default"],KE(g.payloadDefaultRules)):Oi(m,["payload","default"])&&m.deleteIn(["payload","default"]),g.payloadDefaultRawRules.length>0?m.setIn(["payload","default-raw"],HE(g.payloadDefaultRawRules)):Oi(m,["payload","default-raw"])&&m.deleteIn(["payload","default-raw"]),g.payloadOverrideRules.length>0?m.setIn(["payload","override"],KE(g.payloadOverrideRules)):Oi(m,["payload","override"])&&m.deleteIn(["payload","override"]),g.payloadOverrideRawRules.length>0?m.setIn(["payload","override-raw"],HE(g.payloadOverrideRawRules)):Oi(m,["payload","override-raw"])&&m.deleteIn(["payload","override-raw"]),g.payloadFilterRules.length>0?m.setIn(["payload","filter"],wye(g.payloadFilterRules)):Oi(m,["payload","filter"])&&m.deleteIn(["payload","filter"]),gr(m,["payload"])),m.toString({indent:2,lineWidth:120,minContentWidth:0})}catch{return f}},[n]),d=S.useCallback(f=>{e({type:"set_values",values:f})},[]);return{visualValues:n,visualDirty:s,visualParseError:i,visualValidationErrors:a,visualHasPayloadValidationErrors:o,loadVisualValuesFromYaml:r,applyVisualChangesToYaml:c,setVisualValues:d}}const Mye=[{value:"",labelKey:"config_management.visual.payload_rules.provider_default",defaultLabel:"Default"},{value:"openai",labelKey:"config_management.visual.payload_rules.provider_openai",defaultLabel:"OpenAI"},{value:"openai-response",labelKey:"config_management.visual.payload_rules.provider_openai_response",defaultLabel:"OpenAI Response"},{value:"gemini",labelKey:"config_management.visual.payload_rules.provider_gemini",defaultLabel:"Gemini"},{value:"claude",labelKey:"config_management.visual.payload_rules.provider_claude",defaultLabel:"Claude"},{value:"codex",labelKey:"config_management.visual.payload_rules.provider_codex",defaultLabel:"Codex"},{value:"antigravity",labelKey:"config_management.visual.payload_rules.provider_antigravity",defaultLabel:"Antigravity"}],Lye=[{value:"string",labelKey:"config_management.visual.payload_rules.value_type_string",defaultLabel:"String"},{value:"number",labelKey:"config_management.visual.payload_rules.value_type_number",defaultLabel:"Number"},{value:"boolean",labelKey:"config_management.visual.payload_rules.value_type_boolean",defaultLabel:"Boolean"},{value:"json",labelKey:"config_management.visual.payload_rules.value_type_json",defaultLabel:"JSON"}];function Oye(t){return t?/^[\x21-\x7E]+$/.test(t):!1}const Pye=30;function ad({value:t,placeholder:e,ariaLabel:n,disabled:i,className:s,onChange:a}){const{t:o}=et(),[r,c]=S.useState(!0),d=S.useRef(null),f=S.useCallback(g=>{g.style.height="auto",g.style.height=`${g.scrollHeight}px`},[]),m=g=>{const y=g.target.value.replace(/[\r\n]/g,"");a(y)};return S.useLayoutEffect(()=>{!r&&d.current&&f(d.current)},[r,t,f]),r?h.jsxs("div",{className:Re.expandableInputWrapper,children:[h.jsx("input",{className:`input ${s??""}`,placeholder:e,"aria-label":n,value:t,onChange:g=>a(g.target.value.replace(/[\r\n]/g,"")),disabled:i}),t.length>Pye&&h.jsx("button",{type:"button",className:Re.expandableToggle,disabled:i,onClick:()=>{c(!1),requestAnimationFrame(()=>{d.current?.focus()})},title:o("common.expand"),"aria-label":o("common.expand"),children:"▼"})]}):h.jsxs("div",{className:`${Re.expandableInputWrapper} ${Re.expandableInputExpanded}`,children:[h.jsx("textarea",{ref:d,className:`input ${Re.expandableTextarea} ${s??""}`,placeholder:e,"aria-label":n,value:t,onChange:m,disabled:i,rows:2}),h.jsx("button",{type:"button",className:Re.expandableToggle,disabled:i,onClick:()=>c(!0),title:o("common.collapse"),"aria-label":o("common.collapse"),children:"▲"})]})}function Eye(t,e){if(e)return t(`config_management.visual.validation.${e}`)}function A6(t,e){const n=Mye.map(s=>({value:s.value,label:t(s.labelKey,{defaultValue:s.defaultLabel})})),i=new Set(n.map(s=>s.value));for(const s of e)for(const a of s.models){const o=a.protocol;!o||!o.trim()||i.has(o)||(i.add(o),n.push({value:o,label:o}))}return n}const jye=S.memo(function({value:e,disabled:n,onChange:i}){const{t:s}=et(),a=_n(G=>G.showNotification),o=S.useMemo(()=>e.split(`
|
||
`).map(G=>G.trim()).filter(Boolean),[e]),[r,c]=S.useState(()=>o.map(()=>$a())),d=S.useMemo(()=>r.length===o.length?r:r.length>o.length?r.slice(0,o.length):[...r,...Array.from({length:o.length-r.length},()=>$a())],[r,o.length]),f=S.useId(),m=`${f}-hint`,g=`${f}-error`,[y,b]=S.useState(!1),[v,x]=S.useState(null),[A,k]=S.useState(""),[T,L]=S.useState("");function M(){const G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",B=new Uint8Array(17);return crypto.getRandomValues(B),"sk-"+Array.from(B,I=>G[I%G.length]).join("")}const O=()=>{x(null),k(""),L(""),b(!0)},N=G=>{const B=d.findIndex(I=>I===G);x(G),k(o[B]??""),L(""),b(!0)},P=()=>{b(!1),k(""),x(null),L("")},E=G=>{i(G.join(`
|
||
`))},R=G=>{const B=d.findIndex(I=>I===G);B<0||(c(d.filter(I=>I!==G)),E(o.filter((I,V)=>V!==B)))},z=()=>{const G=A.trim();if(!G){L(s("config_management.visual.api_keys.error_empty"));return}if(!Oye(G)){L(s("config_management.visual.api_keys.error_invalid"));return}const B=v?d.findIndex(V=>V===v):-1,I=v===null?[...o,G]:o.map((V,K)=>K===B?G:V);v===null&&c([...d,$a()]),E(I),P()},D=async G=>{const B=await Gy(G);a(s(B?"notification.link_copied":"notification.copy_failed"),B?"success":"error")},Q=()=>{k(M()),L("")};return h.jsxs("div",{className:"form-group",style:{marginBottom:0},children:[h.jsxs("div",{className:Re.blockHeaderRow,children:[h.jsx("label",{style:{margin:0},children:s("config_management.visual.api_keys.label")}),h.jsx(me,{size:"sm",onClick:O,disabled:n,children:s("config_management.visual.api_keys.add")})]}),o.length===0?h.jsx("div",{className:Re.emptyState,children:s("config_management.visual.api_keys.empty")}):h.jsx("div",{className:"item-list",style:{marginTop:4},children:o.map((G,B)=>h.jsxs("div",{className:"item-row",children:[h.jsxs("div",{className:"item-meta",children:[h.jsxs("div",{className:"pill",children:["#",B+1]}),h.jsx("div",{className:"item-title",children:s("config_management.visual.api_keys.input_label")}),h.jsx("div",{className:"item-subtitle",children:Ea(String(G||""))})]}),h.jsxs("div",{className:"item-actions",children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>D(G),disabled:n,children:s("common.copy")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>N(d[B]??""),disabled:n,children:s("config_management.visual.common.edit")}),h.jsx(me,{variant:"danger",size:"sm",onClick:()=>R(d[B]??""),disabled:n,children:s("config_management.visual.common.delete")})]})]},d[B]??`${G}-${B}`))}),h.jsx("div",{className:"hint",children:s("config_management.visual.api_keys.hint")}),h.jsx(Ss,{open:y,onClose:P,title:s(v!==null?"config_management.visual.api_keys.edit_title":"config_management.visual.api_keys.add_title"),footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:P,disabled:n,children:s("config_management.visual.common.cancel")}),h.jsx(me,{onClick:z,disabled:n,children:s(v!==null?"config_management.visual.common.update":"config_management.visual.common.add")})]}),children:h.jsxs("div",{className:"form-group",children:[h.jsx("label",{htmlFor:f,children:s("config_management.visual.api_keys.input_label")}),h.jsxs("div",{className:Re.apiKeyModalInputRow,children:[h.jsx("input",{id:f,className:"input",placeholder:s("config_management.visual.api_keys.input_placeholder"),value:A,onChange:G=>k(G.target.value),disabled:n,"aria-describedby":T?`${g} ${m}`:m,"aria-invalid":!!T}),h.jsx(me,{type:"button",variant:"secondary",size:"sm",onClick:Q,disabled:n,children:s("config_management.visual.api_keys.generate")})]}),h.jsx("div",{id:m,className:"hint",children:s("config_management.visual.api_keys.input_hint")}),T&&h.jsx("div",{id:g,className:"error-box",children:T})]})})]})}),Rye=S.memo(function({value:e,disabled:n,placeholder:i,inputAriaLabel:s,onChange:a}){const{t:o}=et(),r=e.length?e:[],[c,d]=S.useState(()=>r.map(()=>$a())),f=S.useMemo(()=>c.length===r.length?c:c.length>r.length?c.slice(0,r.length):[...c,...Array.from({length:r.length-c.length},()=>$a())],[c,r.length]),m=(b,v)=>a(r.map((x,A)=>A===b?v:x)),g=()=>{d([...f,$a()]),a([...r,""])},y=b=>{d(f.filter((v,x)=>x!==b)),a(r.filter((v,x)=>x!==b))};return h.jsxs("div",{className:Re.stringList,children:[r.map((b,v)=>h.jsxs("div",{className:Re.stringListRow,children:[h.jsx(ad,{placeholder:i,ariaLabel:s??i,value:b,onChange:x=>m(v,x),disabled:n}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>y(v),disabled:n,children:o("config_management.visual.common.delete")})]},f[v]??`item-${v}`)),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:g,disabled:n,children:o("config_management.visual.common.add")})})]})}),N_=S.memo(function({value:e,disabled:n,protocolFirst:i=!1,rawJsonValues:s=!1,onChange:a}){const{t:o}=et(),r=e,c=S.useMemo(()=>A6(o,r),[r,o]),d=S.useMemo(()=>Lye.map(N=>({value:N.value,label:o(N.labelKey,{defaultValue:N.defaultLabel})})),[o]),f=S.useMemo(()=>[{value:"true",label:o("config_management.visual.payload_rules.boolean_true")},{value:"false",label:o("config_management.visual.payload_rules.boolean_false")}],[o]),m=()=>a([...r,{id:$a(),models:[],params:[]}]),g=N=>a(r.filter((P,E)=>E!==N)),y=(N,P)=>a(r.map((E,R)=>R===N?{...E,...P}:E)),b=N=>{const P=r[N],E={id:$a(),name:"",protocol:void 0};y(N,{models:[...P.models,E]})},v=(N,P)=>{const E=r[N];y(N,{models:E.models.filter((R,z)=>z!==P)})},x=(N,P,E)=>{const R=r[N];y(N,{models:R.models.map((z,D)=>D===P?{...z,...E}:z)})},A=N=>{const P=r[N],E={id:$a(),path:"",valueType:s?"json":"string",value:""};y(N,{params:[...P.params,E]})},k=(N,P)=>{const E=r[N];y(N,{params:E.params.filter((R,z)=>z!==P)})},T=(N,P,E)=>{const R=r[N];y(N,{params:R.params.map((z,D)=>D===P?{...z,...E}:z)})},L=N=>{switch(N){case"string":return o("config_management.visual.payload_rules.value_string");case"number":return o("config_management.visual.payload_rules.value_number");case"boolean":return o("config_management.visual.payload_rules.value_boolean");case"json":return o("config_management.visual.payload_rules.value_json");default:return o("config_management.visual.payload_rules.value_default")}},M=N=>{const P=k6(s?{...N,valueType:"json"}:N);return Eye(o,P)},O=(N,P,E)=>s?h.jsx("textarea",{className:`input ${Re.payloadJsonInput}`,placeholder:o("config_management.visual.payload_rules.value_raw_json"),"aria-label":o("config_management.visual.payload_rules.param_value"),value:E.value,onChange:R=>T(N,P,{value:R.target.value,valueType:"json"}),disabled:n}):E.valueType==="boolean"?h.jsx(Vi,{value:E.value.toLowerCase()==="true"||E.value.toLowerCase()==="false"?E.value.toLowerCase():"",options:f,placeholder:o("config_management.visual.payload_rules.value_boolean"),disabled:n,ariaLabel:o("config_management.visual.payload_rules.param_value"),onChange:R=>T(N,P,{value:R})}):E.valueType==="json"?h.jsx("textarea",{className:`input ${Re.payloadJsonInput}`,placeholder:L(E.valueType),"aria-label":o("config_management.visual.payload_rules.param_value"),value:E.value,onChange:R=>T(N,P,{value:R.target.value}),disabled:n}):h.jsx(ad,{placeholder:L(E.valueType),ariaLabel:o("config_management.visual.payload_rules.param_value"),value:E.value,onChange:R=>T(N,P,{value:R}),disabled:n});return h.jsxs("div",{className:Re.blockStack,children:[r.map((N,P)=>h.jsxs("div",{className:Re.ruleCard,children:[h.jsxs("div",{className:Re.ruleCardHeader,children:[h.jsxs("div",{className:Re.ruleCardTitle,children:[o("config_management.visual.payload_rules.rule")," ",P+1]}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>g(P),disabled:n,children:o("config_management.visual.common.delete")})]}),h.jsxs("div",{className:Re.blockStack,children:[h.jsx("div",{className:Re.blockLabel,children:o("config_management.visual.payload_rules.models")}),(N.models.length?N.models:[]).map((E,R)=>h.jsxs("div",{className:[Re.payloadRuleModelRow,i?Re.payloadRuleModelRowProtocolFirst:""].filter(Boolean).join(" "),children:[i?h.jsxs(h.Fragment,{children:[h.jsx(Vi,{value:E.protocol??"",options:c,disabled:n,ariaLabel:o("config_management.visual.payload_rules.provider_type"),onChange:z=>x(P,R,{protocol:z||void 0})}),h.jsx(ad,{placeholder:o("config_management.visual.payload_rules.model_name"),ariaLabel:o("config_management.visual.payload_rules.model_name"),value:E.name,onChange:z=>x(P,R,{name:z}),disabled:n})]}):h.jsxs(h.Fragment,{children:[h.jsx(ad,{placeholder:o("config_management.visual.payload_rules.model_name"),ariaLabel:o("config_management.visual.payload_rules.model_name"),value:E.name,onChange:z=>x(P,R,{name:z}),disabled:n}),h.jsx(Vi,{value:E.protocol??"",options:c,disabled:n,ariaLabel:o("config_management.visual.payload_rules.provider_type"),onChange:z=>x(P,R,{protocol:z||void 0})})]}),h.jsx(me,{variant:"ghost",size:"sm",className:Re.payloadRowActionButton,onClick:()=>v(P,R),disabled:n,children:o("config_management.visual.common.delete")})]},E.id)),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>b(P),disabled:n,children:o("config_management.visual.payload_rules.add_model")})})]}),h.jsxs("div",{className:Re.blockStack,children:[h.jsx("div",{className:Re.blockLabel,children:o("config_management.visual.payload_rules.params")}),(N.params.length?N.params:[]).map((E,R)=>{const z=M(E);return h.jsxs("div",{className:Re.payloadRuleParamGroup,children:[h.jsxs("div",{className:Re.payloadRuleParamRow,children:[h.jsx(ad,{placeholder:o("config_management.visual.payload_rules.json_path"),ariaLabel:o("config_management.visual.payload_rules.json_path"),value:E.path,onChange:D=>T(P,R,{path:D}),disabled:n}),s?null:h.jsx(Vi,{value:E.valueType,options:d,disabled:n,ariaLabel:o("config_management.visual.payload_rules.param_type"),onChange:D=>T(P,R,{valueType:D,value:D==="boolean"?"true":D==="json"&&E.value.trim()===""?"{}":E.value})}),O(P,R,E),h.jsx(me,{variant:"ghost",size:"sm",className:Re.payloadRowActionButton,onClick:()=>k(P,R),disabled:n,children:o("config_management.visual.common.delete")})]}),z&&h.jsx("div",{className:`error-box ${Re.payloadParamError}`,children:z})]},E.id)}),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>A(P),disabled:n,children:o("config_management.visual.payload_rules.add_param")})})]})]},N.id)),r.length===0&&h.jsx("div",{className:Re.emptyState,children:o("config_management.visual.payload_rules.no_rules")}),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:m,disabled:n,children:o("config_management.visual.payload_rules.add_rule")})})]})}),Dye=S.memo(function({value:e,disabled:n,onChange:i}){const{t:s}=et(),a=e,o=S.useMemo(()=>A6(s,a),[a,s]),r=()=>i([...a,{id:$a(),models:[],params:[]}]),c=y=>i(a.filter((b,v)=>v!==y)),d=(y,b)=>i(a.map((v,x)=>x===y?{...v,...b}:v)),f=y=>{const b=a[y],v={id:$a(),name:"",protocol:void 0};d(y,{models:[...b.models,v]})},m=(y,b)=>{const v=a[y];d(y,{models:v.models.filter((x,A)=>A!==b)})},g=(y,b,v)=>{const x=a[y];d(y,{models:x.models.map((A,k)=>k===b?{...A,...v}:A)})};return h.jsxs("div",{className:Re.blockStack,children:[a.map((y,b)=>h.jsxs("div",{className:Re.ruleCard,children:[h.jsxs("div",{className:Re.ruleCardHeader,children:[h.jsxs("div",{className:Re.ruleCardTitle,children:[s("config_management.visual.payload_rules.rule")," ",b+1]}),h.jsx(me,{variant:"ghost",size:"sm",onClick:()=>c(b),disabled:n,children:s("config_management.visual.common.delete")})]}),h.jsxs("div",{className:Re.blockStack,children:[h.jsx("div",{className:Re.blockLabel,children:s("config_management.visual.payload_rules.models")}),y.models.map((v,x)=>h.jsxs("div",{className:Re.payloadFilterModelRow,children:[h.jsx(ad,{placeholder:s("config_management.visual.payload_rules.model_name"),ariaLabel:s("config_management.visual.payload_rules.model_name"),value:v.name,onChange:A=>g(b,x,{name:A}),disabled:n}),h.jsx(Vi,{value:v.protocol??"",options:o,disabled:n,ariaLabel:s("config_management.visual.payload_rules.provider_type"),onChange:A=>g(b,x,{protocol:A||void 0})}),h.jsx(me,{variant:"ghost",size:"sm",className:Re.payloadRowActionButton,onClick:()=>m(b,x),disabled:n,children:s("config_management.visual.common.delete")})]},v.id)),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>f(b),disabled:n,children:s("config_management.visual.payload_rules.add_model")})})]}),h.jsxs("div",{className:Re.blockStack,children:[h.jsx("div",{className:Re.blockLabel,children:s("config_management.visual.payload_rules.remove_params")}),h.jsx(Rye,{value:y.params,disabled:n,placeholder:s("config_management.visual.payload_rules.json_path_filter"),inputAriaLabel:s("config_management.visual.payload_rules.json_path_filter"),onChange:v=>d(b,{params:v})})]})]},y.id)),a.length===0&&h.jsx("div",{className:Re.emptyState,children:s("config_management.visual.payload_rules.no_rules")}),h.jsx("div",{className:Re.actionRow,children:h.jsx(me,{variant:"secondary",size:"sm",onClick:r,disabled:n,children:s("config_management.visual.payload_rules.add_rule")})})]})});function cl(t,e){if(e)return t(`config_management.visual.validation.${e}`)}function za({title:t,description:e,checked:n,disabled:i,onChange:s}){return h.jsxs("div",{className:Re.toggleRow,children:[h.jsxs("div",{className:Re.toggleCopy,children:[h.jsx("div",{className:Re.toggleTitle,children:t}),e?h.jsx("div",{className:Re.toggleDescription,children:e}):null]}),h.jsx(Si,{checked:n,onChange:s,disabled:i,ariaLabel:t})]})}function lo({children:t}){return h.jsx("div",{className:Re.sectionGrid,children:t})}function dc({children:t}){return h.jsx("div",{className:Re.sectionStack,children:t})}function Fye(){return h.jsx("div",{className:Re.divider})}function _f({title:t,description:e,children:n}){return h.jsxs("div",{className:Re.subsection,children:[h.jsxs("div",{className:Re.subsectionHeader,children:[h.jsx("h3",{className:Re.subsectionTitle,children:t}),e?h.jsx("p",{className:Re.subsectionDescription,children:e}):null]}),n]})}function K1({label:t,labelId:e,htmlFor:n,hint:i,hintId:s,error:a,errorId:o,children:r}){return h.jsxs("div",{className:Re.fieldShell,children:[h.jsx("label",{id:e,htmlFor:n,className:Re.fieldLabel,children:t}),r,a?h.jsx("div",{id:o,className:"error-box",children:a}):null,i?h.jsx("div",{id:s,className:Re.fieldHint,children:i}):null]})}function Iye({values:t,validationErrors:e,hasPayloadValidationErrors:n=!1,disabled:i=!1,onChange:s}){const{t:a}=et(),o=Wd(),r=o?o.isCurrentLayer:!0,c=Q0("(max-width: 768px)"),d=Q0("(min-width: 1025px)"),f=!c&&d&&r,m=S.useId(),g=`${m}-hint`,y=S.useId(),b=`${y}-hint`,v=`${y}-error`,x=S.useId(),A=`${x}-hint`,k=`${x}-error`,[T,L]=S.useState("server"),M=S.useRef(null),O=S.useRef(null),N=S.useRef(null),P=S.useRef({}),E=S.useRef(null),R=S.useRef({}),z=t.streaming.keepaliveSeconds===""||t.streaming.keepaliveSeconds==="0",D=t.streaming.nonstreamKeepaliveInterval===""||t.streaming.nonstreamKeepaliveInterval==="0",Q=cl(a,e?.port),G=cl(a,e?.logsMaxTotalSizeMb),B=cl(a,e?.requestRetry),I=cl(a,e?.maxRetryCredentials),V=cl(a,e?.maxRetryInterval),K=cl(a,e?.["streaming.keepaliveSeconds"]),$=cl(a,e?.["streaming.bootstrapRetries"]),X=cl(a,e?.["streaming.nonstreamKeepaliveInterval"]),U=S.useCallback(ee=>s({apiKeysText:ee}),[s]),q=S.useCallback(ee=>s({payloadDefaultRules:ee}),[s]),Y=S.useCallback(ee=>s({payloadDefaultRawRules:ee}),[s]),oe=S.useCallback(ee=>s({payloadOverrideRules:ee}),[s]),se=S.useCallback(ee=>s({payloadOverrideRawRules:ee}),[s]),F=S.useCallback(ee=>s({payloadFilterRules:ee}),[s]),Z=S.useCallback(ee=>ee.reduce((Ie,Ke)=>Ie+(e?.[Ke]?1:0),0),[e]),J=S.useMemo(()=>[{id:"server",title:a("config_management.visual.sections.server.title"),description:a("config_management.visual.sections.server.description"),icon:I2,errorCount:Z(["port"])},{id:"tls",title:a("config_management.visual.sections.tls.title"),description:a("config_management.visual.sections.tls.description"),icon:fL,errorCount:0},{id:"remote",title:a("config_management.visual.sections.remote.title"),description:a("config_management.visual.sections.remote.description"),icon:Ju,errorCount:0},{id:"auth",title:a("config_management.visual.sections.auth.title"),description:a("config_management.visual.sections.auth.description"),icon:F2,errorCount:0},{id:"system",title:a("config_management.visual.sections.system.title"),description:a("config_management.visual.sections.system.description"),icon:U2,errorCount:Z(["logsMaxTotalSizeMb"])},{id:"network",title:a("config_management.visual.sections.network.title"),description:a("config_management.visual.sections.network.description"),icon:B2,errorCount:Z(["requestRetry","maxRetryCredentials","maxRetryInterval"])},{id:"quota",title:a("config_management.visual.sections.quota.title"),description:a("config_management.visual.sections.quota.description"),icon:j0,errorCount:0},{id:"streaming",title:a("config_management.visual.sections.streaming.title"),description:a("config_management.visual.sections.streaming.description"),icon:Ju,errorCount:Z(["streaming.keepaliveSeconds","streaming.bootstrapRetries","streaming.nonstreamKeepaliveInterval"])},{id:"payload",title:a("config_management.visual.sections.payload.title"),description:a("config_management.visual.sections.payload.description"),icon:R0,errorCount:n?1:0}],[Z,n,a]),te=J.some(ee=>ee.errorCount>0)||n,fe=S.useMemo(()=>J.filter(ee=>["server","network","payload"].includes(ee.id)),[J]);S.useEffect(()=>{if(!r||typeof IntersectionObserver>"u")return;const ee=new IntersectionObserver(Ie=>{const Ke=Ie.filter(ht=>ht.isIntersecting).sort((ht,wt)=>wt.intersectionRatio-ht.intersectionRatio);Ke.length!==0&&L(Ke[0].target.id)},{rootMargin:"-18% 0px -58% 0px",threshold:[.12,.3,.55]});for(const Ie of J){const Ke=P.current[Ie.id];Ke&&ee.observe(Ke)}return()=>ee.disconnect()},[r,J]),S.useEffect(()=>{if(!r||!c)return;const ee=E.current,Ie=R.current[T];if(!ee||!Ie)return;const Ke=ee.getBoundingClientRect(),ht=Ie.getBoundingClientRect(),wt=ee.scrollLeft+(ht.left-Ke.left)-(ee.clientWidth-ht.width)/2,ft=Math.max(ee.scrollWidth-ee.clientWidth,0),Xe=Math.min(Math.max(wt,0),ft);ee.scrollTo({left:Xe,behavior:"smooth"})},[T,r,c]);const re=S.useCallback(ee=>{L(ee),P.current[ee]?.scrollIntoView({behavior:"smooth",block:"start"})},[]);S.useLayoutEffect(()=>{const ee=N.current,Ie=O.current,Ke=M.current;if(!ee)return;const ht=()=>{ee.style.removeProperty("transform"),ee.style.removeProperty("width"),ee.style.removeProperty("max-height"),ee.style.removeProperty("opacity"),ee.style.removeProperty("pointer-events")};if(!f||!Ie||!Ke){ht();return}const wt=()=>{const je=document.querySelector(".main-header");if(je)return je.getBoundingClientRect().height;const pt=getComputedStyle(document.documentElement).getPropertyValue("--header-height"),at=Number.parseFloat(pt);return Number.isFinite(at)?at:64};let ft=wt();const Xe=document.querySelector(".content");let Ot=ee.getBoundingClientRect().height||200,zt=0;const sn=()=>{zt=0;const je=Ie.getBoundingClientRect(),pt=Ke.getBoundingClientRect(),at=ft+20,Ee=16,ut=pt.bottom-Ot,Mt=Math.min(Math.max(je.top,at),ut),Nt=Math.max(Mt,Ee),le=Math.max(je.left,Ee),ge=Math.max(Math.min(je.width,window.innerWidth-le-Ee),220),ie=Math.max(window.innerHeight-Nt-Ee,160),Ae=pt.bottom>at+24&&je.top<window.innerHeight;ee.style.transform=`translate3d(${le}px, ${Nt}px, 0)`,ee.style.width=`${ge}px`,ee.style.maxHeight=`${ie}px`,ee.style.opacity=Ae?"1":"0",ee.style.pointerEvents=Ae?"auto":"none"},an=()=>{zt&&cancelAnimationFrame(zt),zt=requestAnimationFrame(sn)},Fe=()=>{ft=wt(),Ot=ee.getBoundingClientRect().height||Ot,an()};an(),window.addEventListener("resize",Fe),window.addEventListener("scroll",an,{passive:!0}),Xe?.addEventListener("scroll",an,{passive:!0});const mt=typeof ResizeObserver>"u"?null:new ResizeObserver(an);return mt?.observe(Ie),mt?.observe(Ke),()=>{zt&&cancelAnimationFrame(zt),mt?.disconnect(),window.removeEventListener("resize",Fe),window.removeEventListener("scroll",an),Xe?.removeEventListener("scroll",an),ht()}},[f]);const ue=h.jsx("div",{className:Re.navList,children:J.map((ee,Ie)=>{const Ke=ee.icon;return h.jsxs("button",{type:"button",className:`${Re.navButton} ${T===ee.id?Re.navButtonActive:""}`,onClick:()=>re(ee.id),children:[h.jsx("span",{className:Re.navIndex,children:String(Ie+1).padStart(2,"0")}),h.jsxs("span",{className:Re.navMain,children:[h.jsxs("span",{className:Re.navHeadingRow,children:[h.jsxs("span",{className:Re.navLabelWrap,children:[h.jsx("span",{className:Re.navIcon,children:h.jsx(Ke,{size:14})}),h.jsx("span",{className:Re.navLabel,children:ee.title})]}),ee.errorCount>0?h.jsx("span",{className:Re.navBadge,"aria-hidden":"true",children:ee.errorCount}):null]}),h.jsx("span",{className:Re.navDescription,children:ee.description})]})]},ee.id)})});return h.jsxs("div",{className:Re.visualEditor,children:[h.jsxs("div",{className:Re.overview,children:[h.jsx("div",{className:Re.overviewHeader,children:h.jsxs("div",{className:Re.overviewMeta,children:[h.jsx("span",{className:Re.overviewPill,children:a("config_management.visual.quick_jump",{defaultValue:"快速跳转"})}),te?h.jsx("span",{className:`${Re.overviewPill} ${Re.overviewPillWarning}`,children:a("config_management.visual.validation.validation_blocked")}):null]})}),h.jsx("div",{className:Re.overviewFocusList,children:fe.map(ee=>{const Ie=ee.icon;return h.jsxs("button",{type:"button",className:`${Re.overviewFocusLink} ${T===ee.id?Re.overviewFocusLinkActive:""}`,onClick:()=>re(ee.id),children:[h.jsx("span",{className:Re.focusIcon,children:h.jsx(Ie,{size:16})}),h.jsxs("span",{className:Re.focusCopy,children:[h.jsx("span",{className:Re.focusTitle,children:ee.title}),h.jsx("span",{className:Re.focusDescription,children:ee.description})]}),ee.errorCount>0?h.jsx("span",{className:Re.navBadge,"aria-hidden":"true",children:ee.errorCount}):null]},ee.id)})})]}),h.jsxs("div",{ref:M,className:Re.workspace,children:[c?h.jsx("div",{className:Re.mobileSectionNav,children:h.jsx("div",{ref:E,className:Re.mobileSectionNavScroller,"aria-label":a("config_management.visual.quick_jump",{defaultValue:"快速跳转"}),children:J.map((ee,Ie)=>h.jsxs("button",{ref:Ke=>{R.current[ee.id]=Ke},type:"button",className:`${Re.mobileSectionNavButton} ${T===ee.id?Re.mobileSectionNavButtonActive:""}`,onClick:()=>re(ee.id),children:[h.jsx("span",{className:Re.mobileSectionNavIndex,children:String(Ie+1).padStart(2,"0")}),h.jsx("span",{className:Re.mobileSectionNavLabel,children:ee.title}),ee.errorCount>0?h.jsx("span",{className:Re.mobileSectionNavBadge,"aria-hidden":"true",children:ee.errorCount}):null]},ee.id))})}):null,h.jsx("aside",{ref:O,className:Re.sidebar,children:d?h.jsx("div",{className:Re.sidebarPlaceholder,"aria-hidden":"true"}):h.jsx("div",{className:Re.sidebarRail,children:ue})}),h.jsxs("div",{className:Re.sections,children:[h.jsx(cr,{id:"server",ref:ee=>{P.current.server=ee},indexLabel:"01",icon:h.jsx(I2,{size:16}),title:a("config_management.visual.sections.server.title"),description:a("config_management.visual.sections.server.description"),children:h.jsxs(lo,{children:[h.jsx(ot,{label:a("config_management.visual.sections.server.host"),placeholder:"0.0.0.0",value:t.host,onChange:ee=>s({host:ee.target.value}),disabled:i}),h.jsx(ot,{label:a("config_management.visual.sections.server.port"),type:"number",placeholder:"8317",value:t.port,onChange:ee=>s({port:ee.target.value}),disabled:i,error:Q})]})}),h.jsx(cr,{id:"tls",ref:ee=>{P.current.tls=ee},indexLabel:"02",icon:h.jsx(fL,{size:16}),title:a("config_management.visual.sections.tls.title"),description:a("config_management.visual.sections.tls.description"),children:h.jsxs(dc,{children:[h.jsx(za,{title:a("config_management.visual.sections.tls.enable"),description:a("config_management.visual.sections.tls.enable_desc"),checked:t.tlsEnable,disabled:i,onChange:ee=>s({tlsEnable:ee})}),t.tlsEnable?h.jsxs(h.Fragment,{children:[h.jsx(Fye,{}),h.jsxs(lo,{children:[h.jsx(ot,{label:a("config_management.visual.sections.tls.cert"),placeholder:"/path/to/cert.pem",value:t.tlsCert,onChange:ee=>s({tlsCert:ee.target.value}),disabled:i}),h.jsx(ot,{label:a("config_management.visual.sections.tls.key"),placeholder:"/path/to/key.pem",value:t.tlsKey,onChange:ee=>s({tlsKey:ee.target.value}),disabled:i})]})]}):null]})}),h.jsx(cr,{id:"remote",ref:ee=>{P.current.remote=ee},indexLabel:"03",icon:h.jsx(Ju,{size:16}),title:a("config_management.visual.sections.remote.title"),description:a("config_management.visual.sections.remote.description"),children:h.jsxs(dc,{children:[h.jsx(za,{title:a("config_management.visual.sections.remote.allow_remote"),description:a("config_management.visual.sections.remote.allow_remote_desc"),checked:t.rmAllowRemote,disabled:i,onChange:ee=>s({rmAllowRemote:ee})}),h.jsx(za,{title:a("config_management.visual.sections.remote.disable_panel"),description:a("config_management.visual.sections.remote.disable_panel_desc"),checked:t.rmDisableControlPanel,disabled:i,onChange:ee=>s({rmDisableControlPanel:ee})}),h.jsxs(lo,{children:[h.jsx(ot,{label:a("config_management.visual.sections.remote.secret_key"),type:"password",placeholder:a("config_management.visual.sections.remote.secret_key_placeholder"),value:t.rmSecretKey,onChange:ee=>s({rmSecretKey:ee.target.value}),disabled:i}),h.jsx(ot,{label:a("config_management.visual.sections.remote.panel_repo"),placeholder:"https://github.com/router-for-me/Cli-Proxy-API-Management-Center",value:t.rmPanelRepo,onChange:ee=>s({rmPanelRepo:ee.target.value}),disabled:i})]})]})}),h.jsx(cr,{id:"auth",ref:ee=>{P.current.auth=ee},indexLabel:"04",icon:h.jsx(F2,{size:16}),title:a("config_management.visual.sections.auth.title"),description:a("config_management.visual.sections.auth.description"),children:h.jsxs(dc,{children:[h.jsx(ot,{label:a("config_management.visual.sections.auth.auth_dir"),placeholder:"~/.cli-proxy-api",value:t.authDir,onChange:ee=>s({authDir:ee.target.value}),disabled:i,hint:a("config_management.visual.sections.auth.auth_dir_hint")}),h.jsx("div",{className:Re.subsection,children:h.jsx(jye,{value:t.apiKeysText,disabled:i,onChange:U})})]})}),h.jsx(cr,{id:"system",ref:ee=>{P.current.system=ee},indexLabel:"05",icon:h.jsx(U2,{size:16}),title:a("config_management.visual.sections.system.title"),description:a("config_management.visual.sections.system.description"),children:h.jsxs(dc,{children:[h.jsxs(lo,{children:[h.jsx(za,{title:a("config_management.visual.sections.system.debug"),description:a("config_management.visual.sections.system.debug_desc"),checked:t.debug,disabled:i,onChange:ee=>s({debug:ee})}),h.jsx(za,{title:a("config_management.visual.sections.system.commercial_mode"),description:a("config_management.visual.sections.system.commercial_mode_desc"),checked:t.commercialMode,disabled:i,onChange:ee=>s({commercialMode:ee})}),h.jsx(za,{title:a("config_management.visual.sections.system.logging_to_file"),description:a("config_management.visual.sections.system.logging_to_file_desc"),checked:t.loggingToFile,disabled:i,onChange:ee=>s({loggingToFile:ee})}),h.jsx(za,{title:a("config_management.visual.sections.system.usage_statistics"),description:a("config_management.visual.sections.system.usage_statistics_desc"),checked:t.usageStatisticsEnabled,disabled:i,onChange:ee=>s({usageStatisticsEnabled:ee})})]}),h.jsx(lo,{children:h.jsx(ot,{label:a("config_management.visual.sections.system.logs_max_size"),type:"number",placeholder:"0",value:t.logsMaxTotalSizeMb,onChange:ee=>s({logsMaxTotalSizeMb:ee.target.value}),disabled:i,error:G})})]})}),h.jsx(cr,{id:"network",ref:ee=>{P.current.network=ee},indexLabel:"06",icon:h.jsx(B2,{size:16}),title:a("config_management.visual.sections.network.title"),description:a("config_management.visual.sections.network.description"),children:h.jsxs(dc,{children:[h.jsxs(lo,{children:[h.jsx(ot,{label:a("config_management.visual.sections.network.proxy_url"),placeholder:"socks5://user:pass@127.0.0.1:1080/",value:t.proxyUrl,onChange:ee=>s({proxyUrl:ee.target.value}),disabled:i}),h.jsx(ot,{label:a("config_management.visual.sections.network.request_retry"),type:"number",placeholder:"3",value:t.requestRetry,onChange:ee=>s({requestRetry:ee.target.value}),disabled:i,error:B}),h.jsx(ot,{label:a("config_management.visual.sections.network.max_retry_credentials"),type:"number",placeholder:"0",value:t.maxRetryCredentials,onChange:ee=>s({maxRetryCredentials:ee.target.value}),disabled:i,hint:a("config_management.visual.sections.network.max_retry_credentials_hint"),error:I}),h.jsx(ot,{label:a("config_management.visual.sections.network.max_retry_interval"),type:"number",placeholder:"30",value:t.maxRetryInterval,onChange:ee=>s({maxRetryInterval:ee.target.value}),disabled:i,error:V}),h.jsx(K1,{label:a("config_management.visual.sections.network.routing_strategy"),labelId:m,hint:a("config_management.visual.sections.network.routing_strategy_hint"),hintId:g,children:h.jsx(Vi,{value:t.routingStrategy,options:[{value:"round-robin",label:a("config_management.visual.sections.network.strategy_round_robin")},{value:"fill-first",label:a("config_management.visual.sections.network.strategy_fill_first")}],id:`${m}-select`,disabled:i,ariaLabelledBy:m,ariaDescribedBy:g,onChange:ee=>s({routingStrategy:ee})})})]}),h.jsxs(lo,{children:[h.jsx(za,{title:a("config_management.visual.sections.network.force_model_prefix"),description:a("config_management.visual.sections.network.force_model_prefix_desc"),checked:t.forceModelPrefix,disabled:i,onChange:ee=>s({forceModelPrefix:ee})}),h.jsx(za,{title:a("config_management.visual.sections.network.ws_auth"),description:a("config_management.visual.sections.network.ws_auth_desc"),checked:t.wsAuth,disabled:i,onChange:ee=>s({wsAuth:ee})})]})]})}),h.jsx(cr,{id:"quota",ref:ee=>{P.current.quota=ee},indexLabel:"07",icon:h.jsx(j0,{size:16}),title:a("config_management.visual.sections.quota.title"),description:a("config_management.visual.sections.quota.description"),children:h.jsxs(lo,{children:[h.jsx(za,{title:a("config_management.visual.sections.quota.switch_project"),description:a("config_management.visual.sections.quota.switch_project_desc"),checked:t.quotaSwitchProject,disabled:i,onChange:ee=>s({quotaSwitchProject:ee})}),h.jsx(za,{title:a("config_management.visual.sections.quota.switch_preview_model"),description:a("config_management.visual.sections.quota.switch_preview_model_desc"),checked:t.quotaSwitchPreviewModel,disabled:i,onChange:ee=>s({quotaSwitchPreviewModel:ee})})]})}),h.jsx(cr,{id:"streaming",ref:ee=>{P.current.streaming=ee},indexLabel:"08",icon:h.jsx(Ju,{size:16}),title:a("config_management.visual.sections.streaming.title"),description:a("config_management.visual.sections.streaming.description"),children:h.jsxs(dc,{children:[h.jsxs(lo,{children:[h.jsx(K1,{label:a("config_management.visual.sections.streaming.keepalive_seconds"),htmlFor:y,hint:a("config_management.visual.sections.streaming.keepalive_hint"),hintId:b,error:K,errorId:v,children:h.jsxs("div",{className:Re.fieldControl,children:[h.jsx("input",{id:y,className:"input",type:"number",placeholder:"0",value:t.streaming.keepaliveSeconds,onChange:ee=>s({streaming:{...t.streaming,keepaliveSeconds:ee.target.value}}),disabled:i}),z?h.jsx("span",{className:Re.inlinePill,children:a("config_management.visual.sections.streaming.disabled")}):null]})}),h.jsx(ot,{label:a("config_management.visual.sections.streaming.bootstrap_retries"),type:"number",placeholder:"1",value:t.streaming.bootstrapRetries,onChange:ee=>s({streaming:{...t.streaming,bootstrapRetries:ee.target.value}}),disabled:i,hint:a("config_management.visual.sections.streaming.bootstrap_hint"),error:$})]}),h.jsx(lo,{children:h.jsx(K1,{label:a("config_management.visual.sections.streaming.nonstream_keepalive"),htmlFor:x,hint:a("config_management.visual.sections.streaming.nonstream_keepalive_hint"),hintId:A,error:X,errorId:k,children:h.jsxs("div",{className:Re.fieldControl,children:[h.jsx("input",{id:x,className:"input",type:"number",placeholder:"0",value:t.streaming.nonstreamKeepaliveInterval,onChange:ee=>s({streaming:{...t.streaming,nonstreamKeepaliveInterval:ee.target.value}}),disabled:i}),D?h.jsx("span",{className:Re.inlinePill,children:a("config_management.visual.sections.streaming.disabled")}):null]})})})]})}),h.jsx(cr,{id:"payload",ref:ee=>{P.current.payload=ee},indexLabel:"09",icon:h.jsx(R0,{size:16}),title:a("config_management.visual.sections.payload.title"),description:a("config_management.visual.sections.payload.description"),children:h.jsxs(dc,{children:[h.jsx(_f,{title:a("config_management.visual.sections.payload.default_rules"),description:a("config_management.visual.sections.payload.default_rules_desc"),children:h.jsx(N_,{value:t.payloadDefaultRules,disabled:i,onChange:q})}),h.jsx(_f,{title:a("config_management.visual.sections.payload.default_raw_rules"),description:a("config_management.visual.sections.payload.default_raw_rules_desc"),children:h.jsx(N_,{value:t.payloadDefaultRawRules,disabled:i,rawJsonValues:!0,onChange:Y})}),h.jsx(_f,{title:a("config_management.visual.sections.payload.override_rules"),description:a("config_management.visual.sections.payload.override_rules_desc"),children:h.jsx(N_,{value:t.payloadOverrideRules,disabled:i,protocolFirst:!0,onChange:oe})}),h.jsx(_f,{title:a("config_management.visual.sections.payload.override_raw_rules"),description:a("config_management.visual.sections.payload.override_raw_rules_desc"),children:h.jsx(N_,{value:t.payloadOverrideRawRules,disabled:i,protocolFirst:!0,rawJsonValues:!0,onChange:se})}),h.jsx(_f,{title:a("config_management.visual.sections.payload.filter_rules"),description:a("config_management.visual.sections.payload.filter_rules_desc"),children:h.jsx(Dye,{value:t.payloadFilterRules,disabled:i,onChange:F})})]})})]})]}),f&&typeof document<"u"?Eo.createPortal(h.jsx("div",{ref:N,className:Re.floatingSidebarContainer,children:h.jsx("div",{className:Re.floatingSidebarRail,children:ue})}),document.body):null]})}let kS=[],N6=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e<t.length;e++)(e%2?N6:kS).push(n=n+t[e])})();function Uye(t){if(t<768)return!1;for(let e=0,n=kS.length;;){let i=e+n>>1;if(t<kS[i])n=i;else if(t>=N6[i])e=i+1;else return!0;if(e==n)return!1}}function VE(t){return t>=127462&&t<=127487}const WE=8205;function Bye(t,e,n=!0,i=!0){return(n?T6:zye)(t,e,i)}function T6(t,e,n){if(e==t.length)return e;e&&M6(t.charCodeAt(e))&&L6(t.charCodeAt(e-1))&&e--;let i=H1(t,e);for(e+=GE(i);e<t.length;){let s=H1(t,e);if(i==WE||s==WE||n&&Uye(s))e+=GE(s),i=s;else if(VE(s)){let a=0,o=e-2;for(;o>=0&&VE(H1(t,o));)a++,o-=2;if(a%2==0)break;e+=2}else break}return e}function zye(t,e,n){for(;e>0;){let i=T6(t,e-2,n);if(i<e)return i;e--}return 0}function H1(t,e){let n=t.charCodeAt(e);if(!L6(n)||e+1==t.length)return n;let i=t.charCodeAt(e+1);return M6(i)?(n-55296<<10)+(i-56320)+65536:n}function M6(t){return t>=56320&&t<57344}function L6(t){return t>=55296&&t<56320}function GE(t){return t<65536?1:2}class un{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,i){[e,n]=Ed(this,e,n);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(n,this.length,s,1),bo.from(s,this.length-(n-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=Ed(this,e,n);let i=[];return this.decompose(e,n,i,0),bo.from(i,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new nm(this),a=new nm(e);for(let o=n,r=n;;){if(s.next(o),a.next(o),o=0,s.lineBreak!=a.lineBreak||s.done!=a.done||s.value!=a.value)return!1;if(r+=s.value.length,s.done||r>=i)return!0}}iter(e=1){return new nm(this,e)}iterRange(e,n=this.length){return new O6(this,e,n)}iterLines(e,n){let i;if(e==null)i=this.iter();else{n==null&&(n=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new P6(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?un.empty:e.length<=32?new si(e):bo.from(si.split(e,[]))}}class si extends un{constructor(e,n=qye(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,i,s){for(let a=0;;a++){let o=this.text[a],r=s+o.length;if((n?i:r)>=e)return new Kye(s,r,i,o);s=r+1,i++}}decompose(e,n,i,s){let a=e<=0&&n>=this.length?this:new si($E(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),r=_0(a.text,o.text.slice(),0,a.length);if(r.length<=32)i.push(new si(r,o.length+a.length));else{let c=r.length>>1;i.push(new si(r.slice(0,c)),new si(r.slice(c)))}}else i.push(a)}replace(e,n,i){if(!(i instanceof si))return super.replace(e,n,i);[e,n]=Ed(this,e,n);let s=_0(this.text,_0(i.text,$E(this.text,0,e)),n),a=this.length+i.length-(n-e);return s.length<=32?new si(s,a):bo.from(si.split(s,[]),a)}sliceString(e,n=this.length,i=`
|
||
`){[e,n]=Ed(this,e,n);let s="";for(let a=0,o=0;a<=n&&o<this.text.length;o++){let r=this.text[o],c=a+r.length;a>e&&o&&(s+=i),e<c&&n>a&&(s+=r.slice(Math.max(0,e-a),n-a)),a=c+1}return s}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let i=[],s=-1;for(let a of e)i.push(a),s+=a.length+1,i.length==32&&(n.push(new si(i,s)),i=[],s=-1);return s>-1&&n.push(new si(i,s)),n}}class bo extends un{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,n,i,s){for(let a=0;;a++){let o=this.children[a],r=s+o.length,c=i+o.lines-1;if((n?c:r)>=e)return o.lineInner(e,n,i,s);s=r+1,i=c+1}}decompose(e,n,i,s){for(let a=0,o=0;o<=n&&a<this.children.length;a++){let r=this.children[a],c=o+r.length;if(e<=c&&n>=o){let d=s&((o<=e?1:0)|(c>=n?2:0));o>=e&&c<=n&&!d?i.push(r):r.decompose(e-o,n-o,i,d)}o=c+1}}replace(e,n,i){if([e,n]=Ed(this,e,n),i.lines<this.lines)for(let s=0,a=0;s<this.children.length;s++){let o=this.children[s],r=a+o.length;if(e>=a&&n<=r){let c=o.replace(e-a,n-a,i),d=this.lines-o.lines+c.lines;if(c.lines<d>>4&&c.lines>d>>6){let f=this.children.slice();return f[s]=c,new bo(f,this.length-(n-e)+i.length)}return super.replace(a,r,c)}a=r+1}return super.replace(e,n,i)}sliceString(e,n=this.length,i=`
|
||
`){[e,n]=Ed(this,e,n);let s="";for(let a=0,o=0;a<this.children.length&&o<=n;a++){let r=this.children[a],c=o+r.length;o>e&&a&&(s+=i),e<c&&n>o&&(s+=r.sliceString(e-o,n-o,i)),o=c+1}return s}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof bo))return 0;let i=0,[s,a,o,r]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=n,a+=n){if(s==o||a==r)return i;let c=this.children[s],d=e.children[a];if(c!=d)return i+c.scanIdentical(d,n);i+=c.length+1}}static from(e,n=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let y of e)i+=y.lines;if(i<32){let y=[];for(let b of e)b.flatten(y);return new si(y,n)}let s=Math.max(32,i>>5),a=s<<1,o=s>>1,r=[],c=0,d=-1,f=[];function m(y){let b;if(y.lines>a&&y instanceof bo)for(let v of y.children)m(v);else y.lines>o&&(c>o||!c)?(g(),r.push(y)):y instanceof si&&c&&(b=f[f.length-1])instanceof si&&y.lines+b.lines<=32?(c+=y.lines,d+=y.length+1,f[f.length-1]=new si(b.text.concat(y.text),b.length+1+y.length)):(c+y.lines>s&&g(),c+=y.lines,d+=y.length+1,f.push(y))}function g(){c!=0&&(r.push(f.length==1?f[0]:bo.from(f,d)),d=-1,c=f.length=0)}for(let y of e)m(y);return g(),r.length==1?r[0]:new bo(r,n)}}un.empty=new si([""],0);function qye(t){let e=-1;for(let n of t)e+=n.length+1;return e}function _0(t,e,n=0,i=1e9){for(let s=0,a=0,o=!0;a<t.length&&s<=i;a++){let r=t[a],c=s+r.length;c>=n&&(c>i&&(r=r.slice(0,i-s)),s<n&&(r=r.slice(n-s)),o?(e[e.length-1]+=r,o=!1):e.push(r)),s=c+1}return e}function $E(t,e,n){return _0(t,[""],e,n)}class nm{constructor(e,n=1){this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[n>0?1:(e instanceof si?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],a=this.offsets[i],o=a>>1,r=s instanceof si?s.text.length:s.children.length;if(o==(n>0?r:0)){if(i==0)return this.done=!0,this.value="",this;n>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((a&1)==(n>0?0:1)){if(this.offsets[i]+=n,e==0)return this.lineBreak=!0,this.value=`
|
||
`,this;e--}else if(s instanceof si){let c=s.text[o+(n<0?-1:0)];if(this.offsets[i]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=s.children[o+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[i]+=n):(n<0&&this.offsets[i]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof si?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class O6{constructor(e,n,i){this.value="",this.done=!1,this.cursor=new nm(e,n>i?-1:1),this.pos=n>i?e.length:0,this.from=Math.min(n,i),this.to=Math.max(n,i)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let i=n<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*n,this.value=s.length<=i?s:n<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class P6{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:i,value:s}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(un.prototype[Symbol.iterator]=function(){return this.iter()},nm.prototype[Symbol.iterator]=O6.prototype[Symbol.iterator]=P6.prototype[Symbol.iterator]=function(){return this});class Kye{constructor(e,n,i,s){this.from=e,this.to=n,this.number=i,this.text=s}get length(){return this.to-this.from}}function Ed(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function Wi(t,e,n=!0,i=!0){return Bye(t,e,n,i)}function Hye(t){return t>=56320&&t<57344}function Vye(t){return t>=55296&&t<56320}function Es(t,e){let n=t.charCodeAt(e);if(!Vye(n)||e+1==t.length)return n;let i=t.charCodeAt(e+1);return Hye(i)?(n-55296<<10)+(i-56320)+65536:n}function Kk(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function vo(t){return t<65536?1:2}const CS=/\r\n?|\n/;var ps=(function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t})(ps||(ps={}));class No{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;n<this.sections.length;n+=2)e+=this.sections[n];return e}get newLength(){let e=0;for(let n=0;n<this.sections.length;n+=2){let i=this.sections[n+1];e+=i<0?this.sections[n]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let n=0,i=0,s=0;n<this.sections.length;){let a=this.sections[n++],o=this.sections[n++];o<0?(e(i,s,a),s+=a):s+=o,i+=a}}iterChangedRanges(e,n=!1){AS(this,e,n)}get invertedDesc(){let e=[];for(let n=0;n<this.sections.length;){let i=this.sections[n++],s=this.sections[n++];s<0?e.push(i,s):e.push(s,i)}return new No(e)}composeDesc(e){return this.empty?e:e.empty?this:E6(this,e)}mapDesc(e,n=!1){return e.empty?this:NS(this,e,n)}mapPos(e,n=-1,i=ps.Simple){let s=0,a=0;for(let o=0;o<this.sections.length;){let r=this.sections[o++],c=this.sections[o++],d=s+r;if(c<0){if(d>e)return a+(e-s);a+=r}else{if(i!=ps.Simple&&d>=e&&(i==ps.TrackDel&&s<e&&d>e||i==ps.TrackBefore&&s<e||i==ps.TrackAfter&&d>e))return null;if(d>e||d==e&&n<0&&!r)return e==s||n<0?a:a+c;a+=c}s=d}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return a}touchesRange(e,n=e){for(let i=0,s=0;i<this.sections.length&&s<=n;){let a=this.sections[i++],o=this.sections[i++],r=s+a;if(o>=0&&s<=n&&r>=e)return s<e&&r>n?"cover":!0;s=r}return!1}toString(){let e="";for(let n=0;n<this.sections.length;){let i=this.sections[n++],s=this.sections[n++];e+=(e?" ":"")+i+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new No(e)}static create(e){return new No(e)}}class Ai extends No{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return AS(this,(n,i,s,a,o)=>e=e.replace(s,s+(i-n),o),!1),e}mapDesc(e,n=!1){return NS(this,e,n,!0)}invert(e){let n=this.sections.slice(),i=[];for(let s=0,a=0;s<n.length;s+=2){let o=n[s],r=n[s+1];if(r>=0){n[s]=r,n[s+1]=o;let c=s>>1;for(;i.length<c;)i.push(un.empty);i.push(o?e.slice(a,a+o):un.empty)}a+=o}return new Ai(n,i)}compose(e){return this.empty?e:e.empty?this:E6(this,e,!0)}map(e,n=!1){return e.empty?this:NS(this,e,n,!0)}iterChanges(e,n=!1){AS(this,e,n)}get desc(){return No.create(this.sections)}filter(e){let n=[],i=[],s=[],a=new Cm(this);e:for(let o=0,r=0;;){let c=o==e.length?1e9:e[o++];for(;r<c||r==c&&a.len==0;){if(a.done)break e;let f=Math.min(a.len,c-r);es(s,f,-1);let m=a.ins==-1?-1:a.off==0?a.ins:0;es(n,f,m),m>0&&Sl(i,n,a.text),a.forward(f),r+=f}let d=e[o++];for(;r<d;){if(a.done)break e;let f=Math.min(a.len,d-r);es(n,f,-1),es(s,f,a.ins==-1?-1:a.off==0?a.ins:0),a.forward(f),r+=f}}return{changes:new Ai(n,i),filtered:No.create(s)}}toJSON(){let e=[];for(let n=0;n<this.sections.length;n+=2){let i=this.sections[n],s=this.sections[n+1];s<0?e.push(i):s==0?e.push([i]):e.push([i].concat(this.inserted[n>>1].toJSON()))}return e}static of(e,n,i){let s=[],a=[],o=0,r=null;function c(f=!1){if(!f&&!s.length)return;o<n&&es(s,n-o,-1);let m=new Ai(s,a);r=r?r.compose(m.map(r)):m,s=[],a=[],o=0}function d(f){if(Array.isArray(f))for(let m of f)d(m);else if(f instanceof Ai){if(f.length!=n)throw new RangeError(`Mismatched change set length (got ${f.length}, expected ${n})`);c(),r=r?r.compose(f.map(r)):f}else{let{from:m,to:g=m,insert:y}=f;if(m>g||m<0||g>n)throw new RangeError(`Invalid change range ${m} to ${g} (in doc of length ${n})`);let b=y?typeof y=="string"?un.of(y.split(i||CS)):y:un.empty,v=b.length;if(m==g&&v==0)return;m<o&&c(),m>o&&es(s,m-o,-1),es(s,g-m,v),Sl(a,s,b),o=g}}return d(e),c(!r),r}static empty(e){return new Ai(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],i=[];for(let s=0;s<e.length;s++){let a=e[s];if(typeof a=="number")n.push(a,-1);else{if(!Array.isArray(a)||typeof a[0]!="number"||a.some((o,r)=>r&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(a.length==1)n.push(a[0],0);else{for(;i.length<s;)i.push(un.empty);i[s]=un.of(a.slice(1)),n.push(a[0],i[s].length)}}}return new Ai(n,i)}static createSet(e,n){return new Ai(e,n)}}function es(t,e,n,i=!1){if(e==0&&n<=0)return;let s=t.length-2;s>=0&&n<=0&&n==t[s+1]?t[s]+=e:s>=0&&e==0&&t[s]==0?t[s+1]+=n:i?(t[s]+=e,t[s+1]+=n):t.push(e,n)}function Sl(t,e,n){if(n.length==0)return;let i=e.length-2>>1;if(i<t.length)t[t.length-1]=t[t.length-1].append(n);else{for(;t.length<i;)t.push(un.empty);t.push(n)}}function AS(t,e,n){let i=t.inserted;for(let s=0,a=0,o=0;o<t.sections.length;){let r=t.sections[o++],c=t.sections[o++];if(c<0)s+=r,a+=r;else{let d=s,f=a,m=un.empty;for(;d+=r,f+=c,c&&i&&(m=m.append(i[o-2>>1])),!(n||o==t.sections.length||t.sections[o+1]<0);)r=t.sections[o++],c=t.sections[o++];e(s,d,a,f,m),s=d,a=f}}}function NS(t,e,n,i=!1){let s=[],a=i?[]:null,o=new Cm(t),r=new Cm(e);for(let c=-1;;){if(o.done&&r.len||r.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&r.ins==-1){let d=Math.min(o.len,r.len);es(s,d,-1),o.forward(d),r.forward(d)}else if(r.ins>=0&&(o.ins<0||c==o.i||o.off==0&&(r.len<o.len||r.len==o.len&&!n))){let d=r.len;for(es(s,r.ins,-1);d;){let f=Math.min(o.len,d);o.ins>=0&&c<o.i&&o.len<=f&&(es(s,0,o.ins),a&&Sl(a,s,o.text),c=o.i),o.forward(f),d-=f}r.next()}else if(o.ins>=0){let d=0,f=o.len;for(;f;)if(r.ins==-1){let m=Math.min(f,r.len);d+=m,f-=m,r.forward(m)}else if(r.ins==0&&r.len<f)f-=r.len,r.next();else break;es(s,d,c<o.i?o.ins:0),a&&c<o.i&&Sl(a,s,o.text),c=o.i,o.forward(o.len-f)}else{if(o.done&&r.done)return a?Ai.createSet(s,a):No.create(s);throw new Error("Mismatched change set lengths")}}}function E6(t,e,n=!1){let i=[],s=n?[]:null,a=new Cm(t),o=new Cm(e);for(let r=!1;;){if(a.done&&o.done)return s?Ai.createSet(i,s):No.create(i);if(a.ins==0)es(i,a.len,0,r),a.next();else if(o.len==0&&!o.done)es(i,0,o.ins,r),s&&Sl(s,i,o.text),o.next();else{if(a.done||o.done)throw new Error("Mismatched change set lengths");{let c=Math.min(a.len2,o.len),d=i.length;if(a.ins==-1){let f=o.ins==-1?-1:o.off?0:o.ins;es(i,c,f,r),s&&f&&Sl(s,i,o.text)}else o.ins==-1?(es(i,a.off?0:a.len,c,r),s&&Sl(s,i,a.textBit(c))):(es(i,a.off?0:a.len,o.off?0:o.ins,r),s&&!o.off&&Sl(s,i,o.text));r=(a.ins>c||o.ins>=0&&o.len>c)&&(r||i.length>d),a.forward2(c),o.forward(c)}}}}class Cm{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,n=this.i-2>>1;return n>=e.length?un.empty:e[n]}textBit(e){let{inserted:n}=this.set,i=this.i-2>>1;return i>=n.length&&!e?un.empty:n[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Tc{constructor(e,n,i){this.from=e,this.to=n,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,n):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new Tc(i,s,this.flags)}extend(e,n=e){if(e<=this.anchor&&n>=this.anchor)return Pe.range(e,n);let i=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return Pe.range(this.anchor,i)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Pe.range(e.anchor,e.head)}static create(e,n,i){return new Tc(e,n,i)}}class Pe{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:Pe.create(this.ranges.map(i=>i.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(e.ranges[i],n))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new Pe([this.main],0)}addRange(e,n=!0){return Pe.create([e].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(e,n=this.mainIndex){let i=this.ranges.slice();return i[n]=e,Pe.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Pe(e.ranges.map(n=>Tc.fromJSON(n)),e.main)}static single(e,n=e){return new Pe([Pe.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;s<e.length;s++){let a=e[s];if(a.empty?a.from<=i:a.from<i)return Pe.normalized(e.slice(),n);i=a.to}return new Pe(e,n)}static cursor(e,n=0,i,s){return Tc.create(e,e,(n==0?0:n<0?8:16)|(i==null?7:Math.min(6,i))|(s??16777215)<<6)}static range(e,n,i,s){let a=(i??16777215)<<6|(s==null?7:Math.min(6,s));return n<e?Tc.create(n,e,48|a):Tc.create(e,n,(n>e?8:0)|a)}static normalized(e,n=0){let i=e[n];e.sort((s,a)=>s.from-a.from),n=e.indexOf(i);for(let s=1;s<e.length;s++){let a=e[s],o=e[s-1];if(a.empty?a.from<=o.to:a.from<o.to){let r=o.from,c=Math.max(a.to,o.to);s<=n&&n--,e.splice(--s,2,a.anchor>a.head?Pe.range(c,r):Pe.range(r,c))}}return new Pe(e,n)}}function j6(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let Hk=0;class Ze{constructor(e,n,i,s,a){this.combine=e,this.compareInput=n,this.compare=i,this.isStatic=s,this.id=Hk++,this.default=e([]),this.extensions=typeof a=="function"?a(this):a}get reader(){return this}static define(e={}){return new Ze(e.combine||(n=>n),e.compareInput||((n,i)=>n===i),e.compare||(e.combine?(n,i)=>n===i:Vk),!!e.static,e.enables)}of(e){return new y0([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new y0(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new y0(e,this,2,n)}from(e,n){return n||(n=i=>i),this.compute([e],i=>n(i.field(e)))}}function Vk(t,e){return t==e||t.length==e.length&&t.every((n,i)=>n===e[i])}class y0{constructor(e,n,i,s){this.dependencies=e,this.facet=n,this.type=i,this.value=s,this.id=Hk++}dynamicSlot(e){var n;let i=this.value,s=this.facet.compareInput,a=this.id,o=e[a]>>1,r=this.type==2,c=!1,d=!1,f=[];for(let m of this.dependencies)m=="doc"?c=!0:m=="selection"?d=!0:(((n=e[m.id])!==null&&n!==void 0?n:1)&1)==0&&f.push(e[m.id]);return{create(m){return m.values[o]=i(m),1},update(m,g){if(c&&g.docChanged||d&&(g.docChanged||g.selection)||TS(m,f)){let y=i(m);if(r?!XE(y,m.values[o],s):!s(y,m.values[o]))return m.values[o]=y,1}return 0},reconfigure:(m,g)=>{let y,b=g.config.address[a];if(b!=null){let v=ty(g,b);if(this.dependencies.every(x=>x instanceof Ze?g.facet(x)===m.facet(x):x instanceof $i?g.field(x,!1)==m.field(x,!1):!0)||(r?XE(y=i(m),v,s):s(y=i(m),v)))return m.values[o]=v,0}else y=i(m);return m.values[o]=y,1}}}}function XE(t,e,n){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++)if(!n(t[i],e[i]))return!1;return!0}function TS(t,e){let n=!1;for(let i of e)im(t,i)&1&&(n=!0);return n}function Wye(t,e,n){let i=n.map(c=>t[c.id]),s=n.map(c=>c.type),a=i.filter(c=>!(c&1)),o=t[e.id]>>1;function r(c){let d=[];for(let f=0;f<i.length;f++){let m=ty(c,i[f]);if(s[f]==2)for(let g of m)d.push(g);else d.push(m)}return e.combine(d)}return{create(c){for(let d of i)im(c,d);return c.values[o]=r(c),1},update(c,d){if(!TS(c,a))return 0;let f=r(c);return e.compare(f,c.values[o])?0:(c.values[o]=f,1)},reconfigure(c,d){let f=TS(c,i),m=d.config.facets[e.id],g=d.facet(e);if(m&&!f&&Vk(n,m))return c.values[o]=g,0;let y=r(c);return e.compare(y,g)?(c.values[o]=g,0):(c.values[o]=y,1)}}}const T_=Ze.define({static:!0});class $i{constructor(e,n,i,s,a){this.id=e,this.createF=n,this.updateF=i,this.compareF=s,this.spec=a,this.provides=void 0}static define(e){let n=new $i(Hk++,e.create,e.update,e.compare||((i,s)=>i===s),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(T_).find(i=>i.field==this);return(n?.create||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:i=>(i.values[n]=this.create(i),1),update:(i,s)=>{let a=i.values[n],o=this.updateF(a,s);return this.compareF(a,o)?0:(i.values[n]=o,1)},reconfigure:(i,s)=>{let a=i.facet(T_),o=s.facet(T_),r;return(r=a.find(c=>c.field==this))&&r!=o.find(c=>c.field==this)?(i.values[n]=r.create(i),1):s.config.address[this.id]!=null?(i.values[n]=s.field(this),0):(i.values[n]=this.create(i),1)}}}init(e){return[this,T_.of({field:this,create:e})]}get extension(){return this}}const yc={lowest:4,low:3,default:2,high:1,highest:0};function yf(t){return e=>new R6(e,t)}const Zc={highest:yf(yc.highest),high:yf(yc.high),default:yf(yc.default),low:yf(yc.low),lowest:yf(yc.lowest)};class R6{constructor(e,n){this.inner=e,this.prec=n}}class fb{of(e){return new MS(this,e)}reconfigure(e){return fb.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class MS{constructor(e,n){this.compartment=e,this.inner=n}}class ey{constructor(e,n,i,s,a,o){for(this.base=e,this.compartments=n,this.dynamicSlots=i,this.address=s,this.staticValues=a,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let n=this.address[e.id];return n==null?e.default:this.staticValues[n>>1]}static resolve(e,n,i){let s=[],a=Object.create(null),o=new Map;for(let g of Gye(e,n,o))g instanceof $i?s.push(g):(a[g.facet.id]||(a[g.facet.id]=[])).push(g);let r=Object.create(null),c=[],d=[];for(let g of s)r[g.id]=d.length<<1,d.push(y=>g.slot(y));let f=i?.config.facets;for(let g in a){let y=a[g],b=y[0].facet,v=f&&f[g]||[];if(y.every(x=>x.type==0))if(r[b.id]=c.length<<1|1,Vk(v,y))c.push(i.facet(b));else{let x=b.combine(y.map(A=>A.value));c.push(i&&b.compare(x,i.facet(b))?i.facet(b):x)}else{for(let x of y)x.type==0?(r[x.id]=c.length<<1|1,c.push(x.value)):(r[x.id]=d.length<<1,d.push(A=>x.dynamicSlot(A)));r[b.id]=d.length<<1,d.push(x=>Wye(x,b,y))}}let m=d.map(g=>g(r));return new ey(e,o,m,r,c,a)}}function Gye(t,e,n){let i=[[],[],[],[],[]],s=new Map;function a(o,r){let c=s.get(o);if(c!=null){if(c<=r)return;let d=i[c].indexOf(o);d>-1&&i[c].splice(d,1),o instanceof MS&&n.delete(o.compartment)}if(s.set(o,r),Array.isArray(o))for(let d of o)a(d,r);else if(o instanceof MS){if(n.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let d=e.get(o.compartment)||o.inner;n.set(o.compartment,d),a(d,r)}else if(o instanceof R6)a(o.inner,o.prec);else if(o instanceof $i)i[r].push(o),o.provides&&a(o.provides,r);else if(o instanceof y0)i[r].push(o),o.facet.extensions&&a(o.facet.extensions,yc.default);else{let d=o.extension;if(!d)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);a(d,r)}}return a(t,yc.default),i.reduce((o,r)=>o.concat(r))}function im(t,e){if(e&1)return 2;let n=e>>1,i=t.status[n];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[n]=4;let s=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|s}function ty(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const D6=Ze.define(),LS=Ze.define({combine:t=>t.some(e=>e),static:!0}),F6=Ze.define({combine:t=>t.length?t[0]:void 0,static:!0}),I6=Ze.define(),U6=Ze.define(),B6=Ze.define(),z6=Ze.define({combine:t=>t.length?t[0]:!1});class Io{constructor(e,n){this.type=e,this.value=n}static define(){return new $ye}}class $ye{of(e){return new Io(this,e)}}class Xye{constructor(e){this.map=e}of(e){return new Ft(this,e)}}class Ft{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Ft(this.type,n)}is(e){return this.type==e}static define(e={}){return new Xye(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let i=[];for(let s of e){let a=s.map(n);a&&i.push(a)}return i}}Ft.reconfigure=Ft.define();Ft.appendConfig=Ft.define();class Ti{constructor(e,n,i,s,a,o){this.startState=e,this.changes=n,this.selection=i,this.effects=s,this.annotations=a,this.scrollIntoView=o,this._doc=null,this._state=null,i&&j6(i,n.newLength),a.some(r=>r.type==Ti.time)||(this.annotations=a.concat(Ti.time.of(Date.now())))}static create(e,n,i,s,a,o){return new Ti(e,n,i,s,a,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(Ti.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}Ti.time=Io.define();Ti.userEvent=Io.define();Ti.addToHistory=Io.define();Ti.remote=Io.define();function Qye(t,e){let n=[];for(let i=0,s=0;;){let a,o;if(i<t.length&&(s==e.length||e[s]>=t[i]))a=t[i++],o=t[i++];else if(s<e.length)a=e[s++],o=e[s++];else return n;!n.length||n[n.length-1]<a?n.push(a,o):n[n.length-1]<o&&(n[n.length-1]=o)}}function q6(t,e,n){var i;let s,a,o;return n?(s=e.changes,a=Ai.empty(e.changes.length),o=t.changes.compose(e.changes)):(s=e.changes.map(t.changes),a=t.changes.mapDesc(e.changes,!0),o=t.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(a):(i=t.selection)===null||i===void 0?void 0:i.map(s),effects:Ft.mapEffects(t.effects,s).concat(Ft.mapEffects(e.effects,a)),annotations:t.annotations.length?t.annotations.concat(e.annotations):e.annotations,scrollIntoView:t.scrollIntoView||e.scrollIntoView}}function OS(t,e,n){let i=e.selection,s=_d(e.annotations);return e.userEvent&&(s=s.concat(Ti.userEvent.of(e.userEvent))),{changes:e.changes instanceof Ai?e.changes:Ai.of(e.changes||[],n,t.facet(F6)),selection:i&&(i instanceof Pe?i:Pe.single(i.anchor,i.head)),effects:_d(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function K6(t,e,n){let i=OS(t,e.length?e[0]:{},t.doc.length);e.length&&e[0].filter===!1&&(n=!1);for(let a=1;a<e.length;a++){e[a].filter===!1&&(n=!1);let o=!!e[a].sequential;i=q6(i,OS(t,e[a],o?i.changes.newLength:t.doc.length),o)}let s=Ti.create(t,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return Jye(n?Yye(s):s)}function Yye(t){let e=t.startState,n=!0;for(let s of e.facet(I6)){let a=s(t);if(a===!1){n=!1;break}Array.isArray(a)&&(n=n===!0?a:Qye(n,a))}if(n!==!0){let s,a;if(n===!1)a=t.changes.invertedDesc,s=Ai.empty(e.doc.length);else{let o=t.changes.filter(n);s=o.changes,a=o.filtered.mapDesc(o.changes).invertedDesc}t=Ti.create(e,s,t.selection&&t.selection.map(a),Ft.mapEffects(t.effects,a),t.annotations,t.scrollIntoView)}let i=e.facet(U6);for(let s=i.length-1;s>=0;s--){let a=i[s](t);a instanceof Ti?t=a:Array.isArray(a)&&a.length==1&&a[0]instanceof Ti?t=a[0]:t=K6(e,_d(a),!1)}return t}function Jye(t){let e=t.startState,n=e.facet(B6),i=t;for(let s=n.length-1;s>=0;s--){let a=n[s](t);a&&Object.keys(a).length&&(i=q6(i,OS(e,a,t.changes.newLength),!0))}return i==t?t:Ti.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}const Zye=[];function _d(t){return t==null?Zye:Array.isArray(t)?t:[t]}var Gn=(function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t})(Gn||(Gn={}));const ebe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let PS;try{PS=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function tbe(t){if(PS)return PS.test(t);for(let e=0;e<t.length;e++){let n=t[e];if(/\w/.test(n)||n>""&&(n.toUpperCase()!=n.toLowerCase()||ebe.test(n)))return!0}return!1}function nbe(t){return e=>{if(!/\S/.test(e))return Gn.Space;if(tbe(e))return Gn.Word;for(let n=0;n<t.length;n++)if(e.indexOf(t[n])>-1)return Gn.Word;return Gn.Other}}class ln{constructor(e,n,i,s,a,o){this.config=e,this.doc=n,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=a,o&&(o._state=this);for(let r=0;r<this.config.dynamicSlots.length;r++)im(this,r<<1);this.computeSlot=null}field(e,n=!0){let i=this.config.address[e.id];if(i==null){if(n)throw new RangeError("Field is not present in this state");return}return im(this,i),ty(this,i)}update(...e){return K6(this,e,!0)}applyTransaction(e){let n=this.config,{base:i,compartments:s}=n;for(let r of e.effects)r.is(fb.reconfigure)?(n&&(s=new Map,n.compartments.forEach((c,d)=>s.set(d,c)),n=null),s.set(r.value.compartment,r.value.extension)):r.is(Ft.reconfigure)?(n=null,i=r.value):r.is(Ft.appendConfig)&&(n=null,i=_d(i).concat(r.value));let a;n?a=e.startState.values.slice():(n=ey.resolve(i,s,this),a=new ln(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,d)=>d.reconfigure(c,this),null).values);let o=e.startState.facet(LS)?e.newSelection:e.newSelection.asSingle();new ln(n,e.newDoc,o,a,(r,c)=>c.update(r,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Pe.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,i=e(n.ranges[0]),s=this.changes(i.changes),a=[i.range],o=_d(i.effects);for(let r=1;r<n.ranges.length;r++){let c=e(n.ranges[r]),d=this.changes(c.changes),f=d.map(s);for(let g=0;g<r;g++)a[g]=a[g].map(f);let m=s.mapDesc(d,!0);a.push(c.range.map(m)),s=s.compose(f),o=Ft.mapEffects(o,f).concat(Ft.mapEffects(_d(c.effects),m))}return{changes:s,selection:Pe.create(a,n.mainIndex),effects:o}}changes(e=[]){return e instanceof Ai?e:Ai.of(e,this.doc.length,this.facet(ln.lineSeparator))}toText(e){return un.of(e.split(this.facet(ln.lineSeparator)||CS))}sliceDoc(e=0,n=this.doc.length){return this.doc.sliceString(e,n,this.lineBreak)}facet(e){let n=this.config.address[e.id];return n==null?e.default:(im(this,n),ty(this,n))}toJSON(e){let n={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let s=e[i];s instanceof $i&&this.config.address[s.id]!=null&&(n[i]=s.spec.toJSON(this.field(e[i]),this))}return n}static fromJSON(e,n={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(i){for(let a in i)if(Object.prototype.hasOwnProperty.call(e,a)){let o=i[a],r=e[a];s.push(o.init(c=>o.spec.fromJSON(r,c)))}}return ln.create({doc:e.doc,selection:Pe.fromJSON(e.selection),extensions:n.extensions?s.concat([n.extensions]):s})}static create(e={}){let n=ey.resolve(e.extensions||[],new Map),i=e.doc instanceof un?e.doc:un.of((e.doc||"").split(n.staticFacet(ln.lineSeparator)||CS)),s=e.selection?e.selection instanceof Pe?e.selection:Pe.single(e.selection.anchor,e.selection.head):Pe.single(0);return j6(s,i.length),n.staticFacet(LS)||(s=s.asSingle()),new ln(n,i,s,n.dynamicSlots.map(()=>null),(a,o)=>o.create(a),null)}get tabSize(){return this.facet(ln.tabSize)}get lineBreak(){return this.facet(ln.lineSeparator)||`
|
||
`}get readOnly(){return this.facet(z6)}phrase(e,...n){for(let i of this.facet(ln.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let a=+(s||1);return!a||a>n.length?i:n[a-1]})),e}languageDataAt(e,n,i=-1){let s=[];for(let a of this.facet(D6))for(let o of a(this,n,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){return nbe(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:n,from:i,length:s}=this.doc.lineAt(e),a=this.charCategorizer(e),o=e-i,r=e-i;for(;o>0;){let c=Wi(n,o,!1);if(a(n.slice(c,o))!=Gn.Word)break;o=c}for(;r<s;){let c=Wi(n,r);if(a(n.slice(r,c))!=Gn.Word)break;r=c}return o==r?null:Pe.range(o+i,r+i)}}ln.allowMultipleSelections=LS;ln.tabSize=Ze.define({combine:t=>t.length?t[0]:4});ln.lineSeparator=F6;ln.readOnly=z6;ln.phrases=Ze.define({compare(t,e){let n=Object.keys(t),i=Object.keys(e);return n.length==i.length&&n.every(s=>t[s]==e[s])}});ln.languageData=D6;ln.changeFilter=I6;ln.transactionFilter=U6;ln.transactionExtender=B6;fb.reconfigure=Ft.define();function Uo(t,e,n={}){let i={};for(let s of t)for(let a of Object.keys(s)){let o=s[a],r=i[a];if(r===void 0)i[a]=o;else if(!(r===o||o===void 0))if(Object.hasOwnProperty.call(n,a))i[a]=n[a](r,o);else throw new Error("Config merge conflict for field "+a)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class qc{eq(e){return this==e}range(e,n=e){return ES.create(e,n,this)}}qc.prototype.startSide=qc.prototype.endSide=0;qc.prototype.point=!1;qc.prototype.mapMode=ps.TrackDel;let ES=class H6{constructor(e,n,i){this.from=e,this.to=n,this.value=i}static create(e,n,i){return new H6(e,n,i)}};function jS(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}let ibe=class V6{constructor(e,n,i,s){this.from=e,this.to=n,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,n,i,s=0){let a=i?this.to:this.from;for(let o=s,r=a.length;;){if(o==r)return o;let c=o+r>>1,d=a[c]-e||(i?this.value[c].endSide:this.value[c].startSide)-n;if(c==o)return d>=0?o:r;d>=0?r=c:o=c+1}}between(e,n,i,s){for(let a=this.findIndex(n,-1e9,!0),o=this.findIndex(i,1e9,!1,a);a<o;a++)if(s(this.from[a]+e,this.to[a]+e,this.value[a])===!1)return!1}map(e,n){let i=[],s=[],a=[],o=-1,r=-1;for(let c=0;c<this.value.length;c++){let d=this.value[c],f=this.from[c]+e,m=this.to[c]+e,g,y;if(f==m){let b=n.mapPos(f,d.startSide,d.mapMode);if(b==null||(g=y=b,d.startSide!=d.endSide&&(y=n.mapPos(f,d.endSide),y<g)))continue}else if(g=n.mapPos(f,d.startSide),y=n.mapPos(m,d.endSide),g>y||g==y&&d.startSide>0&&d.endSide<=0)continue;(y-g||d.endSide-d.startSide)<0||(o<0&&(o=g),d.point&&(r=Math.max(r,y-g)),i.push(d),s.push(g-o),a.push(y-o))}return{mapped:i.length?new V6(s,a,i,r):null,pos:o}}};class fn{constructor(e,n,i,s){this.chunkPos=e,this.chunk=n,this.nextLayer=i,this.maxPoint=s}static create(e,n,i,s){return new fn(e,n,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:i=!1,filterFrom:s=0,filterTo:a=this.length}=e,o=e.filter;if(n.length==0&&!o)return this;if(i&&(n=n.slice().sort(jS)),this.isEmpty)return n.length?fn.of(n):this;let r=new W6(this,null,-1).goto(0),c=0,d=[],f=new Lr;for(;r.value||c<n.length;)if(c<n.length&&(r.from-n[c].from||r.startSide-n[c].value.startSide)>=0){let m=n[c++];f.addInner(m.from,m.to,m.value)||d.push(m)}else r.rangeIndex==1&&r.chunkIndex<this.chunk.length&&(c==n.length||this.chunkEnd(r.chunkIndex)<n[c].from)&&(!o||s>this.chunkEnd(r.chunkIndex)||a<this.chunkPos[r.chunkIndex])&&f.addChunk(this.chunkPos[r.chunkIndex],this.chunk[r.chunkIndex])?r.nextChunk():((!o||s>r.to||a<r.from||o(r.from,r.to,r.value))&&(f.addInner(r.from,r.to,r.value)||d.push(ES.create(r.from,r.to,r.value))),r.next());return f.finishInner(this.nextLayer.isEmpty&&!d.length?fn.empty:this.nextLayer.update({add:d,filter:o,filterFrom:s,filterTo:a}))}map(e){if(e.empty||this.isEmpty)return this;let n=[],i=[],s=-1;for(let o=0;o<this.chunk.length;o++){let r=this.chunkPos[o],c=this.chunk[o],d=e.touchesRange(r,r+c.length);if(d===!1)s=Math.max(s,c.maxPoint),n.push(c),i.push(e.mapPos(r));else if(d===!0){let{mapped:f,pos:m}=c.map(r,e);f&&(s=Math.max(s,f.maxPoint),n.push(f),i.push(m))}}let a=this.nextLayer.map(e);return n.length==0?a:new fn(i,n,a||fn.empty,s)}between(e,n,i){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let a=this.chunkPos[s],o=this.chunk[s];if(n>=a&&e<=a+o.length&&o.between(a,e-a,n-a,i)===!1)return}this.nextLayer.between(e,n,i)}}iter(e=0){return Am.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return Am.from(e).goto(n)}static compare(e,n,i,s,a=-1){let o=e.filter(m=>m.maxPoint>0||!m.isEmpty&&m.maxPoint>=a),r=n.filter(m=>m.maxPoint>0||!m.isEmpty&&m.maxPoint>=a),c=QE(o,r,i),d=new bf(o,c,a),f=new bf(r,c,a);i.iterGaps((m,g,y)=>YE(d,m,f,g,y,s)),i.empty&&i.length==0&&YE(d,0,f,0,0,s)}static eq(e,n,i=0,s){s==null&&(s=999999999);let a=e.filter(f=>!f.isEmpty&&n.indexOf(f)<0),o=n.filter(f=>!f.isEmpty&&e.indexOf(f)<0);if(a.length!=o.length)return!1;if(!a.length)return!0;let r=QE(a,o),c=new bf(a,r,0).goto(i),d=new bf(o,r,0).goto(i);for(;;){if(c.to!=d.to||!RS(c.active,d.active)||c.point&&(!d.point||!c.point.eq(d.point)))return!1;if(c.to>s)return!0;c.next(),d.next()}}static spans(e,n,i,s,a=-1){let o=new bf(e,null,a).goto(n),r=n,c=o.openStart;for(;;){let d=Math.min(o.to,i);if(o.point){let f=o.activeForPoint(o.to),m=o.pointFrom<n?f.length+1:o.point.startSide<0?f.length:Math.min(f.length,c);s.point(r,d,o.point,f,m,o.pointRank),c=Math.min(o.openEnd(d),f.length)}else d>r&&(s.span(r,d,o.active,c),c=o.openEnd(d));if(o.to>i)return c+(o.point&&o.to>i?1:0);r=o.to,o.next()}}static of(e,n=!1){let i=new Lr;for(let s of e instanceof ES?[e]:n?sbe(e):e)i.add(s.from,s.to,s.value);return i.finish()}static join(e){if(!e.length)return fn.empty;let n=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let s=e[i];s!=fn.empty;s=s.nextLayer)n=new fn(s.chunkPos,s.chunk,n,Math.max(s.maxPoint,n.maxPoint));return n}}fn.empty=new fn([],[],null,-1);function sbe(t){if(t.length>1)for(let e=t[0],n=1;n<t.length;n++){let i=t[n];if(jS(e,i)>0)return t.slice().sort(jS);e=i}return t}fn.empty.nextLayer=fn.empty;class Lr{finishChunk(e){this.chunks.push(new ibe(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,i){this.addInner(e,n,i)||(this.nextLayer||(this.nextLayer=new Lr)).add(e,n,i)}addInner(e,n,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=n,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let i=n.value.length-1;return this.last=n.value[i],this.lastFrom=n.from[i]+e,this.lastTo=n.to[i]+e,!0}finish(){return this.finishInner(fn.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=fn.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function QE(t,e,n){let i=new Map;for(let a of t)for(let o=0;o<a.chunk.length;o++)a.chunk[o].maxPoint<=0&&i.set(a.chunk[o],a.chunkPos[o]);let s=new Set;for(let a of e)for(let o=0;o<a.chunk.length;o++){let r=i.get(a.chunk[o]);r!=null&&(n?n.mapPos(r):r)==a.chunkPos[o]&&!n?.touchesRange(r,r+a.chunk[o].length)&&s.add(a.chunk[o])}return s}class W6{constructor(e,n,i,s=0){this.layer=e,this.skip=n,this.minPoint=i,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,n=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,n,!1),this}gotoInner(e,n,i){for(;this.chunkIndex<this.layer.chunk.length;){let s=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(s)||this.layer.chunkEnd(this.chunkIndex)<e||s.maxPoint<this.minPoint))break;this.chunkIndex++,i=!1}if(this.chunkIndex<this.layer.chunk.length){let s=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],n,!0);(!i||this.rangeIndex<s)&&this.setRangeIndex(s)}this.next()}forward(e,n){(this.to-e||this.endSide-n)<0&&this.gotoInner(e,n,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],n=this.layer.chunk[this.chunkIndex],i=e+n.from[this.rangeIndex];if(this.from=i,this.to=e+n.to[this.rangeIndex],this.value=n.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class Am{constructor(e){this.heap=e}static from(e,n=null,i=-1){let s=[];for(let a=0;a<e.length;a++)for(let o=e[a];!o.isEmpty;o=o.nextLayer)o.maxPoint>=i&&s.push(new W6(o,n,i,a));return s.length==1?s[0]:new Am(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let i of this.heap)i.goto(e,n);for(let i=this.heap.length>>1;i>=0;i--)V1(this.heap,i);return this.next(),this}forward(e,n){for(let i of this.heap)i.forward(e,n);for(let i=this.heap.length>>1;i>=0;i--)V1(this.heap,i);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),V1(this.heap,0)}}}function V1(t,e){for(let n=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let s=t[i];if(i+1<t.length&&s.compare(t[i+1])>=0&&(s=t[i+1],i++),n.compare(s)<0)break;t[i]=n,t[e]=s,e=i}}class bf{constructor(e,n,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Am.from(e,n,i)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){M_(this.active,e),M_(this.activeTo,e),M_(this.activeRank,e),this.minActive=JE(this.active,this.activeTo)}addActive(e){let n=0,{value:i,to:s,rank:a}=this.cursor;for(;n<this.activeRank.length&&(a-this.activeRank[n]||s-this.activeTo[n])>0;)n++;L_(this.active,n,i),L_(this.activeTo,n,s),L_(this.activeRank,n,a),e&&L_(e,n,this.cursor.from),this.minActive=JE(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&M_(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let a=this.cursor.value;if(!a.point)this.addActive(i),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=a,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=a.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(i){this.openStart=0;for(let s=i.length-1;s>=0&&i[s]<e;s--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let n=[];for(let i=this.active.length-1;i>=0&&!(this.activeRank[i]<this.pointRank);i--)(this.activeTo[i]>e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&n.push(this.active[i]);return n.reverse()}openEnd(e){let n=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)n++;return n}}function YE(t,e,n,i,s,a){t.goto(e),n.goto(i);let o=i+s,r=i,c=i-e;for(;;){let d=t.to+c-n.to,f=d||t.endSide-n.endSide,m=f<0?t.to+c:n.to,g=Math.min(m,o);if(t.point||n.point?t.point&&n.point&&(t.point==n.point||t.point.eq(n.point))&&RS(t.activeForPoint(t.to),n.activeForPoint(n.to))||a.comparePoint(r,g,t.point,n.point):g>r&&!RS(t.active,n.active)&&a.compareRange(r,g,t.active,n.active),m>o)break;(d||t.openEnd!=n.openEnd)&&a.boundChange&&a.boundChange(m),r=m,f<=0&&t.next(),f>=0&&n.next()}}function RS(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!=e[n]&&!t[n].eq(e[n]))return!1;return!0}function M_(t,e){for(let n=e,i=t.length-1;n<i;n++)t[n]=t[n+1];t.pop()}function L_(t,e,n){for(let i=t.length-1;i>=e;i--)t[i+1]=t[i];t[e]=n}function JE(t,e){let n=-1,i=1e9;for(let s=0;s<e.length;s++)(e[s]-i||t[s].endSide-t[n].endSide)<0&&(n=s,i=e[s]);return n}function sh(t,e,n=t.length){let i=0;for(let s=0;s<n&&s<t.length;)t.charCodeAt(s)==9?(i+=e-i%e,s++):(i++,s=Wi(t,s));return i}function DS(t,e,n,i){for(let s=0,a=0;;){if(a>=e)return s;if(s==t.length)break;a+=t.charCodeAt(s)==9?n-a%n:1,s=Wi(t,s)}return i===!0?-1:t.length}const FS="ͼ",ZE=typeof Symbol>"u"?"__"+FS:Symbol.for(FS),IS=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),ej=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Pl{constructor(e,n){this.rules=[];let{finish:i}=n||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function a(o,r,c,d){let f=[],m=/^@(\w+)\b/.exec(o[0]),g=m&&m[1]=="keyframes";if(m&&r==null)return c.push(o[0]+";");for(let y in r){let b=r[y];if(/&/.test(y))a(y.split(/,\s*/).map(v=>o.map(x=>v.replace(/&/,x))).reduce((v,x)=>v.concat(x)),b,c);else if(b&&typeof b=="object"){if(!m)throw new RangeError("The value of a property ("+y+") should be a primitive value.");a(s(y),b,f,g)}else b!=null&&f.push(y.replace(/_.*/,"").replace(/[A-Z]/g,v=>"-"+v.toLowerCase())+": "+b+";")}(f.length||g)&&c.push((i&&!m&&!d?o.map(i):o).join(", ")+" {"+f.join(" ")+"}")}for(let o in e)a(s(o),e[o],this.rules)}getRules(){return this.rules.join(`
|
||
`)}static newName(){let e=ej[ZE]||1;return ej[ZE]=e+1,FS+e.toString(36)}static mount(e,n,i){let s=e[IS],a=i&&i.nonce;s?a&&s.setNonce(a):s=new abe(e,a),s.mount(Array.isArray(n)?n:[n],e)}}let tj=new Map;class abe{constructor(e,n){let i=e.ownerDocument||e,s=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let a=tj.get(i);if(a)return e[IS]=a;this.sheet=new s.CSSStyleSheet,tj.set(i,this)}else this.styleTag=i.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[IS]=this}mount(e,n){let i=this.sheet,s=0,a=0;for(let o=0;o<e.length;o++){let r=e[o],c=this.modules.indexOf(r);if(c<a&&c>-1&&(this.modules.splice(c,1),a--,c=-1),c==-1){if(this.modules.splice(a++,0,r),i)for(let d=0;d<r.rules.length;d++)i.insertRule(r.rules[d],s++)}else{for(;a<c;)s+=this.modules[a++].rules.length;s+=r.rules.length,a++}}if(i)n.adoptedStyleSheets.indexOf(this.sheet)<0&&(n.adoptedStyleSheets=[this.sheet,...n.adoptedStyleSheets]);else{let o="";for(let c=0;c<this.modules.length;c++)o+=this.modules[c].getRules()+`
|
||
`;this.styleTag.textContent=o;let r=n.head||n;this.styleTag.parentNode!=r&&r.insertBefore(this.styleTag,r.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var El={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Nm={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},obe=typeof navigator<"u"&&/Mac/.test(navigator.platform),rbe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Hi=0;Hi<10;Hi++)El[48+Hi]=El[96+Hi]=String(Hi);for(var Hi=1;Hi<=24;Hi++)El[Hi+111]="F"+Hi;for(var Hi=65;Hi<=90;Hi++)El[Hi]=String.fromCharCode(Hi+32),Nm[Hi]=String.fromCharCode(Hi);for(var W1 in El)Nm.hasOwnProperty(W1)||(Nm[W1]=El[W1]);function lbe(t){var e=obe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||rbe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?Nm:El)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function On(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var s=n[i];typeof s=="string"?t.setAttribute(i,s):s!=null&&(t[i]=s)}e++}for(;e<arguments.length;e++)G6(t,arguments[e]);return t}function G6(t,e){if(typeof e=="string")t.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)t.appendChild(e);else if(Array.isArray(e))for(var n=0;n<e.length;n++)G6(t,e[n]);else throw new RangeError("Unsupported child node: "+e)}let ms=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},US=typeof document<"u"?document:{documentElement:{style:{}}};const BS=/Edge\/(\d+)/.exec(ms.userAgent),$6=/MSIE \d/.test(ms.userAgent),zS=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ms.userAgent),mb=!!($6||zS||BS),nj=!mb&&/gecko\/(\d+)/i.test(ms.userAgent),G1=!mb&&/Chrome\/(\d+)/.exec(ms.userAgent),cbe="webkitFontSmoothing"in US.documentElement.style,qS=!mb&&/Apple Computer/.test(ms.vendor),ij=qS&&(/Mobile\/\w+/.test(ms.userAgent)||ms.maxTouchPoints>2);var Ge={mac:ij||/Mac/.test(ms.platform),windows:/Win/.test(ms.platform),linux:/Linux|X11/.test(ms.platform),ie:mb,ie_version:$6?US.documentMode||6:zS?+zS[1]:BS?+BS[1]:0,gecko:nj,gecko_version:nj?+(/Firefox\/(\d+)/.exec(ms.userAgent)||[0,0])[1]:0,chrome:!!G1,chrome_version:G1?+G1[1]:0,ios:ij,android:/Android\b/.test(ms.userAgent),webkit_version:cbe?+(/\bAppleWebKit\/(\d+)/.exec(ms.userAgent)||[0,0])[1]:0,safari:qS,safari_version:qS?+(/\bVersion\/(\d+(\.\d+)?)/.exec(ms.userAgent)||[0,0])[1]:0,tabSize:US.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Tm(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function KS(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function b0(t,e){if(!e.anchorNode)return!1;try{return KS(t,e.anchorNode)}catch{return!1}}function jd(t){return t.nodeType==3?Hc(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function sm(t,e,n,i){return n?sj(t,e,n,i,-1)||sj(t,e,n,i,1):!1}function Kc(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function ny(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function sj(t,e,n,i,s){for(;;){if(t==n&&e==i)return!0;if(e==(s<0?0:Oo(t))){if(t.nodeName=="DIV")return!1;let a=t.parentNode;if(!a||a.nodeType!=1)return!1;e=Kc(t)+(s<0?0:1),t=a}else if(t.nodeType==1){if(t=t.childNodes[e+(s<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=s<0?Oo(t):0}else return!1}}function Oo(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function yp(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function ube(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function X6(t,e){let n=e.width/t.offsetWidth,i=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:n,scaleY:i}}function dbe(t,e,n,i,s,a,o,r){let c=t.ownerDocument,d=c.defaultView||window;for(let f=t,m=!1;f&&!m;)if(f.nodeType==1){let g,y=f==c.body,b=1,v=1;if(y)g=ube(d);else{if(/^(fixed|sticky)$/.test(getComputedStyle(f).position)&&(m=!0),f.scrollHeight<=f.clientHeight&&f.scrollWidth<=f.clientWidth){f=f.assignedSlot||f.parentNode;continue}let k=f.getBoundingClientRect();({scaleX:b,scaleY:v}=X6(f,k)),g={left:k.left,right:k.left+f.clientWidth*b,top:k.top,bottom:k.top+f.clientHeight*v}}let x=0,A=0;if(s=="nearest")e.top<g.top?(A=e.top-(g.top+o),n>0&&e.bottom>g.bottom+A&&(A=e.bottom-g.bottom+o)):e.bottom>g.bottom&&(A=e.bottom-g.bottom+o,n<0&&e.top-A<g.top&&(A=e.top-(g.top+o)));else{let k=e.bottom-e.top,T=g.bottom-g.top;A=(s=="center"&&k<=T?e.top+k/2-T/2:s=="start"||s=="center"&&n<0?e.top-o:e.bottom-T+o)-g.top}if(i=="nearest"?e.left<g.left?(x=e.left-(g.left+a),n>0&&e.right>g.right+x&&(x=e.right-g.right+a)):e.right>g.right&&(x=e.right-g.right+a,n<0&&e.left<g.left+x&&(x=e.left-(g.left+a))):x=(i=="center"?e.left+(e.right-e.left)/2-(g.right-g.left)/2:i=="start"==r?e.left-a:e.right-(g.right-g.left)+a)-g.left,x||A)if(y)d.scrollBy(x,A);else{let k=0,T=0;if(A){let L=f.scrollTop;f.scrollTop+=A/v,T=(f.scrollTop-L)*v}if(x){let L=f.scrollLeft;f.scrollLeft+=x/b,k=(f.scrollLeft-L)*b}e={left:e.left-k,top:e.top-T,right:e.right-k,bottom:e.bottom-T},k&&Math.abs(k-x)<1&&(i="nearest"),T&&Math.abs(T-A)<1&&(s="nearest")}if(y)break;(e.top<g.top||e.bottom>g.bottom||e.left<g.left||e.right>g.right)&&(e={left:Math.max(e.left,g.left),right:Math.min(e.right,g.right),top:Math.max(e.top,g.top),bottom:Math.min(e.bottom,g.bottom)}),f=f.assignedSlot||f.parentNode}else if(f.nodeType==11)f=f.host;else break}function hbe(t){let e=t.ownerDocument,n,i;for(let s=t.parentNode;s&&!(s==e.body||n&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),!n&&s.scrollWidth>s.clientWidth&&(n=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:n,y:i}}class fbe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:i}=e;this.set(n,Math.min(e.anchorOffset,n?Oo(n):0),i,Math.min(e.focusOffset,i?Oo(i):0))}set(e,n,i,s){this.anchorNode=e,this.anchorOffset=n,this.focusNode=i,this.focusOffset=s}}let gc=null;Ge.safari&&Ge.safari_version>=26&&(gc=!1);function Q6(t){if(t.setActive)return t.setActive();if(gc)return t.focus(gc);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(gc==null?{get preventScroll(){return gc={preventScroll:!0},!0}}:void 0),!gc){gc=!1;for(let n=0;n<e.length;){let i=e[n++],s=e[n++],a=e[n++];i.scrollTop!=s&&(i.scrollTop=s),i.scrollLeft!=a&&(i.scrollLeft=a)}}}let aj;function Hc(t,e,n=e){let i=aj||(aj=document.createRange());return i.setEnd(t,n),i.setStart(t,e),i}function yd(t,e,n,i){let s={key:e,code:e,keyCode:n,which:n,cancelable:!0};i&&({altKey:s.altKey,ctrlKey:s.ctrlKey,shiftKey:s.shiftKey,metaKey:s.metaKey}=i);let a=new KeyboardEvent("keydown",s);a.synthetic=!0,t.dispatchEvent(a);let o=new KeyboardEvent("keyup",s);return o.synthetic=!0,t.dispatchEvent(o),a.defaultPrevented||o.defaultPrevented}function mbe(t){for(;t;){if(t&&(t.nodeType==9||t.nodeType==11&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}function Y6(t){for(;t.attributes.length;)t.removeAttributeNode(t.attributes[0])}function pbe(t,e){let n=e.focusNode,i=e.focusOffset;if(!n||e.anchorNode!=n||e.anchorOffset!=i)return!1;for(i=Math.min(i,Oo(n));;)if(i){if(n.nodeType!=1)return!1;let s=n.childNodes[i-1];s.contentEditable=="false"?i--:(n=s,i=Oo(n))}else{if(n==t)return!0;i=Kc(n),n=n.parentNode}}function J6(t){return t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function Z6(t,e){for(let n=t,i=e;;){if(n.nodeType==3&&i>0)return{node:n,offset:i};if(n.nodeType==1&&i>0){if(n.contentEditable=="false")return null;n=n.childNodes[i-1],i=Oo(n)}else if(n.parentNode&&!ny(n))i=Kc(n),n=n.parentNode;else return null}}function e8(t,e){for(let n=t,i=e;;){if(n.nodeType==3&&i<n.nodeValue.length)return{node:n,offset:i};if(n.nodeType==1&&i<n.childNodes.length){if(n.contentEditable=="false")return null;n=n.childNodes[i],i=0}else if(n.parentNode&&!ny(n))i=Kc(n)+1,n=n.parentNode;else return null}}class is{constructor(e,n,i=!0){this.node=e,this.offset=n,this.precise=i}static before(e,n){return new is(e.parentNode,Kc(e),n)}static after(e,n){return new is(e.parentNode,Kc(e)+1,n)}}const Wk=[];class Mn{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let n=this.posAtStart;for(let i of this.children){if(i==e)return n;n+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,n){if(this.flags&2){let i=this.dom,s=null,a;for(let o of this.children){if(o.flags&7){if(!o.dom&&(a=s?s.nextSibling:i.firstChild)){let r=Mn.get(a);(!r||!r.parent&&r.canReuseDOM(o))&&o.reuseDOM(a)}o.sync(e,n),o.flags&=-8}if(a=s?s.nextSibling:i.firstChild,n&&!n.written&&n.node==i&&a!=o.dom&&(n.written=!0),o.dom.parentNode==i)for(;a&&a!=o.dom;)a=oj(a);else i.insertBefore(o.dom,a);s=o.dom}for(a=s?s.nextSibling:i.firstChild,a&&n&&n.node==i&&(n.written=!0);a;)a=oj(a)}else if(this.flags&1)for(let i of this.children)i.flags&7&&(i.sync(e,n),i.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,n){let i;if(e==this.dom)i=this.dom.childNodes[n];else{let s=Oo(e)==0?0:n==0?-1:1;for(;;){let a=e.parentNode;if(a==this.dom)break;s==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?s=-1:s=1),e=a}s<0?i=e:i=e.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!Mn.get(i);)i=i.nextSibling;if(!i)return this.length;for(let s=0,a=0;;s++){let o=this.children[s];if(o.dom==i)return a;a+=o.length+o.breakAfter}}domBoundsAround(e,n,i=0){let s=-1,a=-1,o=-1,r=-1;for(let c=0,d=i,f=i;c<this.children.length;c++){let m=this.children[c],g=d+m.length;if(d<e&&g>n)return m.domBoundsAround(e,n,d);if(g>=e&&s==-1&&(s=c,a=d),d>n&&m.dom.parentNode==this.dom){o=c,r=f;break}f=g,d=g+m.breakAfter}return{from:a,to:r<0?i+this.length:r,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o<this.children.length&&o>=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let n=this.parent;n;n=n.parent){if(e&&(n.flags|=2),n.flags&1)return;n.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let n=e.parent;if(!n)return e;e=n}}replaceChildren(e,n,i=Wk){this.markDirty();for(let s=e;s<n;s++){let a=this.children[s];a.parent==this&&i.indexOf(a)<0&&a.destroy()}i.length<250?this.children.splice(e,n-e,...i):this.children=[].concat(this.children.slice(0,e),i,this.children.slice(n));for(let s=0;s<i.length;s++)i[s].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new t8(this.children,e,this.children.length)}childPos(e,n=1){return this.childCursor().findPos(e,n)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,n,i,s,a,o){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}}Mn.prototype.breakAfter=0;function oj(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class t8{constructor(e,n,i){this.children=e,this.pos=n,this.i=i,this.off=0}findPos(e,n=1){for(;;){if(e>this.pos||e==this.pos&&(n>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function n8(t,e,n,i,s,a,o,r,c){let{children:d}=t,f=d.length?d[e]:null,m=a.length?a[a.length-1]:null,g=m?m.breakAfter:o;if(!(e==i&&f&&!o&&!g&&a.length<2&&f.merge(n,s,a.length?m:null,n==0,r,c))){if(i<d.length){let y=d[i];y&&(s<y.length||y.breakAfter&&m?.breakAfter)?(e==i&&(y=y.split(s),s=0),!g&&m&&y.merge(0,s,m,!0,0,c)?a[a.length-1]=y:((s||y.children.length&&!y.children[0].length)&&y.merge(0,s,null,!1,0,c),a.push(y))):y?.breakAfter&&(m?m.breakAfter=1:o=1),i++}for(f&&(f.breakAfter=o,n>0&&(!o&&a.length&&f.merge(n,f.length,a[0],!1,r,0)?f.breakAfter=a.shift().breakAfter:(n<f.length||f.children.length&&f.children[f.children.length-1].length==0)&&f.merge(n,f.length,null,!1,r,0),e++));e<i&&a.length;)if(d[i-1].become(a[a.length-1]))i--,a.pop(),c=a.length?0:r;else if(d[e].become(a[0]))e++,a.shift(),r=a.length?0:c;else break;!a.length&&e&&i<d.length&&!d[e-1].breakAfter&&d[i].merge(0,0,d[e-1],!1,r,c)&&e--,(e<i||a.length)&&t.replaceChildren(e,i,a)}}function i8(t,e,n,i,s,a){let o=t.childCursor(),{i:r,off:c}=o.findPos(n,1),{i:d,off:f}=o.findPos(e,-1),m=e-n;for(let g of i)m+=g.length;t.length+=m,n8(t,d,f,r,c,i,0,s,a)}const gbe=256;class Xa extends Mn{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,n){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(n&&n.node==this.dom&&(n.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,n,i){return this.flags&8||i&&(!(i instanceof Xa)||this.length-(n-e)+i.length>gbe||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(n),this.markDirty(),!0)}split(e){let n=new Xa(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),n.flags|=this.flags&8,n}localPosFromDOM(e,n){return e==this.dom?n:n?this.text.length:0}domAtPos(e){return new is(this.dom,e)}domBoundsAround(e,n,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,n){return _be(this.dom,e,n)}}class Or extends Mn{constructor(e,n=[],i=0){super(),this.mark=e,this.children=n,this.length=i;for(let s of n)s.setParent(this)}setAttrs(e){if(Y6(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let n in this.mark.attrs)e.setAttribute(n,this.mark.attrs[n]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,n){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,n)}merge(e,n,i,s,a,o){return i&&(!(i instanceof Or&&i.mark.eq(this.mark))||e&&a<=0||n<this.length&&o<=0)?!1:(i8(this,e,n,i?i.children.slice():[],a-1,o-1),this.markDirty(),!0)}split(e){let n=[],i=0,s=-1,a=0;for(let r of this.children){let c=i+r.length;c>e&&n.push(i<e?r.split(e-i):r),s<0&&i>=e&&(s=a),i=c,a++}let o=this.length-e;return this.length=e,s>-1&&(this.children.length=s,this.markDirty()),new Or(this.mark,n,o)}domAtPos(e){return s8(this,e)}coordsAt(e,n){return o8(this,e,n)}}function _be(t,e,n){let i=t.nodeValue.length;e>i&&(e=i);let s=e,a=e,o=0;e==0&&n<0||e==i&&n>=0?Ge.chrome||Ge.gecko||(e?(s--,o=1):a<i&&(a++,o=-1)):n<0?s--:a<i&&a++;let r=Hc(t,s,a).getClientRects();if(!r.length)return null;let c=r[(o?o<0:n>=0)?0:r.length-1];return Ge.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(r,d=>d.width)||c),o?yp(c,o<0):c||null}class kr extends Mn{static create(e,n,i){return new kr(e,n,i)}constructor(e,n,i){super(),this.widget=e,this.length=n,this.side=i,this.prevWidget=null}split(e){let n=kr.create(this.widget,this.length-e,this.side);return this.length-=e,n}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,n,i,s,a,o){return i&&(!(i instanceof kr)||!this.widget.compare(i.widget)||e>0&&a<=0||n<this.length&&o<=0)?!1:(this.length=e+(i?i.length:0)+(this.length-n),!0)}become(e){return e instanceof kr&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return un.empty;let e=this;for(;e.parent;)e=e.parent;let{view:n}=e,i=n&&n.state.doc,s=this.posAtStart;return i?i.slice(s,s+this.length):un.empty}domAtPos(e){return(this.length?e==0:this.side>0)?is.before(this.dom):is.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,n){let i=this.widget.coordsAt(this.dom,e,n);if(i)return i;let s=this.dom.getClientRects(),a=null;if(!s.length)return null;let o=this.side?this.side<0:e>0;for(let r=o?s.length-1:0;a=s[r],!(e>0?r==0:r==s.length-1||a.top<a.bottom);r+=o?-1:1);return yp(a,!o)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class Rd extends Mn{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof Rd&&e.side==this.side}split(){return new Rd(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?is.before(this.dom):is.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return un.empty}get isHidden(){return!0}}Xa.prototype.children=kr.prototype.children=Rd.prototype.children=Wk;function s8(t,e){let n=t.dom,{children:i}=t,s=0;for(let a=0;s<i.length;s++){let o=i[s],r=a+o.length;if(!(r==a&&o.getSide()<=0)){if(e>a&&e<r&&o.dom.parentNode==n)return o.domAtPos(e-a);if(e<=a)break;a=r}}for(let a=s;a>0;a--){let o=i[a-1];if(o.dom.parentNode==n)return o.domAtPos(o.length)}for(let a=s;a<i.length;a++){let o=i[a];if(o.dom.parentNode==n)return o.domAtPos(0)}return new is(n,0)}function a8(t,e,n){let i,{children:s}=t;n>0&&e instanceof Or&&s.length&&(i=s[s.length-1])instanceof Or&&i.mark.eq(e.mark)?a8(i,e.children[0],n-1):(s.push(e),e.setParent(t)),t.length+=e.length}function o8(t,e,n){let i=null,s=-1,a=null,o=-1;function r(d,f){for(let m=0,g=0;m<d.children.length&&g<=f;m++){let y=d.children[m],b=g+y.length;b>=f&&(y.children.length?r(y,f-g):(!a||a.isHidden&&(n>0||bbe(a,y)))&&(b>f||g==b&&y.getSide()>0)?(a=y,o=f-g):(g<f||g==b&&y.getSide()<0&&!y.isHidden)&&(i=y,s=f-g)),g=b}}r(t,e);let c=(n<0?i:a)||i||a;return c?c.coordsAt(Math.max(0,c==i?s:o),n):ybe(t)}function ybe(t){let e=t.dom.lastChild;if(!e)return t.dom.getBoundingClientRect();let n=jd(e);return n[n.length-1]||null}function bbe(t,e){let n=t.coordsAt(0,1),i=e.coordsAt(0,1);return n&&i&&i.top<n.bottom}function HS(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const rj=Object.create(null);function iy(t,e,n){if(t==e)return!0;t||(t=rj),e||(e=rj);let i=Object.keys(t),s=Object.keys(e);if(i.length-(n&&i.indexOf(n)>-1?1:0)!=s.length-(n&&s.indexOf(n)>-1?1:0))return!1;for(let a of i)if(a!=n&&(s.indexOf(a)==-1||t[a]!==e[a]))return!1;return!0}function VS(t,e,n){let i=!1;if(e)for(let s in e)n&&s in n||(i=!0,s=="style"?t.style.cssText="":t.removeAttribute(s));if(n)for(let s in n)e&&e[s]==n[s]||(i=!0,s=="style"?t.style.cssText=n[s]:t.setAttribute(s,n[s]));return i}function vbe(t){let e=Object.create(null);for(let n=0;n<t.attributes.length;n++){let i=t.attributes[n];e[i.name]=i.value}return e}class Rr{eq(e){return!1}updateDOM(e,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,n,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var vs=(function(t){return t[t.Text=0]="Text",t[t.WidgetBefore=1]="WidgetBefore",t[t.WidgetAfter=2]="WidgetAfter",t[t.WidgetRange=3]="WidgetRange",t})(vs||(vs={}));class vt extends qc{constructor(e,n,i,s){super(),this.startSide=e,this.endSide=n,this.widget=i,this.spec=s}get heightRelevant(){return!1}static mark(e){return new bp(e)}static widget(e){let n=Math.max(-1e4,Math.min(1e4,e.side||0)),i=!!e.block;return n+=i&&!e.inlineOrder?n>0?3e8:-4e8:n>0?1e8:-1e8,new jl(e,n,n,i,e.widget||null,!1)}static replace(e){let n=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:a,end:o}=r8(e,n);i=(a?n?-3e8:-1:5e8)-1,s=(o?n?2e8:1:-6e8)+1}return new jl(e,i,s,n,e.widget||null,!0)}static line(e){return new vp(e)}static set(e,n=!1){return fn.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}vt.none=fn.empty;class bp extends vt{constructor(e){let{start:n,end:i}=r8(e);super(n?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var n,i;return this==e||e instanceof bp&&this.tagName==e.tagName&&(this.class||((n=this.attrs)===null||n===void 0?void 0:n.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&iy(this.attrs,e.attrs,"class")}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}bp.prototype.point=!1;class vp extends vt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof vp&&this.spec.class==e.spec.class&&iy(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}vp.prototype.mapMode=ps.TrackBefore;vp.prototype.point=!0;class jl extends vt{constructor(e,n,i,s,a,o){super(n,i,a,e),this.block=s,this.isReplace=o,this.mapMode=s?n<=0?ps.TrackBefore:ps.TrackAfter:ps.TrackDel}get type(){return this.startSide!=this.endSide?vs.WidgetRange:this.startSide<=0?vs.WidgetBefore:vs.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof jl&&xbe(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}jl.prototype.point=!0;function r8(t,e=!1){let{inclusiveStart:n,inclusiveEnd:i}=t;return n==null&&(n=t.inclusive),i==null&&(i=t.inclusive),{start:n??e,end:i??e}}function xbe(t,e){return t==e||!!(t&&e&&t.compare(e))}function v0(t,e,n,i=0){let s=n.length-1;s>=0&&n[s]+i>=t?n[s]=Math.max(n[s],e):n.push(t,e)}class bi extends Mn{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,n,i,s,a,o){if(i){if(!(i instanceof bi))return!1;this.dom||i.transferDOM(this)}return s&&this.setDeco(i?i.attrs:null),i8(this,e,n,i?i.children.slice():[],a,o),!0}split(e){let n=new bi;if(n.breakAfter=this.breakAfter,this.length==0)return n;let{i,off:s}=this.childPos(e);s&&(n.append(this.children[i].split(s),0),this.children[i].merge(s,this.children[i].length,null,!1,0,0),i++);for(let a=i;a<this.children.length;a++)n.append(this.children[a],0);for(;i>0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,n}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){iy(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,n){a8(this,e,n)}addLineDeco(e){let n=e.spec.attributes,i=e.spec.class;n&&(this.attrs=HS(n,this.attrs||{})),i&&(this.attrs=HS({class:i},this.attrs||{}))}domAtPos(e){return s8(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,n){var i;this.dom?this.flags&4&&(Y6(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(VS(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,n);let s=this.dom.lastChild;for(;s&&Mn.get(s)instanceof Or;)s=s.lastChild;if(!s||!this.length||s.nodeName!="BR"&&((i=Mn.get(s))===null||i===void 0?void 0:i.isEditable)==!1&&(!Ge.ios||!this.children.some(a=>a instanceof Xa))){let a=document.createElement("BR");a.cmIgnore=!0,this.dom.appendChild(a)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,n;for(let i of this.children){if(!(i instanceof Xa)||/[^ -~]/.test(i.text))return null;let s=jd(i.dom);if(s.length!=1)return null;e+=s[0].width,n=s[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:n}:null}coordsAt(e,n){let i=o8(this,e,n);if(!this.children.length&&i&&this.parent){let{heightOracle:s}=this.parent.view.viewState,a=i.bottom-i.top;if(Math.abs(a-s.lineHeight)<2&&s.textHeight<a){let o=(a-s.textHeight)/2;return{top:i.top+o,bottom:i.bottom-o,left:i.left,right:i.left}}}return i}become(e){return e instanceof bi&&this.children.length==0&&e.children.length==0&&iy(this.attrs,e.attrs)&&this.breakAfter==e.breakAfter}covers(){return!0}static find(e,n){for(let i=0,s=0;i<e.children.length;i++){let a=e.children[i],o=s+a.length;if(o>=n){if(a instanceof bi)return a;if(o>n)break}s=o+a.breakAfter}return null}}class Nr extends Mn{constructor(e,n,i){super(),this.widget=e,this.length=n,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,n,i,s,a,o){return i&&(!(i instanceof Nr)||!this.widget.compare(i.widget)||e>0&&a<=0||n<this.length&&o<=0)?!1:(this.length=e+(i?i.length:0)+(this.length-n),!0)}domAtPos(e){return e==0?is.before(this.dom):is.after(this.dom,e==this.length)}split(e){let n=this.length-e;this.length=e;let i=new Nr(this.widget,n,this.deco);return i.breakAfter=this.breakAfter,i}get children(){return Wk}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):un.empty}domBoundsAround(){return null}become(e){return e instanceof Nr&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.deco=e.deco,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,n){let i=this.widget.coordsAt(this.dom,e,n);return i||(this.widget instanceof WS?null:yp(this.dom.getBoundingClientRect(),this.length?e==0:n<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(e){let{startSide:n,endSide:i}=this.deco;return n==i?!1:e<0?n<0:i>0}}class WS extends Rr{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class am{constructor(e,n,i,s){this.doc=e,this.pos=n,this.end=i,this.disallowBlockEffectsFor=s,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=n}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof Nr&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new bi),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(O_(new Rd(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof Nr)&&this.getLine()}buildText(e,n,i){for(;e>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:r,done:c}=this.cursor.next(this.skip);if(this.skip=0,c)throw new Error("Ran out of text content when drawing inline views");if(r){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=o,this.textOff=0}let s=Math.min(this.text.length-this.textOff,e),a=Math.min(s,512);this.flushBuffer(n.slice(n.length-i)),this.getLine().append(O_(new Xa(this.text.slice(this.textOff,this.textOff+a)),n),i),this.atCursorPos=!0,this.textOff+=a,e-=a,i=s<=a?0:n.length}}span(e,n,i,s){this.buildText(n-e,i,s),this.pos=n,this.openStart<0&&(this.openStart=s)}point(e,n,i,s,a,o){if(this.disallowBlockEffectsFor[o]&&i instanceof jl){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(n>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let r=n-e;if(i instanceof jl)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Nr(i.widget||Dd.block,r,i));else{let c=kr.create(i.widget||Dd.inline,r,r?0:i.startSide),d=this.atCursorPos&&!c.isEditable&&a<=s.length&&(e<n||i.startSide>0),f=!c.isEditable&&(e<n||a>s.length||i.startSide<=0),m=this.getLine();this.pendingBuffer==2&&!d&&!c.isEditable&&(this.pendingBuffer=0),this.flushBuffer(s),d&&(m.append(O_(new Rd(1),s),a),a=s.length+Math.max(0,a-s.length)),m.append(O_(c,s),a),this.atCursorPos=f,this.pendingBuffer=f?e<n||a>s.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=s.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);r&&(this.textOff+r<=this.text.length?this.textOff+=r:(this.skip+=r-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=n),this.openStart<0&&(this.openStart=a)}static build(e,n,i,s,a){let o=new am(e,n,i,a);return o.openEnd=fn.spans(s,n,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function O_(t,e){for(let n of e)t=new Or(n,[t],t.length);return t}class Dd extends Rr{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Dd.inline=new Dd("span");Dd.block=new Dd("div");var qn=(function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t})(qn||(qn={}));const Vc=qn.LTR,Gk=qn.RTL;function l8(t){let e=[];for(let n=0;n<t.length;n++)e.push(1<<+t[n]);return e}const Sbe=l8("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),wbe=l8("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),GS=Object.create(null),co=[];for(let t of["()","[]","{}"]){let e=t.charCodeAt(0),n=t.charCodeAt(1);GS[e]=n,GS[n]=-e}function c8(t){return t<=247?Sbe[t]:1424<=t&&t<=1524?2:1536<=t&&t<=1785?wbe[t-1536]:1774<=t&&t<=2220?4:8192<=t&&t<=8204?256:64336<=t&&t<=65023?4:1}const kbe=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class wl{get dir(){return this.level%2?Gk:Vc}constructor(e,n,i){this.from=e,this.to=n,this.level=i}side(e,n){return this.dir==n==e?this.to:this.from}forward(e,n){return e==(this.dir==n)}static find(e,n,i,s){let a=-1;for(let o=0;o<e.length;o++){let r=e[o];if(r.from<=n&&r.to>=n){if(r.level==i)return o;(a<0||(s!=0?s<0?r.from<n:r.to>n:e[a].level>r.level))&&(a=o)}}if(a<0)throw new RangeError("Index out of range");return a}}function u8(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++){let i=t[n],s=e[n];if(i.from!=s.from||i.to!=s.to||i.direction!=s.direction||!u8(i.inner,s.inner))return!1}return!0}const Pn=[];function Cbe(t,e,n,i,s){for(let a=0;a<=i.length;a++){let o=a?i[a-1].to:e,r=a<i.length?i[a].from:n,c=a?256:s;for(let d=o,f=c,m=c;d<r;d++){let g=c8(t.charCodeAt(d));g==512?g=f:g==8&&m==4&&(g=16),Pn[d]=g==4?2:g,g&7&&(m=g),f=g}for(let d=o,f=c,m=c;d<r;d++){let g=Pn[d];if(g==128)d<r-1&&f==Pn[d+1]&&f&24?g=Pn[d]=f:Pn[d]=256;else if(g==64){let y=d+1;for(;y<r&&Pn[y]==64;)y++;let b=d&&f==8||y<n&&Pn[y]==8?m==1?1:8:256;for(let v=d;v<y;v++)Pn[v]=b;d=y-1}else g==8&&m==1&&(Pn[d]=1);f=g,g&7&&(m=g)}}}function Abe(t,e,n,i,s){let a=s==1?2:1;for(let o=0,r=0,c=0;o<=i.length;o++){let d=o?i[o-1].to:e,f=o<i.length?i[o].from:n;for(let m=d,g,y,b;m<f;m++)if(y=GS[g=t.charCodeAt(m)])if(y<0){for(let v=r-3;v>=0;v-=3)if(co[v+1]==-y){let x=co[v+2],A=x&2?s:x&4?x&1?a:s:0;A&&(Pn[m]=Pn[co[v]]=A),r=v;break}}else{if(co.length==189)break;co[r++]=m,co[r++]=g,co[r++]=c}else if((b=Pn[m])==2||b==1){let v=b==s;c=v?0:1;for(let x=r-3;x>=0;x-=3){let A=co[x+2];if(A&2)break;if(v)co[x+2]|=2;else{if(A&4)break;co[x+2]|=4}}}}}function Nbe(t,e,n,i){for(let s=0,a=i;s<=n.length;s++){let o=s?n[s-1].to:t,r=s<n.length?n[s].from:e;for(let c=o;c<r;){let d=Pn[c];if(d==256){let f=c+1;for(;;)if(f==r){if(s==n.length)break;f=n[s++].to,r=s<n.length?n[s].from:e}else if(Pn[f]==256)f++;else break;let m=a==1,g=(f<e?Pn[f]:i)==1,y=m==g?m?1:2:i;for(let b=f,v=s,x=v?n[v-1].to:t;b>c;)b==x&&(b=n[--v].from,x=v?n[v-1].to:t),Pn[--b]=y;c=f}else a=d,c++}}}function $S(t,e,n,i,s,a,o){let r=i%2?2:1;if(i%2==s%2)for(let c=e,d=0;c<n;){let f=!0,m=!1;if(d==a.length||c<a[d].from){let v=Pn[c];v!=r&&(f=!1,m=v==16)}let g=!f&&r==1?[]:null,y=f?i:i+1,b=c;e:for(;;)if(d<a.length&&b==a[d].from){if(m)break e;let v=a[d];if(!f)for(let x=v.to,A=d+1;;){if(x==n)break e;if(A<a.length&&a[A].from==x)x=a[A++].to;else{if(Pn[x]==r)break e;break}}if(d++,g)g.push(v);else{v.from>c&&o.push(new wl(c,v.from,y));let x=v.direction==Vc!=!(y%2);XS(t,x?i+1:i,s,v.inner,v.from,v.to,o),c=v.to}b=v.to}else{if(b==n||(f?Pn[b]!=r:Pn[b]==r))break;b++}g?$S(t,c,b,i+1,s,g,o):c<b&&o.push(new wl(c,b,y)),c=b}else for(let c=n,d=a.length;c>e;){let f=!0,m=!1;if(!d||c>a[d-1].to){let v=Pn[c-1];v!=r&&(f=!1,m=v==16)}let g=!f&&r==1?[]:null,y=f?i:i+1,b=c;e:for(;;)if(d&&b==a[d-1].to){if(m)break e;let v=a[--d];if(!f)for(let x=v.from,A=d;;){if(x==e)break e;if(A&&a[A-1].to==x)x=a[--A].from;else{if(Pn[x-1]==r)break e;break}}if(g)g.push(v);else{v.to<c&&o.push(new wl(v.to,c,y));let x=v.direction==Vc!=!(y%2);XS(t,x?i+1:i,s,v.inner,v.from,v.to,o),c=v.from}b=v.from}else{if(b==e||(f?Pn[b-1]!=r:Pn[b-1]==r))break;b--}g?$S(t,b,c,i+1,s,g,o):b<c&&o.push(new wl(b,c,y)),c=b}}function XS(t,e,n,i,s,a,o){let r=e%2?2:1;Cbe(t,s,a,i,r),Abe(t,s,a,i,r),Nbe(s,a,i,r),$S(t,s,a,e,n,i,o)}function Tbe(t,e,n){if(!t)return[new wl(0,0,e==Gk?1:0)];if(e==Vc&&!n.length&&!kbe.test(t))return d8(t.length);if(n.length)for(;t.length>Pn.length;)Pn[Pn.length]=256;let i=[],s=e==Vc?0:1;return XS(t,s,s,n,0,t.length,i),i}function d8(t){return[new wl(0,t,0)]}let h8="";function Mbe(t,e,n,i,s){var a;let o=i.head-t.from,r=wl.find(e,o,(a=i.bidiLevel)!==null&&a!==void 0?a:-1,i.assoc),c=e[r],d=c.side(s,n);if(o==d){let g=r+=s?1:-1;if(g<0||g>=e.length)return null;c=e[r=g],o=c.side(!s,n),d=c.side(s,n)}let f=Wi(t.text,o,c.forward(s,n));(f<c.from||f>c.to)&&(f=d),h8=t.text.slice(Math.min(o,f),Math.max(o,f));let m=r==(s?e.length-1:0)?null:e[r+(s?1:-1)];return m&&f==d&&m.level+(s?0:1)<c.level?Pe.cursor(m.side(!s,n)+t.from,m.forward(s,n)?1:-1,m.level):Pe.cursor(f+t.from,c.forward(s,n)?-1:1,c.level)}function Lbe(t,e,n){for(let i=e;i<n;i++){let s=c8(t.charCodeAt(i));if(s==1)return Vc;if(s==2||s==4)return Gk}return Vc}const f8=Ze.define(),m8=Ze.define(),p8=Ze.define(),g8=Ze.define(),QS=Ze.define(),_8=Ze.define(),y8=Ze.define(),$k=Ze.define(),Xk=Ze.define(),b8=Ze.define({combine:t=>t.some(e=>e)}),v8=Ze.define({combine:t=>t.some(e=>e)}),x8=Ze.define();class bd{constructor(e,n="nearest",i="nearest",s=5,a=5,o=!1){this.range=e,this.y=n,this.x=i,this.yMargin=s,this.xMargin=a,this.isSnapshot=o}map(e){return e.empty?this:new bd(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new bd(Pe.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const P_=Ft.define({map:(t,e)=>t.map(e)}),S8=Ft.define();function Ds(t,e,n){let i=t.facet(g8);i.length?i[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const vr=Ze.define({combine:t=>t.length?t[0]:!0});let Obe=0;const od=Ze.define({combine(t){return t.filter((e,n)=>{for(let i=0;i<n;i++)if(t[i].plugin==e.plugin)return!1;return!0})}});class ci{constructor(e,n,i,s,a){this.id=e,this.create=n,this.domEventHandlers=i,this.domEventObservers=s,this.baseExtensions=a(this),this.extension=this.baseExtensions.concat(od.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(od.of({plugin:this,arg:e}))}static define(e,n){const{eventHandlers:i,eventObservers:s,provide:a,decorations:o}=n||{};return new ci(Obe++,e,i,s,r=>{let c=[];return o&&c.push(Mm.of(d=>{let f=d.plugin(r);return f?o(f):vt.none})),a&&c.push(a(r)),c})}static fromClass(e,n){return ci.define((i,s)=>new e(i,s),n)}}class $1{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(i){if(Ds(n.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){Ds(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(i){Ds(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const w8=Ze.define(),Qk=Ze.define(),Mm=Ze.define(),k8=Ze.define(),xp=Ze.define(),C8=Ze.define();function lj(t,e){let n=t.state.facet(C8);if(!n.length)return n;let i=n.map(a=>a instanceof Function?a(t):a),s=[];return fn.spans(i,e.from,e.to,{point(){},span(a,o,r,c){let d=a-e.from,f=o-e.from,m=s;for(let g=r.length-1;g>=0;g--,c--){let y=r[g].spec.bidiIsolate,b;if(y==null&&(y=Lbe(e.text,d,f)),c>0&&m.length&&(b=m[m.length-1]).to==d&&b.direction==y)b.to=f,m=b.inner;else{let v={from:d,to:f,direction:y,inner:[]};m.push(v),m=v.inner}}}}),s}const A8=Ze.define();function Yk(t){let e=0,n=0,i=0,s=0;for(let a of t.state.facet(A8)){let o=a(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:n,top:i,bottom:s}}const Rf=Ze.define();class ka{constructor(e,n,i,s){this.fromA=e,this.toA=n,this.fromB=i,this.toB=s}join(e){return new ka(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,i=this;for(;n>0;n--){let s=e[n-1];if(!(s.fromA>i.toA)){if(s.toA<i.fromA)break;i=i.join(s),e.splice(n-1,1)}}return e.splice(n,0,i),e}static extendWithRanges(e,n){if(n.length==0)return e;let i=[];for(let s=0,a=0,o=0,r=0;;s++){let c=s==e.length?null:e[s],d=o-r,f=c?c.fromB:1e9;for(;a<n.length&&n[a]<f;){let m=n[a],g=n[a+1],y=Math.max(r,m),b=Math.min(f,g);if(y<=b&&new ka(y+d,b+d,y,b).addToSet(i),g>f)break;a+=2}if(!c)return i;new ka(c.fromA,c.toA,c.fromB,c.toB).addToSet(i),o=c.toA,r=c.toB}}}class sy{constructor(e,n,i){this.view=e,this.state=n,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Ai.empty(this.startState.doc.length);for(let a of i)this.changes=this.changes.compose(a.changes);let s=[];this.changes.iterChangedRanges((a,o,r,c)=>s.push(new ka(a,o,r,c))),this.changedRanges=s}static create(e,n,i){return new sy(e,n,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}class cj extends Mn{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=vt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new bi],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ka(0,0,0,e.state.doc.length)],0,null)}update(e){var n;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:d,toA:f})=>f<this.minWidthFrom||d>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?s=this.domChanged.newSel.head:!Ibe(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let a=s>-1?Ebe(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:d,to:f}=this.hasComposition;i=new ka(d,f,e.changes.mapPos(d,-1),e.changes.mapPos(f,1)).addToSet(i.slice())}this.hasComposition=a?{from:a.range.fromB,to:a.range.toB}:null,(Ge.ie||Ge.chrome)&&!a&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,r=this.updateDeco(),c=Dbe(o,r,e.changes);return i=ka.extendWithRanges(i,c),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,a),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,n,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=Ge.chrome||Ge.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||s.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let a=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let o of this.children)o instanceof Nr&&o.widget instanceof WS&&a.push(o.dom);s.updateGaps(a)}updateChildren(e,n,i){let s=i?i.range.addToSet(e.slice()):e,a=this.childCursor(n);for(let o=s.length-1;;o--){let r=o>=0?s[o]:null;if(!r)break;let{fromA:c,toA:d,fromB:f,toB:m}=r,g,y,b,v;if(i&&i.range.fromB<m&&i.range.toB>f){let L=am.build(this.view.state.doc,f,i.range.fromB,this.decorations,this.dynamicDecorationMap),M=am.build(this.view.state.doc,i.range.toB,m,this.decorations,this.dynamicDecorationMap);y=L.breakAtStart,b=L.openStart,v=M.openEnd;let O=this.compositionView(i);M.breakAtStart?O.breakAfter=1:M.content.length&&O.merge(O.length,O.length,M.content[0],!1,M.openStart,0)&&(O.breakAfter=M.content[0].breakAfter,M.content.shift()),L.content.length&&O.merge(0,0,L.content[L.content.length-1],!0,0,L.openEnd)&&L.content.pop(),g=L.content.concat(O).concat(M.content)}else({content:g,breakAtStart:y,openStart:b,openEnd:v}=am.build(this.view.state.doc,f,m,this.decorations,this.dynamicDecorationMap));let{i:x,off:A}=a.findPos(d,1),{i:k,off:T}=a.findPos(c,-1);n8(this,k,T,x,A,g,y,b,v)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let n of e.transactions)for(let i of n.effects)i.is(S8)&&(this.editContextFormatting=i.value)}compositionView(e){let n=new Xa(e.text.nodeValue);n.flags|=8;for(let{deco:s}of e.marks)n=new Or(s,[n],n.length);let i=new bi;return i.append(n,0),i}fixCompositionDOM(e){let n=(a,o)=>{o.flags|=8|(o.children.some(c=>c.flags&7)?1:0),this.markedForComposition.add(o);let r=Mn.get(a);r&&r!=o&&(r.dom=null),o.setDOM(a)},i=this.childPos(e.range.fromB,1),s=this.children[i.i];n(e.line,s);for(let a=e.marks.length-1;a>=-1;a--)i=s.childPos(i.off,1),s=s.children[i.i],n(a>=0?e.marks[a].node:e.text,s)}updateSelection(e=!1,n=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,s=i==this.dom,a=!s&&!(this.view.state.facet(vr)||this.dom.tabIndex>-1)&&b0(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(s||n||a))return;let o=this.forceSelection;this.forceSelection=!1;let r=this.view.state.selection.main,c=this.moveToLine(this.domAtPos(r.anchor)),d=r.empty?c:this.moveToLine(this.domAtPos(r.head));if(Ge.gecko&&r.empty&&!this.hasComposition&&Pbe(c)){let m=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(m,c.node.childNodes[c.offset]||null)),c=d=new is(m,0),o=!0}let f=this.view.observer.selectionRange;(o||!f.focusNode||(!sm(c.node,c.offset,f.anchorNode,f.anchorOffset)||!sm(d.node,d.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,r))&&(this.view.observer.ignore(()=>{Ge.android&&Ge.chrome&&this.dom.contains(f.focusNode)&&Fbe(f.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let m=Tm(this.view.root);if(m)if(r.empty){if(Ge.gecko){let g=jbe(c.node,c.offset);if(g&&g!=3){let y=(g==1?Z6:e8)(c.node,c.offset);y&&(c=new is(y.node,y.offset))}}m.collapse(c.node,c.offset),r.bidiLevel!=null&&m.caretBidiLevel!==void 0&&(m.caretBidiLevel=r.bidiLevel)}else if(m.extend){m.collapse(c.node,c.offset);try{m.extend(d.node,d.offset)}catch{}}else{let g=document.createRange();r.anchor>r.head&&([c,d]=[d,c]),g.setEnd(d.node,d.offset),g.setStart(c.node,c.offset),m.removeAllRanges(),m.addRange(g)}a&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(c,d)),this.impreciseAnchor=c.precise?null:new is(f.anchorNode,f.anchorOffset),this.impreciseHead=d.precise?null:new is(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&sm(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,i=Tm(e.root),{anchorNode:s,anchorOffset:a}=e.observer.selectionRange;if(!i||!n.empty||!n.assoc||!i.modify)return;let o=bi.find(this,n.head);if(!o)return;let r=o.posAtStart;if(n.head==r||n.head==r+o.length)return;let c=this.coordsAt(n.head,-1),d=this.coordsAt(n.head,1);if(!c||!d||c.bottom>d.top)return;let f=this.domAtPos(n.head+n.assoc);i.collapse(f.node,f.offset),i.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let m=e.observer.selectionRange;e.docView.posFromDOM(m.anchorNode,m.anchorOffset)!=n.from&&i.collapse(s,a)}moveToLine(e){let n=this.dom,i;if(e.node!=n)return e;for(let s=e.offset;!i&&s<n.childNodes.length;s++){let a=Mn.get(n.childNodes[s]);a instanceof bi&&(i=a.domAtPos(0))}for(let s=e.offset-1;!i&&s>=0;s--){let a=Mn.get(n.childNodes[s]);a instanceof bi&&(i=a.domAtPos(a.length))}return i?new is(i.node,i.offset,!0):e}nearest(e){for(let n=e;n;){let i=Mn.get(n);if(i&&i.rootView==this)return i;n=n.parentNode}return null}posFromDOM(e,n){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,n)+i.posAtStart}domAtPos(e){let{i:n,off:i}=this.childCursor().findPos(e,-1);for(;n<this.children.length-1;){let s=this.children[n];if(i<s.length||s instanceof bi)break;n++,i=0}return this.children[n].domAtPos(i)}coordsAt(e,n){let i=null,s=0;for(let a=this.length,o=this.children.length-1;o>=0;o--){let r=this.children[o],c=a-r.breakAfter,d=c-r.length;if(c<e)break;if(d<=e&&(d<e||r.covers(-1))&&(c>e||r.covers(1))&&(!i||r instanceof bi&&!(i instanceof bi&&n>=0)))i=r,s=d;else if(i&&d==e&&c==e&&r instanceof Nr&&Math.abs(n)<2){if(r.deco.startSide<0)break;o&&(i=null)}a=d}return i?i.coordsAt(e-s,n):null}coordsForChar(e){let{i:n,off:i}=this.childPos(e,1),s=this.children[n];if(!(s instanceof bi))return null;for(;s.children.length;){let{i:r,off:c}=s.childPos(i,1);for(;;r++){if(r==s.children.length)return null;if((s=s.children[r]).length)break}i=c}if(!(s instanceof Xa))return null;let a=Wi(s.text,i);if(a==i)return null;let o=Hc(s.dom,i,a).getClientRects();for(let r=0;r<o.length;r++){let c=o[r];if(r==o.length-1||c.top<c.bottom&&c.left<c.right)return c}return null}measureVisibleLineHeights(e){let n=[],{from:i,to:s}=e,a=this.view.contentDOM.clientWidth,o=a>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,r=-1,c=this.view.textDirection==qn.LTR;for(let d=0,f=0;f<this.children.length;f++){let m=this.children[f],g=d+m.length;if(g>s)break;if(d>=i){let y=m.dom.getBoundingClientRect();if(n.push(y.height),o){let b=m.dom.lastChild,v=b?jd(b):[];if(v.length){let x=v[v.length-1],A=c?x.right-y.left:y.right-x.left;A>r&&(r=A,this.minWidth=a,this.minWidthFrom=d,this.minWidthTo=g)}}}d=g+m.breakAfter}return n}textDirectionAt(e){let{i:n}=this.childPos(e,1);return getComputedStyle(this.children[n].dom).direction=="rtl"?qn.RTL:qn.LTR}measureTextSize(){for(let a of this.children)if(a instanceof bi){let o=a.measureTextSize();if(o)return o}let e=document.createElement("div"),n,i,s;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let a=jd(e.firstChild)[0];n=e.getBoundingClientRect().height,i=a?a.width/27:7,s=a?a.height:n,e.remove()}),{lineHeight:n,charWidth:i,textHeight:s}}childCursor(e=this.length){let n=this.children.length;return n&&(e-=this.children[--n].length),new t8(this.children,e,n)}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let i=0,s=0;;s++){let a=s==n.viewports.length?null:n.viewports[s],o=a?a.from-1:this.length;if(o>i){let r=(n.lineBlockAt(o).bottom-n.lineBlockAt(i).top)/this.view.scaleY;e.push(vt.replace({widget:new WS(r),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!a)break;i=a.to+1}return vt.set(e)}updateDeco(){let e=1,n=this.view.state.facet(Mm).map(a=>(this.dynamicDecorationMap[e++]=typeof a=="function")?a(this.view):a),i=!1,s=this.view.state.facet(k8).map((a,o)=>{let r=typeof a=="function";return r&&(i=!0),r?a(this.view):a});for(s.length&&(this.dynamicDecorationMap[e++]=i,n.push(fn.join(s))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;return this.decorations}scrollIntoView(e){if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(x8))try{if(d(this.view,e.range,e))return!0}catch(f){Ds(this.view.state,f,"scroll handler")}let{range:n}=e,i=this.coordsAt(n.head,n.empty?n.assoc:n.head>n.anchor?-1:1),s;if(!i)return;!n.empty&&(s=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let a=Yk(this.view),o={left:i.left-a.left,top:i.top-a.top,right:i.right+a.right,bottom:i.bottom+a.bottom},{offsetWidth:r,offsetHeight:c}=this.view.scrollDOM;dbe(this.view.scrollDOM,o,n.head<n.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,r),-r),Math.max(Math.min(e.yMargin,c),-c),this.view.textDirection==qn.LTR)}lineHasWidget(e){let{i:n}=this.childCursor().findPos(e);if(n==this.children.length)return!1;let i=s=>s instanceof kr||s.children.some(i);return i(this.children[n])}}function Pbe(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function N8(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let i=Z6(n.focusNode,n.focusOffset),s=e8(n.focusNode,n.focusOffset),a=i||s;if(s&&i&&s.node!=i.node){let r=Mn.get(s.node);if(!r||r instanceof Xa&&r.text!=s.node.nodeValue)a=s;else if(t.docView.lastCompositionAfterCursor){let c=Mn.get(i.node);!c||c instanceof Xa&&c.text!=i.node.nodeValue||(a=s)}}if(t.docView.lastCompositionAfterCursor=a!=i,!a)return null;let o=e-a.offset;return{from:o,to:o+a.node.nodeValue.length,node:a.node}}function Ebe(t,e,n){let i=N8(t,n);if(!i)return null;let{node:s,from:a,to:o}=i,r=s.nodeValue;if(/[\n\r]/.test(r)||t.state.doc.sliceString(i.from,i.to)!=r)return null;let c=e.invertedDesc,d=new ka(c.mapPos(a),c.mapPos(o),a,o),f=[];for(let m=s.parentNode;;m=m.parentNode){let g=Mn.get(m);if(g instanceof Or)f.push({node:m,deco:g.mark});else{if(g instanceof bi||m.nodeName=="DIV"&&m.parentNode==t.contentDOM)return{range:d,text:s,marks:f,line:m};if(m!=t.contentDOM)f.push({node:m,deco:new bp({inclusive:!0,attributes:vbe(m),tagName:m.tagName.toLowerCase()})});else return null}}}function jbe(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e<t.childNodes.length&&t.childNodes[e].contentEditable=="false"?2:0)}let Rbe=class{constructor(){this.changes=[]}compareRange(e,n){v0(e,n,this.changes)}comparePoint(e,n){v0(e,n,this.changes)}boundChange(e){v0(e,e,this.changes)}};function Dbe(t,e,n){let i=new Rbe;return fn.compare(t,e,n,i),i.changes}function Fbe(t,e){for(let n=t;n&&n!=e;n=n.assignedSlot||n.parentNode)if(n.nodeType==1&&n.contentEditable=="false")return!0;return!1}function Ibe(t,e){let n=!1;return e&&t.iterChangedRanges((i,s)=>{i<e.to&&s>e.from&&(n=!0)}),n}function Ube(t,e,n=1){let i=t.charCategorizer(e),s=t.doc.lineAt(e),a=e-s.from;if(s.length==0)return Pe.cursor(e);a==0?n=1:a==s.length&&(n=-1);let o=a,r=a;n<0?o=Wi(s.text,a,!1):r=Wi(s.text,a);let c=i(s.text.slice(o,r));for(;o>0;){let d=Wi(s.text,o,!1);if(i(s.text.slice(d,o))!=c)break;o=d}for(;r<s.length;){let d=Wi(s.text,r);if(i(s.text.slice(r,d))!=c)break;r=d}return Pe.range(o+s.from,r+s.from)}function Bbe(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function zbe(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function X1(t,e){return t.top<e.bottom-1&&t.bottom>e.top+1}function uj(t,e){return e<t.top?{top:e,left:t.left,right:t.right,bottom:t.bottom}:t}function dj(t,e){return e>t.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function YS(t,e,n){let i,s,a,o,r=!1,c,d,f,m;for(let b=t.firstChild;b;b=b.nextSibling){let v=jd(b);for(let x=0;x<v.length;x++){let A=v[x];s&&X1(s,A)&&(A=uj(dj(A,s.bottom),s.top));let k=Bbe(e,A),T=zbe(n,A);if(k==0&&T==0)return b.nodeType==3?hj(b,e,n):YS(b,e,n);(!i||o>T||o==T&&a>k)&&(i=b,s=A,a=k,o=T,r=k?e<A.left?x>0:x<v.length-1:!0),k==0?n>A.bottom&&(!f||f.bottom<A.bottom)?(c=b,f=A):n<A.top&&(!m||m.top>A.top)&&(d=b,m=A):f&&X1(f,A)?f=dj(f,A.bottom):m&&X1(m,A)&&(m=uj(m,A.top))}}if(f&&f.bottom>=n?(i=c,s=f):m&&m.top<=n&&(i=d,s=m),!i)return{node:t,offset:0};let g=Math.max(s.left,Math.min(s.right,e));if(i.nodeType==3)return hj(i,g,n);if(r&&i.contentEditable!="false")return YS(i,g,n);let y=Array.prototype.indexOf.call(t.childNodes,i)+(e>=(s.left+s.right)/2?1:0);return{node:t,offset:y}}function hj(t,e,n){let i=t.nodeValue.length,s=-1,a=1e9,o=0;for(let r=0;r<i;r++){let c=Hc(t,r,r+1).getClientRects();for(let d=0;d<c.length;d++){let f=c[d];if(f.top==f.bottom)continue;o||(o=e-f.left);let m=(f.top>n?f.top-n:n-f.bottom)-1;if(f.left-1<=e&&f.right+1>=e&&m<a){let g=e>=(f.left+f.right)/2,y=g;if(Ge.chrome||Ge.gecko){let b=Hc(t,r).getBoundingClientRect();Math.abs(b.left-f.right)<.1&&(y=!g)}if(m<=0)return{node:t,offset:r+(y?1:0)};s=r+(y?1:0),a=m}}}return{node:t,offset:s>-1?s:o>0?t.nodeValue.length:0}}function T8(t,e,n,i=-1){var s,a;let o=t.contentDOM.getBoundingClientRect(),r=o.top+t.viewState.paddingTop,c,{docHeight:d}=t.viewState,{x:f,y:m}=e,g=m-r;if(g<0)return 0;if(g>d)return t.state.doc.length;for(let L=t.viewState.heightOracle.textHeight/2,M=!1;c=t.elementAtHeight(g),c.type!=vs.Text;)for(;g=i>0?c.bottom+L:c.top-L,!(g>=0&&g<=d);){if(M)return n?null:0;M=!0,i=-i}m=r+g;let y=c.from;if(y<t.viewport.from)return t.viewport.from==0?0:n?null:fj(t,o,c,f,m);if(y>t.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:n?null:fj(t,o,c,f,m);let b=t.dom.ownerDocument,v=t.root.elementFromPoint?t.root:b,x=v.elementFromPoint(f,m);x&&!t.contentDOM.contains(x)&&(x=null),x||(f=Math.max(o.left+1,Math.min(o.right-1,f)),x=v.elementFromPoint(f,m),x&&!t.contentDOM.contains(x)&&(x=null));let A,k=-1;if(x&&((s=t.docView.nearest(x))===null||s===void 0?void 0:s.isEditable)!=!1){if(b.caretPositionFromPoint){let L=b.caretPositionFromPoint(f,m);L&&({offsetNode:A,offset:k}=L)}else if(b.caretRangeFromPoint){let L=b.caretRangeFromPoint(f,m);L&&({startContainer:A,startOffset:k}=L)}A&&(!t.contentDOM.contains(A)||Ge.safari&&qbe(A,k,f)||Ge.chrome&&Kbe(A,k,f))&&(A=void 0),A&&(k=Math.min(Oo(A),k))}if(!A||!t.docView.dom.contains(A)){let L=bi.find(t.docView,y);if(!L)return g>c.top+c.height/2?c.to:c.from;({node:A,offset:k}=YS(L.dom,f,m))}let T=t.docView.nearest(A);if(!T)return null;if(T.isWidget&&((a=T.dom)===null||a===void 0?void 0:a.nodeType)==1){let L=T.dom.getBoundingClientRect();return e.y<L.top||e.y<=L.bottom&&e.x<=(L.left+L.right)/2?T.posAtStart:T.posAtEnd}else return T.localPosFromDOM(A,k)+T.posAtStart}function fj(t,e,n,i,s){let a=Math.round((i-e.left)*t.defaultCharacterWidth);if(t.lineWrapping&&n.height>t.defaultLineHeight*1.5){let r=t.viewState.heightOracle.textHeight,c=Math.floor((s-n.top-(t.defaultLineHeight-r)*.5)/r);a+=c*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(n.from,n.to);return n.from+DS(o,a,t.state.tabSize)}function M8(t,e,n){let i,s=t;if(t.nodeType!=3||e!=(i=t.nodeValue.length))return!1;for(;;){let a=s.nextSibling;if(a){if(a.nodeName=="BR")break;return!1}else{let o=s.parentNode;if(!o||o.nodeName=="DIV")break;s=o}}return Hc(t,i-1,i).getBoundingClientRect().right>n}function qbe(t,e,n){return M8(t,e,n)}function Kbe(t,e,n){if(e!=0)return M8(t,e,n);for(let s=t;;){let a=s.parentNode;if(!a||a.nodeType!=1||a.firstChild!=s)return!1;if(a.classList.contains("cm-line"))break;s=a}let i=t.nodeType==1?t.getBoundingClientRect():Hc(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return n-i.left>5}function JS(t,e,n){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let s;for(let a of i.type){if(a.from>e)break;if(!(a.to<e)){if(a.from<e&&a.to>e)return a;(!s||a.type==vs.Text&&(s.type!=a.type||(n<0?a.from<e:a.to>e)))&&(s=a)}}return s||i}return i}function Hbe(t,e,n,i){let s=JS(t,e.head,e.assoc||-1),a=!i||s.type!=vs.Text||!(t.lineWrapping||s.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(a){let o=t.dom.getBoundingClientRect(),r=t.textDirectionAt(s.from),c=t.posAtCoords({x:n==(r==qn.LTR)?o.right-1:o.left+1,y:(a.top+a.bottom)/2});if(c!=null)return Pe.cursor(c,n?-1:1)}return Pe.cursor(n?s.to:s.from,n?-1:1)}function mj(t,e,n,i){let s=t.state.doc.lineAt(e.head),a=t.bidiSpans(s),o=t.textDirectionAt(s.from);for(let r=e,c=null;;){let d=Mbe(s,a,o,r,n),f=h8;if(!d){if(s.number==(n?t.state.doc.lines:1))return r;f=`
|
||
`,s=t.state.doc.line(s.number+(n?1:-1)),a=t.bidiSpans(s),d=t.visualLineSide(s,!n)}if(c){if(!c(f))return r}else{if(!i)return d;c=i(f)}r=d}}function Vbe(t,e,n){let i=t.state.charCategorizer(e),s=i(n);return a=>{let o=i(a);return s==Gn.Space&&(s=o),s==o}}function Wbe(t,e,n,i){let s=e.head,a=n?1:-1;if(s==(n?t.state.doc.length:0))return Pe.cursor(s,e.assoc);let o=e.goalColumn,r,c=t.contentDOM.getBoundingClientRect(),d=t.coordsAtPos(s,e.assoc||-1),f=t.documentTop;if(d)o==null&&(o=d.left-c.left),r=a<0?d.top:d.bottom;else{let y=t.viewState.lineBlockAt(s);o==null&&(o=Math.min(c.right-c.left,t.defaultCharacterWidth*(s-y.from))),r=(a<0?y.top:y.bottom)+f}let m=c.left+o,g=i??t.viewState.heightOracle.textHeight>>1;for(let y=0;;y+=10){let b=r+(g+y)*a,v=T8(t,{x:m,y:b},!1,a);if(b<c.top||b>c.bottom||(a<0?v<s:v>s)){let x=t.docView.coordsForChar(v),A=!x||b<x.top?-1:1;return Pe.cursor(v,A,void 0,o)}}}function om(t,e,n){for(;;){let i=0;for(let s of t)s.between(e-1,e+1,(a,o,r)=>{if(e>a&&e<o){let c=i||n||(e-a<o-e?-1:1);e=c<0?a:o,i=c}});if(!i)return e}}function L8(t,e){let n=null;for(let i=0;i<e.ranges.length;i++){let s=e.ranges[i],a=null;if(s.empty){let o=om(t,s.from,0);o!=s.from&&(a=Pe.cursor(o,-1))}else{let o=om(t,s.from,-1),r=om(t,s.to,1);(o!=s.from||r!=s.to)&&(a=Pe.range(s.from==s.anchor?o:r,s.from==s.head?o:r))}a&&(n||(n=e.ranges.slice()),n[i]=a)}return n?Pe.create(n,e.mainIndex):e}function Q1(t,e,n){let i=om(t.state.facet(xp).map(s=>s(t)),n.from,e.head>n.from?-1:1);return i==n.from?n:Pe.cursor(i,i<n.from?1:-1)}const Df="";class Gbe{constructor(e,n){this.points=e,this.text="",this.lineSeparator=n.facet(ln.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Df}readRange(e,n){if(!e)return this;let i=e.parentNode;for(let s=e;;){this.findPointBefore(i,s);let a=this.text.length;this.readNode(s);let o=s.nextSibling;if(o==n)break;let r=Mn.get(s),c=Mn.get(o);(r&&c?r.breakAfter:(r?r.breakAfter:ny(s))||ny(o)&&(s.nodeName!="BR"||s.cmIgnore)&&this.text.length>a)&&!Xbe(o,n)&&this.lineBreak(),s=o}return this.findPointBefore(i,n),this}readTextNode(e){let n=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,n.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let a=-1,o=1,r;if(this.lineSeparator?(a=n.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=s.exec(n))&&(a=r.index,o=r[0].length),this.append(n.slice(i,a<0?n.length:a)),a<0)break;if(this.lineBreak(),o>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=o-1);i=a+o}}readNode(e){if(e.cmIgnore)return;let n=Mn.get(e),i=n&&n.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==n&&(i.pos=this.text.length)}findPointInside(e,n){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+($be(e,i.node,i.offset)?n:0))}}function $be(t,e,n){for(;;){if(!e||n<Oo(e))return!1;if(e==t)return!0;n=Kc(e)+1,e=e.parentNode}}function Xbe(t,e){let n;for(;!(t==e||!t);t=t.nextSibling){let i=Mn.get(t);if(!(i?.isWidget||t.cmIgnore))return!1;i&&(n||(n=[])).push(i)}if(n)for(let i of n){let s=i.overrideDOMText;if(s?.length)return!1}return!0}class pj{constructor(e,n){this.node=e,this.offset=n,this.pos=-1}}class Qbe{constructor(e,n,i,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=n>-1;let{impreciseHead:a,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=e.docView.domBoundsAround(n,i,0))){let r=a||o?[]:Jbe(e),c=new Gbe(r,e.state);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=Zbe(r,this.bounds.from)}else{let r=e.observer.selectionRange,c=a&&a.node==r.focusNode&&a.offset==r.focusOffset||!KS(e.contentDOM,r.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(r.focusNode,r.focusOffset),d=o&&o.node==r.anchorNode&&o.offset==r.anchorOffset||!KS(e.contentDOM,r.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(r.anchorNode,r.anchorOffset),f=e.viewport;if((Ge.ios||Ge.chrome)&&e.state.selection.main.empty&&c!=d&&(f.from>0||f.to<e.state.doc.length)){let m=Math.min(c,d),g=Math.max(c,d),y=f.from-m,b=f.to-g;(y==0||y==1||m==0)&&(b==0||b==-1||g==e.state.doc.length)&&(c=0,d=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(Pe.range(d,c)):this.newSel=Pe.single(d,c)}}}function O8(t,e){let n,{newSel:i}=e,s=t.state.selection.main,a=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:r}=e.bounds,c=s.from,d=null;(a===8||Ge.android&&e.text.length<r-o)&&(c=s.to,d="end");let f=P8(t.state.doc.sliceString(o,r,Df),e.text,c-o,d);f&&(Ge.chrome&&a==13&&f.toB==f.from+2&&e.text.slice(f.from,f.toB)==Df+Df&&f.toB--,n={from:o+f.from,to:o+f.toA,insert:un.of(e.text.slice(f.from,f.toB).split(Df))})}else i&&(!t.hasFocus&&t.state.facet(vr)||i.main.eq(s))&&(i=null);if(!n&&!i)return!1;if(!n&&e.typeOver&&!s.empty&&i&&i.main.empty?n={from:s.from,to:s.to,insert:t.state.doc.slice(s.from,s.to)}:(Ge.mac||Ge.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(i&&n.insert.length==2&&(i=Pe.single(i.main.anchor-1,i.main.head-1)),n={from:n.from,to:n.to,insert:un.of([n.insert.toString().replace("."," ")])}):n&&n.from>=s.from&&n.to<=s.to&&(n.from!=s.from||n.to!=s.to)&&s.to-s.from-(n.to-n.from)<=4?n={from:s.from,to:s.to,insert:t.state.doc.slice(s.from,n.from).append(n.insert).append(t.state.doc.slice(n.to,s.to))}:t.state.doc.lineAt(s.from).to<s.to&&t.docView.lineHasWidget(s.to)&&t.inputState.insertingTextAt>Date.now()-50?n={from:s.from,to:s.to,insert:t.state.toText(t.inputState.insertingText)}:Ge.chrome&&n&&n.from==n.to&&n.from==s.head&&n.insert.toString()==`
|
||
`&&t.lineWrapping&&(i&&(i=Pe.single(i.main.anchor-1,i.main.head-1)),n={from:s.from,to:s.to,insert:un.of([" "])}),n)return Jk(t,n,i,a);if(i&&!i.main.eq(s)){let o=!1,r="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(o=!0),r=t.inputState.lastSelectionOrigin,r=="select.pointer"&&(i=L8(t.state.facet(xp).map(c=>c(t)),i))),t.dispatch({selection:i,scrollIntoView:o,userEvent:r}),!0}else return!1}function Jk(t,e,n,i=-1){if(Ge.ios&&t.inputState.flushIOSKey(e))return!0;let s=t.state.selection.main;if(Ge.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&t.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&yd(t.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||i==8&&e.insert.length<e.to-e.from&&e.to>s.head)&&yd(t.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&yd(t.contentDOM,"Delete",46)))return!0;let a=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,r=()=>o||(o=Ybe(t,e,n));return t.state.facet(_8).some(c=>c(t,e.from,e.to,a,r))||t.dispatch(r()),!0}function Ybe(t,e,n){let i,s=t.state,a=s.selection.main,o=-1;if(e.from==e.to&&e.from<a.from||e.from>a.to){let c=e.from<a.from?-1:1,d=c<0?a.from:a.to,f=om(s.facet(xp).map(m=>m(t)),d,c);e.from==f&&(o=f)}if(o>-1)i={changes:e,selection:Pe.cursor(e.from+e.insert.length,-1)};else if(e.from>=a.from&&e.to<=a.to&&e.to-e.from>=(a.to-a.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=a.from<e.from?s.sliceDoc(a.from,e.from):"",d=a.to>e.to?s.sliceDoc(e.to,a.to):"";i=s.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+d))}else{let c=s.changes(e),d=n&&n.main.to<=c.newLength?n.main:void 0;if(s.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=a.to+10&&e.to>=a.to-10){let f=t.state.sliceDoc(e.from,e.to),m,g=n&&N8(t,n.main.head);if(g){let b=e.insert.length-(e.to-e.from);m={from:g.from,to:g.to-b}}else m=t.state.doc.lineAt(a.head);let y=a.to-e.to;i=s.changeByRange(b=>{if(b.from==a.from&&b.to==a.to)return{changes:c,range:d||b.map(c)};let v=b.to-y,x=v-f.length;if(t.state.sliceDoc(x,v)!=f||v>=m.from&&x<=m.to)return{range:b};let A=s.changes({from:x,to:v,insert:e.insert}),k=b.to-a.to;return{changes:A,range:d?Pe.range(Math.max(0,d.anchor+k),Math.max(0,d.head+k)):b.map(A)}})}else i={changes:c,selection:d&&s.selection.replaceRange(d)}}let r="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,r+=".compose",t.inputState.compositionFirstChange&&(r+=".start",t.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:r,scrollIntoView:!0})}function P8(t,e,n,i){let s=Math.min(t.length,e.length),a=0;for(;a<s&&t.charCodeAt(a)==e.charCodeAt(a);)a++;if(a==s&&t.length==e.length)return null;let o=t.length,r=e.length;for(;o>0&&r>0&&t.charCodeAt(o-1)==e.charCodeAt(r-1);)o--,r--;if(i=="end"){let c=Math.max(0,a-Math.min(o,r));n-=o+c-a}if(o<a&&t.length<e.length){let c=n<=a&&n>=o?a-n:0;a-=c,r=a+(r-o),o=a}else if(r<a){let c=n<=a&&n>=r?a-n:0;a-=c,o=a+(o-r),r=a}return{from:a,toA:o,toB:r}}function Jbe(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:a}=t.observer.selectionRange;return n&&(e.push(new pj(n,i)),(s!=n||a!=i)&&e.push(new pj(s,a))),e}function Zbe(t,e){if(t.length==0)return null;let n=t[0].pos,i=t.length==2?t[1].pos:n;return n>-1&&i>-1?Pe.single(n+e,i+e):null}class eve{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ge.safari&&e.contentDOM.addEventListener("input",()=>null),Ge.gecko&&gve(e.contentDOM.ownerDocument)}handleEvent(e){!lve(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let i=this.handlers[e];if(i){for(let s of i.observers)s(this.view,n);for(let s of i.handlers){if(n.defaultPrevented)break;if(s(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=tve(e),i=this.handlers,s=this.view.contentDOM;for(let a in n)if(a!="scroll"){let o=!n[a].handlers.length,r=i[a];r&&o!=!r.handlers.length&&(s.removeEventListener(a,this.handleEvent),r=null),r||s.addEventListener(a,this.handleEvent,{passive:o})}for(let a in i)a!="scroll"&&!n[a]&&s.removeEventListener(a,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&j8.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ge.android&&Ge.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return Ge.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((n=E8.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||nve.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,yd(this.view.contentDOM,n.key,n.keyCode,n instanceof KeyboardEvent?n:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:Ge.safari&&!Ge.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function gj(t,e){return(n,i)=>{try{return e.call(t,i,n)}catch(s){Ds(n.state,s)}}}function tve(t){let e=Object.create(null);function n(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let s=i.spec,a=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(a)for(let r in a){let c=a[r];c&&n(r).handlers.push(gj(i.value,c))}if(o)for(let r in o){let c=o[r];c&&n(r).observers.push(gj(i.value,c))}}for(let i in Qa)n(i).handlers.push(Qa[i]);for(let i in Oa)n(i).observers.push(Oa[i]);return e}const E8=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],nve="dthko",j8=[16,17,18,20,91,92,224,225],E_=6;function j_(t){return Math.max(0,t)*.7+8}function ive(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class sve{constructor(e,n,i,s){this.view=e,this.startEvent=n,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=hbe(e.contentDOM),this.atoms=e.state.facet(xp).map(o=>o(e));let a=e.contentDOM.ownerDocument;a.addEventListener("mousemove",this.move=this.move.bind(this)),a.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(ln.allowMultipleSelections)&&ave(e,n),this.dragging=rve(e,n)&&F8(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&ive(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,i=0,s=0,a=0,o=this.view.win.innerWidth,r=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:a,bottom:r}=this.scrollParents.y.getBoundingClientRect());let c=Yk(this.view);e.clientX-c.left<=s+E_?n=-j_(s-e.clientX):e.clientX+c.right>=o-E_&&(n=j_(e.clientX-o)),e.clientY-c.top<=a+E_?i=-j_(a-e.clientY):e.clientY+c.bottom>=r-E_&&(i=j_(e.clientY-r)),this.setScrollSpeed(n,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,i=L8(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ave(t,e){let n=t.state.facet(f8);return n.length?n[0](e):Ge.mac?e.metaKey:e.ctrlKey}function ove(t,e){let n=t.state.facet(m8);return n.length?n[0](e):Ge.mac?!e.altKey:!e.ctrlKey}function rve(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let i=Tm(t.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let a=0;a<s.length;a++){let o=s[a];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function lve(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,i;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(i=Mn.get(n))&&i.ignoreEvent(e))return!1;return!0}const Qa=Object.create(null),Oa=Object.create(null),R8=Ge.ie&&Ge.ie_version<15||Ge.ios&&Ge.webkit_version<604;function cve(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),D8(t,n.value)},50)}function pb(t,e,n){for(let i of t.facet(e))n=i(n,t);return n}function D8(t,e){e=pb(t.state,$k,e);let{state:n}=t,i,s=1,a=n.toText(e),o=a.lines==n.selection.ranges.length;if(ZS!=null&&n.selection.ranges.every(c=>c.empty)&&ZS==a.toString()){let c=-1;i=n.changeByRange(d=>{let f=n.doc.lineAt(d.from);if(f.from==c)return{range:d};c=f.from;let m=n.toText((o?a.line(s++).text:e)+n.lineBreak);return{changes:{from:f.from,insert:m},range:Pe.cursor(d.from+m.length)}})}else o?i=n.changeByRange(c=>{let d=a.line(s++);return{changes:{from:c.from,to:c.to,insert:d.text},range:Pe.cursor(c.from+d.length)}}):i=n.replaceSelection(a);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Oa.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Qa.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Oa.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};Oa.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Qa.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let i of t.state.facet(p8))if(n=i(t,e),n)break;if(!n&&e.button==0&&(n=hve(t,e)),n){let i=!t.hasFocus;t.inputState.startMouseSelection(new sve(t,e,n,i)),i&&t.observer.ignore(()=>{Q6(t.contentDOM);let a=t.root.activeElement;a&&!a.contains(t.contentDOM)&&a.blur()});let s=t.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function _j(t,e,n,i){if(i==1)return Pe.cursor(e,n);if(i==2)return Ube(t.state,e,n);{let s=bi.find(t.docView,e),a=t.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:a.from,r=s?s.posAtEnd:a.to;return r<t.state.doc.length&&r==a.to&&r++,Pe.range(o,r)}}let yj=(t,e,n)=>e>=n.top&&e<=n.bottom&&t>=n.left&&t<=n.right;function uve(t,e,n,i){let s=bi.find(t.docView,e);if(!s)return 1;let a=e-s.posAtStart;if(a==0)return 1;if(a==s.length)return-1;let o=s.coordsAt(a,-1);if(o&&yj(n,i,o))return-1;let r=s.coordsAt(a,1);return r&&yj(n,i,r)?1:o&&o.bottom>=i?-1:1}function bj(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:n,bias:uve(t,n,e.clientX,e.clientY)}}const dve=Ge.ie&&Ge.ie_version<=11;let vj=null,xj=0,Sj=0;function F8(t){if(!dve)return t.detail;let e=vj,n=Sj;return vj=t,Sj=Date.now(),xj=!e||n>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(xj+1)%3:1}function hve(t,e){let n=bj(t,e),i=F8(e),s=t.state.selection;return{update(a){a.docChanged&&(n.pos=a.changes.mapPos(n.pos),s=s.map(a.changes))},get(a,o,r){let c=bj(t,a),d,f=_j(t,c.pos,c.bias,i);if(n.pos!=c.pos&&!o){let m=_j(t,n.pos,n.bias,i),g=Math.min(m.from,f.from),y=Math.max(m.to,f.to);f=g<f.from?Pe.range(g,y):Pe.range(y,g)}return o?s.replaceRange(s.main.extend(f.from,f.to)):r&&i==1&&s.ranges.length>1&&(d=fve(s,c.pos))?d:r?s.addRange(f):Pe.create([f])}}}function fve(t,e){for(let n=0;n<t.ranges.length;n++){let{from:i,to:s}=t.ranges[n];if(i<=e&&s>=e)return Pe.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}Qa.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let s=t.docView.nearest(e.target);if(s&&s.isWidget){let a=s.posAtStart,o=a+s.length;(a>=n.to||o<=n.from)&&(n=Pe.range(a,o))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",pb(t.state,Xk,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Qa.dragend=t=>(t.inputState.draggedContent=null,!1);function wj(t,e,n,i){if(n=pb(t.state,$k,n),!n)return;let s=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:a}=t.inputState,o=i&&a&&ove(t,e)?{from:a.from,to:a.to}:null,r={from:s,insert:n},c=t.state.changes(o?[o,r]:r);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(s,-1),head:c.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Qa.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let i=Array(n.length),s=0,a=()=>{++s==n.length&&wj(t,e,i.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o<n.length;o++){let r=new FileReader;r.onerror=a,r.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(r.result)||(i[o]=r.result),a()},r.readAsText(n[o])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return wj(t,e,i,!0),!0}return!1};Qa.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=R8?null:e.clipboardData;return n?(D8(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(cve(t),!1)};function mve(t,e){let n=t.dom.parentNode;if(!n)return;let i=n.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function pve(t){let e=[],n=[],i=!1;for(let s of t.selection.ranges)s.empty||(e.push(t.sliceDoc(s.from,s.to)),n.push(s));if(!e.length){let s=-1;for(let{from:a}of t.selection.ranges){let o=t.doc.lineAt(a);o.number>s&&(e.push(o.text),n.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),s=o.number}i=!0}return{text:pb(t,Xk,e.join(t.lineBreak)),ranges:n,linewise:i}}let ZS=null;Qa.copy=Qa.cut=(t,e)=>{let{text:n,ranges:i,linewise:s}=pve(t.state);if(!n&&!s)return!1;ZS=s?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let a=R8?null:e.clipboardData;return a?(a.clearData(),a.setData("text/plain",n),!0):(mve(t,n),!1)};const I8=Io.define();function U8(t,e){let n=[];for(let i of t.facet(y8)){let s=i(t,e);s&&n.push(s)}return n.length?t.update({effects:n,annotations:I8.of(!0)}):null}function B8(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=U8(t.state,e);n?t.dispatch(n):t.update([])}},10)}Oa.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),B8(t)};Oa.blur=t=>{t.observer.clearSelectionRange(),B8(t)};Oa.compositionstart=Oa.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Oa.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ge.chrome&&Ge.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Oa.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Qa.beforeinput=(t,e)=>{var n,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let a=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),o=e.getTargetRanges();if(a&&o.length){let r=o[0],c=t.posAtDOM(r.startContainer,r.startOffset),d=t.posAtDOM(r.endContainer,r.endOffset);return Jk(t,{from:c,to:d,insert:t.state.toText(a)},null),!0}}let s;if(Ge.chrome&&Ge.android&&(s=E8.find(a=>a.inputType==e.inputType))&&(t.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let a=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>a+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return Ge.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),Ge.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Oa.compositionend(t,e),20),!1};const kj=new Set;function gve(t){kj.has(t)||(kj.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const Cj=["pre-wrap","normal","pre-line","break-spaces"];let Fd=!1;function Aj(){Fd=!1}class _ve{constructor(e){this.lineWrapping=e,this.doc=un.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let i=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((n-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Cj.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let i=0;i<e.length;i++){let s=e[i];s<0?i++:this.heightSamples[Math.floor(s*10)]||(n=!0,this.heightSamples[Math.floor(s*10)]=!0)}return n}refresh(e,n,i,s,a,o){let r=Cj.indexOf(e)>-1,c=Math.round(n)!=Math.round(this.lineHeight)||this.lineWrapping!=r;if(this.lineWrapping=r,this.lineHeight=n,this.charWidth=i,this.textHeight=s,this.lineLength=a,c){this.heightSamples={};for(let d=0;d<o.length;d++){let f=o[d];f<0?d++:this.heightSamples[Math.floor(f*10)]=!0}}return c}}class yve{constructor(e,n){this.from=e,this.heights=n,this.index=0}get more(){return this.index<this.heights.length}}class xo{constructor(e,n,i,s,a){this.from=e,this.length=n,this.top=i,this.height=s,this._content=a}get type(){return typeof this._content=="number"?vs.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof jl?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let n=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new xo(this.from,this.length+e.length,this.top,this.height+e.height,n)}}var zn=(function(t){return t[t.ByPos=0]="ByPos",t[t.ByHeight=1]="ByHeight",t[t.ByPosNoHeight=2]="ByPosNoHeight",t})(zn||(zn={}));const x0=.001;class xs{constructor(e,n,i=2){this.length=e,this.height=n,this.flags=i}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>x0&&(Fd=!0),this.height=e)}replace(e,n,i){return xs.of(i)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,i,s){let a=this,o=i.doc;for(let r=s.length-1;r>=0;r--){let{fromA:c,toA:d,fromB:f,toB:m}=s[r],g=a.lineAt(c,zn.ByPosNoHeight,i.setDoc(n),0,0),y=g.to>=d?g:a.lineAt(d,zn.ByPosNoHeight,i,0,0);for(m+=y.to-d,d=y.to;r>0&&g.from<=s[r-1].toA;)c=s[r-1].fromA,f=s[r-1].fromB,r--,c<g.from&&(g=a.lineAt(c,zn.ByPosNoHeight,i,0,0));f+=g.from-c,c=g.from;let b=Zk.build(i.setDoc(o),e,f,m);a=ay(a,a.replace(c,d,b))}return a.updateHeight(i,0)}static empty(){return new Js(0,0)}static of(e){if(e.length==1)return e[0];let n=0,i=e.length,s=0,a=0;for(;;)if(n==i)if(s>a*2){let r=e[n-1];r.break?e.splice(--n,1,r.left,null,r.right):e.splice(--n,1,r.left,r.right),i+=1+r.break,s-=r.size}else if(a>s*2){let r=e[i];r.break?e.splice(i,1,r.left,null,r.right):e.splice(i,1,r.left,r.right),i+=2+r.break,a-=r.size}else break;else if(s<a){let r=e[n++];r&&(s+=r.size)}else{let r=e[--i];r&&(a+=r.size)}let o=0;return e[n-1]==null?(o=1,n--):e[n]==null&&(o=1,i++),new bve(xs.of(e.slice(0,n)),o,xs.of(e.slice(i)))}}function ay(t,e){return t==e?t:(t.constructor!=e.constructor&&(Fd=!0),e)}xs.prototype.size=1;class z8 extends xs{constructor(e,n,i){super(e,n),this.deco=i}blockAt(e,n,i,s){return new xo(s,this.length,i,this.height,this.deco||0)}lineAt(e,n,i,s,a){return this.blockAt(0,i,s,a)}forEachLine(e,n,i,s,a,o){e<=a+this.length&&n>=a&&o(this.blockAt(0,i,s,a))}updateHeight(e,n=0,i=!1,s){return s&&s.from<=n&&s.more&&this.setHeight(s.heights[s.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Js extends z8{constructor(e,n){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,n,i,s){return new xo(s,this.length,i,this.height,this.breaks)}replace(e,n,i){let s=i[0];return i.length==1&&(s instanceof Js||s instanceof Ki&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof Ki?s=new Js(s.length,this.height):s.height=this.height,this.outdated||(s.outdated=!1),s):xs.of(i)}updateHeight(e,n=0,i=!1,s){return s&&s.from<=n&&s.more?this.setHeight(s.heights[s.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ki extends xs{constructor(e){super(e,0)}heightMetrics(e,n){let i=e.doc.lineAt(n).number,s=e.doc.lineAt(n+this.length).number,a=s-i+1,o,r=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*a);o=c/a,this.length>a+1&&(r=(this.height-c)/(this.length-a-1))}else o=this.height/a;return{firstLine:i,lastLine:s,perLine:o,perChar:r}}blockAt(e,n,i,s){let{firstLine:a,lastLine:o,perLine:r,perChar:c}=this.heightMetrics(n,s);if(n.lineWrapping){let d=s+(e<n.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length)),f=n.doc.lineAt(d),m=r+f.length*c,g=Math.max(i,e-m/2);return new xo(f.from,f.length,g,m,0)}else{let d=Math.max(0,Math.min(o-a,Math.floor((e-i)/r))),{from:f,length:m}=n.doc.line(a+d);return new xo(f,m,i+r*d,r,0)}}lineAt(e,n,i,s,a){if(n==zn.ByHeight)return this.blockAt(e,i,s,a);if(n==zn.ByPosNoHeight){let{from:y,to:b}=i.doc.lineAt(e);return new xo(y,b-y,0,0,0)}let{firstLine:o,perLine:r,perChar:c}=this.heightMetrics(i,a),d=i.doc.lineAt(e),f=r+d.length*c,m=d.number-o,g=s+r*m+c*(d.from-a-m);return new xo(d.from,d.length,Math.max(s,Math.min(g,s+this.height-f)),f,0)}forEachLine(e,n,i,s,a,o){e=Math.max(e,a),n=Math.min(n,a+this.length);let{firstLine:r,perLine:c,perChar:d}=this.heightMetrics(i,a);for(let f=e,m=s;f<=n;){let g=i.doc.lineAt(f);if(f==e){let b=g.number-r;m+=c*b+d*(e-a-b)}let y=c+d*g.length;o(new xo(g.from,g.length,m,y,0)),m+=y,f=g.to+1}}replace(e,n,i){let s=this.length-n;if(s>0){let a=i[i.length-1];a instanceof Ki?i[i.length-1]=new Ki(a.length+s):i.push(null,new Ki(s-1))}if(e>0){let a=i[0];a instanceof Ki?i[0]=new Ki(e+a.length):i.unshift(new Ki(e-1),null)}return xs.of(i)}decomposeLeft(e,n){n.push(new Ki(e-1),null)}decomposeRight(e,n){n.push(null,new Ki(this.length-e-1))}updateHeight(e,n=0,i=!1,s){let a=n+this.length;if(s&&s.from<=n+this.length&&s.more){let o=[],r=Math.max(n,s.from),c=-1;for(s.from>n&&o.push(new Ki(s.from-n-1).updateHeight(e,n));r<=a&&s.more;){let f=e.doc.lineAt(r).length;o.length&&o.push(null);let m=s.heights[s.index++];c==-1?c=m:Math.abs(m-c)>=x0&&(c=-2);let g=new Js(f,m);g.outdated=!1,o.push(g),r+=f+1}r<=a&&o.push(null,new Ki(a-r).updateHeight(e,r));let d=xs.of(o);return(c<0||Math.abs(d.height-this.height)>=x0||Math.abs(c-this.heightMetrics(e,n).perLine)>=x0)&&(Fd=!0),ay(this,d)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class bve extends xs{constructor(e,n,i){super(e.length+n+i.length,e.height+i.height,n|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,n,i,s){let a=i+this.left.height;return e<a?this.left.blockAt(e,n,i,s):this.right.blockAt(e,n,a,s+this.left.length+this.break)}lineAt(e,n,i,s,a){let o=s+this.left.height,r=a+this.left.length+this.break,c=n==zn.ByHeight?e<o:e<r,d=c?this.left.lineAt(e,n,i,s,a):this.right.lineAt(e,n,i,o,r);if(this.break||(c?d.to<r:d.from>r))return d;let f=n==zn.ByPosNoHeight?zn.ByPosNoHeight:zn.ByPos;return c?d.join(this.right.lineAt(r,f,i,o,r)):this.left.lineAt(r,f,i,s,a).join(d)}forEachLine(e,n,i,s,a,o){let r=s+this.left.height,c=a+this.left.length+this.break;if(this.break)e<c&&this.left.forEachLine(e,n,i,s,a,o),n>=c&&this.right.forEachLine(e,n,i,r,c,o);else{let d=this.lineAt(c,zn.ByPos,i,s,a);e<d.from&&this.left.forEachLine(e,d.from-1,i,s,a,o),d.to>=e&&d.from<=n&&o(d),n>d.to&&this.right.forEachLine(d.to+1,n,i,r,c,o)}}replace(e,n,i){let s=this.left.length+this.break;if(n<s)return this.balanced(this.left.replace(e,n,i),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,n-s,i));let a=[];e>0&&this.decomposeLeft(e,a);let o=a.length;for(let r of i)a.push(r);if(e>0&&Nj(a,o-1),n<this.length){let r=a.length;this.decomposeRight(n,a),Nj(a,r)}return xs.of(a)}decomposeLeft(e,n){let i=this.left.length;if(e<=i)return this.left.decomposeLeft(e,n);n.push(this.left),this.break&&(i++,e>=i&&n.push(null)),e>i&&this.right.decomposeLeft(e-i,n)}decomposeRight(e,n){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,n);e<i&&this.left.decomposeRight(e,n),this.break&&e<s&&n.push(null),n.push(this.right)}balanced(e,n){return e.size>2*n.size||n.size>2*e.size?xs.of(this.break?[e,null,n]:[e,n]):(this.left=ay(this.left,e),this.right=ay(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,i=!1,s){let{left:a,right:o}=this,r=n+a.length+this.break,c=null;return s&&s.from<=n+a.length&&s.more?c=a=a.updateHeight(e,n,i,s):a.updateHeight(e,n,i),s&&s.from<=r+o.length&&s.more?c=o=o.updateHeight(e,r,i,s):o.updateHeight(e,r,i),c?this.balanced(a,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Nj(t,e){let n,i;t[e]==null&&(n=t[e-1])instanceof Ki&&(i=t[e+1])instanceof Ki&&t.splice(e-1,3,new Ki(n.length+1+i.length))}const vve=5;class Zk{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let i=Math.min(n,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof Js?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Js(i-this.pos,-1)),this.writtenTo=i,n>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,i){if(e<n||i.heightRelevant){let s=i.widget?i.widget.estimatedHeight:0,a=i.widget?i.widget.lineBreaks:0;s<0&&(s=this.oracle.lineHeight);let o=n-e;i.block?this.addBlock(new z8(o,s,i)):(o||a||s>=vve)&&this.addLineDeco(s,a,o)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new Js(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,n){let i=new Ki(n-e);return this.oracle.doc.lineAt(e).to==n&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Js)return e;let n=new Js(0,-1);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=n,this.writtenTo=this.pos=this.pos+i}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof Js)&&!this.isCovered?this.nodes.push(new Js(0,-1)):(this.writtenTo<this.pos||n==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let i=e;for(let s of this.nodes)s instanceof Js&&s.updateHeight(this.oracle,i),i+=s?s.length:1;return this.nodes}static build(e,n,i,s){let a=new Zk(i,e);return fn.spans(n,i,s,a,0),a.finish(i)}}function xve(t,e,n){let i=new Sve;return fn.compare(t,e,n,i,0),i.changes}class Sve{constructor(){this.changes=[]}compareRange(){}comparePoint(e,n,i,s){(e<n||i&&i.heightRelevant||s&&s.heightRelevant)&&v0(e,n,this.changes,5)}}function wve(t,e){let n=t.getBoundingClientRect(),i=t.ownerDocument,s=i.defaultView||window,a=Math.max(0,n.left),o=Math.min(s.innerWidth,n.right),r=Math.max(0,n.top),c=Math.min(s.innerHeight,n.bottom);for(let d=t.parentNode;d&&d!=i.body;)if(d.nodeType==1){let f=d,m=window.getComputedStyle(f);if((f.scrollHeight>f.clientHeight||f.scrollWidth>f.clientWidth)&&m.overflow!="visible"){let g=f.getBoundingClientRect();a=Math.max(a,g.left),o=Math.min(o,g.right),r=Math.max(r,g.top),c=Math.min(d==t.parentNode?s.innerHeight:c,g.bottom)}d=m.position=="absolute"||m.position=="fixed"?f.offsetParent:f.parentNode}else if(d.nodeType==11)d=d.host;else break;return{left:a-n.left,right:Math.max(a,o)-n.left,top:r-(n.top+e),bottom:Math.max(r,c)-(n.top+e)}}function kve(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left<n.innerWidth&&e.right>0&&e.top<n.innerHeight&&e.bottom>0}function Cve(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class Y1{constructor(e,n,i,s){this.from=e,this.to=n,this.size=i,this.displaySize=s}static same(e,n){if(e.length!=n.length)return!1;for(let i=0;i<e.length;i++){let s=e[i],a=n[i];if(s.from!=a.from||s.to!=a.to||s.size!=a.size)return!1}return!0}draw(e,n){return vt.replace({widget:new Ave(this.displaySize*(n?e.scaleY:e.scaleX),n)}).range(this.from,this.to)}}class Ave extends Rr{constructor(e,n){super(),this.size=e,this.vertical=n}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class Tj{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Mj,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=qn.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let n=e.facet(Qk).some(i=>typeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new _ve(n),this.stateDeco=e.facet(Mm).filter(i=>typeof i!="function"),this.heightMap=xs.empty().applyChanges(this.stateDeco,un.empty,this.heightOracle.setDoc(e.doc),[new ka(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=vt.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let i=0;i<=1;i++){let s=i?n.head:n.anchor;if(!e.some(({from:a,to:o})=>s>=a&&s<=o)){let{from:a,to:o}=this.lineBlockAt(s);e.push(new R_(a,o))}}return this.viewports=e.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Mj:new eC(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ff(e,this.scaler))})}update(e,n=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Mm).filter(f=>typeof f!="function");let s=e.changedRanges,a=ka.extendWithRanges(s,xve(i,this.stateDeco,e?e.changes:Ai.empty(this.state.doc.length))),o=this.heightMap.height,r=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Aj(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),a),(this.heightMap.height!=o||Fd)&&(e.flags|=2),r?(this.scrollAnchorPos=e.changes.mapPos(r.from,-1),this.scrollAnchorHeight=r.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let c=a.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.head<c.from||n.range.head>c.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let d=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(d||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(v8)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let n=e.contentDOM,i=window.getComputedStyle(n),s=this.heightOracle,a=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?qn.RTL:qn.LTR;let o=this.heightOracle.mustRefreshForWrapping(a),r=n.getBoundingClientRect(),c=o||this.mustMeasureContent||this.contentDOMHeight!=r.height;this.contentDOMHeight=r.height,this.mustMeasureContent=!1;let d=0,f=0;if(r.width&&r.height){let{scaleX:L,scaleY:M}=X6(n,r);(L>.005&&Math.abs(this.scaleX-L)>.005||M>.005&&Math.abs(this.scaleY-M)>.005)&&(this.scaleX=L,this.scaleY=M,d|=16,o=c=!0)}let m=(parseInt(i.paddingTop)||0)*this.scaleY,g=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=m||this.paddingBottom!=g)&&(this.paddingTop=m,this.paddingBottom=g,d|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,d|=16);let y=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=y&&(this.scrollAnchorHeight=-1,this.scrollTop=y),this.scrolledToBottom=J6(e.scrollDOM);let b=(this.printing?Cve:wve)(n,this.paddingTop),v=b.top-this.pixelViewport.top,x=b.bottom-this.pixelViewport.bottom;this.pixelViewport=b;let A=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(A!=this.inView&&(this.inView=A,A&&(c=!0)),!this.inView&&!this.scrollTarget&&!kve(e.dom))return 0;let k=r.width;if((this.contentDOMWidth!=k||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=r.width,this.editorHeight=e.scrollDOM.clientHeight,d|=16),c){let L=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(L)&&(o=!0),o||s.lineWrapping&&Math.abs(k-this.contentDOMWidth)>s.charWidth){let{lineHeight:M,charWidth:O,textHeight:N}=e.docView.measureTextSize();o=M>0&&s.refresh(a,M,O,N,Math.max(5,k/O),L),o&&(e.docView.minWidth=0,d|=16)}v>0&&x>0?f=Math.max(v,x):v<0&&x<0&&(f=Math.min(v,x)),Aj();for(let M of this.viewports){let O=M.from==this.viewport.from?L:e.docView.measureVisibleLineHeights(M);this.heightMap=(o?xs.empty().applyChanges(this.stateDeco,un.empty,this.heightOracle,[new ka(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new yve(M.from,O))}Fd&&(d|=2)}let T=!this.viewportIsAppropriate(this.viewport,f)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return T&&(d&2&&(d|=this.updateScaler()),this.viewport=this.getViewport(f,this.scrollTarget),d|=this.updateForViewport()),(d&2||T)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),d|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,a=this.heightOracle,{visibleTop:o,visibleBottom:r}=this,c=new R_(s.lineAt(o-i*1e3,zn.ByHeight,a,0,0).from,s.lineAt(r+(1-i)*1e3,zn.ByHeight,a,0,0).to);if(n){let{head:d}=n.range;if(d<c.from||d>c.to){let f=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),m=s.lineAt(d,zn.ByPos,a,0,0),g;n.y=="center"?g=(m.top+m.bottom)/2-f/2:n.y=="start"||n.y=="nearest"&&d<c.from?g=m.top:g=m.bottom-f,c=new R_(s.lineAt(g-1e3/2,zn.ByHeight,a,0,0).from,s.lineAt(g+f+1e3/2,zn.ByHeight,a,0,0).to)}}return c}mapViewport(e,n){let i=n.mapPos(e.from,-1),s=n.mapPos(e.to,1);return new R_(this.heightMap.lineAt(i,zn.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(s,zn.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:n},i=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,zn.ByPos,this.heightOracle,0,0),{bottom:a}=this.heightMap.lineAt(n,zn.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:r}=this;return(e==0||s<=o-Math.max(10,Math.min(-i,250)))&&(n==this.state.doc.length||a>=r+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&a<r+2*1e3}mapLineGaps(e,n){if(!e.length||n.empty)return e;let i=[];for(let s of e)n.touchesRange(s.from,s.to)||i.push(new Y1(n.mapPos(s.from),n.mapPos(s.to),s.size,s.displaySize));return i}ensureLineGaps(e,n){let i=this.heightOracle.lineWrapping,s=i?1e4:2e3,a=s>>1,o=s<<1;if(this.defaultTextDirection!=qn.LTR&&!i)return[];let r=[],c=(f,m,g,y)=>{if(m-f<a)return;let b=this.state.selection.main,v=[b.from];b.empty||v.push(b.to);for(let A of v)if(A>f&&A<m){c(f,A-10,g,y),c(A+10,m,g,y);return}let x=Tve(e,A=>A.from>=g.from&&A.to<=g.to&&Math.abs(A.from-f)<a&&Math.abs(A.to-m)<a&&!v.some(k=>A.from<k&&A.to>k));if(!x){if(m<g.to&&n&&i&&n.visibleRanges.some(T=>T.from<=m&&T.to>=m)){let T=n.moveToLineBoundary(Pe.cursor(m),!1,!0).head;T>f&&(m=T)}let A=this.gapSize(g,f,m,y),k=i||A<2e6?A:2e6;x=new Y1(f,m,A,k)}r.push(x)},d=f=>{if(f.length<o||f.type!=vs.Text)return;let m=Nve(f.from,f.to,this.stateDeco);if(m.total<o)return;let g=this.scrollTarget?this.scrollTarget.range.head:null,y,b;if(i){let v=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,x,A;if(g!=null){let k=F_(m,g),T=((this.visibleBottom-this.visibleTop)/2+v)/f.height;x=k-T,A=k+T}else x=(this.visibleTop-f.top-v)/f.height,A=(this.visibleBottom-f.top+v)/f.height;y=D_(m,x),b=D_(m,A)}else{let v=m.total*this.heightOracle.charWidth,x=s*this.heightOracle.charWidth,A=0;if(v>2e6)for(let O of e)O.from>=f.from&&O.from<f.to&&O.size!=O.displaySize&&O.from*this.heightOracle.charWidth+A<this.pixelViewport.left&&(A=O.size-O.displaySize);let k=this.pixelViewport.left+A,T=this.pixelViewport.right+A,L,M;if(g!=null){let O=F_(m,g),N=((T-k)/2+x)/v;L=O-N,M=O+N}else L=(k-x)/v,M=(T+x)/v;y=D_(m,L),b=D_(m,M)}y>f.from&&c(f.from,y,f,m),b<f.to&&c(b,f.to,f,m)};for(let f of this.viewportLines)Array.isArray(f.type)?f.type.forEach(d):d(f);return r}gapSize(e,n,i,s){let a=F_(s,i)-F_(s,n);return this.heightOracle.lineWrapping?e.height*a:s.total*this.heightOracle.charWidth*a}updateLineGaps(e){Y1.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=vt.set(e.map(n=>n.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let i=[];fn.spans(n,this.viewport.from,this.viewport.to,{span(a,o){i.push({from:a,to:o})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let a=0;a<i.length&&!(s&8);a++){let o=this.visibleRanges[a],r=i[a];(o.from!=r.from||o.to!=r.to)&&(s|=4,e&&e.mapPos(o.from,-1)==r.from&&e.mapPos(o.to,1)==r.to||(s|=8))}return this.visibleRanges=i,s}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||Ff(this.heightMap.lineAt(e,zn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||Ff(this.heightMap.lineAt(this.scaler.fromDOM(e),zn.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return Ff(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class R_{constructor(e,n){this.from=e,this.to=n}}function Nve(t,e,n){let i=[],s=t,a=0;return fn.spans(n,t,e,{span(){},point(o,r){o>s&&(i.push({from:s,to:o}),a+=o-s),s=r}},20),s<e&&(i.push({from:s,to:e}),a+=e-s),{total:a,ranges:i}}function D_({total:t,ranges:e},n){if(n<=0)return e[0].from;if(n>=1)return e[e.length-1].to;let i=Math.floor(t*n);for(let s=0;;s++){let{from:a,to:o}=e[s],r=o-a;if(i<=r)return a+i;i-=r}}function F_(t,e){let n=0;for(let{from:i,to:s}of t.ranges){if(e<=s){n+=e-i;break}n+=s-i}return n/t.total}function Tve(t,e){for(let n of t)if(e(n))return n}const Mj={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};class eC{constructor(e,n,i){let s=0,a=0,o=0;this.viewports=i.map(({from:r,to:c})=>{let d=n.lineAt(r,zn.ByPos,e,0,0).top,f=n.lineAt(c,zn.ByPos,e,0,0).bottom;return s+=f-d,{from:r,to:c,top:d,bottom:f,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(n.height-s);for(let r of this.viewports)r.domTop=o+(r.top-a)*this.scale,o=r.domBottom=r.domTop+(r.bottom-r.top),a=r.bottom}toDOM(e){for(let n=0,i=0,s=0;;n++){let a=n<this.viewports.length?this.viewports[n]:null;if(!a||e<a.top)return s+(e-i)*this.scale;if(e<=a.bottom)return a.domTop+(e-a.top);i=a.bottom,s=a.domBottom}}fromDOM(e){for(let n=0,i=0,s=0;;n++){let a=n<this.viewports.length?this.viewports[n]:null;if(!a||e<a.domTop)return i+(e-s)/this.scale;if(e<=a.domBottom)return a.top+(e-a.domTop);i=a.bottom,s=a.domBottom}}eq(e){return e instanceof eC?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((n,i)=>n.from==e.viewports[i].from&&n.to==e.viewports[i].to):!1}}function Ff(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),i=e.toDOM(t.bottom);return new xo(t.from,t.length,n,i-n,Array.isArray(t._content)?t._content.map(s=>Ff(s,e)):t._content)}const I_=Ze.define({combine:t=>t.join(" ")}),ew=Ze.define({combine:t=>t.indexOf(!0)>-1}),tw=Pl.newName(),q8=Pl.newName(),K8=Pl.newName(),H8={"&light":"."+q8,"&dark":"."+K8};function nw(t,e,n){return new Pl(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return t;if(!n||!n[s])throw new RangeError(`Unsupported selector: ${s}`);return n[s]}):t+" "+i}})}const Mve=nw("."+tw,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},H8),Lve={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},J1=Ge.ie&&Ge.ie_version<=11;class Ove{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new fbe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let i of n)this.queue.push(i);(Ge.ie&&Ge.ie_version<=11||Ge.ios&&e.composing)&&n.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ge.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ge.chrome&&Ge.chrome_version<126)&&(this.editContext=new Eve(e),e.state.facet(vr)&&(e.contentDOM.editContext=this.editContext.editContext)),J1&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(n=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,i)=>n!=e[i]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(vr)?i.root.activeElement!=this.dom:!b0(this.dom,s))return;let a=s.anchorNode&&i.docView.nearest(s.anchorNode);if(a&&a.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(Ge.ie&&Ge.ie_version<=11||Ge.android&&Ge.chrome)&&!i.state.selection.main.empty&&s.focusNode&&sm(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=Tm(e.root);if(!n)return!1;let i=Ge.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Pve(this.view,n)||n;if(!i||this.selectionRange.eq(i))return!1;let s=b0(this.dom,i);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&pbe(this.dom,i)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(i),s&&(this.selectionChanged=!0),!0)}setSelectionRange(e,n){this.selectionRange.set(e.node,e.offset,n.node,n.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,n=null;for(let i=this.dom;i;)if(i.nodeType==1)!n&&e<this.scrollTargets.length&&this.scrollTargets[e]==i?e++:n||(n=this.scrollTargets.slice(0,e)),n&&n.push(i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;if(e<this.scrollTargets.length&&!n&&(n=this.scrollTargets.slice(0,e)),n){for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);for(let i of this.scrollTargets=n)i.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Lve),J1&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),J1&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,n){var i;if(!this.delayedAndroidKey){let s=()=>{let a=this.delayedAndroidKey;a&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=a.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&a.force&&yd(this.dom,a.key,a.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange<Date.now()-50||!!(!((i=this.delayedAndroidKey)===null||i===void 0)&&i.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,i=-1,s=!1;for(let a of e){let o=this.readMutation(a);o&&(o.typeOver&&(s=!0),n==-1?{from:n,to:i}=o:(n=Math.min(o.from,n),i=Math.max(o.to,i)))}return{from:n,to:i,typeOver:s}}readChange(){let{from:e,to:n,typeOver:i}=this.processRecords(),s=this.selectionChanged&&b0(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let a=new Qbe(this.view,e,n,i);return this.view.docView.domChanged={newSel:a.newSel?a.newSel.main:null},a}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let i=this.view.state,s=O8(this.view,n);return this.view.state==i&&(n.domChanged||n.newSel&&!n.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),s}readMutation(e){let n=this.view.docView.nearest(e.target);if(!n||n.ignoreMutation(e))return null;if(n.markDirty(e.type=="attributes"),e.type=="attributes"&&(n.flags|=4),e.type=="childList"){let i=Lj(n,e.previousSibling||e.target.previousSibling,-1),s=Lj(n,e.nextSibling||e.target.nextSibling,1);return{from:i?n.posAfter(i):n.posAtStart,to:s?n.posBefore(s):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(vr)!=e.state.facet(vr)&&(e.view.contentDOM.editContext=e.state.facet(vr)?this.editContext.editContext:null))}destroy(){var e,n,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Lj(t,e,n){for(;e;){let i=Mn.get(e);if(i&&i.parent==t)return i;let s=e.parentNode;e=s!=t.dom?s:n>0?e.nextSibling:e.previousSibling}return null}function Oj(t,e){let n=e.startContainer,i=e.startOffset,s=e.endContainer,a=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor);return sm(o.node,o.offset,s,a)&&([n,i,s,a]=[s,a,n,i]),{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:a}}function Pve(t,e){if(e.getComposedRanges){let s=e.getComposedRanges(t.root)[0];if(s)return Oj(t,s)}let n=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),n=s.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),n?Oj(t,n):null}class Eve{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let s=e.state.selection.main,{anchor:a,head:o}=s,r=this.toEditorPos(i.updateRangeStart),c=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:r,drifted:!1});let d=c-r>i.text.length;r==this.from&&a<this.from?r=a:c==this.to&&a>this.to&&(c=a);let f=P8(e.state.sliceDoc(r,c),i.text,(d?s.from:s.to)-r,d?"end":null);if(!f){let g=Pe.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));g.main.eq(s)||e.dispatch({selection:g,userEvent:"select"});return}let m={from:f.from+r,to:f.toA+r,insert:un.of(i.text.slice(f.from,f.toB).split(`
|
||
`))};if((Ge.mac||Ge.android)&&m.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(m={from:r,to:c,insert:un.of([i.text.replace("."," ")])}),this.pendingContextChange=m,!e.state.readOnly){let g=this.to-this.from+(m.to-m.from+m.insert.length);Jk(e,m,Pe.single(this.toEditorPos(i.selectionStart,g),this.toEditorPos(i.selectionEnd,g)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),m.from<m.to&&!m.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(n.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let s=[],a=null;for(let o=this.toEditorPos(i.rangeStart),r=this.toEditorPos(i.rangeEnd);o<r;o++){let c=e.coordsForChar(o);a=c&&new DOMRect(c.left,c.top,c.right-c.left,c.bottom-c.top)||a||new DOMRect,s.push(a)}n.updateCharacterBounds(i.rangeStart,s)},this.handlers.textformatupdate=i=>{let s=[];for(let a of i.getTextFormats()){let o=a.underlineStyle,r=a.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(r)){let c=this.toEditorPos(a.rangeStart),d=this.toEditorPos(a.rangeEnd);if(c<d){let f=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(r)?1:2}px`;s.push(vt.mark({attributes:{style:f}}).range(c,d))}}}e.dispatch({effects:S8.of(vt.set(s))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)n.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=Tm(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,i=!1,s=this.pendingContextChange;return e.changes.iterChanges((a,o,r,c,d)=>{if(i)return;let f=d.length-(o-a);if(s&&o>=s.to)if(s.from==a&&s.to==o&&s.insert.eq(d)){s=this.pendingContextChange=null,n+=f,this.to+=f;return}else s=null,this.revertPending(e.state);if(a+=n,o+=n,o<=this.from)this.from+=f,this.to+=f;else if(a<this.to){if(a<this.from||o>this.to||this.to-this.from+d.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(a),this.toContextPos(o),d.toString()),this.to+=f}n+=f}),s&&!i&&this.revertPending(e.state),!i}update(e){let n=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),s=this.toContextPos(n.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to<e.doc.length&&this.to-n<500||this.to-this.from>1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class $e{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(s=>s.forEach(a=>i(a,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||mbe(e.parent)||document,this.viewState=new Tj(e.state||ln.create(e)),e.scrollTo&&e.scrollTo.is(P_)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(od).map(s=>new $1(s));for(let s of this.plugins)s.update(this);this.observer=new Ove(this),this.inputState=new eve(this),this.inputState.ensureHandlers(this.plugins),this.docView=new cj(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let n=e.length==1&&e[0]instanceof Ti?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,i=!1,s,a=this.state;for(let g of e){if(g.startState!=a)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");a=g.state}if(this.destroyed){this.viewState.state=a;return}let o=this.hasFocus,r=0,c=null;e.some(g=>g.annotation(I8))?(this.inputState.notifiedFocused=o,r=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,c=U8(a,o),c||(r=1));let d=this.observer.delayedAndroidKey,f=null;if(d?(this.observer.clearDelayedAndroidKey(),f=this.observer.readChange(),(f&&!this.state.doc.eq(a.doc)||!this.state.selection.eq(a.selection))&&(f=null)):this.observer.clear(),a.facet(ln.phrases)!=this.state.facet(ln.phrases))return this.setState(a);s=sy.create(this,a,e),s.flags|=r;let m=this.viewState.scrollTarget;try{this.updateState=2;for(let g of e){if(m&&(m=m.map(g.changes)),g.scrollIntoView){let{main:y}=g.state.selection;m=new bd(y.empty?y:Pe.cursor(y.head,y.head>y.anchor?-1:1))}for(let y of g.effects)y.is(P_)&&(m=y.value.clip(this.state))}this.viewState.update(s,m),this.bidiCache=oy.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),n=this.docView.update(s),this.state.facet(Rf)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(g=>g.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(I_)!=s.state.facet(I_)&&(this.viewState.mustMeasureContent=!0),(n||i||m||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!s.empty)for(let g of this.state.facet(QS))try{g(s)}catch(y){Ds(this.state,y,"update listener")}(c||f)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),f&&!O8(this,f)&&d.force&&yd(this.contentDOM,d.key,d.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new Tj(e),this.plugins=e.facet(od).map(i=>new $1(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new cj(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(od),i=e.state.facet(od);if(n!=i){let s=[];for(let a of i){let o=n.indexOf(a);if(o<0)s.push(new $1(a));else{let r=this.plugins[o];r.mustUpdate=e,s.push(r)}}for(let a of this.plugins)a.mustUpdate!=e&&a.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this);n!=i&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let n=e.value;if(n&&n.docViewUpdate)try{n.docViewUpdate(this)}catch(i){Ds(this.state,i,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,i=this.scrollDOM,s=i.scrollTop*this.scaleY,{scrollAnchorPos:a,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let r=0;;r++){if(o<0)if(J6(i))a=-1,o=this.viewState.heightMap.height;else{let y=this.viewState.scrollAnchorAt(s);a=y.from,o=y.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(r>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];c&4||([this.measureRequests,d]=[d,this.measureRequests]);let f=d.map(y=>{try{return y.read(this)}catch(b){return Ds(this.state,b),Pj}}),m=sy.create(this,this.state,[]),g=!1;m.flags|=c,n?n.flags|=c:n=m,this.updateState=2,m.empty||(this.updatePlugins(m),this.inputState.update(m),this.updateAttrs(),g=this.docView.update(m),g&&this.docViewUpdate());for(let y=0;y<d.length;y++)if(f[y]!=Pj)try{let b=d[y];b.write&&b.write(f[y],this)}catch(b){Ds(this.state,b)}if(g&&this.docView.updateSelection(!0),!m.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let b=(a<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(a).top)-o;if(b>1||b<-1){s=s+b,i.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let r of this.state.facet(QS))r(n)}get themeClasses(){return tw+" "+(this.state.facet(ew)?K8:q8)+" "+this.state.facet(I_)}updateAttrs(){let e=Ej(this,w8,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(vr)?"true":"false",class:"cm-content",style:`${Ge.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),Ej(this,Qk,n);let i=this.observer.ignore(()=>{let s=VS(this.contentDOM,this.contentAttrs,n),a=VS(this.dom,this.editorAttrs,e);return s||a});return this.editorAttrs=e,this.contentAttrs=n,i}showAnnouncements(e){let n=!0;for(let i of e)for(let s of i.effects)if(s.is($e.announce)){n&&(this.announceDOM.textContent=""),n=!1;let a=this.announceDOM.appendChild(document.createElement("div"));a.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Rf);let e=this.state.facet($e.cspNonce);Pl.mount(this.root,this.styleModules.concat(Mve).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;n<this.measureRequests.length;n++)if(this.measureRequests[n].key===e.key){this.measureRequests[n]=e;return}}this.measureRequests.push(e)}}plugin(e){let n=this.pluginMap.get(e);return(n===void 0||n&&n.plugin!=e)&&this.pluginMap.set(e,n=this.plugins.find(i=>i.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,i){return Q1(this,e,mj(this,e,n,i))}moveByGroup(e,n){return Q1(this,e,mj(this,e,n,i=>Vbe(this,e.head,i)))}visualLineSide(e,n){let i=this.bidiSpans(e),s=this.textDirectionAt(e.from),a=i[n?i.length-1:0];return Pe.cursor(a.side(n,s)+e.from,a.forward(!n,s)?1:-1)}moveToLineBoundary(e,n,i=!0){return Hbe(this,e,n,i)}moveVertically(e,n,i){return Q1(this,e,Wbe(this,e,n,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){return this.readMeasured(),T8(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let i=this.docView.coordsAt(e,n);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),a=this.bidiSpans(s),o=a[wl.find(a,e-s.from,-1,n)];return yp(i,o.dir==qn.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(b8)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>jve)return d8(e.length);let n=this.textDirectionAt(e.from),i;for(let a of this.bidiCache)if(a.from==e.from&&a.dir==n&&(a.fresh||u8(a.isolates,i=lj(this,e))))return a.order;i||(i=lj(this,e));let s=Tbe(e.text,n,i);return this.bidiCache.push(new oy(e.from,e.to,n,i,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ge.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Q6(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){return P_.of(new bd(typeof e=="number"?Pe.cursor(e):e,n.y,n.x,n.yMargin,n.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return P_.of(new bd(Pe.cursor(i.from),"start","start",i.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ci.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ci.define(()=>({}),{eventObservers:e})}static theme(e,n){let i=Pl.newName(),s=[I_.of(i),Rf.of(nw(`.${i}`,e))];return n&&n.dark&&s.push(ew.of(!0)),s}static baseTheme(e){return Zc.lowest(Rf.of(nw("."+tw,e,H8)))}static findFromDOM(e){var n;let i=e.querySelector(".cm-content"),s=i&&Mn.get(i)||Mn.get(e);return((n=s?.rootView)===null||n===void 0?void 0:n.view)||null}}$e.styleModule=Rf;$e.inputHandler=_8;$e.clipboardInputFilter=$k;$e.clipboardOutputFilter=Xk;$e.scrollHandler=x8;$e.focusChangeEffect=y8;$e.perLineTextDirection=b8;$e.exceptionSink=g8;$e.updateListener=QS;$e.editable=vr;$e.mouseSelectionStyle=p8;$e.dragMovesSelection=m8;$e.clickAddsSelectionRange=f8;$e.decorations=Mm;$e.outerDecorations=k8;$e.atomicRanges=xp;$e.bidiIsolatedRanges=C8;$e.scrollMargins=A8;$e.darkTheme=ew;$e.cspNonce=Ze.define({combine:t=>t.length?t[0]:""});$e.contentAttributes=Qk;$e.editorAttributes=w8;$e.lineWrapping=$e.contentAttributes.of({class:"cm-lineWrapping"});$e.announce=Ft.define();const jve=4096,Pj={};class oy{constructor(e,n,i,s,a,o){this.from=e,this.to=n,this.dir=i,this.isolates=s,this.fresh=a,this.order=o}static update(e,n){if(n.empty&&!e.some(a=>a.fresh))return e;let i=[],s=e.length?e[e.length-1].dir:qn.LTR;for(let a=Math.max(0,e.length-10);a<e.length;a++){let o=e[a];o.dir==s&&!n.touchesRange(o.from,o.to)&&i.push(new oy(n.mapPos(o.from,1),n.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return i}}function Ej(t,e,n){for(let i=t.state.facet(e),s=i.length-1;s>=0;s--){let a=i[s],o=typeof a=="function"?a(t):a;o&&HS(o,n)}return n}const Rve=Ge.mac?"mac":Ge.windows?"win":Ge.linux?"linux":"key";function Dve(t,e){const n=t.split(/-(?!$)/);let i=n[n.length-1];i=="Space"&&(i=" ");let s,a,o,r;for(let c=0;c<n.length-1;++c){const d=n[c];if(/^(cmd|meta|m)$/i.test(d))r=!0;else if(/^a(lt)?$/i.test(d))s=!0;else if(/^(c|ctrl|control)$/i.test(d))a=!0;else if(/^s(hift)?$/i.test(d))o=!0;else if(/^mod$/i.test(d))e=="mac"?r=!0:a=!0;else throw new Error("Unrecognized modifier name: "+d)}return s&&(i="Alt-"+i),a&&(i="Ctrl-"+i),r&&(i="Meta-"+i),o&&(i="Shift-"+i),i}function U_(t,e,n){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),n!==!1&&e.shiftKey&&(t="Shift-"+t),t}const Fve=Zc.default($e.domEventHandlers({keydown(t,e){return W8(V8(e.state),t,e,"editor")}})),Sp=Ze.define({enables:Fve}),jj=new WeakMap;function V8(t){let e=t.facet(Sp),n=jj.get(e);return n||jj.set(e,n=Bve(e.reduce((i,s)=>i.concat(s),[]))),n}function Ive(t,e,n){return W8(V8(t.state),e,t,n)}let gl=null;const Uve=4e3;function Bve(t,e=Rve){let n=Object.create(null),i=Object.create(null),s=(o,r)=>{let c=i[o];if(c==null)i[o]=r;else if(c!=r)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},a=(o,r,c,d,f)=>{var m,g;let y=n[o]||(n[o]=Object.create(null)),b=r.split(/ (?!$)/).map(A=>Dve(A,e));for(let A=1;A<b.length;A++){let k=b.slice(0,A).join(" ");s(k,!0),y[k]||(y[k]={preventDefault:!0,stopPropagation:!1,run:[T=>{let L=gl={view:T,prefix:k,scope:o};return setTimeout(()=>{gl==L&&(gl=null)},Uve),!0}]})}let v=b.join(" ");s(v,!1);let x=y[v]||(y[v]={preventDefault:!1,stopPropagation:!1,run:((g=(m=y._any)===null||m===void 0?void 0:m.run)===null||g===void 0?void 0:g.slice())||[]});c&&x.run.push(c),d&&(x.preventDefault=!0),f&&(x.stopPropagation=!0)};for(let o of t){let r=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let d of r){let f=n[d]||(n[d]=Object.create(null));f._any||(f._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:m}=o;for(let g in f)f[g].run.push(y=>m(y,iw))}let c=o[e]||o.key;if(c)for(let d of r)a(d,c,o.run,o.preventDefault,o.stopPropagation),o.shift&&a(d,"Shift-"+c,o.shift,o.preventDefault,o.stopPropagation)}return n}let iw=null;function W8(t,e,n,i){iw=e;let s=lbe(e),a=Es(s,0),o=vo(a)==s.length&&s!=" ",r="",c=!1,d=!1,f=!1;gl&&gl.view==n&&gl.scope==i&&(r=gl.prefix+" ",j8.indexOf(e.keyCode)<0&&(d=!0,gl=null));let m=new Set,g=x=>{if(x){for(let A of x.run)if(!m.has(A)&&(m.add(A),A(n)))return x.stopPropagation&&(f=!0),!0;x.preventDefault&&(x.stopPropagation&&(f=!0),d=!0)}return!1},y=t[i],b,v;return y&&(g(y[r+U_(s,e,!o)])?c=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ge.windows&&e.ctrlKey&&e.altKey)&&!(Ge.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(b=El[e.keyCode])&&b!=s?(g(y[r+U_(b,e,!0)])||e.shiftKey&&(v=Nm[e.keyCode])!=s&&v!=b&&g(y[r+U_(v,e,!1)]))&&(c=!0):o&&e.shiftKey&&g(y[r+U_(s,e,!0)])&&(c=!0),!c&&g(y._any)&&(c=!0)),d&&(c=!0),c&&f&&e.stopPropagation(),iw=null,c}class wp{constructor(e,n,i,s,a){this.className=e,this.left=n,this.top=i,this.width=s,this.height=a}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,i){if(i.empty){let s=e.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let a=G8(e);return[new wp(n,s.left-a.left,s.top-a.top,null,s.bottom-s.top)]}else return zve(e,n,i)}}function G8(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==qn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function Rj(t,e,n,i){let s=t.coordsAtPos(e,n*2);if(!s)return i;let a=t.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,r=t.posAtCoords({x:a.left+1,y:o}),c=t.posAtCoords({x:a.right-1,y:o});return r==null||c==null?i:{from:Math.max(i.from,Math.min(r,c)),to:Math.min(i.to,Math.max(r,c))}}function zve(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let i=Math.max(n.from,t.viewport.from),s=Math.min(n.to,t.viewport.to),a=t.textDirection==qn.LTR,o=t.contentDOM,r=o.getBoundingClientRect(),c=G8(t),d=o.querySelector(".cm-line"),f=d&&window.getComputedStyle(d),m=r.left+(f?parseInt(f.paddingLeft)+Math.min(0,parseInt(f.textIndent)):0),g=r.right-(f?parseInt(f.paddingRight):0),y=JS(t,i,1),b=JS(t,s,-1),v=y.type==vs.Text?y:null,x=b.type==vs.Text?b:null;if(v&&(t.lineWrapping||y.widgetLineBreaks)&&(v=Rj(t,i,1,v)),x&&(t.lineWrapping||b.widgetLineBreaks)&&(x=Rj(t,s,-1,x)),v&&x&&v.from==x.from&&v.to==x.to)return k(T(n.from,n.to,v));{let M=v?T(n.from,null,v):L(y,!1),O=x?T(null,n.to,x):L(b,!0),N=[];return(v||y).to<(x||b).from-(v&&x?1:0)||y.widgetLineBreaks>1&&M.bottom+t.defaultLineHeight/2<O.top?N.push(A(m,M.bottom,g,O.top)):M.bottom<O.top&&t.elementAtHeight((M.bottom+O.top)/2).type==vs.Text&&(M.bottom=O.top=(M.bottom+O.top)/2),k(M).concat(N).concat(k(O))}function A(M,O,N,P){return new wp(e,M-c.left,O-c.top,N-M,P-O)}function k({top:M,bottom:O,horizontal:N}){let P=[];for(let E=0;E<N.length;E+=2)P.push(A(N[E],M,N[E+1],O));return P}function T(M,O,N){let P=1e9,E=-1e9,R=[];function z(G,B,I,V,K){let $=t.coordsAtPos(G,G==N.to?-2:2),X=t.coordsAtPos(I,I==N.from?2:-2);!$||!X||(P=Math.min($.top,X.top,P),E=Math.max($.bottom,X.bottom,E),K==qn.LTR?R.push(a&&B?m:$.left,a&&V?g:X.right):R.push(!a&&V?m:X.left,!a&&B?g:$.right))}let D=M??N.from,Q=O??N.to;for(let G of t.visibleRanges)if(G.to>D&&G.from<Q)for(let B=Math.max(G.from,D),I=Math.min(G.to,Q);;){let V=t.state.doc.lineAt(B);for(let K of t.bidiSpans(V)){let $=K.from+V.from,X=K.to+V.from;if($>=I)break;X>B&&z(Math.max($,B),M==null&&$<=D,Math.min(X,I),O==null&&X>=Q,K.dir)}if(B=V.to+1,B>=I)break}return R.length==0&&z(D,M==null,Q,O==null,t.textDirection),{top:P,bottom:E,horizontal:R}}function L(M,O){let N=r.top+(O?M.top:M.bottom);return{top:N,bottom:N,horizontal:[]}}}function qve(t,e){return t.constructor==e.constructor&&t.eq(e)}class Kve{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(S0)!=e.state.facet(S0)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,i=e.facet(S0);for(;n<i.length&&i[n]!=this.layer;)n++;this.dom.style.zIndex=String((this.layer.above?150:-1)-n)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:n}=this.view;(e!=this.scaleX||n!=this.scaleY)&&(this.scaleX=e,this.scaleY=n,this.dom.style.transform=`scale(${1/e}, ${1/n})`)}draw(e){if(e.length!=this.drawn.length||e.some((n,i)=>!qve(n,this.drawn[i]))){let n=this.dom.firstChild,i=0;for(let s of e)s.update&&n&&s.constructor&&this.drawn[i].constructor&&s.update(n,this.drawn[i])?(n=n.nextSibling,i++):this.dom.insertBefore(s.draw(),n);for(;n;){let s=n.nextSibling;n.remove(),n=s}this.drawn=e,Ge.safari&&Ge.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const S0=Ze.define();function $8(t){return[ci.define(e=>new Kve(e,t)),S0.of(t)]}const Lm=Ze.define({combine(t){return Uo(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function Hve(t={}){return[Lm.of(t),Vve,Wve,Gve,v8.of(!0)]}function X8(t){return t.startState.facet(Lm)!=t.state.facet(Lm)}const Vve=$8({above:!0,markers(t){let{state:e}=t,n=e.facet(Lm),i=[];for(let s of e.selection.ranges){let a=s==e.selection.main;if(s.empty||n.drawRangeCursor){let o=a?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",r=s.empty?s:Pe.cursor(s.head,s.head>s.anchor?-1:1);for(let c of wp.forRange(t,o,r))i.push(c)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=X8(t);return n&&Dj(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){Dj(e.state,t)},class:"cm-cursorLayer"});function Dj(t,e){e.style.animationDuration=t.facet(Lm).cursorBlinkRate+"ms"}const Wve=$8({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:wp.forRange(t,"cm-selectionBackground",e)).reduce((e,n)=>e.concat(n))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||X8(t)},class:"cm-selectionLayer"}),Gve=Zc.highest($e.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Q8=Ft.define({map(t,e){return t==null?null:e.mapPos(t)}}),If=$i.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,i)=>i.is(Q8)?i.value:n,t)}}),$ve=ci.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(If);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(If)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(If),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:n.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(If)!=t&&this.view.dispatch({effects:Q8.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Xve(){return[If,$ve]}function Fj(t,e,n,i,s){e.lastIndex=0;for(let a=t.iterRange(n,i),o=n,r;!a.next().done;o+=a.value.length)if(!a.lineBreak)for(;r=e.exec(a.value);)s(o+r.index,r)}function Qve(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let i=[];for(let{from:s,to:a}of n)s=Math.max(t.state.doc.lineAt(s).from,s-e),a=Math.min(t.state.doc.lineAt(a).to,a+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=a:i.push({from:s,to:a});return i}class Yve{constructor(e){const{regexp:n,decoration:i,decorate:s,boundary:a,maxLength:o=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,s)this.addMatch=(r,c,d,f)=>s(f,d,d+r[0].length,r,c);else if(typeof i=="function")this.addMatch=(r,c,d,f)=>{let m=i(r,c,d);m&&f(d,d+r[0].length,m)};else if(i)this.addMatch=(r,c,d,f)=>f(d,d+r[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=a,this.maxLength=o}createDeco(e){let n=new Lr,i=n.add.bind(n);for(let{from:s,to:a}of Qve(e,this.maxLength))Fj(e.state.doc,this.regexp,s,a,(o,r)=>this.addMatch(r,e,o,i));return n.finish()}updateDeco(e,n){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((a,o,r,c)=>{c>=e.view.viewport.from&&r<=e.view.viewport.to&&(i=Math.min(r,i),s=Math.max(c,s))}),e.viewportMoved||s-i>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,n.map(e.changes),i,s):n}updateRange(e,n,i,s){for(let a of e.visibleRanges){let o=Math.max(a.from,i),r=Math.min(a.to,s);if(r>=o){let c=e.state.doc.lineAt(o),d=c.to<r?e.state.doc.lineAt(r):c,f=Math.max(a.from,c.from),m=Math.min(a.to,d.to);if(this.boundary){for(;o>c.from;o--)if(this.boundary.test(c.text[o-1-c.from])){f=o;break}for(;r<d.to;r++)if(this.boundary.test(d.text[r-d.from])){m=r;break}}let g=[],y,b=(v,x,A)=>g.push(A.range(v,x));if(c==d)for(this.regexp.lastIndex=f-c.from;(y=this.regexp.exec(c.text))&&y.index<m-c.from;)this.addMatch(y,e,y.index+c.from,b);else Fj(e.state.doc,this.regexp,f,m,(v,x)=>this.addMatch(x,e,v,b));n=n.update({filterFrom:f,filterTo:m,filter:(v,x)=>v<f||x>m,add:g})}}return n}}const sw=/x/.unicode!=null?"gu":"g",Jve=new RegExp(`[\0-\b
|
||
--\u2028\u2029\uFEFF-]`,sw),Zve={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Z1=null;function exe(){var t;if(Z1==null&&typeof document<"u"&&document.body){let e=document.body.style;Z1=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return Z1||!1}const w0=Ze.define({combine(t){let e=Uo(t,{render:null,specialChars:Jve,addSpecialChars:null});return(e.replaceTabs=!exe())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,sw)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,sw)),e}});function txe(t={}){return[w0.of(t),nxe()]}let Ij=null;function nxe(){return Ij||(Ij=ci.fromClass(class{constructor(t){this.view=t,this.decorations=vt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(w0)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new Yve({regexp:t.specialChars,decoration:(e,n,i)=>{let{doc:s}=n.state,a=Es(e[0],0);if(a==9){let o=s.lineAt(i),r=n.state.tabSize,c=sh(o.text,r,i-o.from);return vt.replace({widget:new oxe((r-c%r)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[a]||(this.decorationCache[a]=vt.replace({widget:new axe(t,a)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(w0);t.startState.facet(w0)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const ixe="•";function sxe(t){return t>=32?ixe:t==10?"":String.fromCharCode(9216+t)}class axe extends Rr{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=sxe(this.code),i=e.state.phrase("Control character")+" "+(Zve[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,n);if(s)return s;let a=document.createElement("span");return a.textContent=n,a.title=i,a.setAttribute("aria-label",i),a.className="cm-specialChar",a}ignoreEvent(){return!1}}class oxe extends Rr{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function rxe(){return cxe}const lxe=vt.line({class:"cm-activeLine"}),cxe=ci.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let i of t.state.selection.ranges){let s=t.lineBlockAt(i.head);s.from>e&&(n.push(lxe.range(s.from)),e=s.from)}return vt.set(n)}},{decorations:t=>t.decorations});class uxe extends Rr{constructor(e){super(),this.content=e}toDOM(e){let n=document.createElement("span");return n.className="cm-placeholder",n.style.pointerEvents="none",n.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),n.setAttribute("aria-hidden","true"),n}coordsAt(e){let n=e.firstChild?jd(e.firstChild):[];if(!n.length)return null;let i=window.getComputedStyle(e.parentNode),s=yp(n[0],i.direction!="rtl"),a=parseInt(i.lineHeight);return s.bottom-s.top>a*1.5?{left:s.left,right:s.right,top:s.top,bottom:s.top+a}:s}ignoreEvent(){return!1}}function dxe(t){let e=ci.fromClass(class{constructor(n){this.view=n,this.placeholder=t?vt.set([vt.widget({widget:new uxe(t),side:1}).range(0)]):vt.none}get decorations(){return this.view.state.doc.length?vt.none:this.placeholder}},{decorations:n=>n.decorations});return typeof t=="string"?[e,$e.contentAttributes.of({"aria-placeholder":t})]:e}const aw=2e3;function hxe(t,e,n){let i=Math.min(e.line,n.line),s=Math.max(e.line,n.line),a=[];if(e.off>aw||n.off>aw||e.col<0||n.col<0){let o=Math.min(e.off,n.off),r=Math.max(e.off,n.off);for(let c=i;c<=s;c++){let d=t.doc.line(c);d.length<=r&&a.push(Pe.range(d.from+o,d.to+r))}}else{let o=Math.min(e.col,n.col),r=Math.max(e.col,n.col);for(let c=i;c<=s;c++){let d=t.doc.line(c),f=DS(d.text,o,t.tabSize,!0);if(f<0)a.push(Pe.cursor(d.to));else{let m=DS(d.text,r,t.tabSize);a.push(Pe.range(d.from+f,d.from+m))}}}return a}function fxe(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function Uj(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(n),s=n-i.from,a=s>aw?-1:s==i.length?fxe(t,e.clientX):sh(i.text,t.state.tabSize,n-i.from);return{line:i.number,col:a,off:s}}function mxe(t,e){let n=Uj(t,e),i=t.state.selection;return n?{update(s){if(s.docChanged){let a=s.changes.mapPos(s.startState.doc.line(n.line).from),o=s.state.doc.lineAt(a);n={line:o.number,col:n.col,off:Math.min(n.off,o.length)},i=i.map(s.changes)}},get(s,a,o){let r=Uj(t,s);if(!r)return i;let c=hxe(t.state,n,r);return c.length?o?Pe.create(c.concat(i.ranges)):Pe.create(c):i}}:null}function pxe(t){let e=(n=>n.altKey&&n.button==0);return $e.mouseSelectionStyle.of((n,i)=>e(i)?mxe(n,i):null)}const gxe={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},_xe={style:"cursor: crosshair"};function yxe(t={}){let[e,n]=gxe[t.key||"Alt"],i=ci.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||n(s))},keyup(s){(s.keyCode==e||!n(s))&&this.set(!1)},mousemove(s){this.set(n(s))}}});return[i,$e.contentAttributes.of(s=>{var a;return!((a=s.plugin(i))===null||a===void 0)&&a.isDown?_xe:null})]}const B_="-10000px";class Y8{constructor(e,n,i,s){this.facet=n,this.createTooltipView=i,this.removeTooltipView=s,this.input=e.state.facet(n),this.tooltips=this.input.filter(o=>o);let a=null;this.tooltipViews=this.tooltips.map(o=>a=i(o,a))}update(e,n){var i;let s=e.state.facet(this.facet),a=s.filter(c=>c);if(s===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let o=[],r=n?[]:null;for(let c=0;c<a.length;c++){let d=a[c],f=-1;if(d){for(let m=0;m<this.tooltips.length;m++){let g=this.tooltips[m];g&&g.create==d.create&&(f=m)}if(f<0)o[c]=this.createTooltipView(d,c?o[c-1]:null),r&&(r[c]=!!d.above);else{let m=o[c]=this.tooltipViews[f];r&&(r[c]=n[f]),m.update&&m.update(e)}}}for(let c of this.tooltipViews)o.indexOf(c)<0&&(this.removeTooltipView(c),(i=c.destroy)===null||i===void 0||i.call(c));return n&&(r.forEach((c,d)=>n[d]=c),n.length=r.length),this.input=s,this.tooltips=a,this.tooltipViews=o,!0}}function bxe(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const e2=Ze.define({combine:t=>{var e,n,i;return{position:Ge.ios?"absolute":((e=t.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(s=>s.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((i=t.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||bxe}}}),Bj=new WeakMap,tC=ci.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(e2);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Y8(t,nC,(n,i)=>this.createTooltip(n,i),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,i=t.state.facet(e2);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;n=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),i=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",n.dom.appendChild(s)}return n.dom.style.position=this.position,n.dom.style.top=B_,n.dom.style.left="0px",this.container.insertBefore(n.dom,i),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:a}=this.manager.tooltipViews[0];if(Ge.safari){let o=a.getBoundingClientRect();n=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else n=!!a.offsetParent&&a.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let a=this.parent.getBoundingClientRect();a.width&&a.height&&(t=a.width/this.parent.offsetWidth,e=a.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),s=Yk(this.view);return{visible:{left:i.left+s.left,top:i.top+s.top,right:i.right-s.right,bottom:i.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((a,o)=>{let r=this.manager.tooltipViews[o];return r.getCoords?r.getCoords(a.pos):this.view.coordsAtPos(a.pos)}),size:this.manager.tooltipViews.map(({dom:a})=>a.getBoundingClientRect()),space:this.view.state.facet(e2).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let r of this.manager.tooltipViews)r.dom.style.position="absolute"}let{visible:n,space:i,scaleX:s,scaleY:a}=t,o=[];for(let r=0;r<this.manager.tooltips.length;r++){let c=this.manager.tooltips[r],d=this.manager.tooltipViews[r],{dom:f}=d,m=t.pos[r],g=t.size[r];if(!m||c.clip!==!1&&(m.bottom<=Math.max(n.top,i.top)||m.top>=Math.min(n.bottom,i.bottom)||m.right<Math.max(n.left,i.left)-.1||m.left>Math.min(n.right,i.right)+.1)){f.style.top=B_;continue}let y=c.arrow?d.dom.querySelector(".cm-tooltip-arrow"):null,b=y?7:0,v=g.right-g.left,x=(e=Bj.get(d))!==null&&e!==void 0?e:g.bottom-g.top,A=d.offset||xxe,k=this.view.textDirection==qn.LTR,T=g.width>i.right-i.left?k?i.left:i.right-g.width:k?Math.max(i.left,Math.min(m.left-(y?14:0)+A.x,i.right-v)):Math.min(Math.max(i.left,m.left-v+(y?14:0)-A.x),i.right-v),L=this.above[r];!c.strictSide&&(L?m.top-x-b-A.y<i.top:m.bottom+x+b+A.y>i.bottom)&&L==i.bottom-m.bottom>m.top-i.top&&(L=this.above[r]=!L);let M=(L?m.top-i.top:i.bottom-m.bottom)-b;if(M<x&&d.resize!==!1){if(M<this.view.defaultLineHeight){f.style.top=B_;continue}Bj.set(d,x),f.style.height=(x=M)/a+"px"}else f.style.height&&(f.style.height="");let O=L?m.top-x-b-A.y:m.bottom+b+A.y,N=T+v;if(d.overlap!==!0)for(let P of o)P.left<N&&P.right>T&&P.top<O+x&&P.bottom>O&&(O=L?P.top-x-2-b:P.bottom+b+2);if(this.position=="absolute"?(f.style.top=(O-t.parent.top)/a+"px",zj(f,(T-t.parent.left)/s)):(f.style.top=O/a+"px",zj(f,T/s)),y){let P=m.left+(k?A.x:-A.x)-(T+14-7);y.style.left=P/s+"px"}d.overlap!==!0&&o.push({left:T,top:O,right:N,bottom:O+x}),f.classList.toggle("cm-tooltip-above",L),f.classList.toggle("cm-tooltip-below",!L),d.positioned&&d.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=B_}},{eventObservers:{scroll(){this.maybeMeasure()}}});function zj(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const vxe=$e.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),xxe={x:0,y:0},nC=Ze.define({enables:[tC,vxe]}),ry=Ze.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class gb{static create(e){return new gb(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Y8(e,ry,(n,i)=>this.createHostedView(n,i),n=>n.dom.remove())}createHostedView(e,n){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let i of this.manager.tooltipViews){let s=i[e];if(s!==void 0){if(n===void 0)n=s;else if(n!==s)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Sxe=nC.compute([ry],t=>{let e=t.facet(ry);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var i;return(i=n.end)!==null&&i!==void 0?i:n.pos})),create:gb.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class wxe{constructor(e,n,i,s,a){this.view=e,this.source=n,this.field=i,this.setHover=s,this.hoverTime=a,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:n}=this,i=e.docView.nearest(n.target);if(!i)return;let s,a=1;if(i instanceof kr)s=i.posAtStart;else{if(s=e.posAtCoords(n),s==null)return;let r=e.coordsAtPos(s);if(!r||n.y<r.top||n.y>r.bottom||n.x<r.left-e.defaultCharacterWidth||n.x>r.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(s)).find(f=>f.from<=s&&f.to>=s),d=c&&c.dir==qn.RTL?-1:1;a=n.x<r.left?-d:d}let o=this.source(e,s,a);if(o?.then){let r=this.pending={pos:s};o.then(c=>{this.pending==r&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>Ds(e.state,c,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(tC),n=e?e.manager.tooltips.findIndex(i=>i.create==gb.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:a}=this;if(s.length&&a&&!kxe(a.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,r=(i=(n=s[0])===null||n===void 0?void 0:n.end)!==null&&i!==void 0?i:o;(o==r?this.view.posAtCoords(this.lastMove)!=o:!Cxe(this.view,o,r,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=i=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const z_=4;function kxe(t,e){let{left:n,right:i,top:s,bottom:a}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let r=o.getBoundingClientRect();s=Math.min(r.top,s),a=Math.max(r.bottom,a)}return e.clientX>=n-z_&&e.clientX<=i+z_&&e.clientY>=s-z_&&e.clientY<=a+z_}function Cxe(t,e,n,i,s,a){let o=t.scrollDOM.getBoundingClientRect(),r=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>i||o.right<i||o.top>s||Math.min(o.bottom,r)<s)return!1;let c=t.posAtCoords({x:i,y:s},!1);return c>=e&&c<=n}function Axe(t,e={}){let n=Ft.define(),i=$i.define({create(){return[]},update(s,a){if(s.length&&(e.hideOnChange&&(a.docChanged||a.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(a,o))),a.docChanged)){let o=[];for(let r of s){let c=a.changes.mapPos(r.pos,-1,ps.TrackDel);if(c!=null){let d=Object.assign(Object.create(null),r);d.pos=c,d.end!=null&&(d.end=a.changes.mapPos(d.end)),o.push(d)}}s=o}for(let o of a.effects)o.is(n)&&(s=o.value),o.is(Nxe)&&(s=[]);return s},provide:s=>ry.from(s)});return{active:i,extension:[i,ci.define(s=>new wxe(s,t,i,n,e.hoverTime||300)),Sxe]}}function J8(t,e){let n=t.plugin(tC);if(!n)return null;let i=n.manager.tooltips.indexOf(e);return i<0?null:n.manager.tooltipViews[i]}const Nxe=Ft.define(),qj=Ze.define({combine(t){let e,n;for(let i of t)e=e||i.topContainer,n=n||i.bottomContainer;return{topContainer:e,bottomContainer:n}}});function Om(t,e){let n=t.plugin(Z8),i=n?n.specs.indexOf(e):-1;return i>-1?n.panels[i]:null}const Z8=ci.fromClass(class{constructor(t){this.input=t.state.facet(Pm),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(qj);this.top=new q_(t,!0,e.topContainer),this.bottom=new q_(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(qj);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new q_(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new q_(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(Pm);if(n!=this.input){let i=n.filter(c=>c),s=[],a=[],o=[],r=[];for(let c of i){let d=this.specs.indexOf(c),f;d<0?(f=c(t.view),r.push(f)):(f=this.panels[d],f.update&&f.update(t)),s.push(f),(f.top?a:o).push(f)}this.specs=i,this.panels=s,this.top.sync(a),this.bottom.sync(o);for(let c of r)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>$e.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class q_{constructor(e,n,i){this.view=e,this.top=n,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=Kj(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=Kj(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Kj(t){let e=t.nextSibling;return t.remove(),e}const Pm=Ze.define({enables:Z8});class Pr extends qc{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Pr.prototype.elementClass="";Pr.prototype.toDOM=void 0;Pr.prototype.mapMode=ps.TrackBefore;Pr.prototype.startSide=Pr.prototype.endSide=-1;Pr.prototype.point=!0;const k0=Ze.define(),Txe=Ze.define(),Mxe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>fn.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},rm=Ze.define();function Lxe(t){return[eF(),rm.of({...Mxe,...t})]}const Hj=Ze.define({combine:t=>t.some(e=>e)});function eF(t){return[Oxe]}const Oxe=ci.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(rm).map(e=>new Wj(t,e)),this.fixed=!t.state.facet(Hj);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,i=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(i<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Hj)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=fn.iter(this.view.state.facet(k0),this.view.viewport.from),i=[],s=this.gutters.map(a=>new Pxe(a,this.view.viewport,-this.view.documentPadding.top));for(let a of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(a.type)){let o=!0;for(let r of a.type)if(r.type==vs.Text&&o){ow(n,i,r.from);for(let c of s)c.line(this.view,r,i);o=!1}else if(r.widget)for(let c of s)c.widget(this.view,r)}else if(a.type==vs.Text){ow(n,i,a.from);for(let o of s)o.line(this.view,a,i)}else if(a.widget)for(let o of s)o.widget(this.view,a);for(let a of s)a.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(rm),n=t.state.facet(rm),i=t.docChanged||t.heightChanged||t.viewportChanged||!fn.eq(t.startState.facet(k0),t.state.facet(k0),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let s of this.gutters)s.update(t)&&(i=!0);else{i=!0;let s=[];for(let a of n){let o=e.indexOf(a);o<0?s.push(new Wj(this.view,a)):(this.gutters[o].update(t),s.push(this.gutters[o]))}for(let a of this.gutters)a.dom.remove(),s.indexOf(a)<0&&a.destroy();for(let a of s)a.config.side=="after"?this.getDOMAfter().appendChild(a.dom):this.dom.appendChild(a.dom);this.gutters=s}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>$e.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let i=n.dom.offsetWidth*e.scaleX,s=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==qn.LTR?{left:i,right:s}:{right:i,left:s}})});function Vj(t){return Array.isArray(t)?t:[t]}function ow(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class Pxe{constructor(e,n,i){this.gutter=e,this.height=i,this.i=0,this.cursor=fn.iter(e.markers,n.from)}addElement(e,n,i){let{gutter:s}=this,a=(n.top-this.height)/e.scaleY,o=n.height/e.scaleY;if(this.i==s.elements.length){let r=new tF(e,o,a,i);s.elements.push(r),s.dom.appendChild(r.dom)}else s.elements[this.i].update(e,o,a,i);this.height=n.bottom,this.i++}line(e,n,i){let s=[];ow(this.cursor,s,n.from),i.length&&(s=s.concat(i));let a=this.gutter.config.lineMarker(e,n,s);a&&s.unshift(a);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,n,s)}widget(e,n){let i=this.gutter.config.widgetMarker(e,n.widget,n),s=i?[i]:null;for(let a of e.state.facet(Txe)){let o=a(e,n.widget,n);o&&(s||(s=[])).push(o)}s&&this.addElement(e,n,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class Wj{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in n.domEventHandlers)this.dom.addEventListener(i,s=>{let a=s.target,o;if(a!=this.dom&&this.dom.contains(a)){for(;a.parentNode!=this.dom;)a=a.parentNode;let c=a.getBoundingClientRect();o=(c.top+c.bottom)/2}else o=s.clientY;let r=e.lineBlockAtHeight(o-e.documentTop);n.domEventHandlers[i](e,r,s)&&s.preventDefault()});this.markers=Vj(n.markers(e)),n.initialSpacer&&(this.spacer=new tF(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=Vj(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!fn.eq(this.markers,n,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class tF{constructor(e,n,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,i,s)}update(e,n,i,s){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),Exe(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,n){let i="cm-gutterElement",s=this.dom.firstChild;for(let a=0,o=0;;){let r=o,c=a<n.length?n[a++]:null,d=!1;if(c){let f=c.elementClass;f&&(i+=" "+f);for(let m=o;m<this.markers.length;m++)if(this.markers[m].compare(c)){r=m,d=!0;break}}else r=this.markers.length;for(;o<r;){let f=this.markers[o++];if(f.toDOM){f.destroy(s);let m=s.nextSibling;s.remove(),s=m}}if(!c)break;c.toDOM&&(d?s=s.nextSibling:this.dom.insertBefore(c.toDOM(e),s)),d&&o++}this.dom.className=i,this.markers=n}destroy(){this.setMarkers(null,[])}}function Exe(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(!t[n].compare(e[n]))return!1;return!0}const jxe=Ze.define(),Rxe=Ze.define(),rd=Ze.define({combine(t){return Uo(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,n){let i=Object.assign({},e);for(let s in n){let a=i[s],o=n[s];i[s]=a?(r,c,d)=>a(r,c,d)||o(r,c,d):o}return i}})}});class t2 extends Pr{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function n2(t,e){return t.state.facet(rd).formatNumber(e,t.state)}const Dxe=rm.compute([rd],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(jxe)},lineMarker(e,n,i){return i.some(s=>s.toDOM)?null:new t2(n2(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,i)=>{for(let s of e.state.facet(Rxe)){let a=s(e,n,i);if(a)return a}return null},lineMarkerChange:e=>e.startState.facet(rd)!=e.state.facet(rd),initialSpacer(e){return new t2(n2(e,Gj(e.state.doc.lines)))},updateSpacer(e,n){let i=n2(n.view,Gj(n.view.state.doc.lines));return i==e.number?e:new t2(i)},domEventHandlers:t.facet(rd).domEventHandlers,side:"before"}));function Fxe(t={}){return[rd.of(t),eF(),Dxe]}function Gj(t){let e=9;for(;e<t;)e=e*10+9;return e}const Ixe=new class extends Pr{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Uxe=k0.compute(["selection"],t=>{let e=[],n=-1;for(let i of t.selection.ranges){let s=t.doc.lineAt(i.head).from;s>n&&(n=s,e.push(Ixe.range(s)))}return fn.of(e)});function Bxe(){return Uxe}const nF=1024;let zxe=0;class i2{constructor(e,n){this.from=e,this.to=n}}class $t{constructor(e={}){this.id=zxe++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=zs.match(e)),n=>{let i=e(n);return i===void 0?null:[this,i]}}}$t.closedBy=new $t({deserialize:t=>t.split(" ")});$t.openedBy=new $t({deserialize:t=>t.split(" ")});$t.group=new $t({deserialize:t=>t.split(" ")});$t.isolate=new $t({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});$t.contextHash=new $t({perNode:!0});$t.lookAhead=new $t({perNode:!0});$t.mounted=new $t({perNode:!0});class ly{constructor(e,n,i){this.tree=e,this.overlay=n,this.parser=i}static get(e){return e&&e.props&&e.props[$t.mounted.id]}}const qxe=Object.create(null);class zs{constructor(e,n,i,s=0){this.name=e,this.props=n,this.id=i,this.flags=s}static define(e){let n=e.props&&e.props.length?Object.create(null):qxe,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new zs(e.name||"",n,e.id,i);if(e.props){for(let a of e.props)if(Array.isArray(a)||(a=a(s)),a){if(a[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[a[0].id]=a[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop($t.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let i in e)for(let s of i.split(" "))n[s]=e[i];return i=>{for(let s=i.prop($t.group),a=-1;a<(s?s.length:0);a++){let o=n[a<0?i.name:s[a]];if(o)return o}}}}zs.none=new zs("",Object.create(null),0,8);class iC{constructor(e){this.types=e;for(let n=0;n<e.length;n++)if(e[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let n=[];for(let i of this.types){let s=null;for(let a of e){let o=a(i);if(o){s||(s=Object.assign({},i.props));let r=o[1],c=o[0];c.combine&&c.id in s&&(r=c.combine(s[c.id],r)),s[c.id]=r}}n.push(s?new zs(i.name,s,i.id,i.flags):i)}return new iC(n)}}const K_=new WeakMap,$j=new WeakMap;var Pi;(function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"})(Pi||(Pi={}));class xi{constructor(e,n,i,s,a){if(this.type=e,this.children=n,this.positions=i,this.length=s,this.props=null,a&&a.length){this.props=Object.create(null);for(let[o,r]of a)this.props[typeof o=="number"?o:o.id]=r}}toString(){let e=ly.get(this);if(e&&!e.overlay)return e.tree.toString();let n="";for(let i of this.children){let s=i.toString();s&&(n&&(n+=","),n+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(e=0){return new lw(this.topNode,e)}cursorAt(e,n=0,i=0){let s=K_.get(this)||this.topNode,a=new lw(s);return a.moveTo(e,n),K_.set(this,a._tree),a}get topNode(){return new Ca(this,0,0,null)}resolve(e,n=0){let i=Em(K_.get(this)||this.topNode,e,n,!1);return K_.set(this,i),i}resolveInner(e,n=0){let i=Em($j.get(this)||this.topNode,e,n,!0);return $j.set(this,i),i}resolveStack(e,n=0){return Vxe(this,e,n)}iterate(e){let{enter:n,leave:i,from:s=0,to:a=this.length}=e,o=e.mode||0,r=(o&Pi.IncludeAnonymous)>0;for(let c=this.cursor(o|Pi.IncludeAnonymous);;){let d=!1;if(c.from<=a&&c.to>=s&&(!r&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;d=!0}for(;d&&i&&(r||!c.type.isAnonymous)&&i(c),!c.nextSibling();){if(!c.parent())return;d=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:oC(zs.none,this.children,this.positions,0,this.children.length,0,this.length,(n,i,s)=>new xi(this.type,n,i,s,this.propValues),e.makeTree||((n,i,s)=>new xi(zs.none,n,i,s)))}static build(e){return Wxe(e)}}xi.empty=new xi(zs.none,[],[],0);class sC{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new sC(this.buffer,this.index)}}class Rl{constructor(e,n,i){this.buffer=e,this.length=n,this.set=i}get type(){return zs.none}toString(){let e=[];for(let n=0;n<this.buffer.length;)e.push(this.childString(n)),n=this.buffer[n+3];return e.join(",")}childString(e){let n=this.buffer[e],i=this.buffer[e+3],s=this.set.types[n],a=s.name;if(/\W/.test(a)&&!s.isError&&(a=JSON.stringify(a)),e+=4,i==e)return a;let o=[];for(;e<i;)o.push(this.childString(e)),e=this.buffer[e+3];return a+"("+o.join(",")+")"}findChild(e,n,i,s,a){let{buffer:o}=this,r=-1;for(let c=e;c!=n&&!(iF(a,s,o[c+1],o[c+2])&&(r=c,i>0));c=o[c+3]);return r}slice(e,n,i){let s=this.buffer,a=new Uint16Array(n-e),o=0;for(let r=e,c=0;r<n;){a[c++]=s[r++],a[c++]=s[r++]-i;let d=a[c++]=s[r++]-i;a[c++]=s[r++]-e,o=Math.max(o,d)}return new Rl(a,o,this.set)}}function iF(t,e,n,i){switch(t){case-2:return n<e;case-1:return i>=e&&n<e;case 0:return n<e&&i>e;case 1:return n<=e&&i>e;case 2:return i>e;case 4:return!0}}function Em(t,e,n,i){for(var s;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to<e);){let o=!i&&t instanceof Ca&&t.index<0?null:t.parent;if(!o)return t;t=o}let a=i?0:Pi.IgnoreOverlays;if(i)for(let o=t,r=o.parent;r;o=r,r=o.parent)o instanceof Ca&&o.index<0&&((s=r.enter(e,n,a))===null||s===void 0?void 0:s.from)!=o.from&&(t=r);for(;;){let o=t.enter(e,n,a);if(!o)return t;t=o}}class sF{cursor(e=0){return new lw(this,e)}getChild(e,n=null,i=null){let s=Xj(this,e,n,i);return s.length?s[0]:null}getChildren(e,n=null,i=null){return Xj(this,e,n,i)}resolve(e,n=0){return Em(this,e,n,!1)}resolveInner(e,n=0){return Em(this,e,n,!0)}matchContext(e){return rw(this.parent,e)}enterUnfinishedNodesBefore(e){let n=this.childBefore(e),i=this;for(;n;){let s=n.lastChild;if(!s||s.to!=n.to)break;s.type.isError&&s.from==s.to?(i=n,n=s.prevSibling):n=s}return i}get node(){return this}get next(){return this.parent}}class Ca extends sF{constructor(e,n,i,s){super(),this._tree=e,this.from=n,this.index=i,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,n,i,s,a=0){for(let o=this;;){for(let{children:r,positions:c}=o._tree,d=n>0?r.length:-1;e!=d;e+=n){let f=r[e],m=c[e]+o.from;if(iF(s,i,m,m+f.length)){if(f instanceof Rl){if(a&Pi.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,i-m,s);if(g>-1)return new kl(new Kxe(o,f,e,m),null,g)}else if(a&Pi.IncludeAnonymous||!f.type.isAnonymous||aC(f)){let g;if(!(a&Pi.IgnoreMounts)&&(g=ly.get(f))&&!g.overlay)return new Ca(g.tree,m,e,o);let y=new Ca(f,m,e,o);return a&Pi.IncludeAnonymous||!y.type.isAnonymous?y:y.nextChild(n<0?f.children.length-1:0,n,i,s)}}}if(a&Pi.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+n:e=n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,i=0){let s;if(!(i&Pi.IgnoreOverlays)&&(s=ly.get(this._tree))&&s.overlay){let a=e-this.from;for(let{from:o,to:r}of s.overlay)if((n>0?o<=a:o<a)&&(n<0?r>=a:r>a))return new Ca(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Xj(t,e,n,i){let s=t.cursor(),a=[];if(!s.firstChild())return a;if(n!=null){for(let o=!1;!o;)if(o=s.type.is(n),!s.nextSibling())return a}for(;;){if(i!=null&&s.type.is(i))return a;if(s.type.is(e)&&a.push(s.node),!s.nextSibling())return i==null?a:[]}}function rw(t,e,n=e.length-1){for(let i=t;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[n]&&e[n]!=i.name)return!1;n--}}return!0}class Kxe{constructor(e,n,i,s){this.parent=e,this.buffer=n,this.index=i,this.start=s}}class kl extends sF{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,i){super(),this.context=e,this._parent=n,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,n,i){let{buffer:s}=this.context,a=s.findChild(this.index+4,s.buffer[this.index+3],e,n-this.context.start,i);return a<0?null:new kl(this.context,this,a)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,i=0){if(i&Pi.ExcludeBuffers)return null;let{buffer:s}=this.context,a=s.findChild(this.index+4,s.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return a<0?null:new kl(this.context,this,a)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new kl(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new kl(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:i}=this.context,s=this.index+4,a=i.buffer[this.index+3];if(a>s){let o=i.buffer[this.index+1];e.push(i.slice(s,a,o)),n.push(0)}return new xi(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function aF(t){if(!t.length)return null;let e=0,n=t[0];for(let a=1;a<t.length;a++){let o=t[a];(o.from>n.from||o.to<n.to)&&(n=o,e=a)}let i=n instanceof Ca&&n.index<0?null:n.parent,s=t.slice();return i?s[e]=i:s.splice(e,1),new Hxe(s,n)}class Hxe{constructor(e,n){this.heads=e,this.node=n}get next(){return aF(this.heads)}}function Vxe(t,e,n){let i=t.resolveInner(e,n),s=null;for(let a=i instanceof Ca?i:i.context.parent;a;a=a.parent)if(a.index<0){let o=a.parent;(s||(s=[i])).push(o.resolve(e,n)),a=o}else{let o=ly.get(a.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let r=new Ca(o.tree,o.overlay[0].from+a.from,-1,a);(s||(s=[i])).push(Em(r,e,n,!1))}}return s?aF(s):i}class lw{get name(){return this.type.name}constructor(e,n=0){if(this.mode=n,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Ca)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=n||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Ca?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,i,this.mode));let{buffer:s}=this.buffer,a=s.findChild(this.index+4,s.buffer[this.index+3],e,n-this.buffer.start,i);return a<0?!1:(this.stack.push(this.index),this.yieldBuf(a))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,i=this.mode){return this.buffer?i&Pi.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pi.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pi.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(n.findChild(s,this.index,-1,0,4))}else{let s=n.buffer[this.index+3];if(s<(i<0?n.buffer.length:n.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,i,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let a=0;a<this.index;a++)if(s.buffer.buffer[a+3]<this.index)return!1;({index:n,parent:i}=s)}else({index:n,_parent:i}=this._tree);for(;i;{index:n,_parent:i}=i)if(n>-1)for(let a=n+e,o=e<0?-1:i._tree.children.length;a!=o;a+=e){let r=i._tree.children[a];if(this.mode&Pi.IncludeAnonymous||r instanceof Rl||!r.type.isAnonymous||aC(r))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,n););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,n=null,i=0;if(e&&e.context==this.buffer)e:for(let s=this.index,a=this.stack.length;a>=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;n=o,i=a+1;break e}s=this.stack[--a]}for(let s=i;s<this.stack.length;s++)n=new kl(this.buffer,n,this.stack[s]);return this.bufferNode=new kl(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,n){for(let i=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){i++;continue}this.type.isAnonymous||(s=!0)}for(;;){if(s&&n&&n(this),s=this.type.isAnonymous,!i)return;if(this.nextSibling())break;this.parent(),i--,s=!0}}}matchContext(e){if(!this.buffer)return rw(this.node.parent,e);let{buffer:n}=this.buffer,{types:i}=n.set;for(let s=e.length-1,a=this.stack.length-1;s>=0;a--){if(a<0)return rw(this._tree,e,s);let o=i[n.buffer[this.stack[a]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function aC(t){return t.children.some(e=>e instanceof Rl||!e.type.isAnonymous||aC(e))}function Wxe(t){var e;let{buffer:n,nodeSet:i,maxBufferLength:s=nF,reused:a=[],minRepeatType:o=i.types.length}=t,r=Array.isArray(n)?new sC(n,n.length):n,c=i.types,d=0,f=0;function m(M,O,N,P,E,R){let{id:z,start:D,end:Q,size:G}=r,B=f,I=d;if(G<0)if(r.next(),G==-1){let U=a[z];N.push(U),P.push(D-M);return}else if(G==-3){d=z;return}else if(G==-4){f=z;return}else throw new RangeError(`Unrecognized record size: ${G}`);let V=c[z],K,$,X=D-M;if(Q-D<=s&&($=x(r.pos-O,E))){let U=new Uint16Array($.size-$.skip),q=r.pos-$.size,Y=U.length;for(;r.pos>q;)Y=A($.start,U,Y);K=new Rl(U,Q-$.start,i),X=$.start-M}else{let U=r.pos-G;r.next();let q=[],Y=[],oe=z>=o?z:-1,se=0,F=Q;for(;r.pos>U;)oe>=0&&r.id==oe&&r.size>=0?(r.end<=F-s&&(b(q,Y,D,se,r.end,F,oe,B,I),se=q.length,F=r.end),r.next()):R>2500?g(D,U,q,Y):m(D,U,q,Y,oe,R+1);if(oe>=0&&se>0&&se<q.length&&b(q,Y,D,se,D,F,oe,B,I),q.reverse(),Y.reverse(),oe>-1&&se>0){let Z=y(V,I);K=oC(V,q,Y,0,q.length,0,Q-D,Z,Z)}else K=v(V,q,Y,Q-D,B-Q,I)}N.push(K),P.push(X)}function g(M,O,N,P){let E=[],R=0,z=-1;for(;r.pos>O;){let{id:D,start:Q,end:G,size:B}=r;if(B>4)r.next();else{if(z>-1&&Q<z)break;z<0&&(z=G-s),E.push(D,Q,G),R++,r.next()}}if(R){let D=new Uint16Array(R*4),Q=E[E.length-2];for(let G=E.length-3,B=0;G>=0;G-=3)D[B++]=E[G],D[B++]=E[G+1]-Q,D[B++]=E[G+2]-Q,D[B++]=B;N.push(new Rl(D,E[2]-Q,i)),P.push(Q-M)}}function y(M,O){return(N,P,E)=>{let R=0,z=N.length-1,D,Q;if(z>=0&&(D=N[z])instanceof xi){if(!z&&D.type==M&&D.length==E)return D;(Q=D.prop($t.lookAhead))&&(R=P[z]+D.length+Q)}return v(M,N,P,E,R,O)}}function b(M,O,N,P,E,R,z,D,Q){let G=[],B=[];for(;M.length>P;)G.push(M.pop()),B.push(O.pop()+N-E);M.push(v(i.types[z],G,B,R-E,D-R,Q)),O.push(E-N)}function v(M,O,N,P,E,R,z){if(R){let D=[$t.contextHash,R];z=z?[D].concat(z):[D]}if(E>25){let D=[$t.lookAhead,E];z=z?[D].concat(z):[D]}return new xi(M,O,N,P,z)}function x(M,O){let N=r.fork(),P=0,E=0,R=0,z=N.end-s,D={size:0,start:0,skip:0};e:for(let Q=N.pos-M;N.pos>Q;){let G=N.size;if(N.id==O&&G>=0){D.size=P,D.start=E,D.skip=R,R+=4,P+=4,N.next();continue}let B=N.pos-G;if(G<0||B<Q||N.start<z)break;let I=N.id>=o?4:0,V=N.start;for(N.next();N.pos>B;){if(N.size<0)if(N.size==-3||N.size==-4)I+=4;else break e;else N.id>=o&&(I+=4);N.next()}E=V,P+=G,R+=I}return(O<0||P==M)&&(D.size=P,D.start=E,D.skip=R),D.size>4?D:void 0}function A(M,O,N){let{id:P,start:E,end:R,size:z}=r;if(r.next(),z>=0&&P<o){let D=N;if(z>4){let Q=r.pos-(z-4);for(;r.pos>Q;)N=A(M,O,N)}O[--N]=D,O[--N]=R-M,O[--N]=E-M,O[--N]=P}else z==-3?d=P:z==-4&&(f=P);return N}let k=[],T=[];for(;r.pos>0;)m(t.start||0,t.bufferStart||0,k,T,-1,0);let L=(e=t.length)!==null&&e!==void 0?e:k.length?T[0]+k[0].length:0;return new xi(c[t.topID],k.reverse(),T.reverse(),L)}const Qj=new WeakMap;function C0(t,e){if(!t.isAnonymous||e instanceof Rl||e.type!=t)return 1;let n=Qj.get(e);if(n==null){n=1;for(let i of e.children){if(i.type!=t||!(i instanceof xi)){n=1;break}n+=C0(t,i)}Qj.set(e,n)}return n}function oC(t,e,n,i,s,a,o,r,c){let d=0;for(let b=i;b<s;b++)d+=C0(t,e[b]);let f=Math.ceil(d*1.5/8),m=[],g=[];function y(b,v,x,A,k){for(let T=x;T<A;){let L=T,M=v[T],O=C0(t,b[T]);for(T++;T<A;T++){let N=C0(t,b[T]);if(O+N>=f)break;O+=N}if(T==L+1){if(O>f){let N=b[L];y(N.children,N.positions,0,N.children.length,v[L]+k);continue}m.push(b[L])}else{let N=v[T-1]+b[T-1].length-M;m.push(oC(t,b,v,L,T,M,N,null,c))}g.push(M+k-a)}}return y(e,n,i,s,0),(r||c)(m,g,o)}class Rc{constructor(e,n,i,s,a=!1,o=!1){this.from=e,this.to=n,this.tree=i,this.offset=s,this.open=(a?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],i=!1){let s=[new Rc(0,e.length,e,0,!1,i)];for(let a of n)a.to>e.length&&s.push(a);return s}static applyChanges(e,n,i=128){if(!n.length)return e;let s=[],a=1,o=e.length?e[0]:null;for(let r=0,c=0,d=0;;r++){let f=r<n.length?n[r]:null,m=f?f.fromA:1e9;if(m-c>=i)for(;o&&o.from<m;){let g=o;if(c>=g.from||m<=g.to||d){let y=Math.max(g.from,c)-d,b=Math.min(g.to,m)-d;g=y>=b?null:new Rc(y,b,g.tree,g.offset+d,r>0,!!f)}if(g&&s.push(g),o.to>m)break;o=a<e.length?e[a++]:null}if(!f)break;c=f.toA,d=f.toA-f.toB}return s}}class oF{startParse(e,n,i){return typeof e=="string"&&(e=new Gxe(e)),i=i?i.length?i.map(s=>new i2(s.from,s.to)):[new i2(0,0)]:[new i2(0,e.length)],this.createParse(e,n||[],i)}parse(e,n,i){let s=this.startParse(e,n,i);for(;;){let a=s.advance();if(a)return a}}}class Gxe{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}new $t({perNode:!0});let $xe=0,_r=class cw{constructor(e,n,i,s){this.name=e,this.set=n,this.base=i,this.modified=s,this.id=$xe++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let i=typeof e=="string"?e:"?";if(e instanceof cw&&(n=e),n?.base)throw new Error("Can not derive from a modified tag");let s=new cw(i,[],null,[]);if(s.set.push(s),n)for(let a of n.set)s.set.push(a);return s}static defineModifier(e){let n=new cy(e);return i=>i.modified.indexOf(n)>-1?i:cy.get(i.base||i,i.modified.concat(n).sort((s,a)=>s.id-a.id))}},Xxe=0;class cy{constructor(e){this.name=e,this.instances=[],this.id=Xxe++}static get(e,n){if(!n.length)return e;let i=n[0].instances.find(r=>r.base==e&&Qxe(n,r.modified));if(i)return i;let s=[],a=new _r(e.name,s,e,n);for(let r of n)r.instances.push(a);let o=Yxe(n);for(let r of e.set)if(!r.modified.length)for(let c of o)s.push(cy.get(r,c));return a}}function Qxe(t,e){return t.length==e.length&&t.every((n,i)=>n==e[i])}function Yxe(t){let e=[[]];for(let n=0;n<t.length;n++)for(let i=0,s=e.length;i<s;i++)e.push(e[i].concat(t[n]));return e.sort((n,i)=>i.length-n.length)}function rF(t){let e=Object.create(null);for(let n in t){let i=t[n];Array.isArray(i)||(i=[i]);for(let s of n.split(" "))if(s){let a=[],o=2,r=s;for(let m=0;;){if(r=="..."&&m>0&&m+3==s.length){o=1;break}let g=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(r);if(!g)throw new RangeError("Invalid path: "+s);if(a.push(g[0]=="*"?"":g[0][0]=='"'?JSON.parse(g[0]):g[0]),m+=g[0].length,m==s.length)break;let y=s[m++];if(m==s.length&&y=="!"){o=0;break}if(y!="/")throw new RangeError("Invalid path: "+s);r=s.slice(m)}let c=a.length-1,d=a[c];if(!d)throw new RangeError("Invalid path: "+s);let f=new jm(i,o,c>0?a.slice(0,c):null);e[d]=f.sort(e[d])}}return lF.add(e)}const lF=new $t({combine(t,e){let n,i,s;for(;t||e;){if(!t||e&&t.depth>=e.depth?(s=e,e=e.next):(s=t,t=t.next),n&&n.mode==s.mode&&!s.context&&!n.context)continue;let a=new jm(s.tags,s.mode,s.context);n?n.next=a:i=a,n=a}return i}});class jm{constructor(e,n,i,s){this.tags=e,this.mode=n,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}jm.empty=new jm([],2,null);function cF(t,e){let n=Object.create(null);for(let a of t)if(!Array.isArray(a.tag))n[a.tag.id]=a.class;else for(let o of a.tag)n[o.id]=a.class;let{scope:i,all:s=null}=e||{};return{style:a=>{let o=s;for(let r of a)for(let c of r.set){let d=n[c.id];if(d){o=o?o+" "+d:d;break}}return o},scope:i}}function Jxe(t,e){let n=null;for(let i of t){let s=i.style(e);s&&(n=n?n+" "+s:s)}return n}function Zxe(t,e,n,i=0,s=t.length){let a=new e1e(i,Array.isArray(e)?e:[e],n);a.highlightRange(t.cursor(),i,s,"",a.highlighters),a.flush(s)}class e1e{constructor(e,n,i){this.at=e,this.highlighters=n,this.span=i,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,i,s,a){let{type:o,from:r,to:c}=e;if(r>=i||c<=n)return;o.isTop&&(a=this.highlighters.filter(y=>!y.scope||y.scope(o)));let d=s,f=t1e(e)||jm.empty,m=Jxe(a,f.tags);if(m&&(d&&(d+=" "),d+=m,f.mode==1&&(s+=(s?" ":"")+m)),this.startSpan(Math.max(n,r),d),f.opaque)return;let g=e.tree&&e.tree.prop($t.mounted);if(g&&g.overlay){let y=e.node.enter(g.overlay[0].from+r,1),b=this.highlighters.filter(x=>!x.scope||x.scope(g.tree.type)),v=e.firstChild();for(let x=0,A=r;;x++){let k=x<g.overlay.length?g.overlay[x]:null,T=k?k.from+r:c,L=Math.max(n,A),M=Math.min(i,T);if(L<M&&v)for(;e.from<M&&(this.highlightRange(e,L,M,s,a),this.startSpan(Math.min(M,e.to),d),!(e.to>=T||!e.nextSibling())););if(!k||T>i)break;A=k.to+r,A>n&&(this.highlightRange(y.cursor(),Math.max(n,k.from+r),Math.min(i,A),"",b),this.startSpan(Math.min(i,A),d))}v&&e.parent()}else if(e.firstChild()){g&&(s="");do if(!(e.to<=n)){if(e.from>=i)break;this.highlightRange(e,n,i,s,a),this.startSpan(Math.min(i,e.to),d)}while(e.nextSibling());e.parent()}}}function t1e(t){let e=t.type.prop(lF);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const We=_r.define,H_=We(),hl=We(),Yj=We(hl),Jj=We(hl),fl=We(),V_=We(fl),s2=We(fl),go=We(),hc=We(go),uo=We(),ho=We(),uw=We(),vf=We(uw),W_=We(),ke={comment:H_,lineComment:We(H_),blockComment:We(H_),docComment:We(H_),name:hl,variableName:We(hl),typeName:Yj,tagName:We(Yj),propertyName:Jj,attributeName:We(Jj),className:We(hl),labelName:We(hl),namespace:We(hl),macroName:We(hl),literal:fl,string:V_,docString:We(V_),character:We(V_),attributeValue:We(V_),number:s2,integer:We(s2),float:We(s2),bool:We(fl),regexp:We(fl),escape:We(fl),color:We(fl),url:We(fl),keyword:uo,self:We(uo),null:We(uo),atom:We(uo),unit:We(uo),modifier:We(uo),operatorKeyword:We(uo),controlKeyword:We(uo),definitionKeyword:We(uo),moduleKeyword:We(uo),operator:ho,derefOperator:We(ho),arithmeticOperator:We(ho),logicOperator:We(ho),bitwiseOperator:We(ho),compareOperator:We(ho),updateOperator:We(ho),definitionOperator:We(ho),typeOperator:We(ho),controlOperator:We(ho),punctuation:uw,separator:We(uw),bracket:vf,angleBracket:We(vf),squareBracket:We(vf),paren:We(vf),brace:We(vf),content:go,heading:hc,heading1:We(hc),heading2:We(hc),heading3:We(hc),heading4:We(hc),heading5:We(hc),heading6:We(hc),contentSeparator:We(go),list:We(go),quote:We(go),emphasis:We(go),strong:We(go),link:We(go),monospace:We(go),strikethrough:We(go),inserted:We(),deleted:We(),changed:We(),invalid:We(),meta:W_,documentMeta:We(W_),annotation:We(W_),processingInstruction:We(W_),definition:_r.defineModifier("definition"),constant:_r.defineModifier("constant"),function:_r.defineModifier("function"),standard:_r.defineModifier("standard"),local:_r.defineModifier("local"),special:_r.defineModifier("special")};for(let t in ke){let e=ke[t];e instanceof _r&&(e.name=t)}cF([{tag:ke.link,class:"tok-link"},{tag:ke.heading,class:"tok-heading"},{tag:ke.emphasis,class:"tok-emphasis"},{tag:ke.strong,class:"tok-strong"},{tag:ke.keyword,class:"tok-keyword"},{tag:ke.atom,class:"tok-atom"},{tag:ke.bool,class:"tok-bool"},{tag:ke.url,class:"tok-url"},{tag:ke.labelName,class:"tok-labelName"},{tag:ke.inserted,class:"tok-inserted"},{tag:ke.deleted,class:"tok-deleted"},{tag:ke.literal,class:"tok-literal"},{tag:ke.string,class:"tok-string"},{tag:ke.number,class:"tok-number"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],class:"tok-string2"},{tag:ke.variableName,class:"tok-variableName"},{tag:ke.local(ke.variableName),class:"tok-variableName tok-local"},{tag:ke.definition(ke.variableName),class:"tok-variableName tok-definition"},{tag:ke.special(ke.variableName),class:"tok-variableName2"},{tag:ke.definition(ke.propertyName),class:"tok-propertyName tok-definition"},{tag:ke.typeName,class:"tok-typeName"},{tag:ke.namespace,class:"tok-namespace"},{tag:ke.className,class:"tok-className"},{tag:ke.macroName,class:"tok-macroName"},{tag:ke.propertyName,class:"tok-propertyName"},{tag:ke.operator,class:"tok-operator"},{tag:ke.comment,class:"tok-comment"},{tag:ke.meta,class:"tok-meta"},{tag:ke.invalid,class:"tok-invalid"},{tag:ke.punctuation,class:"tok-punctuation"}]);var a2;const ld=new $t;function n1e(t){return Ze.define({combine:t?e=>e.concat(t):void 0})}const i1e=new $t;class Wa{constructor(e,n,i=[],s=""){this.data=e,this.name=s,ln.prototype.hasOwnProperty("tree")||Object.defineProperty(ln.prototype,"tree",{get(){return cs(this)}}),this.parser=n,this.extension=[Dl.of(this),ln.languageData.of((a,o,r)=>{let c=Zj(a,o,r),d=c.type.prop(ld);if(!d)return[];let f=a.facet(d),m=c.type.prop(i1e);if(m){let g=c.resolve(o-c.from,r);for(let y of m)if(y.test(g,a)){let b=a.facet(y.facet);return y.type=="replace"?b:b.concat(f)}}return f})].concat(i)}isActiveAt(e,n,i=-1){return Zj(e,n,i).type.prop(ld)==this.data}findRegions(e){let n=e.facet(Dl);if(n?.data==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let i=[],s=(a,o)=>{if(a.prop(ld)==this.data){i.push({from:o,to:o+a.length});return}let r=a.prop($t.mounted);if(r){if(r.tree.prop(ld)==this.data){if(r.overlay)for(let c of r.overlay)i.push({from:c.from+o,to:c.to+o});else i.push({from:o,to:o+a.length});return}else if(r.overlay){let c=i.length;if(s(r.tree,r.overlay[0].from+o),i.length>c)return}}for(let c=0;c<a.children.length;c++){let d=a.children[c];d instanceof xi&&s(d,a.positions[c]+o)}};return s(cs(e),0),i}get allowsNesting(){return!0}}Wa.setState=Ft.define();function Zj(t,e,n){let i=t.facet(Dl),s=cs(t).topNode;if(!i||i.allowsNesting)for(let a=s;a;a=a.enter(e,n,Pi.ExcludeBuffers))a.type.isTop&&(s=a);return s}class uy extends Wa{constructor(e,n,i){super(e,n,[],i),this.parser=n}static define(e){let n=n1e(e.languageData);return new uy(n,e.parser.configure({props:[ld.add(i=>i.isTop?n:void 0)]}),e.name)}configure(e,n){return new uy(this.data,this.parser.configure(e),n||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function cs(t){let e=t.field(Wa.state,!1);return e?e.tree:xi.empty}class s1e{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,n){let i=this.cursorPos-this.string.length;return e<i||n>=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-i,n-i)}}let xf=null;class dy{constructor(e,n,i=[],s,a,o,r,c){this.parser=e,this.state=n,this.fragments=i,this.tree=s,this.treeLen=a,this.viewport=o,this.skipped=r,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,i){return new dy(e,n,[],xi.empty,0,i,[],null)}startParse(){return this.parser.startParse(new s1e(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=xi.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n<this.state.doc.length&&this.parse.stopAt(n);;){let s=this.parse.advance();if(s)if(this.fragments=this.withoutTempSkipped(Rc.addTree(s,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(i=this.parse.stoppedAt)!==null&&i!==void 0?i:this.state.doc.length,this.tree=s,this.parse=null,this.treeLen<(n??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,n;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Rc.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=xf;xf=this;try{return e()}finally{xf=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=eR(e,n.from,n.to);return e}changes(e,n){let{fragments:i,tree:s,treeLen:a,viewport:o,skipped:r}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((d,f,m,g)=>c.push({fromA:d,toA:f,fromB:m,toB:g})),i=Rc.applyChanges(i,c),s=xi.empty,a=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){r=[];for(let d of this.skipped){let f=e.mapPos(d.from,1),m=e.mapPos(d.to,-1);f<m&&r.push({from:f,to:m})}}}return new dy(this.parser,n,i,s,a,o,r,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let n=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:s,to:a}=this.skipped[i];s<e.to&&a>e.from&&(this.fragments=eR(this.fragments,s,a),this.skipped.splice(i--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends oF{createParse(n,i,s){let a=s[0].from,o=s[s.length-1].to;return{parsedPos:a,advance(){let c=xf;if(c){for(let d of s)c.tempSkipped.push(d);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=o,new xi(zs.none,[],[],o-a)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return xf}}function eR(t,e,n){return Rc.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class Id{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,i)||n.takeTree(),new Id(n)}static init(e){let n=Math.min(3e3,e.doc.length),i=dy.create(e.facet(Dl).parser,e,{from:0,to:n});return i.work(20,n)||i.takeTree(),new Id(i)}}Wa.state=$i.define({create:Id.init,update(t,e){for(let n of e.effects)if(n.is(Wa.setState))return n.value;return e.startState.facet(Dl)!=e.state.facet(Dl)?Id.init(e.state):t.apply(e)}});let uF=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(uF=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const o2=typeof navigator<"u"&&(!((a2=navigator.scheduling)===null||a2===void 0)&&a2.isInputPending)?()=>navigator.scheduling.isInputPending():null,a1e=ci.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(Wa.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(Wa.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=uF(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnd<n&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=n+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:i,viewport:{to:s}}=this.view,a=i.field(Wa.state);if(a.tree==a.context.tree&&a.context.isDone(s+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!o2?Math.max(25,e.timeRemaining()-5):1e9),r=a.context.treeLen<s&&i.doc.length>s+1e3,c=a.context.work(()=>o2&&o2()||Date.now()>o,s+(r?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(a.context.takeTree(),this.view.dispatch({effects:Wa.setState.of(new Id(a.context))})),this.chunkBudget>0&&!(c&&!r)&&this.scheduleWork(),this.checkAsyncSchedule(a.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>Ds(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Dl=Ze.define({combine(t){return t.length?t[0]:null},enables:t=>[Wa.state,a1e,$e.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]});class o1e{constructor(e,n=[]){this.language=e,this.support=n,this.extension=[e,n]}}const r1e=Ze.define(),_b=Ze.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function hy(t){let e=t.facet(_b);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function Rm(t,e){let n="",i=t.tabSize,s=t.facet(_b)[0];if(s==" "){for(;e>=i;)n+=" ",e-=i;s=" "}for(let a=0;a<e;a++)n+=s;return n}function rC(t,e){t instanceof ln&&(t=new yb(t));for(let i of t.state.facet(r1e)){let s=i(t,e);if(s!==void 0)return s}let n=cs(t.state);return n.length>=e?l1e(t,n,e):null}class yb{constructor(e,n={}){this.state=e,this.options=n,this.unit=hy(e)}lineAt(e,n=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:a}=this.options;return s!=null&&s>=i.from&&s<=i.to?a&&s==e?{text:"",from:e}:(n<0?s<e:s<=e)?{text:i.text.slice(s-i.from),from:s}:{text:i.text.slice(0,s-i.from),from:i.from}:i}textAfterPos(e,n=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:i,from:s}=this.lineAt(e,n);return i.slice(e-s,Math.min(i.length,e+100-s))}column(e,n=1){let{text:i,from:s}=this.lineAt(e,n),a=this.countColumn(i,e-s),o=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return o>-1&&(a+=o-this.countColumn(i,i.search(/\S|$/))),a}countColumn(e,n=e.length){return sh(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:i,from:s}=this.lineAt(e,n),a=this.options.overrideIndentation;if(a){let o=a(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const dF=new $t;function l1e(t,e,n){let i=e.resolveStack(n),s=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(s!=i.node){let a=[];for(let o=s;o&&!(o.from<i.node.from||o.to>i.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)a.push(o);for(let o=a.length-1;o>=0;o--)i={node:a[o],next:i}}return hF(i,t,n)}function hF(t,e,n){for(let i=t;i;i=i.next){let s=u1e(i.node);if(s)return s(lC.create(e,n,i))}return 0}function c1e(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function u1e(t){let e=t.type.prop(dF);if(e)return e;let n=t.firstChild,i;if(n&&(i=n.type.prop($t.closedBy))){let s=t.lastChild,a=s&&i.indexOf(s.name)>-1;return o=>fF(o,!0,1,void 0,a&&!c1e(o)?s.from:void 0)}return t.parent==null?d1e:null}function d1e(){return 0}class lC extends yb{constructor(e,n,i){super(e.state,e.options),this.base=e,this.pos=n,this.context=i}get node(){return this.context.node}static create(e,n,i){return new lC(e,n,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(n.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(h1e(i,e))break;n=this.state.doc.lineAt(i.from)}return this.lineIndent(n.from)}continue(){return hF(this.context.next,this.base,this.pos)}}function h1e(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function f1e(t){let e=t.node,n=e.childAfter(e.from),i=e.lastChild;if(!n)return null;let s=t.options.simulateBreak,a=t.state.doc.lineAt(n.from),o=s==null||s<=a.from?a.to:Math.min(a.to,s);for(let r=n.to;;){let c=e.childAfter(r);if(!c||c==i)return null;if(!c.type.isSkipped){if(c.from>=o)return null;let d=/^ */.exec(a.text.slice(n.to-a.from))[0].length;return{from:n.from,to:n.to+d}}r=c.to}}function tR({closing:t,align:e=!0,units:n=1}){return i=>fF(i,e,n,t)}function fF(t,e,n,i,s){let a=t.textAfter,o=a.match(/^\s*/)[0].length,r=i&&a.slice(o,o+i.length)==i||s==t.pos+o,c=e?f1e(t):null;return c?r?t.column(c.from):t.column(c.to):t.baseIndent+(r?0:t.unit*n)}const m1e=200;function p1e(){return ln.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:i}=t.newSelection.main,s=n.lineAt(i);if(i>s.from+m1e)return t;let a=n.sliceString(s.from,i);if(!e.some(d=>d.test(a)))return t;let{state:o}=t,r=-1,c=[];for(let{head:d}of o.selection.ranges){let f=o.doc.lineAt(d);if(f.from==r)continue;r=f.from;let m=rC(o,f.from);if(m==null)continue;let g=/^\s*/.exec(f.text)[0],y=Rm(o,m);g!=y&&c.push({from:f.from,to:f.from+g.length,insert:y})}return c.length?[t,{changes:c,sequential:!0}]:t})}const g1e=Ze.define(),mF=new $t;function _1e(t){let e=t.firstChild,n=t.lastChild;return e&&e.to<n.from?{from:e.to,to:n.type.isError?t.to:n.from}:null}function y1e(t,e,n){let i=cs(t);if(i.length<n)return null;let s=i.resolveStack(n,1),a=null;for(let o=s;o;o=o.next){let r=o.node;if(r.to<=n||r.from>n)continue;if(a&&r.from<e)break;let c=r.type.prop(mF);if(c&&(r.to<i.length-50||i.length==t.doc.length||!b1e(r))){let d=c(r,t);d&&d.from<=n&&d.from>=e&&d.to>n&&(a=d)}}return a}function b1e(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function fy(t,e,n){for(let i of t.facet(g1e)){let s=i(t,e,n);if(s)return s}return y1e(t,e,n)}function pF(t,e){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return n>=i?void 0:{from:n,to:i}}const bb=Ft.define({map:pF}),kp=Ft.define({map:pF});function gF(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(i=>i.from<=n&&i.to>=n)||e.push(t.lineBlockAt(n));return e}const Wc=$i.define({create(){return vt.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,i)=>t=nR(t,n,i)),t=t.map(e.changes);for(let n of e.effects)if(n.is(bb)&&!v1e(t,n.value.from,n.value.to)){let{preparePlaceholder:i}=e.state.facet(bF),s=i?vt.replace({widget:new N1e(i(e.state,n.value))}):iR;t=t.update({add:[s.range(n.value.from,n.value.to)]})}else n.is(kp)&&(t=t.update({filter:(i,s)=>n.value.from!=i||n.value.to!=s,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=nR(t,e.selection.main.head)),t},provide:t=>$e.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(i,s)=>{n.push(i,s)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n<t.length;){let i=t[n++],s=t[n++];if(typeof i!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(iR.range(i,s))}return vt.set(e,!0)}});function nR(t,e,n=e){let i=!1;return t.between(e,n,(s,a)=>{s<n&&a>e&&(i=!0)}),i?t.update({filterFrom:e,filterTo:n,filter:(s,a)=>s>=n||a<=e}):t}function my(t,e,n){var i;let s=null;return(i=t.field(Wc,!1))===null||i===void 0||i.between(e,n,(a,o)=>{(!s||s.from>a)&&(s={from:a,to:o})}),s}function v1e(t,e,n){let i=!1;return t.between(e,e,(s,a)=>{s==e&&a==n&&(i=!0)}),i}function _F(t,e){return t.field(Wc,!1)?e:e.concat(Ft.appendConfig.of(vF()))}const x1e=t=>{for(let e of gF(t)){let n=fy(t.state,e.from,e.to);if(n)return t.dispatch({effects:_F(t.state,[bb.of(n),yF(t,n)])}),!0}return!1},S1e=t=>{if(!t.state.field(Wc,!1))return!1;let e=[];for(let n of gF(t)){let i=my(t.state,n.from,n.to);i&&e.push(kp.of(i),yF(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function yF(t,e,n=!0){let i=t.state.doc.lineAt(e.from).number,s=t.state.doc.lineAt(e.to).number;return $e.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${s}.`)}const w1e=t=>{let{state:e}=t,n=[];for(let i=0;i<e.doc.length;){let s=t.lineBlockAt(i),a=fy(e,s.from,s.to);a&&n.push(bb.of(a)),i=(a?t.lineBlockAt(a.to):s).to+1}return n.length&&t.dispatch({effects:_F(t.state,n)}),!!n.length},k1e=t=>{let e=t.state.field(Wc,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(i,s)=>{n.push(kp.of({from:i,to:s}))}),t.dispatch({effects:n}),!0},C1e=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:x1e},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:S1e},{key:"Ctrl-Alt-[",run:w1e},{key:"Ctrl-Alt-]",run:k1e}],A1e={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},bF=Ze.define({combine(t){return Uo(t,A1e)}});function vF(t){return[Wc,L1e]}function xF(t,e){let{state:n}=t,i=n.facet(bF),s=o=>{let r=t.lineBlockAt(t.posAtDOM(o.target)),c=my(t.state,r.from,r.to);c&&t.dispatch({effects:kp.of(c)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,s,e);let a=document.createElement("span");return a.textContent=i.placeholderText,a.setAttribute("aria-label",n.phrase("folded code")),a.title=n.phrase("unfold"),a.className="cm-foldPlaceholder",a.onclick=s,a}const iR=vt.replace({widget:new class extends Rr{toDOM(t){return xF(t,null)}}});class N1e extends Rr{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return xF(e,this.value)}}const T1e={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class r2 extends Pr{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function M1e(t={}){let e={...T1e,...t},n=new r2(e,!0),i=new r2(e,!1),s=ci.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Dl)!=o.state.facet(Dl)||o.startState.field(Wc,!1)!=o.state.field(Wc,!1)||cs(o.startState)!=cs(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let r=new Lr;for(let c of o.viewportLineBlocks){let d=my(o.state,c.from,c.to)?i:fy(o.state,c.from,c.to)?n:null;d&&r.add(c.from,c.from,d)}return r.finish()}}),{domEventHandlers:a}=e;return[s,Lxe({class:"cm-foldGutter",markers(o){var r;return((r=o.plugin(s))===null||r===void 0?void 0:r.markers)||fn.empty},initialSpacer(){return new r2(e,!1)},domEventHandlers:{...a,click:(o,r,c)=>{if(a.click&&a.click(o,r,c))return!0;let d=my(o.state,r.from,r.to);if(d)return o.dispatch({effects:kp.of(d)}),!0;let f=fy(o.state,r.from,r.to);return f?(o.dispatch({effects:bb.of(f)}),!0):!1}}}),vF()]}const L1e=$e.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Cp{constructor(e,n){this.specs=e;let i;function s(r){let c=Pl.newName();return(i||(i=Object.create(null)))["."+c]=r,c}const a=typeof n.all=="string"?n.all:n.all?s(n.all):void 0,o=n.scope;this.scope=o instanceof Wa?r=>r.prop(ld)==o.data:o?r=>r==o:void 0,this.style=cF(e.map(r=>({tag:r.tag,class:r.class||s(Object.assign({},r,{tag:null}))})),{all:a}).style,this.module=i?new Pl(i):null,this.themeType=n.themeType}static define(e,n){return new Cp(e,n||{})}}const dw=Ze.define(),SF=Ze.define({combine(t){return t.length?[t[0]]:null}});function l2(t){let e=t.facet(dw);return e.length?e:t.facet(SF)}function wF(t,e){let n=[P1e],i;return t instanceof Cp&&(t.module&&n.push($e.styleModule.of(t.module)),i=t.themeType),e?.fallback?n.push(SF.of(t)):i?n.push(dw.computeN([$e.darkTheme],s=>s.facet($e.darkTheme)==(i=="dark")?[t]:[])):n.push(dw.of(t)),n}class O1e{constructor(e){this.markCache=Object.create(null),this.tree=cs(e.state),this.decorations=this.buildDeco(e,l2(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=cs(e.state),i=l2(e.state),s=i!=l2(e.startState),{viewport:a}=e.view,o=e.changes.mapPos(this.decoratedTo,1);n.length<a.to&&!s&&n.type==this.tree.type&&o>=a.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(n!=this.tree||e.viewportChanged||s)&&(this.tree=n,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=a.to)}buildDeco(e,n){if(!n||!this.tree.length)return vt.none;let i=new Lr;for(let{from:s,to:a}of e.visibleRanges)Zxe(this.tree,n,(o,r,c)=>{i.add(o,r,this.markCache[c]||(this.markCache[c]=vt.mark({class:c})))},s,a);return i.finish()}}const P1e=Zc.high(ci.fromClass(O1e,{decorations:t=>t.decorations})),E1e=Cp.define([{tag:ke.meta,color:"#404740"},{tag:ke.link,textDecoration:"underline"},{tag:ke.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strong,fontWeight:"bold"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.keyword,color:"#708"},{tag:[ke.atom,ke.bool,ke.url,ke.contentSeparator,ke.labelName],color:"#219"},{tag:[ke.literal,ke.inserted],color:"#164"},{tag:[ke.string,ke.deleted],color:"#a11"},{tag:[ke.regexp,ke.escape,ke.special(ke.string)],color:"#e40"},{tag:ke.definition(ke.variableName),color:"#00f"},{tag:ke.local(ke.variableName),color:"#30a"},{tag:[ke.typeName,ke.namespace],color:"#085"},{tag:ke.className,color:"#167"},{tag:[ke.special(ke.variableName),ke.macroName],color:"#256"},{tag:ke.definition(ke.propertyName),color:"#00c"},{tag:ke.comment,color:"#940"},{tag:ke.invalid,color:"#f00"}]),j1e=$e.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),kF=1e4,CF="()[]{}",AF=Ze.define({combine(t){return Uo(t,{afterCursor:!0,brackets:CF,maxScanDistance:kF,renderMatch:F1e})}}),R1e=vt.mark({class:"cm-matchingBracket"}),D1e=vt.mark({class:"cm-nonmatchingBracket"});function F1e(t){let e=[],n=t.matched?R1e:D1e;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}const I1e=$i.define({create(){return vt.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let n=[],i=e.state.facet(AF);for(let s of e.state.selection.ranges){if(!s.empty)continue;let a=ko(e.state,s.head,-1,i)||s.head>0&&ko(e.state,s.head-1,1,i)||i.afterCursor&&(ko(e.state,s.head,1,i)||s.head<e.state.doc.length&&ko(e.state,s.head+1,-1,i));a&&(n=n.concat(i.renderMatch(a,e.state)))}return vt.set(n,!0)},provide:t=>$e.decorations.from(t)}),U1e=[I1e,j1e];function B1e(t={}){return[AF.of(t),U1e]}const z1e=new $t;function hw(t,e,n){let i=t.prop(e<0?$t.openedBy:$t.closedBy);if(i)return i;if(t.name.length==1){let s=n.indexOf(t.name);if(s>-1&&s%2==(e<0?1:0))return[n[s+e]]}return null}function fw(t){let e=t.type.prop(z1e);return e?e(t.node):t}function ko(t,e,n,i={}){let s=i.maxScanDistance||kF,a=i.brackets||CF,o=cs(t),r=o.resolveInner(e,n);for(let c=r;c;c=c.parent){let d=hw(c.type,n,a);if(d&&c.from<c.to){let f=fw(c);if(f&&(n>0?e>=f.from&&e<f.to:e>f.from&&e<=f.to))return q1e(t,e,n,c,f,d,a)}}return K1e(t,e,n,o,r.type,s,a)}function q1e(t,e,n,i,s,a,o){let r=i.parent,c={from:s.from,to:s.to},d=0,f=r?.cursor();if(f&&(n<0?f.childBefore(i.from):f.childAfter(i.to)))do if(n<0?f.to<=i.from:f.from>=i.to){if(d==0&&a.indexOf(f.type.name)>-1&&f.from<f.to){let m=fw(f);return{start:c,end:m?{from:m.from,to:m.to}:void 0,matched:!0}}else if(hw(f.type,n,o))d++;else if(hw(f.type,-n,o)){if(d==0){let m=fw(f);return{start:c,end:m&&m.from<m.to?{from:m.from,to:m.to}:void 0,matched:!1}}d--}}while(n<0?f.prevSibling():f.nextSibling());return{start:c,matched:!1}}function K1e(t,e,n,i,s,a,o){let r=n<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),c=o.indexOf(r);if(c<0||c%2==0!=n>0)return null;let d={from:n<0?e-1:e,to:n>0?e+1:e},f=t.doc.iterRange(e,n>0?t.doc.length:0),m=0;for(let g=0;!f.next().done&&g<=a;){let y=f.value;n<0&&(g+=y.length);let b=e+g*n;for(let v=n>0?0:y.length-1,x=n>0?y.length:-1;v!=x;v+=n){let A=o.indexOf(y[v]);if(!(A<0||i.resolveInner(b+v,1).type!=s))if(A%2==0==n>0)m++;else{if(m==1)return{start:d,end:{from:b+v,to:b+v+1},matched:A>>1==c>>1};m--}}n>0&&(g+=y.length)}return f.done?{start:d,matched:!1}:null}const H1e=Object.create(null),sR=[zs.none],aR=[],oR=Object.create(null),V1e=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])V1e[t]=W1e(H1e,e);function c2(t,e){aR.indexOf(t)>-1||(aR.push(t),console.warn(e))}function W1e(t,e){let n=[];for(let r of e.split(" ")){let c=[];for(let d of r.split(".")){let f=t[d]||ke[d];f?typeof f=="function"?c.length?c=c.map(f):c2(d,`Modifier ${d} used at start of tag`):c.length?c2(d,`Tag ${d} used as modifier`):c=Array.isArray(f)?f:[f]:c2(d,`Unknown highlighting tag ${d}`)}for(let d of c)n.push(d)}if(!n.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+n.map(r=>r.id),a=oR[s];if(a)return a.id;let o=oR[s]=zs.define({id:sR.length,name:i,props:[rF({[i]:n})]});return sR.push(o),o.id}qn.RTL,qn.LTR;class vi{constructor(e,n,i,s){this.fromA=e,this.toA=n,this.fromB=i,this.toB=s}offset(e,n=e){return new vi(this.fromA+e,this.toA+e,this.fromB+n,this.toB+n)}}function Gc(t,e,n,i,s,a){if(t==i)return[];let o=uC(t,e,n,i,s,a),r=dC(t,e+o,n,i,s+o,a);e+=o,n-=r,s+=o,a-=r;let c=n-e,d=a-s;if(!c||!d)return[new vi(e,n,s,a)];if(c>d){let m=t.slice(e,n).indexOf(i.slice(s,a));if(m>-1)return[new vi(e,e+m,s,s),new vi(e+m+d,n,a,a)]}else if(d>c){let m=i.slice(s,a).indexOf(t.slice(e,n));if(m>-1)return[new vi(e,e,s,s+m),new vi(n,n,s+m+c,a)]}if(c==1||d==1)return[new vi(e,n,s,a)];let f=MF(t,e,n,i,s,a);if(f){let[m,g,y]=f;return Gc(t,e,m,i,s,g).concat(Gc(t,m+y,n,i,g+y,a))}return G1e(t,e,n,i,s,a)}let Uf=1e9,Bf=0,cC=!1;function G1e(t,e,n,i,s,a){let o=n-e,r=a-s;if(Uf<1e9&&Math.min(o,r)>Uf*16||Bf>0&&Date.now()>Bf)return Math.min(o,r)>Uf*64?[new vi(e,n,s,a)]:rR(t,e,n,i,s,a);let c=Math.ceil((o+r)/2);u2.reset(c),d2.reset(c);let d=(y,b)=>t.charCodeAt(e+y)==i.charCodeAt(s+b),f=(y,b)=>t.charCodeAt(n-y-1)==i.charCodeAt(a-b-1),m=(o-r)%2!=0?d2:null,g=m?null:u2;for(let y=0;y<c;y++){if(y>Uf||Bf>0&&!(y&63)&&Date.now()>Bf)return rR(t,e,n,i,s,a);let b=u2.advance(y,o,r,c,m,!1,d)||d2.advance(y,o,r,c,g,!0,f);if(b)return $1e(t,e,n,e+b[0],i,s,a,s+b[1])}return[new vi(e,n,s,a)]}class NF{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let n=0;n<this.len;n++)this.vec[n]=-1;this.vec[e+1]=0,this.start=this.end=0}advance(e,n,i,s,a,o,r){for(let c=-e+this.start;c<=e-this.end;c+=2){let d=s+c,f=c==-e||c!=e&&this.vec[d-1]<this.vec[d+1]?this.vec[d+1]:this.vec[d-1]+1,m=f-c;for(;f<n&&m<i&&r(f,m);)f++,m++;if(this.vec[d]=f,f>n)this.end+=2;else if(m>i)this.start+=2;else if(a){let g=s+(n-i)-c;if(g>=0&&g<this.len&&a.vec[g]!=-1)if(o){let y=a.vec[g];if(y>=n-f)return[y,s+y-g]}else{let y=n-a.vec[g];if(f>=y)return[f,m]}}}return null}}const u2=new NF,d2=new NF;function $1e(t,e,n,i,s,a,o,r){let c=!1;return!Ud(t,i)&&++i==n&&(c=!0),!Ud(s,r)&&++r==o&&(c=!0),c?[new vi(e,n,a,o)]:Gc(t,e,i,s,a,r).concat(Gc(t,i,n,s,r,o))}function TF(t,e){let n=1,i=Math.min(t,e);for(;n<i;)n=n<<1;return n}function uC(t,e,n,i,s,a){if(e==n||e==a||t.charCodeAt(e)!=i.charCodeAt(s))return 0;let o=TF(n-e,a-s);for(let r=e,c=s;;){let d=r+o,f=c+o;if(d>n||f>a||t.slice(r,d)!=i.slice(c,f)){if(o==1)return r-e-(Ud(t,r)?0:1);o=o>>1}else{if(d==n||f==a)return d-e;r=d,c=f}}}function dC(t,e,n,i,s,a){if(e==n||s==a||t.charCodeAt(n-1)!=i.charCodeAt(a-1))return 0;let o=TF(n-e,a-s);for(let r=n,c=a;;){let d=r-o,f=c-o;if(d<e||f<s||t.slice(d,r)!=i.slice(f,c)){if(o==1)return n-r-(Ud(t,r)?0:1);o=o>>1}else{if(d==e||f==s)return n-d;r=d,c=f}}}function mw(t,e,n,i,s,a,o,r){let c=i.slice(s,a),d=null;for(;;){if(d||o<r)return d;for(let f=e+o;;){Ud(t,f)||f++;let m=f+o;if(Ud(t,m)||(m+=m==f+1?1:-1),m>=n)break;let g=t.slice(f,m),y=-1;for(;(y=c.indexOf(g,y+1))!=-1;){let b=uC(t,m,n,i,s+y+g.length,a),v=dC(t,e,f,i,s,s+y),x=g.length+b+v;(!d||d[2]<x)&&(d=[f-v,s+y-v,x])}f=m}if(r<0)return d;o=o>>1}}function MF(t,e,n,i,s,a){let o=n-e,r=a-s;if(o<r){let c=MF(i,s,a,t,e,n);return c&&[c[1],c[0],c[2]]}return o<4||r*2<o?null:mw(t,e,n,i,s,a,Math.floor(o/4),-1)}function rR(t,e,n,i,s,a){cC=!0;let o=n-e,r=a-s,c;if(o<r){let g=mw(i,s,a,t,e,n,Math.floor(o/6),50);c=g&&[g[1],g[0],g[2]]}else c=mw(t,e,n,i,s,a,Math.floor(r/6),50);if(!c)return[new vi(e,n,s,a)];let[d,f,m]=c;return Gc(t,e,d,i,s,f).concat(Gc(t,d+m,n,i,f+m,a))}function LF(t,e){for(let n=1;n<t.length;n++){let i=t[n-1],s=t[n];i.toA>s.fromA-e&&i.toB>s.fromB-e&&(t[n-1]=new vi(i.fromA,s.toA,i.fromB,s.toB),t.splice(n--,1))}}function X1e(t,e,n){for(;;){LF(n,1);let i=!1;for(let s=0;s<n.length;s++){let a=n[s],o,r;(o=uC(t,a.fromA,a.toA,e,a.fromB,a.toB))&&(a=n[s]=new vi(a.fromA+o,a.toA,a.fromB+o,a.toB)),(r=dC(t,a.fromA,a.toA,e,a.fromB,a.toB))&&(a=n[s]=new vi(a.fromA,a.toA-r,a.fromB,a.toB-r));let c=a.toA-a.fromA,d=a.toB-a.fromB;if(c&&d)continue;let f=a.fromA-(s?n[s-1].toA:0),m=(s<n.length-1?n[s+1].fromA:t.length)-a.toA;if(!f||!m)continue;let g=c?t.slice(a.fromA,a.toA):e.slice(a.fromB,a.toB);f<=g.length&&t.slice(a.fromA-f,a.fromA)==g.slice(g.length-f)?(n[s]=new vi(a.fromA-f,a.toA-f,a.fromB-f,a.toB-f),i=!0):m<=g.length&&t.slice(a.toA,a.toA+m)==g.slice(0,m)&&(n[s]=new vi(a.fromA+m,a.toA+m,a.fromB+m,a.toB+m),i=!0)}if(!i)break}return n}function Q1e(t,e,n){for(let i=0,s=0;s<t.length;s++){let a=t[s],o=a.toA-a.fromA,r=a.toB-a.fromB;if(o&&r||o>3||r>3){let c=s==t.length-1?e.length:t[s+1].fromA,d=a.fromA-i,f=c-a.toA,m=cR(e,a.fromA,d),g=lR(e,a.toA,f),y=a.fromA-m,b=g-a.toA;if((!o||!r)&&y&&b){let v=Math.max(o,r),[x,A,k]=o?[e,a.fromA,a.toA]:[n,a.fromB,a.toB];v>y&&e.slice(m,a.fromA)==x.slice(k-y,k)?(a=t[s]=new vi(m,m+o,a.fromB-y,a.toB-y),m=a.fromA,g=lR(e,a.toA,c-a.toA)):v>b&&e.slice(a.toA,g)==x.slice(A,A+b)&&(a=t[s]=new vi(g-o,g,a.fromB+b,a.toB+b),g=a.toA,m=cR(e,a.fromA,a.fromA-i)),y=a.fromA-m,b=g-a.toA}if(y||b)a=t[s]=new vi(a.fromA-y,a.toA+b,a.fromB-y,a.toB+b);else if(o){if(!r){let v=dR(e,a.fromA,a.toA),x,A=v<0?-1:uR(e,a.toA,a.fromA);v>-1&&(x=v-a.fromA)<=f&&e.slice(a.fromA,v)==e.slice(a.toA,a.toA+x)?a=t[s]=a.offset(x):A>-1&&(x=a.toA-A)<=d&&e.slice(a.fromA-x,a.fromA)==e.slice(A,a.toA)&&(a=t[s]=a.offset(-x))}}else{let v=dR(n,a.fromB,a.toB),x,A=v<0?-1:uR(n,a.toB,a.fromB);v>-1&&(x=v-a.fromB)<=f&&n.slice(a.fromB,v)==n.slice(a.toB,a.toB+x)?a=t[s]=a.offset(x):A>-1&&(x=a.toB-A)<=d&&n.slice(a.fromB-x,a.fromB)==n.slice(A,a.toB)&&(a=t[s]=a.offset(-x))}}i=a.toA}return LF(t,3),t}let Dc;try{Dc=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch{}function OF(t){return t>48&&t<58||t>64&&t<91||t>96&&t<123}function PF(t,e){if(e==t.length)return 0;let n=t.charCodeAt(e);return n<192?OF(n)?1:0:Dc?!RF(n)||e==t.length-1?Dc.test(String.fromCharCode(n))?1:0:Dc.test(t.slice(e,e+2))?2:0:0}function EF(t,e){if(!e)return 0;let n=t.charCodeAt(e-1);return n<192?OF(n)?1:0:Dc?!DF(n)||e==1?Dc.test(String.fromCharCode(n))?1:0:Dc.test(t.slice(e-2,e))?2:0:0}const jF=8;function lR(t,e,n){if(e==t.length||!EF(t,e))return e;for(let i=e,s=e+n,a=0;a<jF;a++){let o=PF(t,i);if(!o||i+o>s)return i;i+=o}return e}function cR(t,e,n){if(!e||!PF(t,e))return e;for(let i=e,s=e-n,a=0;a<jF;a++){let o=EF(t,i);if(!o||i-o<s)return i;i-=o}return e}function uR(t,e,n){for(;e!=n;e--)if(t.charCodeAt(e-1)==10)return e;return-1}function dR(t,e,n){for(;e!=n;e++)if(t.charCodeAt(e)==10)return e;return-1}const RF=t=>t>=55296&&t<=56319,DF=t=>t>=56320&&t<=57343;function Ud(t,e){return!e||e==t.length||!RF(t.charCodeAt(e-1))||!DF(t.charCodeAt(e))}function Y1e(t,e,n){var i;let s=n?.override;return s?s(t,e):(Uf=((i=n?.scanLimit)!==null&&i!==void 0?i:1e9)>>1,Bf=n?.timeout?Date.now()+n.timeout:0,cC=!1,X1e(t,e,Gc(t,0,t.length,e,0,e.length)))}function FF(){return!cC}function IF(t,e,n){return Q1e(Y1e(t,e,n),t,e)}class vb{constructor(e,n,i,s,a,o=!0){this.changes=e,this.fromA=n,this.toA=i,this.fromB=s,this.toB=a,this.precise=o}offset(e,n){return e||n?new vb(this.changes,this.fromA+e,this.toA+e,this.fromB+n,this.toB+n,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,n,i){let s=IF(e.toString(),n.toString(),i);return UF(s,e,n,0,0,FF())}static updateA(e,n,i,s,a){return gR(pR(e,s,!0,i.length),e,n,i,a)}static updateB(e,n,i,s,a){return gR(pR(e,s,!1,n.length),e,n,i,a)}}function hR(t,e,n,i){let s=n.lineAt(t),a=i.lineAt(e);return s.to==t&&a.to==e&&t<n.length&&e<i.length?[t+1,e+1]:[s.from,a.from]}function fR(t,e,n,i){let s=n.lineAt(t),a=i.lineAt(e);return s.from==t&&a.from==e?[t,e]:[s.to+1,a.to+1]}function UF(t,e,n,i,s,a){let o=[];for(let r=0;r<t.length;r++){let c=t[r],[d,f]=hR(c.fromA+i,c.fromB+s,e,n),[m,g]=fR(c.toA+i,c.toB+s,e,n),y=[c.offset(-d+i,-f+s)];for(;r<t.length-1;){let b=t[r+1],[v,x]=hR(b.fromA+i,b.fromB+s,e,n);if(v>m+1&&x>g+1)break;y.push(b.offset(-d+i,-f+s)),[m,g]=fR(b.toA+i,b.toB+s,e,n),r++}o.push(new vb(y,d,Math.max(d,m),f,Math.max(f,g),a))}return o}const G_=1e3;function mR(t,e,n,i){let s=0,a=t.length;for(;;){if(s==a){let f=0,m=0;s&&({toA:f,toB:m}=t[s-1]);let g=e-(n?f:m);return[f+g,m+g]}let o=s+a>>1,r=t[o],[c,d]=n?[r.fromA,r.toA]:[r.fromB,r.toB];if(c>e)a=o;else if(d<=e)s=o+1;else return i?[r.fromA,r.fromB]:[r.toA,r.toB]}}function pR(t,e,n,i){let s=[];return e.iterChangedRanges((a,o,r,c)=>{let d=0,f=n?e.length:i,m=0,g=n?i:e.length;a>G_&&([d,m]=mR(t,a-G_,n,!0)),o<e.length-G_&&([f,g]=mR(t,o+G_,n,!1));let y=c-r-(o-a),b,[v,x]=n?[y,0]:[0,y];s.length&&(b=s[s.length-1]).toA>=d?s[s.length-1]={fromA:b.fromA,fromB:b.fromB,toA:f,toB:g,diffA:b.diffA+v,diffB:b.diffB+x}:s.push({fromA:d,toA:f,fromB:m,toB:g,diffA:v,diffB:x})}),s}function gR(t,e,n,i,s){if(!t.length)return e;let a=[];for(let o=0,r=0,c=0,d=0;;o++){let f=o==t.length?null:t[o],m=f?f.fromA+r:n.length,g=f?f.fromB+c:i.length;for(;d<e.length;){let x=e[d];if(x.endA+r>m||x.endB+c>g)break;a.push(x.offset(r,c)),d++}if(!f)break;let y=f.toA+r+f.diffA,b=f.toB+c+f.diffB,v=IF(n.sliceString(m,y),i.sliceString(g,b),s);for(let x of UF(v,n,i,m,g,FF()))a.push(x);for(r+=f.diffA,c+=f.diffB;d<e.length;){let x=e[d];if(x.fromA+r>y&&x.fromB+c>b)break;d++}}return a}const J1e="DiffModal-module__diffModal___v1LSh",Z1e="DiffModal-module__content___CqXvC",e2e="DiffModal-module__emptyState___gS4Kg",t2e="DiffModal-module__diffContainer___AoJKb",n2e="DiffModal-module__fileHeader___7jkN4",i2e="DiffModal-module__fileIcon___OxYTx",s2e="DiffModal-module__fileName___2ylCY",a2e="DiffModal-module__fileStats___bN8WB",o2e="DiffModal-module__statAdditions___EKdp8",r2e="DiffModal-module__statDeletions___Py0Xg",l2e="DiffModal-module__statBar___tR7TQ",c2e="DiffModal-module__statBlock___4qKhG",u2e="DiffModal-module__statBlockAdd___VI4yX",d2e="DiffModal-module__statBlockDel___39sMa",h2e="DiffModal-module__diffBody___9dIqe",f2e="DiffModal-module__hunk___AcNIC",m2e="DiffModal-module__hunkHeader___xUVgg",p2e="DiffModal-module__hunkGutter___QVKqi",g2e="DiffModal-module__hunkExpandIcon___zbAx-",_2e="DiffModal-module__hunkText___iPVut",y2e="DiffModal-module__diffLine___9KzZK",b2e="DiffModal-module__lineNum___VXwKE",v2e="DiffModal-module__lineNumEmpty___I-5AK",x2e="DiffModal-module__linePrefix___ofp2Q",S2e="DiffModal-module__lineText___Zdyo3",w2e="DiffModal-module__context___RnJqZ",k2e="DiffModal-module__deletion___rms8N",C2e="DiffModal-module__addition___a6g2h",kn={diffModal:J1e,content:Z1e,emptyState:e2e,diffContainer:t2e,fileHeader:n2e,fileIcon:i2e,fileName:s2e,fileStats:a2e,statAdditions:o2e,statDeletions:r2e,statBar:l2e,statBlock:c2e,statBlockAdd:u2e,statBlockDel:d2e,diffBody:h2e,hunk:f2e,hunkHeader:m2e,hunkGutter:p2e,hunkExpandIcon:g2e,hunkText:_2e,diffLine:y2e,lineNum:b2e,lineNumEmpty:v2e,linePrefix:x2e,lineText:S2e,context:w2e,deletion:k2e,addition:C2e},h2=3,_R=(t,e)=>Math.max(0,Math.min(e,t.length));function A2e(t,e){const n=un.of(t.split(`
|
||
`)),i=un.of(e.split(`
|
||
`)),s=vb.build(n,i);let a=0,o=0;return{hunks:s.map(c=>{const d=[],f=c.fromA<c.toA,m=c.fromB<c.toB,g=[];if(f){const R=n.lineAt(c.fromA).number,z=n.lineAt(c.toA-1).number;for(let D=R;D<=z;D++)g.push({num:D,text:n.line(D).text})}const y=[];if(m){const R=i.lineAt(c.fromB).number,z=i.lineAt(c.toB-1).number;for(let D=R;D<=z;D++)y.push({num:D,text:i.line(D).text})}o+=g.length,a+=y.length;let b,v,x,A;if(f)b=g[0].num-1,v=g[g.length-1].num+1;else{const R=_R(n,c.fromA),z=n.lineAt(R);c.fromA===z.from?(b=z.number-1,v=z.number):(b=z.number,v=z.number+1)}if(m)x=y[0].num-1,A=y[y.length-1].num+1;else{const R=_R(i,c.fromB),z=i.lineAt(R);c.fromB===z.from?(x=z.number-1,A=z.number):(x=z.number,A=z.number+1)}const k=Math.min(h2,Math.max(0,b),Math.max(0,x));for(let R=k;R>0;R--){const z=b-R+1,D=x-R+1;z>=1&&D>=1&&z<=n.lines&&d.push({type:"context",oldNum:z,newNum:D,text:n.line(z).text})}for(const R of g)d.push({type:"deletion",oldNum:R.num,newNum:null,text:R.text});for(const R of y)d.push({type:"addition",oldNum:null,newNum:R.num,text:R.text});const T=Math.max(0,Math.min(h2,n.lines-v+1)),L=Math.max(0,Math.min(h2,i.lines-A+1)),M=Math.min(T,L);for(let R=0;R<M;R++){const z=v+R,D=A+R;z>=1&&z<=n.lines&&D>=1&&D<=i.lines&&d.push({type:"context",oldNum:z,newNum:D,text:n.line(z).text})}const O=d.find(R=>R.oldNum!==null)?.oldNum??1,N=d.find(R=>R.newNum!==null)?.newNum??1,P=d.filter(R=>R.type!=="addition").length,E=d.filter(R=>R.type!=="deletion").length;return{oldStart:O,oldCount:P,newStart:N,newCount:E,lines:d}}),additions:a,deletions:o}}const yR=5;function N2e({additions:t,deletions:e}){const n=t+e;if(n===0)return null;const i=Math.round(t/n*yR);return h.jsx("span",{className:kn.statBar,children:Array.from({length:yR},(s,a)=>h.jsx("span",{className:`${kn.statBlock} ${a<i?kn.statBlockAdd:kn.statBlockDel}`},a))})}function T2e({open:t,original:e,modified:n,onConfirm:i,onCancel:s,loading:a=!1}){const{t:o}=et(),r=S.useMemo(()=>A2e(e,n),[e,n]);return h.jsx(Ss,{open:t,title:o("config_management.diff.title"),onClose:s,width:"min(1200px, 90vw)",className:kn.diffModal,closeDisabled:a,footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:s,disabled:a,children:o("common.cancel")}),h.jsx(me,{onClick:i,loading:a,disabled:a,children:o("config_management.diff.confirm")})]}),children:h.jsx("div",{className:kn.content,children:r.hunks.length===0?h.jsx("div",{className:kn.emptyState,children:o("config_management.diff.no_changes")}):h.jsxs("div",{className:kn.diffContainer,children:[h.jsxs("div",{className:kn.fileHeader,children:[h.jsx("svg",{className:kn.fileIcon,viewBox:"0 0 16 16",width:"16",height:"16",children:h.jsx("path",{fillRule:"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z",fill:"currentColor"})}),h.jsx("span",{className:kn.fileName,children:"config.yaml"}),h.jsxs("span",{className:kn.fileStats,children:[h.jsxs("span",{className:kn.statAdditions,children:["+",r.additions]}),h.jsxs("span",{className:kn.statDeletions,children:["-",r.deletions]}),h.jsx(N2e,{additions:r.additions,deletions:r.deletions})]})]}),h.jsx("div",{className:kn.diffBody,children:r.hunks.map((c,d)=>h.jsxs("div",{className:kn.hunk,children:[h.jsxs("div",{className:kn.hunkHeader,children:[h.jsx("span",{className:kn.hunkGutter,children:h.jsx("svg",{className:kn.hunkExpandIcon,viewBox:"0 0 16 16",width:"12",height:"12",children:h.jsx("path",{d:"M8.177 1.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V5H5.104a.25.25 0 01-.177-.427l2.896-2.896a.25.25 0 01.354 0zM7.25 11.75a.75.75 0 011.5 0V13h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 13H7.25v-1.25z",fill:"currentColor"})})}),h.jsx("span",{className:kn.hunkGutter}),h.jsxs("span",{className:kn.hunkText,children:["@@ -",c.oldStart,",",c.oldCount," +",c.newStart,",",c.newCount," @@"]})]}),c.lines.map((f,m)=>h.jsxs("div",{className:`${kn.diffLine} ${kn[f.type]}`,children:[h.jsx("span",{className:`${kn.lineNum} ${f.oldNum===null?kn.lineNumEmpty:""}`,children:f.oldNum??""}),h.jsx("span",{className:`${kn.lineNum} ${f.newNum===null?kn.lineNumEmpty:""}`,children:f.newNum??""}),h.jsx("span",{className:kn.linePrefix,children:f.type==="deletion"?"-":f.type==="addition"?"+":" "}),h.jsx("code",{className:kn.lineText,children:f.text||" "})]},`${d}-${m}`))]},d))})]})})})}const M2e="ConfigPage-module__container___5kN-Y",L2e="ConfigPage-module__pageHeader___Zulyi",O2e="ConfigPage-module__pageHeaderCopy___fiTfJ",P2e="ConfigPage-module__pageEyebrow___Oib1p",E2e="ConfigPage-module__pageTitle___BoVLE",j2e="ConfigPage-module__description___qruwQ",R2e="ConfigPage-module__pageMeta___NX40i",D2e="ConfigPage-module__statusBadge___dQAmD",F2e="ConfigPage-module__tabBar___PelpE",I2e="ConfigPage-module__tabItem___Uj1rU",U2e="ConfigPage-module__tabActive___sZLh-",B2e="ConfigPage-module__workspaceShell___Ztz3J",z2e="ConfigPage-module__content___PgFbt",q2e="ConfigPage-module__sourceWorkspace___bUuLs",K2e="ConfigPage-module__sourceToolbar___fhCdI",H2e="ConfigPage-module__searchInputWrapper___-GeEQ",V2e="ConfigPage-module__searchInput___ock8o",W2e="ConfigPage-module__searchRight___pwWBV",G2e="ConfigPage-module__searchCount___AIry7",$2e="ConfigPage-module__searchButton___GRbfi",X2e="ConfigPage-module__searchActions___ZGITa",Q2e="ConfigPage-module__editorWrapper___yBudn",Y2e="ConfigPage-module__modified___4mzgT",J2e="ConfigPage-module__saved___zmZx2",Z2e="ConfigPage-module__error___qlpX1",eSe="ConfigPage-module__floatingActionContainer___3ZQ-z",tSe="ConfigPage-module__floatingActionList___ky8bV",nSe="ConfigPage-module__floatingStatus___u8zOi",iSe="ConfigPage-module__floatingStatusCompact___STwcZ",sSe="ConfigPage-module__floatingActionButton___Htxmz",aSe="ConfigPage-module__dirtyDot___zXEnD",dn={container:M2e,pageHeader:L2e,pageHeaderCopy:O2e,pageEyebrow:P2e,pageTitle:E2e,description:j2e,pageMeta:R2e,statusBadge:D2e,tabBar:F2e,tabItem:I2e,tabActive:U2e,workspaceShell:B2e,content:z2e,sourceWorkspace:q2e,sourceToolbar:K2e,searchInputWrapper:H2e,searchInput:V2e,searchRight:W2e,searchCount:G2e,searchButton:$2e,searchActions:X2e,editorWrapper:Q2e,modified:Y2e,saved:J2e,error:Z2e,floatingActionContainer:eSe,floatingActionList:tSe,floatingStatus:nSe,floatingStatusCompact:iSe,floatingActionButton:sSe,dirtyDot:aSe},oSe=S.lazy(()=>Cge(()=>Promise.resolve().then(()=>HTe),void 0,import.meta.url));function bR(t){try{const e=w6(t);return!e||typeof e!="object"||Array.isArray(e)?!1:!!e["commercial-mode"]}catch{return!1}}function rSe(){const{t}=et(),e=Wd(),n=e?e.isCurrentLayer:!0,i=_n(Ee=>Ee.showNotification),s=_n(Ee=>Ee.showConfirmation),a=nn(Ee=>Ee.connectionStatus),o=Aa(Ee=>Ee.resolvedTheme),r=Q0("(max-width: 768px)"),{visualValues:c,visualDirty:d,visualParseError:f,visualValidationErrors:m,visualHasPayloadValidationErrors:g,loadVisualValuesFromYaml:y,applyVisualChangesToYaml:b,setVisualValues:v}=Tye(),[x,A]=S.useState(()=>{const Ee=localStorage.getItem("config-management:tab");return Ee==="visual"||Ee==="source"?Ee:"visual"}),[k,T]=S.useState(""),[L,M]=S.useState(!0),[O,N]=S.useState(!1),[P,E]=S.useState(""),[R,z]=S.useState(!1),[D,Q]=S.useState(!1),[G,B]=S.useState(""),[I,V]=S.useState(""),[K,$]=S.useState(""),[X,U]=S.useState({current:0,total:0}),[q,Y]=S.useState(""),oe=S.useRef(null),se=S.useRef(null),F=a!=="connected",Z=R||d,J=n,te=!!f,fe=x==="visual"&&(Object.values(m).some(Boolean)||g),re=S.useCallback(async()=>{M(!0),E("");try{const Ee=await Af.fetchConfigYaml();T(Ee),z(!1),Q(!1),B(Ee),V(Ee),y(Ee)}catch(Ee){const ut=Ee instanceof Error?Ee.message:t("notification.refresh_failed");E(ut)}finally{M(!1)}},[y,t]);S.useEffect(()=>{re()},[re]),S.useEffect(()=>{x!=="visual"||!f||(A("source"),localStorage.setItem("config-management:tab","source"),i(t("config_management.visual_mode_unavailable_detail",{message:f}),"error"))},[x,i,t,f]);const ue=async()=>{N(!0);try{const Ee=bR(G),ut=bR(I),Mt=Ee!==ut;await Af.saveConfigYaml(I);const Nt=await Af.fetchConfigYaml();z(!1),Q(!1),T(Nt),B(Nt),V(Nt),y(Nt);try{Bt.getState().clearCache(),await Bt.getState().fetchConfig(void 0,!0)}catch(le){const ge=le instanceof Error?le.message:typeof le=="string"?le:"";i(`${t("notification.refresh_failed")}${ge?`: ${ge}`:""}`,"error")}i(t("config_management.save_success"),"success"),Mt&&i(t("notification.commercial_mode_restart_required"),"warning")}catch(Ee){const ut=Ee instanceof Error?Ee.message:"";i(`${t("notification.save_failed")}: ${ut}`,"error")}finally{N(!1)}},ee=async()=>{if(x==="visual"&&f){i(t("config_management.visual_mode_save_blocked"),"error");return}N(!0);try{const Ee=await Af.fetchConfigYaml();if(x!=="source"){const Nt=km(Ee);if(Nt.errors.length>0){i(t("config_management.visual_mode_latest_yaml_invalid",{message:Nt.errors[0]?.message??t("config_management.visual_mode_save_blocked")}),"error");return}}const ut=x==="source"?k:b(Ee);let Mt=Ee;if(x!=="source")try{Mt=km(Ee).toString({indent:2,lineWidth:120,minContentWidth:0})}catch{}if(Mt===ut){z(!1),T(Ee),B(Ee),V(ut),y(Ee),i(t("config_management.diff.no_changes"),"info");return}B(Mt),V(ut),Q(!0)}catch(Ee){const ut=Ee instanceof Error?Ee.message:"";i(`${t("notification.save_failed")}: ${ut}`,"error")}finally{N(!1)}},Ie=S.useCallback(Ee=>{T(Ee),z(!0)},[]),Ke=S.useCallback(Ee=>{if(Ee!==x){if(Ee==="source"){if(d){const ut=b(k);ut!==k&&(T(ut),z(!0))}}else{const ut=y(k);if(!ut.ok){i(t("config_management.visual_mode_unavailable_detail",{message:ut.error}),"error");return}}A(Ee),localStorage.setItem("config-management:tab",Ee)}},[x,b,k,y,i,t,d]),ht=S.useCallback((Ee,ut="next")=>{if(!Ee||!oe.current?.view)return;const Mt=oe.current.view,Nt=Mt.state.doc.toString(),le=[],ge=Ee.toLowerCase(),ie=Nt.toLowerCase();let Ae=0;for(;Ae<ie.length;){const xt=ie.indexOf(ge,Ae);if(xt===-1)break;le.push(xt),Ae=xt+1}if(le.length===0){U({current:0,total:0});return}const tt=Mt.state.selection.main,jt=ut==="prev"?tt.from:tt.to;let kt=0;if(ut==="next")for(let xt=0;xt<le.length;xt++){if(le[xt]>jt){kt=xt;break}xt===le.length-1&&(kt=0)}else for(let xt=le.length-1;xt>=0;xt--){if(le[xt]<jt){kt=xt;break}xt===0&&(kt=le.length-1)}const on=le[kt];U({current:kt+1,total:le.length}),Mt.dispatch({selection:{anchor:on,head:on+Ee.length},scrollIntoView:!0}),Mt.focus()},[]),wt=S.useCallback(Ee=>{$(Ee),Ee?U({current:0,total:0}):(U({current:0,total:0}),Y(""))},[]),ft=S.useCallback((Ee="next")=>{K&&(Y(K),ht(K,Ee))},[K,ht]),Xe=S.useCallback(Ee=>{Ee.key==="Enter"&&(Ee.preventDefault(),ft(Ee.shiftKey?"prev":"next"))},[ft]),Ot=S.useCallback(()=>{q&&ht(q,"prev")},[q,ht]),zt=S.useCallback(()=>{q&&ht(q,"next")},[q,ht]);S.useLayoutEffect(()=>{if(typeof window>"u"||!J)return;const Ee=se.current;if(!Ee)return;const ut=()=>{const Nt=Ee.getBoundingClientRect().height;document.documentElement.style.setProperty("--config-action-bar-height",`${Nt}px`)};ut(),window.addEventListener("resize",ut);const Mt=typeof ResizeObserver>"u"?null:new ResizeObserver(ut);return Mt?.observe(Ee),()=>{Mt?.disconnect(),window.removeEventListener("resize",ut),document.documentElement.style.removeProperty("--config-action-bar-height")}},[J]);const sn=()=>t(F?"config_management.status_disconnected":L?"config_management.status_loading":P?"config_management.status_load_failed":te?"config_management.visual_mode_unavailable":fe?"config_management.visual.validation.validation_blocked":O?"config_management.status_saving":Z?"config_management.status_dirty":"config_management.status_loaded"),an=()=>P||te||fe?dn.error:Z?dn.modified:!L&&!O?dn.saved:"",Fe=()=>r?F?t("config_management.status_disconnected_short",{defaultValue:"Disconnected"}):L?t("config_management.status_loading_short",{defaultValue:"Loading"}):P?t("config_management.status_load_failed_short",{defaultValue:"Failed"}):te?t("config_management.visual_mode_unavailable_short",{defaultValue:"YAML issue"}):fe?t("config_management.visual.validation_blocked_short",{defaultValue:"Fix errors"}):O?t("config_management.status_saving_short",{defaultValue:"Saving"}):Z?t("config_management.status_dirty_short",{defaultValue:"Unsaved"}):t("config_management.status_loaded_short",{defaultValue:"Loaded"}):sn(),mt=S.useCallback(()=>{if(!Z){re();return}s({title:t("common.unsaved_changes_title"),message:t("config_management.reload_confirm_message"),confirmText:t("config_management.reload"),cancelText:t("common.cancel"),variant:"danger",onConfirm:async()=>{await re()}})},[Z,re,s,t]),je=h.jsx("div",{className:dn.floatingActionContainer,ref:se,children:h.jsxs("div",{className:dn.floatingActionList,children:[h.jsx("div",{className:`${dn.floatingStatus} ${r?dn.floatingStatusCompact:""} ${an()}`,children:Fe()}),h.jsx("button",{type:"button",className:dn.floatingActionButton,onClick:mt,disabled:L||O,title:t("config_management.reload"),"aria-label":t("config_management.reload"),children:h.jsx(zw,{size:16})}),h.jsxs("button",{type:"button",className:dn.floatingActionButton,onClick:ee,disabled:F||L||O||!Z||D||te||fe,title:t("config_management.save"),"aria-label":t("config_management.save"),children:[h.jsx(Kw,{size:16}),Z&&h.jsx("span",{className:dn.dirtyDot,"aria-hidden":"true"})]})]})}),pt=x==="visual"?t("config_management.tabs.visual",{defaultValue:"可视化编辑"}):t("config_management.tabs.source",{defaultValue:"源文件编辑"}),at=t(x==="visual"?"config_management.visual.notice":"config_management.description");return h.jsxs("div",{className:dn.container,children:[h.jsxs("div",{className:dn.pageHeader,children:[h.jsxs("div",{className:dn.pageHeaderCopy,children:[h.jsx("span",{className:dn.pageEyebrow,children:pt}),h.jsx("h1",{className:dn.pageTitle,children:t("config_management.title")}),h.jsx("p",{className:dn.description,children:at})]}),h.jsxs("div",{className:dn.pageMeta,children:[h.jsx("div",{className:`${dn.statusBadge} ${an()}`,children:sn()}),h.jsxs("div",{className:dn.tabBar,children:[h.jsx("button",{type:"button",className:`${dn.tabItem} ${x==="visual"?dn.tabActive:""}`,onClick:()=>Ke("visual"),disabled:O||L,children:t("config_management.tabs.visual",{defaultValue:"可视化编辑"})}),h.jsx("button",{type:"button",className:`${dn.tabItem} ${x==="source"?dn.tabActive:""}`,onClick:()=>Ke("source"),disabled:O||L,children:t("config_management.tabs.source",{defaultValue:"源代码编辑"})})]})]})]}),h.jsx("div",{className:dn.workspaceShell,children:h.jsxs("div",{className:dn.content,children:[P&&h.jsx("div",{className:"error-box",children:P}),!P&&f&&h.jsx("div",{className:"error-box",children:t("config_management.visual_mode_unavailable_detail",{message:f})}),x==="visual"?h.jsx(Iye,{values:c,validationErrors:m,hasPayloadValidationErrors:g,disabled:F||L,onChange:v}):h.jsxs("div",{className:dn.sourceWorkspace,children:[h.jsxs("div",{className:dn.sourceToolbar,children:[h.jsx("div",{className:dn.searchInputWrapper,children:h.jsx(ot,{value:K,onChange:Ee=>wt(Ee.target.value),onKeyDown:Xe,placeholder:t("config_management.search_placeholder",{defaultValue:"搜索配置内容..."}),disabled:F||L,className:dn.searchInput,rightElement:h.jsxs("div",{className:dn.searchRight,children:[K&&q===K&&h.jsx("span",{className:dn.searchCount,children:X.total>0?`${X.current} / ${X.total}`:t("config_management.search_no_results",{defaultValue:"无结果"})}),h.jsx("button",{type:"button",className:dn.searchButton,onClick:()=>ft("next"),disabled:!K||F||L,title:t("config_management.search_button",{defaultValue:"搜索"}),children:h.jsx(l4,{size:16})})]})})}),h.jsxs("div",{className:dn.searchActions,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:Ot,disabled:!K||q!==K||X.total===0,title:t("config_management.search_prev",{defaultValue:"上一个"}),children:h.jsx(qw,{size:16})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:zt,disabled:!K||q!==K||X.total===0,title:t("config_management.search_next",{defaultValue:"下一个"}),children:h.jsx(Dy,{size:16})})]})]}),h.jsx("div",{className:dn.editorWrapper,children:h.jsx(S.Suspense,{fallback:null,children:h.jsx(oSe,{editorRef:oe,value:k,onChange:Ie,theme:o,editable:!F&&!L,placeholder:t("config_management.editor_placeholder")})})})]})]})}),J&&typeof document<"u"?Eo.createPortal(je,document.body):null,h.jsx(T2e,{open:D,original:G,modified:I,onConfirm:ue,onCancel:()=>Q(!1),loading:O})]})}function lSe(t,e){const[n,i]=S.useState(()=>{try{const a=window.localStorage.getItem(t);return a?JSON.parse(a):e}catch(a){return console.error(`Error reading localStorage key "${t}":`,a),e}});return[n,a=>{try{const o=a instanceof Function?a(n):a;i(o),window.localStorage.setItem(t,JSON.stringify(o))}catch(o){console.error(`Error setting localStorage key "${t}":`,o)}}]}const hC=["GET","POST","PUT","PATCH","DELETE","OPTIONS","HEAD"],cSe=["2xx","3xx","4xx","5xx"],BF=t=>{if(typeof t=="number"){if(t>=200&&t<300)return"2xx";if(t>=300&&t<400)return"3xx";if(t>=400&&t<500)return"4xx";if(t>=500&&t<600)return"5xx"}},uSe=new RegExp(`\\b(${hC.join("|")})\\b`),dSe=/^\[?(\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\]?/,hSe=/^\[?(trace|debug|info|warn|warning|error|fatal)\s*\]?(?=\s|\[|$)\s*/i,f2=/^\[([^\]]+)\]/,zF=/\b(?:\d+(?:\.\d+)?\s*(?:µs|us|ms|s|m))(?:\s*\d+(?:\.\d+)?\s*(?:µs|us|ms|s|m))*\b/i,fSe=/\b(?:\d{1,3}\.){3}\d{1,3}\b/,mSe=/\b(?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}\b/i,vR=/^([a-f0-9]{8}|--------)$/i,pSe=/^\d{1,2}:\d{2}:\d{2}(?:\.\d{1,3})?$/,m2=/^\[GIN\]\s+(\d{4})\/(\d{2})\/(\d{2})\s*-\s*(\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)\s*$/,gSe=[/\|\s*([1-5]\d{2})\s*\|/,/\b([1-5]\d{2})\s*-/,new RegExp(`\\b(?:${hC.join("|")})\\s+\\S+\\s+([1-5]\\d{2})\\b`),/\b(?:status|code|http)[:\s]+([1-5]\d{2})\b/i,/\b([1-5]\d{2})\s+(?:OK|Created|Accepted|No Content|Moved|Found|Bad Request|Unauthorized|Forbidden|Not Found|Method Not Allowed|Internal Server Error|Bad Gateway|Service Unavailable|Gateway Timeout)\b/i],_Se=t=>{for(const e of gSe){const n=t.match(e);if(!n)continue;const i=Number.parseInt(n[1],10);if(Number.isFinite(i)&&i>=100&&i<=599)return i}},p2=t=>{const e=t.match(fSe);if(e)return e[0];const n=t.match(mSe);if(!n)return;const i=n[0];if(!pSe.test(i)&&!(!i.includes("::")&&i.split(":").length!==8))return i},$_=t=>{const e=t.trim(),n=e.match(/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})/);return n?`${n[1]} ${n[2]}`:e},xR=t=>{const e=t.match(zF);if(e)return e[0].replace(/\s+/g,"")},ySe=t=>{const e=t.trim().toLowerCase();if(e==="warning"||e==="warn")return"warn";if(e==="info")return"info";if(e==="error")return"error";if(e==="fatal")return"fatal";if(e==="debug")return"debug";if(e==="trace")return"trace"},bSe=t=>{const e=t.toLowerCase();if(/\bfatal\b/.test(e))return"fatal";if(/\berror\b/.test(e))return"error";if(/\bwarn(?:ing)?\b/.test(e)||t.includes("警告"))return"warn";if(/\binfo\b/.test(e))return"info";if(/\bdebug\b/.test(e))return"debug";if(/\btrace\b/.test(e))return"trace"},g2=t=>{const e=t.match(uSe);if(!e)return{};const n=e[1],i=e.index??0,s=t.slice(i+e[0].length).trim(),a=s?s.split(/\s+/)[0]:void 0;return{method:n,path:a}},vSe=t=>{let e=t.trim(),n;const i=e.match(dSe);i&&(n=i[1],e=e.slice(i[0].length).trim());let s;const a=e.match(/^\[([a-f0-9]{8}|--------)\]\s*/i);if(a){const x=a[1];/^-+$/.test(x)||(s=x),e=e.slice(a[0].length).trim()}let o;const r=e.match(hSe);r&&(o=ySe(r[1]),e=e.slice(r[0].length).trim());let c;const d=e.match(f2);d&&(c=d[1],e=e.slice(d[0].length).trim());let f,m,g,y,b,v=e;if(e.includes("|")){const x=e.split("|").map(E=>E.trim()).filter(Boolean),A=new Set,k=x.findIndex(E=>m2.test(E));if(k>=0){const E=x[k].match(m2);if(E){const R=`${E[1]}-${E[2]}-${E[3]} ${E[4]}`,z=$_(R),D=n?$_(n):void 0;n?D===z&&A.add(k):(n=R,A.add(k))}}const T=x.findIndex(E=>vR.test(E));if(T>=0){const E=x[T].match(vR);if(E){const R=E[1];/^-+$/.test(R)||(s=R),A.add(T)}}const L=x.findIndex(E=>/^\d{3}$/.test(E));if(L>=0){const E=x[L].match(/^(\d{3})$/);if(E){const R=Number.parseInt(E[1],10);R>=100&&R<=599&&(f=R,A.add(L))}}const M=x.findIndex(E=>zF.test(E));if(M>=0){const E=xR(x[M]);E&&(m=E,A.add(M))}const O=x.findIndex(E=>!!p2(E));if(O>=0){const E=p2(x[O]);E&&(g=E,A.add(O))}const N=x.findIndex(E=>{const{method:R}=g2(E);return!!R});if(N>=0){const E=g2(x[N]);y=E.method,b=E.path,A.add(N)}const P=x.findIndex(E=>f2.test(E));if(P>=0){const E=x[P].match(f2);E&&(c=E[1],A.add(P))}v=x.filter((E,R)=>!A.has(R)).join(" | ")}else{f=_Se(e);const x=xR(e);x&&(m=x),g=p2(e);const A=g2(e);y=A.method,b=A.path}if(o||(o=bSe(t)),v){const x=v.match(m2);if(x){const A=`${x[1]}-${x[2]}-${x[3]} ${x[4]}`;n||(n=A),$_(n)===$_(A)&&(v="")}}return{raw:t,timestamp:n,level:o,source:c,requestId:s,statusCode:f,latency:m,ip:g,method:y,path:b,message:v}},xSe=12;function SSe(t){const{parsedLines:e}=t,[n,i]=S.useState([]),[s,a]=S.useState([]),[o,r]=S.useState([]),c=S.useMemo(()=>new Set(n),[n]),d=S.useMemo(()=>new Set(s),[s]),f=S.useMemo(()=>new Set(o),[o]),m=n.length>0||s.length>0||o.length>0,g=S.useMemo(()=>{const T={};return e.forEach(L=>{L.method&&(T[L.method]=(T[L.method]??0)+1)}),T},[e]),y=S.useMemo(()=>{const T={};return e.forEach(L=>{const M=BF(L.statusCode);M&&(T[M]=(T[M]??0)+1)}),T},[e]),b=S.useMemo(()=>{const T=new Map;return e.forEach(L=>{L.path&&T.set(L.path,(T.get(L.path)??0)+1)}),Array.from(T.entries()).sort((L,M)=>M[1]-L[1]||L[0].localeCompare(M[0])).slice(0,xSe).map(([L,M])=>({path:L,count:M}))},[e]);return S.useEffect(()=>{const T=new Set(b.map(L=>L.path));r(L=>{if(L.length===0)return L;const M=L.filter(O=>T.has(O));return M.length===L.length?L:M})},[b]),{methodFilters:n,statusFilters:s,pathFilters:o,methodFilterSet:c,statusFilterSet:d,pathFilterSet:f,hasStructuredFilters:m,methodCounts:g,statusCounts:y,pathOptions:b,toggleMethodFilter:T=>{i(L=>L.includes(T)?L.filter(M=>M!==T):[...L,T])},toggleStatusFilter:T=>{a(L=>L.includes(T)?L.filter(M=>M!==T):[...L,T])},togglePathFilter:T=>{r(L=>L.includes(T)?L.filter(M=>M!==T):[...L,T])},clearStructuredFilters:()=>{i([]),a([]),r([])}}}const wSe=200,kSe=72,CSe=t=>t?t.scrollHeight-t.scrollTop-t.clientHeight<=24:!0;function ASe(t){const{logState:e,setLogState:n,loading:i,isSearching:s,filteredLineCount:a,hasStructuredFilters:o,showRawLogs:r}=t,c=S.useRef(null),d=S.useRef(!1),f=S.useRef(null),m=!s&&e.visibleFrom>0,g=S.useCallback(()=>{const A=c.current;A&&(A.scrollTop=A.scrollHeight)},[]),y=S.useCallback(()=>{d.current=!0},[]),b=S.useCallback(()=>{const A=c.current;A&&(f.current||s||n(k=>k.visibleFrom<=0?k:(f.current={scrollHeight:A.scrollHeight,scrollTop:A.scrollTop},{...k,visibleFrom:Math.max(k.visibleFrom-wSe,0)})))},[s,n]),v=S.useCallback(A=>{const k=c.current;k&&(s||m&&(f.current||k.scrollTop>kSe||b()))},[m,s,b]);S.useLayoutEffect(()=>{const A=c.current,k=f.current;if(!A||!k)return;const T=A.scrollHeight-k.scrollHeight;A.scrollTop=k.scrollTop+T,f.current=null},[e.visibleFrom]);const x=S.useCallback(()=>{const A=c.current;!A||!m||s||f.current||A.scrollHeight>A.clientHeight+1||b()},[m,s,b]);return S.useEffect(()=>{if(i||!c.current)return;const k=window.requestAnimationFrame(()=>{x()});return()=>{window.cancelAnimationFrame(k)}},[a,o,i,e.visibleFrom,r,x]),S.useEffect(()=>{const A=()=>{window.requestAnimationFrame(()=>{x()})};return window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A)}},[x]),S.useEffect(()=>{d.current&&(i||c.current&&(g(),d.current=!1))},[i,e.buffer,e.visibleFrom,g]),{logViewerRef:c,canLoadMore:m,handleLogScroll:v,scrollToBottom:g,requestScrollToBottom:y}}const NSe=60*1e3,TSe=5,MSe=new Set(["/v1/chat/completions","/v1/messages","/v1/responses"]),LSe=["/v1beta/models"],pw=t=>String(t??"").replace(/^"+|"+$/g,"").split("?")[0].trim(),OSe=t=>{const e=pw(t);return!e||e==="/"?e:e.replace(/\/+$/,"")},qF=t=>{const e=OSe(t);return e?MSe.has(e)?!0:LSe.some(n=>e.startsWith(n)):!1},PSe=/\bmodel[=:]\s*"?([a-zA-Z0-9._\-/]+)"?/i,ESe=t=>t&&t.match(PSe)?.[1]||void 0,jSe=(t,e)=>!t||!e?!1:t===e||t.startsWith(e)||e.startsWith(t),RSe=t=>{if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(typeof t!="object"||t===null||!("message"in t))return"";const e=t.message;return typeof e=="string"?e:""};function DSe(t){const{traceScopeKey:e,connectionStatus:n,config:i,requestLogDownloading:s}=t,{t:a}=et(),o=ns(Q=>Q.usage),r=ns(Q=>Q.scopeKey),c=ns(Q=>Q.loadUsageStats),[d,f]=S.useState(null),[m,g]=S.useState(new Map),[y,b]=S.useState(!1),[v,x]=S.useState(""),A=S.useRef(0),k=S.useRef(""),T=r===e?o:null,L=S.useMemo(()=>$G(T),[T]),M=S.useMemo(()=>j5(i??{}),[i]),O=S.useCallback(async Q=>{if(k.current!==e&&(k.current=e,A.current=0,g(new Map),x("")),y)return;const G=Date.now(),B=A.current>0&&G-A.current<NSe;b(!0),x("");try{const[,I]=await Promise.all([c({force:Q,staleTimeMs:Cr}),B?Promise.resolve(null):At.list().catch(()=>null)]);if(I!==null){const V=Array.isArray(I)?I:I?.files;if(Array.isArray(V)){const K=new Map;V.forEach($=>{const X=rs($.auth_index??$.authIndex);X&&K.set(X,{name:$.name||X,type:($.type||$.provider||"").toString()})}),g(K),A.current=Date.now()}}}catch(I){x(RSe(I)||a("logs.trace_usage_load_error"))}finally{b(!1)}},[c,a,y,e]),N=S.useCallback(async()=>{await O(!1)},[O]),P=S.useCallback(async()=>{await O(!0)},[O]);S.useEffect(()=>{n==="connected"&&(k.current=e,A.current=0,g(new Map),b(!1),x(""))},[n,e]);const E=S.useMemo(()=>{if(!d)return[];const Q=pw(d.path);if(!Q)return[];const G=d.timestamp?Date.parse(d.timestamp):Number.NaN,B=L.filter(X=>jSe(Q,pw(X.__endpointPath)));if(B.length===0)return[];const I=ESe(d.message),V=I?B.filter(X=>X.__modelName?.toLowerCase()===I.toLowerCase()):[],K=V.length>0;return(K?V:B).map(X=>{const U=!Number.isNaN(G)&&X.__timestampMs>0?Math.abs(G-X.__timestampMs):null;return{detail:X,modelMatched:K,timeDeltaMs:U}}).sort((X,U)=>(U.detail.__timestampMs||0)-(X.detail.__timestampMs||0)).slice(0,TSe)},[d,L]),R=S.useCallback((Q,G)=>R5(Q,G,M,m),[m,M]),z=S.useCallback(Q=>{qF(Q.path)&&(x(""),f(Q),N())},[N]),D=S.useCallback(()=>{s||f(null)},[s]);return{traceLogLine:d,traceLoading:y,traceError:v,traceCandidates:E,resolveTraceSourceInfo:R,loadTraceUsageDetails:N,refreshTraceUsageDetails:P,openTraceModal:z,closeTraceModal:D}}const FSe="LogsPage-module__container___aQ0JL",ISe="LogsPage-module__pageTitle___vZY55",USe="LogsPage-module__tabBar___bI3hW",BSe="LogsPage-module__tabItem___5tb4J",zSe="LogsPage-module__tabActive___JjbWX",qSe="LogsPage-module__content___hGaGn",KSe="LogsPage-module__logCard___KG4Jd",HSe="LogsPage-module__toolbar___9dY5F",VSe="LogsPage-module__filters___nUahU",WSe="LogsPage-module__searchWrapper___mrEmr",GSe="LogsPage-module__filterPanelHeader___Oi5tO",$Se="LogsPage-module__filterPanelToggle___ADZED",XSe="LogsPage-module__filterPanelButtonContent___sgOCp",QSe="LogsPage-module__filterPanelCount___kAJ5-",YSe="LogsPage-module__structuredFilters___fW4v7",JSe="LogsPage-module__filterChipGroup___bbPoy",ZSe="LogsPage-module__filterChipLabel___jy0D3",ewe="LogsPage-module__filterChipList___hHeOY",twe="LogsPage-module__filterChip___Efqh7",nwe="LogsPage-module__filterChipActive___8S8ki",iwe="LogsPage-module__filterChipHint___shcVo",swe="LogsPage-module__searchInput___eoPij",awe="LogsPage-module__searchIcon___73cvF",owe="LogsPage-module__searchClear___yTM1y",rwe="LogsPage-module__actionButton___aYJPR",lwe="LogsPage-module__buttonContent___qjHrB",cwe="LogsPage-module__switchLabel___EfB3d",uwe="LogsPage-module__logPanel___2wjiP",dwe="LogsPage-module__errorPanel___0w-se",hwe="LogsPage-module__loadMoreBanner___BUD0t",fwe="LogsPage-module__loadMoreCount___UsdBd",mwe="LogsPage-module__loadMoreStats___e9bVk",pwe="LogsPage-module__logList___lFt6f",gwe="LogsPage-module__rawLog___F5YBd",_we="LogsPage-module__logRow___rxZS5",ywe="LogsPage-module__rowWarn___Lhg4M",bwe="LogsPage-module__rowError___XQ3Qi",vwe="LogsPage-module__timestamp___TZvLq",xwe="LogsPage-module__rowMain___f--We",Swe="LogsPage-module__badge___tR566",wwe="LogsPage-module__pill___vGA2z",kwe="LogsPage-module__source___nv7Zu",Cwe="LogsPage-module__requestIdBadge___yPO1b",Awe="LogsPage-module__statusBadge___hj08j",Nwe="LogsPage-module__statusSuccess___3llcn",Twe="LogsPage-module__statusInfo___B6DaE",Mwe="LogsPage-module__statusWarn___1Dwki",Lwe="LogsPage-module__statusError___xxTDc",Owe="LogsPage-module__levelInfo___oZMOp",Pwe="LogsPage-module__levelWarn___DsCD0",Ewe="LogsPage-module__levelError___8VjWc",jwe="LogsPage-module__levelDebug___l-5yk",Rwe="LogsPage-module__levelTrace___XvRLF",Dwe="LogsPage-module__methodBadge___Cf9jC",Fwe="LogsPage-module__path___frHAs",Iwe="LogsPage-module__message___bNHRw",Uwe="LogsPage-module__traceButton___TpMAt",Bwe="LogsPage-module__tracePanel___qLlvU",zwe="LogsPage-module__traceNotice___brNFz",qwe="LogsPage-module__traceSectionTitle___oZ-a0",Kwe="LogsPage-module__traceCandidatesHeader___b8sav",Hwe="LogsPage-module__traceInfoGrid___7bY40",Vwe="LogsPage-module__traceInfoItem___ydd7g",Wwe="LogsPage-module__traceInfoItemWide___pmNic",Gwe="LogsPage-module__traceInfoLabel___zidDI",$we="LogsPage-module__traceInfoValue___3AiSj",Xwe="LogsPage-module__traceSourceType___4TLzV",Qwe="LogsPage-module__traceCandidates___TbNAE",Ywe="LogsPage-module__traceCandidate___jBw7W",Jwe="LogsPage-module__traceCandidateHeader___daeEH",Zwe="LogsPage-module__traceModelBadge___iJzwF",eke="LogsPage-module__traceDelta___gfgPb",tke="LogsPage-module__traceCandidateGrid___qPwow",Ce={container:FSe,pageTitle:ISe,tabBar:USe,tabItem:BSe,tabActive:zSe,content:qSe,logCard:KSe,toolbar:HSe,filters:VSe,searchWrapper:WSe,filterPanelHeader:GSe,filterPanelToggle:$Se,filterPanelButtonContent:XSe,filterPanelCount:QSe,structuredFilters:YSe,filterChipGroup:JSe,filterChipLabel:ZSe,filterChipList:ewe,filterChip:twe,filterChipActive:nwe,filterChipHint:iwe,searchInput:swe,searchIcon:awe,searchClear:owe,actionButton:rwe,buttonContent:lwe,switchLabel:cwe,logPanel:uwe,errorPanel:dwe,loadMoreBanner:hwe,loadMoreCount:fwe,loadMoreStats:mwe,logList:pwe,rawLog:gwe,logRow:_we,rowWarn:ywe,rowError:bwe,timestamp:vwe,rowMain:xwe,badge:Swe,pill:wwe,source:kwe,requestIdBadge:Cwe,statusBadge:Awe,statusSuccess:Nwe,statusInfo:Twe,statusWarn:Mwe,statusError:Lwe,levelInfo:Owe,levelWarn:Pwe,levelError:Ewe,levelDebug:jwe,levelTrace:Rwe,methodBadge:Dwe,path:Fwe,message:Iwe,traceButton:Uwe,tracePanel:Bwe,traceNotice:zwe,traceSectionTitle:qwe,traceCandidatesHeader:Kwe,traceInfoGrid:Hwe,traceInfoItem:Vwe,traceInfoItemWide:Wwe,traceInfoLabel:Gwe,traceInfoValue:$we,traceSourceType:Xwe,traceCandidates:Qwe,traceCandidate:Ywe,traceCandidateHeader:Jwe,traceModelBadge:Zwe,traceDelta:eke,traceCandidateGrid:tke},nke=100,SR=1e4,ike=650,wR=10,Sf=t=>{if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(typeof t!="object"||t===null||!("message"in t))return"";const e=t.message;return typeof e=="string"?e:""};function ske(){const{t}=et(),{showNotification:e,showConfirmation:n}=_n(),i=nn(ie=>ie.connectionStatus),s=nn(ie=>ie.apiBase),a=nn(ie=>ie.managementKey),o=`${s}::${a}`,r=Bt(ie=>ie.config),c=r?.requestLog??!1,[d,f]=S.useState("logs"),[m,g]=S.useState({buffer:[],visibleFrom:0}),[y,b]=S.useState(!0),[v,x]=S.useState(""),[A,k]=S.useState(!1),[T,L]=S.useState(""),M=S.useDeferredValue(T),[O,N]=S.useState(!0),[P,E]=S.useState(!1),[R,z]=lSe("logsPage.structuredFiltersExpanded",!0),[D,Q]=S.useState([]),[G,B]=S.useState(!1),[I,V]=S.useState(""),[K,$]=S.useState(null),[X,U]=S.useState(!1),q=DSe({traceScopeKey:o,connectionStatus:i,config:r,requestLogDownloading:X}),Y=S.useRef(null),oe=S.useRef(null),se=S.useRef(!1),F=S.useRef(!1),Z=S.useRef(0),J=i!=="connected",te=async(ie=!1)=>{if(i!=="connected"){b(!1);return}if(se.current){ie||(F.current=!0);return}se.current=!0,ie||b(!0),x("");try{const Ae=Y.current,tt=!ie||CSe(Ae?.logViewerRef.current??null);tt&&Ae?.requestScrollToBottom();const jt=ie&&Z.current>0?{after:Z.current}:{},kt=await sf.fetchLogs(jt);kt["latest-timestamp"]&&(Z.current=kt["latest-timestamp"]);const on=Array.isArray(kt.lines)?kt.lines:[];if(ie&&on.length>0)g(xt=>{const ui=xt.buffer.length-xt.visibleFrom,Di=[...xt.buffer,...on],ds=Math.max(Di.length-SR,0),ws=ds>0?Di.slice(ds):Di;let Te=Math.max(xt.visibleFrom-ds,0);return tt&&(Te=Math.max(ws.length-ui,0)),{buffer:ws,visibleFrom:Te}});else if(!ie){const xt=on.slice(-SR),ui=Math.max(xt.length-nke,0);g({buffer:xt,visibleFrom:ui})}}catch(Ae){console.error("Failed to load logs:",Ae),ie||x(Sf(Ae)||t("logs.load_error"))}finally{ie||b(!1),se.current=!1,F.current&&(F.current=!1,te(!1))}};op(()=>te(!1));const fe=async()=>{n({title:t("logs.clear_confirm_title",{defaultValue:"Clear Logs"}),message:t("logs.clear_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:async()=>{try{await sf.clearLogs(),g({buffer:[],visibleFrom:0}),Z.current=0,e(t("logs.clear_success"),"success")}catch(ie){const Ae=Sf(ie);e(`${t("notification.delete_failed")}${Ae?`: ${Ae}`:""}`,"error")}}})},re=()=>{const ie=m.buffer.join(`
|
||
`);Cl({filename:"logs.txt",blob:new Blob([ie],{type:"text/plain"})}),e(t("logs.download_success"),"success")},ue=async()=>{if(i!=="connected"){B(!1);return}B(!0),V("");try{const ie=await sf.fetchErrorLogs();Q(Array.isArray(ie.files)?ie.files:[])}catch(ie){console.error("Failed to load error logs:",ie),Q([]);const Ae=Sf(ie);V(Ae?`${t("logs.error_logs_load_error")}: ${Ae}`:t("logs.error_logs_load_error"))}finally{B(!1)}},ee=async ie=>{try{const Ae=await sf.downloadErrorLog(ie);Cl({filename:ie,blob:new Blob([Ae.data],{type:"text/plain"})}),e(t("logs.error_log_download_success"),"success")}catch(Ae){const tt=Sf(Ae);e(`${t("notification.download_failed")}${tt?`: ${tt}`:""}`,"error")}};S.useEffect(()=>{i==="connected"&&(Z.current=0,te(!1))},[i]),S.useEffect(()=>{d==="errors"&&i==="connected"&&ue()},[d,i,c]),S.useEffect(()=>{if(!A||i!=="connected")return;const ie=window.setInterval(()=>{te(!0)},8e3);return()=>window.clearInterval(ie)},[A,i]);const Ie=S.useMemo(()=>m.buffer.slice(m.visibleFrom),[m.buffer,m.visibleFrom]),Ke=M.trim(),ht=Ke.length>0,wt=ht?m.buffer:Ie,ft=S.useMemo(()=>{let ie=wt;if(O&&(ie=ie.filter(Ae=>!Ae.includes(z2))),Ke){const Ae=Ke.toLowerCase();ie=ie.filter(tt=>tt.toLowerCase().includes(Ae))}return ie.map(Ae=>vSe(Ae))},[wt,O,Ke]),Xe=SSe({parsedLines:ft}),Ot="logs-structured-filters",zt=Xe.methodFilters.length+Xe.statusFilters.length+Xe.pathFilters.length,{filteredParsedLines:sn,filteredLines:an,removedCount:Fe}=S.useMemo(()=>{const ie=ft.filter(Ae=>{if(Xe.methodFilterSet.size>0&&(!Ae.method||!Xe.methodFilterSet.has(Ae.method)))return!1;const tt=BF(Ae.statusCode);return!(Xe.statusFilterSet.size>0&&(!tt||!Xe.statusFilterSet.has(tt))||Xe.pathFilterSet.size>0&&(!Ae.path||!Xe.pathFilterSet.has(Ae.path)))});return{filteredParsedLines:ie,filteredLines:ie.map(Ae=>Ae.raw),removedCount:Math.max(wt.length-ie.length,0)}},[wt,Xe.methodFilterSet,Xe.pathFilterSet,Xe.statusFilterSet,ft]),mt=S.useMemo(()=>P?[]:sn,[sn,P]),je=S.useMemo(()=>an.join(`
|
||
`),[an]),pt=ASe({logState:m,setLogState:g,loading:y,isSearching:ht,filteredLineCount:an.length,hasStructuredFilters:Xe.hasStructuredFilters,showRawLogs:P});Y.current=pt;const at=async ie=>{await Gy(ie)?e(t("logs.copy_success",{defaultValue:"Copied to clipboard"}),"success"):e(t("logs.copy_failed",{defaultValue:"Copy failed"}),"error")},Ee=()=>{oe.current?.timer&&(window.clearTimeout(oe.current.timer),oe.current.timer=null)},ut=(ie,Ae)=>{c&&Ae&&(K||(Ee(),oe.current={timer:window.setTimeout(()=>{$(Ae),oe.current&&(oe.current.fired=!0,oe.current.timer=null)},ike),startX:ie.clientX,startY:ie.clientY,fired:!1}))},Mt=()=>{Ee(),oe.current=null},Nt=ie=>{const Ae=oe.current;if(!Ae||Ae.timer===null||Ae.fired)return;const tt=Math.abs(ie.clientX-Ae.startX),jt=Math.abs(ie.clientY-Ae.startY);(tt>wR||jt>wR)&&Mt()},le=()=>{X||$(null)},ge=async ie=>{U(!0);try{const Ae=await sf.downloadRequestLogById(ie);Cl({filename:`request-${ie}.log`,blob:new Blob([Ae.data],{type:"text/plain"})}),e(t("logs.request_log_download_success"),"success"),$(null)}catch(Ae){const tt=Sf(Ae);e(`${t("notification.download_failed")}${tt?`: ${tt}`:""}`,"error")}finally{U(!1)}};return S.useEffect(()=>()=>{oe.current?.timer&&(window.clearTimeout(oe.current.timer),oe.current.timer=null)},[]),h.jsxs("div",{className:Ce.container,children:[h.jsx("h1",{className:Ce.pageTitle,children:t("logs.title")}),h.jsxs("div",{className:Ce.tabBar,children:[h.jsx("button",{type:"button",className:`${Ce.tabItem} ${d==="logs"?Ce.tabActive:""}`,onClick:()=>f("logs"),children:t("logs.log_content")}),h.jsx("button",{type:"button",className:`${Ce.tabItem} ${d==="errors"?Ce.tabActive:""}`,onClick:()=>f("errors"),children:t("logs.error_logs_modal_title")})]}),h.jsxs("div",{className:Ce.content,children:[d==="logs"&&h.jsxs(Dt,{className:Ce.logCard,children:[v&&h.jsx("div",{className:"error-box",children:v}),h.jsxs("div",{className:Ce.filters,children:[h.jsx("div",{className:Ce.searchWrapper,children:h.jsx(ot,{value:T,onChange:ie=>L(ie.target.value),placeholder:t("logs.search_placeholder"),className:Ce.searchInput,rightElement:T?h.jsx("button",{type:"button",className:Ce.searchClear,onClick:()=>L(""),title:"Clear","aria-label":"Clear",children:h.jsx(Xc,{size:16})}):h.jsx(l4,{size:16,className:Ce.searchIcon})})}),h.jsx("div",{className:Ce.filterPanelHeader,children:h.jsx(me,{type:"button",variant:"secondary",size:"sm",className:Ce.filterPanelToggle,onClick:()=>z(ie=>!ie),"aria-expanded":R,"aria-controls":Ot,title:t(R?"logs.filter_panel_collapse":"logs.filter_panel_expand"),children:h.jsxs("span",{className:Ce.filterPanelButtonContent,children:[h.jsx(zq,{size:16}),h.jsx("span",{children:t("logs.filter_panel_title")}),zt>0&&h.jsx("span",{className:Ce.filterPanelCount,children:t("logs.filter_panel_active_count",{count:zt})}),R?h.jsx(qw,{size:16}):h.jsx(Dy,{size:16})]})})}),R&&h.jsxs("div",{id:Ot,className:Ce.structuredFilters,children:[h.jsxs("div",{className:Ce.filterChipGroup,children:[h.jsx("span",{className:Ce.filterChipLabel,children:t("logs.filter_method")}),h.jsx("div",{className:Ce.filterChipList,children:hC.map(ie=>{const Ae=Xe.methodFilters.includes(ie),tt=Xe.methodCounts[ie]??0;return h.jsxs("button",{type:"button",className:`${Ce.filterChip} ${Ae?Ce.filterChipActive:""}`,onClick:()=>Xe.toggleMethodFilter(ie),disabled:tt===0&&!Ae,"aria-pressed":Ae,children:[ie," (",tt,")"]},ie)})})]}),h.jsxs("div",{className:Ce.filterChipGroup,children:[h.jsx("span",{className:Ce.filterChipLabel,children:t("logs.filter_status")}),h.jsx("div",{className:Ce.filterChipList,children:cSe.map(ie=>{const Ae=Xe.statusFilters.includes(ie),tt=Xe.statusCounts[ie]??0;return h.jsxs("button",{type:"button",className:`${Ce.filterChip} ${Ae?Ce.filterChipActive:""}`,onClick:()=>Xe.toggleStatusFilter(ie),disabled:tt===0&&!Ae,"aria-pressed":Ae,children:[t(`logs.filter_status_${ie}`)," (",tt,")"]},ie)})})]}),h.jsxs("div",{className:Ce.filterChipGroup,children:[h.jsx("span",{className:Ce.filterChipLabel,children:t("logs.filter_path")}),h.jsx("div",{className:Ce.filterChipList,children:Xe.pathOptions.length===0?h.jsx("span",{className:Ce.filterChipHint,children:t("logs.filter_path_empty")}):Xe.pathOptions.map(({path:ie,count:Ae})=>{const tt=Xe.pathFilters.includes(ie);return h.jsxs("button",{type:"button",className:`${Ce.filterChip} ${tt?Ce.filterChipActive:""}`,onClick:()=>Xe.togglePathFilter(ie),"aria-pressed":tt,title:ie,children:[ie," (",Ae,")"]},ie)})})]}),h.jsx(me,{variant:"ghost",size:"sm",onClick:Xe.clearStructuredFilters,disabled:!Xe.hasStructuredFilters,children:t("logs.clear_filters")})]}),h.jsx(Si,{checked:O,onChange:N,label:h.jsxs("span",{className:Ce.switchLabel,children:[h.jsx(c4,{size:16}),t("logs.hide_management_logs",{prefix:z2})]})}),h.jsx(Si,{checked:P,onChange:E,label:h.jsxs("span",{className:Ce.switchLabel,title:t("logs.show_raw_logs_hint",{defaultValue:"Show original log text for easier multi-line copy"}),children:[h.jsx(R0,{size:16}),t("logs.show_raw_logs",{defaultValue:"Show raw logs"})]})}),h.jsxs("div",{className:Ce.toolbar,children:[h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>te(!1),disabled:J||y,className:Ce.actionButton,children:h.jsxs("span",{className:Ce.buttonContent,children:[h.jsx(zw,{size:16}),t("logs.refresh_button")]})}),h.jsx(Si,{checked:A,onChange:ie=>k(ie),disabled:J,label:h.jsxs("span",{className:Ce.switchLabel,children:[h.jsx(j0,{size:16}),t("logs.auto_refresh")]})}),h.jsx(me,{variant:"secondary",size:"sm",onClick:re,disabled:m.buffer.length===0,className:Ce.actionButton,children:h.jsxs("span",{className:Ce.buttonContent,children:[h.jsx(r4,{size:16}),t("logs.download_button")]})}),h.jsx(me,{variant:"danger",size:"sm",onClick:fe,disabled:J,className:Ce.actionButton,children:h.jsxs("span",{className:Ce.buttonContent,children:[h.jsx(Ry,{size:16}),t("logs.clear_button")]})})]})]}),y?h.jsx("div",{className:"hint",children:t("logs.loading")}):m.buffer.length>0&&an.length>0?h.jsxs("div",{ref:pt.logViewerRef,className:Ce.logPanel,onScroll:pt.handleLogScroll,children:[pt.canLoadMore&&h.jsxs("div",{className:Ce.loadMoreBanner,children:[h.jsx("span",{children:t("logs.load_more_hint")}),h.jsxs("div",{className:Ce.loadMoreStats,children:[h.jsx("span",{children:t("logs.loaded_lines",{count:an.length})}),Fe>0&&h.jsx("span",{className:Ce.loadMoreCount,children:t("logs.filtered_lines",{count:Fe})}),h.jsx("span",{className:Ce.loadMoreCount,children:t("logs.hidden_lines",{count:m.visibleFrom})})]})]}),P?h.jsx("pre",{className:Ce.rawLog,spellCheck:!1,children:je}):h.jsx("div",{className:Ce.logList,children:mt.map((ie,Ae)=>{const tt=qF(ie.path),jt=[Ce.logRow];return ie.level==="warn"&&jt.push(Ce.rowWarn),(ie.level==="error"||ie.level==="fatal")&&jt.push(Ce.rowError),h.jsxs("div",{className:jt.join(" "),onDoubleClick:()=>{at(ie.raw)},onPointerDown:kt=>ut(kt,ie.requestId),onPointerUp:Mt,onPointerLeave:Mt,onPointerCancel:Mt,onPointerMove:Nt,title:t("logs.double_click_copy_hint",{defaultValue:"Double-click to copy"}),children:[h.jsx("div",{className:Ce.timestamp,children:ie.timestamp||""}),h.jsxs("div",{className:Ce.rowMain,children:[ie.level&&h.jsx("span",{className:[Ce.badge,ie.level==="info"?Ce.levelInfo:"",ie.level==="warn"?Ce.levelWarn:"",ie.level==="error"||ie.level==="fatal"?Ce.levelError:"",ie.level==="debug"?Ce.levelDebug:"",ie.level==="trace"?Ce.levelTrace:""].filter(Boolean).join(" "),children:ie.level.toUpperCase()}),ie.source&&h.jsx("span",{className:Ce.source,title:ie.source,children:ie.source}),ie.requestId&&h.jsx("span",{className:[Ce.badge,Ce.requestIdBadge].join(" "),title:ie.requestId,children:ie.requestId}),typeof ie.statusCode=="number"&&h.jsx("span",{className:[Ce.badge,Ce.statusBadge,ie.statusCode>=200&&ie.statusCode<300?Ce.statusSuccess:ie.statusCode>=300&&ie.statusCode<400?Ce.statusInfo:ie.statusCode>=400&&ie.statusCode<500?Ce.statusWarn:Ce.statusError].join(" "),children:ie.statusCode}),ie.latency&&h.jsx("span",{className:Ce.pill,children:ie.latency}),ie.ip&&h.jsx("span",{className:Ce.pill,children:ie.ip}),ie.method&&h.jsx("span",{className:[Ce.badge,Ce.methodBadge].join(" "),children:ie.method}),ie.path&&h.jsx("span",{className:Ce.path,title:ie.path,children:ie.path}),ie.message&&h.jsx("span",{className:Ce.message,children:ie.message}),tt&&h.jsx("button",{type:"button",className:Ce.traceButton,onClick:kt=>{kt.stopPropagation(),Mt(),q.openTraceModal(ie)},title:t("logs.trace_button"),children:t("logs.trace_button")})]})]},`${m.visibleFrom+Ae}-${ie.raw}`)})})]}):m.buffer.length>0?h.jsx(os,{title:t("logs.search_empty_title"),description:t("logs.search_empty_desc")}):h.jsx(os,{title:t("logs.empty_title"),description:t("logs.empty_desc")})]}),d==="errors"&&h.jsx(Dt,{extra:h.jsx(me,{variant:"secondary",size:"sm",onClick:ue,loading:G,disabled:J,children:t("common.refresh")}),children:h.jsxs("div",{className:"stack",children:[h.jsx("div",{className:"hint",children:t("logs.error_logs_description")}),c&&h.jsx("div",{children:h.jsx("div",{className:"status-badge warning",children:t("logs.error_logs_request_log_enabled")})}),I&&h.jsx("div",{className:"error-box",children:I}),h.jsx("div",{className:Ce.errorPanel,children:G?h.jsx("div",{className:"hint",children:t("common.loading")}):D.length===0?h.jsx("div",{className:"hint",children:t("logs.error_logs_empty")}):h.jsx("div",{className:"item-list",children:D.map(ie=>h.jsxs("div",{className:"item-row",children:[h.jsxs("div",{className:"item-meta",children:[h.jsx("div",{className:"item-title",children:ie.name}),h.jsxs("div",{className:"item-subtitle",children:[ie.size?`${(ie.size/1024).toFixed(1)} KB`:""," ",ie.modified?zG(ie.modified):""]})]}),h.jsx("div",{className:"item-actions",children:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>ee(ie.name),disabled:J,children:t("logs.error_logs_download")})})]},ie.name))})})]})})]}),h.jsx(Ss,{open:!!q.traceLogLine,onClose:q.closeTraceModal,title:t("logs.trace_title"),footer:h.jsxs(h.Fragment,{children:[q.traceLogLine?.requestId&&h.jsx(me,{variant:"secondary",onClick:()=>{q.traceLogLine?.requestId&&ge(q.traceLogLine.requestId)},loading:X,children:t("logs.trace_download_request_log")}),h.jsx(me,{variant:"secondary",onClick:q.closeTraceModal,disabled:X,children:t("common.close")})]}),children:q.traceLogLine&&h.jsxs("div",{className:Ce.tracePanel,children:[h.jsx("div",{className:Ce.traceNotice,children:t("logs.trace_notice")}),h.jsx("h3",{className:Ce.traceSectionTitle,children:t("logs.trace_log_info")}),h.jsxs("div",{className:Ce.traceInfoGrid,children:[h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_request_id")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.requestId||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_method")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.method||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_path")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.path||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_status_code")}),h.jsx("span",{className:Ce.traceInfoValue,children:typeof q.traceLogLine.statusCode=="number"?q.traceLogLine.statusCode:"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_latency")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.latency||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_ip")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.ip||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_timestamp")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.timestamp||"-"})]}),h.jsxs("div",{className:`${Ce.traceInfoItem} ${Ce.traceInfoItemWide}`,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_message")}),h.jsx("span",{className:Ce.traceInfoValue,children:q.traceLogLine.message||"-"})]})]}),h.jsxs("div",{className:Ce.traceCandidatesHeader,children:[h.jsx("h3",{className:Ce.traceSectionTitle,children:t("logs.trace_candidates_title")}),h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>{q.refreshTraceUsageDetails().catch(()=>{})},loading:q.traceLoading,disabled:X,children:t("common.refresh")})]}),q.traceLoading?h.jsx("div",{className:"hint",children:t("logs.trace_loading")}):q.traceError?h.jsx("div",{className:"error-box",children:q.traceError}):q.traceCandidates.length===0?h.jsx("div",{className:"hint",children:t("logs.trace_no_match")}):h.jsx("div",{className:Ce.traceCandidates,children:q.traceCandidates.map(ie=>{const Ae=q.resolveTraceSourceInfo(String(ie.detail.source??""),ie.detail.auth_index);return h.jsxs("div",{className:Ce.traceCandidate,children:[h.jsxs("div",{className:Ce.traceCandidateHeader,children:[ie.modelMatched&&h.jsx("span",{className:Ce.traceModelBadge,children:t("logs.trace_model_matched")}),ie.timeDeltaMs!==null&&h.jsx("span",{className:Ce.traceDelta,children:t("logs.trace_delta_seconds",{seconds:(ie.timeDeltaMs/1e3).toFixed(2)})})]}),h.jsxs("div",{className:Ce.traceCandidateGrid,children:[h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_endpoint")}),h.jsx("span",{className:Ce.traceInfoValue,children:ie.detail.__endpoint})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_model")}),h.jsx("span",{className:Ce.traceInfoValue,children:ie.detail.__modelName||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_source")}),h.jsxs("span",{className:Ce.traceInfoValue,title:String(ie.detail.source||"-"),children:[h.jsx("span",{children:Ae.displayName}),Ae.type&&h.jsx("span",{className:Ce.traceSourceType,children:Ae.type})]})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_auth_index")}),h.jsx("span",{className:Ce.traceInfoValue,children:ie.detail.auth_index??"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_timestamp")}),h.jsx("span",{className:Ce.traceInfoValue,children:ie.detail.timestamp||"-"})]}),h.jsxs("div",{className:Ce.traceInfoItem,children:[h.jsx("span",{className:Ce.traceInfoLabel,children:t("logs.trace_result")}),h.jsx("span",{className:Ce.traceInfoValue,children:ie.detail.failed?t("stats.failure"):t("stats.success")})]})]})]},`${ie.detail.__endpoint}-${ie.detail.__modelName}-${ie.detail.timestamp}-${ie.detail.source}`)})})]})}),h.jsx(Ss,{open:!!K,onClose:le,title:t("logs.request_log_download_title"),footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:le,disabled:X,children:t("common.cancel")}),h.jsx(me,{onClick:()=>{K&&ge(K)},loading:X,disabled:!K,children:t("common.confirm")})]}),children:K?t("logs.request_log_download_confirm",{id:K}):null})]})}const ake="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eZhipu%3c/title%3e%3cpath%20d='M11.991%2023.503a.24.24%200%2000-.244.248.24.24%200%2000.244.249.24.24%200%2000.245-.249.24.24%200%2000-.22-.247l-.025-.001zM9.671%205.365a1.697%201.697%200%20011.099%202.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47%201.279%201.186%201.314h.366c1.309.053%202.338%201.173%202.286%202.523-.052%201.332-1.152%202.38-2.478%202.327h-.174c-.715.018-1.274.64-1.239%201.368%200%20.124.018.23.053.337.209.373.54.658.96.8.75.23%201.517-.125%201.9-.782l.018-.035c.402-.64%201.17-.96%201.92-.711.854.284%201.378%201.226%201.099%202.167a1.661%201.661%200%2001-2.077%201.102%201.711%201.711%200%2001-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646%201.646%200%2000-1.954.746%201.66%201.66%200%2001-1.065.764%201.677%201.677%200%2001-1.989-1.279c-.209-.906.332-1.83%201.257-2.043a1.51%201.51%200%2001.296-.035h.018c.68-.071%201.151-.622%201.116-1.333a1.307%201.307%200%2000-.227-.693%202.515%202.515%200%2001-.366-1.403%202.39%202.39%200%2001.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43%201.43%200%2001-.299-.07l-.05-.019a1.7%201.7%200%2001-1.047-2.114%201.68%201.68%200%20012.094-1.101zm-5.575%2010.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267%201.013-.402.41-1.053.41-1.455%200a1.062%201.062%200%20010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237%201.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05%201.05%200%2001.757-1.26zm-.064-4.39c.314.32.49.753.49%201.206%200%20.452-.176.886-.49%201.206-.315.32-.74.5-1.185.5-.444%200-.87-.18-1.184-.5a1.727%201.727%200%20010-2.412%201.654%201.654%200%20012.369%200zm-11.243.163c.364.484.447%201.128.218%201.691a1.665%201.665%200%2001-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68%201.68%200%20011.33-1.038c.593-.08%201.183.169%201.547.652zm11.545-4.221c.368%200%20.708.2.892.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.892.524c-.568%200-1.03-.47-1.03-1.048%200-.579.462-1.048%201.03-1.048zm-14.358%200c.368%200%20.707.2.891.524.184.324.184.724%200%201.048a1.026%201.026%200%2001-.891.524c-.569%200-1.03-.47-1.03-1.048%200-.579.461-1.048%201.03-1.048zm10.031-1.475c.925%200%201.675.764%201.675%201.706s-.75%201.705-1.675%201.705-1.674-.763-1.674-1.705c0-.942.75-1.706%201.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062%201.062%200%2000-.238-1.028%201.017%201.017%200%2000-.996-.294c-.547.14-.881.7-.752%201.257.13.558.675.907%201.225.783zm0%2016.876c.359-.087.644-.36.75-.72a1.062%201.062%200%2000-.237-1.019%201.018%201.018%200%2000-.985-.301%201.037%201.037%200%2000-.762.717c-.108.361-.017.754.239%201.028.245.263.606.377.953.305l.043-.01zM17.19%203.5a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.28.64.628.64zm-10.38%200a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64a.631.631%200%2000-.628.64c0%20.355.279.64.628.64zm-5.182%207.852a.631.631%200%2000-.628.64c0%20.354.28.639.628.639a.63.63%200%2000.627-.606l.001-.034a.62.62%200%2000-.628-.64zm5.182%209.13a.631.631%200%2000-.628.64c0%20.355.279.64.628.64a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631%200%2000-.628.64c0%20.355.28.64.628.64a.631.631%200%2000.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631%200%2000-.628.64c0%20.354.279.639.628.639a.631.631%200%2000.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24%200%2000.244-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249c0%20.142.122.249.244.249zM11.991.497a.24.24%200%2000.245-.248A.24.24%200%200011.99%200a.24.24%200%2000-.244.249c0%20.133.108.236.223.247l.021.001zM2.011%206.36a.24.24%200%2000.245-.249.24.24%200%2000-.244-.249.24.24%200%2000-.244.249.24.24%200%2000.244.249zm0%2011.263a.24.24%200%2000-.243.248.24.24%200%2000.244.249.24.24%200%2000.244-.249.252.252%200%2000-.244-.248zm19.995-.018a.24.24%200%2000-.245.248.24.24%200%2000.245.25.24.24%200%2000.244-.25.252.252%200%2000-.244-.248z'%20fill='%233859FF'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e",oke="data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e",rke="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e",lke="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMinimax%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-minimax-fill'%20x1='0%25'%20x2='100.182%25'%20y1='50.057%25'%20y2='50.057%25'%3e%3cstop%20offset='0%25'%20stop-color='%23E2167E'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23FE603C'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M16.278%202c1.156%200%202.093.927%202.093%202.07v12.501a.74.74%200%2000.744.709.74.74%200%2000.743-.709V9.099a2.06%202.06%200%20012.071-2.049A2.06%202.06%200%200124%209.1v6.561a.649.649%200%2001-.652.645.649.649%200%2001-.653-.645V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v7.472a2.037%202.037%200%2001-2.048%202.026%202.037%202.037%200%2001-2.048-2.026v-12.5a.785.785%200%2000-.788-.753.785.785%200%2000-.789.752l-.001%2015.904A2.037%202.037%200%200113.441%2022a2.037%202.037%200%2001-2.048-2.026V18.04c0-.356.292-.645.652-.645.36%200%20.652.289.652.645v1.934c0%20.263.142.506.372.638.23.131.514.131.744%200a.734.734%200%2000.372-.638V4.07c0-1.143.937-2.07%202.093-2.07zm-5.674%200c1.156%200%202.093.927%202.093%202.07v11.523a.648.648%200%2001-.652.645.648.648%200%2001-.652-.645V4.07a.785.785%200%2000-.789-.78.785.785%200%2000-.789.78v14.013a2.06%202.06%200%2001-2.07%202.048%202.06%202.06%200%2001-2.071-2.048V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v3.8a2.06%202.06%200%2001-2.071%202.049A2.06%202.06%200%20010%2012.9v-1.378c0-.357.292-.646.652-.646.36%200%20.653.29.653.646V12.9c0%20.418.343.757.766.757s.766-.339.766-.757V9.099a2.06%202.06%200%20012.07-2.048%202.06%202.06%200%20012.071%202.048v8.984c0%20.419.343.758.767.758.423%200%20.766-.339.766-.758V4.07c0-1.143.937-2.07%202.093-2.07z'%20fill='url(%23lobe-icons-minimax-fill)'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e",cke="SystemPage-module__container___KAydo",uke="SystemPage-module__pageTitle___DiF5E",dke="SystemPage-module__content___SauLn",hke="SystemPage-module__aboutCard___v2-ui",fke="SystemPage-module__aboutHeader___hT4-J",mke="SystemPage-module__aboutLogo___KXoLr",pke="SystemPage-module__aboutTitle___BTLGy",gke="SystemPage-module__aboutInfoGrid___b7AR0",_ke="SystemPage-module__infoTile___6AuIY",yke="SystemPage-module__tapTile___-9SaX",bke="SystemPage-module__tileLabel___eMn4v",vke="SystemPage-module__tileHeader___w4Ej0",xke="SystemPage-module__tileAction___WKXuS",Ske="SystemPage-module__tileValue___Up02X",wke="SystemPage-module__tileSub___ysVDj",kke="SystemPage-module__sectionDescription___nI7Jo",Cke="SystemPage-module__clearLoginActions___4ek-m",Ake="SystemPage-module__modelTags___M0sci",Nke="SystemPage-module__groupTitle___bTqIN",Tke="SystemPage-module__groupIcon___-XXrb",Mke="SystemPage-module__modelTag___5Ar53",Lke="SystemPage-module__modelName___LKdAK",Oke="SystemPage-module__modelAlias___zioM-",Pke="SystemPage-module__quickLinks___QTmT3",Eke="SystemPage-module__linkCard___iSrVF",jke="SystemPage-module__linkIcon___gNqz2",Rke="SystemPage-module__github___V8I3m",Dke="SystemPage-module__docs___cA-rG",Fke="SystemPage-module__linkContent___Rfh7h",Ike="SystemPage-module__linkTitle___Zpr4Q",Uke="SystemPage-module__linkDesc___KKavC",bt={container:cke,pageTitle:uke,content:dke,aboutCard:hke,aboutHeader:fke,aboutLogo:mke,aboutTitle:pke,aboutInfoGrid:gke,infoTile:_ke,tapTile:yke,tileLabel:bke,tileHeader:vke,tileAction:xke,tileValue:Ske,tileSub:wke,sectionDescription:kke,clearLoginActions:Cke,modelTags:Ake,groupTitle:Nke,groupIcon:Tke,modelTag:Mke,modelName:Lke,modelAlias:Oke,quickLinks:Pke,linkCard:Eke,linkIcon:jke,github:Rke,docs:Dke,linkContent:Fke,linkTitle:Ike,linkDesc:Uke},Bke={gpt:{light:ak,dark:ok},claude:ip,gemini:Pc,qwen:uk,kimi:{light:ck,dark:lk},glm:ake,grok:oke,deepseek:rke,minimax:lke},kR=t=>{if(!t)return null;const e=t.trim().replace(/^v/i,"");if(!e)return null;const n=e.split(/[^0-9]+/).filter(Boolean).map(i=>Number.parseInt(i,10)).filter(Number.isFinite);return n.length?n:null},zke=(t,e)=>{const n=kR(t),i=kR(e);if(!n||!i)return null;const s=Math.max(n.length,i.length);for(let a=0;a<s;a++){const o=n[a]||0,r=i[a]||0;if(o>r)return 1;if(o<r)return-1}return 0};function qke(){const{t,i18n:e}=et(),{showNotification:n,showConfirmation:i}=_n(),s=Aa(re=>re.resolvedTheme),a=nn(),o=Bt(re=>re.config),r=Bt(re=>re.fetchConfig),c=Bt(re=>re.clearCache),d=Bt(re=>re.updateConfigValue),f=Sr(re=>re.models),m=Sr(re=>re.loading),g=Sr(re=>re.error),y=Sr(re=>re.fetchModels),[b,v]=S.useState(),[x,A]=S.useState(!1),[k,T]=S.useState(!1),[L,M]=S.useState(!1),[O,N]=S.useState(!1),[P,E]=S.useState(!1),R=S.useRef([]),z=S.useRef(0),D=S.useRef(null),Q=S.useMemo(()=>e.language?.toLowerCase().startsWith("zh")?"其他":"Other",[e.language]),G=S.useMemo(()=>m$(f,{otherLabel:Q}),[f,Q]),B=o?.requestLog??!1,I=k!==B,V=a.connectionStatus==="connected"&&!!o,K="v1.7.31",$=a.serverVersion||t("system_info.version_unknown"),X=a.serverBuildDate?new Date(a.serverBuildDate).toLocaleString(e.language):t("system_info.version_unknown"),U=re=>{const ue=Bke[re];return ue?typeof ue=="string"?ue:s==="dark"?ue.dark:ue.light:null},q=re=>{if(!Array.isArray(re))return[];const ue=new Set,ee=[];return re.forEach(Ie=>{const Ke=Ie!==null&&typeof Ie=="object"&&!Array.isArray(Ie)?Ie:null,ht=typeof Ie=="string"?Ie:Ke?Ke["api-key"]??Ke.apiKey??Ke.key??Ke.Key:"",wt=String(ht??"").trim();!wt||ue.has(wt)||(ue.add(wt),ee.push(wt))}),ee},Y=S.useCallback(async()=>{if(R.current.length)return R.current;const re=q(o?.apiKeys);if(re.length)return R.current=re,re;try{const ue=await $2.list(),ee=q(ue);return ee.length&&(R.current=ee),ee}catch(ue){return console.warn("Auto loading API keys for models failed:",ue),[]}},[o?.apiKeys]),oe=async({forceRefresh:re=!1}={})=>{if(a.connectionStatus!=="connected"){v({type:"warning",message:t("notification.connection_required")});return}if(!a.apiBase){n(t("notification.connection_required"),"warning");return}re&&(R.current=[]),v({type:"muted",message:t("system_info.models_loading")});try{const ee=(await Y())[0],Ie=await y(a.apiBase,ee,re),Ke=Ie.length>0;v({type:Ke?"success":"warning",message:Ke?t("system_info.models_count",{count:Ie.length}):t("system_info.models_empty")})}catch(ue){const ee=ue instanceof Error?ue.message:typeof ue=="string"?ue:"",Ie=ee?`: ${ee}`:"",Ke=`${t("system_info.models_error")}${Ie}`;v({type:"error",message:Ke})}},se=()=>{i({title:t("system_info.clear_login_title",{defaultValue:"Clear Login Storage"}),message:t("system_info.clear_login_confirm"),variant:"danger",confirmText:t("common.confirm"),onConfirm:()=>{if(a.logout(),typeof localStorage>"u")return;[d4,"isLoggedIn","apiBase","apiUrl","managementKey"].forEach(ue=>localStorage.removeItem(ue)),n(t("notification.login_storage_cleared"),"success")}})},F=S.useCallback(()=>{M(!1),T(B),A(!0)},[B]),Z=S.useCallback(()=>{if(z.current+=1,D.current&&clearTimeout(D.current),z.current>=7){z.current=0,D.current=null,F();return}D.current=setTimeout(()=>{z.current=0,D.current=null},1500)},[F]),J=S.useCallback(()=>{A(!1),M(!1)},[]),te=async()=>{if(!V)return;if(!I){A(!1);return}const re=B;N(!0),d("request-log",k);try{await $4.updateRequestLog(k),c("request-log"),n(t("notification.request_log_updated"),"success"),A(!1)}catch(ue){const ee=ue instanceof Error?ue.message:typeof ue=="string"?ue:"";d("request-log",re),n(`${t("notification.update_failed")}${ee?`: ${ee}`:""}`,"error")}finally{N(!1)}},fe=S.useCallback(async()=>{E(!0);try{const re=await h$.checkLatest(),ue=re?.["latest-version"]??re?.latest_version??re?.latest??"",ee=typeof ue=="string"?ue:String(ue??""),Ie=zke(ee,a.serverVersion);if(!ee){n(t("system_info.version_check_error"),"error");return}if(Ie===null){n(t("system_info.version_current_missing"),"warning");return}Ie>0?n(t("system_info.version_update_available",{version:ee}),"warning"):n(t("system_info.version_is_latest"),"success")}catch(re){const ue=re instanceof Error?re.message:typeof re=="string"?re:"",ee=ue?`: ${ue}`:"";n(`${t("system_info.version_check_error")}${ee}`,"error")}finally{E(!1)}},[a.serverVersion,n,t]);return S.useEffect(()=>{r().catch(()=>{})},[r]),S.useEffect(()=>{x&&!L&&T(B)},[x,L,B]),S.useEffect(()=>()=>{D.current&&clearTimeout(D.current)},[]),S.useEffect(()=>{oe()},[a.connectionStatus,a.apiBase]),h.jsxs("div",{className:bt.container,children:[h.jsx("h1",{className:bt.pageTitle,children:t("system_info.title")}),h.jsxs("div",{className:bt.content,children:[h.jsxs(Dt,{className:bt.aboutCard,children:[h.jsxs("div",{className:bt.aboutHeader,children:[h.jsx("img",{src:wd,alt:"CPAMC",className:bt.aboutLogo}),h.jsx("div",{className:bt.aboutTitle,children:t("system_info.about_title")})]}),h.jsxs("div",{className:bt.aboutInfoGrid,children:[h.jsxs("button",{type:"button",className:`${bt.infoTile} ${bt.tapTile}`,onClick:Z,children:[h.jsx("div",{className:bt.tileHeader,children:h.jsx("div",{className:bt.tileLabel,children:t("footer.version")})}),h.jsx("div",{className:bt.tileValue,children:K})]}),h.jsxs("div",{className:bt.infoTile,children:[h.jsxs("div",{className:bt.tileHeader,children:[h.jsx("div",{className:bt.tileLabel,children:t("footer.api_version")}),h.jsx(me,{type:"button",variant:"ghost",size:"sm",className:bt.tileAction,onClick:()=>void fe(),loading:P,title:t("system_info.version_check_button"),"aria-label":t("system_info.version_check_button"),children:t("system_info.version_check_button")})]}),h.jsx("div",{className:bt.tileValue,children:$})]}),h.jsxs("div",{className:bt.infoTile,children:[h.jsx("div",{className:bt.tileLabel,children:t("footer.build_date")}),h.jsx("div",{className:bt.tileValue,children:X})]}),h.jsxs("div",{className:bt.infoTile,children:[h.jsx("div",{className:bt.tileLabel,children:t("connection.status")}),h.jsx("div",{className:bt.tileValue,children:t(`common.${a.connectionStatus}_status`)}),h.jsx("div",{className:bt.tileSub,children:a.apiBase||"-"})]})]})]}),h.jsxs(Dt,{title:t("system_info.quick_links_title"),children:[h.jsx("p",{className:bt.sectionDescription,children:t("system_info.quick_links_desc")}),h.jsxs("div",{className:bt.quickLinks,children:[h.jsxs("a",{href:"https://github.com/router-for-me/CLIProxyAPI",target:"_blank",rel:"noopener noreferrer",className:bt.linkCard,children:[h.jsx("div",{className:`${bt.linkIcon} ${bt.github}`,children:h.jsx(Qq,{size:22})}),h.jsxs("div",{className:bt.linkContent,children:[h.jsxs("div",{className:bt.linkTitle,children:[t("system_info.link_main_repo"),h.jsx(Xx,{size:14})]}),h.jsx("div",{className:bt.linkDesc,children:t("system_info.link_main_repo_desc")})]})]}),h.jsxs("a",{href:"https://github.com/router-for-me/Cli-Proxy-API-Management-Center",target:"_blank",rel:"noopener noreferrer",className:bt.linkCard,children:[h.jsx("div",{className:`${bt.linkIcon} ${bt.github}`,children:h.jsx(R0,{size:22})}),h.jsxs("div",{className:bt.linkContent,children:[h.jsxs("div",{className:bt.linkTitle,children:[t("system_info.link_webui_repo"),h.jsx(Xx,{size:14})]}),h.jsx("div",{className:bt.linkDesc,children:t("system_info.link_webui_repo_desc")})]})]}),h.jsxs("a",{href:"https://help.router-for.me/",target:"_blank",rel:"noopener noreferrer",className:bt.linkCard,children:[h.jsx("div",{className:`${bt.linkIcon} ${bt.docs}`,children:h.jsx(Yq,{size:22})}),h.jsxs("div",{className:bt.linkContent,children:[h.jsxs("div",{className:bt.linkTitle,children:[t("system_info.link_docs"),h.jsx(Xx,{size:14})]}),h.jsx("div",{className:bt.linkDesc,children:t("system_info.link_docs_desc")})]})]})]})]}),h.jsxs(Dt,{title:t("system_info.models_title"),extra:h.jsx(me,{variant:"secondary",size:"sm",onClick:()=>oe({forceRefresh:!0}),loading:m,children:t("common.refresh")}),children:[h.jsx("p",{className:bt.sectionDescription,children:t("system_info.models_desc")}),b&&h.jsx("div",{className:`status-badge ${b.type}`,children:b.message}),g&&h.jsx("div",{className:"error-box",children:g}),m?h.jsx("div",{className:"hint",children:t("common.loading")}):f.length===0?h.jsx("div",{className:"hint",children:t("system_info.models_empty")}):h.jsx("div",{className:"item-list",children:G.map(re=>{const ue=U(re.id);return h.jsxs("div",{className:"item-row",children:[h.jsxs("div",{className:"item-meta",children:[h.jsxs("div",{className:bt.groupTitle,children:[ue&&h.jsx("img",{src:ue,alt:"",className:bt.groupIcon}),h.jsx("span",{className:"item-title",children:re.label})]}),h.jsx("div",{className:"item-subtitle",children:t("system_info.models_count",{count:re.items.length})})]}),h.jsx("div",{className:bt.modelTags,children:re.items.map(ee=>h.jsxs("span",{className:bt.modelTag,title:ee.description||"",children:[h.jsx("span",{className:bt.modelName,children:ee.name}),ee.alias&&h.jsx("span",{className:bt.modelAlias,children:ee.alias})]},`${ee.name}-${ee.alias??"default"}`))})]},re.id)})})]}),h.jsxs(Dt,{title:t("system_info.clear_login_title"),children:[h.jsx("p",{className:bt.sectionDescription,children:t("system_info.clear_login_desc")}),h.jsx("div",{className:bt.clearLoginActions,children:h.jsx(me,{variant:"danger",onClick:se,children:t("system_info.clear_login_button")})})]})]}),h.jsx(Ss,{open:x,onClose:J,title:t("basic_settings.request_log_title"),footer:h.jsxs(h.Fragment,{children:[h.jsx(me,{variant:"secondary",onClick:J,disabled:O,children:t("common.cancel")}),h.jsx(me,{onClick:te,loading:O,disabled:!V||!I,children:t("common.save")})]}),children:h.jsxs("div",{className:"request-log-modal",children:[h.jsx("div",{className:"status-badge warning",children:t("basic_settings.request_log_warning")}),h.jsx(Si,{label:t("basic_settings.request_log_enable"),labelPosition:"left",checked:k,disabled:!V||O,onChange:re=>{T(re),M(!0)}})]})})]})}const Kke=[{path:"/",element:h.jsx(bO,{})},{path:"/dashboard",element:h.jsx(bO,{})},{path:"/settings",element:h.jsx(qf,{to:"/config",replace:!0})},{path:"/api-keys",element:h.jsx(qf,{to:"/config",replace:!0})},{path:"/ai-providers/gemini/new",element:h.jsx(EO,{})},{path:"/ai-providers/gemini/:index",element:h.jsx(EO,{})},{path:"/ai-providers/codex/new",element:h.jsx(PO,{})},{path:"/ai-providers/codex/:index",element:h.jsx(PO,{})},{path:"/ai-providers/claude/new",element:h.jsx(AO,{}),children:[{index:!0,element:h.jsx(LO,{})},{path:"models",element:h.jsx(OO,{})}]},{path:"/ai-providers/claude/:index",element:h.jsx(AO,{}),children:[{index:!0,element:h.jsx(LO,{})},{path:"models",element:h.jsx(OO,{})}]},{path:"/ai-providers/vertex/new",element:h.jsx(BO,{})},{path:"/ai-providers/vertex/:index",element:h.jsx(BO,{})},{path:"/ai-providers/openai/new",element:h.jsx(DO,{}),children:[{index:!0,element:h.jsx(IO,{})},{path:"models",element:h.jsx(UO,{})}]},{path:"/ai-providers/openai/:index",element:h.jsx(DO,{}),children:[{index:!0,element:h.jsx(IO,{})},{path:"models",element:h.jsx(UO,{})}]},{path:"/ai-providers/ampcode",element:h.jsx(RZ,{})},{path:"/ai-providers",element:h.jsx(SO,{})},{path:"/ai-providers/*",element:h.jsx(SO,{})},{path:"/auth-files",element:h.jsx(Ire,{})},{path:"/auth-files/oauth-excluded",element:h.jsx(lle,{})},{path:"/auth-files/oauth-model-alias",element:h.jsx(Ple,{})},{path:"/oauth",element:h.jsx(cce,{})},{path:"/quota",element:h.jsx(uce,{})},{path:"/usage",element:h.jsx(Sge,{})},{path:"/config",element:h.jsx(rSe,{})},{path:"/logs",element:h.jsx(ske,{})},{path:"/system",element:h.jsx(qke,{})},{path:"*",element:h.jsx(qf,{to:"/",replace:!0})}];function Hke({location:t}){return U9(Kke,t)}const dr={dashboard:h.jsx(Jq,{size:18}),aiProviders:h.jsx(eK,{size:18}),authFiles:h.jsx(tK,{size:18}),oauth:h.jsx(nK,{size:18}),quota:h.jsx(iK,{size:18}),usage:h.jsx(sK,{size:18}),config:h.jsx(Zq,{size:18}),logs:h.jsx(aK,{size:18}),system:h.jsx(oK,{size:18})},fo={width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},mo={refresh:h.jsxs("svg",{...fo,children:[h.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),h.jsx("path",{d:"M21 3v5h-5"})]}),menu:h.jsxs("svg",{...fo,children:[h.jsx("path",{d:"M4 7h16"}),h.jsx("path",{d:"M4 12h16"}),h.jsx("path",{d:"M4 17h16"})]}),chevronLeft:h.jsx("svg",{...fo,children:h.jsx("path",{d:"m14 18-6-6 6-6"})}),chevronRight:h.jsx("svg",{...fo,children:h.jsx("path",{d:"m10 6 6 6-6 6"})}),language:h.jsxs("svg",{...fo,children:[h.jsx("circle",{cx:"12",cy:"12",r:"10"}),h.jsx("path",{d:"M2 12h20"}),h.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]}),sun:h.jsxs("svg",{...fo,children:[h.jsx("circle",{cx:"12",cy:"12",r:"4"}),h.jsx("path",{d:"M12 2v2"}),h.jsx("path",{d:"M12 20v2"}),h.jsx("path",{d:"m4.93 4.93 1.41 1.41"}),h.jsx("path",{d:"m17.66 17.66 1.41 1.41"}),h.jsx("path",{d:"M2 12h2"}),h.jsx("path",{d:"M20 12h2"}),h.jsx("path",{d:"m6.34 17.66-1.41 1.41"}),h.jsx("path",{d:"m19.07 4.93-1.41 1.41"})]}),moon:h.jsx("svg",{...fo,children:h.jsx("path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"})}),whiteTheme:h.jsxs("svg",{...fo,children:[h.jsx("circle",{cx:"12",cy:"12",r:"7"}),h.jsx("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor",stroke:"none"})]}),autoTheme:h.jsxs("svg",{...fo,children:[h.jsx("defs",{children:h.jsx("clipPath",{id:"mainLayoutAutoThemeSunLeftHalf",children:h.jsx("rect",{x:"0",y:"0",width:"12",height:"24"})})}),h.jsx("circle",{cx:"12",cy:"12",r:"4"}),h.jsx("circle",{cx:"12",cy:"12",r:"4",clipPath:"url(#mainLayoutAutoThemeSunLeftHalf)",fill:"currentColor"}),h.jsx("path",{d:"M12 2v2"}),h.jsx("path",{d:"M12 20v2"}),h.jsx("path",{d:"M4.93 4.93l1.41 1.41"}),h.jsx("path",{d:"M17.66 17.66l1.41 1.41"}),h.jsx("path",{d:"M2 12h2"}),h.jsx("path",{d:"M20 12h2"}),h.jsx("path",{d:"M6.34 17.66l-1.41 1.41"}),h.jsx("path",{d:"M19.07 4.93l-1.41 1.41"})]}),logout:h.jsxs("svg",{...fo,children:[h.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),h.jsx("path",{d:"m16 17 5-5-5-5"}),h.jsx("path",{d:"M21 12H9"})]})},Vke=[{key:"auto",labelKey:"theme.auto",colors:{bg:"linear-gradient(135deg, #ffffff 0 50%, #111111 50% 100%)",card:"linear-gradient(135deg, #ffffff 0 50%, #1a1a1a 50% 100%)",border:"#bdbdbd",text:"#2d2a26",textMuted:"linear-gradient(135deg, #c9c9c9 0 50%, #5a5a5a 50% 100%)"}},{key:"white",labelKey:"theme.white",colors:{bg:"#ffffff",card:"#ffffff",border:"#e5e5e5",text:"#2d2a26",textMuted:"#a29c95"}},{key:"light",labelKey:"theme.light",colors:{bg:"#faf9f5",card:"#f0eee8",border:"#e3e1db",text:"#2d2a26",textMuted:"#a29c95"}},{key:"dark",labelKey:"theme.dark",colors:{bg:"#151412",card:"#1d1b18",border:"#3a3530",text:"#f6f4f1",textMuted:"#9c958d"}}];function Wke(){const{t}=et(),{showNotification:e}=_n(),n=Qn(),i=nn(F=>F.apiBase),s=nn(F=>F.connectionStatus),a=nn(F=>F.logout),o=Bt(F=>F.config),r=Bt(F=>F.fetchConfig),c=Bt(F=>F.clearCache),d=Aa(F=>F.theme),f=Aa(F=>F.setTheme),m=Cd(F=>F.language),g=Cd(F=>F.setLanguage),[y,b]=S.useState(!1),[v,x]=S.useState(!1),[A,k]=S.useState(!1),[T,L]=S.useState(!1),[M,O]=S.useState(!0),N=S.useRef(null),P=S.useRef(null),E=S.useRef(null),R=S.useRef(null),z=S.useRef(null),D="CLI Proxy API Management Center",Q=t("title.abbr"),G=n.pathname.startsWith("/logs");S.useLayoutEffect(()=>{const F=()=>{const J=z.current?.offsetHeight;J&&document.documentElement.style.setProperty("--header-height",`${J}px`)};F();const Z=typeof ResizeObserver<"u"&&z.current?new ResizeObserver(F):null;return Z&&z.current&&Z.observe(z.current),window.addEventListener("resize",F),()=>{Z&&Z.disconnect(),window.removeEventListener("resize",F)}},[]),S.useLayoutEffect(()=>{const F=()=>{const J=N.current;if(!J)return;const te=J.getBoundingClientRect(),fe=te.left+te.width/2;document.documentElement.style.setProperty("--content-center-x",`${fe}px`)};F();const Z=typeof ResizeObserver<"u"&&N.current?new ResizeObserver(F):null;return Z&&N.current&&Z.observe(N.current),window.addEventListener("resize",F),()=>{Z&&Z.disconnect(),window.removeEventListener("resize",F),document.documentElement.style.removeProperty("--content-center-x")}},[]),S.useEffect(()=>(R.current=setTimeout(()=>{O(!1)},5e3),()=>{R.current&&clearTimeout(R.current)}),[]),S.useEffect(()=>{if(!A)return;const F=J=>{P.current?.contains(J.target)||k(!1)},Z=J=>{J.key==="Escape"&&k(!1)};return document.addEventListener("mousedown",F),document.addEventListener("keydown",Z),()=>{document.removeEventListener("mousedown",F),document.removeEventListener("keydown",Z)}},[A]),S.useEffect(()=>{if(!T)return;const F=J=>{E.current?.contains(J.target)||L(!1)},Z=J=>{J.key==="Escape"&&L(!1)};return document.addEventListener("mousedown",F),document.addEventListener("keydown",Z),()=>{document.removeEventListener("mousedown",F),document.removeEventListener("keydown",Z)}},[T]);const B=S.useCallback(()=>{M||(O(!0),R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{O(!1)},5e3))},[M]),I=S.useCallback(()=>{k(F=>!F),L(!1)},[]),V=S.useCallback(()=>{L(F=>!F),k(!1)},[]),K=S.useCallback(F=>{f(F),L(!1)},[f]),$=S.useCallback(F=>{kd(F)&&(g(F),k(!1))},[g]);S.useEffect(()=>{r().catch(()=>{})},[r]);const X=s==="connected"?"success":s==="connecting"?"warning":s==="error"?"error":"muted",U=[{path:"/",label:t("nav.dashboard"),icon:dr.dashboard},{path:"/config",label:t("nav.config_management"),icon:dr.config},{path:"/ai-providers",label:t("nav.ai_providers"),icon:dr.aiProviders},{path:"/auth-files",label:t("nav.auth_files"),icon:dr.authFiles},{path:"/oauth",label:t("nav.oauth",{defaultValue:"OAuth"}),icon:dr.oauth},{path:"/quota",label:t("nav.quota_management"),icon:dr.quota},{path:"/usage",label:t("nav.usage_stats"),icon:dr.usage},...o?.loggingToFile?[{path:"/logs",label:t("nav.logs"),icon:dr.logs}]:[],{path:"/system",label:t("nav.system_info"),icon:dr.system}],q=U.map(F=>F.path),Y=F=>{const Z=F.length>1&&F.endsWith("/")?F.slice(0,-1):F,J=Z==="/dashboard"?"/":Z,te=q.indexOf("/ai-providers");if(te!==-1){if(J==="/ai-providers")return te;if(J.startsWith("/ai-providers/"))return J.startsWith("/ai-providers/gemini")?te+.1:J.startsWith("/ai-providers/codex")?te+.2:J.startsWith("/ai-providers/claude")?te+.3:J.startsWith("/ai-providers/vertex")?te+.4:J.startsWith("/ai-providers/ampcode")?te+.5:J.startsWith("/ai-providers/openai")?te+.6:te+.05}const fe=q.indexOf("/auth-files");if(fe!==-1){if(J==="/auth-files")return fe;if(J.startsWith("/auth-files/"))return J.startsWith("/auth-files/oauth-excluded")?fe+.1:J.startsWith("/auth-files/oauth-model-alias")?fe+.2:fe+.05}const re=q.indexOf(J);if(re!==-1)return re;const ue=q.findIndex(ee=>ee!=="/"&&J.startsWith(`${ee}/`));return ue===-1?null:ue},oe=S.useCallback((F,Z)=>{const J=ee=>{const Ie=ee.length>1&&ee.endsWith("/")?ee.slice(0,-1):ee;return Ie==="/dashboard"?"/":Ie},te=J(F),fe=J(Z),re=ee=>ee==="/auth-files"||ee.startsWith("/auth-files/"),ue=ee=>ee==="/ai-providers"||ee.startsWith("/ai-providers/");return re(te)&&re(fe)||ue(te)&&ue(fe)?"ios":"vertical"},[]),se=async()=>{c();const Z=(await Promise.allSettled([r(void 0,!0),pD()])).find(J=>J.status==="rejected");if(Z&&Z.status==="rejected"){const J=Z.reason,te=typeof J=="string"?J:J instanceof Error?J.message:"";e(`${t("notification.refresh_failed")}${te?`: ${te}`:""}`,"error");return}e(t("notification.data_refreshed"),"success")};return h.jsxs("div",{className:"app-shell",children:[h.jsxs("header",{className:"main-header",ref:z,children:[h.jsxs("div",{className:"left",children:[h.jsx("button",{className:"sidebar-toggle-header",onClick:()=>x(F=>!F),title:v?t("sidebar.expand",{defaultValue:"展开"}):t("sidebar.collapse",{defaultValue:"收起"}),children:v?mo.chevronRight:mo.chevronLeft}),h.jsx("img",{src:wd,alt:"CPAMC logo",className:"brand-logo"}),h.jsxs("div",{className:`brand-header ${M?"expanded":"collapsed"}`,onClick:B,title:M?void 0:D,children:[h.jsx("span",{className:"brand-full",children:D}),h.jsx("span",{className:"brand-abbr",children:Q})]})]}),h.jsxs("div",{className:"right",children:[h.jsxs("div",{className:"connection",children:[h.jsx("span",{className:`status-badge ${X}`,children:t(s==="connected"?"common.connected_status":s==="connecting"?"common.connecting_status":"common.disconnected_status")}),h.jsx("span",{className:"base",children:i||"-"})]}),h.jsxs("div",{className:"header-actions",children:[h.jsx(me,{className:"mobile-menu-btn",variant:"ghost",size:"sm",onClick:()=>b(F=>!F),children:mo.menu}),h.jsx(me,{variant:"ghost",size:"sm",onClick:se,title:t("header.refresh_all"),children:mo.refresh}),h.jsxs("div",{className:`language-menu ${A?"open":""}`,ref:P,children:[h.jsx(me,{variant:"ghost",size:"sm",onClick:I,title:t("language.switch"),"aria-label":t("language.switch"),"aria-haspopup":"menu","aria-expanded":A,children:mo.language}),A&&h.jsx("div",{className:"notification entering language-menu-popover",role:"menu","aria-label":t("language.switch"),children:dd.map(F=>h.jsxs("button",{type:"button",className:`language-menu-option ${m===F?"active":""}`,onClick:()=>$(F),role:"menuitemradio","aria-checked":m===F,children:[h.jsx("span",{children:t(f4[F])}),m===F?h.jsx("span",{className:"language-menu-check",children:"✓"}):null]},F))})]}),h.jsxs("div",{className:`theme-menu ${T?"open":""}`,ref:E,children:[h.jsx(me,{variant:"ghost",size:"sm",onClick:V,title:t("theme.switch"),"aria-label":t("theme.switch"),"aria-haspopup":"menu","aria-expanded":T,children:d==="auto"?mo.autoTheme:d==="dark"?mo.moon:d==="white"?mo.whiteTheme:mo.sun}),T&&h.jsx("div",{className:"notification entering theme-menu-popover",role:"menu","aria-label":t("theme.switch"),children:Vke.map(F=>h.jsxs("button",{type:"button",className:`theme-card ${d===F.key?"active":""}`,onClick:()=>K(F.key),role:"menuitemradio","aria-checked":d===F.key,children:[h.jsxs("div",{className:"theme-card-preview",style:{background:F.colors.bg,border:`1px solid ${F.colors.border}`},children:[h.jsx("div",{className:"theme-card-header",style:{background:F.colors.card,borderBottom:`1px solid ${F.colors.border}`}}),h.jsxs("div",{className:"theme-card-body",children:[h.jsx("div",{className:"theme-card-sidebar",style:{background:F.colors.card,borderRight:`1px solid ${F.colors.border}`}}),h.jsxs("div",{className:"theme-card-content",style:{background:F.colors.bg},children:[h.jsx("div",{className:"theme-card-line",style:{background:F.colors.textMuted}}),h.jsx("div",{className:"theme-card-line short",style:{background:F.colors.textMuted}})]})]})]}),h.jsx("span",{className:"theme-card-label",children:t(F.labelKey)})]},F.key))})]}),h.jsx(me,{variant:"ghost",size:"sm",onClick:a,title:t("header.logout"),children:mo.logout})]})]})]}),h.jsxs("div",{className:"main-body",children:[h.jsx("button",{type:"button",className:`sidebar-backdrop ${y?"visible":""}`,onClick:()=>b(!1),"aria-label":t("common.close"),"aria-hidden":!y,tabIndex:y?0:-1}),h.jsx("aside",{className:`sidebar ${y?"open":""} ${v?"collapsed":""}`,children:h.jsx("div",{className:"nav-section",children:U.map(F=>h.jsxs($3,{to:F.path,className:({isActive:Z})=>`nav-item ${Z?"active":""}`,onClick:()=>b(!1),title:v?F.label:void 0,children:[h.jsx("span",{className:"nav-icon",children:F.icon}),!v&&h.jsx("span",{className:"nav-label",children:F.label})]},F.path))})}),h.jsx("div",{className:`content${G?" content-logs":""}`,ref:N,children:h.jsx("main",{className:`main-content${G?" main-content-logs":""}`,children:h.jsx($X,{render:F=>h.jsx(Hke,{location:F}),getRouteOrder:Y,getTransitionVariant:oe,scrollContainerRef:N})})})]})]})}function Gke({children:t}){const e=Qn(),n=nn(c=>c.isAuthenticated),i=nn(c=>c.managementKey),s=nn(c=>c.apiBase),a=nn(c=>c.checkAuth),[o,r]=S.useState(!1);return S.useEffect(()=>{(async()=>{if(!n&&i&&s){r(!0);try{await a()}finally{r(!1)}}})()},[s,n,i,a]),o?h.jsx("div",{className:"main-content",children:h.jsx(Uc,{})}):n?t:h.jsx(qf,{to:"/login",replace:!0,state:{from:e}})}function $ke(){return h.jsxs(h.Fragment,{children:[h.jsx(rX,{}),h.jsx(fX,{}),h.jsx(Dw,{})]})}const Xke=Oz([{element:h.jsx($ke,{}),children:[{path:"/login",element:h.jsx(oX,{})},{path:"/*",element:h.jsx(Gke,{children:h.jsx(Wke,{})})}]}]);function Qke(){const t=Aa(i=>i.initializeTheme),e=Cd(i=>i.language),n=Cd(i=>i.setLanguage);return S.useEffect(()=>t(),[t]),S.useEffect(()=>{n(e)},[]),S.useEffect(()=>{document.documentElement.lang=e},[e]),h.jsx(qz,{router:Xke})}document.title="CLI Proxy API Management Center";document.documentElement.setAttribute("translate","no");document.documentElement.classList.add("notranslate");const _2=document.querySelector('link[rel="icon"]');if(_2)_2.href=wd,_2.type="image/jpeg";else{const t=document.createElement("link");t.rel="icon",t.type="image/jpeg",t.href=wd,document.head.appendChild(t)}y7.createRoot(document.getElementById("root")).render(h.jsx(S.StrictMode,{children:h.jsx(Qke,{})}));function gw(){return gw=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},gw.apply(null,arguments)}function Yke(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}const Jke=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),i=mC(t.state,n.from);return i.line?Zke(t):i.block?tCe(t):!1};function fC(t,e){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let s=t(e,n);return s?(i(n.update(s)),!0):!1}}const Zke=fC(sCe,0),eCe=fC(KF,0),tCe=fC((t,e)=>KF(t,e,iCe(e)),0);function mC(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const wf=50;function nCe(t,{open:e,close:n},i,s){let a=t.sliceDoc(i-wf,i),o=t.sliceDoc(s,s+wf),r=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,d=a.length-r;if(a.slice(d-e.length,d)==e&&o.slice(c,c+n.length)==n)return{open:{pos:i-r,margin:r&&1},close:{pos:s+c,margin:c&&1}};let f,m;s-i<=2*wf?f=m=t.sliceDoc(i,s):(f=t.sliceDoc(i,i+wf),m=t.sliceDoc(s-wf,s));let g=/^\s*/.exec(f)[0].length,y=/\s*$/.exec(m)[0].length,b=m.length-y-n.length;return f.slice(g,g+e.length)==e&&m.slice(b,b+n.length)==n?{open:{pos:i+g+e.length,margin:/\s/.test(f.charAt(g+e.length))?1:0},close:{pos:s-y-n.length,margin:/\s/.test(m.charAt(b-1))?1:0}}:null}function iCe(t){let e=[];for(let n of t.selection.ranges){let i=t.doc.lineAt(n.from),s=n.to<=i.to?i:t.doc.lineAt(n.to);s.from>i.from&&s.from==n.to&&(s=n.to==i.to+1?i:t.doc.lineAt(n.to-1));let a=e.length-1;a>=0&&e[a].to>i.from?e[a].to=s.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return e}function KF(t,e,n=e.selection.ranges){let i=n.map(a=>mC(e,a.from).block);if(!i.every(a=>a))return null;let s=n.map((a,o)=>nCe(e,i[o],a.from,a.to));if(t!=2&&!s.every(a=>a))return{changes:e.changes(n.map((a,o)=>s[o]?[]:[{from:a.from,insert:i[o].open+" "},{from:a.to,insert:" "+i[o].close}]))};if(t!=1&&s.some(a=>a)){let a=[];for(let o=0,r;o<s.length;o++)if(r=s[o]){let c=i[o],{open:d,close:f}=r;a.push({from:d.pos-c.open.length,to:d.pos+d.margin},{from:f.pos-f.margin,to:f.pos+c.close.length})}return{changes:a}}return null}function sCe(t,e,n=e.selection.ranges){let i=[],s=-1;for(let{from:a,to:o}of n){let r=i.length,c=1e9,d=mC(e,a).line;if(d){for(let f=a;f<=o;){let m=e.doc.lineAt(f);if(m.from>s&&(a==o||o>m.from)){s=m.from;let g=/^\s*/.exec(m.text)[0].length,y=g==m.length,b=m.text.slice(g,g+d.length)==d?g:-1;g<m.text.length&&g<c&&(c=g),i.push({line:m,comment:b,token:d,indent:g,empty:y,single:!1})}f=m.to+1}if(c<1e9)for(let f=r;f<i.length;f++)i[f].indent<i[f].line.text.length&&(i[f].indent=c);i.length==r+1&&(i[r].single=!0)}}if(t!=2&&i.some(a=>a.comment<0&&(!a.empty||a.single))){let a=[];for(let{line:r,token:c,indent:d,empty:f,single:m}of i)(m||!f)&&a.push({from:r.from+d,insert:c+" "});let o=e.changes(a);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&i.some(a=>a.comment>=0)){let a=[];for(let{line:o,comment:r,token:c}of i)if(r>=0){let d=o.from+r,f=d+c.length;o.text[f-o.from]==" "&&f++,a.push({from:d,to:f})}return{changes:a}}return null}const _w=Io.define(),aCe=Io.define(),oCe=Ze.define(),HF=Ze.define({combine(t){return Uo(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(i,s)=>e(i,s)||n(i,s)})}}),VF=$i.define({create(){return Co.empty},update(t,e){let n=e.state.facet(HF),i=e.annotation(_w);if(i){let c=Fs.fromTransaction(e,i.selection),d=i.side,f=d==0?t.undone:t.done;return c?f=py(f,f.length,n.minDepth,c):f=$F(f,e.startState.selection),new Co(d==0?i.rest:f,d==0?f:i.rest)}let s=e.annotation(aCe);if((s=="full"||s=="before")&&(t=t.isolate()),e.annotation(Ti.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let a=Fs.fromTransaction(e),o=e.annotation(Ti.time),r=e.annotation(Ti.userEvent);return a?t=t.addChanges(a,o,r,n,e):e.selection&&(t=t.addSelection(e.startState.selection,o,r,n.newGroupDelay)),(s=="full"||s=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new Co(t.done.map(Fs.fromJSON),t.undone.map(Fs.fromJSON))}});function rCe(t={}){return[VF,HF.of(t),$e.domEventHandlers({beforeinput(e,n){let i=e.inputType=="historyUndo"?WF:e.inputType=="historyRedo"?yw:null;return i?(e.preventDefault(),i(n)):!1}})]}function xb(t,e){return function({state:n,dispatch:i}){if(!e&&n.readOnly)return!1;let s=n.field(VF,!1);if(!s)return!1;let a=s.pop(t,n,e);return a?(i(a),!0):!1}}const WF=xb(0,!1),yw=xb(1,!1),lCe=xb(0,!0),cCe=xb(1,!0);class Fs{constructor(e,n,i,s,a){this.changes=e,this.effects=n,this.mapped=i,this.startSelection=s,this.selectionsAfter=a}setSelAfter(e){return new Fs(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new Fs(e.changes&&Ai.fromJSON(e.changes),[],e.mapped&&No.fromJSON(e.mapped),e.startSelection&&Pe.fromJSON(e.startSelection),e.selectionsAfter.map(Pe.fromJSON))}static fromTransaction(e,n){let i=va;for(let s of e.startState.facet(oCe)){let a=s(e);a.length&&(i=i.concat(a))}return!i.length&&e.changes.empty?null:new Fs(e.changes.invert(e.startState.doc),i,void 0,n||e.startState.selection,va)}static selection(e){return new Fs(void 0,va,void 0,void 0,e)}}function py(t,e,n,i){let s=e+1>n+20?e-n-1:0,a=t.slice(s,e);return a.push(i),a}function uCe(t,e){let n=[],i=!1;return t.iterChangedRanges((s,a)=>n.push(s,a)),e.iterChangedRanges((s,a,o,r)=>{for(let c=0;c<n.length;){let d=n[c++],f=n[c++];r>=d&&o<=f&&(i=!0)}}),i}function dCe(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,i)=>n.empty!=e.ranges[i].empty).length===0}function GF(t,e){return t.length?e.length?t.concat(e):t:e}const va=[],hCe=200;function $F(t,e){if(t.length){let n=t[t.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-hCe));return i.length&&i[i.length-1].eq(e)?t:(i.push(e),py(t,t.length-1,1e9,n.setSelAfter(i)))}else return[Fs.selection([e])]}function fCe(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function y2(t,e){if(!t.length)return t;let n=t.length,i=va;for(;n;){let s=mCe(t[n-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let a=t.slice(0,n);return a[n-1]=s,a}else e=s.mapped,n--,i=s.selectionsAfter}return i.length?[Fs.selection(i)]:va}function mCe(t,e,n){let i=GF(t.selectionsAfter.length?t.selectionsAfter.map(r=>r.map(e)):va,n);if(!t.changes)return Fs.selection(i);let s=t.changes.map(e),a=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(a):a;return new Fs(s,Ft.mapEffects(t.effects,e),o,t.startSelection.map(a),i)}const pCe=/^(input\.type|delete)($|\.)/;class Co{constructor(e,n,i=0,s=void 0){this.done=e,this.undone=n,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new Co(this.done,this.undone):this}addChanges(e,n,i,s,a){let o=this.done,r=o[o.length-1];return r&&r.changes&&!r.changes.empty&&e.changes&&(!i||pCe.test(i))&&(!r.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(a,uCe(r.changes,e.changes))||i=="input.type.compose")?o=py(o,o.length-1,s.minDepth,new Fs(e.changes.compose(r.changes),GF(Ft.mapEffects(e.effects,r.changes),r.effects),r.mapped,r.startSelection,va)):o=py(o,o.length,s.minDepth,e),new Co(o,va,n,i)}addSelection(e,n,i,s){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:va;return a.length>0&&n-this.prevTime<s&&i==this.prevUserEvent&&i&&/^select($|\.)/.test(i)&&dCe(a[a.length-1],e)?this:new Co($F(this.done,e),this.undone,n,i)}addMapping(e){return new Co(y2(this.done,e),y2(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,n,i){let s=e==0?this.done:this.undone;if(s.length==0)return null;let a=s[s.length-1],o=a.selectionsAfter[0]||n.selection;if(i&&a.selectionsAfter.length)return n.update({selection:a.selectionsAfter[a.selectionsAfter.length-1],annotations:_w.of({side:e,rest:fCe(s),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(a.changes){let r=s.length==1?va:s.slice(0,s.length-1);return a.mapped&&(r=y2(r,a.mapped)),n.update({changes:a.changes,selection:a.startSelection,effects:a.effects,annotations:_w.of({side:e,rest:r,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Co.empty=new Co(va,va);const gCe=[{key:"Mod-z",run:WF,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:yw,preventDefault:!0},{linux:"Ctrl-Shift-z",run:yw,preventDefault:!0},{key:"Mod-u",run:lCe,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:cCe,preventDefault:!0}];function ah(t,e){return Pe.create(t.ranges.map(e),t.mainIndex)}function Za(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function eo({state:t,dispatch:e},n){let i=ah(t.selection,n);return i.eq(t.selection,!0)?!1:(e(Za(t,i)),!0)}function Sb(t,e){return Pe.cursor(e?t.to:t.from)}function XF(t,e){return eo(t,n=>n.empty?t.moveByChar(n,e):Sb(n,e))}function us(t){return t.textDirectionAt(t.state.selection.main.head)==qn.LTR}const QF=t=>XF(t,!us(t)),YF=t=>XF(t,us(t));function JF(t,e){return eo(t,n=>n.empty?t.moveByGroup(n,e):Sb(n,e))}const _Ce=t=>JF(t,!us(t)),yCe=t=>JF(t,us(t));function bCe(t,e,n){if(e.type.prop(n))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function wb(t,e,n){let i=cs(t).resolveInner(e.head),s=n?$t.closedBy:$t.openedBy;for(let c=e.head;;){let d=n?i.childAfter(c):i.childBefore(c);if(!d)break;bCe(t,d,s)?i=d:c=n?d.to:d.from}let a=i.type.prop(s),o,r;return a&&(o=n?ko(t,i.from,1):ko(t,i.to,-1))&&o.matched?r=n?o.end.to:o.end.from:r=n?i.to:i.from,Pe.cursor(r,n?-1:1)}const vCe=t=>eo(t,e=>wb(t.state,e,!us(t))),xCe=t=>eo(t,e=>wb(t.state,e,us(t)));function ZF(t,e){return eo(t,n=>{if(!n.empty)return Sb(n,e);let i=t.moveVertically(n,e);return i.head!=n.head?i:t.moveToLineBoundary(n,e)})}const eI=t=>ZF(t,!1),tI=t=>ZF(t,!0);function nI(t){let e=t.scrollDOM.clientHeight<t.scrollDOM.scrollHeight-2,n=0,i=0,s;if(e){for(let a of t.state.facet($e.scrollMargins)){let o=a(t);o?.top&&(n=Math.max(o?.top,n)),o?.bottom&&(i=Math.max(o?.bottom,i))}s=t.scrollDOM.clientHeight-n-i}else s=(t.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:i,selfScroll:e,height:Math.max(t.defaultLineHeight,s-5)}}function iI(t,e){let n=nI(t),{state:i}=t,s=ah(i.selection,o=>o.empty?t.moveVertically(o,e,n.height):Sb(o,e));if(s.eq(i.selection))return!1;let a;if(n.selfScroll){let o=t.coordsAtPos(i.selection.main.head),r=t.scrollDOM.getBoundingClientRect(),c=r.top+n.marginTop,d=r.bottom-n.marginBottom;o&&o.top>c&&o.bottom<d&&(a=$e.scrollIntoView(s.main.head,{y:"start",yMargin:o.top-c}))}return t.dispatch(Za(i,s),{effects:a}),!0}const CR=t=>iI(t,!1),bw=t=>iI(t,!0);function Il(t,e,n){let i=t.lineBlockAt(e.head),s=t.moveToLineBoundary(e,n);if(s.head==e.head&&s.head!=(n?i.to:i.from)&&(s=t.moveToLineBoundary(e,n,!1)),!n&&s.head==i.from&&i.length){let a=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;a&&e.head!=i.from+a&&(s=Pe.cursor(i.from+a))}return s}const SCe=t=>eo(t,e=>Il(t,e,!0)),wCe=t=>eo(t,e=>Il(t,e,!1)),kCe=t=>eo(t,e=>Il(t,e,!us(t))),CCe=t=>eo(t,e=>Il(t,e,us(t))),ACe=t=>eo(t,e=>Pe.cursor(t.lineBlockAt(e.head).from,1)),NCe=t=>eo(t,e=>Pe.cursor(t.lineBlockAt(e.head).to,-1));function TCe(t,e,n){let i=!1,s=ah(t.selection,a=>{let o=ko(t,a.head,-1)||ko(t,a.head,1)||a.head>0&&ko(t,a.head-1,1)||a.head<t.doc.length&&ko(t,a.head+1,-1);if(!o||!o.end)return a;i=!0;let r=o.start.from==a.head?o.end.to:o.end.from;return Pe.cursor(r)});return i?(e(Za(t,s)),!0):!1}const MCe=({state:t,dispatch:e})=>TCe(t,e);function Ra(t,e){let n=ah(t.state.selection,i=>{let s=e(i);return Pe.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return n.eq(t.state.selection)?!1:(t.dispatch(Za(t.state,n)),!0)}function sI(t,e){return Ra(t,n=>t.moveByChar(n,e))}const aI=t=>sI(t,!us(t)),oI=t=>sI(t,us(t));function rI(t,e){return Ra(t,n=>t.moveByGroup(n,e))}const LCe=t=>rI(t,!us(t)),OCe=t=>rI(t,us(t)),PCe=t=>Ra(t,e=>wb(t.state,e,!us(t))),ECe=t=>Ra(t,e=>wb(t.state,e,us(t)));function lI(t,e){return Ra(t,n=>t.moveVertically(n,e))}const cI=t=>lI(t,!1),uI=t=>lI(t,!0);function dI(t,e){return Ra(t,n=>t.moveVertically(n,e,nI(t).height))}const AR=t=>dI(t,!1),NR=t=>dI(t,!0),jCe=t=>Ra(t,e=>Il(t,e,!0)),RCe=t=>Ra(t,e=>Il(t,e,!1)),DCe=t=>Ra(t,e=>Il(t,e,!us(t))),FCe=t=>Ra(t,e=>Il(t,e,us(t))),ICe=t=>Ra(t,e=>Pe.cursor(t.lineBlockAt(e.head).from)),UCe=t=>Ra(t,e=>Pe.cursor(t.lineBlockAt(e.head).to)),TR=({state:t,dispatch:e})=>(e(Za(t,{anchor:0})),!0),MR=({state:t,dispatch:e})=>(e(Za(t,{anchor:t.doc.length})),!0),LR=({state:t,dispatch:e})=>(e(Za(t,{anchor:t.selection.main.anchor,head:0})),!0),OR=({state:t,dispatch:e})=>(e(Za(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),BCe=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),zCe=({state:t,dispatch:e})=>{let n=kb(t).map(({from:i,to:s})=>Pe.range(i,Math.min(s+1,t.doc.length)));return e(t.update({selection:Pe.create(n),userEvent:"select"})),!0},qCe=({state:t,dispatch:e})=>{let n=ah(t.selection,i=>{let s=cs(t),a=s.resolveStack(i.from,1);if(i.empty){let o=s.resolveStack(i.from,-1);o.node.from>=a.node.from&&o.node.to<=a.node.to&&(a=o)}for(let o=a;o;o=o.next){let{node:r}=o;if((r.from<i.from&&r.to>=i.to||r.to>i.to&&r.from<=i.from)&&o.next)return Pe.range(r.to,r.from)}return i});return n.eq(t.selection)?!1:(e(Za(t,n)),!0)};function hI(t,e){let{state:n}=t,i=n.selection,s=n.selection.ranges.slice();for(let a of n.selection.ranges){let o=n.doc.lineAt(a.head);if(e?o.to<t.state.doc.length:o.from>0)for(let r=a;;){let c=t.moveVertically(r,e);if(c.head<o.from||c.head>o.to){s.some(d=>d.head==c.head)||s.push(c);break}else{if(c.head==r.head)break;r=c}}}return s.length==i.ranges.length?!1:(t.dispatch(Za(n,Pe.create(s,s.length-1))),!0)}const KCe=t=>hI(t,!1),HCe=t=>hI(t,!0),VCe=({state:t,dispatch:e})=>{let n=t.selection,i=null;return n.ranges.length>1?i=Pe.create([n.main]):n.main.empty||(i=Pe.create([Pe.cursor(n.main.head)])),i?(e(Za(t,i)),!0):!1};function Ap(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:i}=t,s=i.changeByRange(a=>{let{from:o,to:r}=a;if(o==r){let c=e(a);c<o?(n="delete.backward",c=X_(t,c,!1)):c>o&&(n="delete.forward",c=X_(t,c,!0)),o=Math.min(o,c),r=Math.max(r,c)}else o=X_(t,o,!1),r=X_(t,r,!0);return o==r?{range:a}:{changes:{from:o,to:r},range:Pe.cursor(o,o<a.head?-1:1)}});return s.changes.empty?!1:(t.dispatch(i.update(s,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?$e.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function X_(t,e,n){if(t instanceof $e)for(let i of t.state.facet($e.atomicRanges).map(s=>s(t)))i.between(e,e,(s,a)=>{s<e&&a>e&&(e=n?a:s)});return e}const fI=(t,e,n)=>Ap(t,i=>{let s=i.from,{state:a}=t,o=a.doc.lineAt(s),r,c;if(n&&!e&&s>o.from&&s<o.from+200&&!/[^ \t]/.test(r=o.text.slice(0,s-o.from))){if(r[r.length-1]==" ")return s-1;let d=sh(r,a.tabSize),f=d%hy(a)||hy(a);for(let m=0;m<f&&r[r.length-1-m]==" ";m++)s--;c=s}else c=Wi(o.text,s-o.from,e,e)+o.from,c==s&&o.number!=(e?a.doc.lines:1)?c+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(c-o.from,s-o.from))&&(c=Wi(o.text,c-o.from,!1,!1)+o.from);return c}),vw=t=>fI(t,!1,!0),mI=t=>fI(t,!0,!1),pI=(t,e)=>Ap(t,n=>{let i=n.head,{state:s}=t,a=s.doc.lineAt(i),o=s.charCategorizer(i);for(let r=null;;){if(i==(e?a.to:a.from)){i==n.head&&a.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let c=Wi(a.text,i-a.from,e)+a.from,d=a.text.slice(Math.min(i,c)-a.from,Math.max(i,c)-a.from),f=o(d);if(r!=null&&f!=r)break;(d!=" "||i!=n.head)&&(r=f),i=c}return i}),gI=t=>pI(t,!1),WCe=t=>pI(t,!0),GCe=t=>Ap(t,e=>{let n=t.lineBlockAt(e.head).to;return e.head<n?n:Math.min(t.state.doc.length,e.head+1)}),$Ce=t=>Ap(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),XCe=t=>Ap(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head<n?n:Math.min(t.state.doc.length,e.head+1)}),QCe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:un.of(["",""])},range:Pe.cursor(i.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},YCe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let s=i.from,a=t.doc.lineAt(s),o=s==a.from?s-1:Wi(a.text,s-a.from,!1)+a.from,r=s==a.to?s+1:Wi(a.text,s-a.from,!0)+a.from;return{changes:{from:o,to:r,insert:t.doc.slice(s,r).append(t.doc.slice(o,s))},range:Pe.cursor(r)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function kb(t){let e=[],n=-1;for(let i of t.selection.ranges){let s=t.doc.lineAt(i.from),a=t.doc.lineAt(i.to);if(!i.empty&&i.to==a.from&&(a=t.doc.lineAt(i.to-1)),n>=s.number){let o=e[e.length-1];o.to=a.to,o.ranges.push(i)}else e.push({from:s.from,to:a.to,ranges:[i]});n=a.number+1}return e}function _I(t,e,n){if(t.readOnly)return!1;let i=[],s=[];for(let a of kb(t)){if(n?a.to==t.doc.length:a.from==0)continue;let o=t.doc.lineAt(n?a.to+1:a.from-1),r=o.length+1;if(n){i.push({from:a.to,to:o.to},{from:a.from,insert:o.text+t.lineBreak});for(let c of a.ranges)s.push(Pe.range(Math.min(t.doc.length,c.anchor+r),Math.min(t.doc.length,c.head+r)))}else{i.push({from:o.from,to:a.from},{from:a.to,insert:t.lineBreak+o.text});for(let c of a.ranges)s.push(Pe.range(c.anchor-r,c.head-r))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:Pe.create(s,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const JCe=({state:t,dispatch:e})=>_I(t,e,!1),ZCe=({state:t,dispatch:e})=>_I(t,e,!0);function yI(t,e,n){if(t.readOnly)return!1;let i=[];for(let s of kb(t))n?i.push({from:s.from,insert:t.doc.slice(s.from,s.to)+t.lineBreak}):i.push({from:s.to,insert:t.lineBreak+t.doc.slice(s.from,s.to)});return e(t.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const eAe=({state:t,dispatch:e})=>yI(t,e,!1),tAe=({state:t,dispatch:e})=>yI(t,e,!0),nAe=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(kb(e).map(({from:s,to:a})=>(s>0?s--:a<e.doc.length&&a++,{from:s,to:a}))),i=ah(e.selection,s=>{let a;if(t.lineWrapping){let o=t.lineBlockAt(s.head),r=t.coordsAtPos(s.head,s.assoc||1);r&&(a=o.bottom+t.documentTop-r.bottom+t.defaultLineHeight/2)}return t.moveVertically(s,!0,a)}).map(n);return t.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function iAe(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=cs(t).resolveInner(e),i=n.childBefore(e),s=n.childAfter(e),a;return i&&s&&i.to<=e&&s.from>=e&&(a=i.type.prop($t.closedBy))&&a.indexOf(s.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}const PR=bI(!1),sAe=bI(!0);function bI(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:a,to:o}=s,r=e.doc.lineAt(a),c=!t&&a==o&&iAe(e,a);t&&(a=o=(o<=r.to?r:e.doc.lineAt(o)).to);let d=new yb(e,{simulateBreak:a,simulateDoubleBreak:!!c}),f=rC(d,a);for(f==null&&(f=sh(/^\s*/.exec(e.doc.lineAt(a).text)[0],e.tabSize));o<r.to&&/\s/.test(r.text[o-r.from]);)o++;c?{from:a,to:o}=c:a>r.from&&a<r.from+100&&!/\S/.test(r.text.slice(0,a))&&(a=r.from);let m=["",Rm(e,f)];return c&&m.push(Rm(e,d.lineIndent(r.from,-1))),{changes:{from:a,to:o,insert:un.of(m)},range:Pe.cursor(a+1+m[1].length)}});return n(e.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function pC(t,e){let n=-1;return t.changeByRange(i=>{let s=[];for(let o=i.from;o<=i.to;){let r=t.doc.lineAt(o);r.number>n&&(i.empty||i.to>r.from)&&(e(r,s,i),n=r.number),o=r.to+1}let a=t.changes(s);return{changes:s,range:Pe.range(a.mapPos(i.anchor,1),a.mapPos(i.head,1))}})}const aAe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),i=new yb(t,{overrideIndentation:a=>{let o=n[a];return o??-1}}),s=pC(t,(a,o,r)=>{let c=rC(i,a.from);if(c==null)return;/\S/.test(a.text)||(c=0);let d=/^\s*/.exec(a.text)[0],f=Rm(t,c);(d!=f||r.from<a.from+d.length)&&(n[a.from]=c,o.push({from:a.from,to:a.from+d.length,insert:f}))});return s.changes.empty||e(t.update(s,{userEvent:"indent"})),!0},vI=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pC(t,(n,i)=>{i.push({from:n.from,insert:t.facet(_b)})}),{userEvent:"input.indent"})),!0),xI=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pC(t,(n,i)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let a=sh(s,t.tabSize),o=0,r=Rm(t,Math.max(0,a-hy(t)));for(;o<s.length&&o<r.length&&s.charCodeAt(o)==r.charCodeAt(o);)o++;i.push({from:n.from+o,to:n.from+s.length,insert:r.slice(o)})}),{userEvent:"delete.dedent"})),!0),oAe=t=>(t.setTabFocusMode(),!0),rAe=[{key:"Ctrl-b",run:QF,shift:aI,preventDefault:!0},{key:"Ctrl-f",run:YF,shift:oI},{key:"Ctrl-p",run:eI,shift:cI},{key:"Ctrl-n",run:tI,shift:uI},{key:"Ctrl-a",run:ACe,shift:ICe},{key:"Ctrl-e",run:NCe,shift:UCe},{key:"Ctrl-d",run:mI},{key:"Ctrl-h",run:vw},{key:"Ctrl-k",run:GCe},{key:"Ctrl-Alt-h",run:gI},{key:"Ctrl-o",run:QCe},{key:"Ctrl-t",run:YCe},{key:"Ctrl-v",run:bw}],lAe=[{key:"ArrowLeft",run:QF,shift:aI,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:_Ce,shift:LCe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:kCe,shift:DCe,preventDefault:!0},{key:"ArrowRight",run:YF,shift:oI,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:yCe,shift:OCe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:CCe,shift:FCe,preventDefault:!0},{key:"ArrowUp",run:eI,shift:cI,preventDefault:!0},{mac:"Cmd-ArrowUp",run:TR,shift:LR},{mac:"Ctrl-ArrowUp",run:CR,shift:AR},{key:"ArrowDown",run:tI,shift:uI,preventDefault:!0},{mac:"Cmd-ArrowDown",run:MR,shift:OR},{mac:"Ctrl-ArrowDown",run:bw,shift:NR},{key:"PageUp",run:CR,shift:AR},{key:"PageDown",run:bw,shift:NR},{key:"Home",run:wCe,shift:RCe,preventDefault:!0},{key:"Mod-Home",run:TR,shift:LR},{key:"End",run:SCe,shift:jCe,preventDefault:!0},{key:"Mod-End",run:MR,shift:OR},{key:"Enter",run:PR,shift:PR},{key:"Mod-a",run:BCe},{key:"Backspace",run:vw,shift:vw,preventDefault:!0},{key:"Delete",run:mI,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:gI,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:WCe,preventDefault:!0},{mac:"Mod-Backspace",run:$Ce,preventDefault:!0},{mac:"Mod-Delete",run:XCe,preventDefault:!0}].concat(rAe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),cAe=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:vCe,shift:PCe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:xCe,shift:ECe},{key:"Alt-ArrowUp",run:JCe},{key:"Shift-Alt-ArrowUp",run:eAe},{key:"Alt-ArrowDown",run:ZCe},{key:"Shift-Alt-ArrowDown",run:tAe},{key:"Mod-Alt-ArrowUp",run:KCe},{key:"Mod-Alt-ArrowDown",run:HCe},{key:"Escape",run:VCe},{key:"Mod-Enter",run:sAe},{key:"Alt-l",mac:"Ctrl-l",run:zCe},{key:"Mod-i",run:qCe,preventDefault:!0},{key:"Mod-[",run:xI},{key:"Mod-]",run:vI},{key:"Mod-Alt-\\",run:aAe},{key:"Shift-Mod-k",run:nAe},{key:"Shift-Mod-\\",run:MCe},{key:"Mod-/",run:Jke},{key:"Alt-A",run:eCe},{key:"Ctrl-m",mac:"Shift-Alt-m",run:oAe}].concat(lAe),uAe={key:"Tab",run:vI,shift:xI},ER=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class Bd{constructor(e,n,i=0,s=e.length,a,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=a?r=>a(ER(r)):ER,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Es(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=Kk(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=vo(e);let s=this.normalize(n);if(s.length)for(let a=0,o=i;;a++){let r=s.charCodeAt(a),c=this.match(r,o,this.bufferPos+this.bufferStart);if(a==s.length-1){if(c)return this.value=c,this;break}o==i&&a<n.length&&n.charCodeAt(a)==r&&o++}}}match(e,n,i){let s=null;for(let a=0;a<this.matches.length;a+=2){let o=this.matches[a],r=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?s={from:this.matches[a+1],to:i}:(this.matches[a]++,r=!0)),r||(this.matches.splice(a,2),a-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?s={from:n,to:i}:this.matches.push(1,n)),s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart)&&(s=null),s}}typeof Symbol<"u"&&(Bd.prototype[Symbol.iterator]=function(){return this});const SI={from:-1,to:-1,match:/.*/.exec("")},gC="gm"+(/x/.unicode==null?"":"u");class wI{constructor(e,n,i,s=0,a=e.length){if(this.text=e,this.to=a,this.curLine="",this.done=!1,this.value=SI,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new kI(e,n,i,s,a);this.re=new RegExp(n,gC+(i?.ignoreCase?"i":"")),this.test=i?.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=gy(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let i=this.curLineStart+n.index,s=i+n[0].length;if(this.matchPos=gy(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(i<s||i>this.value.to)&&(!this.test||this.test(i,s,n)))return this.value={from:i,to:s,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const b2=new WeakMap;class vd{constructor(e,n){this.from=e,this.text=n}get to(){return this.from+this.text.length}static get(e,n,i){let s=b2.get(e);if(!s||s.from>=i||s.to<=n){let r=new vd(n,e.sliceString(n,i));return b2.set(e,r),r}if(s.from==n&&s.to==i)return s;let{text:a,from:o}=s;return o>n&&(a=e.sliceString(n,o)+a,o=n),s.to<i&&(a+=e.sliceString(s.to,i)),b2.set(e,new vd(o,a)),new vd(n,a.slice(n-o,i-o))}}class kI{constructor(e,n,i,s,a){this.text=e,this.to=a,this.done=!1,this.value=SI,this.matchPos=gy(e,s),this.re=new RegExp(n,gC+(i?.ignoreCase?"i":"")),this.test=i?.test,this.flat=vd.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let i=this.flat.from+n.index,s=i+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,n)))return this.value={from:i,to:s,match:n},this.matchPos=gy(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=vd.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(wI.prototype[Symbol.iterator]=kI.prototype[Symbol.iterator]=function(){return this});function dAe(t){try{return new RegExp(t,gC),!0}catch{return!1}}function gy(t,e){if(e>=t.length)return e;let n=t.lineAt(e),i;for(;e<n.to&&(i=n.text.charCodeAt(e-n.from))>=56320&&i<57344;)e++;return e}function xw(t){let e=String(t.state.doc.lineAt(t.state.selection.main.head).number),n=On("input",{class:"cm-textfield",name:"line",value:e}),i=On("form",{class:"cm-gotoLine",onkeydown:a=>{a.keyCode==27?(a.preventDefault(),t.dispatch({effects:lm.of(!1)}),t.focus()):a.keyCode==13&&(a.preventDefault(),s())},onsubmit:a=>{a.preventDefault(),s()}},On("label",t.state.phrase("Go to line"),": ",n)," ",On("button",{class:"cm-button",type:"submit"},t.state.phrase("go")),On("button",{name:"close",onclick:()=>{t.dispatch({effects:lm.of(!1)}),t.focus()},"aria-label":t.state.phrase("close"),type:"button"},["×"]));function s(){let a=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(n.value);if(!a)return;let{state:o}=t,r=o.doc.lineAt(o.selection.main.head),[,c,d,f,m]=a,g=f?+f.slice(1):0,y=d?+d:r.number;if(d&&m){let x=y/100;c&&(x=x*(c=="-"?-1:1)+r.number/o.doc.lines),y=Math.round(o.doc.lines*x)}else d&&c&&(y=y*(c=="-"?-1:1)+r.number);let b=o.doc.line(Math.max(1,Math.min(o.doc.lines,y))),v=Pe.cursor(b.from+Math.max(0,Math.min(g,b.length)));t.dispatch({effects:[lm.of(!1),$e.scrollIntoView(v.from,{y:"center"})],selection:v}),t.focus()}return{dom:i}}const lm=Ft.define(),jR=$i.define({create(){return!0},update(t,e){for(let n of e.effects)n.is(lm)&&(t=n.value);return t},provide:t=>Pm.from(t,e=>e?xw:null)}),hAe=t=>{let e=Om(t,xw);if(!e){let n=[lm.of(!0)];t.state.field(jR,!1)==null&&n.push(Ft.appendConfig.of([jR,fAe])),t.dispatch({effects:n}),e=Om(t,xw)}return e&&e.dom.querySelector("input").select(),!0},fAe=$e.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),mAe={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},pAe=Ze.define({combine(t){return Uo(t,mAe,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function CI(t){return[vAe,bAe]}const gAe=vt.mark({class:"cm-selectionMatch"}),_Ae=vt.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function RR(t,e,n,i){return(n==0||t(e.sliceDoc(n-1,n))!=Gn.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=Gn.Word)}function yAe(t,e,n,i){return t(e.sliceDoc(n,n+1))==Gn.Word&&t(e.sliceDoc(i-1,i))==Gn.Word}const bAe=ci.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(pAe),{state:n}=t,i=n.selection;if(i.ranges.length>1)return vt.none;let s=i.main,a,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return vt.none;let c=n.wordAt(s.head);if(!c)return vt.none;o=n.charCategorizer(s.head),a=n.sliceDoc(c.from,c.to)}else{let c=s.to-s.from;if(c<e.minSelectionLength||c>200)return vt.none;if(e.wholeWords){if(a=n.sliceDoc(s.from,s.to),o=n.charCategorizer(s.head),!(RR(o,n,s.from,s.to)&&yAe(o,n,s.from,s.to)))return vt.none}else if(a=n.sliceDoc(s.from,s.to),!a)return vt.none}let r=[];for(let c of t.visibleRanges){let d=new Bd(n.doc,a,c.from,c.to);for(;!d.next().done;){let{from:f,to:m}=d.value;if((!o||RR(o,n,f,m))&&(s.empty&&f<=s.from&&m>=s.to?r.push(_Ae.range(f,m)):(f>=s.to||m<=s.from)&&r.push(gAe.range(f,m)),r.length>e.maxMatches))return vt.none}}return vt.set(r)}},{decorations:t=>t.decorations}),vAe=$e.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),xAe=({state:t,dispatch:e})=>{let{selection:n}=t,i=Pe.create(n.ranges.map(s=>t.wordAt(s.head)||Pe.cursor(s.head)),n.mainIndex);return i.eq(n)?!1:(e(t.update({selection:i})),!0)};function SAe(t,e){let{main:n,ranges:i}=t.selection,s=t.wordAt(n.head),a=s&&s.from==n.from&&s.to==n.to;for(let o=!1,r=new Bd(t.doc,e,i[i.length-1].to);;)if(r.next(),r.done){if(o)return null;r=new Bd(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(c=>c.from==r.value.from))continue;if(a){let c=t.wordAt(r.value.from);if(!c||c.from!=r.value.from||c.to!=r.value.to)continue}return r.value}}const wAe=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(a=>a.from===a.to))return xAe({state:t,dispatch:e});let i=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(a=>t.sliceDoc(a.from,a.to)!=i))return!1;let s=SAe(t,i);return s?(e(t.update({selection:t.selection.addRange(Pe.range(s.from,s.to),!1),effects:$e.scrollIntoView(s.to)})),!0):!1},eu=Ze.define({combine(t){return Uo(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new RAe(e),scrollToMatch:e=>$e.scrollIntoView(e)})}});function kAe(t){return t?[eu.of(t),ww]:ww}class AI{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||dAe(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,i)=>i=="n"?`
|
||
`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new TAe(this):new AAe(this)}getCursor(e,n=0,i){let s=e.doc?e:ln.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?Xu(this,s,n,i):$u(this,s,n,i)}}class NI{constructor(e){this.spec=e}}function $u(t,e,n,i){return new Bd(e.doc,t.unquoted,n,i,t.caseSensitive?void 0:s=>s.toLowerCase(),t.wholeWord?CAe(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function CAe(t,e){return(n,i,s,a)=>((a>n||a+s.length<i)&&(a=Math.max(0,n-2),s=t.sliceString(a,Math.min(t.length,i+2))),(e(_y(s,n-a))!=Gn.Word||e(yy(s,n-a))!=Gn.Word)&&(e(yy(s,i-a))!=Gn.Word||e(_y(s,i-a))!=Gn.Word))}class AAe extends NI{constructor(e){super(e)}nextMatch(e,n,i){let s=$u(this.spec,e,i,e.doc.length).nextOverlapping();if(s.done){let a=Math.min(e.doc.length,n+this.spec.unquoted.length);s=$u(this.spec,e,0,a).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==i?null:s.value}prevMatchInRange(e,n,i){for(let s=i;;){let a=Math.max(n,s-1e4-this.spec.unquoted.length),o=$u(this.spec,e,a,s),r=null;for(;!o.nextOverlapping().done;)r=o.value;if(r)return r;if(a==n)return null;s-=1e4}}prevMatch(e,n,i){let s=this.prevMatchInRange(e,0,n);return s||(s=this.prevMatchInRange(e,Math.max(0,i-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=n||s.to!=i)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,n){let i=$u(this.spec,e,0,e.doc.length),s=[];for(;!i.next().done;){if(s.length>=n)return null;s.push(i.value)}return s}highlight(e,n,i,s){let a=$u(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}function Xu(t,e,n,i){return new wI(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?NAe(e.charCategorizer(e.selection.main.head)):void 0},n,i)}function _y(t,e){return t.slice(Wi(t,e,!1),e)}function yy(t,e){return t.slice(e,Wi(t,e))}function NAe(t){return(e,n,i)=>!i[0].length||(t(_y(i.input,i.index))!=Gn.Word||t(yy(i.input,i.index))!=Gn.Word)&&(t(yy(i.input,i.index+i[0].length))!=Gn.Word||t(_y(i.input,i.index+i[0].length))!=Gn.Word)}class TAe extends NI{nextMatch(e,n,i){let s=Xu(this.spec,e,i,e.doc.length).next();return s.done&&(s=Xu(this.spec,e,0,n).next()),s.done?null:s.value}prevMatchInRange(e,n,i){for(let s=1;;s++){let a=Math.max(n,i-s*1e4),o=Xu(this.spec,e,a,i),r=null;for(;!o.next().done;)r=o.value;if(r&&(a==n||r.from>a+10))return r;if(a==n)return null}}prevMatch(e,n,i){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let a=+i.slice(0,s);if(a>0&&a<e.match.length)return e.match[a]+i.slice(s)}return n})}matchAll(e,n){let i=Xu(this.spec,e,0,e.doc.length),s=[];for(;!i.next().done;){if(s.length>=n)return null;s.push(i.value)}return s}highlight(e,n,i,s){let a=Xu(this.spec,e,Math.max(0,n-250),Math.min(i+250,e.doc.length));for(;!a.next().done;)s(a.value.from,a.value.to)}}const Dm=Ft.define(),_C=Ft.define(),Tl=$i.define({create(t){return new v2(Sw(t).create(),null)},update(t,e){for(let n of e.effects)n.is(Dm)?t=new v2(n.value.create(),t.panel):n.is(_C)&&(t=new v2(t.query,n.value?yC:null));return t},provide:t=>Pm.from(t,e=>e.panel)});class v2{constructor(e,n){this.query=e,this.panel=n}}const MAe=vt.mark({class:"cm-searchMatch"}),LAe=vt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),OAe=ci.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(Tl))}update(t){let e=t.state.field(Tl);(e!=t.startState.field(Tl)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return vt.none;let{view:n}=this,i=new Lr;for(let s=0,a=n.visibleRanges,o=a.length;s<o;s++){let{from:r,to:c}=a[s];for(;s<o-1&&c>a[s+1].from-500;)c=a[++s].to;t.highlight(n.state,r,c,(d,f)=>{let m=n.state.selection.ranges.some(g=>g.from==d&&g.to==f);i.add(d,f,m?LAe:MAe)})}return i.finish()}},{decorations:t=>t.decorations});function Np(t){return e=>{let n=e.state.field(Tl,!1);return n&&n.query.spec.valid?t(e,n):LI(e)}}const by=Np((t,{query:e})=>{let{to:n}=t.state.selection.main,i=e.nextMatch(t.state,n,n);if(!i)return!1;let s=Pe.single(i.from,i.to),a=t.state.facet(eu);return t.dispatch({selection:s,effects:[bC(t,i),a.scrollToMatch(s.main,t)],userEvent:"select.search"}),MI(t),!0}),vy=Np((t,{query:e})=>{let{state:n}=t,{from:i}=n.selection.main,s=e.prevMatch(n,i,i);if(!s)return!1;let a=Pe.single(s.from,s.to),o=t.state.facet(eu);return t.dispatch({selection:a,effects:[bC(t,s),o.scrollToMatch(a.main,t)],userEvent:"select.search"}),MI(t),!0}),PAe=Np((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:Pe.create(n.map(i=>Pe.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),EAe=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:i,to:s}=n.main,a=[],o=0;for(let r=new Bd(t.doc,t.sliceDoc(i,s));!r.next().done;){if(a.length>1e3)return!1;r.value.from==i&&(o=a.length),a.push(Pe.range(r.value.from,r.value.to))}return e(t.update({selection:Pe.create(a,o),userEvent:"select.search.matches"})),!0},DR=Np((t,{query:e})=>{let{state:n}=t,{from:i,to:s}=n.selection.main;if(n.readOnly)return!1;let a=e.nextMatch(n,i,i);if(!a)return!1;let o=a,r=[],c,d,f=[];o.from==i&&o.to==s&&(d=n.toText(e.getReplacement(o)),r.push({from:o.from,to:o.to,insert:d}),o=e.nextMatch(n,o.from,o.to),f.push($e.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(i).number)+".")));let m=t.state.changes(r);return o&&(c=Pe.single(o.from,o.to).map(m),f.push(bC(t,o)),f.push(n.facet(eu).scrollToMatch(c.main,t))),t.dispatch({changes:m,selection:c,effects:f,userEvent:"input.replace"}),!0}),jAe=Np((t,{query:e})=>{if(t.state.readOnly)return!1;let n=e.matchAll(t.state,1e9).map(s=>{let{from:a,to:o}=s;return{from:a,to:o,insert:e.getReplacement(s)}});if(!n.length)return!1;let i=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:$e.announce.of(i),userEvent:"input.replace.all"}),!0});function yC(t){return t.state.facet(eu).createPanel(t)}function Sw(t,e){var n,i,s,a,o;let r=t.selection.main,c=r.empty||r.to>r.from+100?"":t.sliceDoc(r.from,r.to);if(e&&!c)return e;let d=t.facet(eu);return new AI({search:((n=e?.literal)!==null&&n!==void 0?n:d.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:d.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:d.literal,regexp:(a=e?.regexp)!==null&&a!==void 0?a:d.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:d.wholeWord})}function TI(t){let e=Om(t,yC);return e&&e.dom.querySelector("[main-field]")}function MI(t){let e=TI(t);e&&e==t.root.activeElement&&e.select()}const LI=t=>{let e=t.state.field(Tl,!1);if(e&&e.panel){let n=TI(t);if(n&&n!=t.root.activeElement){let i=Sw(t.state,e.query.spec);i.valid&&t.dispatch({effects:Dm.of(i)}),n.focus(),n.select()}}else t.dispatch({effects:[_C.of(!0),e?Dm.of(Sw(t.state,e.query.spec)):Ft.appendConfig.of(ww)]});return!0},OI=t=>{let e=t.state.field(Tl,!1);if(!e||!e.panel)return!1;let n=Om(t,yC);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:_C.of(!1)}),!0},PI=[{key:"Mod-f",run:LI,scope:"editor search-panel"},{key:"F3",run:by,shift:vy,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:by,shift:vy,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:OI,scope:"editor search-panel"},{key:"Mod-Shift-l",run:EAe},{key:"Mod-Alt-g",run:hAe},{key:"Mod-d",run:wAe,preventDefault:!0}];class RAe{constructor(e){this.view=e;let n=this.query=e.state.field(Tl).query.spec;this.commit=this.commit.bind(this),this.searchField=On("input",{value:n.search,placeholder:Xs(e,"Find"),"aria-label":Xs(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=On("input",{value:n.replace,placeholder:Xs(e,"Replace"),"aria-label":Xs(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=On("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=On("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=On("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function i(s,a,o){return On("button",{class:"cm-button",name:s,onclick:a,type:"button"},o)}this.dom=On("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>by(e),[Xs(e,"next")]),i("prev",()=>vy(e),[Xs(e,"previous")]),i("select",()=>PAe(e),[Xs(e,"all")]),On("label",null,[this.caseField,Xs(e,"match case")]),On("label",null,[this.reField,Xs(e,"regexp")]),On("label",null,[this.wordField,Xs(e,"by word")]),...e.state.readOnly?[]:[On("br"),this.replaceField,i("replace",()=>DR(e),[Xs(e,"replace")]),i("replaceAll",()=>jAe(e),[Xs(e,"replace all")])],On("button",{name:"close",onclick:()=>OI(e),"aria-label":Xs(e,"close"),type:"button"},["×"])])}commit(){let e=new AI({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Dm.of(e)}))}keydown(e){Ive(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?vy:by)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),DR(this.view))}update(e){for(let n of e.transactions)for(let i of n.effects)i.is(Dm)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(eu).top}}function Xs(t,e){return t.state.phrase(e)}const Q_=30,Y_=/[\s\.,:;?!]/;function bC(t,{from:e,to:n}){let i=t.state.doc.lineAt(e),s=t.state.doc.lineAt(n).to,a=Math.max(i.from,e-Q_),o=Math.min(s,n+Q_),r=t.state.sliceDoc(a,o);if(a!=i.from){for(let c=0;c<Q_;c++)if(!Y_.test(r[c+1])&&Y_.test(r[c])){r=r.slice(c);break}}if(o!=s){for(let c=r.length-1;c>r.length-Q_;c--)if(!Y_.test(r[c-1])&&Y_.test(r[c])){r=r.slice(0,c);break}}return $e.announce.of(`${t.state.phrase("current match")}. ${r} ${t.state.phrase("on line")} ${i.number}.`)}const DAe=$e.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ww=[Tl,Zc.low(OAe),DAe];class EI{constructor(e,n,i,s){this.state=e,this.pos=n,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=cs(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),i=Math.max(n.from,this.pos-250),s=n.text.slice(i-n.from,this.pos-n.from),a=s.search(jI(e,!1));return a<0?null:{from:i+a,to:this.pos,text:s.slice(a)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function FR(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function FAe(t){let e=Object.create(null),n=Object.create(null);for(let{label:s}of t){e[s[0]]=!0;for(let a=1;a<s.length;a++)n[s[a]]=!0}let i=FR(e)+FR(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}function IAe(t){let e=t.map(s=>typeof s=="string"?{label:s}:s),[n,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:FAe(e);return s=>{let a=s.matchBefore(i);return a||s.explicit?{from:a?a.from:s.pos,options:e,validFor:n}:null}}class IR{constructor(e,n,i,s){this.completion=e,this.source=n,this.match=i,this.score=s}}function Fc(t){return t.selection.main.from}function jI(t,e){var n;let{source:i}=t,s=e&&i[0]!="^",a=i[i.length-1]!="$";return!s&&!a?t:new RegExp(`${s?"^":""}(?:${i})${a?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const RI=Io.define();function UAe(t,e,n,i){let{main:s}=t.selection,a=n-s.from,o=i-s.from;return{...t.changeByRange(r=>{if(r!=s&&n!=i&&t.sliceDoc(r.from+a,r.from+o)!=t.sliceDoc(n,i))return{range:r};let c=t.toText(e);return{changes:{from:r.from+a,to:i==s.from?r.to:r.from+o,insert:c},range:Pe.cursor(r.from+a+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const UR=new WeakMap;function BAe(t){if(!Array.isArray(t))return t;let e=UR.get(t);return e||UR.set(t,e=IAe(t)),e}const xy=Ft.define(),Fm=Ft.define();class zAe{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n<e.length;){let i=Es(e,n),s=vo(i);this.chars.push(i);let a=e.slice(n,n+s),o=a.toUpperCase();this.folded.push(Es(o==a?a.toLowerCase():o,0)),n+=s}this.astral=e.length!=this.chars.length}ret(e,n){return this.score=e,this.matched=n,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:n,folded:i,any:s,precise:a,byWord:o}=this;if(n.length==1){let k=Es(e,0),T=vo(k),L=T==e.length?0:-100;if(k!=n[0])if(k==i[0])L+=-200;else return null;return this.ret(L,[0,T])}let r=e.indexOf(this.pattern);if(r==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let c=n.length,d=0;if(r<0){for(let k=0,T=Math.min(e.length,200);k<T&&d<c;){let L=Es(e,k);(L==n[d]||L==i[d])&&(s[d++]=k),k+=vo(L)}if(d<c)return null}let f=0,m=0,g=!1,y=0,b=-1,v=-1,x=/[a-z]/.test(e),A=!0;for(let k=0,T=Math.min(e.length,200),L=0;k<T&&m<c;){let M=Es(e,k);r<0&&(f<c&&M==n[f]&&(a[f++]=k),y<c&&(M==n[y]||M==i[y]?(y==0&&(b=k),v=k+1,y++):y=0));let O,N=M<255?M>=48&&M<=57||M>=97&&M<=122?2:M>=65&&M<=90?1:0:(O=Kk(M))!=O.toLowerCase()?1:O!=O.toUpperCase()?2:0;(!k||N==1&&x||L==0&&N!=0)&&(n[m]==M||i[m]==M&&(g=!0)?o[m++]=k:o.length&&(A=!1)),L=N,k+=vo(M)}return m==c&&o[0]==0&&A?this.result(-100+(g?-200:0),o,e):y==c&&b==0?this.ret(-200-e.length+(v==e.length?0:-100),[0,v]):r>-1?this.ret(-700-e.length,[r,r+this.pattern.length]):y==c?this.ret(-900-e.length,[b,v]):m==c?this.result(-100+(g?-200:0)+-700+(A?0:-1100),o,e):n.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,n,i){let s=[],a=0;for(let o of n){let r=o+(this.astral?vo(Es(i,o)):1);a&&s[a-1]==o?s[a-1]=r:(s[a++]=o,s[a++]=r)}return this.ret(e-i.length,s)}}class qAe{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let n=e.slice(0,this.pattern.length),i=n==this.pattern?0:n.toLowerCase()==this.folded?-200:null;return i==null?null:(this.matched=[0,n.length],this.score=i+(e.length==this.pattern.length?0:-100),this)}}const Ei=Ze.define({combine(t){return Uo(t,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:KAe,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>i=>BR(e(i),n(i)),optionClass:(e,n)=>i=>BR(e(i),n(i)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function BR(t,e){return t?e?t+" "+e:t:e}function KAe(t,e,n,i,s,a){let o=t.textDirection==qn.RTL,r=o,c=!1,d="top",f,m,g=e.left-s.left,y=s.right-e.right,b=i.right-i.left,v=i.bottom-i.top;if(r&&g<Math.min(b,y)?r=!1:!r&&y<Math.min(b,g)&&(r=!0),b<=(r?g:y))f=Math.max(s.top,Math.min(n.top,s.bottom-v))-e.top,m=Math.min(400,r?g:y);else{c=!0,m=Math.min(400,(o?e.right:s.right-e.left)-30);let k=s.bottom-e.bottom;k>=v||k>e.top?f=n.bottom-e.top:(d="bottom",f=e.bottom-n.top)}let x=(e.bottom-e.top)/a.offsetHeight,A=(e.right-e.left)/a.offsetWidth;return{style:`${d}: ${f/x}px; max-width: ${m/A}px`,class:"cm-completionInfo-"+(c?o?"left-narrow":"right-narrow":r?"left":"right")}}function HAe(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),n.type&&i.classList.add(...n.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(n,i,s,a){let o=document.createElement("span");o.className="cm-completionLabel";let r=n.displayLabel||n.label,c=0;for(let d=0;d<a.length;){let f=a[d++],m=a[d++];f>c&&o.appendChild(document.createTextNode(r.slice(c,f)));let g=o.appendChild(document.createElement("span"));g.appendChild(document.createTextNode(r.slice(f,m))),g.className="cm-completionMatchedText",c=m}return c<r.length&&o.appendChild(document.createTextNode(r.slice(c))),o},position:50},{render(n){if(!n.detail)return null;let i=document.createElement("span");return i.className="cm-completionDetail",i.textContent=n.detail,i},position:80}),e.sort((n,i)=>n.position-i.position).map(n=>n.render)}function x2(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let s=Math.floor(e/n);return{from:s*n,to:(s+1)*n}}let i=Math.floor((t-e)/n);return{from:t-(i+1)*n,to:t-i*n}}class VAe{constructor(e,n,i){this.view=e,this.stateField=n,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let s=e.state.field(n),{options:a,selected:o}=s.open,r=e.state.facet(Ei);this.optionContent=HAe(r),this.optionClass=r.optionClass,this.tooltipClass=r.tooltipClass,this.range=x2(a.length,o,r.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:d}=e.state.field(n).open;for(let f=c.target,m;f&&f!=this.dom;f=f.parentNode)if(f.nodeName=="LI"&&(m=/-(\d+)$/.exec(f.id))&&+m[1]<d.length){this.applyCompletion(e,d[+m[1]]),c.preventDefault();return}}),this.dom.addEventListener("focusout",c=>{let d=e.state.field(this.stateField,!1);d&&d.tooltip&&e.state.facet(Ei).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:Fm.of(null)})}),this.showOptions(a,s.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:a,selected:o,disabled:r}=i.open;(!s.open||s.open.options!=a)&&(this.range=x2(a.length,o,e.state.facet(Ei).maxRenderedOptions),this.showOptions(a,i.id)),this.updateSel(),r!=((n=s.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!r)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of n.split(" "))i&&this.dom.classList.add(i);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=x2(n.options.length,n.selected,this.view.state.facet(Ei).maxRenderedOptions),this.showOptions(n.options,e.id));let i=this.updateSelectedOption(n.selected);if(i){this.destroyInfo();let{completion:s}=n.options[n.selected],{info:a}=s;if(!a)return;let o=typeof a=="string"?document.createTextNode(a):a(s);if(!o)return;"then"in o?o.then(r=>{r&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(r,s)}).catch(r=>Ds(this.view.state,r,"completion info")):(this.addInfoPane(o,s),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:a}=e;i.appendChild(s),this.infoDestroy=a||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),n=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return n&&GAe(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),a=this.space;if(!a){let o=this.dom.ownerDocument.documentElement;a={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(a.bottom,n.bottom)-10||s.bottom<Math.max(a.top,n.top)+10?null:this.view.state.facet(Ei).positionInfo(this.view,n,s,i,a,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,n,i){const s=document.createElement("ul");s.id=n,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",o=>{o.target==s&&o.preventDefault()});let a=null;for(let o=i.from;o<i.to;o++){let{completion:r,match:c}=e[o],{section:d}=r;if(d){let g=typeof d=="string"?d:d.name;if(g!=a&&(o>i.from||i.from==0))if(a=g,typeof d!="string"&&d.header)s.appendChild(d.header(d));else{let y=s.appendChild(document.createElement("completion-section"));y.textContent=g}}const f=s.appendChild(document.createElement("li"));f.id=n+"-"+o,f.setAttribute("role","option");let m=this.optionClass(r);m&&(f.className=m);for(let g of this.optionContent){let y=g(r,this.view.state,this.view,c);y&&f.appendChild(y)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function WAe(t,e){return n=>new VAe(n,t,e)}function GAe(t,e){let n=t.getBoundingClientRect(),i=e.getBoundingClientRect(),s=n.height/t.offsetHeight;i.top<n.top?t.scrollTop-=(n.top-i.top)/s:i.bottom>n.bottom&&(t.scrollTop+=(i.bottom-n.bottom)/s)}function zR(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function $Ae(t,e){let n=[],i=null,s=null,a=f=>{n.push(f);let{section:m}=f.completion;if(m){i||(i=[]);let g=typeof m=="string"?m:m.name;i.some(y=>y.name==g)||i.push(typeof m=="string"?{name:g}:m)}},o=e.facet(Ei);for(let f of t)if(f.hasResult()){let m=f.result.getMatch;if(f.result.filter===!1)for(let g of f.result.options)a(new IR(g,f.source,m?m(g):[],1e9-n.length));else{let g=e.sliceDoc(f.from,f.to),y,b=o.filterStrict?new qAe(g):new zAe(g);for(let v of f.result.options)if(y=b.match(v.label)){let x=v.displayLabel?m?m(v,y.matched):[]:y.matched,A=y.score+(v.boost||0);if(a(new IR(v,f.source,x,A)),typeof v.section=="object"&&v.section.rank==="dynamic"){let{name:k}=v.section;s||(s=Object.create(null)),s[k]=Math.max(A,s[k]||-1e9)}}}}if(i){let f=Object.create(null),m=0,g=(y,b)=>(y.rank==="dynamic"&&b.rank==="dynamic"?s[b.name]-s[y.name]:0)||(typeof y.rank=="number"?y.rank:1e9)-(typeof b.rank=="number"?b.rank:1e9)||(y.name<b.name?-1:1);for(let y of i.sort(g))m-=1e5,f[y.name]=m;for(let y of n){let{section:b}=y.completion;b&&(y.score+=f[typeof b=="string"?b:b.name])}}let r=[],c=null,d=o.compareCompletions;for(let f of n.sort((m,g)=>g.score-m.score||d(m.completion,g.completion))){let m=f.completion;!c||c.label!=m.label||c.detail!=m.detail||c.type!=null&&m.type!=null&&c.type!=m.type||c.apply!=m.apply||c.boost!=m.boost?r.push(f):zR(f.completion)>zR(c)&&(r[r.length-1]=f),c=f.completion}return r}class cd{constructor(e,n,i,s,a,o){this.options=e,this.attrs=n,this.tooltip=i,this.timestamp=s,this.selected=a,this.disabled=o}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new cd(this.options,qR(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,i,s,a,o){if(s&&!o&&e.some(d=>d.isPending))return s.setDisabled();let r=$Ae(e,n);if(!r.length)return s&&e.some(d=>d.isPending)?s.setDisabled():null;let c=n.facet(Ei).selectOnOpen?0:-1;if(s&&s.selected!=c&&s.selected!=-1){let d=s.options[s.selected].completion;for(let f=0;f<r.length;f++)if(r[f].completion==d){c=f;break}}return new cd(r,qR(i,c),{pos:e.reduce((d,f)=>f.hasResult()?Math.min(d,f.from):d,1e8),create:eNe,above:a.aboveCursor},s?s.timestamp:Date.now(),c,!1)}map(e){return new cd(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new cd(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class Sy{constructor(e,n,i){this.active=e,this.id=n,this.open=i}static start(){return new Sy(JAe,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,i=n.facet(Ei),a=(i.override||n.languageDataAt("autocomplete",Fc(n)).map(BAe)).map(c=>(this.active.find(f=>f.source==c)||new xa(c,this.active.some(f=>f.state!=0)?1:0)).update(e,i));a.length==this.active.length&&a.every((c,d)=>c==this.active[d])&&(a=this.active);let o=this.open,r=e.effects.some(c=>c.is(vC));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||a.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!XAe(a,this.active)||r?o=cd.build(a,n,this.id,o,i,r):o&&o.disabled&&!a.some(c=>c.isPending)&&(o=null),!o&&a.every(c=>!c.isPending)&&a.some(c=>c.hasResult())&&(a=a.map(c=>c.hasResult()?new xa(c.source,0):c));for(let c of e.effects)c.is(FI)&&(o=o&&o.setSelected(c.value,this.id));return a==this.active&&o==this.open?this:new Sy(a,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?QAe:YAe}}function XAe(t,e){if(t==e)return!0;for(let n=0,i=0;;){for(;n<t.length&&!t[n].hasResult();)n++;for(;i<e.length&&!e[i].hasResult();)i++;let s=n==t.length,a=i==e.length;if(s||a)return s==a;if(t[n++].result!=e[i++].result)return!1}}const QAe={"aria-autocomplete":"list"},YAe={};function qR(t,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(n["aria-activedescendant"]=t+"-"+e),n}const JAe=[];function DI(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(RI);if(i&&e.activateOnCompletion(i))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class xa{constructor(e,n,i=!1){this.source=e,this.state=n,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let i=DI(e,n),s=this;(i&8||i&16&&this.touches(e))&&(s=new xa(s.source,0)),i&4&&s.state==0&&(s=new xa(this.source,1)),s=s.updateFor(e,i);for(let a of e.effects)if(a.is(xy))s=new xa(s.source,1,a.value);else if(a.is(Fm))s=new xa(s.source,0);else if(a.is(vC))for(let o of a.value)o.source==s.source&&(s=o);return s}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Fc(e.state))}}class xd extends xa{constructor(e,n,i,s,a,o){super(e,3,n),this.limit=i,this.result=s,this.from=a,this.to=o}hasResult(){return!0}updateFor(e,n){var i;if(!(n&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let a=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),r=Fc(e.state);if(r>o||!s||n&2&&(Fc(e.startState)==this.from||r<this.limit))return new xa(this.source,n&4?1:0);let c=e.changes.mapPos(this.limit);return ZAe(s.validFor,e.state,a,o)?new xd(this.source,this.explicit,c,s,a,o):s.update&&(s=s.update(s,a,o,new EI(e.state,r,!1)))?new xd(this.source,this.explicit,c,s,s.from,(i=s.to)!==null&&i!==void 0?i:Fc(e.state)):new xa(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new xd(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new xa(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function ZAe(t,e,n,i){if(!t)return!1;let s=e.sliceDoc(n,i);return typeof t=="function"?t(s,n,i,e):jI(t,!0).test(s)}const vC=Ft.define({map(t,e){return t.map(n=>n.map(e))}}),FI=Ft.define(),js=$i.define({create(){return Sy.start()},update(t,e){return t.update(e)},provide:t=>[nC.from(t,e=>e.tooltip),$e.contentAttributes.from(t,e=>e.attrs)]});function xC(t,e){const n=e.completion.apply||e.completion.label;let i=t.state.field(js).active.find(s=>s.source==e.source);return i instanceof xd?(typeof n=="string"?t.dispatch({...UAe(t.state,n,i.from,i.to),annotations:RI.of(e.completion)}):n(t,e.completion,i.from,i.to),!0):!1}const eNe=WAe(js,xC);function J_(t,e="option"){return n=>{let i=n.state.field(js,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(Ei).interactionDelay)return!1;let s=1,a;e=="page"&&(a=J8(n,i.open.tooltip))&&(s=Math.max(2,Math.floor(a.dom.offsetHeight/a.dom.querySelector("li").offsetHeight)-1));let{length:o}=i.open.options,r=i.open.selected>-1?i.open.selected+s*(t?1:-1):t?0:o-1;return r<0?r=e=="page"?0:o-1:r>=o&&(r=e=="page"?o-1:0),n.dispatch({effects:FI.of(r)}),!0}}const tNe=t=>{let e=t.state.field(js,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(Ei).interactionDelay?!1:xC(t,e.open.options[e.open.selected])},S2=t=>t.state.field(js,!1)?(t.dispatch({effects:xy.of(!0)}),!0):!1,nNe=t=>{let e=t.state.field(js,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:Fm.of(null)}),!0)};class iNe{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const sNe=50,aNe=1e3,oNe=ci.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(js).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(js),n=t.state.facet(Ei);if(!t.selectionSet&&!t.docChanged&&t.startState.field(js)==e)return;let i=t.transactions.some(a=>{let o=DI(a,n);return o&8||(a.selection||a.docChanged)&&!(o&3)});for(let a=0;a<this.running.length;a++){let o=this.running[a];if(i||o.context.abortOnDocChange&&t.docChanged||o.updates.length+t.transactions.length>sNe&&Date.now()-o.time>aNe){for(let r of o.context.abortListeners)try{r()}catch(c){Ds(this.view.state,c)}o.context.abortListeners=null,this.running.splice(a--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(a=>a.effects.some(o=>o.is(xy)))&&(this.pendingStart=!0);let s=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(a=>a.isPending&&!this.running.some(o=>o.active.source==a.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let a of t.transactions)a.isUserEvent("input.type")?this.composing=2:this.composing==2&&a.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(js);for(let n of e.active)n.isPending&&!this.running.some(i=>i.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ei).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=Fc(e),i=new EI(e,n,t.explicit,this.view),s=new iNe(t,i);this.running.push(s),Promise.resolve(t.source(i)).then(a=>{s.context.aborted||(s.done=a||null,this.scheduleAccept())},a=>{this.view.dispatch({effects:Fm.of(null)}),Ds(this.view.state,a)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ei).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(Ei),i=this.view.state.field(js);for(let s=0;s<this.running.length;s++){let a=this.running[s];if(a.done===void 0)continue;if(this.running.splice(s--,1),a.done){let r=Fc(a.updates.length?a.updates[0].startState:this.view.state),c=Math.min(r,a.done.from+(a.active.explicit?0:1)),d=new xd(a.active.source,a.active.explicit,c,a.done,a.done.from,(t=a.done.to)!==null&&t!==void 0?t:r);for(let f of a.updates)d=d.update(f,n);if(d.hasResult()){e.push(d);continue}}let o=i.active.find(r=>r.source==a.active.source);if(o&&o.isPending)if(a.done==null){let r=new xa(a.active.source,0);for(let c of a.updates)r=r.update(c,n);r.isPending||e.push(r)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:vC.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(js,!1);if(e&&e.tooltip&&this.view.state.facet(Ei).closeOnBlur){let n=e.open&&J8(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Fm.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:xy.of(!1)}),20),this.composing=0}}}),rNe=typeof navigator=="object"&&/Win/.test(navigator.platform),lNe=Zc.highest($e.domEventHandlers({keydown(t,e){let n=e.state.field(js,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(rNe&&t.altKey)||t.metaKey)return!1;let i=n.open.options[n.open.selected],s=n.active.find(o=>o.source==i.source),a=i.completion.commitCharacters||s.result.commitCharacters;return a&&a.indexOf(t.key)>-1&&xC(e,i),!1}})),cNe=$e.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Im={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Mc=Ft.define({map(t,e){let n=e.mapPos(t,-1,ps.TrackAfter);return n??void 0}}),SC=new class extends qc{};SC.startSide=1;SC.endSide=-1;const II=$i.define({create(){return fn.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=n.from&&i<=n.to})}for(let n of e.effects)n.is(Mc)&&(t=t.update({add:[SC.range(n.value,n.value+1)]}));return t}});function uNe(){return[hNe,II]}const w2="()[]{}<>«»»«[]{}";function UI(t){for(let e=0;e<w2.length;e+=2)if(w2.charCodeAt(e)==t)return w2.charAt(e+1);return Kk(t<128?t:t+1)}function BI(t,e){return t.languageDataAt("closeBrackets",e)[0]||Im}const dNe=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),hNe=$e.inputHandler.of((t,e,n,i)=>{if((dNe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let s=t.state.selection.main;if(i.length>2||i.length==2&&vo(Es(i,0))==1||e!=s.from||n!=s.to)return!1;let a=pNe(t.state,i);return a?(t.dispatch(a),!0):!1}),fNe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=BI(t,t.selection.main.head).brackets||Im.brackets,s=null,a=t.changeByRange(o=>{if(o.empty){let r=gNe(t.doc,o.head);for(let c of i)if(c==r&&Cb(t.doc,o.head)==UI(Es(c,0)))return{changes:{from:o.head-c.length,to:o.head+c.length},range:Pe.cursor(o.head-c.length)}}return{range:s=o}});return s||e(t.update(a,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},mNe=[{key:"Backspace",run:fNe}];function pNe(t,e){let n=BI(t,t.selection.main.head),i=n.brackets||Im.brackets;for(let s of i){let a=UI(Es(s,0));if(e==s)return a==s?bNe(t,s,i.indexOf(s+s+s)>-1,n):_Ne(t,s,a,n.before||Im.before);if(e==a&&zI(t,t.selection.main.from))return yNe(t,s,a)}return null}function zI(t,e){let n=!1;return t.field(II).between(0,t.doc.length,i=>{i==e&&(n=!0)}),n}function Cb(t,e){let n=t.sliceString(e,e+2);return n.slice(0,vo(Es(n,0)))}function gNe(t,e){let n=t.sliceString(e-2,e);return vo(Es(n,0))==n.length?n:n.slice(1)}function _Ne(t,e,n,i){let s=null,a=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:n,from:o.to}],effects:Mc.of(o.to+e.length),range:Pe.range(o.anchor+e.length,o.head+e.length)};let r=Cb(t.doc,o.head);return!r||/\s/.test(r)||i.indexOf(r)>-1?{changes:{insert:e+n,from:o.head},effects:Mc.of(o.head+e.length),range:Pe.cursor(o.head+e.length)}:{range:s=o}});return s?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function yNe(t,e,n){let i=null,s=t.changeByRange(a=>a.empty&&Cb(t.doc,a.head)==n?{changes:{from:a.head,to:a.head+n.length,insert:n},range:Pe.cursor(a.head+n.length)}:i={range:a});return i?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function bNe(t,e,n,i){let s=i.stringPrefixes||Im.stringPrefixes,a=null,o=t.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:e,from:r.to}],effects:Mc.of(r.to+e.length),range:Pe.range(r.anchor+e.length,r.head+e.length)};let c=r.head,d=Cb(t.doc,c),f;if(d==e){if(KR(t,c))return{changes:{insert:e+e,from:c},effects:Mc.of(c+e.length),range:Pe.cursor(c+e.length)};if(zI(t,c)){let g=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+g.length,insert:g},range:Pe.cursor(c+g.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(f=HR(t,c-2*e.length,s))>-1&&KR(t,f))return{changes:{insert:e+e+e+e,from:c},effects:Mc.of(c+e.length),range:Pe.cursor(c+e.length)};if(t.charCategorizer(c)(d)!=Gn.Word&&HR(t,c,s)>-1&&!vNe(t,c,e,s))return{changes:{insert:e+e,from:c},effects:Mc.of(c+e.length),range:Pe.cursor(c+e.length)}}return{range:a=r}});return a?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function KR(t,e){let n=cs(t).resolveInner(e+1);return n.parent&&n.from==e}function vNe(t,e,n,i){let s=cs(t).resolveInner(e,-1),a=i.reduce((o,r)=>Math.max(o,r.length),0);for(let o=0;o<5;o++){let r=t.sliceDoc(s.from,Math.min(s.to,s.from+n.length+a)),c=r.indexOf(n);if(!c||c>-1&&i.indexOf(r.slice(0,c))>-1){let f=s.firstChild;for(;f&&f.from==s.from&&f.to-f.from>n.length+c;){if(t.sliceDoc(f.to-n.length,f.to)==n)return!1;f=f.firstChild}return!0}let d=s.to==e&&s.parent;if(!d)break;s=d}return!1}function HR(t,e,n){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=Gn.Word)return e;for(let s of n){let a=e-s.length;if(t.sliceDoc(a,e)==s&&i(t.sliceDoc(a-1,a))!=Gn.Word)return a}return-1}function xNe(t={}){return[lNe,js,Ei.of(t),oNe,SNe,cNe]}const qI=[{key:"Ctrl-Space",run:S2},{mac:"Alt-`",run:S2},{mac:"Alt-i",run:S2},{key:"Escape",run:nNe},{key:"ArrowDown",run:J_(!0)},{key:"ArrowUp",run:J_(!1)},{key:"PageDown",run:J_(!0,"page")},{key:"PageUp",run:J_(!1,"page")},{key:"Enter",run:tNe}],SNe=Zc.highest(Sp.computeN([Ei],t=>t.facet(Ei).defaultKeymap?[qI]:[]));class VR{constructor(e,n,i){this.from=e,this.to=n,this.diagnostic=i}}class bc{constructor(e,n,i){this.diagnostics=e,this.panel=n,this.selected=i}static init(e,n,i){let s=i.facet(Um).markerFilter;s&&(e=s(e,i));let a=e.slice().sort((y,b)=>y.from-b.from||y.to-b.to),o=new Lr,r=[],c=0,d=i.doc.iter(),f=0,m=i.doc.length;for(let y=0;;){let b=y==a.length?null:a[y];if(!b&&!r.length)break;let v,x;if(r.length)v=c,x=r.reduce((T,L)=>Math.min(T,L.to),b&&b.from>v?b.from:1e8);else{if(v=b.from,v>m)break;x=b.to,r.push(b),y++}for(;y<a.length;){let T=a[y];if(T.from==v&&(T.to>T.from||T.to==v))r.push(T),y++,x=Math.min(T.to,x);else{x=Math.min(T.from,x);break}}x=Math.min(x,m);let A=!1;if(r.some(T=>T.from==v&&(T.to==x||x==m))&&(A=v==x,!A&&x-v<10)){let T=v-(f+d.value.length);T>0&&(d.next(T),f=v);for(let L=v;;){if(L>=x){A=!0;break}if(!d.lineBreak&&f+d.value.length>L)break;L=f+d.value.length,f+=d.value.length,d.next()}}let k=RNe(r);if(A)o.add(v,v,vt.widget({widget:new ONe(k),diagnostics:r.slice()}));else{let T=r.reduce((L,M)=>M.markClass?L+" "+M.markClass:L,"");o.add(v,x,vt.mark({class:"cm-lintRange cm-lintRange-"+k+T,diagnostics:r.slice(),inclusiveEnd:r.some(L=>L.to>x)}))}if(c=x,c==m)break;for(let T=0;T<r.length;T++)r[T].to<=c&&r.splice(T--,1)}let g=o.finish();return new bc(g,n,zd(g))}}function zd(t,e=null,n=0){let i=null;return t.between(n,1e9,(s,a,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new VR(s,a,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new VR(i.from,a,i.diagnostic)}}),i}function wNe(t,e){let n=e.pos,i=e.end||n,s=t.state.facet(Um).hideOn(t,n,i);if(s!=null)return s;let a=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(KI))||t.changes.touchesRange(a.from,Math.max(a.to,i)))}function kNe(t,e){return t.field(ta,!1)?e:e.concat(Ft.appendConfig.of(DNe))}const KI=Ft.define(),wC=Ft.define(),HI=Ft.define(),ta=$i.define({create(){return new bc(vt.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),i=null,s=t.panel;if(t.selected){let a=e.changes.mapPos(t.selected.from,1);i=zd(n,t.selected.diagnostic,a)||zd(n,null,a)}!n.size&&s&&e.state.facet(Um).autoPanel&&(s=null),t=new bc(n,s,i)}for(let n of e.effects)if(n.is(KI)){let i=e.state.facet(Um).autoPanel?n.value.length?Bm.open:null:t.panel;t=bc.init(n.value,i,e.state)}else n.is(wC)?t=new bc(t.diagnostics,n.value?Bm.open:null,t.selected):n.is(HI)&&(t=new bc(t.diagnostics,t.panel,n.value));return t},provide:t=>[Pm.from(t,e=>e.panel),$e.decorations.from(t,e=>e.diagnostics)]}),CNe=vt.mark({class:"cm-lintRange cm-lintRange-active"});function ANe(t,e,n){let{diagnostics:i}=t.state.field(ta),s,a=-1,o=-1;i.between(e-(n<0?1:0),e+(n>0?1:0),(c,d,{spec:f})=>{if(e>=c&&e<=d&&(c==d||(e>c||n>0)&&(e<d||n<0)))return s=f.diagnostics,a=c,o=d,!1});let r=t.state.facet(Um).tooltipFilter;return s&&r&&(s=r(s,t.state)),s?{pos:a,end:o,above:t.state.doc.lineAt(a).to<o,create(){return{dom:NNe(t,s)}}}:null}function NNe(t,e){return On("ul",{class:"cm-tooltip-lint"},e.map(n=>WI(t,n,!1)))}const TNe=t=>{let e=t.state.field(ta,!1);(!e||!e.panel)&&t.dispatch({effects:kNe(t.state,[wC.of(!0)])});let n=Om(t,Bm.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},WR=t=>{let e=t.state.field(ta,!1);return!e||!e.panel?!1:(t.dispatch({effects:wC.of(!1)}),!0)},MNe=t=>{let e=t.state.field(ta,!1);if(!e)return!1;let n=t.state.selection.main,i=e.diagnostics.iter(n.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==n.from&&i.to==n.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},LNe=[{key:"Mod-Shift-m",run:TNe,preventDefault:!0},{key:"F8",run:MNe}],Um=Ze.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...Uo(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:GR,tooltipFilter:GR,needsRefresh:(e,n)=>e?n?i=>e(i)||n(i):e:n,hideOn:(e,n)=>e?n?(i,s,a)=>e(i,s,a)||n(i,s,a):e:n,autoPanel:(e,n)=>e||n})}}});function GR(t,e){return t?e?(n,i)=>e(t(n,i),i):t:e}function VI(t){let e=[];if(t)e:for(let{name:n}of t){for(let i=0;i<n.length;i++){let s=n[i];if(/[a-zA-Z]/.test(s)&&!e.some(a=>a.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function WI(t,e,n){var i;let s=n?VI(e.actions):[];return On("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},On("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((a,o)=>{let r=!1,c=y=>{if(y.preventDefault(),r)return;r=!0;let b=zd(t.state.field(ta).diagnostics,e);b&&a.apply(t,b.from,b.to)},{name:d}=a,f=s[o]?d.indexOf(s[o]):-1,m=f<0?d:[d.slice(0,f),On("u",d.slice(f,f+1)),d.slice(f+1)],g=a.markClass?" "+a.markClass:"";return On("button",{type:"button",class:"cm-diagnosticAction"+g,onclick:c,onmousedown:c,"aria-label":` Action: ${d}${f<0?"":` (access key "${s[o]})"`}.`},m)}),e.source&&On("div",{class:"cm-diagnosticSource"},e.source))}class ONe extends Rr{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return On("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class $R{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=WI(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Bm{constructor(e){this.view=e,this.items=[];let n=s=>{if(s.keyCode==27)WR(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:a}=this.items[this.selectedIndex],o=VI(a.actions);for(let r=0;r<o.length;r++)if(o[r].toUpperCase().charCodeAt(0)==s.keyCode){let c=zd(this.view.state.field(ta).diagnostics,a);c&&a.actions[r].apply(e,c.from,c.to)}}else return;s.preventDefault()},i=s=>{for(let a=0;a<this.items.length;a++)this.items[a].dom.contains(s.target)&&this.moveSelection(a)};this.list=On("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:i}),this.dom=On("div",{class:"cm-panel-lint"},this.list,On("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>WR(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(ta).selected;if(!e)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==e.diagnostic)return n;return-1}update(){let{diagnostics:e,selected:n}=this.view.state.field(ta),i=0,s=!1,a=null,o=new Set;for(e.between(0,this.view.state.doc.length,(r,c,{spec:d})=>{for(let f of d.diagnostics){if(o.has(f))continue;o.add(f);let m=-1,g;for(let y=i;y<this.items.length;y++)if(this.items[y].diagnostic==f){m=y;break}m<0?(g=new $R(this.view,f),this.items.splice(i,0,g),s=!0):(g=this.items[m],m>i&&(this.items.splice(i,m-i),s=!0)),n&&g.diagnostic==n.diagnostic?g.dom.hasAttribute("aria-selected")||(g.dom.setAttribute("aria-selected","true"),a=g):g.dom.hasAttribute("aria-selected")&&g.dom.removeAttribute("aria-selected"),i++}});i<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new $R(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),a?(this.list.setAttribute("aria-activedescendant",a.id),this.view.requestMeasure({key:this,read:()=>({sel:a.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:r,panel:c})=>{let d=c.height/this.list.offsetHeight;r.top<c.top?this.list.scrollTop-=(c.top-r.top)/d:r.bottom>c.bottom&&(this.list.scrollTop+=(r.bottom-c.bottom)/d)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function n(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)n();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(ta),i=zd(n.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:HI.of(i)})}static open(e){return new Bm(e)}}function PNe(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(t)}</svg>')`}function Z_(t){return PNe(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${t}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const ENe=$e.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Z_("#d11")},".cm-lintRange-warning":{backgroundImage:Z_("orange")},".cm-lintRange-info":{backgroundImage:Z_("#999")},".cm-lintRange-hint":{backgroundImage:Z_("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function jNe(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function RNe(t){let e="hint",n=1;for(let i of t){let s=jNe(i.severity);s>n&&(n=s,e=i.severity)}return e}const DNe=[ta,$e.decorations.compute([ta],t=>{let{selected:e,panel:n}=t.field(ta);return!e||!n||e.from==e.to?vt.none:vt.set([CNe.range(e.from,e.to)])}),Axe(ANe,{hideOn:wNe}),ENe];var XR=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,i=[];e.closeBracketsKeymap!==!1&&(i=i.concat(mNe)),e.defaultKeymap!==!1&&(i=i.concat(cAe)),e.searchKeymap!==!1&&(i=i.concat(PI)),e.historyKeymap!==!1&&(i=i.concat(gCe)),e.foldKeymap!==!1&&(i=i.concat(C1e)),e.completionKeymap!==!1&&(i=i.concat(qI)),e.lintKeymap!==!1&&(i=i.concat(LNe));var s=[];return e.lineNumbers!==!1&&s.push(Fxe()),e.highlightActiveLineGutter!==!1&&s.push(Bxe()),e.highlightSpecialChars!==!1&&s.push(txe()),e.history!==!1&&s.push(rCe()),e.foldGutter!==!1&&s.push(M1e()),e.drawSelection!==!1&&s.push(Hve()),e.dropCursor!==!1&&s.push(Xve()),e.allowMultipleSelections!==!1&&s.push(ln.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&s.push(p1e()),e.syntaxHighlighting!==!1&&s.push(wF(E1e,{fallback:!0})),e.bracketMatching!==!1&&s.push(B1e()),e.closeBrackets!==!1&&s.push(uNe()),e.autocompletion!==!1&&s.push(xNe()),e.rectangularSelection!==!1&&s.push(pxe()),n!==!1&&s.push(yxe()),e.highlightActiveLine!==!1&&s.push(rxe()),e.highlightSelectionMatches!==!1&&s.push(CI()),e.tabSize&&typeof e.tabSize=="number"&&s.push(_b.of(" ".repeat(e.tabSize))),s.concat([Sp.of(i.flat())]).filter(Boolean)};const FNe="#e5c07b",QR="#e06c75",INe="#56b6c2",UNe="#ffffff",A0="#abb2bf",kw="#7d8799",BNe="#61afef",zNe="#98c379",YR="#d19a66",qNe="#c678dd",KNe="#21252b",JR="#2c313a",ZR="#282c34",k2="#353a42",HNe="#3E4451",e3="#528bff",VNe=$e.theme({"&":{color:A0,backgroundColor:ZR},".cm-content":{caretColor:e3},".cm-cursor, .cm-dropCursor":{borderLeftColor:e3},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:HNe},".cm-panels":{backgroundColor:KNe,color:A0},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:ZR,color:kw,border:"none"},".cm-activeLineGutter":{backgroundColor:JR},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:k2},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:k2,borderBottomColor:k2},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:JR,color:A0}}},{dark:!0}),WNe=Cp.define([{tag:ke.keyword,color:qNe},{tag:[ke.name,ke.deleted,ke.character,ke.propertyName,ke.macroName],color:QR},{tag:[ke.function(ke.variableName),ke.labelName],color:BNe},{tag:[ke.color,ke.constant(ke.name),ke.standard(ke.name)],color:YR},{tag:[ke.definition(ke.name),ke.separator],color:A0},{tag:[ke.typeName,ke.className,ke.number,ke.changed,ke.annotation,ke.modifier,ke.self,ke.namespace],color:FNe},{tag:[ke.operator,ke.operatorKeyword,ke.url,ke.escape,ke.regexp,ke.link,ke.special(ke.string)],color:INe},{tag:[ke.meta,ke.comment],color:kw},{tag:ke.strong,fontWeight:"bold"},{tag:ke.emphasis,fontStyle:"italic"},{tag:ke.strikethrough,textDecoration:"line-through"},{tag:ke.link,color:kw,textDecoration:"underline"},{tag:ke.heading,fontWeight:"bold",color:QR},{tag:[ke.atom,ke.bool,ke.special(ke.variableName)],color:YR},{tag:[ke.processingInstruction,ke.string,ke.inserted],color:zNe},{tag:ke.invalid,color:UNe}]),GNe=[VNe,wF(WNe)];var $Ne=$e.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),XNe=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:i=!0,readOnly:s=!1,theme:a="light",placeholder:o="",basicSetup:r=!0}=e,c=[];switch(n&&c.unshift(Sp.of([uAe])),r&&(typeof r=="boolean"?c.unshift(XR()):c.unshift(XR(r))),o&&c.unshift(dxe(o)),a){case"light":c.push($Ne);break;case"dark":c.push(GNe);break;case"none":break;default:c.push(a);break}return i===!1&&c.push($e.editable.of(!1)),s&&c.push(ln.readOnly.of(!0)),[...c]},QNe=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)});class YNe{constructor(e,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(n=>{try{n()}catch(i){console.error("TimeoutLatch callback error:",i)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class t3{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var C2=null,JNe=()=>typeof window>"u"?new t3:(C2||(C2=new t3),C2),n3=Io.define(),ZNe=200,eTe=[];function tTe(t){var{value:e,selection:n,onChange:i,onStatistics:s,onCreateEditor:a,onUpdate:o,extensions:r=eTe,autoFocus:c,theme:d="light",height:f=null,minHeight:m=null,maxHeight:g=null,width:y=null,minWidth:b=null,maxWidth:v=null,placeholder:x="",editable:A=!0,readOnly:k=!1,indentWithTab:T=!0,basicSetup:L=!0,root:M,initialState:O}=t,[N,P]=S.useState(),[E,R]=S.useState(),[z,D]=S.useState(),Q=S.useState(()=>({current:null}))[0],G=S.useState(()=>({current:null}))[0],B=$e.theme({"&":{height:f,minHeight:m,maxHeight:g,width:y,minWidth:b,maxWidth:v},"& .cm-scroller":{height:"100% !important"}}),I=$e.updateListener.of($=>{if($.docChanged&&typeof i=="function"&&!$.transactions.some(q=>q.annotation(n3))){Q.current?Q.current.reset():(Q.current=new YNe(()=>{if(G.current){var q=G.current;G.current=null,q()}Q.current=null},ZNe),JNe().add(Q.current));var X=$.state.doc,U=X.toString();i(U,$)}s&&s(QNe($))}),V=XNe({theme:d,editable:A,readOnly:k,placeholder:x,indentWithTab:T,basicSetup:L}),K=[I,B,...V];return o&&typeof o=="function"&&K.push($e.updateListener.of(o)),K=K.concat(r),S.useLayoutEffect(()=>{if(N&&!z){var $={doc:e,selection:n,extensions:K},X=O?ln.fromJSON(O.json,$,O.fields):ln.create($);if(D(X),!E){var U=new $e({state:X,parent:N,root:M});R(U),a&&a(U,X)}}return()=>{E&&(D(void 0),R(void 0))}},[N,z]),S.useEffect(()=>{t.container&&P(t.container)},[t.container]),S.useEffect(()=>()=>{E&&(E.destroy(),R(void 0)),Q.current&&(Q.current.cancel(),Q.current=null)},[E]),S.useEffect(()=>{c&&E&&E.focus()},[c,E]),S.useEffect(()=>{E&&E.dispatch({effects:Ft.reconfigure.of(K)})},[d,r,f,m,g,y,b,v,x,A,k,T,L,i,o]),S.useEffect(()=>{if(e!==void 0){var $=E?E.state.doc.toString():"";if(E&&e!==$){var X=Q.current&&!Q.current.isDone,U=()=>{E&&e!==E.state.doc.toString()&&E.dispatch({changes:{from:0,to:E.state.doc.toString().length,insert:e||""},annotations:[n3.of(!0)]})};X?G.current=U:U()}}},[e,E]),{state:z,setState:D,view:E,setView:R,container:N,setContainer:P}}var nTe=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],GI=S.forwardRef((t,e)=>{var{className:n,value:i="",selection:s,extensions:a=[],onChange:o,onStatistics:r,onCreateEditor:c,onUpdate:d,autoFocus:f,theme:m="light",height:g,minHeight:y,maxHeight:b,width:v,minWidth:x,maxWidth:A,basicSetup:k,placeholder:T,indentWithTab:L,editable:M,readOnly:O,root:N,initialState:P}=t,E=Yke(t,nTe),R=S.useRef(null),{state:z,view:D,container:Q,setContainer:G}=tTe({root:N,value:i,autoFocus:f,theme:m,height:g,minHeight:y,maxHeight:b,width:v,minWidth:x,maxWidth:A,basicSetup:k,placeholder:T,indentWithTab:L,editable:M,readOnly:O,selection:s,onChange:o,onStatistics:r,onCreateEditor:c,onUpdate:d,extensions:a,initialState:P});S.useImperativeHandle(e,()=>({editor:R.current,state:z,view:D}),[R,Q,z,D]);var B=S.useCallback(V=>{R.current=V,G(V)},[G]);if(typeof i!="string")throw new Error("value must be typeof string but got "+typeof i);var I=typeof m=="string"?"cm-theme-"+m:"cm-theme";return h.jsx("div",gw({ref:B,className:""+I+(n?" "+n:"")},E))});GI.displayName="CodeMirror";var i3={};class wy{constructor(e,n,i,s,a,o,r,c,d,f=0,m){this.p=e,this.stack=n,this.state=i,this.reducePos=s,this.pos=a,this.score=o,this.buffer=r,this.bufferBase=c,this.curContext=d,this.lookAhead=f,this.parent=m}toString(){return`[${this.stack.filter((e,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,n,i=0){let s=e.parser.context;return new wy(e,[],n,i,i,0,[],0,s?new s3(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var n;let i=e>>19,s=e&65535,{parser:a}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),r=a.dynamicPrecedence(s);if(r&&(this.score+=r),i==0){this.pushState(a.getGoto(this.state,s,!0),this.reducePos),s<a.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(s,this.reducePos);return}let c=this.stack.length-(i-1)*3-(e&262144?6:0),d=c?this.stack[c-2]:this.p.ranges[0].from,f=this.reducePos-d;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[s])===null||n===void 0)&&n.isAnonymous)&&(d==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=d,this.p.lastBigReductionSize=f));let m=c?this.stack[c-1]:0,g=this.bufferBase+this.buffer.length-m;if(s<a.minRepeatTerm||e&131072){let y=a.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,d,y,g+4,!0)}if(e&262144)this.state=this.stack[c];else{let y=this.stack[c-3];this.state=a.getGoto(y,s,!0)}for(;this.stack.length>c;)this.stack.pop();this.reduceContext(s,d)}storeNode(e,n,i,s=4,a=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,r=this.buffer.length;if(r==0&&o.parent&&(r=o.bufferBase-o.parent.bufferBase,o=o.parent),r>0&&o.buffer[r-4]==0&&o.buffer[r-1]>-1){if(n==i)return;if(o.buffer[r-2]>=n){o.buffer[r-2]=i;return}}}if(!a||this.pos==i)this.buffer.push(e,n,i,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let r=!1;for(let c=o;c>0&&this.buffer[c-2]>i;c-=4)if(this.buffer[c-1]>=0){r=!0;break}if(r)for(;o>0&&this.buffer[o-2]>i;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=n,this.buffer[o+2]=i,this.buffer[o+3]=s}}shift(e,n,i,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let a=e,{parser:o}=this.p;(s>this.pos||n<=o.maxNode)&&(this.pos=s,o.stateFlag(a,1)||(this.reducePos=s)),this.pushState(a,i),this.shiftContext(n,i),n<=o.maxNode&&this.buffer.push(n,i,s,4)}else this.pos=s,this.shiftContext(n,i),n<=this.p.parser.maxNode&&this.buffer.push(n,i,s,4)}apply(e,n,i,s){e&65536?this.reduce(e):this.shift(e,n,i,s)}useNode(e,n){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(n,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,n=e.buffer.length;for(;n>0&&e.buffer[n-2]>e.reducePos;)n-=4;let i=e.buffer.slice(n),s=e.bufferBase+n;for(;e&&s==e.bufferBase;)e=e.parent;return new wy(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,n){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,n,4),this.storeNode(0,this.pos,n,i?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(e){for(let n=new iTe(this);;){let i=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,e);if(i==0)return!1;if((i&65536)==0)return!0;n.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let s=[];for(let a=0,o;a<n.length;a+=2)(o=n[a+1])!=this.state&&this.p.parser.hasAction(o,e)&&s.push(n[a],o);if(this.stack.length<120)for(let a=0;s.length<8&&a<n.length;a+=2){let o=n[a+1];s.some((r,c)=>c&1&&r==o)||s.push(n[a],o)}n=s}let i=[];for(let s=0;s<n.length&&i.length<4;s+=2){let a=n[s+1];if(a==this.state)continue;let o=this.split();o.pushState(a,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(n[s],this.pos),o.reducePos=this.pos,o.score-=200,i.push(o)}return i}forceReduce(){let{parser:e}=this.p,n=e.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!e.validAction(this.state,n)){let i=n>>19,s=n&65535,a=this.stack.length-i*3;if(a<0||e.getGoto(this.stack[a],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;n=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:e}=this.p,n=[],i=(s,a)=>{if(!n.includes(s))return n.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let r=(o>>19)-a;if(r>1){let c=o&65535,d=this.stack.length-r*3;if(d>=0&&e.getGoto(this.stack[d],c,!1)>=0)return r<<19|65536|c}}else{let r=i(o,a+1);if(r!=null)return r}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=e.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(n)))}reduceContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(n)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let n=new s3(this.curContext.tracker,e);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class s3{constructor(e,n){this.tracker=e,this.context=n,this.hash=e.strict?e.hash(n):0}}class iTe{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let n=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=s}}class ky{constructor(e,n,i){this.stack=e,this.pos=n,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,n=e.bufferBase+e.buffer.length){return new ky(e,n,n-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new ky(this.stack,this.pos,this.index)}}function e0(t,e=Uint16Array){if(typeof t!="string")return t;let n=null;for(let i=0,s=0;i<t.length;){let a=0;for(;;){let o=t.charCodeAt(i++),r=!1;if(o==126){a=65535;break}o>=92&&o--,o>=34&&o--;let c=o-32;if(c>=46&&(c-=46,r=!0),a+=c,r)break;a*=46}n?n[s++]=a:n=new e(a)}return n}class N0{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const a3=new N0;class sTe{constructor(e,n){this.input=e,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=a3,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(e,n){let i=this.range,s=this.rangeIndex,a=this.pos+e;for(;a<i.from;){if(!s)return null;let o=this.ranges[--s];a-=i.from-o.to,i=o}for(;n<0?a>i.to:a>=i.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];a+=o.from-i.to,i=o}return a}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let n of this.ranges)if(n.to>e)return Math.max(e,n.from);return this.end}peek(e){let n=this.chunkOff+e,i,s;if(n>=0&&n<this.chunk.length)i=this.pos+e,s=this.chunk.charCodeAt(n);else{let a=this.resolveOffset(e,1);if(a==null)return-1;if(i=a,i>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let o=this.rangeIndex,r=this.range;for(;r.to<=i;)r=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>r.to&&(this.chunk2=this.chunk2.slice(0,r.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(e,n=0){let i=n?this.resolveOffset(n,-1):this.pos;if(i==null||i<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=i}acceptTokenTo(e,n){this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),n=this.pos+e.length;this.chunk=n>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,n){if(n?(this.token=n,n.start=e,n.lookAhead=e+1,n.value=n.extended=-1):this.token=a3,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,n){if(e>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,n-this.chunkPos);if(e>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,n-this.chunk2Pos);if(e>=this.range.from&&n<=this.range.to)return this.input.read(e,n);let i="";for(let s of this.ranges){if(s.from>=n)break;s.to>e&&(i+=this.input.read(Math.max(s.from,e),Math.min(s.to,n)))}return i}}class Sd{constructor(e,n){this.data=e,this.id=n}token(e,n){let{parser:i}=n.p;aTe(this.data,e,n,this.id,i.data,i.tokenPrecTable)}}Sd.prototype.contextual=Sd.prototype.fallback=Sd.prototype.extend=!1;Sd.prototype.fallback=Sd.prototype.extend=!1;class Ab{constructor(e,n={}){this.token=e,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}}function aTe(t,e,n,i,s,a){let o=0,r=1<<i,{dialect:c}=n.p.parser;e:for(;(r&t[o])!=0;){let d=t[o+1];for(let y=o+3;y<d;y+=2)if((t[y+1]&r)>0){let b=t[y];if(c.allows(b)&&(e.token.value==-1||e.token.value==b||oTe(b,e.token.value,s,a))){e.acceptToken(b);break}}let f=e.next,m=0,g=t[o+2];if(e.next<0&&g>m&&t[d+g*3-3]==65535){o=t[d+g*3-1];continue e}for(;m<g;){let y=m+g>>1,b=d+y+(y<<1),v=t[b],x=t[b+1]||65536;if(f<v)g=y;else if(f>=x)m=y+1;else{o=t[b+2],e.advance();continue e}}break}}function o3(t,e,n){for(let i=e,s;(s=t[i])!=65535;i++)if(s==n)return i-e;return-1}function oTe(t,e,n,i){let s=o3(n,i,e);return s<0||o3(n,i,t)<s}const Qs=typeof process<"u"&&i3&&/\bparse\b/.test(i3.LOG);let A2=null;function r3(t,e,n){let i=t.cursor(Pi.IncludeAnonymous);for(i.moveTo(e);;)if(!(n<0?i.childBefore(e):i.childAfter(e)))for(;;){if((n<0?i.to<e:i.from>e)&&!i.type.isError)return n<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(n<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return n<0?0:t.length}}class rTe{constructor(e,n){this.fragments=e,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?r3(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?r3(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let i=this.trees[n],s=this.index[n];if(s==i.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let a=i.children[s],o=this.start[n]+i.positions[s];if(o>e)return this.nextStart=o,null;if(a instanceof xi){if(o==e){if(o<this.safeFrom)return null;let r=o+a.length;if(r<=this.safeTo){let c=a.prop($t.lookAhead);if(!c||r+c<this.fragment.to)return a}}this.index[n]++,o+a.length>=Math.max(this.safeFrom,e)&&(this.trees.push(a),this.start.push(o),this.index.push(0))}else this.index[n]++,this.nextStart=o+a.length}}}class lTe{constructor(e,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new N0)}getActions(e){let n=0,i=null,{parser:s}=e.p,{tokenizers:a}=s,o=s.stateSlot(e.state,3),r=e.curContext?e.curContext.hash:0,c=0;for(let d=0;d<a.length;d++){if((1<<d&o)==0)continue;let f=a[d],m=this.tokens[d];if(!(i&&!f.fallback)&&((f.contextual||m.start!=e.pos||m.mask!=o||m.context!=r)&&(this.updateCachedToken(m,f,e),m.mask=o,m.context=r),m.lookAhead>m.end+25&&(c=Math.max(m.lookAhead,c)),m.value!=0)){let g=n;if(m.extended>-1&&(n=this.addActions(e,m.extended,m.end,n)),n=this.addActions(e,m.value,m.end,n),!f.extend&&(i=m,n>g))break}}for(;this.actions.length>n;)this.actions.pop();return c&&e.setLookAhead(c),!i&&e.pos==this.stream.end&&(i=new N0,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,n=this.addActions(e,i.value,i.end,n)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let n=new N0,{pos:i,p:s}=e;return n.start=i,n.end=Math.min(i+1,s.stream.end),n.value=i==s.stream.end?s.parser.eofTerm:0,n}updateCachedToken(e,n,i){let s=this.stream.clipPos(i.pos);if(n.token(this.stream.reset(s,e),i),e.value>-1){let{parser:a}=i.p;for(let o=0;o<a.specialized.length;o++)if(a.specialized[o]==e.value){let r=a.specializers[o](this.stream.read(e.start,e.end),i);if(r>=0&&i.p.parser.dialect.allows(r>>1)){(r&1)==0?e.value=r>>1:e.extended=r>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,n,i,s){for(let a=0;a<s;a+=3)if(this.actions[a]==e)return s;return this.actions[s++]=e,this.actions[s++]=n,this.actions[s++]=i,s}addActions(e,n,i,s){let{state:a}=e,{parser:o}=e.p,{data:r}=o;for(let c=0;c<2;c++)for(let d=o.stateSlot(a,c?2:1);;d+=3){if(r[d]==65535)if(r[d+1]==1)d=yr(r,d+2);else{s==0&&r[d+1]==2&&(s=this.putAction(yr(r,d+2),n,i,s));break}r[d]==n&&(s=this.putAction(yr(r,d+1),n,i,s))}return s}}class cTe{constructor(e,n,i,s){this.parser=e,this.input=n,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new sTe(n,s),this.tokens=new lTe(e,this.stream),this.topTerm=e.top[1];let{from:a}=s[0];this.stacks=[wy.start(this,e.top[0],a)],this.fragments=i.length&&this.stream.end-a>e.bufferLength*4?new rTe(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,n=this.minStackPos,i=this.stacks=[],s,a;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let r=e[o];for(;;){if(this.tokens.mainToken=null,r.pos>n)i.push(r);else{if(this.advanceStack(r,i,e))continue;{s||(s=[],a=[]),s.push(r);let c=this.tokens.getMainToken(r);a.push(c.value,c.end)}}break}}if(!i.length){let o=s&&hTe(s);if(o)return Qs&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Qs&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,a,i);if(o)return Qs&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(i.length>o)for(i.sort((r,c)=>c.score-r.score);i.length>o;)i.pop();i.some(r=>r.reducePos>n)&&this.recovering--}else if(i.length>1){e:for(let o=0;o<i.length-1;o++){let r=i[o];for(let c=o+1;c<i.length;c++){let d=i[c];if(r.sameState(d)||r.buffer.length>500&&d.buffer.length>500)if((r.score-d.score||r.buffer.length-d.buffer.length)>0)i.splice(c--,1);else{i.splice(o--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let o=1;o<i.length;o++)i[o].pos<this.minStackPos&&(this.minStackPos=i[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,n,i){let s=e.pos,{parser:a}=this,o=Qs?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let d=e.curContext&&e.curContext.tracker.strict,f=d?e.curContext.hash:0;for(let m=this.fragments.nodeAt(s);m;){let g=this.parser.nodeSet.types[m.type.id]==m.type?a.getGoto(e.state,m.type.id):-1;if(g>-1&&m.length&&(!d||(m.prop($t.contextHash)||0)==f))return e.useNode(m,g),Qs&&console.log(o+this.stackID(e)+` (via reuse of ${a.getName(m.type.id)})`),!0;if(!(m instanceof xi)||m.children.length==0||m.positions[0]>0)break;let y=m.children[0];if(y instanceof xi&&m.positions[0]==0)m=y;else break}}let r=a.stateSlot(e.state,4);if(r>0)return e.reduce(r),Qs&&console.log(o+this.stackID(e)+` (via always-reduce ${a.getName(r&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let c=this.tokens.getActions(e);for(let d=0;d<c.length;){let f=c[d++],m=c[d++],g=c[d++],y=d==c.length||!i,b=y?e:e.split(),v=this.tokens.mainToken;if(b.apply(f,m,v?v.start:b.pos,g),Qs&&console.log(o+this.stackID(b)+` (via ${(f&65536)==0?"shift":`reduce of ${a.getName(f&65535)}`} for ${a.getName(m)} @ ${s}${b==e?"":", split"})`),y)return!0;b.pos>s?n.push(b):i.push(b)}return!1}advanceFully(e,n){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return l3(e,n),!0}}runRecovery(e,n,i){let s=null,a=!1;for(let o=0;o<e.length;o++){let r=e[o],c=n[o<<1],d=n[(o<<1)+1],f=Qs?this.stackID(r)+" -> ":"";if(r.deadEnd&&(a||(a=!0,r.restart(),Qs&&console.log(f+this.stackID(r)+" (restarted)"),this.advanceFully(r,i))))continue;let m=r.split(),g=f;for(let y=0;y<10&&m.forceReduce()&&(Qs&&console.log(g+this.stackID(m)+" (via force-reduce)"),!this.advanceFully(m,i));y++)Qs&&(g=this.stackID(m)+" -> ");for(let y of r.recoverByInsert(c))Qs&&console.log(f+this.stackID(y)+" (via recover-insert)"),this.advanceFully(y,i);this.stream.end>r.pos?(d==r.pos&&(d++,c=0),r.recoverByDelete(c,d),Qs&&console.log(f+this.stackID(r)+` (via recover-delete ${this.parser.getName(c)})`),l3(r,i)):(!s||s.score<r.score)&&(s=r)}return s}stackToTree(e){return e.close(),xi.build({buffer:ky.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let n=(A2||(A2=new WeakMap)).get(e);return n||A2.set(e,n=String.fromCodePoint(this.nextStackID++)),n+e}}function l3(t,e){for(let n=0;n<e.length;n++){let i=e[n];if(i.pos==t.pos&&i.sameState(t)){e[n].score<t.score&&(e[n]=t);return}}e.push(t)}class uTe{constructor(e,n,i){this.source=e,this.flags=n,this.disabled=i}allows(e){return!this.disabled||this.disabled[e]==0}}const N2=t=>t;class dTe{constructor(e){this.start=e.start,this.shift=e.shift||N2,this.reduce=e.reduce||N2,this.reuse=e.reuse||N2,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Cy extends oF{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let n=e.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let r=0;r<e.repeatNodeCount;r++)n.push("");let i=Object.keys(e.topRules).map(r=>e.topRules[r][1]),s=[];for(let r=0;r<n.length;r++)s.push([]);function a(r,c,d){s[r].push([c,c.deserialize(String(d))])}if(e.nodeProps)for(let r of e.nodeProps){let c=r[0];typeof c=="string"&&(c=$t[c]);for(let d=1;d<r.length;){let f=r[d++];if(f>=0)a(f,c,r[d++]);else{let m=r[d+-f];for(let g=-f;g>0;g--)a(r[d++],c,m);d++}}}this.nodeSet=new iC(n.map((r,c)=>zs.define({name:c>=this.minRepeatTerm?void 0:r,id:c,props:s[c],top:i.indexOf(c)>-1,error:c==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(c)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=nF;let o=e0(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let r=0;r<this.specializerSpecs.length;r++)this.specialized[r]=this.specializerSpecs[r].term;this.specializers=this.specializerSpecs.map(c3),this.states=e0(e.states,Uint32Array),this.data=e0(e.stateData),this.goto=e0(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(r=>typeof r=="number"?new Sd(o,r):r),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,n,i){let s=new cTe(this,e,n,i);for(let a of this.wrappers)s=a(s,e,n,i);return s}getGoto(e,n,i=!1){let s=this.goto;if(n>=s[0])return-1;for(let a=s[n+1];;){let o=s[a++],r=o&1,c=s[a++];if(r&&i)return c;for(let d=a+(o>>1);a<d;a++)if(s[a]==e)return c;if(r)return-1}}hasAction(e,n){let i=this.data;for(let s=0;s<2;s++)for(let a=this.stateSlot(e,s?2:1),o;;a+=3){if((o=i[a])==65535)if(i[a+1]==1)o=i[a=yr(i,a+2)];else{if(i[a+1]==2)return yr(i,a+2);break}if(o==n||o==0)return yr(i,a+1)}return 0}stateSlot(e,n){return this.states[e*6+n]}stateFlag(e,n){return(this.stateSlot(e,0)&n)>0}validAction(e,n){return!!this.allActions(e,i=>i==n?!0:null)}allActions(e,n){let i=this.stateSlot(e,4),s=i?n(i):void 0;for(let a=this.stateSlot(e,1);s==null;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=yr(this.data,a+2);else break;s=n(yr(this.data,a+1))}return s}nextStates(e){let n=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=yr(this.data,i+2);else break;if((this.data[i+2]&1)==0){let s=this.data[i+1];n.some((a,o)=>o&1&&a==s)||n.push(this.data[i],s)}}return n}configure(e){let n=Object.assign(Object.create(Cy.prototype),this);if(e.props&&(n.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);n.top=i}return e.tokenizers&&(n.tokenizers=this.tokenizers.map(i=>{let s=e.tokenizers.find(a=>a.from==i);return s?s.to:i})),e.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((i,s)=>{let a=e.specializers.find(r=>r.from==i.external);if(!a)return i;let o=Object.assign(Object.assign({},i),{external:a.to});return n.specializers[s]=c3(o),o})),e.contextTracker&&(n.context=e.contextTracker),e.dialect&&(n.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(n.strict=e.strict),e.wrap&&(n.wrappers=n.wrappers.concat(e.wrap)),e.bufferLength!=null&&(n.bufferLength=e.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let n=this.dynamicPrecedences;return n==null?0:n[e]||0}parseDialect(e){let n=Object.keys(this.dialects),i=n.map(()=>!1);if(e)for(let a of e.split(" ")){let o=n.indexOf(a);o>=0&&(i[o]=!0)}let s=null;for(let a=0;a<n.length;a++)if(!i[a])for(let o=this.dialects[n[a]],r;(r=this.data[o++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[r]=1;return new uTe(e,i,s)}static deserialize(e){return new Cy(e)}}function yr(t,e){return t[e]|t[e+1]<<16}function hTe(t){let e=null;for(let n of t){let i=n.p.stoppedAt;(n.pos==n.p.stream.end||i!=null&&n.pos>i)&&n.p.parser.stateFlag(n.state,2)&&(!e||e.score<n.score)&&(e=n)}return e}function c3(t){if(t.external){let e=t.extend?1:0;return(n,i)=>t.external(n,i)<<1|e}return t.get}const Qu=63,u3=64,fTe=1,mTe=2,$I=3,pTe=4,XI=5,gTe=6,_Te=7,QI=65,yTe=66,bTe=8,vTe=9,xTe=10,STe=11,wTe=12,YI=13,kTe=19,CTe=20,ATe=29,NTe=33,TTe=34,MTe=47,LTe=0,kC=1,Cw=2,zm=3,Aw=4;class vc{constructor(e,n,i){this.parent=e,this.depth=n,this.type=i,this.hash=(e?e.hash+e.hash<<8:0)+n+(n<<4)+i}}vc.top=new vc(null,-1,LTe);function cm(t,e){for(let n=0,i=e-t.pos-1;;i--,n++){let s=t.peek(i);if(Er(s)||s==-1)return n}}function Nw(t){return t==32||t==9}function Er(t){return t==10||t==13}function JI(t){return Nw(t)||Er(t)}function Lc(t){return t<0||JI(t)}const OTe=new dTe({start:vc.top,reduce(t,e){return t.type==zm&&(e==CTe||e==TTe)?t.parent:t},shift(t,e,n,i){if(e==$I)return new vc(t,cm(i,i.pos),kC);if(e==QI||e==XI)return new vc(t,cm(i,i.pos),Cw);if(e==Qu)return t.parent;if(e==kTe||e==NTe)return new vc(t,0,zm);if(e==YI&&t.type==Aw)return t.parent;if(e==MTe){let s=/[1-9]/.exec(i.read(i.pos,n.pos));if(s)return new vc(t,t.depth+ +s[0],Aw)}return t},hash(t){return t.hash}});function qd(t,e,n=0){return t.peek(n)==e&&t.peek(n+1)==e&&t.peek(n+2)==e&&Lc(t.peek(n+3))}const PTe=new Ab((t,e)=>{if(t.next==-1&&e.canShift(u3))return t.acceptToken(u3);let n=t.peek(-1);if((Er(n)||n<0)&&e.context.type!=zm){if(qd(t,45))if(e.canShift(Qu))t.acceptToken(Qu);else return t.acceptToken(fTe,3);if(qd(t,46))if(e.canShift(Qu))t.acceptToken(Qu);else return t.acceptToken(mTe,3);let i=0;for(;t.next==32;)i++,t.advance();(i<e.context.depth||i==e.context.depth&&e.context.type==kC&&(t.next!=45||!Lc(t.peek(1))))&&t.next!=-1&&!Er(t.next)&&t.next!=35&&t.acceptToken(Qu,-i)}},{contextual:!0}),ETe=new Ab((t,e)=>{if(e.context.type==zm){t.next==63&&(t.advance(),Lc(t.next)&&t.acceptToken(_Te));return}if(t.next==45)t.advance(),Lc(t.next)&&t.acceptToken(e.context.type==kC&&e.context.depth==cm(t,t.pos-1)?pTe:$I);else if(t.next==63)t.advance(),Lc(t.next)&&t.acceptToken(e.context.type==Cw&&e.context.depth==cm(t,t.pos-1)?gTe:XI);else{let n=t.pos;for(;;)if(Nw(t.next)){if(t.pos==n)return;t.advance()}else if(t.next==33)ZI(t);else if(t.next==38)Tw(t);else if(t.next==42){Tw(t);break}else if(t.next==39||t.next==34){if(CC(t,!0))break;return}else if(t.next==91||t.next==123){if(!RTe(t))return;break}else{eU(t,!0,!1,0);break}for(;Nw(t.next);)t.advance();if(t.next==58){if(t.pos==n&&e.canShift(ATe))return;let i=t.peek(1);Lc(i)&&t.acceptTokenTo(e.context.type==Cw&&e.context.depth==cm(t,n)?yTe:QI,n)}}},{contextual:!0});function jTe(t){return t>32&&t<127&&t!=34&&t!=37&&t!=44&&t!=60&&t!=62&&t!=92&&t!=94&&t!=96&&t!=123&&t!=124&&t!=125}function d3(t){return t>=48&&t<=57||t>=97&&t<=102||t>=65&&t<=70}function h3(t,e){return t.next==37?(t.advance(),d3(t.next)&&t.advance(),d3(t.next)&&t.advance(),!0):jTe(t.next)||e&&t.next==44?(t.advance(),!0):!1}function ZI(t){if(t.advance(),t.next==60){for(t.advance();;)if(!h3(t,!0)){t.next==62&&t.advance();break}}else for(;h3(t,!1););}function Tw(t){for(t.advance();!Lc(t.next)&&Ay(t.tag)!="f";)t.advance()}function CC(t,e){let n=t.next,i=!1,s=t.pos;for(t.advance();;){let a=t.next;if(a<0)break;if(t.advance(),a==n)if(a==39)if(t.next==39)t.advance();else break;else break;else if(a==92&&n==34)t.next>=0&&t.advance();else if(Er(a)){if(e)return!1;i=!0}else if(e&&t.pos>=s+1024)return!1}return!i}function RTe(t){for(let e=[],n=t.pos+1024;;)if(t.next==91||t.next==123)e.push(t.next),t.advance();else if(t.next==39||t.next==34){if(!CC(t,!0))return!1}else if(t.next==93||t.next==125){if(e[e.length-1]!=t.next-2)return!1;if(e.pop(),t.advance(),!e.length)return!0}else{if(t.next<0||t.pos>n||Er(t.next))return!1;t.advance()}}const DTe="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function Ay(t){return t<33?"u":t>125?"s":DTe[t-33]}function T2(t,e){let n=Ay(t);return n!="u"&&!(e&&n=="f")}function eU(t,e,n,i){if(Ay(t.next)=="s"||(t.next==63||t.next==58||t.next==45)&&T2(t.peek(1),n))t.advance();else return!1;let s=t.pos;for(;;){let a=t.next,o=0,r=i+1;for(;JI(a);){if(Er(a)){if(e)return!1;r=0}else r++;a=t.peek(++o)}if(!(a>=0&&(a==58?T2(t.peek(o+1),n):a==35?t.peek(o-1)!=32:T2(a,n)))||!n&&r<=i||r==0&&!n&&(qd(t,45,o)||qd(t,46,o)))break;if(e&&Ay(a)=="f")return!1;for(let d=o;d>=0;d--)t.advance();if(e&&t.pos>s+1024)return!1}return!0}const FTe=new Ab((t,e)=>{if(t.next==33)ZI(t),t.acceptToken(wTe);else if(t.next==38||t.next==42){let n=t.next==38?xTe:STe;Tw(t),t.acceptToken(n)}else t.next==39||t.next==34?(CC(t,!1),t.acceptToken(vTe)):eU(t,!1,e.context.type==zm,e.context.depth)&&t.acceptToken(bTe)}),ITe=new Ab((t,e)=>{let n=e.context.type==Aw?e.context.depth:-1,i=t.pos;e:for(;;){let s=0,a=t.next;for(;a==32;)a=t.peek(++s);if(!s&&(qd(t,45,s)||qd(t,46,s))||!Er(a)&&(n<0&&(n=Math.max(e.context.depth+1,s)),s<n))break;for(;;){if(t.next<0)break e;let o=Er(t.next);if(t.advance(),o)continue e;i=t.pos}}t.acceptTokenTo(YI,i)}),UTe=rF({DirectiveName:ke.keyword,DirectiveContent:ke.attributeValue,"DirectiveEnd DocEnd":ke.meta,QuotedLiteral:ke.string,BlockLiteralHeader:ke.special(ke.string),BlockLiteralContent:ke.content,Literal:ke.content,"Key/Literal Key/QuotedLiteral":ke.definition(ke.propertyName),"Anchor Alias":ke.labelName,Tag:ke.typeName,Comment:ke.lineComment,": , -":ke.separator,"?":ke.punctuation,"[ ]":ke.squareBracket,"{ }":ke.brace}),BTe=Cy.deserialize({version:14,states:"5lQ!ZQgOOO#PQfO'#CpO#uQfO'#DOOOQR'#Dv'#DvO$qQgO'#DRO%gQdO'#DUO%nQgO'#DUO&ROaO'#D[OOQR'#Du'#DuO&{QgO'#D^O'rQgO'#D`OOQR'#Dt'#DtO(iOqO'#DbOOQP'#Dj'#DjO(zQaO'#CmO)YQgO'#CmOOQP'#Cm'#CmQ)jQaOOQ)uQgOOQ]QgOOO*PQdO'#CrO*nQdO'#CtOOQO'#Dw'#DwO+]Q`O'#CxO+hQdO'#CwO+rQ`O'#CwOOQO'#Cv'#CvO+wQdO'#CvOOQO'#Cq'#CqO,UQ`O,59[O,^QfO,59[OOQR,59[,59[OOQO'#Cx'#CxO,eQ`O'#DPO,pQdO'#DPOOQO'#Dx'#DxO,zQdO'#DxO-XQ`O,59jO-aQfO,59jOOQR,59j,59jOOQR'#DS'#DSO-hQcO,59mO-sQgO'#DVO.TQ`O'#DVO.YQcO,59pOOQR'#DX'#DXO#|QfO'#DWO.hQcO'#DWOOQR,59v,59vO.yOWO,59vO/OOaO,59vO/WOaO,59vO/cQgO'#D_OOQR,59x,59xO0VQgO'#DaOOQR,59z,59zOOQP,59|,59|O0yOaO,59|O1ROaO,59|O1aOqO,59|OOQP-E7h-E7hO1oQgO,59XOOQP,59X,59XO2PQaO'#DeO2_QgO'#DeO2oQgO'#DkOOQP'#Dk'#DkQ)jQaOOO3PQdO'#CsOOQO,59^,59^O3kQdO'#CuOOQO,59`,59`OOQO,59c,59cO4VQdO,59cO4aQdO'#CzO4kQ`O'#CzOOQO,59b,59bOOQU,5:Q,5:QOOQR1G.v1G.vO4pQ`O1G.vOOQU-E7d-E7dO4xQdO,59kOOQO,59k,59kO5SQdO'#DQO5^Q`O'#DQOOQO,5:d,5:dOOQU,5:R,5:ROOQR1G/U1G/UO5cQ`O1G/UOOQU-E7e-E7eO5kQgO'#DhO5xQcO1G/XOOQR1G/X1G/XOOQR,59q,59qO6TQgO,59qO6eQdO'#DiO6lQgO'#DiO7PQcO1G/[OOQR1G/[1G/[OOQR,59r,59rO#|QfO,59rOOQR1G/b1G/bO7_OWO1G/bO7dOaO1G/bOOQR,59y,59yOOQR,59{,59{OOQP1G/h1G/hO7lOaO1G/hO7tOaO1G/hO8POaO1G/hOOQP1G.s1G.sO8_QgO,5:POOQP,5:P,5:POOQP,5:V,5:VOOQP-E7i-E7iOOQO,59_,59_OOQO,59a,59aOOQO1G.}1G.}OOQO,59f,59fO8oQdO,59fOOQR7+$b7+$bP,XQ`O'#DfOOQO1G/V1G/VOOQO,59l,59lO8yQdO,59lOOQR7+$p7+$pP9TQ`O'#DgOOQR'#DT'#DTOOQR,5:S,5:SOOQR-E7f-E7fOOQR7+$s7+$sOOQR1G/]1G/]O9YQgO'#DYO9jQ`O'#DYOOQR,5:T,5:TO#|QfO'#DZO9oQcO'#DZOOQR-E7g-E7gOOQR7+$v7+$vOOQR1G/^1G/^OOQR7+$|7+$|O:QOWO7+$|OOQP7+%S7+%SO:VOaO7+%SO:_OaO7+%SOOQP1G/k1G/kOOQO1G/Q1G/QOOQO1G/W1G/WOOQR,59t,59tO:jQgO,59tOOQR,59u,59uO#|QfO,59uOOQR<<Hh<<HhOOQP<<Hn<<HnO:zOaO<<HnOOQR1G/`1G/`OOQR1G/a1G/aOOQPAN>YAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:OTe,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[UTe],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[PTe,ETe,FTe,ITe,0,1],topRules:{Stream:[0,15]},tokenPrec:0}),zTe=uy.define({name:"yaml",parser:BTe.configure({props:[dF.add({Stream:t=>{for(let e=t.node.resolve(t.pos,-1);e&&e.to>=t.pos;e=e.parent){if(e.name=="BlockLiteralContent"&&e.from<e.to)return t.baseIndentFor(e);if(e.name=="BlockLiteral")return t.baseIndentFor(e)+t.unit;if(e.name=="BlockSequence"||e.name=="BlockMapping")return t.column(e.from,1);if(e.name=="QuotedLiteral")return null;if(e.name=="Literal"){let n=t.column(e.from,1);if(n==t.lineIndent(e.from,1))return n;if(e.to>t.pos)return null}}return null},FlowMapping:tR({closing:"}"}),FlowSequence:tR({closing:"]"})}),mF.add({"FlowMapping FlowSequence":_1e,"Item Pair BlockLiteral":(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});function qTe(){return new o1e(zTe)}function KTe({value:t,onChange:e,editorRef:n,theme:i,editable:s,placeholder:a}){const o=S.useMemo(()=>[qTe(),kAe(),CI(),Sp.of(PI)],[]);return h.jsx(GI,{ref:n,value:t,onChange:e,extensions:o,theme:i,editable:s,placeholder:a,height:"100%",style:{height:"100%"},basicSetup:{lineNumbers:!0,highlightActiveLineGutter:!0,highlightActiveLine:!0,foldGutter:!0,dropCursor:!0,allowMultipleSelections:!0,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!1,rectangularSelection:!0,crosshairCursor:!1,highlightSelectionMatches:!0,closeBracketsKeymap:!0,searchKeymap:!0,foldKeymap:!0,completionKeymap:!1,lintKeymap:!0}})}const HTe=Object.freeze(Object.defineProperty({__proto__:null,default:KTe},Symbol.toStringTag,{value:"Module"}));</script>
|
||
<style rel="stylesheet" crossorigin>*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#root{height:100%;width:100%}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--bg-secondary: #faf9f5;--bg-primary: #f0eee8;--bg-tertiary: #e9e6df;--bg-hover: var(--bg-tertiary);--bg-quinary: #f6f4ee;--bg-error-light: rgba(198, 87, 70, .1);--floating-surface: #fffdf9;--floating-border: #d8d3ca;--floating-shadow: 0 12px 26px rgba(0, 0, 0, .14);--text-primary: #2d2a26;--text-secondary: #6d6760;--text-tertiary: #a29c95;--text-quaternary: #c0bab3;--text-muted: var(--text-tertiary);--border-color: #e3e1db;--border-secondary: var(--border-color);--border-primary: #d5d2cb;--border-hover: #cecac4;--primary-color: #8b8680;--primary-hover: #7f7a74;--primary-active: #726d67;--primary-contrast: #ffffff;--success-color: #10b981;--quota-medium-color: #e0aa14;--warning-color: #c65746;--error-color: #c65746;--danger-color: var(--error-color);--info-color: var(--primary-color);--warning-bg: rgba(198, 87, 70, .12);--warning-border: rgba(198, 87, 70, .35);--warning-text: var(--warning-color);--success-badge-bg: #d1fae5;--success-badge-text: #065f46;--success-badge-border: #6ee7b7;--failure-badge-bg: rgba(198, 87, 70, .14);--failure-badge-text: #8a3a30;--failure-badge-border: rgba(198, 87, 70, .35);--count-badge-bg: rgba(139, 134, 128, .18);--count-badge-text: var(--primary-active);--shadow: 0 1px 2px 0 rgb(0 0 0 / .08);--shadow-lg: 0 10px 18px -3px rgb(0 0 0 / .1);--radius-md: 8px;--accent-tertiary: var(--bg-tertiary);--glass-blur: 12px;--glass-backdrop-filter: blur(var(--glass-blur));--glass-filter: blur(var(--glass-blur));--glass-bg: color-mix(in srgb, var(--bg-primary) 82%, transparent);--glass-bg-secondary: color-mix(in srgb, var(--bg-secondary) 82%, transparent);--glass-border: color-mix(in srgb, var(--border-color) 60%, transparent)}[data-theme=white]{--bg-secondary: #ffffff;--bg-primary: #ffffff;--bg-tertiary: #f6f6f6;--bg-hover: var(--bg-tertiary);--bg-quinary: #ffffff;--bg-error-light: rgba(198, 87, 70, .08);--floating-surface: #ffffff;--floating-border: #d9d9d9;--floating-shadow: 0 12px 26px rgba(0, 0, 0, .12);--text-primary: #2d2a26;--text-secondary: #6d6760;--text-tertiary: #a29c95;--text-quaternary: #c0bab3;--text-muted: var(--text-tertiary);--border-color: #e5e5e5;--border-secondary: var(--border-color);--border-primary: #d9d9d9;--border-hover: #cccccc;--primary-color: #8b8680;--primary-hover: #7f7a74;--primary-active: #726d67;--primary-contrast: #ffffff;--success-color: #10b981;--quota-medium-color: #e0aa14;--warning-color: #c65746;--error-color: #c65746;--danger-color: var(--error-color);--info-color: var(--primary-color);--warning-bg: rgba(198, 87, 70, .12);--warning-border: rgba(198, 87, 70, .35);--warning-text: var(--warning-color);--success-badge-bg: #d1fae5;--success-badge-text: #065f46;--success-badge-border: #6ee7b7;--failure-badge-bg: rgba(198, 87, 70, .14);--failure-badge-text: #8a3a30;--failure-badge-border: rgba(198, 87, 70, .35);--count-badge-bg: rgba(139, 134, 128, .18);--count-badge-text: var(--primary-active);--shadow: 0 1px 2px 0 rgb(0 0 0 / .08);--shadow-lg: 0 10px 18px -3px rgb(0 0 0 / .1);--radius-md: 8px;--accent-tertiary: var(--bg-tertiary)}[data-theme=dark]{--bg-secondary: #151412;--bg-primary: #1d1b18;--bg-tertiary: #262320;--bg-hover: #2e2a26;--bg-quinary: #191714;--bg-error-light: rgba(198, 87, 70, .18);--floating-surface: #2a2723;--floating-border: #4a443d;--floating-shadow: 0 14px 30px rgba(0, 0, 0, .4);--text-primary: #f6f4f1;--text-secondary: #c9c3bb;--text-tertiary: #9c958d;--text-quaternary: #6f6962;--text-muted: var(--text-tertiary);--border-color: #3a3530;--border-secondary: var(--border-color);--border-primary: #4a453f;--border-hover: #5a544d;--primary-color: #8b8680;--primary-hover: #9a948e;--primary-active: #a6a099;--primary-contrast: #ffffff;--success-color: #10b981;--quota-medium-color: #ffd862;--warning-color: #c65746;--error-color: #c65746;--danger-color: var(--error-color);--info-color: var(--primary-color);--warning-bg: rgba(198, 87, 70, .22);--warning-border: rgba(198, 87, 70, .45);--warning-text: #f1b0a6;--success-badge-bg: rgba(6, 78, 59, .3);--success-badge-text: #6ee7b7;--success-badge-border: #059669;--failure-badge-bg: rgba(198, 87, 70, .24);--failure-badge-text: #f1b0a6;--failure-badge-border: rgba(198, 87, 70, .5);--count-badge-bg: rgba(139, 134, 128, .28);--count-badge-text: var(--primary-active);--shadow: 0 1px 3px 0 rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .3);--radius-md: 8px;--accent-tertiary: var(--bg-tertiary);--glass-border: color-mix(in srgb, var(--border-color) 55%, transparent)}@media(max-width:768px),(prefers-reduced-motion:reduce),(prefers-reduced-transparency:reduce){:root{--glass-backdrop-filter: none;--glass-filter: none;--glass-bg: var(--bg-primary);--glass-bg-secondary: var(--bg-secondary);--glass-border: var(--border-color)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer;transition:all .15s ease;background-color:var(--bg-secondary);color:var(--text-primary)}.btn.btn-primary{background-color:var(--primary-color);color:var(--primary-contrast, #fff);border-color:var(--primary-color)}.btn.btn-primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.btn.btn-secondary{background-color:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}.btn.btn-secondary:hover{background-color:var(--bg-hover, var(--bg-tertiary));border-color:var(--border-hover)}.btn.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.btn-ghost:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn.btn-danger{background-color:#c65746;border-color:#c65746;color:#fff}.btn.btn-danger:hover{background-color:#b94a39}.btn.btn-full{width:100%}.btn.btn-sm{padding:8px 10px;font-size:14px}.btn:disabled{opacity:.6;cursor:not-allowed}:global([data-theme=dark]) .btn{color:#fff}:global([data-theme=dark]) .btn.btn-secondary,:global([data-theme=dark]) .btn.btn-ghost{color:#fff}.input,textarea{width:100%;border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;background-color:var(--bg-secondary);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}.input:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b86802e}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.form-group label{font-weight:600;color:var(--text-primary)}.form-group .hint{color:var(--text-secondary);font-size:13px}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow);padding:24px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:16px}.card-header>*{min-width:0}.card-header .title{flex:1 1 auto;min-width:0;font-size:18px;font-weight:700;color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:13px;border:1px solid var(--border-color);margin-bottom:16px}.status-badge+*{display:block}.status-badge.success{color:#10b981;border-color:#10b98159;background:#10b98114}.status-badge.warning,.status-badge.error{color:#c65746;border-color:#c6574659;background:#c6574614}.status-badge.muted{color:var(--text-secondary)}.notification-container{position:fixed;top:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:3000;max-width:360px}@keyframes notification-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes notification-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.notification{padding:16px;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);display:flex;justify-content:space-between;align-items:center;gap:8px}.notification.entering{animation:notification-enter .3s ease-out forwards}.notification.exiting{animation:notification-exit .3s ease-in forwards}.notification.success{border-color:#10b98166}.notification.warning,.notification.error{border-color:#c6574666}.notification .message{flex:1;font-weight:500}.notification .close-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:none;color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:color .15s ease,background-color .15s ease}.notification .close-btn svg{display:block}.notification .close-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.switch{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch input{width:0;height:0;opacity:0;position:absolute}.switch .track{width:44px;height:24px;background:var(--border-color);border-radius:9999px;position:relative;transition:background .15s ease}.switch .thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:9999px;box-shadow:0 1px 2px #0000000d;transition:transform .15s ease}.switch input:checked+.track{background:var(--primary-color)}.switch input:checked+.track .thumb{transform:translate(20px)}.switch .label{color:var(--text-primary);font-weight:600}.switch-label-left .label{order:-1}.pill{padding:4px 10px;border-radius:9999px;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);font-size:12px}.loading-spinner{border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:spin .8s linear infinite}@supports (color: color-mix(in srgb,currentColor 22%,transparent)){.loading-spinner{border-color:color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentColor}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:2000;padding:24px}.modal-overlay.modal-overlay-entering{animation:modal-overlay-fade-in .25s ease-out forwards}.modal-overlay.modal-overlay-closing{animation:modal-overlay-fade-out .35s ease-in forwards}@keyframes modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}.modal{background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 10px 15px -3px #0000001a;max-width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;position:relative;transform-origin:calc(100% - 28px) 28px}.modal.modal-entering{animation:modal-scale-in .3s cubic-bezier(.34,1.56,.64,1) forwards}.modal.modal-closing{animation:modal-collapse-to-close .35s cubic-bezier(.4,0,.2,1) forwards}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-collapse-to-close{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.modal-close-floating{position:absolute;top:12px;right:12px;width:32px;height:32px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background-color .15s ease,transform .15s ease;z-index:10}.modal-close-floating svg{display:block}.modal-close-floating:hover{color:var(--text-primary);background:var(--bg-tertiary);transform:scale(1.1)}.modal-close-floating:active{transform:scale(.95)}.modal-close-floating:disabled{cursor:not-allowed;opacity:.6;transform:none}.modal-close-floating:disabled:hover{color:var(--text-secondary);background:var(--bg-secondary);transform:none}.modal-header{display:flex;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border-color)}.modal-header .modal-title{font-weight:700;font-size:18px;color:var(--text-primary)}.modal-body{padding:24px;overflow:auto;max-height:65vh}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:8px;background:var(--bg-primary)}@media(max-width:768px){.modal-overlay{padding:16px}.modal{max-height:calc(100vh - 32px);border-radius:8px}@supports (height: 100dvh){.modal{max-height:calc(100dvh - 32px)}}.modal-header{padding:16px 52px 16px 16px}.modal-body{padding:16px;max-height:min(60vh,100vh - 180px)}@supports (height: 100dvh){.modal-body{max-height:min(60dvh,100dvh - 180px)}}.modal-footer{padding:16px;flex-direction:column-reverse;align-items:stretch}.modal-footer .btn{width:100%}}.request-log-modal{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.request-log-modal .status-badge{margin-bottom:0}.empty-state{border:1px dashed var(--border-color);border-radius:12px;padding:24px;background:var(--bg-secondary);display:flex;justify-content:space-between;gap:16px;align-items:center}.empty-state .empty-content{display:flex;align-items:center;gap:16px}.empty-state .empty-icon{width:42px;height:42px;border-radius:9999px;border:2px solid var(--border-color);display:grid;place-items:center;color:var(--text-secondary)}.empty-state .empty-icon svg{display:block}.empty-state .empty-title{font-weight:700;color:var(--text-primary)}.empty-state .empty-desc{color:var(--text-secondary);margin-top:4px}.header-input-list{display:flex;flex-direction:column;gap:8px}.header-input-list .header-input-row{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:8px}.header-input-list .header-separator{color:var(--text-secondary);text-align:center}.header-input-list .align-start{width:fit-content}.item-list{display:flex;flex-direction:column;gap:8px}.item-row{border:1px solid var(--border-color);border-radius:8px;padding:16px;background:var(--bg-primary);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.item-row .item-meta{display:flex;flex-direction:column;gap:6px}.item-row .item-title{font-weight:700;color:var(--text-primary)}.item-row .item-subtitle{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;word-break:break-all}.item-row .item-actions{display:flex;gap:8px}.error-box{background:#c657461a;border:1px solid rgba(198,87,70,.4);border-radius:8px;padding:8px 16px;color:#c65746}.stack{display:flex;flex-direction:column;gap:24px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px}.filters .filter-item{display:flex;flex-direction:column;gap:4px}.table{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.table .table-header,.table .table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;padding:8px 16px;align-items:center}.table .table-header{background:var(--bg-secondary);font-weight:700;color:var(--text-primary)}.table .table-row{border-top:1px solid var(--border-color)}.table .cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pagination{display:flex;align-items:center;gap:8px;margin-top:16px}.stat-card{border:1px solid var(--border-color);border-radius:8px;padding:16px;background:var(--bg-primary);display:flex;flex-direction:column;gap:4px}.stat-card .stat-label{color:var(--text-secondary);font-size:14px}.stat-card .stat-value{font-weight:800;color:var(--text-primary);font-size:18px}.log-viewer{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;max-height:520px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--text-primary)}.log-viewer-lines .log-line{display:block;padding:1px 0}.log-viewer-lines .log-line-warning{color:var(--warning-text, #92400e);background:var(--warning-bg, rgba(251, 191, 36, .18));border-radius:4px;padding:2px 6px}.hint{color:var(--text-secondary)}:root{--header-height: 64px}.app-shell{display:flex;flex-direction:column;min-height:100vh;height:100vh;overflow:hidden;background:var(--bg-secondary);color:var(--text-primary)}@media(max-width:768px){.app-shell{height:auto;min-height:100vh;overflow:visible;overflow-y:auto}}.main-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10;width:100%}@media(max-width:768px){.main-header{position:fixed;left:0;right:0;padding:8px 16px;gap:8px}}.main-header .left{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}.main-header .left .brand-logo{height:32px;width:32px;object-fit:contain;flex-shrink:0;border-radius:4px}.main-header .right{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 auto;justify-content:flex-end}@media(max-width:768px){.main-header .right{flex:0 1 auto;gap:8px}}.main-header .sidebar-toggle-header{padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:16px;font-weight:700;transition:background .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;line-height:1}.main-header .sidebar-toggle-header:hover{background:var(--bg-tertiary, var(--border-color));color:var(--text-primary)}@media(max-width:768px){.main-header .sidebar-toggle-header{display:none}}.main-header .brand-header{display:flex;align-items:center;gap:4px;font-weight:800;font-size:18px;color:var(--text-primary);margin-right:16px;cursor:pointer;overflow:hidden;white-space:nowrap;flex-shrink:0}.main-header .brand-header .brand-full{display:inline-block;max-width:320px;opacity:1;transform:translate(0);transition:max-width .4s ease,opacity .4s ease,transform .4s ease}.main-header .brand-header .brand-abbr{display:inline-block;transform:translate(12px);opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s ease}.main-header .brand-header.collapsed .brand-full{max-width:0;opacity:0;transform:translate(-12px)}.main-header .brand-header.collapsed .brand-abbr{transform:translate(0);opacity:1;pointer-events:auto}.main-header .brand-header:hover{color:var(--primary-color)}@media(max-width:768px){.main-header .brand-header{cursor:default;flex-shrink:1;min-width:0;margin-right:0}.main-header .brand-header .brand-full,.main-header .brand-header .brand-abbr{transition:none}.main-header .brand-header .brand-full{display:none}.main-header .brand-header .brand-abbr{transform:translate(0);opacity:1;pointer-events:auto}.main-header .brand-header:hover{color:var(--text-primary)}}.main-header .mobile-menu-btn{display:none;flex-shrink:0}@media(max-width:768px){.main-header .mobile-menu-btn{display:inline-flex}}.main-header .header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.main-header .header-actions .language-menu{position:relative;display:inline-flex;align-items:center}.main-header .header-actions .language-menu .language-menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;min-width:164px;padding:4px;display:flex;flex-direction:column;gap:2px}.main-header .header-actions .language-menu .language-menu-option{width:100%;border:none;border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;padding:8px 10px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:space-between;transition:background-color .15s ease,color .15s ease}.main-header .header-actions .language-menu .language-menu-option:hover{background:var(--bg-secondary)}.main-header .header-actions .language-menu .language-menu-option:focus-visible{outline:none;background:var(--bg-secondary);box-shadow:0 0 0 2px #8b868038}.main-header .header-actions .language-menu .language-menu-option.active{color:var(--primary-color);font-weight:600}.main-header .header-actions .language-menu .language-menu-check{font-size:13px;line-height:1}@media(max-width:768px){.main-header .header-actions .language-menu .language-menu-popover{right:auto;left:0}}.main-header .header-actions .theme-menu{position:relative;display:inline-flex;align-items:center}.main-header .header-actions .theme-menu .theme-menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;padding:8px 8px 4px;display:flex;gap:4px;width:max-content;max-width:calc(100vw - 16px)}.main-header .header-actions .theme-menu .theme-card{border:2px solid transparent;border-radius:8px;background:transparent;cursor:pointer;padding:6px 6px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color .15s ease,background-color .15s ease}.main-header .header-actions .theme-menu .theme-card:hover{background:var(--bg-secondary)}.main-header .header-actions .theme-menu .theme-card:focus-visible{outline:none;box-shadow:0 0 0 2px #8b868038}.main-header .header-actions .theme-menu .theme-card.active{border-color:var(--primary-color)}.main-header .header-actions .theme-menu .theme-card-preview{width:72px;height:52px;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.main-header .header-actions .theme-menu .theme-card-header{height:10px;flex-shrink:0}.main-header .header-actions .theme-menu .theme-card-body{flex:1;display:flex;min-height:0}.main-header .header-actions .theme-menu .theme-card-sidebar{width:16px;flex-shrink:0}.main-header .header-actions .theme-menu .theme-card-content{flex:1;padding:5px 8px;display:flex;flex-direction:column;gap:4px;justify-content:center}.main-header .header-actions .theme-menu .theme-card-line{height:3px;border-radius:1px}.main-header .header-actions .theme-menu .theme-card-line.short{width:60%}.main-header .header-actions .theme-menu .theme-card-label{font-size:11px;color:var(--text-primary);font-weight:500;white-space:nowrap}@media(max-width:768px){.main-header .header-actions .theme-menu .theme-menu-popover{right:0;left:auto;transform:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;width:min(188px,100vw - 16px)}.main-header .header-actions .theme-menu .theme-card{width:100%;min-width:0}.main-header .header-actions .theme-menu .theme-card-label{white-space:normal;text-align:center;line-height:1.2}}.main-header .header-actions svg{display:block}@media(max-width:768px){.main-header .header-actions{gap:2px}}.main-header .connection{display:flex;align-items:center;gap:8px;color:var(--text-secondary);min-width:0;flex-shrink:1;overflow:hidden}.main-header .connection .status-badge{flex-shrink:0;white-space:nowrap;margin-bottom:0}.main-header .connection .base{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:80px}@media(max-width:768px){.main-header .connection{display:none}}.main-body{display:flex;flex:1;min-height:0;height:calc(100vh - var(--header-height));overflow:hidden;position:relative}@supports (height: 100dvh){.main-body{height:calc(100dvh - var(--header-height))}}@media(max-width:768px){.main-body{height:auto;min-height:calc(100vh - var(--header-height));overflow:visible;padding-top:var(--header-height)}@supports (min-height: 100dvh){.main-body{min-height:calc(100dvh - var(--header-height))}}}.sidebar-backdrop{display:none;border:0;padding:0;margin:0;background:#0f172a2e;opacity:0;pointer-events:none;transition:opacity .15s ease}@media(max-width:768px){.sidebar-backdrop{display:block;position:fixed;inset:var(--header-height) 0 0;z-index:999}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}}.sidebar{width:240px;background:var(--bg-primary);border-right:1px solid var(--border-color);padding:16px;display:flex;flex-direction:column;gap:24px;transition:width .3s ease,transform .3s ease;overflow-y:auto;flex-shrink:0;height:100%}.sidebar.collapsed{width:60px;padding:16px 8px}.sidebar.collapsed .nav-item{justify-content:center;padding:10px}.sidebar .nav-section{display:flex;flex-direction:column;gap:8px;flex:1}.sidebar .nav-item{padding:10px 12px;border-radius:8px;border:1px solid transparent;color:var(--text-primary);font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .15s ease,color .15s ease}.sidebar .nav-item .nav-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.96;border-radius:7px;background:linear-gradient(180deg,#ffffff2e,#fff0) var(--bg-secondary);box-shadow:inset 0 0 0 1px var(--border-primary);transition:background .15s ease,box-shadow .15s ease,color .15s ease}.sidebar .nav-item .nav-icon svg{width:18px;height:18px;display:block}.sidebar .nav-item .nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .nav-item:hover{background:var(--bg-secondary)}.sidebar .nav-item:hover .nav-icon{background:linear-gradient(180deg,#ffffff3d,#fff0) var(--bg-primary);box-shadow:inset 0 0 0 1px var(--border-hover)}.sidebar .nav-item.active{background:#8b868024;color:var(--primary-color);border:1px solid rgba(139,134,128,.35)}.sidebar .nav-item.active .nav-icon{background:linear-gradient(180deg,#ffffff38,#fff0) #8b86801a;box-shadow:inset 0 0 0 1px #8b868042}@media(max-width:768px){.sidebar{position:fixed;z-index:1000;left:0;top:var(--header-height);bottom:0;transform:translate(-100%);box-shadow:0 10px 15px -3px #0000001a}.sidebar.open{transform:translate(0)}}.content{flex:1;display:flex;flex-direction:column;min-width:0;overflow-y:auto;scrollbar-gutter:stable;height:100%}.content.content-logs{overflow:hidden}@media(max-width:768px){.content.content-logs{overflow:visible;overflow-y:auto;height:auto}}.main-content{flex:1 0 auto;padding:24px;display:flex;flex-direction:column;gap:24px;overflow-x:hidden}.main-content.main-content-logs{flex:1 1 auto;min-height:0;overflow:hidden}@media(max-width:768px){.main-content.main-content-logs{flex:0 0 auto;min-height:auto;overflow:visible}}@media(max-width:768px){.main-content{padding:16px}}.grid{display:grid;gap:24px}@media(min-width:1024px){.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}body{background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}html.modal-open,body.modal-open,body.modal-open .content{overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 16px}.flex-center{display:flex;align-items:center;justify-content:center}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity .3s ease}.fade-exit{opacity:1}.fade-exit-active{opacity:0;transition:opacity .3s ease}.Select-module__wrap___8GKsa{position:relative;display:inline-flex;align-items:center}.Select-module__wrapFullWidth___uQ1gt{width:100%}.Select-module__trigger___nKY0l{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:40px;padding:0 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-primary);box-shadow:var(--shadow);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;appearance:none;text-align:left;box-sizing:border-box}.Select-module__trigger___nKY0l:hover{border-color:var(--border-hover)}.Select-module__trigger___nKY0l:focus{outline:none;box-shadow:var(--shadow),0 0 0 3px #8b86802e}.Select-module__trigger___nKY0l[aria-expanded=true]{border-color:var(--primary-color);box-shadow:var(--shadow),0 0 0 3px #8b86802e}.Select-module__triggerText___zQEIp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Select-module__placeholder___N04iW{color:var(--text-tertiary)}.Select-module__triggerIcon___ipYKn{display:inline-flex;color:var(--text-secondary);flex-shrink:0;transition:transform .2s ease}[aria-expanded=true]>.Select-module__triggerIcon___ipYKn{transform:rotate(180deg)}.Select-module__dropdown___6YdcD{position:fixed;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:6px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.Select-module__option___EKsSG{padding:8px 12px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;font-size:13px;font-weight:500;transition:background-color .15s ease,border-color .15s ease;flex-shrink:0}.Select-module__option___EKsSG:hover{background:var(--bg-secondary)}.Select-module__optionActive___y280o{border-color:#8b868080;background:#8b86801a;font-weight:600}.Select-module__optionHighlighted___CPa3K{background:var(--bg-secondary)}.SelectionCheckbox-module__root___LiMQt{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.SelectionCheckbox-module__disabled___-T-uP{cursor:not-allowed;opacity:.6}.SelectionCheckbox-module__input___b-Hpm{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.SelectionCheckbox-module__box___FRD4m{width:22px;height:22px;flex-shrink:0;border-radius:7px;border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);color:var(--primary-contrast, #fff);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease}.SelectionCheckbox-module__root___LiMQt:hover .SelectionCheckbox-module__box___FRD4m{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 16%,transparent)}.SelectionCheckbox-module__root___LiMQt:active .SelectionCheckbox-module__box___FRD4m{transform:scale(.95)}.SelectionCheckbox-module__disabled___-T-uP:hover .SelectionCheckbox-module__box___FRD4m{border-color:var(--border-color);box-shadow:none}.SelectionCheckbox-module__disabled___-T-uP:active .SelectionCheckbox-module__box___FRD4m{transform:none}.SelectionCheckbox-module__input___b-Hpm:focus-visible+.SelectionCheckbox-module__box___FRD4m{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 16%,transparent),0 0 0 1px color-mix(in srgb,var(--primary-color) 50%,transparent)}.SelectionCheckbox-module__boxChecked___4lydu{border-color:var(--primary-color);background:var(--primary-color)}.SelectionCheckbox-module__boxChecked___4lydu svg{display:block;stroke-width:2.4}.SelectionCheckbox-module__label___twhQj{color:var(--text-primary);font-size:14px;font-weight:500}.LoginPage-module__container___bHtIX{min-height:100vh;display:flex;background:var(--bg-secondary)}.LoginPage-module__brandPanel___kKUR5{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#000;padding:48px;position:relative;overflow:hidden}@media(max-width:768px){.LoginPage-module__brandPanel___kKUR5{display:none}}.LoginPage-module__brandContent___ZEhbk{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;width:100%;padding:0;gap:0}@keyframes LoginPage-module__brandFadeIn___tpmGl{0%{opacity:0;transform:translateY(-10px)}to{opacity:var(--target-opacity, .9);transform:translateY(0)}}.LoginPage-module__brandWord___3DkwD{font-size:14vw;font-weight:900;color:#ffffffe6;letter-spacing:-.02em;line-height:.85;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;text-align:right;padding-right:0;opacity:0;animation:LoginPage-module__brandFadeIn___tpmGl .8s ease-out forwards}.LoginPage-module__brandWord___3DkwD:nth-child(1){--target-opacity: .95;animation-delay:.1s}.LoginPage-module__brandWord___3DkwD:nth-child(2){--target-opacity: .7;animation-delay:.35s}.LoginPage-module__brandWord___3DkwD:nth-child(3){--target-opacity: .45;animation-delay:.6s}.LoginPage-module__formPanel___Nrtrt{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;background:var(--bg-secondary);position:relative}@media(max-width:768px){.LoginPage-module__formPanel___Nrtrt{padding:24px;min-height:100vh}}.LoginPage-module__formContent___H8fD-{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:32px}.LoginPage-module__logo___ASmao{width:80px;height:80px;border-radius:12px;object-fit:cover;box-shadow:var(--shadow-lg);border:3px solid var(--border-color)}.LoginPage-module__loginCard___OgP-R{width:100%;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);padding:32px;display:flex;flex-direction:column;gap:24px}@media(max-width:768px){.LoginPage-module__loginCard___OgP-R{padding:24px;box-shadow:none;border:none;background:transparent}}.LoginPage-module__loginHeader___3kAvs{display:flex;flex-direction:column;gap:8px;text-align:center}.LoginPage-module__titleRow___9h914{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.LoginPage-module__title___I-LuY{font-size:22px;font-weight:800;color:var(--text-primary)}.LoginPage-module__subtitle___Q41SH{color:var(--text-secondary);font-size:14px}.LoginPage-module__languageSelect___KUNwV{min-width:108px;flex:0 0 auto}.LoginPage-module__connectionBox___B5--X{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:4px}.LoginPage-module__connectionBox___B5--X .LoginPage-module__label___2fkY-{color:var(--text-secondary);font-size:14px}.LoginPage-module__connectionBox___B5--X .LoginPage-module__value___JFrYC{font-weight:700;color:var(--text-primary);word-break:break-all}.LoginPage-module__connectionBox___B5--X .LoginPage-module__hint___bcz4d{color:var(--text-secondary);font-size:12px}.LoginPage-module__toggleAdvanced___4aKnv{display:flex;justify-content:flex-start;width:100%}.LoginPage-module__toggleLabel___C3t9M{color:var(--text-secondary);font-size:14px;font-weight:500}.LoginPage-module__errorBox___wX1tT{background:#c657461a;border:1px solid rgba(198,87,70,.4);border-radius:8px;padding:8px 16px;color:#c65746;font-size:14px}@keyframes LoginPage-module__splashEnter___K-Jk9{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes LoginPage-module__splashLogoPulse___DIteW{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes LoginPage-module__splashLoading___jAaFC{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}50.01%{transform-origin:right}to{transform:scaleX(0);transform-origin:right}}.LoginPage-module__splashContent___Cc3DZ{display:flex;flex-direction:column;align-items:center;gap:16px;animation:LoginPage-module__splashEnter___K-Jk9 .6s ease-out}.LoginPage-module__splashLogo___yzbbw{height:80px;width:auto;border-radius:12px;box-shadow:0 10px 15px -3px #0000001a;animation:LoginPage-module__splashLogoPulse___DIteW 1.5s ease-in-out infinite}.LoginPage-module__splashTitle___G-HEP{font-size:28px;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.5px}.LoginPage-module__splashSubtitle___BYSQi{font-size:16px;font-weight:500;color:var(--text-secondary);margin:-8px 0 0}.LoginPage-module__splashLoader___SdvUl{width:120px;height:3px;background:var(--border-color);border-radius:9999px;overflow:hidden;margin-top:16px}.LoginPage-module__splashLoaderBar___lyVXw{width:100%;height:100%;background:var(--primary-color);border-radius:9999px;animation:LoginPage-module__splashLoading___jAaFC 1.2s ease-in-out infinite}.page-transition{position:relative;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.page-transition__layer{display:flex;flex-direction:column;gap:24px;min-height:0;flex:1;background:var(--bg-secondary);backface-visibility:hidden;transform:translateZ(0)}.page-transition__layer--exit{position:absolute;inset:0;overflow:hidden;pointer-events:none;will-change:transform,opacity}.page-transition__layer--stacked{display:none}.page-transition__layer--stacked.page-transition__layer--stacked-keep{display:flex;position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;will-change:transform,opacity}.page-transition--animating .page-transition__layer{will-change:transform,opacity}.page-transition--animating .page-transition__layer:not(.page-transition__layer--exit):not(.page-transition__layer--stacked){position:relative}.DashboardPage-module__dashboard___c-JEy{display:flex;flex-direction:column;gap:32px;max-width:1000px;margin:0 auto;position:relative}.DashboardPage-module__backgroundOrbs___ZlInx{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}.DashboardPage-module__orb1___msZV4{position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--primary-color) 8%,transparent),transparent 70%);top:-140px;right:-80px;animation:DashboardPage-module__orbFloat___zdYrn 22s ease-in-out infinite alternate}.DashboardPage-module__orb2___rkxwt{position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--success-color) 6%,transparent),transparent 70%);bottom:18%;left:-100px;animation:DashboardPage-module__orbFloat___zdYrn 28s ease-in-out infinite alternate-reverse}@keyframes DashboardPage-module__orbFloat___zdYrn{0%{transform:translate(0) scale(1)}to{transform:translate(30px,-20px) scale(1.1)}}.DashboardPage-module__hero___4gtI-{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:48px 32px;border-radius:12px;--glass-blur: 12px;background:linear-gradient(135deg,color-mix(in srgb,var(--bg-primary) 92%,transparent),color-mix(in srgb,var(--bg-secondary) 80%,transparent));border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);overflow:hidden;animation:DashboardPage-module__heroEnter___LNodk .6s ease-out both}@media(max-width:768px){.DashboardPage-module__hero___4gtI-{flex-direction:column;align-items:flex-start;padding:32px 24px}}.DashboardPage-module__heroWatermark___eoPCs{position:absolute;top:50%;left:32px;transform:translateY(-50%);font-size:clamp(64px,12vw,120px);font-weight:900;line-height:1;letter-spacing:-.04em;text-transform:uppercase;color:var(--text-primary);opacity:.04;white-space:nowrap;pointer-events:none;user-select:none;animation:DashboardPage-module__watermarkEnter___4r-VK .8s ease-out .1s both}@media(max-width:768px){.DashboardPage-module__heroWatermark___eoPCs{font-size:clamp(48px,14vw,80px);left:24px}}@keyframes DashboardPage-module__watermarkEnter___4r-VK{0%{opacity:0;transform:translateY(-50%) translate(-20px)}to{opacity:.04;transform:translateY(-50%) translate(0)}}.DashboardPage-module__heroContent___rRgSn{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px}.DashboardPage-module__heroGreeting___LkC-3{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-color);animation:DashboardPage-module__fadeSlideUp___svgeE .5s ease-out .1s both}.DashboardPage-module__heroTitle___583C6{margin:0;font-size:clamp(32px,5vw,48px);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--text-primary);animation:DashboardPage-module__fadeSlideUp___svgeE .5s ease-out .2s both}.DashboardPage-module__heroCaring___4RIkE{margin:4px 0 0;font-size:15px;color:var(--text-secondary);line-height:1.5;animation:DashboardPage-module__fadeSlideUp___svgeE .5s ease-out .3s both}.DashboardPage-module__heroMeta___-2WgN{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;animation:DashboardPage-module__fadeSlideUp___svgeE .5s ease-out .35s both}@media(max-width:768px){.DashboardPage-module__heroMeta___-2WgN{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:8px}}.DashboardPage-module__dateTimeBlock___nv-GA{display:flex;flex-direction:column;align-items:flex-end;gap:2px}@media(max-width:768px){.DashboardPage-module__dateTimeBlock___nv-GA{align-items:flex-start}}.DashboardPage-module__time___r-JWY{font-size:22px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.2}.DashboardPage-module__date___fd2-M{font-size:12px;color:var(--text-secondary)}.DashboardPage-module__connectionPill___Jf-zm{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:9999px;--glass-blur: 8px;background:var(--glass-bg-secondary);border:1px solid var(--glass-border);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);font-size:12px}.DashboardPage-module__statusDot___4w7W-{width:8px;height:8px;border-radius:50%;background:#9ca3af;flex-shrink:0}.DashboardPage-module__statusDot___4w7W-.DashboardPage-module__connected___CeELY{background:#10b981;box-shadow:0 0 6px #10b98180}.DashboardPage-module__statusDot___4w7W-.DashboardPage-module__connecting___j03PZ{background:#c65746;animation:DashboardPage-module__pulse___GLJju 1s ease-in-out infinite}.DashboardPage-module__statusDot___4w7W-.DashboardPage-module__disconnected___3l11q{background:#c65746}.DashboardPage-module__pillText___HO7gg{font-weight:600;color:var(--text-primary)}.DashboardPage-module__buildDate___zr4hY{font-size:11px;color:var(--text-tertiary);text-align:right}@media(max-width:768px){.DashboardPage-module__buildDate___zr4hY{text-align:left}}.DashboardPage-module__statsSection___E5LH9{position:relative;z-index:1}.DashboardPage-module__sectionHeading___j2-4e{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:0 0 16px}.DashboardPage-module__bentoGrid___L3GMN{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:16px}@media(max-width:900px){.DashboardPage-module__bentoGrid___L3GMN{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.DashboardPage-module__bentoGrid___L3GMN{grid-template-columns:1fr}}.DashboardPage-module__bentoCard___fZ0NR{display:flex;flex-direction:column;gap:16px;padding:24px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;animation:DashboardPage-module__cardEnter___TzYj- .4s ease-out both}.DashboardPage-module__bentoCard___fZ0NR:hover{border-color:var(--primary-color);box-shadow:0 8px 24px #00000014;transform:translateY(-3px)}.DashboardPage-module__bentoLarge___OI8ha{grid-row:1/3;justify-content:center;background:linear-gradient(160deg,color-mix(in srgb,var(--primary-color) 6%,var(--bg-primary)),var(--bg-primary))}.DashboardPage-module__bentoLarge___OI8ha .DashboardPage-module__bentoValue___4z4aG{font-size:44px}.DashboardPage-module__bentoLarge___OI8ha .DashboardPage-module__bentoIcon___yMz7f{width:56px;height:56px}@media(max-width:900px){.DashboardPage-module__bentoLarge___OI8ha{grid-row:auto}.DashboardPage-module__bentoLarge___OI8ha .DashboardPage-module__bentoValue___4z4aG{font-size:32px}.DashboardPage-module__bentoLarge___OI8ha .DashboardPage-module__bentoIcon___yMz7f{width:44px;height:44px}}.DashboardPage-module__bentoIcon___yMz7f{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;background:color-mix(in srgb,var(--primary-color) 10%,var(--bg-secondary));color:var(--primary-color);transition:background .15s ease}.DashboardPage-module__bentoCard___fZ0NR:hover .DashboardPage-module__bentoIcon___yMz7f{background:color-mix(in srgb,var(--primary-color) 16%,var(--bg-secondary))}.DashboardPage-module__bentoContent___7qrNg{display:flex;flex-direction:column;gap:2px}.DashboardPage-module__bentoValue___4z4aG{font-size:28px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.2}.DashboardPage-module__bentoLabel___s0-b2{font-size:13px;color:var(--text-secondary)}.DashboardPage-module__bentoSublabel___LRcJB{font-size:11px;color:var(--text-secondary);opacity:.7;margin-top:2px}.DashboardPage-module__configSection___G0W4F{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px;animation:DashboardPage-module__cardEnter___TzYj- .4s ease-out .5s both}.DashboardPage-module__configPillGrid___Ie76m{display:flex;flex-wrap:wrap;gap:8px}.DashboardPage-module__configPill___C2Adr{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:9999px;font-size:13px;transition:border-color .15s ease}.DashboardPage-module__configPill___C2Adr:hover{border-color:var(--border-hover)}.DashboardPage-module__configPillWide___2Bkpx{flex-basis:100%;border-radius:8px}.DashboardPage-module__configPillLabel___eK-LR{color:var(--text-secondary);white-space:nowrap}.DashboardPage-module__configPillValue___k6VI3{font-weight:600;color:var(--text-primary)}.DashboardPage-module__configPillValue___k6VI3.DashboardPage-module__on___kqLdD{color:#10b981}.DashboardPage-module__configPillValue___k6VI3.DashboardPage-module__off___gkz6F{color:var(--text-secondary)}.DashboardPage-module__configPillMono___pEsgq{font-size:12px;font-family:Courier New,Courier,monospace;color:var(--text-secondary);word-break:break-all}.DashboardPage-module__configBadge___TrJTP{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:9999px;border:1px solid var(--border-color);font-size:11px;font-weight:600;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.DashboardPage-module__configBadgeRoundRobin___wgPLB{color:var(--primary-color);border-color:#8b86803d;background:#8b86801f}.DashboardPage-module__configBadgeFillFirst___N5vai{color:#10b981;border-color:#10b9814d;background:#10b9811f}.DashboardPage-module__configBadgeUnknown___Jo3zP{color:var(--text-secondary);background:var(--bg-primary)}.DashboardPage-module__viewMoreLink___wKvoJ{display:inline-flex;align-items:center;font-size:13px;color:var(--primary-color);text-decoration:none;margin-top:4px;transition:color .15s ease}.DashboardPage-module__viewMoreLink___wKvoJ:hover{text-decoration:underline;color:var(--primary-hover)}@keyframes DashboardPage-module__heroEnter___LNodk{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes DashboardPage-module__fadeSlideUp___svgeE{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes DashboardPage-module__cardEnter___TzYj-{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes DashboardPage-module__pulse___GLJju{0%,to{opacity:1}50%{opacity:.5}}.AiProvidersPage-module__container___y-jfS{width:100%}.AiProvidersPage-module__cardTitle___vO4i3{display:flex;align-items:center;gap:8px}.AiProvidersPage-module__cardTitleIcon___-rTw0{width:24px;height:24px}.AiProvidersPage-module__pageTitle___DoSv8{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 32px}.AiProvidersPage-module__content___E2Czu{display:flex;flex-direction:column;gap:32px;padding-bottom:calc(var(--provider-nav-height, 60px) + 12px + env(safe-area-inset-bottom) + 16px)}.AiProvidersPage-module__section___IvT9j{display:flex;flex-direction:column;gap:16px}.AiProvidersPage-module__sectionHeader___DP-H3{display:flex;justify-content:space-between;align-items:center;gap:16px}.AiProvidersPage-module__sectionHeader___DP-H3 h3{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.AiProvidersPage-module__providerList___mKQc1{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}@media(max-width:768px){.AiProvidersPage-module__providerList___mKQc1{grid-template-columns:1fr}}.AiProvidersPage-module__cardStats___rELY1{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:4px}.AiProvidersPage-module__statPill___d812A{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:1.1;border:1px solid transparent;background-color:var(--bg-tertiary);color:var(--text-primary);white-space:nowrap}.AiProvidersPage-module__statSuccess___5dRtj{background-color:var(--success-badge-bg, #d1fae5);color:var(--success-badge-text, #065f46);border-color:var(--success-badge-border, #6ee7b7)}.AiProvidersPage-module__statFailure___krDjY{background-color:var(--failure-badge-bg);color:var(--failure-badge-text);border-color:var(--failure-badge-border)}.AiProvidersPage-module__fieldRow___XK6hX{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:4px;font-size:13px;line-height:1.4}.AiProvidersPage-module__fieldLabel___cLX9f{color:var(--text-tertiary);font-weight:500;white-space:nowrap;flex-shrink:0}.AiProvidersPage-module__fieldValue___VdFCH{color:var(--text-primary);font-weight:600;word-break:break-all;font-family:Monaco,Menlo,Consolas,Ubuntu Mono,monospace}.AiProvidersPage-module__headerBadgeList___kwkIM{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.AiProvidersPage-module__headerBadge___eN0Fd{display:inline-flex;align-items:center;gap:4px;background:var(--accent-tertiary, #f3f4f6);border:1px solid var(--border-primary);border-radius:12px;padding:4px 10px;font-size:12px;color:var(--text-secondary)}.AiProvidersPage-module__headerBadge___eN0Fd strong{font-weight:600;color:var(--text-primary)}.AiProvidersPage-module__modelTagList___shUnj{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.AiProvidersPage-module__modelCountLabel___uV8s-{display:inline-flex;align-items:center;font-size:13px;font-weight:500;line-height:1.4;color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.AiProvidersPage-module__modelTag___k-VuJ{display:inline-flex;align-items:center;gap:4px;background:var(--bg-quinary, #f8f9fa);color:var(--text-secondary);border:1px solid var(--border-secondary);border-radius:14px;padding:4px 10px;font-size:12px;transition:all .15s ease}.AiProvidersPage-module__modelTag___k-VuJ:hover{background:var(--bg-tertiary);border-color:var(--primary-color)}.AiProvidersPage-module__modelName___-6r4h{font-weight:600;color:var(--text-primary)}.AiProvidersPage-module__modelAlias___ljQjM{color:var(--text-tertiary);font-style:italic}.AiProvidersPage-module__modelAlias___ljQjM:before{content:"→ "}.AiProvidersPage-module__excludedModelTag___emTfi{background:var(--warning-bg, #fef3c7);border-color:var(--warning-border, #fbbf24);color:var(--warning-text, #92400e)}.AiProvidersPage-module__excludedModelTag___emTfi .AiProvidersPage-module__modelName___-6r4h{color:var(--warning-text, #92400e)}.AiProvidersPage-module__excludedModelsSection___XFykq{margin-top:8px}.AiProvidersPage-module__excludedModelsLabel___Drdds{font-size:12px;font-weight:500;color:var(--warning-text, #92400e);margin-bottom:4px}.AiProvidersPage-module__apiKeyEntriesSection___60ydj{margin-top:10px}.AiProvidersPage-module__apiKeyEntriesLabel___c5W8h{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.AiProvidersPage-module__apiKeyEntryList___-xrgk{display:flex;flex-direction:column;gap:6px}.AiProvidersPage-module__apiKeyEntryCard___Y5gRi{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-secondary);border-radius:8px;font-size:12px}.AiProvidersPage-module__apiKeyEntryIndex___h8oWW{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary-color);color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.AiProvidersPage-module__apiKeyEntryKey___JgU0c{font-family:Monaco,Menlo,Consolas,Ubuntu Mono,monospace;font-weight:600;color:var(--text-primary);word-break:break-all}.AiProvidersPage-module__apiKeyEntryProxy___gy9Vu{color:var(--text-tertiary);font-size:11px}.AiProvidersPage-module__apiKeyEntryProxy___gy9Vu:before{content:"| Proxy: ";color:var(--text-quaternary)}.AiProvidersPage-module__apiKeyEntryStats___Whq5E{display:flex;gap:6px;margin-left:auto}.AiProvidersPage-module__apiKeyEntryStat___rwvkB{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:10px;font-size:10px;font-weight:600}.AiProvidersPage-module__apiKeyEntryStat___rwvkB svg{display:block}.AiProvidersPage-module__apiKeyEntryStatSuccess___GXIwG{background:var(--success-badge-bg, #d1fae5);color:var(--success-badge-text, #065f46)}.AiProvidersPage-module__apiKeyEntryStatFailure___XV9wg{background:var(--failure-badge-bg);color:var(--failure-badge-text)}.AiProvidersPage-module__modelDiscoveryList___HKeOb{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto;margin-top:0;padding-right:4px}.AiProvidersPage-module__modelDiscoveryRow___3J8pc{display:inline-flex;align-items:flex-start;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease}.AiProvidersPage-module__modelDiscoveryRow___3J8pc input[type=checkbox]{margin-top:2px;cursor:pointer}.AiProvidersPage-module__modelDiscoveryRow___3J8pc:hover{border-color:var(--primary-color);background:var(--bg-secondary)}.AiProvidersPage-module__modelDiscoverySelectionLabel___GsF2O{flex:1;min-width:0}.AiProvidersPage-module__modelDiscoveryRowSelected___VLfIp{border-color:var(--primary-color);background:var(--bg-tertiary)}.AiProvidersPage-module__modelDiscoveryMeta___7D6Y5{display:flex;flex-direction:column;gap:2px}.AiProvidersPage-module__modelDiscoveryName___yf70V{font-weight:600;color:var(--text-primary)}.AiProvidersPage-module__modelDiscoveryAlias___N2nU7{margin-left:6px;color:var(--text-tertiary);font-style:italic}.AiProvidersPage-module__modelDiscoveryDesc___nsrtd{font-size:12px;color:var(--text-secondary);line-height:1.4}.AiProvidersPage-module__modelDiscoveryToolbar___FOjvS{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.AiProvidersPage-module__modelDiscoveryToolbarActions___a8qmb{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.AiProvidersPage-module__modelDiscoverySelectionSummary___7PhM7{font-size:12px;color:var(--text-tertiary);line-height:1.4}.AiProvidersPage-module__openaiTestButtonSuccess___ZiymQ{background-color:var(--success-badge-bg, #d1fae5);border-color:var(--success-badge-border, #6ee7b7);color:var(--success-badge-text, #065f46)}.AiProvidersPage-module__openaiTestButtonSuccess___ZiymQ:hover{background-color:var(--success-badge-bg, #d1fae5);border-color:var(--success-badge-border, #6ee7b7)}.AiProvidersPage-module__statusBar___gAS9s{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 0;max-width:280px}.AiProvidersPage-module__statusBlocks___RESqk{display:flex;gap:2px;flex:1;min-width:180px;position:relative}.AiProvidersPage-module__statusBlockWrapper___crE7L{flex:1;min-width:6px;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}.AiProvidersPage-module__statusBlock___nUV1s{width:100%;height:8px;border-radius:2px;transition:transform .15s ease,opacity .15s ease}.AiProvidersPage-module__statusBlockWrapper___crE7L:hover .AiProvidersPage-module__statusBlock___nUV1s,.AiProvidersPage-module__statusBlockWrapper___crE7L.AiProvidersPage-module__statusBlockActive___MgbMs .AiProvidersPage-module__statusBlock___nUV1s{transform:scaleY(1.8);opacity:.9}.AiProvidersPage-module__statusBlockIdle___WEMXo{background-color:var(--border-secondary, #e5e7eb)}.AiProvidersPage-module__statusTooltip___leV9X{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-primary, #fff);border:1px solid var(--border-secondary, #e5e7eb);border-radius:6px;padding:6px 10px;font-size:11px;line-height:1.5;white-space:nowrap;box-shadow:0 4px 12px #0000001f;z-index:1000;pointer-events:none;color:var(--text-primary)}.AiProvidersPage-module__statusTooltip___leV9X:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--bg-primary, #fff)}.AiProvidersPage-module__statusTooltip___leV9X:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-secondary, #e5e7eb)}.AiProvidersPage-module__statusTooltipLeft___avU77{left:0;transform:translate(0)}.AiProvidersPage-module__statusTooltipLeft___avU77:after,.AiProvidersPage-module__statusTooltipLeft___avU77:before{left:8px;transform:none}.AiProvidersPage-module__statusTooltipRight___k2gcI{left:auto;right:0;transform:translate(0)}.AiProvidersPage-module__statusTooltipRight___k2gcI:after,.AiProvidersPage-module__statusTooltipRight___k2gcI:before{left:auto;right:8px;transform:none}.AiProvidersPage-module__tooltipTime___SU0zH{color:var(--text-secondary);display:block;margin-bottom:2px}.AiProvidersPage-module__tooltipStats___c6Xho{display:flex;align-items:center;gap:8px}.AiProvidersPage-module__tooltipSuccess___Nl3Pt{color:var(--success-color, #22c55e)}.AiProvidersPage-module__tooltipFailure___1XMCP{color:var(--danger-color, #ef4444)}.AiProvidersPage-module__tooltipRate___YDCOe{color:var(--text-secondary);margin-left:2px}.AiProvidersPage-module__statusRate___mqcEs{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;white-space:nowrap;padding:4px 8px;border-radius:6px;background:var(--bg-tertiary)}.AiProvidersPage-module__statusRateHigh___GpDhl{color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5)}.AiProvidersPage-module__statusRateMedium___hdtEj{color:var(--warning-text, #92400e);background:var(--warning-bg, #fef3c7)}.AiProvidersPage-module__statusRateLow___mNI2c{color:var(--failure-badge-text);background:var(--failure-badge-bg)}@media(max-width:768px){.AiProvidersPage-module__statusTooltip___leV9X{font-size:12px;padding:8px 12px}.AiProvidersPage-module__statusBlocks___RESqk{min-width:140px}}.AiProvidersPage-module__openaiEditForm___axTov{display:flex;flex-direction:column;gap:16px}.AiProvidersPage-module__openaiEditForm___axTov .form-group,.AiProvidersPage-module__openaiEditForm___axTov .AiProvidersPage-module__modelConfigSection___0v-e8{margin-bottom:0}.AiProvidersPage-module__openaiEditForm___axTov .status-badge{margin-bottom:0;align-self:flex-start}.AiProvidersPage-module__sectionHint___-aBFT{margin:0;font-size:13px;line-height:1.5;color:var(--text-secondary)}.AiProvidersPage-module__openaiModelsContent___yEApy{display:flex;flex-direction:column;gap:16px}.AiProvidersPage-module__openaiModelsContent___yEApy .form-group{margin-bottom:0}.AiProvidersPage-module__openaiModelsEndpointSection___FvBIQ{display:flex;flex-direction:column;gap:4px}.AiProvidersPage-module__openaiModelsEndpointLabel___-rOEU{display:block;margin:0;font-weight:600;color:var(--text-primary)}.AiProvidersPage-module__openaiModelsEndpointControls___pLkMs{display:flex;align-items:center;gap:8px}@media(max-width:768px){.AiProvidersPage-module__openaiModelsEndpointControls___pLkMs{flex-direction:column;align-items:stretch}}.AiProvidersPage-module__openaiModelsEndpointInput___4xH3Y{flex:1;min-width:0}.AiProvidersPage-module__modelConfigSection___0v-e8{margin-bottom:16px;display:flex;flex-direction:column;gap:8px}.AiProvidersPage-module__modelConfigHeader___bXtq4{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}@media(max-width:768px){.AiProvidersPage-module__modelConfigHeader___bXtq4{align-items:flex-start}}.AiProvidersPage-module__modelConfigTitle___ppVRn{margin:0;font-weight:600;color:var(--text-primary);line-height:1.5}.AiProvidersPage-module__modelConfigToolbar___nrb6R{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:768px){.AiProvidersPage-module__modelConfigToolbar___nrb6R{width:100%;justify-content:flex-start}}.AiProvidersPage-module__modelConfigToolbar___nrb6R .btn{white-space:nowrap}.AiProvidersPage-module__modelInputList___AbYq6{gap:4px}.AiProvidersPage-module__modelInputRow___j-ubV{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:8px;align-items:center}@media(max-width:768px){.AiProvidersPage-module__modelInputRow___j-ubV{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.AiProvidersPage-module__modelInputRow___j-ubV>:nth-child(2){display:none}.AiProvidersPage-module__modelInputRow___j-ubV>:nth-child(3){grid-column:1/3}.AiProvidersPage-module__modelInputRow___j-ubV>:nth-child(4){grid-column:2/3;grid-row:1/2}}.AiProvidersPage-module__modelInputField___QdqkU{min-width:0}.AiProvidersPage-module__modelRowRemoveButton___lEFpT{justify-self:center}.AiProvidersPage-module__modelTestPanel___SyW9P{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:0;padding:8px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary)}@media(max-width:768px){.AiProvidersPage-module__modelTestPanel___SyW9P{flex-direction:column;align-items:stretch}}.AiProvidersPage-module__modelTestMeta___XMH-g{display:flex;flex-direction:column;gap:6px;min-width:0}.AiProvidersPage-module__modelTestLabel___HqcWx{font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.5}.AiProvidersPage-module__modelTestHint___kUgyp{font-size:12px;color:var(--text-tertiary);line-height:1.5}.AiProvidersPage-module__modelTestControls___yPmI0{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:1;min-width:0}@media(max-width:768px){.AiProvidersPage-module__modelTestControls___yPmI0{justify-content:flex-start}}.AiProvidersPage-module__keyEntriesSection___XD0xH{margin-bottom:0;display:flex;flex-direction:column;gap:8px}.AiProvidersPage-module__keyEntriesHeader___yZxok{display:flex;flex-direction:column;gap:6px;margin-bottom:0}.AiProvidersPage-module__keyEntriesTitle___MEybu{display:block;margin:0;font-weight:600;color:var(--text-primary);line-height:1.5}.AiProvidersPage-module__keyEntriesHint___gn0EN{font-size:13px;line-height:1.5;color:var(--text-secondary)}.AiProvidersPage-module__keyEntriesList___Gtpin{display:flex;flex-direction:column;gap:8px}.AiProvidersPage-module__keyEntriesToolbar___eSzyC{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.AiProvidersPage-module__keyEntriesCount___e6jgL{font-size:13px;font-weight:600;color:var(--text-secondary)}.AiProvidersPage-module__keyTableShell___0nNxe{overflow-x:auto;border-radius:8px}.AiProvidersPage-module__keyTableHeader___ZbWah{display:grid;grid-template-columns:46px 56px minmax(220px,1.4fr) minmax(200px,1.1fr) 180px;gap:8px;min-width:760px;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-bottom:none;border-radius:8px 8px 0 0;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:none;align-items:center;text-align:center}.AiProvidersPage-module__keyTableRow___0MOQW{display:grid;grid-template-columns:46px 56px minmax(220px,1.4fr) minmax(200px,1.1fr) 180px;gap:8px;min-width:760px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-top:none;align-items:center}.AiProvidersPage-module__keyTableRow___0MOQW:last-child{border-radius:0 0 8px 8px}.AiProvidersPage-module__keyTableRow___0MOQW:hover{background:var(--bg-tertiary)}.AiProvidersPage-module__keyTableColIndex___U12X-{display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-tertiary)}.AiProvidersPage-module__keyTableColStatus___Dzw88{display:flex;align-items:center;justify-content:center}.AiProvidersPage-module__keyTableColStatus___Dzw88 svg{display:block}.AiProvidersPage-module__keyTableColKey___V9Md3,.AiProvidersPage-module__keyTableColProxy___9hcue{min-width:0;display:flex;align-items:center;justify-content:center}.AiProvidersPage-module__keyTableColAction___oZsbE{display:flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;white-space:nowrap}.AiProvidersPage-module__keyTableInput___bo5JN{width:100%;padding:8px 10px;font-size:14px;min-height:38px;text-align:center}.AiProvidersPage-module__addKeyButton___xuMah{align-self:auto;margin-top:0}.AiProvidersPage-module__openaiTestSelect___7-Upw{flex:1 1 260px;min-width:180px;max-width:380px}@media(max-width:768px){.AiProvidersPage-module__openaiTestSelect___7-Upw{min-width:0;max-width:none}}.AiProvidersPage-module__modelTestAllButton___SRL9M{white-space:nowrap;flex-shrink:0}.AiProvidersPage-module__statusIconWrapper___yoMZR{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-secondary);flex-shrink:0}.AiProvidersPage-module__statusIconSpin___DC8Ww{animation:AiProvidersPage-module__spin___D9eR3 1s linear infinite}@keyframes AiProvidersPage-module__spin___D9eR3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-theme=dark] .AiProvidersPage-module__headerBadge___eN0Fd{background:#8b868024;border-color:#8b868059;color:var(--text-secondary)}[data-theme=dark] .AiProvidersPage-module__headerBadge___eN0Fd strong{color:var(--text-secondary)}[data-theme=dark] .AiProvidersPage-module__modelTag___k-VuJ{background:#8b86801a;border-color:var(--border-secondary)}[data-theme=dark] .AiProvidersPage-module__excludedModelTag___emTfi{background:#c6574638;border-color:#c657468c;color:var(--warning-color)}[data-theme=dark] .AiProvidersPage-module__excludedModelTag___emTfi .AiProvidersPage-module__modelName___-6r4h,[data-theme=dark] .AiProvidersPage-module__excludedModelsLabel___Drdds{color:var(--warning-color)}[data-theme=dark] .AiProvidersPage-module__apiKeyEntryCard___Y5gRi{background:var(--bg-tertiary);border-color:var(--border-primary)}[data-theme=dark] .AiProvidersPage-module__apiKeyEntryIndex___h8oWW{background:var(--primary-color)}[data-theme=dark] .AiProvidersPage-module__statusBlockIdle___WEMXo{background-color:var(--border-primary, #374151)}[data-theme=dark] .AiProvidersPage-module__statusTooltip___leV9X{background:var(--bg-secondary, #1f2937);border-color:var(--border-primary, #374151);box-shadow:0 4px 12px #0006}[data-theme=dark] .AiProvidersPage-module__statusTooltip___leV9X:after{border-top-color:var(--bg-secondary, #1f2937)}[data-theme=dark] .AiProvidersPage-module__statusTooltip___leV9X:before{border-top-color:var(--border-primary, #374151)}[data-theme=dark] .AiProvidersPage-module__statusRateHigh___GpDhl{background:#22c55e33;color:#86efac}[data-theme=dark] .AiProvidersPage-module__statusRateMedium___hdtEj{background:#fbbf2433;color:#fde68a}[data-theme=dark] .AiProvidersPage-module__statusRateLow___mNI2c{background:#c657463d;color:#f1b0a6}.ToggleSwitch-module__root___IUqKD{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.ToggleSwitch-module__labelLeft___Pc6fJ .ToggleSwitch-module__label___4iQkR{order:-1}.ToggleSwitch-module__disabled___GNGHj{cursor:not-allowed}.ToggleSwitch-module__root___IUqKD input{width:0;height:0;opacity:0;position:absolute}.ToggleSwitch-module__track___zFtXx{width:44px;height:24px;background:var(--border-color);border-radius:9999px;position:relative;transition:background .15s ease}.ToggleSwitch-module__thumb___gQ45C{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:9999px;box-shadow:0 1px 2px #0000000d;transition:transform .15s ease}.ToggleSwitch-module__root___IUqKD input:checked+.ToggleSwitch-module__track___zFtXx{background:var(--primary-color)}.ToggleSwitch-module__root___IUqKD input:checked+.ToggleSwitch-module__track___zFtXx .ToggleSwitch-module__thumb___gQ45C{transform:translate(20px)}.ToggleSwitch-module__label___4iQkR{color:var(--text-primary);font-weight:600}.ProviderNav-module__navContainer___Ym-Eg{position:fixed;left:var(--content-center-x, 50%);bottom:calc(12px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;pointer-events:auto;width:fit-content;max-width:calc(100vw - 24px)}.ProviderNav-module__navList___7nsum{position:relative;display:inline-flex;flex-direction:row;gap:6px;padding:10px 12px;--glass-blur: 12px;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);border:1px solid var(--glass-border);border-radius:999px;box-shadow:0 4px 24px #00000014;overflow-x:auto;scrollbar-width:none;max-width:inherit}.ProviderNav-module__navList___7nsum::-webkit-scrollbar{display:none}.ProviderNav-module__indicator___Ta8ib{position:absolute;top:0;left:0;pointer-events:none;opacity:0;border-radius:999px;background:#8b868029;box-shadow:inset 0 0 0 2px var(--primary-color);transition:transform .22s cubic-bezier(.22,1,.36,1),width .22s cubic-bezier(.22,1,.36,1),height .22s cubic-bezier(.22,1,.36,1),opacity .12s ease;will-change:transform,width,height}.ProviderNav-module__indicatorVisible___U7LEL{opacity:1}.ProviderNav-module__indicatorNoTransition___dtZdn{transition:none}.ProviderNav-module__navItem___LRkPI{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;border-radius:999px;cursor:pointer;transition:background-color .2s ease,transform .15s ease;flex:0 0 auto}.ProviderNav-module__navItem___LRkPI:hover{background:color-mix(in srgb,var(--text-primary) 10%,transparent);transform:scale(1.08)}.ProviderNav-module__navItem___LRkPI:active{transform:scale(.95)}.ProviderNav-module__navItem___LRkPI.ProviderNav-module__active___Jo0X6:hover{background:transparent;transform:none}.ProviderNav-module__icon___X-NJQ{width:24px;height:24px;object-fit:contain}.ProviderNav-module__active___Jo0X6{background:transparent;box-shadow:none}[data-theme=dark] .ProviderNav-module__navList___7nsum{box-shadow:0 4px 24px #0006}[data-theme=dark] .ProviderNav-module__indicator___Ta8ib{background:#8b868047}@media(max-width:1200px){.ProviderNav-module__navContainer___Ym-Eg{max-width:calc(100vw - 16px)}.ProviderNav-module__navList___7nsum{gap:6px;padding:8px 10px}.ProviderNav-module__navItem___LRkPI{width:36px;height:36px}.ProviderNav-module__icon___X-NJQ{width:22px;height:22px}}@media(prefers-reduced-motion:reduce){.ProviderNav-module__indicator___Ta8ib{transition:none}.ProviderNav-module__navItem___LRkPI{transition:background-color .2s ease}}.SecondaryScreenShell-module__container___9DAwq{display:flex;flex-direction:column;gap:24px;min-height:0}.SecondaryScreenShell-module__topBar___vHzq4{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);min-height:44px}.SecondaryScreenShell-module__topBarTitle___Q8LCy{min-width:0;text-align:center;font-size:16px;font-weight:650;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;justify-self:center}.SecondaryScreenShell-module__backButton___d6Zgy{padding-left:6px;padding-right:10px;justify-self:start;gap:0}.SecondaryScreenShell-module__backButton___d6Zgy>span:last-child{display:inline-flex;align-items:center;gap:6px}.SecondaryScreenShell-module__backIcon___R8Iyn{display:inline-flex;align-items:center;justify-content:center}.SecondaryScreenShell-module__backIcon___R8Iyn svg{display:block}.SecondaryScreenShell-module__backText___CODk7{font-weight:600;line-height:18px}.SecondaryScreenShell-module__rightSlot___ZvWJR{justify-self:end;display:flex;justify-content:flex-end}.SecondaryScreenShell-module__loadingState___4Jbsa{display:flex;align-items:center;justify-content:center;gap:8px;padding:48px 0;color:var(--text-secondary)}.SecondaryScreenShell-module__content___nVk3R{display:flex;flex-direction:column;gap:24px}.SecondaryScreenShell-module__contentWithFloatingAction___4gXgb{padding-bottom:calc(var(--secondary-shell-floating-action-height, 56px) + 12px + env(safe-area-inset-bottom))}.SecondaryScreenShell-module__floatingActionContainer___sSKk-{position:fixed;left:var(--content-center-x, 50%);bottom:calc(12px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;pointer-events:none;width:fit-content;max-width:calc(100vw - 24px)}.SecondaryScreenShell-module__floatingActionSurface___Wfab-{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;--glass-blur: 12px;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);border:1px solid var(--glass-border);box-shadow:0 4px 24px #00000014}[data-theme=dark] .SecondaryScreenShell-module__floatingActionSurface___Wfab-{box-shadow:0 4px 24px #0006}@media(max-width:1200px){.SecondaryScreenShell-module__floatingActionContainer___sSKk-{max-width:calc(100vw - 16px)}.SecondaryScreenShell-module__floatingActionSurface___Wfab-{padding:8px 10px}}.AiProvidersEditLayout-module__content___v2E8m{width:100%;max-width:960px;margin:0 auto}.AiProvidersEditLayout-module__floatingActions___PxOCK{display:inline-flex;align-items:center;gap:8px}.AiProvidersEditLayout-module__floatingBackButton___8aBq-{min-width:82px}.AiProvidersEditLayout-module__floatingSaveButton___mkAOu{min-width:88px}.AiProvidersEditLayout-module__upstreamApiKeyRow___z09Am{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.AiProvidersEditLayout-module__upstreamApiKeyHint___xz0n6{margin:0;color:var(--text-secondary);font-size:13px}.AiProvidersEditLayout-module__ampcodeUpstreamMappingsHeader___QmHOa{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.AiProvidersEditLayout-module__ampcodeUpstreamMappingsHeader___QmHOa label{margin:0}.AiProvidersEditLayout-module__ampcodeUpstreamMappingsList___L5-l5{display:flex;flex-direction:column;gap:12px}.AiProvidersEditLayout-module__ampcodeUpstreamMappingCard___bQzJ0{border:1px solid var(--border-color);border-radius:12px;background:var(--bg-secondary);padding:12px;display:flex;flex-direction:column;gap:8px}.AiProvidersEditLayout-module__ampcodeUpstreamMappingCardTop___V69Ba{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.AiProvidersEditLayout-module__ampcodeUpstreamMappingTitle___ofJgZ{font-size:12px;font-weight:600;color:var(--text-secondary)}.QuotaPage-module__container___CkTNE{display:flex;flex-direction:column;gap:24px}.QuotaPage-module__pageHeader___7RVAE{display:flex;flex-direction:column;gap:8px}.QuotaPage-module__pageTitle___c6BF7{font-size:28px;font-weight:700;color:var(--text-primary);margin:0}.QuotaPage-module__description___qDPuI{font-size:14px;color:var(--text-secondary);margin:0}.QuotaPage-module__headerActions___Jfu3A{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;min-width:0}.QuotaPage-module__headerActions___Jfu3A .btn.btn-sm{line-height:16px;min-width:0}.QuotaPage-module__headerActions___Jfu3A svg{display:block}@media(max-width:768px){.QuotaPage-module__headerActions___Jfu3A{width:100%;justify-content:stretch}}.QuotaPage-module__titleWrapper___lHVCF{display:flex;align-items:center;gap:8px;line-height:24px}.QuotaPage-module__countBadge___tuPLs{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 8px;border-radius:999px;font-size:13px;font-weight:600;color:var(--count-badge-text);background-color:var(--count-badge-bg);box-sizing:border-box}.QuotaPage-module__errorBox___Ub2Qs{padding:16px;background-color:#c657461a;border:1px solid var(--danger-color);border-radius:8px;color:var(--danger-color);font-size:14px}.QuotaPage-module__pageSizeSelect___1AaaU{padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;cursor:text;height:38px;box-sizing:border-box}.QuotaPage-module__pageSizeSelect___1AaaU:focus{outline:none;border-color:var(--primary-color)}.QuotaPage-module__statsInfo___coFxw{padding:8px 12px;background-color:var(--bg-secondary);border-radius:8px;font-size:13px;color:var(--text-secondary);white-space:nowrap;height:38px;box-sizing:border-box;display:flex;align-items:center}.QuotaPage-module__antigravityGrid___d29-f,.QuotaPage-module__claudeGrid___g3N0r,.QuotaPage-module__codexGrid___gQjcK,.QuotaPage-module__geminiCliGrid___R6KEW,.QuotaPage-module__kimiGrid___-9u7J{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}@media(max-width:768px){.QuotaPage-module__antigravityGrid___d29-f,.QuotaPage-module__claudeGrid___g3N0r,.QuotaPage-module__codexGrid___gQjcK,.QuotaPage-module__geminiCliGrid___R6KEW,.QuotaPage-module__kimiGrid___-9u7J{grid-template-columns:1fr}}.QuotaPage-module__antigravityControls___jdhuf,.QuotaPage-module__claudeControls___CJ9XX,.QuotaPage-module__codexControls___ZabMA,.QuotaPage-module__geminiCliControls___aWZsx,.QuotaPage-module__kimiControls___3WNBe{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.QuotaPage-module__antigravityControl___Z2Ti6,.QuotaPage-module__claudeControl___4J9Tz,.QuotaPage-module__codexControl___P4r4g,.QuotaPage-module__geminiCliControl___SIXi-,.QuotaPage-module__kimiControl___5rxbt{display:flex;flex-direction:column;gap:4px}.QuotaPage-module__antigravityControl___Z2Ti6 label,.QuotaPage-module__claudeControl___4J9Tz label,.QuotaPage-module__codexControl___P4r4g label,.QuotaPage-module__geminiCliControl___SIXi- label,.QuotaPage-module__kimiControl___5rxbt label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.QuotaPage-module__viewModeToggle___BHo1O{display:inline-flex;gap:4px;align-items:center;padding:3px;border-radius:999px;background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 88%,transparent);box-shadow:inset 0 1px #ffffff29}@media(max-width:768px){.QuotaPage-module__viewModeToggle___BHo1O{flex:1 1 auto;width:100%}}.QuotaPage-module__viewModeButton___jjKnb.btn.btn-sm{padding:8px 14px;border-radius:999px;border-color:transparent;background:transparent;color:var(--text-secondary);box-shadow:none}.QuotaPage-module__viewModeButton___jjKnb.btn.btn-sm:hover:not(:disabled){border-color:transparent;background:color-mix(in srgb,var(--bg-hover) 72%,transparent);color:var(--text-primary)}.QuotaPage-module__viewModeButton___jjKnb.btn.btn-sm>span{white-space:nowrap}@media(max-width:768px){.QuotaPage-module__viewModeButton___jjKnb.btn.btn-sm{flex:1 1 0}}.QuotaPage-module__viewModeButtonActive___LGwRk.btn.btn-sm{background:var(--primary-color);border-color:var(--primary-color);color:var(--primary-contrast, #fff);box-shadow:0 8px 18px -14px #00000073}.QuotaPage-module__viewModeButtonActive___LGwRk.btn.btn-sm:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:var(--primary-contrast, #fff)}.QuotaPage-module__refreshAllButton___c9-I-.btn.btn-sm{padding-inline:14px;border-radius:999px;background:color-mix(in srgb,var(--primary-color) 12%,var(--bg-secondary));border-color:color-mix(in srgb,var(--primary-color) 22%,var(--border-color));color:var(--text-primary)}.QuotaPage-module__refreshAllButton___c9-I-.btn.btn-sm>span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.QuotaPage-module__refreshAllButton___c9-I-.btn.btn-sm:hover:not(:disabled){background:color-mix(in srgb,var(--primary-color) 16%,var(--bg-secondary));border-color:color-mix(in srgb,var(--primary-color) 34%,var(--border-color))}@media(max-width:768px){.QuotaPage-module__refreshAllButton___c9-I-.btn.btn-sm{width:100%;justify-content:center}}[data-theme=dark] .QuotaPage-module__viewModeToggle___BHo1O{box-shadow:inset 0 1px #ffffff0a}[data-theme=dark] .QuotaPage-module__refreshAllButton___c9-I-.btn.btn-sm{background:color-mix(in srgb,var(--primary-color) 18%,var(--bg-secondary));border-color:color-mix(in srgb,var(--primary-color) 32%,var(--border-color))}@media(max-width:768px){.QuotaPage-module__headerActions___Jfu3A{gap:4px}}.QuotaPage-module__claudeCard___z9zBZ{background-image:linear-gradient(180deg,#fbece42e,#fbece400)}.QuotaPage-module__antigravityCard___0jKaG{background-image:linear-gradient(180deg,#e0f7fa1f,#e0f7fa00)}.QuotaPage-module__codexCard___2xhZX{background-image:linear-gradient(180deg,#eae7ff2e,#eae7ff00)}.QuotaPage-module__geminiCliCard___i8Qjn{background-image:linear-gradient(180deg,#e0e8ff33,#e0e8ff00)}.QuotaPage-module__kimiCard___WWvTD{background-image:linear-gradient(180deg,#dce8ff33,#dce8ff00)}.QuotaPage-module__quotaSection___Yb6bk{display:flex;flex-direction:column;gap:8px;padding-top:8px;margin-top:4px;border-top:1px dashed var(--border-color)}.QuotaPage-module__quotaRow___uNjD0{display:flex;flex-direction:column;gap:4px}.QuotaPage-module__quotaRowHeader___jr9zd{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}@media(max-width:768px){.QuotaPage-module__quotaRowHeader___jr9zd{flex-direction:column;align-items:flex-start}}.QuotaPage-module__quotaModel___-3mcR{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}@media(max-width:768px){.QuotaPage-module__quotaModel___-3mcR{white-space:normal}}.QuotaPage-module__quotaBar___ATY20{height:8px;background-color:var(--bg-tertiary);border-radius:999px;overflow:hidden}.QuotaPage-module__quotaBarFill___arMGf{height:100%;background-color:var(--success-color, #22c55e);transition:width .2s ease}.QuotaPage-module__quotaBarFillHigh___yfdzz{background-color:var(--success-color, #22c55e)}.QuotaPage-module__quotaBarFillMedium___PbU2j{background-color:var(--quota-medium-color, #e0aa14)}.QuotaPage-module__quotaBarFillLow___1dvgT{background-color:var(--danger-color)}.QuotaPage-module__quotaMeta___2Gr-S{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);white-space:nowrap}@media(max-width:768px){.QuotaPage-module__quotaMeta___2Gr-S{justify-content:flex-start}}.QuotaPage-module__quotaPercent___dwFKN{font-weight:600;color:var(--text-primary)}.QuotaPage-module__quotaReset___AQC0c{color:var(--text-tertiary)}.QuotaPage-module__quotaAmount___liJkK{color:var(--text-secondary)}.QuotaPage-module__quotaMessage___tXEKQ{font-size:12px;color:var(--text-tertiary);text-align:center;padding:8px 0}.QuotaPage-module__quotaMessageAction___lCJz4{width:100%;border:none;background:none;cursor:pointer;text-decoration:underline}.QuotaPage-module__quotaMessageAction___lCJz4:hover:not(:disabled){color:var(--text-primary)}.QuotaPage-module__quotaMessageAction___lCJz4:disabled{cursor:not-allowed;opacity:.6;text-decoration:none}.QuotaPage-module__quotaError___rIKP-{font-size:12px;color:var(--danger-color);background-color:#c6574614;border:1px solid var(--danger-color);border-radius:4px;padding:4px 8px}.QuotaPage-module__quotaWarning___phfIc{font-size:12px;color:var(--warning-text);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px;padding:4px 8px}.QuotaPage-module__codexPlan___cNsir{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.QuotaPage-module__codexPlanLabel___NR4tn{color:var(--text-tertiary)}.QuotaPage-module__codexPlanValue___TZDzO{font-weight:600;color:var(--text-primary);text-transform:capitalize}.QuotaPage-module__premiumPlanValue___7ouKX{position:relative;display:inline-flex;align-items:center;font-weight:700;font-size:12px;padding:2px 8px;border-radius:999px;overflow:visible;isolation:isolate;background:radial-gradient(circle at 18% 24%,#fffffff5,#ffffffb8 18%,#fff0 42%),linear-gradient(135deg,#fff9e3,#ffe07f 52%,#e0aa14);border:1px solid rgba(217,165,22,.72);box-shadow:0 1px 3px #855c0029,0 0 0 1px #ffffff38 inset,0 0 16px #ffd66247;color:#6b4b00;text-shadow:0 1px 0 rgba(255,255,255,.55);text-transform:capitalize}.QuotaPage-module__premiumPlanValue___7ouKX:before{content:"";position:absolute;inset:-6px -9px;border-radius:inherit;background:radial-gradient(circle at 18% 22%,#ffffffe6,#ffed9e94 32%,#ffd75b00 72%);--glass-blur: 9px;filter:var(--glass-filter);opacity:.75;pointer-events:none;z-index:-1}@media(dynamic-range:high){.QuotaPage-module__premiumPlanValue___7ouKX{background:radial-gradient(circle at 18% 24%,color(display-p3 1 .99 .94),color(display-p3 1 .97 .82 / .82) 18%,color(display-p3 1 .95 .7 / 0) 42%),linear-gradient(135deg,color(display-p3 1 .98 .88),color(display-p3 .99 .86 .34),color(display-p3 .92 .68 .05));border-color:color(display-p3 .9 .73 .12 / .85);box-shadow:0 1px 4px color(display-p3 .45 .28 0 / .22),0 0 0 1px color(display-p3 1 .98 .86 / .3) inset,0 0 18px color(display-p3 1 .89 .2 / .36);color:color(display-p3 .43 .3 0)}}@supports (color: color(rec2100-linear 1 1 1)){@media(dynamic-range:high){.QuotaPage-module__premiumPlanValue___7ouKX{dynamic-range-limit:no-limit;box-shadow:0 1px 4px color(display-p3 .45 .28 0 / .22),0 0 0 1px color(display-p3 1 .98 .86 / .3) inset,0 0 14px color(display-p3 1 .89 .2 / .36),0 0 30px color(rec2100-linear 3.6 2.9 .7 / .48)}.QuotaPage-module__premiumPlanValue___7ouKX:before{background:radial-gradient(circle at 18% 22%,color(rec2100-linear 6.5 6.2 5.4 / .92),color(rec2100-linear 2.4 2 .6 / .62) 34%,color(rec2100-linear 1 .85 .12 / 0) 76%);opacity:.92}}}[data-theme=dark] .QuotaPage-module__premiumPlanValue___7ouKX{background:radial-gradient(circle at 18% 24%,#ffe58a52,#ffd6622e 18%,#ffd66200 44%),linear-gradient(135deg,#4f3d0b,#6e5510 48%,#8f6d10);border-color:#e2b432b3;box-shadow:0 1px 6px #00000047,0 0 0 1px #ffdc7829 inset,0 0 18px #ffc42c38;color:#fff0a8;text-shadow:0 0 10px rgba(255,212,79,.22)}[data-theme=dark] .QuotaPage-module__premiumPlanValue___7ouKX:before{background:radial-gradient(circle at 18% 24%,#ffe58a6b,#ffc54247 34%,#fb00 74%);opacity:.8}@media(dynamic-range:high){[data-theme=dark] .QuotaPage-module__premiumPlanValue___7ouKX{background:radial-gradient(circle at 18% 24%,color(display-p3 1 .89 .38 / .38),color(display-p3 1 .82 .2 / .2) 18%,color(display-p3 1 .82 .2 / 0) 44%),linear-gradient(135deg,color(display-p3 .33 .25 .04),color(display-p3 .48 .36 .08),color(display-p3 .62 .46 .09));border-color:color(display-p3 .78 .6 .16 / .78);box-shadow:0 1px 8px #00000052,0 0 0 1px color(display-p3 .95 .8 .24 / .18) inset,0 0 20px color(display-p3 1 .76 .1 / .28);color:color(display-p3 1 .93 .58)}}@supports (color: color(rec2100-linear 1 1 1)){@media(dynamic-range:high){[data-theme=dark] .QuotaPage-module__premiumPlanValue___7ouKX{dynamic-range-limit:no-limit;box-shadow:0 1px 8px #00000052,0 0 0 1px color(display-p3 .95 .8 .24 / .18) inset,0 0 16px color(display-p3 1 .76 .1 / .28),0 0 28px color(rec2100-linear 4.8 3.5 .45 / .4)}[data-theme=dark] .QuotaPage-module__premiumPlanValue___7ouKX:before{background:radial-gradient(circle at 18% 24%,color(rec2100-linear 5.6 4.1 .75 / .64),color(rec2100-linear 2.2 1.5 .2 / .34) 34%,color(rec2100-linear 1.2 .9 .06 / 0) 74%);opacity:.95}}}.QuotaPage-module__fileCard___7ZTk-{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.QuotaPage-module__fileCard___7ZTk-:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a;border-color:#2563eb33}.QuotaPage-module__cardHeader___vBGld{display:flex;align-items:center;gap:8px;min-height:28px}.QuotaPage-module__typeBadge___ubtCA{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.QuotaPage-module__fileName___ATlvN{font-size:14px;font-weight:600;color:var(--text-primary);word-break:break-all;line-height:1.4}.QuotaPage-module__pagination___W2eGv{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-color)}.QuotaPage-module__pageInfo___yNU7E{font-size:13px;color:var(--text-secondary);padding:4px 16px;background-color:var(--bg-secondary);border-radius:8px}.QuotaPage-module__warningOverlay___lVjB7{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.QuotaPage-module__warningModal___2pPNd{background-color:var(--bg-primary);border-radius:12px;padding:24px;max-width:400px;text-align:center;box-shadow:0 10px 15px -3px #0000001a}.QuotaPage-module__warningModal___2pPNd p{margin:0 0 16px;color:var(--text-primary);font-size:14px;line-height:1.6}.AuthFilesPage-module__container___u1c4k{display:flex;flex-direction:column;gap:24px;padding-bottom:calc(var(--auth-files-action-bar-height, 0px) + 16px + env(safe-area-inset-bottom))}.AuthFilesPage-module__pageHeader___DVV58{display:flex;flex-direction:column;gap:8px}.AuthFilesPage-module__pageTitle___1TOZn{font-size:28px;font-weight:700;color:var(--text-primary);margin:0}.AuthFilesPage-module__description___N3RjR{font-size:14px;color:var(--text-secondary);margin:0}.AuthFilesPage-module__headerActions___j0ROO{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:0;max-width:100%}.AuthFilesPage-module__headerActions___j0ROO .btn{min-width:0}@media(max-width:768px){.AuthFilesPage-module__headerActions___j0ROO{width:100%}}.AuthFilesPage-module__titleWrapper___PLYyj{display:flex;align-items:center;gap:8px;line-height:24px}.AuthFilesPage-module__countBadge___DQWug{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 8px;border-radius:999px;font-size:13px;font-weight:600;color:var(--count-badge-text);background-color:var(--count-badge-bg);box-sizing:border-box}.AuthFilesPage-module__errorBox___A9vF2{padding:16px;background-color:#c657461a;border:1px solid var(--danger-color);border-radius:8px;color:var(--danger-color);font-size:14px;margin-bottom:16px}.AuthFilesPage-module__filterSection___qQ3Zo{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.AuthFilesPage-module__filterRail___YRraq{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);background:color-mix(in srgb,var(--bg-secondary) 60%,transparent)}@media(max-width:768px){.AuthFilesPage-module__filterRail___YRraq{padding:10px}}.AuthFilesPage-module__filterAllIconWrap___jMF1r{position:relative;border-color:color-mix(in srgb,var(--primary-color) 20%,var(--border-color));background:linear-gradient(145deg,color-mix(in srgb,var(--bg-secondary) 94%,var(--primary-color) 8%),color-mix(in srgb,var(--bg-primary) 92%,var(--primary-color) 5%));box-shadow:0 10px 22px -18px color-mix(in srgb,var(--primary-color) 50%,transparent)}.AuthFilesPage-module__filterAllIcon___mqchB{position:relative;z-index:1;display:block;color:color-mix(in srgb,var(--primary-color) 70%,var(--text-primary))}.AuthFilesPage-module__filterContent___xfK-G{display:flex;flex-direction:column;gap:16px;min-width:0}.AuthFilesPage-module__filterTags___A24A3{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}.AuthFilesPage-module__filterTag___-YnCU{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 8px;border-radius:10px;font-size:13px;font-weight:600;line-height:1.2;border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);background:color-mix(in srgb,var(--bg-secondary) 70%,transparent);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.AuthFilesPage-module__filterTag___-YnCU:hover{border-color:color-mix(in srgb,var(--filter-color) 40%,var(--border-color));background:color-mix(in srgb,var(--bg-secondary) 90%,transparent);color:var(--text-primary)}.AuthFilesPage-module__filterTagActive___Rnbcs{border-color:color-mix(in srgb,var(--filter-color) 50%,var(--border-color));background:color-mix(in srgb,var(--filter-surface) 22%,var(--bg-secondary));color:var(--text-primary)}.AuthFilesPage-module__filterTagActive___Rnbcs .AuthFilesPage-module__filterTagIconWrap___pN6-v{border-color:color-mix(in srgb,var(--filter-color) 40%,transparent)}.AuthFilesPage-module__filterTagLabel___pP8yh{display:inline-flex;align-items:center;gap:10px;min-width:0}.AuthFilesPage-module__filterTagIconWrap___pN6-v{width:24px;height:24px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid color-mix(in srgb,var(--border-color) 50%,transparent);background:color-mix(in srgb,var(--bg-tertiary) 60%,transparent)}.AuthFilesPage-module__filterTagIcon___j068V{width:16px;height:16px;flex:0 0 auto;object-fit:contain}.AuthFilesPage-module__filterTagIconFallback___4ALgn{color:var(--filter-color);font-size:14px;font-weight:700;line-height:1}.AuthFilesPage-module__filterTagText___b9X07{min-width:0;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AuthFilesPage-module__filterTagCount___RxSVk{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:6px;background:color-mix(in srgb,var(--filter-color) 12%,transparent);color:var(--text-tertiary);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;flex:0 0 auto;line-height:1;text-align:center}.AuthFilesPage-module__filterTagActive___Rnbcs .AuthFilesPage-module__filterTagCount___RxSVk{background:color-mix(in srgb,var(--filter-color) 22%,transparent);color:var(--filter-color)}.AuthFilesPage-module__filterControlsPanel___V-IZn{padding:14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);background:color-mix(in srgb,var(--bg-secondary) 50%,transparent)}.AuthFilesPage-module__filterControls___PfZDU{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(2,minmax(120px,.72fr)) minmax(220px,auto);gap:16px;align-items:flex-end}.AuthFilesPage-module__filterControls___PfZDU .form-group{margin:0}.AuthFilesPage-module__filterControls___PfZDU .input{height:40px;box-sizing:border-box}@media(min-width:769px)and (max-width:1024px){.AuthFilesPage-module__filterControls___PfZDU{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(140px,.8fr))}}@media(max-width:768px){.AuthFilesPage-module__filterControls___PfZDU{grid-template-columns:1fr}}.AuthFilesPage-module__filterItem___Kko4o{display:flex;flex-direction:column;gap:6px;min-width:0}.AuthFilesPage-module__filterItem___Kko4o label{font-size:11px;color:var(--text-tertiary);font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.AuthFilesPage-module__filterToggleItem___m2sGr{min-width:0}@media(min-width:769px)and (max-width:1024px){.AuthFilesPage-module__filterToggleItem___m2sGr{grid-column:1/-1}}.AuthFilesPage-module__filterToggleGroup___TdMH-{display:grid;grid-template-columns:1fr;gap:8px;min-height:40px}.AuthFilesPage-module__filterToggleCard___N4oxi{display:flex;align-items:center;min-height:40px;padding:0 2px;border-radius:8px;border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);background:color-mix(in srgb,var(--bg-secondary) 50%,transparent)}.AuthFilesPage-module__filterToggle___mi9Sd{display:flex;align-items:center;min-height:40px;padding-inline:2px}.AuthFilesPage-module__filterToggleLabel___5rAlu{display:inline-flex;align-items:center;color:var(--text-primary);font-size:13px;font-weight:600;white-space:nowrap}.AuthFilesPage-module__pageSizeSelect___yEBvp{width:100%;padding:8px 12px;border:1px solid color-mix(in srgb,var(--border-color) 70%,transparent);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:text;height:40px;box-sizing:border-box}.AuthFilesPage-module__pageSizeSelect___yEBvp:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary-color) 12%,transparent)}.AuthFilesPage-module__fileGrid___ajvi5{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.AuthFilesPage-module__fileGridQuotaManaged___kOhRx{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.AuthFilesPage-module__fileGridCompact___meaAl{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.AuthFilesPage-module__antigravityGrid___N7Got{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:769px)and (max-width:1024px){.AuthFilesPage-module__antigravityGrid___N7Got{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.AuthFilesPage-module__antigravityGrid___N7Got{grid-template-columns:1fr}}.AuthFilesPage-module__codexGrid___vLB3H{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:769px)and (max-width:1024px){.AuthFilesPage-module__codexGrid___vLB3H{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.AuthFilesPage-module__codexGrid___vLB3H{grid-template-columns:1fr}}.AuthFilesPage-module__geminiCliGrid___5IwI3{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:769px)and (max-width:1024px){.AuthFilesPage-module__geminiCliGrid___5IwI3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.AuthFilesPage-module__geminiCliGrid___5IwI3{grid-template-columns:1fr}}.AuthFilesPage-module__antigravityControls___gn3rt{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.AuthFilesPage-module__antigravityControl___rQ8wo{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__antigravityControl___rQ8wo label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.AuthFilesPage-module__codexControls___Clxl6{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.AuthFilesPage-module__codexControl___E7Mtk{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__codexControl___E7Mtk label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.AuthFilesPage-module__geminiCliControls___Y3V2-{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.AuthFilesPage-module__geminiCliControl___ZOIpb{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__geminiCliControl___ZOIpb label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.AuthFilesPage-module__antigravityCard___rt36l{background-image:linear-gradient(180deg,rgba(224,247,250,.06),transparent)}.AuthFilesPage-module__claudeCard___L-dIs{background-image:linear-gradient(180deg,rgba(251,236,228,.08),transparent)}.AuthFilesPage-module__codexCard___FiEQ6{background-image:linear-gradient(180deg,rgba(234,231,255,.08),transparent)}.AuthFilesPage-module__geminiCliCard___4PuI5{background-image:linear-gradient(180deg,rgba(224,232,255,.08),transparent)}.AuthFilesPage-module__kimiCard___zWq5C{background-image:linear-gradient(180deg,rgba(220,232,255,.08),transparent)}.AuthFilesPage-module__quotaSection___hXy5f{display:flex;flex-direction:column;gap:8px;padding-top:8px;margin-top:2px;border-top:1px dashed color-mix(in srgb,var(--border-color) 82%,transparent)}.AuthFilesPage-module__quotaRow___P2dUi{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__quotaRowHeader___IKu7H{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}@media(max-width:768px){.AuthFilesPage-module__quotaRowHeader___IKu7H{flex-direction:column;align-items:flex-start}}.AuthFilesPage-module__quotaModel___huwv6{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}@media(max-width:768px){.AuthFilesPage-module__quotaModel___huwv6{white-space:normal}}.AuthFilesPage-module__quotaBar___ex7am{height:8px;background-color:var(--bg-tertiary);border-radius:999px;overflow:hidden}.AuthFilesPage-module__quotaBarFill___KqH7M{height:100%;background-color:var(--success-color, #22c55e);transition:width .2s ease}.AuthFilesPage-module__quotaBarFillHigh___F8WGP{background-color:var(--success-color, #22c55e)}.AuthFilesPage-module__quotaBarFillMedium___ae0Pi{background-color:var(--quota-medium-color, #e0aa14)}.AuthFilesPage-module__quotaBarFillLow___dX4lb{background-color:var(--danger-color)}.AuthFilesPage-module__quotaMeta___HcbUH{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);white-space:nowrap}@media(max-width:768px){.AuthFilesPage-module__quotaMeta___HcbUH{justify-content:flex-start}}.AuthFilesPage-module__quotaPercent___6J9UR{font-weight:600;color:var(--text-primary)}.AuthFilesPage-module__quotaReset___bmEse{color:var(--text-tertiary)}.AuthFilesPage-module__quotaAmount___k3Wx6{color:var(--text-secondary)}.AuthFilesPage-module__quotaMessage___1w3oM{font-size:12px;color:var(--text-tertiary);text-align:center;padding:8px 0}.AuthFilesPage-module__quotaMessageAction___9r9cq{width:100%;border:none;background:none;cursor:pointer;text-decoration:underline}.AuthFilesPage-module__quotaMessageAction___9r9cq:hover:not(:disabled){color:var(--text-primary)}.AuthFilesPage-module__quotaMessageAction___9r9cq:disabled{cursor:not-allowed;opacity:.6;text-decoration:none}.AuthFilesPage-module__quotaError___dEV4B{font-size:12px;color:var(--danger-color);background-color:#c6574614;border:1px solid var(--danger-color);border-radius:4px;padding:4px 8px}.AuthFilesPage-module__quotaWarning___G1Tvc{font-size:12px;color:var(--warning-text);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px;padding:4px 8px}.AuthFilesPage-module__codexPlan___4IbAU{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.AuthFilesPage-module__codexPlanLabel___RZN4K{color:var(--text-tertiary)}.AuthFilesPage-module__codexPlanValue___Z0Kgr{font-weight:600;color:var(--text-primary);text-transform:capitalize}.AuthFilesPage-module__premiumPlanValue___9WyhU{display:inline-flex;align-items:center;font-weight:700;font-size:12px;padding:2px 8px;border-radius:6px;background:#d9a51626;border:1px solid rgba(217,165,22,.3);color:#e0aa14;text-transform:capitalize}[data-theme=dark] .AuthFilesPage-module__premiumPlanValue___9WyhU{background:#e2b4321f;border-color:#e2b43247;color:#ffd862}.AuthFilesPage-module__fileCard___j9Jtq{position:relative;overflow:hidden;background-color:color-mix(in srgb,var(--bg-primary) 85%,transparent);--glass-blur: 8px;backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);border:1px solid color-mix(in srgb,var(--border-color) 70%,transparent);border-radius:12px;padding:16px;display:flex;flex-direction:column;min-height:100%;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.AuthFilesPage-module__fileCard___j9Jtq:hover{transform:translateY(-1px);box-shadow:0 8px 24px -12px #00000026;border-color:color-mix(in srgb,var(--primary-color) 28%,var(--border-color))}.AuthFilesPage-module__fileCardSelected___9i7m1{border-color:color-mix(in srgb,var(--primary-color) 60%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary-color) 30%,transparent)}.AuthFilesPage-module__fileCardSelected___9i7m1:hover{border-color:color-mix(in srgb,var(--primary-color) 60%,transparent)}.AuthFilesPage-module__fileCardDisabled___hbSbQ{opacity:.72}.AuthFilesPage-module__fileCardDisabled___hbSbQ:hover{transform:none;box-shadow:none;border-color:var(--border-color)}.AuthFilesPage-module__fileCardCompact___u9yZu{padding:12px;border-radius:10px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__fileCardMain___6JwC7,.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardHeader___uJMtL{gap:8px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardSelection___wOE11{margin-top:6px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__providerAvatar___4xnYu{width:34px;height:34px;border-radius:8px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__providerAvatarImage___QL5oK{width:16px;height:16px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__providerAvatarFallback___H9Mgn{font-size:14px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardHeaderContent___rh9WP{gap:3px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardBadgeRow___SeOzZ{gap:4px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__typeBadge___Dtm6A,.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__stateBadge___Cq7id{padding:3px 7px;font-size:10px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__fileName___DZ39s{font-size:13px;line-height:1.3;-webkit-line-clamp:1}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__healthStatusMessage___KKfW-{padding:6px 8px;border-radius:8px;font-size:11px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__quotaSection___hXy5f{display:none}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardActions___mJgkW{gap:6px;padding-top:6px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardActionsMain___9Lsw7{gap:4px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__primaryActionButton___ex-Us.btn.btn-sm{flex:0 1 auto;min-width:0;padding-inline:8px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__cardUtilityActions___LX5uj{gap:2px;padding:2px;border-radius:6px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__iconButton___XT5TY.btn.btn-sm{width:28px;height:28px;min-width:28px;border-radius:6px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__statusToggle___H8bxD{gap:6px}.AuthFilesPage-module__fileCardCompact___u9yZu .AuthFilesPage-module__statusToggleLabel___Wdwo7{font-size:10px}.AuthFilesPage-module__fileCardLayout___HRpBj{display:flex;align-items:stretch;gap:16px;min-height:100%}.AuthFilesPage-module__fileCardMain___6JwC7{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.AuthFilesPage-module__cardHeader___uJMtL{display:flex;align-items:flex-start;gap:10px}.AuthFilesPage-module__cardSelection___wOE11{flex-shrink:0;margin-top:8px}.AuthFilesPage-module__providerAvatar___4xnYu{width:40px;height:40px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid color-mix(in srgb,var(--border-color) 60%,transparent)}.AuthFilesPage-module__providerAvatarImage___QL5oK{width:22px;height:22px;object-fit:contain}.AuthFilesPage-module__providerAvatarFallback___H9Mgn{font-size:18px;font-weight:700;line-height:1}.AuthFilesPage-module__cardHeaderContent___rh9WP{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.AuthFilesPage-module__cardBadgeRow___SeOzZ{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.AuthFilesPage-module__typeBadge___Dtm6A{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;line-height:1;border:1px solid transparent;white-space:nowrap;flex-shrink:0}.AuthFilesPage-module__stateBadge___Cq7id{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:700;line-height:1;white-space:nowrap;letter-spacing:.02em}.AuthFilesPage-module__stateBadgeActive___Fo6ts{color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5);border:1px solid var(--success-badge-border, #6ee7b7)}.AuthFilesPage-module__stateBadgeWarning___vMjci{color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-border)}.AuthFilesPage-module__stateBadgeDisabled___uB-Ra{color:var(--text-secondary);background:color-mix(in srgb,var(--bg-tertiary) 86%,transparent);border:1px solid var(--border-color)}.AuthFilesPage-module__stateBadgeVirtual___Ig7fr{color:var(--text-secondary);background:color-mix(in srgb,var(--bg-tertiary) 82%,transparent);border:1px dashed color-mix(in srgb,var(--border-primary) 90%,transparent)}.AuthFilesPage-module__fileName___DZ39s{font-size:14px;font-weight:800;color:var(--text-primary);word-break:break-all;line-height:1.4;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;letter-spacing:-.01em}.AuthFilesPage-module__cardMeta___H6kAQ{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:0 2px}.AuthFilesPage-module__cardMetaCompact___h-CkT{gap:3px 12px}.AuthFilesPage-module__cardMetaCompact___h-CkT .AuthFilesPage-module__metaLabel___4mGPs{font-size:10px}.AuthFilesPage-module__cardMetaCompact___h-CkT .AuthFilesPage-module__metaValue___VKbWa{font-size:11px}.AuthFilesPage-module__metaItem___f62C0{display:inline-flex;align-items:baseline;gap:5px;min-width:0;padding:0;border:none;background:none}.AuthFilesPage-module__metaLabel___4mGPs{font-size:11px;font-weight:500;color:var(--text-tertiary);line-height:1.2;white-space:nowrap}.AuthFilesPage-module__metaLabel___4mGPs:after{content:":"}.AuthFilesPage-module__metaValue___VKbWa{min-width:0;font-size:12px;font-weight:600;color:var(--text-secondary);line-height:1.4;word-break:break-word}.AuthFilesPage-module__priorityBadge___vHY0g{min-width:0}.AuthFilesPage-module__priorityValue___cH2dN{font-variant-numeric:tabular-nums}.AuthFilesPage-module__noteText___xsgqc{font-size:12px;color:var(--text-secondary);line-height:1.5;display:flex;gap:6px;align-items:flex-start;min-width:0}.AuthFilesPage-module__noteLabel___DrD8k{flex:0 0 auto;color:var(--text-tertiary);font-weight:600}.AuthFilesPage-module__noteValue___-wZpH{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0;word-break:break-word}.AuthFilesPage-module__sortSelect___4fEjm{width:100%;min-width:0}.AuthFilesPage-module__healthStatusMessage___KKfW-{display:flex;align-items:flex-start;gap:6px;font-size:11px;color:var(--warning-text);background-color:color-mix(in srgb,var(--warning-bg) 60%,transparent);border:1px solid color-mix(in srgb,var(--warning-border) 60%,transparent);border-radius:8px;padding:8px 10px;word-break:break-word}.AuthFilesPage-module__messageIcon___X3Cwx{flex-shrink:0;margin-top:1px}.AuthFilesPage-module__cardInsights___ci5AY{display:flex;flex-direction:column;gap:8px;padding:0 2px}.AuthFilesPage-module__cardInsightsCompact___y0Q4G{gap:6px}.AuthFilesPage-module__cardStats___JQ4ig{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.AuthFilesPage-module__cardStatsCompact___gRvUT{gap:6px}.AuthFilesPage-module__cardStatsCompact___gRvUT .AuthFilesPage-module__statPill___wFsBu{padding:3px 8px}.AuthFilesPage-module__cardStatsCompact___gRvUT .AuthFilesPage-module__statLabel___x0iKO{font-size:10px}.AuthFilesPage-module__cardStatsCompact___gRvUT .AuthFilesPage-module__statValue___0Cyg5{font-size:12px}.AuthFilesPage-module__statPill___wFsBu{display:inline-flex;align-items:baseline;gap:5px;min-width:0;padding:4px 10px;border-radius:999px;border:none}.AuthFilesPage-module__statLabel___x0iKO{font-size:11px;font-weight:600;line-height:1}.AuthFilesPage-module__statValue___0Cyg5{font-size:13px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.AuthFilesPage-module__statSuccess___mh8iR{background:color-mix(in srgb,var(--success-badge-bg, #d1fae5) 50%,transparent);color:var(--success-badge-text, #065f46)}.AuthFilesPage-module__statFailure___ivDGu{background:color-mix(in srgb,var(--failure-badge-bg) 50%,transparent);color:var(--failure-badge-text)}.AuthFilesPage-module__statusPanel___jxcFi{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__statusPanelCompact___qla9F{gap:3px}.AuthFilesPage-module__statusPanelCompact___qla9F .AuthFilesPage-module__statusPanelLabel___D3k8N{display:none}.AuthFilesPage-module__statusPanelCompact___qla9F .AuthFilesPage-module__statusBar___n-3Gp{flex-wrap:wrap;gap:8px;row-gap:6px}.AuthFilesPage-module__statusPanelCompact___qla9F .AuthFilesPage-module__statusBlocks___DpQaY{gap:2px}.AuthFilesPage-module__statusPanelCompact___qla9F .AuthFilesPage-module__statusBlockWrapper___XCgvC{min-width:5px}.AuthFilesPage-module__statusPanelCompact___qla9F .AuthFilesPage-module__statusRate___LZm5e{margin-left:auto;padding:5px 7px;font-size:11px}.AuthFilesPage-module__statusPanelLabel___D3k8N{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.AuthFilesPage-module__statusBar___n-3Gp{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:0;max-width:none}@media(max-width:768px){.AuthFilesPage-module__statusBar___n-3Gp{flex-direction:column;align-items:stretch}}.AuthFilesPage-module__statusBlocks___DpQaY{display:flex;gap:3px;flex:1;min-width:0;position:relative}.AuthFilesPage-module__statusBlockWrapper___XCgvC{flex:1;min-width:5px;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}.AuthFilesPage-module__statusBlock___RPMAs{width:100%;height:6px;border-radius:999px;transition:transform .15s ease,opacity .15s ease}.AuthFilesPage-module__statusBlockWrapper___XCgvC:hover .AuthFilesPage-module__statusBlock___RPMAs,.AuthFilesPage-module__statusBlockWrapper___XCgvC.AuthFilesPage-module__statusBlockActive___pjNyd .AuthFilesPage-module__statusBlock___RPMAs{transform:scaleY(1.6);opacity:.9}.AuthFilesPage-module__statusBlockIdle___6Uc0C{background-color:var(--border-secondary, #e5e7eb)}.AuthFilesPage-module__statusTooltip___skNaB{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-quinary, var(--bg-primary, #fff));border:1px solid var(--border-secondary, #e5e7eb);border-radius:10px;padding:8px 10px;font-size:11px;line-height:1.5;white-space:nowrap;box-shadow:0 8px 24px #00000024;z-index:1000;pointer-events:none;color:var(--text-primary)}.AuthFilesPage-module__statusTooltip___skNaB:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--bg-quinary, var(--bg-primary, #fff))}.AuthFilesPage-module__statusTooltip___skNaB:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-secondary, #e5e7eb)}.AuthFilesPage-module__statusTooltipLeft___ZK0OM{left:0;transform:translate(0)}.AuthFilesPage-module__statusTooltipLeft___ZK0OM:after,.AuthFilesPage-module__statusTooltipLeft___ZK0OM:before{left:8px;transform:none}.AuthFilesPage-module__statusTooltipRight___MrcVP{left:auto;right:0;transform:translate(0)}.AuthFilesPage-module__statusTooltipRight___MrcVP:after,.AuthFilesPage-module__statusTooltipRight___MrcVP:before{left:auto;right:8px;transform:none}.AuthFilesPage-module__tooltipTime___6rx7A{color:var(--text-secondary);display:block;margin-bottom:2px}.AuthFilesPage-module__tooltipStats___rDF8h{display:flex;align-items:center;gap:8px}.AuthFilesPage-module__tooltipSuccess___DygUj{color:var(--success-color, #22c55e)}.AuthFilesPage-module__tooltipFailure___Som0h{color:var(--danger-color, #ef4444)}.AuthFilesPage-module__tooltipRate___gbhZZ{color:var(--text-secondary);margin-left:2px}.AuthFilesPage-module__statusRate___LZm5e{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;white-space:nowrap;padding:6px 10px;border-radius:999px;background:var(--bg-tertiary);flex-shrink:0}.AuthFilesPage-module__statusRateHigh___seYyb{color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5)}.AuthFilesPage-module__statusRateMedium___aNblo{color:var(--warning-text, #92400e);background:var(--warning-bg, #fef3c7)}.AuthFilesPage-module__statusRateLow___BxxBi{color:var(--failure-badge-text);background:var(--failure-badge-bg)}@media(max-width:768px){.AuthFilesPage-module__statusTooltip___skNaB{font-size:12px;padding:8px 12px}.AuthFilesPage-module__statusBlocks___DpQaY{min-width:0}}.AuthFilesPage-module__prefixProxyEditor___QyoN1{display:flex;flex-direction:column;gap:16px;max-height:60vh;overflow:auto}.AuthFilesPage-module__prefixProxyLoading___pipJw{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--text-secondary);padding:8px 0}.AuthFilesPage-module__prefixProxyError___HNtOZ{padding:8px 16px;border-radius:8px;border:1px solid var(--danger-color);background-color:#c657461a;color:var(--danger-color);font-size:12px}.AuthFilesPage-module__prefixProxyJsonWrapper___j237Y{display:flex;flex-direction:column;gap:6px}.AuthFilesPage-module__prefixProxyLabel___IJHtd{font-size:12px;color:var(--text-secondary);font-weight:600}.AuthFilesPage-module__prefixProxyTextarea___wcym6{width:100%;padding:8px 16px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:12px;font-family:monospace;resize:vertical;min-height:120px;box-sizing:border-box}.AuthFilesPage-module__prefixProxyTextarea___wcym6:focus{outline:none;border-color:var(--primary-color)}.AuthFilesPage-module__prefixProxyFields___da72p{display:grid;grid-template-columns:1fr;gap:8px}.AuthFilesPage-module__prefixProxyFields___da72p .form-group{margin:0}.AuthFilesPage-module__cardActions___mJgkW{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--border-color) 50%,transparent)}.AuthFilesPage-module__cardActionsMain___9Lsw7{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.AuthFilesPage-module__primaryActionButton___ex-Us.btn.btn-sm{min-width:0;padding-inline:10px}.AuthFilesPage-module__modelsActionButton___-ihP6.btn.btn-sm{background:color-mix(in srgb,var(--primary-color) 10%,var(--bg-secondary));border-color:color-mix(in srgb,var(--primary-color) 20%,var(--border-color))}.AuthFilesPage-module__modelsActionButton___-ihP6.btn.btn-sm:hover{border-color:color-mix(in srgb,var(--primary-color) 35%,var(--border-color));background:color-mix(in srgb,var(--primary-color) 14%,var(--bg-secondary))}.AuthFilesPage-module__modelsActionButton___-ihP6.btn.btn-sm>span{display:inline-flex;align-items:center;gap:8px;min-width:0}.AuthFilesPage-module__modelsActionIconWrap___KD-87{width:22px;height:22px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in srgb,var(--primary-color) 16%,transparent)}.AuthFilesPage-module__actionButtonLabel___B0RSa{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AuthFilesPage-module__cardUtilityActions___LX5uj{display:flex;align-items:center;gap:3px;padding:2px;border-radius:8px;background:color-mix(in srgb,var(--bg-tertiary) 50%,transparent)}.AuthFilesPage-module__statusToggle___H8bxD{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.AuthFilesPage-module__statusToggleLabel___Wdwo7{font-size:11px;font-weight:500;color:var(--text-tertiary)}.AuthFilesPage-module__iconButton___XT5TY.btn.btn-sm{width:32px;height:32px;min-width:32px;padding:0;box-sizing:border-box;border-radius:8px;gap:0}.AuthFilesPage-module__actionIcon___F2TRI{display:block}@media(max-width:768px){.AuthFilesPage-module__cardActions___mJgkW{flex-wrap:wrap}.AuthFilesPage-module__cardActionsMain___9Lsw7{flex-wrap:wrap;width:100%}.AuthFilesPage-module__primaryActionButton___ex-Us.btn.btn-sm{flex:1 1 auto;min-width:0}.AuthFilesPage-module__statusToggle___H8bxD{width:100%;justify-content:space-between}}.AuthFilesPage-module__pagination___Hwpg2{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-color)}.AuthFilesPage-module__batchActionContainer___qPwxN{position:fixed;left:var(--content-center-x, 50%);bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;width:min(960px,100vw - 24px);max-width:calc(100vw - 24px);box-sizing:border-box;will-change:transform,opacity}.AuthFilesPage-module__batchActionBar___YEJju{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border-color) 70%,transparent);background:color-mix(in srgb,var(--bg-primary) 84%,transparent);--glass-blur: 12px;backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);box-shadow:var(--shadow-lg)}.AuthFilesPage-module__batchActionLeft___g851y,.AuthFilesPage-module__batchActionRight___NDPeh{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.AuthFilesPage-module__batchActionRight___NDPeh{justify-content:flex-end}.AuthFilesPage-module__batchSelectionText___rSTLk{font-size:13px;font-weight:600;color:var(--text-primary);margin-right:2px}@media(max-width:768px){.AuthFilesPage-module__batchActionContainer___qPwxN{width:calc(100vw - 16px);max-width:calc(100vw - 16px);bottom:calc(12px + env(safe-area-inset-bottom))}.AuthFilesPage-module__batchActionBar___YEJju{flex-direction:column;align-items:stretch}.AuthFilesPage-module__batchActionLeft___g851y,.AuthFilesPage-module__batchActionRight___NDPeh{justify-content:center}}.AuthFilesPage-module__pageInfo___Fkfbg{font-size:13px;color:var(--text-secondary);padding:4px 16px;background-color:var(--bg-secondary);border-radius:8px}.AuthFilesPage-module__excludedList___9OGiS{display:flex;flex-direction:column;gap:8px}.AuthFilesPage-module__excludedItem___J3Xxa{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);gap:16px}@media(max-width:768px){.AuthFilesPage-module__excludedItem___J3Xxa{flex-direction:column;align-items:flex-start}}.AuthFilesPage-module__excludedInfo___0hKQa{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.AuthFilesPage-module__excludedProvider___6pkYz{font-weight:600;color:var(--text-primary);font-size:14px}.AuthFilesPage-module__excludedModels___QdpJB{font-size:12px;color:var(--text-secondary)}.AuthFilesPage-module__excludedActions___jP49M{display:flex;gap:4px;flex-shrink:0}.AuthFilesPage-module__providerField___end0y{display:flex;flex-direction:column;gap:4px}.AuthFilesPage-module__providerField___end0y .form-group{margin-bottom:0}.AuthFilesPage-module__providerTagList___dCCYW{display:flex;flex-wrap:wrap;gap:4px}.AuthFilesPage-module__providerTag___RADdc{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.AuthFilesPage-module__providerTag___RADdc:hover{border-color:var(--primary-color);color:var(--text-primary);background-color:var(--bg-hover)}.AuthFilesPage-module__providerTag___RADdc:disabled{opacity:.6;cursor:not-allowed}.AuthFilesPage-module__providerTagActive___j4vQJ,.AuthFilesPage-module__providerTagActive___j4vQJ:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.AuthFilesPage-module__aliasChartSection___uS-yX{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-color)}.AuthFilesPage-module__aliasChartHeader___ABhkk{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.AuthFilesPage-module__aliasChartTitle___OSz75{margin:0;font-size:14px;font-weight:600;color:var(--text-secondary)}.AuthFilesPage-module__aliasChart___XbONn{width:100%;min-height:120px}.AuthFilesPage-module__cardExtraButtons___P-fL4{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;max-width:100%}.AuthFilesPage-module__viewModeSwitch___CxLpP{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0;max-width:100%;padding:2px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color)}.AuthFilesPage-module__viewModeSwitch___CxLpP .btn.btn-sm{min-width:0}@media(max-width:768px){.AuthFilesPage-module__cardExtraButtons___P-fL4{width:100%}.AuthFilesPage-module__viewModeSwitch___CxLpP{width:100%;justify-content:stretch}.AuthFilesPage-module__viewModeSwitch___CxLpP .btn.btn-sm{flex:1 1 0}}.AuthFilesPage-module__mappingRow___b1MBs{display:grid;grid-template-columns:1fr auto 1fr auto auto;align-items:center;gap:8px}@media(max-width:768px){.AuthFilesPage-module__mappingRow___b1MBs{grid-template-columns:1fr}}.AuthFilesPage-module__mappingSeparator___Wx18F{color:var(--text-secondary);text-align:center}@media(max-width:768px){.AuthFilesPage-module__mappingSeparator___Wx18F{display:none}}.AuthFilesPage-module__mappingFork___nRhwu{display:flex;align-items:center}.AuthFilesPage-module__detailContent___K3wet{max-height:400px;overflow:auto}.AuthFilesPage-module__jsonContent___5lYBo{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;font-family:monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;color:var(--text-primary);margin:0}.AuthFilesPage-module__formGroup___1YGlp{display:flex;flex-direction:column;gap:4px;margin-top:16px}.AuthFilesPage-module__formGroup___1YGlp label{font-size:14px;font-weight:500;color:var(--text-primary)}.AuthFilesPage-module__textarea___IAg4a{width:100%;padding:8px 16px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:monospace;resize:vertical}.AuthFilesPage-module__textarea___IAg4a:focus{outline:none;border-color:var(--primary-color)}.AuthFilesPage-module__textarea___IAg4a::placeholder{color:var(--text-tertiary)}.AuthFilesPage-module__hint___YExGS{font-size:12px;color:var(--text-tertiary);font-style:italic;text-align:center;padding:24px}.AuthFilesPage-module__modelsList___KKhRE{display:flex;flex-direction:column;gap:8px}.AuthFilesPage-module__modelItem___VMfPD{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);flex-wrap:wrap;cursor:pointer;transition:all .15s ease}.AuthFilesPage-module__modelItem___VMfPD:hover{background-color:var(--bg-hover);border-color:var(--primary-color)}.AuthFilesPage-module__modelItem___VMfPD:active{transform:scale(.98)}.AuthFilesPage-module__modelId___4wMUh{font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-all}.AuthFilesPage-module__modelDisplayName___znKrk{font-size:12px;color:var(--text-secondary);flex-shrink:0}.AuthFilesPage-module__modelType___B0C7D{font-size:11px;color:var(--text-tertiary);background-color:var(--bg-tertiary);padding:2px 8px;border-radius:10px;flex-shrink:0;margin-left:auto}.AuthFilesPage-module__modelItemExcluded___I5sBn{opacity:.6;background-color:var(--bg-tertiary);border-style:dashed}.AuthFilesPage-module__modelItemExcluded___I5sBn .AuthFilesPage-module__modelId___4wMUh{text-decoration:line-through;color:var(--text-tertiary)}.AuthFilesPage-module__modelItemExcluded___I5sBn:hover{border-color:var(--danger-color)}.AuthFilesPage-module__modelExcludedBadge___FyRdH{font-size:10px;color:var(--danger-color);background-color:#c657461a;padding:2px 6px;border-radius:8px;border:1px solid var(--danger-color);flex-shrink:0}.AuthFilesPage-module__excludedCheckList___8T3-H{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;padding:8px;background-color:var(--bg-secondary)}.AuthFilesPage-module__excludedCheckItem___2z42k{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;cursor:pointer;transition:background-color .15s ease}.AuthFilesPage-module__excludedCheckItem___2z42k:hover{background-color:var(--bg-hover)}.AuthFilesPage-module__excludedCheckItem___2z42k input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.AuthFilesPage-module__excludedCheckLabel___tg4BJ{display:flex;align-items:center;gap:8px;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;color:var(--text-primary);word-break:break-all}.AuthFilesPage-module__excludedCheckDisplayName___Cno8d{font-size:12px;color:var(--text-tertiary);font-family:inherit}.ModelMappingDiagram-module__scrollContainer___CVtMl{width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.ModelMappingDiagram-module__tapHint___WVg9j{position:sticky;left:0;z-index:3;font-size:12px;color:var(--text-secondary);padding:0 4px;margin-bottom:8px}.ModelMappingDiagram-module__container___5GMeJ{display:inline-flex;position:relative;min-width:100%;min-height:300px;justify-content:space-between;padding:20px 0;user-select:none}@media(max-width:768px){.ModelMappingDiagram-module__container___5GMeJ{min-width:max(100%,960px);padding:12px 0}}.ModelMappingDiagram-module__connections___-pgzq{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.ModelMappingDiagram-module__connections___-pgzq path{fill:none;stroke-width:2}.ModelMappingDiagram-module__column___Guf-v{display:flex;flex-direction:column;gap:12px;z-index:2;flex:0 0 auto}.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__providers___n0NN6{align-items:flex-end;min-width:140px}.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__sources___N646E,.ModelMappingDiagram-module__column___Guf-v.ModelMappingDiagram-module__aliases___zg5ma{align-items:flex-start;min-width:200px}.ModelMappingDiagram-module__columnHeader___QAC6y{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px;padding:0 4px}.ModelMappingDiagram-module__item___KBTKp{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;width:100%;max-width:280px;position:relative;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.ModelMappingDiagram-module__item___KBTKp:hover{border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 6px #0000000d;z-index:10}.ModelMappingDiagram-module__item___KBTKp.ModelMappingDiagram-module__dropTarget___dAYPB{background-color:var(--bg-secondary);border-color:var(--primary-color);border-width:2px}.ModelMappingDiagram-module__item___KBTKp.ModelMappingDiagram-module__selected___r3Gyz{border-color:var(--primary-color);background-color:var(--bg-secondary);box-shadow:0 0 0 2px #8b86802e}.ModelMappingDiagram-module__providerItem___4PZQM{border-left:3px solid transparent;padding-left:8px;display:flex;align-items:center;gap:8px}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__providerLabel___E2vNu{font-weight:600;font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__collapseBtn___RXanB{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-secondary);border-radius:4px;cursor:pointer;color:var(--text-secondary);transition:background-color .15s,color .15s}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__collapseBtn___RXanB:hover{background:var(--border-color);color:var(--text-primary)}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronDown___AP7zK,.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronRight___bbMVy{display:inline-block;width:0;height:0;border-style:solid}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronDown___AP7zK{border-width:5px 4px 0 4px;border-color:currentColor transparent transparent transparent}.ModelMappingDiagram-module__providerItem___4PZQM .ModelMappingDiagram-module__chevronRight___bbMVy{border-width:4px 0 4px 5px;border-color:transparent transparent transparent currentColor}.ModelMappingDiagram-module__providerGroup___5JNQu{display:flex;align-items:center;justify-content:flex-end;width:100%}.ModelMappingDiagram-module__sourceItem___TjDG6,.ModelMappingDiagram-module__aliasItem___h6w7D{cursor:grab}.ModelMappingDiagram-module__sourceItem___TjDG6:active,.ModelMappingDiagram-module__aliasItem___h6w7D:active{cursor:grabbing}.ModelMappingDiagram-module__sourceItem___TjDG6.ModelMappingDiagram-module__dragging___lhx9y,.ModelMappingDiagram-module__aliasItem___h6w7D.ModelMappingDiagram-module__dragging___lhx9y{opacity:.5;border-style:dashed}.ModelMappingDiagram-module__dot___AOWIN{width:6px;height:6px;border-radius:50%;position:absolute;top:50%;margin-top:-3px;flex-shrink:0}.ModelMappingDiagram-module__dot___AOWIN.ModelMappingDiagram-module__dotLeft___BKXAm{left:-3px;background:var(--text-tertiary)}.ModelMappingDiagram-module__sourceItem___TjDG6 .ModelMappingDiagram-module__dot___AOWIN{right:-3px}.ModelMappingDiagram-module__providerBadge___cRzux{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-secondary);color:var(--text-secondary);margin-right:8px;font-weight:500}.ModelMappingDiagram-module__itemName___MjfSv{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ModelMappingDiagram-module__itemCount___B-gtl{font-size:11px;color:var(--text-tertiary);margin-left:8px;background:var(--bg-secondary);padding:1px 6px;border-radius:10px}.ModelMappingDiagram-module__contextMenu___VHX-s{position:fixed;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:9999;min-width:120px;overflow:hidden;padding:4px 0}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI{padding:8px 12px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background-color .1s;display:flex;align-items:center;gap:8px}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI:hover{background-color:var(--bg-secondary)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI.ModelMappingDiagram-module__danger___klXxM{color:var(--error-color)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuItem___e-LvI.ModelMappingDiagram-module__danger___klXxM:hover{background-color:var(--bg-error-light)}.ModelMappingDiagram-module__contextMenu___VHX-s .ModelMappingDiagram-module__menuDivider___XtoCo{height:1px;margin:4px 0;background:var(--border-color);padding:0;cursor:default;pointer-events:none}.ModelMappingDiagram-module__settingsEmpty___N0gFF{color:var(--text-tertiary);font-size:13px;text-align:center;padding:24px 0}.ModelMappingDiagram-module__settingsList___ovuWo{display:flex;flex-direction:column;gap:8px}.ModelMappingDiagram-module__settingsRow___wH-TW{display:grid;grid-template-columns:minmax(200px,1fr) auto;gap:16px;align-items:center;padding:8px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary)}@media(max-width:768px){.ModelMappingDiagram-module__settingsRow___wH-TW{grid-template-columns:1fr;align-items:flex-start}}.ModelMappingDiagram-module__settingsNames___QDn9j{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-primary);min-width:0}.ModelMappingDiagram-module__settingsSource___Hz9zo,.ModelMappingDiagram-module__settingsAlias___Ov9zt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.ModelMappingDiagram-module__settingsArrow___SKvFd{color:var(--text-tertiary)}.ModelMappingDiagram-module__settingsActions___PYXMU{display:flex;align-items:center;gap:8px}.ModelMappingDiagram-module__settingsLabel___R--i-{font-size:12px;color:var(--text-secondary)}.ModelMappingDiagram-module__settingsDelete___PDG7z{border:0;background:transparent;color:var(--error-color);padding:6px;border-radius:6px;cursor:pointer}.ModelMappingDiagram-module__settingsDelete___PDG7z:hover{background:var(--bg-error-light)}.AuthFilesOAuthExcludedEditPage-module__pageContent___42nA2{width:100%;max-width:1000px;margin:0 auto;padding:0 24px 48px}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__pageContent___42nA2{padding-left:16px;padding-right:16px}}.AuthFilesOAuthExcludedEditPage-module__settingsCard___EE-1z{padding:0;overflow:visible}.AuthFilesOAuthExcludedEditPage-module__settingsHeader___Jm0RO{display:flex;flex-direction:column;gap:4px;padding:16px 24px;border-bottom:1px solid var(--border-color)}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__settingsHeader___Jm0RO{padding-left:16px;padding-right:16px}}.AuthFilesOAuthExcludedEditPage-module__settingsHeaderTitle___nOj9w{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--text-primary)}.AuthFilesOAuthExcludedEditPage-module__settingsHeaderHint___EzQSN{font-size:13px;color:var(--text-secondary)}.AuthFilesOAuthExcludedEditPage-module__settingsSection___ozndx{display:flex;flex-direction:column;gap:8px;padding:16px 24px 24px}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__settingsSection___ozndx{padding-left:16px;padding-right:16px}}.AuthFilesOAuthExcludedEditPage-module__settingsRow___z6QPQ{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__settingsRow___z6QPQ{flex-direction:column;align-items:stretch;gap:8px}}.AuthFilesOAuthExcludedEditPage-module__settingsInfo___lRYwp{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.AuthFilesOAuthExcludedEditPage-module__settingsLabel___KbPgc{font-size:14px;font-weight:600;color:var(--text-primary)}.AuthFilesOAuthExcludedEditPage-module__settingsDesc___6LSPN{font-size:13px;color:var(--text-secondary)}.AuthFilesOAuthExcludedEditPage-module__settingsControl___luVcd{flex:0 0 auto;width:min(360px,45%);min-width:220px}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__settingsControl___luVcd{width:100%;min-width:0}}.AuthFilesOAuthExcludedEditPage-module__tagList___Is0Fd{display:flex;flex-wrap:wrap;gap:4px}.AuthFilesOAuthExcludedEditPage-module__tag___fyrKv{display:inline-flex;align-items:center;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.AuthFilesOAuthExcludedEditPage-module__tag___fyrKv:hover{border-color:var(--primary-color);color:var(--text-primary);background-color:var(--bg-tertiary)}.AuthFilesOAuthExcludedEditPage-module__tag___fyrKv:disabled{opacity:.6;cursor:not-allowed}.AuthFilesOAuthExcludedEditPage-module__tagActive___EkiBG,.AuthFilesOAuthExcludedEditPage-module__tagActive___EkiBG:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.AuthFilesOAuthExcludedEditPage-module__modelsHint___Rm6l4{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-secondary)}.AuthFilesOAuthExcludedEditPage-module__loadingModels___-9Wy6{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px 0;color:var(--text-secondary)}.AuthFilesOAuthExcludedEditPage-module__modelList___6ebAr{max-height:520px;overflow:auto;padding:8px 24px 24px}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__modelList___6ebAr{padding-left:16px;padding-right:16px}}.AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o{width:100%;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border-color);border-radius:4px;transition:background-color .15s ease}.AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o:last-child{border-bottom:none}.AuthFilesOAuthExcludedEditPage-module__modelItem___v0y1o:hover{background-color:var(--bg-hover)}.AuthFilesOAuthExcludedEditPage-module__modelText___50mQC{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.AuthFilesOAuthExcludedEditPage-module__modelId___Z2Ylu{font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-all}.AuthFilesOAuthExcludedEditPage-module__modelDisplayName___ATlA5{font-size:12px;color:var(--text-secondary);word-break:break-all}.AuthFilesOAuthExcludedEditPage-module__emptyModels___kAuwa{padding:32px 24px;color:var(--text-secondary);font-size:13px;text-align:center}@media(max-width:768px){.AuthFilesOAuthExcludedEditPage-module__emptyModels___kAuwa{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__pageContent___mxGSP{width:100%;max-width:1000px;margin:0 auto;padding:0 24px 48px}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__pageContent___mxGSP{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__settingsCard___4uMxA{padding:0;overflow:visible}.AuthFilesOAuthModelAliasEditPage-module__settingsHeader___h4vIs{display:flex;flex-direction:column;gap:4px;padding:16px 24px;border-bottom:1px solid var(--border-color)}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__settingsHeader___h4vIs{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__settingsHeaderTitle___GExPS{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--text-primary)}.AuthFilesOAuthModelAliasEditPage-module__settingsHeaderHint___C94bR{font-size:13px;color:var(--text-secondary)}.AuthFilesOAuthModelAliasEditPage-module__settingsSection___JQr18{display:flex;flex-direction:column;gap:8px;padding:16px 24px 24px}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__settingsSection___JQr18{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__settingsRow___qzQdL{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__settingsRow___qzQdL{flex-direction:column;align-items:stretch;gap:8px}}.AuthFilesOAuthModelAliasEditPage-module__settingsInfo___Jt7Ub{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.AuthFilesOAuthModelAliasEditPage-module__settingsLabel___v6dmL{font-size:14px;font-weight:600;color:var(--text-primary)}.AuthFilesOAuthModelAliasEditPage-module__settingsDesc___TgK3P{font-size:13px;color:var(--text-secondary)}.AuthFilesOAuthModelAliasEditPage-module__settingsControl___nSl-3{flex:0 0 auto;width:min(360px,45%);min-width:220px}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__settingsControl___nSl-3{width:100%;min-width:0}}.AuthFilesOAuthModelAliasEditPage-module__tagList___OxNTF{display:flex;flex-wrap:wrap;gap:4px}.AuthFilesOAuthModelAliasEditPage-module__tag___sULm6{display:inline-flex;align-items:center;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.AuthFilesOAuthModelAliasEditPage-module__tag___sULm6:hover{border-color:var(--primary-color);color:var(--text-primary);background-color:var(--bg-tertiary)}.AuthFilesOAuthModelAliasEditPage-module__tag___sULm6:disabled{opacity:.6;cursor:not-allowed}.AuthFilesOAuthModelAliasEditPage-module__tagActive___CcyFC,.AuthFilesOAuthModelAliasEditPage-module__tagActive___CcyFC:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.AuthFilesOAuthModelAliasEditPage-module__mappingsHeader___wddAp{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border-color)}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__mappingsHeader___wddAp{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__mappingsTitle___QywAa{font-weight:700;color:var(--text-primary)}.AuthFilesOAuthModelAliasEditPage-module__modelsHint___nQAc7{display:flex;align-items:center;gap:4px;padding:8px 24px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__modelsHint___nQAc7{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__mappingsBody___jOz-S{padding:8px 24px 24px}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__mappingsBody___jOz-S{padding-left:16px;padding-right:16px}}.AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41{display:grid;grid-template-columns:1fr auto 1fr auto auto;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border-color)}.AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41:last-child{border-bottom:none}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__mappingRow___NTr41{grid-template-columns:1fr;gap:8px}}.AuthFilesOAuthModelAliasEditPage-module__mappingSeparator___dN9rZ{color:var(--text-secondary);text-align:center}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__mappingSeparator___dN9rZ{display:none}}.AuthFilesOAuthModelAliasEditPage-module__mappingAliasInput___iG0V3{width:100%}.AuthFilesOAuthModelAliasEditPage-module__mappingFork___4pAg3{display:flex;align-items:center}@media(max-width:768px){.AuthFilesOAuthModelAliasEditPage-module__mappingFork___4pAg3{justify-content:flex-start}}.OAuthPage-module__container___LCCdH{width:100%}.OAuthPage-module__cardTitle___yFaP0{display:flex;align-items:center;gap:8px}.OAuthPage-module__cardTitleIcon___eAnql{width:24px;height:24px}.OAuthPage-module__pageTitle___BQQ2z{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 32px}.OAuthPage-module__content___Phg9V{display:flex;flex-direction:column;gap:32px}.OAuthPage-module__cardContent___1sXLA{display:flex;flex-direction:column;gap:16px}.OAuthPage-module__cardContent___1sXLA .form-group{margin-bottom:0}.OAuthPage-module__cardContent___1sXLA .status-badge{margin-bottom:0;align-self:flex-start}.OAuthPage-module__cardHint___ttOpd{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary)}.OAuthPage-module__cardHintSecondary___tWM17{margin:0;font-size:12px;line-height:1.5;color:var(--text-tertiary)}.OAuthPage-module__oauthSection___1olLq{display:flex;flex-direction:column;gap:24px}.OAuthPage-module__oauthGrid___wjAyh{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}@media(max-width:768px){.OAuthPage-module__oauthGrid___wjAyh{grid-template-columns:1fr}}.OAuthPage-module__oauthCard___CYTnC{display:flex;flex-direction:column;gap:16px}.OAuthPage-module__oauthStatus___h7bbL{padding:16px;border-radius:8px;font-size:14px}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__success___UHta0{background-color:#22c55e1a;color:#16a34a}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__error___057CD{background-color:#c657461f;color:#c65746}.OAuthPage-module__oauthStatus___h7bbL.OAuthPage-module__waiting___CbNSk{background-color:#8b86801f;color:var(--primary-color)}.OAuthPage-module__callbackSection___8kA31{margin-top:0;display:flex;flex-direction:column;gap:8px}.OAuthPage-module__callbackActions___wtkMI{display:flex;gap:16px}.OAuthPage-module__authUrlBox___Iu1d4{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:4px}.OAuthPage-module__authUrlLabel___mYFJB{color:var(--text-secondary);font-size:14px}.OAuthPage-module__authUrlValue___axvUJ{font-weight:700;color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere;line-height:1.5;max-width:100%}.OAuthPage-module__authUrlActions___venPj{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.OAuthPage-module__geminiProjectField___g456A .form-group{margin-top:0;margin-bottom:0;gap:8px}.OAuthPage-module__geminiProjectField___g456A .input:disabled{background-color:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-tertiary);cursor:not-allowed}.OAuthPage-module__formItem___Bgt9S{display:flex;flex-direction:column;gap:4px}.OAuthPage-module__formItemLabel___QZFrG{margin:0;font-weight:600;color:var(--text-primary)}.OAuthPage-module__filePicker___NmFjy{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.OAuthPage-module__fileName___9ZbQI{flex:1;min-width:220px;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.OAuthPage-module__fileNamePlaceholder___WHjj4{color:var(--text-secondary)}.OAuthPage-module__connectionBox___Gwo4r{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}.OAuthPage-module__connectionLabel___cJMrf{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.OAuthPage-module__keyValueList___lEOY0{display:flex;flex-direction:column;gap:6px}.OAuthPage-module__keyValueItem___XOwWB{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:start}@media(max-width:768px){.OAuthPage-module__keyValueItem___XOwWB{grid-template-columns:1fr;gap:2px}}.OAuthPage-module__keyValueKey___WF-VN{color:var(--text-secondary);font-size:13px}.OAuthPage-module__keyValueValue___m2I-C{color:var(--text-primary);word-break:break-all;overflow-wrap:anywhere}.UsagePage-module__container___nCAFc{width:100%;min-height:100%;display:flex;flex-direction:column;gap:20px;position:relative}.UsagePage-module__header___HxnC8{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.UsagePage-module__headerActions___3cXLO{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.UsagePage-module__lastRefreshed___cqlrd{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.UsagePage-module__timeRangeGroup___hI2kH{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.UsagePage-module__timeRangeLabel___2VsOz{font-size:12px;color:var(--text-secondary);font-weight:600}.UsagePage-module__timeRangeSelectControl___6vBeH{min-width:164px}.UsagePage-module__pageTitle___70rs5{font-size:28px;font-weight:700;color:var(--text-primary);margin:0}.UsagePage-module__errorBox___gB8Rj{padding:10px;background-color:#c657461a;border:1px solid var(--error-color);border-radius:4px;color:var(--error-color);font-size:12px}.UsagePage-module__hint___pUQ06{color:var(--text-secondary);font-size:12px;text-align:center;padding:16px}.UsagePage-module__loadingOverlay___BuX9V{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;--glass-blur: 6px;background:var(--glass-bg-secondary);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter)}.UsagePage-module__loadingOverlayContent___3vf0S{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-primary);box-shadow:var(--shadow-lg)}.UsagePage-module__loadingOverlaySpinner___MvMZD{border-color:#8b868040;border-top-color:var(--primary-color);box-shadow:0 0 10px #8b868040}.UsagePage-module__loadingOverlayText___64YIy{font-size:13px;font-weight:600;color:var(--text-secondary)}.UsagePage-module__statsGrid___Q0sW-{display:grid;gap:14px;grid-template-columns:repeat(12,minmax(0,1fr))}@media(max-width:768px){.UsagePage-module__statsGrid___Q0sW-{grid-template-columns:1fr}}.UsagePage-module__statCard___iCndn{--accent: var(--primary-color);--accent-soft: rgba($primary-color, .18);--accent-border: rgba($primary-color, .35);grid-column:span 4;position:relative;padding:18px;background:radial-gradient(120% 140% at 12% 0%,var(--accent-soft) 0%,rgba(0,0,0,0) 62%),linear-gradient(180deg,#ffffff0f,#fff0),var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px;min-height:176px;box-shadow:var(--shadow-lg);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;overflow:hidden}.UsagePage-module__statCard___iCndn:before{content:"";position:absolute;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,var(--accent),rgba(0,0,0,0));opacity:.95}.UsagePage-module__statCard___iCndn:hover{transform:translateY(-2px);border-color:var(--accent-border);box-shadow:0 16px 40px #00000038}@media(min-width:769px)and (max-width:1024px){.UsagePage-module__statCard___iCndn{grid-column:span 6}}@media(max-width:768px){.UsagePage-module__statCard___iCndn{grid-column:auto;min-height:168px}}.UsagePage-module__statCard___iCndn:nth-child(-n+2){grid-column:span 6}.UsagePage-module__statCard___iCndn:nth-child(-n+2) .UsagePage-module__statValue___duHNu{font-size:32px}@media(max-width:768px){.UsagePage-module__statCard___iCndn:nth-child(-n+2){grid-column:auto}.UsagePage-module__statCard___iCndn:nth-child(-n+2) .UsagePage-module__statValue___duHNu{font-size:28px}}.UsagePage-module__statCardHeader___IbBKW{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.UsagePage-module__statLabelGroup___SMxKl{display:flex;flex-direction:column;gap:1px}.UsagePage-module__statIconBadge___bPCTx{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:13px;background:var(--accent);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 22px #00000040;flex-shrink:0}.UsagePage-module__statIconBadge___bPCTx svg{display:block}.UsagePage-module__statHeader___ieXhA{display:flex;align-items:center;gap:8px}.UsagePage-module__statIcon___hRQIn{font-size:18px}.UsagePage-module__statLabel___V2mir{font-size:12px;color:var(--text-tertiary);font-weight:700;letter-spacing:.02em}.UsagePage-module__statValue___duHNu{font-size:28px;font-weight:800;color:var(--text-primary);line-height:1.2;font-variant-numeric:tabular-nums}.UsagePage-module__statValueRow___rjMSd{display:flex;gap:24px}.UsagePage-module__statValueSmall___QsRKt{display:flex;flex-direction:column;gap:2px}.UsagePage-module__statValueLabel___78BAI{font-size:12px;color:var(--text-secondary)}.UsagePage-module__statValueNum___ve85a{font-size:20px;font-weight:700;color:var(--text-primary)}.UsagePage-module__statMeta___X-Pkf{display:flex;flex-direction:column;gap:4px;font-size:12px}.UsagePage-module__statSuccess___AmaqC{color:var(--success-color)}.UsagePage-module__statFailure___jWtUQ{color:var(--danger-color)}.UsagePage-module__statNeutral___IhwNw{color:var(--text-secondary)}.UsagePage-module__statMetaRow___VB7gR{display:flex;flex-wrap:wrap;gap:8px 10px;font-size:12px;color:var(--text-secondary)}.UsagePage-module__statMetaItem___YIXw2{display:inline-flex;align-items:center;gap:4px}.UsagePage-module__statMetaDot___daNGF{width:7px;height:7px;border-radius:50%;background-color:var(--text-secondary)}.UsagePage-module__statSubtle___yXU7t{color:var(--text-tertiary)}.UsagePage-module__statTrend___ra06-{margin-top:auto;background:var(--bg-tertiary);border-radius:8px;padding:8px;height:58px;border:1px solid var(--border-color)}.UsagePage-module__statTrendPlaceholder___oRADx{width:100%;height:100%;background:var(--bg-secondary);border-radius:8px}.UsagePage-module__sparkline___1tqGF{width:100%;height:100%!important}.UsagePage-module__statHint___HpsGj{color:var(--text-tertiary);font-style:italic}.UsagePage-module__apiSortBar___MpyiE{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.UsagePage-module__apiSortBtn___AkzG0{padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.UsagePage-module__apiSortBtn___AkzG0:hover{background:var(--bg-tertiary);color:var(--text-primary)}.UsagePage-module__apiSortBtn___AkzG0:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.UsagePage-module__apiSortBtnActive___-PugQ{border-color:#8b868080;background:#8b86801a;color:var(--text-primary);font-weight:600}.UsagePage-module__apiList___2kChf{display:flex;flex-direction:column;gap:6px}.UsagePage-module__apiItem___cyn0u{background-color:var(--bg-secondary);border-radius:4px;border:1px solid var(--border-color);overflow:hidden}.UsagePage-module__apiHeader___tT8FK{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease}.UsagePage-module__apiHeader___tT8FK:hover{background-color:var(--bg-tertiary)}.UsagePage-module__apiHeader___tT8FK:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.UsagePage-module__apiInfo___OFEK-{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.UsagePage-module__apiEndpoint___J38DV{font-weight:600;color:var(--text-primary);font-size:13px;word-break:break-all}.UsagePage-module__apiStats___blw7G{display:flex;flex-wrap:wrap;gap:3px}.UsagePage-module__apiBadge___OAqI7{font-size:11px;color:var(--text-secondary);background-color:var(--bg-primary);border:1px solid var(--border-color);padding:2px 8px;border-radius:9999px}.UsagePage-module__expandIcon___5FU6h{color:var(--text-secondary);font-size:12px;margin-left:6px}.UsagePage-module__apiModels___eZNUp{padding:10px;display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--border-color);margin-top:0}.UsagePage-module__modelRow___ZKhXO{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:8px 10px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;font-size:12px}@media(max-width:768px){.UsagePage-module__modelRow___ZKhXO{grid-template-columns:1fr;gap:3px}}.UsagePage-module__modelName___mlOFW{color:var(--text-primary);font-weight:500;word-break:break-all}.UsagePage-module__modelStat___9behg{color:var(--text-secondary);text-align:right}@media(max-width:768px){.UsagePage-module__modelStat___9behg{text-align:left}}.UsagePage-module__detailsFixedCard___5TOHu{display:flex;flex-direction:column;height:520px;overflow:hidden}@media(max-width:768px){.UsagePage-module__detailsFixedCard___5TOHu{height:420px}}.UsagePage-module__detailsScroll___FxWDO{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.UsagePage-module__tableWrapper___Sax8l{overflow-x:auto}.UsagePage-module__table___-sWaI{width:100%;border-collapse:collapse;font-size:12px}.UsagePage-module__table___-sWaI th,.UsagePage-module__table___-sWaI td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.UsagePage-module__table___-sWaI th{font-weight:600;color:var(--text-tertiary);background-color:var(--bg-secondary);white-space:nowrap}.UsagePage-module__table___-sWaI th.UsagePage-module__sortableHeader___khBCr{user-select:none;transition:color .15s ease}.UsagePage-module__table___-sWaI th.UsagePage-module__sortableHeader___khBCr:hover,.UsagePage-module__table___-sWaI td{color:var(--text-primary)}.UsagePage-module__table___-sWaI tbody tr:hover{background-color:var(--bg-tertiary)}.UsagePage-module__sortHeaderButton___T3KIB{display:inline-flex;align-items:center;width:100%;border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.UsagePage-module__sortHeaderButton___T3KIB:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:4px}.UsagePage-module__modelCell___0d7fk{font-weight:500;max-width:240px;word-break:break-all}.UsagePage-module__credentialType___FoGup{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:9999px;font-size:10px;font-weight:600;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);vertical-align:middle}.UsagePage-module__requestCountCell___17o3C{display:inline-flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.UsagePage-module__requestBreakdown___VDvhm{color:var(--text-secondary);white-space:nowrap}.UsagePage-module__pricingSection___jk8kk{display:flex;flex-direction:column;gap:16px}.UsagePage-module__priceForm___OJwRe{padding:10px;background-color:var(--bg-secondary);border-radius:4px;border:1px solid var(--border-color)}.UsagePage-module__formRow___sHXY2{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}@media(max-width:768px){.UsagePage-module__formRow___sHXY2{flex-direction:column;align-items:stretch}}.UsagePage-module__formField___Vf4b-{display:flex;flex-direction:column;gap:3px;flex:1;min-width:120px}.UsagePage-module__formField___Vf4b- label{font-size:10px;color:var(--text-secondary);font-weight:500}.UsagePage-module__formField___Vf4b- .form-group{margin:0}.UsagePage-module__formField___Vf4b- .form-group>label{display:none}.UsagePage-module__formField___Vf4b- .input{height:40px;box-sizing:border-box}.UsagePage-module__pricesList___ys67C{display:flex;flex-direction:column;gap:10px}.UsagePage-module__pricesTitle___CJRmb{font-size:12px;font-weight:600;color:var(--text-primary);margin:0}.UsagePage-module__pricesGrid___rCyGv{display:flex;flex-direction:column;gap:6px}.UsagePage-module__priceItem___I0JbD{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:var(--bg-secondary);border-radius:4px;border:1px solid var(--border-color);gap:10px}@media(max-width:768px){.UsagePage-module__priceItem___I0JbD{flex-direction:column;align-items:flex-start}}.UsagePage-module__priceInfo___TteL5{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.UsagePage-module__priceModel___GvFG8{font-weight:600;color:var(--text-primary);font-size:11px;word-break:break-all}.UsagePage-module__priceMeta___V2rEi{display:flex;gap:10px;font-size:10px;color:var(--text-secondary)}@media(max-width:768px){.UsagePage-module__priceMeta___V2rEi{flex-direction:column;gap:3px}}.UsagePage-module__priceActions___2BFSQ{display:flex;gap:3px;flex-shrink:0}.UsagePage-module__editModalBody___z4n58{display:flex;flex-direction:column;gap:12px}.UsagePage-module__chartSection___Jugrm{display:flex;flex-direction:column;gap:10px}.UsagePage-module__chartControls___Be-or{display:flex;justify-content:space-between;align-items:center;gap:10px}@media(max-width:768px){.UsagePage-module__chartControls___Be-or{flex-direction:column;align-items:stretch}}.UsagePage-module__chartWrapper___lAIqa{padding:14px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;gap:12px}.UsagePage-module__chartLegend___OA6vI{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;min-width:0}@media(max-width:768px){.UsagePage-module__chartLegend___OA6vI{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:4px}}.UsagePage-module__legendItem___g2pb0{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:240px;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background:var(--bg-primary);font-size:12px;color:var(--text-secondary)}@media(max-width:768px){.UsagePage-module__legendItem___g2pb0{max-width:180px}}.UsagePage-module__legendDot___Ehp8J{width:10px;height:10px;border-radius:999px;flex-shrink:0}.UsagePage-module__legendLabel___pjtGV{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.UsagePage-module__chartArea___ZykTT{height:280px}@media(max-width:768px){.UsagePage-module__chartArea___ZykTT{height:320px}}.UsagePage-module__chartScroller___AtIi0{width:100%;height:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.UsagePage-module__chartScroller___AtIi0 canvas{touch-action:pan-x pan-y!important}.UsagePage-module__chartCanvas___NYz9z{position:relative;height:100%;width:100%}.UsagePage-module__periodButtons___MD8jm{display:flex;gap:6px}.UsagePage-module__chartsGrid___k56wO{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.UsagePage-module__chartsGrid___k56wO>*{min-width:0}@media(min-width:1025px){.UsagePage-module__chartsGrid___k56wO{grid-template-columns:repeat(2,minmax(0,1fr))}}.UsagePage-module__detailsGrid___zSOOI{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.UsagePage-module__detailsGrid___zSOOI>*{min-width:0}@media(min-width:1025px){.UsagePage-module__detailsGrid___zSOOI{grid-template-columns:repeat(2,minmax(0,1fr))}}.UsagePage-module__requestEventsActions___cJzSl{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.UsagePage-module__requestEventsToolbar___xx5kv{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}.UsagePage-module__requestEventsFilterItem___5vPqu{display:flex;flex-direction:column;gap:4px;min-width:180px}.UsagePage-module__requestEventsFilterLabel___UeBCu{font-size:12px;color:var(--text-secondary);font-weight:600}.UsagePage-module__requestEventsSelect___GDYz1{min-width:180px}.UsagePage-module__requestEventsMeta___jhpNH{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap}.UsagePage-module__requestEventsLimitHint___vP-TA{color:var(--text-tertiary)}.UsagePage-module__requestEventsTableWrapper___QQY-f{overflow:auto;max-height:460px;border:1px solid var(--border-color);border-radius:8px}.UsagePage-module__requestEventsTimestamp___I6vM1{white-space:nowrap;min-width:160px}.UsagePage-module__requestEventsSourceCell___y8Who,.UsagePage-module__requestEventsAuthIndex___DAZfi{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;max-width:180px;word-break:break-all}.UsagePage-module__requestEventsResultSuccess___Ovwcs{color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5);border:1px solid var(--success-badge-border, #6ee7b7)}.UsagePage-module__requestEventsResultFailed___sUYiy{color:var(--failure-badge-text);background:var(--failure-badge-bg);border:1px solid var(--failure-badge-border)}.UsagePage-module__requestEventsResultSuccess___Ovwcs,.UsagePage-module__requestEventsResultFailed___sUYiy{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;white-space:nowrap}.UsagePage-module__chartLineHeader___xPk4F{display:inline-flex;align-items:center;gap:10px}.UsagePage-module__chartLineList___Le-PV{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:768px){.UsagePage-module__chartLineList___Le-PV{grid-template-columns:1fr}}.UsagePage-module__chartLineItem___p7NYT{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}@media(max-width:768px){.UsagePage-module__chartLineItem___p7NYT{grid-template-columns:1fr;align-items:stretch;gap:8px}}.UsagePage-module__chartLineLabel___jA5Ww{font-size:12px;color:var(--text-secondary);font-weight:600;min-width:64px}.UsagePage-module__chartLineCount___yVkE2{font-size:12px;color:var(--text-secondary);font-weight:500}.UsagePage-module__chartLineHint___v7FGv{font-size:12px;color:var(--text-tertiary);margin:10px 0 0}.UsagePage-module__healthCard___FpTJ7{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-lg)}.UsagePage-module__healthHeader___uxdUE{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.UsagePage-module__healthTitle___G-5Ux{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.UsagePage-module__healthMeta___DeEqL{display:flex;align-items:center;gap:10px}.UsagePage-module__healthWindow___T1kJo{font-size:11px;color:var(--text-tertiary)}.UsagePage-module__healthRate___EKiz8{display:flex;align-items:center;font-size:12px;font-weight:600;white-space:nowrap;padding:4px 8px;border-radius:6px;background:var(--bg-tertiary)}.UsagePage-module__healthRateHigh___iGuwG{color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5)}.UsagePage-module__healthRateMedium___E67ug{color:var(--warning-text, #92400e);background:var(--warning-bg, #fef3c7)}.UsagePage-module__healthRateLow___RqYIj{color:var(--failure-badge-text);background:var(--failure-badge-bg)}.UsagePage-module__healthGridScroller___g50pg{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.UsagePage-module__healthGrid___QWLzl{display:grid;gap:3px;grid-auto-flow:column;grid-template-rows:repeat(7,10px);width:fit-content;margin:0 auto}.UsagePage-module__healthBlockWrapper___1Q1f5{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;width:10px;height:10px}.UsagePage-module__healthBlock___7ZNns{width:100%;height:100%;border-radius:2px;transition:transform .15s ease,opacity .15s ease}.UsagePage-module__healthBlockWrapper___1Q1f5:hover .UsagePage-module__healthBlock___7ZNns,.UsagePage-module__healthBlockWrapper___1Q1f5.UsagePage-module__healthBlockActive___vtccW .UsagePage-module__healthBlock___7ZNns{transform:scaleY(1.6);opacity:.85}.UsagePage-module__healthBlockIdle___qnkeV{background-color:var(--border-secondary, #e5e7eb)}.UsagePage-module__healthTooltip___Ah2TY{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:var(--floating-surface, #ffffff);background-image:none;border:1px solid var(--floating-border, #e5e7eb);border-radius:6px;padding:6px 10px;font-size:11px;line-height:1.5;white-space:nowrap;box-shadow:var(--floating-shadow, 0 10px 24px rgba(0, 0, 0, .16));z-index:1000;pointer-events:none;color:var(--text-primary);opacity:1;background-clip:padding-box}.UsagePage-module__healthTooltip___Ah2TY:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--floating-surface, #ffffff)}.UsagePage-module__healthTooltip___Ah2TY:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--floating-border, #e5e7eb)}.UsagePage-module__healthTooltipBelow___IwlME{bottom:auto;top:calc(100% + 8px)}.UsagePage-module__healthTooltipBelow___IwlME:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--floating-surface, #ffffff)}.UsagePage-module__healthTooltipBelow___IwlME:before{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--floating-border, #e5e7eb)}.UsagePage-module__healthTooltipLeft___bxqyd{left:0;transform:translate(0)}.UsagePage-module__healthTooltipLeft___bxqyd:after,.UsagePage-module__healthTooltipLeft___bxqyd:before{left:8px;transform:none}.UsagePage-module__healthTooltipRight___snBMi{left:auto;right:0;transform:translate(0)}.UsagePage-module__healthTooltipRight___snBMi:after,.UsagePage-module__healthTooltipRight___snBMi:before{left:auto;right:8px;transform:none}.UsagePage-module__healthTooltipTime___aOKYR{color:var(--text-secondary);display:block;margin-bottom:2px}.UsagePage-module__healthTooltipStats___EqRXO{display:flex;align-items:center;gap:8px}.UsagePage-module__healthTooltipSuccess___Qc947{color:var(--success-color, #22c55e)}.UsagePage-module__healthTooltipFailure___4fKGK{color:var(--danger-color, #ef4444)}.UsagePage-module__healthTooltipRate___rg7Rm{color:var(--text-secondary);margin-left:2px}.UsagePage-module__healthLegend___lLmsq{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.UsagePage-module__healthLegendLabel___muJul{font-size:10px;color:var(--text-tertiary)}.UsagePage-module__healthLegendColors___HbDI-{display:flex;gap:3px}.UsagePage-module__healthLegendBlock___r3rdr{width:10px;height:10px;border-radius:2px}@media(max-width:768px){.UsagePage-module__healthCard___FpTJ7{padding:14px;gap:10px}.UsagePage-module__healthGrid___QWLzl{grid-template-rows:repeat(7,6px);gap:2px;margin:0}.UsagePage-module__healthBlockWrapper___1Q1f5{width:6px;height:6px}.UsagePage-module__healthTooltip___Ah2TY{font-size:10px;padding:4px 8px}.UsagePage-module__healthLegendBlock___r3rdr{width:8px;height:8px}}.ConfigSection-module__section___36A5y{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:24px;padding:26px 0;border-top:1px solid color-mix(in srgb,var(--border-color) 76%,transparent);scroll-margin-top:112px}.ConfigSection-module__section___36A5y:first-child{border-top:none;padding-top:0}@media(max-width:768px){.ConfigSection-module__section___36A5y{grid-template-columns:minmax(0,1fr);gap:18px;padding:22px 0;scroll-margin-top:88px}}.ConfigSection-module__header___9y9kI{position:sticky;top:104px;align-self:start;display:flex;flex-direction:column;gap:14px}@media(max-width:768px){.ConfigSection-module__header___9y9kI{position:static}}.ConfigSection-module__titleRow___MDqPS{display:flex;align-items:center;gap:12px;min-width:0}.ConfigSection-module__indexBadge___BNk-6{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-primary) 92%,transparent),transparent),color-mix(in srgb,var(--primary-color) 11%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--primary-color) 18%,var(--border-color));color:var(--primary-hover);font-size:12px;font-weight:700;letter-spacing:.08em}.ConfigSection-module__iconBadge___608--{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:14px;background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 80%,transparent);color:var(--text-secondary);flex:0 0 auto}.ConfigSection-module__headingGroup___iqK3P{display:flex;flex-direction:column;gap:6px;min-width:0}.ConfigSection-module__title___fNwM-{margin:0;font-size:clamp(20px,2vw,25px);line-height:1.08;font-weight:700;color:var(--text-primary)}.ConfigSection-module__description___uM2Zw{margin:0;max-width:34ch;color:var(--text-secondary);font-size:14px;line-height:1.7}@media(max-width:768px){.ConfigSection-module__description___uM2Zw{max-width:none}}.ConfigSection-module__content___RBAGw{display:flex;flex-direction:column;gap:16px;min-width:0}.VisualConfigEditor-module__visualEditor___qt8bb{display:flex;flex-direction:column;gap:32px}.VisualConfigEditor-module__visualEditor___qt8bb .form-group{gap:8px;margin-bottom:0}.VisualConfigEditor-module__visualEditor___qt8bb .form-group>label{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em}.VisualConfigEditor-module__visualEditor___qt8bb .input{min-height:48px;border-radius:16px;background:color-mix(in srgb,var(--bg-primary) 92%,transparent);border-color:color-mix(in srgb,var(--border-color) 84%,transparent);box-shadow:inset 0 1px #ffffff14}.VisualConfigEditor-module__visualEditor___qt8bb .input:focus{background:var(--bg-primary);border-color:var(--primary-color)}.VisualConfigEditor-module__visualEditor___qt8bb textarea.input{min-height:120px}.VisualConfigEditor-module__visualEditor___qt8bb .hint{color:var(--text-secondary);font-size:12px;line-height:1.6}.VisualConfigEditor-module__visualEditor___qt8bb .error-box{border-radius:14px}.VisualConfigEditor-module__visualEditor___qt8bb .item-list{gap:12px;margin-top:10px}.VisualConfigEditor-module__visualEditor___qt8bb .item-row{border-radius:18px;padding:14px 16px;background:color-mix(in srgb,var(--bg-primary) 78%,transparent);border-color:color-mix(in srgb,var(--border-color) 86%,transparent)}.VisualConfigEditor-module__visualEditor___qt8bb .item-row .item-meta{gap:4px}.VisualConfigEditor-module__visualEditor___qt8bb .item-row .item-actions{flex-wrap:wrap}.VisualConfigEditor-module__visualEditor___qt8bb .pill{background:color-mix(in srgb,var(--bg-secondary) 84%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);color:var(--text-secondary)}.VisualConfigEditor-module__expandableInputWrapper___k5rpc{position:relative;display:flex;align-items:flex-start;min-width:0;flex:1}.VisualConfigEditor-module__expandableInputWrapper___k5rpc>.VisualConfigEditor-module__expandableTextarea___OVvmN,.VisualConfigEditor-module__expandableInputWrapper___k5rpc>.input{flex:1;min-width:0;padding-right:28px}.VisualConfigEditor-module__expandableTextarea___OVvmN{resize:none;min-height:60px;overflow:hidden;line-height:1.5;padding-right:32px}.VisualConfigEditor-module__expandableToggle___M5mBU{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:10px;line-height:1;padding:2px;color:var(--text-secondary, #999);opacity:.5;transition:opacity .15s;z-index:1}.VisualConfigEditor-module__expandableToggle___M5mBU:hover{opacity:1}.VisualConfigEditor-module__expandableToggle___M5mBU:disabled{cursor:default;opacity:.35}.VisualConfigEditor-module__expandableInputExpanded___9zfyv .VisualConfigEditor-module__expandableToggle___M5mBU{top:8px;transform:none;right:14px}.VisualConfigEditor-module__overview___OzHQc{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:18px;border-radius:30px;border:1px solid color-mix(in srgb,var(--border-color) 78%,transparent);background:radial-gradient(circle at top right,color-mix(in srgb,var(--primary-color) 12%,transparent),transparent 36%),linear-gradient(135deg,color-mix(in srgb,var(--bg-primary) 94%,transparent),color-mix(in srgb,var(--bg-secondary) 96%,transparent));padding:clamp(22px,3vw,30px)}.VisualConfigEditor-module__overview___OzHQc:before{content:"";position:absolute;inset:0 auto auto 0;width:min(220px,44vw);height:min(220px,44vw);background:radial-gradient(circle,color-mix(in srgb,var(--primary-color) 16%,transparent),transparent 72%);opacity:.6;pointer-events:none}.VisualConfigEditor-module__overviewHeader___A8kWa{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.VisualConfigEditor-module__overviewMeta___SM8ZF{display:flex;flex-wrap:wrap;gap:10px}.VisualConfigEditor-module__overviewPill___eXq54{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 82%,transparent);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em}.VisualConfigEditor-module__overviewPillWarning___ruscj{color:var(--warning-text);border-color:var(--warning-border);background:var(--warning-bg)}.VisualConfigEditor-module__overviewFocusList___UfkDy{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:1200px){.VisualConfigEditor-module__overviewFocusList___UfkDy{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.VisualConfigEditor-module__overviewFocusList___UfkDy{grid-template-columns:minmax(0,1fr)}}.VisualConfigEditor-module__overviewFocusLink___CSqNR{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.VisualConfigEditor-module__overviewFocusLink___CSqNR:focus{outline:2px solid #8b8680;outline-offset:2px}.VisualConfigEditor-module__overviewFocusLink___CSqNR{display:flex;align-items:flex-start;gap:14px;width:100%;padding:14px 16px;border-radius:20px;border:1px solid color-mix(in srgb,var(--border-color) 70%,transparent);background:color-mix(in srgb,var(--bg-primary) 74%,transparent);text-align:left;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.VisualConfigEditor-module__overviewFocusLink___CSqNR:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary-color) 26%,var(--border-color));background:color-mix(in srgb,var(--bg-primary) 92%,transparent)}.VisualConfigEditor-module__overviewFocusLinkActive___LCEnC{border-color:color-mix(in srgb,var(--primary-color) 28%,var(--border-color));background:color-mix(in srgb,var(--bg-primary) 92%,transparent)}.VisualConfigEditor-module__focusIcon___9SvWW{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;background:color-mix(in srgb,var(--primary-color) 10%,var(--bg-secondary));color:var(--primary-hover);flex:0 0 auto}.VisualConfigEditor-module__focusCopy___FTgbh{display:flex;flex-direction:column;gap:4px;min-width:0}.VisualConfigEditor-module__focusTitle___mIxOM{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.VisualConfigEditor-module__focusDescription___NUwa3{color:var(--text-secondary);font-size:13px;line-height:1.55}.VisualConfigEditor-module__workspace___gqLDP{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:24px;align-items:start}@media(max-width:1024px){.VisualConfigEditor-module__workspace___gqLDP{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){.VisualConfigEditor-module__workspace___gqLDP{gap:16px}}.VisualConfigEditor-module__mobileSectionNav___d-TWK{display:none}@media(max-width:768px){.VisualConfigEditor-module__mobileSectionNav___d-TWK{position:sticky;top:calc(var(--header-height, 64px) + 12px);z-index:4;display:block;margin-bottom:4px}}.VisualConfigEditor-module__mobileSectionNavScroller___VGXz-{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}.VisualConfigEditor-module__mobileSectionNavScroller___VGXz-::-webkit-scrollbar{display:none}.VisualConfigEditor-module__mobileSectionNavButton___mR9BT{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.VisualConfigEditor-module__mobileSectionNavButton___mR9BT:focus{outline:2px solid #8b8680;outline-offset:2px}.VisualConfigEditor-module__mobileSectionNavButton___mR9BT{display:inline-flex;align-items:center;gap:8px;min-width:max-content;flex:0 0 auto;padding:10px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 88%,transparent);box-shadow:0 18px 36px -30px #00000047;white-space:nowrap}.VisualConfigEditor-module__mobileSectionNavButtonActive___ug6e6{border-color:color-mix(in srgb,var(--primary-color) 24%,var(--border-color));background:color-mix(in srgb,var(--bg-primary) 96%,transparent)}.VisualConfigEditor-module__mobileSectionNavIndex___eVeF8{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.08em}.VisualConfigEditor-module__mobileSectionNavLabel___oOjqs{color:var(--text-primary);font-size:13px;font-weight:700}.VisualConfigEditor-module__mobileSectionNavBadge___Gp-uW{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);font-size:11px;font-weight:700}.VisualConfigEditor-module__sidebar___SiTqL{position:relative;align-self:start}@media(max-width:1024px){.VisualConfigEditor-module__sidebar___SiTqL{position:static}}@media(max-width:768px){.VisualConfigEditor-module__sidebar___SiTqL{display:none}}.VisualConfigEditor-module__sidebarPlaceholder___LpX2Y{min-height:1px}.VisualConfigEditor-module__sidebarRail___aktyQ{max-height:calc(100vh - var(--header-height, 64px) - 36px);overflow-y:auto;overflow-x:hidden;padding:12px;border-radius:26px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 76%,transparent);--glass-blur: 14px;backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);box-shadow:0 24px 56px -34px #0000006b;-ms-overflow-style:none;scrollbar-width:none}.VisualConfigEditor-module__sidebarRail___aktyQ::-webkit-scrollbar{display:none}.VisualConfigEditor-module__floatingSidebarContainer___FWwFS{position:fixed;left:0;top:0;will-change:transform,width,max-height;z-index:45;opacity:0;pointer-events:none;transition:opacity .18s ease}@media(max-width:1024px){.VisualConfigEditor-module__floatingSidebarContainer___FWwFS{display:none}}.VisualConfigEditor-module__floatingSidebarRail___ym20u{max-height:inherit;overflow-y:auto;overflow-x:hidden;padding:12px;border-radius:26px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 96%,transparent);box-shadow:0 24px 56px -34px #0000006b;-ms-overflow-style:none;scrollbar-width:none}.VisualConfigEditor-module__floatingSidebarRail___ym20u::-webkit-scrollbar{display:none}.VisualConfigEditor-module__navList___Z7CyL{display:flex;flex-direction:column;gap:8px}@media(max-width:1024px){.VisualConfigEditor-module__navList___Z7CyL{flex-direction:row;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.VisualConfigEditor-module__navList___Z7CyL::-webkit-scrollbar{display:none}}.VisualConfigEditor-module__navButton___EtGL7{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.VisualConfigEditor-module__navButton___EtGL7:focus{outline:2px solid #8b8680;outline-offset:2px}.VisualConfigEditor-module__navButton___EtGL7{display:flex;align-items:flex-start;gap:14px;width:100%;padding:14px;border-radius:20px;border:1px solid transparent;background:transparent;color:inherit;text-align:left;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.VisualConfigEditor-module__navButton___EtGL7:hover{transform:translate(2px);background:color-mix(in srgb,var(--bg-secondary) 86%,transparent);border-color:color-mix(in srgb,var(--border-color) 88%,transparent)}@media(max-width:1024px){.VisualConfigEditor-module__navButton___EtGL7{min-width:232px;flex:0 0 auto}.VisualConfigEditor-module__navButton___EtGL7:hover{transform:translateY(-1px)}}.VisualConfigEditor-module__navButtonActive___oMl0Y{background:color-mix(in srgb,var(--bg-primary) 92%,transparent);border-color:color-mix(in srgb,var(--primary-color) 24%,var(--border-color));box-shadow:0 18px 36px -30px #00000052}.VisualConfigEditor-module__navIndex___NEFe2{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.08em;flex:0 0 auto}.VisualConfigEditor-module__navMain___JoJFq{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.VisualConfigEditor-module__navHeadingRow___ulXXL{display:flex;align-items:center;gap:10px;min-width:0}.VisualConfigEditor-module__navLabelWrap___3-6B4{display:inline-flex;align-items:center;gap:8px;min-width:0}.VisualConfigEditor-module__navIcon___ZGr7m{display:inline-flex;align-items:center;justify-content:center;color:var(--primary-hover);flex:0 0 auto}.VisualConfigEditor-module__navLabel___-reRP{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.VisualConfigEditor-module__navDescription___PvAH-{color:var(--text-secondary);font-size:12px;line-height:1.55}.VisualConfigEditor-module__navBadge___UKNbs{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 10px;border-radius:999px;background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);font-size:12px;font-weight:700;flex:0 0 auto}.VisualConfigEditor-module__sections___UAac4{display:flex;flex-direction:column;min-width:0;padding:clamp(20px,3vw,30px);border-radius:32px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 76%,transparent)}.VisualConfigEditor-module__sectionGrid___KHy6p{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}@media(max-width:768px){.VisualConfigEditor-module__sectionGrid___KHy6p{grid-template-columns:minmax(0,1fr)}}.VisualConfigEditor-module__sectionStack___nY-l7{display:flex;flex-direction:column;gap:16px}.VisualConfigEditor-module__divider___RHNc6{height:1px;background:color-mix(in srgb,var(--border-color) 84%,transparent)}.VisualConfigEditor-module__toggleRow___Lb65M{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 18px;border-radius:18px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:color-mix(in srgb,var(--bg-primary) 84%,transparent)}@media(max-width:768px){.VisualConfigEditor-module__toggleRow___Lb65M{grid-template-columns:minmax(0,1fr)}}.VisualConfigEditor-module__toggleCopy___IC6RU{display:flex;flex-direction:column;gap:6px;min-width:0}.VisualConfigEditor-module__toggleTitle___ep81q{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.VisualConfigEditor-module__toggleDescription___DrJw5{color:var(--text-secondary);font-size:13px;line-height:1.6}.VisualConfigEditor-module__fieldShell___Q-UC-{display:flex;flex-direction:column;gap:8px;min-width:0}.VisualConfigEditor-module__fieldLabel___B0C9J{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em}.VisualConfigEditor-module__fieldControl___bzi3y{position:relative}.VisualConfigEditor-module__fieldHint___lA9jH{color:var(--text-secondary);font-size:12px;line-height:1.6}.VisualConfigEditor-module__inlinePill___qI2DE{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:color-mix(in srgb,var(--bg-primary) 92%,transparent);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.04em}.VisualConfigEditor-module__subsection___wLWRY{display:flex;flex-direction:column;gap:14px;padding:18px 20px;border-radius:24px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:color-mix(in srgb,var(--bg-primary) 84%,transparent)}.VisualConfigEditor-module__subsectionHeader___OAu1N{display:flex;flex-direction:column;gap:6px}.VisualConfigEditor-module__subsectionTitle___9spj4{margin:0;color:var(--text-primary);font-size:16px;font-weight:700;line-height:1.25}.VisualConfigEditor-module__subsectionDescription___Cy1zr{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.65}.VisualConfigEditor-module__sectionIssueBadge___RBReQ{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 10px;border-radius:999px;background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);font-size:12px;font-weight:700}.VisualConfigEditor-module__blockHeaderRow___bw0Ek{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.VisualConfigEditor-module__blockStack___skL7x{display:flex;flex-direction:column;gap:12px}.VisualConfigEditor-module__ruleCard___PtDhf{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:20px;border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-primary) 88%,transparent)}.VisualConfigEditor-module__ruleCardHeader___MYRwJ{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.VisualConfigEditor-module__ruleCardTitle___tshgp{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.VisualConfigEditor-module__blockLabel___NjEEm{color:var(--text-secondary);font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.04em}.VisualConfigEditor-module__actionRow___XLzbJ{display:flex;justify-content:flex-end}.VisualConfigEditor-module__emptyState___A7-n3{border:1px dashed color-mix(in srgb,var(--border-color) 84%,transparent);border-radius:18px;padding:18px 16px;color:var(--text-secondary);text-align:center;background:color-mix(in srgb,var(--bg-secondary) 88%,transparent)}.VisualConfigEditor-module__stringList___lQQGc{display:flex;flex-direction:column;gap:8px}.VisualConfigEditor-module__stringListRow___4k2cz{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.VisualConfigEditor-module__payloadRuleModelRow___VKBv1{display:grid;grid-template-columns:1fr 160px auto;gap:8px;align-items:center}.VisualConfigEditor-module__payloadRuleModelRowProtocolFirst___OaJ2F{grid-template-columns:160px 1fr auto}.VisualConfigEditor-module__payloadRuleParamRow___KZJW-{display:grid;grid-template-columns:1fr 140px 1fr auto;gap:8px;align-items:center}.VisualConfigEditor-module__payloadRuleParamGroup___1QLNQ{display:flex;flex-direction:column;gap:6px}.VisualConfigEditor-module__payloadJsonInput___ewOqz{min-height:120px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.VisualConfigEditor-module__payloadParamError___wGWdg{margin:0}.VisualConfigEditor-module__payloadFilterModelRow___MeP9-{display:grid;grid-template-columns:1fr 160px auto;gap:8px;align-items:center}.VisualConfigEditor-module__apiKeyModalInputRow___08QmU{display:flex;gap:8px;align-items:center}.VisualConfigEditor-module__apiKeyModalInputRow___08QmU .input{flex:1}@media(max-width:900px){.VisualConfigEditor-module__payloadRuleModelRow___VKBv1,.VisualConfigEditor-module__payloadRuleModelRowProtocolFirst___OaJ2F,.VisualConfigEditor-module__payloadRuleParamRow___KZJW-,.VisualConfigEditor-module__payloadFilterModelRow___MeP9-{grid-template-columns:minmax(0,1fr)}.VisualConfigEditor-module__apiKeyModalInputRow___08QmU{flex-direction:column;align-items:stretch}.VisualConfigEditor-module__payloadRowActionButton___8Fdka{width:100%}}@media(max-width:768px){.VisualConfigEditor-module__overview___OzHQc{gap:14px;padding:18px;border-radius:24px}.VisualConfigEditor-module__overviewFocusLink___CSqNR{padding:12px 14px}.VisualConfigEditor-module__sections___UAac4{border-radius:26px;padding:16px}.VisualConfigEditor-module__subsection___wLWRY{padding:16px;border-radius:20px}.VisualConfigEditor-module__toggleRow___Lb65M{padding:14px 16px}.VisualConfigEditor-module__blockHeaderRow___bw0Ek,.VisualConfigEditor-module__ruleCardHeader___MYRwJ{align-items:stretch}.VisualConfigEditor-module__blockHeaderRow___bw0Ek .btn,.VisualConfigEditor-module__ruleCardHeader___MYRwJ .btn,.VisualConfigEditor-module__actionRow___XLzbJ .btn,.VisualConfigEditor-module__stringListRow___4k2cz .btn{width:100%;justify-content:center}.VisualConfigEditor-module__actionRow___XLzbJ{justify-content:stretch}.VisualConfigEditor-module__stringListRow___4k2cz{align-items:stretch}}@media(max-width:380px){.VisualConfigEditor-module__overview___OzHQc,.VisualConfigEditor-module__sections___UAac4,.VisualConfigEditor-module__subsection___wLWRY,.VisualConfigEditor-module__ruleCard___PtDhf,.VisualConfigEditor-module__toggleRow___Lb65M{padding:14px}}.DiffModal-module__diffModal___v1LSh .modal-body{padding:0;max-height:none;overflow:hidden}.DiffModal-module__content___CqXvC{display:flex;flex-direction:column;height:70vh;min-height:420px}.DiffModal-module__emptyState___gS4Kg{flex:1;border:1px dashed var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);font-size:14px;display:grid;place-items:center;margin:16px}.DiffModal-module__diffContainer___AoJKb{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.DiffModal-module__fileHeader___7jkN4{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.DiffModal-module__fileIcon___OxYTx{flex-shrink:0;color:var(--text-tertiary)}.DiffModal-module__fileName___2ylCY{font-size:13px;font-weight:600;font-family:Consolas,Monaco,Menlo,SF Mono,monospace;color:var(--text-primary)}.DiffModal-module__fileStats___bN8WB{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;font-family:Consolas,Monaco,Menlo,SF Mono,monospace}.DiffModal-module__statAdditions___EKdp8{color:#3fb950}.DiffModal-module__statDeletions___Py0Xg{color:#f85149}.DiffModal-module__statBar___tR7TQ{display:inline-flex;gap:2px;margin-left:2px}.DiffModal-module__statBlock___4qKhG{width:8px;height:8px;border-radius:2px}.DiffModal-module__statBlockAdd___VI4yX{background:#3fb950}.DiffModal-module__statBlockDel___39sMa{background:#f85149}.DiffModal-module__diffBody___9dIqe{flex:1;min-height:0;overflow:auto;font-family:Consolas,Monaco,Menlo,SF Mono,monospace;font-size:12px;line-height:20px}.DiffModal-module__hunk___AcNIC+.DiffModal-module__hunk___AcNIC{border-top:1px solid var(--border-color)}.DiffModal-module__hunkHeader___xUVgg{display:flex;align-items:center;background:color-mix(in srgb,#388bfd 8%,var(--bg-primary));border-bottom:1px solid color-mix(in srgb,#388bfd 12%,var(--border-color));color:color-mix(in srgb,#388bfd 75%,var(--text-secondary));min-height:20px}.DiffModal-module__hunkGutter___QVKqi{width:50px;flex-shrink:0;display:flex;align-items:center;justify-content:center;align-self:stretch;border-right:1px solid color-mix(in srgb,#388bfd 12%,var(--border-color))}.DiffModal-module__hunkExpandIcon___zbAx-{color:color-mix(in srgb,#388bfd 70%,var(--text-tertiary));opacity:.7}.DiffModal-module__hunkText___iPVut{padding:4px 8px 4px 28px;font-size:12px;white-space:nowrap}.DiffModal-module__diffLine___9KzZK{display:flex;min-height:20px}.DiffModal-module__lineNum___VXwKE{width:50px;flex-shrink:0;padding:0 8px;text-align:right;color:var(--text-tertiary);user-select:none;font-variant-numeric:tabular-nums;border-right:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);box-sizing:border-box}.DiffModal-module__lineNumEmpty___I-5AK{color:transparent}.DiffModal-module__linePrefix___ofp2Q{width:20px;flex-shrink:0;text-align:center;user-select:none;font-weight:700}.DiffModal-module__lineText___Zdyo3{flex:1;min-width:0;padding-right:12px;white-space:pre-wrap;word-break:break-word}.DiffModal-module__context___RnJqZ{background:var(--bg-primary)}.DiffModal-module__context___RnJqZ .DiffModal-module__linePrefix___ofp2Q{color:var(--text-tertiary)}.DiffModal-module__context___RnJqZ .DiffModal-module__lineText___Zdyo3{color:var(--text-primary)}.DiffModal-module__deletion___rms8N{background:color-mix(in srgb,#f85149 8%,var(--bg-primary))}.DiffModal-module__deletion___rms8N .DiffModal-module__lineNum___VXwKE{background:color-mix(in srgb,#f85149 12%,var(--bg-primary));border-right-color:color-mix(in srgb,#f85149 18%,var(--border-color));color:color-mix(in srgb,#f85149 60%,var(--text-tertiary))}.DiffModal-module__deletion___rms8N .DiffModal-module__linePrefix___ofp2Q{color:#f85149}.DiffModal-module__deletion___rms8N .DiffModal-module__lineText___Zdyo3{color:var(--text-primary)}.DiffModal-module__addition___a6g2h{background:color-mix(in srgb,#3fb950 8%,var(--bg-primary))}.DiffModal-module__addition___a6g2h .DiffModal-module__lineNum___VXwKE{background:color-mix(in srgb,#3fb950 12%,var(--bg-primary));border-right-color:color-mix(in srgb,#3fb950 18%,var(--border-color));color:color-mix(in srgb,#3fb950 60%,var(--text-tertiary))}.DiffModal-module__addition___a6g2h .DiffModal-module__linePrefix___ofp2Q{color:#3fb950}.DiffModal-module__addition___a6g2h .DiffModal-module__lineText___Zdyo3{color:var(--text-primary)}@media(max-width:768px){.DiffModal-module__content___CqXvC{height:65vh;min-height:360px}.DiffModal-module__lineNum___VXwKE{width:36px;padding:0 4px;font-size:10px}.DiffModal-module__linePrefix___ofp2Q{width:16px;font-size:11px}.DiffModal-module__hunkGutter___QVKqi{width:36px}.DiffModal-module__hunkText___iPVut{padding-left:20px}.DiffModal-module__diffBody___9dIqe{font-size:11px;line-height:18px}.DiffModal-module__fileName___2ylCY{font-size:12px}.DiffModal-module__fileStats___bN8WB{font-size:11px}}.ConfigPage-module__container___5kN-Y{width:100%;min-height:100%;display:flex;flex-direction:column;gap:24px;overflow-y:auto;padding-bottom:calc(var(--config-action-bar-height, 0px) + 16px + env(safe-area-inset-bottom) + 16px)}.ConfigPage-module__pageHeader___Zulyi{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:24px;align-items:end;padding:clamp(22px,3vw,30px);border-radius:30px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:radial-gradient(circle at top right,color-mix(in srgb,var(--primary-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--bg-primary) 94%,transparent),color-mix(in srgb,var(--bg-secondary) 96%,transparent))}.ConfigPage-module__pageHeader___Zulyi:before{content:"";position:absolute;inset:0 auto auto 0;width:min(260px,48vw);height:min(260px,48vw);background:radial-gradient(circle,color-mix(in srgb,var(--primary-color) 12%,transparent),transparent 70%);pointer-events:none;opacity:.7}@media(max-width:768px){.ConfigPage-module__pageHeader___Zulyi{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px}}.ConfigPage-module__pageHeaderCopy___fiTfJ{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0}.ConfigPage-module__pageEyebrow___Oib1p{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ConfigPage-module__pageTitle___BoVLE{margin:0;color:var(--text-primary);font-size:clamp(32px,4vw,52px);line-height:.95;letter-spacing:-.04em}.ConfigPage-module__description___qruwQ{margin:0;max-width:46rem;color:var(--text-secondary);font-size:15px;line-height:1.7}.ConfigPage-module__pageMeta___NX40i{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:0}@media(max-width:768px){.ConfigPage-module__pageMeta___NX40i{align-items:stretch}}.ConfigPage-module__statusBadge___dQAmD{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:color-mix(in srgb,var(--bg-primary) 86%,transparent);color:var(--text-primary);font-size:13px;font-weight:700;text-align:center}@media(max-width:768px){.ConfigPage-module__statusBadge___dQAmD{width:100%}}.ConfigPage-module__tabBar___PelpE{display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 82%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none}.ConfigPage-module__tabBar___PelpE::-webkit-scrollbar{display:none}@media(max-width:768px){.ConfigPage-module__tabBar___PelpE{width:100%}}.ConfigPage-module__tabItem___Uj1rU{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.ConfigPage-module__tabItem___Uj1rU:focus{outline:2px solid #8b8680;outline-offset:2px}.ConfigPage-module__tabItem___Uj1rU{padding:10px 16px;border-radius:999px;border:1px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:700;white-space:nowrap;transition:color .15s ease,background-color .15s ease,border-color .15s ease,transform .15s ease}.ConfigPage-module__tabItem___Uj1rU:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);border-color:color-mix(in srgb,var(--border-color) 88%,transparent)}.ConfigPage-module__tabItem___Uj1rU:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:768px){.ConfigPage-module__tabItem___Uj1rU{flex:1;text-align:center}}.ConfigPage-module__tabActive___sZLh-{color:var(--text-primary);background:var(--bg-primary);border-color:color-mix(in srgb,var(--primary-color) 24%,var(--border-color));box-shadow:0 16px 32px -28px #0000004d}.ConfigPage-module__workspaceShell___Ztz3J{display:flex;flex-direction:column;gap:24px;padding:clamp(18px,3vw,28px);border-radius:32px;border:1px solid color-mix(in srgb,var(--border-color) 82%,transparent);background:color-mix(in srgb,var(--bg-primary) 74%,transparent);box-shadow:var(--shadow)}@media(max-width:768px){.ConfigPage-module__workspaceShell___Ztz3J{padding:16px;border-radius:28px}}.ConfigPage-module__content___PgFbt{display:flex;flex-direction:column;gap:24px;min-height:0}.ConfigPage-module__sourceWorkspace___bUuLs{display:flex;flex-direction:column;gap:16px;min-height:0}.ConfigPage-module__sourceToolbar___fhCdI{display:flex;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,var(--border-color) 80%,transparent)}@media(max-width:768px){.ConfigPage-module__sourceToolbar___fhCdI{flex-direction:column;align-items:stretch}}.ConfigPage-module__searchInputWrapper___-GeEQ{flex:1;min-width:0;position:relative;display:flex;align-items:center}.ConfigPage-module__searchInputWrapper___-GeEQ .form-group{margin-bottom:0;width:100%}.ConfigPage-module__searchInput___ock8o{flex:1;border-radius:16px!important;padding-right:132px!important}.ConfigPage-module__searchRight___pwWBV{display:inline-flex;align-items:center;gap:8px}.ConfigPage-module__searchCount___AIry7{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);color:var(--text-secondary);font-size:12px;font-weight:700;pointer-events:none;white-space:nowrap}.ConfigPage-module__searchButton___GRbfi{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.ConfigPage-module__searchButton___GRbfi:focus{outline:2px solid #8b8680;outline-offset:2px}.ConfigPage-module__searchButton___GRbfi{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--primary-color);border:1px solid var(--primary-color);color:#fff;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.ConfigPage-module__searchButton___GRbfi:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.ConfigPage-module__searchButton___GRbfi:disabled{opacity:.5;cursor:not-allowed}.ConfigPage-module__searchActions___ZGITa{display:flex;gap:6px;flex-shrink:0}.ConfigPage-module__searchActions___ZGITa button{min-width:36px;width:36px;height:36px;padding:0!important;border-radius:999px}@media(max-width:768px){.ConfigPage-module__searchActions___ZGITa{justify-content:stretch}.ConfigPage-module__searchActions___ZGITa button{flex:1;width:auto}}.ConfigPage-module__editorWrapper___yBudn{width:100%;flex:0 0 auto;height:clamp(420px,64vh,980px);border:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);border-radius:28px;overflow:hidden;background:color-mix(in srgb,var(--bg-primary) 90%,transparent)}@supports (height: 100dvh){.ConfigPage-module__editorWrapper___yBudn{height:clamp(420px,64dvh,980px)}}.ConfigPage-module__editorWrapper___yBudn .cm-editor{height:100%;font-size:14px;font-family:Consolas,Monaco,Menlo,monospace;background:transparent}.ConfigPage-module__editorWrapper___yBudn .cm-scroller{overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior:contain}.ConfigPage-module__editorWrapper___yBudn .cm-gutters{border-right:1px solid color-mix(in srgb,var(--border-color) 84%,transparent);background:color-mix(in srgb,var(--bg-secondary) 88%,transparent)}.ConfigPage-module__editorWrapper___yBudn .cm-lineNumbers .cm-gutterElement{padding:0 8px 0 12px;min-width:40px;color:var(--text-muted)}.ConfigPage-module__editorWrapper___yBudn .cm-activeLine,.ConfigPage-module__editorWrapper___yBudn .cm-activeLineGutter{background:var(--bg-hover)}.ConfigPage-module__editorWrapper___yBudn .cm-selectionMatch{background:#ffc1074d}.ConfigPage-module__editorWrapper___yBudn .cm-searchMatch{background:#ffc10766;outline:1px solid rgba(255,193,7,.6)}.ConfigPage-module__editorWrapper___yBudn .cm-searchMatch-selected{background:#ff980080}[data-theme=dark] .ConfigPage-module__editorWrapper___yBudn .cm-gutters{background:var(--bg-tertiary)}[data-theme=dark] .ConfigPage-module__editorWrapper___yBudn .cm-selectionMatch{background:#ffc10733}.ConfigPage-module__modified___4mzgT{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.ConfigPage-module__saved___zmZx2{color:var(--success-color);background:color-mix(in srgb,var(--success-color) 12%,var(--bg-primary));border-color:color-mix(in srgb,var(--success-color) 28%,var(--border-color))}.ConfigPage-module__error___qlpX1{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.ConfigPage-module__floatingActionContainer___3ZQ-z{position:fixed;left:var(--content-center-x, 50%);bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;pointer-events:auto;width:fit-content;max-width:calc(100vw - 24px)}.ConfigPage-module__floatingActionList___ky8bV{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;--glass-blur: 12px;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-filter);-webkit-backdrop-filter:var(--glass-backdrop-filter);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--shadow-lg);max-width:inherit;overflow-x:auto;scrollbar-width:none}.ConfigPage-module__floatingActionList___ky8bV::-webkit-scrollbar{display:none}.ConfigPage-module__floatingStatus___u8zOi{display:inline-flex;align-items:center;min-width:0;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid transparent;background:color-mix(in srgb,var(--text-primary) 6%,transparent);color:var(--text-primary);font-size:11px;font-weight:700;text-align:center;max-width:min(280px,46vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ConfigPage-module__floatingStatusCompact___STwcZ{max-width:112px;padding:0 8px;font-size:10px}.ConfigPage-module__floatingActionButton___Htxmz{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.ConfigPage-module__floatingActionButton___Htxmz:focus{outline:2px solid #8b8680;outline-offset:2px}.ConfigPage-module__floatingActionButton___Htxmz{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;cursor:pointer;color:var(--text-primary);transition:background-color .2s ease,transform .15s ease}.ConfigPage-module__floatingActionButton___Htxmz:hover:not(:disabled){background:color-mix(in srgb,var(--text-primary) 10%,transparent);transform:scale(1.08)}.ConfigPage-module__floatingActionButton___Htxmz:active:not(:disabled){transform:scale(.95)}.ConfigPage-module__floatingActionButton___Htxmz:disabled{opacity:.5;cursor:not-allowed;transform:none}.ConfigPage-module__dirtyDot___zXEnD{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:999px;background:var(--warning-color);box-shadow:0 0 0 2px #c6574640}@media(max-width:1200px){.ConfigPage-module__floatingActionContainer___3ZQ-z{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 16px)}.ConfigPage-module__floatingActionList___ky8bV{gap:6px;padding:8px 10px}.ConfigPage-module__floatingStatus___u8zOi{max-width:min(180px,40vw);font-size:10px;padding:0 8px}.ConfigPage-module__floatingActionButton___Htxmz{width:38px;height:38px;flex:0 0 auto}}@media(max-width:480px){.ConfigPage-module__floatingStatus___u8zOi{max-width:min(132px,38vw)}}@media(max-width:380px){.ConfigPage-module__pageHeader___Zulyi,.ConfigPage-module__workspaceShell___Ztz3J{padding:14px}}.LogsPage-module__container___aQ0JL{width:100%;flex:1;display:flex;flex-direction:column;min-height:0}@media(max-width:768px){.LogsPage-module__container___aQ0JL{min-height:auto;overflow:visible}}.LogsPage-module__pageTitle___vZY55{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 24px}.LogsPage-module__tabBar___bI3hW{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-color)}.LogsPage-module__tabItem___5tb4J{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.LogsPage-module__tabItem___5tb4J:focus{outline:2px solid #8b8680;outline-offset:2px}.LogsPage-module__tabItem___5tb4J{padding:12px 20px;font-size:14px;font-weight:500;color:var(--text-secondary);background:transparent;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.LogsPage-module__tabItem___5tb4J:hover{color:var(--text-primary)}.LogsPage-module__tabItem___5tb4J:focus,.LogsPage-module__tabItem___5tb4J:focus-visible{outline:none;box-shadow:none}.LogsPage-module__tabActive___JjbWX{color:var(--primary-color);border-bottom-color:var(--primary-color)}.LogsPage-module__content___hGaGn{display:flex;flex-direction:column;gap:24px;flex:1;min-height:0}@media(max-width:768px){.LogsPage-module__content___hGaGn{gap:16px;min-height:auto}}.LogsPage-module__logCard___KG4Jd{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}@media(max-width:768px){.LogsPage-module__logCard___KG4Jd{flex:0 0 auto;min-height:auto;overflow:visible}}.LogsPage-module__toolbar___9dY5F{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}@media(max-width:768px){.LogsPage-module__toolbar___9dY5F{align-items:flex-start;margin-left:0;width:100%}}.LogsPage-module__filters___nUahU{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.LogsPage-module__filters___nUahU .form-group{margin:0}@media(max-width:768px){.LogsPage-module__filters___nUahU{gap:8px;margin-bottom:8px}}.LogsPage-module__searchWrapper___mrEmr{flex:1;min-width:220px;max-width:420px}.LogsPage-module__filterPanelHeader___Oi5tO{display:flex;align-items:center;flex:1 1 100%}.LogsPage-module__filterPanelToggle___ADZED{white-space:nowrap}.LogsPage-module__filterPanelButtonContent___sgOCp{display:inline-flex;align-items:center;gap:6px}.LogsPage-module__filterPanelCount___kAJ5-{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;background:#8b86801f;color:var(--primary-color);font-size:12px;line-height:1.2}.LogsPage-module__structuredFilters___fW4v7{display:flex;flex-direction:column;gap:8px;flex:1 1 100%;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.LogsPage-module__filterChipGroup___bbPoy{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.LogsPage-module__filterChipLabel___jy0D3{font-size:12px;color:var(--text-secondary);font-weight:700;line-height:28px;min-width:68px}.LogsPage-module__filterChipList___hHeOY{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}.LogsPage-module__filterChip___Efqh7{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.LogsPage-module__filterChip___Efqh7:focus{outline:2px solid #8b8680;outline-offset:2px}.LogsPage-module__filterChip___Efqh7{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);font-size:12px;line-height:1.3;cursor:pointer;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.LogsPage-module__filterChip___Efqh7:hover:not(:disabled){color:var(--text-primary);border-color:var(--primary-color)}.LogsPage-module__filterChip___Efqh7:disabled{opacity:.55;cursor:not-allowed}.LogsPage-module__filterChipActive___8S8ki{color:var(--primary-color);border-color:#8b868073;background:#8b868024}.LogsPage-module__filterChipHint___shcVo{font-size:12px;color:var(--text-tertiary)}@media(max-width:768px){.LogsPage-module__filterPanelHeader___Oi5tO,.LogsPage-module__filterPanelToggle___ADZED{width:100%}.LogsPage-module__filterPanelButtonContent___sgOCp{width:100%;justify-content:space-between;flex-wrap:wrap}.LogsPage-module__filterChipGroup___bbPoy{flex-direction:column;gap:6px}.LogsPage-module__filterChipLabel___jy0D3{min-width:0;line-height:1.2}}.LogsPage-module__searchInput___eoPij{padding-right:44px!important}.LogsPage-module__searchIcon___73cvF{color:var(--text-tertiary);pointer-events:none}.LogsPage-module__searchClear___yTM1y{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.LogsPage-module__searchClear___yTM1y:focus{outline:2px solid #8b8680;outline-offset:2px}.LogsPage-module__searchClear___yTM1y{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9999px;color:var(--text-secondary)}.LogsPage-module__searchClear___yTM1y:hover{background:var(--bg-secondary)}.LogsPage-module__filterStats___IaTXF{margin-left:auto;display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--text-secondary);white-space:nowrap}.LogsPage-module__removedCount___bNgxC{color:var(--text-tertiary)}.LogsPage-module__actionButton___aYJPR{white-space:nowrap}.LogsPage-module__buttonContent___qjHrB{display:inline-flex;align-items:center;gap:6px}.LogsPage-module__buttonContent___qjHrB svg{flex:0 0 auto}.LogsPage-module__switchLabel___EfB3d{display:inline-flex;align-items:center;gap:6px}.LogsPage-module__switchLabel___EfB3d svg{flex:0 0 auto}.LogsPage-module__logPanel___2wjiP{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;flex:1 1 auto;min-height:280px;max-height:calc(100vh - 320px);overflow:auto;position:relative;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}@media(min-width:769px)and (max-width:1024px){.LogsPage-module__logPanel___2wjiP{min-height:240px;max-height:calc(100vh - 300px)}}@media(max-width:768px){.LogsPage-module__logPanel___2wjiP{min-height:360px;max-height:480px;flex:0 0 auto;overflow:auto}}.LogsPage-module__errorPanel___0w-se{height:480px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.LogsPage-module__loadMoreBanner___BUD0t{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);font-size:12px}@media(max-width:768px){.LogsPage-module__loadMoreBanner___BUD0t{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px}.LogsPage-module__loadMoreBanner___BUD0t>span{width:100%}}.LogsPage-module__loadMoreCount___UsdBd{color:var(--text-tertiary);white-space:nowrap}.LogsPage-module__loadMoreStats___e9bVk{display:flex;align-items:center;gap:16px}@media(max-width:768px){.LogsPage-module__loadMoreStats___e9bVk{width:100%;flex-wrap:wrap;gap:8px}.LogsPage-module__loadMoreStats___e9bVk>span{white-space:nowrap}}.LogsPage-module__logList___lFt6f{display:flex;flex-direction:column}.LogsPage-module__rawLog___F5YBd{margin:0;padding:10px 12px;cursor:text;user-select:text;white-space:pre;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.45}@media(min-width:769px)and (max-width:1024px){.LogsPage-module__rawLog___F5YBd{padding:8px 10px;font-size:12px}}@media(max-width:768px){.LogsPage-module__rawLog___F5YBd{padding:8px 10px;font-size:11.5px}}.LogsPage-module__logRow___rxZS5{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:10px 12px;border-bottom:1px solid var(--border-color);border-left:3px solid transparent;cursor:copy;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.45;color:var(--text-primary)}.LogsPage-module__logRow___rxZS5:hover{background:#8b86800f}@media(min-width:769px)and (max-width:1024px){.LogsPage-module__logRow___rxZS5{grid-template-columns:140px 1fr;gap:8px;padding:8px 10px;font-size:12px}}@media(max-width:768px){.LogsPage-module__logRow___rxZS5{grid-template-columns:1fr;gap:4px;padding:8px 10px;font-size:11.5px}}.LogsPage-module__rowWarn___Lhg4M{border-left-color:var(--warning-color)}.LogsPage-module__rowError___XQ3Qi{border-left-color:var(--error-color)}.LogsPage-module__timestamp___TZvLq{color:var(--text-tertiary);white-space:nowrap;padding-top:2px}@media(max-width:768px){.LogsPage-module__timestamp___TZvLq{white-space:normal}}.LogsPage-module__rowMain___f--We{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0}.LogsPage-module__badge___tR566{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:12px;font-weight:800;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);white-space:nowrap}.LogsPage-module__pill___vGA2z{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:12px;font-weight:600;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);white-space:nowrap}.LogsPage-module__source___nv7Zu{color:var(--text-secondary);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.LogsPage-module__source___nv7Zu{max-width:100%}}.LogsPage-module__requestIdBadge___yPO1b{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;color:#0891b2;background:#0891b21a;border-color:#0891b240}.LogsPage-module__statusBadge___hj08j{font-variant-numeric:tabular-nums}.LogsPage-module__statusSuccess___3llcn{color:var(--success-badge-text);background:var(--success-badge-bg);border-color:var(--success-badge-border)}.LogsPage-module__statusInfo___B6DaE{color:var(--info-color);background:#8b86801f;border-color:#8b868040}.LogsPage-module__statusWarn___1Dwki{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.LogsPage-module__statusError___xxTDc{color:var(--failure-badge-text);background:var(--failure-badge-bg);border-color:var(--failure-badge-border)}.LogsPage-module__levelInfo___oZMOp{color:var(--info-color);background:#8b86801f;border-color:#8b868040}.LogsPage-module__levelWarn___DsCD0{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.LogsPage-module__levelError___8VjWc{color:var(--error-color);background:#c657461f;border-color:#c6574640}.LogsPage-module__levelDebug___l-5yk,.LogsPage-module__levelTrace___XvRLF{color:var(--text-secondary);background:#6b72801f;border-color:#6b728040}.LogsPage-module__methodBadge___Cf9jC{color:var(--text-primary);background:#8b868014;border-color:#8b868038}.LogsPage-module__path___frHAs{color:var(--text-primary);font-weight:700;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.LogsPage-module__path___frHAs{max-width:100%;flex-basis:100%}}.LogsPage-module__message___bNHRw{color:var(--text-secondary);word-break:break-word}@media(max-width:768px){.LogsPage-module__message___bNHRw{flex-basis:100%}}.LogsPage-module__traceButton___TpMAt{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;outline:none}.LogsPage-module__traceButton___TpMAt:focus{outline:2px solid #8b8680;outline-offset:2px}.LogsPage-module__traceButton___TpMAt{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;border:1px solid rgba(139,134,128,.3);background:#8b86801a;color:var(--primary-color);font-size:11px;font-weight:600;line-height:1.2;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.LogsPage-module__traceButton___TpMAt:hover{background:#8b868029;border-color:#8b868073}.LogsPage-module__tracePanel___qLlvU{display:flex;flex-direction:column;gap:8px}.LogsPage-module__traceNotice___brNFz{padding:8px 10px;border-radius:8px;border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning-text);font-size:12px}.LogsPage-module__traceSectionTitle___oZ-a0{margin:4px 0 0;font-size:13px;font-weight:700;color:var(--text-primary)}.LogsPage-module__traceCandidatesHeader___b8sav{display:flex;align-items:center;justify-content:space-between;gap:10px}.LogsPage-module__traceInfoGrid___7bY40{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media(max-width:768px){.LogsPage-module__traceInfoGrid___7bY40{grid-template-columns:1fr}}.LogsPage-module__traceInfoItem___ydd7g{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary)}.LogsPage-module__traceInfoItemWide___pmNic{grid-column:1/-1}.LogsPage-module__traceInfoLabel___zidDI{font-size:11px;color:var(--text-secondary);font-weight:700}.LogsPage-module__traceInfoValue___3AiSj{font-size:12px;color:var(--text-primary);word-break:break-word}.LogsPage-module__traceSourceType___4TLzV{display:inline-flex;align-items:center;margin-left:6px;padding:0 6px;border-radius:9999px;border:1px solid var(--border-color);font-size:11px;color:var(--text-secondary);background:var(--bg-primary)}.LogsPage-module__traceCandidates___TbNAE{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto}.LogsPage-module__traceCandidate___jBw7W{border:1px solid var(--border-color);border-radius:8px;padding:10px;background:var(--bg-secondary);display:flex;flex-direction:column;gap:8px}.LogsPage-module__traceCandidateHeader___daeEH{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.LogsPage-module__traceModelBadge___iJzwF{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;border:1px solid var(--success-badge-border, #6ee7b7);font-size:11px;font-weight:700;color:var(--success-badge-text, #065f46);background:var(--success-badge-bg, #d1fae5)}.LogsPage-module__traceDelta___gfgPb{font-size:11px;color:var(--text-secondary)}.LogsPage-module__traceCandidateGrid___qPwow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media(max-width:768px){.LogsPage-module__traceCandidateGrid___qPwow{grid-template-columns:1fr}}@media(max-height:820px){.LogsPage-module__pageTitle___vZY55{font-size:24px;margin-bottom:16px}.LogsPage-module__tabBar___bI3hW{margin-bottom:16px}.LogsPage-module__tabItem___5tb4J{padding:10px 16px}.LogsPage-module__content___hGaGn{gap:16px}.LogsPage-module__logCard___KG4Jd{padding:16px}.LogsPage-module__logPanel___2wjiP{min-height:200px;max-height:calc(100vh - 280px)}.LogsPage-module__logRow___rxZS5{padding:8px 10px;font-size:12px}.LogsPage-module__errorPanel___0w-se{height:360px}}@media(max-height:600px){.LogsPage-module__pageTitle___vZY55{font-size:20px;margin-bottom:8px}.LogsPage-module__tabBar___bI3hW{margin-bottom:8px}.LogsPage-module__tabItem___5tb4J{padding:8px 12px;font-size:13px}.LogsPage-module__content___hGaGn{gap:8px}.LogsPage-module__filters___nUahU{margin-bottom:8px;gap:8px}.LogsPage-module__logCard___KG4Jd{padding:8px}.LogsPage-module__logPanel___2wjiP{min-height:160px;max-height:calc(100vh - 220px)}.LogsPage-module__logRow___rxZS5{padding:6px 8px;font-size:11px;grid-template-columns:130px 1fr;gap:4px}.LogsPage-module__loadMoreBanner___BUD0t{padding:6px 10px}.LogsPage-module__errorPanel___0w-se{height:280px}}.SystemPage-module__container___KAydo{width:100%}.SystemPage-module__pageTitle___DiF5E{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 32px}.SystemPage-module__content___SauLn{display:flex;flex-direction:column;gap:32px}.SystemPage-module__aboutCard___v2-ui{overflow:hidden}.SystemPage-module__aboutHeader___hT4-J{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:16px;padding:24px 0 32px}.SystemPage-module__aboutLogo___KXoLr{width:108px;height:108px;border-radius:26px;object-fit:cover;box-shadow:0 12px 32px #00000029}.SystemPage-module__aboutTitle___BTLGy{width:min(100%,920px);font-size:clamp(28px,4.2vw,44px);font-weight:800;line-height:1.12;color:var(--text-primary);letter-spacing:-.02em;text-align:center;text-wrap:balance;white-space:normal;overflow-wrap:anywhere}.SystemPage-module__aboutInfoGrid___b7AR0{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:900px){.SystemPage-module__aboutInfoGrid___b7AR0{grid-template-columns:1fr}}.SystemPage-module__infoTile___6AuIY{display:flex;flex-direction:column;gap:6px;min-height:120px;padding:16px 24px;border-radius:12px;border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-secondary) 82%,transparent);text-align:left}.SystemPage-module__tapTile___-9SaX{border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-secondary) 82%,transparent);color:inherit;padding:16px 24px;cursor:pointer;transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease}.SystemPage-module__tapTile___-9SaX:hover{transform:translateY(-1px);border-color:var(--primary-color);box-shadow:0 8px 18px #8b86802e}.SystemPage-module__tapTile___-9SaX:active{transform:translateY(0)}.SystemPage-module__tileLabel___eMn4v{font-size:13px;font-weight:600;color:var(--text-secondary)}.SystemPage-module__tileHeader___w4Ej0{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:40px}.SystemPage-module__tileAction___WKXuS{flex-shrink:0;white-space:nowrap;margin:-4px -8px 0 0}.SystemPage-module__tileValue___Up02X{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.25;word-break:break-word}.SystemPage-module__tileSub___ysVDj{font-size:12px;color:var(--text-tertiary);line-height:1.4}.SystemPage-module__section___Q6rCw{display:flex;flex-direction:column;gap:16px}.SystemPage-module__sectionTitle___GOXpQ{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.SystemPage-module__sectionDescription___nI7Jo{font-size:14px;color:var(--text-secondary);margin:0 0 16px}.SystemPage-module__clearLoginActions___4ek-m{display:flex;justify-content:flex-end;align-items:center}.SystemPage-module__infoGrid___NNFgo{display:grid;gap:8px}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J{display:flex;justify-content:space-between;padding:8px 16px;background-color:var(--bg-secondary);border-radius:8px}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J .SystemPage-module__label___Xw4tZ{font-weight:500;color:var(--text-secondary)}.SystemPage-module__infoGrid___NNFgo .SystemPage-module__infoRow___E8Q0J .SystemPage-module__value___pii6g{color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace}.SystemPage-module__modelsList___id54Q{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.SystemPage-module__modelItem___ZTm4G{padding:8px 16px;background-color:var(--bg-secondary);border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px}.SystemPage-module__modelItem___ZTm4G:hover{background-color:var(--bg-hover)}.SystemPage-module__modelTags___M0sci{display:flex;flex-wrap:wrap;flex:0 0 100%;gap:8px}.SystemPage-module__groupTitle___bTqIN{display:flex;align-items:center;gap:8px}.SystemPage-module__groupIcon___-XXrb{width:18px;height:18px;flex-shrink:0}.SystemPage-module__modelTag___5Ar53{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;border:1px solid var(--border-color);background-color:var(--bg-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.SystemPage-module__modelName___LKdAK{color:var(--text-primary);font-weight:600}.SystemPage-module__modelAlias___zioM-{color:var(--text-secondary);font-size:12px}.SystemPage-module__versionCheck___V09h4{display:flex;flex-direction:column;gap:16px}.SystemPage-module__versionInfo___cmujE{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7{padding:16px;background-color:var(--bg-secondary);border-radius:8px}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7 .SystemPage-module__label___Xw4tZ{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.SystemPage-module__versionInfo___cmujE .SystemPage-module__versionItem___NmHd7 .SystemPage-module__version___XoIFT{font-size:16px;font-weight:600;color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace}.SystemPage-module__quickLinks___QTmT3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.SystemPage-module__linkCard___iSrVF{display:flex;align-items:center;gap:16px;padding:16px 24px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;text-decoration:none;color:inherit;transition:all .2s ease}.SystemPage-module__linkCard___iSrVF:hover{background-color:var(--bg-hover);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.SystemPage-module__linkCard___iSrVF:active{transform:translateY(0)}.SystemPage-module__linkIcon___gNqz2{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;background-color:var(--primary-color);color:#fff;flex-shrink:0}.SystemPage-module__linkIcon___gNqz2.SystemPage-module__github___V8I3m{background-color:#24292f}.SystemPage-module__linkIcon___gNqz2.SystemPage-module__docs___cA-rG{background-color:#10b981}.SystemPage-module__linkContent___Rfh7h{flex:1;min-width:0}.SystemPage-module__linkTitle___Zpr4Q{display:flex;align-items:center;gap:4px;font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.SystemPage-module__linkTitle___Zpr4Q svg{opacity:.5;flex-shrink:0}.SystemPage-module__linkDesc___KKavC{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:768px){.SystemPage-module__aboutLogo___KXoLr{width:92px;height:92px;border-radius:22px}.SystemPage-module__aboutTitle___BTLGy{width:min(100%,24ch);font-size:clamp(22px,6.6vw,34px);font-weight:700;line-height:1.18;letter-spacing:-.012em}}@media(max-width:520px){.SystemPage-module__aboutTitle___BTLGy{width:min(100%,19ch);font-size:clamp(20px,7.2vw,28px);font-weight:600;line-height:1.22;letter-spacing:-.006em}}</style>
|
||
</head>
|
||
<body>
|
||
<div id="root"></div>
|
||
</body>
|
||
</html>
|