diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 06e1563..9d37141 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1955,8 +1955,8 @@ paths: operationId: getDashboardPage description: | Serves the bundled Vue SPA shell (`text/html`). The same bytes are served for `/admin/`, - `/admin/login`, `/admin/providers`, `/admin/pairs`, - `/admin/settings` and `/admin/keys`: + `/admin/login`, `/admin/providers`, `/admin/models`, `/admin/groups`, `/admin/pairs`, + `/admin/settings`, `/admin/keys` and `/admin/logs`: the shell is structurally independent of the database, and every number on a page is fetched by the browser from an authenticated `/admin/v1/*` endpoint. That is why these paths can be served without a credential and why they disclose nothing. @@ -2017,12 +2017,28 @@ paths: '404': description: The management surface is not mounted. + /admin/groups: + get: + tags: [Dashboard] + summary: Serve the model groups page shell + operationId: getDashboardGroupsPage + description: See `GET /admin/`. This exact, data-free shell route supports GET and HEAD; group data comes from `/admin/v1/groups`. + security: [] + responses: + '200': + description: The page shell. + content: + text/html: + schema: {type: string} + '404': + description: The management surface is not mounted. + /admin/pairs: get: tags: [Dashboard] - summary: Serve the route bindings page shell + summary: Serve the legacy model groups page shell operationId: getDashboardPairsPage - description: See `GET /admin/`. This exact, data-free shell route supports GET and HEAD; binding data comes from `/admin/v1/pairs`. + description: See `GET /admin/`. Former address of the model groups page; the client redirects it to `/admin/groups` so existing bookmarks keep working. security: [] responses: '200': diff --git a/internal/api/dashboard.go b/internal/api/dashboard.go index 680d20e..ff7b2ee 100644 --- a/internal/api/dashboard.go +++ b/internal/api/dashboard.go @@ -31,6 +31,7 @@ var adminPageShells = map[string]struct{}{ "/admin/login": {}, "/admin/providers": {}, "/admin/models": {}, + "/admin/groups": {}, "/admin/pairs": {}, "/admin/settings": {}, "/admin/keys": {}, diff --git a/internal/api/dashboard/static/web/assets/Index-BKJMWLAN.js b/internal/api/dashboard/static/web/assets/Index-BKJMWLAN.js new file mode 100644 index 0000000..75babeb --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Index-BKJMWLAN.js @@ -0,0 +1 @@ +import{d as X,z as Z,o as ee,i as p,b as o,f as r,w as s,J as V,c as te,h as L,C as K,I as g,e as oe,r as i,a as le,B as se,g as d,t as n,l as f}from"./index-CeO69YUd.js";import{_ as ne,J as ae,e as re}from"./field-context-Dg4JwEpB.js";import{e as v,l as ie}from"./labels-F4zjjjMy.js";import{J as C}from"./JfBadge-DE3HILDW.js";import{J as ue}from"./JfDrawer-DV73NuVR.js";import{J as de}from"./JfEmpty-CplaOUNi.js";import{J as E}from"./JfInput-DtzjrdfV.js";import{J}from"./JfSelect-C3PlYx94.js";import{J as me}from"./JfTable-fqYuBXzd.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-jIxmbbW7.js";const fe={class:"jf-stack"},ve={class:"jf-toolbar"},ce={class:"jf-action-group"},pe={class:"jf-field-row"},ge={class:"flex items-center gap-2"},ke={class:"jf-scroll-x"},_e={class:"jf-caption jf-mono text-ink-secondary"},ye={class:"jf-caption jf-mono font-medium"},be=["title"],xe={key:0,class:"inline-flex flex-wrap items-baseline gap-1"},je={class:"text-danger font-medium"},we=["title"],Ve={key:1,class:"text-ink-secondary"},Ce={class:"font-mono text-xs"},Je={class:"jf-mono jf-tabular"},Te={class:"flex justify-center"},Se={key:0,class:"grid gap-5"},qe={class:"grid gap-3 sm:grid-cols-2 rounded-[var(--jf-radius-control)] border border-line p-4"},De={class:"jf-mono text-sm"},Ne={class:"jf-mono text-sm font-medium"},$e={class:"ml-2"},Ie={class:"text-sm font-medium"},Oe={class:"font-mono text-sm"},Le={class:"font-mono text-sm font-medium"},Ue={class:"text-sm"},Be={key:0,class:"rounded-[var(--jf-radius-control)] border border-line p-4"},Me={class:"grid grid-cols-3 gap-2 jf-mono text-sm"},Re={class:"max-h-96 overflow-auto rounded-[var(--jf-radius-control)] bg-tonal p-3.5 font-mono text-xs leading-relaxed jf-anywhere"},he={class:"jf-action-group justify-end"},k="__any__",Ze=X({__name:"Index",setup(ze){const c=i(!1),_=i([]),T=i(null),U=i(!1),y=i(),b=i(""),x=i(""),S=i(k),q=i(k),D=i(k),N=i("24h"),j=i(!1),a=i(),$=i({from:"",to:""});function I(l,e){return[{label:l,value:k},...e]}function O(l){return l===k||l===""?void 0:l}const A=I("全部状态",["success","client_error","server_error"].map(l=>({label:v("statusClass",l),value:l}))),H=I("全部协议",["chat_completions","responses","native"].map(l=>({label:v("protocol",l),value:l}))),P=I("全部路由模式",["auto","explicit"].map(l=>({label:v("routingMode",l),value:l}))),F=[{label:"最近 1 小时",value:"1h"},{label:"最近 6 小时",value:"6h"},{label:"最近 24 小时",value:"24h"},{label:"最近 7 天",value:"7d"},{label:"最近 30 天",value:"30d"}],Q=[{key:"started_at",title:"时间",nowrap:!0},{key:"request_id",title:"请求 ID",nowrap:!0},{key:"protocol",title:"协议",nowrap:!0},{key:"requested_model",title:"请求模型"},{key:"status",title:"HTTP 状态",nowrap:!0},{key:"error_code",title:"错误状态"},{key:"provider",title:"执行提供商",nowrap:!0},{key:"duration_ms",title:"耗时",align:"end",nowrap:!0},{key:"actions",title:"明细",nowrap:!0}];function Y(l){return{limit:50,from:$.value.from,to:$.value.to,search:b.value.trim()||void 0,error_code:x.value.trim()||void 0,status_class:O(S.value),protocol:O(q.value),routing_mode:O(D.value),cursor:l||void 0}}let w=0;async function u(l=!0){m!==void 0&&clearTimeout(m),m=void 0;const e=++w;if(l){const t=new Date,z={"1h":3600*1e3,"6h":360*60*1e3,"24h":1440*60*1e3,"7d":10080*60*1e3,"30d":720*60*60*1e3};$.value={from:new Date(t.getTime()-z[N.value]).toISOString(),to:t.toISOString()},T.value=null,_.value=[]}c.value=!0,y.value=void 0;try{const t=await le.get(se("/admin/v1/logs",Y(T.value)));if(e!==w)return;_.value.push(...t.items),T.value=t.next_cursor,U.value=t.next_cursor!==null}catch(t){e===w&&(y.value=re(t))}finally{e===w&&(c.value=!1)}}let m;Z([b,x],()=>{m!==void 0&&clearTimeout(m),m=setTimeout(()=>{u(!0)},300)});function B(l){if(!l)return"—";const e=new Date(l);return Number.isNaN(e.getTime())?l:new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"}).format(e)}function M(l){return l==null||l===""?"—":String(l)}function R(l){return l>=500?"danger":l>=400?"warning":"success"}function h(l){return v("protocol",l)}function G(l){a.value=l,j.value=!0}function W(l){return l?ie(l):""}return ee(()=>{u(!0)}),(l,e)=>(f(),p("div",fe,[o("section",ve,[e[17]||(e[17]=o("div",null,[o("h1",{class:"jf-page-title"},"请求日志")],-1)),o("div",ce,[r(V,{variant:"secondary",icon:"arrow-path",loading:c.value,onClick:e[0]||(e[0]=t=>u(!0))},{default:s(()=>[...e[16]||(e[16]=[d("刷新日志",-1)])]),_:1},8,["loading"])])]),y.value?(f(),te(ne,{key:0,error:y.value},null,8,["error"])):L("",!0),o("div",pe,[r(E,{modelValue:b.value,"onUpdate:modelValue":e[1]||(e[1]=t=>b.value=t),icon:"magnifying-glass",placeholder:"搜索请求 ID、模型或提供商","aria-label":"搜索请求 ID、模型或提供商",class:"basis-56 grow",onKeydown:e[2]||(e[2]=K(t=>u(!0),["enter"]))},null,8,["modelValue"]),r(E,{modelValue:x.value,"onUpdate:modelValue":e[3]||(e[3]=t=>x.value=t),placeholder:"错误码(如 no_eligible_candidate)","aria-label":"按错误码筛选",class:"basis-56 grow font-mono",onKeydown:e[4]||(e[4]=K(t=>u(!0),["enter"]))},null,8,["modelValue"]),r(J,{modelValue:S.value,"onUpdate:modelValue":[e[5]||(e[5]=t=>S.value=t),e[6]||(e[6]=t=>u(!0))],items:g(A),label:"HTTP 状态筛选",class:"w-40 shrink-0"},null,8,["modelValue","items"]),r(J,{modelValue:q.value,"onUpdate:modelValue":[e[7]||(e[7]=t=>q.value=t),e[8]||(e[8]=t=>u(!0))],items:g(H),label:"协议筛选",class:"w-36 shrink-0"},null,8,["modelValue","items"]),r(J,{modelValue:D.value,"onUpdate:modelValue":[e[9]||(e[9]=t=>D.value=t),e[10]||(e[10]=t=>u(!0))],items:g(P),label:"路由模式",class:"w-36 shrink-0"},null,8,["modelValue","items"]),r(J,{modelValue:N.value,"onUpdate:modelValue":[e[11]||(e[11]=t=>N.value=t),e[12]||(e[12]=t=>u(!0))],items:F,label:"时间跨度",class:"w-36 shrink-0"},null,8,["modelValue"])]),r(ae,{flush:""},oe({header:s(()=>[o("div",ge,[e[18]||(e[18]=o("h2",{class:"jf-module-title"},"请求记录",-1)),r(C,{tone:"neutral"},{default:s(()=>[d(n(_.value.length),1)]),_:1})])]),default:s(()=>[o("div",ke,[r(me,{rows:_.value,columns:Q,"row-key":"id",loading:c.value},{empty:s(()=>[r(de,{variant:"filter",title:"当前筛选条件下没有匹配的请求日志"})]),"cell-started_at":s(({row:t})=>[o("span",_e,n(B(t.started_at)),1)]),"cell-request_id":s(({row:t})=>[o("code",ye,n(t.request_id),1)]),"cell-protocol":s(({row:t})=>[r(C,{tone:"neutral"},{default:s(()=>[d(n(h(t.protocol)),1)]),_:2},1024)]),"cell-requested_model":s(({row:t})=>[o("span",{class:"jf-caption jf-mono jf-truncate block max-w-52",title:t.requested_model??""},n(M(t.requested_model)),9,be)]),"cell-status":s(({row:t})=>[r(C,{tone:R(t.status)},{default:s(()=>[d(n(t.status),1)]),_:2},1032,["tone"])]),"cell-error_code":s(({row:t})=>[t.error_code?(f(),p("span",xe,[o("span",je,n(W(t.error_code)),1),o("code",{class:"jf-caption jf-mono text-ink-secondary",title:t.error_code},n(t.error_code),9,we)])):(f(),p("span",Ve,"—"))]),"cell-provider":s(({row:t})=>[o("span",Ce,n(M(t.provider)),1)]),"cell-duration_ms":s(({row:t})=>[o("span",Je,n(t.duration_ms)+" ms",1)]),"cell-actions":s(({row:t})=>[r(V,{size:"sm",variant:"ghost",onClick:z=>G(t)},{default:s(()=>[...e[19]||(e[19]=[d("查看明细",-1)])]),_:1},8,["onClick"])]),_:1},8,["rows","loading"])])]),_:2},[U.value?{name:"footer",fn:s(()=>[o("div",Te,[r(V,{variant:"secondary",loading:c.value,onClick:e[13]||(e[13]=t=>u(!1))},{default:s(()=>[...e[20]||(e[20]=[d("加载更多记录",-1)])]),_:1},8,["loading"])])]),key:"0"}:void 0]),1024),r(ue,{open:j.value,"onUpdate:open":e[15]||(e[15]=t=>j.value=t),title:`请求明细 · ${a.value?.request_id}`,size:"lg"},{footer:s(()=>[o("div",he,[r(V,{variant:"secondary",onClick:e[14]||(e[14]=t=>j.value=!1)},{default:s(()=>[...e[32]||(e[32]=[d("关闭",-1)])]),_:1})])]),default:s(()=>[a.value?(f(),p("div",Se,[o("div",qe,[o("div",null,[e[21]||(e[21]=o("span",{class:"jf-caption text-ink-secondary block"},"请求时间",-1)),o("span",De,n(B(a.value.started_at)),1)]),o("div",null,[e[22]||(e[22]=o("span",{class:"jf-caption text-ink-secondary block"},"响应状态与耗时",-1)),o("span",Ne,[r(C,{tone:R(a.value.status)},{default:s(()=>[d(n(a.value.status),1)]),_:1},8,["tone"]),o("span",$e,n(a.value.duration_ms)+" ms",1)])]),o("div",null,[e[23]||(e[23]=o("span",{class:"jf-caption text-ink-secondary block"},"请求协议 / 路由模式",-1)),o("span",Ie,n(h(a.value.protocol))+" · "+n(g(v)("routingMode",a.value.routing_mode)),1)]),o("div",null,[e[24]||(e[24]=o("span",{class:"jf-caption text-ink-secondary block"},"客户端请求模型",-1)),o("code",Oe,n(a.value.requested_model),1)]),o("div",null,[e[25]||(e[25]=o("span",{class:"jf-caption text-ink-secondary block"},"最终分派提供商 / 模型",-1)),o("span",Le,n(a.value.provider||"—")+" · "+n(a.value.effective_model||"—"),1)]),o("div",null,[e[26]||(e[26]=o("span",{class:"jf-caption text-ink-secondary block"},"决策方式",-1)),o("span",Ue,n(g(v)("selectionMode",a.value.selection_mode)),1)])]),a.value.input_tokens!=null||a.value.output_tokens!=null||a.value.total_tokens!=null?(f(),p("div",Be,[e[30]||(e[30]=o("h3",{class:"jf-module-title mb-2"},"Token 统计",-1)),o("div",Me,[o("div",null,[e[27]||(e[27]=o("span",{class:"jf-caption text-ink-secondary block"},"输入 Token",-1)),o("strong",null,n(a.value.input_tokens?.toLocaleString()??"—"),1)]),o("div",null,[e[28]||(e[28]=o("span",{class:"jf-caption text-ink-secondary block"},"输出 Token",-1)),o("strong",null,n(a.value.output_tokens?.toLocaleString()??"—"),1)]),o("div",null,[e[29]||(e[29]=o("span",{class:"jf-caption text-ink-secondary block"},"总 Token",-1)),o("strong",null,n(a.value.total_tokens?.toLocaleString()??"—"),1)])])])):L("",!0),o("div",null,[e[31]||(e[31]=o("h3",{class:"jf-module-title mb-2"},"原始事件载荷 (Raw JSON)",-1)),o("pre",Re,n(JSON.stringify(a.value,null,2)),1)])])):L("",!0)]),_:1},8,["open","title"])]))}});export{Ze as default}; diff --git a/internal/api/dashboard/static/web/assets/Index-BdsXt2MF.js b/internal/api/dashboard/static/web/assets/Index-BdsXt2MF.js new file mode 100644 index 0000000..e12c630 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Index-BdsXt2MF.js @@ -0,0 +1 @@ +import{d as Ct,o as Ft,m as Mt,i as c,b as t,n as st,g as x,t as o,f as l,w as a,J as I,c as A,h as b,r as h,a as nt,p as j,F as ot,q as at,v as T,x as zt,y as u,l as i,_ as It}from"./index-CeO69YUd.js";import{_ as lt,J as v,e as it,a as Tt}from"./field-context-Dg4JwEpB.js";import{J as St}from"./JfSelect-C3PlYx94.js";import{J as pt}from"./JfTable-fqYuBXzd.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-jIxmbbW7.js";function _t(k){return k!=null&&Number.isFinite(k)?Math.round(k):null}function Jt(k){const y=k?.auto.count?{source:"auto",group:k.auto}:k?.all.count?{source:"all",group:k.all}:null;return{source:y?.source??null,sampleCount:y?.group.count??0,meanMs:_t(y?.group.mean_duration_ms),p95Ms:_t(y?.group.p95_duration_ms)}}const Bt={class:"dashboard-root flex flex-col gap-4"},Nt={class:"flex flex-wrap items-center justify-between gap-3"},Rt={class:"flex items-center gap-3"},Lt={class:"flex items-center gap-2"},Dt={class:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4"},Ut={class:"flex items-center justify-between"},Vt={class:"metric-icon-wrap"},Et={class:"jf-metric mt-2"},Gt={class:"flex items-center justify-between"},Wt={class:"metric-icon-wrap"},At={class:"jf-metric mt-2"},Ot={class:"flex items-center justify-between"},Ht={class:"metric-icon-wrap"},Kt={class:"jf-metric mt-2"},Qt={class:"flex items-center justify-between"},Xt={class:"metric-icon-wrap"},Yt={class:"jf-metric mt-2"},Zt={class:"flex items-center justify-between"},te={class:"metric-icon-wrap"},ee={class:"jf-metric mt-2"},se={class:"flex items-center justify-between"},ne={class:"metric-icon-wrap"},oe={class:"jf-metric mt-2"},ae={class:"flex items-center justify-between"},le={class:"metric-icon-wrap"},ie={class:"jf-metric mt-2"},re={class:"flex items-center justify-between"},ce={class:"metric-icon-wrap"},ue={class:"jf-metric mt-2"},de={class:"grid gap-4 lg:grid-cols-2"},fe={class:"flex flex-col items-center justify-around gap-6 sm:flex-row"},ve={class:"relative flex h-36 w-36 shrink-0 items-center justify-center"},me={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 110 110"},pe=["stroke","stroke-dasharray","stroke-dashoffset"],_e={class:"absolute inset-0 flex flex-col items-center justify-center text-center"},xe={class:"jf-metric text-xl font-medium leading-none"},he={class:"jf-caption mt-1 text-ink-secondary"},ye={class:"flex w-full flex-col justify-center gap-2.5 sm:max-w-xs"},ke={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},ge={class:"flex items-center gap-3"},we={class:"font-mono text-ink"},be={class:"w-12 text-right font-mono text-ink-secondary"},je={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},Pe={class:"flex items-center gap-3"},qe={class:"font-mono text-ink"},$e={class:"w-12 text-right font-mono text-ink-secondary"},Ce={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},Fe={class:"flex items-center gap-3"},Me={class:"font-mono text-ink"},ze={class:"w-12 text-right font-mono text-ink-secondary"},Ie={class:"grid grid-cols-2 gap-4 sm:grid-cols-4"},Te={class:"flex flex-col items-center"},Se={class:"relative flex h-20 w-20 items-center justify-center"},Je={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Be=["stroke-dasharray"],Ne={class:"absolute font-mono text-sm font-medium"},Re={class:"flex flex-col items-center"},Le={class:"relative flex h-20 w-20 items-center justify-center"},De={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Ue=["stroke-dasharray"],Ve={class:"absolute font-mono text-sm font-medium"},Ee={class:"flex flex-col items-center"},Ge={class:"relative flex h-20 w-20 items-center justify-center"},We={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Ae=["stroke-dasharray"],Oe={class:"absolute font-mono text-sm font-medium"},He={class:"flex flex-col items-center"},Ke={class:"relative flex h-20 w-20 items-center justify-center"},Qe={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Xe=["stroke-dasharray"],Ye={class:"absolute font-mono text-sm font-medium"},Ze={class:"grid gap-4 lg:grid-cols-2"},ts={class:"flex flex-col gap-4"},es={class:"mb-1.5 flex items-center justify-between text-xs"},ss={class:"font-mono text-ink"},ns={key:0,class:"py-1 text-xs text-ink-secondary"},os={key:1,class:"flex h-3 w-full overflow-hidden rounded-full bg-tonal"},as=["title"],ls=["title"],is={key:2,class:"mt-2 flex items-center justify-between text-xs"},rs={class:"inline-flex items-center gap-1.5 text-ink"},cs={class:"inline-flex items-center gap-1.5 text-ink"},us={class:"border-t border-line pt-3"},ds={class:"mb-1.5 flex items-center justify-between text-xs"},fs={class:"font-mono text-ink"},vs={key:0,class:"py-1 text-xs text-ink-secondary"},ms={key:1,class:"flex h-3 w-full overflow-hidden rounded-full bg-tonal"},ps=["title"],_s=["title"],xs={key:2,class:"mt-2 flex items-center justify-between text-xs"},hs={class:"inline-flex items-center gap-1.5 text-ink"},ys={class:"inline-flex items-center gap-1.5 text-ink"},ks={class:"grid gap-4 sm:grid-cols-2"},gs={class:"rounded-lg bg-tonal p-4"},ws={class:"jf-caption text-ink-secondary"},bs={class:"jf-metric mt-2"},js={class:"jf-caption mt-1 text-ink-secondary"},Ps={class:"rounded-lg bg-tonal p-4"},qs={class:"jf-caption text-ink-secondary"},$s={class:"jf-metric mt-2"},Cs={class:"jf-caption mt-1 text-ink-secondary"},Fs={class:"grid gap-4 xl:grid-cols-2"},Ms={class:"flex items-center gap-1",role:"group","aria-label":"模型用量展示方式"},zs={key:0,class:"flex flex-col gap-3 py-1"},Is={key:0,class:"py-8 text-center text-xs text-ink-secondary"},Ts={class:"flex items-center justify-between text-xs"},Ss={class:"flex items-center gap-2 min-w-0"},Js={class:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-tonal font-mono text-[10px] text-ink-secondary"},Bs={class:"jf-truncate font-mono font-medium text-ink"},Ns={class:"flex items-center gap-3 shrink-0 font-mono"},Rs={class:"text-ink"},Ls={class:"w-12 text-right text-ink-secondary"},Ds={class:"h-2 w-full overflow-hidden rounded-full bg-tonal"},Us={key:1,class:"jf-scroll-x -mx-4 -mb-4"},Vs={class:"jf-mono font-medium"},Es={class:"jf-nowrap jf-mono"},Gs={class:"jf-nowrap jf-mono"},Ws={class:"jf-nowrap jf-mono"},As={class:"jf-nowrap jf-mono"},Os={class:"flex items-center gap-1",role:"group","aria-label":"分组用量展示方式"},Hs={key:0,class:"flex flex-col gap-3 py-1"},Ks={key:0,class:"py-8 text-center text-xs text-ink-secondary"},Qs={class:"flex items-center justify-between text-xs"},Xs={class:"flex items-center gap-2 min-w-0"},Ys={class:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-tonal font-mono text-[10px] text-ink-secondary"},Zs={class:"jf-truncate font-medium text-ink"},tn={class:"flex items-center gap-3 shrink-0 font-mono"},en={class:"text-ink"},sn={class:"w-12 text-right text-ink-secondary"},nn={class:"h-2 w-full overflow-hidden rounded-full bg-tonal"},on={key:1,class:"jf-scroll-x -mx-4 -mb-4"},an={class:"font-medium"},ln={class:"jf-nowrap jf-mono"},rn={class:"jf-nowrap jf-mono"},cn={class:"jf-nowrap jf-mono"},un={class:"jf-nowrap jf-mono"},dn="近 60 秒",fn=Ct({__name:"Index",setup(k){const y=h(),C=h(!1),N=h(),d=h(),p=h(),S=h(!1),O=h(!1),F=h(),R=h(),L=h("24h"),P=h("chart"),q=h("chart"),xt=[{label:"最近 1 小时",value:"1h"},{label:"最近 24 小时",value:"24h"},{label:"最近 7 天",value:"7d"},{label:"最近 30 天",value:"30d"}],ht=[{key:"id",title:"逻辑模型",nowrap:!0},{key:"requests",title:"调用次数",align:"end"},{key:"input_tokens",title:"输入 Token",align:"end"},{key:"output_tokens",title:"输出 Token",align:"end"},{key:"total_tokens",title:"总 Token",align:"end"}],yt=[{key:"id",title:"模型分组",nowrap:!0},{key:"requests",title:"调用次数",align:"end"},{key:"input_tokens",title:"输入 Token",align:"end"},{key:"output_tokens",title:"输出 Token",align:"end"},{key:"total_tokens",title:"总 Token",align:"end"}];let H,K,D=0,U=0;async function kt(){if(!S.value){S.value=!0,F.value=void 0;try{d.value=await nt.get("/admin/v1/health")}catch(n){F.value=it(n)}finally{S.value=!1}}}async function rt(n=L.value){const e=++D;O.value=!0,R.value=void 0;try{const s=await nt.get(`/admin/v1/logs/summary?window=${encodeURIComponent(n)}`);e===D&&(p.value=s)}catch(s){e===D&&(R.value=it(s))}finally{e===D&&(O.value=!1)}}async function Q(){await Promise.all([kt(),rt()])}async function gt(){await Promise.all([J(),Q()])}async function J(n=L.value){const e=++U;C.value=!0,N.value=void 0;try{const s=await nt.get(`/admin/v1/dashboard?window=${encodeURIComponent(n)}`);e===U&&(y.value=s)}catch(s){e===U&&(N.value=it(s))}finally{e===U&&(C.value=!1)}}Ft(()=>{J(),Q(),H=setInterval(()=>{document.visibilityState==="visible"&&!C.value&&J()},5e3),K=setInterval(()=>{document.visibilityState==="visible"&&Q()},3e4)}),Mt(()=>{H!==void 0&&clearInterval(H),K!==void 0&&clearInterval(K)});function wt(n){L.value=n,rt(n),J(n)}function r(n){return n==null?"—":new Intl.NumberFormat("zh-CN").format(n)}function B(n){return n==null?"—":zt(n)}function bt(n){return n==null||!Number.isFinite(n)?"—":n.toFixed(2)}function V(n){return n.name?.trim()||n.id}const jt=u(()=>d.value?.status==="ok"?"运行正常":d.value?.status==="not_ready"?"未就绪":F.value?"状态未知":S.value?"检查中…":"—");function g(n){return p.value?.rates.find(e=>e.name===n)}const X=u(()=>{if(!p.value?.statuses)return 0;const{success:n=0,client_error:e=0,server_error:s=0}=p.value.statuses;return n+e+s}),w=u(()=>{const n=X.value,e=p.value?.statuses,s=e?.success??0,_=e?.client_error??0,$=e?.server_error??0,z=2*Math.PI*45;if(n<=0)return{empty:!0,slices:[],successCount:0,clientCount:0,serverCount:0,successPct:"0.0",clientPct:"0.0",serverPct:"0.0"};const Y=s/n,Z=_/n,tt=$/n,et=Y*z,mt=Z*z,$t=tt*z;return{empty:!1,successCount:s,clientCount:_,serverCount:$,successPct:(Y*100).toFixed(1),clientPct:(Z*100).toFixed(1),serverPct:(tt*100).toFixed(1),slices:[{key:"success",label:"成功 (2xx)",count:s,percent:(Y*100).toFixed(1),stroke:"var(--jf-success-text)",dasharray:`${et} ${z}`,dashoffset:0},{key:"client_error",label:"客户端错误 (4xx)",count:_,percent:(Z*100).toFixed(1),stroke:"var(--jf-warning-text)",dasharray:`${mt} ${z}`,dashoffset:-et},{key:"server_error",label:"服务端错误 (5xx)",count:$,percent:(tt*100).toFixed(1),stroke:"var(--jf-danger-text)",dasharray:`${$t} ${z}`,dashoffset:-(et+mt)}]}});function E(n,e=34){const s=2*Math.PI*e;return n==null||!Number.isFinite(n)||n<=0?`0 ${s.toFixed(1)}`:`${(Math.min(1,Math.max(0,n))*s).toFixed(1)} ${s.toFixed(1)}`}const G=u(()=>{const n=[...y.value?.models??[]];return n.sort((e,s)=>(s.requests||0)-(e.requests||0)),n}),Pt=u(()=>Math.max(1,...G.value.map(n=>n.requests||0))),ct=u(()=>G.value.reduce((n,e)=>n+(e.requests||0),0)),W=u(()=>{const n=[...y.value?.groups??[]];return n.sort((e,s)=>(s.requests||0)-(e.requests||0)),n}),qt=u(()=>Math.max(1,...W.value.map(n=>n.requests||0))),ut=u(()=>W.value.reduce((n,e)=>n+(e.requests||0),0)),f=u(()=>{const n=p.value?.tokens.input_tokens??0,e=p.value?.tokens.output_tokens??0,s=n+e,_=s>0?n/s*100:0,$=s>0?e/s*100:0;return{empty:s<=0,input:n,output:e,total:s,inPct:_.toFixed(1),outPct:$.toFixed(1)}}),m=u(()=>{const n=p.value?.requests.auto??0,e=p.value?.requests.explicit??0,s=n+e,_=s>0?n/s*100:0,$=s>0?e/s*100:0;return{auto:n,explicit:e,total:s,autoPct:_.toFixed(1),explicitPct:$.toFixed(1)}}),M=u(()=>Jt(p.value?.latency)),dt=u(()=>M.value.meanMs),ft=u(()=>M.value.p95Ms),vt=u(()=>M.value.source==="auto"?"自动请求":M.value.source==="all"?"全部请求":"请求");return(n,e)=>(i(),c("div",Bt,[t("div",Nt,[t("div",Rt,[e[5]||(e[5]=t("h1",{class:"jf-page-title text-2xl font-medium leading-none"},"总览",-1)),t("span",{class:st(["inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium",d.value?.status==="ok"?"bg-success-bg text-success":"bg-warning-bg text-warning"])},[t("span",{class:st(["h-1.5 w-1.5 rounded-full",d.value?.status==="ok"?"bg-success":"bg-warning"])},null,2),x(" "+o(d.value?.status==="ok"?"服务运行正常":d.value?.status==="not_ready"?"系统未就绪":F.value?"健康状态未知":"检查中…"),1)],2)]),t("div",Lt,[l(St,{"model-value":L.value,items:xt,label:"时间窗口",size:"sm",class:"w-32","onUpdate:modelValue":wt},null,8,["model-value"]),l(I,{variant:"secondary",size:"sm",icon:"arrow-path",loading:C.value||S.value||O.value,onClick:gt},{default:a(()=>[...e[6]||(e[6]=[x(" 刷新 ",-1)])]),_:1},8,["loading"])])]),N.value?(i(),A(lt,{key:0,error:N.value},{actions:a(()=>[l(I,{variant:"danger-ghost",size:"sm",onClick:e[0]||(e[0]=s=>J())},{default:a(()=>[...e[7]||(e[7]=[x("重试",-1)])]),_:1})]),_:1},8,["error"])):b("",!0),F.value?(i(),A(lt,{key:1,error:F.value},null,8,["error"])):b("",!0),R.value?(i(),A(lt,{key:2,error:R.value},null,8,["error"])):b("",!0),p.value?.log_disabled?(i(),A(Tt,{key:3,tone:"warning",title:"持久路由日志当前已停用;汇总中的空数据不代表 0 次请求。"})):b("",!0),t("section",Dt,[l(v,{density:"compact"},{default:a(()=>[t("div",Ut,[e[8]||(e[8]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"系统健康",-1)),t("span",Vt,[l(j,{name:"circle-check",size:"sm",class:st(d.value?.status==="ok"?"text-success":"text-ink-secondary")},null,8,["class"])])]),t("div",Et,o(jt.value),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",Gt,[e[9]||(e[9]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"请求总量",-1)),t("span",Wt,[l(j,{name:"queue-list",size:"sm",class:"text-ink-secondary"})])]),t("div",At,[x(o(r(p.value?.requests.total))+" ",1),e[10]||(e[10]=t("span",{class:"jf-caption font-normal text-ink-secondary"},"条",-1))])]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",Ot,[e[11]||(e[11]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"请求成功率",-1)),t("span",Ht,[l(j,{name:"check-circle",size:"sm",class:"text-success"})])]),t("div",Kt,o(B(g("client_request_success_rate")?.value)),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",Qt,[t("span",{class:"jf-caption font-medium text-ink-secondary"},"输出 TPS("+o(dn)+")"),t("span",Xt,[l(j,{name:"gauge",size:"sm",class:"text-ink-secondary"})])]),t("div",Yt,o(bt(y.value?.output_tps_60s)),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",Zt,[e[12]||(e[12]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"Token 吞吐总量",-1)),t("span",te,[l(j,{name:"cpu-chip",size:"sm",class:"text-ink-secondary"})])]),t("div",ee,o(r(f.value.total)),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",se,[e[13]||(e[13]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"活跃提供商",-1)),t("span",ne,[l(j,{name:"server-stack",size:"sm",class:"text-ink-secondary"})])]),t("div",oe,o(d.value?.catalog.providers.enabled??"—")+" / "+o(d.value?.catalog.providers.total??"—"),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",ae,[e[14]||(e[14]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"已启用模型",-1)),t("span",le,[l(j,{name:"cpu-chip",size:"sm",class:"text-ink-secondary"})])]),t("div",ie,o(d.value?.catalog.models.enabled??"—")+" / "+o(d.value?.catalog.models.total??"—"),1)]),_:1}),l(v,{density:"compact"},{default:a(()=>[t("div",re,[e[15]||(e[15]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"已启用绑定",-1)),t("span",ce,[l(j,{name:"layers-2",size:"sm",class:"text-ink-secondary"})])]),t("div",ue,o(d.value?.catalog.pairs.enabled??"—")+" / "+o(d.value?.catalog.pairs.total??"—"),1)]),_:1})]),t("section",de,[l(v,{title:"请求状态分布"},{default:a(()=>[t("div",fe,[t("div",ve,[(i(),c("svg",me,[e[16]||(e[16]=t("circle",{cx:"55",cy:"55",r:"45",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"12"},null,-1)),w.value.empty?b("",!0):(i(!0),c(ot,{key:0},at(w.value.slices,s=>(i(),c("circle",{key:s.key,cx:"55",cy:"55",r:"45",fill:"none",stroke:s.stroke,"stroke-width":"12","stroke-dasharray":s.dasharray,"stroke-dashoffset":s.dashoffset,"stroke-linecap":"round",class:"transition-all duration-500 ease-out"},null,8,pe))),128))])),t("div",_e,[t("span",xe,o(X.value>0?`${w.value.successPct}%`:"—"),1),t("span",he,o(X.value>0?"2xx 占比":"暂无数据"),1)])]),t("div",ye,[t("div",ke,[e[17]||(e[17]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-success"}),t("span",{class:"text-ink"},"成功 (2xx)")],-1)),t("div",ge,[t("span",we,o(r(w.value.successCount)),1),t("span",be,o(w.value.successPct)+"%",1)])]),t("div",je,[e[18]||(e[18]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-warning"}),t("span",{class:"text-ink"},"客户端错误 (4xx)")],-1)),t("div",Pe,[t("span",qe,o(r(w.value.clientCount)),1),t("span",$e,o(w.value.clientPct)+"%",1)])]),t("div",Ce,[e[19]||(e[19]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-danger"}),t("span",{class:"text-ink"},"服务端错误 (5xx)")],-1)),t("div",Fe,[t("span",Me,o(r(w.value.serverCount)),1),t("span",ze,o(w.value.serverPct)+"%",1)])])])])]),_:1}),l(v,{title:"智能路由决策效能"},{default:a(()=>[t("div",Ie,[t("div",Te,[t("div",Se,[(i(),c("svg",Je,[e[20]||(e[20]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-primary)","stroke-width":"7","stroke-dasharray":E(g("auto_usage_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Be)])),t("span",Ne,o(B(g("auto_usage_rate")?.value)),1)]),e[21]||(e[21]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"自动路由占比",-1))]),t("div",Re,[t("div",Le,[(i(),c("svg",De,[e[22]||(e[22]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-success-text)","stroke-width":"7","stroke-dasharray":E(g("jev_invocation_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Ue)])),t("span",Ve,o(B(g("jev_invocation_rate")?.value)),1)]),e[23]||(e[23]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"Jev 调用成功率",-1))]),t("div",Ee,[t("div",Ge,[(i(),c("svg",We,[e[24]||(e[24]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-info-text)","stroke-width":"7","stroke-dasharray":E(g("auto_decision_success_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Ae)])),t("span",Oe,o(B(g("auto_decision_success_rate")?.value)),1)]),e[25]||(e[25]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"自动决策成功率",-1))]),t("div",He,[t("div",Ke,[(i(),c("svg",Qe,[e[26]||(e[26]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-warning-text)","stroke-width":"7","stroke-dasharray":E(g("jev_group_adoption_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Xe)])),t("span",Ye,o(B(g("jev_group_adoption_rate")?.value)),1)]),e[27]||(e[27]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"Jev 选组采纳率",-1))])])]),_:1})]),t("section",Ze,[l(v,{title:"流量与 Token 构成"},{default:a(()=>[t("div",ts,[t("div",null,[t("div",es,[e[28]||(e[28]=t("span",{class:"text-ink-secondary"},"Token 构成(输入 / 输出)",-1)),t("span",ss,"总计 "+o(r(f.value.total)),1)]),f.value.empty?(i(),c("p",ns,"暂无 Token 用量数据")):(i(),c("div",os,[t("div",{class:"bg-info transition-all duration-500",style:T({width:`${f.value.inPct}%`}),title:`输入 Token: ${r(f.value.input)} (${f.value.inPct}%)`},null,12,as),t("div",{class:"bg-success transition-all duration-500",style:T({width:`${f.value.outPct}%`}),title:`输出 Token: ${r(f.value.output)} (${f.value.outPct}%)`},null,12,ls)])),f.value.empty?b("",!0):(i(),c("div",is,[t("span",rs,[e[29]||(e[29]=t("span",{class:"h-2 w-2 rounded-full bg-info"},null,-1)),x(" 输入: "+o(r(f.value.input))+" ("+o(f.value.inPct)+"%) ",1)]),t("span",cs,[e[30]||(e[30]=t("span",{class:"h-2 w-2 rounded-full bg-success"},null,-1)),x(" 输出: "+o(r(f.value.output))+" ("+o(f.value.outPct)+"%) ",1)])]))]),t("div",us,[t("div",ds,[e[31]||(e[31]=t("span",{class:"text-ink-secondary"},"路由选择(自动路由 / 指定模型)",-1)),t("span",fs,"总计 "+o(r(m.value.total))+" 次",1)]),m.value.total<=0?(i(),c("p",vs,"暂无请求数据")):(i(),c("div",ms,[t("div",{class:"bg-primary transition-all duration-500",style:T({width:`${m.value.autoPct}%`}),title:`自动路由: ${r(m.value.auto)} (${m.value.autoPct}%)`},null,12,ps),t("div",{class:"bg-warning transition-all duration-500",style:T({width:`${m.value.explicitPct}%`}),title:`指定模型: ${r(m.value.explicit)} (${m.value.explicitPct}%)`},null,12,_s)])),m.value.total>0?(i(),c("div",xs,[t("span",hs,[e[32]||(e[32]=t("span",{class:"h-2 w-2 rounded-full bg-primary"},null,-1)),x(" 自动路由: "+o(r(m.value.auto))+" ("+o(m.value.autoPct)+"%) ",1)]),t("span",ys,[e[33]||(e[33]=t("span",{class:"h-2 w-2 rounded-full bg-warning"},null,-1)),x(" 指定模型: "+o(r(m.value.explicit))+" ("+o(m.value.explicitPct)+"%) ",1)])])):b("",!0)])])]),_:1}),l(v,{title:"响应延迟统计"},{default:a(()=>[t("div",ks,[t("div",gs,[t("span",ws,o(vt.value)+"平均延迟",1),t("p",bs,o(dt.value!==null?`${dt.value} ms`:"—"),1),t("p",js,"样本 "+o(r(M.value.sampleCount))+" 条",1)]),t("div",Ps,[t("span",qs,o(vt.value)+" P95 延迟",1),t("p",$s,o(ft.value!==null?`${ft.value} ms`:"—"),1),t("p",Cs,"样本 "+o(r(M.value.sampleCount))+" 条",1)])])]),_:1})]),t("section",Fs,[l(v,{title:"模型调用排行"},{actions:a(()=>[t("div",Ms,[l(I,{size:"sm","aria-pressed":P.value==="chart",variant:P.value==="chart"?"secondary":"ghost",onClick:e[1]||(e[1]=s=>P.value="chart")},{default:a(()=>[...e[34]||(e[34]=[x(" 图表 ",-1)])]),_:1},8,["aria-pressed","variant"]),l(I,{size:"sm","aria-pressed":P.value==="table",variant:P.value==="table"?"secondary":"ghost",onClick:e[2]||(e[2]=s=>P.value="table")},{default:a(()=>[...e[35]||(e[35]=[x(" 表格 ",-1)])]),_:1},8,["aria-pressed","variant"])])]),default:a(()=>[P.value==="chart"?(i(),c("div",zs,[G.value.length===0?(i(),c("div",Is," 暂无模型用量记录 ")):b("",!0),(i(!0),c(ot,null,at(G.value.slice(0,6),(s,_)=>(i(),c("div",{key:s.id,class:"flex flex-col gap-1.5"},[t("div",Ts,[t("div",Ss,[t("span",Js,o(_+1),1),t("span",Bs,o(V(s)),1)]),t("div",Ns,[t("span",Rs,o(r(s.requests))+" 次",1),t("span",Ls,o(ct.value>0?(s.requests/ct.value*100).toFixed(1):"0.0")+"% ",1)])]),t("div",Ds,[t("div",{class:"h-full rounded-full bg-primary transition-all duration-500",style:T({width:`${Math.min(100,Math.round((s.requests||0)/Pt.value*100))}%`})},null,4)])]))),128))])):(i(),c("div",Us,[l(pt,{rows:y.value?.models??[],columns:ht,loading:C.value,"empty-text":"暂无模型用量记录"},{"cell-id":a(({row:s})=>[t("span",Vs,o(V(s)),1)]),"cell-requests":a(({row:s})=>[t("span",Es,o(r(s.requests)),1)]),"cell-input_tokens":a(({row:s})=>[t("span",Gs,o(r(s.input_tokens)),1)]),"cell-output_tokens":a(({row:s})=>[t("span",Ws,o(r(s.output_tokens)),1)]),"cell-total_tokens":a(({row:s})=>[t("span",As,o(r(s.total_tokens)),1)]),_:1},8,["rows","loading"])]))]),_:1}),l(v,{title:"分组流量分配"},{actions:a(()=>[t("div",Os,[l(I,{size:"sm","aria-pressed":q.value==="chart",variant:q.value==="chart"?"secondary":"ghost",onClick:e[3]||(e[3]=s=>q.value="chart")},{default:a(()=>[...e[36]||(e[36]=[x(" 图表 ",-1)])]),_:1},8,["aria-pressed","variant"]),l(I,{size:"sm","aria-pressed":q.value==="table",variant:q.value==="table"?"secondary":"ghost",onClick:e[4]||(e[4]=s=>q.value="table")},{default:a(()=>[...e[37]||(e[37]=[x(" 表格 ",-1)])]),_:1},8,["aria-pressed","variant"])])]),default:a(()=>[q.value==="chart"?(i(),c("div",Hs,[W.value.length===0?(i(),c("div",Ks," 暂无分组用量记录 ")):b("",!0),(i(!0),c(ot,null,at(W.value.slice(0,6),(s,_)=>(i(),c("div",{key:s.id,class:"flex flex-col gap-1.5"},[t("div",Qs,[t("div",Xs,[t("span",Ys,o(_+1),1),t("span",Zs,o(V(s)),1)]),t("div",tn,[t("span",en,o(r(s.requests))+" 次",1),t("span",sn,o(ut.value>0?(s.requests/ut.value*100).toFixed(1):"0.0")+"% ",1)])]),t("div",nn,[t("div",{class:"h-full rounded-full bg-primary transition-all duration-500",style:T({width:`${Math.min(100,Math.round((s.requests||0)/qt.value*100))}%`})},null,4)])]))),128))])):(i(),c("div",on,[l(pt,{rows:y.value?.groups??[],columns:yt,loading:C.value,"empty-text":"暂无分组用量记录"},{"cell-id":a(({row:s})=>[t("span",an,o(V(s)),1)]),"cell-requests":a(({row:s})=>[t("span",ln,o(r(s.requests)),1)]),"cell-input_tokens":a(({row:s})=>[t("span",rn,o(r(s.input_tokens)),1)]),"cell-output_tokens":a(({row:s})=>[t("span",cn,o(r(s.output_tokens)),1)]),"cell-total_tokens":a(({row:s})=>[t("span",un,o(r(s.total_tokens)),1)]),_:1},8,["rows","loading"])]))]),_:1})])]))}}),yn=It(fn,[["__scopeId","data-v-fc0ed36d"]]);export{yn as default}; diff --git a/internal/api/dashboard/static/web/assets/Index-CUTblxLp.css b/internal/api/dashboard/static/web/assets/Index-BwOsRyHT.css similarity index 65% rename from internal/api/dashboard/static/web/assets/Index-CUTblxLp.css rename to internal/api/dashboard/static/web/assets/Index-BwOsRyHT.css index c40b34c..f8108c3 100644 --- a/internal/api/dashboard/static/web/assets/Index-CUTblxLp.css +++ b/internal/api/dashboard/static/web/assets/Index-BwOsRyHT.css @@ -1 +1 @@ -.metric-icon-wrap[data-v-b06ec2fe]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--jf-radius-control);background:var(--jf-tonal)} +.metric-icon-wrap[data-v-fc0ed36d]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--jf-radius-control);background:var(--jf-tonal)} diff --git a/internal/api/dashboard/static/web/assets/Index-CAlB8CRg.js b/internal/api/dashboard/static/web/assets/Index-CAlB8CRg.js deleted file mode 100644 index 2b8856b..0000000 --- a/internal/api/dashboard/static/web/assets/Index-CAlB8CRg.js +++ /dev/null @@ -1 +0,0 @@ -import{V as I,d as W,o as X,i as g,b as t,f as r,w as s,J as x,c as Z,h as L,C as h,H as k,e as ee,r as d,a as te,B as oe,g as f,t as n,l as p}from"./index-4SLuEZVi.js";import{b as le,_ as se,J as ne,e as ae}from"./field-context-CK2hRgAr.js";import{J as j}from"./JfBadge-BNbswCCo.js";import{J as re}from"./JfDrawer-CHIy4Mgq.js";import{J as ie}from"./JfEmpty-BgJ1JF6C.js";import{J as z}from"./JfInput-CMwI48jv.js";import{J as w}from"./JfSelect-BuGLsn3z.js";import{J as ue}from"./JfTable-DL6XTgQI.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-DtHcp-jn.js";function de(u,i){return i?I.global.t(u,i):I.global.t(u)}function me(u){return I.global.te(u)}function fe(u,i){return`labels.${u}.${i}`}function v(u,i){if(i==null||i==="")return"";const c=fe(u,i);return me(c)?de(c):i}function ce(u){return u==null||u===""?"":le(u)}const pe={class:"jf-stack"},ve={class:"jf-toolbar"},ge={class:"jf-action-group"},ke={class:"jf-field-row"},_e={class:"flex items-center gap-2"},ye={class:"jf-scroll-x"},be={class:"jf-caption jf-mono text-ink-secondary"},xe={class:"jf-caption jf-mono font-medium"},je=["title"],we={key:0,class:"inline-flex flex-wrap items-baseline gap-1"},Ve={class:"text-danger font-medium"},Ce=["title"],Je={key:1,class:"text-ink-secondary"},Se={class:"font-mono text-xs"},Te={class:"jf-mono jf-tabular"},$e={class:"flex justify-center"},qe={key:0,class:"grid gap-5"},De={class:"grid gap-3 sm:grid-cols-2 rounded-[var(--jf-radius-control)] border border-line p-4"},Ne={class:"jf-mono text-sm"},Oe={class:"jf-mono text-sm font-medium"},Le={class:"ml-2"},Ie={class:"text-sm font-medium"},Ue={class:"font-mono text-sm"},Be={class:"font-mono text-sm font-medium"},Me={class:"text-sm"},Ke={key:0,class:"rounded-[var(--jf-radius-control)] border border-line p-4"},Re={class:"grid grid-cols-3 gap-2 jf-mono text-sm"},he={class:"max-h-96 overflow-auto rounded-[var(--jf-radius-control)] bg-tonal p-3.5 font-mono text-xs leading-relaxed jf-anywhere"},ze={class:"jf-action-group justify-end"},_="__any__",et=W({__name:"Index",setup(u){const i=d(!1),c=d([]),V=d(null),U=d(!1),y=d(),C=d(""),J=d(""),S=d(_),T=d(_),$=d(_),q=d("24h"),b=d(!1),a=d(),D=d({from:"",to:""});function N(l,e){return[{label:l,value:_},...e]}function O(l){return l===_||l===""?void 0:l}const E=N("全部状态",["success","client_error","server_error"].map(l=>({label:v("statusClass",l),value:l}))),H=N("全部协议",["chat_completions","responses","native"].map(l=>({label:v("protocol",l),value:l}))),P=N("全部路由模式",["auto","explicit"].map(l=>({label:v("routingMode",l),value:l}))),A=[{label:"最近 1 小时",value:"1h"},{label:"最近 6 小时",value:"6h"},{label:"最近 24 小时",value:"24h"},{label:"最近 7 天",value:"7d"},{label:"最近 30 天",value:"30d"}],F=[{key:"started_at",title:"时间",nowrap:!0},{key:"request_id",title:"请求 ID",nowrap:!0},{key:"protocol",title:"协议",nowrap:!0},{key:"requested_model",title:"请求模型"},{key:"status",title:"HTTP 状态",nowrap:!0},{key:"error_code",title:"错误状态"},{key:"provider",title:"执行提供商",nowrap:!0},{key:"duration_ms",title:"耗时",align:"end",nowrap:!0},{key:"actions",title:"明细",nowrap:!0}];function Q(l){return{limit:50,from:D.value.from,to:D.value.to,search:C.value.trim()||void 0,error_code:J.value.trim()||void 0,status_class:O(S.value),protocol:O(T.value),routing_mode:O($.value),cursor:l||void 0}}async function m(l=!0){if(l){const e=new Date,o={"1h":3600*1e3,"6h":360*60*1e3,"24h":1440*60*1e3,"7d":10080*60*1e3,"30d":720*60*60*1e3};D.value={from:new Date(e.getTime()-o[q.value]).toISOString(),to:e.toISOString()},V.value=null,c.value=[]}i.value=!0,y.value=void 0;try{const e=await te.get(oe("/admin/v1/logs",Q(V.value)));c.value.push(...e.items),V.value=e.next_cursor,U.value=e.next_cursor!==null}catch(e){y.value=ae(e)}finally{i.value=!1}}function B(l){if(!l)return"—";const e=new Date(l);return Number.isNaN(e.getTime())?l:new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"}).format(e)}function M(l){return l==null||l===""?"—":String(l)}function K(l){return l>=500?"danger":l>=400?"warning":"success"}function R(l){return v("protocol",l)}function Y(l){a.value=l,b.value=!0}function G(l){return l?ce(l):""}return X(()=>{m(!0)}),(l,e)=>(p(),g("div",pe,[t("section",ve,[e[17]||(e[17]=t("div",null,[t("h1",{class:"jf-page-title"},"请求日志")],-1)),t("div",ge,[r(x,{variant:"secondary",icon:"arrow-path",loading:i.value,onClick:e[0]||(e[0]=o=>m(!0))},{default:s(()=>[...e[16]||(e[16]=[f("刷新日志",-1)])]),_:1},8,["loading"])])]),y.value?(p(),Z(se,{key:0,error:y.value},null,8,["error"])):L("",!0),t("div",ke,[r(z,{modelValue:C.value,"onUpdate:modelValue":e[1]||(e[1]=o=>C.value=o),icon:"magnifying-glass",placeholder:"搜索请求 ID、模型或提供商","aria-label":"搜索请求 ID、模型或提供商",class:"basis-56 grow",onKeydown:e[2]||(e[2]=h(o=>m(!0),["enter"]))},null,8,["modelValue"]),r(z,{modelValue:J.value,"onUpdate:modelValue":e[3]||(e[3]=o=>J.value=o),placeholder:"错误码(如 no_eligible_candidate)","aria-label":"按错误码筛选",class:"basis-56 grow font-mono",onKeydown:e[4]||(e[4]=h(o=>m(!0),["enter"]))},null,8,["modelValue"]),r(w,{modelValue:S.value,"onUpdate:modelValue":[e[5]||(e[5]=o=>S.value=o),e[6]||(e[6]=o=>m(!0))],items:k(E),label:"HTTP 状态筛选",class:"w-40 shrink-0"},null,8,["modelValue","items"]),r(w,{modelValue:T.value,"onUpdate:modelValue":[e[7]||(e[7]=o=>T.value=o),e[8]||(e[8]=o=>m(!0))],items:k(H),label:"协议筛选",class:"w-36 shrink-0"},null,8,["modelValue","items"]),r(w,{modelValue:$.value,"onUpdate:modelValue":[e[9]||(e[9]=o=>$.value=o),e[10]||(e[10]=o=>m(!0))],items:k(P),label:"路由模式",class:"w-36 shrink-0"},null,8,["modelValue","items"]),r(w,{modelValue:q.value,"onUpdate:modelValue":[e[11]||(e[11]=o=>q.value=o),e[12]||(e[12]=o=>m(!0))],items:A,label:"时间跨度",class:"w-36 shrink-0"},null,8,["modelValue"])]),r(ne,{flush:""},ee({header:s(()=>[t("div",_e,[e[18]||(e[18]=t("h2",{class:"jf-module-title"},"请求记录",-1)),r(j,{tone:"neutral"},{default:s(()=>[f(n(c.value.length),1)]),_:1})])]),default:s(()=>[t("div",ye,[r(ue,{rows:c.value,columns:F,"row-key":"id",loading:i.value},{empty:s(()=>[r(ie,{variant:"filter",title:"当前筛选条件下没有匹配的请求日志"})]),"cell-started_at":s(({row:o})=>[t("span",be,n(B(o.started_at)),1)]),"cell-request_id":s(({row:o})=>[t("code",xe,n(o.request_id),1)]),"cell-protocol":s(({row:o})=>[r(j,{tone:"neutral"},{default:s(()=>[f(n(R(o.protocol)),1)]),_:2},1024)]),"cell-requested_model":s(({row:o})=>[t("span",{class:"jf-caption jf-mono jf-truncate block max-w-52",title:o.requested_model??""},n(M(o.requested_model)),9,je)]),"cell-status":s(({row:o})=>[r(j,{tone:K(o.status)},{default:s(()=>[f(n(o.status),1)]),_:2},1032,["tone"])]),"cell-error_code":s(({row:o})=>[o.error_code?(p(),g("span",we,[t("span",Ve,n(G(o.error_code)),1),t("code",{class:"jf-caption jf-mono text-ink-secondary",title:o.error_code},n(o.error_code),9,Ce)])):(p(),g("span",Je,"—"))]),"cell-provider":s(({row:o})=>[t("span",Se,n(M(o.provider)),1)]),"cell-duration_ms":s(({row:o})=>[t("span",Te,n(o.duration_ms)+" ms",1)]),"cell-actions":s(({row:o})=>[r(x,{size:"sm",variant:"ghost",onClick:Ee=>Y(o)},{default:s(()=>[...e[19]||(e[19]=[f("查看明细",-1)])]),_:1},8,["onClick"])]),_:1},8,["rows","loading"])])]),_:2},[U.value?{name:"footer",fn:s(()=>[t("div",$e,[r(x,{variant:"secondary",loading:i.value,onClick:e[13]||(e[13]=o=>m(!1))},{default:s(()=>[...e[20]||(e[20]=[f("加载更多记录",-1)])]),_:1},8,["loading"])])]),key:"0"}:void 0]),1024),r(re,{open:b.value,"onUpdate:open":e[15]||(e[15]=o=>b.value=o),title:`请求明细 · ${a.value?.request_id}`,size:"lg"},{footer:s(()=>[t("div",ze,[r(x,{variant:"secondary",onClick:e[14]||(e[14]=o=>b.value=!1)},{default:s(()=>[...e[32]||(e[32]=[f("关闭",-1)])]),_:1})])]),default:s(()=>[a.value?(p(),g("div",qe,[t("div",De,[t("div",null,[e[21]||(e[21]=t("span",{class:"jf-caption text-ink-secondary block"},"请求时间",-1)),t("span",Ne,n(B(a.value.started_at)),1)]),t("div",null,[e[22]||(e[22]=t("span",{class:"jf-caption text-ink-secondary block"},"响应状态与耗时",-1)),t("span",Oe,[r(j,{tone:K(a.value.status)},{default:s(()=>[f(n(a.value.status),1)]),_:1},8,["tone"]),t("span",Le,n(a.value.duration_ms)+" ms",1)])]),t("div",null,[e[23]||(e[23]=t("span",{class:"jf-caption text-ink-secondary block"},"请求协议 / 路由模式",-1)),t("span",Ie,n(R(a.value.protocol))+" · "+n(k(v)("routingMode",a.value.routing_mode)),1)]),t("div",null,[e[24]||(e[24]=t("span",{class:"jf-caption text-ink-secondary block"},"客户端请求模型",-1)),t("code",Ue,n(a.value.requested_model),1)]),t("div",null,[e[25]||(e[25]=t("span",{class:"jf-caption text-ink-secondary block"},"最终分派 Provider / 模型",-1)),t("span",Be,n(a.value.provider||"—")+" · "+n(a.value.effective_model||"—"),1)]),t("div",null,[e[26]||(e[26]=t("span",{class:"jf-caption text-ink-secondary block"},"决策方式",-1)),t("span",Me,n(k(v)("selectionMode",a.value.selection_mode)),1)])]),a.value.input_tokens!=null||a.value.output_tokens!=null||a.value.total_tokens!=null?(p(),g("div",Ke,[e[30]||(e[30]=t("h3",{class:"jf-module-title mb-2"},"Token 统计",-1)),t("div",Re,[t("div",null,[e[27]||(e[27]=t("span",{class:"jf-caption text-ink-secondary block"},"输入 Token",-1)),t("strong",null,n(a.value.input_tokens?.toLocaleString()??"—"),1)]),t("div",null,[e[28]||(e[28]=t("span",{class:"jf-caption text-ink-secondary block"},"输出 Token",-1)),t("strong",null,n(a.value.output_tokens?.toLocaleString()??"—"),1)]),t("div",null,[e[29]||(e[29]=t("span",{class:"jf-caption text-ink-secondary block"},"总 Token",-1)),t("strong",null,n(a.value.total_tokens?.toLocaleString()??"—"),1)])])])):L("",!0),t("div",null,[e[31]||(e[31]=t("h3",{class:"jf-module-title mb-2"},"原始事件载荷 (Raw JSON)",-1)),t("pre",he,n(JSON.stringify(a.value,null,2)),1)])])):L("",!0)]),_:1},8,["open","title"])]))}});export{et as default}; diff --git a/internal/api/dashboard/static/web/assets/Index-o7UyK7Y6.js b/internal/api/dashboard/static/web/assets/Index-o7UyK7Y6.js deleted file mode 100644 index 9584e03..0000000 --- a/internal/api/dashboard/static/web/assets/Index-o7UyK7Y6.js +++ /dev/null @@ -1 +0,0 @@ -import{d as qt,o as $t,m as Ct,i as c,b as t,n as nt,g as _,t as o,f as l,w as a,J as T,c as A,h as $,r as p,a as ot,p as b,F as at,q as lt,v as I,x as Ft,y as u,l as r,_ as Mt}from"./index-4SLuEZVi.js";import{_ as it,J as d,e as rt,a as zt}from"./field-context-CK2hRgAr.js";import{J as Tt}from"./JfSelect-BuGLsn3z.js";import{J as mt}from"./JfTable-DL6XTgQI.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-DtHcp-jn.js";function _t(y){return y!=null&&Number.isFinite(y)?Math.round(y):null}function It(y){const x=y?.auto.count?{source:"auto",group:y.auto}:y?.all.count?{source:"all",group:y.all}:null;return{source:x?.source??null,sampleCount:x?.group.count??0,meanMs:_t(x?.group.mean_duration_ms),p95Ms:_t(x?.group.p95_duration_ms)}}const St={class:"dashboard-root flex flex-col gap-4"},Bt={class:"flex flex-wrap items-center justify-between gap-3"},Jt={class:"flex items-center gap-3"},Nt={class:"flex items-center gap-2"},Rt={class:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4"},Lt={class:"flex items-center justify-between"},Dt={class:"metric-icon-wrap"},Vt={class:"jf-metric mt-2"},Et={class:"flex items-center justify-between"},Gt={class:"metric-icon-wrap"},Ut={class:"jf-metric mt-2"},At={class:"flex items-center justify-between"},Ot={class:"metric-icon-wrap"},Wt={class:"jf-metric mt-2"},Ht={class:"flex items-center justify-between"},Kt={class:"metric-icon-wrap"},Qt={class:"jf-metric mt-2"},Xt={class:"flex items-center justify-between"},Yt={class:"metric-icon-wrap"},Zt={class:"jf-metric mt-2"},te={class:"flex items-center justify-between"},ee={class:"jf-caption font-medium text-ink-secondary"},se={class:"metric-icon-wrap"},ne={class:"jf-metric mt-2"},oe={class:"flex items-center justify-between"},ae={class:"metric-icon-wrap"},le={class:"jf-metric mt-2"},ie={class:"flex items-center justify-between"},re={class:"metric-icon-wrap"},ce={class:"jf-metric mt-2"},ue={class:"grid gap-4 lg:grid-cols-2"},de={class:"flex flex-col items-center justify-around gap-6 sm:flex-row"},fe={class:"relative flex h-36 w-36 shrink-0 items-center justify-center"},ve={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 110 110"},me=["stroke","stroke-dasharray","stroke-dashoffset"],_e={class:"absolute inset-0 flex flex-col items-center justify-center text-center"},pe={class:"jf-metric text-xl font-medium leading-none"},xe={class:"jf-caption mt-1 text-ink-secondary"},he={class:"flex w-full flex-col justify-center gap-2.5 sm:max-w-xs"},ye={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},ke={class:"flex items-center gap-3"},ge={class:"font-mono text-ink"},we={class:"w-12 text-right font-mono text-ink-secondary"},be={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},je={class:"flex items-center gap-3"},Pe={class:"font-mono text-ink"},qe={class:"w-12 text-right font-mono text-ink-secondary"},$e={class:"flex items-center justify-between rounded-lg bg-tonal px-3 py-2 text-xs"},Ce={class:"flex items-center gap-3"},Fe={class:"font-mono text-ink"},Me={class:"w-12 text-right font-mono text-ink-secondary"},ze={class:"grid grid-cols-2 gap-4 sm:grid-cols-4"},Te={class:"flex flex-col items-center"},Ie={class:"relative flex h-20 w-20 items-center justify-center"},Se={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Be=["stroke-dasharray"],Je={class:"absolute font-mono text-sm font-medium"},Ne={class:"flex flex-col items-center"},Re={class:"relative flex h-20 w-20 items-center justify-center"},Le={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},De=["stroke-dasharray"],Ve={class:"absolute font-mono text-sm font-medium"},Ee={class:"flex flex-col items-center"},Ge={class:"relative flex h-20 w-20 items-center justify-center"},Ue={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Ae=["stroke-dasharray"],Oe={class:"absolute font-mono text-sm font-medium"},We={class:"flex flex-col items-center"},He={class:"relative flex h-20 w-20 items-center justify-center"},Ke={"aria-hidden":"true",class:"h-full w-full -rotate-90",viewBox:"0 0 80 80"},Qe=["stroke-dasharray"],Xe={class:"absolute font-mono text-sm font-medium"},Ye={class:"grid gap-4 lg:grid-cols-2"},Ze={class:"flex flex-col gap-4"},ts={class:"mb-1.5 flex items-center justify-between text-xs"},es={class:"font-mono text-ink"},ss={class:"flex h-3 w-full overflow-hidden rounded-full bg-tonal"},ns=["title"],os=["title"],as={class:"mt-2 flex items-center justify-between text-xs"},ls={class:"inline-flex items-center gap-1.5 text-ink"},is={class:"inline-flex items-center gap-1.5 text-ink"},rs={class:"border-t border-line pt-3"},cs={class:"mb-1.5 flex items-center justify-between text-xs"},us={class:"font-mono text-ink"},ds={class:"flex h-3 w-full overflow-hidden rounded-full bg-tonal"},fs=["title"],vs=["title"],ms={class:"mt-2 flex items-center justify-between text-xs"},_s={class:"inline-flex items-center gap-1.5 text-ink"},ps={class:"inline-flex items-center gap-1.5 text-ink"},xs={class:"grid gap-4 sm:grid-cols-2"},hs={class:"rounded-lg bg-tonal p-4"},ys={class:"jf-caption text-ink-secondary"},ks={class:"jf-metric mt-2"},gs={class:"jf-caption mt-1 text-ink-secondary"},ws={class:"rounded-lg bg-tonal p-4"},bs={class:"jf-caption text-ink-secondary"},js={class:"jf-metric mt-2"},Ps={class:"jf-caption mt-1 text-ink-secondary"},qs={class:"grid gap-4 xl:grid-cols-2"},$s={class:"flex items-center gap-1",role:"group","aria-label":"模型用量展示方式"},Cs={key:0,class:"flex flex-col gap-3 py-1"},Fs={key:0,class:"py-8 text-center text-xs text-ink-secondary"},Ms={class:"flex items-center justify-between text-xs"},zs={class:"flex items-center gap-2 min-w-0"},Ts={class:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-tonal font-mono text-[10px] text-ink-secondary"},Is={class:"jf-truncate font-mono font-medium text-ink"},Ss={class:"flex items-center gap-3 shrink-0 font-mono"},Bs={class:"text-ink"},Js={class:"w-12 text-right text-ink-secondary"},Ns={class:"h-2 w-full overflow-hidden rounded-full bg-tonal"},Rs={key:1,class:"jf-scroll-x -mx-4 -mb-4"},Ls={class:"jf-mono font-medium"},Ds={class:"jf-nowrap jf-mono"},Vs={class:"jf-nowrap jf-mono"},Es={class:"jf-nowrap jf-mono"},Gs={class:"jf-nowrap jf-mono"},Us={class:"flex items-center gap-1",role:"group","aria-label":"分组用量展示方式"},As={key:0,class:"flex flex-col gap-3 py-1"},Os={key:0,class:"py-8 text-center text-xs text-ink-secondary"},Ws={class:"flex items-center justify-between text-xs"},Hs={class:"flex items-center gap-2 min-w-0"},Ks={class:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-tonal font-mono text-[10px] text-ink-secondary"},Qs={class:"jf-truncate font-medium text-ink"},Xs={class:"flex items-center gap-3 shrink-0 font-mono"},Ys={class:"text-ink"},Zs={class:"w-12 text-right text-ink-secondary"},tn={class:"h-2 w-full overflow-hidden rounded-full bg-tonal"},en={key:1,class:"jf-scroll-x -mx-4 -mb-4"},sn={class:"font-medium"},nn={class:"jf-nowrap jf-mono"},on={class:"jf-nowrap jf-mono"},an={class:"jf-nowrap jf-mono"},ln={class:"jf-nowrap jf-mono"},rn=qt({__name:"Index",setup(y){const x=p(),C=p(!1),S=p(),k=p(),f=p(),B=p(!1),O=p(!1),J=p(),N=p(),W=p("24h"),j=p("chart"),P=p("chart"),pt=[{label:"最近 1 小时",value:"1h"},{label:"最近 24 小时",value:"24h"},{label:"最近 7 天",value:"7d"},{label:"最近 30 天",value:"30d"}],xt=[{key:"id",title:"逻辑模型",nowrap:!0},{key:"requests",title:"调用次数",align:"end"},{key:"input_tokens",title:"输入 Token",align:"end"},{key:"output_tokens",title:"输出 Token",align:"end"},{key:"total_tokens",title:"总 Token",align:"end"}],ht=[{key:"id",title:"模型分组",nowrap:!0},{key:"requests",title:"调用次数",align:"end"},{key:"input_tokens",title:"输入 Token",align:"end"},{key:"output_tokens",title:"输出 Token",align:"end"},{key:"total_tokens",title:"总 Token",align:"end"}];let H,K,R=0;async function yt(){if(!B.value){B.value=!0,J.value=void 0;try{k.value=await ot.get("/admin/v1/health")}catch(n){J.value=rt(n)}finally{B.value=!1}}}async function ct(n=W.value){const e=++R;O.value=!0,N.value=void 0;try{const s=await ot.get(`/admin/v1/logs/summary?window=${encodeURIComponent(n)}`);e===R&&(f.value=s)}catch(s){e===R&&(N.value=rt(s))}finally{e===R&&(O.value=!1)}}async function Q(){await Promise.all([yt(),ct()])}async function kt(){await Promise.all([L(),Q()])}async function L(){if(!C.value){C.value=!0,S.value=void 0;try{x.value=await ot.get("/admin/v1/dashboard")}catch(n){S.value=rt(n)}finally{C.value=!1}}}$t(()=>{L(),Q(),H=setInterval(()=>{document.visibilityState==="visible"&&L()},5e3),K=setInterval(()=>{document.visibilityState==="visible"&&Q()},3e4)}),Ct(()=>{H!==void 0&&clearInterval(H),K!==void 0&&clearInterval(K)});function gt(n){W.value=n,ct(n)}function i(n){return n==null?"—":new Intl.NumberFormat("zh-CN").format(n)}function F(n){return n==null?"—":Ft(n)}function wt(n){return n==null||!Number.isFinite(n)?"—":n.toFixed(2)}function D(n){return n.name?.trim()||n.id}function g(n){return f.value?.rates.find(e=>e.name===n)}const X=u(()=>{if(!f.value?.statuses)return 0;const{success:n=0,client_error:e=0,server_error:s=0}=f.value.statuses;return n+e+s}),w=u(()=>{const n=X.value,e=f.value?.statuses,s=e?.success??0,m=e?.client_error??0,q=e?.server_error??0,z=2*Math.PI*45;if(n<=0)return{empty:!0,slices:[],successCount:0,clientCount:0,serverCount:0,successPct:"0.0",clientPct:"0.0",serverPct:"0.0"};const Z=s/n,tt=m/n,et=q/n,st=Z*z,vt=tt*z,Pt=et*z;return{empty:!1,successCount:s,clientCount:m,serverCount:q,successPct:(Z*100).toFixed(1),clientPct:(tt*100).toFixed(1),serverPct:(et*100).toFixed(1),slices:[{key:"success",label:"成功 (2xx)",count:s,percent:(Z*100).toFixed(1),stroke:"var(--jf-success-text)",dasharray:`${st} ${z}`,dashoffset:0},{key:"client_error",label:"客户端错误 (4xx)",count:m,percent:(tt*100).toFixed(1),stroke:"var(--jf-warning-text)",dasharray:`${vt} ${z}`,dashoffset:-st},{key:"server_error",label:"服务端错误 (5xx)",count:q,percent:(et*100).toFixed(1),stroke:"var(--jf-danger-text)",dasharray:`${Pt} ${z}`,dashoffset:-(st+vt)}]}});function V(n,e=34){const s=2*Math.PI*e;return n==null||!Number.isFinite(n)||n<=0?`0 ${s.toFixed(1)}`:`${(Math.min(1,Math.max(0,n))*s).toFixed(1)} ${s.toFixed(1)}`}const E=u(()=>{const n=[...x.value?.models??[]];return n.sort((e,s)=>(s.requests||0)-(e.requests||0)),n}),bt=u(()=>Math.max(1,...E.value.map(n=>n.requests||0))),ut=u(()=>E.value.reduce((n,e)=>n+(e.requests||0),0)),G=u(()=>{const n=[...x.value?.groups??[]];return n.sort((e,s)=>(s.requests||0)-(e.requests||0)),n}),jt=u(()=>Math.max(1,...G.value.map(n=>n.requests||0))),dt=u(()=>G.value.reduce((n,e)=>n+(e.requests||0),0)),v=u(()=>{const n=f.value?.tokens.input_tokens??0,e=f.value?.tokens.output_tokens??0,s=n+e,m=s>0?n/s*100:50,q=s>0?e/s*100:50;return{input:n,output:e,total:s,inPct:m.toFixed(1),outPct:q.toFixed(1)}}),h=u(()=>{const n=f.value?.requests.auto??0,e=f.value?.requests.explicit??0,s=n+e,m=s>0?n/s*100:0,q=s>0?e/s*100:0;return{auto:n,explicit:e,total:s,autoPct:m.toFixed(1),explicitPct:q.toFixed(1)}}),M=u(()=>It(f.value?.latency)),U=u(()=>M.value.meanMs),ft=u(()=>M.value.p95Ms),Y=u(()=>M.value.source==="auto"?"自动请求":M.value.source==="all"?"全部请求":"请求");return(n,e)=>(r(),c("div",St,[t("div",Bt,[t("div",Jt,[e[4]||(e[4]=t("h1",{class:"jf-page-title text-2xl font-medium leading-none"},"系统总览",-1)),t("span",{class:nt(["inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium",k.value?.status==="ok"?"bg-success-bg text-success":"bg-warning-bg text-warning"])},[t("span",{class:nt(["h-1.5 w-1.5 rounded-full",k.value?.status==="ok"?"bg-success":"bg-warning"])},null,2),_(" "+o(k.value?.status==="ok"?"服务运行正常":k.value?.status==="not_ready"?"系统未就绪":"检查中…"),1)],2)]),t("div",Nt,[l(Tt,{"model-value":W.value,items:pt,label:"时间窗口",size:"sm",class:"w-32","onUpdate:modelValue":gt},null,8,["model-value"]),l(T,{variant:"secondary",size:"sm",icon:"arrow-path",loading:C.value||B.value||O.value,onClick:kt},{default:a(()=>[...e[5]||(e[5]=[_(" 刷新 ",-1)])]),_:1},8,["loading"])])]),S.value?(r(),A(it,{key:0,error:S.value},{actions:a(()=>[l(T,{variant:"danger-ghost",size:"sm",onClick:L},{default:a(()=>[...e[6]||(e[6]=[_("重试",-1)])]),_:1})]),_:1},8,["error"])):$("",!0),J.value?(r(),A(it,{key:1,error:J.value},null,8,["error"])):$("",!0),N.value?(r(),A(it,{key:2,error:N.value},null,8,["error"])):$("",!0),f.value?.log_disabled?(r(),A(zt,{key:3,tone:"warning",title:"持久路由日志当前已停用;汇总中的空数据不代表 0 次请求。"})):$("",!0),t("section",Rt,[l(d,{density:"compact"},{default:a(()=>[t("div",Lt,[e[7]||(e[7]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"系统健康",-1)),t("span",Dt,[l(b,{name:"circle-check",size:"sm",class:nt(k.value?.status==="ok"?"text-success":"text-ink-secondary")},null,8,["class"])])]),t("div",Vt,o(k.value?.status==="ok"?"运行正常":k.value?.status==="not_ready"?"未就绪":"—"),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",Et,[e[8]||(e[8]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"请求总量",-1)),t("span",Gt,[l(b,{name:"queue-list",size:"sm",class:"text-ink-secondary"})])]),t("div",Ut,[_(o(i(f.value?.requests.total))+" ",1),e[9]||(e[9]=t("span",{class:"jf-caption font-normal text-ink-secondary"},"条",-1))])]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",At,[e[10]||(e[10]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"请求成功率",-1)),t("span",Ot,[l(b,{name:"check-circle",size:"sm",class:"text-success"})])]),t("div",Wt,o(F(g("client_request_success_rate")?.value)),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",Ht,[e[11]||(e[11]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"实时输出 TPS",-1)),t("span",Kt,[l(b,{name:"gauge",size:"sm",class:"text-ink-secondary"})])]),t("div",Qt,o(wt(x.value?.output_tps_60s)),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",Xt,[e[12]||(e[12]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"自动路由占比",-1)),t("span",Yt,[l(b,{name:"layers-2",size:"sm",class:"text-ink-secondary"})])]),t("div",Zt,o(F(g("auto_usage_rate")?.value)),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",te,[t("span",ee,o(Y.value)+"平均延迟",1),t("span",se,[l(b,{name:"clock",size:"sm",class:"text-ink-secondary"})])]),t("div",ne,o(U.value!==null?`${U.value} ms`:"—"),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",oe,[e[13]||(e[13]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"Token 吞吐总量",-1)),t("span",ae,[l(b,{name:"cpu-chip",size:"sm",class:"text-ink-secondary"})])]),t("div",le,o(i(v.value.total)),1)]),_:1}),l(d,{density:"compact"},{default:a(()=>[t("div",ie,[e[14]||(e[14]=t("span",{class:"jf-caption font-medium text-ink-secondary"},"活跃提供商",-1)),t("span",re,[l(b,{name:"server-stack",size:"sm",class:"text-ink-secondary"})])]),t("div",ce,o(k.value?.catalog.providers.enabled??"—")+" / "+o(k.value?.catalog.providers.total??"—"),1)]),_:1})]),t("section",ue,[l(d,{title:"请求状态分布"},{default:a(()=>[t("div",de,[t("div",fe,[(r(),c("svg",ve,[e[15]||(e[15]=t("circle",{cx:"55",cy:"55",r:"45",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"12"},null,-1)),w.value.empty?$("",!0):(r(!0),c(at,{key:0},lt(w.value.slices,s=>(r(),c("circle",{key:s.key,cx:"55",cy:"55",r:"45",fill:"none",stroke:s.stroke,"stroke-width":"12","stroke-dasharray":s.dasharray,"stroke-dashoffset":s.dashoffset,"stroke-linecap":"round",class:"transition-all duration-500 ease-out"},null,8,me))),128))])),t("div",_e,[t("span",pe,o(X.value>0?`${w.value.successPct}%`:"—"),1),t("span",xe,o(X.value>0?"成功率":"暂无数据"),1)])]),t("div",he,[t("div",ye,[e[16]||(e[16]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-success"}),t("span",{class:"text-ink"},"成功 (2xx)")],-1)),t("div",ke,[t("span",ge,o(i(w.value.successCount)),1),t("span",we,o(w.value.successPct)+"%",1)])]),t("div",be,[e[17]||(e[17]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-warning"}),t("span",{class:"text-ink"},"客户端错误 (4xx)")],-1)),t("div",je,[t("span",Pe,o(i(w.value.clientCount)),1),t("span",qe,o(w.value.clientPct)+"%",1)])]),t("div",$e,[e[18]||(e[18]=t("div",{class:"flex items-center gap-2"},[t("span",{class:"h-2.5 w-2.5 rounded-full bg-danger"}),t("span",{class:"text-ink"},"服务端错误 (5xx)")],-1)),t("div",Ce,[t("span",Fe,o(i(w.value.serverCount)),1),t("span",Me,o(w.value.serverPct)+"%",1)])])])])]),_:1}),l(d,{title:"智能路由决策效能"},{default:a(()=>[t("div",ze,[t("div",Te,[t("div",Ie,[(r(),c("svg",Se,[e[19]||(e[19]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-success-text)","stroke-width":"7","stroke-dasharray":V(g("client_request_success_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Be)])),t("span",Je,o(F(g("client_request_success_rate")?.value)),1)]),e[20]||(e[20]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"请求成功率",-1))]),t("div",Ne,[t("div",Re,[(r(),c("svg",Le,[e[21]||(e[21]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-primary)","stroke-width":"7","stroke-dasharray":V(g("auto_usage_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,De)])),t("span",Ve,o(F(g("auto_usage_rate")?.value)),1)]),e[22]||(e[22]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"自动路由流量",-1))]),t("div",Ee,[t("div",Ge,[(r(),c("svg",Ue,[e[23]||(e[23]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-info-text)","stroke-width":"7","stroke-dasharray":V(g("auto_decision_success_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Ae)])),t("span",Oe,o(F(g("auto_decision_success_rate")?.value)),1)]),e[24]||(e[24]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"自动决策成功",-1))]),t("div",We,[t("div",He,[(r(),c("svg",Ke,[e[25]||(e[25]=t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-border-subtle)","stroke-width":"7"},null,-1)),t("circle",{cx:"40",cy:"40",r:"34",fill:"none",stroke:"var(--jf-warning-text)","stroke-width":"7","stroke-dasharray":V(g("jev_group_adoption_rate")?.value),"stroke-linecap":"round",class:"transition-all duration-500"},null,8,Qe)])),t("span",Xe,o(F(g("jev_group_adoption_rate")?.value)),1)]),e[26]||(e[26]=t("span",{class:"jf-caption mt-2 text-center text-ink-secondary"},"Jev 选组采纳率",-1))])])]),_:1})]),t("section",Ye,[l(d,{title:"流量与 Token 构成"},{default:a(()=>[t("div",Ze,[t("div",null,[t("div",ts,[e[27]||(e[27]=t("span",{class:"text-ink-secondary"},"Token 构成(输入 / 输出)",-1)),t("span",es,"总计 "+o(i(v.value.total)),1)]),t("div",ss,[t("div",{class:"bg-info transition-all duration-500",style:I({width:`${v.value.inPct}%`}),title:`输入 Token: ${i(v.value.input)} (${v.value.inPct}%)`},null,12,ns),t("div",{class:"bg-success transition-all duration-500",style:I({width:`${v.value.outPct}%`}),title:`输出 Token: ${i(v.value.output)} (${v.value.outPct}%)`},null,12,os)]),t("div",as,[t("span",ls,[e[28]||(e[28]=t("span",{class:"h-2 w-2 rounded-full bg-info"},null,-1)),_(" 输入: "+o(i(v.value.input))+" ("+o(v.value.inPct)+"%) ",1)]),t("span",is,[e[29]||(e[29]=t("span",{class:"h-2 w-2 rounded-full bg-success"},null,-1)),_(" 输出: "+o(i(v.value.output))+" ("+o(v.value.outPct)+"%) ",1)])])]),t("div",rs,[t("div",cs,[e[30]||(e[30]=t("span",{class:"text-ink-secondary"},"路由选择(自动决策 / 显式指定)",-1)),t("span",us,"总计 "+o(i(h.value.total))+" 次",1)]),t("div",ds,[t("div",{class:"bg-primary transition-all duration-500",style:I({width:`${h.value.autoPct}%`}),title:`自动路由: ${i(h.value.auto)} (${h.value.autoPct}%)`},null,12,fs),t("div",{class:"bg-warning transition-all duration-500",style:I({width:`${h.value.explicitPct}%`}),title:`显式指定: ${i(h.value.explicit)} (${h.value.explicitPct}%)`},null,12,vs)]),t("div",ms,[t("span",_s,[e[31]||(e[31]=t("span",{class:"h-2 w-2 rounded-full bg-primary"},null,-1)),_(" 自动路由: "+o(i(h.value.auto))+" ("+o(h.value.autoPct)+"%) ",1)]),t("span",ps,[e[32]||(e[32]=t("span",{class:"h-2 w-2 rounded-full bg-warning"},null,-1)),_(" 显式指定: "+o(i(h.value.explicit))+" ("+o(h.value.explicitPct)+"%) ",1)])])])])]),_:1}),l(d,{title:"响应延迟统计"},{default:a(()=>[t("div",xs,[t("div",hs,[t("span",ys,o(Y.value)+"平均延迟",1),t("p",ks,o(U.value!==null?`${U.value} ms`:"—"),1),t("p",gs,"样本 "+o(i(M.value.sampleCount))+" 条",1)]),t("div",ws,[t("span",bs,o(Y.value)+" P95 延迟",1),t("p",js,o(ft.value!==null?`${ft.value} ms`:"—"),1),t("p",Ps,"样本 "+o(i(M.value.sampleCount))+" 条",1)])])]),_:1})]),t("section",qs,[l(d,{title:"模型调用排行"},{actions:a(()=>[t("div",$s,[l(T,{size:"sm","aria-pressed":j.value==="chart",variant:j.value==="chart"?"secondary":"ghost",onClick:e[0]||(e[0]=s=>j.value="chart")},{default:a(()=>[...e[33]||(e[33]=[_(" 图表 ",-1)])]),_:1},8,["aria-pressed","variant"]),l(T,{size:"sm","aria-pressed":j.value==="table",variant:j.value==="table"?"secondary":"ghost",onClick:e[1]||(e[1]=s=>j.value="table")},{default:a(()=>[...e[34]||(e[34]=[_(" 表格 ",-1)])]),_:1},8,["aria-pressed","variant"])])]),default:a(()=>[j.value==="chart"?(r(),c("div",Cs,[E.value.length===0?(r(),c("div",Fs," 暂无模型用量记录 ")):$("",!0),(r(!0),c(at,null,lt(E.value.slice(0,6),(s,m)=>(r(),c("div",{key:s.id,class:"flex flex-col gap-1.5"},[t("div",Ms,[t("div",zs,[t("span",Ts,o(m+1),1),t("span",Is,o(D(s)),1)]),t("div",Ss,[t("span",Bs,o(i(s.requests))+" 次",1),t("span",Js,o(ut.value>0?(s.requests/ut.value*100).toFixed(1):"0.0")+"% ",1)])]),t("div",Ns,[t("div",{class:"h-full rounded-full bg-primary transition-all duration-500",style:I({width:`${Math.min(100,Math.round((s.requests||0)/bt.value*100))}%`})},null,4)])]))),128))])):(r(),c("div",Rs,[l(mt,{rows:x.value?.models??[],columns:xt,loading:C.value,"empty-text":"暂无模型用量记录"},{"cell-id":a(({row:s})=>[t("span",Ls,o(D(s)),1)]),"cell-requests":a(({row:s})=>[t("span",Ds,o(i(s.requests)),1)]),"cell-input_tokens":a(({row:s})=>[t("span",Vs,o(i(s.input_tokens)),1)]),"cell-output_tokens":a(({row:s})=>[t("span",Es,o(i(s.output_tokens)),1)]),"cell-total_tokens":a(({row:s})=>[t("span",Gs,o(i(s.total_tokens)),1)]),_:1},8,["rows","loading"])]))]),_:1}),l(d,{title:"分组流量分配"},{actions:a(()=>[t("div",Us,[l(T,{size:"sm","aria-pressed":P.value==="chart",variant:P.value==="chart"?"secondary":"ghost",onClick:e[2]||(e[2]=s=>P.value="chart")},{default:a(()=>[...e[35]||(e[35]=[_(" 图表 ",-1)])]),_:1},8,["aria-pressed","variant"]),l(T,{size:"sm","aria-pressed":P.value==="table",variant:P.value==="table"?"secondary":"ghost",onClick:e[3]||(e[3]=s=>P.value="table")},{default:a(()=>[...e[36]||(e[36]=[_(" 表格 ",-1)])]),_:1},8,["aria-pressed","variant"])])]),default:a(()=>[P.value==="chart"?(r(),c("div",As,[G.value.length===0?(r(),c("div",Os," 暂无分组用量记录 ")):$("",!0),(r(!0),c(at,null,lt(G.value.slice(0,6),(s,m)=>(r(),c("div",{key:s.id,class:"flex flex-col gap-1.5"},[t("div",Ws,[t("div",Hs,[t("span",Ks,o(m+1),1),t("span",Qs,o(D(s)),1)]),t("div",Xs,[t("span",Ys,o(i(s.requests))+" 次",1),t("span",Zs,o(dt.value>0?(s.requests/dt.value*100).toFixed(1):"0.0")+"% ",1)])]),t("div",tn,[t("div",{class:"h-full rounded-full bg-primary transition-all duration-500",style:I({width:`${Math.min(100,Math.round((s.requests||0)/jt.value*100))}%`})},null,4)])]))),128))])):(r(),c("div",en,[l(mt,{rows:x.value?.groups??[],columns:ht,loading:C.value,"empty-text":"暂无分组用量记录"},{"cell-id":a(({row:s})=>[t("span",sn,o(D(s)),1)]),"cell-requests":a(({row:s})=>[t("span",nn,o(i(s.requests)),1)]),"cell-input_tokens":a(({row:s})=>[t("span",on,o(i(s.input_tokens)),1)]),"cell-output_tokens":a(({row:s})=>[t("span",an,o(i(s.output_tokens)),1)]),"cell-total_tokens":a(({row:s})=>[t("span",ln,o(i(s.total_tokens)),1)]),_:1},8,["rows","loading"])]))]),_:1})])]))}}),_n=Mt(rn,[["__scopeId","data-v-b06ec2fe"]]);export{_n as default}; diff --git a/internal/api/dashboard/static/web/assets/JfBadge-BNbswCCo.js b/internal/api/dashboard/static/web/assets/JfBadge-DE3HILDW.js similarity index 87% rename from internal/api/dashboard/static/web/assets/JfBadge-BNbswCCo.js rename to internal/api/dashboard/static/web/assets/JfBadge-DE3HILDW.js index 619b221..d1db307 100644 --- a/internal/api/dashboard/static/web/assets/JfBadge-BNbswCCo.js +++ b/internal/api/dashboard/static/web/assets/JfBadge-DE3HILDW.js @@ -1 +1 @@ -import{d,i as a,M as l,l as t,_ as n}from"./index-4SLuEZVi.js";const s=["data-tone","aria-label"],c={key:0,class:"jf-badge-dot","aria-hidden":"true"},r=d({__name:"JfBadge",props:{tone:{default:"neutral"},dot:{type:Boolean,default:!1},label:{default:void 0}},setup(e){return(o,f)=>(t(),a("span",{class:"jf-badge","data-tone":e.tone,"aria-label":e.dot?e.label:void 0},[e.dot?(t(),a("span",c)):l(o.$slots,"default",{},void 0,!0,1)],8,s))}}),u=n(r,[["__scopeId","data-v-acb571be"]]);export{u as J}; +import{d,i as a,N as l,l as t,_ as n}from"./index-CeO69YUd.js";const s=["data-tone","aria-label"],c={key:0,class:"jf-badge-dot","aria-hidden":"true"},r=d({__name:"JfBadge",props:{tone:{default:"neutral"},dot:{type:Boolean,default:!1},label:{default:void 0}},setup(e){return(o,f)=>(t(),a("span",{class:"jf-badge","data-tone":e.tone,"aria-label":e.dot?e.label:void 0},[e.dot?(t(),a("span",c)):l(o.$slots,"default",{},void 0,!0,1)],8,s))}}),u=n(r,[["__scopeId","data-v-acb571be"]]);export{u as J}; diff --git a/internal/api/dashboard/static/web/assets/JfCheckbox-DpJDzTQd.js b/internal/api/dashboard/static/web/assets/JfCheckbox-BZQr-Pz_.js similarity index 57% rename from internal/api/dashboard/static/web/assets/JfCheckbox-DpJDzTQd.js rename to internal/api/dashboard/static/web/assets/JfCheckbox-BZQr-Pz_.js index 1207a43..582012d 100644 --- a/internal/api/dashboard/static/web/assets/JfCheckbox-DpJDzTQd.js +++ b/internal/api/dashboard/static/web/assets/JfCheckbox-BZQr-Pz_.js @@ -1 +1 @@ -import{j as u}from"./field-context-CK2hRgAr.js";import{d as f,o as b,z as m,i as p,b as l,H as h,M as k,g as x,t as y,K as B,y as _,N as v,l as j,_ as V}from"./index-4SLuEZVi.js";const g=["data-disabled","for"],C=["id","checked","disabled","aria-describedby"],I={class:"jf-checkbox-text"},J=f({__name:"JfCheckbox",props:{modelValue:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},label:{default:void 0},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:c}){const t=e,i=c,d=B(u),o=_(()=>d?.controlId),s=v("input");function n(){s.value&&(s.value.indeterminate=!!t.indeterminate)}b(n),m(()=>t.indeterminate,n);function r(a){i("update:modelValue",a.target.checked)}return(a,N)=>(j(),p("label",{class:"jf-checkbox","data-disabled":e.disabled||void 0,for:o.value},[l("input",{ref:"input",id:o.value,type:"checkbox",class:"jf-checkbox-input",checked:e.modelValue,disabled:e.disabled,"aria-describedby":h(d)?.describedBy,onChange:r},null,40,C),l("span",I,[k(a.$slots,"default",{},()=>[x(y(e.label),1)],!0)])],8,g))}}),R=V(J,[["__scopeId","data-v-28fd15a1"]]);export{R as J}; +import{j as u}from"./field-context-Dg4JwEpB.js";import{d as f,o as b,z as m,i as p,b as l,I as h,N as k,g as x,t as y,L as B,y as _,O as v,l as j,_ as V}from"./index-CeO69YUd.js";const I=["data-disabled","for"],g=["id","checked","disabled","aria-describedby"],C={class:"jf-checkbox-text"},J=f({__name:"JfCheckbox",props:{modelValue:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},label:{default:void 0},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:c}){const t=e,i=c,d=B(u),o=_(()=>d?.controlId),s=v("input");function n(){s.value&&(s.value.indeterminate=!!t.indeterminate)}b(n),m(()=>t.indeterminate,n);function r(a){i("update:modelValue",a.target.checked)}return(a,N)=>(j(),p("label",{class:"jf-checkbox","data-disabled":e.disabled||void 0,for:o.value},[l("input",{ref:"input",id:o.value,type:"checkbox",class:"jf-checkbox-input",checked:e.modelValue,disabled:e.disabled,"aria-describedby":h(d)?.describedBy,onChange:r},null,40,g),l("span",C,[k(a.$slots,"default",{},()=>[x(y(e.label),1)],!0)])],8,I))}}),T=V(J,[["__scopeId","data-v-28fd15a1"]]);export{T as J}; diff --git a/internal/api/dashboard/static/web/assets/JfDrawer-CHIy4Mgq.js b/internal/api/dashboard/static/web/assets/JfDrawer-CHIy4Mgq.js deleted file mode 100644 index f3adb0a..0000000 --- a/internal/api/dashboard/static/web/assets/JfDrawer-CHIy4Mgq.js +++ /dev/null @@ -1 +0,0 @@ -import{d as v,O as w,c as y,f,T as k,w as j,P as _,Q as u,i as r,b as a,t as p,h as n,J as B,M as m,R as $,N as C,l as t,_ as g}from"./index-4SLuEZVi.js";const J={key:0,class:"jf-drawer-root"},z=["data-size","aria-describedby"],N={class:"jf-drawer-header"},T={class:"jf-drawer-heading"},D=["id"],I={class:"jf-drawer-body"},R={key:0,class:"jf-drawer-footer"},S=v({__name:"JfDrawer",props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:"md"},dismissible:{type:Boolean,default:!0},closeLabel:{default:"关闭"}},emits:["update:open"],setup(e,{emit:b}){const o=e,i=b,s=`jf-drawer-${$()}`,l=C("panel");w({open:u(o,"open"),panel:l,dismissible:u(o,"dismissible"),onEscape:()=>i("update:open",!1)});function h(){o.dismissible&&i("update:open",!1)}return(d,c)=>(t(),y(_,{to:"body"},[f(k,{name:"jf-drawer"},{default:j(()=>[e.open?(t(),r("div",J,[a("div",{class:"jf-drawer-scrim",onClick:h}),a("div",{ref_key:"panel",ref:l,class:"jf-drawer-panel","data-size":e.size,role:"dialog","aria-modal":"true","aria-labelledby":s,"aria-describedby":e.description?`${s}-description`:void 0},[a("header",N,[a("div",T,[a("h2",{id:s},p(e.title),1),e.description?(t(),r("p",{key:0,id:`${s}-description`},p(e.description),9,D)):n("",!0)]),f(B,{variant:"ghost",square:"",icon:"x-mark","aria-label":e.closeLabel,onClick:c[0]||(c[0]=V=>i("update:open",!1))},null,8,["aria-label"])]),a("div",I,[m(d.$slots,"default",{},void 0,!0)]),d.$slots.footer?(t(),r("footer",R,[m(d.$slots,"footer",{},void 0,!0)])):n("",!0)],8,z)])):n("",!0)]),_:3})]))}}),E=g(S,[["__scopeId","data-v-86a1fc63"]]);export{E as J}; diff --git a/internal/api/dashboard/static/web/assets/JfDrawer-DV73NuVR.js b/internal/api/dashboard/static/web/assets/JfDrawer-DV73NuVR.js new file mode 100644 index 0000000..fd1b434 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/JfDrawer-DV73NuVR.js @@ -0,0 +1 @@ +import{d as v,Z as w,c as y,f,$ as k,w as j,X as _,a0 as u,i as r,b as a,t as p,h as n,J as $,N as m,R as B,O as C,l as t,_ as g}from"./index-CeO69YUd.js";const J={key:0,class:"jf-drawer-root"},z=["data-size","aria-describedby"],N={class:"jf-drawer-header"},D={class:"jf-drawer-heading"},I=["id"],R={class:"jf-drawer-body"},S={key:0,class:"jf-drawer-footer"},T=v({__name:"JfDrawer",props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:"md"},dismissible:{type:Boolean,default:!0},closeLabel:{default:"关闭"}},emits:["update:open"],setup(e,{emit:b}){const o=e,i=b,s=`jf-drawer-${B()}`,l=C("panel");w({open:u(o,"open"),panel:l,dismissible:u(o,"dismissible"),onEscape:()=>i("update:open",!1)});function h(){o.dismissible&&i("update:open",!1)}return(d,c)=>(t(),y(_,{to:"body"},[f(k,{name:"jf-drawer"},{default:j(()=>[e.open?(t(),r("div",J,[a("div",{class:"jf-drawer-scrim",onClick:h}),a("div",{ref_key:"panel",ref:l,class:"jf-drawer-panel","data-size":e.size,role:"dialog","aria-modal":"true","aria-labelledby":s,"aria-describedby":e.description?`${s}-description`:void 0},[a("header",N,[a("div",D,[a("h2",{id:s},p(e.title),1),e.description?(t(),r("p",{key:0,id:`${s}-description`},p(e.description),9,I)):n("",!0)]),f($,{variant:"ghost",square:"",icon:"x-mark","aria-label":e.closeLabel,onClick:c[0]||(c[0]=V=>i("update:open",!1))},null,8,["aria-label"])]),a("div",R,[m(d.$slots,"default",{},void 0,!0)]),d.$slots.footer?(t(),r("footer",S,[m(d.$slots,"footer",{},void 0,!0)])):n("",!0)],8,z)])):n("",!0)]),_:3})]))}}),E=g(T,[["__scopeId","data-v-86a1fc63"]]);export{E as J}; diff --git a/internal/api/dashboard/static/web/assets/JfEmpty-BgJ1JF6C.js b/internal/api/dashboard/static/web/assets/JfEmpty-CplaOUNi.js similarity index 84% rename from internal/api/dashboard/static/web/assets/JfEmpty-BgJ1JF6C.js rename to internal/api/dashboard/static/web/assets/JfEmpty-CplaOUNi.js index cf71053..7298345 100644 --- a/internal/api/dashboard/static/web/assets/JfEmpty-BgJ1JF6C.js +++ b/internal/api/dashboard/static/web/assets/JfEmpty-CplaOUNi.js @@ -1 +1 @@ -import{d as c,i as s,b as o,f as r,p as l,t as d,M as p,h as m,y as f,l as n,_ as u}from"./index-4SLuEZVi.js";const _=["data-variant"],v={class:"jf-empty-icon","aria-hidden":"true"},y={class:"jf-empty-title"},h={key:0,class:"jf-empty-action"},g=c({__name:"JfEmpty",props:{title:{},variant:{default:"plain"},icon:{default:void 0}},setup(t){const a=t,i=f(()=>a.icon??{"first-use":"plus",filter:"magnifying-glass","no-permission":"lock-closed",error:"exclamation-triangle",plain:"information-circle"}[a.variant]);return(e,j)=>(n(),s("div",{class:"jf-empty","data-variant":t.variant},[o("span",v,[r(l,{name:i.value,size:"xl"},null,8,["name"])]),o("p",y,d(t.title),1),e.$slots.action?(n(),s("div",h,[p(e.$slots,"action",{},void 0,!0)])):m("",!0)],8,_))}}),J=u(g,[["__scopeId","data-v-30cf003c"]]);export{J}; +import{d as c,i as s,b as o,f as r,p as l,t as d,N as p,h as m,y as f,l as n,_ as u}from"./index-CeO69YUd.js";const _=["data-variant"],v={class:"jf-empty-icon","aria-hidden":"true"},y={class:"jf-empty-title"},h={key:0,class:"jf-empty-action"},g=c({__name:"JfEmpty",props:{title:{},variant:{default:"plain"},icon:{default:void 0}},setup(t){const a=t,i=f(()=>a.icon??{"first-use":"plus",filter:"magnifying-glass","no-permission":"lock-closed",error:"exclamation-triangle",plain:"information-circle"}[a.variant]);return(e,j)=>(n(),s("div",{class:"jf-empty","data-variant":t.variant},[o("span",v,[r(l,{name:i.value,size:"xl"},null,8,["name"])]),o("p",y,d(t.title),1),e.$slots.action?(n(),s("div",h,[p(e.$slots,"action",{},void 0,!0)])):m("",!0)],8,_))}}),J=u(g,[["__scopeId","data-v-30cf003c"]]);export{J}; diff --git a/internal/api/dashboard/static/web/assets/JfField--tcDfYWs.js b/internal/api/dashboard/static/web/assets/JfField-g_CLZQhf.js similarity index 70% rename from internal/api/dashboard/static/web/assets/JfField--tcDfYWs.js rename to internal/api/dashboard/static/web/assets/JfField-g_CLZQhf.js index b22cea1..4a55f0d 100644 --- a/internal/api/dashboard/static/web/assets/JfField--tcDfYWs.js +++ b/internal/api/dashboard/static/web/assets/JfField-g_CLZQhf.js @@ -1 +1 @@ -import{d as m,i as o,b as t,t as d,h as l,M as v,f as p,p as _,R as g,y as i,l as s,U as y,D as h,_ as j}from"./index-4SLuEZVi.js";import{j as B}from"./field-context-CK2hRgAr.js";const I=["data-inline"],b=["for"],k={key:0,class:"jf-sr-only"},q={class:"jf-field-control"},x=["id"],J=m({__name:"JfField",props:{label:{},name:{default:void 0},error:{default:void 0},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},setup(e){const a=e,c=g(),r=i(()=>a.name??`jf-field-${c}`),n=i(()=>`${r.value}-message`),u=h({get controlId(){return r.value},get describedBy(){return a.error?n.value:void 0},get invalid(){return!!a.error},get required(){return a.required}});return y(B,u),(f,F)=>(s(),o("div",{class:"jf-field","data-inline":e.inline||void 0},[t("label",{for:r.value},[t("span",null,d(e.label),1),e.required?(s(),o("span",k,"(必填)")):l("",!0)],8,b),t("div",q,[v(f.$slots,"default",{},void 0,!0)]),e.error?(s(),o("p",{key:0,id:n.value,class:"jf-field-message","data-error":"true"},[p(_,{name:"exclamation-circle",size:"sm","aria-hidden":"true"}),t("span",null,d(e.error),1)],8,x)):l("",!0)],8,I))}}),$=j(J,[["__scopeId","data-v-9372e114"]]);export{$ as J}; +import{d as m,i as o,b as t,t as d,h as l,N as v,f as p,p as _,R as g,y as i,l as s,S as y,D as h,_ as j}from"./index-CeO69YUd.js";import{j as B}from"./field-context-Dg4JwEpB.js";const I=["data-inline"],b=["for"],k={key:0,class:"jf-sr-only"},q={class:"jf-field-control"},x=["id"],J=m({__name:"JfField",props:{label:{},name:{default:void 0},error:{default:void 0},required:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},setup(e){const a=e,c=g(),r=i(()=>a.name??`jf-field-${c}`),n=i(()=>`${r.value}-message`),u=h({get controlId(){return r.value},get describedBy(){return a.error?n.value:void 0},get invalid(){return!!a.error},get required(){return a.required}});return y(B,u),(f,N)=>(s(),o("div",{class:"jf-field","data-inline":e.inline||void 0},[t("label",{for:r.value},[t("span",null,d(e.label),1),e.required?(s(),o("span",k,"(必填)")):l("",!0)],8,b),t("div",q,[v(f.$slots,"default",{},void 0,!0)]),e.error?(s(),o("p",{key:0,id:n.value,class:"jf-field-message","data-error":"true"},[p(_,{name:"exclamation-circle",size:"sm","aria-hidden":"true"}),t("span",null,d(e.error),1)],8,x)):l("",!0)],8,I))}}),V=j(J,[["__scopeId","data-v-9372e114"]]);export{V as J}; diff --git a/internal/api/dashboard/static/web/assets/JfInput-CMwI48jv.js b/internal/api/dashboard/static/web/assets/JfInput-DtzjrdfV.js similarity index 56% rename from internal/api/dashboard/static/web/assets/JfInput-CMwI48jv.js rename to internal/api/dashboard/static/web/assets/JfInput-DtzjrdfV.js index e16857e..c67cf77 100644 --- a/internal/api/dashboard/static/web/assets/JfInput-CMwI48jv.js +++ b/internal/api/dashboard/static/web/assets/JfInput-DtzjrdfV.js @@ -1 +1 @@ -import{d as v,W as b,i as y,n as B,c as h,p as j,h as z,b as I,Y as V,H as t,y as d,K as x,N as k,l as n,_ as C}from"./index-4SLuEZVi.js";import{j as J}from"./field-context-CK2hRgAr.js";import{s as q}from"./control-attrs-CG7deI17.js";const A=["data-size","data-invalid"],N=["id","type","value","disabled","required","aria-invalid","aria-describedby"],_=v({inheritAttrs:!1,__name:"JfInput",props:{modelValue:{default:""},type:{default:"text"},size:{default:"md"},icon:{default:void 0},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{expose:o,emit:u}){const r=e,c=u,f=b(),i=d(()=>q(f)),a=x(J),s=d(()=>r.invalid||!!a?.invalid),m=k("input");o({focus:()=>m.value?.focus()});function p(l){c("update:modelValue",l.target.value)}return(l,g)=>(n(),y("div",{class:B(["jf-input",i.value.wrapper.class]),"data-size":e.size,"data-invalid":s.value||void 0},[e.icon?(n(),h(j,{key:0,name:e.icon,size:"sm",class:"jf-input-icon","aria-hidden":"true"},null,8,["name"])):z("",!0),I("input",V({ref:"input",class:"jf-input-el",id:t(a)?.controlId,type:e.type,value:e.modelValue??"",disabled:e.disabled,required:t(a)?.required||void 0,"aria-invalid":s.value?"true":void 0,"aria-describedby":t(a)?.describedBy},i.value.control,{onInput:p}),null,16,N)],10,A))}}),F=C(_,[["__scopeId","data-v-6bd4b555"]]);export{F as J}; +import{d as v,U as b,i as y,n as B,c as I,p as h,h as j,b as z,W as V,I as t,y as d,L as x,O as k,l as n,_ as C}from"./index-CeO69YUd.js";import{j as J}from"./field-context-Dg4JwEpB.js";import{s as q}from"./control-attrs-CG7deI17.js";const A=["data-size","data-invalid"],_=["id","type","value","disabled","required","aria-invalid","aria-describedby"],g=v({inheritAttrs:!1,__name:"JfInput",props:{modelValue:{default:""},type:{default:"text"},size:{default:"md"},icon:{default:void 0},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{expose:o,emit:u}){const r=e,c=u,f=b(),i=d(()=>q(f)),a=x(J),s=d(()=>r.invalid||!!a?.invalid),m=k("input");o({focus:()=>m.value?.focus()});function p(l){c("update:modelValue",l.target.value)}return(l,E)=>(n(),y("div",{class:B(["jf-input",i.value.wrapper.class]),"data-size":e.size,"data-invalid":s.value||void 0},[e.icon?(n(),I(h,{key:0,name:e.icon,size:"sm",class:"jf-input-icon","aria-hidden":"true"},null,8,["name"])):j("",!0),z("input",V({ref:"input",class:"jf-input-el",id:t(a)?.controlId,type:e.type,value:e.modelValue??"",disabled:e.disabled,required:t(a)?.required||void 0,"aria-invalid":s.value?"true":void 0,"aria-describedby":t(a)?.describedBy},i.value.control,{onInput:p}),null,16,_)],10,A))}}),K=C(g,[["__scopeId","data-v-6bd4b555"]]);export{K as J}; diff --git a/internal/api/dashboard/static/web/assets/JfSelect-BuGLsn3z.js b/internal/api/dashboard/static/web/assets/JfSelect-BuGLsn3z.js deleted file mode 100644 index 863e832..0000000 --- a/internal/api/dashboard/static/web/assets/JfSelect-BuGLsn3z.js +++ /dev/null @@ -1 +0,0 @@ -import{d as U,W,X as $,i as f,n as X,b as j,Y,H as E,t as H,f as Z,p as S,c as P,v as G,F as Q,q as ee,h as T,P as ae,y as m,K as te,r as I,N as J,R as le,Z as p,l as u,_ as oe}from"./index-4SLuEZVi.js";import{j as se}from"./field-context-CK2hRgAr.js";import{s as ne}from"./control-attrs-CG7deI17.js";const ie=["data-size","data-invalid"],re=["id","disabled","aria-expanded","aria-controls","aria-activedescendant","aria-label","aria-invalid","aria-describedby"],ce=["data-empty"],ue=["aria-label"],de=["id","data-active","aria-selected","onClick","onPointerenter"],ve={class:"jf-select-option-label"},fe=U({inheritAttrs:!1,__name:"JfSelect",props:{modelValue:{default:void 0},items:{default:()=>[]},label:{default:void 0},placeholder:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"md"},invalid:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(i,{emit:K}){const n=i,N=K,F=W(),B=m(()=>ne(F)),b=te(se),a=I(!1),t=I(-1),v=J("trigger"),h=J("menu"),_=I({}),g=`jf-select-listbox-${le()}`,y=e=>`${g}-${e}`,r=m(()=>n.items.findIndex(e=>e.value===n.modelValue)),D=m(()=>r.value>=0?n.items[r.value].label:""),z=m(()=>n.invalid||!!b?.invalid);function w(){n.disabled||!n.items.length||(a.value=!0,t.value=r.value>=0?r.value:0,p(V))}function c(e=!0){a.value&&(a.value=!1,t.value=-1,e&&v.value?.focus())}function V(){const e=v.value,l=h.value;if(!e||!l)return;const s=e.getBoundingClientRect(),o=4,d=window.innerHeight-s.bottom-o,M=s.top-o,q=Math.min(l.scrollHeight,304),x=dd,O=Math.max(120,(x?M:d)-8);_.value={left:`${s.left}px`,width:`${Math.max(s.width,168)}px`,maxHeight:`${O}px`,transformOrigin:x?"bottom left":"top left",...x?{bottom:`${window.innerHeight-s.top+o}px`}:{top:`${s.bottom+o}px`}}}function k(){(t.value>=0?document.getElementById(y(t.value)):null)?.scrollIntoView({block:"nearest"})}function A(e){if(!a.value){w();return}const l=n.items.length-1;t.value=Math.min(l,Math.max(0,(t.value<0?0:t.value)+e)),p(k)}function C(e){const l=n.items[e];l&&(N("update:modelValue",l.value),c())}function L(e){switch(e.key){case"ArrowDown":e.preventDefault(),A(1);break;case"ArrowUp":e.preventDefault(),A(-1);break;case"Home":e.preventDefault(),a.value&&(t.value=0,p(k));break;case"End":e.preventDefault(),a.value&&(t.value=n.items.length-1,p(k));break;case"Enter":case" ":e.preventDefault(),a.value?C(t.value):w();break;case"Escape":a.value&&(e.preventDefault(),c());break;case"Tab":c(!1);break}}function R(e){if(!a.value)return;const l=e.target;!l||v.value?.contains(l)||h.value?.contains(l)||c(!1)}return $(document,"pointerdown",R,!0),$(window,"scroll",()=>{a.value&&V()},{capture:!0}),$(window,"resize",()=>{a.value&&c(!1)}),(e,l)=>(u(),f("div",{class:X(["jf-select",B.value.wrapper.class]),"data-size":i.size,"data-invalid":z.value||void 0},[j("button",Y({ref_key:"trigger",ref:v,type:"button",role:"combobox",class:"jf-select-trigger",id:E(b)?.controlId,disabled:i.disabled,"aria-expanded":a.value?"true":"false","aria-controls":a.value?g:void 0,"aria-activedescendant":a.value&&t.value>=0?y(t.value):void 0,"aria-haspopup":"listbox","aria-label":i.label,"aria-invalid":z.value?"true":void 0,"aria-describedby":E(b)?.describedBy},B.value.control,{onClick:l[0]||(l[0]=s=>a.value?c():w()),onKeydown:L}),[j("span",{class:"jf-select-value","data-empty":D.value?void 0:"true"},H(D.value||i.placeholder||"请选择"),9,ce),Z(S,{name:"chevron-up-down",size:"sm",class:"jf-select-chevron","aria-hidden":"true"})],16,re),(u(),P(ae,{to:"body"},[a.value?(u(),f("div",{key:0,ref_key:"menu",ref:h,id:g,class:"jf-select-menu",role:"listbox","aria-label":i.label,style:G(_.value)},[(u(!0),f(Q,null,ee(i.items,(s,o)=>(u(),f("div",{key:`${String(s.value)}-${o}`,id:y(o),class:"jf-select-option",role:"option","data-active":o===t.value||void 0,"aria-selected":o===r.value?"true":"false",onClick:d=>C(o),onPointerenter:d=>t.value=o},[j("span",ve,H(s.label),1),o===r.value?(u(),P(S,{key:0,name:"check",size:"sm",class:"jf-select-check","aria-hidden":"true"})):T("",!0)],40,de))),128))],12,ue)):T("",!0)]))],10,ie))}}),ge=oe(fe,[["__scopeId","data-v-951956d1"]]);export{ge as J}; diff --git a/internal/api/dashboard/static/web/assets/JfSelect-C3PlYx94.js b/internal/api/dashboard/static/web/assets/JfSelect-C3PlYx94.js new file mode 100644 index 0000000..2c14166 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/JfSelect-C3PlYx94.js @@ -0,0 +1 @@ +import{d as q,U as W,V as I,i as f,n as X,b as $,W as Y,I as E,t as S,f as G,p as H,c as T,v as Q,F as Z,q as ee,h as J,X as ae,y as m,L as te,r as j,O as L,R as le,Y as p,l as u,_ as oe}from"./index-CeO69YUd.js";import{j as se}from"./field-context-Dg4JwEpB.js";import{s as ne}from"./control-attrs-CG7deI17.js";const ie=["data-size","data-invalid"],re=["id","disabled","aria-expanded","aria-controls","aria-activedescendant","aria-label","aria-invalid","aria-describedby"],ce=["data-empty"],ue=["aria-label"],de=["id","data-active","aria-selected","onClick","onPointerenter"],ve={class:"jf-select-option-label"},fe=q({inheritAttrs:!1,__name:"JfSelect",props:{modelValue:{default:void 0},items:{default:()=>[]},label:{default:void 0},placeholder:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"md"},invalid:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(i,{emit:P}){const n=i,F=P,K=W(),B=m(()=>ne(K)),b=te(se),a=j(!1),t=j(-1),v=L("trigger"),h=L("menu"),_=j({}),g=`jf-select-listbox-${le()}`,y=e=>`${g}-${e}`,r=m(()=>n.items.findIndex(e=>e.value===n.modelValue)),D=m(()=>r.value>=0?n.items[r.value].label:""),V=m(()=>n.invalid||!!b?.invalid);function w(){n.disabled||!n.items.length||(a.value=!0,t.value=r.value>=0?r.value:0,p(z))}function c(e=!0){a.value&&(a.value=!1,t.value=-1,e&&v.value?.focus())}function z(){const e=v.value,l=h.value;if(!e||!l)return;const s=e.getBoundingClientRect(),o=4,d=window.innerHeight-s.bottom-o,M=s.top-o,O=Math.min(l.scrollHeight,304),x=dd,U=Math.max(120,(x?M:d)-8);_.value={left:`${s.left}px`,width:`${Math.max(s.width,168)}px`,maxHeight:`${U}px`,transformOrigin:x?"bottom left":"top left",...x?{bottom:`${window.innerHeight-s.top+o}px`}:{top:`${s.bottom+o}px`}}}function k(){(t.value>=0?document.getElementById(y(t.value)):null)?.scrollIntoView({block:"nearest"})}function A(e){if(!a.value){w();return}const l=n.items.length-1;t.value=Math.min(l,Math.max(0,(t.value<0?0:t.value)+e)),p(k)}function C(e){const l=n.items[e];l&&(F("update:modelValue",l.value),c())}function N(e){switch(e.key){case"ArrowDown":e.preventDefault(),A(1);break;case"ArrowUp":e.preventDefault(),A(-1);break;case"Home":e.preventDefault(),a.value&&(t.value=0,p(k));break;case"End":e.preventDefault(),a.value&&(t.value=n.items.length-1,p(k));break;case"Enter":case" ":e.preventDefault(),a.value?C(t.value):w();break;case"Escape":a.value&&(e.preventDefault(),c());break;case"Tab":c(!1);break}}function R(e){if(!a.value)return;const l=e.target;!l||v.value?.contains(l)||h.value?.contains(l)||c(!1)}return I(document,"pointerdown",R,!0),I(window,"scroll",()=>{a.value&&z()},{capture:!0}),I(window,"resize",()=>{a.value&&c(!1)}),(e,l)=>(u(),f("div",{class:X(["jf-select",B.value.wrapper.class]),"data-size":i.size,"data-invalid":V.value||void 0},[$("button",Y({ref_key:"trigger",ref:v,type:"button",role:"combobox",class:"jf-select-trigger",id:E(b)?.controlId,disabled:i.disabled,"aria-expanded":a.value?"true":"false","aria-controls":a.value?g:void 0,"aria-activedescendant":a.value&&t.value>=0?y(t.value):void 0,"aria-haspopup":"listbox","aria-label":i.label,"aria-invalid":V.value?"true":void 0,"aria-describedby":E(b)?.describedBy},B.value.control,{onClick:l[0]||(l[0]=s=>a.value?c():w()),onKeydown:N}),[$("span",{class:"jf-select-value","data-empty":D.value?void 0:"true"},S(D.value||i.placeholder||"请选择"),9,ce),G(H,{name:"chevron-up-down",size:"sm",class:"jf-select-chevron","aria-hidden":"true"})],16,re),(u(),T(ae,{to:"body"},[a.value?(u(),f("div",{key:0,ref_key:"menu",ref:h,id:g,class:"jf-select-menu",role:"listbox","aria-label":i.label,style:Q(_.value)},[(u(!0),f(Z,null,ee(i.items,(s,o)=>(u(),f("div",{key:`${String(s.value)}-${o}`,id:y(o),class:"jf-select-option",role:"option","data-active":o===t.value||void 0,"aria-selected":o===r.value?"true":"false",onClick:d=>C(o),onPointerenter:d=>t.value=o},[$("span",ve,S(s.label),1),o===r.value?(u(),T(H,{key:0,name:"check",size:"sm",class:"jf-select-check","aria-hidden":"true"})):J("",!0)],40,de))),128))],12,ue)):J("",!0)]))],10,ie))}}),ge=oe(fe,[["__scopeId","data-v-951956d1"]]);export{ge as J}; diff --git a/internal/api/dashboard/static/web/assets/JfSkeleton-DtHcp-jn.js b/internal/api/dashboard/static/web/assets/JfSkeleton-jIxmbbW7.js similarity index 91% rename from internal/api/dashboard/static/web/assets/JfSkeleton-DtHcp-jn.js rename to internal/api/dashboard/static/web/assets/JfSkeleton-jIxmbbW7.js index 389dfa5..510bd0c 100644 --- a/internal/api/dashboard/static/web/assets/JfSkeleton-DtHcp-jn.js +++ b/internal/api/dashboard/static/web/assets/JfSkeleton-jIxmbbW7.js @@ -1 +1 @@ -import{d as o,i as a,F as r,q as c,v as i,n as d,y as p,l as s,_ as h}from"./index-4SLuEZVi.js";const f={class:"jf-skeleton-wrap","aria-hidden":"true"},u=o({__name:"JfSkeleton",props:{lines:{default:1},width:{default:void 0},height:{default:void 0},shape:{default:"bar"}},setup(t){const e=t,n=p(()=>({width:e.width??(e.shape==="circle"?"var(--jf-control-md)":"100%"),height:e.height??(e.shape==="bar"?"var(--jf-space-4)":e.shape==="circle"?void 0:"var(--jf-control-md)")}));return(m,_)=>(s(),a("span",f,[(s(!0),a(r,null,c(e.lines,l=>(s(),a("span",{key:l,class:d(["jf-skeleton",`jf-skeleton-${t.shape}`]),style:i(l===e.lines&&e.lines>1?{...n.value,width:"62%"}:n.value)},null,6))),128))]))}}),k=h(u,[["__scopeId","data-v-a2e5d64c"]]);export{k as J}; +import{d as o,i as a,F as r,q as c,v as i,n as d,y as p,l as s,_ as h}from"./index-CeO69YUd.js";const f={class:"jf-skeleton-wrap","aria-hidden":"true"},u=o({__name:"JfSkeleton",props:{lines:{default:1},width:{default:void 0},height:{default:void 0},shape:{default:"bar"}},setup(t){const e=t,n=p(()=>({width:e.width??(e.shape==="circle"?"var(--jf-control-md)":"100%"),height:e.height??(e.shape==="bar"?"var(--jf-space-4)":e.shape==="circle"?void 0:"var(--jf-control-md)")}));return(m,_)=>(s(),a("span",f,[(s(!0),a(r,null,c(e.lines,l=>(s(),a("span",{key:l,class:d(["jf-skeleton",`jf-skeleton-${t.shape}`]),style:i(l===e.lines&&e.lines>1?{...n.value,width:"62%"}:n.value)},null,6))),128))]))}}),k=h(u,[["__scopeId","data-v-a2e5d64c"]]);export{k as J}; diff --git a/internal/api/dashboard/static/web/assets/JfSwitch-Ck4z1ivX.js b/internal/api/dashboard/static/web/assets/JfSwitch-BLecDvC6.js similarity index 77% rename from internal/api/dashboard/static/web/assets/JfSwitch-Ck4z1ivX.js rename to internal/api/dashboard/static/web/assets/JfSwitch-BLecDvC6.js index 02e5f9b..8cd5a17 100644 --- a/internal/api/dashboard/static/web/assets/JfSwitch-Ck4z1ivX.js +++ b/internal/api/dashboard/static/web/assets/JfSwitch-BLecDvC6.js @@ -1 +1 @@ -import{j as c}from"./field-context-CK2hRgAr.js";import{d as n,i as r,H as s,b as u,K as f,y as m,l as p,_ as b}from"./index-4SLuEZVi.js";const h=["data-checked","disabled","aria-checked","id","aria-describedby"],k=n({__name:"JfSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:o}){const l=t,i=o,d=f(c),a=m(()=>!!l.modelValue);return(y,e)=>(p(),r("button",{type:"button",role:"switch",class:"jf-switch","data-checked":a.value||void 0,disabled:t.disabled,"aria-checked":a.value?"true":"false",id:s(d)?.controlId,"aria-describedby":s(d)?.describedBy,onClick:e[0]||(e[0]=B=>i("update:modelValue",!a.value))},[...e[1]||(e[1]=[u("span",{class:"jf-switch-thumb","aria-hidden":"true"},null,-1)])],8,h))}}),j=b(k,[["__scopeId","data-v-3191e82d"]]);export{j as J}; +import{j as c}from"./field-context-Dg4JwEpB.js";import{d as n,i as r,I as s,b as u,L as f,y as m,l as p,_ as b}from"./index-CeO69YUd.js";const h=["data-checked","disabled","aria-checked","id","aria-describedby"],k=n({__name:"JfSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:o}){const l=t,i=o,d=f(c),a=m(()=>!!l.modelValue);return(y,e)=>(p(),r("button",{type:"button",role:"switch",class:"jf-switch","data-checked":a.value||void 0,disabled:t.disabled,"aria-checked":a.value?"true":"false",id:s(d)?.controlId,"aria-describedby":s(d)?.describedBy,onClick:e[0]||(e[0]=B=>i("update:modelValue",!a.value))},[...e[1]||(e[1]=[u("span",{class:"jf-switch-thumb","aria-hidden":"true"},null,-1)])],8,h))}}),j=b(k,[["__scopeId","data-v-3191e82d"]]);export{j as J}; diff --git a/internal/api/dashboard/static/web/assets/JfTable-DL6XTgQI.js b/internal/api/dashboard/static/web/assets/JfTable-fqYuBXzd.js similarity index 63% rename from internal/api/dashboard/static/web/assets/JfTable-DL6XTgQI.js rename to internal/api/dashboard/static/web/assets/JfTable-fqYuBXzd.js index c81f89f..2dc2227 100644 --- a/internal/api/dashboard/static/web/assets/JfTable-DL6XTgQI.js +++ b/internal/api/dashboard/static/web/assets/JfTable-fqYuBXzd.js @@ -1 +1 @@ -import{J as m}from"./JfSkeleton-DtHcp-jn.js";import{d as w,i as t,b as o,F as r,q as d,v as k,H as i,t as h,f as _,M as b,g as x,y as v,l as n,_ as S}from"./index-4SLuEZVi.js";function p(e){return e.align==="end"?"right":e.align==="center"?"center":"left"}function j(e,s,f){if(typeof s=="function")return s(e);const c=s?e[s]:void 0;return c===void 0?f:String(c)}function y(e,s){return e[s]}const B=["aria-busy"],J=["data-sticky"],T={key:0},V={key:1},$={class:"jf-table-empty-row"},A=["colspan"],F={class:"jf-table-empty"},H={key:2},K=["data-nowrap"],N={key:0,class:"jf-table-absent"},E=w({__name:"JfTable",props:{columns:{},rows:{},rowKey:{type:[String,Function],default:void 0},loading:{type:Boolean,default:!1},emptyText:{default:void 0},stickyHeader:{type:Boolean,default:!1}},setup(e){const s=e,f=v(()=>s.rows.length||5),c=v(()=>!s.loading&&!s.rows.length);return(g,q)=>(n(),t("div",{class:"jf-table-wrap","aria-busy":e.loading?"true":void 0},[o("table",{class:"jf-table","data-sticky":e.stickyHeader||void 0},[o("colgroup",null,[(n(!0),t(r,null,d(e.columns,a=>(n(),t("col",{key:a.key,style:k(a.width?{width:a.width}:void 0)},null,4))),128))]),o("thead",null,[o("tr",null,[(n(!0),t(r,null,d(e.columns,a=>(n(),t("th",{scope:"col",style:k({textAlign:i(p)(a)})},[o("span",null,h(a.title),1)],4))),256))])]),e.loading?(n(),t("tbody",T,[(n(!0),t(r,null,d(f.value,a=>(n(),t("tr",{key:`skeleton-${a}`},[(n(!0),t(r,null,d(e.columns,u=>(n(),t("td",{key:u.key},[_(m,{height:"16px"})]))),128))]))),128))])):c.value?(n(),t("tbody",V,[o("tr",$,[o("td",{colspan:e.columns.length},[b(g.$slots,"empty",{},()=>[o("p",F,h(e.emptyText),1)],!0)],8,A)])])):(n(),t("tbody",H,[(n(!0),t(r,null,d(e.rows,(a,u)=>(n(),t("tr",{key:i(j)(a,e.rowKey,u)},[(n(!0),t(r,null,d(e.columns,l=>(n(),t("td",{key:l.key,"data-nowrap":l.nowrap||void 0,style:k({textAlign:i(p)(l)})},[b(g.$slots,`cell-${l.key}`,{row:a,value:i(y)(a,l.key),index:u},()=>[i(y)(a,l.key)===void 0||i(y)(a,l.key)===""?(n(),t("span",N,"—")):(n(),t(r,{key:1},[x(h(i(y)(a,l.key)),1)],64))],!0)],12,K))),128))]))),128))]))],8,J)],8,B))}}),D=S(E,[["__scopeId","data-v-7a03c091"]]);export{D as J}; +import{J as m}from"./JfSkeleton-jIxmbbW7.js";import{d as w,i as t,b as o,F as r,q as d,v as k,I as i,t as h,f as _,N as b,g as x,y as v,l as n,_ as S}from"./index-CeO69YUd.js";function p(e){return e.align==="end"?"right":e.align==="center"?"center":"left"}function j(e,s,f){if(typeof s=="function")return s(e);const c=s?e[s]:void 0;return c===void 0?f:String(c)}function y(e,s){return e[s]}const B=["aria-busy"],J=["data-sticky"],T={key:0},N={key:1},V={class:"jf-table-empty-row"},$=["colspan"],A={class:"jf-table-empty"},F={key:2},K=["data-nowrap"],E={key:0,class:"jf-table-absent"},H=w({__name:"JfTable",props:{columns:{},rows:{},rowKey:{type:[String,Function],default:void 0},loading:{type:Boolean,default:!1},emptyText:{default:void 0},stickyHeader:{type:Boolean,default:!1}},setup(e){const s=e,f=v(()=>s.rows.length||5),c=v(()=>!s.loading&&!s.rows.length);return(g,I)=>(n(),t("div",{class:"jf-table-wrap","aria-busy":e.loading?"true":void 0},[o("table",{class:"jf-table","data-sticky":e.stickyHeader||void 0},[o("colgroup",null,[(n(!0),t(r,null,d(e.columns,a=>(n(),t("col",{key:a.key,style:k(a.width?{width:a.width}:void 0)},null,4))),128))]),o("thead",null,[o("tr",null,[(n(!0),t(r,null,d(e.columns,a=>(n(),t("th",{scope:"col",style:k({textAlign:i(p)(a)})},[o("span",null,h(a.title),1)],4))),256))])]),e.loading?(n(),t("tbody",T,[(n(!0),t(r,null,d(f.value,a=>(n(),t("tr",{key:`skeleton-${a}`},[(n(!0),t(r,null,d(e.columns,u=>(n(),t("td",{key:u.key},[_(m,{height:"16px"})]))),128))]))),128))])):c.value?(n(),t("tbody",N,[o("tr",V,[o("td",{colspan:e.columns.length},[b(g.$slots,"empty",{},()=>[o("p",A,h(e.emptyText),1)],!0)],8,$)])])):(n(),t("tbody",F,[(n(!0),t(r,null,d(e.rows,(a,u)=>(n(),t("tr",{key:i(j)(a,e.rowKey,u)},[(n(!0),t(r,null,d(e.columns,l=>(n(),t("td",{key:l.key,"data-nowrap":l.nowrap||void 0,style:k({textAlign:i(p)(l)})},[b(g.$slots,`cell-${l.key}`,{row:a,value:i(y)(a,l.key),index:u},()=>[i(y)(a,l.key)===void 0||i(y)(a,l.key)===""?(n(),t("span",E,"—")):(n(),t(r,{key:1},[x(h(i(y)(a,l.key)),1)],64))],!0)],12,K))),128))]))),128))]))],8,J)],8,B))}}),C=S(H,[["__scopeId","data-v-7a03c091"]]);export{C as J}; diff --git a/internal/api/dashboard/static/web/assets/Keys-B7jAwsl4.js b/internal/api/dashboard/static/web/assets/Keys-B7jAwsl4.js new file mode 100644 index 0000000..b992e0f --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Keys-B7jAwsl4.js @@ -0,0 +1 @@ +import{d as A,o as L,i as j,b as l,f as n,w as o,J as u,c as K,h as N,P as F,r as s,a as C,g as i,t as v,j as M,D as O,Q as G,G as D,E as P,l as y}from"./index-CeO69YUd.js";import{_ as T,J as Q,e as b,a as H}from"./field-context-Dg4JwEpB.js";import{J as V}from"./JfBadge-DE3HILDW.js";import{J as W}from"./JfDrawer-DV73NuVR.js";import{J as X}from"./JfField-g_CLZQhf.js";import{J as Y}from"./JfInput-DtzjrdfV.js";import{J as Z}from"./JfTable-fqYuBXzd.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-jIxmbbW7.js";const ee={class:"jf-stack"},ae={class:"jf-toolbar"},te={class:"jf-action-group"},oe={class:"flex items-center gap-2"},ne={class:"jf-scroll-x"},le={class:"font-mono font-medium"},se={class:"jf-caption jf-mono text-ink-secondary"},ie={key:0,class:"jf-action-group justify-end"},re={key:1,class:"jf-caption text-ink-secondary"},ue={class:"jf-action-group justify-end"},de={class:"grid gap-4"},ce={class:"rounded-[var(--jf-radius-control)] border border-line bg-tonal p-3"},fe={class:"block font-mono text-sm jf-anywhere select-all"},ve={class:"jf-action-group justify-end"},je=A({__name:"Keys",setup(me){const r=s(!1),h=s([]),d=s(),m=s(!1),g=s(!1),c=s(),_=s(!1),k=s(""),J=s(""),f=s(!1),w=O({name:""});async function p(){r.value=!0,d.value=void 0;try{const t=await C.get("/admin/v1/keys");h.value=t.items}catch(t){d.value=b(t)}finally{r.value=!1}}L(()=>{p()});function z(){c.value=void 0,w.name="",m.value=!0}function $(t,e){k.value=t.key,J.value=e,f.value=!1,_.value=!0}async function x(){c.value=void 0;const t=w.name.trim();if(!t){c.value="请输入密钥名称。";return}if(!/^[a-z0-9][a-z0-9._-]{0,63}$/.test(t)){c.value="名称须以小写字母或数字开头,且只能包含小写字母、数字、点、下划线或连字符(最多 64 个字符)。";return}g.value=!0;try{const e=await C.post("/admin/v1/keys",G(t));m.value=!1,await p(),$(e,`推理密钥已创建 · ${t}`)}catch(e){c.value=b(e)}finally{g.value=!1}}async function B(t){if(await D({title:`轮换推理密钥“${t.name}”?`,description:"旧密钥立即失效,所有使用它的客户端都需要换成新密钥。",confirmLabel:"轮换密钥",danger:!0})){r.value=!0;try{const a=await C.postEmpty(`/admin/v1/keys/${encodeURIComponent(t.name)}/rotate`);await p(),$(a,`推理密钥已轮换 · ${t.name}`)}catch(a){d.value=b(a)}finally{r.value=!1}}}async function I(t){if(await D({title:`撤销推理密钥“${t.name}”?`,description:"使用该密钥的请求会立即被拒绝。撤销后记录保留在列表中,但不能再轮换或恢复。",confirmLabel:"撤销密钥",danger:!0})){r.value=!0;try{await C.delete(`/admin/v1/keys/${encodeURIComponent(t.name)}`),P(`已撤销推理密钥:${t.name}`),await p()}catch(a){d.value=b(a)}finally{r.value=!1}}}async function R(){try{await navigator.clipboard.writeText(k.value),f.value=!0}catch{d.value="无法访问剪贴板,请手动选中文本并复制。"}}function S(){_.value=!1,k.value="",f.value=!1}function U(t){const e=new Date(t);return Number.isNaN(e.getTime())?"—":new Intl.DateTimeFormat("zh-CN",{dateStyle:"medium",timeStyle:"short"}).format(e)}const q=[{key:"name",title:"密钥名称"},{key:"active",title:"状态",nowrap:!0},{key:"created_at",title:"创建时间"},{key:"actions",title:"操作",nowrap:!0}];return(t,e)=>(y(),j("div",ee,[l("section",ae,[e[6]||(e[6]=l("div",null,[l("h1",{class:"jf-page-title"},"推理密钥")],-1)),l("div",te,[n(u,{variant:"secondary",icon:"arrow-path",loading:r.value,onClick:p},{default:o(()=>[...e[4]||(e[4]=[i("刷新",-1)])]),_:1},8,["loading"]),n(u,{icon:"plus",onClick:z},{default:o(()=>[...e[5]||(e[5]=[i("创建推理密钥",-1)])]),_:1})])]),d.value?(y(),K(T,{key:0,error:d.value},null,8,["error"])):N("",!0),n(Q,{flush:""},{header:o(()=>[l("div",oe,[e[7]||(e[7]=l("h2",{class:"jf-section-title"},"已创建的推理密钥",-1)),n(V,{tone:"neutral"},{default:o(()=>[i(v(h.value.length),1)]),_:1})])]),default:o(()=>[l("div",ne,[n(Z,{columns:q,rows:h.value,"row-key":"name",loading:r.value,"empty-text":"尚未创建任何推理密钥"},{"cell-name":o(({row:a})=>[l("span",le,v(a.name),1)]),"cell-active":o(({row:a})=>[n(V,{tone:a.active?"success":"neutral"},{default:o(()=>[i(v(a.active?"有效":"已撤销"),1)]),_:2},1032,["tone"])]),"cell-created_at":o(({row:a})=>[l("span",se,v(U(a.created_at)),1)]),"cell-actions":o(({row:a})=>[a.active?(y(),j("div",ie,[n(u,{size:"sm",variant:"ghost",icon:"arrow-path-rounded-square",onClick:E=>B(a)},{default:o(()=>[...e[8]||(e[8]=[i("轮换",-1)])]),_:1},8,["onClick"]),n(u,{size:"sm",variant:"danger-ghost",icon:"trash",onClick:E=>I(a)},{default:o(()=>[...e[9]||(e[9]=[i("撤销",-1)])]),_:1},8,["onClick"])])):(y(),j("span",re,"无可用操作"))]),_:1},8,["rows","loading"])])]),_:1}),n(W,{open:m.value,"onUpdate:open":e[2]||(e[2]=a=>m.value=a),title:"创建推理密钥"},{footer:o(()=>[l("div",ue,[n(u,{variant:"ghost",disabled:g.value,onClick:e[1]||(e[1]=a=>m.value=!1)},{default:o(()=>[...e[10]||(e[10]=[i("取消",-1)])]),_:1},8,["disabled"]),n(u,{loading:g.value,onClick:x},{default:o(()=>[...e[11]||(e[11]=[i("生成密钥",-1)])]),_:1},8,["loading"])])]),default:o(()=>[l("form",{class:"grid gap-5",onSubmit:M(x,["prevent"])},[n(X,{label:"密钥名称",name:"key-name",required:""},{default:o(()=>[n(Y,{modelValue:w.name,"onUpdate:modelValue":e[0]||(e[0]=a=>w.name=a),placeholder:"例如 web-client、app-production",class:"w-full font-mono",required:"",autofocus:""},null,8,["modelValue"])]),_:1}),c.value?(y(),K(T,{key:0,error:c.value},null,8,["error"])):N("",!0)],32)]),_:1},8,["open"]),n(F,{open:_.value,"onUpdate:open":e[3]||(e[3]=a=>_.value=a),title:J.value,size:"md"},{footer:o(()=>[l("div",ve,[n(u,{variant:f.value?"secondary":"primary",icon:f.value?"check":"clipboard-document",onClick:R},{default:o(()=>[i(v(f.value?"已复制到剪贴板":"复制密钥"),1)]),_:1},8,["variant","icon"]),n(u,{variant:"ghost",onClick:S},{default:o(()=>[...e[12]||(e[12]=[i("关闭",-1)])]),_:1})])]),default:o(()=>[l("div",de,[n(H,{tone:"warning",title:"推理密钥仅展示一次,请立即复制并妥善保存"}),l("div",ce,[l("code",fe,v(k.value),1)])])]),_:1},8,["open","title"])]))}});export{je as default}; diff --git a/internal/api/dashboard/static/web/assets/Keys-BOkoplTM.js b/internal/api/dashboard/static/web/assets/Keys-BOkoplTM.js deleted file mode 100644 index e966e8c..0000000 --- a/internal/api/dashboard/static/web/assets/Keys-BOkoplTM.js +++ /dev/null @@ -1 +0,0 @@ -import{d as R,O as L,c as I,f as s,T as M,w as a,P as Q,Q as T,i as J,b as t,t as y,h as _,J as m,M as K,j as S,R as G,N as H,l as g,_ as W,o as X,r as u,a as $,g as c,D as Y,S as Z}from"./index-4SLuEZVi.js";import{_ as B,J as ee,e as C,a as ae}from"./field-context-CK2hRgAr.js";import{J as D}from"./JfBadge-BNbswCCo.js";import{J as te}from"./JfDrawer-CHIy4Mgq.js";import{J as oe}from"./JfField--tcDfYWs.js";import{J as se}from"./JfInput-CMwI48jv.js";import{J as le}from"./JfTable-DL6XTgQI.js";import"./control-attrs-CG7deI17.js";import"./JfSkeleton-DtHcp-jn.js";const ne=["data-size","role","aria-describedby"],ie={class:"jf-dialog-header"},re={class:"jf-dialog-heading"},de=["id"],ue={class:"jf-dialog-body"},ce={key:0,class:"jf-dialog-footer"},fe=R({__name:"JfDialog",props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:"md"},dismissible:{type:Boolean,default:!0},role:{default:"dialog"},closeLabel:{default:"关闭"}},emits:["update:open"],setup(n,{emit:r}){const k=n,i=r,d=`jf-dialog-${G()}`,b=H("panel");L({open:T(k,"open"),panel:b,dismissible:T(k,"dismissible"),onEscape:()=>i("update:open",!1)});function f(){k.dismissible&&i("update:open",!1)}return(p,v)=>(g(),I(Q,{to:"body"},[s(M,{name:"jf-dialog"},{default:a(()=>[n.open?(g(),J("div",{key:0,class:"jf-dialog-root",onClick:S(f,["self"])},[v[1]||(v[1]=t("div",{class:"jf-dialog-scrim","aria-hidden":"true"},null,-1)),t("div",{ref_key:"panel",ref:b,class:"jf-dialog-panel","data-size":n.size,role:n.role,"aria-modal":"true","aria-labelledby":d,"aria-describedby":n.description?`${d}-description`:void 0},[t("header",ie,[t("div",re,[t("h2",{id:d},y(n.title),1),n.description?(g(),J("p",{key:0,id:`${d}-description`},y(n.description),9,de)):_("",!0)]),n.dismissible?(g(),I(m,{key:0,variant:"ghost",square:"",icon:"x-mark","aria-label":n.closeLabel,onClick:v[0]||(v[0]=x=>i("update:open",!1))},null,8,["aria-label"])):_("",!0)]),t("div",ue,[K(p.$slots,"default",{},void 0,!0)]),p.$slots.footer?(g(),J("footer",ce,[K(p.$slots,"footer",{},void 0,!0)])):_("",!0)],8,ne)])):_("",!0)]),_:3})]))}}),ve=W(fe,[["__scopeId","data-v-93f663fa"]]),me={class:"jf-stack"},pe={class:"jf-toolbar"},ye={class:"jf-action-group"},ge={class:"flex items-center gap-2"},ke={class:"jf-scroll-x"},be={class:"font-mono font-medium"},we={class:"jf-caption jf-mono text-ink-secondary"},_e={class:"jf-action-group justify-end"},he={class:"jf-action-group justify-end"},je={class:"grid gap-4"},$e={class:"rounded-[var(--jf-radius-control)] border border-line bg-tonal p-3"},Ce={class:"block font-mono text-sm jf-anywhere select-all"},Je={class:"jf-action-group justify-end"},Se=R({__name:"Keys",setup(n){const r=u(!1),k=u([]),i=u(),d=u(!1),b=u(!1),f=u(),p=u(!1),v=u(""),x=u(""),w=u(!1),j=Y({name:""});async function h(){r.value=!0,i.value=void 0;try{const o=await $.get("/admin/v1/keys");k.value=o.items}catch(o){i.value=C(o)}finally{r.value=!1}}X(()=>{h()});function V(){f.value=void 0,j.name="",d.value=!0}function z(o,e){v.value=o.key,x.value=e,w.value=!1,p.value=!0}async function N(){f.value=void 0;const o=j.name.trim();if(!o){f.value="请输入凭据名称。";return}if(!/^[a-z0-9][a-z0-9._-]{0,63}$/.test(o)){f.value="名称须以小写字母或数字开头,且只能包含小写字母、数字、点、下划线或连字符(最多 64 个字符)。";return}b.value=!0;try{const e=await $.post("/admin/v1/keys",Z(o));d.value=!1,await h(),z(e,`新建密钥成功 · ${o}`)}catch(e){f.value=C(e)}finally{b.value=!1}}async function q(o){if(window.confirm(`确定要轮换密钥“${o.name}”吗?旧密钥将立即失效,所有使用旧密钥的客户端需同步更新。`)){r.value=!0;try{const e=await $.postEmpty(`/admin/v1/keys/${encodeURIComponent(o.name)}/rotate`);await h(),z(e,`密钥轮换成功 · ${o.name}`)}catch(e){i.value=C(e)}finally{r.value=!1}}}async function A(o){if(window.confirm(`确定要撤销并删除密钥“${o.name}”吗?使用该密钥的推理请求将被立刻拒绝。`)){r.value=!0;try{await $.delete(`/admin/v1/keys/${encodeURIComponent(o.name)}`),await h()}catch(e){i.value=C(e)}finally{r.value=!1}}}async function U(){try{await navigator.clipboard.writeText(v.value),w.value=!0}catch{i.value="无法访问剪贴板,请手动选中文本并复制。"}}function E(){p.value=!1,v.value="",w.value=!1}function O(o){const e=new Date(o);return Number.isNaN(e.getTime())?"—":new Intl.DateTimeFormat("zh-CN",{dateStyle:"medium",timeStyle:"short"}).format(e)}const P=[{key:"name",title:"凭据名称"},{key:"active",title:"状态",nowrap:!0},{key:"created_at",title:"创建时间"},{key:"actions",title:"操作",nowrap:!0}];return(o,e)=>(g(),J("div",me,[t("section",pe,[e[6]||(e[6]=t("div",null,[t("h1",{class:"jf-page-title"},"凭据管理")],-1)),t("div",ye,[s(m,{variant:"secondary",icon:"arrow-path",loading:r.value,onClick:h},{default:a(()=>[...e[4]||(e[4]=[c("刷新",-1)])]),_:1},8,["loading"]),s(m,{icon:"plus",onClick:V},{default:a(()=>[...e[5]||(e[5]=[c("创建 API 密钥",-1)])]),_:1})])]),i.value?(g(),I(B,{key:0,error:i.value},null,8,["error"])):_("",!0),s(ee,{flush:""},{header:a(()=>[t("div",ge,[e[7]||(e[7]=t("h2",{class:"jf-section-title"},"已登记 API 密钥",-1)),s(D,{tone:"neutral"},{default:a(()=>[c(y(k.value.length),1)]),_:1})])]),default:a(()=>[t("div",ke,[s(le,{columns:P,rows:k.value,"row-key":"name",loading:r.value,"empty-text":"尚未创建任何客户端密钥"},{"cell-name":a(({row:l})=>[t("span",be,y(l.name),1)]),"cell-active":a(({row:l})=>[s(D,{tone:l.active?"success":"neutral"},{default:a(()=>[c(y(l.active?"有效":"已失效"),1)]),_:2},1032,["tone"])]),"cell-created_at":a(({row:l})=>[t("span",we,y(O(l.created_at)),1)]),"cell-actions":a(({row:l})=>[t("div",_e,[s(m,{size:"sm",variant:"ghost",icon:"arrow-path-rounded-square",onClick:F=>q(l)},{default:a(()=>[...e[8]||(e[8]=[c("轮换",-1)])]),_:1},8,["onClick"]),s(m,{size:"sm",variant:"danger-ghost",icon:"trash",onClick:F=>A(l)},{default:a(()=>[...e[9]||(e[9]=[c("撤销",-1)])]),_:1},8,["onClick"])])]),_:1},8,["rows","loading"])])]),_:1}),s(te,{open:d.value,"onUpdate:open":e[2]||(e[2]=l=>d.value=l),title:"创建客户端 API 密钥"},{footer:a(()=>[t("div",he,[s(m,{variant:"ghost",disabled:b.value,onClick:e[1]||(e[1]=l=>d.value=!1)},{default:a(()=>[...e[10]||(e[10]=[c("取消",-1)])]),_:1},8,["disabled"]),s(m,{loading:b.value,onClick:N},{default:a(()=>[...e[11]||(e[11]=[c("生成密钥",-1)])]),_:1},8,["loading"])])]),default:a(()=>[t("form",{class:"grid gap-5",onSubmit:S(N,["prevent"])},[s(oe,{label:"凭据名称",name:"key-name",required:""},{default:a(()=>[s(se,{modelValue:j.name,"onUpdate:modelValue":e[0]||(e[0]=l=>j.name=l),placeholder:"例如 web-client、app-production",class:"w-full font-mono",required:"",autofocus:""},null,8,["modelValue"])]),_:1}),f.value?(g(),I(B,{key:0,error:f.value},null,8,["error"])):_("",!0)],32)]),_:1},8,["open"]),s(ve,{open:p.value,"onUpdate:open":e[3]||(e[3]=l=>p.value=l),title:x.value,size:"md"},{footer:a(()=>[t("div",Je,[s(m,{variant:w.value?"secondary":"primary",icon:w.value?"check":"clipboard-document",onClick:U},{default:a(()=>[c(y(w.value?"已复制到剪贴板":"复制密钥"),1)]),_:1},8,["variant","icon"]),s(m,{variant:"ghost",onClick:E},{default:a(()=>[...e[12]||(e[12]=[c("关闭",-1)])]),_:1})])]),default:a(()=>[t("div",je,[s(ae,{tone:"warning",title:"密钥仅展示一次,请立即复制并妥善保存"}),t("div",$e,[t("code",Ce,y(v.value),1)])])]),_:1},8,["open","title"])]))}});export{Se as default}; diff --git a/internal/api/dashboard/static/web/assets/Keys-DVggIPvI.css b/internal/api/dashboard/static/web/assets/Keys-DVggIPvI.css deleted file mode 100644 index 5b8ed71..0000000 --- a/internal/api/dashboard/static/web/assets/Keys-DVggIPvI.css +++ /dev/null @@ -1 +0,0 @@ -.jf-dialog-root[data-v-93f663fa]{position:fixed;inset:0;z-index:var(--jf-z-modal);display:grid;place-items:center;padding:var(--jf-space-4)}.jf-dialog-scrim[data-v-93f663fa]{position:absolute;inset:0;background:rgb(0 0 0 / var(--jf-opacity-overlay))}.jf-dialog-panel[data-v-93f663fa]{position:relative;display:flex;width:100%;max-width:var(--jf-form-max);max-height:calc(100vh - var(--jf-space-8));flex-direction:column;border-radius:var(--jf-radius-dialog);background:var(--jf-surface);box-shadow:var(--jf-shadow-modal);padding:var(--jf-space-6);overflow:hidden}.jf-dialog-panel[data-size=sm][data-v-93f663fa]{max-width:26rem}.jf-dialog-panel[data-size=lg][data-v-93f663fa]{max-width:48rem}.jf-dialog-header[data-v-93f663fa]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--jf-space-3)}.jf-dialog-heading[data-v-93f663fa]{min-width:0}.jf-dialog-heading h2[data-v-93f663fa]{font-size:var(--jf-subsection-size);line-height:var(--jf-subsection-leading);font-weight:var(--jf-emphasis-weight);text-wrap:balance}.jf-dialog-heading p[data-v-93f663fa]{margin-top:var(--jf-space-1);font-size:var(--jf-caption-size);line-height:var(--jf-caption-leading);color:var(--jf-text-secondary);text-wrap:pretty}.jf-dialog-body[data-v-93f663fa]{min-height:0;margin-top:var(--jf-space-4);overflow-y:auto;overscroll-behavior:contain}.jf-dialog-footer[data-v-93f663fa]{margin-top:var(--jf-space-5);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--jf-space-2)}.jf-dialog-enter-active[data-v-93f663fa]{transition:opacity var(--jf-duration-overlay) var(--jf-ease-out)}.jf-dialog-leave-active[data-v-93f663fa]{transition:opacity var(--jf-duration-exit-overlay) var(--jf-ease-in)}.jf-dialog-enter-from[data-v-93f663fa],.jf-dialog-leave-to[data-v-93f663fa]{opacity:0}.jf-dialog-enter-from .jf-dialog-panel[data-v-93f663fa]{transform:scale(.96)}.jf-dialog-enter-active .jf-dialog-panel[data-v-93f663fa],.jf-dialog-leave-active .jf-dialog-panel[data-v-93f663fa]{transition:transform var(--jf-duration-overlay) var(--jf-ease-out),opacity var(--jf-duration-overlay) var(--jf-ease-out)}.jf-dialog-leave-active .jf-dialog-panel[data-v-93f663fa]{transition-duration:var(--jf-duration-exit-overlay);transition-timing-function:var(--jf-ease-in)}.jf-dialog-leave-to .jf-dialog-panel[data-v-93f663fa]{transform:scale(.96)} diff --git a/internal/api/dashboard/static/web/assets/Login-PIWYfqxp.css b/internal/api/dashboard/static/web/assets/Login-C6vbmCHR.css similarity index 50% rename from internal/api/dashboard/static/web/assets/Login-PIWYfqxp.css rename to internal/api/dashboard/static/web/assets/Login-C6vbmCHR.css index e42f76c..81e78b9 100644 --- a/internal/api/dashboard/static/web/assets/Login-PIWYfqxp.css +++ b/internal/api/dashboard/static/web/assets/Login-C6vbmCHR.css @@ -1 +1 @@ -.auth-card[data-v-a6dd4c75]{box-shadow:var(--jf-shadow-floating);border-radius:var(--jf-radius-dialog);padding:var(--jf-space-8)} +.auth-card[data-v-fa021112]{box-shadow:var(--jf-shadow-floating);border-radius:var(--jf-radius-dialog);padding:var(--jf-space-8)} diff --git a/internal/api/dashboard/static/web/assets/Login-D3rCwbUc.js b/internal/api/dashboard/static/web/assets/Login-DghCJTEF.js similarity index 63% rename from internal/api/dashboard/static/web/assets/Login-D3rCwbUc.js rename to internal/api/dashboard/static/web/assets/Login-DghCJTEF.js index fe7aaf3..8749797 100644 --- a/internal/api/dashboard/static/web/assets/Login-D3rCwbUc.js +++ b/internal/api/dashboard/static/web/assets/Login-DghCJTEF.js @@ -1 +1 @@ -import{d as L,o as T,c as w,w as u,a as _,r as o,b as h,t as x,e as U,f as r,g as V,J,h as p,i as S,j as $,u as E,k as M,l as i,A as j,s as q,_ as F}from"./index-4SLuEZVi.js";import{J as I,e as z,_ as W}from"./field-context-CK2hRgAr.js";import{J as y}from"./JfField--tcDfYWs.js";import{J as g}from"./JfInput-CMwI48jv.js";import{J as D}from"./JfSkeleton-DtHcp-jn.js";import"./control-attrs-CG7deI17.js";const G={class:"mb-2 text-center"},H={class:"jf-page-title"},K={key:1,class:"mt-5","aria-busy":"true"},O=L({__name:"Login",setup(P){const B=E(),C=M(),a=o(),l=o(""),f=o(""),d=o(""),v=o(!1),n=o(!1),m=o(!1),b=o(!1),s=o();function N(t){if(typeof t!="string"||!t.startsWith("/")||t.startsWith("//"))return"/";try{const e=new URL(t,window.location.origin);return e.origin!==window.location.origin?"/":`${e.pathname}${e.search}${e.hash}`}catch{return"/"}}async function k(){if(!m.value){m.value=!0,b.value=!1,s.value=void 0;try{const t=await _.get("/admin/v1/setup/status");a.value=t.password_set,v.value=!t.password_set&&t.bootstrap_token_required===!0}catch(t){b.value=!0,s.value=z(t)}finally{m.value=!1}}}async function R(t){await _.post("/admin/v1/session",{password:t});const e=await _.get("/admin/v1/session");q.name=e.name,q.expiresAt=e.expires_at,await B.replace(N(C.query.next))}async function A(){if(s.value=void 0,!l.value){s.value=a.value?"请输入管理员密码。":"请设置管理员密码。";return}if(a.value===!1&&l.value!==f.value){s.value="两次输入的密码不一致。";return}if(a.value===!1&&new TextEncoder().encode(l.value).length<12){s.value="管理员密码至少需要 12 字节。";return}if(a.value===!1&&v.value&&!d.value.trim()){s.value="请输入服务启动日志中的初始化令牌。";return}n.value=!0;const t=l.value;try{if(a.value===!1){const e={password:t};v.value&&(e.bootstrap_token=d.value.trim()),await _.post("/admin/v1/setup/password",e),a.value=!0,v.value=!1,d.value=""}await R(t)}catch(e){s.value=e instanceof j&&e.status===401?"管理员密码不正确。":z(e)}finally{l.value="",f.value="",n.value=!1}}return T(()=>{k()}),(t,e)=>(i(),w(I,{class:"auth-card w-full max-w-[440px]"},{default:u(()=>[h("div",G,[h("h1",H,x(a.value===!1?"设置管理员密码":"登录 Auto Router"),1)]),s.value?(i(),w(W,{key:0,class:"mt-5",error:s.value},U({_:2},[b.value?{name:"actions",fn:u(()=>[r(J,{variant:"secondary",loading:m.value,onClick:k},{default:u(()=>[...e[3]||(e[3]=[V("重试读取状态",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["error"])):p("",!0),a.value===void 0&&!s.value?(i(),S("div",K,[r(D,{height:"48px",shape:"block"})])):p("",!0),a.value!==void 0?(i(),S("form",{key:2,class:"mt-6 grid gap-5",onSubmit:$(A,["prevent"])},[r(y,{label:a.value?"管理员密码":"新管理员密码",name:"admin-password",required:""},{default:u(()=>[r(g,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=c=>l.value=c),type:"password",placeholder:a.value?"输入管理员密码":"创建管理员密码(≥12位)",icon:"lock-closed",size:"lg",disabled:n.value,autocomplete:a.value?"current-password":"new-password",autofocus:""},null,8,["modelValue","placeholder","disabled","autocomplete"])]),_:1},8,["label"]),a.value?p("",!0):(i(),w(y,{key:0,label:"确认密码",name:"confirm-password",required:""},{default:u(()=>[r(g,{modelValue:f.value,"onUpdate:modelValue":e[1]||(e[1]=c=>f.value=c),type:"password",placeholder:"再次输入密码",size:"lg",disabled:n.value,autocomplete:"new-password"},null,8,["modelValue","disabled"])]),_:1})),!a.value&&v.value?(i(),w(y,{key:1,label:"初始化令牌",name:"bootstrap-token",required:""},{default:u(()=>[r(g,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),type:"password",placeholder:"服务启动日志中的 bootstrap_token",size:"lg",disabled:n.value,autocomplete:"off"},null,8,["modelValue","disabled"])]),_:1})):p("",!0),r(J,{type:"submit",block:"",size:"lg",loading:n.value},{default:u(()=>[V(x(a.value?"登录控制台":"设置密码并登录"),1)]),_:1},8,["loading"])],32)):p("",!0)]),_:1}))}}),te=F(O,[["__scopeId","data-v-a6dd4c75"]]);export{te as default}; +import{d as L,o as T,c as w,w as u,a as _,r as o,b as h,t as x,e as U,f as r,g as V,J,h as p,i as S,j as $,u as E,k as M,l as i,A as j,s as q,_ as F}from"./index-CeO69YUd.js";import{J as I,e as z,_ as W}from"./field-context-Dg4JwEpB.js";import{J as y}from"./JfField-g_CLZQhf.js";import{J as g}from"./JfInput-DtzjrdfV.js";import{J as D}from"./JfSkeleton-jIxmbbW7.js";import"./control-attrs-CG7deI17.js";const G={class:"mb-2 text-center"},H={class:"jf-page-title"},K={key:1,class:"mt-5","aria-busy":"true"},O=L({__name:"Login",setup(P){const B=E(),C=M(),a=o(),l=o(""),f=o(""),d=o(""),v=o(!1),n=o(!1),m=o(!1),b=o(!1),s=o();function N(t){if(typeof t!="string"||!t.startsWith("/")||t.startsWith("//"))return"/";try{const e=new URL(t,window.location.origin);return e.origin!==window.location.origin?"/":`${e.pathname}${e.search}${e.hash}`}catch{return"/"}}async function k(){if(!m.value){m.value=!0,b.value=!1,s.value=void 0;try{const t=await _.get("/admin/v1/setup/status");a.value=t.password_set,v.value=!t.password_set&&t.bootstrap_token_required===!0}catch(t){b.value=!0,s.value=z(t)}finally{m.value=!1}}}async function R(t){await _.post("/admin/v1/session",{password:t});const e=await _.get("/admin/v1/session");q.name=e.name,q.expiresAt=e.expires_at,await B.replace(N(C.query.next))}async function A(){if(s.value=void 0,!l.value){s.value=a.value?"请输入管理员密码。":"请设置管理员密码。";return}if(a.value===!1&&l.value!==f.value){s.value="两次输入的密码不一致。";return}if(a.value===!1&&new TextEncoder().encode(l.value).length<12){s.value="管理员密码至少需要 12 字节。";return}if(a.value===!1&&v.value&&!d.value.trim()){s.value="请输入服务启动日志中的初始化令牌。";return}n.value=!0;const t=l.value;try{if(a.value===!1){const e={password:t};v.value&&(e.bootstrap_token=d.value.trim()),await _.post("/admin/v1/setup/password",e),a.value=!0,v.value=!1,d.value=""}await R(t)}catch(e){s.value=e instanceof j&&e.status===401?"管理员密码不正确。":z(e)}finally{l.value="",f.value="",n.value=!1}}return T(()=>{k()}),(t,e)=>(i(),w(I,{class:"auth-card w-full max-w-[440px]"},{default:u(()=>[h("div",G,[h("h1",H,x(a.value===!1?"设置管理员密码":"登录 Auto Router"),1)]),s.value?(i(),w(W,{key:0,class:"mt-5",error:s.value},U({_:2},[b.value?{name:"actions",fn:u(()=>[r(J,{variant:"secondary",loading:m.value,onClick:k},{default:u(()=>[...e[3]||(e[3]=[V("重试读取状态",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["error"])):p("",!0),a.value===void 0&&!s.value?(i(),S("div",K,[r(D,{height:"48px",shape:"block"})])):p("",!0),a.value!==void 0?(i(),S("form",{key:2,class:"mt-6 grid gap-5",onSubmit:$(A,["prevent"])},[r(y,{label:a.value?"管理员密码":"新管理员密码",name:"admin-password",required:""},{default:u(()=>[r(g,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=c=>l.value=c),type:"password",placeholder:a.value?"输入管理员密码":"至少 12 字节(约 12 个英文字符或 4 个汉字)",icon:"lock-closed",size:"lg",disabled:n.value,autocomplete:a.value?"current-password":"new-password",autofocus:""},null,8,["modelValue","placeholder","disabled","autocomplete"])]),_:1},8,["label"]),a.value?p("",!0):(i(),w(y,{key:0,label:"确认密码",name:"confirm-password",required:""},{default:u(()=>[r(g,{modelValue:f.value,"onUpdate:modelValue":e[1]||(e[1]=c=>f.value=c),type:"password",placeholder:"再次输入密码",size:"lg",disabled:n.value,autocomplete:"new-password"},null,8,["modelValue","disabled"])]),_:1})),!a.value&&v.value?(i(),w(y,{key:1,label:"初始化令牌",name:"bootstrap-token",required:""},{default:u(()=>[r(g,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),type:"password",placeholder:"服务启动日志中的 bootstrap_token",size:"lg",disabled:n.value,autocomplete:"off"},null,8,["modelValue","disabled"])]),_:1})):p("",!0),r(J,{type:"submit",block:"",size:"lg",loading:n.value},{default:u(()=>[V(x(a.value?"登录控制台":"设置密码并登录"),1)]),_:1},8,["loading"])],32)):p("",!0)]),_:1}))}}),te=F(O,[["__scopeId","data-v-fa021112"]]);export{te as default}; diff --git a/internal/api/dashboard/static/web/assets/ModelGroups-2wsFGA4a.css b/internal/api/dashboard/static/web/assets/ModelGroups-2wsFGA4a.css deleted file mode 100644 index e9199ec..0000000 --- a/internal/api/dashboard/static/web/assets/ModelGroups-2wsFGA4a.css +++ /dev/null @@ -1 +0,0 @@ -.pair-picker[data-v-10fed441] .jf-checkbox-text{overflow-wrap:anywhere} diff --git a/internal/api/dashboard/static/web/assets/ModelGroups-B0J_Yvfv.css b/internal/api/dashboard/static/web/assets/ModelGroups-B0J_Yvfv.css new file mode 100644 index 0000000..ccf765f --- /dev/null +++ b/internal/api/dashboard/static/web/assets/ModelGroups-B0J_Yvfv.css @@ -0,0 +1 @@ +.pair-picker[data-v-87a7f52d] .jf-checkbox-text{overflow-wrap:anywhere} diff --git a/internal/api/dashboard/static/web/assets/ModelGroups-B2KJ_No2.js b/internal/api/dashboard/static/web/assets/ModelGroups-B2KJ_No2.js new file mode 100644 index 0000000..16a8863 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/ModelGroups-B2KJ_No2.js @@ -0,0 +1 @@ +import{d as O,o as X,i,b as r,f as m,w as v,J as g,c as j,h as b,F as $,q as w,r as k,a as z,H as S,g as C,I as W,K as Y,t as p,E as Z,l as t,_ as ee}from"./index-CeO69YUd.js";import{a as ae}from"./autosave-DjhT3uag.js";import{_ as oe,e as A,J as le}from"./field-context-Dg4JwEpB.js";import{J as D}from"./JfBadge-DE3HILDW.js";import{J as se}from"./JfCheckbox-BZQr-Pz_.js";import{J as te}from"./JfEmpty-CplaOUNi.js";import{J as ne}from"./JfSkeleton-jIxmbbW7.js";const re={class:"jf-stack"},ue={class:"jf-toolbar"},ie={class:"jf-action-group"},ce={class:"grid gap-6 xl:grid-cols-3"},de={key:0,class:"grid gap-2","aria-busy":"true"},me={key:1,class:"grid gap-4"},ve={class:"pair-picker max-h-64 overflow-y-auto rounded-[var(--jf-radius-control)] bg-tonal p-2.5"},pe={key:0,class:"space-y-0.5"},fe={key:1,class:"jf-caption text-ink-secondary py-2 text-center"},ke={key:0,class:"jf-caption mt-1.5 text-ink-secondary"},ye={key:0,class:"jf-caption mb-2 text-warning"},_e={key:1,class:"grid gap-1.5"},ge={class:"jf-caption jf-tabular jf-nowrap w-5 shrink-0 text-ink-secondary font-medium"},be={class:"jf-caption jf-truncate flex-1"},he={class:"text-ink-secondary"},xe={class:"font-mono font-medium"},je={class:"flex items-center gap-1 shrink-0"},$e={key:2,class:"py-2 text-center text-sm text-ink-secondary"},V=8,we=O({__name:"ModelGroups",setup(Ce){const F=[{key:"simple",label:"简单任务组"},{key:"medium",label:"中等任务组"},{key:"complex",label:"复杂任务组"}],n=k({simple:[],medium:[],complex:[]}),y=k([]),h=k({}),_=k(!1),J=k(!1),f=k();function d(a){return`${a.provider}\0${a.model}`}function x(a){return{simple:a.simple.map(e=>({...e})),medium:a.medium.map(e=>({...e})),complex:a.complex.map(e=>({...e}))}}let M={simple:[],medium:[],complex:[]},q=0;const K=ae(async({id:a,snapshot:e})=>{J.value=!0;try{await z.put("/admin/v1/groups",e),M=x(e),f.value=void 0,Z()}catch(o){f.value=A(o),a===q&&(n.value=x(M))}finally{J.value=!1}},(a,e)=>e);function B(){K.enqueue({id:++q,snapshot:x(n.value)})}function L(a,e,o){const l=new Map(e.map(c=>[c.key,c.enabled])),s=new Map(o.map(c=>[c.id,c.enabled])),u={};for(const c of a){const P=d(c);c.enabled?l.get(c.provider)!==!0?u[P]="提供商已停用":s.get(c.model)!==!0&&(u[P]="模型已停用"):u[P]="绑定已停用"}return u}async function N(){_.value=!0,f.value=void 0;try{const[a,e,o,l]=await Promise.all([z.get("/admin/v1/groups"),S("/admin/v1/pairs"),S("/admin/v1/providers"),S("/admin/v1/models")]);n.value={simple:[...a.simple??[]],medium:[...a.medium??[]],complex:[...a.complex??[]]},M=x(n.value),y.value=e.sort((s,u)=>s.provider.localeCompare(u.provider)||s.model.localeCompare(u.model)),h.value=L(e,o,l)}catch(a){f.value=A(a)}finally{_.value=!1}}function G(a){const e=d(a);return y.value.some(o=>d(o)===e)?h.value[e]??"":"绑定不存在"}function I(a,e){return n.value[a].some(o=>o.provider===e.provider&&o.model===e.model)}function E(a){return n.value[a].length>=V}function R(a,e){return I(a,e)?!1:!!h.value[d(e)]||E(a)}function Q(a){const e=h.value[d(a)];return e?`${a.provider} · ${a.model}(${e})`:`${a.provider} · ${a.model}`}function T(a,e,o){const l=[...n.value[a]],s=d(e),u=l.findIndex(c=>d(c)===s);if(o&&u<0){if(R(a,e))return;l.push({provider:e.provider,model:e.model})}!o&&u>=0&&l.splice(u,1),n.value[a]=l,B()}function H(a,e){const o=[...n.value[a]];o.splice(e,1),n.value[a]=o,B()}function U(a,e,o){const l=[...n.value[a]],s=e+o;s<0||s>=l.length||([l[e],l[s]]=[l[s],l[e]],n.value[a]=l,B())}return X(()=>{N()}),(a,e)=>(t(),i("div",re,[r("section",ue,[e[2]||(e[2]=r("div",null,[r("h1",{class:"jf-page-title"},"模型分组")],-1)),r("div",ie,[m(g,{variant:"secondary",icon:"arrow-path",loading:_.value||J.value,onClick:N},{default:v(()=>[...e[1]||(e[1]=[C("刷新",-1)])]),_:1},8,["loading"])])]),f.value?(t(),j(oe,{key:0,error:f.value},null,8,["error"])):b("",!0),!y.value.length&&!_.value?(t(),j(te,{key:1,variant:"first-use",title:"尚无可用模型路由绑定"},{action:v(()=>[m(g,{variant:"secondary",onClick:e[0]||(e[0]=o=>W(Y).push("/providers"))},{default:v(()=>[...e[3]||(e[3]=[C("前往配置提供商",-1)])]),_:1})]),_:1})):b("",!0),r("section",ce,[(t(),i($,null,w(F,o=>m(le,{key:o.key,density:"compact",title:o.label},{actions:v(()=>[m(D,{tone:E(o.key)?"warning":"neutral"},{default:v(()=>[C(p(n.value[o.key].length)+" / "+p(V)+" 个候选",1)]),_:2},1032,["tone"])]),default:v(()=>[_.value?(t(),i("div",de,[(t(),i($,null,w(4,l=>m(ne,{key:l,height:"36px",shape:"block"})),64))])):(t(),i("div",me,[r("div",null,[e[4]||(e[4]=r("h4",{class:"jf-module-title mb-2"},"选择候选模型",-1)),r("div",ve,[y.value.length?(t(),i("div",pe,[(t(!0),i($,null,w(y.value,l=>(t(),j(se,{key:d(l),"model-value":I(o.key,l),label:Q(l),disabled:R(o.key,l),class:"rounded-[var(--jf-radius-control)] px-2 py-1 transition-colors hover:bg-tonal-hover","onUpdate:modelValue":s=>T(o.key,l,s)},null,8,["model-value","label","disabled","onUpdate:modelValue"]))),128))])):(t(),i("p",fe,"暂无可用模型"))]),E(o.key)?(t(),i("p",ke,"每组最多 "+p(V)+" 个候选,移除后才能继续添加。")):b("",!0)]),r("div",null,[e[5]||(e[5]=r("h4",{class:"jf-module-title mb-2"},"组内候选优先次序",-1)),n.value[o.key].some(G)?(t(),i("p",ye," 组内有不可用的成员,服务端会拒绝保存整个分组;请先移除标记的成员。 ")):b("",!0),n.value[o.key].length?(t(),i("ol",_e,[(t(!0),i($,null,w(n.value[o.key],(l,s)=>(t(),i("li",{key:d(l),class:"flex items-center gap-2 rounded-[var(--jf-radius-control)] bg-tonal px-3 py-2 transition-colors hover:bg-tonal-hover"},[r("span",ge,p(s+1),1),r("span",be,[r("span",he,p(l.provider)+" · ",1),r("span",xe,p(l.model),1)]),G(l)?(t(),j(D,{key:0,tone:"warning",class:"jf-nowrap shrink-0"},{default:v(()=>[C(p(G(l)),1)]),_:2},1024)):b("",!0),r("div",je,[m(g,{variant:"ghost",square:"",size:"sm",icon:"chevron-up","aria-label":`上移 ${l.provider} ${l.model}`,disabled:s===0,onClick:u=>U(o.key,s,-1)},null,8,["aria-label","disabled","onClick"]),m(g,{variant:"ghost",square:"",size:"sm",icon:"chevron-down","aria-label":`下移 ${l.provider} ${l.model}`,disabled:s===n.value[o.key].length-1,onClick:u=>U(o.key,s,1)},null,8,["aria-label","disabled","onClick"]),m(g,{variant:"danger-ghost",square:"",size:"sm",icon:"x-mark","aria-label":`移除 ${l.provider} ${l.model}`,onClick:u=>H(o.key,s)},null,8,["aria-label","onClick"])])]))),128))])):(t(),i("p",$e,"暂无候选模型"))])]))]),_:2},1032,["title"])),64))])]))}}),Ve=ee(we,[["__scopeId","data-v-87a7f52d"]]);export{Ve as default}; diff --git a/internal/api/dashboard/static/web/assets/ModelGroups-D0BmGteO.js b/internal/api/dashboard/static/web/assets/ModelGroups-D0BmGteO.js deleted file mode 100644 index 5d2db31..0000000 --- a/internal/api/dashboard/static/web/assets/ModelGroups-D0BmGteO.js +++ /dev/null @@ -1 +0,0 @@ -import{d as E,o as I,i,b as l,f as u,w as d,J as k,c as x,h as w,F as g,q as _,r as p,a as B,G as M,g as j,H as z,I as A,t as h,E as D,l as t,_ as F}from"./index-4SLuEZVi.js";import{a as Q}from"./autosave-DjhT3uag.js";import{_ as T,e as V,J as U}from"./field-context-CK2hRgAr.js";import{J as H}from"./JfBadge-BNbswCCo.js";import{J as K}from"./JfCheckbox-DpJDzTQd.js";import{J as L}from"./JfEmpty-BgJ1JF6C.js";import{J as O}from"./JfSkeleton-DtHcp-jn.js";const R={class:"jf-stack"},W={class:"jf-toolbar"},X={class:"jf-action-group"},Y={class:"grid gap-6 xl:grid-cols-3"},Z={key:0,class:"grid gap-2","aria-busy":"true"},ee={key:1,class:"grid gap-4"},oe={class:"pair-picker max-h-64 overflow-y-auto rounded-[var(--jf-radius-control)] bg-tonal p-2.5"},ae={key:0,class:"space-y-0.5"},se={key:1,class:"jf-caption text-ink-secondary py-2 text-center"},le={key:0,class:"grid gap-1.5"},te={class:"jf-caption jf-tabular jf-nowrap w-5 shrink-0 text-ink-secondary font-medium"},re={class:"jf-caption jf-truncate flex-1"},ne={class:"text-ink-secondary"},ie={class:"font-mono font-medium"},ue={class:"flex items-center gap-1 shrink-0"},ce={key:1,class:"py-2 text-center text-sm text-ink-secondary"},de=E({__name:"ModelGroups",setup(me){const G=[{key:"simple",label:"简单任务组"},{key:"medium",label:"中等任务组"},{key:"complex",label:"复杂任务组"}],n=p({simple:[],medium:[],complex:[]}),f=p([]),m=p(!1),b=p(!1),c=p();function y(a){return`${a.provider}\0${a.model}`}const N=Q(async a=>{b.value=!0;try{await B.put("/admin/v1/groups",a),c.value=void 0,D()}catch(o){c.value=V(o)}finally{b.value=!1}},(a,o)=>o);function C(){N.enqueue({simple:n.value.simple.map(a=>({...a})),medium:n.value.medium.map(a=>({...a})),complex:n.value.complex.map(a=>({...a}))})}async function J(){m.value=!0,c.value=void 0;try{const[a,o]=await Promise.all([B.get("/admin/v1/groups"),M("/admin/v1/pairs")]);n.value={simple:[...a.simple??[]],medium:[...a.medium??[]],complex:[...a.complex??[]]},f.value=o.sort((s,e)=>s.provider.localeCompare(e.provider)||s.model.localeCompare(e.model))}catch(a){c.value=V(a)}finally{m.value=!1}}function P(a,o){return n.value[a].some(s=>s.provider===o.provider&&s.model===o.model)}function S(a,o,s){const e=[...n.value[a]],r=y(o),v=e.findIndex(q=>y(q)===r);s&&v<0&&e.push({provider:o.provider,model:o.model}),!s&&v>=0&&e.splice(v,1),n.value[a]=e,C()}function $(a,o,s){const e=[...n.value[a]],r=o+s;r<0||r>=e.length||([e[o],e[r]]=[e[r],e[o]],n.value[a]=e,C())}return I(()=>{J()}),(a,o)=>(t(),i("div",R,[l("section",W,[o[2]||(o[2]=l("div",null,[l("h1",{class:"jf-page-title"},"模型分组")],-1)),l("div",X,[u(k,{variant:"secondary",icon:"arrow-path",loading:m.value||b.value,onClick:J},{default:d(()=>[...o[1]||(o[1]=[j("刷新",-1)])]),_:1},8,["loading"])])]),c.value?(t(),x(T,{key:0,error:c.value},null,8,["error"])):w("",!0),!f.value.length&&!m.value?(t(),x(L,{key:1,variant:"first-use",title:"尚无可用模型路由绑定"},{action:d(()=>[u(k,{variant:"secondary",onClick:o[0]||(o[0]=s=>z(A).push("/providers"))},{default:d(()=>[...o[3]||(o[3]=[j("前往配置提供商",-1)])]),_:1})]),_:1})):w("",!0),l("section",Y,[(t(),i(g,null,_(G,s=>u(U,{key:s.key,density:"compact",title:s.label},{actions:d(()=>[u(H,{tone:"neutral"},{default:d(()=>[j(h(n.value[s.key].length)+" 个候选",1)]),_:2},1024)]),default:d(()=>[m.value?(t(),i("div",Z,[(t(),i(g,null,_(4,e=>u(O,{key:e,height:"36px",shape:"block"})),64))])):(t(),i("div",ee,[l("div",null,[o[4]||(o[4]=l("h4",{class:"jf-module-title mb-2"},"选择候选模型",-1)),l("div",oe,[f.value.length?(t(),i("div",ae,[(t(!0),i(g,null,_(f.value,e=>(t(),x(K,{key:y(e),"model-value":P(s.key,e),label:`${e.provider} · ${e.model}`,class:"rounded-[var(--jf-radius-control)] px-2 py-1 transition-colors hover:bg-tonal-hover","onUpdate:modelValue":r=>S(s.key,e,r)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])):(t(),i("p",se,"暂无可用模型"))])]),l("div",null,[o[5]||(o[5]=l("h4",{class:"jf-module-title mb-2"},"组内候选优先次序",-1)),n.value[s.key].length?(t(),i("ol",le,[(t(!0),i(g,null,_(n.value[s.key],(e,r)=>(t(),i("li",{key:y(e),class:"flex items-center gap-2 rounded-[var(--jf-radius-control)] bg-tonal px-3 py-2 transition-colors hover:bg-tonal-hover"},[l("span",te,h(r+1),1),l("span",re,[l("span",ne,h(e.provider)+" · ",1),l("span",ie,h(e.model),1)]),l("div",ue,[u(k,{variant:"ghost",square:"",size:"sm",icon:"chevron-up","aria-label":`上移 ${e.provider} ${e.model}`,disabled:r===0,onClick:v=>$(s.key,r,-1)},null,8,["aria-label","disabled","onClick"]),u(k,{variant:"ghost",square:"",size:"sm",icon:"chevron-down","aria-label":`下移 ${e.provider} ${e.model}`,disabled:r===n.value[s.key].length-1,onClick:v=>$(s.key,r,1)},null,8,["aria-label","disabled","onClick"])])]))),128))])):(t(),i("p",ce,"暂无候选模型"))])]))]),_:2},1032,["title"])),64))])]))}}),he=F(de,[["__scopeId","data-v-10fed441"]]);export{he as default}; diff --git a/internal/api/dashboard/static/web/assets/Models-Bn89W1eO.js b/internal/api/dashboard/static/web/assets/Models-Bn89W1eO.js new file mode 100644 index 0000000..9b740b4 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Models-Bn89W1eO.js @@ -0,0 +1 @@ +import{d as Ee,z as _e,o as Oe,i as C,b as s,f as a,w as l,J as V,c as L,h as x,r,H as ye,a as N,g as p,t as u,n as ge,F as Ae,j as be,D as we,y as xe,E as Y,G as Qe,l as c}from"./index-CeO69YUd.js";import{c as ke,a as We}from"./autosave-DjhT3uag.js";import{_ as Z,J as ie,e as k,a as Ge}from"./field-context-Dg4JwEpB.js";import{J as ee}from"./JfBadge-DE3HILDW.js";import{J as je}from"./JfDrawer-DV73NuVR.js";import{J as v}from"./JfField-g_CLZQhf.js";import{J as j}from"./JfInput-DtzjrdfV.js";import{J as He}from"./JfSkeleton-jIxmbbW7.js";import{J as I}from"./JfSwitch-BLecDvC6.js";import{J as $e}from"./JfTable-fqYuBXzd.js";import"./control-attrs-CG7deI17.js";const Ke={class:"jf-stack"},Xe={class:"jf-toolbar"},Ye={class:"jf-action-group"},Ze={class:"grid gap-3"},eo={key:2,class:"grid gap-2","aria-busy":"true"},oo={key:3,class:"grid jf-body gap-2 sm:grid-cols-2"},to={class:"jf-caption"},lo=["datetime"],ao={class:"jf-caption"},no={class:"jf-mono jf-anywhere"},so={class:"jf-caption"},io={class:"jf-mono font-medium"},uo={class:"jf-mono font-medium"},ro={key:0,class:"jf-caption text-warning sm:col-span-2"},mo={key:4,class:"jf-caption text-ink-secondary"},po={class:"jf-scroll-x"},co={class:"font-mono font-medium"},fo={class:"font-medium"},vo={class:"flex items-center gap-2"},_o={class:"jf-mono jf-tabular"},yo={class:"jf-scroll-x"},go={class:"font-mono font-medium"},bo={class:"font-mono"},wo=["title"],xo={class:"font-mono jf-tabular"},ko={key:0,class:"mt-0.5 block jf-caption font-mono jf-tabular text-ink-secondary"},jo={class:"jf-caption text-ink-secondary"},$o={class:"flex items-center gap-2"},ho={class:"jf-action-group"},So={class:"jf-action-group justify-end"},Co={class:"grid gap-3 sm:grid-cols-2"},Vo={class:"grid items-start gap-3 sm:grid-cols-2"},Uo={class:"rounded-[var(--jf-radius-control)] border border-line p-4"},Jo={class:"grid gap-3 sm:grid-cols-2"},To={class:"jf-action-group justify-end"},Oo=Ee({__name:"Models",setup(Po){const U=r(!1),de=r(!1),w=r(),E=r(""),O=r([]),A=r([]),y=r(),Q=r(!1),oe=r(!1),$=r(),W=r(""),R=r(!1),B=r(!1),h=r(),_=r(),te=r({}),le=r({}),q=r(""),f=we({id:"",display_name:""}),i=we({provider:"",model:"",upstream_model_id:"",context_window:32768,max_output:"",supports_tools:!1,supports_vision:!1,supports_audio_input:!1,supports_reasoning:!1,enabled:!0}),G=new Set,J=new Set,z=new Map,T=new Map,P=new Set,g=new Set,S=new Map,M=new Map,D=new Set,ue=We(Ve,Ce),re=xe(()=>{const o=E.value.trim().toLowerCase();return o?O.value.filter(e=>`${e.id} ${e.display_name}`.toLowerCase().includes(o)):O.value}),me=xe(()=>{const o=E.value.trim().toLowerCase();return o?A.value.filter(e=>`${e.provider} ${e.model} ${e.upstream_model_id}`.toLowerCase().includes(o)):A.value}),he=[{key:"id",title:"模型标识",nowrap:!0},{key:"display_name",title:"显示名称"},{key:"enabled",title:"状态",nowrap:!0},{key:"pair_count",title:"绑定数",align:"end"},{key:"actions",title:"操作",nowrap:!0}],Se=[{key:"provider",title:"提供商",nowrap:!0},{key:"model",title:"逻辑模型",nowrap:!0},{key:"upstream_model_id",title:"上游模型 ID"},{key:"context_window",title:"上下文窗口",align:"end"},{key:"capabilities",title:"已声明能力"},{key:"enabled",title:"状态",nowrap:!0},{key:"source",title:"元数据来源"},{key:"actions",title:"操作",nowrap:!0}];function Ce(o,e){const t=[...o];for(const d of e){const m=t.findIndex(b=>b.key===d.key);if(m<0){t.push(d);continue}const n=t[m];t[m]={...n,...d,body:{...n.body,...d.body},fields:new Map([...n.fields??[],...d.fields??[]])}}return t}async function Ve(o){for(const e of o){de.value=!0;try{if(await N.patch(e.endpoint,e.body),e.endpoint.startsWith("/admin/v1/models/")){const t=e.key.slice(6),d=O.value.find(m=>m.id===t);if(d&&typeof e.body.display_name=="string"&&(d.display_name=e.body.display_name),f.id===t){for(const[m,n]of e.fields??[])z.get(m)===n&&G.delete(m);h.value=void 0}}else{const[t,d]=JSON.parse(e.key.slice(5)),m=A.value.find(n=>n.provider===t&&n.model===d);if(m){typeof e.body.upstream_model_id=="string"&&(m.upstream_model_id=e.body.upstream_model_id),typeof e.body.context_window=="number"&&(m.context_window=e.body.context_window),(e.body.max_output===null||typeof e.body.max_output=="number")&&(m.max_output=e.body.max_output);for(const n of["enabled","supports_tools","supports_vision","supports_audio_input","supports_reasoning"])typeof e.body[n]=="boolean"&&(m[n]=e.body[n])}if(i.provider===t&&i.model===d){for(const[n,b]of e.fields??[])S.get(n)===b&&P.delete(n);_.value=void 0}}Y()}catch(t){e.errorTarget==="model"&&f.id===e.key.slice(6)?h.value=k(t):e.errorTarget==="pair"&&e.key===`pair:${JSON.stringify([i.provider,i.model])}`&&(_.value=k(t))}finally{de.value=!1}}}async function H(){U.value=!0,w.value=void 0;try{const[o,e]=await Promise.all([ye("/admin/v1/models"),ye("/admin/v1/pairs")]);O.value=o,A.value=e}catch(o){w.value=k(o)}finally{U.value=!1}}async function Ue(o){const e=o.enabled,t=!e;o.enabled=t,te.value[o.id]=!0;try{await N.patch(`/admin/v1/models/${encodeURIComponent(o.id)}`,{enabled:t}),Y()}catch(d){o.enabled=e,w.value=k(d)}finally{delete te.value[o.id]}}async function Je(o){const e=F(o),t=o.enabled,d=!t;o.enabled=d,le.value[e]=!0;try{await N.patch(`/admin/v1/pairs/${encodeURIComponent(o.provider)}/${encodeURIComponent(o.model)}`,{enabled:d}),Y()}catch(m){o.enabled=t,w.value=k(m)}finally{delete le.value[e]}}async function Te(o){const e=F(o);if(!(q.value||!await Qe({title:`解除提供商“${o.provider}”与模型“${o.model}”的绑定?`,description:"该绑定会从所有模型分组中移除,后续注册表同步也不会自动恢复。",confirmLabel:"解除绑定",danger:!0}))){q.value=e,w.value=void 0;try{await N.delete(`/admin/v1/pairs/${encodeURIComponent(o.provider)}/${encodeURIComponent(o.model)}`),Y(`已解除绑定:${o.provider} · ${o.model}`),await H()}catch(d){w.value=k(d)}finally{q.value=""}}}function Pe(){for(const o of T.values())o.cancel();T.clear(),G.clear(),J.clear(),z.clear()}function pe(o){let e=T.get(o);return e||(e=ke(()=>{J.delete(o),ce()}),T.set(o,e)),e}function Me(o,e){f.display_name=e,h.value=void 0,G.add(o),J.add(o),z.set(o,(z.get(o)??0)+1),pe(o).schedule()}function ce(){const o=[...G].filter(t=>!J.has(t));if(!o.length)return;if(o.includes("display_name")&&!f.display_name.trim()){h.value="模型显示名称不能为空。";return}const e={};o.includes("display_name")&&(e.display_name=f.display_name.trim()),ue.enqueue([{key:`model:${f.id}`,endpoint:`/admin/v1/models/${encodeURIComponent(f.id)}`,body:e,fields:new Map(o.map(t=>[t,z.get(t)??0])),errorTarget:"model"}])}function Ne(o){J.has(o)&&(J.delete(o),pe(o).flush())}function Ie(o){Pe(),h.value=void 0,Object.assign(f,{id:o.id,display_name:o.display_name}),R.value=!0}function Re(){for(const o of T.values())o.flush();ce()}function Be(){for(const o of M.values())o.cancel();M.clear(),P.clear(),g.clear(),S.clear(),D.clear()}function K(o){let e=M.get(o);return e||(e=ke(()=>{o==="capacity"?(D.clear(),g.delete("context_window"),g.delete("max_output")):g.delete(o),ne()}),M.set(o,e)),e}function ae(o,e){o==="upstream_model_id"?i.upstream_model_id=e:o==="context_window"?i.context_window=e:i.max_output=e,_.value=void 0,P.add(o),S.set(o,(S.get(o)??0)+1),o==="context_window"||o==="max_output"?(D.add(o),g.add(o),K("capacity").schedule()):(g.add(o),K(o).schedule())}function X(o,e){i[o]=e,_.value=void 0,P.add(o),S.set(o,(S.get(o)??0)+1),ne(new Set([o]))}function ne(o){let e=[...P].filter(n=>!g.has(n)&&(!o||o.has(n)));const t=["context_window","max_output"];if(D.size&&e.some(n=>t.includes(n))&&(e=e.filter(n=>!t.includes(n))),!e.length)return;if(e.includes("upstream_model_id")&&!i.upstream_model_id.trim()){_.value="上游模型 ID 不能为空。";return}const d={};for(const n of e)n==="upstream_model_id"?d.upstream_model_id=i.upstream_model_id.trim():t.includes(n)||(d[n]=i[n]);if(e.some(n=>t.includes(n))){const n=Number(i.context_window),b=i.max_output.trim()===""?null:Number(i.max_output);if(!Number.isInteger(n)||n<=0){_.value="上下文窗口必须是正整数。";return}if(b!==null&&(!Number.isInteger(b)||b<=0||b>n)){_.value="最大输出必须是正整数,且不能大于上下文窗口。";return}d.context_window=n,d.max_output=b,e=[...new Set([...e,...P].filter(ve=>t.includes(ve)||e.includes(ve)))]}ue.enqueue([{key:`pair:${JSON.stringify([i.provider,i.model])}`,endpoint:`/admin/v1/pairs/${encodeURIComponent(i.provider)}/${encodeURIComponent(i.model)}`,body:d,fields:new Map(e.map(n=>[n,S.get(n)??0])),errorTarget:"pair"}])}function se(o){if(o==="context_window"||o==="max_output"){if(!D.size)return;K("capacity").flush()}else{if(!g.has(o))return;g.delete(o),K(o).flush()}}function qe(o){Be(),_.value=void 0,Object.assign(i,{provider:o.provider,model:o.model,upstream_model_id:o.upstream_model_id,context_window:o.context_window,max_output:o.max_output===null?"":String(o.max_output),supports_tools:o.supports_tools,supports_vision:o.supports_vision,supports_audio_input:o.supports_audio_input,supports_reasoning:o.supports_reasoning,enabled:o.enabled}),B.value=!0}function ze(){for(const o of M.values())o.flush();ne()}_e(R,o=>{if(!o)for(const e of T.values())e.flush()}),_e(B,o=>{if(!o)for(const e of M.values())e.flush()});async function fe(){Q.value=!0,$.value=void 0;try{y.value=await N.get("/admin/v1/sync-state")}catch(o){$.value=k(o)}finally{Q.value=!1}}async function De(){oe.value=!0,$.value=void 0,W.value="";try{const o=await N.postEmpty("/admin/v1/sync");if(!o.synchronized){$.value="同步未产生成功结果;注册表未做更新。";return}W.value=`同步成功:导入 ${o.imported_pairs} 个模型绑定,跳过 ${o.skipped_pairs} 个。`,await Promise.all([H(),fe()])}catch(o){$.value=k(o)}finally{oe.value=!1}}function Fe(o){const e=new Date(o);return Number.isNaN(e.getTime())?o:e.toLocaleString("zh-CN")}function Le(o){const e=[];return o.supports_tools&&e.push("工具"),o.supports_vision&&e.push("图像"),o.supports_audio_input&&e.push("音频"),o.supports_reasoning&&e.push("推理"),e.length?e.join(" · "):"纯文本"}function F(o){return`${o.provider}·${o.model}`}return Oe(()=>{H(),fe()}),(o,e)=>(c(),C("div",Ke,[s("section",Xe,[e[21]||(e[21]=s("div",null,[s("h1",{class:"jf-page-title"},"模型管理")],-1)),s("div",Ye,[a(j,{modelValue:E.value,"onUpdate:modelValue":e[0]||(e[0]=t=>E.value=t),icon:"magnifying-glass",placeholder:"搜索模型标识或提供商","aria-label":"搜索模型标识或提供商",class:"w-full sm:w-64"},null,8,["modelValue"]),a(V,{variant:"secondary",icon:"arrow-path",loading:U.value,onClick:H},{default:l(()=>[...e[20]||(e[20]=[p("刷新",-1)])]),_:1},8,["loading"])])]),w.value?(c(),L(Z,{key:0,error:w.value},null,8,["error"])):x("",!0),a(ie,{title:"models.dev 全局同步"},{actions:l(()=>[a(V,{icon:"arrow-path",loading:oe.value,disabled:U.value||Q.value,onClick:De},{default:l(()=>[...e[22]||(e[22]=[p(" 立即同步 models.dev ",-1)])]),_:1},8,["loading","disabled"])]),default:l(()=>[s("div",Ze,[$.value?(c(),L(Z,{key:0,error:$.value},null,8,["error"])):x("",!0),W.value?(c(),L(Ge,{key:1,tone:"success",title:W.value},null,8,["title"])):x("",!0),Q.value?(c(),C("div",eo,[e[23]||(e[23]=s("p",{class:"jf-caption text-ink-secondary"},"正在读取最新同步状态…",-1)),a(He,{height:"36px",shape:"block"})])):y.value?.synchronized?(c(),C("div",oo,[s("p",to,[e[24]||(e[24]=p(" 最近同步:",-1)),s("time",{datetime:y.value.fetched_at,class:"jf-mono jf-tabular font-medium"},u(Fe(y.value.fetched_at)),9,lo)]),s("p",ao,[e[25]||(e[25]=p("上游源:",-1)),s("code",no,u(y.value.url),1)]),s("p",so,[e[26]||(e[26]=p(" 导入绑定数:",-1)),s("span",io,u(y.value.imported_pairs),1),e[27]||(e[27]=p(" · 跳过项:",-1)),s("span",uo,u(y.value.skipped_pairs),1)]),y.value.warnings.length?(c(),C("p",ro," 提醒:"+u(y.value.warnings.join(";")),1)):x("",!0)])):(c(),C("p",mo,"尚无同步记录"))])]),_:1}),a(ie,{title:"逻辑模型",flush:""},{actions:l(()=>[a(ee,{tone:"neutral"},{default:l(()=>[p(u(re.value.length),1)]),_:1})]),default:l(()=>[s("div",po,[a($e,{rows:re.value,columns:he,loading:U.value,"row-key":"id","empty-text":"没有匹配的逻辑模型"},{"cell-id":l(({row:t})=>[s("code",co,u(t.id),1)]),"cell-display_name":l(({row:t})=>[s("div",fo,u(t.display_name),1),a(ee,{tone:"neutral",class:"mt-1"},{default:l(()=>[p(u(t.owner==="admin"?"本地管理员维护":t.source),1)]),_:2},1024)]),"cell-enabled":l(({row:t})=>[s("div",vo,[a(I,{"model-value":t.enabled,disabled:!!te.value[t.id],"aria-label":`${t.enabled?"停用":"启用"}逻辑模型 ${t.display_name||t.id}`,"onUpdate:modelValue":d=>Ue(t)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"]),s("span",{class:ge(["jf-caption font-medium select-none",t.enabled?"text-ink":"text-ink-secondary"])},u(t.enabled?"已启用":"已停用"),3)])]),"cell-pair_count":l(({row:t})=>[s("span",_o,u(t.pair_count),1)]),"cell-actions":l(({row:t})=>[a(V,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:d=>Ie(t)},{default:l(()=>[...e[28]||(e[28]=[p("编辑",-1)])]),_:1},8,["onClick"])]),_:1},8,["rows","loading"])])]),_:1}),a(ie,{title:"提供商模型绑定与能力",flush:""},{actions:l(()=>[a(ee,{tone:"neutral"},{default:l(()=>[p(u(me.value.length),1)]),_:1})]),default:l(()=>[s("div",yo,[a($e,{rows:me.value,columns:Se,loading:U.value,"row-key":F,"empty-text":"没有匹配的模型绑定"},{"cell-provider":l(({row:t})=>[s("code",go,u(t.provider),1)]),"cell-model":l(({row:t})=>[s("code",bo,u(t.model),1)]),"cell-upstream_model_id":l(({row:t})=>[s("code",{class:"block max-w-60 jf-truncate font-mono",title:t.upstream_model_id},u(t.upstream_model_id),9,wo)]),"cell-context_window":l(({row:t})=>[s("span",xo,u(t.context_window?.toLocaleString()),1),t.max_output?(c(),C("span",ko," 输出 ≤ "+u(t.max_output?.toLocaleString()),1)):x("",!0)]),"cell-capabilities":l(({row:t})=>[s("span",jo,u(Le(t)),1)]),"cell-enabled":l(({row:t})=>[s("div",$o,[a(I,{"model-value":t.enabled,disabled:!!le.value[F(t)],"aria-label":`${t.enabled?"停用":"启用"}模型绑定 ${t.provider} - ${t.model}`,"onUpdate:modelValue":d=>Je(t)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"]),s("span",{class:ge(["jf-caption font-medium select-none",t.enabled?"text-ink":"text-ink-secondary"])},u(t.enabled?"已启用":"已停用"),3)])]),"cell-source":l(({row:t})=>[a(ee,{tone:t.source==="modelsdev"?"primary":"neutral",class:"jf-nowrap"},{default:l(()=>[p(u(t.source==="modelsdev"?"models.dev":"本地")+" ",1),t.owner==="admin"?(c(),C(Ae,{key:0},[p(" · 自定义")],64)):x("",!0)]),_:2},1032,["tone"])]),"cell-actions":l(({row:t})=>[s("div",ho,[a(V,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:d=>qe(t)},{default:l(()=>[...e[29]||(e[29]=[p("编辑能力",-1)])]),_:1},8,["onClick"]),a(V,{variant:"danger-ghost",size:"sm",loading:q.value===F(t),disabled:!!q.value,"aria-label":`解除绑定 ${t.provider} - ${t.model}`,onClick:d=>Te(t)},{default:l(()=>[...e[30]||(e[30]=[p(" 解除绑定 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])])]),_:1},8,["rows","loading"])])]),_:1}),a(je,{open:R.value,"onUpdate:open":e[5]||(e[5]=t=>R.value=t),title:"编辑逻辑模型"},{footer:l(()=>[s("div",So,[a(V,{variant:"secondary",onClick:e[4]||(e[4]=t=>R.value=!1)},{default:l(()=>[...e[31]||(e[31]=[p("完成",-1)])]),_:1})])]),default:l(()=>[s("form",{class:"grid gap-5",onSubmit:be(Re,["prevent"])},[a(v,{label:"模型标识"},{default:l(()=>[a(j,{modelValue:f.id,"onUpdate:modelValue":e[1]||(e[1]=t=>f.id=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1}),a(v,{label:"显示名称",required:""},{default:l(()=>[a(j,{"model-value":f.display_name,class:"w-full",required:"","onUpdate:modelValue":e[2]||(e[2]=t=>Me("display_name",t)),onBlur:e[3]||(e[3]=t=>Ne("display_name"))},null,8,["model-value"])]),_:1}),h.value?(c(),L(Z,{key:0,error:h.value},null,8,["error"])):x("",!0)],32)]),_:1},8,["open"]),a(je,{open:B.value,"onUpdate:open":e[19]||(e[19]=t=>B.value=t),title:"编辑上游模型绑定与能力",size:"lg"},{footer:l(()=>[s("div",To,[a(V,{variant:"secondary",onClick:e[18]||(e[18]=t=>B.value=!1)},{default:l(()=>[...e[33]||(e[33]=[p("完成",-1)])]),_:1})])]),default:l(()=>[s("form",{class:"grid gap-5",onSubmit:be(ze,["prevent"])},[s("div",Co,[a(v,{label:"所属提供商"},{default:l(()=>[a(j,{modelValue:i.provider,"onUpdate:modelValue":e[6]||(e[6]=t=>i.provider=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1}),a(v,{label:"逻辑模型标识"},{default:l(()=>[a(j,{modelValue:i.model,"onUpdate:modelValue":e[7]||(e[7]=t=>i.model=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1})]),a(v,{label:"上游模型 ID",required:""},{default:l(()=>[a(j,{"model-value":i.upstream_model_id,class:"w-full font-mono",required:"","onUpdate:modelValue":e[8]||(e[8]=t=>ae("upstream_model_id",t)),onBlur:e[9]||(e[9]=t=>se("upstream_model_id"))},null,8,["model-value"])]),_:1}),s("div",Vo,[a(v,{label:"上下文窗口(Tokens)",required:""},{default:l(()=>[a(j,{"model-value":i.context_window,type:"number",min:"1",class:"w-full jf-tabular",required:"","onUpdate:modelValue":e[10]||(e[10]=t=>ae("context_window",t)),onBlur:e[11]||(e[11]=t=>se("context_window"))},null,8,["model-value"])]),_:1}),a(v,{label:"最大输出限制(Tokens)"},{default:l(()=>[a(j,{"model-value":i.max_output,type:"number",min:"1",class:"w-full jf-tabular","onUpdate:modelValue":e[12]||(e[12]=t=>ae("max_output",t)),onBlur:e[13]||(e[13]=t=>se("max_output"))},null,8,["model-value"])]),_:1})]),s("div",Uo,[e[32]||(e[32]=s("h3",{class:"jf-module-title mb-3"},"支持的高级能力声明",-1)),s("div",Jo,[a(v,{label:"函数与工具调用 (Tools)",inline:""},{default:l(()=>[a(I,{"model-value":i.supports_tools,"onUpdate:modelValue":e[14]||(e[14]=t=>X("supports_tools",t))},null,8,["model-value"])]),_:1}),a(v,{label:"多模态图片输入 (Vision)",inline:""},{default:l(()=>[a(I,{"model-value":i.supports_vision,"onUpdate:modelValue":e[15]||(e[15]=t=>X("supports_vision",t))},null,8,["model-value"])]),_:1}),a(v,{label:"音频输入 (Audio)",inline:""},{default:l(()=>[a(I,{"model-value":i.supports_audio_input,"onUpdate:modelValue":e[16]||(e[16]=t=>X("supports_audio_input",t))},null,8,["model-value"])]),_:1}),a(v,{label:"深度思考与推理 (Reasoning)",inline:""},{default:l(()=>[a(I,{"model-value":i.supports_reasoning,"onUpdate:modelValue":e[17]||(e[17]=t=>X("supports_reasoning",t))},null,8,["model-value"])]),_:1})])]),_.value?(c(),L(Z,{key:0,error:_.value},null,8,["error"])):x("",!0)],32)]),_:1},8,["open"])]))}});export{Oo as default}; diff --git a/internal/api/dashboard/static/web/assets/Models-DE72qd3P.js b/internal/api/dashboard/static/web/assets/Models-DE72qd3P.js deleted file mode 100644 index 170de01..0000000 --- a/internal/api/dashboard/static/web/assets/Models-DE72qd3P.js +++ /dev/null @@ -1 +0,0 @@ -import{d as Le,z as _e,o as Oe,i as C,b as s,f as l,w as a,J as V,c as L,h as x,r,G as ye,a as I,g as m,t as u,n as ge,F as Ae,j as be,D as we,y as xe,E as se,l as c}from"./index-4SLuEZVi.js";import{c as ke,a as Qe}from"./autosave-DjhT3uag.js";import{_ as Y,J as ie,e as k,a as We}from"./field-context-CK2hRgAr.js";import{J as Z}from"./JfBadge-BNbswCCo.js";import{J as je}from"./JfDrawer-CHIy4Mgq.js";import{J as f}from"./JfField--tcDfYWs.js";import{J as j}from"./JfInput-CMwI48jv.js";import{J as Ge}from"./JfSkeleton-DtHcp-jn.js";import{J as U}from"./JfSwitch-Ck4z1ivX.js";import{J as $e}from"./JfTable-DL6XTgQI.js";import"./control-attrs-CG7deI17.js";const Ke={class:"jf-stack"},He={class:"jf-toolbar"},Xe={class:"jf-action-group"},Ye={class:"grid gap-3"},Ze={key:2,class:"grid gap-2","aria-busy":"true"},eo={key:3,class:"grid jf-body gap-2 sm:grid-cols-2"},oo={class:"jf-caption"},to=["datetime"],lo={class:"jf-caption"},ao={class:"jf-mono jf-anywhere"},no={class:"jf-caption"},so={class:"jf-mono font-medium"},io={class:"jf-mono font-medium"},uo={key:0,class:"jf-caption text-warning sm:col-span-2"},ro={key:4,class:"jf-caption text-ink-secondary"},po={class:"jf-scroll-x"},mo={class:"font-mono font-medium"},co={class:"font-medium"},fo={class:"flex items-center gap-2"},vo={class:"jf-mono jf-tabular"},_o={class:"jf-scroll-x"},yo={class:"font-mono font-medium"},go={class:"font-mono"},bo=["title"],wo={class:"font-mono jf-tabular"},xo={key:0,class:"mt-0.5 block jf-caption font-mono jf-tabular text-ink-secondary"},ko={class:"jf-caption text-ink-secondary"},jo={class:"flex items-center gap-2"},$o={class:"jf-action-group"},ho={class:"jf-action-group justify-end"},So={class:"grid gap-3 sm:grid-cols-2"},Co={class:"grid items-start gap-3 sm:grid-cols-2"},Vo={class:"rounded-[var(--jf-radius-control)] border border-line p-4"},Uo={class:"grid gap-3 sm:grid-cols-2"},Jo={class:"jf-action-group justify-end"},Lo=Le({__name:"Models",setup(Po){const J=r(!1),de=r(!1),w=r(),O=r(""),A=r([]),Q=r([]),y=r(),W=r(!1),ee=r(!1),$=r(),G=r(""),R=r(!1),B=r(!1),h=r(),_=r(),oe=r({}),te=r({}),q=r(""),v=we({id:"",display_name:""}),i=we({provider:"",model:"",upstream_model_id:"",context_window:32768,max_output:"",supports_tools:!1,supports_vision:!1,supports_audio_input:!1,supports_reasoning:!1,enabled:!0}),K=new Set,P=new Set,z=new Map,T=new Map,M=new Set,g=new Set,S=new Map,N=new Map,D=new Set,ue=Qe(Ve,Ce),re=xe(()=>{const o=O.value.trim().toLowerCase();return o?A.value.filter(e=>`${e.id} ${e.display_name}`.toLowerCase().includes(o)):A.value}),pe=xe(()=>{const o=O.value.trim().toLowerCase();return o?Q.value.filter(e=>`${e.provider} ${e.model} ${e.upstream_model_id}`.toLowerCase().includes(o)):Q.value}),he=[{key:"id",title:"模型标识",nowrap:!0},{key:"display_name",title:"显示名称"},{key:"enabled",title:"状态",nowrap:!0},{key:"pair_count",title:"绑定数",align:"end"},{key:"actions",title:"操作",nowrap:!0}],Se=[{key:"provider",title:"提供商",nowrap:!0},{key:"model",title:"逻辑模型",nowrap:!0},{key:"upstream_model_id",title:"上游模型 ID"},{key:"context_window",title:"上下文窗口",align:"end"},{key:"capabilities",title:"已声明能力"},{key:"enabled",title:"状态",nowrap:!0},{key:"source",title:"元数据来源"},{key:"actions",title:"操作",nowrap:!0}];function Ce(o,e){const t=[...o];for(const d of e){const p=t.findIndex(b=>b.key===d.key);if(p<0){t.push(d);continue}const n=t[p];t[p]={...n,...d,body:{...n.body,...d.body},fields:new Map([...n.fields??[],...d.fields??[]])}}return t}async function Ve(o){for(const e of o){de.value=!0;try{if(await I.patch(e.endpoint,e.body),e.endpoint.startsWith("/admin/v1/models/")){const t=e.key.slice(6),d=A.value.find(p=>p.id===t);if(d&&typeof e.body.display_name=="string"&&(d.display_name=e.body.display_name),v.id===t){for(const[p,n]of e.fields??[])z.get(p)===n&&K.delete(p);h.value=void 0}}else{const[t,d]=JSON.parse(e.key.slice(5)),p=Q.value.find(n=>n.provider===t&&n.model===d);if(p){typeof e.body.upstream_model_id=="string"&&(p.upstream_model_id=e.body.upstream_model_id),typeof e.body.context_window=="number"&&(p.context_window=e.body.context_window),(e.body.max_output===null||typeof e.body.max_output=="number")&&(p.max_output=e.body.max_output);for(const n of["enabled","supports_tools","supports_vision","supports_audio_input","supports_reasoning"])typeof e.body[n]=="boolean"&&(p[n]=e.body[n])}if(i.provider===t&&i.model===d){for(const[n,b]of e.fields??[])S.get(n)===b&&M.delete(n);_.value=void 0}}se()}catch(t){e.errorTarget==="model"&&v.id===e.key.slice(6)?h.value=k(t):e.errorTarget==="pair"&&e.key===`pair:${JSON.stringify([i.provider,i.model])}`&&(_.value=k(t))}finally{de.value=!1}}}async function H(){J.value=!0,w.value=void 0;try{const[o,e]=await Promise.all([ye("/admin/v1/models"),ye("/admin/v1/pairs")]);A.value=o,Q.value=e}catch(o){w.value=k(o)}finally{J.value=!1}}async function Ue(o){const e=o.enabled,t=!e;o.enabled=t,oe.value[o.id]=!0;try{await I.patch(`/admin/v1/models/${encodeURIComponent(o.id)}`,{enabled:t}),se()}catch(d){o.enabled=e,w.value=k(d)}finally{delete oe.value[o.id]}}async function Je(o){const e=E(o),t=o.enabled,d=!t;o.enabled=d,te.value[e]=!0;try{await I.patch(`/admin/v1/pairs/${encodeURIComponent(o.provider)}/${encodeURIComponent(o.model)}`,{enabled:d}),se()}catch(p){o.enabled=t,w.value=k(p)}finally{delete te.value[e]}}async function Pe(o){const e=E(o);if(!q.value&&window.confirm(`确定永久解除提供商“${o.provider}”与模型“${o.model}”的绑定吗?该绑定会从所有路由组移除,后续注册表同步不会自动恢复。`)){q.value=e,w.value=void 0;try{await I.delete(`/admin/v1/pairs/${encodeURIComponent(o.provider)}/${encodeURIComponent(o.model)}`),await H()}catch(t){w.value=k(t)}finally{q.value=""}}}function Te(){for(const o of T.values())o.cancel();T.clear(),K.clear(),P.clear(),z.clear()}function me(o){let e=T.get(o);return e||(e=ke(()=>{P.delete(o),ce()}),T.set(o,e)),e}function Me(o,e){v.display_name=e,h.value=void 0,K.add(o),P.add(o),z.set(o,(z.get(o)??0)+1),me(o).schedule()}function ce(){const o=[...K].filter(t=>!P.has(t));if(!o.length)return;if(o.includes("display_name")&&!v.display_name.trim()){h.value="模型显示名称不能为空。";return}const e={};o.includes("display_name")&&(e.display_name=v.display_name.trim()),ue.enqueue([{key:`model:${v.id}`,endpoint:`/admin/v1/models/${encodeURIComponent(v.id)}`,body:e,fields:new Map(o.map(t=>[t,z.get(t)??0])),errorTarget:"model"}])}function Ne(o){P.has(o)&&(P.delete(o),me(o).flush())}function Ie(o){Te(),h.value=void 0,Object.assign(v,{id:o.id,display_name:o.display_name}),R.value=!0}function Re(){for(const o of T.values())o.flush();ce()}function Be(){for(const o of N.values())o.cancel();N.clear(),M.clear(),g.clear(),S.clear(),D.clear()}function X(o){let e=N.get(o);return e||(e=ke(()=>{o==="capacity"?(D.clear(),g.delete("context_window"),g.delete("max_output")):g.delete(o),ae()}),N.set(o,e)),e}function le(o,e){o==="upstream_model_id"?i.upstream_model_id=e:o==="context_window"?i.context_window=e:i.max_output=e,_.value=void 0,M.add(o),S.set(o,(S.get(o)??0)+1),o==="context_window"||o==="max_output"?(D.add(o),g.add(o),X("capacity").schedule()):(g.add(o),X(o).schedule())}function F(o,e){i[o]=e,_.value=void 0,M.add(o),S.set(o,(S.get(o)??0)+1),ae(new Set([o]))}function ae(o){let e=[...M].filter(n=>!g.has(n)&&(!o||o.has(n)));const t=["context_window","max_output"];if(D.size&&e.some(n=>t.includes(n))&&(e=e.filter(n=>!t.includes(n))),!e.length)return;if(e.includes("upstream_model_id")&&!i.upstream_model_id.trim()){_.value="上游模型 ID 不能为空。";return}const d={};for(const n of e)n==="upstream_model_id"?d.upstream_model_id=i.upstream_model_id.trim():t.includes(n)||(d[n]=i[n]);if(e.some(n=>t.includes(n))){const n=Number(i.context_window),b=i.max_output.trim()===""?null:Number(i.max_output);if(!Number.isInteger(n)||n<=0){_.value="上下文窗口必须是正整数。";return}if(b!==null&&(!Number.isInteger(b)||b<=0||b>n)){_.value="最大输出必须是正整数,且不能大于上下文窗口。";return}d.context_window=n,d.max_output=b,e=[...new Set([...e,...M].filter(ve=>t.includes(ve)||e.includes(ve)))]}ue.enqueue([{key:`pair:${JSON.stringify([i.provider,i.model])}`,endpoint:`/admin/v1/pairs/${encodeURIComponent(i.provider)}/${encodeURIComponent(i.model)}`,body:d,fields:new Map(e.map(n=>[n,S.get(n)??0])),errorTarget:"pair"}])}function ne(o){if(o==="context_window"||o==="max_output"){if(!D.size)return;X("capacity").flush()}else{if(!g.has(o))return;g.delete(o),X(o).flush()}}function qe(o){Be(),_.value=void 0,Object.assign(i,{provider:o.provider,model:o.model,upstream_model_id:o.upstream_model_id,context_window:o.context_window,max_output:o.max_output===null?"":String(o.max_output),supports_tools:o.supports_tools,supports_vision:o.supports_vision,supports_audio_input:o.supports_audio_input,supports_reasoning:o.supports_reasoning,enabled:o.enabled}),B.value=!0}function ze(){for(const o of N.values())o.flush();ae()}_e(R,o=>{if(!o)for(const e of T.values())e.flush()}),_e(B,o=>{if(!o)for(const e of N.values())e.flush()});async function fe(){W.value=!0,$.value=void 0;try{y.value=await I.get("/admin/v1/sync-state")}catch(o){$.value=k(o)}finally{W.value=!1}}async function De(){ee.value=!0,$.value=void 0,G.value="";try{const o=await I.postEmpty("/admin/v1/sync");if(!o.synchronized){$.value="同步未产生成功结果;注册表未做更新。";return}G.value=`同步成功:导入 ${o.imported_pairs} 个模型绑定,跳过 ${o.skipped_pairs} 个。`,await Promise.all([H(),fe()])}catch(o){$.value=k(o)}finally{ee.value=!1}}function Fe(o){const e=new Date(o);return Number.isNaN(e.getTime())?o:e.toLocaleString("zh-CN")}function Ee(o){const e=[];return o.supports_tools&&e.push("工具"),o.supports_vision&&e.push("图像"),o.supports_audio_input&&e.push("音频"),o.supports_reasoning&&e.push("推理"),e.length?e.join(" · "):"纯文本"}function E(o){return`${o.provider}·${o.model}`}return Oe(()=>{H(),fe()}),(o,e)=>(c(),C("div",Ke,[s("section",He,[e[22]||(e[22]=s("div",null,[s("h1",{class:"jf-page-title"},"模型管理")],-1)),s("div",Xe,[l(j,{modelValue:O.value,"onUpdate:modelValue":e[0]||(e[0]=t=>O.value=t),icon:"magnifying-glass",placeholder:"搜索模型标识或提供商","aria-label":"搜索模型标识或提供商",class:"w-full sm:w-64"},null,8,["modelValue"]),l(V,{variant:"secondary",icon:"arrow-path",loading:J.value,onClick:H},{default:a(()=>[...e[21]||(e[21]=[m("刷新",-1)])]),_:1},8,["loading"])])]),w.value?(c(),L(Y,{key:0,error:w.value},null,8,["error"])):x("",!0),l(ie,{title:"models.dev 全局同步"},{actions:a(()=>[l(V,{icon:"arrow-path",loading:ee.value,disabled:J.value||W.value,onClick:De},{default:a(()=>[...e[23]||(e[23]=[m(" 立即同步 models.dev ",-1)])]),_:1},8,["loading","disabled"])]),default:a(()=>[s("div",Ye,[$.value?(c(),L(Y,{key:0,error:$.value},null,8,["error"])):x("",!0),G.value?(c(),L(We,{key:1,tone:"success",title:G.value},null,8,["title"])):x("",!0),W.value?(c(),C("div",Ze,[e[24]||(e[24]=s("p",{class:"jf-caption text-ink-secondary"},"正在读取最新同步状态…",-1)),l(Ge,{height:"36px",shape:"block"})])):y.value?.synchronized?(c(),C("div",eo,[s("p",oo,[e[25]||(e[25]=m(" 最近同步:",-1)),s("time",{datetime:y.value.fetched_at,class:"jf-mono jf-tabular font-medium"},u(Fe(y.value.fetched_at)),9,to)]),s("p",lo,[e[26]||(e[26]=m("上游源:",-1)),s("code",ao,u(y.value.url),1)]),s("p",no,[e[27]||(e[27]=m(" 导入绑定数:",-1)),s("span",so,u(y.value.imported_pairs),1),e[28]||(e[28]=m(" · 跳过项:",-1)),s("span",io,u(y.value.skipped_pairs),1)]),y.value.warnings.length?(c(),C("p",uo," 提醒:"+u(y.value.warnings.join(";")),1)):x("",!0)])):(c(),C("p",ro,"尚无同步记录"))])]),_:1}),l(ie,{title:"逻辑模型",flush:""},{actions:a(()=>[l(Z,{tone:"neutral"},{default:a(()=>[m(u(re.value.length),1)]),_:1})]),default:a(()=>[s("div",po,[l($e,{rows:re.value,columns:he,loading:J.value,"row-key":"id","empty-text":"没有匹配的逻辑模型"},{"cell-id":a(({row:t})=>[s("code",mo,u(t.id),1)]),"cell-display_name":a(({row:t})=>[s("div",co,u(t.display_name),1),l(Z,{tone:"neutral",class:"mt-1"},{default:a(()=>[m(u(t.owner==="admin"?"本地管理员维护":t.source),1)]),_:2},1024)]),"cell-enabled":a(({row:t})=>[s("div",fo,[l(U,{"model-value":t.enabled,disabled:!!oe.value[t.id],"aria-label":`${t.enabled?"停用":"启用"}逻辑模型 ${t.display_name||t.id}`,"onUpdate:modelValue":d=>Ue(t)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"]),s("span",{class:ge(["jf-caption font-medium select-none",t.enabled?"text-ink":"text-ink-secondary"])},u(t.enabled?"已启用":"已停用"),3)])]),"cell-pair_count":a(({row:t})=>[s("span",vo,u(t.pair_count),1)]),"cell-actions":a(({row:t})=>[l(V,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:d=>Ie(t)},{default:a(()=>[...e[29]||(e[29]=[m("编辑",-1)])]),_:1},8,["onClick"])]),_:1},8,["rows","loading"])])]),_:1}),l(ie,{title:"Provider 模型绑定与能力",flush:""},{actions:a(()=>[l(Z,{tone:"neutral"},{default:a(()=>[m(u(pe.value.length),1)]),_:1})]),default:a(()=>[s("div",_o,[l($e,{rows:pe.value,columns:Se,loading:J.value,"row-key":E,"empty-text":"没有匹配的模型绑定"},{"cell-provider":a(({row:t})=>[s("code",yo,u(t.provider),1)]),"cell-model":a(({row:t})=>[s("code",go,u(t.model),1)]),"cell-upstream_model_id":a(({row:t})=>[s("code",{class:"block max-w-60 jf-truncate font-mono",title:t.upstream_model_id},u(t.upstream_model_id),9,bo)]),"cell-context_window":a(({row:t})=>[s("span",wo,u(t.context_window?.toLocaleString()),1),t.max_output?(c(),C("span",xo," 输出 ≤ "+u(t.max_output?.toLocaleString()),1)):x("",!0)]),"cell-capabilities":a(({row:t})=>[s("span",ko,u(Ee(t)),1)]),"cell-enabled":a(({row:t})=>[s("div",jo,[l(U,{"model-value":t.enabled,disabled:!!te.value[E(t)],"aria-label":`${t.enabled?"停用":"启用"}模型绑定 ${t.provider} - ${t.model}`,"onUpdate:modelValue":d=>Je(t)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"]),s("span",{class:ge(["jf-caption font-medium select-none",t.enabled?"text-ink":"text-ink-secondary"])},u(t.enabled?"已启用":"已停用"),3)])]),"cell-source":a(({row:t})=>[l(Z,{tone:t.source==="modelsdev"?"primary":"neutral",class:"jf-nowrap"},{default:a(()=>[m(u(t.source==="modelsdev"?"models.dev":"本地")+" ",1),t.owner==="admin"?(c(),C(Ae,{key:0},[m(" · 自定义")],64)):x("",!0)]),_:2},1032,["tone"])]),"cell-actions":a(({row:t})=>[s("div",$o,[l(V,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:d=>qe(t)},{default:a(()=>[...e[30]||(e[30]=[m("编辑能力",-1)])]),_:1},8,["onClick"]),l(V,{variant:"danger-ghost",size:"sm",loading:q.value===E(t),disabled:!!q.value,"aria-label":`解除绑定 ${t.provider} - ${t.model}`,onClick:d=>Pe(t)},{default:a(()=>[...e[31]||(e[31]=[m(" 解除绑定 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])])]),_:1},8,["rows","loading"])])]),_:1}),l(je,{open:R.value,"onUpdate:open":e[5]||(e[5]=t=>R.value=t),title:"编辑逻辑模型"},{footer:a(()=>[s("div",ho,[l(V,{variant:"secondary",onClick:e[4]||(e[4]=t=>R.value=!1)},{default:a(()=>[...e[32]||(e[32]=[m("完成",-1)])]),_:1})])]),default:a(()=>[s("form",{class:"grid gap-5",onSubmit:be(Re,["prevent"])},[l(f,{label:"模型标识"},{default:a(()=>[l(j,{modelValue:v.id,"onUpdate:modelValue":e[1]||(e[1]=t=>v.id=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1}),l(f,{label:"显示名称",required:""},{default:a(()=>[l(j,{"model-value":v.display_name,class:"w-full",required:"","onUpdate:modelValue":e[2]||(e[2]=t=>Me("display_name",t)),onBlur:e[3]||(e[3]=t=>Ne("display_name"))},null,8,["model-value"])]),_:1}),h.value?(c(),L(Y,{key:0,error:h.value},null,8,["error"])):x("",!0)],32)]),_:1},8,["open"]),l(je,{open:B.value,"onUpdate:open":e[20]||(e[20]=t=>B.value=t),title:"编辑上游模型绑定与能力",size:"lg"},{footer:a(()=>[s("div",Jo,[l(V,{variant:"secondary",onClick:e[19]||(e[19]=t=>B.value=!1)},{default:a(()=>[...e[34]||(e[34]=[m("完成",-1)])]),_:1})])]),default:a(()=>[s("form",{class:"grid gap-5",onSubmit:be(ze,["prevent"])},[s("div",So,[l(f,{label:"所属提供商"},{default:a(()=>[l(j,{modelValue:i.provider,"onUpdate:modelValue":e[6]||(e[6]=t=>i.provider=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1}),l(f,{label:"逻辑模型标识"},{default:a(()=>[l(j,{modelValue:i.model,"onUpdate:modelValue":e[7]||(e[7]=t=>i.model=t),readonly:"",class:"w-full font-mono"},null,8,["modelValue"])]),_:1})]),l(f,{label:"上游模型 ID",required:""},{default:a(()=>[l(j,{"model-value":i.upstream_model_id,class:"w-full font-mono",required:"","onUpdate:modelValue":e[8]||(e[8]=t=>le("upstream_model_id",t)),onBlur:e[9]||(e[9]=t=>ne("upstream_model_id"))},null,8,["model-value"])]),_:1}),s("div",Co,[l(f,{label:"上下文窗口(Tokens)",required:""},{default:a(()=>[l(j,{"model-value":i.context_window,type:"number",min:"1",class:"w-full jf-tabular",required:"","onUpdate:modelValue":e[10]||(e[10]=t=>le("context_window",t)),onBlur:e[11]||(e[11]=t=>ne("context_window"))},null,8,["model-value"])]),_:1}),l(f,{label:"最大输出限制(Tokens)"},{default:a(()=>[l(j,{"model-value":i.max_output,type:"number",min:"1",class:"w-full jf-tabular","onUpdate:modelValue":e[12]||(e[12]=t=>le("max_output",t)),onBlur:e[13]||(e[13]=t=>ne("max_output"))},null,8,["model-value"])]),_:1})]),s("div",Vo,[e[33]||(e[33]=s("h3",{class:"jf-module-title mb-3"},"支持的高级能力声明",-1)),s("div",Uo,[l(f,{label:"函数与工具调用 (Tools)",inline:""},{default:a(()=>[l(U,{"model-value":i.supports_tools,"onUpdate:modelValue":e[14]||(e[14]=t=>F("supports_tools",t))},null,8,["model-value"])]),_:1}),l(f,{label:"多模态图片输入 (Vision)",inline:""},{default:a(()=>[l(U,{"model-value":i.supports_vision,"onUpdate:modelValue":e[15]||(e[15]=t=>F("supports_vision",t))},null,8,["model-value"])]),_:1}),l(f,{label:"音频输入 (Audio)",inline:""},{default:a(()=>[l(U,{"model-value":i.supports_audio_input,"onUpdate:modelValue":e[16]||(e[16]=t=>F("supports_audio_input",t))},null,8,["model-value"])]),_:1}),l(f,{label:"深度思考与推理 (Reasoning)",inline:""},{default:a(()=>[l(U,{"model-value":i.supports_reasoning,"onUpdate:modelValue":e[17]||(e[17]=t=>F("supports_reasoning",t))},null,8,["model-value"])]),_:1})])]),l(f,{label:"启用该上游绑定",inline:""},{default:a(()=>[l(U,{"model-value":i.enabled,"onUpdate:modelValue":e[18]||(e[18]=t=>F("enabled",t))},null,8,["model-value"])]),_:1}),_.value?(c(),L(Y,{key:0,error:_.value},null,8,["error"])):x("",!0)],32)]),_:1},8,["open"])]))}});export{Lo as default}; diff --git a/internal/api/dashboard/static/web/assets/Providers-cZvMsJm0.js b/internal/api/dashboard/static/web/assets/Providers-cZvMsJm0.js new file mode 100644 index 0000000..5060da9 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Providers-cZvMsJm0.js @@ -0,0 +1 @@ +import{d as Me,o as Be,z as ce,i as c,b as o,f as n,w as t,J as f,c as x,h as R,e as Ie,r as d,a as g,B as Re,g as u,t as m,n as ze,C as pe,j as ye,F as K,q as ie,D as Oe,E as Z,G as ke,l as r}from"./index-CeO69YUd.js";import{c as De,a as Ae}from"./autosave-DjhT3uag.js";import{_ as se,J as Te,e as j,a as qe}from"./field-context-Dg4JwEpB.js";import{J as P}from"./JfBadge-DE3HILDW.js";import{J as be}from"./JfDrawer-DV73NuVR.js";import{J as T}from"./JfField-g_CLZQhf.js";import{J as q}from"./JfInput-DtzjrdfV.js";import{J as _e}from"./JfSelect-C3PlYx94.js";import{J as Fe}from"./JfSkeleton-jIxmbbW7.js";import{J as ge}from"./JfSwitch-BLecDvC6.js";import{J as Ne}from"./JfTable-fqYuBXzd.js";import"./control-attrs-CG7deI17.js";const Ke={class:"jf-stack"},Ee={class:"jf-toolbar"},Le={class:"jf-action-group"},Ge={class:"flex items-center gap-2"},Qe={class:"jf-action-group"},He={class:"jf-scroll-x"},We={class:"font-medium"},Xe={class:"jf-caption font-mono text-ink-secondary"},Ye={class:"jf-caption font-mono text-ink-secondary jf-anywhere"},Ze={class:"flex items-center gap-2"},ea={class:"jf-action-group justify-end"},aa={key:1,title:"同步或配置文件来源的提供商不可删除,可停用"},la={class:"flex justify-center"},ta={class:"jf-action-group justify-end"},na={class:"grid gap-5"},oa={class:"rounded-[var(--jf-radius-control)] border border-line p-4"},ia={class:"flex gap-2"},sa={key:2},da={class:"flex items-center justify-between mb-2"},ua={class:"grid gap-2"},ra={class:"min-w-0"},va={class:"font-mono font-medium block jf-truncate"},fa={class:"jf-caption text-ink-secondary block"},ma={class:"jf-action-group shrink-0"},ca={class:"flex items-center justify-between mb-2"},pa={key:0,class:"grid gap-2","aria-busy":"true"},ya={key:1,class:"grid gap-2 max-h-[460px] overflow-y-auto pr-1"},ka={class:"min-w-0"},ba={class:"font-mono font-medium block jf-truncate"},_a={key:0,class:"jf-caption text-ink-secondary block"},ga={class:"jf-action-group shrink-0"},wa={key:2,class:"py-6 text-center text-sm text-ink-secondary"},$a={class:"jf-action-group justify-end"},za=Me({__name:"Providers",setup(ja){const h=d(!1),z=d(!1),O=d([]),E=d(""),L=d("all"),G=d(null),Q=d(!1),D=d(),V=d(!1),H=d(""),v=d(!1),p=d(!1),y=d(),i=Oe({key:"",display_name:"",kind:"openai_compatible",base_url:"",api_key:"",enabled:!0}),k=new Set,S=new Map,M=new Map,we=Ae(je,(l,e)=>e),de=[{label:"OpenAI",value:"openai"},{label:"OpenAI 兼容",value:"openai_compatible"},{label:"Anthropic",value:"anthropic"},{label:"Gemini",value:"gemini"}],$e=[{label:"全部状态",value:"all"},{label:"已启用",value:"true"},{label:"已停用",value:"false"}];function ue(){for(const l of M.values())l.cancel();M.clear(),k.clear(),S.clear()}function re(l){let e=M.get(l);return e||(e=De(()=>ae()),M.set(l,e)),e}function W(l,e){if(i[l]=e,y.value=void 0,!!v.value){if(l==="api_key"&&!e.trim()){M.get(l)?.cancel(),k.delete(l),S.set(l,(S.get(l)??0)+1);return}k.add(l),S.set(l,(S.get(l)??0)+1),l==="kind"?ae():re(l).schedule()}}function ee(l){re(l).flush()}function ae(){if(!v.value||!k.size)return;if(k.has("display_name")&&!i.display_name.trim()){y.value="提供商显示名称不能为空。";return}const l={};if(k.has("display_name")&&(l.display_name=i.display_name.trim()),k.has("kind")&&(l.kind=i.kind),k.has("base_url")&&(l.base_url=i.base_url.trim()),k.has("api_key")&&i.api_key.trim()&&(l.api_key=i.api_key.trim()),!Object.keys(l).length)return;const e=new Map([...k].map(a=>[a,S.get(a)??0]));we.enqueue({key:i.key,body:l,versions:e,...typeof l.api_key=="string"?{apiKeySnapshot:l.api_key}:{}})}async function je(l){p.value=!0;try{if(await g.patch(`/admin/v1/providers/${encodeURIComponent(l.key)}`,l.body),i.key===l.key){for(const[a,s]of l.versions)S.get(a)===s&&(k.delete(a),a==="api_key"&&i.api_key.trim()===l.apiKeySnapshot&&(i.api_key=""));y.value=void 0}const e=O.value.find(a=>a.key===l.key);e&&(typeof l.body.display_name=="string"&&(e.display_name=l.body.display_name),typeof l.body.kind=="string"&&(e.kind=l.body.kind),typeof l.body.base_url=="string"&&(e.base_url=l.body.base_url),typeof l.body.api_key=="string"&&(e.api_key_set=!0)),Z()}catch(e){i.key===l.key&&(y.value=j(e))}finally{p.value=!1}}async function C(l=!0){if(!(h.value||z.value)&&!(!l&&(!Q.value||!G.value))){l?(G.value=null,Q.value=!1,O.value=[],h.value=!0):z.value=!0,D.value=void 0;try{const e=await g.get(Re("/admin/v1/providers",{search:E.value.trim(),enabled:L.value==="all"?"":L.value,cursor:l?null:G.value,limit:50}));O.value.push(...e.items),G.value=e.next_cursor,Q.value=e.next_cursor!==null}catch(e){D.value=j(e)}finally{l?h.value=!1:z.value=!1}}}Be(()=>{C()});let B;function le(l=300){B!==void 0&&clearTimeout(B),B=setTimeout(()=>{B=void 0,h.value||z.value?le(100):C(!0)},l)}function Ce(){B!==void 0&&clearTimeout(B),B=void 0,le(0)}ce(E,()=>le());function xe(){ue(),v.value=!1,y.value=void 0,Object.assign(i,{key:"",display_name:"",kind:"openai_compatible",base_url:"",api_key:"",enabled:!0}),V.value=!0}async function he(l){ue(),v.value=!0,y.value=void 0;try{const e=await g.get(`/admin/v1/providers/${encodeURIComponent(l.key)}`);Object.assign(i,{key:l.key,display_name:e.provider.display_name,kind:e.provider.kind??"openai_compatible",base_url:e.provider.base_url,api_key:"",enabled:e.provider.enabled})}catch{Object.assign(i,{key:l.key,display_name:l.display_name,kind:l.kind??"openai_compatible",base_url:l.base_url,api_key:"",enabled:l.enabled})}V.value=!0}async function Ve(l){const e=l.enabled,a=!e;l.enabled=a;try{await g.patch(`/admin/v1/providers/${encodeURIComponent(l.key)}`,{enabled:a}),Z()}catch(s){l.enabled=e,D.value=j(s)}}async function Ue(l){if(await ke({title:`删除提供商“${l.display_name||l.key}”?`,description:"它的全部模型绑定会一并解除,并从所有模型分组中移除。此操作不可撤销。",confirmLabel:"删除提供商",danger:!0})){H.value=l.key;try{await g.delete(`/admin/v1/providers/${encodeURIComponent(l.key)}`),Z(`已删除提供商:${l.display_name||l.key}`),await C(!0)}catch(a){D.value=j(a)}finally{H.value=""}}}async function ve(){if(y.value=void 0,v.value){for(const a of M.values())a.flush();ae();return}const l=i.key.trim();if(!l){y.value="提供商标识不能为空。";return}p.value=!0;let e;try{const a={display_name:i.display_name.trim(),kind:i.kind,base_url:i.base_url.trim(),enabled:i.enabled};e=await g.post("/admin/v1/providers",{...a,key:l,api_key:i.api_key}),V.value=!1,i.api_key="",await C(!0),e&&await me(e)}catch(a){y.value=j(a)}finally{p.value=!1,i.api_key=""}}ce(V,l=>{if(!l&&v.value)for(const e of M.values())e.flush()});const X=d(!1),te=d(!1),b=d(),w=d(""),F=d("success"),I=d(),N=d([]),fe=d(!1),$=d([]),U=d(""),_=d(""),J=d("");async function me(l){I.value=l,N.value=[],fe.value=!1,$.value=[],U.value="",b.value=void 0,w.value="",X.value=!0,te.value=!0;const e=encodeURIComponent(l.key);try{const[a,s]=await Promise.allSettled([g.get(`/admin/v1/providers/${e}/discover`),g.get(`/admin/v1/providers/${e}`)]);if(a.status==="fulfilled"){const A=a.value;N.value=[...new Map((A.items??[]).filter(Y=>Y.id).map(Y=>[Y.id,Y])).values()],fe.value=A.truncated}else b.value=j(a.reason);s.status==="fulfilled"?$.value=s.value.pairs:b.value??=j(s.reason)}finally{te.value=!1}}function ne(l){return $.value.find(e=>e.upstream_model_id===l)}async function Je(l){const e=I.value;if(!(!e||_.value||J.value)){_.value=l.upstream_model_id,b.value=void 0,w.value="";try{await g.patch(`/admin/v1/pairs/${encodeURIComponent(e.key)}/${encodeURIComponent(l.model)}`,{enabled:!0}),l.enabled=!0,Z()}catch(a){b.value=j(a)}finally{_.value=""}}}async function oe(l){if(!(!I.value||!l.trim()||J.value)){_.value=l,b.value=void 0,w.value="";try{const e=await g.post(`/admin/v1/providers/${encodeURIComponent(I.value.key)}/models`,{model:l.trim()}),a=$.value.find(s=>s.model===e.model);a?(a.upstream_model_id=l.trim(),a.enabled=!0):$.value.push({model:e.model,upstream_model_id:l.trim(),enabled:!0}),e.metadata_source==="models.dev"?(F.value="success",w.value=`已从 models.dev 更新能力信息(${e.metadata_match} 匹配:${e.metadata_model})。`):e.metadata_source==="admin-override"?(F.value="success",w.value="检测到 models.dev 元数据,但此绑定已有管理员编辑,已保留现有值。"):(F.value="warning",w.value="models.dev 中未找到唯一匹配;此模型使用保守默认值,请到“模型管理”核对并编辑能力信息。"),U.value="",await C(!0)}catch(e){b.value=j(e)}finally{_.value=""}}}async function Pe(l){const e=I.value;if(!(!e||J.value||!await ke({title:`解除“${e.display_name||e.key}”与“${l.model}”的绑定?`,description:"该绑定会从所有模型分组中移除,后续注册表同步也不会自动恢复。",confirmLabel:"解除绑定",danger:!0}))){J.value=l.model,b.value=void 0,w.value="";try{await g.delete(`/admin/v1/pairs/${encodeURIComponent(e.key)}/${encodeURIComponent(l.model)}`),$.value=$.value.filter(A=>A.model!==l.model);const s=O.value.find(A=>A.key===e.key);s&&(s.pair_count=Math.max(0,s.pair_count-1)),w.value=`已永久解除绑定:${l.model}`,F.value="success",await C(!0)}catch(s){b.value=j(s)}finally{J.value=""}}}const Se=[{key:"key",title:"提供商",nowrap:!0},{key:"kind",title:"类型"},{key:"base_url",title:"端点地址"},{key:"api_key_set",title:"上游密钥"},{key:"enabled",title:"状态",nowrap:!0},{key:"models",title:"模型绑定"},{key:"actions",title:"操作",nowrap:!0}];return(l,e)=>(r(),c("div",Ke,[o("section",Ee,[e[24]||(e[24]=o("div",null,[o("h1",{class:"jf-page-title"},"提供商")],-1)),o("div",Le,[n(f,{variant:"secondary",icon:"arrow-path",loading:h.value,onClick:e[0]||(e[0]=a=>C(!0))},{default:t(()=>[...e[22]||(e[22]=[u("刷新",-1)])]),_:1},8,["loading"]),n(f,{icon:"plus",onClick:xe},{default:t(()=>[...e[23]||(e[23]=[u("添加提供商",-1)])]),_:1})])]),D.value?(r(),x(se,{key:0,error:D.value},null,8,["error"])):R("",!0),n(Te,{flush:""},Ie({header:t(()=>[o("div",Ge,[e[25]||(e[25]=o("h2",{class:"jf-section-title"},"已配置提供商",-1)),n(P,{tone:"neutral"},{default:t(()=>[u(m(O.value.length),1)]),_:1})])]),actions:t(()=>[o("div",Qe,[n(q,{modelValue:E.value,"onUpdate:modelValue":e[1]||(e[1]=a=>E.value=a),icon:"magnifying-glass",placeholder:"搜索提供商名称或标识","aria-label":"搜索提供商名称或标识",class:"w-48 sm:w-60",onKeydown:pe(Ce,["enter"])},null,8,["modelValue"]),n(_e,{modelValue:L.value,"onUpdate:modelValue":[e[2]||(e[2]=a=>L.value=a),e[3]||(e[3]=a=>C(!0))],items:$e,label:"提供商状态筛选",disabled:h.value||z.value,class:"w-32"},null,8,["modelValue","disabled"])])]),default:t(()=>[o("div",He,[n(Ne,{rows:O.value,columns:Se,loading:h.value,"empty-text":"尚未配置任何提供商"},{"cell-key":t(({row:a})=>[o("div",We,m(a.display_name||a.key),1),o("code",Xe,m(a.key),1)]),"cell-kind":t(({row:a})=>[n(P,{tone:"neutral",class:"jf-nowrap"},{default:t(()=>[u(m(de.find(s=>s.value===(a.kind??"openai_compatible"))?.label||"OpenAI 兼容"),1)]),_:2},1024)]),"cell-base_url":t(({row:a})=>[o("span",Ye,m(a.base_url||"—"),1)]),"cell-api_key_set":t(({row:a})=>[n(P,{tone:a.api_key_set?"success":"warning",class:"jf-nowrap"},{default:t(()=>[u(m(a.api_key_set?"已配置":"未配置"),1)]),_:2},1032,["tone"])]),"cell-enabled":t(({row:a})=>[o("div",Ze,[n(ge,{"model-value":a.enabled,"aria-label":`${a.enabled?"停用":"启用"}提供商 ${a.display_name||a.key}`,"onUpdate:modelValue":s=>Ve(a)},null,8,["model-value","aria-label","onUpdate:modelValue"]),o("span",{class:ze(["jf-caption font-medium select-none",a.enabled?"text-ink":"text-ink-secondary"])},m(a.enabled?"已启用":"已停用"),3)])]),"cell-models":t(({row:a})=>[n(f,{variant:"secondary",size:"sm",onClick:s=>me(a)},{default:t(()=>[u(" 模型绑定 · "+m(a.pair_count),1)]),_:2},1032,["onClick"])]),"cell-actions":t(({row:a})=>[o("div",ea,[n(f,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:s=>he(a)},{default:t(()=>[...e[26]||(e[26]=[u("编辑",-1)])]),_:1},8,["onClick"]),a.owner==="admin"?(r(),x(f,{key:0,variant:"danger-ghost",size:"sm",icon:"trash",loading:H.value===a.key,disabled:!!H.value,"aria-label":`删除 ${a.display_name||a.key}`,onClick:s=>Ue(a)},{default:t(()=>[...e[27]||(e[27]=[u(" 删除 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])):(r(),c("span",aa,[n(f,{variant:"danger-ghost",size:"sm",icon:"trash",disabled:"","aria-label":`删除 ${a.display_name||a.key}(同步或配置文件来源的提供商不可删除,可停用)`},{default:t(()=>[...e[28]||(e[28]=[u(" 删除 ",-1)])]),_:1},8,["aria-label"])]))])]),_:1},8,["rows","loading"])])]),_:2},[Q.value?{name:"footer",fn:t(()=>[o("div",la,[n(f,{variant:"secondary",loading:z.value,disabled:h.value,onClick:e[4]||(e[4]=a=>C(!1))},{default:t(()=>[...e[29]||(e[29]=[u(" 加载更多提供商 ",-1)])]),_:1},8,["loading","disabled"])])]),key:"0"}:void 0]),1024),n(be,{open:V.value,"onUpdate:open":e[16]||(e[16]=a=>V.value=a),title:v.value?"编辑提供商":"添加提供商"},{footer:t(()=>[o("div",ta,[v.value?(r(),x(f,{key:0,variant:"secondary",onClick:e[14]||(e[14]=a=>V.value=!1)},{default:t(()=>[...e[30]||(e[30]=[u("完成",-1)])]),_:1})):(r(),c(K,{key:1},[n(f,{variant:"ghost",disabled:p.value,onClick:e[15]||(e[15]=a=>V.value=!1)},{default:t(()=>[...e[31]||(e[31]=[u("取消",-1)])]),_:1},8,["disabled"]),n(f,{loading:p.value,onClick:ve},{default:t(()=>[...e[32]||(e[32]=[u("创建提供商",-1)])]),_:1},8,["loading"])],64))])]),default:t(()=>[o("form",{class:"grid gap-5",onSubmit:ye(ve,["prevent"])},[n(T,{label:"提供商标识",name:"provider-key",required:""},{default:t(()=>[n(q,{modelValue:i.key,"onUpdate:modelValue":e[5]||(e[5]=a=>i.key=a),disabled:v.value||p.value,placeholder:"例如 deepseek",class:"w-full font-mono",required:""},null,8,["modelValue","disabled"])]),_:1}),n(T,{label:"显示名称",name:"provider-name",required:""},{default:t(()=>[n(q,{"model-value":i.display_name,disabled:!v.value&&p.value,placeholder:"例如 DeepSeek 官方",class:"w-full",required:"","onUpdate:modelValue":e[6]||(e[6]=a=>W("display_name",a)),onBlur:e[7]||(e[7]=a=>ee("display_name"))},null,8,["model-value","disabled"])]),_:1}),n(T,{label:"协议类型",name:"provider-kind"},{default:t(()=>[n(_e,{"model-value":i.kind,items:de,disabled:!v.value&&p.value,class:"w-full","onUpdate:modelValue":e[8]||(e[8]=a=>W("kind",String(a)))},null,8,["model-value","disabled"])]),_:1}),n(T,{label:"API 端点地址",name:"provider-endpoint"},{default:t(()=>[n(q,{"model-value":i.base_url,disabled:!v.value&&p.value,placeholder:"https://api.example.com/v1",class:"w-full font-mono","onUpdate:modelValue":e[9]||(e[9]=a=>W("base_url",a)),onBlur:e[10]||(e[10]=a=>ee("base_url"))},null,8,["model-value","disabled"])]),_:1}),n(T,{label:"上游密钥",name:"provider-apikey"},{default:t(()=>[n(q,{"model-value":i.api_key,type:"password",disabled:!v.value&&p.value,placeholder:v.value?"保持当前密钥不变":"sk-...",class:"w-full font-mono","onUpdate:modelValue":e[11]||(e[11]=a=>W("api_key",a)),onBlur:e[12]||(e[12]=a=>ee("api_key"))},null,8,["model-value","disabled","placeholder"])]),_:1}),v.value?R("",!0):(r(),x(T,{key:0,label:"启用该提供商",inline:""},{default:t(()=>[n(ge,{modelValue:i.enabled,"onUpdate:modelValue":e[13]||(e[13]=a=>i.enabled=a),disabled:p.value},null,8,["modelValue","disabled"])]),_:1})),y.value?(r(),x(se,{key:1,error:y.value},null,8,["error"])):R("",!0)],32)]),_:1},8,["open","title"]),n(be,{open:X.value,"onUpdate:open":e[21]||(e[21]=a=>X.value=a),title:`管理模型绑定 · ${I.value?.display_name||I.value?.key}`,size:"lg"},{footer:t(()=>[o("div",$a,[n(f,{variant:"secondary",onClick:e[20]||(e[20]=a=>X.value=!1)},{default:t(()=>[...e[42]||(e[42]=[u("完成",-1)])]),_:1})])]),default:t(()=>[o("div",na,[b.value?(r(),x(se,{key:0,error:b.value},null,8,["error"])):R("",!0),w.value?(r(),x(qe,{key:1,tone:F.value,title:w.value},null,8,["tone","title"])):R("",!0),o("div",oa,[e[34]||(e[34]=o("h3",{class:"jf-module-title mb-2"},"手动绑定模型",-1)),o("div",ia,[n(q,{modelValue:U.value,"onUpdate:modelValue":e[17]||(e[17]=a=>U.value=a),placeholder:"输入上游模型 ID,例如 gpt-4o","aria-label":"输入上游模型 ID",class:"grow font-mono",onKeydown:e[18]||(e[18]=pe(ye(a=>oe(U.value),["prevent"]),["enter"]))},null,8,["modelValue"]),n(f,{variant:"secondary",disabled:!U.value.trim()||!!_.value,loading:_.value===U.value.trim(),onClick:e[19]||(e[19]=a=>oe(U.value))},{default:t(()=>[...e[33]||(e[33]=[u(" 绑定 ",-1)])]),_:1},8,["disabled","loading"])])]),$.value.length?(r(),c("div",sa,[o("div",da,[e[35]||(e[35]=o("h3",{class:"jf-module-title"},"当前模型绑定",-1)),n(P,{tone:"neutral"},{default:t(()=>[u(m($.value.length),1)]),_:1})]),o("div",ua,[(r(!0),c(K,null,ie($.value,a=>(r(),c("div",{key:a.model,class:"flex items-center justify-between gap-3 rounded-[var(--jf-radius-control)] bg-tonal px-3.5 py-2.5"},[o("div",ra,[o("code",va,m(a.model),1),o("span",fa,"上游 ID:"+m(a.upstream_model_id),1)]),o("div",ma,[n(P,{tone:a.enabled?"success":"neutral"},{default:t(()=>[u(m(a.enabled?"已启用":"已停用"),1)]),_:2},1032,["tone"]),n(f,{size:"sm",variant:"danger-ghost",loading:J.value===a.model,disabled:!!J.value||!!_.value,"aria-label":`解除绑定 ${a.model}`,onClick:s=>Pe(a)},{default:t(()=>[...e[36]||(e[36]=[u(" 解除绑定 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])])]))),128))])])):R("",!0),o("div",null,[o("div",ca,[e[37]||(e[37]=o("h3",{class:"jf-module-title"},"发现的上游模型",-1)),n(P,{tone:"neutral"},{default:t(()=>[u(m(N.value.length),1)]),_:1})]),te.value?(r(),c("div",pa,[(r(),c(K,null,ie(5,a=>n(Fe,{key:a,height:"40px",shape:"block"})),64))])):N.value.length?(r(),c("div",ya,[(r(!0),c(K,null,ie(N.value,a=>(r(),c("div",{key:a.id,class:"flex items-center justify-between gap-3 rounded-[var(--jf-radius-control)] bg-tonal px-3.5 py-2.5"},[o("div",ka,[o("code",ba,m(a.id),1),a.label?(r(),c("span",_a,m(a.label),1)):R("",!0)]),o("div",ga,[ne(a.id)?.enabled?(r(),x(P,{key:0,tone:"success"},{default:t(()=>[...e[38]||(e[38]=[u("已绑定",-1)])]),_:1})):ne(a.id)?(r(),c(K,{key:1},[n(P,{tone:"neutral"},{default:t(()=>[...e[39]||(e[39]=[u("已绑定 · 已停用",-1)])]),_:1}),n(f,{size:"sm",variant:"ghost",loading:_.value===a.id,disabled:!!_.value||!!J.value,onClick:s=>Je(ne(a.id))},{default:t(()=>[...e[40]||(e[40]=[u(" 重新启用 ",-1)])]),_:1},8,["loading","disabled","onClick"])],64)):(r(),x(f,{key:2,size:"sm",variant:"ghost",loading:_.value===a.id,onClick:s=>oe(a.id)},{default:t(()=>[...e[41]||(e[41]=[u(" 绑定 ",-1)])]),_:1},8,["loading","onClick"]))])]))),128))])):(r(),c("p",wa,"未发现可用模型"))])])]),_:1},8,["open","title"])]))}});export{za as default}; diff --git a/internal/api/dashboard/static/web/assets/Providers-i1IINMuR.js b/internal/api/dashboard/static/web/assets/Providers-i1IINMuR.js deleted file mode 100644 index 3a1d548..0000000 --- a/internal/api/dashboard/static/web/assets/Providers-i1IINMuR.js +++ /dev/null @@ -1 +0,0 @@ -import{d as Ve,o as he,z as Ue,i as c,b as o,f as n,w as t,J as m,c as $,h as U,e as Je,r as i,a as _,B as Pe,g as r,t as f,C as re,j as ve,F as H,q as le,D as Se,E as fe,l as u}from"./index-4SLuEZVi.js";import{c as Me,a as Be}from"./autosave-DjhT3uag.js";import{_ as ae,J as Ie,e as C,a as Oe}from"./field-context-CK2hRgAr.js";import{J as S}from"./JfBadge-BNbswCCo.js";import{J as me}from"./JfDrawer-CHIy4Mgq.js";import{J as R}from"./JfField--tcDfYWs.js";import{J as q}from"./JfInput-CMwI48jv.js";import{J as pe}from"./JfSelect-BuGLsn3z.js";import{J as Ae}from"./JfSkeleton-DtHcp-jn.js";import{J as ce}from"./JfSwitch-Ck4z1ivX.js";import{J as De}from"./JfTable-DL6XTgQI.js";import"./control-attrs-CG7deI17.js";const Re={class:"jf-stack"},qe={class:"jf-toolbar"},ze={class:"jf-action-group"},Fe={class:"flex items-center gap-2"},Ne={class:"jf-action-group"},Ke={class:"jf-scroll-x"},Ee={class:"font-medium"},Te={class:"jf-caption font-mono text-ink-secondary"},Le={class:"jf-caption font-mono text-ink-secondary jf-anywhere"},Qe={class:"jf-action-group justify-end"},Ge={class:"flex justify-center"},He={class:"jf-action-group justify-end"},We={class:"grid gap-5"},Xe={class:"rounded-[var(--jf-radius-control)] border border-line p-4"},Ye={class:"flex gap-2"},Ze={key:2},el={class:"flex items-center justify-between mb-2"},ll={class:"grid gap-2"},al={class:"min-w-0"},tl={class:"font-mono font-medium block jf-truncate"},nl={class:"jf-caption text-ink-secondary block"},ol={class:"jf-action-group shrink-0"},sl={class:"flex items-center justify-between mb-2"},il={key:0,class:"grid gap-2","aria-busy":"true"},dl={key:1,class:"grid gap-2 max-h-[460px] overflow-y-auto pr-1"},ul={class:"min-w-0"},rl={class:"font-mono font-medium block jf-truncate"},vl={key:0,class:"jf-caption text-ink-secondary block"},fl={class:"shrink-0"},ml={key:2,class:"py-6 text-center text-sm text-ink-secondary"},pl={class:"jf-action-group justify-end"},Ul=Ve({__name:"Providers",setup(cl){const x=i(!1),M=i(!1),B=i([]),W=i(""),N=i("all"),K=i(null),E=i(!1),I=i(),V=i(!1),T=i(""),v=i(!1),p=i(!1),y=i(),s=Se({key:"",display_name:"",kind:"openai_compatible",base_url:"",api_key:"",enabled:!0}),k=new Set,J=new Map,P=new Map,ye=Be(be,(a,e)=>e),te=[{label:"OpenAI",value:"openai"},{label:"OpenAI 兼容",value:"openai_compatible"},{label:"Anthropic",value:"anthropic"},{label:"Gemini",value:"gemini"}],ke=[{label:"全部状态",value:"all"},{label:"已启用",value:"true"},{label:"已禁用",value:"false"}];function ne(){for(const a of P.values())a.cancel();P.clear(),k.clear(),J.clear()}function oe(a){let e=P.get(a);return e||(e=Me(()=>Y()),P.set(a,e)),e}function L(a,e){if(s[a]=e,y.value=void 0,!!v.value){if(a==="api_key"&&!e.trim()){P.get(a)?.cancel(),k.delete(a),J.set(a,(J.get(a)??0)+1);return}k.add(a),J.set(a,(J.get(a)??0)+1),a==="kind"?Y():oe(a).schedule()}}function X(a){oe(a).flush()}function Y(){if(!v.value||!k.size)return;if(k.has("display_name")&&!s.display_name.trim()){y.value="提供商显示名称不能为空。";return}const a={};if(k.has("display_name")&&(a.display_name=s.display_name.trim()),k.has("kind")&&(a.kind=s.kind),k.has("base_url")&&(a.base_url=s.base_url.trim()),k.has("api_key")&&s.api_key.trim()&&(a.api_key=s.api_key.trim()),!Object.keys(a).length)return;const e=new Map([...k].map(l=>[l,J.get(l)??0]));ye.enqueue({key:s.key,body:a,versions:e,...typeof a.api_key=="string"?{apiKeySnapshot:a.api_key}:{}})}async function be(a){p.value=!0;try{if(await _.patch(`/admin/v1/providers/${encodeURIComponent(a.key)}`,a.body),s.key===a.key){for(const[l,d]of a.versions)J.get(l)===d&&(k.delete(l),l==="api_key"&&s.api_key.trim()===a.apiKeySnapshot&&(s.api_key=""));y.value=void 0}const e=B.value.find(l=>l.key===a.key);e&&(typeof a.body.display_name=="string"&&(e.display_name=a.body.display_name),typeof a.body.kind=="string"&&(e.kind=a.body.kind),typeof a.body.base_url=="string"&&(e.base_url=a.body.base_url),typeof a.body.api_key=="string"&&(e.api_key_set=!0)),fe()}catch(e){s.key===a.key&&(y.value=C(e))}finally{p.value=!1}}async function g(a=!0){if(!(x.value||M.value)&&!(!a&&(!E.value||!K.value))){a?(K.value=null,E.value=!1,B.value=[],x.value=!0):M.value=!0,I.value=void 0;try{const e=await _.get(Pe("/admin/v1/providers",{search:W.value.trim(),enabled:N.value==="all"?"":N.value,cursor:a?null:K.value,limit:50}));B.value.push(...e.items),K.value=e.next_cursor,E.value=e.next_cursor!==null}catch(e){I.value=C(e)}finally{a?x.value=!1:M.value=!1}}}he(()=>{g()});function _e(){ne(),v.value=!1,y.value=void 0,Object.assign(s,{key:"",display_name:"",kind:"openai_compatible",base_url:"",api_key:"",enabled:!0}),V.value=!0}async function ge(a){ne(),v.value=!0,y.value=void 0;try{const e=await _.get(`/admin/v1/providers/${encodeURIComponent(a.key)}`);Object.assign(s,{key:a.key,display_name:e.provider.display_name,kind:e.provider.kind??"openai_compatible",base_url:e.provider.base_url,api_key:"",enabled:e.provider.enabled})}catch{Object.assign(s,{key:a.key,display_name:a.display_name,kind:a.kind??"openai_compatible",base_url:a.base_url,api_key:"",enabled:a.enabled})}V.value=!0}async function we(a){const e=a.enabled,l=!e;a.enabled=l;try{await _.patch(`/admin/v1/providers/${encodeURIComponent(a.key)}`,{enabled:l}),fe()}catch(d){a.enabled=e,I.value=C(d)}}async function je(a){if(window.confirm(`确定要删除提供商“${a.display_name||a.key}”吗?关联的绑定关系也将被清理。`)){T.value=a.key;try{await _.delete(`/admin/v1/providers/${encodeURIComponent(a.key)}`),await g(!0)}catch(e){I.value=C(e)}finally{T.value=""}}}async function se(){if(y.value=void 0,v.value){for(const l of P.values())l.flush();Y();return}const a=s.key.trim();if(!a){y.value="提供商标识不能为空。";return}p.value=!0;let e;try{const l={display_name:s.display_name.trim(),kind:s.kind,base_url:s.base_url.trim(),enabled:s.enabled};e=await _.post("/admin/v1/providers",{...l,key:a,api_key:s.api_key}),V.value=!1,s.api_key="",await g(!0),e&&await de(e)}catch(l){y.value=C(l)}finally{p.value=!1,s.api_key=""}}Ue(V,a=>{if(!a&&v.value)for(const e of P.values())e.flush()});const Q=i(!1),Z=i(!1),w=i(),j=i(""),z=i("success"),O=i(),F=i([]),ie=i(!1),b=i([]),h=i(""),A=i(""),D=i("");async function de(a){O.value=a,F.value=[],ie.value=!1,b.value=[],h.value="",w.value=void 0,j.value="",Q.value=!0,Z.value=!0;const e=encodeURIComponent(a.key);try{const[l,d]=await Promise.allSettled([_.get(`/admin/v1/providers/${e}/discover`),_.get(`/admin/v1/providers/${e}`)]);if(l.status==="fulfilled"){const ue=l.value;F.value=[...new Map((ue.items??[]).filter(G=>G.id).map(G=>[G.id,G])).values()],ie.value=ue.truncated}else w.value=C(l.reason);d.status==="fulfilled"?b.value=d.value.pairs:w.value??=C(d.reason)}finally{Z.value=!1}}function $e(a){return b.value.some(e=>e.model===a&&e.enabled)}async function ee(a){if(!(!O.value||!a.trim()||D.value)){A.value=a,w.value=void 0,j.value="";try{const e=await _.post(`/admin/v1/providers/${encodeURIComponent(O.value.key)}/models`,{model:a.trim()}),l=b.value.find(d=>d.model===e.model);l?(l.upstream_model_id=a.trim(),l.enabled=!0):b.value.push({model:e.model,upstream_model_id:a.trim(),enabled:!0}),e.metadata_source==="models.dev"?(z.value="success",j.value=`已从 models.dev 更新能力信息(${e.metadata_match} 匹配:${e.metadata_model})。`):e.metadata_source==="admin-override"?(z.value="success",j.value="检测到 models.dev 元数据,但此绑定已有管理员编辑,已保留现有值。"):(z.value="warning",j.value="models.dev 中未找到唯一匹配;此模型使用保守默认值,请到“模型管理”核对并编辑能力信息。"),h.value="",await g(!0)}catch(e){w.value=C(e)}finally{A.value=""}}}async function Ce(a){const e=O.value;if(!(!e||D.value)&&window.confirm(`确定永久解除“${e.display_name||e.key}”与“${a.model}”的绑定吗?该绑定会从所有路由组移除,后续注册表同步不会自动恢复。`)){D.value=a.model,w.value=void 0,j.value="";try{await _.delete(`/admin/v1/pairs/${encodeURIComponent(e.key)}/${encodeURIComponent(a.model)}`),b.value=b.value.filter(d=>d.model!==a.model);const l=B.value.find(d=>d.key===e.key);l&&(l.pair_count=Math.max(0,l.pair_count-1)),j.value=`已永久解除绑定:${a.model}`,z.value="success",await g(!0)}catch(l){w.value=C(l)}finally{D.value=""}}}const xe=[{key:"key",title:"提供商",nowrap:!0},{key:"kind",title:"类型"},{key:"base_url",title:"端点地址"},{key:"api_key_set",title:"API 密钥"},{key:"enabled",title:"状态"},{key:"models",title:"模型绑定"},{key:"actions",title:"操作",nowrap:!0}];return(a,e)=>(u(),c("div",Re,[o("section",qe,[e[25]||(e[25]=o("div",null,[o("h1",{class:"jf-page-title"},"提供商")],-1)),o("div",ze,[n(m,{variant:"secondary",icon:"arrow-path",loading:x.value,onClick:e[0]||(e[0]=l=>g(!0))},{default:t(()=>[...e[23]||(e[23]=[r("刷新",-1)])]),_:1},8,["loading"]),n(m,{icon:"plus",onClick:_e},{default:t(()=>[...e[24]||(e[24]=[r("添加提供商",-1)])]),_:1})])]),I.value?(u(),$(ae,{key:0,error:I.value},null,8,["error"])):U("",!0),n(Ie,{flush:""},Je({header:t(()=>[o("div",Fe,[e[26]||(e[26]=o("h2",{class:"jf-section-title"},"已配置提供商",-1)),n(S,{tone:"neutral"},{default:t(()=>[r(f(B.value.length),1)]),_:1})])]),actions:t(()=>[o("div",Ne,[n(q,{modelValue:W.value,"onUpdate:modelValue":e[1]||(e[1]=l=>W.value=l),icon:"magnifying-glass",placeholder:"搜索提供商名称或标识","aria-label":"搜索提供商名称或标识",disabled:x.value||M.value,class:"w-48 sm:w-60",onKeydown:e[2]||(e[2]=re(l=>g(!0),["enter"]))},null,8,["modelValue","disabled"]),n(pe,{modelValue:N.value,"onUpdate:modelValue":[e[3]||(e[3]=l=>N.value=l),e[4]||(e[4]=l=>g(!0))],items:ke,label:"提供商状态筛选",disabled:x.value||M.value,class:"w-32"},null,8,["modelValue","disabled"])])]),default:t(()=>[o("div",Ke,[n(De,{rows:B.value,columns:xe,loading:x.value,"empty-text":"尚未配置任何提供商"},{"cell-key":t(({row:l})=>[o("div",Ee,f(l.display_name||l.key),1),o("code",Te,f(l.key),1)]),"cell-kind":t(({row:l})=>[n(S,{tone:"neutral",class:"jf-nowrap"},{default:t(()=>[r(f(te.find(d=>d.value===(l.kind??"openai_compatible"))?.label||"OpenAI 兼容"),1)]),_:2},1024)]),"cell-base_url":t(({row:l})=>[o("span",Le,f(l.base_url||"—"),1)]),"cell-api_key_set":t(({row:l})=>[n(S,{tone:l.api_key_set?"success":"warning",class:"jf-nowrap"},{default:t(()=>[r(f(l.api_key_set?"已配置":"未配置"),1)]),_:2},1032,["tone"])]),"cell-enabled":t(({row:l})=>[n(ce,{"model-value":l.enabled,"aria-label":`${l.enabled?"禁用":"启用"} ${l.display_name||l.key}`,"onUpdate:modelValue":d=>we(l)},null,8,["model-value","aria-label","onUpdate:modelValue"])]),"cell-models":t(({row:l})=>[n(m,{variant:"secondary",size:"sm",onClick:d=>de(l)},{default:t(()=>[r(" 模型绑定 · "+f(l.pair_count),1)]),_:2},1032,["onClick"])]),"cell-actions":t(({row:l})=>[o("div",Qe,[n(m,{variant:"ghost",size:"sm",icon:"pencil-square",onClick:d=>ge(l)},{default:t(()=>[...e[27]||(e[27]=[r("编辑",-1)])]),_:1},8,["onClick"]),l.owner==="admin"?(u(),$(m,{key:0,variant:"danger-ghost",size:"sm",icon:"trash",loading:T.value===l.key,disabled:!!T.value,"aria-label":`删除 ${l.display_name||l.key}`,onClick:d=>je(l)},{default:t(()=>[...e[28]||(e[28]=[r(" 删除 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])):U("",!0)])]),_:1},8,["rows","loading"])])]),_:2},[E.value?{name:"footer",fn:t(()=>[o("div",Ge,[n(m,{variant:"secondary",loading:M.value,disabled:x.value,onClick:e[5]||(e[5]=l=>g(!1))},{default:t(()=>[...e[29]||(e[29]=[r(" 加载更多提供商 ",-1)])]),_:1},8,["loading","disabled"])])]),key:"0"}:void 0]),1024),n(me,{open:V.value,"onUpdate:open":e[17]||(e[17]=l=>V.value=l),title:v.value?"编辑提供商":"添加提供商"},{footer:t(()=>[o("div",He,[v.value?(u(),$(m,{key:0,variant:"secondary",onClick:e[15]||(e[15]=l=>V.value=!1)},{default:t(()=>[...e[30]||(e[30]=[r("完成",-1)])]),_:1})):(u(),c(H,{key:1},[n(m,{variant:"ghost",disabled:p.value,onClick:e[16]||(e[16]=l=>V.value=!1)},{default:t(()=>[...e[31]||(e[31]=[r("取消",-1)])]),_:1},8,["disabled"]),n(m,{loading:p.value,onClick:se},{default:t(()=>[...e[32]||(e[32]=[r("创建提供商",-1)])]),_:1},8,["loading"])],64))])]),default:t(()=>[o("form",{class:"grid gap-5",onSubmit:ve(se,["prevent"])},[n(R,{label:"提供商标识",name:"provider-key",required:""},{default:t(()=>[n(q,{modelValue:s.key,"onUpdate:modelValue":e[6]||(e[6]=l=>s.key=l),disabled:v.value||p.value,placeholder:"例如 deepseek",class:"w-full font-mono",required:""},null,8,["modelValue","disabled"])]),_:1}),n(R,{label:"显示名称",name:"provider-name",required:""},{default:t(()=>[n(q,{"model-value":s.display_name,disabled:!v.value&&p.value,placeholder:"例如 DeepSeek 官方",class:"w-full",required:"","onUpdate:modelValue":e[7]||(e[7]=l=>L("display_name",l)),onBlur:e[8]||(e[8]=l=>X("display_name"))},null,8,["model-value","disabled"])]),_:1}),n(R,{label:"协议类型",name:"provider-kind"},{default:t(()=>[n(pe,{"model-value":s.kind,items:te,disabled:!v.value&&p.value,class:"w-full","onUpdate:modelValue":e[9]||(e[9]=l=>L("kind",String(l)))},null,8,["model-value","disabled"])]),_:1}),n(R,{label:"API 端点地址",name:"provider-endpoint"},{default:t(()=>[n(q,{"model-value":s.base_url,disabled:!v.value&&p.value,placeholder:"https://api.example.com/v1",class:"w-full font-mono","onUpdate:modelValue":e[10]||(e[10]=l=>L("base_url",l)),onBlur:e[11]||(e[11]=l=>X("base_url"))},null,8,["model-value","disabled"])]),_:1}),n(R,{label:"API 密钥",name:"provider-apikey"},{default:t(()=>[n(q,{"model-value":s.api_key,type:"password",disabled:!v.value&&p.value,placeholder:v.value?"保持当前密钥不变":"sk-...",class:"w-full font-mono","onUpdate:modelValue":e[12]||(e[12]=l=>L("api_key",l)),onBlur:e[13]||(e[13]=l=>X("api_key"))},null,8,["model-value","disabled","placeholder"])]),_:1}),v.value?U("",!0):(u(),$(R,{key:0,label:"启用该提供商",inline:""},{default:t(()=>[n(ce,{modelValue:s.enabled,"onUpdate:modelValue":e[14]||(e[14]=l=>s.enabled=l),disabled:p.value},null,8,["modelValue","disabled"])]),_:1})),y.value?(u(),$(ae,{key:1,error:y.value},null,8,["error"])):U("",!0)],32)]),_:1},8,["open","title"]),n(me,{open:Q.value,"onUpdate:open":e[22]||(e[22]=l=>Q.value=l),title:`管理模型绑定 · ${O.value?.display_name||O.value?.key}`,size:"lg"},{footer:t(()=>[o("div",pl,[n(m,{variant:"secondary",onClick:e[21]||(e[21]=l=>Q.value=!1)},{default:t(()=>[...e[40]||(e[40]=[r("完成",-1)])]),_:1})])]),default:t(()=>[o("div",We,[w.value?(u(),$(ae,{key:0,error:w.value},null,8,["error"])):U("",!0),j.value?(u(),$(Oe,{key:1,tone:z.value,title:j.value},null,8,["tone","title"])):U("",!0),o("div",Xe,[e[34]||(e[34]=o("h3",{class:"jf-module-title mb-2"},"手动绑定模型",-1)),o("div",Ye,[n(q,{modelValue:h.value,"onUpdate:modelValue":e[18]||(e[18]=l=>h.value=l),placeholder:"输入上游模型 ID,例如 gpt-4o","aria-label":"输入上游模型 ID",class:"grow font-mono",onKeydown:e[19]||(e[19]=re(ve(l=>ee(h.value),["prevent"]),["enter"]))},null,8,["modelValue"]),n(m,{variant:"secondary",disabled:!h.value.trim()||!!A.value,loading:A.value===h.value.trim(),onClick:e[20]||(e[20]=l=>ee(h.value))},{default:t(()=>[...e[33]||(e[33]=[r(" 绑定 ",-1)])]),_:1},8,["disabled","loading"])])]),b.value.length?(u(),c("div",Ze,[o("div",el,[e[35]||(e[35]=o("h3",{class:"jf-module-title"},"当前模型绑定",-1)),n(S,{tone:"neutral"},{default:t(()=>[r(f(b.value.length),1)]),_:1})]),o("div",ll,[(u(!0),c(H,null,le(b.value,l=>(u(),c("div",{key:l.model,class:"flex items-center justify-between gap-3 rounded-[var(--jf-radius-control)] bg-tonal px-3.5 py-2.5"},[o("div",al,[o("code",tl,f(l.model),1),o("span",nl,"上游 ID:"+f(l.upstream_model_id),1)]),o("div",ol,[n(S,{tone:l.enabled?"success":"neutral"},{default:t(()=>[r(f(l.enabled?"已启用":"已停用"),1)]),_:2},1032,["tone"]),n(m,{size:"sm",variant:"danger-ghost",loading:D.value===l.model,disabled:!!D.value||!!A.value,"aria-label":`解除绑定 ${l.model}`,onClick:d=>Ce(l)},{default:t(()=>[...e[36]||(e[36]=[r(" 解除绑定 ",-1)])]),_:1},8,["loading","disabled","aria-label","onClick"])])]))),128))])])):U("",!0),o("div",null,[o("div",sl,[e[37]||(e[37]=o("h3",{class:"jf-module-title"},"发现的上游模型",-1)),n(S,{tone:"neutral"},{default:t(()=>[r(f(F.value.length),1)]),_:1})]),Z.value?(u(),c("div",il,[(u(),c(H,null,le(5,l=>n(Ae,{key:l,height:"40px",shape:"block"})),64))])):F.value.length?(u(),c("div",dl,[(u(!0),c(H,null,le(F.value,l=>(u(),c("div",{key:l.id,class:"flex items-center justify-between gap-3 rounded-[var(--jf-radius-control)] bg-tonal px-3.5 py-2.5"},[o("div",ul,[o("code",rl,f(l.id),1),l.label?(u(),c("span",vl,f(l.label),1)):U("",!0)]),o("div",fl,[$e(l.id)?(u(),$(S,{key:0,tone:"success"},{default:t(()=>[...e[38]||(e[38]=[r("已绑定",-1)])]),_:1})):(u(),$(m,{key:1,size:"sm",variant:"ghost",loading:A.value===l.id,onClick:d=>ee(l.id)},{default:t(()=>[...e[39]||(e[39]=[r(" 绑定 ",-1)])]),_:1},8,["loading","onClick"]))])]))),128))])):(u(),c("p",ml,"未发现可用模型"))])])]),_:1},8,["open","title"])]))}});export{Ul as default}; diff --git a/internal/api/dashboard/static/web/assets/Settings-DWBFsTfp.js b/internal/api/dashboard/static/web/assets/Settings-DWBFsTfp.js deleted file mode 100644 index a8b474a..0000000 --- a/internal/api/dashboard/static/web/assets/Settings-DWBFsTfp.js +++ /dev/null @@ -1 +0,0 @@ -import{d as fe,i as I,b as i,v as ke,H as te,t as Je,K as Ne,y as Y,l as U,_ as Ue,o as $e,f as a,w as r,J as T,c as Z,h as ue,r as S,a as M,g as A,F as Ce,q as Pe,j as qe,D as ie,u as Be,A as Te,E as se,L as Me}from"./index-4SLuEZVi.js";import{c as Ae,a as Fe,r as Ie}from"./autosave-DjhT3uag.js";import{j as De,_ as de,J as F,a as Oe,e as G}from"./field-context-CK2hRgAr.js";import{J as Ee}from"./JfCheckbox-DpJDzTQd.js";import{J as d}from"./JfField--tcDfYWs.js";import{J as C}from"./JfInput-CMwI48jv.js";import{J as ve}from"./JfSelect-BuGLsn3z.js";import{J as N}from"./JfSwitch-Ck4z1ivX.js";import"./control-attrs-CG7deI17.js";const He={class:"jf-slider-container"},Ke={class:"jf-slider-track-wrap"},Re=["id","min","max","step","value","disabled","aria-describedby"],ze={class:"jf-slider-badge","aria-live":"polite"},Ge=fe({__name:"JfSlider",props:{modelValue:{default:0},min:{default:0},max:{default:1},step:{default:.01},disabled:{type:Boolean,default:!1},formatValue:{type:Function,default:void 0},format:{type:Function,default:void 0}},emits:["update:modelValue","change"],setup(p,{emit:b}){const o=p,m=b,u=Ne(De),n=Y(()=>Number(o.modelValue??o.min)),c=Y(()=>{const v=o.max-o.min;if(v<=0)return 0;const _=(n.value-o.min)/v*100;return Math.min(100,Math.max(0,_))}),y=Y(()=>{const v=o.formatValue??o.format;return v?v(n.value):String(n.value)});function P(v){const _=v.target;m("update:modelValue",Number(_.value))}function j(v){const _=v.target;m("change",Number(_.value))}return(v,_)=>(U(),I("div",He,[i("div",Ke,[i("input",{type:"range",class:"jf-slider-input",id:te(u)?.controlId,min:p.min,max:p.max,step:p.step,value:n.value,disabled:p.disabled,"aria-describedby":te(u)?.describedBy,style:ke({background:`linear-gradient(to right, var(--jf-primary) 0%, var(--jf-primary) ${c.value}%, var(--jf-tonal-active) ${c.value}%, var(--jf-tonal-active) 100%)`}),onInput:P,onChange:j},null,44,Re)]),i("div",ze,Je(y.value),1)]))}}),ee=Ue(Ge,[["__scopeId","data-v-a37a69bb"]]),me=[408,425,429,500,502,503,504];function L(p){return!Array.isArray(p)||p.some(b=>typeof b!="number"||!Number.isInteger(b)||!me.includes(b))?null:[...new Set(p)].sort((b,o)=>b-o)}function Le(p,b,o){const m=b.split(".");let u=p;for(const n of m.slice(0,-1))(typeof u[n]!="object"||u[n]===null||Array.isArray(u[n]))&&(u[n]={}),u=u[n];u[m[m.length-1]]=o}function Qe(p,b,o,m={}){const u=new Map(p.map(c=>[c.path,c])),n={};for(const c of b){if(!u.get(c)?.mutable)continue;const y=Object.prototype.hasOwnProperty.call(m,c)?m[c]:o[c];y!==void 0&&Le(n,c,y)}return n}const he={class:"jf-stack"},We={class:"jf-toolbar"},Xe={class:"jf-action-group"},Ye={class:"grid gap-6"},Ze={class:"grid gap-5 sm:grid-cols-2"},et={class:"sm:col-span-2"},tt={class:"grid gap-2"},lt={class:"flex flex-wrap gap-x-5 gap-y-2"},at={class:"grid gap-6"},ot={class:"grid gap-5 sm:grid-cols-2"},nt={class:"grid gap-6"},rt={class:"grid gap-5 sm:grid-cols-2"},ut={class:"grid gap-6"},it={class:"grid gap-5 sm:grid-cols-2"},st={class:"jf-action-group justify-end sm:col-span-2"},dt={class:"rounded-[var(--jf-radius-control)] border border-danger/20 bg-danger-bg p-5"},vt={key:0,class:"rounded-[var(--jf-radius-control)] border border-warning bg-warning-bg p-4 mb-4",role:"alertdialog","aria-label":"确认重置所有运行时覆盖"},ft={class:"jf-action-group mt-3 justify-end"},mt={key:1,class:"flex justify-end"},Vt=fe({__name:"Settings",setup(p){const b=Be(),o=S(!1),m=S(!1),u=S(),n=ie({current:"",next:"",confirm:""}),c=S(!1),y=S(),P=S(),j=ie({}),v=S([]),_=S(""),le=S(!1),k=new Set,x=new Set,$=new Map,q=new Map,D=S(!1),ge=[{label:"脱敏内容",value:"redacted"},{label:"提取内容",value:"content"},{label:"仅特征",value:"features_only"}],ce=["routing.policy.low_confidence","routing.policy.refuse_truncated_evidence"],pe=["routing.allow_provider_override","routing.auto.default_group","routing.auto.failover.enabled","routing.auto.failover.max_attempts","routing.auto.failover.retry_on.pre_request_failure","routing.auto.failover.retry_on.timeout","routing.auto.failover.retry_on.status_codes"],be=["routing.log.enabled","routing.log.store_client_ip","routing.log.retention_days","routing.log.jev_trace.enabled","routing.log.jev_trace.retention_days"],ye=["jev.enabled","jev.input_mode","jev.base_url","jev.model","jev.api_key"],_e=Fe(l=>xe(l),(l,e)=>new Set([...l,...e]));function O(l,e){P.value={version:l.version,overlay:"overlay"in l?l.overlay:e??P.value?.overlay??!1,settings:l.settings,effective:l.effective,warnings:l.warnings};for(const t of l.settings)k.has(t.path)||(j[t.path]=t.value),t.secret&&(le.value=!!t.set);k.has("routing.auto.failover.retry_on.status_codes")||(v.value=L(j["routing.auto.failover.retry_on.status_codes"])??[])}async function ae(){o.value=!0,u.value=void 0;try{O(await M.get("/admin/v1/settings"))}catch(l){u.value=G(l)}finally{o.value=!1}}function s(l,e){return j[l]??e}function E(l){if(pe.includes(l))return"route";if(ce.includes(l))return"policy";if(ye.includes(l))return"jev";if(be.includes(l))return"logs"}function B(l){k.add(l),$.set(l,($.get(l)??0)+1),u.value=void 0}function H(l){if(!l)return;const e=[...k].filter(w=>E(w)===l&&!x.has(w));if(!e.length)return;const t=oe(e);if(t){u.value=t;return}_e.enqueue(new Set(e))}function V(l,e){j[l]=e,B(l),H(E(l))}function Q(l,e){j[l]=e,B(l)}function h(l){H(E(l))}function W(l){let e=q.get(l);return e||(e=Ae(()=>{x.delete(l),H(E(l))}),q.set(l,e)),e}function X(l,e){j[l]=e,B(l),x.add(l),W(l).schedule()}function K(l){x.has(l)&&(x.delete(l),W(l).flush())}function we(l){_.value=l;const e="jev.api_key";if(!l.trim()){q.get(e)?.cancel(),x.delete(e),k.delete(e),$.set(e,($.get(e)??0)+1),u.value=void 0;return}B(e),x.add(e),W(e).schedule()}function je(l,e){const t=e?[...v.value,l]:v.value.filter(R=>R!==l),w=L(t);if(w===null){u.value="HTTP 重试状态码仅支持 408、425、429、500、502、503、504。";return}v.value=w,j["routing.auto.failover.retry_on.status_codes"]=w,B("routing.auto.failover.retry_on.status_codes"),H("route")}function f(l){return P.value?.settings.find(e=>e.path===l)?.mutable??!0}function oe(l){if(l.includes("routing.auto.failover.max_attempts")){const e=Number(s("routing.auto.failover.max_attempts",2));if(!Number.isInteger(e)||e<1||e>8)return"自动路由总尝试次数必须是 1 到 8 之间的整数(包含首次请求)。"}if(l.includes("routing.auto.failover.retry_on.status_codes")&&L(v.value)===null)return"HTTP 重试状态码仅支持 408、425、429、500、502、503、504。";if(l.includes("routing.policy.low_confidence")){const e=Number(s("routing.policy.low_confidence",.45));if(!Number.isFinite(e)||e<0||e>1)return"置信度阈值必须在 0 到 1 之间。"}for(const e of["routing.log.retention_days","routing.log.jev_trace.retention_days"]){if(!l.includes(e))continue;const t=Number(s(e,0));if(!Number.isInteger(t)||t<0||t>3650)return"日志留存天数必须是 0 到 3650 之间的整数(0 表示永久留存)。"}return""}function ne(l){const e={};for(const t of l)t==="routing.auto.failover.retry_on.status_codes"&&(e[t]=L(v.value)??[]),t==="jev.api_key"&&(e[t]=_.value.trim());return Qe(P.value?.settings??[],l,j,e)}async function xe(l){let e=[...l].filter(J=>k.has(J)&&!x.has(J));if(!e.length)return;const t=oe(e);if(t){u.value=t;return}let w=new Map(e.map(J=>[J,$.get(J)??0]));const R=ne(e);if(!Object.keys(R).length)return;m.value=!0,u.value=void 0;let z,re=!1;try{const J=await Ie(g=>!Object.keys(g).length&&z?Promise.resolve(z):(re=!0,M.patch("/admin/v1/settings",g)),R,g=>g instanceof Te&&g.code==="settings_conflict",async()=>{z=await M.get("/admin/v1/settings"),O(z)},()=>(e=e.filter(g=>k.has(g)&&!x.has(g)),w=new Map(e.map(g=>[g,$.get(g)??0])),ne(e)));if(O(J,!0),re){for(const g of e)$.get(g)===w.get(g)&&(k.delete(g),g==="jev.api_key"&&(_.value=""));se()}}catch(J){u.value=G(J)}finally{m.value=!1}}async function Ve(){m.value=!0,u.value=void 0;for(const l of q.values())l.cancel();q.clear(),x.clear(),k.clear(),_.value="";try{const l=await M.delete("/admin/v1/settings");O(l,!1),D.value=!1,se()}catch(l){u.value=G(l)}finally{m.value=!1}}async function Se(){if(y.value=void 0,!n.current||!n.next){y.value="请输入当前密码和新密码。";return}if(n.next!==n.confirm){y.value="两次输入的新密码不一致。";return}if(new TextEncoder().encode(n.next).length<12){y.value="管理员新密码至少需要 12 字节。";return}c.value=!0;try{await M.patch("/admin/v1/password",{current_password:n.current,password:n.next}),n.current="",n.next="",n.confirm="",Me(),await b.replace({name:"login"})}catch(l){y.value=G(l)}finally{c.value=!1}}return $e(()=>{ae()}),(l,e)=>(U(),I("div",he,[i("section",We,[e[30]||(e[30]=i("div",null,[i("h1",{class:"jf-page-title"},"系统设置")],-1)),i("div",Xe,[a(T,{variant:"secondary",icon:"arrow-path",loading:o.value,onClick:ae},{default:r(()=>[...e[29]||(e[29]=[A("刷新",-1)])]),_:1},8,["loading"])])]),u.value?(U(),Z(de,{key:0,error:u.value},null,8,["error"])):ue("",!0),a(F,{title:"全局路由行为"},{default:r(()=>[i("div",Ye,[i("div",Ze,[a(d,{inline:"",label:"允许显式提供商覆盖",name:"routing-allow-provider-override"},{default:r(()=>[a(N,{"model-value":s("routing.allow_provider_override",!1),disabled:o.value||!f("routing.allow_provider_override"),"onUpdate:modelValue":e[0]||(e[0]=t=>V("routing.allow_provider_override",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"自动路由故障转移",name:"routing-auto-failover"},{default:r(()=>[a(N,{"model-value":s("routing.auto.failover.enabled",!0),disabled:o.value||!f("routing.auto.failover.enabled"),"onUpdate:modelValue":e[1]||(e[1]=t=>V("routing.auto.failover.enabled",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 不可用或低置信度时的默认组",name:"routing-auto-default-group"},{default:r(()=>[a(ve,{"model-value":s("routing.auto.default_group","medium"),items:[{label:"简单",value:"simple"},{label:"中等",value:"medium"},{label:"复杂",value:"complex"}],disabled:o.value||!f("routing.auto.default_group"),class:"w-full","onUpdate:modelValue":e[2]||(e[2]=t=>V("routing.auto.default_group",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"每个请求的总尝试次数",name:"routing-auto-max-attempts"},{default:r(()=>[a(C,{"model-value":s("routing.auto.failover.max_attempts",2),type:"number",min:"1",max:"8",class:"w-full",disabled:o.value||!s("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.max_attempts"),"onUpdate:modelValue":e[3]||(e[3]=t=>X("routing.auto.failover.max_attempts",Number(t))),onBlur:e[4]||(e[4]=t=>K("routing.auto.failover.max_attempts"))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"请求发送前失败时重试",name:"routing-auto-retry-pre-request"},{default:r(()=>[a(N,{"model-value":s("routing.auto.failover.retry_on.pre_request_failure",!0),disabled:o.value||!s("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.pre_request_failure"),"onUpdate:modelValue":e[5]||(e[5]=t=>V("routing.auto.failover.retry_on.pre_request_failure",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"超时后重试(可能重复执行)",name:"routing-auto-retry-timeout"},{default:r(()=>[a(N,{"model-value":s("routing.auto.failover.retry_on.timeout",!1),disabled:o.value||!s("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.timeout"),"onUpdate:modelValue":e[6]||(e[6]=t=>V("routing.auto.failover.retry_on.timeout",t))},null,8,["model-value","disabled"])]),_:1}),i("div",et,[i("fieldset",tt,[e[31]||(e[31]=i("legend",{class:"jf-module-title"},"可触发重试的 HTTP 状态码(可能重复计费或执行)",-1)),i("div",lt,[(U(!0),I(Ce,null,Pe(te(me),t=>(U(),Z(Ee,{key:t,"model-value":v.value.includes(t),label:String(t),disabled:o.value||!s("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.status_codes"),"onUpdate:modelValue":w=>je(t,w)},null,8,["model-value","label","disabled","onUpdate:modelValue"]))),128))])])])])])]),_:1}),a(F,{title:"路由策略与置信度"},{default:r(()=>[i("div",at,[i("div",ot,[a(d,{label:"Jev 选组最低置信度(低于此值使用默认组)",name:"policy-low-confidence"},{default:r(()=>[a(ee,{"model-value":Number(s("routing.policy.low_confidence",.45)),min:0,max:1,step:.01,"format-value":t=>`${t.toFixed(2)} (${Math.round(t*100)}%)`,disabled:o.value||!f("routing.policy.low_confidence"),"onUpdate:modelValue":e[7]||(e[7]=t=>Q("routing.policy.low_confidence",Number(t))),onChange:e[8]||(e[8]=t=>h("routing.policy.low_confidence"))},null,8,["model-value","format-value","disabled"])]),_:1}),a(d,{inline:"",label:"截断证据时拒绝路由",name:"policy-refuse-truncated"},{default:r(()=>[a(N,{"model-value":s("routing.policy.refuse_truncated_evidence",!0),disabled:o.value||!f("routing.policy.refuse_truncated_evidence"),"onUpdate:modelValue":e[9]||(e[9]=t=>V("routing.policy.refuse_truncated_evidence",t))},null,8,["model-value","disabled"])]),_:1})])])]),_:1}),a(F,{title:"Jev 推荐服务集成"},{default:r(()=>[i("div",nt,[i("div",rt,[a(d,{inline:"",label:"启用 Jev 智能推荐",name:"jev-enabled"},{default:r(()=>[a(N,{"model-value":s("jev.enabled",!1),disabled:o.value||!f("jev.enabled"),"onUpdate:modelValue":e[10]||(e[10]=t=>V("jev.enabled",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 请求分析模式",name:"jev-input-mode"},{default:r(()=>[a(ve,{"model-value":s("jev.input_mode","redacted"),items:ge,disabled:o.value||!f("jev.input_mode"),class:"w-full","onUpdate:modelValue":e[11]||(e[11]=t=>V("jev.input_mode",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 服务地址",name:"jev-base-url"},{default:r(()=>[a(C,{"model-value":s("jev.base_url",""),placeholder:"https://jev.example.com",class:"w-full font-mono",disabled:o.value||!f("jev.base_url"),"onUpdate:modelValue":e[12]||(e[12]=t=>X("jev.base_url",t)),onBlur:e[13]||(e[13]=t=>K("jev.base_url"))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 使用的模型",name:"jev-model"},{default:r(()=>[a(C,{"model-value":s("jev.model",""),placeholder:"例如 jev-router-v1",class:"w-full font-mono",disabled:o.value||!f("jev.model"),"onUpdate:modelValue":e[14]||(e[14]=t=>X("jev.model",t)),onBlur:e[15]||(e[15]=t=>K("jev.model"))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 认证密钥",name:"jev-api-key",class:"sm:col-span-2"},{default:r(()=>[a(C,{"model-value":_.value,type:"password",placeholder:le.value?"保持当前密钥不变":"输入 Jev 认证密钥",class:"w-full font-mono",disabled:o.value||!f("jev.api_key"),"onUpdate:modelValue":e[16]||(e[16]=t=>we(t)),onBlur:e[17]||(e[17]=t=>K("jev.api_key"))},null,8,["model-value","placeholder","disabled"])]),_:1})])])]),_:1}),a(F,{title:"持久化日志与审计"},{default:r(()=>[i("div",ut,[i("div",it,[a(d,{inline:"",label:"启用持久路由日志",name:"log-enabled"},{default:r(()=>[a(N,{"model-value":s("routing.log.enabled",!0),disabled:o.value||!f("routing.log.enabled"),"onUpdate:modelValue":e[18]||(e[18]=t=>V("routing.log.enabled",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"存储客户端 IP 地址",name:"log-store-ip"},{default:r(()=>[a(N,{"model-value":s("routing.log.store_client_ip",!1),disabled:o.value||!f("routing.log.store_client_ip"),"onUpdate:modelValue":e[19]||(e[19]=t=>V("routing.log.store_client_ip",t))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"常规日志留存天数",name:"log-retention"},{default:r(()=>[a(ee,{"model-value":Number(s("routing.log.retention_days",30)),min:0,max:365,step:1,"format-value":t=>t===0?"永久保留":`${t} 天`,disabled:o.value||!f("routing.log.retention_days"),"onUpdate:modelValue":e[20]||(e[20]=t=>Q("routing.log.retention_days",Number(t))),onChange:e[21]||(e[21]=t=>h("routing.log.retention_days"))},null,8,["model-value","format-value","disabled"])]),_:1}),a(d,{label:"Jev 追踪明细留存天数",name:"log-jev-retention"},{default:r(()=>[a(ee,{"model-value":Number(s("routing.log.jev_trace.retention_days",7)),min:0,max:90,step:1,"format-value":t=>t===0?"永久保留":`${t} 天`,disabled:o.value||!f("routing.log.jev_trace.retention_days"),"onUpdate:modelValue":e[22]||(e[22]=t=>Q("routing.log.jev_trace.retention_days",Number(t))),onChange:e[23]||(e[23]=t=>h("routing.log.jev_trace.retention_days"))},null,8,["model-value","format-value","disabled"])]),_:1})])])]),_:1}),a(F,{title:"修改管理员密码"},{default:r(()=>[i("form",{class:"grid gap-5 sm:grid-cols-2",onSubmit:qe(Se,["prevent"])},[a(d,{label:"当前管理员密码",name:"current-password",required:""},{default:r(()=>[a(C,{id:"current-password",modelValue:n.current,"onUpdate:modelValue":e[24]||(e[24]=t=>n.current=t),type:"password",autocomplete:"current-password",class:"w-full",placeholder:"输入当前使用的密码",required:""},null,8,["modelValue"])]),_:1}),e[33]||(e[33]=i("span",{class:"hidden sm:block","aria-hidden":"true"},null,-1)),a(d,{label:"新管理员密码",name:"new-password",required:""},{default:r(()=>[a(C,{id:"new-password",modelValue:n.next,"onUpdate:modelValue":e[25]||(e[25]=t=>n.next=t),type:"password",autocomplete:"new-password",class:"w-full",placeholder:"输入新的安全密码(≥12位)",required:""},null,8,["modelValue"])]),_:1}),a(d,{label:"确认新密码",name:"confirm-new-password",required:""},{default:r(()=>[a(C,{id:"confirm-new-password",modelValue:n.confirm,"onUpdate:modelValue":e[26]||(e[26]=t=>n.confirm=t),type:"password",autocomplete:"new-password",class:"w-full",placeholder:"再次输入新密码",required:""},null,8,["modelValue"])]),_:1}),y.value?(U(),Z(de,{key:0,class:"sm:col-span-2",error:y.value},null,8,["error"])):ue("",!0),i("div",st,[a(T,{type:"submit",loading:c.value},{default:r(()=>[...e[32]||(e[32]=[A("更新管理员密码",-1)])]),_:1},8,["loading"])])],32)]),_:1}),i("div",dt,[e[38]||(e[38]=i("h3",{class:"jf-module-title text-danger mb-1"},"危险操作:重置所有运行时覆盖",-1)),a(Oe,{class:"mb-4",tone:"warning",title:"重置范围:清除全部运行时配置覆盖及 Jev 密钥;不会删除 Provider、模型、绑定或客户端密钥。"}),D.value?(U(),I("div",vt,[e[36]||(e[36]=i("p",{class:"font-medium"},"确认重置全部运行时覆盖?此操作不可撤销。",-1)),i("div",ft,[a(T,{variant:"ghost",disabled:m.value,onClick:e[27]||(e[27]=t=>D.value=!1)},{default:r(()=>[...e[34]||(e[34]=[A("取消",-1)])]),_:1},8,["disabled"]),a(T,{variant:"danger",loading:m.value,onClick:Ve},{default:r(()=>[...e[35]||(e[35]=[A("确认重置",-1)])]),_:1},8,["loading"])])])):(U(),I("div",mt,[a(T,{variant:"danger-ghost",disabled:o.value||m.value,onClick:e[28]||(e[28]=t=>D.value=!0)},{default:r(()=>[...e[37]||(e[37]=[A(" 重置所有运行时覆盖 ",-1)])]),_:1},8,["disabled"])]))])]))}});export{Vt as default}; diff --git a/internal/api/dashboard/static/web/assets/Settings-DoDV9F3T.js b/internal/api/dashboard/static/web/assets/Settings-DoDV9F3T.js new file mode 100644 index 0000000..f4c428d --- /dev/null +++ b/internal/api/dashboard/static/web/assets/Settings-DoDV9F3T.js @@ -0,0 +1 @@ +import{d as se,i as Y,b as s,v as Se,I as G,t as ke,L as Ue,y as K,l as $,_ as Ne,o as Pe,f as a,w as r,J as Q,c as R,h as W,r as k,a as A,g as X,F as $e,q as Be,j as qe,D as oe,u as Ce,A as Me,E as ne,M as Te,G as Ae}from"./index-CeO69YUd.js";import{c as Ie,a as Fe,r as De}from"./autosave-DjhT3uag.js";import{j as Oe,_ as re,J as I,a as ie,e as L}from"./field-context-Dg4JwEpB.js";import{e as he}from"./labels-F4zjjjMy.js";import{J as Ee}from"./JfCheckbox-BZQr-Pz_.js";import{J as d}from"./JfField-g_CLZQhf.js";import{J as U}from"./JfInput-DtzjrdfV.js";import{J as ue}from"./JfSelect-C3PlYx94.js";import{J as N}from"./JfSwitch-BLecDvC6.js";import"./control-attrs-CG7deI17.js";const Re={class:"jf-slider-container"},Le={class:"jf-slider-track-wrap"},ze=["id","min","max","step","value","disabled","aria-describedby"],Ge={class:"jf-slider-badge","aria-live":"polite"},He=se({__name:"JfSlider",props:{modelValue:{default:0},min:{default:0},max:{default:1},step:{default:.01},disabled:{type:Boolean,default:!1},formatValue:{type:Function,default:void 0},format:{type:Function,default:void 0}},emits:["update:modelValue","change"],setup(p,{emit:b}){const o=p,c=b,i=Ue(Oe),n=K(()=>Number(o.modelValue??o.min)),g=K(()=>{const v=o.max-o.min;if(v<=0)return 0;const _=(n.value-o.min)/v*100;return Math.min(100,Math.max(0,_))}),y=K(()=>{const v=o.formatValue??o.format;return v?v(n.value):String(n.value)});function B(v){const _=v.target;c("update:modelValue",Number(_.value))}function j(v){const _=v.target;c("change",Number(_.value))}return(v,_)=>($(),Y("div",Re,[s("div",Le,[s("input",{type:"range",class:"jf-slider-input",id:G(i)?.controlId,min:p.min,max:p.max,step:p.step,value:n.value,disabled:p.disabled,"aria-describedby":G(i)?.describedBy,style:Se({background:`linear-gradient(to right, var(--jf-primary) 0%, var(--jf-primary) ${g.value}%, var(--jf-tonal-active) ${g.value}%, var(--jf-tonal-active) 100%)`}),onInput:B,onChange:j},null,44,ze)]),s("div",Ge,ke(y.value),1)]))}}),Ke=Ne(He,[["__scopeId","data-v-a37a69bb"]]),de=[408,425,429,500,502,503,504];function z(p){return!Array.isArray(p)||p.some(b=>typeof b!="number"||!Number.isInteger(b)||!de.includes(b))?null:[...new Set(p)].sort((b,o)=>b-o)}function Qe(p,b,o){const c=b.split(".");let i=p;for(const n of c.slice(0,-1))(typeof i[n]!="object"||i[n]===null||Array.isArray(i[n]))&&(i[n]={}),i=i[n];i[c[c.length-1]]=o}function We(p,b,o,c={}){const i=new Map(p.map(g=>[g.path,g])),n={};for(const g of b){if(!i.get(g)?.mutable)continue;const y=Object.prototype.hasOwnProperty.call(c,g)?c[g]:o[g];y!==void 0&&Qe(n,g,y)}return n}const Xe={class:"jf-stack"},Ye={class:"jf-toolbar"},Ze={class:"jf-action-group"},et={class:"grid gap-6"},tt={class:"grid gap-5 sm:grid-cols-2"},lt={class:"sm:col-span-2"},at={class:"grid gap-2"},ot={class:"flex flex-wrap gap-x-5 gap-y-2"},nt={class:"grid gap-6"},rt={class:"grid gap-5 sm:grid-cols-2"},it={class:"grid gap-6"},ut={class:"grid gap-5 sm:grid-cols-2"},st={class:"grid gap-6"},dt={class:"grid gap-5 sm:grid-cols-2"},vt={class:"jf-action-group justify-end sm:col-span-2"},ft={class:"rounded-[var(--jf-radius-control)] border border-danger/20 bg-danger-bg p-5"},mt={class:"flex justify-end"},Jt=se({__name:"Settings",setup(p){const b=Ce(),o=k(!1),c=k(!1),i=k(),n=oe({current:"",next:"",confirm:""}),g=k(!1),y=k(),B=k(),j=oe({}),v=k([]),_=k(""),Z=k(!1),J=new Set,x=new Set,P=new Map,C=new Map,ve=["redacted","content","features_only"].map(t=>({label:he("inputMode",t),value:t})),fe=["routing.policy.low_confidence","routing.policy.refuse_truncated_evidence"],me=["routing.allow_provider_override","routing.auto.default_group","routing.auto.failover.enabled","routing.auto.failover.max_attempts","routing.auto.failover.retry_on.pre_request_failure","routing.auto.failover.retry_on.timeout","routing.auto.failover.retry_on.status_codes"],ce=["routing.log.enabled","routing.log.store_client_ip","routing.log.retention_days","routing.log.jev_trace.enabled","routing.log.jev_trace.retention_days"],ge=["jev.enabled","jev.input_mode","jev.base_url","jev.model","jev.api_key"],pe=Fe(t=>je(t),(t,e)=>new Set([...t,...e]));function F(t,e){B.value={version:t.version,overlay:"overlay"in t?t.overlay:e??B.value?.overlay??!1,settings:t.settings,effective:t.effective,warnings:t.warnings};for(const l of t.settings)J.has(l.path)||(j[l.path]=l.value),l.secret&&(Z.value=!!l.set);J.has("routing.auto.failover.retry_on.status_codes")||(v.value=z(j["routing.auto.failover.retry_on.status_codes"])??[])}async function ee(){o.value=!0,i.value=void 0;try{F(await A.get("/admin/v1/settings"))}catch(t){i.value=L(t)}finally{o.value=!1}}function u(t,e){return j[t]??e}function D(t){if(me.includes(t))return"route";if(fe.includes(t))return"policy";if(ge.includes(t))return"jev";if(ce.includes(t))return"logs"}function M(t){J.add(t),P.set(t,(P.get(t)??0)+1),i.value=void 0}function O(t){if(!t)return;const e=[...J].filter(w=>D(w)===t&&!x.has(w));if(!e.length)return;const l=te(e);if(l){i.value=l;return}pe.enqueue(new Set(e))}function V(t,e){j[t]=e,M(t),O(D(t))}function be(t,e){j[t]=e,M(t)}function ye(t){O(D(t))}function H(t){let e=C.get(t);return e||(e=Ie(()=>{x.delete(t),O(D(t))}),C.set(t,e)),e}function T(t,e){j[t]=e,M(t),x.add(t),H(t).schedule()}function q(t){x.has(t)&&(x.delete(t),H(t).flush())}function _e(t){_.value=t;const e="jev.api_key";if(!t.trim()){C.get(e)?.cancel(),x.delete(e),J.delete(e),P.set(e,(P.get(e)??0)+1),i.value=void 0;return}M(e),x.add(e),H(e).schedule()}function we(t,e){const l=e?[...v.value,t]:v.value.filter(h=>h!==t),w=z(l);if(w===null){i.value="HTTP 重试状态码仅支持 408、425、429、500、502、503、504。";return}v.value=w,j["routing.auto.failover.retry_on.status_codes"]=w,M("routing.auto.failover.retry_on.status_codes"),O("route")}function f(t){return B.value?.settings.find(e=>e.path===t)?.mutable??!0}function te(t){if(t.includes("routing.auto.failover.max_attempts")){const e=Number(u("routing.auto.failover.max_attempts",2));if(!Number.isInteger(e)||e<1||e>8)return"自动路由总尝试次数必须是 1 到 8 之间的整数(包含首次请求)。"}if(t.includes("routing.auto.failover.retry_on.status_codes")&&z(v.value)===null)return"HTTP 重试状态码仅支持 408、425、429、500、502、503、504。";if(t.includes("routing.policy.low_confidence")){const e=Number(u("routing.policy.low_confidence",.45));if(!Number.isFinite(e)||e<0||e>1)return"置信度阈值必须在 0 到 1 之间。"}for(const e of["routing.log.retention_days","routing.log.jev_trace.retention_days"]){if(!t.includes(e))continue;const l=Number(u(e,0));if(!Number.isInteger(l)||l<0||l>3650)return"日志留存天数必须是 0 到 3650 之间的整数(0 表示永久保留)。"}return""}function le(t){const e={};for(const l of t)l==="routing.auto.failover.retry_on.status_codes"&&(e[l]=z(v.value)??[]),l==="jev.api_key"&&(e[l]=_.value.trim());return We(B.value?.settings??[],t,j,e)}async function je(t){let e=[...t].filter(S=>J.has(S)&&!x.has(S));if(!e.length)return;const l=te(e);if(l){i.value=l;return}let w=new Map(e.map(S=>[S,P.get(S)??0]));const h=le(e);if(!Object.keys(h).length)return;c.value=!0,i.value=void 0;let E,ae=!1;try{const S=await De(m=>!Object.keys(m).length&&E?Promise.resolve(E):(ae=!0,A.patch("/admin/v1/settings",m)),h,m=>m instanceof Me&&m.code==="settings_conflict",async()=>{E=await A.get("/admin/v1/settings"),F(E)},()=>(e=e.filter(m=>J.has(m)&&!x.has(m)),w=new Map(e.map(m=>[m,P.get(m)??0])),le(e)));if(F(S,!0),ae){for(const m of e)P.get(m)===w.get(m)&&(J.delete(m),m==="jev.api_key"&&(_.value=""));ne()}}catch(S){i.value=L(S)}finally{c.value=!1}}async function xe(){await Ae({title:"重置全部运行时覆盖?",description:"所有在管理台修改过的设置和 Jev 密钥都会恢复为启动配置。此操作不可撤销。",confirmLabel:"确认重置",danger:!0})&&await Ve()}async function Ve(){c.value=!0,i.value=void 0;for(const t of C.values())t.cancel();C.clear(),x.clear(),J.clear(),_.value="";try{const t=await A.delete("/admin/v1/settings");F(t,!1),ne("已重置全部运行时覆盖")}catch(t){i.value=L(t)}finally{c.value=!1}}async function Je(){if(y.value=void 0,!n.current||!n.next){y.value="请输入当前密码和新密码。";return}if(n.next!==n.confirm){y.value="两次输入的新密码不一致。";return}if(new TextEncoder().encode(n.next).length<12){y.value="管理员新密码至少需要 12 字节。";return}g.value=!0;try{await A.patch("/admin/v1/password",{current_password:n.current,password:n.next}),n.current="",n.next="",n.confirm="",Te(),await b.replace({name:"login"})}catch(t){y.value=L(t)}finally{g.value=!1}}return Pe(()=>{ee()}),(t,e)=>($(),Y("div",Xe,[s("section",Ye,[e[28]||(e[28]=s("div",null,[s("h1",{class:"jf-page-title"},"系统设置")],-1)),s("div",Ze,[a(Q,{variant:"secondary",icon:"arrow-path",loading:o.value,onClick:ee},{default:r(()=>[...e[27]||(e[27]=[X("刷新",-1)])]),_:1},8,["loading"])])]),i.value?($(),R(re,{key:0,error:i.value},null,8,["error"])):W("",!0),a(I,{title:"全局路由行为"},{default:r(()=>[s("div",et,[s("div",tt,[a(d,{inline:"",label:"允许显式提供商覆盖",name:"routing-allow-provider-override"},{default:r(()=>[a(N,{"model-value":u("routing.allow_provider_override",!1),disabled:o.value||!f("routing.allow_provider_override"),"onUpdate:modelValue":e[0]||(e[0]=l=>V("routing.allow_provider_override",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"自动路由故障转移",name:"routing-auto-failover"},{default:r(()=>[a(N,{"model-value":u("routing.auto.failover.enabled",!0),disabled:o.value||!f("routing.auto.failover.enabled"),"onUpdate:modelValue":e[1]||(e[1]=l=>V("routing.auto.failover.enabled",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 不可用或低置信度时的默认组",name:"routing-auto-default-group"},{default:r(()=>[a(ue,{"model-value":u("routing.auto.default_group","medium"),items:[{label:"简单任务组",value:"simple"},{label:"中等任务组",value:"medium"},{label:"复杂任务组",value:"complex"}],disabled:o.value||!f("routing.auto.default_group"),class:"w-full","onUpdate:modelValue":e[2]||(e[2]=l=>V("routing.auto.default_group",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"每个请求的总尝试次数",name:"routing-auto-max-attempts"},{default:r(()=>[a(U,{"model-value":u("routing.auto.failover.max_attempts",2),type:"number",min:"1",max:"8",class:"w-full",disabled:o.value||!u("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.max_attempts"),"onUpdate:modelValue":e[3]||(e[3]=l=>T("routing.auto.failover.max_attempts",Number(l))),onBlur:e[4]||(e[4]=l=>q("routing.auto.failover.max_attempts"))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"请求发送前失败时重试",name:"routing-auto-retry-pre-request"},{default:r(()=>[a(N,{"model-value":u("routing.auto.failover.retry_on.pre_request_failure",!0),disabled:o.value||!u("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.pre_request_failure"),"onUpdate:modelValue":e[5]||(e[5]=l=>V("routing.auto.failover.retry_on.pre_request_failure",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"超时后重试(可能重复执行)",name:"routing-auto-retry-timeout"},{default:r(()=>[a(N,{"model-value":u("routing.auto.failover.retry_on.timeout",!1),disabled:o.value||!u("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.timeout"),"onUpdate:modelValue":e[6]||(e[6]=l=>V("routing.auto.failover.retry_on.timeout",l))},null,8,["model-value","disabled"])]),_:1}),s("div",lt,[s("fieldset",at,[e[29]||(e[29]=s("legend",{class:"jf-module-title"},"可触发重试的 HTTP 状态码(可能重复计费或执行)",-1)),s("div",ot,[($(!0),Y($e,null,Be(G(de),l=>($(),R(Ee,{key:l,"model-value":v.value.includes(l),label:String(l),disabled:o.value||!u("routing.auto.failover.enabled",!0)||!f("routing.auto.failover.retry_on.status_codes"),"onUpdate:modelValue":w=>we(l,w)},null,8,["model-value","label","disabled","onUpdate:modelValue"]))),128))])])])])])]),_:1}),a(I,{title:"路由策略与置信度"},{default:r(()=>[s("div",nt,[s("div",rt,[a(d,{label:u("jev.enabled",!1)?"Jev 选组最低置信度(低于此值使用默认组)":"Jev 选组最低置信度(Jev 未启用,暂不生效)",name:"policy-low-confidence"},{default:r(()=>[a(Ke,{"model-value":Number(u("routing.policy.low_confidence",.45)),min:0,max:1,step:.01,"format-value":l=>`${l.toFixed(2)} (${Math.round(l*100)}%)`,disabled:o.value||!f("routing.policy.low_confidence"),"onUpdate:modelValue":e[7]||(e[7]=l=>be("routing.policy.low_confidence",Number(l))),onChange:e[8]||(e[8]=l=>ye("routing.policy.low_confidence"))},null,8,["model-value","format-value","disabled"])]),_:1},8,["label"]),a(d,{inline:"",label:"截断证据时拒绝路由",name:"policy-refuse-truncated"},{default:r(()=>[a(N,{"model-value":u("routing.policy.refuse_truncated_evidence",!0),disabled:o.value||!f("routing.policy.refuse_truncated_evidence"),"onUpdate:modelValue":e[9]||(e[9]=l=>V("routing.policy.refuse_truncated_evidence",l))},null,8,["model-value","disabled"])]),_:1})])])]),_:1}),a(I,{title:"Jev 推荐服务集成"},{default:r(()=>[s("div",it,[u("jev.enabled",!1)?W("",!0):($(),R(ie,{key:0,tone:"info",title:"Jev 未启用:自动路由统一使用默认组,以下设置和置信度阈值在启用 Jev 后才生效。启用前需先填写服务地址、模型和认证密钥。"})),s("div",ut,[a(d,{inline:"",label:"启用 Jev 智能推荐",name:"jev-enabled"},{default:r(()=>[a(N,{"model-value":u("jev.enabled",!1),disabled:o.value||!f("jev.enabled"),"onUpdate:modelValue":e[10]||(e[10]=l=>V("jev.enabled",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 请求分析模式",name:"jev-input-mode"},{default:r(()=>[a(ue,{"model-value":u("jev.input_mode","redacted"),items:G(ve),disabled:o.value||!f("jev.input_mode"),class:"w-full","onUpdate:modelValue":e[11]||(e[11]=l=>V("jev.input_mode",l))},null,8,["model-value","items","disabled"])]),_:1}),a(d,{label:"Jev 服务地址",name:"jev-base-url"},{default:r(()=>[a(U,{"model-value":u("jev.base_url",""),placeholder:"https://jev.example.com",class:"w-full font-mono",disabled:o.value||!f("jev.base_url"),"onUpdate:modelValue":e[12]||(e[12]=l=>T("jev.base_url",l)),onBlur:e[13]||(e[13]=l=>q("jev.base_url"))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 使用的模型",name:"jev-model"},{default:r(()=>[a(U,{"model-value":u("jev.model",""),placeholder:"例如 jev-router-v1",class:"w-full font-mono",disabled:o.value||!f("jev.model"),"onUpdate:modelValue":e[14]||(e[14]=l=>T("jev.model",l)),onBlur:e[15]||(e[15]=l=>q("jev.model"))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 认证密钥",name:"jev-api-key",class:"sm:col-span-2"},{default:r(()=>[a(U,{"model-value":_.value,type:"password",placeholder:Z.value?"保持当前密钥不变":"输入 Jev 认证密钥",class:"w-full font-mono",disabled:o.value||!f("jev.api_key"),"onUpdate:modelValue":e[16]||(e[16]=l=>_e(l)),onBlur:e[17]||(e[17]=l=>q("jev.api_key"))},null,8,["model-value","placeholder","disabled"])]),_:1})])])]),_:1}),a(I,{title:"持久化日志与审计"},{default:r(()=>[s("div",st,[s("div",dt,[a(d,{inline:"",label:"启用持久路由日志",name:"log-enabled"},{default:r(()=>[a(N,{"model-value":u("routing.log.enabled",!0),disabled:o.value||!f("routing.log.enabled"),"onUpdate:modelValue":e[18]||(e[18]=l=>V("routing.log.enabled",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{inline:"",label:"存储客户端 IP 地址",name:"log-store-ip"},{default:r(()=>[a(N,{"model-value":u("routing.log.store_client_ip",!1),disabled:o.value||!f("routing.log.store_client_ip"),"onUpdate:modelValue":e[19]||(e[19]=l=>V("routing.log.store_client_ip",l))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"常规日志留存天数(0 表示永久保留)",name:"log-retention"},{default:r(()=>[a(U,{"model-value":u("routing.log.retention_days",30),type:"number",min:"0",max:"3650",class:"w-full jf-tabular",disabled:o.value||!f("routing.log.retention_days"),"onUpdate:modelValue":e[20]||(e[20]=l=>T("routing.log.retention_days",Number(l))),onBlur:e[21]||(e[21]=l=>q("routing.log.retention_days"))},null,8,["model-value","disabled"])]),_:1}),a(d,{label:"Jev 追踪明细留存天数(0 表示永久保留)",name:"log-jev-retention"},{default:r(()=>[a(U,{"model-value":u("routing.log.jev_trace.retention_days",7),type:"number",min:"0",max:"3650",class:"w-full jf-tabular",disabled:o.value||!f("routing.log.jev_trace.retention_days"),"onUpdate:modelValue":e[22]||(e[22]=l=>T("routing.log.jev_trace.retention_days",Number(l))),onBlur:e[23]||(e[23]=l=>q("routing.log.jev_trace.retention_days"))},null,8,["model-value","disabled"])]),_:1})])])]),_:1}),a(I,{title:"修改管理员密码"},{default:r(()=>[s("form",{class:"grid gap-5 sm:grid-cols-2",onSubmit:qe(Je,["prevent"])},[a(d,{label:"当前管理员密码",name:"current-password",required:""},{default:r(()=>[a(U,{id:"current-password",modelValue:n.current,"onUpdate:modelValue":e[24]||(e[24]=l=>n.current=l),type:"password",autocomplete:"current-password",class:"w-full",placeholder:"输入当前使用的密码",required:""},null,8,["modelValue"])]),_:1}),e[31]||(e[31]=s("span",{class:"hidden sm:block","aria-hidden":"true"},null,-1)),a(d,{label:"新管理员密码",name:"new-password",required:""},{default:r(()=>[a(U,{id:"new-password",modelValue:n.next,"onUpdate:modelValue":e[25]||(e[25]=l=>n.next=l),type:"password",autocomplete:"new-password",class:"w-full",placeholder:"至少 12 字节(约 12 个英文字符或 4 个汉字)",required:""},null,8,["modelValue"])]),_:1}),a(d,{label:"确认新密码",name:"confirm-new-password",required:""},{default:r(()=>[a(U,{id:"confirm-new-password",modelValue:n.confirm,"onUpdate:modelValue":e[26]||(e[26]=l=>n.confirm=l),type:"password",autocomplete:"new-password",class:"w-full",placeholder:"再次输入新密码",required:""},null,8,["modelValue"])]),_:1}),y.value?($(),R(re,{key:0,class:"sm:col-span-2",error:y.value},null,8,["error"])):W("",!0),s("div",vt,[a(Q,{type:"submit",loading:g.value},{default:r(()=>[...e[30]||(e[30]=[X("更新管理员密码",-1)])]),_:1},8,["loading"])])],32)]),_:1}),s("div",ft,[e[33]||(e[33]=s("h3",{class:"jf-module-title text-danger mb-1"},"危险操作:重置所有运行时覆盖",-1)),a(ie,{class:"mb-4",tone:"warning",title:"重置范围:清除全部运行时配置覆盖及 Jev 密钥;不会删除提供商、模型、绑定或推理密钥。"}),s("div",mt,[a(Q,{variant:"danger-ghost",disabled:o.value||c.value,onClick:xe},{default:r(()=>[...e[32]||(e[32]=[X(" 重置所有运行时覆盖 ",-1)])]),_:1},8,["disabled"])])])]))}});export{Jt as default}; diff --git a/internal/api/dashboard/static/web/assets/field-context-CK2hRgAr.js b/internal/api/dashboard/static/web/assets/field-context-Dg4JwEpB.js similarity index 65% rename from internal/api/dashboard/static/web/assets/field-context-CK2hRgAr.js rename to internal/api/dashboard/static/web/assets/field-context-Dg4JwEpB.js index d32951c..dda88d1 100644 --- a/internal/api/dashboard/static/web/assets/field-context-CK2hRgAr.js +++ b/internal/api/dashboard/static/web/assets/field-context-Dg4JwEpB.js @@ -1 +1 @@ -import{A as _,V as u,d as h,i,c as v,p as C,h as a,b as f,t as p,n as y,M as l,y as j,l as r,_ as g,e as w,w as B}from"./index-4SLuEZVi.js";function c(e,t){return t?u.global.t(e,t):u.global.t(e)}function $(e){return typeof e!="string"||e===""?!1:u.global.te(`errors.codes.${e}.title`)}function k(e){return $(e)?c(`errors.codes.${e}.title`):e}function b(e){return $(e)?c(`errors.codes.${e}.description`):""}function E(e){return e===0?"network":e>=400&&e<500?"clientUnknown":e>=500&&e<600?"server":"unknown"}function m(e,t,n){let o,s;if($(t))o=k(t),s=b(t);else{const d=`errors.fallback.${E(e)}`;o=c(`${d}.title`),s=c(`${d}.description`,{status:e,code:t||"request_failed"})}return n&&(s=`${s}(${c("errors.field",{field:n})})`),{title:o,description:s,code:t,status:e}}function J(e){return A(e)?e:e instanceof _?m(e.status,e.code,e.field):e instanceof Error?{title:k("internal_error"),description:e.message||b("internal_error"),code:"internal_error",status:0}:m(0,"request_failed")}function A(e){return typeof e=="object"&&e!==null&&typeof e.title=="string"&&typeof e.description=="string"&&typeof e.code=="string"&&typeof e.status=="number"}const I=["data-tone","role"],N={class:"jf-alert-content"},S={key:0,class:"jf-alert-title"},K={key:3,class:"jf-alert-actions"},V=h({__name:"JfAlert",props:{tone:{default:"neutral"},title:{default:void 0},description:{default:void 0},role:{default:"status"},icon:{default:void 0},hideIcon:{type:Boolean,default:!1}},setup(e){const t=e,n=j(()=>t.icon??{neutral:"information-circle",info:"information-circle",success:"check-circle",warning:"exclamation-triangle",danger:"exclamation-triangle"}[t.tone]);return(o,s)=>(r(),i("div",{class:"jf-alert","data-tone":e.tone,role:e.role},[e.hideIcon?a("",!0):(r(),v(C,{key:0,name:n.value,size:"md",class:"jf-alert-icon"},null,8,["name"])),f("div",N,[e.title?(r(),i("p",S,p(e.title),1)):a("",!0),e.description?(r(),i("p",{key:1,class:y({"jf-alert-description":!0,"mt-1":!!e.title})},p(e.description),3)):a("",!0),l(o.$slots,"default",{},void 0,!0),o.$slots.description?(r(),i("div",{key:2,class:y(["jf-alert-description",{"mt-1":!!e.title}])},[l(o.$slots,"description",{},void 0,!0)],2)):a("",!0),o.$slots.actions?(r(),i("div",K,[l(o.$slots,"actions",{},void 0,!0)])):a("",!0)])],8,I))}}),q=g(V,[["__scopeId","data-v-5ca7d2fb"]]),O=h({__name:"ErrorAlert",props:{error:{default:void 0},title:{default:""},description:{default:""}},setup(e){const t=e,n=j(()=>{const o=typeof t.error=="string"||t.error===void 0?void 0:J(t.error),s=t.title||(typeof t.error=="string"?t.error:o?.title)||"",d=t.description||o?.description||"";return{title:s,description:d}});return(o,s)=>(r(),v(q,{tone:"danger",role:"alert",title:n.value.title,description:n.value.description||void 0},w({_:2},[o.$slots.actions?{name:"actions",fn:B(()=>[l(o.$slots,"actions")]),key:"0"}:void 0]),1032,["title","description"]))}}),z=["data-density"],D={key:0,class:"jf-card-header"},F={class:"jf-card-heading"},M={class:"jf-module-title"},T={key:0,class:"jf-card-actions"},U={class:"jf-card-body"},G={key:1,class:"jf-card-footer"},H=h({__name:"JfCard",props:{title:{default:void 0},density:{default:"comfortable"},flat:{type:Boolean,default:!1},flush:{type:Boolean,default:!1}},setup(e){return(t,n)=>(r(),i("section",{class:y(["jf-card",{"jf-card-flat":e.flat,"jf-card-flush":e.flush}]),"data-density":e.density},[e.title||t.$slots.header||t.$slots.actions?(r(),i("header",D,[f("div",F,[l(t.$slots,"header",{},()=>[f("h3",M,p(e.title),1)],!0)]),t.$slots.actions?(r(),i("div",T,[l(t.$slots,"actions",{},void 0,!0)])):a("",!0)])):a("",!0),f("div",U,[l(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(r(),i("footer",G,[l(t.$slots,"footer",{},void 0,!0)])):a("",!0)],10,z))}}),P=g(H,[["__scopeId","data-v-d35873f6"]]),Q=Symbol("jf-field");export{P as J,O as _,q as a,k as b,J as e,Q as j}; +import{A as _,T as u,d as h,i,c as v,p as C,h as a,b as f,t as p,n as y,N as l,y as j,l as r,_ as g,e as w,w as B}from"./index-CeO69YUd.js";function c(e,t){return t?u.global.t(e,t):u.global.t(e)}function $(e){return typeof e!="string"||e===""?!1:u.global.te(`errors.codes.${e}.title`)}function k(e){return $(e)?c(`errors.codes.${e}.title`):e}function b(e){return $(e)?c(`errors.codes.${e}.description`):""}function E(e){return e===0?"network":e>=400&&e<500?"clientUnknown":e>=500&&e<600?"server":"unknown"}function m(e,t,n){let o,s;if($(t))o=k(t),s=b(t);else{const d=`errors.fallback.${E(e)}`;o=c(`${d}.title`),s=c(`${d}.description`,{status:e,code:t||"request_failed"})}return n&&(s=`${s}(${c("errors.field",{field:n})})`),{title:o,description:s,code:t,status:e}}function J(e){return N(e)?e:e instanceof _?m(e.status,e.code,e.field):e instanceof Error?{title:k("internal_error"),description:e.message||b("internal_error"),code:"internal_error",status:0}:m(0,"request_failed")}function N(e){return typeof e=="object"&&e!==null&&typeof e.title=="string"&&typeof e.description=="string"&&typeof e.code=="string"&&typeof e.status=="number"}const A=["data-tone","role"],I={class:"jf-alert-content"},S={key:0,class:"jf-alert-title"},K={key:3,class:"jf-alert-actions"},q=h({__name:"JfAlert",props:{tone:{default:"neutral"},title:{default:void 0},description:{default:void 0},role:{default:"status"},icon:{default:void 0},hideIcon:{type:Boolean,default:!1}},setup(e){const t=e,n=j(()=>t.icon??{neutral:"information-circle",info:"information-circle",success:"check-circle",warning:"exclamation-triangle",danger:"exclamation-triangle"}[t.tone]);return(o,s)=>(r(),i("div",{class:"jf-alert","data-tone":e.tone,role:e.role},[e.hideIcon?a("",!0):(r(),v(C,{key:0,name:n.value,size:"md",class:"jf-alert-icon"},null,8,["name"])),f("div",I,[e.title?(r(),i("p",S,p(e.title),1)):a("",!0),e.description?(r(),i("p",{key:1,class:y({"jf-alert-description":!0,"mt-1":!!e.title})},p(e.description),3)):a("",!0),l(o.$slots,"default",{},void 0,!0),o.$slots.description?(r(),i("div",{key:2,class:y(["jf-alert-description",{"mt-1":!!e.title}])},[l(o.$slots,"description",{},void 0,!0)],2)):a("",!0),o.$slots.actions?(r(),i("div",K,[l(o.$slots,"actions",{},void 0,!0)])):a("",!0)])],8,A))}}),z=g(q,[["__scopeId","data-v-5ca7d2fb"]]),O=h({__name:"ErrorAlert",props:{error:{default:void 0},title:{default:""},description:{default:""}},setup(e){const t=e,n=j(()=>{const o=typeof t.error=="string"||t.error===void 0?void 0:J(t.error),s=t.title||(typeof t.error=="string"?t.error:o?.title)||"",d=t.description||o?.description||"";return{title:s,description:d}});return(o,s)=>(r(),v(z,{tone:"danger",role:"alert",title:n.value.title,description:n.value.description||void 0},w({_:2},[o.$slots.actions?{name:"actions",fn:B(()=>[l(o.$slots,"actions")]),key:"0"}:void 0]),1032,["title","description"]))}}),D=["data-density"],F={key:0,class:"jf-card-header"},T={class:"jf-card-heading"},V={class:"jf-module-title"},U={key:0,class:"jf-card-actions"},G={class:"jf-card-body"},H={key:1,class:"jf-card-footer"},L=h({__name:"JfCard",props:{title:{default:void 0},density:{default:"comfortable"},flat:{type:Boolean,default:!1},flush:{type:Boolean,default:!1}},setup(e){return(t,n)=>(r(),i("section",{class:y(["jf-card",{"jf-card-flat":e.flat,"jf-card-flush":e.flush}]),"data-density":e.density},[e.title||t.$slots.header||t.$slots.actions?(r(),i("header",F,[f("div",T,[l(t.$slots,"header",{},()=>[f("h3",V,p(e.title),1)],!0)]),t.$slots.actions?(r(),i("div",U,[l(t.$slots,"actions",{},void 0,!0)])):a("",!0)])):a("",!0),f("div",G,[l(t.$slots,"default",{},void 0,!0)]),t.$slots.footer?(r(),i("footer",H,[l(t.$slots,"footer",{},void 0,!0)])):a("",!0)],10,D))}}),P=g(L,[["__scopeId","data-v-d35873f6"]]),Q=Symbol("jf-field");export{P as J,O as _,z as a,k as b,J as e,Q as j}; diff --git a/internal/api/dashboard/static/web/assets/index-4SLuEZVi.js b/internal/api/dashboard/static/web/assets/index-4SLuEZVi.js deleted file mode 100644 index 20c07d9..0000000 --- a/internal/api/dashboard/static/web/assets/index-4SLuEZVi.js +++ /dev/null @@ -1,4 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Login-D3rCwbUc.js","assets/field-context-CK2hRgAr.js","assets/field-context-C4GBuflD.css","assets/JfField--tcDfYWs.js","assets/JfField-CGVJE0Y4.css","assets/JfInput-CMwI48jv.js","assets/control-attrs-CG7deI17.js","assets/JfInput-Dt4SCshA.css","assets/JfSkeleton-DtHcp-jn.js","assets/JfSkeleton-VwMWT5qZ.css","assets/Login-PIWYfqxp.css","assets/Index-o7UyK7Y6.js","assets/JfSelect-BuGLsn3z.js","assets/JfSelect-CBRAuzHa.css","assets/JfTable-DL6XTgQI.js","assets/JfTable-CzfEL02A.css","assets/Index-CUTblxLp.css","assets/Providers-i1IINMuR.js","assets/autosave-DjhT3uag.js","assets/JfBadge-BNbswCCo.js","assets/JfBadge-BMTG_VYq.css","assets/JfDrawer-CHIy4Mgq.js","assets/JfDrawer-DAVtosOU.css","assets/JfSwitch-Ck4z1ivX.js","assets/JfSwitch-DhYDkaYJ.css","assets/Models-DE72qd3P.js","assets/ModelGroups-D0BmGteO.js","assets/JfCheckbox-DpJDzTQd.js","assets/JfCheckbox-D2J5NzQi.css","assets/JfEmpty-BgJ1JF6C.js","assets/JfEmpty-BXEq5Tou.css","assets/ModelGroups-2wsFGA4a.css","assets/Settings-DWBFsTfp.js","assets/Settings-C7uu8Drv.css","assets/Keys-BOkoplTM.js","assets/Keys-DVggIPvI.css","assets/Index-CAlB8CRg.js"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function _o(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const pe={},gn=[],St=()=>{},jl=()=>!1,Zr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),es=e=>e.startsWith("onUpdate:"),Oe=Object.assign,vo=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Gc=Object.prototype.hasOwnProperty,ue=(e,t)=>Gc.call(e,t),J=Array.isArray,Qt=e=>vr(e)==="[object Map]",jr=e=>vr(e)==="[object Set]",Qo=e=>vr(e)==="[object Date]",Q=e=>typeof e=="function",Te=e=>typeof e=="string",nt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",Vl=e=>(le(e)||Q(e))&&Q(e.then)&&Q(e.catch),Ul=Object.prototype.toString,vr=e=>Ul.call(e),Kc=e=>vr(e).slice(8,-1),Hl=e=>vr(e)==="[object Object]",ts=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,qn=_o(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ns=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},qc=/-\w/g,ht=ns(e=>e.replace(qc,t=>t.slice(1).toUpperCase())),Yc=/\B([A-Z])/g,nn=ns(e=>e.replace(Yc,"-$1").toLowerCase()),Bl=ns(e=>e.charAt(0).toUpperCase()+e.slice(1)),_s=ns(e=>e?`on${Bl(e)}`:""),kt=(e,t)=>!Object.is(e,t),vs=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Xc=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Jc=e=>{const t=Te(e)?Number(e):NaN;return isNaN(t)?e:t};let Zo;const rs=()=>Zo||(Zo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function tr(e){if(J(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(zc).forEach(n=>{if(n){const r=n.split(Qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Jt(e){let t="";if(Te(e))t=e;else if(J(e))for(let n=0;n!!(e&&e.__v_isRef===!0),dn=e=>Te(e)?e:e==null?"":J(e)||le(e)&&(e.toString===Ul||!Q(e.toString))?Gl(e)?dn(e.value):JSON.stringify(e,Kl,2):String(e),Kl=(e,t)=>Gl(t)?Kl(e,t.value):Qt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[bs(r,o)+" =>"]=s,n),{})}:jr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>bs(n))}:nt(t)?bs(t):le(t)&&!J(t)&&!Hl(t)?String(t):t,bs=(e,t="")=>{var n;return nt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Pe;class ql{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Pe&&(Pe.active?(this.parent=Pe,this.index=(Pe.scopes||(Pe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const r=this.scopes.slice();for(t=0,n=r.length;t0&&--this._on===0){if(Pe===this)Pe=this.prevScope;else{let t=Pe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(Xn){let t=Xn;for(Xn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Yn;){let t=Yn;for(Yn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ql(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Zl(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Co(r),iu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Us(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ea(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ea(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===nr)||(e.globalVersion=nr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Us(e))))return;e.flags|=2;const t=e.dep,n=ge,r=pt;ge=e,pt=!0;try{Ql(e);const s=e.fn(e._value);(t.version===0||kt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ge=n,pt=r,Zl(e),e.flags&=-3}}function Co(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Co(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function iu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let pt=!0;const ta=[];function Vt(){ta.push(pt),pt=!1}function Ut(){const e=ta.pop();pt=e===void 0?!0:e}function ni(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ge;ge=void 0;try{t()}finally{ge=n}}}let nr=0;class lu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ao{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ge||!pt||ge===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ge)n=this.activeLink=new lu(ge,this),ge.deps?(n.prevDep=ge.depsTail,ge.depsTail.nextDep=n,ge.depsTail=n):ge.deps=ge.depsTail=n,na(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ge.depsTail,n.nextDep=void 0,ge.depsTail.nextDep=n,ge.depsTail=n,ge.deps===n&&(ge.deps=r)}return n}trigger(t){this.version++,nr++,this.notify(t)}notify(t){yo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Eo()}}}function na(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)na(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Vr=new WeakMap,vn=Symbol(""),Hs=Symbol(""),rr=Symbol("");function Ue(e,t,n){if(pt&&ge){let r=Vr.get(e);r||Vr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ao),s.map=r,s.key=n),s.track()}}function Mt(e,t,n,r,s,o){const i=Vr.get(e);if(!i){nr++;return}const l=a=>{a&&a.trigger()};if(yo(),t==="clear")i.forEach(l);else{const a=J(e),c=a&&ts(n);if(a&&n==="length"){const u=Number(r);i.forEach((f,h)=>{(h==="length"||h===rr||!nt(h)&&h>=u)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),c&&l(i.get(rr)),t){case"add":a?c&&l(i.get("length")):(l(i.get(vn)),Qt(e)&&l(i.get(Hs)));break;case"delete":a||(l(i.get(vn)),Qt(e)&&l(i.get(Hs)));break;case"set":Qt(e)&&l(i.get(vn));break}}Eo()}function au(e,t){const n=Vr.get(e);return n&&n.get(t)}function kn(e){const t=oe(e);return t===e||(Ue(t,"iterate",rr),et(e))?t:wt(e)?Zt(e)?t.map(n=>en(ct(n))):t.map(en):t.map(ct)}function os(e){return Ue(e=oe(e),"iterate",rr),e}function At(e,t){return wt(e)?en(Zt(e)?ct(t):t):ct(t)}const cu={__proto__:null,[Symbol.iterator](){return Es(this,Symbol.iterator,e=>At(this,e))},concat(...e){return kn(this).concat(...e.map(t=>J(t)?kn(t):t))},entries(){return Es(this,"entries",e=>(e[1]=At(this,e[1]),e))},every(e,t){return It(this,"every",e,t,void 0,arguments)},filter(e,t){return It(this,"filter",e,t,n=>n.map(r=>At(this,r)),arguments)},find(e,t){return It(this,"find",e,t,n=>At(this,n),arguments)},findIndex(e,t){return It(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return It(this,"findLast",e,t,n=>At(this,n),arguments)},findLastIndex(e,t){return It(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return It(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cs(this,"includes",e)},indexOf(...e){return Cs(this,"indexOf",e)},join(e){return kn(this).join(e)},lastIndexOf(...e){return Cs(this,"lastIndexOf",e)},map(e,t){return It(this,"map",e,t,void 0,arguments)},pop(){return Vn(this,"pop")},push(...e){return Vn(this,"push",e)},reduce(e,...t){return ri(this,"reduce",e,t)},reduceRight(e,...t){return ri(this,"reduceRight",e,t)},shift(){return Vn(this,"shift")},some(e,t){return It(this,"some",e,t,void 0,arguments)},splice(...e){return Vn(this,"splice",e)},toReversed(){return kn(this).toReversed()},toSorted(e){return kn(this).toSorted(e)},toSpliced(...e){return kn(this).toSpliced(...e)},unshift(...e){return Vn(this,"unshift",e)},values(){return Es(this,"values",e=>At(this,e))}};function Es(e,t,n){const r=os(e),s=r[t]();return r!==e&&!et(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const uu=Array.prototype;function It(e,t,n,r,s,o){const i=os(e),l=i!==e&&!et(e),a=i[t];if(a!==uu[t]){const f=a.apply(e,o);return l?ct(f):f}let c=n;i!==e&&(l?c=function(f,h){return n.call(this,At(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=a.call(i,c,r);return l&&s?s(u):u}function ri(e,t,n,r){const s=os(e),o=s!==e&&!et(e);let i=n,l=!1;s!==e&&(o?(l=r.length===0,i=function(c,u,f){return l&&(l=!1,c=At(e,c)),n.call(this,c,At(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const a=s[t](i,...r);return l?At(e,a):a}function Cs(e,t,n){const r=oe(e);Ue(r,"iterate",rr);const s=r[t](...n);return(s===-1||s===!1)&&is(n[0])?(n[0]=oe(n[0]),r[t](...n)):s}function Vn(e,t,n=[]){Vt(),yo();const r=oe(e)[t].apply(e,n);return Eo(),Ut(),r}const fu=_o("__proto__,__v_isRef,__isVue"),ra=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(nt));function du(e){nt(e)||(e=String(e));const t=oe(this);return Ue(t,"has",e),t.hasOwnProperty(e)}class sa{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Cu:aa:o?la:ia).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=J(t);if(!s){let a;if(i&&(a=cu[n]))return a;if(n==="hasOwnProperty")return du}const l=Reflect.get(t,n,we(t)?t:r);if((nt(n)?ra.has(n):fu(n))||(s||Ue(t,"get",n),o))return l;if(we(l)){const a=i&&ts(n)?l:l.value;return s&&le(a)?Ws(a):a}return le(l)?s?Ws(l):br(l):l}}class oa extends sa{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=J(t)&&ts(n);if(!this._isShallow){const c=wt(o);if(!et(r)&&!wt(r)&&(o=oe(o),r=oe(r)),!i&&we(o)&&!we(r))return c||(o.value=r),!0}const l=i?Number(n)e,Tr=e=>Reflect.getPrototypeOf(e);function _u(e,t,n){return function(...r){const s=this.__v_raw,o=oe(s),i=Qt(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=s[e](...r),u=n?Bs:t?en:ct;return!t&&Ue(o,"iterate",a?Hs:vn),Oe(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:l?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function kr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function vu(e,t){const n={get(s){const o=this.__v_raw,i=oe(o),l=oe(s);e||(kt(s,l)&&Ue(i,"get",s),Ue(i,"get",l));const{has:a}=Tr(i),c=t?Bs:e?en:ct;if(a.call(i,s))return c(o.get(s));if(a.call(i,l))return c(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ue(oe(s),"iterate",vn),s.size},has(s){const o=this.__v_raw,i=oe(o),l=oe(s);return e||(kt(s,l)&&Ue(i,"has",s),Ue(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,a=oe(l),c=t?Bs:e?en:ct;return!e&&Ue(a,"iterate",vn),l.forEach((u,f)=>s.call(o,c(u),c(f),i))}};return Oe(n,e?{add:kr("add"),set:kr("set"),delete:kr("delete"),clear:kr("clear")}:{add(s){const o=oe(this),i=Tr(o),l=oe(s),a=!t&&!et(s)&&!wt(s)?l:s;return i.has.call(o,a)||kt(s,a)&&i.has.call(o,s)||kt(l,a)&&i.has.call(o,l)||(o.add(a),Mt(o,"add",a,a)),this},set(s,o){!t&&!et(o)&&!wt(o)&&(o=oe(o));const i=oe(this),{has:l,get:a}=Tr(i);let c=l.call(i,s);c||(s=oe(s),c=l.call(i,s));const u=a.call(i,s);return i.set(s,o),c?kt(o,u)&&Mt(i,"set",s,o):Mt(i,"add",s,o),this},delete(s){const o=oe(this),{has:i,get:l}=Tr(o);let a=i.call(o,s);a||(s=oe(s),a=i.call(o,s)),l&&l.call(o,s);const c=o.delete(s);return a&&Mt(o,"delete",s,void 0),c},clear(){const s=oe(this),o=s.size!==0,i=s.clear();return o&&Mt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=_u(s,e,t)}),n}function To(e,t){const n=vu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ue(n,s)&&s in r?n:r,s,o)}const bu={get:To(!1,!1)},yu={get:To(!1,!0)},Eu={get:To(!0,!1)};const ia=new WeakMap,la=new WeakMap,aa=new WeakMap,Cu=new WeakMap;function Au(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function br(e){return wt(e)?e:ko(e,!1,pu,bu,ia)}function ca(e){return ko(e,!1,gu,yu,la)}function Ws(e){return ko(e,!0,mu,Eu,aa)}function ko(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Au(Kc(e));if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Zt(e){return wt(e)?Zt(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function et(e){return!!(e&&e.__v_isShallow)}function is(e){return e?!!e.__v_raw:!1}function oe(e){const t=e&&e.__v_raw;return t?oe(t):e}function Tu(e){return!ue(e,"__v_skip")&&Object.isExtensible(e)&&Wl(e,"__v_skip",!0),e}const ct=e=>le(e)?br(e):e,en=e=>le(e)?Ws(e):e;function we(e){return e?e.__v_isRef===!0:!1}function bn(e){return ua(e,!1)}function yn(e){return ua(e,!0)}function ua(e,t){return we(e)?e:new ku(e,t)}class ku{constructor(t,n){this.dep=new Ao,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:oe(t),this._value=n?t:ct(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||et(t)||wt(t);t=r?t:oe(t),kt(t,n)&&(this._rawValue=t,this._value=r?t:ct(t),this.dep.trigger())}}function ne(e){return we(e)?e.value:e}function Nn(e){return Q(e)?e():ne(e)}const Su={get:(e,t,n)=>t==="__v_raw"?e:ne(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return we(s)&&!we(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function fa(e){return Zt(e)?e:new Proxy(e,Su)}class Lu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=nt(n)?n:String(n),this._raw=oe(t);let s=!0,o=t;if(!J(t)||nt(this._key)||!ts(this._key))do s=!is(o)||et(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ne(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&we(this._raw[this._key])){const n=this._object[this._key];if(we(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return au(this._raw,this._key)}}class wu{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Wg(e,t,n){return we(e)?e:Q(e)?new wu(e):le(e)&&arguments.length>1?Iu(e,t,n):bn(e)}function Iu(e,t,n){return new Lu(e,t,n)}class Ou{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ao(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=nr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ge!==this)return zl(this,!0),!0}get value(){const t=this.dep.track();return ea(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Nu(e,t,n=!1){let r,s;return Q(e)?r=e:(r=e.get,s=e.set),new Ou(r,s,n)}const Sr={},Ur=new WeakMap;let hn;function Ru(e,t=!1,n=hn){if(n){let r=Ur.get(n);r||Ur.set(n,r=[]),r.push(e)}}function Pu(e,t,n=pe){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,c=A=>s?A:et(A)||s===!1||s===0?Xt(A,1):Xt(A);let u,f,h,_,k=!1,S=!1;if(we(e)?(f=()=>e.value,k=et(e)):Zt(e)?(f=()=>c(e),k=!0):J(e)?(S=!0,k=e.some(A=>Zt(A)||et(A)),f=()=>e.map(A=>{if(we(A))return A.value;if(Zt(A))return c(A);if(Q(A))return a?a(A,2):A()})):Q(e)?t?f=a?()=>a(e,2):e:f=()=>{if(h){Vt();try{h()}finally{Ut()}}const A=hn;hn=u;try{return a?a(e,3,[_]):e(_)}finally{hn=A}}:f=St,t&&s){const A=f,M=s===!0?1/0:s;f=()=>Xt(A(),M)}const I=bo(),v=()=>{u.stop(),I&&I.active&&vo(I.effects,u)};if(o&&t){const A=t;t=(...M)=>{const D=A(...M);return v(),D}}let b=S?new Array(e.length).fill(Sr):Sr;const w=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(t){const M=u.run();if(A||s||k||(S?M.some((D,L)=>kt(D,b[L])):kt(M,b))){h&&h();const D=hn;hn=u;try{const L=[M,b===Sr?void 0:S&&b[0]===Sr?[]:b,_];b=M,a?a(t,3,L):t(...L)}finally{hn=D}}}else u.run()};return l&&l(w),u=new Xl(f),u.scheduler=i?()=>i(w,!1):w,_=A=>Ru(A,!1,u),h=u.onStop=()=>{const A=Ur.get(u);if(A){if(a)a(A,4);else for(const M of A)M();Ur.delete(u)}},t?r?w(!0):b=u.run():i?i(w.bind(null,!0),!0):u.run(),v.pause=u.pause.bind(u),v.resume=u.resume.bind(u),v.stop=v,v}function Xt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,we(e))Xt(e.value,t,n);else if(J(e))for(let r=0;r{Xt(r,t,n)});else if(Hl(e)){for(const r in e)Xt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Xt(e[r],t,n)}return e}function yr(e,t,n,r){try{return r?e(...r):e()}catch(s){ls(s,t,n)}}function ut(e,t,n,r){if(Q(e)){const s=yr(e,t,n,r);return s&&Vl(s)&&s.catch(o=>{ls(o,t,n)}),s}if(J(e)){const s=[];for(let o=0;o>>1,s=Ke[r],o=sr(s);o=sr(n)?Ke.push(e):Ke.splice(Mu(t),0,e),e.flags|=1,ha()}}function ha(){Hr||(Hr=da.then(ma))}function Du(e){if(!J(e))qt&&e.id===-1?qt.splice(Ln+1,0,e):e.flags&1||(Rn.push(e),e.flags|=1);else for(let t=0;tsr(n)-sr(r));if(Rn.length=0,qt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ma(e){try{for(Ct=0;Ct{r._d&&Kr(-1);const o=Br(t),i=jt.length;let l;try{l=e(...s)}finally{for(let a=jt.length;a>i;a--)Po();Br(o),r._d&&Kr(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function an(e,t,n,r){const s=e.dirs,o=t&&t.dirs;for(let i=0;i1)return n&&Q(t)?t.call(r&&r.proxy):t}}function _a(){return!!(Bt()||En)}const Fu=Symbol.for("v-scx"),ju=()=>tt(Fu);function Vu(e,t){return wo(e,null,t)}function at(e,t,n){return wo(e,t,n)}function wo(e,t,n=pe){const{immediate:r,deep:s,flush:o,once:i}=n,l=Oe({},n),a=t&&r||!t&&o!=="post";let c;if(cr){if(o==="sync"){const _=ju();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!a){const _=()=>{};return _.stop=St,_.resume=St,_.pause=St,_}}const u=qe;l.call=(_,k,S)=>ut(_,u,k,S);let f=!1;o==="post"?l.scheduler=_=>{$e(_,u&&u.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(_,k)=>{k?_():Lo(_)}),l.augmentJob=_=>{t&&(_.flags|=4),f&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const h=Pu(e,t,l);return cr&&(c?c.push(h):a&&h()),h}function Uu(e,t,n){const r=this.proxy,s=Te(e)?e.includes(".")?va(r,e):()=>r[e]:e.bind(r,r);let o;Q(t)?o=t:(o=t.handler,n=t);const i=Ar(this),l=wo(s,o.bind(r),n);return i(),l}function va(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,pn=e=>e&&(e.disabled||e.disabled===""),Hu=e=>e&&(e.defer||e.defer===""),oi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ii=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,$s=(e,t)=>{const n=e&&e.to;return Te(n)?t?t(n):null:n},Bu={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,a,c){const{mc:u,pc:f,pbc:h,o:{insert:_,querySelector:k,createText:S,createComment:I,parentNode:v}}=c,b=pn(t.props);let{dynamicChildren:w}=t;const A=(L,K,V)=>{L.shapeFlag&16&&u(L.children,K,V,s,o,i,l,a)},M=(L=t)=>{const K=pn(L.props),V=L.target=$s(L.props,k),Y=Gs(V,L,S,_);V&&(i!=="svg"&&oi(V)?i="svg":i!=="mathml"&&ii(V)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(V),K||(A(L,V,Y),$n(L,!1)))},D=L=>{const K=()=>{if(Kt.get(L)===K){if(Kt.delete(L),pn(L.props)){const V=v(L.el)||n;A(L,V,L.anchor),$n(L,!0)}M(L)}};Kt.set(L,K),$e(K,o)};if(e==null){const L=t.el=S(""),K=t.anchor=S("");if(_(L,n,r),_(K,n,r),Hu(t.props)||o&&o.pendingBranch){D(t);return}b&&(A(t,n,K),$n(t,!0)),M()}else{t.el=e.el;const L=t.anchor=e.anchor,K=Kt.get(e);if(K){K.flags|=8,Kt.delete(e),D(t);return}t.targetStart=e.targetStart;const V=t.target=e.target,Y=t.targetAnchor=e.targetAnchor,z=pn(e.props),j=z?n:V,Z=z?L:Y;if(i==="svg"||oi(V)?i="svg":(i==="mathml"||ii(V))&&(i="mathml"),w?(h(e.dynamicChildren,w,j,s,o,i,l),Ro(e,t,!0)):a||f(e,t,j,Z,s,o,i,l,!1),b)z?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Lr(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const me=$s(t.props,k);me&&(t.target=me,Lr(t,me,null,c,0))}else z&&Lr(t,V,Y,c,1);$n(t,b)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:a,targetStart:c,targetAnchor:u,target:f,props:h}=e,_=pn(h),k=o||!_,S=Kt.get(e);if(S&&(S.flags|=8,Kt.delete(e)),f&&(s(c),s(u)),o&&s(a),!S&&(_||f)&&i&16)for(let I=0;I{e.isMounted=!0}),La(()=>{e.isUnmounting=!0}),e}const st=[Function,Array],ya={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:st,onEnter:st,onAfterEnter:st,onEnterCancelled:st,onBeforeLeave:st,onLeave:st,onAfterLeave:st,onLeaveCancelled:st,onBeforeAppear:st,onAppear:st,onAfterAppear:st,onAppearCancelled:st},Ea=e=>{const t=e.subTree;return t.component?Ea(t.component):t},Gu={name:"BaseTransition",props:ya,setup(e,{slots:t}){const n=Bt(),r=$u();return()=>{const s=t.default&&Ta(t.default(),!0),o=s&&s.length?Ca(s):n.subTree?xn():void 0;if(!o)return;const i=oe(e),{mode:l}=i;if(r.isLeaving)return As(o);const a=Wr(o);if(!a)return As(o);let c=Ks(a,i,r,n,f=>c=f);a.type!==He&&or(a,c);let u=n.subTree&&Wr(n.subTree);if(u&&u.type!==He&&!mn(u,a)&&Ea(n).type!==He){let f=Ks(u,i,r,n);if(or(u,f),l==="out-in"&&a.type!==He)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,u=void 0},As(o);l==="in-out"&&a.type!==He?f.delayLeave=(h,_,k)=>{const S=Aa(r,u);S[String(u.key)]=u,h[ot]=()=>{_(),h[ot]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{k(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return o}}};function Ca(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==He){t=n;break}}return t}const Ku=Gu;function Aa(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ks(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:h,onLeave:_,onAfterLeave:k,onLeaveCancelled:S,onBeforeAppear:I,onAppear:v,onAfterAppear:b,onAppearCancelled:w}=t,A=String(e.key),M=Aa(n,e),D=(V,Y)=>{V&&ut(V,r,9,Y)},L=(V,Y)=>{const z=Y[1];D(V,Y),J(V)?V.every(j=>j.length<=1)&&z():V.length<=1&&z()},K={mode:i,persisted:l,beforeEnter(V){let Y=a;if(!n.isMounted)if(o)Y=I||a;else return;V[ot]&&V[ot](!0);const z=M[A];z&&mn(e,z)&&z.el[ot]&&z.el[ot](),D(Y,[V])},enter(V){if(M[A]===e)return;let Y=c,z=u,j=f;if(!n.isMounted)if(o)Y=v||c,z=b||u,j=w||f;else return;let Z=!1;V[Un]=De=>{Z||(Z=!0,De?D(j,[V]):D(z,[V]),K.delayedLeave&&K.delayedLeave(),V[Un]=void 0)};const me=V[Un].bind(null,!1);Y?L(Y,[V,me]):me()},leave(V,Y){const z=String(e.key);if(V[Un]&&V[Un](!0),n.isUnmounting)return Y();D(h,[V]);let j=!1;V[ot]=me=>{j||(j=!0,Y(),me?D(S,[V]):D(k,[V]),V[ot]=void 0,M[z]===e&&delete M[z])};const Z=V[ot].bind(null,!1);M[z]=e,_?L(_,[V,Z]):Z()},clone(V){const Y=Ks(V,t,n,r,s);return s&&s(Y),Y}};return K}function As(e){if(cs(e))return e=tn(e),e.children=null,e}function Wr(e){if(!cs(e))return as(e.type)&&e.children?Ca(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Q(n.default))return n.default()}}function or(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;or(as(n.type)&&Wr(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ta(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;on.value,set:o=>n.value=o})}return n}function li(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const $r=new WeakMap;function Jn(e,t,n,r,s=!1){if(J(e)){e.forEach((S,I)=>Jn(S,t&&(J(t)?t[I]:t),n,r,s));return}if(Pn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Jn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?xo(r.component):r.el,i=s?null:o,{i:l,r:a}=e,c=t&&t.r,u=l.refs===pe?l.refs={}:l.refs,f=l.setupState,h=oe(f),_=f===pe?jl:S=>li(u,S)?!1:ue(h,S),k=(S,I)=>!(I&&li(u,I));if(c!=null&&c!==a){if(ai(t),Te(c))u[c]=null,_(c)&&(f[c]=null);else if(we(c)){const S=t;k(c,S.k)&&(c.value=null),S.k&&(u[S.k]=null)}}if(Q(a))yr(a,l,12,[i,u]);else{const S=Te(a),I=we(a);if(S||I){const v=()=>{if(e.f){const b=S?_(a)?f[a]:u[a]:k()||!e.k?a.value:u[e.k];if(s)J(b)&&vo(b,o);else if(J(b))b.includes(o)||b.push(o);else if(S)u[a]=[o],_(a)&&(f[a]=u[a]);else{const w=[o];k(a,e.k)&&(a.value=w),e.k&&(u[e.k]=w)}}else S?(u[a]=i,_(a)&&(f[a]=i)):I&&(k(a,e.k)&&(a.value=i),e.k&&(u[e.k]=i))};if(i){const b=()=>{v(),$r.delete(e)};b.id=-1,$r.set(e,b),$e(b,n)}else ai(e),v()}}}function ai(e){const t=$r.get(e);t&&(t.flags|=8,$r.delete(e))}rs().requestIdleCallback;rs().cancelIdleCallback;const Pn=e=>!!e.type.__asyncLoader,cs=e=>e.type.__isKeepAlive;function Yu(e,t){Sa(e,"a",t)}function Xu(e,t){Sa(e,"da",t)}function Sa(e,t,n=qe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(us(t,r,n),n){let s=n.parent;for(;s&&s.parent;)cs(s.parent.vnode)&&Ju(r,t,n,s),s=s.parent}}function Ju(e,t,n,r){const s=us(t,e,r,!0);Io(()=>{vo(r[t],s)},n)}function us(e,t,n=qe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Vt();const l=Ar(n),a=ut(t,n,e,i);return l(),Ut(),a});return r?s.unshift(o):s.push(o),o}}const Ht=e=>(t,n=qe)=>{(!cr||e==="sp")&&us(e,(...r)=>t(...r),n)},zu=Ht("bm"),Er=Ht("m"),Qu=Ht("bu"),Zu=Ht("u"),La=Ht("bum"),Io=Ht("um"),ef=Ht("sp"),tf=Ht("rtg"),nf=Ht("rtc");function rf(e,t=qe){us("ec",e,t)}const sf=Symbol.for("v-ndc");function ci(e,t,n,r){let s;const o=n,i=J(e);if(i||Te(e)){const l=i&&Zt(e);let a=!1,c=!1;l&&(a=!et(e),c=wt(e),e=os(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,c=l.length;a{const o=r.fn(...s);return o&&(o.key=r.key),o}:r.fn)}return e}function of(e,t,n,r,s,o){if(n==null&&(n={}),Xe.ce||Xe.parent&&Pn(Xe.parent)&&Xe.parent.ce){const c=o!=null&&n.key==null?Oe({},n,{key:o}):n,u=Object.keys(c).length>0;return t!=="default"&&(c.name=t),Me(),Cn(Fe,null,[Ce("slot",c,r&&r())],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const l=jt.length;Me();let a;try{const c=i&&wa(i(n)),u=n.key||o||c&&c.key;a=Cn(Fe,{key:(u&&!nt(u)?u:`_${t}`)+(!c&&r?"_fb":"")},c||(r?r():[]),c&&e._===1?64:-2)}catch(c){for(let u=jt.length;u>l;u--)Po();throw c}finally{i&&i._c&&(i._d=!0)}return!s&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function wa(e){return e.some(t=>lr(t)?!(t.type===He||t.type===Fe&&!wa(t.children)):!0)?e:null}const qs=e=>e?qa(e)?xo(e):qs(e.parent):null,zn=Oe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>qs(e.parent),$root:e=>qs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Oa(e),$forceUpdate:e=>e.f||(e.f=()=>{Lo(e.update)}),$nextTick:e=>e.n||(e.n=So.bind(e.proxy)),$watch:e=>Uu.bind(e)}),Ts=(e,t)=>e!==pe&&!e.__isScriptSetup&&ue(e,t),lf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Ts(r,t))return i[t]=1,r[t];if(s!==pe&&ue(s,t))return i[t]=2,s[t];if(ue(o,t))return i[t]=3,o[t];if(n!==pe&&ue(n,t))return i[t]=4,n[t];Ys&&(i[t]=0)}}const c=zn[t];let u,f;if(c)return t==="$attrs"&&Ue(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==pe&&ue(n,t))return i[t]=4,n[t];if(f=a.config.globalProperties,ue(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Ts(s,t)?(s[t]=n,!0):r!==pe&&ue(r,t)?(r[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let a;return!!(n[l]||e!==pe&&l[0]!=="$"&&ue(e,l)||Ts(t,l)||ue(o,l)||ue(r,l)||ue(zn,l)||ue(s.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function qg(){return af().attrs}function af(e){const t=Bt();return t.setupContext||(t.setupContext=Xa(t))}function ui(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ys=!0;function cf(e){const t=Oa(e),n=e.proxy,r=e.ctx;Ys=!1,t.beforeCreate&&fi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:_,updated:k,activated:S,deactivated:I,beforeDestroy:v,beforeUnmount:b,destroyed:w,unmounted:A,render:M,renderTracked:D,renderTriggered:L,errorCaptured:K,serverPrefetch:V,expose:Y,inheritAttrs:z,components:j,directives:Z,filters:me}=t;if(c&&uf(c,r,null),i)for(const se in i){const te=i[se];Q(te)&&(r[se]=te.bind(n))}if(s){const se=s.call(n,n);le(se)&&(e.data=br(se))}if(Ys=!0,o)for(const se in o){const te=o[se],ze=Q(te)?te.bind(n,n):Q(te.get)?te.get.bind(n,n):St,xe=!Q(te)&&Q(te.set)?te.set.bind(n):St,je=ye({get:ze,set:xe});Object.defineProperty(r,se,{enumerable:!0,configurable:!0,get:()=>je.value,set:Ne=>je.value=Ne})}if(l)for(const se in l)Ia(l[se],r,n,se);if(a){const se=Q(a)?a.call(n):a;Reflect.ownKeys(se).forEach(te=>{Mr(te,se[te])})}u&&fi(u,e,"c");function _e(se,te){J(te)?te.forEach(ze=>se(ze.bind(n))):te&&se(te.bind(n))}if(_e(zu,f),_e(Er,h),_e(Qu,_),_e(Zu,k),_e(Yu,S),_e(Xu,I),_e(rf,K),_e(nf,D),_e(tf,L),_e(La,b),_e(Io,A),_e(ef,V),J(Y))if(Y.length){const se=e.exposed||(e.exposed={});Y.forEach(te=>{Object.defineProperty(se,te,{get:()=>n[te],set:ze=>n[te]=ze,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===St&&(e.render=M),z!=null&&(e.inheritAttrs=z),j&&(e.components=j),Z&&(e.directives=Z),V&&ka(e)}function uf(e,t,n=St){J(e)&&(e=Xs(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=tt(s.from||r,s.default,!0):o=tt(s.from||r):o=tt(s),we(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function fi(e,t,n){ut(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ia(e,t,n,r){let s=r.includes(".")?va(n,r):()=>n[r];if(Te(e)){const o=t[e];Q(o)&&at(s,o)}else if(Q(e))at(s,e.bind(n));else if(le(e))if(J(e))e.forEach(o=>Ia(o,t,n,r));else{const o=Q(e.handler)?e.handler.bind(n):t[e.handler];Q(o)&&at(s,o,e)}}function Oa(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let a;return l?a=l:!s.length&&!n&&!r?a=t:(a={},s.length&&s.forEach(c=>Gr(a,c,i,!0)),Gr(a,t,i)),le(t)&&o.set(t,a),a}function Gr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Gr(e,o,n,!0),s&&s.forEach(i=>Gr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=ff[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const ff={data:di,props:hi,emits:hi,methods:Gn,computed:Gn,beforeCreate:We,created:We,beforeMount:We,mounted:We,beforeUpdate:We,updated:We,beforeDestroy:We,beforeUnmount:We,destroyed:We,unmounted:We,activated:We,deactivated:We,errorCaptured:We,serverPrefetch:We,components:Gn,directives:Gn,watch:hf,provide:di,inject:df};function di(e,t){return t?e?function(){return Oe(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function df(e,t){return Gn(Xs(e),Xs(t))}function Xs(e){if(J(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ht(t)}Modifiers`]||e[`${nn(t)}Modifiers`];function _f(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||pe;let s=n;const o=t.startsWith("update:"),i=o&&gf(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>Te(u)?u.trim():u)),i.number&&(s=s.map(Xc)));let l,a=r[l=_s(t)]||r[l=_s(ht(t))];!a&&o&&(a=r[l=_s(nn(t))]),a&&ut(a,e,6,s);const c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ut(c,e,6,s)}}const vf=new WeakMap;function Ra(e,t,n=!1){const r=n?vf:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!Q(e)){const a=c=>{const u=Ra(c,t,!0);u&&(l=!0,Oe(i,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(le(e)&&r.set(e,null),null):(J(o)?o.forEach(a=>i[a]=null):Oe(i,o),le(e)&&r.set(e,i),i)}function fs(e,t){return!e||!Zr(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,nn(t))||ue(e,t))}function pi(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:c,renderCache:u,props:f,data:h,setupState:_,ctx:k,inheritAttrs:S}=e,I=Br(e);let v,b;try{if(n.shapeFlag&4){const A=s||r,M=A;v=Tt(c.call(M,A,u,f,_,h,k)),b=l}else{const A=t;v=Tt(A.length>1?A(f,{attrs:l,slots:i,emit:a}):A(f,null)),b=t.props?l:bf(l)}}catch(A){jt.length=0,ls(A,e,1),v=Ce(He)}let w=v;if(b&&S!==!1){const A=Object.keys(b),{shapeFlag:M}=w;A.length&&M&7&&(o&&A.some(es)&&(b=yf(b,o)),w=tn(w,b,!1,!0))}if(n.dirs&&(w=tn(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition){const A=as(w.type)&&Wr(w)||w;or(A,n.transition)}return v=w,Br(I),v}const bf=e=>{let t;for(const n in e)(n==="class"||n==="style"||Zr(n))&&((t||(t={}))[n]=e[n]);return t},yf=(e,t)=>{const n={};for(const r in e)(!es(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ef(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?mi(r,i,c):!!i;if(a&8){const u=t.dynamicProps;for(let f=0;fObject.create(xa),Da=e=>Object.getPrototypeOf(e)===xa;function Af(e,t,n,r=!1){const s={},o=Ma();e.propsDefaults=Object.create(null),Fa(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ca(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Tf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=oe(s),[a]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{a=!0;const[h,_]=ja(f,t,!0);Oe(i,h),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!a)return le(e)&&r.set(e,gn),gn;if(J(o))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",No=e=>J(e)?e.map(Tt):[Tt(e)],Sf=(e,t,n)=>{if(t._n)return t;const r=xr((...s)=>No(t(...s)),n);return r._c=!1,r},Va=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Oo(s))continue;const o=e[s];if(Q(o))t[s]=Sf(s,o,r);else if(o!=null){const i=No(o);t[s]=()=>i}}},Ua=(e,t)=>{const n=No(t);e.slots.default=()=>n},Ha=(e,t,n)=>{for(const r in t)(n||!Oo(r))&&(e[r]=t[r])},Lf=(e,t,n)=>{const r=e.slots=Ma();if(e.vnode.shapeFlag&32){const s=t._;s?(Ha(r,t,n),n&&Wl(r,"_",s,!0)):Va(t,r)}else t&&Ua(e,t)},wf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=pe;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ha(s,t,n):(o=!t.$stable,Va(t,s)),i=t}else t&&(Ua(e,t),i={default:1});if(o)for(const l in s)!Oo(l)&&i[l]==null&&delete s[l]},$e=Pf;function If(e){return Of(e)}function Of(e,t){const n=rs();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:_=St,insertStaticContent:k}=e,S=(m,g,E,N=null,P=null,R=null,d=void 0,p=null,y=!!g.dynamicChildren)=>{if(m===g)return;m&&!mn(m,g)&&(N=x(m),Ne(m,P,R,!0),m=null),g.patchFlag===-2&&(y=!1,g.dynamicChildren=null),g.dynamicChildren&&m&&m.dynamicChildren&&m.dynamicChildren.hasOnce&&(g.dynamicChildren===gn&&(g.dynamicChildren=[]),g.dynamicChildren.hasOnce=!0);const{type:C,ref:B,shapeFlag:F}=g;switch(C){case Cr:I(m,g,E,N);break;case He:v(m,g,E,N);break;case Ss:m==null&&b(g,E,N,d);break;case Fe:j(m,g,E,N,P,R,d,p,y);break;default:F&1?M(m,g,E,N,P,R,d,p,y):F&6?Z(m,g,E,N,P,R,d,p,y):(F&64||F&128)&&C.process(m,g,E,N,P,R,d,p,y,G)}B!=null&&P?Jn(B,m&&m.ref,R,g||m,!g):B==null&&m&&m.ref!=null&&Jn(m.ref,null,R,m,!0)},I=(m,g,E,N)=>{if(m==null)r(g.el=l(g.children),E,N);else{const P=g.el=m.el;g.children!==m.children&&c(P,g.children)}},v=(m,g,E,N)=>{m==null?r(g.el=a(g.children||""),E,N):g.el=m.el},b=(m,g,E,N)=>{[m.el,m.anchor]=k(m.children,g,E,N,m.el,m.anchor)},w=({el:m,anchor:g},E,N)=>{let P;for(;m&&m!==g;)P=h(m),r(m,E,N),m=P;r(g,E,N)},A=({el:m,anchor:g})=>{let E;for(;m&&m!==g;)E=h(m),s(m),m=E;s(g)},M=(m,g,E,N,P,R,d,p,y)=>{if(g.type==="svg"?d="svg":g.type==="math"&&(d="mathml"),m==null)D(g,E,N,P,R,d,p,y);else{const C=m.el&&m.el._isVueCE?m.el:null;try{C&&C._beginPatch(),V(m,g,P,R,d,p,y)}finally{C&&C._endPatch()}}},D=(m,g,E,N,P,R,d,p)=>{let y,C;const{props:B,shapeFlag:F,transition:U,dirs:T}=m;if(y=m.el=i(m.type,R,B&&B.is,B),F&8?u(y,m.children):F&16&&K(m.children,y,null,N,P,ks(m,R),d,p),T&&an(m,null,N,"created"),L(y,m,m.scopeId,d,N),B){for(const q in B)q!=="value"&&!qn(q)&&o(y,q,null,B[q],R,N);"value"in B&&o(y,"value",null,B.value,R),(C=B.onVnodeBeforeMount)&&bt(C,N,m)}T&&an(m,null,N,"beforeMount");const O=Nf(P,U);O&&U.beforeEnter(y),r(y,g,E),((C=B&&B.onVnodeMounted)||O||T)&&$e(()=>{C&&bt(C,N,m),O&&U.enter(y),T&&an(m,null,N,"mounted")},P)},L=(m,g,E,N,P)=>{if(E&&_(m,E),N)for(let R=0;R{for(let C=y;C{const p=g.el=m.el;let{patchFlag:y,dynamicChildren:C,dirs:B}=g;y|=m.patchFlag&16;const F=m.props||pe,U=g.props||pe;let T;if(E&&cn(E,!1),(T=U.onVnodeBeforeUpdate)&&bt(T,E,g,m),B&&an(g,m,E,"beforeUpdate"),E&&cn(E,!0),C&&(!m.dynamicChildren||m.dynamicChildren.length!==C.length)&&(y=0,d=!1,C=null),(F.innerHTML&&U.innerHTML==null||F.textContent&&U.textContent==null)&&u(p,""),C?Y(m.dynamicChildren,C,p,E,N,ks(g,P),R):d||te(m,g,p,null,E,N,ks(g,P),R,!1),y>0){if(y&16)z(p,F,U,E,P);else if(y&2&&F.class!==U.class&&o(p,"class",null,U.class,P),y&4&&o(p,"style",F.style,U.style,P),y&8){const O=g.dynamicProps;for(let q=0;q{T&&bt(T,E,g,m),B&&an(g,m,E,"updated")},N)},Y=(m,g,E,N,P,R,d)=>{for(let p=0;p{if(g!==E){if(g!==pe)for(const R in g)!qn(R)&&!(R in E)&&o(m,R,g[R],null,P,N);for(const R in E){if(qn(R))continue;const d=E[R],p=g[R];d!==p&&R!=="value"&&o(m,R,p,d,P,N)}"value"in E&&o(m,"value",g.value,E.value,P)}},j=(m,g,E,N,P,R,d,p,y)=>{const C=g.el=m?m.el:l(""),B=g.anchor=m?m.anchor:l("");let{patchFlag:F,dynamicChildren:U,slotScopeIds:T}=g;T&&(p=p?p.concat(T):T),m==null?(r(C,E,N),r(B,E,N),K(g.children||[],E,B,P,R,d,p,y)):F>0&&F&64&&U&&m.dynamicChildren&&m.dynamicChildren.length===U.length?(Y(m.dynamicChildren,U,E,P,R,d,p),(g.key!=null||P&&g===P.subTree)&&Ro(m,g,!0)):te(m,g,E,B,P,R,d,p,y)},Z=(m,g,E,N,P,R,d,p,y)=>{g.slotScopeIds=p,m==null?g.shapeFlag&512?P.ctx.activate(g,E,N,d,y):me(g,E,N,P,R,d,y):De(m,g,y)},me=(m,g,E,N,P,R,d)=>{const p=m.component=Uf(m,N,P);if(cs(m)&&(p.ctx.renderer=G),Hf(p,!1,d),p.asyncDep){if(P&&P.registerDep(p,_e,d),!m.el){const y=p.subTree=Ce(He);v(null,y,g,E),m.placeholder=y.el}}else _e(p,m,g,E,P,R,d)},De=(m,g,E)=>{const N=g.component=m.component;if(Ef(m,g,E))if(N.asyncDep&&!N.asyncResolved){g.el=m.el,se(N,g,E);return}else N.next=g,N.update();else g.el=m.el,N.vnode=g},_e=(m,g,E,N,P,R,d)=>{const p=()=>{if(m.isMounted){let{next:F,bu:U,u:T,parent:O,vnode:q}=m;{const rt=Ba(m);if(rt){F&&(F.el=q.el,se(m,F,d)),rt.asyncDep.then(()=>{$e(()=>{m.isUnmounted||C()},P)});return}}let X=F,de;cn(m,!1),F?(F.el=q.el,se(m,F,d)):F=q,U&&vs(U),(de=F.props&&F.props.onVnodeBeforeUpdate)&&bt(de,O,F,q),cn(m,!0);const ve=pi(m),ke=m.subTree;m.subTree=ve,S(ke,ve,f(ke.el),x(ke),m,P,R),F.el=ve.el,X===null&&Cf(m,ve.el),T&&$e(T,P),(de=F.props&&F.props.onVnodeUpdated)&&$e(()=>bt(de,O,F,q),P)}else{let F;const{el:U,props:T}=g,{bm:O,m:q,parent:X,root:de,type:ve}=m,ke=Pn(g);cn(m,!1),O&&vs(O),!ke&&(F=T&&T.onVnodeBeforeMount)&&bt(F,X,g),cn(m,!0);{de.ce&&de.ce._hasShadowRoot()&&de.ce._injectChildStyle(ve,m.parent?m.parent.type:void 0);const rt=m.subTree=pi(m);S(null,rt,E,N,m,P,R),g.el=rt.el}if(q&&$e(q,P),!ke&&(F=T&&T.onVnodeMounted)){const rt=g;$e(()=>bt(F,X,rt),P)}(g.shapeFlag&256||X&&Pn(X.vnode)&&X.vnode.shapeFlag&256)&&m.a&&$e(m.a,P),m.isMounted=!0,g=E=N=null}};m.scope.on();const y=m.effect=new Xl(p);m.scope.off();const C=m.update=y.run.bind(y),B=m.job=y.runIfDirty.bind(y);B.i=m,B.id=m.uid,y.scheduler=()=>Lo(B),cn(m,!0),C()},se=(m,g,E)=>{g.component=m;const N=m.vnode.props;m.vnode=g,m.next=null,Tf(m,g.props,N,E),wf(m,g.children,E),Vt(),si(m),Ut()},te=(m,g,E,N,P,R,d,p,y=!1)=>{const C=m&&m.children,B=m?m.shapeFlag:0,F=g.children,{patchFlag:U,shapeFlag:T}=g;if(U>0){if(U&128){xe(C,F,E,N,P,R,d,p,y);return}else if(U&256){ze(C,F,E,N,P,R,d,p,y);return}}T&8?(B&16&&Be(C,P,R),F!==C&&u(E,F)):B&16?T&16?xe(C,F,E,N,P,R,d,p,y):Be(C,P,R,!0):(B&8&&u(E,""),T&16&&K(F,E,N,P,R,d,p,y))},ze=(m,g,E,N,P,R,d,p,y)=>{m=m||gn,g=g||gn;const C=m.length,B=g.length,F=Math.min(C,B);let U;for(U=0;UB?Be(m,P,R,!0,!1,F):K(g,E,N,P,R,d,p,y,F)},xe=(m,g,E,N,P,R,d,p,y)=>{let C=0;const B=g.length;let F=m.length-1,U=B-1;for(;C<=F&&C<=U;){const T=m[C],O=g[C]=y?xt(g[C]):Tt(g[C]);if(mn(T,O))S(T,O,E,null,P,R,d,p,y);else break;C++}for(;C<=F&&C<=U;){const T=m[F],O=g[U]=y?xt(g[U]):Tt(g[U]);if(mn(T,O))S(T,O,E,null,P,R,d,p,y);else break;F--,U--}if(C>F){if(C<=U){const T=U+1,O=TU)for(;C<=F;)Ne(m[C],P,R,!0),C++;else{const T=C,O=C,q=new Map;for(C=O;C<=U;C++){const Qe=g[C]=y?xt(g[C]):Tt(g[C]);Qe.key!=null&&q.set(Qe.key,C)}let X,de=0;const ve=U-O+1;let ke=!1,rt=0;const Tn=new Array(ve);for(C=0;C=ve){Ne(Qe,P,R,!0);continue}let vt;if(Qe.key!=null)vt=q.get(Qe.key);else for(X=O;X<=U;X++)if(Tn[X-O]===0&&mn(Qe,g[X])){vt=X;break}vt===void 0?Ne(Qe,P,R,!0):(Tn[vt-O]=C+1,vt>=rt?rt=vt:ke=!0,S(Qe,g[vt],E,null,P,R,d,p,y),de++)}const Xo=ke?Rf(Tn):gn;for(X=Xo.length-1,C=ve-1;C>=0;C--){const Qe=O+C,vt=g[Qe],Jo=g[Qe+1],zo=Qe+1{const{el:R,type:d,transition:p,children:y,shapeFlag:C}=m;if(C&6){je(m.component.subTree,g,E,N);return}if(C&128){m.suspense.move(g,E,N);return}if(C&64){d.move(m,g,E,G);return}if(d===Fe){r(R,g,E);for(let F=0;Fp.enter(R),P));else{const{leave:F,delayLeave:U,afterLeave:T}=p,O=()=>{m.ctx.isUnmounted?s(R):r(R,g,E)},q=()=>{const X=R._isLeaving||!!R[ot];R._isLeaving&&R[ot](!0),p.persisted&&!X?O():F(R,()=>{O(),T&&T()})};U?U(R,O,q):q()}else r(R,g,E)},Ne=(m,g,E,N=!1,P=!1)=>{const{type:R,props:d,ref:p,children:y,dynamicChildren:C,shapeFlag:B,patchFlag:F,dirs:U,cacheIndex:T,memo:O}=m;if((F===-2||C&&C.hasOnce)&&(P=!1),p!=null&&(Vt(),Jn(p,null,E,m,!0),Ut()),T!=null&&(!m.ctx||m.ctx===g)&&(g.renderCache[T]=void 0),B&256){g.ctx.deactivate(m);return}const q=B&1&&U,X=!Pn(m);let de;if(X&&(de=d&&d.onVnodeBeforeUnmount)&&bt(de,g,m),B&6)ft(m.component,E,N);else{if(B&128){m.suspense.unmount(E,N);return}q&&an(m,null,g,"beforeUnmount"),B&64?m.type.remove(m,g,E,G,N):C&&!C.hasOnce&&(R!==Fe||F>0&&F&64)?Be(C,g,E,!1,!0):(R===Fe&&F&384||!P&&B&16)&&Be(y,g,E),N&>(m)}const ve=O!=null&&T==null;(X&&(de=d&&d.onVnodeUnmounted)||q||ve)&&$e(()=>{de&&bt(de,g,m),q&&an(m,null,g,"unmounted"),ve&&(m.el=null)},E)},gt=m=>{const{type:g,el:E,anchor:N,transition:P}=m;if(g===Fe){_t(E,N);return}if(g===Ss){A(m),P&&!P.persisted&&P.afterLeave&&P.afterLeave();return}const R=()=>{s(E),P&&!P.persisted&&P.afterLeave&&P.afterLeave()};if(m.shapeFlag&1&&P&&!P.persisted){const{leave:d,delayLeave:p}=P,y=()=>d(E,R);p?p(m.el,R,y):y()}else R()},_t=(m,g)=>{let E;for(;m!==g;)E=h(m),s(m),m=E;s(g)},ft=(m,g,E)=>{const{bum:N,scope:P,job:R,subTree:d,um:p,m:y,a:C}=m;_i(y),_i(C),N&&vs(N),P.stop(),R?(R.flags|=8,Ne(d,m,g,E)):m.vnode.el&&d&&(d.transition=m.vnode.transition,Ne(d,m,g,E)),p&&$e(p,g),$e(()=>{m.isUnmounted=!0},g)},Be=(m,g,E,N=!1,P=!1,R=0)=>{for(let d=R;d{if(m.shapeFlag&6)return x(m.component.subTree);if(m.shapeFlag&128)return m.suspense.next();const g=h(m.anchor||m.el),E=g&&g[ba];return E?h(E):g};let W=!1;const H=(m,g,E)=>{let N;m==null?g._vnode&&(Ne(g._vnode,null,null,!0),N=g._vnode.component):S(g._vnode||null,m,g,null,null,null,E),g._vnode=m,W||(W=!0,si(N),pa(),W=!1)},G={p:S,um:Ne,m:je,r:gt,mt:me,mc:K,pc:te,pbc:Y,n:x,o:e};return{render:H,hydrate:void 0,createApp:mf(H)}}function ks({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function cn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ro(e,t,n=!1){const r=e.children,s=t.children;if(J(r)&&J(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ba(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ba(t)}function _i(e){if(e)for(let t=0;te.__isSuspense;function Pf(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Du(e)}const Fe=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),He=Symbol.for("v-cmt"),Ss=Symbol.for("v-stc"),jt=[];let Ze=null;function Me(e=!1){jt.push(Ze=e?null:[])}function Po(){jt.pop(),Ze=jt[jt.length-1]||null}let ir=1;function Kr(e,t=!1){ir+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Ga(e){return e.dynamicChildren=ir>0?Ze||gn:null,Po(),ir>0&&Ze&&Ze.push(e),e}function dt(e,t,n,r,s,o){return Ga(Ee(e,t,n,r,s,o,!0))}function Cn(e,t,n,r,s){return Ga(Ce(e,t,n,r,s,!0))}function lr(e){return e?e.__v_isVNode===!0:!1}function mn(e,t){return e.type===t.type&&e.key===t.key}const Ka=({key:e})=>e??null,Dr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||we(e)||Q(e)?{i:Xe,r:e,k:t,f:!!n}:e:null);function Ee(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ka(t),ref:t&&Dr(t),scopeId:ga,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Xe};return l?(qr(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),ir>0&&!i&&Ze&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&Ze.push(a),a}const Ce=xf;function xf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===sf)&&(e=He),lr(e)){const l=tn(e,t,!0);return n&&qr(l,n),ir>0&&!o&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if($f(e)&&(e=e.__vccOpts),t){t=Mf(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=Jt(l)),le(a)&&(is(a)&&!J(a)&&(a=Oe({},a)),t.style=tr(a))}const i=Te(e)?1:$a(e)?128:as(e)?64:le(e)?4:Q(e)?2:0;return Ee(e,t,n,r,s,i,o,!0)}function Mf(e){return e?is(e)||Da(e)?Oe({},e):e:null}function tn(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,c=t?Ff(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ka(c),ref:t&&t.ref?n&&o?J(o)?o.concat(Dr(t)):[o,Dr(t)]:Dr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&tn(e.ssContent),ssFallback:e.ssFallback&&tn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&r&&or(u,a.clone(u)),u}function Df(e=" ",t=0){return Ce(Cr,null,e,t)}function xn(e="",t=!1){return t?(Me(),Cn(He,null,e)):Ce(He,null,e)}function Tt(e){return e==null||typeof e=="boolean"?Ce(He):J(e)?Ce(Fe,null,e.slice()):lr(e)?xt(e):Ce(Cr,null,String(e))}function xt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:tn(e)}function qr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),qr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Da(t)?t._ctx=Xe:s===3&&Xe&&(Xe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Q(t)){if(r&65){qr(e,{default:t});return}t={default:t,_ctx:Xe},n=32}else t=String(t),r&64?(n=16,t=[Df(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ff(...e){const t={};for(let n=0;nqe||Xe;let Yr,ar;{const e=rs(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Yr=t("__VUE_INSTANCE_SETTERS__",n=>qe=n),ar=t("__VUE_SSR_SETTERS__",n=>cr=n)}const Ar=e=>{const t=qe;return Yr(e),e.scope.on(),()=>{e.scope.off(),Yr(t)}},vi=()=>{qe&&qe.scope.off(),Yr(null)};function qa(e){return e.vnode.shapeFlag&4}let cr=!1;function Hf(e,t=!1,n=!1){t&&ar(t);const{props:r,children:s}=e.vnode,o=qa(e);Af(e,r,o,t),Lf(e,s,n||t);const i=o?Bf(e,t):void 0;return t&&ar(!1),i}function Bf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lf);const{setup:r}=n;if(r){Vt();const s=e.setupContext=r.length>1?Xa(e):null,o=Ar(e),i=yr(r,e,0,[e.props,s]),l=Vl(i);if(Ut(),o(),(l||e.sp)&&!Pn(e)&&ka(e),l){if(i.then(vi,vi),t)return i.then(a=>{ar(!0);try{bi(e,a,t)}finally{ar(!1)}}).catch(a=>{ls(a,e,0)});e.asyncDep=i}else bi(e,i)}else Ya(e)}function bi(e,t,n){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=fa(t)),Ya(e)}function Ya(e,t,n){const r=e.type;e.render||(e.render=r.render||St);{const s=Ar(e);Vt();try{cf(e)}finally{Ut(),s()}}}const Wf={get(e,t){return Ue(e,"get",""),e[t]}};function Xa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Wf),slots:e.slots,emit:e.emit,expose:t}}function xo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(fa(Tu(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in zn)return zn[n](e)},has(t,n){return n in t||n in zn}})):e.proxy}function $f(e){return Q(e)&&"__vccOpts"in e}const ye=(e,t)=>Nu(e,t,cr);function An(e,t,n){try{Kr(-1);const r=arguments.length;return r===2?le(t)&&!J(t)?lr(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&lr(n)&&(n=[n]),Ce(e,t,n))}finally{Kr(1)}}const Gf="3.5.43";let zs;const yi=typeof window<"u"&&window.trustedTypes;if(yi)try{zs=yi.createPolicy("vue",{createHTML:e=>e})}catch{}const Ja=zs?e=>zs.createHTML(e):e=>e,Kf="http://www.w3.org/2000/svg",qf="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,Ei=Pt&&Pt.createElement("template"),Yf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Pt.createElementNS(Kf,e):t==="mathml"?Pt.createElementNS(qf,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ei.innerHTML=Ja(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Ei.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Wt="transition",Hn="animation",ur=Symbol("_vtc"),za={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Xf=Oe({},ya,za),Jf=e=>(e.displayName="Transition",e.props=Xf,e),Yg=Jf((e,{slots:t})=>An(Ku,zf(e),t)),un=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ci=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function zf(e){const t={};for(const j in e)j in za||(t[j]=e[j]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:c=i,appearToClass:u=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,k=Qf(s),S=k&&k[0],I=k&&k[1],{onBeforeEnter:v,onEnter:b,onEnterCancelled:w,onLeave:A,onLeaveCancelled:M,onBeforeAppear:D=v,onAppear:L=b,onAppearCancelled:K=w}=t,V=(j,Z,me,De)=>{j._enterCancelled=De,fn(j,Z?u:l),fn(j,Z?c:i),me&&me()},Y=(j,Z)=>{j._isLeaving=!1,fn(j,f),fn(j,_),fn(j,h),Z&&Z()},z=j=>(Z,me)=>{const De=j?L:b,_e=()=>V(Z,j,me);un(De,[Z,_e]),Ai(()=>{fn(Z,j?a:o),Ot(Z,j?u:l),Ci(De)||Ti(Z,r,S,_e)})};return Oe(t,{onBeforeEnter(j){un(v,[j]),Ot(j,o),Ot(j,i)},onBeforeAppear(j){un(D,[j]),Ot(j,a),Ot(j,c)},onEnter:z(!1),onAppear:z(!0),onLeave(j,Z){j._isLeaving=!0;const me=()=>Y(j,Z);Ot(j,f),j._enterCancelled?(Ot(j,h),Li(j)):(Li(j),Ot(j,h)),Ai(()=>{j._isLeaving&&(fn(j,f),Ot(j,_),Ci(A)||Ti(j,r,I,me))}),un(A,[j,me])},onEnterCancelled(j){V(j,!1,void 0,!0),un(w,[j])},onAppearCancelled(j){V(j,!0,void 0,!0),un(K,[j])},onLeaveCancelled(j){Y(j),un(M,[j])}})}function Qf(e){if(e==null)return null;if(le(e))return[Ls(e.enter),Ls(e.leave)];{const t=Ls(e);return[t,t]}}function Ls(e){return Jc(e)}function Ot(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ur]||(e[ur]=new Set)).add(t)}function fn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ur];n&&(n.delete(t),n.size||(e[ur]=void 0))}function Ai(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Zf=0;function Ti(e,t,n,r){const s=e._endId=++Zf,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=ed(e,t);if(!i)return r();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,h),o()},h=_=>{_.target===e&&++u>=a&&f()};setTimeout(()=>{u(n[k]||"").split(", "),s=r(`${Wt}Delay`),o=r(`${Wt}Duration`),i=ki(s,o),l=r(`${Hn}Delay`),a=r(`${Hn}Duration`),c=ki(l,a);let u=null,f=0,h=0;t===Wt?i>0&&(u=Wt,f=i,h=o.length):t===Hn?c>0&&(u=Hn,f=c,h=a.length):(f=Math.max(i,c),u=f>0?i>c?Wt:Hn:null,h=u?u===Wt?o.length:a.length:0);const _=u===Wt&&/\b(?:transform|all)(?:,|$)/.test(r(`${Wt}Property`).toString());return{type:u,timeout:f,propCount:h,hasTransform:_}}function ki(e,t){for(;e.lengthSi(n)+Si(e[r])))}function Si(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Li(e){return(e?e.ownerDocument:document).body.offsetHeight}function td(e,t,n){const r=e[ur];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const wi=Symbol("_vod"),nd=Symbol("_vsh"),rd=Symbol(""),sd=/(?:^|;)\s*display\s*:/;function od(e,t,n){const r=e.style,s=Te(n);let o=!1;if(n&&!s){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Kn(r,l,"")}else for(const i in t)n[i]==null&&Kn(r,i,"");for(const i in n){i==="display"&&(o=!0);const l=n[i];l!=null?ld(e,i,!Te(t)&&t?t[i]:void 0,l)||Kn(r,i,l):Kn(r,i,"")}}else if(s){if(t!==n){const i=r[rd];i&&(n+=";"+i),r.cssText=n,o=sd.test(n)}}else t&&e.removeAttribute("style");wi in e&&(e[wi]=o?r.display:"",e[nd]&&(r.display="none"))}const wr=/\s*!important$/;function Kn(e,t,n){if(J(n))n.forEach(r=>Kn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))wr.test(n)?e.setProperty(t,n.replace(wr,""),"important"):e.setProperty(t,n);else{const r=id(e,t);wr.test(n)?e.setProperty(nn(r),n.replace(wr,""),"important"):e[r]=n}}const Ii=["Webkit","Moz","ms"],ws={};function id(e,t){const n=ws[t];if(n)return n;let r=ht(t);if(r!=="filter"&&r in e)return ws[t]=r;r=Bl(r);for(let s=0;sIs||(pd.then(()=>Is=0),Is=Date.now());function gd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(J(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),l=[r];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,_d=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?td(e,r,i):t==="style"?od(e,n,r):Zr(t)?es(t)||ud(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vd(e,t,r,i))?(Ri(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ni(e,t,r,i,o,t!=="value")):e._isVueCE&&(bd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Te(r)))?Ri(e,ht(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ni(e,t,r,i))};function vd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&xi(t)&&Q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return xi(t)&&Te(n)?!1:t in e}function bd(e,t){const n=e._def.props;if(!n)return!1;const r=ht(t);return Array.isArray(n)?n.some(s=>ht(s)===r):Object.keys(n).some(s=>ht(s)===r)}const yd=["ctrl","shift","alt","meta"],Ed={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>yd.some(n=>e[`${n}Key`]&&!t.includes(n))},Xg=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;const o=nn(s.key);if(t.some(i=>i===o||Cd[i]===o))return e(s)}))},Ad=Oe({patchProp:_d},Yf);let Mi;function Td(){return Mi||(Mi=If(Ad))}const kd=((...e)=>{const t=Td().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ld(r);if(!s)return;const o=t._component;!Q(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Sd(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Sd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ld(e){return Te(e)?document.querySelector(e):e}const Os=new WeakMap,wd=(...e)=>{var t;const n=e[0],r=(t=Bt())===null||t===void 0?void 0:t.proxy,s=r??bo();if(s==null&&!_a())throw new Error("injectLocal must be called in setup");return s&&Os.has(s)&&n in Os.get(s)?Os.get(s)[n]:tt(...e)},Id=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Od=Object.prototype.toString,Nd=e=>Od.call(e)==="[object Object]";function Di(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Ns(e){return Array.isArray(e)?e:[e]}function Rd(e,t,n){return at(e,t,{...n,immediate:!0})}const Qa=Id?window:void 0;function Pd(e){var t;const n=Nn(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function xd(...e){const t=(r,s,o,i)=>(r.addEventListener(s,o,i),()=>r.removeEventListener(s,o,i)),n=ye(()=>{const r=Ns(Nn(e[0])).filter(s=>s!=null);return r.every(s=>typeof s!="string")?r:void 0});return Rd(()=>{var r,s;return[(r=(s=n.value)===null||s===void 0?void 0:s.map(o=>Pd(o)))!==null&&r!==void 0?r:[Qa].filter(o=>o!=null),Ns(Nn(n.value?e[1]:e[0])),Ns(ne(n.value?e[2]:e[1])),Nn(n.value?e[3]:e[2])]},([r,s,o,i],l,a)=>{if(!r?.length||!s?.length||!o?.length)return;const c=Nd(i)?{...i}:i,u=r.flatMap(f=>s.flatMap(h=>o.map(_=>t(f,h,_,c))));a(()=>{u.forEach(f=>f())})},{flush:"post"})}function Md(){const e=yn(!1),t=Bt();return t&&Er(()=>{e.value=!0},t),e}function Dd(e){const t=Md();return ye(()=>(t.value,!!e()))}const Fd=Symbol("vueuse-ssr-width");function jd(){const e=_a()?wd(Fd,null):null;return typeof e=="number"?e:void 0}function Vd(e,t={}){const{window:n=Qa,ssrWidth:r=jd()}=t,s=Dd(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),o=yn(typeof r=="number"),i=yn(),l=yn(!1),a=c=>{l.value=c.matches};return Vu(()=>{if(o.value){o.value=!s.value;const c=Nn(e).split(",");l.value=c.some(u=>{const f=u.includes("not all"),h=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),_=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let k=!!(h||_);return h&&k&&(k=r>=Di(h[1])),_&&k&&(k=r<=Di(_[1])),f?!k:k});return}s.value&&(i.value=n.matchMedia(Nn(e)),l.value=i.value.matches)}),xd(i,"change",a,{passive:!0}),ye(()=>l.value)}const wn=typeof document<"u";function Za(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ud(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Za(e.default)}const ae=Object.assign;function Rs(e,t){const n={};for(const r in t){const s=t[r];n[r]=mt(s)?s.map(e):e(s)}return n}const Qn=()=>{},mt=Array.isArray;function Fi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Hd=/&/g,Bd=/\//g,Wd=/=/g,$d=/\?/g,tc=/\+/g,Gd=/%5B/g,Kd=/%5D/g,nc=/%5E/g,qd=/%60/g,rc=/%7B/g,Yd=/%7C/g,sc=/%7D/g,Xd=/%20/g;function Mo(e){return e==null?"":encodeURI(""+e).replace(Yd,"|").replace(Gd,"[").replace(Kd,"]")}function Jd(e){return Mo(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Qs(e){return Mo(e).replace(tc,"%2B").replace(Xd,"+").replace(ec,"%23").replace(Hd,"%26").replace(qd,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function zd(e){return Qs(e).replace(Wd,"%3D")}function Qd(e){return Mo(e).replace(ec,"%23").replace($d,"%3F")}function Zd(e){return Qd(e).replace(Bd,"%2F")}function fr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const eh=/\/$/,th=e=>e.replace(eh,"");function Ps(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(r=t.slice(0,a),o=t.slice(a,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=oh(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:fr(i)}}function nh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ji(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function rh(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Mn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Mn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!sh(e[n],t[n]))return!1;return!0}function sh(e,t){return mt(e)?Vi(e,t):mt(t)?Vi(t,e):e?.valueOf()===t?.valueOf()}function Vi(e,t){return mt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function oh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const $t={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Zs=(function(e){return e.pop="pop",e.push="push",e})({}),xs=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function ih(e){if(!e)if(wn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),th(e)}const lh=/^[^#]+#/;function ah(e,t){return e.replace(lh,"#")+t}function ch(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ds=()=>({left:window.scrollX,top:window.scrollY});function uh(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=ch(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Ui(e,t){return(history.state?history.state.position-t:-1)+e}const eo=new Map;function fh(e,t){eo.set(e,t)}function dh(e){const t=eo.get(e);return eo.delete(e),t}function hh(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let Se=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const lc=Symbol("");Se.MATCHER_NOT_FOUND+"",Se.NAVIGATION_GUARD_REDIRECT+"",Se.NAVIGATION_ABORTED+"",Se.NAVIGATION_CANCELLED+"",Se.NAVIGATION_DUPLICATED+"";function Dn(e,t){return ae(new Error,{type:e,[lc]:!0},t)}function Nt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const ph=["params","query","hash"];function mh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of ph)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gh(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Qs(s)):[r&&Qs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function _h(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=mt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const vh=Symbol(""),Bi=Symbol(""),hs=Symbol(""),Do=Symbol(""),to=Symbol("");function Bn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Yt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const c=h=>{h===!1?a(Dn(Se.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?a(h):hh(h)?a(Dn(Se.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(h=>a(h))})}function Ms(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(Za(a)){const c=(a.__vccOpts||a)[t];c&&o.push(Yt(c,n,r,i,l,s))}else{let c=a();o.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Ud(u)?u.default:u;i.mods[l]=u,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&Yt(h,n,r,i,l,s)()}))}}return o}function bh(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iMn(c,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(c=>Mn(c,a))||s.push(a))}return[n,r,s]}let yh=()=>location.protocol+"//"+location.host;function ac(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),ji(l,"")}return ji(n,e)+r+s}function Eh(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const _=ac(e,location),k=n.value,S=t.value;let I=0;if(h){if(n.value=_,t.value=h,i&&i===k){i=null;return}I=S?h.position-S.position:0}else r(_);s.forEach(v=>{v(n.value,k,{delta:I,type:Zs.pop,direction:I?I>0?xs.forward:xs.back:xs.unknown})})};function a(){i=n.value}function c(h){s.push(h);const _=()=>{const k=s.indexOf(h);k>-1&&s.splice(k,1)};return o.push(_),_}function u(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(ae({},h.state,{scroll:ds()}),"")}}function f(){for(const h of o)h();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Wi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?ds():null}}function Ch(e){const{history:t,location:n}=window,r={value:ac(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,c,u){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:yh()+e+a;try{t[u?"replaceState":"pushState"](c,"",h),s.value=c}catch(_){console.error(_),n[u?"replace":"assign"](h)}}function i(a,c){o(a,ae({},t.state,Wi(s.value.back,a,s.value.forward,!0),c,{position:s.value.position}),!0),r.value=a}function l(a,c){const u=ae({},s.value,t.state,{forward:a,scroll:ds()});o(u.current,u,!0),o(a,ae({},Wi(r.value,a,null),{position:u.position+1},c),!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function Ah(e){e=ih(e);const t=Ch(e),n=Eh(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=ae({location:"",base:e,go:r,createHref:ah.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}let _n=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Re=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Re||{});const Th={type:_n.Static,value:""},kh=/[a-zA-Z0-9_]/;function Sh(e){if(!e)return[[]];if(e==="/")return[[Th]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${c}": ${_}`)}let n=Re.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,c="",u="";function f(){c&&(n===Re.Static?o.push({type:_n.Static,value:c}):n===Re.Param||n===Re.ParamRegExp||n===Re.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:_n.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function h(){c+=a}for(;lt.length?t.length===1&&t[0]===Ge.Static+Ge.Segment?1:-1:0}function cc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Nh={strict:!1,end:!0,sensitive:!1};function Rh(e,t,n){const r=Ih(Sh(e.path),n),s=ae(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ph(e,t){const n=[],r=new Map;t=Fi(Nh,t);function s(f){return r.get(f)}function o(f,h,_){const k=!_,S=qi(f);S.aliasOf=_&&_.record;const I=Fi(t,f),v=[S];if("alias"in f){const A=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of A)v.push(qi(ae({},S,{components:_?_.record.components:S.components,path:M,aliasOf:_?_.record:S})))}let b,w;for(const A of v){const{path:M}=A;if(h&&M[0]!=="/"){const D=h.record.path,L=D[D.length-1]==="/"?"":"/";A.path=h.record.path+(M&&L+M)}if(b=Rh(A,h,I),_?_.alias.push(b):(w=w||b,w!==b&&w.alias.push(b),k&&f.name&&!Yi(b)&&i(f.name)),uc(b)&&a(b),S.children){const D=S.children;for(let L=0;L{i(w)}:Qn}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function a(f){const h=Dh(f,n);n.splice(h,0,f),f.record.name&&!Yi(f)&&r.set(f.record.name,f)}function c(f,h){let _,k={},S,I;if("name"in f&&f.name){if(_=r.get(f.name),!_)throw Dn(Se.MATCHER_NOT_FOUND,{location:f});I=_.record.name,k=ae(Ki(h.params,_.keys.filter(w=>!w.optional).concat(_.parent?_.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),f.params&&Ki(f.params,_.keys.map(w=>w.name))),S=_.stringify(k)}else if(f.path!=null)S=f.path,_=n.find(w=>w.re.test(S)),_&&(k=_.parse(S),I=_.record.name);else{if(_=h.name?r.get(h.name):n.find(w=>w.re.test(h.path)),!_)throw Dn(Se.MATCHER_NOT_FOUND,{location:f,currentLocation:h});I=_.record.name,k=ae({},h.params,f.params),S=_.stringify(k)}const v=[];let b=_;for(;b;)v.unshift(b.record),b=b.parent;return{name:I,path:S,params:k,matched:v,meta:Mh(v)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:l,getRecordMatcher:s}}function Ki(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function qi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:xh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function xh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Yi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mh(e){return e.reduce((t,n)=>ae(t,n.meta),{})}function Dh(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;cc(e,t[o])<0?r=o:n=o+1}const s=Fh(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Fh(e){let t=e;for(;t=t.parent;)if(uc(t)&&cc(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Xi(e){const t=tt(hs),n=tt(Do),r=ye(()=>{const a=ne(e.to);return t.resolve(a)}),s=ye(()=>{const{matched:a}=r.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const h=f.findIndex(Mn.bind(null,u));if(h>-1)return h;const _=Ji(a[c-2]);return c>1&&Ji(u)===_&&f[f.length-1].path!==_?f.findIndex(Mn.bind(null,a[c-2])):h}),o=ye(()=>s.value>-1&&Hh(n.params,r.value.params)),i=ye(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(a={}){if(Uh(a)){const c=t[ne(e.replace)?"replace":"push"](ne(e.to)).catch(Qn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:ye(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function jh(e){return e.length===1?e[0]:e}const Vh=rn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Xi,setup(e,{slots:t}){const n=br(Xi(e)),{options:r}=tt(hs),s=ye(()=>({[zi(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[zi(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&jh(t.default(n));return e.custom?o:An("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),no=Vh;function Uh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Hh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!mt(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Ji(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const zi=(e,t,n)=>e??t??n,Bh=rn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=tt(to),s=ye(()=>e.route||r.value),o=tt(Bi,0),i=ye(()=>{let c=ne(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=ye(()=>s.value.matched[i.value]);Mr(Bi,ye(()=>i.value+1)),Mr(vh,l),Mr(to,s);const a=bn();return at(()=>[a.value,l.value,e.name],([c,u,f],[h,_,k])=>{u&&(u.instances[f]=c,_&&_!==u&&c&&c===h&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),c&&u&&(!_||!Mn(u,_)||!h)&&(u.enterCallbacks[f]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=l.value,h=f&&f.components[u];if(!h)return Qi(n.default,{Component:h,route:c});const _=f.props[u],k=_?_===!0?c.params:typeof _=="function"?_(c):_:null,I=An(h,ae({},k,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return Qi(n.default,{Component:I,route:c})||I}}});function Qi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ro=Bh;function Wh(e){const t=Ph(e.routes,e),n=e.parseQuery||gh,r=e.stringifyQuery||Hi,s=e.history,o=Bn(),i=Bn(),l=Bn(),a=yn($t);let c=$t;wn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Rs.bind(null,x=>""+x),f=Rs.bind(null,Zd),h=Rs.bind(null,fr);function _(x,W){let H,G;return ic(x)?(H=t.getRecordMatcher(x),G=W):G=x,t.addRoute(G,H)}function k(x){const W=t.getRecordMatcher(x);W&&t.removeRoute(W)}function S(){return t.getRoutes().map(x=>x.record)}function I(x){return!!t.getRecordMatcher(x)}function v(x,W){if(W=ae({},W||a.value),typeof x=="string"){const E=Ps(n,x,W.path),N=t.resolve({path:E.path},W),P=s.createHref(E.fullPath);return ae(E,N,{params:h(N.params),hash:fr(E.hash),redirectedFrom:void 0,href:P})}let H;if(x.path!=null)H=ae({},x,{path:Ps(n,x.path,W.path).path});else{const E=ae({},x.params);for(const N in E)E[N]==null&&delete E[N];H=ae({},x,{params:f(E)}),W.params=f(W.params)}const G=t.resolve(H,W),ee=x.hash||"";G.params=u(h(G.params));const m=nh(r,ae({},x,{hash:Jd(ee),path:G.path})),g=s.createHref(m);return ae({fullPath:m,hash:ee,query:r===Hi?_h(x.query):x.query||{}},G,{redirectedFrom:void 0,href:g})}function b(x){return typeof x=="string"?Ps(n,x,a.value.path):ae({},x)}function w(x,W){if(c!==x)return Dn(Se.NAVIGATION_CANCELLED,{from:W,to:x})}function A(x){return L(x)}function M(x){return A(ae(b(x),{replace:!0}))}function D(x,W){const H=x.matched[x.matched.length-1];if(H&&H.redirect){const{redirect:G}=H;let ee=typeof G=="function"?G(x,W):G;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=b(ee):{path:ee},ee.params={}),ae({query:x.query,hash:x.hash,params:ee.path!=null?{}:x.params},ee)}}function L(x,W){const H=c=v(x),G=a.value,ee=x.state,m=x.force,g=x.replace===!0,E=D(H,G);if(E)return L(ae(b(E),{state:typeof E=="object"?ae({},ee,E.state):ee,force:m,replace:g}),W||H);const N=H;N.redirectedFrom=W;let P;return!m&&rh(r,G,H)&&(P=Dn(Se.NAVIGATION_DUPLICATED,{to:N,from:G}),je(G,G,!0,!1)),(P?Promise.resolve(P):Y(N,G)).catch(R=>Nt(R)?Nt(R,Se.NAVIGATION_GUARD_REDIRECT)?R:xe(R):te(R,N,G)).then(R=>{if(R){if(Nt(R,Se.NAVIGATION_GUARD_REDIRECT))return L(ae({replace:g},b(R.to),{state:typeof R.to=="object"?ae({},ee,R.to.state):ee,force:m}),W||N)}else R=j(N,G,!0,g,ee);return z(N,G,R),R})}function K(x,W){const H=w(x,W);return H?Promise.reject(H):Promise.resolve()}function V(x){const W=_t.values().next().value;return W&&typeof W.runWithContext=="function"?W.runWithContext(x):x()}function Y(x,W){let H;const[G,ee,m]=bh(x,W);H=Ms(G.reverse(),"beforeRouteLeave",x,W);for(const E of G)E.leaveGuards.forEach(N=>{H.push(Yt(N,x,W))});const g=K.bind(null,x,W);return H.push(g),Be(H).then(()=>{H=[];for(const E of o.list())H.push(Yt(E,x,W));return H.push(g),Be(H)}).then(()=>{H=Ms(ee,"beforeRouteUpdate",x,W);for(const E of ee)E.updateGuards.forEach(N=>{H.push(Yt(N,x,W))});return H.push(g),Be(H)}).then(()=>{H=[];for(const E of m)if(E.beforeEnter)if(mt(E.beforeEnter))for(const N of E.beforeEnter)H.push(Yt(N,x,W));else H.push(Yt(E.beforeEnter,x,W));return H.push(g),Be(H)}).then(()=>(x.matched.forEach(E=>E.enterCallbacks={}),H=Ms(m,"beforeRouteEnter",x,W,V),H.push(g),Be(H))).then(()=>{H=[];for(const E of i.list())H.push(Yt(E,x,W));return H.push(g),Be(H)}).catch(E=>Nt(E,Se.NAVIGATION_CANCELLED)?E:Promise.reject(E))}function z(x,W,H){l.list().forEach(G=>V(()=>G(x,W,H)))}function j(x,W,H,G,ee){const m=w(x,W);if(m)return m;const g=W===$t,E=wn?history.state:{};H&&(G||g?s.replace(x.fullPath,ae({scroll:g&&E&&E.scroll},ee)):s.push(x.fullPath,ee)),a.value=x,je(x,W,H,g),xe()}let Z;function me(){Z||(Z=s.listen((x,W,H)=>{if(!ft.listening)return;const G=v(x),ee=D(G,ft.currentRoute.value);if(ee){L(ae(ee,{replace:!0,force:!0}),G).catch(Qn);return}c=G;const m=a.value;wn&&fh(Ui(m.fullPath,H.delta),ds()),Y(G,m).catch(g=>Nt(g,Se.NAVIGATION_ABORTED|Se.NAVIGATION_CANCELLED)?g:Nt(g,Se.NAVIGATION_GUARD_REDIRECT)?(L(ae(b(g.to),{force:!0}),G).then(E=>{Nt(E,Se.NAVIGATION_ABORTED|Se.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Zs.pop&&s.go(-1,!1)}).catch(Qn),Promise.reject()):(H.delta&&s.go(-H.delta,!1),te(g,G,m))).then(g=>{g=g||j(G,m,!1),g&&(H.delta&&!Nt(g,Se.NAVIGATION_CANCELLED)?s.go(-H.delta,!1):H.type===Zs.pop&&Nt(g,Se.NAVIGATION_ABORTED|Se.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),z(G,m,g)}).catch(Qn)}))}let De=Bn(),_e=Bn(),se;function te(x,W,H){xe(x);const G=_e.list();return G.length?G.forEach(ee=>ee(x,W,H)):console.error(x),Promise.reject(x)}function ze(){return se&&a.value!==$t?Promise.resolve():new Promise((x,W)=>{De.add([x,W])})}function xe(x){return se||(se=!x,me(),De.list().forEach(([W,H])=>x?H(x):W()),De.reset()),x}function je(x,W,H,G){const{scrollBehavior:ee}=e;if(!wn||!ee)return Promise.resolve();const m=!H&&dh(Ui(x.fullPath,0))||(G||!H)&&history.state&&history.state.scroll||null;return So().then(()=>ee(x,W,m)).then(g=>g&&uh(g)).catch(g=>te(g,x,W))}const Ne=x=>s.go(x);let gt;const _t=new Set,ft={currentRoute:a,listening:!0,addRoute:_,removeRoute:k,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:S,resolve:v,options:e,push:A,replace:M,go:Ne,back:()=>Ne(-1),forward:()=>Ne(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:_e.add,isReady:ze,install(x){x.component("RouterLink",no),x.component("RouterView",ro),x.config.globalProperties.$router=ft,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>ne(a)}),wn&&!gt&&a.value===$t&&(gt=!0,A(s.location).catch(G=>{}));const W={};for(const G in $t)Object.defineProperty(W,G,{get:()=>a.value[G],enumerable:!0});x.provide(hs,ft),x.provide(Do,ca(W)),x.provide(to,a);const H=x.unmount;_t.add(x),x.unmount=function(){_t.delete(x),_t.size<1&&(c=$t,Z&&Z(),Z=null,a.value=$t,gt=!1,se=!1),H()}}};function Be(x){return x.reduce((W,H)=>W.then(()=>V(H)),Promise.resolve())}return ft}function zg(){return tt(hs)}function $h(e){return tt(Do)}const Xr=typeof window<"u",sn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Gh=(e,t,n)=>Kh({l:e,k:t,s:n}),Kh=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Le=e=>typeof e=="number"&&isFinite(e),fc=e=>jo(e)==="[object Date]",Fn=e=>jo(e)==="[object RegExp]",Fo=e=>fe(e)&&Object.keys(e).length===0,Ie=Object.assign,qh=Object.create,he=(e=null)=>qh(e);let Zi;const zt=()=>Zi||(Zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:he()),Yh=Object.prototype.hasOwnProperty;function lt(e,t){return Yh.call(e,t)}const be=Array.isArray,Ae=e=>typeof e=="function",$=e=>typeof e=="string",ie=e=>typeof e=="boolean",re=e=>e!==null&&typeof e=="object",Xh=e=>re(e)&&Ae(e.then)&&Ae(e.catch),dc=Object.prototype.toString,jo=e=>dc.call(e),fe=e=>jo(e)==="[object Object]",Jh=e=>e==null?"":be(e)||fe(e)&&e.toString===dc?JSON.stringify(e,null,2):String(e);function Vo(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function zh(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}function el(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Qh(e){return e.replace(/&(?![a-z0-9#]{2,6};)/gi,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}const Zh=/^javascript:/i,ep=/^(?:href|src|action|formaction)$/i,tp=/&#(?:x([0-9a-f]+)|(\d+));?/gi,np=/&(?:Tab|NewLine);/g,rp=/:?/gi,sp=/[\u0000-\u0020\u007f-\u009f]/g,op=/(?:^|[\s"'<>/])on\w+\s*=\s*["']?[^"'>]+["']?/i,ip=/(^|[\s"'<>/])on(\w+\s*=)/gi,lp=/(^|[\s"'<>/])((?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi;function ap(e,t,n){const r=t||n;if(!r)return e;const s=Number.parseInt(r,t?16:10);return s<=127?String.fromCharCode(s):e}function Uo(e){const t=e.replace(tp,ap).replace(np,"").replace(rp,":").replace(sp,"");return Zh.test(t)}function cp(e){const t=/url\s*\(/gi;let n="",r=0,s;for(;(s=t.exec(e))!==null;){const o=s.index,i=t.lastIndex-1;let l=i+1,a=1,c=null;for(;l`${n}="${tl(n,r)}"`),e=e.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(t,n,r)=>`${n}='${tl(n,r)}'`),op.test(e)&&(e=e.replace(ip,"$1on$2")),e=e.replace(lp,(t,n,r,s)=>Uo(s)?`${n}${r}about:blank`:t),e}const nl=e=>!re(e)||be(e);function Fr(e,t){if(nl(e)||nl(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{if(o==="__proto__")return;const i=r[o];if(be(i)){const l=[];l.length=i.length,s[o]=l,n.push({src:i,des:l})}else re(i)?((!re(s[o])||be(s[o]))&&(s[o]=he()),n.push({src:i,des:s[o]})):s[o]=i})}}function fp(e,t,n){return{line:e,column:t,offset:n}}function so(e,t,n){return{start:e,end:t}}const ce={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},dp=17;function ps(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=e,l=new SyntaxError(String(i));return l.code=e,t&&(l.location=t),l.domain=r,l}function hp(e){throw e}const yt=" ",pp="\r",Ve=` -`,mp="\u2028",gp="\u2029";function _p(e){const t=e;let n=0,r=1,s=1,o=0;const i=L=>t[L]===pp&&t[L+1]===Ve,l=L=>t[L]===Ve,a=L=>t[L]===gp,c=L=>t[L]===mp,u=L=>i(L)||l(L)||a(L)||c(L),f=()=>n,h=()=>r,_=()=>s,k=()=>o,S=L=>i(L)||a(L)||c(L)?Ve:t[L],I=()=>S(n),v=()=>S(n+o);function b(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function w(){return i(n+o)&&o++,o++,t[n+o]}function A(){n=0,r=1,s=1,o=0}function M(L=0){o=L}function D(){const L=n+o;for(;L!==n;)b();o=0}return{index:f,line:h,column:_,peekOffset:k,charAt:S,currentChar:I,currentPeek:v,next:b,peek:w,reset:A,resetPeek:M,skipToPeek:D}}const Rt=void 0,vp=".",rl="'",bp="tokenizer";function yp(e,t={}){const n=t.location!==!1,r=_p(e),s=()=>r.index(),o=()=>fp(r.line(),r.column(),r.index()),i=o(),l=s(),a={currentType:13,offset:l,startLoc:i,endLoc:i,lastType:13,lastOffset:l,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>a,{onError:u}=t;function f(d,p,y,...C){const B=c();if(p.column+=y,p.offset+=y,u){const F=n?so(B.startLoc,p):null,U=ps(d,F,{domain:bp,args:C});u(U)}}function h(d,p,y){d.endLoc=o(),d.currentType=p;const C={type:p};return n&&(C.loc=so(d.startLoc,d.endLoc)),y!=null&&(C.value=y),C}const _=d=>h(d,13);function k(d,p){return d.currentChar()===p?(d.next(),p):(f(ce.EXPECTED_TOKEN,o(),0,p),"")}function S(d){let p="";for(;d.currentPeek()===yt||d.currentPeek()===Ve;)p+=d.currentPeek(),d.peek();return p}function I(d){const p=S(d);return d.skipToPeek(),p}function v(d){if(d===Rt)return!1;const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function b(d){if(d===Rt)return!1;const p=d.charCodeAt(0);return p>=48&&p<=57}function w(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=v(d.currentPeek());return d.resetPeek(),C}function A(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=d.currentPeek()==="-"?d.peek():d.currentPeek(),B=b(C);return d.resetPeek(),B}function M(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=d.currentPeek()===rl;return d.resetPeek(),C}function D(d,p){const{currentType:y}=p;if(y!==7)return!1;S(d);const C=d.currentPeek()===".";return d.resetPeek(),C}function L(d,p){const{currentType:y}=p;if(y!==8)return!1;S(d);const C=v(d.currentPeek());return d.resetPeek(),C}function K(d,p){const{currentType:y}=p;if(!(y===7||y===11))return!1;S(d);const C=d.currentPeek()===":";return d.resetPeek(),C}function V(d,p){const{currentType:y}=p;if(y!==9)return!1;const C=()=>{const F=d.currentPeek();return F==="{"?v(d.peek()):F==="@"||F==="|"||F===":"||F==="."||F===yt||!F?!1:F===Ve?(d.peek(),C()):z(d,!1)},B=C();return d.resetPeek(),B}function Y(d){S(d);const p=d.currentPeek()==="|";return d.resetPeek(),p}function z(d,p=!0){const y=(B=!1,F="")=>{const U=d.currentPeek();return U==="{"||U==="@"||!U?B:U==="|"?!(F===yt||F===Ve):U===yt?(d.peek(),y(!0,yt)):U===Ve?(d.peek(),y(!0,Ve)):!0},C=y();return p&&d.resetPeek(),C}function j(d,p){const y=d.currentChar();return y===Rt?Rt:p(y)?(d.next(),y):null}function Z(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function me(d){return j(d,Z)}function De(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function _e(d){return j(d,De)}function se(d){const p=d.charCodeAt(0);return p>=48&&p<=57}function te(d){return j(d,se)}function ze(d){const p=d.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function xe(d){return j(d,ze)}function je(d){let p="",y="";for(;p=te(d);)y+=p;return y}function Ne(d){let p="";for(;;){const y=d.currentChar();if(y==="\\"){const C=d.peek();C==="{"||C==="}"||C==="@"||C==="|"||C==="\\"?(p+=y+C,d.next(),d.next()):(d.resetPeek(),p+=y,d.next())}else{if(y==="{"||y==="}"||y==="@"||y==="|"||!y)break;if(y===yt||y===Ve)if(z(d))p+=y,d.next();else{if(Y(d))break;p+=y,d.next()}else p+=y,d.next()}}return p}function gt(d){I(d);let p="",y="";for(;p=_e(d);)y+=p;const C=d.currentChar();if(C&&C!=="}"&&C!==Rt&&C!==yt&&C!==Ve&&C!==" "){const B=G(d);return f(ce.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,y+B),y+B}return d.currentChar()===Rt&&f(ce.UNTERMINATED_CLOSING_BRACE,o(),0),y}function _t(d){I(d);let p="";return d.currentChar()==="-"?(d.next(),p+=`-${je(d)}`):p+=je(d),d.currentChar()===Rt&&f(ce.UNTERMINATED_CLOSING_BRACE,o(),0),p}function ft(d){return d!==rl&&d!==Ve}function Be(d){I(d),k(d,"'");let p="",y="";for(;p=j(d,ft);)p==="\\"?y+=x(d):y+=p;const C=d.currentChar();return C===Ve||C===Rt?(f(ce.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),C===Ve&&(d.next(),k(d,"'")),y):(k(d,"'"),y)}function x(d){const p=d.currentChar();switch(p){case"\\":case"'":return d.next(),`\\${p}`;case"u":return W(d,p,4);case"U":return W(d,p,6);default:return f(ce.UNKNOWN_ESCAPE_SEQUENCE,o(),0,p),""}}function W(d,p,y){k(d,p);let C="";for(let B=0;B{const C=d.currentChar();return C==="{"||C==="@"||C==="|"||C==="("||C===")"||!C||C===yt?y:(y+=C,d.next(),p(y))};return p("")}function g(d){I(d);const p=k(d,"|");return I(d),p}function E(d,p){let y=null;switch(d.currentChar()){case"{":return p.braceNest>=1&&f(ce.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),d.next(),y=h(p,2,"{"),I(d),p.braceNest++,y;case"}":return p.braceNest>0&&p.currentType===2&&f(ce.EMPTY_PLACEHOLDER,o(),0),d.next(),y=h(p,3,"}"),p.braceNest--,p.braceNest>0&&I(d),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),y;case"@":return p.braceNest>0&&f(ce.UNTERMINATED_CLOSING_BRACE,o(),0),y=N(d,p)||_(p),p.braceNest=0,y;default:{let B=!0,F=!0,U=!0;if(Y(d))return p.braceNest>0&&f(ce.UNTERMINATED_CLOSING_BRACE,o(),0),y=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,y;if(p.braceNest>0&&(p.currentType===4||p.currentType===5||p.currentType===6))return f(ce.UNTERMINATED_CLOSING_BRACE,o(),0),p.braceNest=0,P(d,p);if(B=w(d,p))return y=h(p,4,gt(d)),I(d),y;if(F=A(d,p))return y=h(p,5,_t(d)),I(d),y;if(U=M(d,p))return y=h(p,6,Be(d)),I(d),y;if(!B&&!F&&!U)return y=h(p,12,G(d)),f(ce.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,y.value),I(d),y;break}}return y}function N(d,p){const{currentType:y}=p;let C=null;const B=d.currentChar();switch((y===7||y===8||y===11||y===9)&&(B===Ve||B===yt)&&f(ce.INVALID_LINKED_FORMAT,o(),0),B){case"@":return d.next(),C=h(p,7,"@"),p.inLinked=!0,C;case".":return I(d),d.next(),h(p,8,".");case":":return I(d),d.next(),h(p,9,":");default:return Y(d)?(C=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,C):D(d,p)||K(d,p)?(I(d),N(d,p)):L(d,p)?(I(d),h(p,11,ee(d))):V(d,p)?(I(d),B==="{"?E(d,p)||C:h(p,10,m(d))):(y===7&&f(ce.INVALID_LINKED_FORMAT,o(),0),p.braceNest=0,p.inLinked=!1,P(d,p))}}function P(d,p){let y={type:13};if(p.braceNest>0)return E(d,p)||_(p);if(p.inLinked)return N(d,p)||_(p);switch(d.currentChar()){case"{":return E(d,p)||_(p);case"}":return f(ce.UNBALANCED_CLOSING_BRACE,o(),0),d.next(),h(p,3,"}");case"@":return N(d,p)||_(p);default:{if(Y(d))return y=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,y;if(z(d))return h(p,0,Ne(d));break}}return y}function R(){const{currentType:d,offset:p,startLoc:y,endLoc:C}=a;return a.lastType=d,a.lastOffset=p,a.lastStartLoc=y,a.lastEndLoc=C,a.offset=s(),a.startLoc=o(),r.currentChar()===Rt?h(a,13):P(r,a)}return{nextToken:R,currentOffset:s,currentPosition:o,context:c}}const Ep="parser",Cp=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,Ap=/\\([\\@{}|])/g;function Tp(e,t){return t}function kp(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function Sp(e={}){const t=e.location!==!1,{onError:n}=e;function r(v,b,w,A,...M){const D=v.currentPosition();if(D.offset+=A,D.column+=A,n){const L=t?so(w,D):null,K=ps(b,L,{domain:Ep,args:M});n(K)}}function s(v,b,w){const A={type:v};return t&&(A.start=b,A.end=b,A.loc={start:w,end:w}),A}function o(v,b,w,A){t&&(v.end=b,v.loc&&(v.loc.end=w))}function i(v,b){const w=v.context(),A=s(3,w.offset,w.startLoc);return A.value=b.replace(Ap,Tp),o(A,v.currentOffset(),v.currentPosition()),A}function l(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(5,A,M);return D.index=parseInt(b,10),v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function a(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(4,A,M);return D.key=b,v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function c(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(9,A,M);return D.value=b.replace(Cp,kp),v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function u(v){const b=v.nextToken(),w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(8,A,M);return b.type!==11?(r(v,ce.UNEXPECTED_EMPTY_LINKED_MODIFIER,w.lastStartLoc,0),D.value="",o(D,A,M),{nextConsumeToken:b,node:D}):(b.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Et(b)),D.value=b.value||"",o(D,v.currentOffset(),v.currentPosition()),{node:D})}function f(v,b){const w=v.context(),A=s(7,w.offset,w.startLoc);return A.value=b,o(A,v.currentOffset(),v.currentPosition()),A}function h(v){const b=v.context(),w=s(6,b.offset,b.startLoc);let A=v.nextToken();if(A.type===8){const M=u(v);w.modifier=M.node,A=M.nextConsumeToken||v.nextToken()}switch(A.type!==9&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(A)),A=v.nextToken(),A.type===2&&(A=v.nextToken()),A.type){case 10:A.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(A)),w.key=f(v,A.value||"");break;case 4:A.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(A)),w.key=a(v,A.value||"");break;case 5:A.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(A)),w.key=l(v,A.value||"");break;case 6:A.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(A)),w.key=c(v,A.value||"");break;default:{r(v,ce.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const M=v.context(),D=s(7,M.offset,M.startLoc);return D.value="",o(D,M.offset,M.startLoc),w.key=D,o(w,M.offset,M.startLoc),{nextConsumeToken:A,node:w}}}return o(w,v.currentOffset(),v.currentPosition()),{node:w}}function _(v){const b=v.context(),w=b.currentType===1?v.currentOffset():b.offset,A=b.currentType===1?b.endLoc:b.startLoc,M=s(2,w,A);M.items=[];let D=null;do{const V=D||v.nextToken();switch(D=null,V.type){case 0:V.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(V)),M.items.push(i(v,V.value||""));break;case 5:V.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(V)),M.items.push(l(v,V.value||""));break;case 4:V.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(V)),M.items.push(a(v,V.value||""));break;case 6:V.value==null&&r(v,ce.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Et(V)),M.items.push(c(v,V.value||""));break;case 7:{const Y=h(v);M.items.push(Y.node),D=Y.nextConsumeToken||null;break}}}while(b.currentType!==13&&b.currentType!==1);const L=b.currentType===1?b.lastOffset:v.currentOffset(),K=b.currentType===1?b.lastEndLoc:v.currentPosition();return o(M,L,K),M}function k(v,b,w,A){const M=v.context();let D=A.items.length===0;const L=s(1,b,w);L.cases=[],L.cases.push(A);do{const K=_(v);D||(D=K.items.length===0),L.cases.push(K)}while(M.currentType!==13);return D&&r(v,ce.MUST_HAVE_MESSAGES_IN_PLURAL,w,0),o(L,v.currentOffset(),v.currentPosition()),L}function S(v){const b=v.context(),{offset:w,startLoc:A}=b,M=_(v);return b.currentType===13?M:k(v,w,A,M)}function I(v){const b=yp(v,Ie({},e)),w=b.context(),A=s(0,w.offset,w.startLoc);return t&&A.loc&&(A.loc.source=v),A.body=S(b),e.onCacheKey&&(A.cacheKey=e.onCacheKey(v)),w.currentType!==13&&r(b,ce.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,v[w.offset]||""),o(A,b.currentOffset(),b.currentPosition()),A}return{parse:I}}function Et(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Lp(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function sl(e,t){for(let n=0;nol(n)),e}function ol(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function a(S,I){i.code+=S}function c(S,I=!0){const v=I?r:"";a(s?v+" ".repeat(S):v)}function u(S=!0){const I=++i.indentLevel;S&&c(I)}function f(S=!0){const I=--i.indentLevel;S&&c(I)}function h(){c(i.indentLevel)}return{context:l,push:a,indent:u,deindent:f,newline:h,helper:S=>`_${S}`,needIndent:()=>i.needIndent}}function Np(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),jn(e,t.key),t.modifier?(e.push(", "),jn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Rp(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=$(t.mode)?t.mode:"normal",r=$(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],l=Op(e,{filename:r,breakLineCode:s,needIndent:o});l.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(o),i.length>0&&(l.push(`const { ${Vo(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),jn(l,e),l.deindent(o),l.push("}"),delete e.helpers;const{code:a,map:c}=l.context();return{ast:e,code:a,map:c?c.toJSON():void 0}};function Dp(e,t={}){const n=Ie({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,l=Sp(n).parse(e);return r?(o&&Ip(l),s&&In(l),{ast:l,code:""}):(wp(l,n),Mp(l,n))}function Fp(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(zt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(zt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Lt(e){return re(e)&&Bo(e)===0&&(lt(e,"b")||lt(e,"body"))}const hc=["b","body"];function jp(e){return on(e,hc)}const pc=["c","cases"];function Vp(e){return on(e,pc,[])}const mc=["s","static"];function Up(e){return on(e,mc)}const gc=["i","items"];function Hp(e){return on(e,gc,[])}const _c=["t","type"];function Bo(e){return on(e,_c)}const vc=["v","value"];function Ir(e,t){const n=on(e,vc);if(n!=null)return n;throw dr(t)}const bc=["m","modifier"];function Bp(e){return on(e,bc)}const yc=["k","key"];function Wp(e){const t=on(e,yc);if(t)return t;throw dr(6)}function on(e,t,n){for(let r=0;r$p(n,e)}function $p(e,t){const n=jp(t);if(n==null)throw dr(0);if(Bo(n)===1){const o=Vp(n);return e.plural(o.reduce((i,l)=>[...i,il(e,l)],[]))}else return il(e,n)}function il(e,t){const n=Up(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=Hp(t).reduce((s,o)=>[...s,oo(e,o)],[]);return e.normalize(r)}}function oo(e,t){const n=Bo(t);switch(n){case 3:return Ir(t,n);case 9:return Ir(t,n);case 4:{const r=t;if(lt(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(lt(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw dr(n)}case 5:{const r=t;if(lt(r,"i")&&Le(r.i))return e.interpolate(e.list(r.i));if(lt(r,"index")&&Le(r.index))return e.interpolate(e.list(r.index));throw dr(n)}case 6:{const r=t,s=Bp(r),o=Wp(r);return e.linked(oo(e,o),s?oo(e,s):void 0,e.type)}case 7:return Ir(t,n);case 8:return Ir(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Gp=e=>e;let Or=he();function Kp(e,t={}){let n=!1;const r=t.onError||hp;return t.onError=s=>{n=!0,r(s)},{...Dp(e,t),detectError:n}}function qp(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&$(e)){ie(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Gp)(e),s=Or[r];if(s)return s;const{ast:o,detectError:i}=Kp(e,{...t,location:!1,jit:!0}),l=Ds(o);return i?l:Or[r]=l}else{const n=e.cacheKey;if(n){const r=Or[n];return r||(Or[n]=Ds(e))}else return Ds(e)}}let hr=null;function Yp(e){hr=e}function Xp(e,t,n){hr&&hr.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Jp=zp("function:translate");function zp(e){return t=>hr&&hr.emit(e,t)}const Dt={INVALID_ARGUMENT:dp,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},Qp=24;function Ft(e){return ps(e,null,void 0)}function Wo(e,t){return t.locale!=null?ll(t.locale):ll(e.locale)}let Fs;function ll(e){if($(e))return e;if(Ae(e)){if(e.resolvedOnce&&Fs!=null)return Fs;if(e.constructor.name==="Function"){const t=e();if(Xh(t))throw Ft(Dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Fs=t}else throw Ft(Dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ft(Dt.NOT_SUPPORT_LOCALE_TYPE)}function Zp(e,t,n){return[...new Set([n,...be(t)?t:re(t)?Object.keys(t).filter(r=>r!=="default"):$(t)?[t]:[n]])]}function io(e,t,n){const r=$(n)?n:pr,s=e;let o;re(t)?(s.__localeChainObjectCache||(s.__localeChainObjectCache=new WeakMap),o=s.__localeChainObjectCache.get(t),o||(o=new Map,s.__localeChainObjectCache.set(t,o))):(s.__localeChainCache||(s.__localeChainCache=new Map),o=s.__localeChainCache.get(t),o||(o=new Map,s.__localeChainCache.set(t,o)));const i=o.get(r);if(i)return i;const l=[];let a=[n];for(;be(a);)a=al(l,a,t);const c=be(t)||!fe(t)?t:t.default?t.default:null;return a=$(c)?[c]:c,be(a)&&al(l,a,!1),o.set(r,l),l}function al(e,t,n){let r=!0;for(let s=0;s{i===void 0?i=l:i+=l},h[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,r=4,h[0]();else{if(s=0,i===void 0||(i=im(i),i===!1))return!1;h[1]()}};function _(){const k=e[n+1];if(r===5&&k==="'"||r===6&&k==='"')return n++,l="\\"+k,h[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&_())){if(a=om(o),f=ln[r],c=f[a]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(l=o,u()===!1))))return;if(r===7)return t}}const cl=new Map;function am(e,t){return re(e)?e[t]:null}function cm(e,t){if(!re(e))return null;let n=cl.get(t);if(n||(n=lm(t),n&&cl.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;o`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function fm(){return{upper:(e,t)=>t==="text"&&$(e)?e.toUpperCase():t==="vnode"&&re(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&$(e)?e.toLowerCase():t==="vnode"&&re(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&$(e)?ul(e):t==="vnode"&&re(e)&&"__v_isVNode"in e?ul(e.children):e}}let Cc;function dm(e){Cc=e}let Ac;function hm(e){Ac=e}let Tc;function pm(e){Tc=e}let kc=null;const mm=e=>{kc=e},gm=()=>kc;let Sc=null;const fl=e=>{Sc=e},dl=()=>Sc;let hl=0;function _m(e={}){const t=Ae(e.onWarn)?e.onWarn:zh,n=$(e.version)?e.version:um,r=$(e.locale)||Ae(e.locale)?e.locale:pr,s=Ae(r)?pr:r,o=be(e.fallbackLocale)||fe(e.fallbackLocale)||$(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=fe(e.messages)?e.messages:js(s),l=fe(e.datetimeFormats)?e.datetimeFormats:js(s),a=fe(e.numberFormats)?e.numberFormats:js(s),c=Ie(he(),e.modifiers,fm()),u=e.pluralRules||he(),f=Ae(e.missing)?e.missing:null,h=ie(e.missingWarn)||Fn(e.missingWarn)?e.missingWarn:!0,_=ie(e.fallbackWarn)||Fn(e.fallbackWarn)?e.fallbackWarn:!0,k=!!e.fallbackFormat,S=!!e.unresolving,I=Ae(e.postTranslation)?e.postTranslation:null,v=fe(e.processor)?e.processor:null,b=ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter,A=Ae(e.messageCompiler)?e.messageCompiler:Cc,M=Ae(e.messageResolver)?e.messageResolver:Ac||am,D=Ae(e.localeFallbacker)?e.localeFallbacker:Tc||Zp,L=re(e.fallbackContext)?e.fallbackContext:void 0,K=e,V=re(K.__datetimeFormatters)?K.__datetimeFormatters:new Map,Y=re(K.__numberFormatters)?K.__numberFormatters:new Map,z=re(K.__meta)?K.__meta:{};hl++;const j={version:n,cid:hl,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:_,fallbackFormat:k,unresolving:S,postTranslation:I,processor:v,warnHtmlMessage:b,escapeParameter:w,messageCompiler:A,messageResolver:M,localeFallbacker:D,fallbackContext:L,onWarn:t,__meta:z};return j.datetimeFormats=l,j.numberFormats=a,j.__datetimeFormatters=V,j.__numberFormatters=Y,__INTLIFY_PROD_DEVTOOLS__&&Xp(j,n,z),j}const js=e=>({[e]:he()});function Lc(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const l=o(e,n,t,s);return $(l)?l:t}else return t}function pl(e,t){const n=e;re(t)?n.__localeChainObjectCache?.delete(t):n.__localeChainCache?.delete(t)}function Nr(e,t,n){pl(e,n),e.fallbackContext&&pl(e.fallbackContext,n),e.localeFallbacker(e,n,t)}function vm(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function bm(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r{r.includes(a)?l[a]=s[a]:t[a]=s[a]}),$(o)?t.locale=o:fe(o)&&(l=o),fe(i)&&(l=i),l}function ml(e,...t){const{datetimeFormats:n,unresolving:r,onWarn:s}=e,{__datetimeFormatters:o}=e;if(!$(t[0])&&!fc(t[0])&&!Le(t[0]))return Jr;const[i,l,a,c]=lo(...t),u=ie(a.missingWarn)?a.missingWarn:e.missingWarn,f=ie(a.fallbackWarn)?a.fallbackWarn:e.fallbackWarn,h=!!a.part,_=Wo(e,a);if(!$(i)||i===""){const b=new Intl.DateTimeFormat(_.replace(/!/g,""),c);return h?b.formatToParts(l):b.format(l)}const k=wc(e,i,_,n,u,f,"datetime format");if(!$(k))return r?ms:i;const S=n[k][i],I=Ic(k,i,c);let v=o.get(I);return v||(v=new Intl.DateTimeFormat(k,Ie({},S,c)),o.set(I,v)),h?v.formatToParts(l):v.format(l)}const Rc=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function lo(...e){const[t]=e,n=he(),r=he();let s;if($(t)){const i=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!i)throw Ft(Dt.INVALID_ISO_DATE_ARGUMENT);const l=i[3]?i[3].trim().startsWith("T")?`${i[1].trim()}${i[3].trim()}`:`${i[1].trim()}T${i[3].trim()}`:i[1].trim();s=new Date(l);try{s.toISOString()}catch{throw Ft(Dt.INVALID_ISO_DATE_ARGUMENT)}}else if(fc(t)){if(isNaN(t.getTime()))throw Ft(Dt.INVALID_DATE_ARGUMENT);s=t}else if(Le(t))s=t;else throw Ft(Dt.INVALID_ARGUMENT);const o=Nc(e,n,r,Rc);return[n.key||"",s,n,o]}function gl(e,t,n){Oc(e.__datetimeFormatters,t,n)}function _l(e,...t){const{numberFormats:n,unresolving:r,onWarn:s}=e,{__numberFormatters:o}=e;if(!Le(t[0]))return Jr;const[i,l,a,c]=ao(...t),u=ie(a.missingWarn)?a.missingWarn:e.missingWarn,f=ie(a.fallbackWarn)?a.fallbackWarn:e.fallbackWarn,h=!!a.part,_=Wo(e,a);if(!$(i)||i===""){const b=new Intl.NumberFormat(_.replace(/!/g,""),c);return h?b.formatToParts(l):b.format(l)}const k=wc(e,i,_,n,u,f,"number format");if(!$(k))return r?ms:i;const S=n[k][i],I=Ic(k,i,c);let v=o.get(I);return v||(v=new Intl.NumberFormat(k,Ie({},S,c)),o.set(I,v)),h?v.formatToParts(l):v.format(l)}const Pc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function ao(...e){const[t]=e,n=he(),r=he();if(!Le(t))throw Ft(Dt.INVALID_ARGUMENT);const s=t,o=Nc(e,n,r,Pc);return[n.key||"",s,n,o]}function vl(e,t,n){Oc(e.__numberFormatters,t,n)}const ym=e=>e,Em=e=>"",Cm="text",Am=e=>e.length===0?"":Vo(e),Tm=Jh;function Vs(e,t){return e=Math.abs(e),t===2?e===1?0:1:Math.min(e,2)}function km(e){const t=Le(e.pluralIndex)?e.pluralIndex:-1;return Le(e.named?.count)?e.named.count:Le(e.named?.n)?e.named.n:t}function Sm(e={}){const t=e.locale,n=km(e),r=$(t)&&Ae(e.pluralRules?.[t])?e.pluralRules[t]:Vs,s=r===Vs?void 0:Vs,o=v=>v[r(n,v.length,s)],i=e.list||[],l=v=>i[v],a=e.named||he();Le(e.pluralIndex)&&(a.count||=e.pluralIndex,a.n||=e.pluralIndex);const c=v=>a[v];function u(v,b){const w=Ae(e.messages)?e.messages(v,!!b):re(e.messages)?e.messages[v]:!1;return w||(e.parent?e.parent.message(v):Em)}const f=v=>e.modifiers?e.modifiers[v]:ym,h=Ae(e.processor?.normalize)?e.processor.normalize:Am,_=Ae(e.processor?.interpolate)?e.processor.interpolate:Tm,k=$(e.processor?.type)?e.processor.type:Cm,I={list:l,named:c,plural:o,linked:(v,...b)=>{const[w,A]=b;let M="text",D="";b.length===1?re(w)?(D=w.modifier||D,M=w.type||M):$(w)&&(D=w||D):b.length===2&&($(w)&&(D=w||D),$(A)&&(M=A||M));const L=u(v,!0)(I),K=L===""||L===void 0?v:L,V=M==="vnode"&&be(K)&&D?K[0]:K;return D?f(D)(V,M):V},message:u,type:k,interpolate:_,normalize:h,values:Ie(he(),i,a)};return I}const bl=()=>"",it=e=>Ae(e);function yl(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:l}=e,[a,c]=co(...t),u=ie(c.missingWarn)?c.missingWarn:e.missingWarn,f=ie(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ie(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,k=$(c.default)||ie(c.default)?ie(c.default)?o?a:()=>a:c.default:n?o?a:()=>a:null,S=n||k!=null&&($(k)||Ae(k)),I=Wo(e,c);h&&Lm(c);let[v,b,w]=_?[a,I,l[I]||he()]:xc(e,a,I,i,f,u),A=v,M=a;if(!_&&!($(A)||Lt(A)||it(A))&&S&&(A=k,M=A),!_&&(!($(A)||Lt(A)||it(A))||!$(b)))return s?ms:a;let D=!1;const L=()=>{D=!0},K=it(A)?A:Mc(e,a,b,A,M,L);if(D)return A;const V=Om(e,b,w,c),Y=Sm(V),z=wm(e,K,Y);let j=r?r(z,a):z;if(h&&$(j)&&(j=up(j)),__INTLIFY_PROD_DEVTOOLS__){const Z={timestamp:Date.now(),key:$(a)?a:it(A)?A.key:"",locale:b||(it(A)?A.locale:""),format:$(A)?A:it(A)?A.source:"",message:j};Z.meta=Ie({},e.__meta,gm()||{}),Jp(Z)}return j}function Lm(e){be(e.list)?e.list=e.list.map(t=>$(t)?el(t):t):re(e.named)&&Object.keys(e.named).forEach(t=>{$(e.named[t])&&(e.named[t]=el(e.named[t]))})}function xc(e,t,n,r,s,o){const{messages:i,onWarn:l,messageResolver:a,localeFallbacker:c}=e,u=c(e,r,n);let f=he(),h,_=null;const k="translate";for(let S=0;Sr);return c.locale=n,c.key=t,c}const a=i(r,Im(e,n,s,r,l,o));return a.locale=n,a.key=t,a.source=r,a}function wm(e,t,n){return t(n)}function co(...e){const[t,n,r]=e,s=he();if(!$(t)&&!Le(t)&&!it(t)&&!Lt(t))throw Ft(Dt.INVALID_ARGUMENT);const o=Le(t)?String(t):(it(t),t);return Le(n)?s.plural=n:$(n)?s.default=n:fe(n)&&!Fo(n)?s.named=n:be(n)&&(s.list=n),Le(r)?s.plural=r:$(r)?s.default=r:fe(r)&&Ie(s,r),[o,s]}function Im(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>Gh(t,n,i)}}function Om(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:l,fallbackWarn:a,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:o,messages:(_,k)=>{let S=i(n,_);if(S==null&&(u||k)){const[I,,v]=xc(u||e,_,t,l,a,c);S=I??i(v,_)}if($(S)||Lt(S)){let I=!1;const b=Mc(e,_,t,S,_,()=>{I=!0});return I?bl:b}else return it(S)?S:bl}};return e.processor&&(h.processor=e.processor),r.list&&(h.list=r.list),r.named&&(h.named=r.named),Le(r.plural)&&(h.pluralIndex=r.plural),h}Fp();const Nm="11.4.12";function Rm(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(zt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(zt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(zt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(zt().__INTLIFY_PROD_DEVTOOLS__=!1)}const Ye={UNEXPECTED_RETURN_TYPE:Qp,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function Je(e,...t){return ps(e,null,void 0)}const uo=sn("__translateVNode"),fo=sn("__datetimeParts"),ho=sn("__numberParts"),Dc=sn("__setPluralRules"),Fc=sn("__injectWithOption"),On=sn("__dispose");let jc=null;{const e=zt().__VUE_INSTANCE_SETTERS__;be(e)&&e.push(t=>{jc=t})}function mr(e){if(!re(e)||Lt(e))return e;for(const t in e)if(lt(e,t))if(!t.includes("."))re(e[t])&&mr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in l&&"resource"in l){const{locale:a,resource:c}=l;a?(i[a]=i[a]||he(),Fr(c,i[a])):Fr(c,i)}else $(l)&&Fr(JSON.parse(l),i)}),s==null&&o)for(const l in i)lt(i,l)&&mr(i[l]);return i}function Vc(e){return e.type}function Uc(e,t,n){let r=re(t.messages)?t.messages:he();"__i18nGlobal"in n&&(r=$o(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(re(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(re(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function El(e){return Ce(Cr,null,e,0)}function gr(){return jc??Bt()}const Cl="__INTLIFY_META__",Al=()=>[],Pm=()=>!1;let Tl=0;function kl(e){return((t,n,r,s)=>e(n,r,gr()||void 0,s))}const xm=()=>{const e=gr();let t=null;return e&&(t=Vc(e)[Cl])?{[Cl]:t}:null};function zr(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,s=e.flatJson,o=Xr?bn:yn;let i=ie(e.inheritLocale)?e.inheritLocale:!0;const l=o(t&&i?t.locale.value:$(e.locale)?e.locale:pr),a=o(t&&i?t.fallbackLocale.value:$(e.fallbackLocale)||be(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),c=o($o(l.value,e)),u=o(fe(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),f=o(fe(e.numberFormats)?e.numberFormats:{[l.value]:{}});let h=t?t.missingWarn:ie(e.missingWarn)||Fn(e.missingWarn)?e.missingWarn:!0,_=t?t.fallbackWarn:ie(e.fallbackWarn)||Fn(e.fallbackWarn)?e.fallbackWarn:!0,k=t?t.fallbackRoot:ie(e.fallbackRoot)?e.fallbackRoot:!0,S=!!e.fallbackFormat,I=Ae(e.missing)?e.missing:null,v=Ae(e.missing)?kl(e.missing):null,b=Ae(e.postTranslation)?e.postTranslation:null,w=t?t.warnHtmlMessage:ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,A=!!e.escapeParameter;const M=t?t.modifiers:fe(e.modifiers)?e.modifiers:{};let D=e.pluralRules||t&&t.pluralRules,L;L=(()=>{r&&fl(null);const T={version:Nm,locale:l.value,fallbackLocale:a.value,messages:c.value,modifiers:M,pluralRules:D,missing:v===null?void 0:v,missingWarn:h,fallbackWarn:_,fallbackFormat:S,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:w,escapeParameter:A,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=u.value,T.numberFormats=f.value,T.__datetimeFormatters=fe(L)?L.__datetimeFormatters:void 0,T.__numberFormatters=fe(L)?L.__numberFormatters:void 0;const O=_m(T);return r&&fl(O),O})(),Nr(L,l.value,a.value);function V(){return[l.value,a.value,c.value,u.value,f.value]}const Y=ye({get:()=>l.value,set:T=>{L.locale=T,l.value=T}});function z(T){r||(L.fallbackContext=t?dl():void 0);try{Nr(L,l.value,T)}finally{r||(L.fallbackContext=void 0)}}const j=ye({get:()=>a.value,set:T=>{a.value=T,L.fallbackLocale=a.value,z(a.value)}}),Z=ye(()=>c.value),me=ye(()=>u.value),De=ye(()=>f.value);function _e(){return Ae(b)?b:null}function se(T){b=T,L.postTranslation=T}function te(){return I}function ze(T){T!==null&&(v=kl(T)),I=T,L.missing=v}const xe=(T,O,q,X,de,ve)=>{V();let ke;try{__INTLIFY_PROD_DEVTOOLS__,r||(L.fallbackContext=t?dl():void 0),ke=T(L)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(L.fallbackContext=void 0)}if(q!=="translate exists"&&Le(ke)&&ke===ms||q==="translate exists"&&!ke){const[rt,Tn]=O();return t&&k?X(t):de(rt)}else{if(ve(ke))return ke;throw Je(Ye.UNEXPECTED_RETURN_TYPE)}};function je(...T){return xe(O=>Reflect.apply(yl,null,[O,...T]),()=>co(...T),"translate",O=>Reflect.apply(O.t,O,[...T]),O=>O,O=>$(O))}function Ne(...T){const[O,q,X]=T;if(X&&!re(X))throw Je(Ye.INVALID_ARGUMENT);return je(O,q,Ie({resolvedMessage:!0},X||{}))}function gt(...T){return xe(O=>Reflect.apply(ml,null,[O,...T]),()=>lo(...T),"datetime format",O=>Reflect.apply(O.d,O,[...T]),()=>Jr,O=>$(O)||be(O))}function _t(...T){return xe(O=>Reflect.apply(_l,null,[O,...T]),()=>ao(...T),"number format",O=>Reflect.apply(O.n,O,[...T]),()=>Jr,O=>$(O)||be(O))}function ft(T){return T.map(O=>$(O)||Le(O)||ie(O)?El(String(O)):O)}const x={normalize:ft,interpolate:T=>T,type:"vnode"};function W(...T){return xe(O=>{let q;const X=O;try{X.processor=x,q=Reflect.apply(yl,null,[X,...T])}finally{X.processor=null}return q},()=>co(...T),"translate",O=>O[uo](...T),O=>[El(O)],O=>be(O))}function H(...T){return xe(O=>Reflect.apply(_l,null,[O,...T]),()=>ao(...T),"number format",O=>O[ho](...T),Al,O=>$(O)||be(O))}function G(...T){return xe(O=>Reflect.apply(ml,null,[O,...T]),()=>lo(...T),"datetime format",O=>O[fo](...T),Al,O=>$(O)||be(O))}function ee(T){D=T,L.pluralRules=D}function m(T,O){return xe(()=>{if(!T)return!1;const q=$(O)?O:l.value,X=$(O)?[q]:io(L,a.value,q);for(let de=0;de[T],"translate exists",q=>Reflect.apply(q.te,q,[T,O]),Pm,q=>ie(q))}function g(T){let O=null;const q=io(L,a.value,l.value);for(let X=0;Xz(a.value),{deep:!0,flush:"sync"}),t&&Xr&&(at(t.locale,T=>{i&&(l.value=T,L.locale=T,Nr(L,l.value,a.value))}),at(t.fallbackLocale,T=>{i&&(a.value=T,L.fallbackLocale=a.value,Nr(L,l.value,a.value))}));const U={id:Tl,locale:Y,fallbackLocale:j,get inheritLocale(){return i},set inheritLocale(T){i=T,T&&t&&(Y.value=t.locale.value,j.value=t.fallbackLocale.value)},get availableLocales(){return Object.keys(c.value).sort()},messages:Z,get modifiers(){return M},get pluralRules(){return D||{}},get isGlobal(){return r},get missingWarn(){return h},set missingWarn(T){h=T,L.missingWarn=h},get fallbackWarn(){return _},set fallbackWarn(T){_=T,L.fallbackWarn=_},get fallbackRoot(){return k},set fallbackRoot(T){k=T},get fallbackFormat(){return S},set fallbackFormat(T){S=T,L.fallbackFormat=S},get warnHtmlMessage(){return w},set warnHtmlMessage(T){w=T,L.warnHtmlMessage=T},get escapeParameter(){return A},set escapeParameter(T){A=T,L.escapeParameter=T},t:je,getLocaleMessage:N,setLocaleMessage:P,mergeLocaleMessage:R,getPostTranslationHandler:_e,setPostTranslationHandler:se,getMissingHandler:te,setMissingHandler:ze,[Dc]:ee};return U.datetimeFormats=me,U.numberFormats=De,U.rt=Ne,U.te=m,U.tm=E,U.d=gt,U.n=_t,U.getDateTimeFormat=d,U.setDateTimeFormat=p,U.mergeDateTimeFormat=y,U.getNumberFormat=C,U.setNumberFormat=B,U.mergeNumberFormat=F,U[Fc]=n,U[uo]=W,U[fo]=G,U[ho]=H,U}function Mm(e){const t=$(e.locale)?e.locale:pr,n=$(e.fallbackLocale)||be(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Ae(e.missing)?e.missing:void 0,s=ie(e.silentTranslationWarn)||Fn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ie(e.silentFallbackWarn)||Fn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ie(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,a=fe(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ae(e.postTranslation)?e.postTranslation:void 0,f=$(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,_=ie(e.sync)?e.sync:!0;let k=e.messages;if(fe(e.sharedMessages)){const M=e.sharedMessages;k=Object.keys(M).reduce((L,K)=>{const V=L[K]||(L[K]={});return Ie(V,M[K]),L},k||{})}const{__i18n:S,__root:I,__injectWithOption:v}=e,b=e.datetimeFormats,w=e.numberFormats,A=e.flatJson;return{locale:t,fallbackLocale:n,messages:k,flatJson:A,datetimeFormats:b,numberFormats:w,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:l,modifiers:a,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:_,__i18n:S,__root:I,__injectWithOption:v}}function po(e={}){const t=zr(Mm(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(s){t.locale.value=s},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(s){t.fallbackLocale.value=s},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(s){t.setMissingHandler(s)},get silentTranslationWarn(){return ie(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(s){t.missingWarn=ie(s)?!s:s},get silentFallbackWarn(){return ie(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(s){t.fallbackWarn=ie(s)?!s:s},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(s){t.fallbackFormat=s},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(s){t.setPostTranslationHandler(s)},get sync(){return t.inheritLocale},set sync(s){t.inheritLocale=s},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){t.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(s){t.escapeParameter=s},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...s){return Reflect.apply(t.t,t,[...s])},rt(...s){return Reflect.apply(t.rt,t,[...s])},te(s,o){return t.te(s,o)},tm(s){return t.tm(s)},getLocaleMessage(s){return t.getLocaleMessage(s)},setLocaleMessage(s,o){t.setLocaleMessage(s,o)},mergeLocaleMessage(s,o){t.mergeLocaleMessage(s,o)},d(...s){return Reflect.apply(t.d,t,[...s])},getDateTimeFormat(s){return t.getDateTimeFormat(s)},setDateTimeFormat(s,o){t.setDateTimeFormat(s,o)},mergeDateTimeFormat(s,o){t.mergeDateTimeFormat(s,o)},n(...s){return Reflect.apply(t.n,t,[...s])},getNumberFormat(s){return t.getNumberFormat(s)},setNumberFormat(s,o){t.setNumberFormat(s,o)},mergeNumberFormat(s,o){t.mergeNumberFormat(s,o)}};return r.__extender=n,r}function Dm(e,t,n){return{beforeCreate(){const r=gr();if(!r)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=Sl(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=po(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Sl(e,s);else{this.$i18n=po({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Uc(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=gr();if(!r)throw Je(Ye.UNEXPECTED_ERROR);const s=this.$i18n;s&&(delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s?.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n)}}}function Sl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Dc](t.pluralizationRules||e.pluralizationRules);const n=$o(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const Go={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Fm({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Fe?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},he())}function Hc(){return Fe}const jm=rn({name:"i18n-t",props:Ie({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Le(e)||!isNaN(e)}},Go),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||gs({useScope:e.scope,__useComponent:!0});return()=>{const o=()=>{const a=Object.keys(n).filter(f=>f[0]!=="_"),c=he();e.locale&&(c.locale=e.locale),e.plural!==void 0&&(c.plural=$(e.plural)?+e.plural:e.plural);const u=Fm(t,a);return s[uo](e.keypath,u,c)},i=Ie(he(),r),l=$(e.tag)||re(e.tag)?e.tag:Hc();return re(l)?An(l,i,{default:o}):An(l,i,o())}}}),Ll=jm;function Vm(e){return be(e)&&!$(e[0])}function Bc(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i=()=>{const c={part:!0};let u=he();e.locale&&(c.locale=e.locale),$(e.format)?c.key=e.format:re(e.format)&&($(e.format.key)&&(c.key=e.format.key),u=Object.keys(e.format).reduce((_,k)=>n.includes(k)?Ie(he(),_,{[k]:e.format[k]}):_,he()));const f=r(e.value,c,u);let h=[c.key];return be(f)?h=f.map((_,k)=>{const S=s[_.type],I=S?S({[_.type]:_.value,index:k,parts:f}):[_.value];return Vm(I)&&(I[0].key=`${_.type}-${k}`),I}):$(f)&&(h=[f]),h},l=Ie(he(),o),a=$(e.tag)||re(e.tag)?e.tag:Hc();return re(a)?An(a,l,{default:i}):An(a,l,i())}}const Um=rn({name:"i18n-n",props:Ie({value:{type:Number,required:!0},format:{type:[String,Object]}},Go),setup(e,t){const n=e.i18n||gs({useScope:e.scope,__useComponent:!0});return Bc(e,t,Pc,(...r)=>n[ho](...r))}}),wl=Um;function Hm(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function Bm(e){const t=i=>{const{instance:l,value:a}=i;if(!l||!l.$)throw Je(Ye.UNEXPECTED_ERROR);const c=Hm(e,l.$),u=Il(a);return[Reflect.apply(c.t,c,[...Ol(u)]),c]};return{created:(i,l)=>{const[a,c]=t(l);Xr&&(i.__i18nWatcher=at(c.locale,()=>{l.instance&&l.instance.$forceUpdate()})),i.__composer=c,i.textContent=a},unmounted:i=>{Xr&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:l})=>{if(i.__composer){const a=i.__composer,c=Il(l);i.textContent=Reflect.apply(a.t,a,[...Ol(c)])}},getSSRProps:i=>{const[l]=t(i);return{textContent:l}}}}function Il(e){if($(e))return{path:e};if(fe(e)){if(!("path"in e))throw Je(Ye.REQUIRED_VALUE,"path");return e}else throw Je(Ye.INVALID_VALUE)}function Ol(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},l=r||{};return $(n)&&(i.locale=n),Le(s)&&(i.plural=s),Le(o)&&(i.plural=o),[t,l,i]}function Wm(e,t,...n){const r=fe(n[0])?n[0]:{};(!ie(r.globalInstall)||r.globalInstall)&&([Ll.name,"I18nT"].forEach(o=>e.component(o,Ll)),[wl.name,"I18nN"].forEach(o=>e.component(o,wl)),[Pl.name,"I18nD"].forEach(o=>e.component(o,Pl))),e.directive("t",Bm(t))}const $m=sn("global-vue-i18n");function Gm(e={}){const t=__VUE_I18N_LEGACY_API__&&ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=ie(e.globalInjection)?e.globalInjection:!0,r=new Map,[s,o]=Km(e,t),i=sn("");function l(f){return r.get(f)||null}function a(f,h){r.set(f,h)}function c(f){r.delete(f)}const u={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(f,...h){if(f.__VUE_I18N_SYMBOL__=i,f.provide(f.__VUE_I18N_SYMBOL__,u),fe(h[0])){const S=h[0];u.__composerExtend=S.__composerExtend,u.__vueI18nExtend=S.__vueI18nExtend}let _=null;!t&&n&&(_=Zm(f,u.global)),__VUE_I18N_FULL_INSTALL__&&Wm(f,u,...h),__VUE_I18N_LEGACY_API__&&t&&f.mixin(Dm(o,o.__composer,u));const k=f.unmount;f.unmount=()=>{_&&_(),u.dispose(),k()}},get global(){return o},dispose(){s.stop()},__instances:r,__getInstance:l,__setInstance:a,__deleteInstance:c};return u}function gs(e={}){const t=gr();if(t==null)throw Je(Ye.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Je(Ye.NOT_INSTALLED);const n=qm(t),r=Xm(n),s=Vc(t),o=Ym(e,s);if(o==="global")return Uc(r,e,s),r;if(o==="parent"){let a=Nl(n,t,e.__useComponent);return a==null&&(a=r),a}if(o==="isolated"){if(n.mode!=="composition")throw Je(Ye.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const a=n,c=Ie({},e),u=Nl(n,t);c.__root=u||r;const f=zr(c);return a.__composerExtend&&(f[On]=a.__composerExtend(f)),bo()&&Yl(()=>{const _=f[On];_&&(_(),delete f[On])}),f}const i=n;let l=i.__getInstance(t);if(l==null){const a=Ie({},e);"__i18n"in s&&(a.__i18n=s.__i18n),r&&(a.__root=r),l=zr(a),i.__composerExtend&&(l[On]=i.__composerExtend(l)),zm(i,t,l),i.__setInstance(t,l)}return l}function Km(e,t){const n=ou(),r=__VUE_I18N_LEGACY_API__&&t?n.run(()=>po(e)):n.run(()=>zr(e));if(r==null)throw Je(Ye.UNEXPECTED_ERROR);return[n,r]}function qm(e){const t=tt(e.isCE?$m:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Je(e.isCE?Ye.NOT_INSTALLED_WITH_PROVIDE:Ye.UNEXPECTED_ERROR);return t}function Ym(e,t){return Fo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Xm(e){return e.mode==="composition"?e.global:e.global.__composer}function Nl(e,t,n=!1){let r=null;const s=t.root;let o=Jm(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const l=i.__getInstance(o);l!=null&&(r=l.__composer,n&&r&&!r[Fc]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function Jm(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function zm(e,t,n){Er(()=>{},t),Io(()=>{const r=n;e.__deleteInstance(t);const s=r[On];s&&(s(),delete r[On])},t)}const Qm=["locale","fallbackLocale","availableLocales"],Rl=["t","rt","d","n","tm","te"];function Zm(e,t){const n=Object.create(null);return Qm.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw Je(Ye.UNEXPECTED_ERROR);const i=we(o.value)?{get(){return o.value.value},set(l){o.value.value=l}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Rl.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw Je(Ye.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,Rl.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}const eg=rn({name:"i18n-d",props:Ie({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Go),setup(e,t){const n=e.i18n||gs({useScope:e.scope,__useComponent:!0});return Bc(e,t,Rc,(...r)=>n[fo](...r))}}),Pl=eg;Rm();dm(qp);hm(cm);pm(io);if(__INTLIFY_PROD_DEVTOOLS__){const e=zt();e.__INTLIFY__=!0,Yp(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const tg={"arrow-down":{viewBox:"0 0 24 24",body:''},"arrow-left-on-rectangle":{viewBox:"0 0 24 24",body:''},"arrow-path":{viewBox:"0 0 24 24",body:''},"arrow-path-rounded-square":{viewBox:"0 0 24 24",body:''},"arrow-up":{viewBox:"0 0 24 24",body:''},"arrow-up-tray":{viewBox:"0 0 24 24",body:''},"bars-3":{viewBox:"0 0 24 24",body:''},check:{viewBox:"0 0 24 24",body:''},"check-circle":{viewBox:"0 0 24 24",body:''},"chevron-down":{viewBox:"0 0 24 24",body:''},"chevron-left":{viewBox:"0 0 24 24",body:''},"chevron-right":{viewBox:"0 0 24 24",body:''},"chevron-up":{viewBox:"0 0 24 24",body:''},"chevron-up-down":{viewBox:"0 0 24 24",body:''},"circle-stack":{viewBox:"0 0 24 24",body:''},"clipboard-document":{viewBox:"0 0 24 24",body:''},clock:{viewBox:"0 0 24 24",body:''},"cog-6-tooth":{viewBox:"0 0 24 24",body:''},"cpu-chip":{viewBox:"0 0 24 24",body:''},"document-text":{viewBox:"0 0 24 24",body:''},"exclamation-circle":{viewBox:"0 0 24 24",body:''},"exclamation-triangle":{viewBox:"0 0 24 24",body:''},eye:{viewBox:"0 0 24 24",body:''},"eye-slash":{viewBox:"0 0 24 24",body:''},"information-circle":{viewBox:"0 0 24 24",body:''},key:{viewBox:"0 0 24 24",body:''},"lock-closed":{viewBox:"0 0 24 24",body:''},"magnifying-glass":{viewBox:"0 0 24 24",body:''},"no-symbol":{viewBox:"0 0 24 24",body:''},"pencil-square":{viewBox:"0 0 24 24",body:''},plus:{viewBox:"0 0 24 24",body:''},"queue-list":{viewBox:"0 0 24 24",body:''},"server-stack":{viewBox:"0 0 24 24",body:''},"squares-2x2":{viewBox:"0 0 24 24",body:''},trash:{viewBox:"0 0 24 24",body:''},user:{viewBox:"0 0 24 24",body:''},"wrench-screwdriver":{viewBox:"0 0 24 24",body:''},"x-mark":{viewBox:"0 0 24 24",body:''},"circle-check":{viewBox:"0 0 24 24",body:''},gauge:{viewBox:"0 0 24 24",body:''},"layers-2":{viewBox:"0 0 24 24",body:''},moon:{viewBox:"0 0 24 24",body:''},sun:{viewBox:"0 0 24 24",body:''}},ng=["viewBox","role","aria-label","aria-hidden","innerHTML"],rg=["aria-label"],sg=rn({__name:"JfIcon",props:{name:{},size:{default:"md"},label:{default:void 0}},setup(e){const t=e,n=ye(()=>tg[t.name]),r=ye(()=>`var(--jf-icon-${t.size})`);return(s,o)=>n.value?(Me(),dt("svg",{key:0,class:"jf-icon",style:tr({width:r.value,height:r.value}),viewBox:n.value.viewBox,role:e.label?"img":void 0,"aria-label":e.label,"aria-hidden":e.label?void 0:"true",focusable:"false",innerHTML:n.value.body},null,12,ng)):(Me(),dt("span",{key:1,class:"jf-icon-fallback",style:tr({width:r.value,height:r.value}),role:"img","aria-label":e.label||String(e.name)},null,12,rg))}}),Ko=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Qr=Ko(sg,[["__scopeId","data-v-11094a9c"]]),og=["data-variant","data-size","type","disabled","aria-busy"],ig={key:0,class:"jf-button-spinner","aria-hidden":"true"},lg={key:2,class:"jf-button-label"},ag=rn({__name:"JfButton",props:{variant:{default:"primary"},size:{default:"md"},icon:{default:void 0},trailingIcon:{default:void 0},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1},square:{type:Boolean,default:!1},type:{default:"button"}},emits:["click"],setup(e,{emit:t}){const n=e,r=t;function s(o){if(n.disabled||n.loading){o.preventDefault(),o.stopPropagation();return}r("click",o)}return(o,i)=>(Me(),dt("button",{class:Jt(["jf-button",{"jf-button-block":e.block,"jf-button-square":e.square}]),"data-variant":e.variant,"data-size":e.size,type:e.type,disabled:e.disabled||e.loading,"aria-busy":e.loading?"true":void 0,onClick:s},[e.loading?(Me(),dt("span",ig)):e.icon?(Me(),Cn(Qr,{key:1,name:e.icon,size:e.size==="lg"?"md":"sm",class:"jf-button-icon"},null,8,["name","size"])):xn("",!0),o.$slots.default?(Me(),dt("span",lg,[of(o.$slots,"default",{},void 0,!0)])):xn("",!0),e.trailingIcon?(Me(),Cn(Qr,{key:3,name:e.trailingIcon,size:e.size==="lg"?"md":"sm",class:"jf-button-icon"},null,8,["name","size"])):xn("",!0)],10,og))}}),Wn=Ko(ag,[["__scopeId","data-v-1cd909f7"]]);function Qg(e){return{name:e.trim(),scopes:["inference"]}}class xl extends Error{constructor(t,n,r,s){super(r),this.status=t,this.code=n,this.field=s,this.name="ApiError"}status;code;field}let Wc;function cg(e){Wc=e}async function Sn(e,t={}){const n=new Headers(t.headers);n.set("Accept","application/json"),t.body!==void 0&&t.body!==null&&n.set("Content-Type","application/json");let r;try{r=await fetch(e,{...t,headers:n,credentials:"same-origin"})}catch(i){throw i instanceof DOMException&&i.name==="AbortError"?i:new xl(0,"network_error","无法连接管理服务,请检查服务状态。")}const s=await r.text();let o=null;if(s)try{o=JSON.parse(s)}catch{o=null}if(!r.ok){const i=typeof o=="object"&&o!==null&&"error"in o?o.error:void 0,l=i?.code??"request_failed",a=i?.message??`请求失败(HTTP ${r.status})。`;throw r.status===401&&!(e==="/admin/v1/session"&&t.method==="POST")&&Wc?.(),new xl(r.status,l,a,i?.field)}return o}const qo={get:(e,t)=>Sn(e,{method:"GET",signal:t}),post:(e,t)=>Sn(e,{method:"POST",body:JSON.stringify(t)}),postEmpty:e=>Sn(e,{method:"POST"}),put:(e,t)=>Sn(e,{method:"PUT",body:JSON.stringify(t)}),patch:(e,t)=>Sn(e,{method:"PATCH",body:JSON.stringify(t)}),delete:e=>Sn(e,{method:"DELETE"})};async function Zg(e,t={}){const n=[];let r=null;do{const s=await qo.get(ug(e,{...t,limit:200,cursor:r}));n.push(...s.items),r=s.next_cursor}while(r);return n}function ug(e,t){const n=new URLSearchParams;for(const[s,o]of Object.entries(t))o!=null&&String(o)!==""&&n.set(s,String(o));const r=n.toString();return r?`${e}?${r}`:e}function e_(e){return e==null||!Number.isFinite(e)?"暂无数据":`${(e*100).toFixed(2)}%`}const Zn=br({name:"",expiresAt:""});function mo(){Zn.name="",Zn.expiresAt=""}const go=bn(!1);let Rr;function t_(){go.value=!0,Rr!==void 0&&clearTimeout(Rr),Rr=setTimeout(()=>{go.value=!1,Rr=void 0},3e3)}const Ml=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");let er=0,$c="";function fg(){er===0&&($c=document.body.style.overflow,document.body.style.overflow="hidden"),er+=1}function Dl(){er=Math.max(0,er-1),er===0&&(document.body.style.overflow=$c)}function dg(e){let t=null;function n(r){if(!e.open.value)return;if(r.key==="Escape"){if(e.dismissible&&e.dismissible.value===!1)return;r.preventDefault(),r.stopPropagation(),e.onEscape?.();return}if(r.key!=="Tab"||!e.panel)return;const s=e.panel.value;if(!s)return;const o=Array.from(s.querySelectorAll(Ml)).filter(c=>c.offsetWidth>0||c.offsetHeight>0||c===document.activeElement);if(!o.length){r.preventDefault();return}const i=o[0],l=o[o.length-1],a=document.activeElement;r.shiftKey&&(a===i||!s.contains(a))?(r.preventDefault(),l.focus()):!r.shiftKey&&(a===l||!s.contains(a))&&(r.preventDefault(),i.focus())}at(e.open,async r=>{if(r){t=document.activeElement,fg(),document.addEventListener("keydown",n,!0),await So();const s=e.panel.value;(s?.querySelector("[data-autofocus]")??s?.querySelector(Ml))?.focus();return}document.removeEventListener("keydown",n,!0),Dl(),t?.focus?.(),t=null}),Yl(()=>{e.open.value&&(document.removeEventListener("keydown",n,!0),Dl())})}const hg="modulepreload",pg=function(e){return"/admin/static/web/"+e},Fl={},Gt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=a(n.map(c=>{if(c=pg(c),c in Fl)return;Fl[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const h=document.createElement("link");if(h.rel=u?"stylesheet":hg,u||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),u)return new Promise((_,k)=>{h.addEventListener("load",_),h.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},_r=Wh({history:Ah("/admin/"),routes:[{path:"/login",name:"login",component:()=>Gt(()=>import("./Login-D3rCwbUc.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),meta:{title:"登录"}},{path:"/",name:"dashboard",component:()=>Gt(()=>import("./Index-o7UyK7Y6.js"),__vite__mapDeps([11,1,2,12,6,13,14,8,9,15,16])),meta:{title:"总览",requiresAuth:!0}},{path:"/providers",name:"providers",component:()=>Gt(()=>import("./Providers-i1IINMuR.js"),__vite__mapDeps([17,18,1,2,19,20,21,22,3,4,5,6,7,12,13,8,9,23,24,14,15])),meta:{title:"提供商",requiresAuth:!0}},{path:"/models",name:"models",component:()=>Gt(()=>import("./Models-DE72qd3P.js"),__vite__mapDeps([25,18,1,2,19,20,21,22,3,4,5,6,7,8,9,23,24,14,15])),meta:{title:"模型管理",requiresAuth:!0}},{path:"/pairs",name:"model-groups",component:()=>Gt(()=>import("./ModelGroups-D0BmGteO.js"),__vite__mapDeps([26,18,1,2,19,20,27,28,29,30,8,9,31])),meta:{title:"模型分组",requiresAuth:!0}},{path:"/settings",name:"settings",component:()=>Gt(()=>import("./Settings-DWBFsTfp.js"),__vite__mapDeps([32,18,1,2,27,28,3,4,5,6,7,12,13,23,24,33])),meta:{title:"系统设置",requiresAuth:!0}},{path:"/keys",name:"keys",component:()=>Gt(()=>import("./Keys-BOkoplTM.js"),__vite__mapDeps([34,1,2,19,20,21,22,3,4,5,6,7,14,8,9,15,35])),meta:{title:"凭据管理",requiresAuth:!0}},{path:"/logs",name:"logs",component:()=>Gt(()=>import("./Index-CAlB8CRg.js"),__vite__mapDeps([36,1,2,19,20,21,22,29,30,5,6,7,12,13,14,8,9,15])),meta:{title:"请求日志",requiresAuth:!0}},{path:"/:pathMatch(.*)*",redirect:"/"}]});let Pr;async function mg(){return Zn.name?!0:(Pr||(Pr=qo.get("/admin/v1/session").then(e=>(Zn.name=e.name,Zn.expiresAt=e.expires_at,!0)).catch(()=>(mo(),!1)).finally(()=>{Pr=void 0})),Pr)}_r.beforeEach(async e=>e.meta.requiresAuth&&!await mg()?{name:"login",query:{next:e.fullPath}}:!0);_r.afterEach(e=>{const t=typeof e.meta.title=="string"?e.meta.title:"";document.title=t?`${t} · Auto Router`:"Auto Router"});const gg={key:0,class:"auth-scene flex min-h-screen items-center justify-center px-4 py-10"},_g={key:1,class:"dashboard-shell min-h-screen"},vg=["role","aria-modal","aria-hidden","inert","aria-label"],bg={class:"sidebar-brand"},yg={class:"sidebar-brand-close lg:hidden"},Eg={class:"sidebar-section-label"},Cg=["aria-label"],Ag={class:"sidebar-link-label"},Tg={class:"sidebar-section-label mt-6"},kg=["aria-label"],Sg={class:"sidebar-link-label"},Lg={class:"sidebar-bottom"},wg={class:"sidebar-logout-label"},Ig={class:"dashboard-topbar"},Og={class:"flex min-w-0 items-center gap-2"},Ng={class:"lg:hidden"},Rg={class:"hidden lg:inline-flex"},Pg={class:"min-w-0"},xg={class:"dashboard-topbar-title jf-truncate"},Mg={class:"jf-action-group shrink-0"},Dg={class:"dashboard-content"},Fg={class:"dashboard-content-inner"},jg={key:1,class:"save-toast",role:"status","aria-live":"polite","aria-atomic":"true"},Vg=rn({__name:"App",setup(e){const{t}=gs(),n=$h(),r=ye(()=>n.name==="login"),s=bn(!1),o=Vd("(min-width: 960px)"),i=qu("sidebarPanel"),l=bn(!1),a=bn("light");Er(()=>{let I=null;try{I=window.localStorage.getItem("auto-router-color-mode")}catch{}const v=I==="dark"||I==="light"?I:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";a.value=v,c(v);try{l.value=window.localStorage.getItem("auto-router-sidebar-collapsed")==="true"}catch{}});function c(I){document.documentElement.setAttribute("data-theme",I),document.documentElement.style.colorScheme=I,document.querySelector('meta[name="theme-color"]')?.setAttribute("content",I==="dark"?"#1A1A18":"#F7F7F3")}function u(){a.value=a.value==="dark"?"light":"dark",c(a.value);try{window.localStorage.setItem("auto-router-color-mode",a.value)}catch{}}function f(){l.value=!l.value;try{window.localStorage.setItem("auto-router-sidebar-collapsed",String(l.value))}catch{}}const h=ye(()=>[{label:t("app.overview"),icon:"squares-2x2",to:"/"},{label:t("app.providers"),icon:"server-stack",to:"/providers"},{label:t("app.models"),icon:"cpu-chip",to:"/models"},{label:t("app.groups"),icon:"layers-2",to:"/pairs"}]),_=ye(()=>[{label:t("app.settings"),icon:"cog-6-tooth",to:"/settings"},{label:t("app.keys"),icon:"key",to:"/keys"},{label:t("app.logs"),icon:"document-text",to:"/logs"}]),k=ye(()=>typeof n.meta.title=="string"?n.meta.title:t("app.overview"));dg({open:s,panel:i,onEscape:()=>{s.value=!1}}),at(o,I=>{I&&(s.value=!1)}),at(()=>n.fullPath,()=>{s.value=!1}),cg(()=>{mo(),n.name!=="login"&&_r.replace({name:"login",query:{next:n.fullPath}})});async function S(){try{await qo.delete("/admin/v1/session")}catch{}mo(),await _r.replace({name:"login"})}return(I,v)=>r.value?(Me(),dt("main",gg,[Ce(ne(ro))])):(Me(),dt("div",_g,[s.value?(Me(),dt("div",{key:0,class:"dashboard-scrim lg:hidden",onClick:v[0]||(v[0]=b=>s.value=!1)})):xn("",!0),Ee("aside",{ref_key:"sidebarPanel",ref:i,id:"dashboard-navigation",class:Jt(["dashboard-sidebar",{"dashboard-sidebar-open":s.value,"dashboard-sidebar-collapsed":l.value}]),role:s.value&&!ne(o)?"dialog":void 0,"aria-modal":s.value&&!ne(o)?"true":void 0,"aria-hidden":!ne(o)&&!s.value?"true":void 0,inert:!ne(o)&&!s.value,"aria-label":ne(t)("app.navigation")},[Ee("div",bg,[v[5]||(v[5]=Ee("span",{class:"sidebar-brand-title"},"Auto Router",-1)),Ee("span",yg,[Ce(Wn,{variant:"ghost",square:"",icon:"x-mark","aria-label":ne(t)("app.closeMenu"),onClick:v[1]||(v[1]=b=>s.value=!1)},null,8,["aria-label"])])]),Ee("div",Eg,dn(ne(t)("app.workspace")),1),Ee("nav",{class:"sidebar-nav","aria-label":ne(t)("app.workspace")},[(Me(!0),dt(Fe,null,ci(h.value,b=>(Me(),Cn(ne(no),{key:b.to,to:b.to,class:Jt(["sidebar-link",{"sidebar-link-active":ne(n).path===b.to}]),"aria-current":ne(n).path===b.to?"page":void 0,title:l.value?b.label:void 0,onClick:v[2]||(v[2]=w=>s.value=!1)},{default:xr(()=>[Ce(Qr,{name:b.icon,size:"md",class:"sidebar-icon","aria-hidden":"true"},null,8,["name"]),Ee("span",Ag,dn(b.label),1)]),_:2},1032,["to","class","aria-current","title"]))),128))],8,Cg),Ee("div",Tg,dn(ne(t)("app.management")),1),Ee("nav",{class:"sidebar-nav","aria-label":ne(t)("app.management")},[(Me(!0),dt(Fe,null,ci(_.value,b=>(Me(),Cn(ne(no),{key:b.to,to:b.to,class:Jt(["sidebar-link",{"sidebar-link-active":ne(n).path===b.to}]),"aria-current":ne(n).path===b.to?"page":void 0,title:l.value?b.label:void 0,onClick:v[3]||(v[3]=w=>s.value=!1)},{default:xr(()=>[Ce(Qr,{name:b.icon,size:"md",class:"sidebar-icon","aria-hidden":"true"},null,8,["name"]),Ee("span",Sg,dn(b.label),1)]),_:2},1032,["to","class","aria-current","title"]))),128))],8,kg),Ee("div",Lg,[Ce(Wn,{class:"sidebar-logout-button",variant:"ghost",icon:"arrow-left-on-rectangle","aria-label":ne(t)("app.logout"),block:"",onClick:S},{default:xr(()=>[Ee("span",wg,dn(ne(t)("app.logout")),1)]),_:1},8,["aria-label"])])],10,vg),Ee("div",{class:Jt(["dashboard-main",{"dashboard-main-collapsed":l.value}])},[Ee("header",Ig,[Ee("div",Og,[Ee("span",Ng,[Ce(Wn,{variant:"ghost",square:"",icon:"bars-3","aria-label":ne(t)("app.openMenu"),"aria-expanded":s.value,"aria-controls":"dashboard-navigation",onClick:v[4]||(v[4]=b=>s.value=!0)},null,8,["aria-label","aria-expanded"])]),Ee("span",Rg,[Ce(Wn,{variant:"ghost",square:"",icon:l.value?"chevron-right":"chevron-left","aria-label":l.value?ne(t)("app.expandNav"):ne(t)("app.collapseNav"),"aria-pressed":l.value,onClick:f},null,8,["icon","aria-label","aria-pressed"])]),Ee("div",Pg,[Ee("span",xg,dn(k.value),1)])]),Ee("div",Mg,[Ce(Wn,{variant:"ghost",square:"",icon:a.value==="dark"?"sun":"moon","aria-label":ne(t)("app.theme"),"aria-pressed":a.value==="dark",onClick:u},null,8,["icon","aria-label","aria-pressed"])])]),Ee("main",Dg,[Ee("div",Fg,[Ce(ne(ro))])])],2),ne(go)?(Me(),dt("div",jg," 更改已保存 ")):xn("",!0)]))}}),Ug=Ko(Vg,[["__scopeId","data-v-6e69e9e7"]]),Hg={"zh-CN":{app:{navigation:"导航菜单",overview:"总览",providers:"提供商",models:"模型管理",groups:"模型分组",settings:"系统设置",keys:"API 密钥",logs:"请求日志",admin:"管理员",logout:"退出登录",theme:"切换颜色主题",openMenu:"打开导航菜单",closeMenu:"关闭导航菜单",collapseNav:"收起导航栏",expandNav:"展开导航栏",workspace:"工作区",management:"管理"},common:{refresh:"刷新",loading:"正在加载…",retry:"重试",empty:"暂无数据",error:"暂时无法加载数据",enabled:"已启用",disabled:"已禁用",status:"状态",actions:"操作",cancel:"取消",save:"保存",create:"创建",edit:"编辑",search:"搜索",previous:"上一页",next:"下一页",noData:"暂无数据"},errors:{codes:{invalid_request:{title:"请求内容无效",description:"检查表单中的必填项与格式后重试。"},invalid_filter:{title:"筛选条件无效",description:"检查表单中的必填项与格式后重试。调整筛选项后重新查询。"},invalid_cursor:{title:"分页位置已失效",description:"检查表单中的必填项与格式后重试。重新加载列表。"},invalid_group:{title:"模型分组配置无效",description:"检查表单中的必填项与格式后重试。三个分组各含互不重复的已启用绑定,每组最多 8 个。"},invalid_scopes:{title:"凭据权限范围无效",description:"检查表单中的必填项与格式后重试。推理凭据仅支持 inference 范围。"},invalid_model:{title:"模型标识无效",description:"检查表单中的必填项与格式后重试。"},invalid_password:{title:"密码不正确或不符合要求",description:"请重新登录管理台,或改用具备该权限的凭据。密码长度至少 12 字节。"},invalid_session:{title:"管理会话已失效",description:"请重新登录管理台,或改用具备该权限的凭据。"},invalid_api_key:{title:"凭据无效或已失效",description:"请重新登录管理台,或改用具备该权限的凭据。"},insufficient_scope:{title:"权限不足",description:"请重新登录管理台,或改用具备该权限的凭据。"},cross_site_request:{title:"请求来源未通过安全校验",description:"请重新登录管理台,或改用具备该权限的凭据。请从管理台页面内发起操作。"},bootstrap_token_required:{title:"需要初始化令牌",description:"从非本机访问进行首次设置时,需要填写服务启动日志中打印的一次性初始化令牌(bootstrap_token)。"},too_many_attempts:{title:"尝试次数过多",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。请稍后重试。"},request_too_large:{title:"提交内容过大",description:"检查表单中的必填项与格式后重试。减少提交体积后重试。"},unknown_model:{title:"找不到指定模型",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},unknown_provider:{title:"找不到指定提供商",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},unknown_pair:{title:"找不到指定绑定",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},not_found:{title:"接口不存在",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。管理台与后端版本可能不匹配,刷新页面后重试。"},provider_exists:{title:"提供商标识已存在",description:"刷新后重试;重复提交不会覆盖已有数据。"},model_exists:{title:"模型标识已存在",description:"刷新后重试;重复提交不会覆盖已有数据。"},pair_exists:{title:"该提供商与模型绑定已存在",description:"刷新后重试;重复提交不会覆盖已有数据。"},provider_not_deletable:{title:"该提供商不可删除",description:"请重新登录管理台,或改用具备该权限的凭据。仅管理员创建的提供商可删除。"},provider_not_configured:{title:"提供商未配置上游地址",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。先在提供商页面填写上游地址。"},key_not_found:{title:"找不到该凭据",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},key_name_exists:{title:"凭据名称已存在",description:"刷新后重试;重复提交不会覆盖已有数据。"},credential_limit:{title:"已达到凭据数量上限",description:"刷新后重试;重复提交不会覆盖已有数据。先撤销不再使用的凭据。"},password_already_set:{title:"管理密码已设置",description:"刷新后重试;重复提交不会覆盖已有数据。请直接登录;忘记密码需使用离线恢复流程。"},password_not_set:{title:"管理密码尚未设置",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。先完成初始化设置。"},settings_conflict:{title:"设置已被其他操作修改",description:"刷新后重试;重复提交不会覆盖已有数据。页面已重新读取最新值,确认后再提交。"},restart_required:{title:"该设置需要重启服务才能生效",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。改动已保存,重启后生效。"},unsupported_setting:{title:"该设置不支持在线修改",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。需离线或在服务启动前修改。"},read_only_state:{title:"当前设置为只读状态",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。服务未挂载可写存储,无法保存。"},storage_error:{title:"存储操作失败",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},snapshot_publish_failed:{title:"改动已保存但运行配置未刷新",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。重启服务后生效。"},sync_failed:{title:"同步失败,现有配置未被修改。",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},sync_unavailable:{title:"同步功能当前不可用",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},discovery_failed:{title:"无法读取提供商模型列表",description:"请检查提供商地址与网络连通性后重试。"},metadata_lookup_failed:{title:"无法获取模型能力元数据",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。可在模型管理页手动填写能力。"},dashboard_missing:{title:"管理台页面渲染失败",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。重新加载页面。"},invalid_request_error:{title:"请求内容无效",description:"检查表单中的必填项与格式后重试。"},unsupported_media_type:{title:"请求内容类型不支持",description:"检查表单中的必填项与格式后重试。请使用 application/json。"},unsupported_conversion:{title:"该提供商无法保持请求语义",description:"检查表单中的必填项与格式后重试。改用兼容协议或简化请求。"},provider_override_disabled:{title:"未启用提供商覆盖语法",description:"请重新登录管理台,或改用具备该权限的凭据。需管理员开启 routing.allow_provider_override。"},invalid_model_identifier:{title:"模型标识格式无效",description:"检查表单中的必填项与格式后重试。"},model_not_found:{title:"找不到该模型",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},provider_not_found:{title:"找不到该提供商",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。"},auto_routing_unavailable:{title:"自动路由当前不可用",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},routing_unavailable:{title:"自动路由不可用",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},no_eligible_candidate:{title:"没有可用的候选模型",description:"刷新列表确认对象是否仍然存在,可能已被其他操作删除。检查模型组配置与能力/上下文筛选条件。"},truncated_evidence:{title:"请求超出分析边界,无法安全路由",description:"检查表单中的必填项与格式后重试。减小请求体积或改用指定模型。"},upstream_unavailable:{title:"上游提供商无法访问",description:"请检查提供商地址与网络连通性后重试。"},upstream_timeout:{title:"上游提供商响应超时",description:"请检查提供商地址与网络连通性后重试。可重试或更换提供商。"},upstream_response_too_large:{title:"上游响应过大",description:"提供商返回的内容超过了转换缓冲上限。可改用流式请求,或调整 -max-buffered-response-bytes 后重试。"},client_closed_request:{title:"客户端提前断开连接",description:"请检查提供商地址与网络连通性后重试。请求未完成,可重试。"},internal_error:{title:"服务内部错误",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"},debug_route_unavailable:{title:"离线诊断端点未就绪",description:"服务暂时无法完成该操作,请稍后重试;若持续失败请查看服务日志。"}},fallback:{network:{title:"无法连接管理服务",description:"请确认服务已启动且网络可达。"},clientUnknown:{title:"操作未能完成",description:"服务返回了未识别的错误(HTTP {status},代码 {code}),请刷新后重试。"},server:{title:"服务暂时不可用",description:"服务端返回了未识别的错误(HTTP {status},代码 {code}),请稍后重试并查看服务日志。"},unknown:{title:"操作未能完成",description:"服务返回了未识别的错误(代码 {code}),请刷新后重试;若持续失败请查看服务日志。"}},field:"字段:{field}",httpStatus:"HTTP {status}"},labels:{protocol:{chat_completions:"Chat Completions",responses:"Responses",native:"原生协议"},routingMode:{auto:"自动路由",explicit:"指定模型"},selectionMode:{explicit:"显式指定",jev:"Jev 推荐",blend:"混合决策",default_model:"默认模型兜底",first_eligible:"首个可用候选"},confidenceBand:{high:"高",medium:"中",low:"低"},usageStatus:{observed:"已观测",absent:"上游未上报",malformed:"格式异常",oversized:"超出观测上限",interrupted:"中断未观测"},statusClass:{success:"成功(2xx)",client_error:"客户端错误(4xx)",server_error:"服务端错误(5xx)"},inputMode:{content:"完整内容",redacted:"脱敏内容",features_only:"仅特征"},jevStatus:{disabled:"未启用",skipped_single_model:"单模型跳过",skipped_insufficient_evidence:"证据不足跳过",skipped_too_many_models:"候选过多跳过",ok:"成功"},jevStatusFailure:"失败({reason})",fallbackReason:{none:"未发生兜底",not_requested:"未请求推荐",confidence_low:"置信度过低",selected_model_ineligible:"推荐模型不可用",jev_timeout:"Jev 超时",jev_unavailable:"Jev 不可达",jev_rejected:"Jev 拒绝",jev_invalid_result:"Jev 结果无效",jev_canceled:"Jev 调用取消",truncated_evidence:"证据被截断",no_candidates:"无候选模型"},notEligible:"不满足筛选:{code}"}}},Bg=Gm({legacy:!1,locale:"zh-CN",fallbackLocale:"zh-CN",messages:Hg,datetimeFormats:{"zh-CN":{short:{year:"numeric",month:"2-digit",day:"2-digit"},dateTime:{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}}},numberFormats:{"zh-CN":{decimal:{maximumFractionDigits:2},integer:{maximumFractionDigits:0}}}}),Yo=kd(Ug);Yo.use(_r);Yo.use(Bg);Yo.mount("#app");export{xl as A,ug as B,Jg as C,br as D,t_ as E,Fe as F,Zg as G,ne as H,_r as I,Wn as J,tt as K,mo as L,of as M,qu as N,dg as O,$g as P,Wg as Q,Gg as R,Qg as S,Yg as T,Mr as U,Bg as V,qg as W,xd as X,Ff as Y,So as Z,Ko as _,qo as a,Ee as b,Cn as c,rn as d,Kg as e,Ce as f,Df as g,xn as h,dt as i,Xg as j,$h as k,Me as l,Io as m,Jt as n,Er as o,Qr as p,ci as q,bn as r,Zn as s,dn as t,zg as u,tr as v,xr as w,e_ as x,ye as y,at as z}; diff --git a/internal/api/dashboard/static/web/assets/index-CeO69YUd.js b/internal/api/dashboard/static/web/assets/index-CeO69YUd.js new file mode 100644 index 0000000..9452850 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/index-CeO69YUd.js @@ -0,0 +1,4 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Login-DghCJTEF.js","assets/field-context-Dg4JwEpB.js","assets/field-context-C4GBuflD.css","assets/JfField-g_CLZQhf.js","assets/JfField-CGVJE0Y4.css","assets/JfInput-DtzjrdfV.js","assets/control-attrs-CG7deI17.js","assets/JfInput-Dt4SCshA.css","assets/JfSkeleton-jIxmbbW7.js","assets/JfSkeleton-VwMWT5qZ.css","assets/Login-C6vbmCHR.css","assets/Index-BdsXt2MF.js","assets/JfSelect-C3PlYx94.js","assets/JfSelect-CBRAuzHa.css","assets/JfTable-fqYuBXzd.js","assets/JfTable-CzfEL02A.css","assets/Index-BwOsRyHT.css","assets/Providers-cZvMsJm0.js","assets/autosave-DjhT3uag.js","assets/JfBadge-DE3HILDW.js","assets/JfBadge-BMTG_VYq.css","assets/JfDrawer-DV73NuVR.js","assets/JfDrawer-DAVtosOU.css","assets/JfSwitch-BLecDvC6.js","assets/JfSwitch-DhYDkaYJ.css","assets/Models-Bn89W1eO.js","assets/ModelGroups-B2KJ_No2.js","assets/JfCheckbox-BZQr-Pz_.js","assets/JfCheckbox-D2J5NzQi.css","assets/JfEmpty-CplaOUNi.js","assets/JfEmpty-BXEq5Tou.css","assets/ModelGroups-B0J_Yvfv.css","assets/Settings-DoDV9F3T.js","assets/labels-F4zjjjMy.js","assets/Settings-C7uu8Drv.css","assets/Keys-B7jAwsl4.js","assets/Index-BKJMWLAN.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function To(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ge={},Cn=[],wt=()=>{},Gl=()=>!1,ns=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),rs=e=>e.startsWith("onUpdate:"),Ne=Object.assign,ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},tu=Object.prototype.hasOwnProperty,fe=(e,t)=>tu.call(e,t),X=Array.isArray,sn=e=>Er(e)==="[object Map]",Ur=e=>Er(e)==="[object Set]",si=e=>Er(e)==="[object Date]",Z=e=>typeof e=="function",ke=e=>typeof e=="string",rt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Kl=e=>(ae(e)||Z(e))&&Z(e.then)&&Z(e.catch),ql=Object.prototype.toString,Er=e=>ql.call(e),nu=e=>Er(e).slice(8,-1),Yl=e=>Er(e)==="[object Object]",ss=e=>ke(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Xn=To(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),os=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ru=/-\w/g,pt=os(e=>e.replace(ru,t=>t.slice(1).toUpperCase())),su=/\B([A-Z])/g,fn=os(e=>e.replace(su,"-$1").toLowerCase()),Jl=os(e=>e.charAt(0).toUpperCase()+e.slice(1)),Es=os(e=>e?`on${Jl(e)}`:""),St=(e,t)=>!Object.is(e,t),Cs=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ou=e=>{const t=parseFloat(e);return isNaN(t)?e:t},iu=e=>{const t=ke(e)?Number(e):NaN;return isNaN(t)?e:t};let oi;const is=()=>oi||(oi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function sr(e){if(X(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(lu).forEach(n=>{if(n){const r=n.split(au);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function nn(e){let t="";if(ke(e))t=e;else if(X(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ht=e=>ke(e)?e:e==null?"":X(e)||ae(e)&&(e.toString===ql||!Z(e.toString))?Ql(e)?ht(e.value):JSON.stringify(e,Zl,2):String(e),Zl=(e,t)=>Ql(t)?Zl(e,t.value):sn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[As(r,o)+" =>"]=s,n),{})}:Ur(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>As(n))}:rt(t)?As(t):ae(t)&&!X(t)&&!Yl(t)?String(t):t,As=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let xe;class ea{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&xe&&(xe.active?(this.parent=xe,this.index=(xe.scopes||(xe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const r=this.scopes.slice();for(t=0,n=r.length;t0&&--this._on===0){if(xe===this)xe=this.prevScope;else{let t=xe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(Qn){let t=Qn;for(Qn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;zn;){let t=zn;for(zn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function oa(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ia(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Io(r),gu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Gs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(la(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function la(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===or)||(e.globalVersion=or,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Gs(e))))return;e.flags|=2;const t=e.dep,n=ve,r=mt;ve=e,mt=!0;try{oa(e);const s=e.fn(e._value);(t.version===0||St(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ve=n,mt=r,ia(e),e.flags&=-3}}function Io(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Io(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function gu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let mt=!0;const aa=[];function Bt(){aa.push(mt),mt=!1}function Wt(){const e=aa.pop();mt=e===void 0?!0:e}function ai(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ve;ve=void 0;try{t()}finally{ve=n}}}let or=0;class _u{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Oo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ve||!mt||ve===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ve)n=this.activeLink=new _u(ve,this),ve.deps?(n.prevDep=ve.depsTail,ve.depsTail.nextDep=n,ve.depsTail=n):ve.deps=ve.depsTail=n,ca(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ve.depsTail,n.nextDep=void 0,ve.depsTail.nextDep=n,ve.depsTail=n,ve.deps===n&&(ve.deps=r)}return n}trigger(t){this.version++,or++,this.notify(t)}notify(t){Lo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{wo()}}}function ca(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)ca(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Hr=new WeakMap,Tn=Symbol(""),Ks=Symbol(""),ir=Symbol("");function Ue(e,t,n){if(mt&&ve){let r=Hr.get(e);r||Hr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Oo),s.map=r,s.key=n),s.track()}}function Vt(e,t,n,r,s,o){const i=Hr.get(e);if(!i){or++;return}const l=a=>{a&&a.trigger()};if(Lo(),t==="clear")i.forEach(l);else{const a=X(e),c=a&&ss(n);if(a&&n==="length"){const u=Number(r);i.forEach((f,h)=>{(h==="length"||h===ir||!rt(h)&&h>=u)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),c&&l(i.get(ir)),t){case"add":a?c&&l(i.get("length")):(l(i.get(Tn)),sn(e)&&l(i.get(Ks)));break;case"delete":a||(l(i.get(Tn)),sn(e)&&l(i.get(Ks)));break;case"set":sn(e)&&l(i.get(Tn));break}}wo()}function vu(e,t){const n=Hr.get(e);return n&&n.get(t)}function In(e){const t=oe(e);return t===e||(Ue(t,"iterate",ir),tt(e))?t:Ot(e)?on(e)?t.map(n=>cn(ut(n))):t.map(cn):t.map(ut)}function as(e){return Ue(e=oe(e),"iterate",ir),e}function Tt(e,t){return Ot(e)?cn(on(e)?ut(t):t):ut(t)}const bu={__proto__:null,[Symbol.iterator](){return ks(this,Symbol.iterator,e=>Tt(this,e))},concat(...e){return In(this).concat(...e.map(t=>X(t)?In(t):t))},entries(){return ks(this,"entries",e=>(e[1]=Tt(this,e[1]),e))},every(e,t){return Pt(this,"every",e,t,void 0,arguments)},filter(e,t){return Pt(this,"filter",e,t,n=>n.map(r=>Tt(this,r)),arguments)},find(e,t){return Pt(this,"find",e,t,n=>Tt(this,n),arguments)},findIndex(e,t){return Pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Pt(this,"findLast",e,t,n=>Tt(this,n),arguments)},findLastIndex(e,t){return Pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ss(this,"includes",e)},indexOf(...e){return Ss(this,"indexOf",e)},join(e){return In(this).join(e)},lastIndexOf(...e){return Ss(this,"lastIndexOf",e)},map(e,t){return Pt(this,"map",e,t,void 0,arguments)},pop(){return Bn(this,"pop")},push(...e){return Bn(this,"push",e)},reduce(e,...t){return ci(this,"reduce",e,t)},reduceRight(e,...t){return ci(this,"reduceRight",e,t)},shift(){return Bn(this,"shift")},some(e,t){return Pt(this,"some",e,t,void 0,arguments)},splice(...e){return Bn(this,"splice",e)},toReversed(){return In(this).toReversed()},toSorted(e){return In(this).toSorted(e)},toSpliced(...e){return In(this).toSpliced(...e)},unshift(...e){return Bn(this,"unshift",e)},values(){return ks(this,"values",e=>Tt(this,e))}};function ks(e,t,n){const r=as(e),s=r[t]();return r!==e&&!tt(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const yu=Array.prototype;function Pt(e,t,n,r,s,o){const i=as(e),l=i!==e&&!tt(e),a=i[t];if(a!==yu[t]){const f=a.apply(e,o);return l?ut(f):f}let c=n;i!==e&&(l?c=function(f,h){return n.call(this,Tt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=a.call(i,c,r);return l&&s?s(u):u}function ci(e,t,n,r){const s=as(e),o=s!==e&&!tt(e);let i=n,l=!1;s!==e&&(o?(l=r.length===0,i=function(c,u,f){return l&&(l=!1,c=Tt(e,c)),n.call(this,c,Tt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const a=s[t](i,...r);return l?Tt(e,a):a}function Ss(e,t,n){const r=oe(e);Ue(r,"iterate",ir);const s=r[t](...n);return(s===-1||s===!1)&&cs(n[0])?(n[0]=oe(n[0]),r[t](...n)):s}function Bn(e,t,n=[]){Bt(),Lo();const r=oe(e)[t].apply(e,n);return wo(),Wt(),r}const Eu=To("__proto__,__v_isRef,__isVue"),ua=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function Cu(e){rt(e)||(e=String(e));const t=oe(this);return Ue(t,"has",e),t.hasOwnProperty(e)}class fa{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Ru:ma:o?pa:ha).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=X(t);if(!s){let a;if(i&&(a=bu[n]))return a;if(n==="hasOwnProperty")return Cu}const l=Reflect.get(t,n,Ie(t)?t:r);if((rt(n)?ua.has(n):Eu(n))||(s||Ue(t,"get",n),o))return l;if(Ie(l)){const a=i&&ss(n)?l:l.value;return s&&ae(a)?Ys(a):a}return ae(l)?s?Ys(l):$n(l):l}}class da extends fa{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=X(t)&&ss(n);if(!this._isShallow){const c=Ot(o);if(!tt(r)&&!Ot(r)&&(o=oe(o),r=oe(r)),!i&&Ie(o)&&!Ie(r))return c||(o.value=r),!0}const l=i?Number(n)e,Sr=e=>Reflect.getPrototypeOf(e);function Lu(e,t,n){return function(...r){const s=this.__v_raw,o=oe(s),i=sn(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=s[e](...r),u=n?qs:t?cn:ut;return!t&&Ue(o,"iterate",a?Ks:Tn),Ne(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:l?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Lr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function wu(e,t){const n={get(s){const o=this.__v_raw,i=oe(o),l=oe(s);e||(St(s,l)&&Ue(i,"get",s),Ue(i,"get",l));const{has:a}=Sr(i),c=t?qs:e?cn:ut;if(a.call(i,s))return c(o.get(s));if(a.call(i,l))return c(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ue(oe(s),"iterate",Tn),s.size},has(s){const o=this.__v_raw,i=oe(o),l=oe(s);return e||(St(s,l)&&Ue(i,"has",s),Ue(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,a=oe(l),c=t?qs:e?cn:ut;return!e&&Ue(a,"iterate",Tn),l.forEach((u,f)=>s.call(o,c(u),c(f),i))}};return Ne(n,e?{add:Lr("add"),set:Lr("set"),delete:Lr("delete"),clear:Lr("clear")}:{add(s){const o=oe(this),i=Sr(o),l=oe(s),a=!t&&!tt(s)&&!Ot(s)?l:s;return i.has.call(o,a)||St(s,a)&&i.has.call(o,s)||St(l,a)&&i.has.call(o,l)||(o.add(a),Vt(o,"add",a,a)),this},set(s,o){!t&&!tt(o)&&!Ot(o)&&(o=oe(o));const i=oe(this),{has:l,get:a}=Sr(i);let c=l.call(i,s);c||(s=oe(s),c=l.call(i,s));const u=a.call(i,s);return i.set(s,o),c?St(o,u)&&Vt(i,"set",s,o):Vt(i,"add",s,o),this},delete(s){const o=oe(this),{has:i,get:l}=Sr(o);let a=i.call(o,s);a||(s=oe(s),a=i.call(o,s)),l&&l.call(o,s);const c=o.delete(s);return a&&Vt(o,"delete",s,void 0),c},clear(){const s=oe(this),o=s.size!==0,i=s.clear();return o&&Vt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Lu(s,e,t)}),n}function No(e,t){const n=wu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(fe(n,s)&&s in r?n:r,s,o)}const Iu={get:No(!1,!1)},Ou={get:No(!1,!0)},Nu={get:No(!0,!1)};const ha=new WeakMap,pa=new WeakMap,ma=new WeakMap,Ru=new WeakMap;function Pu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function $n(e){return Ot(e)?e:Ro(e,!1,Tu,Iu,ha)}function ga(e){return Ro(e,!1,Su,Ou,pa)}function Ys(e){return Ro(e,!0,ku,Nu,ma)}function Ro(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Pu(nu(e));if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function on(e){return Ot(e)?on(e.__v_raw):!!(e&&e.__v_isReactive)}function Ot(e){return!!(e&&e.__v_isReadonly)}function tt(e){return!!(e&&e.__v_isShallow)}function cs(e){return e?!!e.__v_raw:!1}function oe(e){const t=e&&e.__v_raw;return t?oe(t):e}function xu(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Xl(e,"__v_skip",!0),e}const ut=e=>ae(e)?$n(e):e,cn=e=>ae(e)?Ys(e):e;function Ie(e){return e?e.__v_isRef===!0:!1}function ln(e){return _a(e,!1)}function kn(e){return _a(e,!0)}function _a(e,t){return Ie(e)?e:new Mu(e,t)}class Mu{constructor(t,n){this.dep=new Oo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:oe(t),this._value=n?t:ut(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||tt(t)||Ot(t);t=r?t:oe(t),St(t,n)&&(this._rawValue=t,this._value=r?t:ut(t),this.dep.trigger())}}function Q(e){return Ie(e)?e.value:e}function Mn(e){return Z(e)?e():Q(e)}const Du={get:(e,t,n)=>t==="__v_raw"?e:Q(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Ie(s)&&!Ie(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function va(e){return on(e)?e:new Proxy(e,Du)}class Fu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=rt(n)?n:String(n),this._raw=oe(t);let s=!0,o=t;if(!X(t)||rt(this._key)||!ss(this._key))do s=!cs(o)||tt(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Q(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ie(this._raw[this._key])){const n=this._object[this._key];if(Ie(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return vu(this._raw,this._key)}}class ju{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ui(e,t,n){return Ie(e)?e:Z(e)?new ju(e):ae(e)&&arguments.length>1?Vu(e,t,n):ln(e)}function Vu(e,t,n){return new Fu(e,t,n)}class Uu{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Oo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=or-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ve!==this)return sa(this,!0),!0}get value(){const t=this.dep.track();return la(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hu(e,t,n=!1){let r,s;return Z(e)?r=e:(r=e.get,s=e.set),new Uu(r,s,n)}const wr={},$r=new WeakMap;let bn;function $u(e,t=!1,n=bn){if(n){let r=$r.get(n);r||$r.set(n,r=[]),r.push(e)}}function Bu(e,t,n=ge){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,c=A=>s?A:tt(A)||s===!1||s===0?en(A,1):en(A);let u,f,h,_,k=!1,S=!1;if(Ie(e)?(f=()=>e.value,k=tt(e)):on(e)?(f=()=>c(e),k=!0):X(e)?(S=!0,k=e.some(A=>on(A)||tt(A)),f=()=>e.map(A=>{if(Ie(A))return A.value;if(on(A))return c(A);if(Z(A))return a?a(A,2):A()})):Z(e)?t?f=a?()=>a(e,2):e:f=()=>{if(h){Bt();try{h()}finally{Wt()}}const A=bn;bn=u;try{return a?a(e,3,[_]):e(_)}finally{bn=A}}:f=wt,t&&s){const A=f,M=s===!0?1/0:s;f=()=>en(A(),M)}const I=So(),v=()=>{u.stop(),I&&I.active&&ko(I.effects,u)};if(o&&t){const A=t;t=(...M)=>{const D=A(...M);return v(),D}}let b=S?new Array(e.length).fill(wr):wr;const w=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(t){const M=u.run();if(A||s||k||(S?M.some((D,L)=>St(D,b[L])):St(M,b))){h&&h();const D=bn;bn=u;try{const L=[M,b===wr?void 0:S&&b[0]===wr?[]:b,_];b=M,a?a(t,3,L):t(...L)}finally{bn=D}}}else u.run()};return l&&l(w),u=new na(f),u.scheduler=i?()=>i(w,!1):w,_=A=>$u(A,!1,u),h=u.onStop=()=>{const A=$r.get(u);if(A){if(a)a(A,4);else for(const M of A)M();$r.delete(u)}},t?r?w(!0):b=u.run():i?i(w.bind(null,!0),!0):u.run(),v.pause=u.pause.bind(u),v.resume=u.resume.bind(u),v.stop=v,v}function en(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ie(e))en(e.value,t,n);else if(X(e))for(let r=0;r{en(r,t,n)});else if(Yl(e)){for(const r in e)en(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&en(e[r],t,n)}return e}function Cr(e,t,n,r){try{return r?e(...r):e()}catch(s){us(s,t,n)}}function ft(e,t,n,r){if(Z(e)){const s=Cr(e,t,n,r);return s&&Kl(s)&&s.catch(o=>{us(o,t,n)}),s}if(X(e)){const s=[];for(let o=0;o>>1,s=Ke[r],o=lr(s);o=lr(n)?Ke.push(e):Ke.splice(Gu(t),0,e),e.flags|=1,ya()}}function ya(){Br||(Br=ba.then(Ca))}function Ku(e){if(!X(e))zt&&e.id===-1?zt.splice(Nn+1,0,e):e.flags&1||(Dn.push(e),e.flags|=1);else for(let t=0;tlr(n)-lr(r));if(Dn.length=0,zt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Ca(e){try{for(At=0;At{r._d&&Yr(-1);const o=Wr(t),i=$t.length;let l;try{l=e(...s)}finally{for(let a=$t.length;a>i;a--)Uo();Wr(o),r._d&&Yr(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function mn(e,t,n,r){const s=e.dirs,o=t&&t.dirs;for(let i=0;i1)return n&&Z(t)?t.call(r&&r.proxy):t}}function Ta(){return!!(Kt()||Sn)}const qu=Symbol.for("v-scx"),Yu=()=>nt(qu);function Ju(e,t){return Mo(e,null,t)}function ct(e,t,n){return Mo(e,t,n)}function Mo(e,t,n=ge){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ne({},n),a=t&&r||!t&&o!=="post";let c;if(dr){if(o==="sync"){const _=Yu();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!a){const _=()=>{};return _.stop=wt,_.resume=wt,_.pause=wt,_}}const u=qe;l.call=(_,k,S)=>ft(_,u,k,S);let f=!1;o==="post"?l.scheduler=_=>{We(_,u&&u.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(_,k)=>{k?_():xo(_)}),l.augmentJob=_=>{t&&(_.flags|=4),f&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const h=Bu(e,t,l);return dr&&(c?c.push(h):a&&h()),h}function Xu(e,t,n){const r=this.proxy,s=ke(e)?e.includes(".")?ka(r,e):()=>r[e]:e.bind(r,r);let o;Z(t)?o=t:(o=t.handler,n=t);const i=kr(this),l=Mo(s,o.bind(r),n);return i(),l}function ka(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,yn=e=>e&&(e.disabled||e.disabled===""),zu=e=>e&&(e.defer||e.defer===""),di=e=>typeof SVGElement<"u"&&e instanceof SVGElement,hi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Js=(e,t)=>{const n=e&&e.to;return ke(n)?t?t(n):null:n},Qu={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,a,c){const{mc:u,pc:f,pbc:h,o:{insert:_,querySelector:k,createText:S,createComment:I,parentNode:v}}=c,b=yn(t.props);let{dynamicChildren:w}=t;const A=(L,K,V)=>{L.shapeFlag&16&&u(L.children,K,V,s,o,i,l,a)},M=(L=t)=>{const K=yn(L.props),V=L.target=Js(L.props,k),Y=Xs(V,L,S,_);V&&(i!=="svg"&&di(V)?i="svg":i!=="mathml"&&hi(V)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(V),K||(A(L,V,Y),qn(L,!1)))},D=L=>{const K=()=>{if(Xt.get(L)===K){if(Xt.delete(L),yn(L.props)){const V=v(L.el)||n;A(L,V,L.anchor),qn(L,!0)}M(L)}};Xt.set(L,K),We(K,o)};if(e==null){const L=t.el=S(""),K=t.anchor=S("");if(_(L,n,r),_(K,n,r),zu(t.props)||o&&o.pendingBranch){D(t);return}b&&(A(t,n,K),qn(t,!0)),M()}else{t.el=e.el;const L=t.anchor=e.anchor,K=Xt.get(e);if(K){K.flags|=8,Xt.delete(e),D(t);return}t.targetStart=e.targetStart;const V=t.target=e.target,Y=t.targetAnchor=e.targetAnchor,z=yn(e.props),j=z?n:V,ee=z?L:Y;if(i==="svg"||di(V)?i="svg":(i==="mathml"||hi(V))&&(i="mathml"),w?(h(e.dynamicChildren,w,j,s,o,i,l),Vo(e,t,!0)):a||f(e,t,j,ee,s,o,i,l,!1),b)z?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ir(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const _e=Js(t.props,k);_e&&(t.target=_e,Ir(t,_e,null,c,0))}else z&&Ir(t,V,Y,c,1);qn(t,b)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:a,targetStart:c,targetAnchor:u,target:f,props:h}=e,_=yn(h),k=o||!_,S=Xt.get(e);if(S&&(S.flags|=8,Xt.delete(e)),f&&(s(c),s(u)),o&&s(a),!S&&(_||f)&&i&16)for(let I=0;I{e.isMounted=!0}),Ma(()=>{e.isUnmounting=!0}),e}const ot=[Function,Array],La={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ot,onEnter:ot,onAfterEnter:ot,onEnterCancelled:ot,onBeforeLeave:ot,onLeave:ot,onAfterLeave:ot,onLeaveCancelled:ot,onBeforeAppear:ot,onAppear:ot,onAfterAppear:ot,onAppearCancelled:ot},wa=e=>{const t=e.subTree;return t.component?wa(t.component):t},nf={name:"BaseTransition",props:La,setup(e,{slots:t}){const n=Kt(),r=tf();return()=>{const s=t.default&&Na(t.default(),!0),o=s&&s.length?Ia(s):n.subTree?Lt():void 0;if(!o)return;const i=oe(e),{mode:l}=i;if(r.isLeaving)return Ls(o);const a=Gr(o);if(!a)return Ls(o);let c=zs(a,i,r,n,f=>c=f);a.type!==He&&ar(a,c);let u=n.subTree&&Gr(n.subTree);if(u&&u.type!==He&&!En(u,a)&&wa(n).type!==He){let f=zs(u,i,r,n);if(ar(u,f),l==="out-in"&&a.type!==He)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,u=void 0},Ls(o);l==="in-out"&&a.type!==He?f.delayLeave=(h,_,k)=>{const S=Oa(r,u);S[String(u.key)]=u,h[it]=()=>{_(),h[it]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{k(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return o}}};function Ia(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==He){t=n;break}}return t}const rf=nf;function Oa(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function zs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:h,onLeave:_,onAfterLeave:k,onLeaveCancelled:S,onBeforeAppear:I,onAppear:v,onAfterAppear:b,onAppearCancelled:w}=t,A=String(e.key),M=Oa(n,e),D=(V,Y)=>{V&&ft(V,r,9,Y)},L=(V,Y)=>{const z=Y[1];D(V,Y),X(V)?V.every(j=>j.length<=1)&&z():V.length<=1&&z()},K={mode:i,persisted:l,beforeEnter(V){let Y=a;if(!n.isMounted)if(o)Y=I||a;else return;V[it]&&V[it](!0);const z=M[A];z&&En(e,z)&&z.el[it]&&z.el[it](),D(Y,[V])},enter(V){if(M[A]===e)return;let Y=c,z=u,j=f;if(!n.isMounted)if(o)Y=v||c,z=b||u,j=w||f;else return;let ee=!1;V[Wn]=De=>{ee||(ee=!0,De?D(j,[V]):D(z,[V]),K.delayedLeave&&K.delayedLeave(),V[Wn]=void 0)};const _e=V[Wn].bind(null,!1);Y?L(Y,[V,_e]):_e()},leave(V,Y){const z=String(e.key);if(V[Wn]&&V[Wn](!0),n.isUnmounting)return Y();D(h,[V]);let j=!1;V[it]=_e=>{j||(j=!0,Y(),_e?D(S,[V]):D(k,[V]),V[it]=void 0,M[z]===e&&delete M[z])};const ee=V[it].bind(null,!1);M[z]=e,_?L(_,[V,ee]):ee()},clone(V){const Y=zs(V,t,n,r,s);return s&&s(Y),Y}};return K}function Ls(e){if(ds(e))return e=un(e),e.children=null,e}function Gr(e){if(!ds(e))return fs(e.type)&&e.children?Ia(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Z(n.default))return n.default()}}function ar(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;ar(fs(n.type)&&Gr(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Na(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;on.value,set:o=>n.value=o})}return n}function pi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Kr=new WeakMap;function Zn(e,t,n,r,s=!1){if(X(e)){e.forEach((S,I)=>Zn(S,t&&(X(t)?t[I]:t),n,r,s));return}if(Fn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Zn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Ho(r.component):r.el,i=s?null:o,{i:l,r:a}=e,c=t&&t.r,u=l.refs===ge?l.refs={}:l.refs,f=l.setupState,h=oe(f),_=f===ge?Gl:S=>pi(u,S)?!1:fe(h,S),k=(S,I)=>!(I&&pi(u,I));if(c!=null&&c!==a){if(mi(t),ke(c))u[c]=null,_(c)&&(f[c]=null);else if(Ie(c)){const S=t;k(c,S.k)&&(c.value=null),S.k&&(u[S.k]=null)}}if(Z(a))Cr(a,l,12,[i,u]);else{const S=ke(a),I=Ie(a);if(S||I){const v=()=>{if(e.f){const b=S?_(a)?f[a]:u[a]:k()||!e.k?a.value:u[e.k];if(s)X(b)&&ko(b,o);else if(X(b))b.includes(o)||b.push(o);else if(S)u[a]=[o],_(a)&&(f[a]=u[a]);else{const w=[o];k(a,e.k)&&(a.value=w),e.k&&(u[e.k]=w)}}else S?(u[a]=i,_(a)&&(f[a]=i)):I&&(k(a,e.k)&&(a.value=i),e.k&&(u[e.k]=i))};if(i){const b=()=>{v(),Kr.delete(e)};b.id=-1,Kr.set(e,b),We(b,n)}else mi(e),v()}}}function mi(e){const t=Kr.get(e);t&&(t.flags|=8,Kr.delete(e))}is().requestIdleCallback;is().cancelIdleCallback;const Fn=e=>!!e.type.__asyncLoader,ds=e=>e.type.__isKeepAlive;function of(e,t){xa(e,"a",t)}function lf(e,t){xa(e,"da",t)}function xa(e,t,n=qe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hs(t,r,n),n){let s=n.parent;for(;s&&s.parent;)ds(s.parent.vnode)&&af(r,t,n,s),s=s.parent}}function af(e,t,n,r){const s=hs(t,e,r,!0);Do(()=>{ko(r[t],s)},n)}function hs(e,t,n=qe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Bt();const l=kr(n),a=ft(t,n,e,i);return l(),Wt(),a});return r?s.unshift(o):s.push(o),o}}const Gt=e=>(t,n=qe)=>{(!dr||e==="sp")&&hs(e,(...r)=>t(...r),n)},cf=Gt("bm"),Ar=Gt("m"),uf=Gt("bu"),ff=Gt("u"),Ma=Gt("bum"),Do=Gt("um"),df=Gt("sp"),hf=Gt("rtg"),pf=Gt("rtc");function mf(e,t=qe){hs("ec",e,t)}const gf=Symbol.for("v-ndc");function gi(e,t,n,r){let s;const o=n,i=X(e);if(i||ke(e)){const l=i&&on(e);let a=!1,c=!1;l&&(a=!tt(e),c=Ot(e),e=as(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,c=l.length;a{const o=r.fn(...s);return o&&(o.key=r.key),o}:r.fn)}return e}function Qs(e,t,n,r,s,o){if(n==null&&(n={}),Xe.ce||Xe.parent&&Fn(Xe.parent)&&Xe.parent.ce){const c=o!=null&&n.key==null?Ne({},n,{key:o}):n,u=Object.keys(c).length>0;return t!=="default"&&(c.name=t),Ae(),Nt(Fe,null,[pe("slot",c,r&&r())],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const l=$t.length;Ae();let a;try{const c=i&&Da(i(n)),u=n.key||o||c&&c.key;a=Nt(Fe,{key:(u&&!rt(u)?u:`_${t}`)+(!c&&r?"_fb":"")},c||(r?r():[]),c&&e._===1?64:-2)}catch(c){for(let u=$t.length;u>l;u--)Uo();throw c}finally{i&&i._c&&(i._d=!0)}return!s&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function Da(e){return e.some(t=>ur(t)?!(t.type===He||t.type===Fe&&!Da(t.children)):!0)?e:null}const Zs=e=>e?tc(e)?Ho(e):Zs(e.parent):null,er=Ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Zs(e.parent),$root:e=>Zs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ja(e),$forceUpdate:e=>e.f||(e.f=()=>{xo(e.update)}),$nextTick:e=>e.n||(e.n=Po.bind(e.proxy)),$watch:e=>Xu.bind(e)}),ws=(e,t)=>e!==ge&&!e.__isScriptSetup&&fe(e,t),_f={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(ws(r,t))return i[t]=1,r[t];if(s!==ge&&fe(s,t))return i[t]=2,s[t];if(fe(o,t))return i[t]=3,o[t];if(n!==ge&&fe(n,t))return i[t]=4,n[t];eo&&(i[t]=0)}}const c=er[t];let u,f;if(c)return t==="$attrs"&&Ue(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==ge&&fe(n,t))return i[t]=4,n[t];if(f=a.config.globalProperties,fe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return ws(s,t)?(s[t]=n,!0):r!==ge&&fe(r,t)?(r[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let a;return!!(n[l]||e!==ge&&l[0]!=="$"&&fe(e,l)||ws(t,l)||fe(o,l)||fe(r,l)||fe(er,l)||fe(s.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function f_(){return vf().attrs}function vf(e){const t=Kt();return t.setupContext||(t.setupContext=rc(t))}function _i(e){return X(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let eo=!0;function bf(e){const t=ja(e),n=e.proxy,r=e.ctx;eo=!1,t.beforeCreate&&vi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:_,updated:k,activated:S,deactivated:I,beforeDestroy:v,beforeUnmount:b,destroyed:w,unmounted:A,render:M,renderTracked:D,renderTriggered:L,errorCaptured:K,serverPrefetch:V,expose:Y,inheritAttrs:z,components:j,directives:ee,filters:_e}=t;if(c&&yf(c,r,null),i)for(const se in i){const ne=i[se];Z(ne)&&(r[se]=ne.bind(n))}if(s){const se=s.call(n,n);ae(se)&&(e.data=$n(se))}if(eo=!0,o)for(const se in o){const ne=o[se],Qe=Z(ne)?ne.bind(n,n):Z(ne.get)?ne.get.bind(n,n):wt,Me=!Z(ne)&&Z(ne.set)?ne.set.bind(n):wt,je=Ce({get:Qe,set:Me});Object.defineProperty(r,se,{enumerable:!0,configurable:!0,get:()=>je.value,set:Re=>je.value=Re})}if(l)for(const se in l)Fa(l[se],r,n,se);if(a){const se=Z(a)?a.call(n):a;Reflect.ownKeys(se).forEach(ne=>{Fr(ne,se[ne])})}u&&vi(u,e,"c");function be(se,ne){X(ne)?ne.forEach(Qe=>se(Qe.bind(n))):ne&&se(ne.bind(n))}if(be(cf,f),be(Ar,h),be(uf,_),be(ff,k),be(of,S),be(lf,I),be(mf,K),be(pf,D),be(hf,L),be(Ma,b),be(Do,A),be(df,V),X(Y))if(Y.length){const se=e.exposed||(e.exposed={});Y.forEach(ne=>{Object.defineProperty(se,ne,{get:()=>n[ne],set:Qe=>n[ne]=Qe,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===wt&&(e.render=M),z!=null&&(e.inheritAttrs=z),j&&(e.components=j),ee&&(e.directives=ee),V&&Ra(e)}function yf(e,t,n=wt){X(e)&&(e=to(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=nt(s.from||r,s.default,!0):o=nt(s.from||r):o=nt(s),Ie(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function vi(e,t,n){ft(X(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Fa(e,t,n,r){let s=r.includes(".")?ka(n,r):()=>n[r];if(ke(e)){const o=t[e];Z(o)&&ct(s,o)}else if(Z(e))ct(s,e.bind(n));else if(ae(e))if(X(e))e.forEach(o=>Fa(o,t,n,r));else{const o=Z(e.handler)?e.handler.bind(n):t[e.handler];Z(o)&&ct(s,o,e)}}function ja(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let a;return l?a=l:!s.length&&!n&&!r?a=t:(a={},s.length&&s.forEach(c=>qr(a,c,i,!0)),qr(a,t,i)),ae(t)&&o.set(t,a),a}function qr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&qr(e,o,n,!0),s&&s.forEach(i=>qr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ef[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ef={data:bi,props:yi,emits:yi,methods:Yn,computed:Yn,beforeCreate:Be,created:Be,beforeMount:Be,mounted:Be,beforeUpdate:Be,updated:Be,beforeDestroy:Be,beforeUnmount:Be,destroyed:Be,unmounted:Be,activated:Be,deactivated:Be,errorCaptured:Be,serverPrefetch:Be,components:Yn,directives:Yn,watch:Af,provide:bi,inject:Cf};function bi(e,t){return t?e?function(){return Ne(Z(e)?e.call(this,this):e,Z(t)?t.call(this,this):t)}:t:e}function Cf(e,t){return Yn(to(e),to(t))}function to(e){if(X(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${pt(t)}Modifiers`]||e[`${fn(t)}Modifiers`];function Lf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ge;let s=n;const o=t.startsWith("update:"),i=o&&Sf(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>ke(u)?u.trim():u)),i.number&&(s=s.map(ou)));let l,a=r[l=Es(t)]||r[l=Es(pt(t))];!a&&o&&(a=r[l=Es(fn(t))]),a&&ft(a,e,6,s);const c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ft(c,e,6,s)}}const wf=new WeakMap;function Ua(e,t,n=!1){const r=n?wf:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!Z(e)){const a=c=>{const u=Ua(c,t,!0);u&&(l=!0,Ne(i,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(ae(e)&&r.set(e,null),null):(X(o)?o.forEach(a=>i[a]=null):Ne(i,o),ae(e)&&r.set(e,i),i)}function ps(e,t){return!e||!ns(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,fn(t))||fe(e,t))}function Ei(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:c,renderCache:u,props:f,data:h,setupState:_,ctx:k,inheritAttrs:S}=e,I=Wr(e);let v,b;try{if(n.shapeFlag&4){const A=s||r,M=A;v=kt(c.call(M,A,u,f,_,h,k)),b=l}else{const A=t;v=kt(A.length>1?A(f,{attrs:l,slots:i,emit:a}):A(f,null)),b=t.props?l:If(l)}}catch(A){$t.length=0,us(A,e,1),v=pe(He)}let w=v;if(b&&S!==!1){const A=Object.keys(b),{shapeFlag:M}=w;A.length&&M&7&&(o&&A.some(rs)&&(b=Of(b,o)),w=un(w,b,!1,!0))}if(n.dirs&&(w=un(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition){const A=fs(w.type)&&Gr(w)||w;ar(A,n.transition)}return v=w,Wr(I),v}const If=e=>{let t;for(const n in e)(n==="class"||n==="style"||ns(n))&&((t||(t={}))[n]=e[n]);return t},Of=(e,t)=>{const n={};for(const r in e)(!rs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Nf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Ci(r,i,c):!!i;if(a&8){const u=t.dynamicProps;for(let f=0;fObject.create($a),Wa=e=>Object.getPrototypeOf(e)===$a;function Pf(e,t,n,r=!1){const s={},o=Ba();e.propsDefaults=Object.create(null),Ga(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ga(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function xf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=oe(s),[a]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{a=!0;const[h,_]=Ka(f,t,!0);Ne(i,h),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!a)return ae(e)&&r.set(e,Cn),Cn;if(X(o))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",jo=e=>X(e)?e.map(kt):[kt(e)],Df=(e,t,n)=>{if(t._n)return t;const r=an((...s)=>jo(t(...s)),n);return r._c=!1,r},qa=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Fo(s))continue;const o=e[s];if(Z(o))t[s]=Df(s,o,r);else if(o!=null){const i=jo(o);t[s]=()=>i}}},Ya=(e,t)=>{const n=jo(t);e.slots.default=()=>n},Ja=(e,t,n)=>{for(const r in t)(n||!Fo(r))&&(e[r]=t[r])},Ff=(e,t,n)=>{const r=e.slots=Ba();if(e.vnode.shapeFlag&32){const s=t._;s?(Ja(r,t,n),n&&Xl(r,"_",s,!0)):qa(t,r)}else t&&Ya(e,t)},jf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ge;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ja(s,t,n):(o=!t.$stable,qa(t,s)),i=t}else t&&(Ya(e,t),i={default:1});if(o)for(const l in s)!Fo(l)&&i[l]==null&&delete s[l]},We=Bf;function Vf(e){return Uf(e)}function Uf(e,t){const n=is();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:_=wt,insertStaticContent:k}=e,S=(m,g,E,N=null,P=null,R=null,d=void 0,p=null,y=!!g.dynamicChildren)=>{if(m===g)return;m&&!En(m,g)&&(N=x(m),Re(m,P,R,!0),m=null),g.patchFlag===-2&&(y=!1,g.dynamicChildren=null),g.dynamicChildren&&m&&m.dynamicChildren&&m.dynamicChildren.hasOnce&&(g.dynamicChildren===Cn&&(g.dynamicChildren=[]),g.dynamicChildren.hasOnce=!0);const{type:C,ref:$,shapeFlag:F}=g;switch(C){case Tr:I(m,g,E,N);break;case He:v(m,g,E,N);break;case Os:m==null&&b(g,E,N,d);break;case Fe:j(m,g,E,N,P,R,d,p,y);break;default:F&1?M(m,g,E,N,P,R,d,p,y):F&6?ee(m,g,E,N,P,R,d,p,y):(F&64||F&128)&&C.process(m,g,E,N,P,R,d,p,y,G)}$!=null&&P?Zn($,m&&m.ref,R,g||m,!g):$==null&&m&&m.ref!=null&&Zn(m.ref,null,R,m,!0)},I=(m,g,E,N)=>{if(m==null)r(g.el=l(g.children),E,N);else{const P=g.el=m.el;g.children!==m.children&&c(P,g.children)}},v=(m,g,E,N)=>{m==null?r(g.el=a(g.children||""),E,N):g.el=m.el},b=(m,g,E,N)=>{[m.el,m.anchor]=k(m.children,g,E,N,m.el,m.anchor)},w=({el:m,anchor:g},E,N)=>{let P;for(;m&&m!==g;)P=h(m),r(m,E,N),m=P;r(g,E,N)},A=({el:m,anchor:g})=>{let E;for(;m&&m!==g;)E=h(m),s(m),m=E;s(g)},M=(m,g,E,N,P,R,d,p,y)=>{if(g.type==="svg"?d="svg":g.type==="math"&&(d="mathml"),m==null)D(g,E,N,P,R,d,p,y);else{const C=m.el&&m.el._isVueCE?m.el:null;try{C&&C._beginPatch(),V(m,g,P,R,d,p,y)}finally{C&&C._endPatch()}}},D=(m,g,E,N,P,R,d,p)=>{let y,C;const{props:$,shapeFlag:F,transition:U,dirs:T}=m;if(y=m.el=i(m.type,R,$&&$.is,$),F&8?u(y,m.children):F&16&&K(m.children,y,null,N,P,Is(m,R),d,p),T&&mn(m,null,N,"created"),L(y,m,m.scopeId,d,N),$){for(const q in $)q!=="value"&&!Xn(q)&&o(y,q,null,$[q],R,N);"value"in $&&o(y,"value",null,$.value,R),(C=$.onVnodeBeforeMount)&&yt(C,N,m)}T&&mn(m,null,N,"beforeMount");const O=Hf(P,U);O&&U.beforeEnter(y),r(y,g,E),((C=$&&$.onVnodeMounted)||O||T)&&We(()=>{C&&yt(C,N,m),O&&U.enter(y),T&&mn(m,null,N,"mounted")},P)},L=(m,g,E,N,P)=>{if(E&&_(m,E),N)for(let R=0;R{for(let C=y;C{const p=g.el=m.el;let{patchFlag:y,dynamicChildren:C,dirs:$}=g;y|=m.patchFlag&16;const F=m.props||ge,U=g.props||ge;let T;if(E&&gn(E,!1),(T=U.onVnodeBeforeUpdate)&&yt(T,E,g,m),$&&mn(g,m,E,"beforeUpdate"),E&&gn(E,!0),C&&(!m.dynamicChildren||m.dynamicChildren.length!==C.length)&&(y=0,d=!1,C=null),(F.innerHTML&&U.innerHTML==null||F.textContent&&U.textContent==null)&&u(p,""),C?Y(m.dynamicChildren,C,p,E,N,Is(g,P),R):d||ne(m,g,p,null,E,N,Is(g,P),R,!1),y>0){if(y&16)z(p,F,U,E,P);else if(y&2&&F.class!==U.class&&o(p,"class",null,U.class,P),y&4&&o(p,"style",F.style,U.style,P),y&8){const O=g.dynamicProps;for(let q=0;q{T&&yt(T,E,g,m),$&&mn(g,m,E,"updated")},N)},Y=(m,g,E,N,P,R,d)=>{for(let p=0;p{if(g!==E){if(g!==ge)for(const R in g)!Xn(R)&&!(R in E)&&o(m,R,g[R],null,P,N);for(const R in E){if(Xn(R))continue;const d=E[R],p=g[R];d!==p&&R!=="value"&&o(m,R,p,d,P,N)}"value"in E&&o(m,"value",g.value,E.value,P)}},j=(m,g,E,N,P,R,d,p,y)=>{const C=g.el=m?m.el:l(""),$=g.anchor=m?m.anchor:l("");let{patchFlag:F,dynamicChildren:U,slotScopeIds:T}=g;T&&(p=p?p.concat(T):T),m==null?(r(C,E,N),r($,E,N),K(g.children||[],E,$,P,R,d,p,y)):F>0&&F&64&&U&&m.dynamicChildren&&m.dynamicChildren.length===U.length?(Y(m.dynamicChildren,U,E,P,R,d,p),(g.key!=null||P&&g===P.subTree)&&Vo(m,g,!0)):ne(m,g,E,$,P,R,d,p,y)},ee=(m,g,E,N,P,R,d,p,y)=>{g.slotScopeIds=p,m==null?g.shapeFlag&512?P.ctx.activate(g,E,N,d,y):_e(g,E,N,P,R,d,y):De(m,g,y)},_e=(m,g,E,N,P,R,d)=>{const p=m.component=Jf(m,N,P);if(ds(m)&&(p.ctx.renderer=G),Xf(p,!1,d),p.asyncDep){if(P&&P.registerDep(p,be,d),!m.el){const y=p.subTree=pe(He);v(null,y,g,E),m.placeholder=y.el}}else be(p,m,g,E,P,R,d)},De=(m,g,E)=>{const N=g.component=m.component;if(Nf(m,g,E))if(N.asyncDep&&!N.asyncResolved){g.el=m.el,se(N,g,E);return}else N.next=g,N.update();else g.el=m.el,N.vnode=g},be=(m,g,E,N,P,R,d)=>{const p=()=>{if(m.isMounted){let{next:F,bu:U,u:T,parent:O,vnode:q}=m;{const st=Xa(m);if(st){F&&(F.el=q.el,se(m,F,d)),st.asyncDep.then(()=>{We(()=>{m.isUnmounted||C()},P)});return}}let J=F,he;gn(m,!1),F?(F.el=q.el,se(m,F,d)):F=q,U&&Cs(U),(he=F.props&&F.props.onVnodeBeforeUpdate)&&yt(he,O,F,q),gn(m,!0);const ye=Ei(m),Se=m.subTree;m.subTree=ye,S(Se,ye,f(Se.el),x(Se),m,P,R),F.el=ye.el,J===null&&Rf(m,ye.el),T&&We(T,P),(he=F.props&&F.props.onVnodeUpdated)&&We(()=>yt(he,O,F,q),P)}else{let F;const{el:U,props:T}=g,{bm:O,m:q,parent:J,root:he,type:ye}=m,Se=Fn(g);gn(m,!1),O&&Cs(O),!Se&&(F=T&&T.onVnodeBeforeMount)&&yt(F,J,g),gn(m,!0);{he.ce&&he.ce._hasShadowRoot()&&he.ce._injectChildStyle(ye,m.parent?m.parent.type:void 0);const st=m.subTree=Ei(m);S(null,st,E,N,m,P,R),g.el=st.el}if(q&&We(q,P),!Se&&(F=T&&T.onVnodeMounted)){const st=g;We(()=>yt(F,J,st),P)}(g.shapeFlag&256||J&&Fn(J.vnode)&&J.vnode.shapeFlag&256)&&m.a&&We(m.a,P),m.isMounted=!0,g=E=N=null}};m.scope.on();const y=m.effect=new na(p);m.scope.off();const C=m.update=y.run.bind(y),$=m.job=y.runIfDirty.bind(y);$.i=m,$.id=m.uid,y.scheduler=()=>xo($),gn(m,!0),C()},se=(m,g,E)=>{g.component=m;const N=m.vnode.props;m.vnode=g,m.next=null,xf(m,g.props,N,E),jf(m,g.children,E),Bt(),fi(m),Wt()},ne=(m,g,E,N,P,R,d,p,y=!1)=>{const C=m&&m.children,$=m?m.shapeFlag:0,F=g.children,{patchFlag:U,shapeFlag:T}=g;if(U>0){if(U&128){Me(C,F,E,N,P,R,d,p,y);return}else if(U&256){Qe(C,F,E,N,P,R,d,p,y);return}}T&8?($&16&&$e(C,P,R),F!==C&&u(E,F)):$&16?T&16?Me(C,F,E,N,P,R,d,p,y):$e(C,P,R,!0):($&8&&u(E,""),T&16&&K(F,E,N,P,R,d,p,y))},Qe=(m,g,E,N,P,R,d,p,y)=>{m=m||Cn,g=g||Cn;const C=m.length,$=g.length,F=Math.min(C,$);let U;for(U=0;U$?$e(m,P,R,!0,!1,F):K(g,E,N,P,R,d,p,y,F)},Me=(m,g,E,N,P,R,d,p,y)=>{let C=0;const $=g.length;let F=m.length-1,U=$-1;for(;C<=F&&C<=U;){const T=m[C],O=g[C]=y?jt(g[C]):kt(g[C]);if(En(T,O))S(T,O,E,null,P,R,d,p,y);else break;C++}for(;C<=F&&C<=U;){const T=m[F],O=g[U]=y?jt(g[U]):kt(g[U]);if(En(T,O))S(T,O,E,null,P,R,d,p,y);else break;F--,U--}if(C>F){if(C<=U){const T=U+1,O=T<$?g[T].el:N;for(;C<=U;)S(null,g[C]=y?jt(g[C]):kt(g[C]),E,O,P,R,d,p,y),C++}}else if(C>U)for(;C<=F;)Re(m[C],P,R,!0),C++;else{const T=C,O=C,q=new Map;for(C=O;C<=U;C++){const Ze=g[C]=y?jt(g[C]):kt(g[C]);Ze.key!=null&&q.set(Ze.key,C)}let J,he=0;const ye=U-O+1;let Se=!1,st=0;const wn=new Array(ye);for(C=0;C=ye){Re(Ze,P,R,!0);continue}let bt;if(Ze.key!=null)bt=q.get(Ze.key);else for(J=O;J<=U;J++)if(wn[J-O]===0&&En(Ze,g[J])){bt=J;break}bt===void 0?Re(Ze,P,R,!0):(wn[bt-O]=C+1,bt>=st?st=bt:Se=!0,S(Ze,g[bt],E,null,P,R,d,p,y),he++)}const ti=Se?$f(wn):Cn;for(J=ti.length-1,C=ye-1;C>=0;C--){const Ze=O+C,bt=g[Ze],ni=g[Ze+1],ri=Ze+1<$?ni.el||za(ni):N;wn[C]===0?S(null,bt,E,ri,P,R,d,p,y):Se&&(J<0||C!==ti[J]?je(bt,E,ri,2):J--)}}},je=(m,g,E,N,P=null)=>{const{el:R,type:d,transition:p,children:y,shapeFlag:C}=m;if(C&6){je(m.component.subTree,g,E,N);return}if(C&128){m.suspense.move(g,E,N);return}if(C&64){d.move(m,g,E,G);return}if(d===Fe){r(R,g,E);for(let F=0;Fp.enter(R),P));else{const{leave:F,delayLeave:U,afterLeave:T}=p,O=()=>{m.ctx.isUnmounted?s(R):r(R,g,E)},q=()=>{const J=R._isLeaving||!!R[it];R._isLeaving&&R[it](!0),p.persisted&&!J?O():F(R,()=>{O(),T&&T()})};U?U(R,O,q):q()}else r(R,g,E)},Re=(m,g,E,N=!1,P=!1)=>{const{type:R,props:d,ref:p,children:y,dynamicChildren:C,shapeFlag:$,patchFlag:F,dirs:U,cacheIndex:T,memo:O}=m;if((F===-2||C&&C.hasOnce)&&(P=!1),p!=null&&(Bt(),Zn(p,null,E,m,!0),Wt()),T!=null&&(!m.ctx||m.ctx===g)&&(g.renderCache[T]=void 0),$&256){g.ctx.deactivate(m);return}const q=$&1&&U,J=!Fn(m);let he;if(J&&(he=d&&d.onVnodeBeforeUnmount)&&yt(he,g,m),$&6)dt(m.component,E,N);else{if($&128){m.suspense.unmount(E,N);return}q&&mn(m,null,g,"beforeUnmount"),$&64?m.type.remove(m,g,E,G,N):C&&!C.hasOnce&&(R!==Fe||F>0&&F&64)?$e(C,g,E,!1,!0):(R===Fe&&F&384||!P&&$&16)&&$e(y,g,E),N&&_t(m)}const ye=O!=null&&T==null;(J&&(he=d&&d.onVnodeUnmounted)||q||ye)&&We(()=>{he&&yt(he,g,m),q&&mn(m,null,g,"unmounted"),ye&&(m.el=null)},E)},_t=m=>{const{type:g,el:E,anchor:N,transition:P}=m;if(g===Fe){vt(E,N);return}if(g===Os){A(m),P&&!P.persisted&&P.afterLeave&&P.afterLeave();return}const R=()=>{s(E),P&&!P.persisted&&P.afterLeave&&P.afterLeave()};if(m.shapeFlag&1&&P&&!P.persisted){const{leave:d,delayLeave:p}=P,y=()=>d(E,R);p?p(m.el,R,y):y()}else R()},vt=(m,g)=>{let E;for(;m!==g;)E=h(m),s(m),m=E;s(g)},dt=(m,g,E)=>{const{bum:N,scope:P,job:R,subTree:d,um:p,m:y,a:C}=m;Ti(y),Ti(C),N&&Cs(N),P.stop(),R?(R.flags|=8,Re(d,m,g,E)):m.vnode.el&&d&&(d.transition=m.vnode.transition,Re(d,m,g,E)),p&&We(p,g),We(()=>{m.isUnmounted=!0},g)},$e=(m,g,E,N=!1,P=!1,R=0)=>{for(let d=R;d{if(m.shapeFlag&6)return x(m.component.subTree);if(m.shapeFlag&128)return m.suspense.next();const g=h(m.anchor||m.el),E=g&&g[Sa];return E?h(E):g};let B=!1;const H=(m,g,E)=>{let N;m==null?g._vnode&&(Re(g._vnode,null,null,!0),N=g._vnode.component):S(g._vnode||null,m,g,null,null,null,E),g._vnode=m,B||(B=!0,fi(N),Ea(),B=!1)},G={p:S,um:Re,m:je,r:_t,mt:_e,mc:K,pc:ne,pbc:Y,n:x,o:e};return{render:H,hydrate:void 0,createApp:kf(H)}}function Is({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function gn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Hf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vo(e,t,n=!1){const r=e.children,s=t.children;if(X(r)&&X(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Xa(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xa(t)}function Ti(e){if(e)for(let t=0;te.__isSuspense;function Bf(e,t){t&&t.pendingBranch?X(e)?t.effects.push(...e):t.effects.push(e):Ku(e)}const Fe=Symbol.for("v-fgt"),Tr=Symbol.for("v-txt"),He=Symbol.for("v-cmt"),Os=Symbol.for("v-stc"),$t=[];let et=null;function Ae(e=!1){$t.push(et=e?null:[])}function Uo(){$t.pop(),et=$t[$t.length-1]||null}let cr=1;function Yr(e,t=!1){cr+=e,e<0&&et&&t&&(et.hasOnce=!0)}function Za(e){return e.dynamicChildren=cr>0?et||Cn:null,Uo(),cr>0&&et&&et.push(e),e}function Je(e,t,n,r,s,o){return Za(le(e,t,n,r,s,o,!0))}function Nt(e,t,n,r,s){return Za(pe(e,t,n,r,s,!0))}function ur(e){return e?e.__v_isVNode===!0:!1}function En(e,t){return e.type===t.type&&e.key===t.key}const ec=({key:e})=>e??null,jr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ke(e)||Ie(e)||Z(e)?{i:Xe,r:e,k:t,f:!!n}:e:null);function le(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ec(t),ref:t&&jr(t),scopeId:Aa,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Xe};return l?(Jr(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=ke(n)?8:16),cr>0&&!i&&et&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&et.push(a),a}const pe=Wf;function Wf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===gf)&&(e=He),ur(e)){const l=un(e,t,!0);return n&&Jr(l,n),cr>0&&!o&&et&&(l.shapeFlag&6?et[et.indexOf(e)]=l:et.push(l)),l.patchFlag=-2,l}if(Zf(e)&&(e=e.__vccOpts),t){t=Gf(t);let{class:l,style:a}=t;l&&!ke(l)&&(t.class=nn(l)),ae(a)&&(cs(a)&&!X(a)&&(a=Ne({},a)),t.style=sr(a))}const i=ke(e)?1:Qa(e)?128:fs(e)?64:ae(e)?4:Z(e)?2:0;return le(e,t,n,r,s,i,o,!0)}function Gf(e){return e?cs(e)||Wa(e)?Ne({},e):e:null}function un(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,c=t?Kf(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ec(c),ref:t&&t.ref?n&&o?X(o)?o.concat(jr(t)):[o,jr(t)]:jr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&un(e.ssContent),ssFallback:e.ssFallback&&un(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&r&&ar(u,a.clone(u)),u}function ro(e=" ",t=0){return pe(Tr,null,e,t)}function Lt(e="",t=!1){return t?(Ae(),Nt(He,null,e)):pe(He,null,e)}function kt(e){return e==null||typeof e=="boolean"?pe(He):X(e)?pe(Fe,null,e.slice()):ur(e)?jt(e):pe(Tr,null,String(e))}function jt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:un(e)}function Jr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(X(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Jr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Wa(t)?t._ctx=Xe:s===3&&Xe&&(Xe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Z(t)){if(r&65){Jr(e,{default:t});return}t={default:t,_ctx:Xe},n=32}else t=String(t),r&64?(n=16,t=[ro(t)]):n=8;e.children=t,e.shapeFlag|=n}function Kf(...e){const t={};for(let n=0;nqe||Xe;let Xr,fr;{const e=is(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Xr=t("__VUE_INSTANCE_SETTERS__",n=>qe=n),fr=t("__VUE_SSR_SETTERS__",n=>dr=n)}const kr=e=>{const t=qe;return Xr(e),e.scope.on(),()=>{e.scope.off(),Xr(t)}},ki=()=>{qe&&qe.scope.off(),Xr(null)};function tc(e){return e.vnode.shapeFlag&4}let dr=!1;function Xf(e,t=!1,n=!1){t&&fr(t);const{props:r,children:s}=e.vnode,o=tc(e);Pf(e,r,o,t),Ff(e,s,n||t);const i=o?zf(e,t):void 0;return t&&fr(!1),i}function zf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_f);const{setup:r}=n;if(r){Bt();const s=e.setupContext=r.length>1?rc(e):null,o=kr(e),i=Cr(r,e,0,[e.props,s]),l=Kl(i);if(Wt(),o(),(l||e.sp)&&!Fn(e)&&Ra(e),l){if(i.then(ki,ki),t)return i.then(a=>{fr(!0);try{Si(e,a,t)}finally{fr(!1)}}).catch(a=>{us(a,e,0)});e.asyncDep=i}else Si(e,i)}else nc(e)}function Si(e,t,n){Z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=va(t)),nc(e)}function nc(e,t,n){const r=e.type;e.render||(e.render=r.render||wt);{const s=kr(e);Bt();try{bf(e)}finally{Wt(),s()}}}const Qf={get(e,t){return Ue(e,"get",""),e[t]}};function rc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qf),slots:e.slots,emit:e.emit,expose:t}}function Ho(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(va(xu(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in er)return er[n](e)},has(t,n){return n in t||n in er}})):e.proxy}function Zf(e){return Z(e)&&"__vccOpts"in e}const Ce=(e,t)=>Hu(e,t,dr);function Ln(e,t,n){try{Yr(-1);const r=arguments.length;return r===2?ae(t)&&!X(t)?ur(t)?pe(e,null,[t]):pe(e,t):pe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ur(n)&&(n=[n]),pe(e,t,n))}finally{Yr(1)}}const ed="3.5.43";let so;const Li=typeof window<"u"&&window.trustedTypes;if(Li)try{so=Li.createPolicy("vue",{createHTML:e=>e})}catch{}const sc=so?e=>so.createHTML(e):e=>e,td="http://www.w3.org/2000/svg",nd="http://www.w3.org/1998/Math/MathML",Ft=typeof document<"u"?document:null,wi=Ft&&Ft.createElement("template"),rd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ft.createElementNS(td,e):t==="mathml"?Ft.createElementNS(nd,e):n?Ft.createElement(e,{is:n}):Ft.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ft.createTextNode(e),createComment:e=>Ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{wi.innerHTML=sc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=wi.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qt="transition",Gn="animation",hr=Symbol("_vtc"),oc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},sd=Ne({},La,oc),od=e=>(e.displayName="Transition",e.props=sd,e),id=od((e,{slots:t})=>Ln(rf,ld(e),t)),_n=(e,t=[])=>{X(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ii=e=>e?X(e)?e.some(t=>t.length>1):e.length>1:!1;function ld(e){const t={};for(const j in e)j in oc||(t[j]=e[j]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:c=i,appearToClass:u=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,k=ad(s),S=k&&k[0],I=k&&k[1],{onBeforeEnter:v,onEnter:b,onEnterCancelled:w,onLeave:A,onLeaveCancelled:M,onBeforeAppear:D=v,onAppear:L=b,onAppearCancelled:K=w}=t,V=(j,ee,_e,De)=>{j._enterCancelled=De,vn(j,ee?u:l),vn(j,ee?c:i),_e&&_e()},Y=(j,ee)=>{j._isLeaving=!1,vn(j,f),vn(j,_),vn(j,h),ee&&ee()},z=j=>(ee,_e)=>{const De=j?L:b,be=()=>V(ee,j,_e);_n(De,[ee,be]),Oi(()=>{vn(ee,j?a:o),xt(ee,j?u:l),Ii(De)||Ni(ee,r,S,be)})};return Ne(t,{onBeforeEnter(j){_n(v,[j]),xt(j,o),xt(j,i)},onBeforeAppear(j){_n(D,[j]),xt(j,a),xt(j,c)},onEnter:z(!1),onAppear:z(!0),onLeave(j,ee){j._isLeaving=!0;const _e=()=>Y(j,ee);xt(j,f),j._enterCancelled?(xt(j,h),xi(j)):(xi(j),xt(j,h)),Oi(()=>{j._isLeaving&&(vn(j,f),xt(j,_),Ii(A)||Ni(j,r,I,_e))}),_n(A,[j,_e])},onEnterCancelled(j){V(j,!1,void 0,!0),_n(w,[j])},onAppearCancelled(j){V(j,!0,void 0,!0),_n(K,[j])},onLeaveCancelled(j){Y(j),_n(M,[j])}})}function ad(e){if(e==null)return null;if(ae(e))return[Ns(e.enter),Ns(e.leave)];{const t=Ns(e);return[t,t]}}function Ns(e){return iu(e)}function xt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[hr]||(e[hr]=new Set)).add(t)}function vn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[hr];n&&(n.delete(t),n.size||(e[hr]=void 0))}function Oi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let cd=0;function Ni(e,t,n,r){const s=e._endId=++cd,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=ud(e,t);if(!i)return r();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,h),o()},h=_=>{_.target===e&&++u>=a&&f()};setTimeout(()=>{u(n[k]||"").split(", "),s=r(`${qt}Delay`),o=r(`${qt}Duration`),i=Ri(s,o),l=r(`${Gn}Delay`),a=r(`${Gn}Duration`),c=Ri(l,a);let u=null,f=0,h=0;t===qt?i>0&&(u=qt,f=i,h=o.length):t===Gn?c>0&&(u=Gn,f=c,h=a.length):(f=Math.max(i,c),u=f>0?i>c?qt:Gn:null,h=u?u===qt?o.length:a.length:0);const _=u===qt&&/\b(?:transform|all)(?:,|$)/.test(r(`${qt}Property`).toString());return{type:u,timeout:f,propCount:h,hasTransform:_}}function Ri(e,t){for(;e.lengthPi(n)+Pi(e[r])))}function Pi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xi(e){return(e?e.ownerDocument:document).body.offsetHeight}function fd(e,t,n){const r=e[hr];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Mi=Symbol("_vod"),dd=Symbol("_vsh"),hd=Symbol(""),pd=/(?:^|;)\s*display\s*:/;function md(e,t,n){const r=e.style,s=ke(n);let o=!1;if(n&&!s){if(t)if(ke(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Jn(r,l,"")}else for(const i in t)n[i]==null&&Jn(r,i,"");for(const i in n){i==="display"&&(o=!0);const l=n[i];l!=null?_d(e,i,!ke(t)&&t?t[i]:void 0,l)||Jn(r,i,l):Jn(r,i,"")}}else if(s){if(t!==n){const i=r[hd];i&&(n+=";"+i),r.cssText=n,o=pd.test(n)}}else t&&e.removeAttribute("style");Mi in e&&(e[Mi]=o?r.display:"",e[dd]&&(r.display="none"))}const Or=/\s*!important$/;function Jn(e,t,n){if(X(n))n.forEach(r=>Jn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))Or.test(n)?e.setProperty(t,n.replace(Or,""),"important"):e.setProperty(t,n);else{const r=gd(e,t);Or.test(n)?e.setProperty(fn(r),n.replace(Or,""),"important"):e[r]=n}}const Di=["Webkit","Moz","ms"],Rs={};function gd(e,t){const n=Rs[t];if(n)return n;let r=pt(t);if(r!=="filter"&&r in e)return Rs[t]=r;r=Jl(r);for(let s=0;sPs||(Td.then(()=>Ps=0),Ps=Date.now());function Sd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(X(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),l=[r];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ld=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?fd(e,r,i):t==="style"?md(e,n,r):ns(t)?rs(t)||yd(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wd(e,t,r,i))?(Vi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ji(e,t,r,i,o,t!=="value")):e._isVueCE&&(Id(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ke(r)))?Vi(e,pt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ji(e,t,r,i))};function wd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Hi(t)&&Z(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Hi(t)&&ke(n)?!1:t in e}function Id(e,t){const n=e._def.props;if(!n)return!1;const r=pt(t);return Array.isArray(n)?n.some(s=>pt(s)===r):Object.keys(n).some(s=>pt(s)===r)}const Od=["ctrl","shift","alt","meta"],Nd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Od.some(n=>e[`${n}Key`]&&!t.includes(n))},Rd=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;const o=fn(s.key);if(t.some(i=>i===o||Pd[i]===o))return e(s)}))},xd=Ne({patchProp:Ld},rd);let $i;function Md(){return $i||($i=Vf(xd))}const Dd=((...e)=>{const t=Md().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=jd(r);if(!s)return;const o=t._component;!Z(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Fd(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Fd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function jd(e){return ke(e)?document.querySelector(e):e}const xs=new WeakMap,Vd=(...e)=>{var t;const n=e[0],r=(t=Kt())===null||t===void 0?void 0:t.proxy,s=r??So();if(s==null&&!Ta())throw new Error("injectLocal must be called in setup");return s&&xs.has(s)&&n in xs.get(s)?xs.get(s)[n]:nt(...e)},Ud=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Hd=Object.prototype.toString,$d=e=>Hd.call(e)==="[object Object]";function Bi(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Ms(e){return Array.isArray(e)?e:[e]}function Bd(e,t,n){return ct(e,t,{...n,immediate:!0})}const ic=Ud?window:void 0;function Wd(e){var t;const n=Mn(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Gd(...e){const t=(r,s,o,i)=>(r.addEventListener(s,o,i),()=>r.removeEventListener(s,o,i)),n=Ce(()=>{const r=Ms(Mn(e[0])).filter(s=>s!=null);return r.every(s=>typeof s!="string")?r:void 0});return Bd(()=>{var r,s;return[(r=(s=n.value)===null||s===void 0?void 0:s.map(o=>Wd(o)))!==null&&r!==void 0?r:[ic].filter(o=>o!=null),Ms(Mn(n.value?e[1]:e[0])),Ms(Q(n.value?e[2]:e[1])),Mn(n.value?e[3]:e[2])]},([r,s,o,i],l,a)=>{if(!r?.length||!s?.length||!o?.length)return;const c=$d(i)?{...i}:i,u=r.flatMap(f=>s.flatMap(h=>o.map(_=>t(f,h,_,c))));a(()=>{u.forEach(f=>f())})},{flush:"post"})}function Kd(){const e=kn(!1),t=Kt();return t&&Ar(()=>{e.value=!0},t),e}function qd(e){const t=Kd();return Ce(()=>(t.value,!!e()))}const Yd=Symbol("vueuse-ssr-width");function Jd(){const e=Ta()?Vd(Yd,null):null;return typeof e=="number"?e:void 0}function Xd(e,t={}){const{window:n=ic,ssrWidth:r=Jd()}=t,s=qd(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),o=kn(typeof r=="number"),i=kn(),l=kn(!1),a=c=>{l.value=c.matches};return Ju(()=>{if(o.value){o.value=!s.value;const c=Mn(e).split(",");l.value=c.some(u=>{const f=u.includes("not all"),h=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),_=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let k=!!(h||_);return h&&k&&(k=r>=Bi(h[1])),_&&k&&(k=r<=Bi(_[1])),f?!k:k});return}s.value&&(i.value=n.matchMedia(Mn(e)),l.value=i.value.matches)}),Gd(i,"change",a,{passive:!0}),Ce(()=>l.value)}const Rn=typeof document<"u";function lc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function zd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&lc(e.default)}const ce=Object.assign;function Ds(e,t){const n={};for(const r in t){const s=t[r];n[r]=gt(s)?s.map(e):e(s)}return n}const tr=()=>{},gt=Array.isArray;function Wi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ac=/#/g,Qd=/&/g,Zd=/\//g,eh=/=/g,th=/\?/g,cc=/\+/g,nh=/%5B/g,rh=/%5D/g,uc=/%5E/g,sh=/%60/g,fc=/%7B/g,oh=/%7C/g,dc=/%7D/g,ih=/%20/g;function $o(e){return e==null?"":encodeURI(""+e).replace(oh,"|").replace(nh,"[").replace(rh,"]")}function lh(e){return $o(e).replace(fc,"{").replace(dc,"}").replace(uc,"^")}function oo(e){return $o(e).replace(cc,"%2B").replace(ih,"+").replace(ac,"%23").replace(Qd,"%26").replace(sh,"`").replace(fc,"{").replace(dc,"}").replace(uc,"^")}function ah(e){return oo(e).replace(eh,"%3D")}function ch(e){return $o(e).replace(ac,"%23").replace(th,"%3F")}function uh(e){return ch(e).replace(Zd,"%2F")}function pr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const fh=/\/$/,dh=e=>e.replace(fh,"");function Fs(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(r=t.slice(0,a),o=t.slice(a,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=gh(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:pr(i)}}function hh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Gi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ph(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&jn(t.matched[r],n.matched[s])&&hc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function jn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function hc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!mh(e[n],t[n]))return!1;return!0}function mh(e,t){return gt(e)?Ki(e,t):gt(t)?Ki(t,e):e?.valueOf()===t?.valueOf()}function Ki(e,t){return gt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function gh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Yt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let io=(function(e){return e.pop="pop",e.push="push",e})({}),js=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function _h(e){if(!e)if(Rn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),dh(e)}const vh=/^[^#]+#/;function bh(e,t){return e.replace(vh,"#")+t}function yh(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ms=()=>({left:window.scrollX,top:window.scrollY});function Eh(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=yh(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function qi(e,t){return(history.state?history.state.position-t:-1)+e}const lo=new Map;function Ch(e,t){lo.set(e,t)}function Ah(e){const t=lo.get(e);return lo.delete(e),t}function Th(e){return typeof e=="string"||e&&typeof e=="object"}function pc(e){return typeof e=="string"||typeof e=="symbol"}let Le=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const mc=Symbol("");Le.MATCHER_NOT_FOUND+"",Le.NAVIGATION_GUARD_REDIRECT+"",Le.NAVIGATION_ABORTED+"",Le.NAVIGATION_CANCELLED+"",Le.NAVIGATION_DUPLICATED+"";function Vn(e,t){return ce(new Error,{type:e,[mc]:!0},t)}function Mt(e,t){return e instanceof Error&&mc in e&&(t==null||!!(e.type&t))}const kh=["params","query","hash"];function Sh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of kh)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Lh(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&oo(s)):[r&&oo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function wh(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=gt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Ih=Symbol(""),Ji=Symbol(""),gs=Symbol(""),Bo=Symbol(""),ao=Symbol("");function Kn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Qt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const c=h=>{h===!1?a(Vn(Le.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?a(h):Th(h)?a(Vn(Le.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(h=>a(h))})}function Vs(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(lc(a)){const c=(a.__vccOpts||a)[t];c&&o.push(Qt(c,n,r,i,l,s))}else{let c=a();o.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=zd(u)?u.default:u;i.mods[l]=u,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&Qt(h,n,r,i,l,s)()}))}}return o}function Oh(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;ijn(c,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(c=>jn(c,a))||s.push(a))}return[n,r,s]}let Nh=()=>location.protocol+"//"+location.host;function gc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Gi(l,"")}return Gi(n,e)+r+s}function Rh(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const _=gc(e,location),k=n.value,S=t.value;let I=0;if(h){if(n.value=_,t.value=h,i&&i===k){i=null;return}I=S?h.position-S.position:0}else r(_);s.forEach(v=>{v(n.value,k,{delta:I,type:io.pop,direction:I?I>0?js.forward:js.back:js.unknown})})};function a(){i=n.value}function c(h){s.push(h);const _=()=>{const k=s.indexOf(h);k>-1&&s.splice(k,1)};return o.push(_),_}function u(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(ce({},h.state,{scroll:ms()}),"")}}function f(){for(const h of o)h();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Xi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?ms():null}}function Ph(e){const{history:t,location:n}=window,r={value:gc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,c,u){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:Nh()+e+a;try{t[u?"replaceState":"pushState"](c,"",h),s.value=c}catch(_){console.error(_),n[u?"replace":"assign"](h)}}function i(a,c){o(a,ce({},t.state,Xi(s.value.back,a,s.value.forward,!0),c,{position:s.value.position}),!0),r.value=a}function l(a,c){const u=ce({},s.value,t.state,{forward:a,scroll:ms()});o(u.current,u,!0),o(a,ce({},Xi(r.value,a,null),{position:u.position+1},c),!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function xh(e){e=_h(e);const t=Ph(e),n=Rh(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=ce({location:"",base:e,go:r,createHref:bh.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}let An=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Pe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Pe||{});const Mh={type:An.Static,value:""},Dh=/[a-zA-Z0-9_]/;function Fh(e){if(!e)return[[]];if(e==="/")return[[Mh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${c}": ${_}`)}let n=Pe.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,c="",u="";function f(){c&&(n===Pe.Static?o.push({type:An.Static,value:c}):n===Pe.Param||n===Pe.ParamRegExp||n===Pe.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:An.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function h(){c+=a}for(;lt.length?t.length===1&&t[0]===Ge.Static+Ge.Segment?1:-1:0}function _c(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const $h={strict:!1,end:!0,sensitive:!1};function Bh(e,t,n){const r=Uh(Fh(e.path),n),s=ce(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Wh(e,t){const n=[],r=new Map;t=Wi($h,t);function s(f){return r.get(f)}function o(f,h,_){const k=!_,S=el(f);S.aliasOf=_&&_.record;const I=Wi(t,f),v=[S];if("alias"in f){const A=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of A)v.push(el(ce({},S,{components:_?_.record.components:S.components,path:M,aliasOf:_?_.record:S})))}let b,w;for(const A of v){const{path:M}=A;if(h&&M[0]!=="/"){const D=h.record.path,L=D[D.length-1]==="/"?"":"/";A.path=h.record.path+(M&&L+M)}if(b=Bh(A,h,I),_?_.alias.push(b):(w=w||b,w!==b&&w.alias.push(b),k&&f.name&&!tl(b)&&i(f.name)),vc(b)&&a(b),S.children){const D=S.children;for(let L=0;L{i(w)}:tr}function i(f){if(pc(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function a(f){const h=qh(f,n);n.splice(h,0,f),f.record.name&&!tl(f)&&r.set(f.record.name,f)}function c(f,h){let _,k={},S,I;if("name"in f&&f.name){if(_=r.get(f.name),!_)throw Vn(Le.MATCHER_NOT_FOUND,{location:f});I=_.record.name,k=ce(Zi(h.params,_.keys.filter(w=>!w.optional).concat(_.parent?_.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),f.params&&Zi(f.params,_.keys.map(w=>w.name))),S=_.stringify(k)}else if(f.path!=null)S=f.path,_=n.find(w=>w.re.test(S)),_&&(k=_.parse(S),I=_.record.name);else{if(_=h.name?r.get(h.name):n.find(w=>w.re.test(h.path)),!_)throw Vn(Le.MATCHER_NOT_FOUND,{location:f,currentLocation:h});I=_.record.name,k=ce({},h.params,f.params),S=_.stringify(k)}const v=[];let b=_;for(;b;)v.unshift(b.record),b=b.parent;return{name:I,path:S,params:k,matched:v,meta:Kh(v)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:l,getRecordMatcher:s}}function Zi(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function el(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Gh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Gh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function tl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Kh(e){return e.reduce((t,n)=>ce(t,n.meta),{})}function qh(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;_c(e,t[o])<0?r=o:n=o+1}const s=Yh(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Yh(e){let t=e;for(;t=t.parent;)if(vc(t)&&_c(e,t)===0)return t}function vc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function nl(e){const t=nt(gs),n=nt(Bo),r=Ce(()=>{const a=Q(e.to);return t.resolve(a)}),s=Ce(()=>{const{matched:a}=r.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const h=f.findIndex(jn.bind(null,u));if(h>-1)return h;const _=rl(a[c-2]);return c>1&&rl(u)===_&&f[f.length-1].path!==_?f.findIndex(jn.bind(null,a[c-2])):h}),o=Ce(()=>s.value>-1&&Qh(n.params,r.value.params)),i=Ce(()=>s.value>-1&&s.value===n.matched.length-1&&hc(n.params,r.value.params));function l(a={}){if(zh(a)){const c=t[Q(e.replace)?"replace":"push"](Q(e.to)).catch(tr);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:Ce(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Jh(e){return e.length===1?e[0]:e}const Xh=Rt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:nl,setup(e,{slots:t}){const n=$n(nl(e)),{options:r}=nt(gs),s=Ce(()=>({[sl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[sl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Jh(t.default(n));return e.custom?o:Ln("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),co=Xh;function zh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Qh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!gt(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function rl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const sl=(e,t,n)=>e??t??n,Zh=Rt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=nt(ao),s=Ce(()=>e.route||r.value),o=nt(Ji,0),i=Ce(()=>{let c=Q(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=Ce(()=>s.value.matched[i.value]);Fr(Ji,Ce(()=>i.value+1)),Fr(Ih,l),Fr(ao,s);const a=ln();return ct(()=>[a.value,l.value,e.name],([c,u,f],[h,_,k])=>{u&&(u.instances[f]=c,_&&_!==u&&c&&c===h&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),c&&u&&(!_||!jn(u,_)||!h)&&(u.enterCallbacks[f]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=l.value,h=f&&f.components[u];if(!h)return ol(n.default,{Component:h,route:c});const _=f.props[u],k=_?_===!0?c.params:typeof _=="function"?_(c):_:null,I=Ln(h,ce({},k,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return ol(n.default,{Component:I,route:c})||I}}});function ol(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const uo=Zh;function ep(e){const t=Wh(e.routes,e),n=e.parseQuery||Lh,r=e.stringifyQuery||Yi,s=e.history,o=Kn(),i=Kn(),l=Kn(),a=kn(Yt);let c=Yt;Rn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Ds.bind(null,x=>""+x),f=Ds.bind(null,uh),h=Ds.bind(null,pr);function _(x,B){let H,G;return pc(x)?(H=t.getRecordMatcher(x),G=B):G=x,t.addRoute(G,H)}function k(x){const B=t.getRecordMatcher(x);B&&t.removeRoute(B)}function S(){return t.getRoutes().map(x=>x.record)}function I(x){return!!t.getRecordMatcher(x)}function v(x,B){if(B=ce({},B||a.value),typeof x=="string"){const E=Fs(n,x,B.path),N=t.resolve({path:E.path},B),P=s.createHref(E.fullPath);return ce(E,N,{params:h(N.params),hash:pr(E.hash),redirectedFrom:void 0,href:P})}let H;if(x.path!=null)H=ce({},x,{path:Fs(n,x.path,B.path).path});else{const E=ce({},x.params);for(const N in E)E[N]==null&&delete E[N];H=ce({},x,{params:f(E)}),B.params=f(B.params)}const G=t.resolve(H,B),te=x.hash||"";G.params=u(h(G.params));const m=hh(r,ce({},x,{hash:lh(te),path:G.path})),g=s.createHref(m);return ce({fullPath:m,hash:te,query:r===Yi?wh(x.query):x.query||{}},G,{redirectedFrom:void 0,href:g})}function b(x){return typeof x=="string"?Fs(n,x,a.value.path):ce({},x)}function w(x,B){if(c!==x)return Vn(Le.NAVIGATION_CANCELLED,{from:B,to:x})}function A(x){return L(x)}function M(x){return A(ce(b(x),{replace:!0}))}function D(x,B){const H=x.matched[x.matched.length-1];if(H&&H.redirect){const{redirect:G}=H;let te=typeof G=="function"?G(x,B):G;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=b(te):{path:te},te.params={}),ce({query:x.query,hash:x.hash,params:te.path!=null?{}:x.params},te)}}function L(x,B){const H=c=v(x),G=a.value,te=x.state,m=x.force,g=x.replace===!0,E=D(H,G);if(E)return L(ce(b(E),{state:typeof E=="object"?ce({},te,E.state):te,force:m,replace:g}),B||H);const N=H;N.redirectedFrom=B;let P;return!m&&ph(r,G,H)&&(P=Vn(Le.NAVIGATION_DUPLICATED,{to:N,from:G}),je(G,G,!0,!1)),(P?Promise.resolve(P):Y(N,G)).catch(R=>Mt(R)?Mt(R,Le.NAVIGATION_GUARD_REDIRECT)?R:Me(R):ne(R,N,G)).then(R=>{if(R){if(Mt(R,Le.NAVIGATION_GUARD_REDIRECT))return L(ce({replace:g},b(R.to),{state:typeof R.to=="object"?ce({},te,R.to.state):te,force:m}),B||N)}else R=j(N,G,!0,g,te);return z(N,G,R),R})}function K(x,B){const H=w(x,B);return H?Promise.reject(H):Promise.resolve()}function V(x){const B=vt.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(x):x()}function Y(x,B){let H;const[G,te,m]=Oh(x,B);H=Vs(G.reverse(),"beforeRouteLeave",x,B);for(const E of G)E.leaveGuards.forEach(N=>{H.push(Qt(N,x,B))});const g=K.bind(null,x,B);return H.push(g),$e(H).then(()=>{H=[];for(const E of o.list())H.push(Qt(E,x,B));return H.push(g),$e(H)}).then(()=>{H=Vs(te,"beforeRouteUpdate",x,B);for(const E of te)E.updateGuards.forEach(N=>{H.push(Qt(N,x,B))});return H.push(g),$e(H)}).then(()=>{H=[];for(const E of m)if(E.beforeEnter)if(gt(E.beforeEnter))for(const N of E.beforeEnter)H.push(Qt(N,x,B));else H.push(Qt(E.beforeEnter,x,B));return H.push(g),$e(H)}).then(()=>(x.matched.forEach(E=>E.enterCallbacks={}),H=Vs(m,"beforeRouteEnter",x,B,V),H.push(g),$e(H))).then(()=>{H=[];for(const E of i.list())H.push(Qt(E,x,B));return H.push(g),$e(H)}).catch(E=>Mt(E,Le.NAVIGATION_CANCELLED)?E:Promise.reject(E))}function z(x,B,H){l.list().forEach(G=>V(()=>G(x,B,H)))}function j(x,B,H,G,te){const m=w(x,B);if(m)return m;const g=B===Yt,E=Rn?history.state:{};H&&(G||g?s.replace(x.fullPath,ce({scroll:g&&E&&E.scroll},te)):s.push(x.fullPath,te)),a.value=x,je(x,B,H,g),Me()}let ee;function _e(){ee||(ee=s.listen((x,B,H)=>{if(!dt.listening)return;const G=v(x),te=D(G,dt.currentRoute.value);if(te){L(ce(te,{replace:!0,force:!0}),G).catch(tr);return}c=G;const m=a.value;Rn&&Ch(qi(m.fullPath,H.delta),ms()),Y(G,m).catch(g=>Mt(g,Le.NAVIGATION_ABORTED|Le.NAVIGATION_CANCELLED)?g:Mt(g,Le.NAVIGATION_GUARD_REDIRECT)?(L(ce(b(g.to),{force:!0}),G).then(E=>{Mt(E,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===io.pop&&s.go(-1,!1)}).catch(tr),Promise.reject()):(H.delta&&s.go(-H.delta,!1),ne(g,G,m))).then(g=>{g=g||j(G,m,!1),g&&(H.delta&&!Mt(g,Le.NAVIGATION_CANCELLED)?s.go(-H.delta,!1):H.type===io.pop&&Mt(g,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),z(G,m,g)}).catch(tr)}))}let De=Kn(),be=Kn(),se;function ne(x,B,H){Me(x);const G=be.list();return G.length?G.forEach(te=>te(x,B,H)):console.error(x),Promise.reject(x)}function Qe(){return se&&a.value!==Yt?Promise.resolve():new Promise((x,B)=>{De.add([x,B])})}function Me(x){return se||(se=!x,_e(),De.list().forEach(([B,H])=>x?H(x):B()),De.reset()),x}function je(x,B,H,G){const{scrollBehavior:te}=e;if(!Rn||!te)return Promise.resolve();const m=!H&&Ah(qi(x.fullPath,0))||(G||!H)&&history.state&&history.state.scroll||null;return Po().then(()=>te(x,B,m)).then(g=>g&&Eh(g)).catch(g=>ne(g,x,B))}const Re=x=>s.go(x);let _t;const vt=new Set,dt={currentRoute:a,listening:!0,addRoute:_,removeRoute:k,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:S,resolve:v,options:e,push:A,replace:M,go:Re,back:()=>Re(-1),forward:()=>Re(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:be.add,isReady:Qe,install(x){x.component("RouterLink",co),x.component("RouterView",uo),x.config.globalProperties.$router=dt,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>Q(a)}),Rn&&!_t&&a.value===Yt&&(_t=!0,A(s.location).catch(G=>{}));const B={};for(const G in Yt)Object.defineProperty(B,G,{get:()=>a.value[G],enumerable:!0});x.provide(gs,dt),x.provide(Bo,ga(B)),x.provide(ao,a);const H=x.unmount;vt.add(x),x.unmount=function(){vt.delete(x),vt.size<1&&(c=Yt,ee&&ee(),ee=null,a.value=Yt,_t=!1,se=!1),H()}}};function $e(x){return x.reduce((B,H)=>B.then(()=>V(H)),Promise.resolve())}return dt}function h_(){return nt(gs)}function tp(e){return nt(Bo)}const zr=typeof window<"u",dn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),np=(e,t,n)=>rp({l:e,k:t,s:n}),rp=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),we=e=>typeof e=="number"&&isFinite(e),bc=e=>Go(e)==="[object Date]",Un=e=>Go(e)==="[object RegExp]",Wo=e=>de(e)&&Object.keys(e).length===0,Oe=Object.assign,sp=Object.create,me=(e=null)=>sp(e);let il;const rn=()=>il||(il=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me()),op=Object.prototype.hasOwnProperty;function at(e,t){return op.call(e,t)}const Ee=Array.isArray,Te=e=>typeof e=="function",W=e=>typeof e=="string",ie=e=>typeof e=="boolean",re=e=>e!==null&&typeof e=="object",ip=e=>re(e)&&Te(e.then)&&Te(e.catch),yc=Object.prototype.toString,Go=e=>yc.call(e),de=e=>Go(e)==="[object Object]",lp=e=>e==null?"":Ee(e)||de(e)&&e.toString===yc?JSON.stringify(e,null,2):String(e);function Ko(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function ap(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}function ll(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function cp(e){return e.replace(/&(?![a-z0-9#]{2,6};)/gi,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}const up=/^javascript:/i,fp=/^(?:href|src|action|formaction)$/i,dp=/&#(?:x([0-9a-f]+)|(\d+));?/gi,hp=/&(?:Tab|NewLine);/g,pp=/:?/gi,mp=/[\u0000-\u0020\u007f-\u009f]/g,gp=/(?:^|[\s"'<>/])on\w+\s*=\s*["']?[^"'>]+["']?/i,_p=/(^|[\s"'<>/])on(\w+\s*=)/gi,vp=/(^|[\s"'<>/])((?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi;function bp(e,t,n){const r=t||n;if(!r)return e;const s=Number.parseInt(r,t?16:10);return s<=127?String.fromCharCode(s):e}function qo(e){const t=e.replace(dp,bp).replace(hp,"").replace(pp,":").replace(mp,"");return up.test(t)}function yp(e){const t=/url\s*\(/gi;let n="",r=0,s;for(;(s=t.exec(e))!==null;){const o=s.index,i=t.lastIndex-1;let l=i+1,a=1,c=null;for(;l`${n}="${al(n,r)}"`),e=e.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(t,n,r)=>`${n}='${al(n,r)}'`),gp.test(e)&&(e=e.replace(_p,"$1on$2")),e=e.replace(vp,(t,n,r,s)=>qo(s)?`${n}${r}about:blank`:t),e}const cl=e=>!re(e)||Ee(e);function Vr(e,t){if(cl(e)||cl(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{if(o==="__proto__")return;const i=r[o];if(Ee(i)){const l=[];l.length=i.length,s[o]=l,n.push({src:i,des:l})}else re(i)?((!re(s[o])||Ee(s[o]))&&(s[o]=me()),n.push({src:i,des:s[o]})):s[o]=i})}}function Cp(e,t,n){return{line:e,column:t,offset:n}}function fo(e,t,n){return{start:e,end:t}}const ue={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},Ap=17;function _s(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=e,l=new SyntaxError(String(i));return l.code=e,t&&(l.location=t),l.domain=r,l}function Tp(e){throw e}const Et=" ",kp="\r",Ve=` +`,Sp="\u2028",Lp="\u2029";function wp(e){const t=e;let n=0,r=1,s=1,o=0;const i=L=>t[L]===kp&&t[L+1]===Ve,l=L=>t[L]===Ve,a=L=>t[L]===Lp,c=L=>t[L]===Sp,u=L=>i(L)||l(L)||a(L)||c(L),f=()=>n,h=()=>r,_=()=>s,k=()=>o,S=L=>i(L)||a(L)||c(L)?Ve:t[L],I=()=>S(n),v=()=>S(n+o);function b(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function w(){return i(n+o)&&o++,o++,t[n+o]}function A(){n=0,r=1,s=1,o=0}function M(L=0){o=L}function D(){const L=n+o;for(;L!==n;)b();o=0}return{index:f,line:h,column:_,peekOffset:k,charAt:S,currentChar:I,currentPeek:v,next:b,peek:w,reset:A,resetPeek:M,skipToPeek:D}}const Dt=void 0,Ip=".",ul="'",Op="tokenizer";function Np(e,t={}){const n=t.location!==!1,r=wp(e),s=()=>r.index(),o=()=>Cp(r.line(),r.column(),r.index()),i=o(),l=s(),a={currentType:13,offset:l,startLoc:i,endLoc:i,lastType:13,lastOffset:l,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>a,{onError:u}=t;function f(d,p,y,...C){const $=c();if(p.column+=y,p.offset+=y,u){const F=n?fo($.startLoc,p):null,U=_s(d,F,{domain:Op,args:C});u(U)}}function h(d,p,y){d.endLoc=o(),d.currentType=p;const C={type:p};return n&&(C.loc=fo(d.startLoc,d.endLoc)),y!=null&&(C.value=y),C}const _=d=>h(d,13);function k(d,p){return d.currentChar()===p?(d.next(),p):(f(ue.EXPECTED_TOKEN,o(),0,p),"")}function S(d){let p="";for(;d.currentPeek()===Et||d.currentPeek()===Ve;)p+=d.currentPeek(),d.peek();return p}function I(d){const p=S(d);return d.skipToPeek(),p}function v(d){if(d===Dt)return!1;const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function b(d){if(d===Dt)return!1;const p=d.charCodeAt(0);return p>=48&&p<=57}function w(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=v(d.currentPeek());return d.resetPeek(),C}function A(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=d.currentPeek()==="-"?d.peek():d.currentPeek(),$=b(C);return d.resetPeek(),$}function M(d,p){const{currentType:y}=p;if(y!==2)return!1;S(d);const C=d.currentPeek()===ul;return d.resetPeek(),C}function D(d,p){const{currentType:y}=p;if(y!==7)return!1;S(d);const C=d.currentPeek()===".";return d.resetPeek(),C}function L(d,p){const{currentType:y}=p;if(y!==8)return!1;S(d);const C=v(d.currentPeek());return d.resetPeek(),C}function K(d,p){const{currentType:y}=p;if(!(y===7||y===11))return!1;S(d);const C=d.currentPeek()===":";return d.resetPeek(),C}function V(d,p){const{currentType:y}=p;if(y!==9)return!1;const C=()=>{const F=d.currentPeek();return F==="{"?v(d.peek()):F==="@"||F==="|"||F===":"||F==="."||F===Et||!F?!1:F===Ve?(d.peek(),C()):z(d,!1)},$=C();return d.resetPeek(),$}function Y(d){S(d);const p=d.currentPeek()==="|";return d.resetPeek(),p}function z(d,p=!0){const y=($=!1,F="")=>{const U=d.currentPeek();return U==="{"||U==="@"||!U?$:U==="|"?!(F===Et||F===Ve):U===Et?(d.peek(),y(!0,Et)):U===Ve?(d.peek(),y(!0,Ve)):!0},C=y();return p&&d.resetPeek(),C}function j(d,p){const y=d.currentChar();return y===Dt?Dt:p(y)?(d.next(),y):null}function ee(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function _e(d){return j(d,ee)}function De(d){const p=d.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function be(d){return j(d,De)}function se(d){const p=d.charCodeAt(0);return p>=48&&p<=57}function ne(d){return j(d,se)}function Qe(d){const p=d.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function Me(d){return j(d,Qe)}function je(d){let p="",y="";for(;p=ne(d);)y+=p;return y}function Re(d){let p="";for(;;){const y=d.currentChar();if(y==="\\"){const C=d.peek();C==="{"||C==="}"||C==="@"||C==="|"||C==="\\"?(p+=y+C,d.next(),d.next()):(d.resetPeek(),p+=y,d.next())}else{if(y==="{"||y==="}"||y==="@"||y==="|"||!y)break;if(y===Et||y===Ve)if(z(d))p+=y,d.next();else{if(Y(d))break;p+=y,d.next()}else p+=y,d.next()}}return p}function _t(d){I(d);let p="",y="";for(;p=be(d);)y+=p;const C=d.currentChar();if(C&&C!=="}"&&C!==Dt&&C!==Et&&C!==Ve&&C!==" "){const $=G(d);return f(ue.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,y+$),y+$}return d.currentChar()===Dt&&f(ue.UNTERMINATED_CLOSING_BRACE,o(),0),y}function vt(d){I(d);let p="";return d.currentChar()==="-"?(d.next(),p+=`-${je(d)}`):p+=je(d),d.currentChar()===Dt&&f(ue.UNTERMINATED_CLOSING_BRACE,o(),0),p}function dt(d){return d!==ul&&d!==Ve}function $e(d){I(d),k(d,"'");let p="",y="";for(;p=j(d,dt);)p==="\\"?y+=x(d):y+=p;const C=d.currentChar();return C===Ve||C===Dt?(f(ue.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),C===Ve&&(d.next(),k(d,"'")),y):(k(d,"'"),y)}function x(d){const p=d.currentChar();switch(p){case"\\":case"'":return d.next(),`\\${p}`;case"u":return B(d,p,4);case"U":return B(d,p,6);default:return f(ue.UNKNOWN_ESCAPE_SEQUENCE,o(),0,p),""}}function B(d,p,y){k(d,p);let C="";for(let $=0;${const C=d.currentChar();return C==="{"||C==="@"||C==="|"||C==="("||C===")"||!C||C===Et?y:(y+=C,d.next(),p(y))};return p("")}function g(d){I(d);const p=k(d,"|");return I(d),p}function E(d,p){let y=null;switch(d.currentChar()){case"{":return p.braceNest>=1&&f(ue.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),d.next(),y=h(p,2,"{"),I(d),p.braceNest++,y;case"}":return p.braceNest>0&&p.currentType===2&&f(ue.EMPTY_PLACEHOLDER,o(),0),d.next(),y=h(p,3,"}"),p.braceNest--,p.braceNest>0&&I(d),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),y;case"@":return p.braceNest>0&&f(ue.UNTERMINATED_CLOSING_BRACE,o(),0),y=N(d,p)||_(p),p.braceNest=0,y;default:{let $=!0,F=!0,U=!0;if(Y(d))return p.braceNest>0&&f(ue.UNTERMINATED_CLOSING_BRACE,o(),0),y=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,y;if(p.braceNest>0&&(p.currentType===4||p.currentType===5||p.currentType===6))return f(ue.UNTERMINATED_CLOSING_BRACE,o(),0),p.braceNest=0,P(d,p);if($=w(d,p))return y=h(p,4,_t(d)),I(d),y;if(F=A(d,p))return y=h(p,5,vt(d)),I(d),y;if(U=M(d,p))return y=h(p,6,$e(d)),I(d),y;if(!$&&!F&&!U)return y=h(p,12,G(d)),f(ue.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,y.value),I(d),y;break}}return y}function N(d,p){const{currentType:y}=p;let C=null;const $=d.currentChar();switch((y===7||y===8||y===11||y===9)&&($===Ve||$===Et)&&f(ue.INVALID_LINKED_FORMAT,o(),0),$){case"@":return d.next(),C=h(p,7,"@"),p.inLinked=!0,C;case".":return I(d),d.next(),h(p,8,".");case":":return I(d),d.next(),h(p,9,":");default:return Y(d)?(C=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,C):D(d,p)||K(d,p)?(I(d),N(d,p)):L(d,p)?(I(d),h(p,11,te(d))):V(d,p)?(I(d),$==="{"?E(d,p)||C:h(p,10,m(d))):(y===7&&f(ue.INVALID_LINKED_FORMAT,o(),0),p.braceNest=0,p.inLinked=!1,P(d,p))}}function P(d,p){let y={type:13};if(p.braceNest>0)return E(d,p)||_(p);if(p.inLinked)return N(d,p)||_(p);switch(d.currentChar()){case"{":return E(d,p)||_(p);case"}":return f(ue.UNBALANCED_CLOSING_BRACE,o(),0),d.next(),h(p,3,"}");case"@":return N(d,p)||_(p);default:{if(Y(d))return y=h(p,1,g(d)),p.braceNest=0,p.inLinked=!1,y;if(z(d))return h(p,0,Re(d));break}}return y}function R(){const{currentType:d,offset:p,startLoc:y,endLoc:C}=a;return a.lastType=d,a.lastOffset=p,a.lastStartLoc=y,a.lastEndLoc=C,a.offset=s(),a.startLoc=o(),r.currentChar()===Dt?h(a,13):P(r,a)}return{nextToken:R,currentOffset:s,currentPosition:o,context:c}}const Rp="parser",Pp=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,xp=/\\([\\@{}|])/g;function Mp(e,t){return t}function Dp(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function Fp(e={}){const t=e.location!==!1,{onError:n}=e;function r(v,b,w,A,...M){const D=v.currentPosition();if(D.offset+=A,D.column+=A,n){const L=t?fo(w,D):null,K=_s(b,L,{domain:Rp,args:M});n(K)}}function s(v,b,w){const A={type:v};return t&&(A.start=b,A.end=b,A.loc={start:w,end:w}),A}function o(v,b,w,A){t&&(v.end=b,v.loc&&(v.loc.end=w))}function i(v,b){const w=v.context(),A=s(3,w.offset,w.startLoc);return A.value=b.replace(xp,Mp),o(A,v.currentOffset(),v.currentPosition()),A}function l(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(5,A,M);return D.index=parseInt(b,10),v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function a(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(4,A,M);return D.key=b,v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function c(v,b){const w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(9,A,M);return D.value=b.replace(Pp,Dp),v.nextToken(),o(D,v.currentOffset(),v.currentPosition()),D}function u(v){const b=v.nextToken(),w=v.context(),{lastOffset:A,lastStartLoc:M}=w,D=s(8,A,M);return b.type!==11?(r(v,ue.UNEXPECTED_EMPTY_LINKED_MODIFIER,w.lastStartLoc,0),D.value="",o(D,A,M),{nextConsumeToken:b,node:D}):(b.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Ct(b)),D.value=b.value||"",o(D,v.currentOffset(),v.currentPosition()),{node:D})}function f(v,b){const w=v.context(),A=s(7,w.offset,w.startLoc);return A.value=b,o(A,v.currentOffset(),v.currentPosition()),A}function h(v){const b=v.context(),w=s(6,b.offset,b.startLoc);let A=v.nextToken();if(A.type===8){const M=u(v);w.modifier=M.node,A=M.nextConsumeToken||v.nextToken()}switch(A.type!==9&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(A)),A=v.nextToken(),A.type===2&&(A=v.nextToken()),A.type){case 10:A.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(A)),w.key=f(v,A.value||"");break;case 4:A.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(A)),w.key=a(v,A.value||"");break;case 5:A.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(A)),w.key=l(v,A.value||"");break;case 6:A.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(A)),w.key=c(v,A.value||"");break;default:{r(v,ue.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const M=v.context(),D=s(7,M.offset,M.startLoc);return D.value="",o(D,M.offset,M.startLoc),w.key=D,o(w,M.offset,M.startLoc),{nextConsumeToken:A,node:w}}}return o(w,v.currentOffset(),v.currentPosition()),{node:w}}function _(v){const b=v.context(),w=b.currentType===1?v.currentOffset():b.offset,A=b.currentType===1?b.endLoc:b.startLoc,M=s(2,w,A);M.items=[];let D=null;do{const V=D||v.nextToken();switch(D=null,V.type){case 0:V.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(V)),M.items.push(i(v,V.value||""));break;case 5:V.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(V)),M.items.push(l(v,V.value||""));break;case 4:V.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(V)),M.items.push(a(v,V.value||""));break;case 6:V.value==null&&r(v,ue.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Ct(V)),M.items.push(c(v,V.value||""));break;case 7:{const Y=h(v);M.items.push(Y.node),D=Y.nextConsumeToken||null;break}}}while(b.currentType!==13&&b.currentType!==1);const L=b.currentType===1?b.lastOffset:v.currentOffset(),K=b.currentType===1?b.lastEndLoc:v.currentPosition();return o(M,L,K),M}function k(v,b,w,A){const M=v.context();let D=A.items.length===0;const L=s(1,b,w);L.cases=[],L.cases.push(A);do{const K=_(v);D||(D=K.items.length===0),L.cases.push(K)}while(M.currentType!==13);return D&&r(v,ue.MUST_HAVE_MESSAGES_IN_PLURAL,w,0),o(L,v.currentOffset(),v.currentPosition()),L}function S(v){const b=v.context(),{offset:w,startLoc:A}=b,M=_(v);return b.currentType===13?M:k(v,w,A,M)}function I(v){const b=Np(v,Oe({},e)),w=b.context(),A=s(0,w.offset,w.startLoc);return t&&A.loc&&(A.loc.source=v),A.body=S(b),e.onCacheKey&&(A.cacheKey=e.onCacheKey(v)),w.currentType!==13&&r(b,ue.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,v[w.offset]||""),o(A,b.currentOffset(),b.currentPosition()),A}return{parse:I}}function Ct(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function jp(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function fl(e,t){for(let n=0;ndl(n)),e}function dl(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function a(S,I){i.code+=S}function c(S,I=!0){const v=I?r:"";a(s?v+" ".repeat(S):v)}function u(S=!0){const I=++i.indentLevel;S&&c(I)}function f(S=!0){const I=--i.indentLevel;S&&c(I)}function h(){c(i.indentLevel)}return{context:l,push:a,indent:u,deindent:f,newline:h,helper:S=>`_${S}`,needIndent:()=>i.needIndent}}function $p(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Hn(e,t.key),t.modifier?(e.push(", "),Hn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Bp(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=W(t.mode)?t.mode:"normal",r=W(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],l=Hp(e,{filename:r,breakLineCode:s,needIndent:o});l.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(o),i.length>0&&(l.push(`const { ${Ko(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),Hn(l,e),l.deindent(o),l.push("}"),delete e.helpers;const{code:a,map:c}=l.context();return{ast:e,code:a,map:c?c.toJSON():void 0}};function qp(e,t={}){const n=Oe({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,l=Fp(n).parse(e);return r?(o&&Up(l),s&&Pn(l),{ast:l,code:""}):(Vp(l,n),Kp(l,n))}function Yp(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(rn().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(rn().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function It(e){return re(e)&&Jo(e)===0&&(at(e,"b")||at(e,"body"))}const Ec=["b","body"];function Jp(e){return hn(e,Ec)}const Cc=["c","cases"];function Xp(e){return hn(e,Cc,[])}const Ac=["s","static"];function zp(e){return hn(e,Ac)}const Tc=["i","items"];function Qp(e){return hn(e,Tc,[])}const kc=["t","type"];function Jo(e){return hn(e,kc)}const Sc=["v","value"];function Nr(e,t){const n=hn(e,Sc);if(n!=null)return n;throw mr(t)}const Lc=["m","modifier"];function Zp(e){return hn(e,Lc)}const wc=["k","key"];function em(e){const t=hn(e,wc);if(t)return t;throw mr(6)}function hn(e,t,n){for(let r=0;rtm(n,e)}function tm(e,t){const n=Jp(t);if(n==null)throw mr(0);if(Jo(n)===1){const o=Xp(n);return e.plural(o.reduce((i,l)=>[...i,hl(e,l)],[]))}else return hl(e,n)}function hl(e,t){const n=zp(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=Qp(t).reduce((s,o)=>[...s,ho(e,o)],[]);return e.normalize(r)}}function ho(e,t){const n=Jo(t);switch(n){case 3:return Nr(t,n);case 9:return Nr(t,n);case 4:{const r=t;if(at(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(at(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw mr(n)}case 5:{const r=t;if(at(r,"i")&&we(r.i))return e.interpolate(e.list(r.i));if(at(r,"index")&&we(r.index))return e.interpolate(e.list(r.index));throw mr(n)}case 6:{const r=t,s=Zp(r),o=em(r);return e.linked(ho(e,o),s?ho(e,s):void 0,e.type)}case 7:return Nr(t,n);case 8:return Nr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const nm=e=>e;let Rr=me();function rm(e,t={}){let n=!1;const r=t.onError||Tp;return t.onError=s=>{n=!0,r(s)},{...qp(e,t),detectError:n}}function sm(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&W(e)){ie(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||nm)(e),s=Rr[r];if(s)return s;const{ast:o,detectError:i}=rm(e,{...t,location:!1,jit:!0}),l=Us(o);return i?l:Rr[r]=l}else{const n=e.cacheKey;if(n){const r=Rr[n];return r||(Rr[n]=Us(e))}else return Us(e)}}let gr=null;function om(e){gr=e}function im(e,t,n){gr&&gr.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const lm=am("function:translate");function am(e){return t=>gr&&gr.emit(e,t)}const Ut={INVALID_ARGUMENT:Ap,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},cm=24;function Ht(e){return _s(e,null,void 0)}function Xo(e,t){return t.locale!=null?pl(t.locale):pl(e.locale)}let Hs;function pl(e){if(W(e))return e;if(Te(e)){if(e.resolvedOnce&&Hs!=null)return Hs;if(e.constructor.name==="Function"){const t=e();if(ip(t))throw Ht(Ut.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Hs=t}else throw Ht(Ut.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ht(Ut.NOT_SUPPORT_LOCALE_TYPE)}function um(e,t,n){return[...new Set([n,...Ee(t)?t:re(t)?Object.keys(t).filter(r=>r!=="default"):W(t)?[t]:[n]])]}function po(e,t,n){const r=W(n)?n:_r,s=e;let o;re(t)?(s.__localeChainObjectCache||(s.__localeChainObjectCache=new WeakMap),o=s.__localeChainObjectCache.get(t),o||(o=new Map,s.__localeChainObjectCache.set(t,o))):(s.__localeChainCache||(s.__localeChainCache=new Map),o=s.__localeChainCache.get(t),o||(o=new Map,s.__localeChainCache.set(t,o)));const i=o.get(r);if(i)return i;const l=[];let a=[n];for(;Ee(a);)a=ml(l,a,t);const c=Ee(t)||!de(t)?t:t.default?t.default:null;return a=W(c)?[c]:c,Ee(a)&&ml(l,a,!1),o.set(r,l),l}function ml(e,t,n){let r=!0;for(let s=0;s{i===void 0?i=l:i+=l},h[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,r=4,h[0]();else{if(s=0,i===void 0||(i=_m(i),i===!1))return!1;h[1]()}};function _(){const k=e[n+1];if(r===5&&k==="'"||r===6&&k==='"')return n++,l="\\"+k,h[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&_())){if(a=gm(o),f=pn[r],c=f[a]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(l=o,u()===!1))))return;if(r===7)return t}}const gl=new Map;function bm(e,t){return re(e)?e[t]:null}function ym(e,t){if(!re(e))return null;let n=gl.get(t);if(n||(n=vm(t),n&&gl.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;o`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Cm(){return{upper:(e,t)=>t==="text"&&W(e)?e.toUpperCase():t==="vnode"&&re(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&W(e)?e.toLowerCase():t==="vnode"&&re(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&W(e)?_l(e):t==="vnode"&&re(e)&&"__v_isVNode"in e?_l(e.children):e}}let Oc;function Am(e){Oc=e}let Nc;function Tm(e){Nc=e}let Rc;function km(e){Rc=e}let Pc=null;const Sm=e=>{Pc=e},Lm=()=>Pc;let xc=null;const vl=e=>{xc=e},bl=()=>xc;let yl=0;function wm(e={}){const t=Te(e.onWarn)?e.onWarn:ap,n=W(e.version)?e.version:Em,r=W(e.locale)||Te(e.locale)?e.locale:_r,s=Te(r)?_r:r,o=Ee(e.fallbackLocale)||de(e.fallbackLocale)||W(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=de(e.messages)?e.messages:$s(s),l=de(e.datetimeFormats)?e.datetimeFormats:$s(s),a=de(e.numberFormats)?e.numberFormats:$s(s),c=Oe(me(),e.modifiers,Cm()),u=e.pluralRules||me(),f=Te(e.missing)?e.missing:null,h=ie(e.missingWarn)||Un(e.missingWarn)?e.missingWarn:!0,_=ie(e.fallbackWarn)||Un(e.fallbackWarn)?e.fallbackWarn:!0,k=!!e.fallbackFormat,S=!!e.unresolving,I=Te(e.postTranslation)?e.postTranslation:null,v=de(e.processor)?e.processor:null,b=ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter,A=Te(e.messageCompiler)?e.messageCompiler:Oc,M=Te(e.messageResolver)?e.messageResolver:Nc||bm,D=Te(e.localeFallbacker)?e.localeFallbacker:Rc||um,L=re(e.fallbackContext)?e.fallbackContext:void 0,K=e,V=re(K.__datetimeFormatters)?K.__datetimeFormatters:new Map,Y=re(K.__numberFormatters)?K.__numberFormatters:new Map,z=re(K.__meta)?K.__meta:{};yl++;const j={version:n,cid:yl,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:_,fallbackFormat:k,unresolving:S,postTranslation:I,processor:v,warnHtmlMessage:b,escapeParameter:w,messageCompiler:A,messageResolver:M,localeFallbacker:D,fallbackContext:L,onWarn:t,__meta:z};return j.datetimeFormats=l,j.numberFormats=a,j.__datetimeFormatters=V,j.__numberFormatters=Y,__INTLIFY_PROD_DEVTOOLS__&&im(j,n,z),j}const $s=e=>({[e]:me()});function Mc(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const l=o(e,n,t,s);return W(l)?l:t}else return t}function El(e,t){const n=e;re(t)?n.__localeChainObjectCache?.delete(t):n.__localeChainCache?.delete(t)}function Pr(e,t,n){El(e,n),e.fallbackContext&&El(e.fallbackContext,n),e.localeFallbacker(e,n,t)}function Im(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Om(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r{r.includes(a)?l[a]=s[a]:t[a]=s[a]}),W(o)?t.locale=o:de(o)&&(l=o),de(i)&&(l=i),l}function Cl(e,...t){const{datetimeFormats:n,unresolving:r,onWarn:s}=e,{__datetimeFormatters:o}=e;if(!W(t[0])&&!bc(t[0])&&!we(t[0]))return Qr;const[i,l,a,c]=mo(...t),u=ie(a.missingWarn)?a.missingWarn:e.missingWarn,f=ie(a.fallbackWarn)?a.fallbackWarn:e.fallbackWarn,h=!!a.part,_=Xo(e,a);if(!W(i)||i===""){const b=new Intl.DateTimeFormat(_.replace(/!/g,""),c);return h?b.formatToParts(l):b.format(l)}const k=Dc(e,i,_,n,u,f,"datetime format");if(!W(k))return r?vs:i;const S=n[k][i],I=Fc(k,i,c);let v=o.get(I);return v||(v=new Intl.DateTimeFormat(k,Oe({},S,c)),o.set(I,v)),h?v.formatToParts(l):v.format(l)}const Uc=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function mo(...e){const[t]=e,n=me(),r=me();let s;if(W(t)){const i=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!i)throw Ht(Ut.INVALID_ISO_DATE_ARGUMENT);const l=i[3]?i[3].trim().startsWith("T")?`${i[1].trim()}${i[3].trim()}`:`${i[1].trim()}T${i[3].trim()}`:i[1].trim();s=new Date(l);try{s.toISOString()}catch{throw Ht(Ut.INVALID_ISO_DATE_ARGUMENT)}}else if(bc(t)){if(isNaN(t.getTime()))throw Ht(Ut.INVALID_DATE_ARGUMENT);s=t}else if(we(t))s=t;else throw Ht(Ut.INVALID_ARGUMENT);const o=Vc(e,n,r,Uc);return[n.key||"",s,n,o]}function Al(e,t,n){jc(e.__datetimeFormatters,t,n)}function Tl(e,...t){const{numberFormats:n,unresolving:r,onWarn:s}=e,{__numberFormatters:o}=e;if(!we(t[0]))return Qr;const[i,l,a,c]=go(...t),u=ie(a.missingWarn)?a.missingWarn:e.missingWarn,f=ie(a.fallbackWarn)?a.fallbackWarn:e.fallbackWarn,h=!!a.part,_=Xo(e,a);if(!W(i)||i===""){const b=new Intl.NumberFormat(_.replace(/!/g,""),c);return h?b.formatToParts(l):b.format(l)}const k=Dc(e,i,_,n,u,f,"number format");if(!W(k))return r?vs:i;const S=n[k][i],I=Fc(k,i,c);let v=o.get(I);return v||(v=new Intl.NumberFormat(k,Oe({},S,c)),o.set(I,v)),h?v.formatToParts(l):v.format(l)}const Hc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function go(...e){const[t]=e,n=me(),r=me();if(!we(t))throw Ht(Ut.INVALID_ARGUMENT);const s=t,o=Vc(e,n,r,Hc);return[n.key||"",s,n,o]}function kl(e,t,n){jc(e.__numberFormatters,t,n)}const Nm=e=>e,Rm=e=>"",Pm="text",xm=e=>e.length===0?"":Ko(e),Mm=lp;function Bs(e,t){return e=Math.abs(e),t===2?e===1?0:1:Math.min(e,2)}function Dm(e){const t=we(e.pluralIndex)?e.pluralIndex:-1;return we(e.named?.count)?e.named.count:we(e.named?.n)?e.named.n:t}function Fm(e={}){const t=e.locale,n=Dm(e),r=W(t)&&Te(e.pluralRules?.[t])?e.pluralRules[t]:Bs,s=r===Bs?void 0:Bs,o=v=>v[r(n,v.length,s)],i=e.list||[],l=v=>i[v],a=e.named||me();we(e.pluralIndex)&&(a.count||=e.pluralIndex,a.n||=e.pluralIndex);const c=v=>a[v];function u(v,b){const w=Te(e.messages)?e.messages(v,!!b):re(e.messages)?e.messages[v]:!1;return w||(e.parent?e.parent.message(v):Rm)}const f=v=>e.modifiers?e.modifiers[v]:Nm,h=Te(e.processor?.normalize)?e.processor.normalize:xm,_=Te(e.processor?.interpolate)?e.processor.interpolate:Mm,k=W(e.processor?.type)?e.processor.type:Pm,I={list:l,named:c,plural:o,linked:(v,...b)=>{const[w,A]=b;let M="text",D="";b.length===1?re(w)?(D=w.modifier||D,M=w.type||M):W(w)&&(D=w||D):b.length===2&&(W(w)&&(D=w||D),W(A)&&(M=A||M));const L=u(v,!0)(I),K=L===""||L===void 0?v:L,V=M==="vnode"&&Ee(K)&&D?K[0]:K;return D?f(D)(V,M):V},message:u,type:k,interpolate:_,normalize:h,values:Oe(me(),i,a)};return I}const Sl=()=>"",lt=e=>Te(e);function Ll(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:l}=e,[a,c]=_o(...t),u=ie(c.missingWarn)?c.missingWarn:e.missingWarn,f=ie(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ie(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,k=W(c.default)||ie(c.default)?ie(c.default)?o?a:()=>a:c.default:n?o?a:()=>a:null,S=n||k!=null&&(W(k)||Te(k)),I=Xo(e,c);h&&jm(c);let[v,b,w]=_?[a,I,l[I]||me()]:$c(e,a,I,i,f,u),A=v,M=a;if(!_&&!(W(A)||It(A)||lt(A))&&S&&(A=k,M=A),!_&&(!(W(A)||It(A)||lt(A))||!W(b)))return s?vs:a;let D=!1;const L=()=>{D=!0},K=lt(A)?A:Bc(e,a,b,A,M,L);if(D)return A;const V=Hm(e,b,w,c),Y=Fm(V),z=Vm(e,K,Y);let j=r?r(z,a):z;if(h&&W(j)&&(j=Ep(j)),__INTLIFY_PROD_DEVTOOLS__){const ee={timestamp:Date.now(),key:W(a)?a:lt(A)?A.key:"",locale:b||(lt(A)?A.locale:""),format:W(A)?A:lt(A)?A.source:"",message:j};ee.meta=Oe({},e.__meta,Lm()||{}),lm(ee)}return j}function jm(e){Ee(e.list)?e.list=e.list.map(t=>W(t)?ll(t):t):re(e.named)&&Object.keys(e.named).forEach(t=>{W(e.named[t])&&(e.named[t]=ll(e.named[t]))})}function $c(e,t,n,r,s,o){const{messages:i,onWarn:l,messageResolver:a,localeFallbacker:c}=e,u=c(e,r,n);let f=me(),h,_=null;const k="translate";for(let S=0;Sr);return c.locale=n,c.key=t,c}const a=i(r,Um(e,n,s,r,l,o));return a.locale=n,a.key=t,a.source=r,a}function Vm(e,t,n){return t(n)}function _o(...e){const[t,n,r]=e,s=me();if(!W(t)&&!we(t)&&!lt(t)&&!It(t))throw Ht(Ut.INVALID_ARGUMENT);const o=we(t)?String(t):(lt(t),t);return we(n)?s.plural=n:W(n)?s.default=n:de(n)&&!Wo(n)?s.named=n:Ee(n)&&(s.list=n),we(r)?s.plural=r:W(r)?s.default=r:de(r)&&Oe(s,r),[o,s]}function Um(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>np(t,n,i)}}function Hm(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:l,fallbackWarn:a,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:o,messages:(_,k)=>{let S=i(n,_);if(S==null&&(u||k)){const[I,,v]=$c(u||e,_,t,l,a,c);S=I??i(v,_)}if(W(S)||It(S)){let I=!1;const b=Bc(e,_,t,S,_,()=>{I=!0});return I?Sl:b}else return lt(S)?S:Sl}};return e.processor&&(h.processor=e.processor),r.list&&(h.list=r.list),r.named&&(h.named=r.named),we(r.plural)&&(h.pluralIndex=r.plural),h}Yp();const $m="11.4.12";function Bm(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(rn().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(rn().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(rn().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(rn().__INTLIFY_PROD_DEVTOOLS__=!1)}const Ye={UNEXPECTED_RETURN_TYPE:cm,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function ze(e,...t){return _s(e,null,void 0)}const vo=dn("__translateVNode"),bo=dn("__datetimeParts"),yo=dn("__numberParts"),Wc=dn("__setPluralRules"),Gc=dn("__injectWithOption"),xn=dn("__dispose");let Kc=null;{const e=rn().__VUE_INSTANCE_SETTERS__;Ee(e)&&e.push(t=>{Kc=t})}function vr(e){if(!re(e)||It(e))return e;for(const t in e)if(at(e,t))if(!t.includes("."))re(e[t])&&vr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in l&&"resource"in l){const{locale:a,resource:c}=l;a?(i[a]=i[a]||me(),Vr(c,i[a])):Vr(c,i)}else W(l)&&Vr(JSON.parse(l),i)}),s==null&&o)for(const l in i)at(i,l)&&vr(i[l]);return i}function qc(e){return e.type}function Yc(e,t,n){let r=re(t.messages)?t.messages:me();"__i18nGlobal"in n&&(r=zo(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(re(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(re(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function wl(e){return pe(Tr,null,e,0)}function br(){return Kc??Kt()}const Il="__INTLIFY_META__",Ol=()=>[],Wm=()=>!1;let Nl=0;function Rl(e){return((t,n,r,s)=>e(n,r,br()||void 0,s))}const Gm=()=>{const e=br();let t=null;return e&&(t=qc(e)[Il])?{[Il]:t}:null};function Zr(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,s=e.flatJson,o=zr?ln:kn;let i=ie(e.inheritLocale)?e.inheritLocale:!0;const l=o(t&&i?t.locale.value:W(e.locale)?e.locale:_r),a=o(t&&i?t.fallbackLocale.value:W(e.fallbackLocale)||Ee(e.fallbackLocale)||de(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),c=o(zo(l.value,e)),u=o(de(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),f=o(de(e.numberFormats)?e.numberFormats:{[l.value]:{}});let h=t?t.missingWarn:ie(e.missingWarn)||Un(e.missingWarn)?e.missingWarn:!0,_=t?t.fallbackWarn:ie(e.fallbackWarn)||Un(e.fallbackWarn)?e.fallbackWarn:!0,k=t?t.fallbackRoot:ie(e.fallbackRoot)?e.fallbackRoot:!0,S=!!e.fallbackFormat,I=Te(e.missing)?e.missing:null,v=Te(e.missing)?Rl(e.missing):null,b=Te(e.postTranslation)?e.postTranslation:null,w=t?t.warnHtmlMessage:ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,A=!!e.escapeParameter;const M=t?t.modifiers:de(e.modifiers)?e.modifiers:{};let D=e.pluralRules||t&&t.pluralRules,L;L=(()=>{r&&vl(null);const T={version:$m,locale:l.value,fallbackLocale:a.value,messages:c.value,modifiers:M,pluralRules:D,missing:v===null?void 0:v,missingWarn:h,fallbackWarn:_,fallbackFormat:S,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:w,escapeParameter:A,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=u.value,T.numberFormats=f.value,T.__datetimeFormatters=de(L)?L.__datetimeFormatters:void 0,T.__numberFormatters=de(L)?L.__numberFormatters:void 0;const O=wm(T);return r&&vl(O),O})(),Pr(L,l.value,a.value);function V(){return[l.value,a.value,c.value,u.value,f.value]}const Y=Ce({get:()=>l.value,set:T=>{L.locale=T,l.value=T}});function z(T){r||(L.fallbackContext=t?bl():void 0);try{Pr(L,l.value,T)}finally{r||(L.fallbackContext=void 0)}}const j=Ce({get:()=>a.value,set:T=>{a.value=T,L.fallbackLocale=a.value,z(a.value)}}),ee=Ce(()=>c.value),_e=Ce(()=>u.value),De=Ce(()=>f.value);function be(){return Te(b)?b:null}function se(T){b=T,L.postTranslation=T}function ne(){return I}function Qe(T){T!==null&&(v=Rl(T)),I=T,L.missing=v}const Me=(T,O,q,J,he,ye)=>{V();let Se;try{__INTLIFY_PROD_DEVTOOLS__,r||(L.fallbackContext=t?bl():void 0),Se=T(L)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(L.fallbackContext=void 0)}if(q!=="translate exists"&&we(Se)&&Se===vs||q==="translate exists"&&!Se){const[st,wn]=O();return t&&k?J(t):he(st)}else{if(ye(Se))return Se;throw ze(Ye.UNEXPECTED_RETURN_TYPE)}};function je(...T){return Me(O=>Reflect.apply(Ll,null,[O,...T]),()=>_o(...T),"translate",O=>Reflect.apply(O.t,O,[...T]),O=>O,O=>W(O))}function Re(...T){const[O,q,J]=T;if(J&&!re(J))throw ze(Ye.INVALID_ARGUMENT);return je(O,q,Oe({resolvedMessage:!0},J||{}))}function _t(...T){return Me(O=>Reflect.apply(Cl,null,[O,...T]),()=>mo(...T),"datetime format",O=>Reflect.apply(O.d,O,[...T]),()=>Qr,O=>W(O)||Ee(O))}function vt(...T){return Me(O=>Reflect.apply(Tl,null,[O,...T]),()=>go(...T),"number format",O=>Reflect.apply(O.n,O,[...T]),()=>Qr,O=>W(O)||Ee(O))}function dt(T){return T.map(O=>W(O)||we(O)||ie(O)?wl(String(O)):O)}const x={normalize:dt,interpolate:T=>T,type:"vnode"};function B(...T){return Me(O=>{let q;const J=O;try{J.processor=x,q=Reflect.apply(Ll,null,[J,...T])}finally{J.processor=null}return q},()=>_o(...T),"translate",O=>O[vo](...T),O=>[wl(O)],O=>Ee(O))}function H(...T){return Me(O=>Reflect.apply(Tl,null,[O,...T]),()=>go(...T),"number format",O=>O[yo](...T),Ol,O=>W(O)||Ee(O))}function G(...T){return Me(O=>Reflect.apply(Cl,null,[O,...T]),()=>mo(...T),"datetime format",O=>O[bo](...T),Ol,O=>W(O)||Ee(O))}function te(T){D=T,L.pluralRules=D}function m(T,O){return Me(()=>{if(!T)return!1;const q=W(O)?O:l.value,J=W(O)?[q]:po(L,a.value,q);for(let he=0;he[T],"translate exists",q=>Reflect.apply(q.te,q,[T,O]),Wm,q=>ie(q))}function g(T){let O=null;const q=po(L,a.value,l.value);for(let J=0;Jz(a.value),{deep:!0,flush:"sync"}),t&&zr&&(ct(t.locale,T=>{i&&(l.value=T,L.locale=T,Pr(L,l.value,a.value))}),ct(t.fallbackLocale,T=>{i&&(a.value=T,L.fallbackLocale=a.value,Pr(L,l.value,a.value))}));const U={id:Nl,locale:Y,fallbackLocale:j,get inheritLocale(){return i},set inheritLocale(T){i=T,T&&t&&(Y.value=t.locale.value,j.value=t.fallbackLocale.value)},get availableLocales(){return Object.keys(c.value).sort()},messages:ee,get modifiers(){return M},get pluralRules(){return D||{}},get isGlobal(){return r},get missingWarn(){return h},set missingWarn(T){h=T,L.missingWarn=h},get fallbackWarn(){return _},set fallbackWarn(T){_=T,L.fallbackWarn=_},get fallbackRoot(){return k},set fallbackRoot(T){k=T},get fallbackFormat(){return S},set fallbackFormat(T){S=T,L.fallbackFormat=S},get warnHtmlMessage(){return w},set warnHtmlMessage(T){w=T,L.warnHtmlMessage=T},get escapeParameter(){return A},set escapeParameter(T){A=T,L.escapeParameter=T},t:je,getLocaleMessage:N,setLocaleMessage:P,mergeLocaleMessage:R,getPostTranslationHandler:be,setPostTranslationHandler:se,getMissingHandler:ne,setMissingHandler:Qe,[Wc]:te};return U.datetimeFormats=_e,U.numberFormats=De,U.rt=Re,U.te=m,U.tm=E,U.d=_t,U.n=vt,U.getDateTimeFormat=d,U.setDateTimeFormat=p,U.mergeDateTimeFormat=y,U.getNumberFormat=C,U.setNumberFormat=$,U.mergeNumberFormat=F,U[Gc]=n,U[vo]=B,U[bo]=G,U[yo]=H,U}function Km(e){const t=W(e.locale)?e.locale:_r,n=W(e.fallbackLocale)||Ee(e.fallbackLocale)||de(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Te(e.missing)?e.missing:void 0,s=ie(e.silentTranslationWarn)||Un(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ie(e.silentFallbackWarn)||Un(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ie(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,a=de(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Te(e.postTranslation)?e.postTranslation:void 0,f=W(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,_=ie(e.sync)?e.sync:!0;let k=e.messages;if(de(e.sharedMessages)){const M=e.sharedMessages;k=Object.keys(M).reduce((L,K)=>{const V=L[K]||(L[K]={});return Oe(V,M[K]),L},k||{})}const{__i18n:S,__root:I,__injectWithOption:v}=e,b=e.datetimeFormats,w=e.numberFormats,A=e.flatJson;return{locale:t,fallbackLocale:n,messages:k,flatJson:A,datetimeFormats:b,numberFormats:w,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:l,modifiers:a,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:_,__i18n:S,__root:I,__injectWithOption:v}}function Eo(e={}){const t=Zr(Km(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(s){t.locale.value=s},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(s){t.fallbackLocale.value=s},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(s){t.setMissingHandler(s)},get silentTranslationWarn(){return ie(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(s){t.missingWarn=ie(s)?!s:s},get silentFallbackWarn(){return ie(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(s){t.fallbackWarn=ie(s)?!s:s},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(s){t.fallbackFormat=s},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(s){t.setPostTranslationHandler(s)},get sync(){return t.inheritLocale},set sync(s){t.inheritLocale=s},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){t.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(s){t.escapeParameter=s},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...s){return Reflect.apply(t.t,t,[...s])},rt(...s){return Reflect.apply(t.rt,t,[...s])},te(s,o){return t.te(s,o)},tm(s){return t.tm(s)},getLocaleMessage(s){return t.getLocaleMessage(s)},setLocaleMessage(s,o){t.setLocaleMessage(s,o)},mergeLocaleMessage(s,o){t.mergeLocaleMessage(s,o)},d(...s){return Reflect.apply(t.d,t,[...s])},getDateTimeFormat(s){return t.getDateTimeFormat(s)},setDateTimeFormat(s,o){t.setDateTimeFormat(s,o)},mergeDateTimeFormat(s,o){t.mergeDateTimeFormat(s,o)},n(...s){return Reflect.apply(t.n,t,[...s])},getNumberFormat(s){return t.getNumberFormat(s)},setNumberFormat(s,o){t.setNumberFormat(s,o)},mergeNumberFormat(s,o){t.mergeNumberFormat(s,o)}};return r.__extender=n,r}function qm(e,t,n){return{beforeCreate(){const r=br();if(!r)throw ze(Ye.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=Pl(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=Eo(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Pl(e,s);else{this.$i18n=Eo({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Yc(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=br();if(!r)throw ze(Ye.UNEXPECTED_ERROR);const s=this.$i18n;s&&(delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s?.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n)}}}function Pl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Wc](t.pluralizationRules||e.pluralizationRules);const n=zo(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const Qo={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Ym({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Fe?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},me())}function Jc(){return Fe}const Jm=Rt({name:"i18n-t",props:Oe({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>we(e)||!isNaN(e)}},Qo),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||bs({useScope:e.scope,__useComponent:!0});return()=>{const o=()=>{const a=Object.keys(n).filter(f=>f[0]!=="_"),c=me();e.locale&&(c.locale=e.locale),e.plural!==void 0&&(c.plural=W(e.plural)?+e.plural:e.plural);const u=Ym(t,a);return s[vo](e.keypath,u,c)},i=Oe(me(),r),l=W(e.tag)||re(e.tag)?e.tag:Jc();return re(l)?Ln(l,i,{default:o}):Ln(l,i,o())}}}),xl=Jm;function Xm(e){return Ee(e)&&!W(e[0])}function Xc(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i=()=>{const c={part:!0};let u=me();e.locale&&(c.locale=e.locale),W(e.format)?c.key=e.format:re(e.format)&&(W(e.format.key)&&(c.key=e.format.key),u=Object.keys(e.format).reduce((_,k)=>n.includes(k)?Oe(me(),_,{[k]:e.format[k]}):_,me()));const f=r(e.value,c,u);let h=[c.key];return Ee(f)?h=f.map((_,k)=>{const S=s[_.type],I=S?S({[_.type]:_.value,index:k,parts:f}):[_.value];return Xm(I)&&(I[0].key=`${_.type}-${k}`),I}):W(f)&&(h=[f]),h},l=Oe(me(),o),a=W(e.tag)||re(e.tag)?e.tag:Jc();return re(a)?Ln(a,l,{default:i}):Ln(a,l,i())}}const zm=Rt({name:"i18n-n",props:Oe({value:{type:Number,required:!0},format:{type:[String,Object]}},Qo),setup(e,t){const n=e.i18n||bs({useScope:e.scope,__useComponent:!0});return Xc(e,t,Hc,(...r)=>n[yo](...r))}}),Ml=zm;function Qm(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function Zm(e){const t=i=>{const{instance:l,value:a}=i;if(!l||!l.$)throw ze(Ye.UNEXPECTED_ERROR);const c=Qm(e,l.$),u=Dl(a);return[Reflect.apply(c.t,c,[...Fl(u)]),c]};return{created:(i,l)=>{const[a,c]=t(l);zr&&(i.__i18nWatcher=ct(c.locale,()=>{l.instance&&l.instance.$forceUpdate()})),i.__composer=c,i.textContent=a},unmounted:i=>{zr&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:l})=>{if(i.__composer){const a=i.__composer,c=Dl(l);i.textContent=Reflect.apply(a.t,a,[...Fl(c)])}},getSSRProps:i=>{const[l]=t(i);return{textContent:l}}}}function Dl(e){if(W(e))return{path:e};if(de(e)){if(!("path"in e))throw ze(Ye.REQUIRED_VALUE,"path");return e}else throw ze(Ye.INVALID_VALUE)}function Fl(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},l=r||{};return W(n)&&(i.locale=n),we(s)&&(i.plural=s),we(o)&&(i.plural=o),[t,l,i]}function eg(e,t,...n){const r=de(n[0])?n[0]:{};(!ie(r.globalInstall)||r.globalInstall)&&([xl.name,"I18nT"].forEach(o=>e.component(o,xl)),[Ml.name,"I18nN"].forEach(o=>e.component(o,Ml)),[Ul.name,"I18nD"].forEach(o=>e.component(o,Ul))),e.directive("t",Zm(t))}const tg=dn("global-vue-i18n");function ng(e={}){const t=__VUE_I18N_LEGACY_API__&&ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=ie(e.globalInjection)?e.globalInjection:!0,r=new Map,[s,o]=rg(e,t),i=dn("");function l(f){return r.get(f)||null}function a(f,h){r.set(f,h)}function c(f){r.delete(f)}const u={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(f,...h){if(f.__VUE_I18N_SYMBOL__=i,f.provide(f.__VUE_I18N_SYMBOL__,u),de(h[0])){const S=h[0];u.__composerExtend=S.__composerExtend,u.__vueI18nExtend=S.__vueI18nExtend}let _=null;!t&&n&&(_=ug(f,u.global)),__VUE_I18N_FULL_INSTALL__&&eg(f,u,...h),__VUE_I18N_LEGACY_API__&&t&&f.mixin(qm(o,o.__composer,u));const k=f.unmount;f.unmount=()=>{_&&_(),u.dispose(),k()}},get global(){return o},dispose(){s.stop()},__instances:r,__getInstance:l,__setInstance:a,__deleteInstance:c};return u}function bs(e={}){const t=br();if(t==null)throw ze(Ye.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ze(Ye.NOT_INSTALLED);const n=sg(t),r=ig(n),s=qc(t),o=og(e,s);if(o==="global")return Yc(r,e,s),r;if(o==="parent"){let a=jl(n,t,e.__useComponent);return a==null&&(a=r),a}if(o==="isolated"){if(n.mode!=="composition")throw ze(Ye.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const a=n,c=Oe({},e),u=jl(n,t);c.__root=u||r;const f=Zr(c);return a.__composerExtend&&(f[xn]=a.__composerExtend(f)),So()&&ta(()=>{const _=f[xn];_&&(_(),delete f[xn])}),f}const i=n;let l=i.__getInstance(t);if(l==null){const a=Oe({},e);"__i18n"in s&&(a.__i18n=s.__i18n),r&&(a.__root=r),l=Zr(a),i.__composerExtend&&(l[xn]=i.__composerExtend(l)),ag(i,t,l),i.__setInstance(t,l)}return l}function rg(e,t){const n=mu(),r=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Eo(e)):n.run(()=>Zr(e));if(r==null)throw ze(Ye.UNEXPECTED_ERROR);return[n,r]}function sg(e){const t=nt(e.isCE?tg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ze(e.isCE?Ye.NOT_INSTALLED_WITH_PROVIDE:Ye.UNEXPECTED_ERROR);return t}function og(e,t){return Wo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function ig(e){return e.mode==="composition"?e.global:e.global.__composer}function jl(e,t,n=!1){let r=null;const s=t.root;let o=lg(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const l=i.__getInstance(o);l!=null&&(r=l.__composer,n&&r&&!r[Gc]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function lg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function ag(e,t,n){Ar(()=>{},t),Do(()=>{const r=n;e.__deleteInstance(t);const s=r[xn];s&&(s(),delete r[xn])},t)}const cg=["locale","fallbackLocale","availableLocales"],Vl=["t","rt","d","n","tm","te"];function ug(e,t){const n=Object.create(null);return cg.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw ze(Ye.UNEXPECTED_ERROR);const i=Ie(o.value)?{get(){return o.value.value},set(l){o.value.value=l}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Vl.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw ze(Ye.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,Vl.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}const fg=Rt({name:"i18n-d",props:Oe({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Qo),setup(e,t){const n=e.i18n||bs({useScope:e.scope,__useComponent:!0});return Xc(e,t,Uc,(...r)=>n[bo](...r))}}),Ul=fg;Bm();Am(sm);Tm(ym);km(po);if(__INTLIFY_PROD_DEVTOOLS__){const e=rn();e.__INTLIFY__=!0,om(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const dg={"arrow-down":{viewBox:"0 0 24 24",body:''},"arrow-left-on-rectangle":{viewBox:"0 0 24 24",body:''},"arrow-path":{viewBox:"0 0 24 24",body:''},"arrow-path-rounded-square":{viewBox:"0 0 24 24",body:''},"arrow-up":{viewBox:"0 0 24 24",body:''},"arrow-up-tray":{viewBox:"0 0 24 24",body:''},"bars-3":{viewBox:"0 0 24 24",body:''},check:{viewBox:"0 0 24 24",body:''},"check-circle":{viewBox:"0 0 24 24",body:''},"chevron-down":{viewBox:"0 0 24 24",body:''},"chevron-left":{viewBox:"0 0 24 24",body:''},"chevron-right":{viewBox:"0 0 24 24",body:''},"chevron-up":{viewBox:"0 0 24 24",body:''},"chevron-up-down":{viewBox:"0 0 24 24",body:''},"circle-stack":{viewBox:"0 0 24 24",body:''},"clipboard-document":{viewBox:"0 0 24 24",body:''},clock:{viewBox:"0 0 24 24",body:''},"cog-6-tooth":{viewBox:"0 0 24 24",body:''},"cpu-chip":{viewBox:"0 0 24 24",body:''},"document-text":{viewBox:"0 0 24 24",body:''},"exclamation-circle":{viewBox:"0 0 24 24",body:''},"exclamation-triangle":{viewBox:"0 0 24 24",body:''},eye:{viewBox:"0 0 24 24",body:''},"eye-slash":{viewBox:"0 0 24 24",body:''},"information-circle":{viewBox:"0 0 24 24",body:''},key:{viewBox:"0 0 24 24",body:''},"lock-closed":{viewBox:"0 0 24 24",body:''},"magnifying-glass":{viewBox:"0 0 24 24",body:''},"no-symbol":{viewBox:"0 0 24 24",body:''},"pencil-square":{viewBox:"0 0 24 24",body:''},plus:{viewBox:"0 0 24 24",body:''},"queue-list":{viewBox:"0 0 24 24",body:''},"server-stack":{viewBox:"0 0 24 24",body:''},"squares-2x2":{viewBox:"0 0 24 24",body:''},trash:{viewBox:"0 0 24 24",body:''},user:{viewBox:"0 0 24 24",body:''},"wrench-screwdriver":{viewBox:"0 0 24 24",body:''},"x-mark":{viewBox:"0 0 24 24",body:''},"circle-check":{viewBox:"0 0 24 24",body:''},gauge:{viewBox:"0 0 24 24",body:''},"layers-2":{viewBox:"0 0 24 24",body:''},moon:{viewBox:"0 0 24 24",body:''},sun:{viewBox:"0 0 24 24",body:''}},hg=["viewBox","role","aria-label","aria-hidden","innerHTML"],pg=["aria-label"],mg=Rt({__name:"JfIcon",props:{name:{},size:{default:"md"},label:{default:void 0}},setup(e){const t=e,n=Ce(()=>dg[t.name]),r=Ce(()=>`var(--jf-icon-${t.size})`);return(s,o)=>n.value?(Ae(),Je("svg",{key:0,class:"jf-icon",style:sr({width:r.value,height:r.value}),viewBox:n.value.viewBox,role:e.label?"img":void 0,"aria-label":e.label,"aria-hidden":e.label?void 0:"true",focusable:"false",innerHTML:n.value.body},null,12,hg)):(Ae(),Je("span",{key:1,class:"jf-icon-fallback",style:sr({width:r.value,height:r.value}),role:"img","aria-label":e.label||String(e.name)},null,12,pg))}}),ys=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},es=ys(mg,[["__scopeId","data-v-11094a9c"]]),gg=["data-variant","data-size","type","disabled","aria-busy"],_g={key:0,class:"jf-button-spinner","aria-hidden":"true"},vg={key:2,class:"jf-button-label"},bg=Rt({__name:"JfButton",props:{variant:{default:"primary"},size:{default:"md"},icon:{default:void 0},trailingIcon:{default:void 0},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1},square:{type:Boolean,default:!1},type:{default:"button"}},emits:["click"],setup(e,{emit:t}){const n=e,r=t;function s(o){if(n.disabled||n.loading){o.preventDefault(),o.stopPropagation();return}r("click",o)}return(o,i)=>(Ae(),Je("button",{class:nn(["jf-button",{"jf-button-block":e.block,"jf-button-square":e.square}]),"data-variant":e.variant,"data-size":e.size,type:e.type,disabled:e.disabled||e.loading,"aria-busy":e.loading?"true":void 0,onClick:s},[e.loading?(Ae(),Je("span",_g)):e.icon?(Ae(),Nt(es,{key:1,name:e.icon,size:e.size==="lg"?"md":"sm",class:"jf-button-icon"},null,8,["name","size"])):Lt("",!0),o.$slots.default?(Ae(),Je("span",vg,[Qs(o.$slots,"default",{},void 0,!0)])):Lt("",!0),e.trailingIcon?(Ae(),Nt(es,{key:3,name:e.trailingIcon,size:e.size==="lg"?"md":"sm",class:"jf-button-icon"},null,8,["name","size"])):Lt("",!0)],10,gg))}}),tn=ys(bg,[["__scopeId","data-v-1cd909f7"]]),Hl=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");let nr=0,zc="";const xr=[];function yg(){nr===0&&(zc=document.body.style.overflow,document.body.style.overflow="hidden"),nr+=1}function $l(){nr=Math.max(0,nr-1),nr===0&&(document.body.style.overflow=zc)}function Qc(e){let t=null;const n=Symbol("overlay");function r(){const o=xr.indexOf(n);o>=0&&xr.splice(o,1)}function s(o){if(!e.open.value||xr.at(-1)!==n)return;if(o.key==="Escape"){if(e.dismissible&&e.dismissible.value===!1)return;o.preventDefault(),o.stopPropagation(),e.onEscape?.();return}if(o.key!=="Tab"||!e.panel)return;const i=e.panel.value;if(!i)return;const l=Array.from(i.querySelectorAll(Hl)).filter(f=>f.offsetWidth>0||f.offsetHeight>0||f===document.activeElement);if(!l.length){o.preventDefault();return}const a=l[0],c=l[l.length-1],u=document.activeElement;o.shiftKey&&(u===a||!i.contains(u))?(o.preventDefault(),c.focus()):!o.shiftKey&&(u===c||!i.contains(u))&&(o.preventDefault(),a.focus())}ct(e.open,async o=>{if(o){t=document.activeElement,xr.push(n),yg(),document.addEventListener("keydown",s,!0),await Po();const i=e.panel.value;(i?.querySelector("[data-autofocus]")??i?.querySelector(Hl))?.focus();return}document.removeEventListener("keydown",s,!0),r(),$l(),t?.focus?.(),t=null}),ta(()=>{e.open.value&&(document.removeEventListener("keydown",s,!0),r(),$l())})}const Eg=["data-layer"],Cg=["data-size","role","aria-describedby"],Ag={class:"jf-dialog-header"},Tg={class:"jf-dialog-heading"},kg=["id"],Sg={class:"jf-dialog-body"},Lg={key:0,class:"jf-dialog-footer"},wg=Rt({__name:"JfDialog",props:{open:{type:Boolean},title:{},description:{default:void 0},size:{default:"md"},dismissible:{type:Boolean,default:!0},role:{default:"dialog"},closeLabel:{default:"关闭"},layer:{default:"modal"}},emits:["update:open"],setup(e,{emit:t}){const n=e,r=t,s=`jf-dialog-${sf()}`,o=Pa("panel");Qc({open:ui(n,"open"),panel:o,dismissible:ui(n,"dismissible"),onEscape:()=>r("update:open",!1)});function i(){n.dismissible&&r("update:open",!1)}return(l,a)=>(Ae(),Nt(ef,{to:"body"},[pe(id,{name:"jf-dialog"},{default:an(()=>[e.open?(Ae(),Je("div",{key:0,class:"jf-dialog-root","data-layer":e.layer,onClick:Rd(i,["self"])},[a[1]||(a[1]=le("div",{class:"jf-dialog-scrim","aria-hidden":"true"},null,-1)),le("div",{ref_key:"panel",ref:o,class:"jf-dialog-panel","data-size":e.size,role:e.role,"aria-modal":"true","aria-labelledby":s,"aria-describedby":e.description?`${s}-description`:void 0},[le("header",Ag,[le("div",Tg,[le("h2",{id:s},ht(e.title),1),e.description?(Ae(),Je("p",{key:0,id:`${s}-description`},ht(e.description),9,kg)):Lt("",!0)]),e.dismissible?(Ae(),Nt(tn,{key:0,variant:"ghost",square:"",icon:"x-mark","aria-label":e.closeLabel,onClick:a[0]||(a[0]=c=>r("update:open",!1))},null,8,["aria-label"])):Lt("",!0)]),le("div",Sg,[Qs(l.$slots,"default",{},void 0,!0)]),l.$slots.footer?(Ae(),Je("footer",Lg,[Qs(l.$slots,"footer",{},void 0,!0)])):Lt("",!0)],8,Cg)],8,Eg)):Lt("",!0)]),_:3})]))}}),Ig=ys(wg,[["__scopeId","data-v-0124cbe0"]]),Zt=$n({open:!1,title:"",confirmLabel:""});let ts;function p_(e){return ts?.(!1),Object.assign(Zt,{description:void 0,danger:!1,...e,open:!0}),new Promise(t=>{ts=t})}function Ws(e){Zt.open=!1;const t=ts;ts=void 0,t?.(e)}const Og={class:"jf-action-group justify-end"},Ng=Rt({__name:"ConfirmHost",setup(e){return(t,n)=>(Ae(),Nt(Ig,{open:Q(Zt).open,title:Q(Zt).title,description:Q(Zt).description,role:Q(Zt).danger?"alertdialog":"dialog",size:"sm",layer:"confirm","onUpdate:open":n[2]||(n[2]=r=>{r||Q(Ws)(!1)})},{footer:an(()=>[le("div",Og,[pe(tn,{variant:"ghost",onClick:n[0]||(n[0]=r=>Q(Ws)(!1))},{default:an(()=>[...n[3]||(n[3]=[ro("取消",-1)])]),_:1}),pe(tn,{variant:Q(Zt).danger?"danger":"primary",onClick:n[1]||(n[1]=r=>Q(Ws)(!0))},{default:an(()=>[ro(ht(Q(Zt).confirmLabel),1)]),_:1},8,["variant"])])]),_:1},8,["open","title","description","role"]))}});function m_(e){return{name:e.trim(),scopes:["inference"]}}class Bl extends Error{constructor(t,n,r,s){super(r),this.status=t,this.code=n,this.field=s,this.name="ApiError"}status;code;field}let Zc;function Rg(e){Zc=e}async function On(e,t={}){const n=new Headers(t.headers);n.set("Accept","application/json"),t.body!==void 0&&t.body!==null&&n.set("Content-Type","application/json");let r;try{r=await fetch(e,{...t,headers:n,credentials:"same-origin"})}catch(i){throw i instanceof DOMException&&i.name==="AbortError"?i:new Bl(0,"network_error","无法连接管理服务,请检查服务状态。")}const s=await r.text();let o=null;if(s)try{o=JSON.parse(s)}catch{o=null}if(!r.ok){const i=typeof o=="object"&&o!==null&&"error"in o?o.error:void 0,l=i?.code??"request_failed",a=i?.message??`请求失败(HTTP ${r.status})。`;throw r.status===401&&!(e==="/admin/v1/session"&&t.method==="POST")&&Zc?.(),new Bl(r.status,l,a,i?.field)}return o}const Zo={get:(e,t)=>On(e,{method:"GET",signal:t}),post:(e,t)=>On(e,{method:"POST",body:JSON.stringify(t)}),postEmpty:e=>On(e,{method:"POST"}),put:(e,t)=>On(e,{method:"PUT",body:JSON.stringify(t)}),patch:(e,t)=>On(e,{method:"PATCH",body:JSON.stringify(t)}),delete:e=>On(e,{method:"DELETE"})};async function g_(e,t={}){const n=[];let r=null;do{const s=await Zo.get(Pg(e,{...t,limit:200,cursor:r}));n.push(...s.items),r=s.next_cursor}while(r);return n}function Pg(e,t){const n=new URLSearchParams;for(const[s,o]of Object.entries(t))o!=null&&String(o)!==""&&n.set(s,String(o));const r=n.toString();return r?`${e}?${r}`:e}function __(e){return e==null||!Number.isFinite(e)?"暂无数据":`${(e*100).toFixed(2)}%`}const rr=$n({name:"",expiresAt:""});function Co(){rr.name="",rr.expiresAt=""}const Ao=ln(!1),eu=ln("更改已保存");let Mr;function v_(e="更改已保存"){eu.value=e,Ao.value=!0,Mr!==void 0&&clearTimeout(Mr),Mr=setTimeout(()=>{Ao.value=!1,Mr=void 0},3e3)}const xg="modulepreload",Mg=function(e){return"/admin/static/web/"+e},Wl={},Jt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=a(n.map(c=>{if(c=Mg(c),c in Wl)return;Wl[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const h=document.createElement("link");if(h.rel=u?"stylesheet":xg,u||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),u)return new Promise((_,k)=>{h.addEventListener("load",_),h.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},yr=ep({history:xh("/admin/"),routes:[{path:"/login",name:"login",component:()=>Jt(()=>import("./Login-DghCJTEF.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),meta:{title:"登录"}},{path:"/",name:"dashboard",component:()=>Jt(()=>import("./Index-BdsXt2MF.js"),__vite__mapDeps([11,1,2,12,6,13,14,8,9,15,16])),meta:{title:"总览",requiresAuth:!0}},{path:"/providers",name:"providers",component:()=>Jt(()=>import("./Providers-cZvMsJm0.js"),__vite__mapDeps([17,18,1,2,19,20,21,22,3,4,5,6,7,12,13,8,9,23,24,14,15])),meta:{title:"提供商",requiresAuth:!0}},{path:"/models",name:"models",component:()=>Jt(()=>import("./Models-Bn89W1eO.js"),__vite__mapDeps([25,18,1,2,19,20,21,22,3,4,5,6,7,8,9,23,24,14,15])),meta:{title:"模型管理",requiresAuth:!0}},{path:"/groups",name:"model-groups",component:()=>Jt(()=>import("./ModelGroups-B2KJ_No2.js"),__vite__mapDeps([26,18,1,2,19,20,27,28,29,30,8,9,31])),meta:{title:"模型分组",requiresAuth:!0}},{path:"/pairs",redirect:"/groups"},{path:"/settings",name:"settings",component:()=>Jt(()=>import("./Settings-DoDV9F3T.js"),__vite__mapDeps([32,18,1,2,33,27,28,3,4,5,6,7,12,13,23,24,34])),meta:{title:"系统设置",requiresAuth:!0}},{path:"/keys",name:"keys",component:()=>Jt(()=>import("./Keys-B7jAwsl4.js"),__vite__mapDeps([35,1,2,19,20,21,22,3,4,5,6,7,14,8,9,15])),meta:{title:"推理密钥",requiresAuth:!0}},{path:"/logs",name:"logs",component:()=>Jt(()=>import("./Index-BKJMWLAN.js"),__vite__mapDeps([36,1,2,33,19,20,21,22,29,30,5,6,7,12,13,14,8,9,15])),meta:{title:"请求日志",requiresAuth:!0}},{path:"/:pathMatch(.*)*",redirect:"/"}]});let Dr;async function Dg(){return rr.name?!0:(Dr||(Dr=Zo.get("/admin/v1/session").then(e=>(rr.name=e.name,rr.expiresAt=e.expires_at,!0)).catch(()=>(Co(),!1)).finally(()=>{Dr=void 0})),Dr)}yr.beforeEach(async e=>e.meta.requiresAuth&&!await Dg()?{name:"login",query:{next:e.fullPath}}:!0);yr.afterEach(e=>{const t=typeof e.meta.title=="string"?e.meta.title:"";document.title=t?`${t} · Auto Router`:"Auto Router"});const Fg={key:0,class:"auth-scene flex min-h-screen items-center justify-center px-4 py-10"},jg={key:1,class:"dashboard-shell min-h-screen"},Vg=["role","aria-modal","aria-hidden","inert","aria-label"],Ug={class:"sidebar-brand"},Hg={class:"sidebar-brand-close lg:hidden"},$g={class:"sidebar-section-label"},Bg=["aria-label"],Wg={class:"sidebar-link-label"},Gg={class:"sidebar-section-label mt-6"},Kg=["aria-label"],qg={class:"sidebar-link-label"},Yg={class:"sidebar-bottom"},Jg={class:"sidebar-logout-label"},Xg={class:"dashboard-topbar"},zg={class:"flex min-w-0 items-center gap-2"},Qg={class:"lg:hidden"},Zg={class:"hidden lg:inline-flex"},e_={class:"min-w-0"},t_={class:"dashboard-topbar-title jf-truncate"},n_={class:"jf-action-group shrink-0"},r_={class:"dashboard-content"},s_={class:"dashboard-content-inner"},o_={key:1,class:"save-toast",role:"status","aria-live":"polite","aria-atomic":"true"},i_=Rt({__name:"App",setup(e){const{t}=bs(),n=tp(),r=Ce(()=>n.name==="login"),s=ln(!1),o=Xd("(min-width: 960px)"),i=Pa("sidebarPanel"),l=ln(!1),a=ln("light");Ar(()=>{let I=null;try{I=window.localStorage.getItem("auto-router-color-mode")}catch{}const v=I==="dark"||I==="light"?I:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";a.value=v,c(v);try{l.value=window.localStorage.getItem("auto-router-sidebar-collapsed")==="true"}catch{}});function c(I){document.documentElement.setAttribute("data-theme",I),document.documentElement.style.colorScheme=I,document.querySelector('meta[name="theme-color"]')?.setAttribute("content",I==="dark"?"#1A1A18":"#F7F7F3")}function u(){a.value=a.value==="dark"?"light":"dark",c(a.value);try{window.localStorage.setItem("auto-router-color-mode",a.value)}catch{}}function f(){l.value=!l.value;try{window.localStorage.setItem("auto-router-sidebar-collapsed",String(l.value))}catch{}}const h=Ce(()=>[{label:t("app.overview"),icon:"squares-2x2",to:"/"},{label:t("app.providers"),icon:"server-stack",to:"/providers"},{label:t("app.models"),icon:"cpu-chip",to:"/models"},{label:t("app.groups"),icon:"layers-2",to:"/groups"}]),_=Ce(()=>[{label:t("app.settings"),icon:"cog-6-tooth",to:"/settings"},{label:t("app.keys"),icon:"key",to:"/keys"},{label:t("app.logs"),icon:"document-text",to:"/logs"}]),k=Ce(()=>typeof n.meta.title=="string"?n.meta.title:t("app.overview"));Qc({open:s,panel:i,onEscape:()=>{s.value=!1}}),ct(o,I=>{I&&(s.value=!1)}),ct(()=>n.fullPath,()=>{s.value=!1}),Rg(()=>{Co(),n.name!=="login"&&yr.replace({name:"login",query:{next:n.fullPath}})});async function S(){try{await Zo.delete("/admin/v1/session")}catch{}Co(),await yr.replace({name:"login"})}return(I,v)=>r.value?(Ae(),Je("main",Fg,[pe(Q(uo))])):(Ae(),Je("div",jg,[s.value?(Ae(),Je("div",{key:0,class:"dashboard-scrim lg:hidden",onClick:v[0]||(v[0]=b=>s.value=!1)})):Lt("",!0),le("aside",{ref_key:"sidebarPanel",ref:i,id:"dashboard-navigation",class:nn(["dashboard-sidebar",{"dashboard-sidebar-open":s.value,"dashboard-sidebar-collapsed":l.value}]),role:s.value&&!Q(o)?"dialog":void 0,"aria-modal":s.value&&!Q(o)?"true":void 0,"aria-hidden":!Q(o)&&!s.value?"true":void 0,inert:!Q(o)&&!s.value,"aria-label":Q(t)("app.navigation")},[le("div",Ug,[v[5]||(v[5]=le("span",{class:"sidebar-brand-title"},"Auto Router",-1)),le("span",Hg,[pe(tn,{variant:"ghost",square:"",icon:"x-mark","aria-label":Q(t)("app.closeMenu"),onClick:v[1]||(v[1]=b=>s.value=!1)},null,8,["aria-label"])])]),le("div",$g,ht(Q(t)("app.workspace")),1),le("nav",{class:"sidebar-nav","aria-label":Q(t)("app.workspace")},[(Ae(!0),Je(Fe,null,gi(h.value,b=>(Ae(),Nt(Q(co),{key:b.to,to:b.to,class:nn(["sidebar-link",{"sidebar-link-active":Q(n).path===b.to}]),"aria-current":Q(n).path===b.to?"page":void 0,title:l.value?b.label:void 0,onClick:v[2]||(v[2]=w=>s.value=!1)},{default:an(()=>[pe(es,{name:b.icon,size:"md",class:"sidebar-icon","aria-hidden":"true"},null,8,["name"]),le("span",Wg,ht(b.label),1)]),_:2},1032,["to","class","aria-current","title"]))),128))],8,Bg),le("div",Gg,ht(Q(t)("app.management")),1),le("nav",{class:"sidebar-nav","aria-label":Q(t)("app.management")},[(Ae(!0),Je(Fe,null,gi(_.value,b=>(Ae(),Nt(Q(co),{key:b.to,to:b.to,class:nn(["sidebar-link",{"sidebar-link-active":Q(n).path===b.to}]),"aria-current":Q(n).path===b.to?"page":void 0,title:l.value?b.label:void 0,onClick:v[3]||(v[3]=w=>s.value=!1)},{default:an(()=>[pe(es,{name:b.icon,size:"md",class:"sidebar-icon","aria-hidden":"true"},null,8,["name"]),le("span",qg,ht(b.label),1)]),_:2},1032,["to","class","aria-current","title"]))),128))],8,Kg),le("div",Yg,[pe(tn,{class:"sidebar-logout-button",variant:"ghost",icon:"arrow-left-on-rectangle","aria-label":Q(t)("app.logout"),block:"",onClick:S},{default:an(()=>[le("span",Jg,ht(Q(t)("app.logout")),1)]),_:1},8,["aria-label"])])],10,Vg),le("div",{class:nn(["dashboard-main",{"dashboard-main-collapsed":l.value}])},[le("header",Xg,[le("div",zg,[le("span",Qg,[pe(tn,{variant:"ghost",square:"",icon:"bars-3","aria-label":Q(t)("app.openMenu"),"aria-expanded":s.value,"aria-controls":"dashboard-navigation",onClick:v[4]||(v[4]=b=>s.value=!0)},null,8,["aria-label","aria-expanded"])]),le("span",Zg,[pe(tn,{variant:"ghost",square:"",icon:l.value?"chevron-right":"chevron-left","aria-label":l.value?Q(t)("app.expandNav"):Q(t)("app.collapseNav"),"aria-pressed":l.value,onClick:f},null,8,["icon","aria-label","aria-pressed"])]),le("div",e_,[le("span",t_,ht(k.value),1)])]),le("div",n_,[pe(tn,{variant:"ghost",square:"",icon:a.value==="dark"?"sun":"moon","aria-label":Q(t)("app.theme"),"aria-pressed":a.value==="dark",onClick:u},null,8,["icon","aria-label","aria-pressed"])])]),le("main",r_,[le("div",s_,[pe(Q(uo))])])],2),Q(Ao)?(Ae(),Je("div",o_,ht(Q(eu)),1)):Lt("",!0),pe(Ng)]))}}),l_=ys(i_,[["__scopeId","data-v-f6883e68"]]),a_={"zh-CN":{app:{navigation:"导航菜单",overview:"总览",providers:"提供商",models:"模型管理",groups:"模型分组",settings:"系统设置",keys:"推理密钥",logs:"请求日志",admin:"管理员",logout:"退出登录",theme:"切换颜色主题",openMenu:"打开导航菜单",closeMenu:"关闭导航菜单",collapseNav:"收起导航栏",expandNav:"展开导航栏",workspace:"工作区",management:"管理"},common:{refresh:"刷新",loading:"正在加载…",retry:"重试",empty:"暂无数据",error:"暂时无法加载数据",enabled:"已启用",disabled:"已停用",status:"状态",actions:"操作",cancel:"取消",save:"保存",create:"创建",edit:"编辑",search:"搜索",previous:"上一页",next:"下一页",noData:"暂无数据"},errors:{codes:{invalid_request:{title:"请求内容无效",description:"检查填写的内容与格式后重试。"},invalid_filter:{title:"筛选条件无效",description:"调整筛选条件后重新查询。"},invalid_cursor:{title:"分页位置已失效",description:"分页位置已过期,请重新加载列表。"},invalid_group:{title:"模型分组配置无效",description:"每组成员不能重复,必须是已启用的绑定(其提供商与模型也须启用),每组最多 8 个。"},invalid_scopes:{title:"推理密钥权限范围无效",description:"推理密钥只支持 inference 范围。"},invalid_model:{title:"模型标识无效",description:"模型标识须以字母或数字开头,只能包含字母、数字及 . _ : / - @ ~ +,最多 128 个字符,且不能是 auto。"},invalid_password:{title:"密码不正确或不符合要求",description:"确认当前密码输入正确;新密码至少需要 12 字节。"},invalid_session:{title:"管理会话已失效",description:"登录已过期,请重新登录管理台。"},invalid_api_key:{title:"推理密钥无效或已失效",description:"检查请求携带的推理密钥是否正确;密钥轮换后需改用新密钥。"},insufficient_scope:{title:"权限不足",description:"当前登录身份或推理密钥没有执行该操作的权限。"},cross_site_request:{title:"请求来源未通过安全校验",description:"请直接在管理台页面内操作,不要从其他站点发起请求。"},bootstrap_token_required:{title:"需要初始化令牌",description:"从非本机访问进行首次设置时,需要填写服务启动日志中打印的一次性初始化令牌(bootstrap_token)。"},too_many_attempts:{title:"尝试次数过多",description:"失败次数过多,请等待一分钟后再试。"},request_too_large:{title:"提交内容过大",description:"提交内容超过大小上限,请减少内容后重试。"},unknown_model:{title:"找不到指定模型",description:"该模型可能已被删除,刷新列表后重试。"},unknown_provider:{title:"找不到指定提供商",description:"该提供商可能已被删除,刷新列表后重试。"},unknown_pair:{title:"找不到指定绑定",description:"该绑定可能已被解除,刷新列表后重试。"},not_found:{title:"接口不存在",description:"管理台与服务端版本可能不一致,刷新页面后重试。"},provider_exists:{title:"提供商标识已存在",description:"换一个提供商标识,或直接编辑已有的提供商。"},model_exists:{title:"模型标识已存在",description:"换一个模型标识,或直接编辑已有的模型。"},pair_exists:{title:"该提供商与模型绑定已存在",description:"该绑定已存在,可在模型管理页编辑它。"},provider_not_deletable:{title:"该提供商不可删除",description:"只有管理员创建的提供商可以删除;同步或配置文件来源的提供商可以停用。"},provider_not_configured:{title:"提供商未配置上游地址",description:"先在提供商页面填写上游地址。"},key_not_found:{title:"找不到该推理密钥",description:"该推理密钥可能已被删除,刷新列表后重试。"},key_name_exists:{title:"推理密钥名称已存在",description:"换一个名称,或轮换已有的同名推理密钥。"},credential_limit:{title:"已达到推理密钥数量上限",description:"先删除不再使用的推理密钥,再创建新的。"},password_already_set:{title:"管理密码已设置",description:"请直接登录;忘记密码需使用离线恢复流程。"},password_not_set:{title:"管理密码尚未设置",description:"先完成初始化,设置管理员密码。"},settings_conflict:{title:"设置已被其他操作修改",description:"页面已重新读取最新设置,确认后再修改一次。"},restart_required:{title:"该设置需要重启服务才能生效",description:"改动已保存,重启服务后生效。"},unsupported_setting:{title:"该设置不支持在线修改",description:"该设置只能在服务启动前通过配置文件修改。"},read_only_state:{title:"当前设置为只读状态",description:"服务未挂载可写存储,设置无法保存。"},storage_error:{title:"存储操作失败",description:"数据库读写失败,请稍后重试;若持续失败请查看服务日志。"},snapshot_publish_failed:{title:"改动已保存但运行配置未刷新",description:"改动已写入数据库,但运行中的配置未刷新;重启服务后生效。"},sync_failed:{title:"同步失败,现有配置未被修改。",description:"确认服务能访问 models.dev 后重试,详细原因见服务日志。"},sync_unavailable:{title:"同步功能当前不可用",description:"服务当前无法执行同步,请稍后重试;若持续出现请查看服务日志。"},discovery_failed:{title:"无法读取提供商模型列表",description:"检查提供商地址、上游密钥与网络连通性后重试。"},metadata_lookup_failed:{title:"无法获取模型能力元数据",description:"暂时无法从 models.dev 读取能力信息,可稍后重试,或在模型管理页手动填写能力。"},dashboard_missing:{title:"管理台页面渲染失败",description:"管理台页面资源缺失,请重新加载页面;若持续出现请重新构建或部署服务。"},invalid_request_error:{title:"请求内容无效",description:"检查请求体的字段与格式后重试。"},unsupported_media_type:{title:"请求内容类型不支持",description:"请求须使用 Content-Type: application/json。"},unsupported_conversion:{title:"该提供商无法保持请求语义",description:"所选提供商无法无损表达该请求,请改用协议兼容的提供商或简化请求。"},provider_override_disabled:{title:"未启用提供商覆盖语法",description:"可在“系统设置 → 全局路由行为”中开启“允许显式提供商覆盖”。"},invalid_model_identifier:{title:"模型标识格式无效",description:"检查请求中 model 字段的格式。"},model_not_found:{title:"找不到该模型",description:"请求的模型不存在或没有可用绑定,可通过 GET /v1/models 查看可用模型。"},provider_not_found:{title:"找不到该提供商",description:"请求的提供商不存在或已停用。"},auto_routing_unavailable:{title:"自动路由当前不可用",description:"检查模型分组配置后重试;详细原因见服务日志。"},routing_unavailable:{title:"路由服务不可用",description:"路由服务暂未就绪,请稍后重试;若持续出现请查看服务日志。"},no_eligible_candidate:{title:"没有可用的候选模型",description:"检查模型分组配置,以及请求所需的能力与上下文窗口。"},truncated_evidence:{title:"请求超出分析边界,无法安全路由",description:"减小请求体积,或直接指定模型。"},upstream_unavailable:{title:"上游提供商无法访问",description:"检查提供商地址、上游密钥与网络连通性后重试。"},upstream_timeout:{title:"上游提供商响应超时",description:"上游未在限定时间内响应,可稍后重试或更换提供商。"},upstream_response_too_large:{title:"上游响应过大",description:"提供商返回的内容超过了转换缓冲上限。可改用流式请求,或调整 -max-buffered-response-bytes 后重试。"},client_closed_request:{title:"客户端提前断开连接",description:"客户端在请求完成前断开了连接,可重试。"},internal_error:{title:"服务内部错误",description:"请稍后重试;若持续出现请查看服务日志。"},debug_route_unavailable:{title:"离线诊断端点未就绪",description:"离线诊断端点尚未就绪,请稍后重试。"}},fallback:{network:{title:"无法连接管理服务",description:"请确认服务已启动且网络可达。"},clientUnknown:{title:"操作未能完成",description:"服务返回了未识别的错误(HTTP {status},代码 {code}),请刷新后重试。"},server:{title:"服务暂时不可用",description:"服务端返回了未识别的错误(HTTP {status},代码 {code}),请稍后重试并查看服务日志。"},unknown:{title:"操作未能完成",description:"服务返回了未识别的错误(代码 {code}),请刷新后重试;若持续失败请查看服务日志。"}},field:"字段:{field}",httpStatus:"HTTP {status}"},labels:{protocol:{chat_completions:"Chat Completions",responses:"Responses",native:"原生协议"},routingMode:{auto:"自动路由",explicit:"指定模型"},selectionMode:{explicit:"指定模型",jev:"Jev 推荐",blend:"混合决策",default_model:"默认模型兜底",first_eligible:"首个可用候选"},confidenceBand:{high:"高",medium:"中",low:"低"},usageStatus:{observed:"已观测",absent:"上游未上报",malformed:"格式异常",oversized:"超出观测上限",interrupted:"中断未观测"},statusClass:{success:"成功(2xx)",client_error:"客户端错误(4xx)",server_error:"服务端错误(5xx)"},inputMode:{content:"完整内容",redacted:"脱敏内容",features_only:"仅特征"},jevStatus:{disabled:"未启用",skipped_single_model:"单模型跳过",skipped_insufficient_evidence:"证据不足跳过",skipped_too_many_models:"候选过多跳过",ok:"成功"},jevStatusFailure:"失败({reason})",fallbackReason:{none:"未发生兜底",not_requested:"未请求推荐",confidence_low:"置信度过低",selected_model_ineligible:"推荐模型不可用",jev_timeout:"Jev 超时",jev_unavailable:"Jev 不可达",jev_rejected:"Jev 拒绝",jev_invalid_result:"Jev 结果无效",jev_canceled:"Jev 调用取消",truncated_evidence:"证据被截断",no_candidates:"无候选模型"},notEligible:"不满足筛选:{code}"}}},c_=ng({legacy:!1,locale:"zh-CN",fallbackLocale:"zh-CN",messages:a_,datetimeFormats:{"zh-CN":{short:{year:"numeric",month:"2-digit",day:"2-digit"},dateTime:{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}}},numberFormats:{"zh-CN":{decimal:{maximumFractionDigits:2},integer:{maximumFractionDigits:0}}}}),ei=Dd(l_);ei.use(yr);ei.use(c_);ei.mount("#app");export{id as $,Bl as A,Pg as B,d_ as C,$n as D,v_ as E,Fe as F,p_ as G,g_ as H,Q as I,tn as J,yr as K,nt as L,Co as M,Qs as N,Pa as O,Ig as P,m_ as Q,sf as R,Fr as S,c_ as T,f_ as U,Gd as V,Kf as W,ef as X,Po as Y,Qc as Z,ys as _,Zo as a,ui as a0,le as b,Nt as c,Rt as d,u_ as e,pe as f,ro as g,Lt as h,Je as i,Rd as j,tp as k,Ae as l,Do as m,nn as n,Ar as o,es as p,gi as q,ln as r,rr as s,ht as t,h_ as u,sr as v,an as w,__ as x,Ce as y,ct as z}; diff --git a/internal/api/dashboard/static/web/assets/index-D_eyQqj5.css b/internal/api/dashboard/static/web/assets/index-D_eyQqj5.css new file mode 100644 index 0000000..ceac907 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/index-D_eyQqj5.css @@ -0,0 +1 @@ +.jf-icon[data-v-11094a9c]{display:inline-block;flex:none;vertical-align:-.125em}.jf-icon-fallback[data-v-11094a9c]{display:inline-block;flex:none;border-radius:var(--jf-radius-check);background:var(--jf-tonal-active)}.jf-button[data-v-1cd909f7]{display:inline-flex;min-height:var(--jf-control-md);align-items:center;justify-content:center;gap:var(--jf-space-2);border:0;border-radius:var(--jf-radius-control);padding:0 var(--jf-space-4);font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading);font-weight:var(--jf-emphasis-weight);white-space:nowrap;cursor:pointer;transition:background var(--jf-duration-fast) var(--jf-ease),color var(--jf-duration-fast) var(--jf-ease),border-color var(--jf-duration-fast) var(--jf-ease),transform var(--jf-duration-instant) var(--jf-ease-in)}.jf-button[data-size=sm][data-v-1cd909f7]{min-height:var(--jf-control-sm);padding:0 var(--jf-space-3);gap:var(--jf-space-1)}.jf-button[data-size=lg][data-v-1cd909f7]{min-height:var(--jf-control-lg);padding:0 var(--jf-space-5)}.jf-button-square[data-v-1cd909f7],.jf-button.jf-button-square[data-v-1cd909f7],.jf-button[data-size].jf-button-square[data-v-1cd909f7]{padding:0;width:var(--jf-control-md);height:var(--jf-control-md);min-height:unset;flex:none}.jf-button.jf-button-square[data-size=sm][data-v-1cd909f7],.jf-button[data-size=sm].jf-button-square[data-v-1cd909f7]{width:var(--jf-control-sm);height:var(--jf-control-sm);min-height:unset;padding:0}.jf-button.jf-button-square[data-size=lg][data-v-1cd909f7],.jf-button[data-size=lg].jf-button-square[data-v-1cd909f7]{width:var(--jf-control-lg);height:var(--jf-control-lg);min-height:unset;padding:0}.jf-button-block[data-v-1cd909f7]{width:100%}.jf-button-label[data-v-1cd909f7]{min-width:0;overflow:hidden;text-overflow:ellipsis}.jf-button[data-variant=primary][data-v-1cd909f7]{background:var(--jf-primary);color:var(--jf-text-on-primary)}.jf-button[data-variant=primary][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-primary-hover)}.jf-button[data-variant=primary][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-primary-active)}.jf-button[data-variant=secondary][data-v-1cd909f7]{background:var(--jf-tonal);color:var(--jf-text)}.jf-button[data-variant=secondary][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-tonal-hover)}.jf-button[data-variant=secondary][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-tonal-active)}.jf-button[data-variant=ghost][data-v-1cd909f7]{background:transparent;color:var(--jf-text)}.jf-button[data-variant=ghost][data-v-1cd909f7]:hover:not(:disabled){background:color-mix(in srgb,var(--jf-text) calc(var(--jf-opacity-ghost-hover) * 100%),transparent)}.jf-button[data-variant=ghost][data-v-1cd909f7]:active:not(:disabled){background:color-mix(in srgb,var(--jf-text) calc(var(--jf-opacity-ghost-active) * 100%),transparent)}.jf-button[data-variant=danger][data-v-1cd909f7]{background:var(--jf-danger);color:var(--jf-text-on-danger)}.jf-button[data-variant=danger][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-danger-hover)}.jf-button[data-variant=danger][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-danger-active)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]{background:transparent;color:var(--jf-danger-text)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-danger-bg)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-danger-border)}.jf-button[data-v-1cd909f7]:active:not(:disabled){transform:scale(.98)}.jf-button[data-v-1cd909f7]:disabled{opacity:var(--jf-opacity-disabled);cursor:not-allowed;transform:none}.jf-button-icon[data-v-1cd909f7]{flex:none}.jf-button-spinner[data-v-1cd909f7]{width:var(--jf-icon-sm);height:var(--jf-icon-sm);flex:none;border-radius:var(--jf-radius-pill);border:2px solid currentColor;border-right-color:transparent;animation:jf-spin var(--jf-period-spinner) linear infinite}@media(prefers-reduced-motion:reduce){.jf-button-spinner[data-v-1cd909f7]{animation:none;border-right-color:currentColor;opacity:var(--jf-opacity-muted)}}.jf-dialog-root[data-v-0124cbe0]{position:fixed;inset:0;z-index:var(--jf-z-modal);display:grid;place-items:center;padding:var(--jf-space-4)}.jf-dialog-root[data-layer=confirm][data-v-0124cbe0]{z-index:calc(var(--jf-z-modal) + 5)}.jf-dialog-scrim[data-v-0124cbe0]{position:absolute;inset:0;background:rgb(0 0 0 / var(--jf-opacity-overlay))}.jf-dialog-panel[data-v-0124cbe0]{position:relative;display:flex;width:100%;max-width:var(--jf-form-max);max-height:calc(100vh - var(--jf-space-8));flex-direction:column;border-radius:var(--jf-radius-dialog);background:var(--jf-surface);box-shadow:var(--jf-shadow-modal);padding:var(--jf-space-6);overflow:hidden}.jf-dialog-panel[data-size=sm][data-v-0124cbe0]{max-width:26rem}.jf-dialog-panel[data-size=lg][data-v-0124cbe0]{max-width:48rem}.jf-dialog-header[data-v-0124cbe0]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--jf-space-3)}.jf-dialog-heading[data-v-0124cbe0]{min-width:0}.jf-dialog-heading h2[data-v-0124cbe0]{font-size:var(--jf-subsection-size);line-height:var(--jf-subsection-leading);font-weight:var(--jf-emphasis-weight);text-wrap:balance}.jf-dialog-heading p[data-v-0124cbe0]{margin-top:var(--jf-space-1);font-size:var(--jf-caption-size);line-height:var(--jf-caption-leading);color:var(--jf-text-secondary);text-wrap:pretty}.jf-dialog-body[data-v-0124cbe0]{min-height:0;margin-top:var(--jf-space-4);overflow-y:auto;overscroll-behavior:contain}.jf-dialog-footer[data-v-0124cbe0]{margin-top:var(--jf-space-5);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--jf-space-2)}.jf-dialog-enter-active[data-v-0124cbe0]{transition:opacity var(--jf-duration-overlay) var(--jf-ease-out)}.jf-dialog-leave-active[data-v-0124cbe0]{transition:opacity var(--jf-duration-exit-overlay) var(--jf-ease-in)}.jf-dialog-enter-from[data-v-0124cbe0],.jf-dialog-leave-to[data-v-0124cbe0]{opacity:0}.jf-dialog-enter-from .jf-dialog-panel[data-v-0124cbe0]{transform:scale(.96)}.jf-dialog-enter-active .jf-dialog-panel[data-v-0124cbe0],.jf-dialog-leave-active .jf-dialog-panel[data-v-0124cbe0]{transition:transform var(--jf-duration-overlay) var(--jf-ease-out),opacity var(--jf-duration-overlay) var(--jf-ease-out)}.jf-dialog-leave-active .jf-dialog-panel[data-v-0124cbe0]{transition-duration:var(--jf-duration-exit-overlay);transition-timing-function:var(--jf-ease-in)}.jf-dialog-leave-to .jf-dialog-panel[data-v-0124cbe0]{transform:scale(.96)}.save-toast[data-v-f6883e68]{position:fixed;z-index:2000;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));padding:.75rem 1rem;border:1px solid var(--jf-success-border);border-radius:var(--jf-radius-control);background:var(--jf-success-bg);color:var(--jf-success-text);box-shadow:var(--jf-shadow-toast)}.sidebar-logout-button.jf-button[data-v-f6883e68]{justify-content:flex-start}.dashboard-sidebar-collapsed .sidebar-logout-label[data-v-f6883e68]{display:none}.dashboard-sidebar-collapsed .sidebar-logout-button.jf-button[data-v-f6883e68]{justify-content:center;padding-inline:0}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-4-400-normal-BDFGDDVr.woff2) format("woff2");unicode-range:U+1f1e9-1f1f5,U+1f1f7-1f1ff,U+1f21a,U+1f232,U+1f234-1f237,U+1f250-1f251,U+1f300,U+1f302-1f308,U+1f30a-1f311,U+1f315,U+1f319-1f320,U+1f324,U+1f327,U+1f32a,U+1f32c-1f32d,U+1f330-1f357,U+1f359-1f37e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-5-400-normal-3RzBeGhg.woff2) format("woff2");unicode-range:U+fee3,U+fef3,U+ff03-ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c-ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ff61-ff65,U+ff67-ff6a,U+ff6c,U+ff6f-ff78,U+ff7a-ff7d,U+ff80-ff84,U+ff86,U+ff89-ff8e,U+ff92,U+ff97-ff9b,U+ff9d-ff9f,U+ffe0-ffe4,U+ffe6,U+ffe9,U+ffeb,U+ffed,U+fffc,U+1f004,U+1f170-1f171,U+1f192-1f195,U+1f198-1f19a,U+1f1e6-1f1e8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-6-400-normal-D73klzWF.woff2) format("woff2");unicode-range:U+f0a7,U+f0b2,U+f0b7,U+f0c9,U+f0d8,U+f0da,U+f0dc-f0dd,U+f0e0,U+f0e6,U+f0eb,U+f0fc,U+f101,U+f104-f105,U+f107,U+f10b,U+f11b,U+f14b,U+f18a,U+f193,U+f1d6-f1d7,U+f244,U+f27a,U+f296,U+f2ae,U+f471,U+f4b3,U+f610-f611,U+f880-f881,U+f8ec,U+f8f5,U+f8ff,U+f901,U+f90a,U+f92c-f92d,U+f934,U+f937,U+f941,U+f965,U+f967,U+f969,U+f96b,U+f96f,U+f974,U+f978-f979,U+f97e,U+f981,U+f98a,U+f98e,U+f997,U+f99c,U+f9b2,U+f9b5,U+f9ba,U+f9be,U+f9ca,U+f9d0-f9d1,U+f9dd,U+f9e0-f9e1,U+f9e4,U+f9f7,U+fa00-fa01,U+fa08,U+fa0a,U+fa11,U+fb01-fb02,U+fdfc,U+fe0e,U+fe30-fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b,U+fe8e,U+fe92-fe93,U+feae,U+feb8,U+fecb-fecc,U+fee0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-21-400-normal-Bfz3Xm1a.woff2) format("woff2");unicode-range:U+9f83,U+9f85-9f8d,U+9f90-9f91,U+9f94-9f96,U+9f98,U+9f9b-9f9c,U+9f9e,U+9fa0,U+9fa2,U+9ff0-9fff,U+a001,U+a007,U+a025,U+a046-a047,U+a057,U+a072,U+a078-a079,U+a083,U+a085,U+a100,U+a118,U+a132,U+a134,U+a1f4,U+a242,U+a4a6,U+a4aa,U+a4b0-a4b1,U+a4b3,U+a9c1-a9c2,U+ac00-ac01,U+ac04,U+ac08,U+ac10-ac11,U+ac13-ac16,U+ac19,U+ac1c-ac1d,U+ac24,U+ac70-ac71,U+ac74,U+ac77-ac78,U+ac80-ac81,U+ac83,U+ac8c,U+ac90,U+ac9f-aca0,U+aca8-aca9,U+acac,U+acb0,U+acbd,U+acc1,U+acc4,U+ace0-ace1,U+ace4,U+ace8,U+acf3,U+acf5,U+acfc-acfd,U+ad00,U+ad0c,U+ad11,U+ad1c,U+ad34,U+ad50,U+ad64,U+ad6c,U+ad70,U+ad74,U+ad7f,U+ad81,U+ad8c,U+adc0,U+adc8,U+addc,U+ade0,U+adf8-adf9,U+adfc,U+ae00,U+ae08-ae09,U+ae0b,U+ae30,U+ae34,U+ae38,U+ae40,U+ae4a,U+ae4c,U+ae54,U+ae68,U+aebc,U+aed8,U+af2c-af2d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-22-400-normal-yOvQSDF6.woff2) format("woff2");unicode-range:U+9e30-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78-9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b-9e8c,U+9e90-9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4-9ea5,U+9ea9-9eaa,U+9eb4-9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2-9ed3,U+9ed5-9ed6,U+9ed9,U+9edc-9edd,U+9edf-9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3-9ef4,U+9ef6,U+9ef9,U+9efb-9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39,U+9f3d-9f3e,U+9f41,U+9f4a-9f4b,U+9f51-9f52,U+9f61-9f63,U+9f66-9f67,U+9f80-9f81}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-23-400-normal-D0XQUkMM.woff2) format("woff2");unicode-range:U+9c82-9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad-9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf-9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc-9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee-9cef,U+9cf3-9cf4,U+9cf6,U+9cfc-9cfd,U+9d02,U+9d08-9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c-9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9-9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e2f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-24-400-normal-mI4tDgE1.woff2) format("woff2");unicode-range:U+9a80,U+9a83,U+9a85,U+9a88-9a8a,U+9a8d-9a8e,U+9a90,U+9a92-9a93,U+9a95-9a96,U+9a98-9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5-9ab6,U+9ab9-9aba,U+9ac0-9ac4,U+9ac8,U+9acb-9acc,U+9ace-9acf,U+9ad1-9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea-9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03-9b04,U+9b06,U+9b08,U+9b0d,U+9b0f-9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22-9b23,U+9b25,U+9b27-9b28,U+9b2a,U+9b2f,U+9b31-9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d-9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61-9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f-9ba0,U+9ba8,U+9baa-9bab,U+9bad-9bae,U+9bb0-9bb1,U+9bb8,U+9bc9-9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0-9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39,U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77-9c78,U+9c7b,U+9c7f-9c80}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-25-400-normal-CD3JKveN.woff2) format("woff2");unicode-range:U+98dd,U+98e1-98e2,U+98e7-98ea,U+98ec,U+98ee-98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c-990d,U+9913-9914,U+9918,U+991a-991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938-9939,U+993d-993e,U+9945,U+994b-994c,U+9951-9952,U+9954-9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b-996c,U+996f,U+9974-9975,U+9977-9979,U+997d-997e,U+9980-9981,U+9983-9984,U+9987,U+998a-998b,U+998d-9991,U+9993-9995,U+9997-9998,U+99a5,U+99ab,U+99ad-99ae,U+99b1,U+99b3-99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03-9a04,U+9a0e-9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d-9a4e,U+9a52,U+9a55,U+9a57,U+9a5a-9a5b,U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-26-400-normal-B306_DcA.woff2) format("woff2");unicode-range:U+975b-975c,U+9763,U+9765-9766,U+976c-976d,U+9773,U+9776,U+977a,U+977c,U+9784-9785,U+978e-978f,U+9791-9792,U+9794-9795,U+9798,U+979a,U+979e,U+97a3,U+97a5-97a6,U+97a8,U+97ab-97ac,U+97ae-97af,U+97b2,U+97b4,U+97c6,U+97cb-97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea-97eb,U+97ee,U+97fb,U+97fe-97ff,U+9801-9803,U+9805-9806,U+9808,U+980c,U+9810-9814,U+9817-9818,U+981e,U+9820-9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838-9839,U+983c,U+9846,U+984d-984f,U+9851-9852,U+9854-9855,U+9857-9858,U+985a-985b,U+9862-9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877-9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e-989f,U+98a1-98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3-98c4,U+98c6-98c8,U+98cf-98d6,U+98da-98db}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-27-400-normal-LzZF_NqI.woff2) format("woff2");unicode-range:U+95c4-95ca,U+95cc-95cd,U+95d4-95d6,U+95d8,U+95e1-95e2,U+95e9,U+95f0-95f1,U+95f3,U+95f6,U+95fc,U+95fe-95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641-9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667-9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d-968e,U+9695,U+9697-9698,U+969e,U+96a0,U+96a3-96a4,U+96a8,U+96aa,U+96b0-96b1,U+96b3-96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1-96d2,U+96d6,U+96d9,U+96db-96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701-9702,U+9705,U+9708,U+970a,U+970e-970f,U+9711,U+9719,U+9727,U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748-9749,U+9750-9751,U+975a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-28-400-normal-CEc-bbYn.woff2) format("woff2");unicode-range:U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503-9504,U+9506-9507,U+9509-950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e-958f,U+9591-9592,U+9594,U+9598-9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8-95c3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-29-400-normal-CTMIENlc.woff2) format("woff2");unicode-range:U+941c-942b,U+942d-942e,U+9432-9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451-9452,U+945a,U+9462-9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c-949d,U+94a1,U+94a3-94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94ec,U+94ee-94f1,U+94f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-30-400-normal-Dzb6Zn8O.woff2) format("woff2");unicode-range:U+92ec-92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b-932c,U+932f,U+9331-9332,U+9335-9336,U+933e,U+9340-9341,U+934a-9360,U+9362-9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393-9394,U+9396-9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0-93d1,U+93d6-93d8,U+93de-93df,U+93e1-93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e-941a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-31-400-normal-Cngcbauu.woff2) format("woff2");unicode-range:U+9163-9164,U+9169,U+9170,U+9172,U+9174,U+9179-917a,U+917d-917e,U+9182-9183,U+9185,U+918c-918d,U+9190-9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4-91b5,U+91b8,U+91ba,U+91be,U+91c0-91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7-91d8,U+91dd,U+91e3,U+91e6-91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d-920e,U+9210,U+9214-9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229-922a,U+922d,U+9234-9235,U+9237,U+9239-923a,U+923c-9240,U+9244-9246,U+9249,U+924e-924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c-929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6-92b7,U+92b9,U+92c1,U+92c5-92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-32-400-normal-BqAPF1tT.woff2) format("woff2");unicode-range:U+9004,U+900b,U+9011,U+9015-9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035-9036,U+9039-903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054-9055,U+9058-9059,U+905b-905e,U+9060-9062,U+9068-9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c-907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0-90a1,U+90a8-90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd-90be,U+90c3-90c5,U+90c7-90c8,U+90cf-90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6-90e7,U+90ea-90eb,U+90ef,U+90f4-90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114-9115,U+9118,U+911c,U+911e,U+9120,U+9122-9123,U+9127,U+912d,U+912f-9132,U+9139-913a,U+9143,U+9146,U+9149-914a,U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d-915e,U+9161-9162}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-33-400-normal-CUXtFK-t.woff2) format("woff2");unicode-range:U+8e41-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59-8e5a,U+8e5f-8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84-8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f-8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29-8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e-8f3f,U+8f44-8f45,U+8f49,U+8f4d-8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75-8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81-8f82,U+8f84,U+8f87,U+8f8a-8f8b,U+8f8d-8f8f,U+8f94-8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda,U+8fe2-8fe5,U+8fe8-8fe9,U+8fee,U+8ff3-8ff4,U+8ff8,U+8ffa}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-34-400-normal-Djw1IAuw.woff2) format("woff2");unicode-range:U+8cbd,U+8cbf-8cc4,U+8cc7-8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb-8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc-8cfd,U+8d04-8d05,U+8d07-8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13-8d14,U+8d16,U+8d1b,U+8d20,U+8d30,U+8d32-8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42-8d43,U+8d45-8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c-8d5d,U+8d5f,U+8d61,U+8d66-8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90-8d91,U+8d94-8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce-8dcf,U+8dd6-8dd7,U+8dda-8ddb,U+8dde,U+8de1,U+8de3-8de4,U+8de9,U+8deb-8dec,U+8df0-8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09-8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b-8e31,U+8e34-8e35,U+8e39-8e3a,U+8e3d,U+8e40}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-35-400-normal-Chgyqx1E.woff2) format("woff2");unicode-range:U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99-8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb4-8bb5,U+8bb7,U+8bb9,U+8bc2-8bc3,U+8bc5,U+8bcb-8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8-8bd9,U+8bdc,U+8bdf,U+8be3-8be4,U+8be7-8be9,U+8beb-8bec,U+8bee,U+8bf0,U+8bf2-8bf3,U+8bf6,U+8bf9,U+8bfc-8bfd,U+8bff-8c00,U+8c02,U+8c04,U+8c06-8c07,U+8c0c,U+8c0f,U+8c11-8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24-8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89-8c8a,U+8c8d-8c8e,U+8c90,U+8c93-8c94,U+8c98,U+8c9d-8c9e,U+8ca0-8ca2,U+8ca7-8cac,U+8caf-8cb0,U+8cb3-8cb4,U+8cb6-8cb9,U+8cbb-8cbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-36-400-normal-BxBT42kb.woff2) format("woff2");unicode-range:U+8a15-8a18,U+8a1a-8a1b,U+8a1d,U+8a1f,U+8a22-8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33-8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40-8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54-8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d-8a6e,U+8a70,U+8a72-8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c-8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0-8aa1,U+8aa3-8aa6,U+8aa8-8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8-8ab9,U+8abc,U+8abe-8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6-8ad7,U+8adb-8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed-8aee,U+8af1,U+8af3-8af4,U+8af7-8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20-8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e-8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57-8b58,U+8b5a,U+8b5c,U+8b5e,U+8b60,U+8b6c,U+8b6f-8b70,U+8b72,U+8b74,U+8b77,U+8b7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-37-400-normal-CjshmOwp.woff2) format("woff2");unicode-range:U+8882,U+8884-8886,U+8888,U+888f,U+8892-8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce-88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0-88f1,U+88f3-88f4,U+88fc-88fe,U+8900,U+8902,U+8906-8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955-8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f-8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987-8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9-89aa,U+89b2-89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3-89f4,U+89f8,U+89ff,U+8a01-8a03,U+8a07-8a0a,U+8a0e-8a0f,U+8a13}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-38-400-normal-D0ErwWLV.woff2) format("woff2");unicode-range:U+86f4,U+86f8-86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722-8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a-873b,U+873e-8740,U+8742,U+8747-8748,U+8753,U+8755,U+8757-8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2-87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca-87cb,U+87d1-87d2,U+87db-87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2-87f3,U+87fb,U+87fd-87fe,U+8802-8803,U+8805,U+880a-880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831-8832,U+8835-8836,U+8839,U+883b-883c,U+8844,U+8846,U+884a,U+884e,U+8852-8853,U+8855,U+8859,U+885b,U+885d-885e,U+8862,U+8864,U+8869-886a,U+886e-886f,U+8872,U+8879,U+887d-887f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-39-400-normal-CNreqa8s.woff2) format("woff2");unicode-range:U+8548,U+854e,U+8553,U+8556-8557,U+8559,U+855e,U+8561,U+8564-8565,U+8568-856a,U+856d,U+856f-8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585-8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8-85a9,U+85ab-85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc-85dd,U+85df-85e0,U+85e5-85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe-85ff,U+8602,U+8605-8607,U+860a-860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b-865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c-869d,U+86a1,U+86a3-86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9-86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de-86df,U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-40-400-normal-DcIMWQiP.woff2) format("woff2");unicode-range:U+83c5,U+83c8-83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea-83eb,U+83f0,U+83f4,U+83f8-83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a-840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438-8439,U+843b-843c,U+843f,U+8446-8447,U+8449,U+844e,U+8451-8452,U+8456,U+8459-845a,U+845c,U+8462,U+8466,U+846d,U+846f-8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484-8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493-8494,U+8497,U+849b,U+849e-849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1-84c2,U+84c5-84c7,U+84ca-84cb,U+84cd,U+84d0-84d1,U+84d3,U+84d6,U+84df-84e0,U+84e2-84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff-8500,U+850c,U+8511,U+8514-8515,U+8517-8518,U+851f,U+8523,U+8525-8526,U+8529,U+852b,U+852d,U+8532,U+8534-8535,U+8538-853a,U+853c,U+8543,U+8545}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-41-400-normal-CwF0ysup.woff2) format("woff2");unicode-range:U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2-82d3,U+82d5-82d6,U+82d8-82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed-82ee,U+82f3-82f4,U+82f7-82f8,U+82fa-8301,U+8306-8308,U+830c-830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a-831b,U+831d,U+8324,U+8327,U+832a,U+832c-832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347-8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f-8380,U+8382,U+8388,U+838a-838b,U+8392,U+8394,U+8396,U+8398-8399,U+839b-839c,U+83a0,U+83a2-83a3,U+83a8-83aa,U+83ae-83b0,U+83b3-83b4,U+83b6,U+83b8,U+83ba,U+83bc-83bd,U+83bf-83c0,U+83c2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-42-400-normal-ZKOUmsTa.woff2) format("woff2");unicode-range:U+8166-8169,U+816b,U+816d,U+8171,U+8173-8174,U+8178,U+817c-817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5-81a6,U+81a9,U+81b6,U+81ba-81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9-81ca,U+81cc-81cd,U+81d1,U+81d3-81d4,U+81d8,U+81db-81dc,U+81de-81df,U+81e5,U+81e7-81e9,U+81eb-81ec,U+81ee-81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b-821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237-8238,U+823a-823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259-825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283-8284,U+8288-828a,U+828d-8291,U+8293-8294,U+8296-8298,U+829f-82a1,U+82a3-82a4,U+82a7-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-43-400-normal-WDsqqjmk.woff2) format("woff2");unicode-range:U+8016,U+8018-8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034-8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068-8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084-8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad-80ae,U+80b1,U+80b6-80b8,U+80bc-80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4-80e5,U+80e7-80ed,U+80ef-80f1,U+80f3-80f4,U+80fc,U+8101,U+8104-8105,U+8107-8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f-8140,U+8142,U+8146,U+8148,U+814d-814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-44-400-normal-wq9JI-iJ.woff2) format("woff2");unicode-range:U+7ef0-7ef2,U+7ef6,U+7efa-7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b-7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44-7f45,U+7f4c-7f4d,U+7f52,U+7f54,U+7f58-7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70-7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d-7f7e,U+7f85-7f86,U+7f88-7f89,U+7f8b-7f8c,U+7f90-7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf-7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb-7fec,U+7fee-7fef,U+7ff1,U+7ff3-7ff4,U+7ff9-7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011-8012,U+8014}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-45-400-normal-DdOuPp0S.woff2) format("woff2");unicode-range:U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb-7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22-7e23,U+7e26,U+7e29,U+7e2b,U+7e2e-7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43-7e44,U+7e46-7e47,U+7e4a-7e4b,U+7e4d-7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d-7e5e,U+7e61,U+7e66-7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81-7e82,U+7e8c-7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e-7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8-7ea9,U+7eab,U+7ead-7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb-7ecc,U+7ed0,U+7ed4,U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5-7ee6,U+7ee8,U+7eeb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-46-400-normal-DxQ4Lw-z.woff2) format("woff2");unicode-range:U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30-7d31,U+7d33,U+7d35-7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b-7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b-7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79-7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1,U+7dc4,U+7dc7-7dc8,U+7dca-7dcd,U+7dcf,U+7dd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-47-400-normal-CZbI_HNG.woff2) format("woff2");unicode-range:U+7bd3-7bd4,U+7bd9-7bda,U+7bdd,U+7be0-7be1,U+7be4-7be6,U+7be9-7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07-7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15-7c16,U+7c19,U+7c1e-7c21,U+7c23-7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d-7c3e,U+7c40-7c41,U+7c43,U+7c47-7c48,U+7c4c,U+7c50,U+7c53-7c54,U+7c59,U+7c5f-7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79-7c7a,U+7c7c,U+7c81-7c82,U+7c84-7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9,U+7ccc-7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4-7ce5,U+7ce7}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-48-400-normal-JHdMabvg.woff2) format("woff2");unicode-range:U+7ae6,U+7af4-7af7,U+7afa-7afb,U+7afd-7b0a,U+7b0c,U+7b0e-7b0f,U+7b13,U+7b15-7b16,U+7b18-7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d-7b2e,U+7b30-7b3b,U+7b3e-7b3f,U+7b41-7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66-7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98-7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0-7bc1,U+7bc3-7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-49-400-normal-B43LfYL1.woff2) format("woff2");unicode-range:U+798b-798e,U+7992,U+7994-7995,U+7997-7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5-79d6,U+79dd-79de,U+79e3,U+79e7-79e8,U+79eb,U+79ed,U+79f4,U+79f7-79f8,U+79fa,U+79fe,U+7a02-7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e-7a1f,U+7a23,U+7a25-7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36-7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d-7a5e,U+7a62-7a63,U+7a66,U+7a68-7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b-7a9c,U+7a9e,U+7aa0-7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4-7ac5,U+7ac7-7ac8,U+7aca,U+7ad1-7ad2,U+7ada-7add,U+7ae1,U+7ae4}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-50-400-normal-BeYaGcbF.woff2) format("woff2");unicode-range:U+784c,U+784e-7854,U+7856-7857,U+7859-785a,U+7865,U+7869-786a,U+786d,U+786f,U+7876-7877,U+787c,U+787e-787f,U+7881,U+7887-7889,U+7893-7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9-78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9-78da,U+78dc,U+78de,U+78e1,U+78e5-78e6,U+78ea,U+78ec,U+78ef,U+78f1-78f2,U+78f4,U+78fa-78fb,U+78fe,U+7901-7902,U+7905,U+7907,U+7909,U+790b-790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e-791f,U+7921,U+7924,U+7926,U+792a-792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942-7943,U+7945-7947,U+7949-794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f-7960,U+7962,U+7964,U+7966-7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b-797c,U+797e-7980,U+7982,U+7986-7987,U+7989-798a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-51-400-normal-BXmprHGd.woff2) format("woff2");unicode-range:U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739-773a,U+773d-773f,U+7743,U+7746-7747,U+774c-774f,U+7751-7752,U+7758-775a,U+775c-775e,U+7762,U+7765-7766,U+7768-776a,U+776c-776d,U+7771-7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6-77d7,U+77d9-77da,U+77dd-77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd-77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817-7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832-7833,U+7835,U+7837,U+7839-783c,U+783e,U+7841-7844,U+7847-7849,U+784b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-52-400-normal-D6TC2b36.woff2) format("woff2");unicode-range:U+7613-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c-763d,U+763f-7640,U+7642-7643,U+7647-7648,U+764d-764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e-765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e-766f,U+7671-7673,U+7675-7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a-769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab-76ac,U+76af-76b0,U+76b2,U+76b4-76b5,U+76ba-76bb,U+76bf,U+76c2-76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff-7700,U+7703-7704,U+7707-7708,U+770c-770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-53-400-normal-DpzojyPN.woff2) format("woff2");unicode-range:U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c-752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d-754e,U+7550-7553,U+7556-7557,U+755a-755b,U+755d-755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b-756c,U+756f-7573,U+7575,U+7579-757c,U+757e-757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599-759a,U+759d,U+759f-75a0,U+75a3,U+75a5,U+75a8,U+75ac-75ad,U+75b0-75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc-75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9-75fa,U+75fc,U+75fe-7601,U+7603,U+7605-7606,U+7608-760e,U+7610-7612}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-54-400-normal-B9QLYnEh.woff2) format("woff2");unicode-range:U+73f0,U+73f2,U+73f4-73f5,U+73f7,U+73f9-73fa,U+73fc-73fd,U+73ff-7402,U+7404,U+7407-7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424-7425,U+7428-7429,U+742c-7430,U+7432,U+7435-7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a-744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473-7474,U+7477,U+747a,U+747e,U+7481-7482,U+7484,U+7486,U+7488-748b,U+748e-748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9-74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1-74d2,U+74d4-74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4-74e5,U+74e7-74e9,U+74ee-74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-55-400-normal-CYV3hjnq.woff2) format("woff2");unicode-range:U+72e6,U+72e8,U+72ef-72f0,U+72f2-72f4,U+72f6-72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c-732d,U+7330-7331,U+7333,U+7335-7337,U+7339,U+733d-733e,U+7340,U+7342,U+7344-7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f-7360,U+7362-7363,U+7365,U+7368,U+736c-736d,U+736f-7370,U+7372,U+7374-7376,U+7378,U+737a-737b,U+737d-737e,U+7382-7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6-73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5-73ea,U+73ee-73ef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-56-400-normal-B57fiM3p.woff2) format("woff2");unicode-range:U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1-71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9-71da,U+71dc,U+71df-71e0,U+71e6-71e8,U+71ea,U+71ed-71ee,U+71f4,U+71f6,U+71f9,U+71fb-71fc,U+71ff-7200,U+7207,U+720c-720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d-722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d-724e,U+7252,U+7256,U+7258,U+725a,U+725c-725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e-726f,U+7271,U+7273-7274,U+7278,U+727b,U+727d-727e,U+7281-7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f-72a0,U+72a7,U+72ad-72ae,U+72b0-72b5,U+72b7-72b8,U+72ba-72be,U+72c0-72c1,U+72c3,U+72c5-72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db,U+72dd-72df,U+72e1,U+72e5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-57-400-normal-0KJcqtwa.woff2) format("woff2");unicode-range:U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039-703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080-7081,U+7085-7086,U+708a,U+708f,U+7091,U+7094-7095,U+7098-7099,U+709c-709d,U+709f,U+70a4,U+70a9-70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce-70cf,U+70d4,U+70d9-70da,U+70dc-70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108-7109,U+710c,U+7110,U+7113-7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e-712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155-7156,U+7159-715a,U+715c,U+7161,U+7165-7166,U+7168-7169,U+716d,U+7173-7174,U+7176,U+7178,U+717a,U+717d,U+717f-7180,U+7184,U+7186-7188,U+7192,U+7198,U+719c,U+71a0,U+71a4-71a5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-58-400-normal-DHIustpc.woff2) format("woff2");unicode-range:U+6ed9,U+6edb,U+6edd,U+6edf-6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee-6eef,U+6ef2-6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08-6f09,U+6f15-6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c-6f2d,U+6f2f,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e-6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e-6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97-6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb-6fec,U+6fee-6ff1,U+6ffa,U+6ffe,U+7005-7006,U+7009}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-59-400-normal-D7wWmpIm.woff2) format("woff2");unicode-range:U+6dc3,U+6dc5-6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2-6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def-6df0,U+6df5-6df6,U+6df8,U+6dfa,U+6dfc,U+6e03-6e04,U+6e07-6e09,U+6e0b-6e0c,U+6e0e,U+6e11,U+6e13,U+6e15-6e16,U+6e19-6e1b,U+6e1e-6e1f,U+6e22,U+6e25-6e27,U+6e2b-6e2c,U+6e36-6e37,U+6e39-6e3a,U+6e3c-6e41,U+6e44-6e45,U+6e47,U+6e49-6e4b,U+6e4d-6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a-6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86-6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1-6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8-6ec9,U+6ecc,U+6ecf-6ed0,U+6ed3-6ed4,U+6ed7-6ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-60-400-normal-BkgLo8ii.woff2) format("woff2");unicode-range:U+6cb1-6cb2,U+6cb4-6cb5,U+6cb7,U+6cba,U+6cbc-6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6-6cd7,U+6cd9-6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1-6cf2,U+6cf6-6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07-6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13-6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22-6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35-6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48-6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60-6d61,U+6d63-6d65,U+6d67,U+6d6c-6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2-6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3-6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-61-400-normal-ggoUFMmb.woff2) format("woff2");unicode-range:U+6b83-6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97-6b98,U+6b9a-6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9-6baa,U+6bad,U+6baf-6bb0,U+6bb2-6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0-6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39-6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b-6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8-6ca9,U+6cac-6cae}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-62-400-normal-ytbDME29.woff2) format("woff2");unicode-range:U+69fe-6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28-6a29,U+6a2b,U+6a2f-6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a-6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e-6a7f,U+6a84,U+6a86,U+6a8e,U+6a90-6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2-6ab3,U+6ab5,U+6ab7-6ab8,U+6aba-6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2-6ad3,U+6ad8-6adc,U+6adf-6ae0,U+6ae4-6ae5,U+6ae7-6ae8,U+6afb,U+6b04-6b05,U+6b0d-6b13,U+6b16-6b17,U+6b19,U+6b24-6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53-6b54,U+6b58-6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f-6b70,U+6b73-6b74,U+6b77-6b7a,U+6b80-6b82}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-63-400-normal-BYQsjKYd.woff2) format("woff2");unicode-range:U+68d3,U+68d7,U+68dd,U+68df,U+68e1,U+68e3-68e4,U+68e6-68ed,U+68ef-68f0,U+68f2,U+68f4,U+68f6-68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f-6920,U+6924-6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a-694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e-696f,U+6971,U+6973-6974,U+6978-6979,U+697d,U+697f-6980,U+6985,U+6987-698a,U+698d-698e,U+6994-6999,U+699b,U+69a3-69a4,U+69a6-69a7,U+69ab,U+69ad-69ae,U+69b1,U+69b7,U+69bb-69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0-69d1,U+69d3-69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec-69ed,U+69f1-69f3,U+69f8,U+69fa-69fc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-64-400-normal-9n4RwFjr.woff2) format("woff2");unicode-range:U+678b-678d,U+678f,U+6792-6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac-67ad,U+67b0-67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb-67bc,U+67c0-67c1,U+67c3,U+67c5-67ca,U+67d1-67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7-67f8,U+67fa-67fb,U+67fd-67fe,U+6800-6801,U+6803-6804,U+6806,U+6809-680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840-6841,U+6844-6845,U+6849,U+684e,U+6853,U+6855-6856,U+685c-685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f-68a0,U+68a2-68a3,U+68b1,U+68b6,U+68b9-68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0-68d1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-65-400-normal-Co4l6Z_j.woff2) format("woff2");unicode-range:U+6631,U+6633-6634,U+6636,U+663a-663b,U+663d,U+6641,U+6644-6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d-665e,U+6660-6667,U+6669,U+666b-666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680-6681,U+6684-6685,U+6688-6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f-66a0,U+66a2-66a3,U+66a6,U+66aa-66ab,U+66b1-66b2,U+66b5,U+66b8-66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f-6710,U+6713,U+6715,U+6719,U+6722-6723,U+6725-6727,U+6729,U+672d-672e,U+6732-6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c-674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772-6773,U+6775,U+6777,U+677a-677d,U+6782-6783,U+6787,U+678a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-66-400-normal-BELuybXz.woff2) format("woff2");unicode-range:U+64f1-64f2,U+64f4,U+64f7-64f8,U+64fa,U+64fc,U+64fe-64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534-6535,U+6537-6538,U+653a,U+653c-653d,U+6542,U+6549-654b,U+654d-654e,U+6553-6555,U+6557-6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575-6576,U+6578-657e,U+6581-6583,U+6585-6586,U+6589,U+658e-658f,U+6592-6593,U+6595-6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab-65ac,U+65b2,U+65b6-65b7,U+65ba-65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2-65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb-65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610-6611,U+6619-661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-67-400-normal-BS_2ddPd.woff2) format("woff2");unicode-range:U+63b8-63bc,U+63be,U+63c0,U+63c3-63c4,U+63c6,U+63c8,U+63cd-63ce,U+63d1,U+63d6,U+63da-63db,U+63de,U+63e0,U+63e3,U+63e9-63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416-6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431-6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487-6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab-64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7-64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-68-400-normal-DhhAKUnY.woff2) format("woff2");unicode-range:U+622c,U+622e-6230,U+6232,U+6238,U+623b,U+623d-623e,U+6243,U+6246,U+6248-6249,U+624c,U+6255,U+6259,U+625e,U+6260-6261,U+6265-6266,U+626a,U+6271,U+627a,U+627c-627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e-629f,U+62a1,U+62a8,U+62ba-62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca-62cb,U+62cf,U+62d1,U+62d7,U+62d9-62da,U+62dd,U+62e0-62e1,U+62e3-62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312-6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331-6332,U+6334-6337,U+6339,U+633b-633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c-635d,U+6368-6369,U+636d,U+636f-6372,U+6376,U+637a-637b,U+637d,U+6382-6383,U+6387,U+638a-638b,U+638d-638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e-639f,U+63a1,U+63a3-63a4,U+63ac-63ae,U+63b1-63b5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-69-400-normal-o5cK7hs4.woff2) format("woff2");unicode-range:U+60ed-60ee,U+60f0-60f1,U+60f4,U+60f6,U+60fa,U+6100,U+6106,U+610d-610e,U+6112,U+6114-6115,U+6119,U+611c,U+6120,U+6122-6123,U+6126,U+6128-6130,U+6136-6137,U+613a,U+613d-613e,U+6144,U+6146-6147,U+614a-614b,U+6151,U+6153,U+6158,U+615a,U+615c-615d,U+615f,U+6161,U+6163-6165,U+616b-616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d-618e,U+6190-6191,U+6194,U+6199-619a,U+619c,U+619f,U+61a1,U+61a3-61a4,U+61a7-61a9,U+61ab-61ad,U+61b2-61b3,U+61b5-61b7,U+61ba-61bb,U+61bf,U+61c3-61c4,U+61c6-61c7,U+61c9-61cb,U+61d0-61d1,U+61d3-61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206-6207,U+6209,U+620b,U+620d-620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225-6226}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-70-400-normal-BlWmkfgH.woff2) format("woff2");unicode-range:U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd6,U+5fda-5fde,U+5fe1-5fe2,U+5fe4-5fe5,U+5fea,U+5fed-5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe-5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e-602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053-6054,U+6058-605b,U+605d-605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078-6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e-608f,U+6092-6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd-60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3-60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-71-400-normal-HYJki_zr.woff2) format("woff2");unicode-range:U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5-5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb-5ecc,U+5ed1-5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf-5ee0,U+5ee2-5ee3,U+5ee8,U+5eea,U+5eec,U+5eef-5ef0,U+5ef3-5ef4,U+5ef8,U+5efb-5efc,U+5efe-5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28-5f29,U+5f2c-5f2d,U+5f35-5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67-5f68,U+5f6b,U+5f6e-5f6f,U+5f72-5f78,U+5f7a,U+5f7e-5f7f,U+5f82-5f83,U+5f87,U+5f89-5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98-5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac-5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-72-400-normal-BLx1zxYv.woff2) format("woff2");unicode-range:U+5d26-5d27,U+5d2e-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a-5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68-5d69,U+5d6b-5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b-5d8c,U+5d8f,U+5d92-5d93,U+5d99,U+5d9d,U+5db2,U+5db6-5db7,U+5dba,U+5dbc-5dbd,U+5dc2-5dc3,U+5dc6-5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb-5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff-5e00,U+5e07,U+5e0f,U+5e11,U+5e13-5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33-5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53-5e54,U+5e57,U+5e59,U+5e5b,U+5e5e-5e5f,U+5e61,U+5e63,U+5e6a-5e6b,U+5e75,U+5e77,U+5e79-5e7a,U+5e7e,U+5e80-5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91-5e92,U+5e96}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-73-400-normal-tzRZHUkU.woff2) format("woff2");unicode-range:U+5bec,U+5bee-5bf0,U+5bf2-5bf3,U+5bf5-5bf6,U+5bfe,U+5c02-5c03,U+5c05,U+5c07-5c09,U+5c0b-5c0c,U+5c0e,U+5c10,U+5c12-5c13,U+5c15,U+5c17,U+5c19,U+5c1b-5c1c,U+5c1e-5c1f,U+5c22,U+5c25,U+5c28,U+5c2a-5c2b,U+5c2f-5c30,U+5c37,U+5c3b,U+5c43-5c44,U+5c46-5c47,U+5c4d,U+5c50,U+5c59,U+5c5b-5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83-5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98-5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab-5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3-5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8-5cd9,U+5cdf-5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3-5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d25}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-74-400-normal-C40Ur-xi.woff2) format("woff2");unicode-range:U+5aa0,U+5aa3-5aa4,U+5aaa,U+5aae-5aaf,U+5ab1-5ab2,U+5ab4-5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3-5ac4,U+5ac6-5ac8,U+5aca-5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b-5b0c,U+5b11,U+5b16-5b17,U+5b1b,U+5b21-5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a-5b4b,U+5b51-5b53,U+5b56,U+5b5a-5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70-5b71,U+5b73,U+5b7a-5b7b,U+5b7f-5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5-5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0-5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be5,U+5be7,U+5be9,U+5beb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-75-400-normal-CUYSz9vA.woff2) format("woff2");unicode-range:U+596a,U+596c-596e,U+5977,U+597b-597c,U+5981,U+598f,U+5997-5998,U+599a,U+599c-599d,U+59a0-59a1,U+59a3-59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2-59b3,U+59b5-59b6,U+59b8,U+59ba,U+59bd-59be,U+59c0-59c1,U+59c3-59c4,U+59c7-59ca,U+59cc-59cd,U+59cf,U+59d2,U+59d5-59d6,U+59d8-59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c-5a0d,U+5a11-5a13,U+5a15-5a16,U+5a1a-5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c-5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c-5a6d,U+5a72-5a73,U+5a75-5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96-5a97,U+5a9c,U+5a9e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-76-400-normal-JtvMmeCp.woff2) format("woff2");unicode-range:U+5820,U+5822-5823,U+5825-5826,U+582c,U+582f,U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859-585a,U+585c-585d,U+5862,U+5868-5869,U+586c-586d,U+586f-5873,U+5875,U+5879,U+587d-587e,U+5880-5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c-589d,U+58a0-58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2-58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8-58d9,U+58de-58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1-58f2,U+58f5,U+58f7-58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d-591e,U+5920,U+5922-5925,U+5928,U+592c-592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c-594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-77-400-normal-CxYpJvkI.woff2) format("woff2");unicode-range:U+56f9,U+56fc,U+56ff-5700,U+5703-5704,U+5709-570a,U+570c-570d,U+570f,U+5712-5713,U+5718-5719,U+571c,U+571e,U+5725,U+5727,U+5729-572a,U+572c,U+572e-572f,U+5734-5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c-574d,U+575c,U+5763,U+5768-5769,U+576b,U+576d-576e,U+5770,U+5773,U+5775,U+5777,U+577b-577c,U+5785-5786,U+5788,U+578c,U+578e-578f,U+5793-5795,U+5799-57a1,U+57a3-57a4,U+57a6-57aa,U+57ac-57ad,U+57af-57b2,U+57b4-57b6,U+57b8-57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc-57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1-57e2,U+57e4-57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc-57fd,U+5800-5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-581f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-78-400-normal-AGz1p3mV.woff2) format("woff2");unicode-range:U+55f5-55f7,U+55fb,U+55fe,U+5600-5601,U+5605-5606,U+5608,U+560c-560d,U+560f,U+5614,U+5616-5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663-5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b-569c,U+569e-569f,U+56a1-56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee-56ef,U+56f1-56f3,U+56f5,U+56f7-56f8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-79-400-normal-Bs84SZW2.woff2) format("woff2");unicode-range:U+550f,U+5511-5514,U+5516-5517,U+5519,U+551b,U+551d-551e,U+5520,U+5522-5523,U+5526-5527,U+552a-552c,U+5530,U+5532-5535,U+5537-5538,U+553b-5541,U+5543-5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b-557c,U+557e-557f,U+5581,U+5583,U+5585-5586,U+5588,U+558b-558c,U+558e-5591,U+5593,U+5599-559a,U+559f,U+55a5-55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9-55ba,U+55bc-55be,U+55c4,U+55c6-55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-80-400-normal-psViYwkz.woff2) format("woff2");unicode-range:U+53e7-53e9,U+53f1,U+53f4-53f5,U+53fa-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429-542a,U+542d-542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442-5443,U+5449,U+544b-544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b-545c,U+5461,U+5463-5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d-548e,U+5490-5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4-54b5,U+54b9,U+54bb,U+54be-54bf,U+54c2-54c3,U+54c9-54cc,U+54cf-54d0,U+54d3,U+54d5-54d6,U+54d9-54da,U+54dc-54de,U+54e2,U+54e7,U+54f3-54f4,U+54f8-54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-81-400-normal-BImDXGMr.woff2) format("woff2");unicode-range:U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a,U+52a2,U+52a6-52a7,U+52ac-52ad,U+52af,U+52b4-52b5,U+52b9,U+52bb-52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6-52d7,U+52d9,U+52db,U+52dd-52de,U+52e0,U+52e2-52e3,U+52e5,U+52e7-52f0,U+52f2-52f3,U+52f5-52f9,U+52fb-52fc,U+5302,U+5304,U+530b,U+530d,U+530f-5310,U+5315,U+531a,U+531c-531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5344-5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368-5369,U+536c,U+536e-536f,U+5372,U+5379-537b,U+537d,U+538d-538e,U+5390,U+5393-5394,U+5396,U+539b-539d,U+53a0-53a1,U+53a3-53a5,U+53a9,U+53ad-53ae,U+53b0,U+53b2-53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce-53cf,U+53d2-53d3,U+53d5,U+53da,U+53de-53df,U+53e1-53e2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-82-400-normal-BZZDzro0.woff2) format("woff2");unicode-range:U+5104,U+5106-5107,U+5109-510b,U+510d,U+510f-5110,U+5113,U+5115,U+5117-5118,U+511a-511c,U+511e-511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186-5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2-51a3,U+51a6-51ab,U+51ad-51ae,U+51b1,U+51b4,U+51bc-51bd,U+51bf,U+51c3,U+51c7-51c8,U+51ca-51cb,U+51cd-51ce,U+51d4,U+51d6,U+51db-51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d-520e,U+5215-5216,U+5228,U+522a,U+522c-522d,U+5233,U+523c-523d,U+523f-5240,U+5245,U+5247,U+5249,U+524b-524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263-5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-83-400-normal-cx8M2qMo.woff2) format("woff2");unicode-range:U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf-4fe0,U+4fe2-4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5-4ff6,U+4ff8,U+4ffe,U+5001,U+5005-5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027-5028,U+502b-502e,U+5030,U+5033-5034,U+5036-5039,U+503b,U+5041-5043,U+5045-5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062-5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074-5075,U+5078,U+507b,U+507d-507e,U+5080,U+5088-5089,U+5091-5092,U+5095,U+5097-509e,U+50a2-50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4-50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5-50d6,U+50da,U+50de,U+50e5-50e6,U+50ec-50ee,U+50f0-50f1,U+50f3,U+50f9-50fb,U+50fe-5102}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-84-400-normal-BtmNIfry.woff2) format("woff2");unicode-range:U+4ea3,U+4ea5,U+4eb0-4eb1,U+4eb3-4eb6,U+4eb8-4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8-4ec9,U+4ecc,U+4ecf-4ed0,U+4ed2,U+4eda-4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee-4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08-4f09,U+4f0b,U+4f0e,U+4f12-4f13,U+4f15,U+4f1b,U+4f1d,U+4f21-4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36-4f37,U+4f39,U+4f3e,U+4f40-4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57-4f58,U+4f5d-4f5e,U+4f61-4f62,U+4f64-4f65,U+4f67,U+4f6a,U+4f6e-4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89-4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9-4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5-4fc6,U+4fcd-4fce,U+4fd0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-85-400-normal-CNc66YTY.woff2) format("woff2");unicode-range:U+3129,U+3131,U+3134,U+3137,U+3139,U+3141-3142,U+3145,U+3147-3148,U+314b,U+314d-314e,U+315c,U+3160-3161,U+3163-3164,U+3186,U+318d,U+3192,U+3196-3198,U+319e-319f,U+3220-3229,U+3231,U+3268,U+3297,U+3299,U+32a3,U+338e-338f,U+3395,U+339c-339e,U+33c4,U+33d1-33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0-35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4db6-4dbf,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46-4e47,U+4e57,U+4e5a-4e5c,U+4e64-4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98-4e99,U+4e9c,U+4e9e-4ea0,U+4ea2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-86-400-normal-Cs9yXoGU.woff2) format("woff2");unicode-range:U+279f-27a2,U+27a4-27a5,U+27a8,U+27b0,U+27b2-27b3,U+27b9,U+27e8-27e9,U+27f6,U+2800,U+28ec,U+2913,U+2921-2922,U+2934-2935,U+2a2f,U+2b05-2b07,U+2b50,U+2b55,U+2bc5-2bc6,U+2e1c-2e1d,U+2ebb,U+2f00,U+2f08,U+2f24,U+2f2d,U+2f2f-2f30,U+2f3c,U+2f45,U+2f63-2f64,U+2f74,U+2f83,U+2f8f,U+2fbc,U+3003,U+3005-3007,U+3012-3013,U+301c-301e,U+3021,U+3023-3024,U+3030,U+3034-3035,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c-307d,U+3080,U+308e,U+3090-3091,U+3099-309b,U+309d-309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd-30fe,U+3105-3126,U+3128}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-87-400-normal-BGelIZWt.woff2) format("woff2");unicode-range:U+2651-2655,U+2658,U+265a-265b,U+265d-265e,U+2660-266d,U+266f,U+267b,U+2688,U+2693-2696,U+2698-2699,U+269c,U+26a0-26a1,U+26a4,U+26aa-26ab,U+26bd-26be,U+26c4-26c5,U+26d4,U+26e9,U+26f0-26f1,U+26f3,U+26f5,U+26fd,U+2702,U+2704-2706,U+2708-270f,U+2712-2718,U+271a-271b,U+271d,U+271f,U+2721,U+2724-2730,U+2732-2734,U+273a,U+273d-2744,U+2747-2749,U+274c,U+274e-274f,U+2753-2757,U+275b,U+275d-275e,U+2763,U+2765-2767,U+276e-276f,U+2776-277e,U+2780-2782,U+278a-278c,U+278e,U+2794-2796,U+279c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-88-400-normal-D3GwXLyo.woff2) format("woff2");unicode-range:U+2550-2551,U+2554,U+2557,U+255a-255b,U+255d,U+255f-2560,U+2562-2563,U+2565-2567,U+2569-256a,U+256c-2572,U+2579,U+2580-2595,U+25a1,U+25a3,U+25a9-25ad,U+25b0,U+25b3-25bb,U+25bd-25c2,U+25c4,U+25c8-25cb,U+25cd,U+25d0-25d1,U+25d4-25d5,U+25d8,U+25dc-25e6,U+25ea-25eb,U+25ef,U+25fe,U+2600-2604,U+2609,U+260e-260f,U+2611,U+2614-2615,U+2618,U+261a-2620,U+2622-2623,U+262a,U+262d-2630,U+2639-2640,U+2642,U+2648-2650}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-89-400-normal-acup1U1Z.woff2) format("woff2");unicode-range:U+23f0,U+23f3,U+2445,U+2449,U+2465-2471,U+2474-249b,U+24b8,U+24c2,U+24c7,U+24c9,U+24d0,U+24d2,U+24d4,U+24d8,U+24dd-24de,U+24e3,U+24e6,U+24e8,U+2500-2509,U+250b-2526,U+2528-2534,U+2536-2537,U+253b-2548,U+254a-254b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-90-400-normal-DRuAc-VY.woff2) format("woff2");unicode-range:U+207c-2083,U+208c-208e,U+2092,U+20a6,U+20a8-20ad,U+20af,U+20b1,U+20b4-20b5,U+20b8-20ba,U+20bd,U+20db,U+20dd,U+20e0,U+20e3,U+2105,U+2109,U+2113,U+2116-2117,U+2120-2121,U+2126,U+212b,U+2133,U+2139,U+2194,U+2196-2199,U+21a0,U+21a9-21aa,U+21af,U+21b3,U+21b5,U+21ba-21bb,U+21c4,U+21ca,U+21cc,U+21d0-21d4,U+21e1,U+21e6-21e9,U+2200,U+2202,U+2205-2208,U+220f,U+2211-2212,U+2215,U+2217-2219,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223c-223d,U+2248,U+224c,U+2252,U+2256,U+2260-2261,U+2266-2267,U+226a-226b,U+226e-226f,U+2282-2283,U+2295,U+2297,U+2299,U+22a5,U+22b0-22b1,U+22b9,U+22bf,U+22c5-22c6,U+22ef,U+2304,U+2307,U+230b,U+2312-2314,U+2318,U+231a-231b,U+2323,U+239b,U+239d-239e,U+23a0,U+23e9}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-91-400-normal-BdbNZCTz.woff2) format("woff2");unicode-range:U+1d34-1d35,U+1d38-1d3a,U+1d3c,U+1d3f-1d40,U+1d49,U+1d4e-1d4f,U+1d52,U+1d55,U+1d5b,U+1d5e,U+1d9c,U+1da0,U+1dc4-1dc5,U+1e69,U+1e73,U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd-1ebe,U+1ec0-1ec3,U+1ec5-1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+1f62,U+1f7b,U+2001-2002,U+2004-2006,U+2009-200a,U+200c-2012,U+2015-2016,U+201a,U+201e-2021,U+2023,U+2025,U+2028,U+202a-202d,U+202f-2030,U+2032-2033,U+2035,U+2038,U+203c,U+203e-203f,U+2043-2044,U+2049,U+204d-204e,U+2060-2061,U+2070,U+2074-2078,U+207a-207b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-97-400-normal-Diy_tB10.woff2) format("woff2");unicode-range:U+2ae-2b3,U+2b5-2bf,U+2c2-2c3,U+2c6-2d1,U+2d8-2da,U+2dc,U+2e1-2e3,U+2e5,U+2eb,U+2ee-2f0,U+2f2-2f7,U+2f9-2ff,U+302-30d,U+311,U+31b,U+321-325,U+327-329,U+32b-32c,U+32e-32f,U+331-339,U+33c-33d,U+33f,U+348,U+352,U+35c,U+35e-35f,U+361,U+363,U+368,U+36c,U+36f,U+530-540,U+55d-55e,U+561,U+563,U+565,U+56b,U+56e-579}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-98-400-normal-CuDKcdze.woff2) format("woff2");unicode-range:U+176-17f,U+192,U+194,U+19a-19b,U+19d,U+1a0-1a1,U+1a3-1a4,U+1aa,U+1ac-1ad,U+1af-1bf,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e3,U+1e7,U+1e9,U+1ee,U+1f0-1f1,U+1f3,U+1f5-1ff,U+219-21b,U+221,U+223-226,U+228,U+22b,U+22f,U+231,U+234-237,U+23a-23b,U+23d,U+250-252,U+254-255,U+259-25e,U+261-263,U+265,U+268,U+26a-26b,U+26f-277,U+279,U+27b-280,U+282-283,U+285,U+28a,U+28c,U+28f,U+292,U+294-296,U+298-29a,U+29c,U+29f,U+2a1-2a4,U+2a6-2a7,U+2a9,U+2ab}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-99-400-normal-BTAaudar.woff2) format("woff2");unicode-range:U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7-f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e-11f,U+121,U+123,U+125-127,U+129-12a,U+12d,U+12f-13f,U+141-142,U+144,U+146,U+14b-14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-100-400-normal-CX-7pUk_.woff2) format("woff2");unicode-range:U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5340,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+5618,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5be6,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+62ce,U+62ed,U+6345,U+6390,U+63b0,U+63b7,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f31,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+733f,U+7396,U+739f,U+7459,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b-814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385-8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8bb3,U+8d2e,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+99ac,U+9a6f,U+9a87,U+9a8b,U+9ab7,U+9abc,U+9ac5,U+9e25,U+e608,U+e621,U+ff06,U+ff14-ff16}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-101-400-normal-DYFU5ahq.woff2) format("woff2");unicode-range:U+161,U+926,U+928,U+939,U+93f-940,U+94d,U+e17,U+e22,U+e44,U+25c7,U+25ce,U+2764,U+3009,U+3016-3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+51c4,U+5225,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+560e,U+565c,U+5662,U+5669,U+566c,U+56bc,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5ac9,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+620c,U+6273,U+62c7,U+62f7,U+6320,U+6342,U+6401-6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+72e9,U+7409,U+7422,U+745a,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+8042,U+808b,U+8236,U+82b8-82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8aaa,U+8c41,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541-9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc-96cd,U+96cf,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+e606-e607,U+e60a,U+e60c,U+e60e,U+fe0f,U+ff02,U+ff1e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-102-400-normal-lPQNp5DG.woff2) format("woff2");unicode-range:U+10c,U+627-629,U+639,U+644,U+64a,U+203b,U+2265,U+2463,U+2573,U+25b2,U+3448-3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+516e,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5364,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6ed5,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+7405,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+803f,U+8046,U+80fa,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8cec,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9704,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+9f9a,U+e60b,U+e610,U+ff10,U+ff13,U+ff3b,U+ff3d,U+f012b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-103-400-normal-DrxRoDmn.woff2) format("woff2");unicode-range:U+60,U+631,U+2606,U+3014-3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+609a,U+60df,U+6168,U+61c8,U+6236,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+67da,U+67ec,U+6813,U+6816,U+6869,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119-711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+73fe,U+7410,U+7426,U+7455,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+81b3,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8e72,U+8f9c,U+900d,U+904b,U+904e,U+9063,U+90a2,U+90b9,U+9119,U+94f2,U+952f,U+9576-9577,U+9593,U+95f8,U+961c,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11-ff12,U+fffd}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-104-400-normal-DbzfdvQ5.woff2) format("woff2");unicode-range:U+2003,U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d-575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a1f,U+5a49,U+5ac2,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f6c,U+5f8c,U+603c,U+608d,U+611b,U+6127,U+62a0,U+62d0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6703,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0-8be1,U+8c0e,U+8d29,U+8d50,U+8d63,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9610,U+9631,U+9699,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+e600,U+e60f,U+e611,U+ff05,U+ff0b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-105-400-normal-BiKizsW3.woff2) format("woff2");unicode-range:U+5e,U+2190,U+250a,U+25bc,U+25cf,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bb0,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6e9c,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82bd,U+8305,U+8328,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8e81,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+9540,U+958b,U+9600,U+9640,U+96b6,U+96c7,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ad6d,U+c5b4,U+d55c,U+ff0f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-106-400-normal-DDMMORp2.woff2) format("woff2");unicode-range:U+b0,U+2191,U+2460-2461,U+25c6,U+300e-300f,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54b1,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+61be,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+6380,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0-80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+82ad,U+8304,U+8393,U+83b9,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681-8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95f7,U+9706,U+9709,U+9774,U+98a0,U+9e64,U+9f9f,U+e603}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-107-400-normal-DUS2YNa3.woff2) format("woff2");unicode-range:U+200b,U+2103,U+4e18,U+4e27-4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+83ca,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95ef,U+95fa,U+95fd,U+96c0,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9887,U+9b4f,U+9e2d,U+9f0e,U+e601-e602,U+e604-e605,U+ff5c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-108-400-normal-D80tGT87.woff2) format("woff2");unicode-range:U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20-6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b-886c,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b-8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+964c,U+9675,U+971c,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f,U+e715}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-109-400-normal-ZEHPyOzB.woff2) format("woff2");unicode-range:U+a5,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366-5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3-62d4,U+63f4,U+642c,U+6478,U+6491-6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+85aa,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90aa,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+e675,U+e6b9,U+ffe5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-110-400-normal-D1IYcvpb.woff2) format("woff2");unicode-range:U+300c-300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237-7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+feff,U+ff0d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-111-400-normal-C5Xi9UGz.woff2) format("woff2");unicode-range:U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3-4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076-5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54-5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75-8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-112-400-normal-F9zvXQVU.woff2) format("woff2");unicode-range:U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd-5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696-6697,U+66dd,U+675f,U+676f-6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4-80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f-9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634-9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-113-400-normal-DZoqVzDv.woff2) format("woff2");unicode-range:U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987-5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388-6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6740,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade-7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4-96c5,U+96e8,U+96f6-96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d-996e,U+9b54,U+9e21,U+9ebb,U+9f50}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-114-400-normal-CZUMxNv_.woff2) format("woff2");unicode-range:U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b63,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-115-400-normal-BQfWDt6M.woff2) format("woff2");unicode-range:U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956-5957,U+5a92,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838-6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4b,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26-8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632-9633,U+963f,U+968f-9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-116-400-normal-B9rv4EzF.woff2) format("woff2");unicode-range:U+2b,U+40,U+3000,U+300a-300b,U+4e16,U+4e66,U+4e70,U+4e91-4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17-4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e-529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7-53d8,U+53ea,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3-81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f-9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-117-400-normal-QPrBdlQO.woff2) format("woff2");unicode-range:U+4e,U+201c-201d,U+3010-3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b-4e8c,U+4ea4,U+4eab-4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6-4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e38,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc-91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-118-400-normal-CqQ_A8sl.woff2) format("woff2");unicode-range:U+d,U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d-4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a-4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee4-4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7-53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd-56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e73-5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210-6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247-7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08-ff09}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-119-400-normal-flOVnW3A.woff2) format("woff2");unicode-range:U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+df-e5,U+e7-ea,U+ec-ed,U+f1-f4,U+f6,U+f9-fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+2022,U+2027,U+2039-203a,U+2122,U+3001-3002,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075-3076,U+3078-3079,U+307b,U+307e-307f,U+3081-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3-30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30fb-30fc,U+3127,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708-6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-cyrillic-400-normal-CgZvxLpU.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-vietnamese-400-normal-Bi2eM1Po.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-latin-ext-400-normal-KRK7eeLK.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-latin-400-normal-C8q2FS1w.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-4-500-normal-O1diwGl6.woff2) format("woff2");unicode-range:U+1f1e9-1f1f5,U+1f1f7-1f1ff,U+1f21a,U+1f232,U+1f234-1f237,U+1f250-1f251,U+1f300,U+1f302-1f308,U+1f30a-1f311,U+1f315,U+1f319-1f320,U+1f324,U+1f327,U+1f32a,U+1f32c-1f32d,U+1f330-1f357,U+1f359-1f37e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-5-500-normal-BdqLNb8-.woff2) format("woff2");unicode-range:U+fee3,U+fef3,U+ff03-ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c-ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ff61-ff65,U+ff67-ff6a,U+ff6c,U+ff6f-ff78,U+ff7a-ff7d,U+ff80-ff84,U+ff86,U+ff89-ff8e,U+ff92,U+ff97-ff9b,U+ff9d-ff9f,U+ffe0-ffe4,U+ffe6,U+ffe9,U+ffeb,U+ffed,U+fffc,U+1f004,U+1f170-1f171,U+1f192-1f195,U+1f198-1f19a,U+1f1e6-1f1e8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-6-500-normal-ClybqCn5.woff2) format("woff2");unicode-range:U+f0a7,U+f0b2,U+f0b7,U+f0c9,U+f0d8,U+f0da,U+f0dc-f0dd,U+f0e0,U+f0e6,U+f0eb,U+f0fc,U+f101,U+f104-f105,U+f107,U+f10b,U+f11b,U+f14b,U+f18a,U+f193,U+f1d6-f1d7,U+f244,U+f27a,U+f296,U+f2ae,U+f471,U+f4b3,U+f610-f611,U+f880-f881,U+f8ec,U+f8f5,U+f8ff,U+f901,U+f90a,U+f92c-f92d,U+f934,U+f937,U+f941,U+f965,U+f967,U+f969,U+f96b,U+f96f,U+f974,U+f978-f979,U+f97e,U+f981,U+f98a,U+f98e,U+f997,U+f99c,U+f9b2,U+f9b5,U+f9ba,U+f9be,U+f9ca,U+f9d0-f9d1,U+f9dd,U+f9e0-f9e1,U+f9e4,U+f9f7,U+fa00-fa01,U+fa08,U+fa0a,U+fa11,U+fb01-fb02,U+fdfc,U+fe0e,U+fe30-fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b,U+fe8e,U+fe92-fe93,U+feae,U+feb8,U+fecb-fecc,U+fee0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-21-500-normal-Dsw-xocd.woff2) format("woff2");unicode-range:U+9f83,U+9f85-9f8d,U+9f90-9f91,U+9f94-9f96,U+9f98,U+9f9b-9f9c,U+9f9e,U+9fa0,U+9fa2,U+9ff0-9fff,U+a001,U+a007,U+a025,U+a046-a047,U+a057,U+a072,U+a078-a079,U+a083,U+a085,U+a100,U+a118,U+a132,U+a134,U+a1f4,U+a242,U+a4a6,U+a4aa,U+a4b0-a4b1,U+a4b3,U+a9c1-a9c2,U+ac00-ac01,U+ac04,U+ac08,U+ac10-ac11,U+ac13-ac16,U+ac19,U+ac1c-ac1d,U+ac24,U+ac70-ac71,U+ac74,U+ac77-ac78,U+ac80-ac81,U+ac83,U+ac8c,U+ac90,U+ac9f-aca0,U+aca8-aca9,U+acac,U+acb0,U+acbd,U+acc1,U+acc4,U+ace0-ace1,U+ace4,U+ace8,U+acf3,U+acf5,U+acfc-acfd,U+ad00,U+ad0c,U+ad11,U+ad1c,U+ad34,U+ad50,U+ad64,U+ad6c,U+ad70,U+ad74,U+ad7f,U+ad81,U+ad8c,U+adc0,U+adc8,U+addc,U+ade0,U+adf8-adf9,U+adfc,U+ae00,U+ae08-ae09,U+ae0b,U+ae30,U+ae34,U+ae38,U+ae40,U+ae4a,U+ae4c,U+ae54,U+ae68,U+aebc,U+aed8,U+af2c-af2d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-22-500-normal-Duo_NxTl.woff2) format("woff2");unicode-range:U+9e30-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78-9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b-9e8c,U+9e90-9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4-9ea5,U+9ea9-9eaa,U+9eb4-9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2-9ed3,U+9ed5-9ed6,U+9ed9,U+9edc-9edd,U+9edf-9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3-9ef4,U+9ef6,U+9ef9,U+9efb-9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39,U+9f3d-9f3e,U+9f41,U+9f4a-9f4b,U+9f51-9f52,U+9f61-9f63,U+9f66-9f67,U+9f80-9f81}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-23-500-normal-BvADtLGk.woff2) format("woff2");unicode-range:U+9c82-9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad-9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf-9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc-9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee-9cef,U+9cf3-9cf4,U+9cf6,U+9cfc-9cfd,U+9d02,U+9d08-9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c-9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9-9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e2f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-24-500-normal-DMJ84PR8.woff2) format("woff2");unicode-range:U+9a80,U+9a83,U+9a85,U+9a88-9a8a,U+9a8d-9a8e,U+9a90,U+9a92-9a93,U+9a95-9a96,U+9a98-9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5-9ab6,U+9ab9-9aba,U+9ac0-9ac4,U+9ac8,U+9acb-9acc,U+9ace-9acf,U+9ad1-9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea-9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03-9b04,U+9b06,U+9b08,U+9b0d,U+9b0f-9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22-9b23,U+9b25,U+9b27-9b28,U+9b2a,U+9b2f,U+9b31-9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d-9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61-9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f-9ba0,U+9ba8,U+9baa-9bab,U+9bad-9bae,U+9bb0-9bb1,U+9bb8,U+9bc9-9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0-9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39,U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77-9c78,U+9c7b,U+9c7f-9c80}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-25-500-normal-DKB1lxHE.woff2) format("woff2");unicode-range:U+98dd,U+98e1-98e2,U+98e7-98ea,U+98ec,U+98ee-98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c-990d,U+9913-9914,U+9918,U+991a-991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938-9939,U+993d-993e,U+9945,U+994b-994c,U+9951-9952,U+9954-9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b-996c,U+996f,U+9974-9975,U+9977-9979,U+997d-997e,U+9980-9981,U+9983-9984,U+9987,U+998a-998b,U+998d-9991,U+9993-9995,U+9997-9998,U+99a5,U+99ab,U+99ad-99ae,U+99b1,U+99b3-99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03-9a04,U+9a0e-9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d-9a4e,U+9a52,U+9a55,U+9a57,U+9a5a-9a5b,U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-26-500-normal-Bc3Q36GO.woff2) format("woff2");unicode-range:U+975b-975c,U+9763,U+9765-9766,U+976c-976d,U+9773,U+9776,U+977a,U+977c,U+9784-9785,U+978e-978f,U+9791-9792,U+9794-9795,U+9798,U+979a,U+979e,U+97a3,U+97a5-97a6,U+97a8,U+97ab-97ac,U+97ae-97af,U+97b2,U+97b4,U+97c6,U+97cb-97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea-97eb,U+97ee,U+97fb,U+97fe-97ff,U+9801-9803,U+9805-9806,U+9808,U+980c,U+9810-9814,U+9817-9818,U+981e,U+9820-9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838-9839,U+983c,U+9846,U+984d-984f,U+9851-9852,U+9854-9855,U+9857-9858,U+985a-985b,U+9862-9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877-9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e-989f,U+98a1-98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3-98c4,U+98c6-98c8,U+98cf-98d6,U+98da-98db}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-27-500-normal-8q_kP--H.woff2) format("woff2");unicode-range:U+95c4-95ca,U+95cc-95cd,U+95d4-95d6,U+95d8,U+95e1-95e2,U+95e9,U+95f0-95f1,U+95f3,U+95f6,U+95fc,U+95fe-95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641-9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667-9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d-968e,U+9695,U+9697-9698,U+969e,U+96a0,U+96a3-96a4,U+96a8,U+96aa,U+96b0-96b1,U+96b3-96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1-96d2,U+96d6,U+96d9,U+96db-96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701-9702,U+9705,U+9708,U+970a,U+970e-970f,U+9711,U+9719,U+9727,U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748-9749,U+9750-9751,U+975a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-28-500-normal-CivsKE7T.woff2) format("woff2");unicode-range:U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503-9504,U+9506-9507,U+9509-950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e-958f,U+9591-9592,U+9594,U+9598-9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8-95c3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-29-500-normal-BTXg8v_Z.woff2) format("woff2");unicode-range:U+941c-942b,U+942d-942e,U+9432-9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451-9452,U+945a,U+9462-9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c-949d,U+94a1,U+94a3-94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94ec,U+94ee-94f1,U+94f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-30-500-normal-BvVSvPAW.woff2) format("woff2");unicode-range:U+92ec-92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b-932c,U+932f,U+9331-9332,U+9335-9336,U+933e,U+9340-9341,U+934a-9360,U+9362-9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393-9394,U+9396-9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0-93d1,U+93d6-93d8,U+93de-93df,U+93e1-93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e-941a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-31-500-normal-CXR93Yl5.woff2) format("woff2");unicode-range:U+9163-9164,U+9169,U+9170,U+9172,U+9174,U+9179-917a,U+917d-917e,U+9182-9183,U+9185,U+918c-918d,U+9190-9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4-91b5,U+91b8,U+91ba,U+91be,U+91c0-91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7-91d8,U+91dd,U+91e3,U+91e6-91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d-920e,U+9210,U+9214-9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229-922a,U+922d,U+9234-9235,U+9237,U+9239-923a,U+923c-9240,U+9244-9246,U+9249,U+924e-924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c-929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6-92b7,U+92b9,U+92c1,U+92c5-92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-32-500-normal-bEbagM5b.woff2) format("woff2");unicode-range:U+9004,U+900b,U+9011,U+9015-9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035-9036,U+9039-903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054-9055,U+9058-9059,U+905b-905e,U+9060-9062,U+9068-9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c-907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0-90a1,U+90a8-90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd-90be,U+90c3-90c5,U+90c7-90c8,U+90cf-90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6-90e7,U+90ea-90eb,U+90ef,U+90f4-90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114-9115,U+9118,U+911c,U+911e,U+9120,U+9122-9123,U+9127,U+912d,U+912f-9132,U+9139-913a,U+9143,U+9146,U+9149-914a,U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d-915e,U+9161-9162}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-33-500-normal-Co2VsUhm.woff2) format("woff2");unicode-range:U+8e41-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59-8e5a,U+8e5f-8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84-8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f-8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29-8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e-8f3f,U+8f44-8f45,U+8f49,U+8f4d-8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75-8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81-8f82,U+8f84,U+8f87,U+8f8a-8f8b,U+8f8d-8f8f,U+8f94-8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda,U+8fe2-8fe5,U+8fe8-8fe9,U+8fee,U+8ff3-8ff4,U+8ff8,U+8ffa}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-34-500-normal-Bs1nGgXz.woff2) format("woff2");unicode-range:U+8cbd,U+8cbf-8cc4,U+8cc7-8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb-8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc-8cfd,U+8d04-8d05,U+8d07-8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13-8d14,U+8d16,U+8d1b,U+8d20,U+8d30,U+8d32-8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42-8d43,U+8d45-8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c-8d5d,U+8d5f,U+8d61,U+8d66-8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90-8d91,U+8d94-8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce-8dcf,U+8dd6-8dd7,U+8dda-8ddb,U+8dde,U+8de1,U+8de3-8de4,U+8de9,U+8deb-8dec,U+8df0-8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09-8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b-8e31,U+8e34-8e35,U+8e39-8e3a,U+8e3d,U+8e40}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-35-500-normal-_sfdXfug.woff2) format("woff2");unicode-range:U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99-8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb4-8bb5,U+8bb7,U+8bb9,U+8bc2-8bc3,U+8bc5,U+8bcb-8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8-8bd9,U+8bdc,U+8bdf,U+8be3-8be4,U+8be7-8be9,U+8beb-8bec,U+8bee,U+8bf0,U+8bf2-8bf3,U+8bf6,U+8bf9,U+8bfc-8bfd,U+8bff-8c00,U+8c02,U+8c04,U+8c06-8c07,U+8c0c,U+8c0f,U+8c11-8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24-8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89-8c8a,U+8c8d-8c8e,U+8c90,U+8c93-8c94,U+8c98,U+8c9d-8c9e,U+8ca0-8ca2,U+8ca7-8cac,U+8caf-8cb0,U+8cb3-8cb4,U+8cb6-8cb9,U+8cbb-8cbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-36-500-normal-CaI-3T3h.woff2) format("woff2");unicode-range:U+8a15-8a18,U+8a1a-8a1b,U+8a1d,U+8a1f,U+8a22-8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33-8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40-8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54-8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d-8a6e,U+8a70,U+8a72-8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c-8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0-8aa1,U+8aa3-8aa6,U+8aa8-8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8-8ab9,U+8abc,U+8abe-8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6-8ad7,U+8adb-8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed-8aee,U+8af1,U+8af3-8af4,U+8af7-8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20-8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e-8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57-8b58,U+8b5a,U+8b5c,U+8b5e,U+8b60,U+8b6c,U+8b6f-8b70,U+8b72,U+8b74,U+8b77,U+8b7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-37-500-normal-B98IgClf.woff2) format("woff2");unicode-range:U+8882,U+8884-8886,U+8888,U+888f,U+8892-8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce-88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0-88f1,U+88f3-88f4,U+88fc-88fe,U+8900,U+8902,U+8906-8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955-8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f-8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987-8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9-89aa,U+89b2-89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3-89f4,U+89f8,U+89ff,U+8a01-8a03,U+8a07-8a0a,U+8a0e-8a0f,U+8a13}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-38-500-normal-DRw4QbjB.woff2) format("woff2");unicode-range:U+86f4,U+86f8-86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722-8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a-873b,U+873e-8740,U+8742,U+8747-8748,U+8753,U+8755,U+8757-8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2-87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca-87cb,U+87d1-87d2,U+87db-87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2-87f3,U+87fb,U+87fd-87fe,U+8802-8803,U+8805,U+880a-880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831-8832,U+8835-8836,U+8839,U+883b-883c,U+8844,U+8846,U+884a,U+884e,U+8852-8853,U+8855,U+8859,U+885b,U+885d-885e,U+8862,U+8864,U+8869-886a,U+886e-886f,U+8872,U+8879,U+887d-887f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-39-500-normal-CAOP0xX7.woff2) format("woff2");unicode-range:U+8548,U+854e,U+8553,U+8556-8557,U+8559,U+855e,U+8561,U+8564-8565,U+8568-856a,U+856d,U+856f-8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585-8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8-85a9,U+85ab-85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc-85dd,U+85df-85e0,U+85e5-85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe-85ff,U+8602,U+8605-8607,U+860a-860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b-865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c-869d,U+86a1,U+86a3-86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9-86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de-86df,U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-40-500-normal-CFdw4jgZ.woff2) format("woff2");unicode-range:U+83c5,U+83c8-83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea-83eb,U+83f0,U+83f4,U+83f8-83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a-840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438-8439,U+843b-843c,U+843f,U+8446-8447,U+8449,U+844e,U+8451-8452,U+8456,U+8459-845a,U+845c,U+8462,U+8466,U+846d,U+846f-8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484-8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493-8494,U+8497,U+849b,U+849e-849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1-84c2,U+84c5-84c7,U+84ca-84cb,U+84cd,U+84d0-84d1,U+84d3,U+84d6,U+84df-84e0,U+84e2-84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff-8500,U+850c,U+8511,U+8514-8515,U+8517-8518,U+851f,U+8523,U+8525-8526,U+8529,U+852b,U+852d,U+8532,U+8534-8535,U+8538-853a,U+853c,U+8543,U+8545}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-41-500-normal-DxaQVwJP.woff2) format("woff2");unicode-range:U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2-82d3,U+82d5-82d6,U+82d8-82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed-82ee,U+82f3-82f4,U+82f7-82f8,U+82fa-8301,U+8306-8308,U+830c-830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a-831b,U+831d,U+8324,U+8327,U+832a,U+832c-832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347-8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f-8380,U+8382,U+8388,U+838a-838b,U+8392,U+8394,U+8396,U+8398-8399,U+839b-839c,U+83a0,U+83a2-83a3,U+83a8-83aa,U+83ae-83b0,U+83b3-83b4,U+83b6,U+83b8,U+83ba,U+83bc-83bd,U+83bf-83c0,U+83c2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-42-500-normal-BqjPf_lN.woff2) format("woff2");unicode-range:U+8166-8169,U+816b,U+816d,U+8171,U+8173-8174,U+8178,U+817c-817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5-81a6,U+81a9,U+81b6,U+81ba-81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9-81ca,U+81cc-81cd,U+81d1,U+81d3-81d4,U+81d8,U+81db-81dc,U+81de-81df,U+81e5,U+81e7-81e9,U+81eb-81ec,U+81ee-81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b-821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237-8238,U+823a-823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259-825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283-8284,U+8288-828a,U+828d-8291,U+8293-8294,U+8296-8298,U+829f-82a1,U+82a3-82a4,U+82a7-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-43-500-normal-Btkg4xpj.woff2) format("woff2");unicode-range:U+8016,U+8018-8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034-8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068-8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084-8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad-80ae,U+80b1,U+80b6-80b8,U+80bc-80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4-80e5,U+80e7-80ed,U+80ef-80f1,U+80f3-80f4,U+80fc,U+8101,U+8104-8105,U+8107-8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f-8140,U+8142,U+8146,U+8148,U+814d-814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-44-500-normal-DX-NL8hl.woff2) format("woff2");unicode-range:U+7ef0-7ef2,U+7ef6,U+7efa-7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b-7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44-7f45,U+7f4c-7f4d,U+7f52,U+7f54,U+7f58-7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70-7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d-7f7e,U+7f85-7f86,U+7f88-7f89,U+7f8b-7f8c,U+7f90-7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf-7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb-7fec,U+7fee-7fef,U+7ff1,U+7ff3-7ff4,U+7ff9-7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011-8012,U+8014}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-45-500-normal-BQ7H7gEJ.woff2) format("woff2");unicode-range:U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb-7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22-7e23,U+7e26,U+7e29,U+7e2b,U+7e2e-7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43-7e44,U+7e46-7e47,U+7e4a-7e4b,U+7e4d-7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d-7e5e,U+7e61,U+7e66-7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81-7e82,U+7e8c-7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e-7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8-7ea9,U+7eab,U+7ead-7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb-7ecc,U+7ed0,U+7ed4,U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5-7ee6,U+7ee8,U+7eeb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-46-500-normal-B_dRUXQz.woff2) format("woff2");unicode-range:U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30-7d31,U+7d33,U+7d35-7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b-7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b-7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79-7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1,U+7dc4,U+7dc7-7dc8,U+7dca-7dcd,U+7dcf,U+7dd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-47-500-normal-D7tRwN0h.woff2) format("woff2");unicode-range:U+7bd3-7bd4,U+7bd9-7bda,U+7bdd,U+7be0-7be1,U+7be4-7be6,U+7be9-7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07-7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15-7c16,U+7c19,U+7c1e-7c21,U+7c23-7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d-7c3e,U+7c40-7c41,U+7c43,U+7c47-7c48,U+7c4c,U+7c50,U+7c53-7c54,U+7c59,U+7c5f-7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79-7c7a,U+7c7c,U+7c81-7c82,U+7c84-7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9,U+7ccc-7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4-7ce5,U+7ce7}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-48-500-normal-Bqt1gTC7.woff2) format("woff2");unicode-range:U+7ae6,U+7af4-7af7,U+7afa-7afb,U+7afd-7b0a,U+7b0c,U+7b0e-7b0f,U+7b13,U+7b15-7b16,U+7b18-7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d-7b2e,U+7b30-7b3b,U+7b3e-7b3f,U+7b41-7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66-7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98-7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0-7bc1,U+7bc3-7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-49-500-normal-BZeNF2SD.woff2) format("woff2");unicode-range:U+798b-798e,U+7992,U+7994-7995,U+7997-7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5-79d6,U+79dd-79de,U+79e3,U+79e7-79e8,U+79eb,U+79ed,U+79f4,U+79f7-79f8,U+79fa,U+79fe,U+7a02-7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e-7a1f,U+7a23,U+7a25-7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36-7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d-7a5e,U+7a62-7a63,U+7a66,U+7a68-7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b-7a9c,U+7a9e,U+7aa0-7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4-7ac5,U+7ac7-7ac8,U+7aca,U+7ad1-7ad2,U+7ada-7add,U+7ae1,U+7ae4}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-50-500-normal-DlintQvq.woff2) format("woff2");unicode-range:U+784c,U+784e-7854,U+7856-7857,U+7859-785a,U+7865,U+7869-786a,U+786d,U+786f,U+7876-7877,U+787c,U+787e-787f,U+7881,U+7887-7889,U+7893-7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9-78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9-78da,U+78dc,U+78de,U+78e1,U+78e5-78e6,U+78ea,U+78ec,U+78ef,U+78f1-78f2,U+78f4,U+78fa-78fb,U+78fe,U+7901-7902,U+7905,U+7907,U+7909,U+790b-790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e-791f,U+7921,U+7924,U+7926,U+792a-792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942-7943,U+7945-7947,U+7949-794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f-7960,U+7962,U+7964,U+7966-7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b-797c,U+797e-7980,U+7982,U+7986-7987,U+7989-798a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-51-500-normal-B5-dbmQ8.woff2) format("woff2");unicode-range:U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739-773a,U+773d-773f,U+7743,U+7746-7747,U+774c-774f,U+7751-7752,U+7758-775a,U+775c-775e,U+7762,U+7765-7766,U+7768-776a,U+776c-776d,U+7771-7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6-77d7,U+77d9-77da,U+77dd-77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd-77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817-7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832-7833,U+7835,U+7837,U+7839-783c,U+783e,U+7841-7844,U+7847-7849,U+784b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-52-500-normal-C_fGT2yH.woff2) format("woff2");unicode-range:U+7613-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c-763d,U+763f-7640,U+7642-7643,U+7647-7648,U+764d-764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e-765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e-766f,U+7671-7673,U+7675-7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a-769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab-76ac,U+76af-76b0,U+76b2,U+76b4-76b5,U+76ba-76bb,U+76bf,U+76c2-76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff-7700,U+7703-7704,U+7707-7708,U+770c-770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-53-500-normal-4I_fEgQd.woff2) format("woff2");unicode-range:U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c-752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d-754e,U+7550-7553,U+7556-7557,U+755a-755b,U+755d-755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b-756c,U+756f-7573,U+7575,U+7579-757c,U+757e-757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599-759a,U+759d,U+759f-75a0,U+75a3,U+75a5,U+75a8,U+75ac-75ad,U+75b0-75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc-75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9-75fa,U+75fc,U+75fe-7601,U+7603,U+7605-7606,U+7608-760e,U+7610-7612}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-54-500-normal-D-1v3FoB.woff2) format("woff2");unicode-range:U+73f0,U+73f2,U+73f4-73f5,U+73f7,U+73f9-73fa,U+73fc-73fd,U+73ff-7402,U+7404,U+7407-7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424-7425,U+7428-7429,U+742c-7430,U+7432,U+7435-7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a-744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473-7474,U+7477,U+747a,U+747e,U+7481-7482,U+7484,U+7486,U+7488-748b,U+748e-748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9-74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1-74d2,U+74d4-74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4-74e5,U+74e7-74e9,U+74ee-74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-55-500-normal-Dx0OnOTe.woff2) format("woff2");unicode-range:U+72e6,U+72e8,U+72ef-72f0,U+72f2-72f4,U+72f6-72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c-732d,U+7330-7331,U+7333,U+7335-7337,U+7339,U+733d-733e,U+7340,U+7342,U+7344-7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f-7360,U+7362-7363,U+7365,U+7368,U+736c-736d,U+736f-7370,U+7372,U+7374-7376,U+7378,U+737a-737b,U+737d-737e,U+7382-7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6-73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5-73ea,U+73ee-73ef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-56-500-normal-l5dSnWaL.woff2) format("woff2");unicode-range:U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1-71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9-71da,U+71dc,U+71df-71e0,U+71e6-71e8,U+71ea,U+71ed-71ee,U+71f4,U+71f6,U+71f9,U+71fb-71fc,U+71ff-7200,U+7207,U+720c-720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d-722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d-724e,U+7252,U+7256,U+7258,U+725a,U+725c-725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e-726f,U+7271,U+7273-7274,U+7278,U+727b,U+727d-727e,U+7281-7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f-72a0,U+72a7,U+72ad-72ae,U+72b0-72b5,U+72b7-72b8,U+72ba-72be,U+72c0-72c1,U+72c3,U+72c5-72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db,U+72dd-72df,U+72e1,U+72e5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-57-500-normal-CInU2z8g.woff2) format("woff2");unicode-range:U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039-703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080-7081,U+7085-7086,U+708a,U+708f,U+7091,U+7094-7095,U+7098-7099,U+709c-709d,U+709f,U+70a4,U+70a9-70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce-70cf,U+70d4,U+70d9-70da,U+70dc-70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108-7109,U+710c,U+7110,U+7113-7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e-712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155-7156,U+7159-715a,U+715c,U+7161,U+7165-7166,U+7168-7169,U+716d,U+7173-7174,U+7176,U+7178,U+717a,U+717d,U+717f-7180,U+7184,U+7186-7188,U+7192,U+7198,U+719c,U+71a0,U+71a4-71a5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-58-500-normal-DUnNpYKw.woff2) format("woff2");unicode-range:U+6ed9,U+6edb,U+6edd,U+6edf-6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee-6eef,U+6ef2-6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08-6f09,U+6f15-6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c-6f2d,U+6f2f,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e-6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e-6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97-6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb-6fec,U+6fee-6ff1,U+6ffa,U+6ffe,U+7005-7006,U+7009}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-59-500-normal-BxaY6bmN.woff2) format("woff2");unicode-range:U+6dc3,U+6dc5-6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2-6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def-6df0,U+6df5-6df6,U+6df8,U+6dfa,U+6dfc,U+6e03-6e04,U+6e07-6e09,U+6e0b-6e0c,U+6e0e,U+6e11,U+6e13,U+6e15-6e16,U+6e19-6e1b,U+6e1e-6e1f,U+6e22,U+6e25-6e27,U+6e2b-6e2c,U+6e36-6e37,U+6e39-6e3a,U+6e3c-6e41,U+6e44-6e45,U+6e47,U+6e49-6e4b,U+6e4d-6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a-6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86-6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1-6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8-6ec9,U+6ecc,U+6ecf-6ed0,U+6ed3-6ed4,U+6ed7-6ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-60-500-normal-DFqPQqQq.woff2) format("woff2");unicode-range:U+6cb1-6cb2,U+6cb4-6cb5,U+6cb7,U+6cba,U+6cbc-6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6-6cd7,U+6cd9-6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1-6cf2,U+6cf6-6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07-6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13-6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22-6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35-6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48-6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60-6d61,U+6d63-6d65,U+6d67,U+6d6c-6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2-6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3-6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-61-500-normal-BB7Zjp1f.woff2) format("woff2");unicode-range:U+6b83-6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97-6b98,U+6b9a-6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9-6baa,U+6bad,U+6baf-6bb0,U+6bb2-6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0-6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39-6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b-6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8-6ca9,U+6cac-6cae}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-62-500-normal-U8mQETkr.woff2) format("woff2");unicode-range:U+69fe-6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28-6a29,U+6a2b,U+6a2f-6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a-6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e-6a7f,U+6a84,U+6a86,U+6a8e,U+6a90-6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2-6ab3,U+6ab5,U+6ab7-6ab8,U+6aba-6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2-6ad3,U+6ad8-6adc,U+6adf-6ae0,U+6ae4-6ae5,U+6ae7-6ae8,U+6afb,U+6b04-6b05,U+6b0d-6b13,U+6b16-6b17,U+6b19,U+6b24-6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53-6b54,U+6b58-6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f-6b70,U+6b73-6b74,U+6b77-6b7a,U+6b80-6b82}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-63-500-normal-BUjOaASF.woff2) format("woff2");unicode-range:U+68d3,U+68d7,U+68dd,U+68df,U+68e1,U+68e3-68e4,U+68e6-68ed,U+68ef-68f0,U+68f2,U+68f4,U+68f6-68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f-6920,U+6924-6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a-694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e-696f,U+6971,U+6973-6974,U+6978-6979,U+697d,U+697f-6980,U+6985,U+6987-698a,U+698d-698e,U+6994-6999,U+699b,U+69a3-69a4,U+69a6-69a7,U+69ab,U+69ad-69ae,U+69b1,U+69b7,U+69bb-69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0-69d1,U+69d3-69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec-69ed,U+69f1-69f3,U+69f8,U+69fa-69fc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-64-500-normal-B5UNeVXi.woff2) format("woff2");unicode-range:U+678b-678d,U+678f,U+6792-6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac-67ad,U+67b0-67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb-67bc,U+67c0-67c1,U+67c3,U+67c5-67ca,U+67d1-67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7-67f8,U+67fa-67fb,U+67fd-67fe,U+6800-6801,U+6803-6804,U+6806,U+6809-680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840-6841,U+6844-6845,U+6849,U+684e,U+6853,U+6855-6856,U+685c-685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f-68a0,U+68a2-68a3,U+68b1,U+68b6,U+68b9-68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0-68d1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-65-500-normal-CFOLBwGK.woff2) format("woff2");unicode-range:U+6631,U+6633-6634,U+6636,U+663a-663b,U+663d,U+6641,U+6644-6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d-665e,U+6660-6667,U+6669,U+666b-666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680-6681,U+6684-6685,U+6688-6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f-66a0,U+66a2-66a3,U+66a6,U+66aa-66ab,U+66b1-66b2,U+66b5,U+66b8-66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f-6710,U+6713,U+6715,U+6719,U+6722-6723,U+6725-6727,U+6729,U+672d-672e,U+6732-6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c-674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772-6773,U+6775,U+6777,U+677a-677d,U+6782-6783,U+6787,U+678a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-66-500-normal-BH_NxZif.woff2) format("woff2");unicode-range:U+64f1-64f2,U+64f4,U+64f7-64f8,U+64fa,U+64fc,U+64fe-64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534-6535,U+6537-6538,U+653a,U+653c-653d,U+6542,U+6549-654b,U+654d-654e,U+6553-6555,U+6557-6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575-6576,U+6578-657e,U+6581-6583,U+6585-6586,U+6589,U+658e-658f,U+6592-6593,U+6595-6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab-65ac,U+65b2,U+65b6-65b7,U+65ba-65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2-65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb-65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610-6611,U+6619-661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-67-500-normal-DWzpSa9_.woff2) format("woff2");unicode-range:U+63b8-63bc,U+63be,U+63c0,U+63c3-63c4,U+63c6,U+63c8,U+63cd-63ce,U+63d1,U+63d6,U+63da-63db,U+63de,U+63e0,U+63e3,U+63e9-63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416-6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431-6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487-6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab-64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7-64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-68-500-normal-BRRTtSYi.woff2) format("woff2");unicode-range:U+622c,U+622e-6230,U+6232,U+6238,U+623b,U+623d-623e,U+6243,U+6246,U+6248-6249,U+624c,U+6255,U+6259,U+625e,U+6260-6261,U+6265-6266,U+626a,U+6271,U+627a,U+627c-627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e-629f,U+62a1,U+62a8,U+62ba-62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca-62cb,U+62cf,U+62d1,U+62d7,U+62d9-62da,U+62dd,U+62e0-62e1,U+62e3-62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312-6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331-6332,U+6334-6337,U+6339,U+633b-633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c-635d,U+6368-6369,U+636d,U+636f-6372,U+6376,U+637a-637b,U+637d,U+6382-6383,U+6387,U+638a-638b,U+638d-638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e-639f,U+63a1,U+63a3-63a4,U+63ac-63ae,U+63b1-63b5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-69-500-normal-CyfyID68.woff2) format("woff2");unicode-range:U+60ed-60ee,U+60f0-60f1,U+60f4,U+60f6,U+60fa,U+6100,U+6106,U+610d-610e,U+6112,U+6114-6115,U+6119,U+611c,U+6120,U+6122-6123,U+6126,U+6128-6130,U+6136-6137,U+613a,U+613d-613e,U+6144,U+6146-6147,U+614a-614b,U+6151,U+6153,U+6158,U+615a,U+615c-615d,U+615f,U+6161,U+6163-6165,U+616b-616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d-618e,U+6190-6191,U+6194,U+6199-619a,U+619c,U+619f,U+61a1,U+61a3-61a4,U+61a7-61a9,U+61ab-61ad,U+61b2-61b3,U+61b5-61b7,U+61ba-61bb,U+61bf,U+61c3-61c4,U+61c6-61c7,U+61c9-61cb,U+61d0-61d1,U+61d3-61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206-6207,U+6209,U+620b,U+620d-620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225-6226}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-70-500-normal-CUVD271H.woff2) format("woff2");unicode-range:U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd6,U+5fda-5fde,U+5fe1-5fe2,U+5fe4-5fe5,U+5fea,U+5fed-5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe-5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e-602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053-6054,U+6058-605b,U+605d-605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078-6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e-608f,U+6092-6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd-60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3-60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-71-500-normal-Dz2iPqSM.woff2) format("woff2");unicode-range:U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5-5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb-5ecc,U+5ed1-5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf-5ee0,U+5ee2-5ee3,U+5ee8,U+5eea,U+5eec,U+5eef-5ef0,U+5ef3-5ef4,U+5ef8,U+5efb-5efc,U+5efe-5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28-5f29,U+5f2c-5f2d,U+5f35-5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67-5f68,U+5f6b,U+5f6e-5f6f,U+5f72-5f78,U+5f7a,U+5f7e-5f7f,U+5f82-5f83,U+5f87,U+5f89-5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98-5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac-5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-72-500-normal-DTeK03yK.woff2) format("woff2");unicode-range:U+5d26-5d27,U+5d2e-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a-5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68-5d69,U+5d6b-5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b-5d8c,U+5d8f,U+5d92-5d93,U+5d99,U+5d9d,U+5db2,U+5db6-5db7,U+5dba,U+5dbc-5dbd,U+5dc2-5dc3,U+5dc6-5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb-5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff-5e00,U+5e07,U+5e0f,U+5e11,U+5e13-5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33-5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53-5e54,U+5e57,U+5e59,U+5e5b,U+5e5e-5e5f,U+5e61,U+5e63,U+5e6a-5e6b,U+5e75,U+5e77,U+5e79-5e7a,U+5e7e,U+5e80-5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91-5e92,U+5e96}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-73-500-normal-Cw_tnR9p.woff2) format("woff2");unicode-range:U+5bec,U+5bee-5bf0,U+5bf2-5bf3,U+5bf5-5bf6,U+5bfe,U+5c02-5c03,U+5c05,U+5c07-5c09,U+5c0b-5c0c,U+5c0e,U+5c10,U+5c12-5c13,U+5c15,U+5c17,U+5c19,U+5c1b-5c1c,U+5c1e-5c1f,U+5c22,U+5c25,U+5c28,U+5c2a-5c2b,U+5c2f-5c30,U+5c37,U+5c3b,U+5c43-5c44,U+5c46-5c47,U+5c4d,U+5c50,U+5c59,U+5c5b-5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83-5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98-5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab-5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3-5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8-5cd9,U+5cdf-5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3-5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d25}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-74-500-normal-DkeJ_Z7u.woff2) format("woff2");unicode-range:U+5aa0,U+5aa3-5aa4,U+5aaa,U+5aae-5aaf,U+5ab1-5ab2,U+5ab4-5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3-5ac4,U+5ac6-5ac8,U+5aca-5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b-5b0c,U+5b11,U+5b16-5b17,U+5b1b,U+5b21-5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a-5b4b,U+5b51-5b53,U+5b56,U+5b5a-5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70-5b71,U+5b73,U+5b7a-5b7b,U+5b7f-5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5-5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0-5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be5,U+5be7,U+5be9,U+5beb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-75-500-normal-RnXI8R7b.woff2) format("woff2");unicode-range:U+596a,U+596c-596e,U+5977,U+597b-597c,U+5981,U+598f,U+5997-5998,U+599a,U+599c-599d,U+59a0-59a1,U+59a3-59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2-59b3,U+59b5-59b6,U+59b8,U+59ba,U+59bd-59be,U+59c0-59c1,U+59c3-59c4,U+59c7-59ca,U+59cc-59cd,U+59cf,U+59d2,U+59d5-59d6,U+59d8-59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c-5a0d,U+5a11-5a13,U+5a15-5a16,U+5a1a-5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c-5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c-5a6d,U+5a72-5a73,U+5a75-5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96-5a97,U+5a9c,U+5a9e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-76-500-normal-B9Jbkcne.woff2) format("woff2");unicode-range:U+5820,U+5822-5823,U+5825-5826,U+582c,U+582f,U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859-585a,U+585c-585d,U+5862,U+5868-5869,U+586c-586d,U+586f-5873,U+5875,U+5879,U+587d-587e,U+5880-5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c-589d,U+58a0-58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2-58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8-58d9,U+58de-58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1-58f2,U+58f5,U+58f7-58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d-591e,U+5920,U+5922-5925,U+5928,U+592c-592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c-594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-77-500-normal-3BTwE5uB.woff2) format("woff2");unicode-range:U+56f9,U+56fc,U+56ff-5700,U+5703-5704,U+5709-570a,U+570c-570d,U+570f,U+5712-5713,U+5718-5719,U+571c,U+571e,U+5725,U+5727,U+5729-572a,U+572c,U+572e-572f,U+5734-5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c-574d,U+575c,U+5763,U+5768-5769,U+576b,U+576d-576e,U+5770,U+5773,U+5775,U+5777,U+577b-577c,U+5785-5786,U+5788,U+578c,U+578e-578f,U+5793-5795,U+5799-57a1,U+57a3-57a4,U+57a6-57aa,U+57ac-57ad,U+57af-57b2,U+57b4-57b6,U+57b8-57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc-57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1-57e2,U+57e4-57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc-57fd,U+5800-5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-581f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-78-500-normal-BVk9bSPD.woff2) format("woff2");unicode-range:U+55f5-55f7,U+55fb,U+55fe,U+5600-5601,U+5605-5606,U+5608,U+560c-560d,U+560f,U+5614,U+5616-5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663-5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b-569c,U+569e-569f,U+56a1-56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee-56ef,U+56f1-56f3,U+56f5,U+56f7-56f8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-79-500-normal-C-QvHj7p.woff2) format("woff2");unicode-range:U+550f,U+5511-5514,U+5516-5517,U+5519,U+551b,U+551d-551e,U+5520,U+5522-5523,U+5526-5527,U+552a-552c,U+5530,U+5532-5535,U+5537-5538,U+553b-5541,U+5543-5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b-557c,U+557e-557f,U+5581,U+5583,U+5585-5586,U+5588,U+558b-558c,U+558e-5591,U+5593,U+5599-559a,U+559f,U+55a5-55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9-55ba,U+55bc-55be,U+55c4,U+55c6-55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-80-500-normal-Di8G0AhH.woff2) format("woff2");unicode-range:U+53e7-53e9,U+53f1,U+53f4-53f5,U+53fa-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429-542a,U+542d-542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442-5443,U+5449,U+544b-544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b-545c,U+5461,U+5463-5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d-548e,U+5490-5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4-54b5,U+54b9,U+54bb,U+54be-54bf,U+54c2-54c3,U+54c9-54cc,U+54cf-54d0,U+54d3,U+54d5-54d6,U+54d9-54da,U+54dc-54de,U+54e2,U+54e7,U+54f3-54f4,U+54f8-54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-81-500-normal-DUcTi26F.woff2) format("woff2");unicode-range:U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a,U+52a2,U+52a6-52a7,U+52ac-52ad,U+52af,U+52b4-52b5,U+52b9,U+52bb-52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6-52d7,U+52d9,U+52db,U+52dd-52de,U+52e0,U+52e2-52e3,U+52e5,U+52e7-52f0,U+52f2-52f3,U+52f5-52f9,U+52fb-52fc,U+5302,U+5304,U+530b,U+530d,U+530f-5310,U+5315,U+531a,U+531c-531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5344-5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368-5369,U+536c,U+536e-536f,U+5372,U+5379-537b,U+537d,U+538d-538e,U+5390,U+5393-5394,U+5396,U+539b-539d,U+53a0-53a1,U+53a3-53a5,U+53a9,U+53ad-53ae,U+53b0,U+53b2-53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce-53cf,U+53d2-53d3,U+53d5,U+53da,U+53de-53df,U+53e1-53e2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-82-500-normal-DyyUtoXj.woff2) format("woff2");unicode-range:U+5104,U+5106-5107,U+5109-510b,U+510d,U+510f-5110,U+5113,U+5115,U+5117-5118,U+511a-511c,U+511e-511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186-5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2-51a3,U+51a6-51ab,U+51ad-51ae,U+51b1,U+51b4,U+51bc-51bd,U+51bf,U+51c3,U+51c7-51c8,U+51ca-51cb,U+51cd-51ce,U+51d4,U+51d6,U+51db-51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d-520e,U+5215-5216,U+5228,U+522a,U+522c-522d,U+5233,U+523c-523d,U+523f-5240,U+5245,U+5247,U+5249,U+524b-524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263-5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-83-500-normal-CngP5iwW.woff2) format("woff2");unicode-range:U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf-4fe0,U+4fe2-4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5-4ff6,U+4ff8,U+4ffe,U+5001,U+5005-5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027-5028,U+502b-502e,U+5030,U+5033-5034,U+5036-5039,U+503b,U+5041-5043,U+5045-5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062-5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074-5075,U+5078,U+507b,U+507d-507e,U+5080,U+5088-5089,U+5091-5092,U+5095,U+5097-509e,U+50a2-50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4-50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5-50d6,U+50da,U+50de,U+50e5-50e6,U+50ec-50ee,U+50f0-50f1,U+50f3,U+50f9-50fb,U+50fe-5102}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-84-500-normal-3O-pFZPI.woff2) format("woff2");unicode-range:U+4ea3,U+4ea5,U+4eb0-4eb1,U+4eb3-4eb6,U+4eb8-4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8-4ec9,U+4ecc,U+4ecf-4ed0,U+4ed2,U+4eda-4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee-4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08-4f09,U+4f0b,U+4f0e,U+4f12-4f13,U+4f15,U+4f1b,U+4f1d,U+4f21-4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36-4f37,U+4f39,U+4f3e,U+4f40-4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57-4f58,U+4f5d-4f5e,U+4f61-4f62,U+4f64-4f65,U+4f67,U+4f6a,U+4f6e-4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89-4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9-4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5-4fc6,U+4fcd-4fce,U+4fd0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-85-500-normal-BHnspF-n.woff2) format("woff2");unicode-range:U+3129,U+3131,U+3134,U+3137,U+3139,U+3141-3142,U+3145,U+3147-3148,U+314b,U+314d-314e,U+315c,U+3160-3161,U+3163-3164,U+3186,U+318d,U+3192,U+3196-3198,U+319e-319f,U+3220-3229,U+3231,U+3268,U+3297,U+3299,U+32a3,U+338e-338f,U+3395,U+339c-339e,U+33c4,U+33d1-33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0-35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4db6-4dbf,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46-4e47,U+4e57,U+4e5a-4e5c,U+4e64-4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98-4e99,U+4e9c,U+4e9e-4ea0,U+4ea2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-86-500-normal-BdmmPOi_.woff2) format("woff2");unicode-range:U+279f-27a2,U+27a4-27a5,U+27a8,U+27b0,U+27b2-27b3,U+27b9,U+27e8-27e9,U+27f6,U+2800,U+28ec,U+2913,U+2921-2922,U+2934-2935,U+2a2f,U+2b05-2b07,U+2b50,U+2b55,U+2bc5-2bc6,U+2e1c-2e1d,U+2ebb,U+2f00,U+2f08,U+2f24,U+2f2d,U+2f2f-2f30,U+2f3c,U+2f45,U+2f63-2f64,U+2f74,U+2f83,U+2f8f,U+2fbc,U+3003,U+3005-3007,U+3012-3013,U+301c-301e,U+3021,U+3023-3024,U+3030,U+3034-3035,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c-307d,U+3080,U+308e,U+3090-3091,U+3099-309b,U+309d-309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd-30fe,U+3105-3126,U+3128}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-87-500-normal-CyNxmc60.woff2) format("woff2");unicode-range:U+2651-2655,U+2658,U+265a-265b,U+265d-265e,U+2660-266d,U+266f,U+267b,U+2688,U+2693-2696,U+2698-2699,U+269c,U+26a0-26a1,U+26a4,U+26aa-26ab,U+26bd-26be,U+26c4-26c5,U+26d4,U+26e9,U+26f0-26f1,U+26f3,U+26f5,U+26fd,U+2702,U+2704-2706,U+2708-270f,U+2712-2718,U+271a-271b,U+271d,U+271f,U+2721,U+2724-2730,U+2732-2734,U+273a,U+273d-2744,U+2747-2749,U+274c,U+274e-274f,U+2753-2757,U+275b,U+275d-275e,U+2763,U+2765-2767,U+276e-276f,U+2776-277e,U+2780-2782,U+278a-278c,U+278e,U+2794-2796,U+279c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-88-500-normal-BfIgc9Wa.woff2) format("woff2");unicode-range:U+2550-2551,U+2554,U+2557,U+255a-255b,U+255d,U+255f-2560,U+2562-2563,U+2565-2567,U+2569-256a,U+256c-2572,U+2579,U+2580-2595,U+25a1,U+25a3,U+25a9-25ad,U+25b0,U+25b3-25bb,U+25bd-25c2,U+25c4,U+25c8-25cb,U+25cd,U+25d0-25d1,U+25d4-25d5,U+25d8,U+25dc-25e6,U+25ea-25eb,U+25ef,U+25fe,U+2600-2604,U+2609,U+260e-260f,U+2611,U+2614-2615,U+2618,U+261a-2620,U+2622-2623,U+262a,U+262d-2630,U+2639-2640,U+2642,U+2648-2650}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-89-500-normal-z-0TkXtN.woff2) format("woff2");unicode-range:U+23f0,U+23f3,U+2445,U+2449,U+2465-2471,U+2474-249b,U+24b8,U+24c2,U+24c7,U+24c9,U+24d0,U+24d2,U+24d4,U+24d8,U+24dd-24de,U+24e3,U+24e6,U+24e8,U+2500-2509,U+250b-2526,U+2528-2534,U+2536-2537,U+253b-2548,U+254a-254b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-90-500-normal-CzRUd9Y4.woff2) format("woff2");unicode-range:U+207c-2083,U+208c-208e,U+2092,U+20a6,U+20a8-20ad,U+20af,U+20b1,U+20b4-20b5,U+20b8-20ba,U+20bd,U+20db,U+20dd,U+20e0,U+20e3,U+2105,U+2109,U+2113,U+2116-2117,U+2120-2121,U+2126,U+212b,U+2133,U+2139,U+2194,U+2196-2199,U+21a0,U+21a9-21aa,U+21af,U+21b3,U+21b5,U+21ba-21bb,U+21c4,U+21ca,U+21cc,U+21d0-21d4,U+21e1,U+21e6-21e9,U+2200,U+2202,U+2205-2208,U+220f,U+2211-2212,U+2215,U+2217-2219,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223c-223d,U+2248,U+224c,U+2252,U+2256,U+2260-2261,U+2266-2267,U+226a-226b,U+226e-226f,U+2282-2283,U+2295,U+2297,U+2299,U+22a5,U+22b0-22b1,U+22b9,U+22bf,U+22c5-22c6,U+22ef,U+2304,U+2307,U+230b,U+2312-2314,U+2318,U+231a-231b,U+2323,U+239b,U+239d-239e,U+23a0,U+23e9}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-91-500-normal-i0u1m_iB.woff2) format("woff2");unicode-range:U+1d34-1d35,U+1d38-1d3a,U+1d3c,U+1d3f-1d40,U+1d49,U+1d4e-1d4f,U+1d52,U+1d55,U+1d5b,U+1d5e,U+1d9c,U+1da0,U+1dc4-1dc5,U+1e69,U+1e73,U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd-1ebe,U+1ec0-1ec3,U+1ec5-1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+1f62,U+1f7b,U+2001-2002,U+2004-2006,U+2009-200a,U+200c-2012,U+2015-2016,U+201a,U+201e-2021,U+2023,U+2025,U+2028,U+202a-202d,U+202f-2030,U+2032-2033,U+2035,U+2038,U+203c,U+203e-203f,U+2043-2044,U+2049,U+204d-204e,U+2060-2061,U+2070,U+2074-2078,U+207a-207b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-97-500-normal-C5vefU1Z.woff2) format("woff2");unicode-range:U+2ae-2b3,U+2b5-2bf,U+2c2-2c3,U+2c6-2d1,U+2d8-2da,U+2dc,U+2e1-2e3,U+2e5,U+2eb,U+2ee-2f0,U+2f2-2f7,U+2f9-2ff,U+302-30d,U+311,U+31b,U+321-325,U+327-329,U+32b-32c,U+32e-32f,U+331-339,U+33c-33d,U+33f,U+348,U+352,U+35c,U+35e-35f,U+361,U+363,U+368,U+36c,U+36f,U+530-540,U+55d-55e,U+561,U+563,U+565,U+56b,U+56e-579}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-98-500-normal-Df-1dTws.woff2) format("woff2");unicode-range:U+176-17f,U+192,U+194,U+19a-19b,U+19d,U+1a0-1a1,U+1a3-1a4,U+1aa,U+1ac-1ad,U+1af-1bf,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e3,U+1e7,U+1e9,U+1ee,U+1f0-1f1,U+1f3,U+1f5-1ff,U+219-21b,U+221,U+223-226,U+228,U+22b,U+22f,U+231,U+234-237,U+23a-23b,U+23d,U+250-252,U+254-255,U+259-25e,U+261-263,U+265,U+268,U+26a-26b,U+26f-277,U+279,U+27b-280,U+282-283,U+285,U+28a,U+28c,U+28f,U+292,U+294-296,U+298-29a,U+29c,U+29f,U+2a1-2a4,U+2a6-2a7,U+2a9,U+2ab}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-99-500-normal-BWS8QmEB.woff2) format("woff2");unicode-range:U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7-f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e-11f,U+121,U+123,U+125-127,U+129-12a,U+12d,U+12f-13f,U+141-142,U+144,U+146,U+14b-14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-100-500-normal-LjZqvEsR.woff2) format("woff2");unicode-range:U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5340,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+5618,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5be6,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+62ce,U+62ed,U+6345,U+6390,U+63b0,U+63b7,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f31,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+733f,U+7396,U+739f,U+7459,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b-814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385-8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8bb3,U+8d2e,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+99ac,U+9a6f,U+9a87,U+9a8b,U+9ab7,U+9abc,U+9ac5,U+9e25,U+e608,U+e621,U+ff06,U+ff14-ff16}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-101-500-normal-CjWROJGG.woff2) format("woff2");unicode-range:U+161,U+926,U+928,U+939,U+93f-940,U+94d,U+e17,U+e22,U+e44,U+25c7,U+25ce,U+2764,U+3009,U+3016-3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+51c4,U+5225,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+560e,U+565c,U+5662,U+5669,U+566c,U+56bc,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5ac9,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+620c,U+6273,U+62c7,U+62f7,U+6320,U+6342,U+6401-6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+72e9,U+7409,U+7422,U+745a,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+8042,U+808b,U+8236,U+82b8-82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8aaa,U+8c41,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541-9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc-96cd,U+96cf,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+e606-e607,U+e60a,U+e60c,U+e60e,U+fe0f,U+ff02,U+ff1e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-102-500-normal-BuRimFGI.woff2) format("woff2");unicode-range:U+10c,U+627-629,U+639,U+644,U+64a,U+203b,U+2265,U+2463,U+2573,U+25b2,U+3448-3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+516e,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5364,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6ed5,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+7405,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+803f,U+8046,U+80fa,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8cec,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9704,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+9f9a,U+e60b,U+e610,U+ff10,U+ff13,U+ff3b,U+ff3d,U+f012b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-103-500-normal-BvWkBJSJ.woff2) format("woff2");unicode-range:U+60,U+631,U+2606,U+3014-3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+609a,U+60df,U+6168,U+61c8,U+6236,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+67da,U+67ec,U+6813,U+6816,U+6869,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119-711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+73fe,U+7410,U+7426,U+7455,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+81b3,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8e72,U+8f9c,U+900d,U+904b,U+904e,U+9063,U+90a2,U+90b9,U+9119,U+94f2,U+952f,U+9576-9577,U+9593,U+95f8,U+961c,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11-ff12,U+fffd}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-104-500-normal-jDvxI4uY.woff2) format("woff2");unicode-range:U+2003,U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d-575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a1f,U+5a49,U+5ac2,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f6c,U+5f8c,U+603c,U+608d,U+611b,U+6127,U+62a0,U+62d0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6703,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0-8be1,U+8c0e,U+8d29,U+8d50,U+8d63,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9610,U+9631,U+9699,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+e600,U+e60f,U+e611,U+ff05,U+ff0b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-105-500-normal-DXW7JQ-g.woff2) format("woff2");unicode-range:U+5e,U+2190,U+250a,U+25bc,U+25cf,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bb0,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6e9c,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82bd,U+8305,U+8328,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8e81,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+9540,U+958b,U+9600,U+9640,U+96b6,U+96c7,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ad6d,U+c5b4,U+d55c,U+ff0f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-106-500-normal-9h6-MSep.woff2) format("woff2");unicode-range:U+b0,U+2191,U+2460-2461,U+25c6,U+300e-300f,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54b1,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+61be,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+6380,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0-80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+82ad,U+8304,U+8393,U+83b9,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681-8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95f7,U+9706,U+9709,U+9774,U+98a0,U+9e64,U+9f9f,U+e603}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-107-500-normal-SPtoRxRh.woff2) format("woff2");unicode-range:U+200b,U+2103,U+4e18,U+4e27-4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+83ca,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95ef,U+95fa,U+95fd,U+96c0,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9887,U+9b4f,U+9e2d,U+9f0e,U+e601-e602,U+e604-e605,U+ff5c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-108-500-normal-clZ-BISV.woff2) format("woff2");unicode-range:U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20-6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b-886c,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b-8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+964c,U+9675,U+971c,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f,U+e715}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-109-500-normal-CMa8AMM8.woff2) format("woff2");unicode-range:U+a5,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366-5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3-62d4,U+63f4,U+642c,U+6478,U+6491-6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+85aa,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90aa,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+e675,U+e6b9,U+ffe5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-110-500-normal-jlYZJC5i.woff2) format("woff2");unicode-range:U+300c-300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237-7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+feff,U+ff0d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-111-500-normal-BSdshYmW.woff2) format("woff2");unicode-range:U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3-4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076-5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54-5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75-8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-112-500-normal-p2Brug1G.woff2) format("woff2");unicode-range:U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd-5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696-6697,U+66dd,U+675f,U+676f-6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4-80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f-9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634-9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-113-500-normal-C8tnUFPA.woff2) format("woff2");unicode-range:U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987-5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388-6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6740,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade-7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4-96c5,U+96e8,U+96f6-96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d-996e,U+9b54,U+9e21,U+9ebb,U+9f50}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-114-500-normal-Dz3EZ57H.woff2) format("woff2");unicode-range:U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b63,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-115-500-normal-BO06SmMa.woff2) format("woff2");unicode-range:U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956-5957,U+5a92,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838-6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4b,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26-8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632-9633,U+963f,U+968f-9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-116-500-normal-Cn7hj0Qe.woff2) format("woff2");unicode-range:U+2b,U+40,U+3000,U+300a-300b,U+4e16,U+4e66,U+4e70,U+4e91-4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17-4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e-529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7-53d8,U+53ea,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3-81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f-9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-117-500-normal-ma0iM6M2.woff2) format("woff2");unicode-range:U+4e,U+201c-201d,U+3010-3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b-4e8c,U+4ea4,U+4eab-4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6-4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e38,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc-91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-118-500-normal-BkdpJ3OC.woff2) format("woff2");unicode-range:U+d,U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d-4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a-4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee4-4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7-53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd-56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e73-5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210-6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247-7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08-ff09}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-119-500-normal-Bg7BvryU.woff2) format("woff2");unicode-range:U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+df-e5,U+e7-ea,U+ec-ed,U+f1-f4,U+f6,U+f9-fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+2022,U+2027,U+2039-203a,U+2122,U+3001-3002,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075-3076,U+3078-3079,U+307b,U+307e-307f,U+3081-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3-30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30fb-30fc,U+3127,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708-6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-cyrillic-500-normal-DGAdDs8H.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-vietnamese-500-normal-920XfTAD.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-latin-ext-500-normal-GsgFcZNr.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-latin-500-normal-JVPArRf3.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=light]{color-scheme:light;--jf-font-sans: "IBM Plex Sans", "Noto Sans SC", system-ui, -apple-system, sans-serif;--jf-font-mono: "IBM Plex Mono", "Noto Sans SC", ui-monospace, Menlo, monospace;--jf-canvas: #f7f7f3;--jf-surface: #ffffff;--jf-surface-hover: #fafafa;--jf-tonal: #efefe9;--jf-tonal-hover: #e8e8e0;--jf-tonal-active: #e0e0d6;--jf-tonal-selected: #e3e3da;--jf-border-subtle: #e5e5dd;--jf-border-control: #85857e;--jf-border-focus: #1a1a18;--jf-border-strong: #4a4a44;--jf-text: #1a1a18;--jf-text-secondary: #666660;--jf-text-inverse: #f7f7f3;--jf-decorative-muted: #999993;--jf-text-on-primary: #ffffff;--jf-text-on-danger: #ffffff;--jf-text-on-warning: #1a1a18;--jf-text-on-success: #ffffff;--jf-text-on-info: #ffffff;--jf-primary: #1a1a18;--jf-primary-hover: #333330;--jf-primary-active: #1a1a18;--jf-primary-bg: #f0f0ea;--jf-success: #166534;--jf-success-bg: #f0fdf4;--jf-success-hover: #15803d;--jf-success-active: #166534;--jf-success-border: #bbf7d0;--jf-success-text: #166534;--jf-warning: #854d0e;--jf-warning-bg: #fefce8;--jf-warning-hover: #a16207;--jf-warning-active: #854d0e;--jf-warning-border: #fde68a;--jf-warning-text: #854d0e;--jf-danger: #b91c1c;--jf-danger-bg: #fef2f2;--jf-danger-hover: #991b1b;--jf-danger-active: #7f1d1d;--jf-danger-border: #fecaca;--jf-danger-text: #b91c1c;--jf-info: #1e40af;--jf-info-bg: #eff6ff;--jf-info-hover: #1d4ed8;--jf-info-active: #1e3a8a;--jf-info-border: #bfdbfe;--jf-info-text: #1e40af;--jf-radius-check: 50%;--jf-radius-control: 10px;--jf-radius-popup: 12px;--jf-radius-object: 14px;--jf-radius-dialog: 18px;--jf-radius-pill: 999px;--jf-radius-none: 0;--jf-control-xs: 1.5rem;--jf-control-sm: 2rem;--jf-control-md: 2.5rem;--jf-control-lg: 3rem;--jf-control-xl: 3.5rem;--jf-space-0: 0;--jf-space-px: 1px;--jf-space-1: .25rem;--jf-space-2: .5rem;--jf-space-3: .75rem;--jf-space-4: 1rem;--jf-space-5: 1.25rem;--jf-space-6: 1.5rem;--jf-space-7: 1.75rem;--jf-space-8: 2rem;--jf-space-10: 2.5rem;--jf-space-12: 3rem;--jf-space-14: 3.5rem;--jf-space-16: 4rem;--jf-space-20: 5rem;--jf-space-24: 6rem;--jf-space-32: 8rem;--jf-display-size: clamp(2.25rem, 4vw, 3.75rem);--jf-display-leading: 1.05;--jf-display-tracking: -.0175em;--jf-page-title-size: 2rem;--jf-page-title-leading: 1.25;--jf-section-title-size: 1.25rem;--jf-section-title-leading: 1.4;--jf-subsection-size: 1rem;--jf-subsection-leading: 1.4;--jf-body-size: 1rem;--jf-body-leading: 1.59;--jf-compact-size: .875rem;--jf-compact-leading: 1.5;--jf-caption-size: .75rem;--jf-caption-leading: 1.5;--jf-overline-size: .6875rem;--jf-overline-leading: 1.4;--jf-overline-tracking: .05em;--jf-heading-weight: 400;--jf-emphasis-weight: 500;--jf-body-weight: 400;--jf-shadow-none: none;--jf-shadow-soft: 0 4px 20px rgb(0 0 0 / .04);--jf-shadow-floating: 0 12px 32px rgb(0 0 0 / .06);--jf-shadow-dropdown: 0 8px 24px rgb(0 0 0 / .08);--jf-shadow-toast: 0 8px 24px rgb(0 0 0 / .1);--jf-shadow-modal: 0 16px 48px rgb(0 0 0 / .12);--jf-shadow-drawer: -4px 0 24px rgb(0 0 0 / .06);--jf-shadow-command: 0 16px 48px rgb(0 0 0 / .14);--jf-duration-instant: 80ms;--jf-duration-fast: .12s;--jf-duration-normal: .18s;--jf-duration-overlay: .24s;--jf-duration-emphasis: .32s;--jf-duration-page: .4s;--jf-duration-exit-fast: 60ms;--jf-duration-exit-normal: .12s;--jf-duration-exit-overlay: .16s;--jf-period-shimmer: 1.5s;--jf-period-spinner: .6s;--jf-period-progress: 1.2s;--jf-period-pulse: 1s;--jf-ease: cubic-bezier(.2, 0, 0, 1);--jf-ease-in: cubic-bezier(.4, 0, 1, 1);--jf-ease-out: cubic-bezier(0, 0, .2, 1);--jf-ease-in-out: cubic-bezier(.4, 0, .2, 1);--jf-ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--jf-ease-spring: cubic-bezier(.175, .885, .32, 1.1);--jf-z-base: 0;--jf-z-sticky: 10;--jf-z-dropdown: 20;--jf-z-overlay: 30;--jf-z-modal: 40;--jf-z-toast: 50;--jf-z-tooltip: 60;--jf-z-command: 70;--jf-opacity-disabled: .45;--jf-opacity-muted: .65;--jf-opacity-overlay: .4;--jf-opacity-ghost-hover: .06;--jf-opacity-ghost-active: .1;--jf-border-width: 1px;--jf-border-width-focus: 2px;--jf-icon-xs: 12px;--jf-icon-sm: 16px;--jf-icon-md: 20px;--jf-icon-lg: 24px;--jf-icon-xl: 32px;--jf-icon-2xl: 48px;--jf-sidebar-width: 260px;--jf-sidebar-collapsed: 64px;--jf-header-height: 56px;--jf-content-max: 1200px;--jf-form-max: 640px;--jf-reading-max: 72ch;--jf-card-radius: var(--jf-radius-object);--jf-card-padding-compact: var(--jf-space-4);--jf-card-padding-comfortable: var(--jf-space-6);--jf-card-section-gap: var(--jf-space-4);--jf-card-section-gap-compact: var(--jf-space-3)}:root[data-theme=dark]{color-scheme:dark;--jf-canvas: #1a1a18;--jf-surface: #242422;--jf-surface-hover: #2a2a28;--jf-tonal: #2e2e2a;--jf-tonal-hover: #383832;--jf-tonal-active: #42423c;--jf-tonal-selected: #3d3d36;--jf-border-subtle: #3a3a34;--jf-border-control: #6a6a62;--jf-border-focus: #e5e5dd;--jf-border-strong: #8a8a82;--jf-text: #e5e5dd;--jf-text-secondary: #a0a098;--jf-text-inverse: #1a1a18;--jf-decorative-muted: #6a6a62;--jf-text-on-primary: #1a1a18;--jf-text-on-danger: #1a1a18;--jf-text-on-warning: #1a1a18;--jf-text-on-success: #1a1a18;--jf-text-on-info: #1a1a18;--jf-primary: #e5e5dd;--jf-primary-hover: #f0f0ea;--jf-primary-active: #d5d5cd;--jf-primary-bg: #2e2e2a;--jf-success: #4ade80;--jf-success-bg: #052e16;--jf-success-hover: #22c55e;--jf-success-active: #16a34a;--jf-success-border: #166534;--jf-success-text: #4ade80;--jf-warning: #fbbf24;--jf-warning-bg: #451a03;--jf-warning-hover: #f59e0b;--jf-warning-active: #d97706;--jf-warning-border: #854d0e;--jf-warning-text: #fbbf24;--jf-danger: #f87171;--jf-danger-bg: #450a0a;--jf-danger-hover: #ef4444;--jf-danger-active: #dc2626;--jf-danger-border: #b91c1c;--jf-danger-text: #f87171;--jf-info: #60a5fa;--jf-info-bg: #172554;--jf-info-hover: #3b82f6;--jf-info-active: #2563eb;--jf-info-border: #1e40af;--jf-info-text: #60a5fa;--jf-shadow-soft: 0 4px 20px rgb(0 0 0 / .15);--jf-shadow-floating: 0 12px 32px rgb(0 0 0 / .2);--jf-shadow-dropdown: 0 8px 24px rgb(0 0 0 / .25);--jf-shadow-toast: 0 8px 24px rgb(0 0 0 / .3);--jf-shadow-modal: 0 16px 48px rgb(0 0 0 / .35);--jf-shadow-drawer: -4px 0 24px rgb(0 0 0 / .2);--jf-shadow-command: 0 16px 48px rgb(0 0 0 / .4);--jf-opacity-overlay: .55;--jf-opacity-ghost-hover: .08;--jf-opacity-ghost-active: .14}@media(prefers-reduced-motion:reduce){:root{--jf-duration-instant: 0ms;--jf-duration-fast: 0ms;--jf-duration-normal: 0ms;--jf-duration-overlay: 0ms;--jf-duration-emphasis: 0ms;--jf-duration-page: 0ms;--jf-duration-exit-fast: 0ms;--jf-duration-exit-normal: 0ms;--jf-duration-exit-overlay: 0ms;--jf-period-shimmer: 0s;--jf-period-spinner: 0s;--jf-period-progress: 0s;--jf-period-pulse: 0s}}.jf-focus:focus-visible{outline:var(--jf-border-width-focus) solid var(--jf-border-focus);outline-offset:2px}.jf-mono{font-family:var(--jf-font-mono);font-variant-numeric:tabular-nums}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--leading-relaxed:1.625;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--jf-font-sans);--default-mono-font-family:var(--jf-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:960px){.container{max-width:960px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}@media(min-width:40rem){.container{max-width:40rem}}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-20{height:calc(var(--spacing) * 20)}.h-36{height:calc(var(--spacing) * 36)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[460px\]{max-height:460px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-full{width:100%}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-\[440px\]{max-width:440px}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-56{flex-basis:calc(var(--spacing) * 56)}.border-collapse{border-collapse:collapse}.-rotate-90{rotate:-90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[var\(--jf-radius-control\)\]{border-radius:var(--jf-radius-control)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-danger\/20{border-color:var(--jf-danger-text)}@supports (color:color-mix(in lab,red,red)){.border-danger\/20{border-color:color-mix(in oklab,var(--jf-danger-text) 20%,transparent)}}.border-line{border-color:var(--jf-border-subtle)}.bg-danger{background-color:var(--jf-danger-text)}.bg-danger-bg{background-color:var(--jf-danger-bg)}.bg-info{background-color:var(--jf-info-text)}.bg-primary{background-color:var(--jf-primary)}.bg-success{background-color:var(--jf-success-text)}.bg-success-bg{background-color:var(--jf-success-bg)}.bg-tonal{background-color:var(--jf-tonal)}.bg-warning{background-color:var(--jf-warning-text)}.bg-warning-bg{background-color:var(--jf-warning-bg)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:var(--spacing)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--jf-font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.text-wrap{text-wrap:wrap}.text-danger{color:var(--jf-danger-text)}.text-ink{color:var(--jf-text)}.text-ink-secondary{color:var(--jf-text-secondary)}.text-success{color:var(--jf-success-text)}.text-warning{color:var(--jf-warning-text)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-tonal-hover:hover{background-color:var(--jf-tonal-hover)}}@media(min-width:960px){.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:w-60{width:calc(var(--spacing) * 60)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}}}:root{font-family:var(--jf-font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:var(--jf-canvas);min-width:320px;min-height:100%}body{background:var(--jf-canvas);min-width:320px;min-height:100vh;color:var(--jf-text);font-family:var(--jf-font-sans);font-size:var(--jf-compact-size);font-weight:var(--jf-body-weight);line-height:var(--jf-compact-leading);font-variant-numeric:tabular-nums;margin:0}button,input,textarea,select{font:inherit}h1,.jf-page-title{font-size:var(--jf-page-title-size);line-height:var(--jf-page-title-leading);font-weight:var(--jf-heading-weight);letter-spacing:-.015em;text-wrap:balance;margin:0}h2,.jf-section-title{font-size:var(--jf-section-title-size);line-height:var(--jf-section-title-leading);font-weight:var(--jf-heading-weight);letter-spacing:normal;text-wrap:balance;margin:0}h3,.jf-subsection-title{font-size:var(--jf-subsection-size);line-height:var(--jf-subsection-leading);font-weight:var(--jf-emphasis-weight);letter-spacing:normal;text-wrap:balance;margin:0}h4,.jf-module-title{font-size:var(--jf-compact-size);line-height:1.4;font-weight:var(--jf-emphasis-weight);letter-spacing:normal;margin:0}p{text-wrap:pretty;margin:0}code,kbd,samp,pre{font-family:var(--jf-font-mono)}.jf-display{font-size:var(--jf-display-size);line-height:var(--jf-display-leading);letter-spacing:var(--jf-display-tracking);font-weight:var(--jf-heading-weight);line-break:strict;text-wrap:balance}.jf-body{font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading)}.jf-caption{font-size:var(--jf-caption-size);line-height:var(--jf-caption-leading)}.jf-overline{font-size:var(--jf-overline-size);line-height:var(--jf-overline-leading);font-weight:var(--jf-emphasis-weight);letter-spacing:var(--jf-overline-tracking)}.jf-metric{font-size:var(--jf-page-title-size);line-height:var(--jf-page-title-leading);font-weight:var(--jf-heading-weight);font-variant-numeric:tabular-nums}.jf-nowrap{white-space:nowrap}.jf-balance{text-wrap:balance}.jf-pretty{text-wrap:pretty}.jf-cjk-display{line-break:strict}.jf-anywhere{overflow-wrap:anywhere}.jf-truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.jf-tabular{font-variant-numeric:tabular-nums}.jf-stack{gap:var(--jf-space-8);align-content:start;display:grid}.jf-toolbar{justify-content:space-between;align-items:center;gap:var(--jf-space-3);flex-wrap:wrap;display:flex}.jf-action-group{align-items:center;gap:var(--jf-space-2);flex-wrap:wrap;display:flex}.jf-field-row{align-items:flex-end;gap:var(--jf-space-3);flex-wrap:wrap;display:flex}.jf-scroll-x{min-width:0;overflow-x:auto}.jf-divider{height:1px;margin:var(--jf-space-8) 0;background:var(--jf-border-subtle);border:0}:where(a,button,input,select,textarea,[tabindex],[role]):focus-visible{outline:var(--jf-border-width-focus) solid var(--jf-border-focus);outline-offset:2px}@keyframes jf-fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes jf-fade-in{0%{opacity:0}to{opacity:1}}@keyframes jf-fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes jf-slide-in-left{0%{transform:translate(-100%)}to{transform:none}}@keyframes jf-slide-in-right{0%{transform:translate(100%)}to{transform:none}}@keyframes jf-slide-in-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}@keyframes jf-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes jf-spin{to{transform:rotate(360deg)}}@keyframes jf-pulse-tonal{0%,to{background-color:var(--jf-tonal)}50%{background-color:var(--jf-tonal-selected)}}.dashboard-shell{background:var(--jf-canvas);color:var(--jf-text);min-height:100vh}.dashboard-sidebar{z-index:var(--jf-z-sticky);width:var(--jf-sidebar-width);border-right:1px solid var(--jf-border-subtle);background:var(--jf-surface);padding:0 var(--jf-space-4);transition:transform var(--jf-duration-overlay) var(--jf-ease-out),width var(--jf-duration-normal) var(--jf-ease);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.dashboard-sidebar-open{z-index:var(--jf-z-modal);box-shadow:var(--jf-shadow-drawer);transform:translate(0)}@media(min-width:960px){.dashboard-sidebar{transform:translate(0)}.dashboard-main{margin-left:var(--jf-sidebar-width);transition:margin-left var(--jf-duration-normal) var(--jf-ease)}}.sidebar-brand{height:var(--jf-header-height);border-bottom:1px solid var(--jf-border-subtle);padding:0 var(--jf-space-2) 0 var(--jf-space-3);flex:none;justify-content:space-between;align-items:center;display:flex}.sidebar-brand-title{font-size:1.125rem;font-weight:var(--jf-emphasis-weight);color:var(--jf-text);white-space:nowrap;letter-spacing:-.01em}@media(min-width:960px){.sidebar-brand{justify-content:flex-start}.sidebar-brand-close{display:none}}.sidebar-section-label{padding:var(--jf-space-5) var(--jf-space-3) var(--jf-space-2);font-size:1rem;font-weight:var(--jf-emphasis-weight);color:var(--jf-text);letter-spacing:normal;line-height:1.4}.sidebar-nav{gap:var(--jf-space-1);display:grid}.sidebar-link{min-height:var(--jf-control-md);align-items:center;gap:var(--jf-space-3);border-radius:var(--jf-radius-control);padding:0 var(--jf-space-3);color:var(--jf-text-secondary);font-weight:var(--jf-body-weight);white-space:nowrap;transition:background var(--jf-duration-fast) var(--jf-ease),color var(--jf-duration-fast) var(--jf-ease);text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar-link:hover{background:var(--jf-tonal);color:var(--jf-text)}.sidebar-link:active{background:var(--jf-tonal-active)}.sidebar-link:before{content:"";border-radius:var(--jf-radius-pill);width:3px;transition:background var(--jf-duration-fast) var(--jf-ease);background:0 0;position:absolute;top:8px;bottom:8px;left:0}.sidebar-link-active{background:var(--jf-tonal-selected);color:var(--jf-text);font-weight:var(--jf-emphasis-weight)}.sidebar-link-active:before{background:var(--jf-primary)}.sidebar-link-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.sidebar-bottom{padding:var(--jf-space-4) 0 var(--jf-space-5);border-top:1px solid var(--jf-border-subtle);margin-top:auto}@media(min-width:960px){.dashboard-sidebar-collapsed{width:var(--jf-sidebar-collapsed);padding:0 var(--jf-space-2)}.dashboard-sidebar-collapsed .sidebar-brand{justify-content:center;padding:0}.dashboard-sidebar-collapsed .sidebar-brand-title,.dashboard-sidebar-collapsed .sidebar-section-label,.dashboard-sidebar-collapsed .sidebar-link-label{display:none}.dashboard-sidebar-collapsed .sidebar-link{justify-content:center;padding:0}.dashboard-sidebar-collapsed .sidebar-bottom{padding-inline:0}.dashboard-main-collapsed{margin-left:var(--jf-sidebar-collapsed)}}.dashboard-scrim{z-index:calc(var(--jf-z-modal) - 1);background:rgb(0 0 0/var(--jf-opacity-overlay));position:fixed;inset:0}.dashboard-main{min-width:0;min-height:100vh}.dashboard-topbar{z-index:var(--jf-z-sticky);height:var(--jf-header-height);justify-content:space-between;align-items:center;gap:var(--jf-space-3);border-bottom:1px solid var(--jf-border-subtle);background:var(--jf-surface);padding:0 var(--jf-space-6);display:flex;position:sticky;top:0}@media(min-width:1280px){.dashboard-topbar{padding:0 var(--jf-space-8)}}.dashboard-topbar-title{font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading);font-weight:var(--jf-emphasis-weight);color:var(--jf-text-secondary)}.dashboard-content{min-height:calc(100vh - var(--jf-header-height));padding:var(--jf-space-3) var(--jf-space-4) var(--jf-space-8);flex-direction:column;display:flex}@media(min-width:640px){.dashboard-content{padding:var(--jf-space-4) var(--jf-space-6) var(--jf-space-10)}}@media(min-width:1280px){.dashboard-content{padding:var(--jf-space-5) var(--jf-space-8) var(--jf-space-12)}}.dashboard-content-inner{width:100%;max-width:var(--jf-content-max);animation:jf-fade-in-up var(--jf-duration-page) var(--jf-ease-out) both;margin-inline:auto}.auth-scene{background:var(--jf-canvas)}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.dashboard-content-inner{animation:none}}.metric-icon-wrap{border-radius:var(--jf-radius-control);background:var(--jf-tonal);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false} diff --git a/internal/api/dashboard/static/web/assets/index-DqkVQ84c.css b/internal/api/dashboard/static/web/assets/index-DqkVQ84c.css deleted file mode 100644 index 3bd500f..0000000 --- a/internal/api/dashboard/static/web/assets/index-DqkVQ84c.css +++ /dev/null @@ -1 +0,0 @@ -.jf-icon[data-v-11094a9c]{display:inline-block;flex:none;vertical-align:-.125em}.jf-icon-fallback[data-v-11094a9c]{display:inline-block;flex:none;border-radius:var(--jf-radius-check);background:var(--jf-tonal-active)}.jf-button[data-v-1cd909f7]{display:inline-flex;min-height:var(--jf-control-md);align-items:center;justify-content:center;gap:var(--jf-space-2);border:0;border-radius:var(--jf-radius-control);padding:0 var(--jf-space-4);font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading);font-weight:var(--jf-emphasis-weight);white-space:nowrap;cursor:pointer;transition:background var(--jf-duration-fast) var(--jf-ease),color var(--jf-duration-fast) var(--jf-ease),border-color var(--jf-duration-fast) var(--jf-ease),transform var(--jf-duration-instant) var(--jf-ease-in)}.jf-button[data-size=sm][data-v-1cd909f7]{min-height:var(--jf-control-sm);padding:0 var(--jf-space-3);gap:var(--jf-space-1)}.jf-button[data-size=lg][data-v-1cd909f7]{min-height:var(--jf-control-lg);padding:0 var(--jf-space-5)}.jf-button-square[data-v-1cd909f7],.jf-button.jf-button-square[data-v-1cd909f7],.jf-button[data-size].jf-button-square[data-v-1cd909f7]{padding:0;width:var(--jf-control-md);height:var(--jf-control-md);min-height:unset;flex:none}.jf-button.jf-button-square[data-size=sm][data-v-1cd909f7],.jf-button[data-size=sm].jf-button-square[data-v-1cd909f7]{width:var(--jf-control-sm);height:var(--jf-control-sm);min-height:unset;padding:0}.jf-button.jf-button-square[data-size=lg][data-v-1cd909f7],.jf-button[data-size=lg].jf-button-square[data-v-1cd909f7]{width:var(--jf-control-lg);height:var(--jf-control-lg);min-height:unset;padding:0}.jf-button-block[data-v-1cd909f7]{width:100%}.jf-button-label[data-v-1cd909f7]{min-width:0;overflow:hidden;text-overflow:ellipsis}.jf-button[data-variant=primary][data-v-1cd909f7]{background:var(--jf-primary);color:var(--jf-text-on-primary)}.jf-button[data-variant=primary][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-primary-hover)}.jf-button[data-variant=primary][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-primary-active)}.jf-button[data-variant=secondary][data-v-1cd909f7]{background:var(--jf-tonal);color:var(--jf-text)}.jf-button[data-variant=secondary][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-tonal-hover)}.jf-button[data-variant=secondary][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-tonal-active)}.jf-button[data-variant=ghost][data-v-1cd909f7]{background:transparent;color:var(--jf-text)}.jf-button[data-variant=ghost][data-v-1cd909f7]:hover:not(:disabled){background:color-mix(in srgb,var(--jf-text) calc(var(--jf-opacity-ghost-hover) * 100%),transparent)}.jf-button[data-variant=ghost][data-v-1cd909f7]:active:not(:disabled){background:color-mix(in srgb,var(--jf-text) calc(var(--jf-opacity-ghost-active) * 100%),transparent)}.jf-button[data-variant=danger][data-v-1cd909f7]{background:var(--jf-danger);color:var(--jf-text-on-danger)}.jf-button[data-variant=danger][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-danger-hover)}.jf-button[data-variant=danger][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-danger-active)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]{background:transparent;color:var(--jf-danger-text)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]:hover:not(:disabled){background:var(--jf-danger-bg)}.jf-button[data-variant=danger-ghost][data-v-1cd909f7]:active:not(:disabled){background:var(--jf-danger-border)}.jf-button[data-v-1cd909f7]:active:not(:disabled){transform:scale(.98)}.jf-button[data-v-1cd909f7]:disabled{opacity:var(--jf-opacity-disabled);cursor:not-allowed;transform:none}.jf-button-icon[data-v-1cd909f7]{flex:none}.jf-button-spinner[data-v-1cd909f7]{width:var(--jf-icon-sm);height:var(--jf-icon-sm);flex:none;border-radius:var(--jf-radius-pill);border:2px solid currentColor;border-right-color:transparent;animation:jf-spin var(--jf-period-spinner) linear infinite}@media(prefers-reduced-motion:reduce){.jf-button-spinner[data-v-1cd909f7]{animation:none;border-right-color:currentColor;opacity:var(--jf-opacity-muted)}}.save-toast[data-v-6e69e9e7]{position:fixed;z-index:2000;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));padding:.75rem 1rem;border:1px solid var(--jf-success-border);border-radius:var(--jf-radius-control);background:var(--jf-success-bg);color:var(--jf-success-text);box-shadow:var(--jf-shadow-toast)}.sidebar-logout-button.jf-button[data-v-6e69e9e7]{justify-content:flex-start}.dashboard-sidebar-collapsed .sidebar-logout-label[data-v-6e69e9e7]{display:none}.dashboard-sidebar-collapsed .sidebar-logout-button.jf-button[data-v-6e69e9e7]{justify-content:center;padding-inline:0}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-4-400-normal-BDFGDDVr.woff2) format("woff2");unicode-range:U+1f1e9-1f1f5,U+1f1f7-1f1ff,U+1f21a,U+1f232,U+1f234-1f237,U+1f250-1f251,U+1f300,U+1f302-1f308,U+1f30a-1f311,U+1f315,U+1f319-1f320,U+1f324,U+1f327,U+1f32a,U+1f32c-1f32d,U+1f330-1f357,U+1f359-1f37e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-5-400-normal-3RzBeGhg.woff2) format("woff2");unicode-range:U+fee3,U+fef3,U+ff03-ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c-ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ff61-ff65,U+ff67-ff6a,U+ff6c,U+ff6f-ff78,U+ff7a-ff7d,U+ff80-ff84,U+ff86,U+ff89-ff8e,U+ff92,U+ff97-ff9b,U+ff9d-ff9f,U+ffe0-ffe4,U+ffe6,U+ffe9,U+ffeb,U+ffed,U+fffc,U+1f004,U+1f170-1f171,U+1f192-1f195,U+1f198-1f19a,U+1f1e6-1f1e8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-6-400-normal-D73klzWF.woff2) format("woff2");unicode-range:U+f0a7,U+f0b2,U+f0b7,U+f0c9,U+f0d8,U+f0da,U+f0dc-f0dd,U+f0e0,U+f0e6,U+f0eb,U+f0fc,U+f101,U+f104-f105,U+f107,U+f10b,U+f11b,U+f14b,U+f18a,U+f193,U+f1d6-f1d7,U+f244,U+f27a,U+f296,U+f2ae,U+f471,U+f4b3,U+f610-f611,U+f880-f881,U+f8ec,U+f8f5,U+f8ff,U+f901,U+f90a,U+f92c-f92d,U+f934,U+f937,U+f941,U+f965,U+f967,U+f969,U+f96b,U+f96f,U+f974,U+f978-f979,U+f97e,U+f981,U+f98a,U+f98e,U+f997,U+f99c,U+f9b2,U+f9b5,U+f9ba,U+f9be,U+f9ca,U+f9d0-f9d1,U+f9dd,U+f9e0-f9e1,U+f9e4,U+f9f7,U+fa00-fa01,U+fa08,U+fa0a,U+fa11,U+fb01-fb02,U+fdfc,U+fe0e,U+fe30-fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b,U+fe8e,U+fe92-fe93,U+feae,U+feb8,U+fecb-fecc,U+fee0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-21-400-normal-Bfz3Xm1a.woff2) format("woff2");unicode-range:U+9f83,U+9f85-9f8d,U+9f90-9f91,U+9f94-9f96,U+9f98,U+9f9b-9f9c,U+9f9e,U+9fa0,U+9fa2,U+9ff0-9fff,U+a001,U+a007,U+a025,U+a046-a047,U+a057,U+a072,U+a078-a079,U+a083,U+a085,U+a100,U+a118,U+a132,U+a134,U+a1f4,U+a242,U+a4a6,U+a4aa,U+a4b0-a4b1,U+a4b3,U+a9c1-a9c2,U+ac00-ac01,U+ac04,U+ac08,U+ac10-ac11,U+ac13-ac16,U+ac19,U+ac1c-ac1d,U+ac24,U+ac70-ac71,U+ac74,U+ac77-ac78,U+ac80-ac81,U+ac83,U+ac8c,U+ac90,U+ac9f-aca0,U+aca8-aca9,U+acac,U+acb0,U+acbd,U+acc1,U+acc4,U+ace0-ace1,U+ace4,U+ace8,U+acf3,U+acf5,U+acfc-acfd,U+ad00,U+ad0c,U+ad11,U+ad1c,U+ad34,U+ad50,U+ad64,U+ad6c,U+ad70,U+ad74,U+ad7f,U+ad81,U+ad8c,U+adc0,U+adc8,U+addc,U+ade0,U+adf8-adf9,U+adfc,U+ae00,U+ae08-ae09,U+ae0b,U+ae30,U+ae34,U+ae38,U+ae40,U+ae4a,U+ae4c,U+ae54,U+ae68,U+aebc,U+aed8,U+af2c-af2d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-22-400-normal-yOvQSDF6.woff2) format("woff2");unicode-range:U+9e30-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78-9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b-9e8c,U+9e90-9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4-9ea5,U+9ea9-9eaa,U+9eb4-9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2-9ed3,U+9ed5-9ed6,U+9ed9,U+9edc-9edd,U+9edf-9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3-9ef4,U+9ef6,U+9ef9,U+9efb-9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39,U+9f3d-9f3e,U+9f41,U+9f4a-9f4b,U+9f51-9f52,U+9f61-9f63,U+9f66-9f67,U+9f80-9f81}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-23-400-normal-D0XQUkMM.woff2) format("woff2");unicode-range:U+9c82-9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad-9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf-9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc-9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee-9cef,U+9cf3-9cf4,U+9cf6,U+9cfc-9cfd,U+9d02,U+9d08-9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c-9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9-9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e2f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-24-400-normal-mI4tDgE1.woff2) format("woff2");unicode-range:U+9a80,U+9a83,U+9a85,U+9a88-9a8a,U+9a8d-9a8e,U+9a90,U+9a92-9a93,U+9a95-9a96,U+9a98-9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5-9ab6,U+9ab9-9aba,U+9ac0-9ac4,U+9ac8,U+9acb-9acc,U+9ace-9acf,U+9ad1-9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea-9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03-9b04,U+9b06,U+9b08,U+9b0d,U+9b0f-9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22-9b23,U+9b25,U+9b27-9b28,U+9b2a,U+9b2f,U+9b31-9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d-9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61-9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f-9ba0,U+9ba8,U+9baa-9bab,U+9bad-9bae,U+9bb0-9bb1,U+9bb8,U+9bc9-9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0-9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39,U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77-9c78,U+9c7b,U+9c7f-9c80}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-25-400-normal-CD3JKveN.woff2) format("woff2");unicode-range:U+98dd,U+98e1-98e2,U+98e7-98ea,U+98ec,U+98ee-98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c-990d,U+9913-9914,U+9918,U+991a-991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938-9939,U+993d-993e,U+9945,U+994b-994c,U+9951-9952,U+9954-9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b-996c,U+996f,U+9974-9975,U+9977-9979,U+997d-997e,U+9980-9981,U+9983-9984,U+9987,U+998a-998b,U+998d-9991,U+9993-9995,U+9997-9998,U+99a5,U+99ab,U+99ad-99ae,U+99b1,U+99b3-99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03-9a04,U+9a0e-9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d-9a4e,U+9a52,U+9a55,U+9a57,U+9a5a-9a5b,U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-26-400-normal-B306_DcA.woff2) format("woff2");unicode-range:U+975b-975c,U+9763,U+9765-9766,U+976c-976d,U+9773,U+9776,U+977a,U+977c,U+9784-9785,U+978e-978f,U+9791-9792,U+9794-9795,U+9798,U+979a,U+979e,U+97a3,U+97a5-97a6,U+97a8,U+97ab-97ac,U+97ae-97af,U+97b2,U+97b4,U+97c6,U+97cb-97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea-97eb,U+97ee,U+97fb,U+97fe-97ff,U+9801-9803,U+9805-9806,U+9808,U+980c,U+9810-9814,U+9817-9818,U+981e,U+9820-9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838-9839,U+983c,U+9846,U+984d-984f,U+9851-9852,U+9854-9855,U+9857-9858,U+985a-985b,U+9862-9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877-9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e-989f,U+98a1-98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3-98c4,U+98c6-98c8,U+98cf-98d6,U+98da-98db}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-27-400-normal-LzZF_NqI.woff2) format("woff2");unicode-range:U+95c4-95ca,U+95cc-95cd,U+95d4-95d6,U+95d8,U+95e1-95e2,U+95e9,U+95f0-95f1,U+95f3,U+95f6,U+95fc,U+95fe-95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641-9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667-9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d-968e,U+9695,U+9697-9698,U+969e,U+96a0,U+96a3-96a4,U+96a8,U+96aa,U+96b0-96b1,U+96b3-96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1-96d2,U+96d6,U+96d9,U+96db-96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701-9702,U+9705,U+9708,U+970a,U+970e-970f,U+9711,U+9719,U+9727,U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748-9749,U+9750-9751,U+975a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-28-400-normal-CEc-bbYn.woff2) format("woff2");unicode-range:U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503-9504,U+9506-9507,U+9509-950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e-958f,U+9591-9592,U+9594,U+9598-9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8-95c3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-29-400-normal-CTMIENlc.woff2) format("woff2");unicode-range:U+941c-942b,U+942d-942e,U+9432-9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451-9452,U+945a,U+9462-9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c-949d,U+94a1,U+94a3-94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94ec,U+94ee-94f1,U+94f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-30-400-normal-Dzb6Zn8O.woff2) format("woff2");unicode-range:U+92ec-92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b-932c,U+932f,U+9331-9332,U+9335-9336,U+933e,U+9340-9341,U+934a-9360,U+9362-9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393-9394,U+9396-9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0-93d1,U+93d6-93d8,U+93de-93df,U+93e1-93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e-941a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-31-400-normal-Cngcbauu.woff2) format("woff2");unicode-range:U+9163-9164,U+9169,U+9170,U+9172,U+9174,U+9179-917a,U+917d-917e,U+9182-9183,U+9185,U+918c-918d,U+9190-9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4-91b5,U+91b8,U+91ba,U+91be,U+91c0-91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7-91d8,U+91dd,U+91e3,U+91e6-91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d-920e,U+9210,U+9214-9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229-922a,U+922d,U+9234-9235,U+9237,U+9239-923a,U+923c-9240,U+9244-9246,U+9249,U+924e-924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c-929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6-92b7,U+92b9,U+92c1,U+92c5-92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-32-400-normal-BqAPF1tT.woff2) format("woff2");unicode-range:U+9004,U+900b,U+9011,U+9015-9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035-9036,U+9039-903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054-9055,U+9058-9059,U+905b-905e,U+9060-9062,U+9068-9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c-907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0-90a1,U+90a8-90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd-90be,U+90c3-90c5,U+90c7-90c8,U+90cf-90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6-90e7,U+90ea-90eb,U+90ef,U+90f4-90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114-9115,U+9118,U+911c,U+911e,U+9120,U+9122-9123,U+9127,U+912d,U+912f-9132,U+9139-913a,U+9143,U+9146,U+9149-914a,U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d-915e,U+9161-9162}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-33-400-normal-CUXtFK-t.woff2) format("woff2");unicode-range:U+8e41-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59-8e5a,U+8e5f-8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84-8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f-8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29-8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e-8f3f,U+8f44-8f45,U+8f49,U+8f4d-8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75-8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81-8f82,U+8f84,U+8f87,U+8f8a-8f8b,U+8f8d-8f8f,U+8f94-8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda,U+8fe2-8fe5,U+8fe8-8fe9,U+8fee,U+8ff3-8ff4,U+8ff8,U+8ffa}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-34-400-normal-Djw1IAuw.woff2) format("woff2");unicode-range:U+8cbd,U+8cbf-8cc4,U+8cc7-8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb-8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc-8cfd,U+8d04-8d05,U+8d07-8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13-8d14,U+8d16,U+8d1b,U+8d20,U+8d30,U+8d32-8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42-8d43,U+8d45-8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c-8d5d,U+8d5f,U+8d61,U+8d66-8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90-8d91,U+8d94-8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce-8dcf,U+8dd6-8dd7,U+8dda-8ddb,U+8dde,U+8de1,U+8de3-8de4,U+8de9,U+8deb-8dec,U+8df0-8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09-8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b-8e31,U+8e34-8e35,U+8e39-8e3a,U+8e3d,U+8e40}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-35-400-normal-Chgyqx1E.woff2) format("woff2");unicode-range:U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99-8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb4-8bb5,U+8bb7,U+8bb9,U+8bc2-8bc3,U+8bc5,U+8bcb-8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8-8bd9,U+8bdc,U+8bdf,U+8be3-8be4,U+8be7-8be9,U+8beb-8bec,U+8bee,U+8bf0,U+8bf2-8bf3,U+8bf6,U+8bf9,U+8bfc-8bfd,U+8bff-8c00,U+8c02,U+8c04,U+8c06-8c07,U+8c0c,U+8c0f,U+8c11-8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24-8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89-8c8a,U+8c8d-8c8e,U+8c90,U+8c93-8c94,U+8c98,U+8c9d-8c9e,U+8ca0-8ca2,U+8ca7-8cac,U+8caf-8cb0,U+8cb3-8cb4,U+8cb6-8cb9,U+8cbb-8cbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-36-400-normal-BxBT42kb.woff2) format("woff2");unicode-range:U+8a15-8a18,U+8a1a-8a1b,U+8a1d,U+8a1f,U+8a22-8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33-8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40-8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54-8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d-8a6e,U+8a70,U+8a72-8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c-8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0-8aa1,U+8aa3-8aa6,U+8aa8-8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8-8ab9,U+8abc,U+8abe-8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6-8ad7,U+8adb-8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed-8aee,U+8af1,U+8af3-8af4,U+8af7-8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20-8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e-8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57-8b58,U+8b5a,U+8b5c,U+8b5e,U+8b60,U+8b6c,U+8b6f-8b70,U+8b72,U+8b74,U+8b77,U+8b7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-37-400-normal-CjshmOwp.woff2) format("woff2");unicode-range:U+8882,U+8884-8886,U+8888,U+888f,U+8892-8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce-88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0-88f1,U+88f3-88f4,U+88fc-88fe,U+8900,U+8902,U+8906-8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955-8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f-8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987-8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9-89aa,U+89b2-89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3-89f4,U+89f8,U+89ff,U+8a01-8a03,U+8a07-8a0a,U+8a0e-8a0f,U+8a13}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-38-400-normal-D0ErwWLV.woff2) format("woff2");unicode-range:U+86f4,U+86f8-86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722-8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a-873b,U+873e-8740,U+8742,U+8747-8748,U+8753,U+8755,U+8757-8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2-87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca-87cb,U+87d1-87d2,U+87db-87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2-87f3,U+87fb,U+87fd-87fe,U+8802-8803,U+8805,U+880a-880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831-8832,U+8835-8836,U+8839,U+883b-883c,U+8844,U+8846,U+884a,U+884e,U+8852-8853,U+8855,U+8859,U+885b,U+885d-885e,U+8862,U+8864,U+8869-886a,U+886e-886f,U+8872,U+8879,U+887d-887f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-39-400-normal-CNreqa8s.woff2) format("woff2");unicode-range:U+8548,U+854e,U+8553,U+8556-8557,U+8559,U+855e,U+8561,U+8564-8565,U+8568-856a,U+856d,U+856f-8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585-8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8-85a9,U+85ab-85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc-85dd,U+85df-85e0,U+85e5-85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe-85ff,U+8602,U+8605-8607,U+860a-860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b-865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c-869d,U+86a1,U+86a3-86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9-86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de-86df,U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-40-400-normal-DcIMWQiP.woff2) format("woff2");unicode-range:U+83c5,U+83c8-83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea-83eb,U+83f0,U+83f4,U+83f8-83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a-840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438-8439,U+843b-843c,U+843f,U+8446-8447,U+8449,U+844e,U+8451-8452,U+8456,U+8459-845a,U+845c,U+8462,U+8466,U+846d,U+846f-8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484-8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493-8494,U+8497,U+849b,U+849e-849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1-84c2,U+84c5-84c7,U+84ca-84cb,U+84cd,U+84d0-84d1,U+84d3,U+84d6,U+84df-84e0,U+84e2-84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff-8500,U+850c,U+8511,U+8514-8515,U+8517-8518,U+851f,U+8523,U+8525-8526,U+8529,U+852b,U+852d,U+8532,U+8534-8535,U+8538-853a,U+853c,U+8543,U+8545}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-41-400-normal-CwF0ysup.woff2) format("woff2");unicode-range:U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2-82d3,U+82d5-82d6,U+82d8-82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed-82ee,U+82f3-82f4,U+82f7-82f8,U+82fa-8301,U+8306-8308,U+830c-830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a-831b,U+831d,U+8324,U+8327,U+832a,U+832c-832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347-8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f-8380,U+8382,U+8388,U+838a-838b,U+8392,U+8394,U+8396,U+8398-8399,U+839b-839c,U+83a0,U+83a2-83a3,U+83a8-83aa,U+83ae-83b0,U+83b3-83b4,U+83b6,U+83b8,U+83ba,U+83bc-83bd,U+83bf-83c0,U+83c2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-42-400-normal-ZKOUmsTa.woff2) format("woff2");unicode-range:U+8166-8169,U+816b,U+816d,U+8171,U+8173-8174,U+8178,U+817c-817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5-81a6,U+81a9,U+81b6,U+81ba-81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9-81ca,U+81cc-81cd,U+81d1,U+81d3-81d4,U+81d8,U+81db-81dc,U+81de-81df,U+81e5,U+81e7-81e9,U+81eb-81ec,U+81ee-81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b-821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237-8238,U+823a-823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259-825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283-8284,U+8288-828a,U+828d-8291,U+8293-8294,U+8296-8298,U+829f-82a1,U+82a3-82a4,U+82a7-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-43-400-normal-WDsqqjmk.woff2) format("woff2");unicode-range:U+8016,U+8018-8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034-8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068-8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084-8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad-80ae,U+80b1,U+80b6-80b8,U+80bc-80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4-80e5,U+80e7-80ed,U+80ef-80f1,U+80f3-80f4,U+80fc,U+8101,U+8104-8105,U+8107-8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f-8140,U+8142,U+8146,U+8148,U+814d-814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-44-400-normal-wq9JI-iJ.woff2) format("woff2");unicode-range:U+7ef0-7ef2,U+7ef6,U+7efa-7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b-7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44-7f45,U+7f4c-7f4d,U+7f52,U+7f54,U+7f58-7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70-7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d-7f7e,U+7f85-7f86,U+7f88-7f89,U+7f8b-7f8c,U+7f90-7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf-7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb-7fec,U+7fee-7fef,U+7ff1,U+7ff3-7ff4,U+7ff9-7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011-8012,U+8014}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-45-400-normal-DdOuPp0S.woff2) format("woff2");unicode-range:U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb-7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22-7e23,U+7e26,U+7e29,U+7e2b,U+7e2e-7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43-7e44,U+7e46-7e47,U+7e4a-7e4b,U+7e4d-7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d-7e5e,U+7e61,U+7e66-7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81-7e82,U+7e8c-7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e-7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8-7ea9,U+7eab,U+7ead-7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb-7ecc,U+7ed0,U+7ed4,U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5-7ee6,U+7ee8,U+7eeb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-46-400-normal-DxQ4Lw-z.woff2) format("woff2");unicode-range:U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30-7d31,U+7d33,U+7d35-7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b-7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b-7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79-7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1,U+7dc4,U+7dc7-7dc8,U+7dca-7dcd,U+7dcf,U+7dd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-47-400-normal-CZbI_HNG.woff2) format("woff2");unicode-range:U+7bd3-7bd4,U+7bd9-7bda,U+7bdd,U+7be0-7be1,U+7be4-7be6,U+7be9-7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07-7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15-7c16,U+7c19,U+7c1e-7c21,U+7c23-7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d-7c3e,U+7c40-7c41,U+7c43,U+7c47-7c48,U+7c4c,U+7c50,U+7c53-7c54,U+7c59,U+7c5f-7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79-7c7a,U+7c7c,U+7c81-7c82,U+7c84-7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9,U+7ccc-7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4-7ce5,U+7ce7}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-48-400-normal-JHdMabvg.woff2) format("woff2");unicode-range:U+7ae6,U+7af4-7af7,U+7afa-7afb,U+7afd-7b0a,U+7b0c,U+7b0e-7b0f,U+7b13,U+7b15-7b16,U+7b18-7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d-7b2e,U+7b30-7b3b,U+7b3e-7b3f,U+7b41-7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66-7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98-7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0-7bc1,U+7bc3-7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-49-400-normal-B43LfYL1.woff2) format("woff2");unicode-range:U+798b-798e,U+7992,U+7994-7995,U+7997-7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5-79d6,U+79dd-79de,U+79e3,U+79e7-79e8,U+79eb,U+79ed,U+79f4,U+79f7-79f8,U+79fa,U+79fe,U+7a02-7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e-7a1f,U+7a23,U+7a25-7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36-7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d-7a5e,U+7a62-7a63,U+7a66,U+7a68-7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b-7a9c,U+7a9e,U+7aa0-7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4-7ac5,U+7ac7-7ac8,U+7aca,U+7ad1-7ad2,U+7ada-7add,U+7ae1,U+7ae4}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-50-400-normal-BeYaGcbF.woff2) format("woff2");unicode-range:U+784c,U+784e-7854,U+7856-7857,U+7859-785a,U+7865,U+7869-786a,U+786d,U+786f,U+7876-7877,U+787c,U+787e-787f,U+7881,U+7887-7889,U+7893-7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9-78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9-78da,U+78dc,U+78de,U+78e1,U+78e5-78e6,U+78ea,U+78ec,U+78ef,U+78f1-78f2,U+78f4,U+78fa-78fb,U+78fe,U+7901-7902,U+7905,U+7907,U+7909,U+790b-790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e-791f,U+7921,U+7924,U+7926,U+792a-792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942-7943,U+7945-7947,U+7949-794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f-7960,U+7962,U+7964,U+7966-7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b-797c,U+797e-7980,U+7982,U+7986-7987,U+7989-798a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-51-400-normal-BXmprHGd.woff2) format("woff2");unicode-range:U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739-773a,U+773d-773f,U+7743,U+7746-7747,U+774c-774f,U+7751-7752,U+7758-775a,U+775c-775e,U+7762,U+7765-7766,U+7768-776a,U+776c-776d,U+7771-7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6-77d7,U+77d9-77da,U+77dd-77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd-77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817-7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832-7833,U+7835,U+7837,U+7839-783c,U+783e,U+7841-7844,U+7847-7849,U+784b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-52-400-normal-D6TC2b36.woff2) format("woff2");unicode-range:U+7613-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c-763d,U+763f-7640,U+7642-7643,U+7647-7648,U+764d-764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e-765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e-766f,U+7671-7673,U+7675-7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a-769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab-76ac,U+76af-76b0,U+76b2,U+76b4-76b5,U+76ba-76bb,U+76bf,U+76c2-76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff-7700,U+7703-7704,U+7707-7708,U+770c-770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-53-400-normal-DpzojyPN.woff2) format("woff2");unicode-range:U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c-752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d-754e,U+7550-7553,U+7556-7557,U+755a-755b,U+755d-755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b-756c,U+756f-7573,U+7575,U+7579-757c,U+757e-757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599-759a,U+759d,U+759f-75a0,U+75a3,U+75a5,U+75a8,U+75ac-75ad,U+75b0-75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc-75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9-75fa,U+75fc,U+75fe-7601,U+7603,U+7605-7606,U+7608-760e,U+7610-7612}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-54-400-normal-B9QLYnEh.woff2) format("woff2");unicode-range:U+73f0,U+73f2,U+73f4-73f5,U+73f7,U+73f9-73fa,U+73fc-73fd,U+73ff-7402,U+7404,U+7407-7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424-7425,U+7428-7429,U+742c-7430,U+7432,U+7435-7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a-744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473-7474,U+7477,U+747a,U+747e,U+7481-7482,U+7484,U+7486,U+7488-748b,U+748e-748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9-74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1-74d2,U+74d4-74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4-74e5,U+74e7-74e9,U+74ee-74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-55-400-normal-CYV3hjnq.woff2) format("woff2");unicode-range:U+72e6,U+72e8,U+72ef-72f0,U+72f2-72f4,U+72f6-72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c-732d,U+7330-7331,U+7333,U+7335-7337,U+7339,U+733d-733e,U+7340,U+7342,U+7344-7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f-7360,U+7362-7363,U+7365,U+7368,U+736c-736d,U+736f-7370,U+7372,U+7374-7376,U+7378,U+737a-737b,U+737d-737e,U+7382-7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6-73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5-73ea,U+73ee-73ef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-56-400-normal-B57fiM3p.woff2) format("woff2");unicode-range:U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1-71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9-71da,U+71dc,U+71df-71e0,U+71e6-71e8,U+71ea,U+71ed-71ee,U+71f4,U+71f6,U+71f9,U+71fb-71fc,U+71ff-7200,U+7207,U+720c-720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d-722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d-724e,U+7252,U+7256,U+7258,U+725a,U+725c-725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e-726f,U+7271,U+7273-7274,U+7278,U+727b,U+727d-727e,U+7281-7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f-72a0,U+72a7,U+72ad-72ae,U+72b0-72b5,U+72b7-72b8,U+72ba-72be,U+72c0-72c1,U+72c3,U+72c5-72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db,U+72dd-72df,U+72e1,U+72e5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-57-400-normal-0KJcqtwa.woff2) format("woff2");unicode-range:U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039-703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080-7081,U+7085-7086,U+708a,U+708f,U+7091,U+7094-7095,U+7098-7099,U+709c-709d,U+709f,U+70a4,U+70a9-70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce-70cf,U+70d4,U+70d9-70da,U+70dc-70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108-7109,U+710c,U+7110,U+7113-7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e-712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155-7156,U+7159-715a,U+715c,U+7161,U+7165-7166,U+7168-7169,U+716d,U+7173-7174,U+7176,U+7178,U+717a,U+717d,U+717f-7180,U+7184,U+7186-7188,U+7192,U+7198,U+719c,U+71a0,U+71a4-71a5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-58-400-normal-DHIustpc.woff2) format("woff2");unicode-range:U+6ed9,U+6edb,U+6edd,U+6edf-6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee-6eef,U+6ef2-6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08-6f09,U+6f15-6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c-6f2d,U+6f2f,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e-6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e-6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97-6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb-6fec,U+6fee-6ff1,U+6ffa,U+6ffe,U+7005-7006,U+7009}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-59-400-normal-D7wWmpIm.woff2) format("woff2");unicode-range:U+6dc3,U+6dc5-6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2-6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def-6df0,U+6df5-6df6,U+6df8,U+6dfa,U+6dfc,U+6e03-6e04,U+6e07-6e09,U+6e0b-6e0c,U+6e0e,U+6e11,U+6e13,U+6e15-6e16,U+6e19-6e1b,U+6e1e-6e1f,U+6e22,U+6e25-6e27,U+6e2b-6e2c,U+6e36-6e37,U+6e39-6e3a,U+6e3c-6e41,U+6e44-6e45,U+6e47,U+6e49-6e4b,U+6e4d-6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a-6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86-6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1-6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8-6ec9,U+6ecc,U+6ecf-6ed0,U+6ed3-6ed4,U+6ed7-6ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-60-400-normal-BkgLo8ii.woff2) format("woff2");unicode-range:U+6cb1-6cb2,U+6cb4-6cb5,U+6cb7,U+6cba,U+6cbc-6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6-6cd7,U+6cd9-6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1-6cf2,U+6cf6-6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07-6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13-6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22-6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35-6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48-6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60-6d61,U+6d63-6d65,U+6d67,U+6d6c-6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2-6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3-6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-61-400-normal-ggoUFMmb.woff2) format("woff2");unicode-range:U+6b83-6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97-6b98,U+6b9a-6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9-6baa,U+6bad,U+6baf-6bb0,U+6bb2-6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0-6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39-6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b-6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8-6ca9,U+6cac-6cae}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-62-400-normal-ytbDME29.woff2) format("woff2");unicode-range:U+69fe-6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28-6a29,U+6a2b,U+6a2f-6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a-6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e-6a7f,U+6a84,U+6a86,U+6a8e,U+6a90-6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2-6ab3,U+6ab5,U+6ab7-6ab8,U+6aba-6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2-6ad3,U+6ad8-6adc,U+6adf-6ae0,U+6ae4-6ae5,U+6ae7-6ae8,U+6afb,U+6b04-6b05,U+6b0d-6b13,U+6b16-6b17,U+6b19,U+6b24-6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53-6b54,U+6b58-6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f-6b70,U+6b73-6b74,U+6b77-6b7a,U+6b80-6b82}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-63-400-normal-BYQsjKYd.woff2) format("woff2");unicode-range:U+68d3,U+68d7,U+68dd,U+68df,U+68e1,U+68e3-68e4,U+68e6-68ed,U+68ef-68f0,U+68f2,U+68f4,U+68f6-68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f-6920,U+6924-6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a-694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e-696f,U+6971,U+6973-6974,U+6978-6979,U+697d,U+697f-6980,U+6985,U+6987-698a,U+698d-698e,U+6994-6999,U+699b,U+69a3-69a4,U+69a6-69a7,U+69ab,U+69ad-69ae,U+69b1,U+69b7,U+69bb-69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0-69d1,U+69d3-69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec-69ed,U+69f1-69f3,U+69f8,U+69fa-69fc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-64-400-normal-9n4RwFjr.woff2) format("woff2");unicode-range:U+678b-678d,U+678f,U+6792-6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac-67ad,U+67b0-67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb-67bc,U+67c0-67c1,U+67c3,U+67c5-67ca,U+67d1-67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7-67f8,U+67fa-67fb,U+67fd-67fe,U+6800-6801,U+6803-6804,U+6806,U+6809-680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840-6841,U+6844-6845,U+6849,U+684e,U+6853,U+6855-6856,U+685c-685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f-68a0,U+68a2-68a3,U+68b1,U+68b6,U+68b9-68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0-68d1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-65-400-normal-Co4l6Z_j.woff2) format("woff2");unicode-range:U+6631,U+6633-6634,U+6636,U+663a-663b,U+663d,U+6641,U+6644-6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d-665e,U+6660-6667,U+6669,U+666b-666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680-6681,U+6684-6685,U+6688-6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f-66a0,U+66a2-66a3,U+66a6,U+66aa-66ab,U+66b1-66b2,U+66b5,U+66b8-66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f-6710,U+6713,U+6715,U+6719,U+6722-6723,U+6725-6727,U+6729,U+672d-672e,U+6732-6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c-674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772-6773,U+6775,U+6777,U+677a-677d,U+6782-6783,U+6787,U+678a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-66-400-normal-BELuybXz.woff2) format("woff2");unicode-range:U+64f1-64f2,U+64f4,U+64f7-64f8,U+64fa,U+64fc,U+64fe-64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534-6535,U+6537-6538,U+653a,U+653c-653d,U+6542,U+6549-654b,U+654d-654e,U+6553-6555,U+6557-6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575-6576,U+6578-657e,U+6581-6583,U+6585-6586,U+6589,U+658e-658f,U+6592-6593,U+6595-6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab-65ac,U+65b2,U+65b6-65b7,U+65ba-65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2-65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb-65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610-6611,U+6619-661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-67-400-normal-BS_2ddPd.woff2) format("woff2");unicode-range:U+63b8-63bc,U+63be,U+63c0,U+63c3-63c4,U+63c6,U+63c8,U+63cd-63ce,U+63d1,U+63d6,U+63da-63db,U+63de,U+63e0,U+63e3,U+63e9-63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416-6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431-6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487-6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab-64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7-64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-68-400-normal-DhhAKUnY.woff2) format("woff2");unicode-range:U+622c,U+622e-6230,U+6232,U+6238,U+623b,U+623d-623e,U+6243,U+6246,U+6248-6249,U+624c,U+6255,U+6259,U+625e,U+6260-6261,U+6265-6266,U+626a,U+6271,U+627a,U+627c-627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e-629f,U+62a1,U+62a8,U+62ba-62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca-62cb,U+62cf,U+62d1,U+62d7,U+62d9-62da,U+62dd,U+62e0-62e1,U+62e3-62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312-6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331-6332,U+6334-6337,U+6339,U+633b-633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c-635d,U+6368-6369,U+636d,U+636f-6372,U+6376,U+637a-637b,U+637d,U+6382-6383,U+6387,U+638a-638b,U+638d-638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e-639f,U+63a1,U+63a3-63a4,U+63ac-63ae,U+63b1-63b5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-69-400-normal-o5cK7hs4.woff2) format("woff2");unicode-range:U+60ed-60ee,U+60f0-60f1,U+60f4,U+60f6,U+60fa,U+6100,U+6106,U+610d-610e,U+6112,U+6114-6115,U+6119,U+611c,U+6120,U+6122-6123,U+6126,U+6128-6130,U+6136-6137,U+613a,U+613d-613e,U+6144,U+6146-6147,U+614a-614b,U+6151,U+6153,U+6158,U+615a,U+615c-615d,U+615f,U+6161,U+6163-6165,U+616b-616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d-618e,U+6190-6191,U+6194,U+6199-619a,U+619c,U+619f,U+61a1,U+61a3-61a4,U+61a7-61a9,U+61ab-61ad,U+61b2-61b3,U+61b5-61b7,U+61ba-61bb,U+61bf,U+61c3-61c4,U+61c6-61c7,U+61c9-61cb,U+61d0-61d1,U+61d3-61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206-6207,U+6209,U+620b,U+620d-620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225-6226}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-70-400-normal-BlWmkfgH.woff2) format("woff2");unicode-range:U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd6,U+5fda-5fde,U+5fe1-5fe2,U+5fe4-5fe5,U+5fea,U+5fed-5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe-5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e-602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053-6054,U+6058-605b,U+605d-605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078-6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e-608f,U+6092-6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd-60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3-60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-71-400-normal-HYJki_zr.woff2) format("woff2");unicode-range:U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5-5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb-5ecc,U+5ed1-5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf-5ee0,U+5ee2-5ee3,U+5ee8,U+5eea,U+5eec,U+5eef-5ef0,U+5ef3-5ef4,U+5ef8,U+5efb-5efc,U+5efe-5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28-5f29,U+5f2c-5f2d,U+5f35-5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67-5f68,U+5f6b,U+5f6e-5f6f,U+5f72-5f78,U+5f7a,U+5f7e-5f7f,U+5f82-5f83,U+5f87,U+5f89-5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98-5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac-5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-72-400-normal-BLx1zxYv.woff2) format("woff2");unicode-range:U+5d26-5d27,U+5d2e-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a-5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68-5d69,U+5d6b-5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b-5d8c,U+5d8f,U+5d92-5d93,U+5d99,U+5d9d,U+5db2,U+5db6-5db7,U+5dba,U+5dbc-5dbd,U+5dc2-5dc3,U+5dc6-5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb-5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff-5e00,U+5e07,U+5e0f,U+5e11,U+5e13-5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33-5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53-5e54,U+5e57,U+5e59,U+5e5b,U+5e5e-5e5f,U+5e61,U+5e63,U+5e6a-5e6b,U+5e75,U+5e77,U+5e79-5e7a,U+5e7e,U+5e80-5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91-5e92,U+5e96}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-73-400-normal-tzRZHUkU.woff2) format("woff2");unicode-range:U+5bec,U+5bee-5bf0,U+5bf2-5bf3,U+5bf5-5bf6,U+5bfe,U+5c02-5c03,U+5c05,U+5c07-5c09,U+5c0b-5c0c,U+5c0e,U+5c10,U+5c12-5c13,U+5c15,U+5c17,U+5c19,U+5c1b-5c1c,U+5c1e-5c1f,U+5c22,U+5c25,U+5c28,U+5c2a-5c2b,U+5c2f-5c30,U+5c37,U+5c3b,U+5c43-5c44,U+5c46-5c47,U+5c4d,U+5c50,U+5c59,U+5c5b-5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83-5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98-5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab-5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3-5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8-5cd9,U+5cdf-5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3-5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d25}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-74-400-normal-C40Ur-xi.woff2) format("woff2");unicode-range:U+5aa0,U+5aa3-5aa4,U+5aaa,U+5aae-5aaf,U+5ab1-5ab2,U+5ab4-5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3-5ac4,U+5ac6-5ac8,U+5aca-5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b-5b0c,U+5b11,U+5b16-5b17,U+5b1b,U+5b21-5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a-5b4b,U+5b51-5b53,U+5b56,U+5b5a-5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70-5b71,U+5b73,U+5b7a-5b7b,U+5b7f-5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5-5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0-5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be5,U+5be7,U+5be9,U+5beb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-75-400-normal-CUYSz9vA.woff2) format("woff2");unicode-range:U+596a,U+596c-596e,U+5977,U+597b-597c,U+5981,U+598f,U+5997-5998,U+599a,U+599c-599d,U+59a0-59a1,U+59a3-59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2-59b3,U+59b5-59b6,U+59b8,U+59ba,U+59bd-59be,U+59c0-59c1,U+59c3-59c4,U+59c7-59ca,U+59cc-59cd,U+59cf,U+59d2,U+59d5-59d6,U+59d8-59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c-5a0d,U+5a11-5a13,U+5a15-5a16,U+5a1a-5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c-5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c-5a6d,U+5a72-5a73,U+5a75-5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96-5a97,U+5a9c,U+5a9e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-76-400-normal-JtvMmeCp.woff2) format("woff2");unicode-range:U+5820,U+5822-5823,U+5825-5826,U+582c,U+582f,U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859-585a,U+585c-585d,U+5862,U+5868-5869,U+586c-586d,U+586f-5873,U+5875,U+5879,U+587d-587e,U+5880-5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c-589d,U+58a0-58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2-58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8-58d9,U+58de-58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1-58f2,U+58f5,U+58f7-58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d-591e,U+5920,U+5922-5925,U+5928,U+592c-592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c-594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-77-400-normal-CxYpJvkI.woff2) format("woff2");unicode-range:U+56f9,U+56fc,U+56ff-5700,U+5703-5704,U+5709-570a,U+570c-570d,U+570f,U+5712-5713,U+5718-5719,U+571c,U+571e,U+5725,U+5727,U+5729-572a,U+572c,U+572e-572f,U+5734-5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c-574d,U+575c,U+5763,U+5768-5769,U+576b,U+576d-576e,U+5770,U+5773,U+5775,U+5777,U+577b-577c,U+5785-5786,U+5788,U+578c,U+578e-578f,U+5793-5795,U+5799-57a1,U+57a3-57a4,U+57a6-57aa,U+57ac-57ad,U+57af-57b2,U+57b4-57b6,U+57b8-57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc-57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1-57e2,U+57e4-57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc-57fd,U+5800-5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-581f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-78-400-normal-AGz1p3mV.woff2) format("woff2");unicode-range:U+55f5-55f7,U+55fb,U+55fe,U+5600-5601,U+5605-5606,U+5608,U+560c-560d,U+560f,U+5614,U+5616-5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663-5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b-569c,U+569e-569f,U+56a1-56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee-56ef,U+56f1-56f3,U+56f5,U+56f7-56f8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-79-400-normal-Bs84SZW2.woff2) format("woff2");unicode-range:U+550f,U+5511-5514,U+5516-5517,U+5519,U+551b,U+551d-551e,U+5520,U+5522-5523,U+5526-5527,U+552a-552c,U+5530,U+5532-5535,U+5537-5538,U+553b-5541,U+5543-5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b-557c,U+557e-557f,U+5581,U+5583,U+5585-5586,U+5588,U+558b-558c,U+558e-5591,U+5593,U+5599-559a,U+559f,U+55a5-55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9-55ba,U+55bc-55be,U+55c4,U+55c6-55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-80-400-normal-psViYwkz.woff2) format("woff2");unicode-range:U+53e7-53e9,U+53f1,U+53f4-53f5,U+53fa-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429-542a,U+542d-542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442-5443,U+5449,U+544b-544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b-545c,U+5461,U+5463-5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d-548e,U+5490-5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4-54b5,U+54b9,U+54bb,U+54be-54bf,U+54c2-54c3,U+54c9-54cc,U+54cf-54d0,U+54d3,U+54d5-54d6,U+54d9-54da,U+54dc-54de,U+54e2,U+54e7,U+54f3-54f4,U+54f8-54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-81-400-normal-BImDXGMr.woff2) format("woff2");unicode-range:U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a,U+52a2,U+52a6-52a7,U+52ac-52ad,U+52af,U+52b4-52b5,U+52b9,U+52bb-52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6-52d7,U+52d9,U+52db,U+52dd-52de,U+52e0,U+52e2-52e3,U+52e5,U+52e7-52f0,U+52f2-52f3,U+52f5-52f9,U+52fb-52fc,U+5302,U+5304,U+530b,U+530d,U+530f-5310,U+5315,U+531a,U+531c-531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5344-5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368-5369,U+536c,U+536e-536f,U+5372,U+5379-537b,U+537d,U+538d-538e,U+5390,U+5393-5394,U+5396,U+539b-539d,U+53a0-53a1,U+53a3-53a5,U+53a9,U+53ad-53ae,U+53b0,U+53b2-53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce-53cf,U+53d2-53d3,U+53d5,U+53da,U+53de-53df,U+53e1-53e2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-82-400-normal-BZZDzro0.woff2) format("woff2");unicode-range:U+5104,U+5106-5107,U+5109-510b,U+510d,U+510f-5110,U+5113,U+5115,U+5117-5118,U+511a-511c,U+511e-511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186-5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2-51a3,U+51a6-51ab,U+51ad-51ae,U+51b1,U+51b4,U+51bc-51bd,U+51bf,U+51c3,U+51c7-51c8,U+51ca-51cb,U+51cd-51ce,U+51d4,U+51d6,U+51db-51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d-520e,U+5215-5216,U+5228,U+522a,U+522c-522d,U+5233,U+523c-523d,U+523f-5240,U+5245,U+5247,U+5249,U+524b-524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263-5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-83-400-normal-cx8M2qMo.woff2) format("woff2");unicode-range:U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf-4fe0,U+4fe2-4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5-4ff6,U+4ff8,U+4ffe,U+5001,U+5005-5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027-5028,U+502b-502e,U+5030,U+5033-5034,U+5036-5039,U+503b,U+5041-5043,U+5045-5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062-5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074-5075,U+5078,U+507b,U+507d-507e,U+5080,U+5088-5089,U+5091-5092,U+5095,U+5097-509e,U+50a2-50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4-50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5-50d6,U+50da,U+50de,U+50e5-50e6,U+50ec-50ee,U+50f0-50f1,U+50f3,U+50f9-50fb,U+50fe-5102}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-84-400-normal-BtmNIfry.woff2) format("woff2");unicode-range:U+4ea3,U+4ea5,U+4eb0-4eb1,U+4eb3-4eb6,U+4eb8-4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8-4ec9,U+4ecc,U+4ecf-4ed0,U+4ed2,U+4eda-4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee-4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08-4f09,U+4f0b,U+4f0e,U+4f12-4f13,U+4f15,U+4f1b,U+4f1d,U+4f21-4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36-4f37,U+4f39,U+4f3e,U+4f40-4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57-4f58,U+4f5d-4f5e,U+4f61-4f62,U+4f64-4f65,U+4f67,U+4f6a,U+4f6e-4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89-4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9-4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5-4fc6,U+4fcd-4fce,U+4fd0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-85-400-normal-CNc66YTY.woff2) format("woff2");unicode-range:U+3129,U+3131,U+3134,U+3137,U+3139,U+3141-3142,U+3145,U+3147-3148,U+314b,U+314d-314e,U+315c,U+3160-3161,U+3163-3164,U+3186,U+318d,U+3192,U+3196-3198,U+319e-319f,U+3220-3229,U+3231,U+3268,U+3297,U+3299,U+32a3,U+338e-338f,U+3395,U+339c-339e,U+33c4,U+33d1-33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0-35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4db6-4dbf,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46-4e47,U+4e57,U+4e5a-4e5c,U+4e64-4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98-4e99,U+4e9c,U+4e9e-4ea0,U+4ea2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-86-400-normal-Cs9yXoGU.woff2) format("woff2");unicode-range:U+279f-27a2,U+27a4-27a5,U+27a8,U+27b0,U+27b2-27b3,U+27b9,U+27e8-27e9,U+27f6,U+2800,U+28ec,U+2913,U+2921-2922,U+2934-2935,U+2a2f,U+2b05-2b07,U+2b50,U+2b55,U+2bc5-2bc6,U+2e1c-2e1d,U+2ebb,U+2f00,U+2f08,U+2f24,U+2f2d,U+2f2f-2f30,U+2f3c,U+2f45,U+2f63-2f64,U+2f74,U+2f83,U+2f8f,U+2fbc,U+3003,U+3005-3007,U+3012-3013,U+301c-301e,U+3021,U+3023-3024,U+3030,U+3034-3035,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c-307d,U+3080,U+308e,U+3090-3091,U+3099-309b,U+309d-309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd-30fe,U+3105-3126,U+3128}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-87-400-normal-BGelIZWt.woff2) format("woff2");unicode-range:U+2651-2655,U+2658,U+265a-265b,U+265d-265e,U+2660-266d,U+266f,U+267b,U+2688,U+2693-2696,U+2698-2699,U+269c,U+26a0-26a1,U+26a4,U+26aa-26ab,U+26bd-26be,U+26c4-26c5,U+26d4,U+26e9,U+26f0-26f1,U+26f3,U+26f5,U+26fd,U+2702,U+2704-2706,U+2708-270f,U+2712-2718,U+271a-271b,U+271d,U+271f,U+2721,U+2724-2730,U+2732-2734,U+273a,U+273d-2744,U+2747-2749,U+274c,U+274e-274f,U+2753-2757,U+275b,U+275d-275e,U+2763,U+2765-2767,U+276e-276f,U+2776-277e,U+2780-2782,U+278a-278c,U+278e,U+2794-2796,U+279c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-88-400-normal-D3GwXLyo.woff2) format("woff2");unicode-range:U+2550-2551,U+2554,U+2557,U+255a-255b,U+255d,U+255f-2560,U+2562-2563,U+2565-2567,U+2569-256a,U+256c-2572,U+2579,U+2580-2595,U+25a1,U+25a3,U+25a9-25ad,U+25b0,U+25b3-25bb,U+25bd-25c2,U+25c4,U+25c8-25cb,U+25cd,U+25d0-25d1,U+25d4-25d5,U+25d8,U+25dc-25e6,U+25ea-25eb,U+25ef,U+25fe,U+2600-2604,U+2609,U+260e-260f,U+2611,U+2614-2615,U+2618,U+261a-2620,U+2622-2623,U+262a,U+262d-2630,U+2639-2640,U+2642,U+2648-2650}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-89-400-normal-acup1U1Z.woff2) format("woff2");unicode-range:U+23f0,U+23f3,U+2445,U+2449,U+2465-2471,U+2474-249b,U+24b8,U+24c2,U+24c7,U+24c9,U+24d0,U+24d2,U+24d4,U+24d8,U+24dd-24de,U+24e3,U+24e6,U+24e8,U+2500-2509,U+250b-2526,U+2528-2534,U+2536-2537,U+253b-2548,U+254a-254b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-90-400-normal-DRuAc-VY.woff2) format("woff2");unicode-range:U+207c-2083,U+208c-208e,U+2092,U+20a6,U+20a8-20ad,U+20af,U+20b1,U+20b4-20b5,U+20b8-20ba,U+20bd,U+20db,U+20dd,U+20e0,U+20e3,U+2105,U+2109,U+2113,U+2116-2117,U+2120-2121,U+2126,U+212b,U+2133,U+2139,U+2194,U+2196-2199,U+21a0,U+21a9-21aa,U+21af,U+21b3,U+21b5,U+21ba-21bb,U+21c4,U+21ca,U+21cc,U+21d0-21d4,U+21e1,U+21e6-21e9,U+2200,U+2202,U+2205-2208,U+220f,U+2211-2212,U+2215,U+2217-2219,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223c-223d,U+2248,U+224c,U+2252,U+2256,U+2260-2261,U+2266-2267,U+226a-226b,U+226e-226f,U+2282-2283,U+2295,U+2297,U+2299,U+22a5,U+22b0-22b1,U+22b9,U+22bf,U+22c5-22c6,U+22ef,U+2304,U+2307,U+230b,U+2312-2314,U+2318,U+231a-231b,U+2323,U+239b,U+239d-239e,U+23a0,U+23e9}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-91-400-normal-BdbNZCTz.woff2) format("woff2");unicode-range:U+1d34-1d35,U+1d38-1d3a,U+1d3c,U+1d3f-1d40,U+1d49,U+1d4e-1d4f,U+1d52,U+1d55,U+1d5b,U+1d5e,U+1d9c,U+1da0,U+1dc4-1dc5,U+1e69,U+1e73,U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd-1ebe,U+1ec0-1ec3,U+1ec5-1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+1f62,U+1f7b,U+2001-2002,U+2004-2006,U+2009-200a,U+200c-2012,U+2015-2016,U+201a,U+201e-2021,U+2023,U+2025,U+2028,U+202a-202d,U+202f-2030,U+2032-2033,U+2035,U+2038,U+203c,U+203e-203f,U+2043-2044,U+2049,U+204d-204e,U+2060-2061,U+2070,U+2074-2078,U+207a-207b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-97-400-normal-Diy_tB10.woff2) format("woff2");unicode-range:U+2ae-2b3,U+2b5-2bf,U+2c2-2c3,U+2c6-2d1,U+2d8-2da,U+2dc,U+2e1-2e3,U+2e5,U+2eb,U+2ee-2f0,U+2f2-2f7,U+2f9-2ff,U+302-30d,U+311,U+31b,U+321-325,U+327-329,U+32b-32c,U+32e-32f,U+331-339,U+33c-33d,U+33f,U+348,U+352,U+35c,U+35e-35f,U+361,U+363,U+368,U+36c,U+36f,U+530-540,U+55d-55e,U+561,U+563,U+565,U+56b,U+56e-579}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-98-400-normal-CuDKcdze.woff2) format("woff2");unicode-range:U+176-17f,U+192,U+194,U+19a-19b,U+19d,U+1a0-1a1,U+1a3-1a4,U+1aa,U+1ac-1ad,U+1af-1bf,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e3,U+1e7,U+1e9,U+1ee,U+1f0-1f1,U+1f3,U+1f5-1ff,U+219-21b,U+221,U+223-226,U+228,U+22b,U+22f,U+231,U+234-237,U+23a-23b,U+23d,U+250-252,U+254-255,U+259-25e,U+261-263,U+265,U+268,U+26a-26b,U+26f-277,U+279,U+27b-280,U+282-283,U+285,U+28a,U+28c,U+28f,U+292,U+294-296,U+298-29a,U+29c,U+29f,U+2a1-2a4,U+2a6-2a7,U+2a9,U+2ab}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-99-400-normal-BTAaudar.woff2) format("woff2");unicode-range:U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7-f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e-11f,U+121,U+123,U+125-127,U+129-12a,U+12d,U+12f-13f,U+141-142,U+144,U+146,U+14b-14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-100-400-normal-CX-7pUk_.woff2) format("woff2");unicode-range:U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5340,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+5618,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5be6,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+62ce,U+62ed,U+6345,U+6390,U+63b0,U+63b7,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f31,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+733f,U+7396,U+739f,U+7459,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b-814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385-8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8bb3,U+8d2e,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+99ac,U+9a6f,U+9a87,U+9a8b,U+9ab7,U+9abc,U+9ac5,U+9e25,U+e608,U+e621,U+ff06,U+ff14-ff16}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-101-400-normal-DYFU5ahq.woff2) format("woff2");unicode-range:U+161,U+926,U+928,U+939,U+93f-940,U+94d,U+e17,U+e22,U+e44,U+25c7,U+25ce,U+2764,U+3009,U+3016-3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+51c4,U+5225,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+560e,U+565c,U+5662,U+5669,U+566c,U+56bc,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5ac9,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+620c,U+6273,U+62c7,U+62f7,U+6320,U+6342,U+6401-6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+72e9,U+7409,U+7422,U+745a,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+8042,U+808b,U+8236,U+82b8-82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8aaa,U+8c41,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541-9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc-96cd,U+96cf,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+e606-e607,U+e60a,U+e60c,U+e60e,U+fe0f,U+ff02,U+ff1e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-102-400-normal-lPQNp5DG.woff2) format("woff2");unicode-range:U+10c,U+627-629,U+639,U+644,U+64a,U+203b,U+2265,U+2463,U+2573,U+25b2,U+3448-3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+516e,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5364,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6ed5,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+7405,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+803f,U+8046,U+80fa,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8cec,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9704,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+9f9a,U+e60b,U+e610,U+ff10,U+ff13,U+ff3b,U+ff3d,U+f012b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-103-400-normal-DrxRoDmn.woff2) format("woff2");unicode-range:U+60,U+631,U+2606,U+3014-3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+609a,U+60df,U+6168,U+61c8,U+6236,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+67da,U+67ec,U+6813,U+6816,U+6869,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119-711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+73fe,U+7410,U+7426,U+7455,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+81b3,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8e72,U+8f9c,U+900d,U+904b,U+904e,U+9063,U+90a2,U+90b9,U+9119,U+94f2,U+952f,U+9576-9577,U+9593,U+95f8,U+961c,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11-ff12,U+fffd}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-104-400-normal-DbzfdvQ5.woff2) format("woff2");unicode-range:U+2003,U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d-575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a1f,U+5a49,U+5ac2,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f6c,U+5f8c,U+603c,U+608d,U+611b,U+6127,U+62a0,U+62d0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6703,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0-8be1,U+8c0e,U+8d29,U+8d50,U+8d63,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9610,U+9631,U+9699,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+e600,U+e60f,U+e611,U+ff05,U+ff0b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-105-400-normal-BiKizsW3.woff2) format("woff2");unicode-range:U+5e,U+2190,U+250a,U+25bc,U+25cf,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bb0,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6e9c,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82bd,U+8305,U+8328,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8e81,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+9540,U+958b,U+9600,U+9640,U+96b6,U+96c7,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ad6d,U+c5b4,U+d55c,U+ff0f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-106-400-normal-DDMMORp2.woff2) format("woff2");unicode-range:U+b0,U+2191,U+2460-2461,U+25c6,U+300e-300f,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54b1,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+61be,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+6380,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0-80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+82ad,U+8304,U+8393,U+83b9,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681-8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95f7,U+9706,U+9709,U+9774,U+98a0,U+9e64,U+9f9f,U+e603}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-107-400-normal-DUS2YNa3.woff2) format("woff2");unicode-range:U+200b,U+2103,U+4e18,U+4e27-4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+83ca,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95ef,U+95fa,U+95fd,U+96c0,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9887,U+9b4f,U+9e2d,U+9f0e,U+e601-e602,U+e604-e605,U+ff5c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-108-400-normal-D80tGT87.woff2) format("woff2");unicode-range:U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20-6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b-886c,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b-8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+964c,U+9675,U+971c,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f,U+e715}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-109-400-normal-ZEHPyOzB.woff2) format("woff2");unicode-range:U+a5,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366-5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3-62d4,U+63f4,U+642c,U+6478,U+6491-6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+85aa,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90aa,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+e675,U+e6b9,U+ffe5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-110-400-normal-D1IYcvpb.woff2) format("woff2");unicode-range:U+300c-300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237-7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+feff,U+ff0d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-111-400-normal-C5Xi9UGz.woff2) format("woff2");unicode-range:U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3-4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076-5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54-5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75-8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-112-400-normal-F9zvXQVU.woff2) format("woff2");unicode-range:U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd-5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696-6697,U+66dd,U+675f,U+676f-6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4-80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f-9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634-9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-113-400-normal-DZoqVzDv.woff2) format("woff2");unicode-range:U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987-5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388-6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6740,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade-7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4-96c5,U+96e8,U+96f6-96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d-996e,U+9b54,U+9e21,U+9ebb,U+9f50}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-114-400-normal-CZUMxNv_.woff2) format("woff2");unicode-range:U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b63,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-115-400-normal-BQfWDt6M.woff2) format("woff2");unicode-range:U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956-5957,U+5a92,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838-6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4b,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26-8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632-9633,U+963f,U+968f-9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-116-400-normal-B9rv4EzF.woff2) format("woff2");unicode-range:U+2b,U+40,U+3000,U+300a-300b,U+4e16,U+4e66,U+4e70,U+4e91-4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17-4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e-529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7-53d8,U+53ea,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3-81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f-9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-117-400-normal-QPrBdlQO.woff2) format("woff2");unicode-range:U+4e,U+201c-201d,U+3010-3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b-4e8c,U+4ea4,U+4eab-4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6-4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e38,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc-91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-118-400-normal-CqQ_A8sl.woff2) format("woff2");unicode-range:U+d,U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d-4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a-4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee4-4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7-53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd-56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e73-5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210-6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247-7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08-ff09}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-119-400-normal-flOVnW3A.woff2) format("woff2");unicode-range:U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+df-e5,U+e7-ea,U+ec-ed,U+f1-f4,U+f6,U+f9-fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+2022,U+2027,U+2039-203a,U+2122,U+3001-3002,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075-3076,U+3078-3079,U+307b,U+307e-307f,U+3081-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3-30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30fb-30fc,U+3127,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708-6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-cyrillic-400-normal-CgZvxLpU.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-vietnamese-400-normal-Bi2eM1Po.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-latin-ext-400-normal-KRK7eeLK.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/admin/static/web/assets/noto-sans-sc-latin-400-normal-C8q2FS1w.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-4-500-normal-O1diwGl6.woff2) format("woff2");unicode-range:U+1f1e9-1f1f5,U+1f1f7-1f1ff,U+1f21a,U+1f232,U+1f234-1f237,U+1f250-1f251,U+1f300,U+1f302-1f308,U+1f30a-1f311,U+1f315,U+1f319-1f320,U+1f324,U+1f327,U+1f32a,U+1f32c-1f32d,U+1f330-1f357,U+1f359-1f37e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-5-500-normal-BdqLNb8-.woff2) format("woff2");unicode-range:U+fee3,U+fef3,U+ff03-ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c-ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ff61-ff65,U+ff67-ff6a,U+ff6c,U+ff6f-ff78,U+ff7a-ff7d,U+ff80-ff84,U+ff86,U+ff89-ff8e,U+ff92,U+ff97-ff9b,U+ff9d-ff9f,U+ffe0-ffe4,U+ffe6,U+ffe9,U+ffeb,U+ffed,U+fffc,U+1f004,U+1f170-1f171,U+1f192-1f195,U+1f198-1f19a,U+1f1e6-1f1e8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-6-500-normal-ClybqCn5.woff2) format("woff2");unicode-range:U+f0a7,U+f0b2,U+f0b7,U+f0c9,U+f0d8,U+f0da,U+f0dc-f0dd,U+f0e0,U+f0e6,U+f0eb,U+f0fc,U+f101,U+f104-f105,U+f107,U+f10b,U+f11b,U+f14b,U+f18a,U+f193,U+f1d6-f1d7,U+f244,U+f27a,U+f296,U+f2ae,U+f471,U+f4b3,U+f610-f611,U+f880-f881,U+f8ec,U+f8f5,U+f8ff,U+f901,U+f90a,U+f92c-f92d,U+f934,U+f937,U+f941,U+f965,U+f967,U+f969,U+f96b,U+f96f,U+f974,U+f978-f979,U+f97e,U+f981,U+f98a,U+f98e,U+f997,U+f99c,U+f9b2,U+f9b5,U+f9ba,U+f9be,U+f9ca,U+f9d0-f9d1,U+f9dd,U+f9e0-f9e1,U+f9e4,U+f9f7,U+fa00-fa01,U+fa08,U+fa0a,U+fa11,U+fb01-fb02,U+fdfc,U+fe0e,U+fe30-fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b,U+fe8e,U+fe92-fe93,U+feae,U+feb8,U+fecb-fecc,U+fee0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-21-500-normal-Dsw-xocd.woff2) format("woff2");unicode-range:U+9f83,U+9f85-9f8d,U+9f90-9f91,U+9f94-9f96,U+9f98,U+9f9b-9f9c,U+9f9e,U+9fa0,U+9fa2,U+9ff0-9fff,U+a001,U+a007,U+a025,U+a046-a047,U+a057,U+a072,U+a078-a079,U+a083,U+a085,U+a100,U+a118,U+a132,U+a134,U+a1f4,U+a242,U+a4a6,U+a4aa,U+a4b0-a4b1,U+a4b3,U+a9c1-a9c2,U+ac00-ac01,U+ac04,U+ac08,U+ac10-ac11,U+ac13-ac16,U+ac19,U+ac1c-ac1d,U+ac24,U+ac70-ac71,U+ac74,U+ac77-ac78,U+ac80-ac81,U+ac83,U+ac8c,U+ac90,U+ac9f-aca0,U+aca8-aca9,U+acac,U+acb0,U+acbd,U+acc1,U+acc4,U+ace0-ace1,U+ace4,U+ace8,U+acf3,U+acf5,U+acfc-acfd,U+ad00,U+ad0c,U+ad11,U+ad1c,U+ad34,U+ad50,U+ad64,U+ad6c,U+ad70,U+ad74,U+ad7f,U+ad81,U+ad8c,U+adc0,U+adc8,U+addc,U+ade0,U+adf8-adf9,U+adfc,U+ae00,U+ae08-ae09,U+ae0b,U+ae30,U+ae34,U+ae38,U+ae40,U+ae4a,U+ae4c,U+ae54,U+ae68,U+aebc,U+aed8,U+af2c-af2d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-22-500-normal-Duo_NxTl.woff2) format("woff2");unicode-range:U+9e30-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78-9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b-9e8c,U+9e90-9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4-9ea5,U+9ea9-9eaa,U+9eb4-9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2-9ed3,U+9ed5-9ed6,U+9ed9,U+9edc-9edd,U+9edf-9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3-9ef4,U+9ef6,U+9ef9,U+9efb-9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39,U+9f3d-9f3e,U+9f41,U+9f4a-9f4b,U+9f51-9f52,U+9f61-9f63,U+9f66-9f67,U+9f80-9f81}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-23-500-normal-BvADtLGk.woff2) format("woff2");unicode-range:U+9c82-9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad-9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf-9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc-9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee-9cef,U+9cf3-9cf4,U+9cf6,U+9cfc-9cfd,U+9d02,U+9d08-9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c-9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9-9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e2f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-24-500-normal-DMJ84PR8.woff2) format("woff2");unicode-range:U+9a80,U+9a83,U+9a85,U+9a88-9a8a,U+9a8d-9a8e,U+9a90,U+9a92-9a93,U+9a95-9a96,U+9a98-9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5-9ab6,U+9ab9-9aba,U+9ac0-9ac4,U+9ac8,U+9acb-9acc,U+9ace-9acf,U+9ad1-9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea-9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03-9b04,U+9b06,U+9b08,U+9b0d,U+9b0f-9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22-9b23,U+9b25,U+9b27-9b28,U+9b2a,U+9b2f,U+9b31-9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d-9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61-9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f-9ba0,U+9ba8,U+9baa-9bab,U+9bad-9bae,U+9bb0-9bb1,U+9bb8,U+9bc9-9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0-9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39,U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77-9c78,U+9c7b,U+9c7f-9c80}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-25-500-normal-DKB1lxHE.woff2) format("woff2");unicode-range:U+98dd,U+98e1-98e2,U+98e7-98ea,U+98ec,U+98ee-98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c-990d,U+9913-9914,U+9918,U+991a-991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938-9939,U+993d-993e,U+9945,U+994b-994c,U+9951-9952,U+9954-9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b-996c,U+996f,U+9974-9975,U+9977-9979,U+997d-997e,U+9980-9981,U+9983-9984,U+9987,U+998a-998b,U+998d-9991,U+9993-9995,U+9997-9998,U+99a5,U+99ab,U+99ad-99ae,U+99b1,U+99b3-99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03-9a04,U+9a0e-9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d-9a4e,U+9a52,U+9a55,U+9a57,U+9a5a-9a5b,U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-26-500-normal-Bc3Q36GO.woff2) format("woff2");unicode-range:U+975b-975c,U+9763,U+9765-9766,U+976c-976d,U+9773,U+9776,U+977a,U+977c,U+9784-9785,U+978e-978f,U+9791-9792,U+9794-9795,U+9798,U+979a,U+979e,U+97a3,U+97a5-97a6,U+97a8,U+97ab-97ac,U+97ae-97af,U+97b2,U+97b4,U+97c6,U+97cb-97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea-97eb,U+97ee,U+97fb,U+97fe-97ff,U+9801-9803,U+9805-9806,U+9808,U+980c,U+9810-9814,U+9817-9818,U+981e,U+9820-9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838-9839,U+983c,U+9846,U+984d-984f,U+9851-9852,U+9854-9855,U+9857-9858,U+985a-985b,U+9862-9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877-9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e-989f,U+98a1-98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3-98c4,U+98c6-98c8,U+98cf-98d6,U+98da-98db}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-27-500-normal-8q_kP--H.woff2) format("woff2");unicode-range:U+95c4-95ca,U+95cc-95cd,U+95d4-95d6,U+95d8,U+95e1-95e2,U+95e9,U+95f0-95f1,U+95f3,U+95f6,U+95fc,U+95fe-95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641-9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667-9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d-968e,U+9695,U+9697-9698,U+969e,U+96a0,U+96a3-96a4,U+96a8,U+96aa,U+96b0-96b1,U+96b3-96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1-96d2,U+96d6,U+96d9,U+96db-96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701-9702,U+9705,U+9708,U+970a,U+970e-970f,U+9711,U+9719,U+9727,U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748-9749,U+9750-9751,U+975a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-28-500-normal-CivsKE7T.woff2) format("woff2");unicode-range:U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503-9504,U+9506-9507,U+9509-950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e-958f,U+9591-9592,U+9594,U+9598-9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8-95c3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-29-500-normal-BTXg8v_Z.woff2) format("woff2");unicode-range:U+941c-942b,U+942d-942e,U+9432-9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451-9452,U+945a,U+9462-9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c-949d,U+94a1,U+94a3-94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94ec,U+94ee-94f1,U+94f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-30-500-normal-BvVSvPAW.woff2) format("woff2");unicode-range:U+92ec-92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b-932c,U+932f,U+9331-9332,U+9335-9336,U+933e,U+9340-9341,U+934a-9360,U+9362-9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393-9394,U+9396-9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0-93d1,U+93d6-93d8,U+93de-93df,U+93e1-93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e-941a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-31-500-normal-CXR93Yl5.woff2) format("woff2");unicode-range:U+9163-9164,U+9169,U+9170,U+9172,U+9174,U+9179-917a,U+917d-917e,U+9182-9183,U+9185,U+918c-918d,U+9190-9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4-91b5,U+91b8,U+91ba,U+91be,U+91c0-91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7-91d8,U+91dd,U+91e3,U+91e6-91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d-920e,U+9210,U+9214-9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229-922a,U+922d,U+9234-9235,U+9237,U+9239-923a,U+923c-9240,U+9244-9246,U+9249,U+924e-924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c-929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6-92b7,U+92b9,U+92c1,U+92c5-92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-32-500-normal-bEbagM5b.woff2) format("woff2");unicode-range:U+9004,U+900b,U+9011,U+9015-9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035-9036,U+9039-903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054-9055,U+9058-9059,U+905b-905e,U+9060-9062,U+9068-9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c-907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0-90a1,U+90a8-90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd-90be,U+90c3-90c5,U+90c7-90c8,U+90cf-90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6-90e7,U+90ea-90eb,U+90ef,U+90f4-90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114-9115,U+9118,U+911c,U+911e,U+9120,U+9122-9123,U+9127,U+912d,U+912f-9132,U+9139-913a,U+9143,U+9146,U+9149-914a,U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d-915e,U+9161-9162}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-33-500-normal-Co2VsUhm.woff2) format("woff2");unicode-range:U+8e41-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59-8e5a,U+8e5f-8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84-8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f-8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29-8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e-8f3f,U+8f44-8f45,U+8f49,U+8f4d-8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75-8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81-8f82,U+8f84,U+8f87,U+8f8a-8f8b,U+8f8d-8f8f,U+8f94-8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda,U+8fe2-8fe5,U+8fe8-8fe9,U+8fee,U+8ff3-8ff4,U+8ff8,U+8ffa}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-34-500-normal-Bs1nGgXz.woff2) format("woff2");unicode-range:U+8cbd,U+8cbf-8cc4,U+8cc7-8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb-8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc-8cfd,U+8d04-8d05,U+8d07-8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13-8d14,U+8d16,U+8d1b,U+8d20,U+8d30,U+8d32-8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42-8d43,U+8d45-8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c-8d5d,U+8d5f,U+8d61,U+8d66-8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90-8d91,U+8d94-8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce-8dcf,U+8dd6-8dd7,U+8dda-8ddb,U+8dde,U+8de1,U+8de3-8de4,U+8de9,U+8deb-8dec,U+8df0-8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09-8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b-8e31,U+8e34-8e35,U+8e39-8e3a,U+8e3d,U+8e40}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-35-500-normal-_sfdXfug.woff2) format("woff2");unicode-range:U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99-8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb4-8bb5,U+8bb7,U+8bb9,U+8bc2-8bc3,U+8bc5,U+8bcb-8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8-8bd9,U+8bdc,U+8bdf,U+8be3-8be4,U+8be7-8be9,U+8beb-8bec,U+8bee,U+8bf0,U+8bf2-8bf3,U+8bf6,U+8bf9,U+8bfc-8bfd,U+8bff-8c00,U+8c02,U+8c04,U+8c06-8c07,U+8c0c,U+8c0f,U+8c11-8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24-8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89-8c8a,U+8c8d-8c8e,U+8c90,U+8c93-8c94,U+8c98,U+8c9d-8c9e,U+8ca0-8ca2,U+8ca7-8cac,U+8caf-8cb0,U+8cb3-8cb4,U+8cb6-8cb9,U+8cbb-8cbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-36-500-normal-CaI-3T3h.woff2) format("woff2");unicode-range:U+8a15-8a18,U+8a1a-8a1b,U+8a1d,U+8a1f,U+8a22-8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33-8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40-8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54-8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d-8a6e,U+8a70,U+8a72-8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c-8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0-8aa1,U+8aa3-8aa6,U+8aa8-8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8-8ab9,U+8abc,U+8abe-8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6-8ad7,U+8adb-8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed-8aee,U+8af1,U+8af3-8af4,U+8af7-8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20-8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e-8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57-8b58,U+8b5a,U+8b5c,U+8b5e,U+8b60,U+8b6c,U+8b6f-8b70,U+8b72,U+8b74,U+8b77,U+8b7d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-37-500-normal-B98IgClf.woff2) format("woff2");unicode-range:U+8882,U+8884-8886,U+8888,U+888f,U+8892-8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce-88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0-88f1,U+88f3-88f4,U+88fc-88fe,U+8900,U+8902,U+8906-8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955-8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f-8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987-8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9-89aa,U+89b2-89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3-89f4,U+89f8,U+89ff,U+8a01-8a03,U+8a07-8a0a,U+8a0e-8a0f,U+8a13}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-38-500-normal-DRw4QbjB.woff2) format("woff2");unicode-range:U+86f4,U+86f8-86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722-8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a-873b,U+873e-8740,U+8742,U+8747-8748,U+8753,U+8755,U+8757-8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2-87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca-87cb,U+87d1-87d2,U+87db-87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2-87f3,U+87fb,U+87fd-87fe,U+8802-8803,U+8805,U+880a-880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831-8832,U+8835-8836,U+8839,U+883b-883c,U+8844,U+8846,U+884a,U+884e,U+8852-8853,U+8855,U+8859,U+885b,U+885d-885e,U+8862,U+8864,U+8869-886a,U+886e-886f,U+8872,U+8879,U+887d-887f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-39-500-normal-CAOP0xX7.woff2) format("woff2");unicode-range:U+8548,U+854e,U+8553,U+8556-8557,U+8559,U+855e,U+8561,U+8564-8565,U+8568-856a,U+856d,U+856f-8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585-8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8-85a9,U+85ab-85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc-85dd,U+85df-85e0,U+85e5-85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe-85ff,U+8602,U+8605-8607,U+860a-860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b-865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c-869d,U+86a1,U+86a3-86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9-86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de-86df,U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-40-500-normal-CFdw4jgZ.woff2) format("woff2");unicode-range:U+83c5,U+83c8-83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea-83eb,U+83f0,U+83f4,U+83f8-83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a-840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438-8439,U+843b-843c,U+843f,U+8446-8447,U+8449,U+844e,U+8451-8452,U+8456,U+8459-845a,U+845c,U+8462,U+8466,U+846d,U+846f-8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484-8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493-8494,U+8497,U+849b,U+849e-849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1-84c2,U+84c5-84c7,U+84ca-84cb,U+84cd,U+84d0-84d1,U+84d3,U+84d6,U+84df-84e0,U+84e2-84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff-8500,U+850c,U+8511,U+8514-8515,U+8517-8518,U+851f,U+8523,U+8525-8526,U+8529,U+852b,U+852d,U+8532,U+8534-8535,U+8538-853a,U+853c,U+8543,U+8545}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-41-500-normal-DxaQVwJP.woff2) format("woff2");unicode-range:U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2-82d3,U+82d5-82d6,U+82d8-82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed-82ee,U+82f3-82f4,U+82f7-82f8,U+82fa-8301,U+8306-8308,U+830c-830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a-831b,U+831d,U+8324,U+8327,U+832a,U+832c-832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347-8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f-8380,U+8382,U+8388,U+838a-838b,U+8392,U+8394,U+8396,U+8398-8399,U+839b-839c,U+83a0,U+83a2-83a3,U+83a8-83aa,U+83ae-83b0,U+83b3-83b4,U+83b6,U+83b8,U+83ba,U+83bc-83bd,U+83bf-83c0,U+83c2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-42-500-normal-BqjPf_lN.woff2) format("woff2");unicode-range:U+8166-8169,U+816b,U+816d,U+8171,U+8173-8174,U+8178,U+817c-817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5-81a6,U+81a9,U+81b6,U+81ba-81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9-81ca,U+81cc-81cd,U+81d1,U+81d3-81d4,U+81d8,U+81db-81dc,U+81de-81df,U+81e5,U+81e7-81e9,U+81eb-81ec,U+81ee-81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b-821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237-8238,U+823a-823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259-825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283-8284,U+8288-828a,U+828d-8291,U+8293-8294,U+8296-8298,U+829f-82a1,U+82a3-82a4,U+82a7-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-43-500-normal-Btkg4xpj.woff2) format("woff2");unicode-range:U+8016,U+8018-8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034-8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068-8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084-8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad-80ae,U+80b1,U+80b6-80b8,U+80bc-80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4-80e5,U+80e7-80ed,U+80ef-80f1,U+80f3-80f4,U+80fc,U+8101,U+8104-8105,U+8107-8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f-8140,U+8142,U+8146,U+8148,U+814d-814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-44-500-normal-DX-NL8hl.woff2) format("woff2");unicode-range:U+7ef0-7ef2,U+7ef6,U+7efa-7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b-7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44-7f45,U+7f4c-7f4d,U+7f52,U+7f54,U+7f58-7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70-7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d-7f7e,U+7f85-7f86,U+7f88-7f89,U+7f8b-7f8c,U+7f90-7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf-7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb-7fec,U+7fee-7fef,U+7ff1,U+7ff3-7ff4,U+7ff9-7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011-8012,U+8014}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-45-500-normal-BQ7H7gEJ.woff2) format("woff2");unicode-range:U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb-7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22-7e23,U+7e26,U+7e29,U+7e2b,U+7e2e-7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43-7e44,U+7e46-7e47,U+7e4a-7e4b,U+7e4d-7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d-7e5e,U+7e61,U+7e66-7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81-7e82,U+7e8c-7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e-7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8-7ea9,U+7eab,U+7ead-7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb-7ecc,U+7ed0,U+7ed4,U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5-7ee6,U+7ee8,U+7eeb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-46-500-normal-B_dRUXQz.woff2) format("woff2");unicode-range:U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30-7d31,U+7d33,U+7d35-7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b-7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b-7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79-7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1,U+7dc4,U+7dc7-7dc8,U+7dca-7dcd,U+7dcf,U+7dd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-47-500-normal-D7tRwN0h.woff2) format("woff2");unicode-range:U+7bd3-7bd4,U+7bd9-7bda,U+7bdd,U+7be0-7be1,U+7be4-7be6,U+7be9-7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07-7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15-7c16,U+7c19,U+7c1e-7c21,U+7c23-7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d-7c3e,U+7c40-7c41,U+7c43,U+7c47-7c48,U+7c4c,U+7c50,U+7c53-7c54,U+7c59,U+7c5f-7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79-7c7a,U+7c7c,U+7c81-7c82,U+7c84-7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9,U+7ccc-7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4-7ce5,U+7ce7}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-48-500-normal-Bqt1gTC7.woff2) format("woff2");unicode-range:U+7ae6,U+7af4-7af7,U+7afa-7afb,U+7afd-7b0a,U+7b0c,U+7b0e-7b0f,U+7b13,U+7b15-7b16,U+7b18-7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d-7b2e,U+7b30-7b3b,U+7b3e-7b3f,U+7b41-7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66-7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98-7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0-7bc1,U+7bc3-7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-49-500-normal-BZeNF2SD.woff2) format("woff2");unicode-range:U+798b-798e,U+7992,U+7994-7995,U+7997-7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5-79d6,U+79dd-79de,U+79e3,U+79e7-79e8,U+79eb,U+79ed,U+79f4,U+79f7-79f8,U+79fa,U+79fe,U+7a02-7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e-7a1f,U+7a23,U+7a25-7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36-7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d-7a5e,U+7a62-7a63,U+7a66,U+7a68-7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b-7a9c,U+7a9e,U+7aa0-7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4-7ac5,U+7ac7-7ac8,U+7aca,U+7ad1-7ad2,U+7ada-7add,U+7ae1,U+7ae4}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-50-500-normal-DlintQvq.woff2) format("woff2");unicode-range:U+784c,U+784e-7854,U+7856-7857,U+7859-785a,U+7865,U+7869-786a,U+786d,U+786f,U+7876-7877,U+787c,U+787e-787f,U+7881,U+7887-7889,U+7893-7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9-78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9-78da,U+78dc,U+78de,U+78e1,U+78e5-78e6,U+78ea,U+78ec,U+78ef,U+78f1-78f2,U+78f4,U+78fa-78fb,U+78fe,U+7901-7902,U+7905,U+7907,U+7909,U+790b-790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e-791f,U+7921,U+7924,U+7926,U+792a-792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942-7943,U+7945-7947,U+7949-794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f-7960,U+7962,U+7964,U+7966-7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b-797c,U+797e-7980,U+7982,U+7986-7987,U+7989-798a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-51-500-normal-B5-dbmQ8.woff2) format("woff2");unicode-range:U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739-773a,U+773d-773f,U+7743,U+7746-7747,U+774c-774f,U+7751-7752,U+7758-775a,U+775c-775e,U+7762,U+7765-7766,U+7768-776a,U+776c-776d,U+7771-7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6-77d7,U+77d9-77da,U+77dd-77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd-77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817-7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832-7833,U+7835,U+7837,U+7839-783c,U+783e,U+7841-7844,U+7847-7849,U+784b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-52-500-normal-C_fGT2yH.woff2) format("woff2");unicode-range:U+7613-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c-763d,U+763f-7640,U+7642-7643,U+7647-7648,U+764d-764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e-765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e-766f,U+7671-7673,U+7675-7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a-769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab-76ac,U+76af-76b0,U+76b2,U+76b4-76b5,U+76ba-76bb,U+76bf,U+76c2-76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff-7700,U+7703-7704,U+7707-7708,U+770c-770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-53-500-normal-4I_fEgQd.woff2) format("woff2");unicode-range:U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c-752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d-754e,U+7550-7553,U+7556-7557,U+755a-755b,U+755d-755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b-756c,U+756f-7573,U+7575,U+7579-757c,U+757e-757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599-759a,U+759d,U+759f-75a0,U+75a3,U+75a5,U+75a8,U+75ac-75ad,U+75b0-75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc-75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9-75fa,U+75fc,U+75fe-7601,U+7603,U+7605-7606,U+7608-760e,U+7610-7612}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-54-500-normal-D-1v3FoB.woff2) format("woff2");unicode-range:U+73f0,U+73f2,U+73f4-73f5,U+73f7,U+73f9-73fa,U+73fc-73fd,U+73ff-7402,U+7404,U+7407-7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424-7425,U+7428-7429,U+742c-7430,U+7432,U+7435-7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a-744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473-7474,U+7477,U+747a,U+747e,U+7481-7482,U+7484,U+7486,U+7488-748b,U+748e-748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9-74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1-74d2,U+74d4-74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4-74e5,U+74e7-74e9,U+74ee-74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-55-500-normal-Dx0OnOTe.woff2) format("woff2");unicode-range:U+72e6,U+72e8,U+72ef-72f0,U+72f2-72f4,U+72f6-72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c-732d,U+7330-7331,U+7333,U+7335-7337,U+7339,U+733d-733e,U+7340,U+7342,U+7344-7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f-7360,U+7362-7363,U+7365,U+7368,U+736c-736d,U+736f-7370,U+7372,U+7374-7376,U+7378,U+737a-737b,U+737d-737e,U+7382-7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6-73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5-73ea,U+73ee-73ef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-56-500-normal-l5dSnWaL.woff2) format("woff2");unicode-range:U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1-71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9-71da,U+71dc,U+71df-71e0,U+71e6-71e8,U+71ea,U+71ed-71ee,U+71f4,U+71f6,U+71f9,U+71fb-71fc,U+71ff-7200,U+7207,U+720c-720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d-722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d-724e,U+7252,U+7256,U+7258,U+725a,U+725c-725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e-726f,U+7271,U+7273-7274,U+7278,U+727b,U+727d-727e,U+7281-7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f-72a0,U+72a7,U+72ad-72ae,U+72b0-72b5,U+72b7-72b8,U+72ba-72be,U+72c0-72c1,U+72c3,U+72c5-72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db,U+72dd-72df,U+72e1,U+72e5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-57-500-normal-CInU2z8g.woff2) format("woff2");unicode-range:U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039-703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080-7081,U+7085-7086,U+708a,U+708f,U+7091,U+7094-7095,U+7098-7099,U+709c-709d,U+709f,U+70a4,U+70a9-70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce-70cf,U+70d4,U+70d9-70da,U+70dc-70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108-7109,U+710c,U+7110,U+7113-7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e-712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155-7156,U+7159-715a,U+715c,U+7161,U+7165-7166,U+7168-7169,U+716d,U+7173-7174,U+7176,U+7178,U+717a,U+717d,U+717f-7180,U+7184,U+7186-7188,U+7192,U+7198,U+719c,U+71a0,U+71a4-71a5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-58-500-normal-DUnNpYKw.woff2) format("woff2");unicode-range:U+6ed9,U+6edb,U+6edd,U+6edf-6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee-6eef,U+6ef2-6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08-6f09,U+6f15-6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c-6f2d,U+6f2f,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e-6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e-6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97-6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb-6fec,U+6fee-6ff1,U+6ffa,U+6ffe,U+7005-7006,U+7009}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-59-500-normal-BxaY6bmN.woff2) format("woff2");unicode-range:U+6dc3,U+6dc5-6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2-6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def-6df0,U+6df5-6df6,U+6df8,U+6dfa,U+6dfc,U+6e03-6e04,U+6e07-6e09,U+6e0b-6e0c,U+6e0e,U+6e11,U+6e13,U+6e15-6e16,U+6e19-6e1b,U+6e1e-6e1f,U+6e22,U+6e25-6e27,U+6e2b-6e2c,U+6e36-6e37,U+6e39-6e3a,U+6e3c-6e41,U+6e44-6e45,U+6e47,U+6e49-6e4b,U+6e4d-6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a-6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86-6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1-6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8-6ec9,U+6ecc,U+6ecf-6ed0,U+6ed3-6ed4,U+6ed7-6ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-60-500-normal-DFqPQqQq.woff2) format("woff2");unicode-range:U+6cb1-6cb2,U+6cb4-6cb5,U+6cb7,U+6cba,U+6cbc-6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6-6cd7,U+6cd9-6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1-6cf2,U+6cf6-6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07-6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13-6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22-6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35-6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48-6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60-6d61,U+6d63-6d65,U+6d67,U+6d6c-6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2-6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3-6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-61-500-normal-BB7Zjp1f.woff2) format("woff2");unicode-range:U+6b83-6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97-6b98,U+6b9a-6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9-6baa,U+6bad,U+6baf-6bb0,U+6bb2-6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0-6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39-6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b-6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8-6ca9,U+6cac-6cae}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-62-500-normal-U8mQETkr.woff2) format("woff2");unicode-range:U+69fe-6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28-6a29,U+6a2b,U+6a2f-6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a-6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e-6a7f,U+6a84,U+6a86,U+6a8e,U+6a90-6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2-6ab3,U+6ab5,U+6ab7-6ab8,U+6aba-6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2-6ad3,U+6ad8-6adc,U+6adf-6ae0,U+6ae4-6ae5,U+6ae7-6ae8,U+6afb,U+6b04-6b05,U+6b0d-6b13,U+6b16-6b17,U+6b19,U+6b24-6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53-6b54,U+6b58-6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f-6b70,U+6b73-6b74,U+6b77-6b7a,U+6b80-6b82}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-63-500-normal-BUjOaASF.woff2) format("woff2");unicode-range:U+68d3,U+68d7,U+68dd,U+68df,U+68e1,U+68e3-68e4,U+68e6-68ed,U+68ef-68f0,U+68f2,U+68f4,U+68f6-68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f-6920,U+6924-6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a-694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e-696f,U+6971,U+6973-6974,U+6978-6979,U+697d,U+697f-6980,U+6985,U+6987-698a,U+698d-698e,U+6994-6999,U+699b,U+69a3-69a4,U+69a6-69a7,U+69ab,U+69ad-69ae,U+69b1,U+69b7,U+69bb-69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0-69d1,U+69d3-69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec-69ed,U+69f1-69f3,U+69f8,U+69fa-69fc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-64-500-normal-B5UNeVXi.woff2) format("woff2");unicode-range:U+678b-678d,U+678f,U+6792-6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac-67ad,U+67b0-67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb-67bc,U+67c0-67c1,U+67c3,U+67c5-67ca,U+67d1-67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7-67f8,U+67fa-67fb,U+67fd-67fe,U+6800-6801,U+6803-6804,U+6806,U+6809-680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840-6841,U+6844-6845,U+6849,U+684e,U+6853,U+6855-6856,U+685c-685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f-68a0,U+68a2-68a3,U+68b1,U+68b6,U+68b9-68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0-68d1}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-65-500-normal-CFOLBwGK.woff2) format("woff2");unicode-range:U+6631,U+6633-6634,U+6636,U+663a-663b,U+663d,U+6641,U+6644-6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d-665e,U+6660-6667,U+6669,U+666b-666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680-6681,U+6684-6685,U+6688-6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f-66a0,U+66a2-66a3,U+66a6,U+66aa-66ab,U+66b1-66b2,U+66b5,U+66b8-66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f-6710,U+6713,U+6715,U+6719,U+6722-6723,U+6725-6727,U+6729,U+672d-672e,U+6732-6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c-674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772-6773,U+6775,U+6777,U+677a-677d,U+6782-6783,U+6787,U+678a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-66-500-normal-BH_NxZif.woff2) format("woff2");unicode-range:U+64f1-64f2,U+64f4,U+64f7-64f8,U+64fa,U+64fc,U+64fe-64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534-6535,U+6537-6538,U+653a,U+653c-653d,U+6542,U+6549-654b,U+654d-654e,U+6553-6555,U+6557-6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575-6576,U+6578-657e,U+6581-6583,U+6585-6586,U+6589,U+658e-658f,U+6592-6593,U+6595-6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab-65ac,U+65b2,U+65b6-65b7,U+65ba-65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2-65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb-65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610-6611,U+6619-661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-67-500-normal-DWzpSa9_.woff2) format("woff2");unicode-range:U+63b8-63bc,U+63be,U+63c0,U+63c3-63c4,U+63c6,U+63c8,U+63cd-63ce,U+63d1,U+63d6,U+63da-63db,U+63de,U+63e0,U+63e3,U+63e9-63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416-6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431-6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487-6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab-64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7-64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-68-500-normal-BRRTtSYi.woff2) format("woff2");unicode-range:U+622c,U+622e-6230,U+6232,U+6238,U+623b,U+623d-623e,U+6243,U+6246,U+6248-6249,U+624c,U+6255,U+6259,U+625e,U+6260-6261,U+6265-6266,U+626a,U+6271,U+627a,U+627c-627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e-629f,U+62a1,U+62a8,U+62ba-62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca-62cb,U+62cf,U+62d1,U+62d7,U+62d9-62da,U+62dd,U+62e0-62e1,U+62e3-62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312-6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331-6332,U+6334-6337,U+6339,U+633b-633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c-635d,U+6368-6369,U+636d,U+636f-6372,U+6376,U+637a-637b,U+637d,U+6382-6383,U+6387,U+638a-638b,U+638d-638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e-639f,U+63a1,U+63a3-63a4,U+63ac-63ae,U+63b1-63b5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-69-500-normal-CyfyID68.woff2) format("woff2");unicode-range:U+60ed-60ee,U+60f0-60f1,U+60f4,U+60f6,U+60fa,U+6100,U+6106,U+610d-610e,U+6112,U+6114-6115,U+6119,U+611c,U+6120,U+6122-6123,U+6126,U+6128-6130,U+6136-6137,U+613a,U+613d-613e,U+6144,U+6146-6147,U+614a-614b,U+6151,U+6153,U+6158,U+615a,U+615c-615d,U+615f,U+6161,U+6163-6165,U+616b-616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d-618e,U+6190-6191,U+6194,U+6199-619a,U+619c,U+619f,U+61a1,U+61a3-61a4,U+61a7-61a9,U+61ab-61ad,U+61b2-61b3,U+61b5-61b7,U+61ba-61bb,U+61bf,U+61c3-61c4,U+61c6-61c7,U+61c9-61cb,U+61d0-61d1,U+61d3-61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206-6207,U+6209,U+620b,U+620d-620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225-6226}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-70-500-normal-CUVD271H.woff2) format("woff2");unicode-range:U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd6,U+5fda-5fde,U+5fe1-5fe2,U+5fe4-5fe5,U+5fea,U+5fed-5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe-5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e-602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053-6054,U+6058-605b,U+605d-605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078-6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e-608f,U+6092-6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd-60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3-60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-71-500-normal-Dz2iPqSM.woff2) format("woff2");unicode-range:U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5-5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb-5ecc,U+5ed1-5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf-5ee0,U+5ee2-5ee3,U+5ee8,U+5eea,U+5eec,U+5eef-5ef0,U+5ef3-5ef4,U+5ef8,U+5efb-5efc,U+5efe-5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28-5f29,U+5f2c-5f2d,U+5f35-5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67-5f68,U+5f6b,U+5f6e-5f6f,U+5f72-5f78,U+5f7a,U+5f7e-5f7f,U+5f82-5f83,U+5f87,U+5f89-5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98-5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac-5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-72-500-normal-DTeK03yK.woff2) format("woff2");unicode-range:U+5d26-5d27,U+5d2e-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a-5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68-5d69,U+5d6b-5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b-5d8c,U+5d8f,U+5d92-5d93,U+5d99,U+5d9d,U+5db2,U+5db6-5db7,U+5dba,U+5dbc-5dbd,U+5dc2-5dc3,U+5dc6-5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb-5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff-5e00,U+5e07,U+5e0f,U+5e11,U+5e13-5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33-5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53-5e54,U+5e57,U+5e59,U+5e5b,U+5e5e-5e5f,U+5e61,U+5e63,U+5e6a-5e6b,U+5e75,U+5e77,U+5e79-5e7a,U+5e7e,U+5e80-5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91-5e92,U+5e96}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-73-500-normal-Cw_tnR9p.woff2) format("woff2");unicode-range:U+5bec,U+5bee-5bf0,U+5bf2-5bf3,U+5bf5-5bf6,U+5bfe,U+5c02-5c03,U+5c05,U+5c07-5c09,U+5c0b-5c0c,U+5c0e,U+5c10,U+5c12-5c13,U+5c15,U+5c17,U+5c19,U+5c1b-5c1c,U+5c1e-5c1f,U+5c22,U+5c25,U+5c28,U+5c2a-5c2b,U+5c2f-5c30,U+5c37,U+5c3b,U+5c43-5c44,U+5c46-5c47,U+5c4d,U+5c50,U+5c59,U+5c5b-5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83-5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98-5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab-5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3-5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8-5cd9,U+5cdf-5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3-5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d25}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-74-500-normal-DkeJ_Z7u.woff2) format("woff2");unicode-range:U+5aa0,U+5aa3-5aa4,U+5aaa,U+5aae-5aaf,U+5ab1-5ab2,U+5ab4-5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3-5ac4,U+5ac6-5ac8,U+5aca-5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b-5b0c,U+5b11,U+5b16-5b17,U+5b1b,U+5b21-5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a-5b4b,U+5b51-5b53,U+5b56,U+5b5a-5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70-5b71,U+5b73,U+5b7a-5b7b,U+5b7f-5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5-5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0-5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be5,U+5be7,U+5be9,U+5beb}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-75-500-normal-RnXI8R7b.woff2) format("woff2");unicode-range:U+596a,U+596c-596e,U+5977,U+597b-597c,U+5981,U+598f,U+5997-5998,U+599a,U+599c-599d,U+59a0-59a1,U+59a3-59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2-59b3,U+59b5-59b6,U+59b8,U+59ba,U+59bd-59be,U+59c0-59c1,U+59c3-59c4,U+59c7-59ca,U+59cc-59cd,U+59cf,U+59d2,U+59d5-59d6,U+59d8-59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c-5a0d,U+5a11-5a13,U+5a15-5a16,U+5a1a-5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c-5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c-5a6d,U+5a72-5a73,U+5a75-5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96-5a97,U+5a9c,U+5a9e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-76-500-normal-B9Jbkcne.woff2) format("woff2");unicode-range:U+5820,U+5822-5823,U+5825-5826,U+582c,U+582f,U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859-585a,U+585c-585d,U+5862,U+5868-5869,U+586c-586d,U+586f-5873,U+5875,U+5879,U+587d-587e,U+5880-5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c-589d,U+58a0-58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2-58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8-58d9,U+58de-58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1-58f2,U+58f5,U+58f7-58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d-591e,U+5920,U+5922-5925,U+5928,U+592c-592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c-594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-77-500-normal-3BTwE5uB.woff2) format("woff2");unicode-range:U+56f9,U+56fc,U+56ff-5700,U+5703-5704,U+5709-570a,U+570c-570d,U+570f,U+5712-5713,U+5718-5719,U+571c,U+571e,U+5725,U+5727,U+5729-572a,U+572c,U+572e-572f,U+5734-5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c-574d,U+575c,U+5763,U+5768-5769,U+576b,U+576d-576e,U+5770,U+5773,U+5775,U+5777,U+577b-577c,U+5785-5786,U+5788,U+578c,U+578e-578f,U+5793-5795,U+5799-57a1,U+57a3-57a4,U+57a6-57aa,U+57ac-57ad,U+57af-57b2,U+57b4-57b6,U+57b8-57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc-57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1-57e2,U+57e4-57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc-57fd,U+5800-5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-581f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-78-500-normal-BVk9bSPD.woff2) format("woff2");unicode-range:U+55f5-55f7,U+55fb,U+55fe,U+5600-5601,U+5605-5606,U+5608,U+560c-560d,U+560f,U+5614,U+5616-5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663-5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b-569c,U+569e-569f,U+56a1-56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee-56ef,U+56f1-56f3,U+56f5,U+56f7-56f8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-79-500-normal-C-QvHj7p.woff2) format("woff2");unicode-range:U+550f,U+5511-5514,U+5516-5517,U+5519,U+551b,U+551d-551e,U+5520,U+5522-5523,U+5526-5527,U+552a-552c,U+5530,U+5532-5535,U+5537-5538,U+553b-5541,U+5543-5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b-557c,U+557e-557f,U+5581,U+5583,U+5585-5586,U+5588,U+558b-558c,U+558e-5591,U+5593,U+5599-559a,U+559f,U+55a5-55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9-55ba,U+55bc-55be,U+55c4,U+55c6-55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-80-500-normal-Di8G0AhH.woff2) format("woff2");unicode-range:U+53e7-53e9,U+53f1,U+53f4-53f5,U+53fa-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429-542a,U+542d-542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442-5443,U+5449,U+544b-544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b-545c,U+5461,U+5463-5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d-548e,U+5490-5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4-54b5,U+54b9,U+54bb,U+54be-54bf,U+54c2-54c3,U+54c9-54cc,U+54cf-54d0,U+54d3,U+54d5-54d6,U+54d9-54da,U+54dc-54de,U+54e2,U+54e7,U+54f3-54f4,U+54f8-54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-81-500-normal-DUcTi26F.woff2) format("woff2");unicode-range:U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a,U+52a2,U+52a6-52a7,U+52ac-52ad,U+52af,U+52b4-52b5,U+52b9,U+52bb-52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6-52d7,U+52d9,U+52db,U+52dd-52de,U+52e0,U+52e2-52e3,U+52e5,U+52e7-52f0,U+52f2-52f3,U+52f5-52f9,U+52fb-52fc,U+5302,U+5304,U+530b,U+530d,U+530f-5310,U+5315,U+531a,U+531c-531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5344-5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368-5369,U+536c,U+536e-536f,U+5372,U+5379-537b,U+537d,U+538d-538e,U+5390,U+5393-5394,U+5396,U+539b-539d,U+53a0-53a1,U+53a3-53a5,U+53a9,U+53ad-53ae,U+53b0,U+53b2-53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce-53cf,U+53d2-53d3,U+53d5,U+53da,U+53de-53df,U+53e1-53e2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-82-500-normal-DyyUtoXj.woff2) format("woff2");unicode-range:U+5104,U+5106-5107,U+5109-510b,U+510d,U+510f-5110,U+5113,U+5115,U+5117-5118,U+511a-511c,U+511e-511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186-5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2-51a3,U+51a6-51ab,U+51ad-51ae,U+51b1,U+51b4,U+51bc-51bd,U+51bf,U+51c3,U+51c7-51c8,U+51ca-51cb,U+51cd-51ce,U+51d4,U+51d6,U+51db-51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d-520e,U+5215-5216,U+5228,U+522a,U+522c-522d,U+5233,U+523c-523d,U+523f-5240,U+5245,U+5247,U+5249,U+524b-524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263-5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-83-500-normal-CngP5iwW.woff2) format("woff2");unicode-range:U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf-4fe0,U+4fe2-4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5-4ff6,U+4ff8,U+4ffe,U+5001,U+5005-5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027-5028,U+502b-502e,U+5030,U+5033-5034,U+5036-5039,U+503b,U+5041-5043,U+5045-5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062-5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074-5075,U+5078,U+507b,U+507d-507e,U+5080,U+5088-5089,U+5091-5092,U+5095,U+5097-509e,U+50a2-50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4-50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5-50d6,U+50da,U+50de,U+50e5-50e6,U+50ec-50ee,U+50f0-50f1,U+50f3,U+50f9-50fb,U+50fe-5102}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-84-500-normal-3O-pFZPI.woff2) format("woff2");unicode-range:U+4ea3,U+4ea5,U+4eb0-4eb1,U+4eb3-4eb6,U+4eb8-4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8-4ec9,U+4ecc,U+4ecf-4ed0,U+4ed2,U+4eda-4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee-4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08-4f09,U+4f0b,U+4f0e,U+4f12-4f13,U+4f15,U+4f1b,U+4f1d,U+4f21-4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36-4f37,U+4f39,U+4f3e,U+4f40-4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57-4f58,U+4f5d-4f5e,U+4f61-4f62,U+4f64-4f65,U+4f67,U+4f6a,U+4f6e-4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89-4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9-4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5-4fc6,U+4fcd-4fce,U+4fd0}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-85-500-normal-BHnspF-n.woff2) format("woff2");unicode-range:U+3129,U+3131,U+3134,U+3137,U+3139,U+3141-3142,U+3145,U+3147-3148,U+314b,U+314d-314e,U+315c,U+3160-3161,U+3163-3164,U+3186,U+318d,U+3192,U+3196-3198,U+319e-319f,U+3220-3229,U+3231,U+3268,U+3297,U+3299,U+32a3,U+338e-338f,U+3395,U+339c-339e,U+33c4,U+33d1-33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0-35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4db6-4dbf,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46-4e47,U+4e57,U+4e5a-4e5c,U+4e64-4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98-4e99,U+4e9c,U+4e9e-4ea0,U+4ea2}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-86-500-normal-BdmmPOi_.woff2) format("woff2");unicode-range:U+279f-27a2,U+27a4-27a5,U+27a8,U+27b0,U+27b2-27b3,U+27b9,U+27e8-27e9,U+27f6,U+2800,U+28ec,U+2913,U+2921-2922,U+2934-2935,U+2a2f,U+2b05-2b07,U+2b50,U+2b55,U+2bc5-2bc6,U+2e1c-2e1d,U+2ebb,U+2f00,U+2f08,U+2f24,U+2f2d,U+2f2f-2f30,U+2f3c,U+2f45,U+2f63-2f64,U+2f74,U+2f83,U+2f8f,U+2fbc,U+3003,U+3005-3007,U+3012-3013,U+301c-301e,U+3021,U+3023-3024,U+3030,U+3034-3035,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c-307d,U+3080,U+308e,U+3090-3091,U+3099-309b,U+309d-309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd-30fe,U+3105-3126,U+3128}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-87-500-normal-CyNxmc60.woff2) format("woff2");unicode-range:U+2651-2655,U+2658,U+265a-265b,U+265d-265e,U+2660-266d,U+266f,U+267b,U+2688,U+2693-2696,U+2698-2699,U+269c,U+26a0-26a1,U+26a4,U+26aa-26ab,U+26bd-26be,U+26c4-26c5,U+26d4,U+26e9,U+26f0-26f1,U+26f3,U+26f5,U+26fd,U+2702,U+2704-2706,U+2708-270f,U+2712-2718,U+271a-271b,U+271d,U+271f,U+2721,U+2724-2730,U+2732-2734,U+273a,U+273d-2744,U+2747-2749,U+274c,U+274e-274f,U+2753-2757,U+275b,U+275d-275e,U+2763,U+2765-2767,U+276e-276f,U+2776-277e,U+2780-2782,U+278a-278c,U+278e,U+2794-2796,U+279c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-88-500-normal-BfIgc9Wa.woff2) format("woff2");unicode-range:U+2550-2551,U+2554,U+2557,U+255a-255b,U+255d,U+255f-2560,U+2562-2563,U+2565-2567,U+2569-256a,U+256c-2572,U+2579,U+2580-2595,U+25a1,U+25a3,U+25a9-25ad,U+25b0,U+25b3-25bb,U+25bd-25c2,U+25c4,U+25c8-25cb,U+25cd,U+25d0-25d1,U+25d4-25d5,U+25d8,U+25dc-25e6,U+25ea-25eb,U+25ef,U+25fe,U+2600-2604,U+2609,U+260e-260f,U+2611,U+2614-2615,U+2618,U+261a-2620,U+2622-2623,U+262a,U+262d-2630,U+2639-2640,U+2642,U+2648-2650}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-89-500-normal-z-0TkXtN.woff2) format("woff2");unicode-range:U+23f0,U+23f3,U+2445,U+2449,U+2465-2471,U+2474-249b,U+24b8,U+24c2,U+24c7,U+24c9,U+24d0,U+24d2,U+24d4,U+24d8,U+24dd-24de,U+24e3,U+24e6,U+24e8,U+2500-2509,U+250b-2526,U+2528-2534,U+2536-2537,U+253b-2548,U+254a-254b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-90-500-normal-CzRUd9Y4.woff2) format("woff2");unicode-range:U+207c-2083,U+208c-208e,U+2092,U+20a6,U+20a8-20ad,U+20af,U+20b1,U+20b4-20b5,U+20b8-20ba,U+20bd,U+20db,U+20dd,U+20e0,U+20e3,U+2105,U+2109,U+2113,U+2116-2117,U+2120-2121,U+2126,U+212b,U+2133,U+2139,U+2194,U+2196-2199,U+21a0,U+21a9-21aa,U+21af,U+21b3,U+21b5,U+21ba-21bb,U+21c4,U+21ca,U+21cc,U+21d0-21d4,U+21e1,U+21e6-21e9,U+2200,U+2202,U+2205-2208,U+220f,U+2211-2212,U+2215,U+2217-2219,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223c-223d,U+2248,U+224c,U+2252,U+2256,U+2260-2261,U+2266-2267,U+226a-226b,U+226e-226f,U+2282-2283,U+2295,U+2297,U+2299,U+22a5,U+22b0-22b1,U+22b9,U+22bf,U+22c5-22c6,U+22ef,U+2304,U+2307,U+230b,U+2312-2314,U+2318,U+231a-231b,U+2323,U+239b,U+239d-239e,U+23a0,U+23e9}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-91-500-normal-i0u1m_iB.woff2) format("woff2");unicode-range:U+1d34-1d35,U+1d38-1d3a,U+1d3c,U+1d3f-1d40,U+1d49,U+1d4e-1d4f,U+1d52,U+1d55,U+1d5b,U+1d5e,U+1d9c,U+1da0,U+1dc4-1dc5,U+1e69,U+1e73,U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd-1ebe,U+1ec0-1ec3,U+1ec5-1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+1f62,U+1f7b,U+2001-2002,U+2004-2006,U+2009-200a,U+200c-2012,U+2015-2016,U+201a,U+201e-2021,U+2023,U+2025,U+2028,U+202a-202d,U+202f-2030,U+2032-2033,U+2035,U+2038,U+203c,U+203e-203f,U+2043-2044,U+2049,U+204d-204e,U+2060-2061,U+2070,U+2074-2078,U+207a-207b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-97-500-normal-C5vefU1Z.woff2) format("woff2");unicode-range:U+2ae-2b3,U+2b5-2bf,U+2c2-2c3,U+2c6-2d1,U+2d8-2da,U+2dc,U+2e1-2e3,U+2e5,U+2eb,U+2ee-2f0,U+2f2-2f7,U+2f9-2ff,U+302-30d,U+311,U+31b,U+321-325,U+327-329,U+32b-32c,U+32e-32f,U+331-339,U+33c-33d,U+33f,U+348,U+352,U+35c,U+35e-35f,U+361,U+363,U+368,U+36c,U+36f,U+530-540,U+55d-55e,U+561,U+563,U+565,U+56b,U+56e-579}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-98-500-normal-Df-1dTws.woff2) format("woff2");unicode-range:U+176-17f,U+192,U+194,U+19a-19b,U+19d,U+1a0-1a1,U+1a3-1a4,U+1aa,U+1ac-1ad,U+1af-1bf,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e3,U+1e7,U+1e9,U+1ee,U+1f0-1f1,U+1f3,U+1f5-1ff,U+219-21b,U+221,U+223-226,U+228,U+22b,U+22f,U+231,U+234-237,U+23a-23b,U+23d,U+250-252,U+254-255,U+259-25e,U+261-263,U+265,U+268,U+26a-26b,U+26f-277,U+279,U+27b-280,U+282-283,U+285,U+28a,U+28c,U+28f,U+292,U+294-296,U+298-29a,U+29c,U+29f,U+2a1-2a4,U+2a6-2a7,U+2a9,U+2ab}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-99-500-normal-BWS8QmEB.woff2) format("woff2");unicode-range:U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7-f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e-11f,U+121,U+123,U+125-127,U+129-12a,U+12d,U+12f-13f,U+141-142,U+144,U+146,U+14b-14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-100-500-normal-LjZqvEsR.woff2) format("woff2");unicode-range:U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5340,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+5618,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5be6,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+62ce,U+62ed,U+6345,U+6390,U+63b0,U+63b7,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f31,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+733f,U+7396,U+739f,U+7459,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b-814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385-8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8bb3,U+8d2e,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+99ac,U+9a6f,U+9a87,U+9a8b,U+9ab7,U+9abc,U+9ac5,U+9e25,U+e608,U+e621,U+ff06,U+ff14-ff16}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-101-500-normal-CjWROJGG.woff2) format("woff2");unicode-range:U+161,U+926,U+928,U+939,U+93f-940,U+94d,U+e17,U+e22,U+e44,U+25c7,U+25ce,U+2764,U+3009,U+3016-3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+51c4,U+5225,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+560e,U+565c,U+5662,U+5669,U+566c,U+56bc,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5ac9,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+620c,U+6273,U+62c7,U+62f7,U+6320,U+6342,U+6401-6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+72e9,U+7409,U+7422,U+745a,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+8042,U+808b,U+8236,U+82b8-82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8aaa,U+8c41,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541-9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc-96cd,U+96cf,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+e606-e607,U+e60a,U+e60c,U+e60e,U+fe0f,U+ff02,U+ff1e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-102-500-normal-BuRimFGI.woff2) format("woff2");unicode-range:U+10c,U+627-629,U+639,U+644,U+64a,U+203b,U+2265,U+2463,U+2573,U+25b2,U+3448-3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+516e,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5364,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6ed5,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+7405,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+803f,U+8046,U+80fa,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8cec,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9704,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+9f9a,U+e60b,U+e610,U+ff10,U+ff13,U+ff3b,U+ff3d,U+f012b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-103-500-normal-BvWkBJSJ.woff2) format("woff2");unicode-range:U+60,U+631,U+2606,U+3014-3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+609a,U+60df,U+6168,U+61c8,U+6236,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+67da,U+67ec,U+6813,U+6816,U+6869,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119-711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+73fe,U+7410,U+7426,U+7455,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+81b3,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8e72,U+8f9c,U+900d,U+904b,U+904e,U+9063,U+90a2,U+90b9,U+9119,U+94f2,U+952f,U+9576-9577,U+9593,U+95f8,U+961c,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11-ff12,U+fffd}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-104-500-normal-jDvxI4uY.woff2) format("woff2");unicode-range:U+2003,U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d-575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a1f,U+5a49,U+5ac2,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f6c,U+5f8c,U+603c,U+608d,U+611b,U+6127,U+62a0,U+62d0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6703,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0-8be1,U+8c0e,U+8d29,U+8d50,U+8d63,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9610,U+9631,U+9699,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+e600,U+e60f,U+e611,U+ff05,U+ff0b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-105-500-normal-DXW7JQ-g.woff2) format("woff2");unicode-range:U+5e,U+2190,U+250a,U+25bc,U+25cf,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bb0,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6e9c,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82bd,U+8305,U+8328,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8e81,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+9540,U+958b,U+9600,U+9640,U+96b6,U+96c7,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ad6d,U+c5b4,U+d55c,U+ff0f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-106-500-normal-9h6-MSep.woff2) format("woff2");unicode-range:U+b0,U+2191,U+2460-2461,U+25c6,U+300e-300f,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54b1,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+61be,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+6380,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0-80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+82ad,U+8304,U+8393,U+83b9,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681-8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95f7,U+9706,U+9709,U+9774,U+98a0,U+9e64,U+9f9f,U+e603}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-107-500-normal-SPtoRxRh.woff2) format("woff2");unicode-range:U+200b,U+2103,U+4e18,U+4e27-4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+83ca,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95ef,U+95fa,U+95fd,U+96c0,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9887,U+9b4f,U+9e2d,U+9f0e,U+e601-e602,U+e604-e605,U+ff5c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-108-500-normal-clZ-BISV.woff2) format("woff2");unicode-range:U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20-6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b-886c,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b-8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+964c,U+9675,U+971c,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f,U+e715}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-109-500-normal-CMa8AMM8.woff2) format("woff2");unicode-range:U+a5,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366-5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3-62d4,U+63f4,U+642c,U+6478,U+6491-6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+85aa,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90aa,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+e675,U+e6b9,U+ffe5}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-110-500-normal-jlYZJC5i.woff2) format("woff2");unicode-range:U+300c-300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237-7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+feff,U+ff0d}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-111-500-normal-BSdshYmW.woff2) format("woff2");unicode-range:U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3-4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076-5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54-5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75-8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-112-500-normal-p2Brug1G.woff2) format("woff2");unicode-range:U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd-5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696-6697,U+66dd,U+675f,U+676f-6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4-80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f-9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634-9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-113-500-normal-C8tnUFPA.woff2) format("woff2");unicode-range:U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987-5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388-6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6740,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade-7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4-96c5,U+96e8,U+96f6-96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d-996e,U+9b54,U+9e21,U+9ebb,U+9f50}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-114-500-normal-Dz3EZ57H.woff2) format("woff2");unicode-range:U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b63,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-115-500-normal-BO06SmMa.woff2) format("woff2");unicode-range:U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956-5957,U+5a92,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838-6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4b,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26-8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632-9633,U+963f,U+968f-9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-116-500-normal-Cn7hj0Qe.woff2) format("woff2");unicode-range:U+2b,U+40,U+3000,U+300a-300b,U+4e16,U+4e66,U+4e70,U+4e91-4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17-4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e-529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7-53d8,U+53ea,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3-81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f-9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-117-500-normal-ma0iM6M2.woff2) format("woff2");unicode-range:U+4e,U+201c-201d,U+3010-3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b-4e8c,U+4ea4,U+4eab-4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6-4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e38,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc-91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-118-500-normal-BkdpJ3OC.woff2) format("woff2");unicode-range:U+d,U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d-4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a-4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee4-4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7-53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd-56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e73-5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210-6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247-7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08-ff09}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-119-500-normal-Bg7BvryU.woff2) format("woff2");unicode-range:U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+df-e5,U+e7-ea,U+ec-ed,U+f1-f4,U+f6,U+f9-fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+2022,U+2027,U+2039-203a,U+2122,U+3001-3002,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075-3076,U+3078-3079,U+307b,U+307e-307f,U+3081-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3-30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30fb-30fc,U+3127,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708-6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-cyrillic-500-normal-DGAdDs8H.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-vietnamese-500-normal-920XfTAD.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-latin-ext-500-normal-GsgFcZNr.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/admin/static/web/assets/noto-sans-sc-latin-500-normal-JVPArRf3.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=light]{color-scheme:light;--jf-font-sans: "IBM Plex Sans", "Noto Sans SC", system-ui, -apple-system, sans-serif;--jf-font-mono: "IBM Plex Mono", "Noto Sans SC", ui-monospace, Menlo, monospace;--jf-canvas: #f7f7f3;--jf-surface: #ffffff;--jf-surface-hover: #fafafa;--jf-tonal: #efefe9;--jf-tonal-hover: #e8e8e0;--jf-tonal-active: #e0e0d6;--jf-tonal-selected: #e3e3da;--jf-border-subtle: #e5e5dd;--jf-border-control: #85857e;--jf-border-focus: #1a1a18;--jf-border-strong: #4a4a44;--jf-text: #1a1a18;--jf-text-secondary: #666660;--jf-text-inverse: #f7f7f3;--jf-decorative-muted: #999993;--jf-text-on-primary: #ffffff;--jf-text-on-danger: #ffffff;--jf-text-on-warning: #1a1a18;--jf-text-on-success: #ffffff;--jf-text-on-info: #ffffff;--jf-primary: #1a1a18;--jf-primary-hover: #333330;--jf-primary-active: #1a1a18;--jf-primary-bg: #f0f0ea;--jf-success: #166534;--jf-success-bg: #f0fdf4;--jf-success-hover: #15803d;--jf-success-active: #166534;--jf-success-border: #bbf7d0;--jf-success-text: #166534;--jf-warning: #854d0e;--jf-warning-bg: #fefce8;--jf-warning-hover: #a16207;--jf-warning-active: #854d0e;--jf-warning-border: #fde68a;--jf-warning-text: #854d0e;--jf-danger: #b91c1c;--jf-danger-bg: #fef2f2;--jf-danger-hover: #991b1b;--jf-danger-active: #7f1d1d;--jf-danger-border: #fecaca;--jf-danger-text: #b91c1c;--jf-info: #1e40af;--jf-info-bg: #eff6ff;--jf-info-hover: #1d4ed8;--jf-info-active: #1e3a8a;--jf-info-border: #bfdbfe;--jf-info-text: #1e40af;--jf-radius-check: 50%;--jf-radius-control: 10px;--jf-radius-popup: 12px;--jf-radius-object: 14px;--jf-radius-dialog: 18px;--jf-radius-pill: 999px;--jf-radius-none: 0;--jf-control-xs: 1.5rem;--jf-control-sm: 2rem;--jf-control-md: 2.5rem;--jf-control-lg: 3rem;--jf-control-xl: 3.5rem;--jf-space-0: 0;--jf-space-px: 1px;--jf-space-1: .25rem;--jf-space-2: .5rem;--jf-space-3: .75rem;--jf-space-4: 1rem;--jf-space-5: 1.25rem;--jf-space-6: 1.5rem;--jf-space-7: 1.75rem;--jf-space-8: 2rem;--jf-space-10: 2.5rem;--jf-space-12: 3rem;--jf-space-14: 3.5rem;--jf-space-16: 4rem;--jf-space-20: 5rem;--jf-space-24: 6rem;--jf-space-32: 8rem;--jf-display-size: clamp(2.25rem, 4vw, 3.75rem);--jf-display-leading: 1.05;--jf-display-tracking: -.0175em;--jf-page-title-size: 2rem;--jf-page-title-leading: 1.25;--jf-section-title-size: 1.25rem;--jf-section-title-leading: 1.4;--jf-subsection-size: 1rem;--jf-subsection-leading: 1.4;--jf-body-size: 1rem;--jf-body-leading: 1.59;--jf-compact-size: .875rem;--jf-compact-leading: 1.5;--jf-caption-size: .75rem;--jf-caption-leading: 1.5;--jf-overline-size: .6875rem;--jf-overline-leading: 1.4;--jf-overline-tracking: .05em;--jf-heading-weight: 400;--jf-emphasis-weight: 500;--jf-body-weight: 400;--jf-shadow-none: none;--jf-shadow-soft: 0 4px 20px rgb(0 0 0 / .04);--jf-shadow-floating: 0 12px 32px rgb(0 0 0 / .06);--jf-shadow-dropdown: 0 8px 24px rgb(0 0 0 / .08);--jf-shadow-toast: 0 8px 24px rgb(0 0 0 / .1);--jf-shadow-modal: 0 16px 48px rgb(0 0 0 / .12);--jf-shadow-drawer: -4px 0 24px rgb(0 0 0 / .06);--jf-shadow-command: 0 16px 48px rgb(0 0 0 / .14);--jf-duration-instant: 80ms;--jf-duration-fast: .12s;--jf-duration-normal: .18s;--jf-duration-overlay: .24s;--jf-duration-emphasis: .32s;--jf-duration-page: .4s;--jf-duration-exit-fast: 60ms;--jf-duration-exit-normal: .12s;--jf-duration-exit-overlay: .16s;--jf-period-shimmer: 1.5s;--jf-period-spinner: .6s;--jf-period-progress: 1.2s;--jf-period-pulse: 1s;--jf-ease: cubic-bezier(.2, 0, 0, 1);--jf-ease-in: cubic-bezier(.4, 0, 1, 1);--jf-ease-out: cubic-bezier(0, 0, .2, 1);--jf-ease-in-out: cubic-bezier(.4, 0, .2, 1);--jf-ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--jf-ease-spring: cubic-bezier(.175, .885, .32, 1.1);--jf-z-base: 0;--jf-z-sticky: 10;--jf-z-dropdown: 20;--jf-z-overlay: 30;--jf-z-modal: 40;--jf-z-toast: 50;--jf-z-tooltip: 60;--jf-z-command: 70;--jf-opacity-disabled: .45;--jf-opacity-muted: .65;--jf-opacity-overlay: .4;--jf-opacity-ghost-hover: .06;--jf-opacity-ghost-active: .1;--jf-border-width: 1px;--jf-border-width-focus: 2px;--jf-icon-xs: 12px;--jf-icon-sm: 16px;--jf-icon-md: 20px;--jf-icon-lg: 24px;--jf-icon-xl: 32px;--jf-icon-2xl: 48px;--jf-sidebar-width: 260px;--jf-sidebar-collapsed: 64px;--jf-header-height: 56px;--jf-content-max: 1200px;--jf-form-max: 640px;--jf-reading-max: 72ch;--jf-card-radius: var(--jf-radius-object);--jf-card-padding-compact: var(--jf-space-4);--jf-card-padding-comfortable: var(--jf-space-6);--jf-card-section-gap: var(--jf-space-4);--jf-card-section-gap-compact: var(--jf-space-3)}:root[data-theme=dark]{color-scheme:dark;--jf-canvas: #1a1a18;--jf-surface: #242422;--jf-surface-hover: #2a2a28;--jf-tonal: #2e2e2a;--jf-tonal-hover: #383832;--jf-tonal-active: #42423c;--jf-tonal-selected: #3d3d36;--jf-border-subtle: #3a3a34;--jf-border-control: #6a6a62;--jf-border-focus: #e5e5dd;--jf-border-strong: #8a8a82;--jf-text: #e5e5dd;--jf-text-secondary: #a0a098;--jf-text-inverse: #1a1a18;--jf-decorative-muted: #6a6a62;--jf-text-on-primary: #1a1a18;--jf-text-on-danger: #1a1a18;--jf-text-on-warning: #1a1a18;--jf-text-on-success: #1a1a18;--jf-text-on-info: #1a1a18;--jf-primary: #e5e5dd;--jf-primary-hover: #f0f0ea;--jf-primary-active: #d5d5cd;--jf-primary-bg: #2e2e2a;--jf-success: #4ade80;--jf-success-bg: #052e16;--jf-success-hover: #22c55e;--jf-success-active: #16a34a;--jf-success-border: #166534;--jf-success-text: #4ade80;--jf-warning: #fbbf24;--jf-warning-bg: #451a03;--jf-warning-hover: #f59e0b;--jf-warning-active: #d97706;--jf-warning-border: #854d0e;--jf-warning-text: #fbbf24;--jf-danger: #f87171;--jf-danger-bg: #450a0a;--jf-danger-hover: #ef4444;--jf-danger-active: #dc2626;--jf-danger-border: #b91c1c;--jf-danger-text: #f87171;--jf-info: #60a5fa;--jf-info-bg: #172554;--jf-info-hover: #3b82f6;--jf-info-active: #2563eb;--jf-info-border: #1e40af;--jf-info-text: #60a5fa;--jf-shadow-soft: 0 4px 20px rgb(0 0 0 / .15);--jf-shadow-floating: 0 12px 32px rgb(0 0 0 / .2);--jf-shadow-dropdown: 0 8px 24px rgb(0 0 0 / .25);--jf-shadow-toast: 0 8px 24px rgb(0 0 0 / .3);--jf-shadow-modal: 0 16px 48px rgb(0 0 0 / .35);--jf-shadow-drawer: -4px 0 24px rgb(0 0 0 / .2);--jf-shadow-command: 0 16px 48px rgb(0 0 0 / .4);--jf-opacity-overlay: .55;--jf-opacity-ghost-hover: .08;--jf-opacity-ghost-active: .14}@media(prefers-reduced-motion:reduce){:root{--jf-duration-instant: 0ms;--jf-duration-fast: 0ms;--jf-duration-normal: 0ms;--jf-duration-overlay: 0ms;--jf-duration-emphasis: 0ms;--jf-duration-page: 0ms;--jf-duration-exit-fast: 0ms;--jf-duration-exit-normal: 0ms;--jf-duration-exit-overlay: 0ms;--jf-period-shimmer: 0s;--jf-period-spinner: 0s;--jf-period-progress: 0s;--jf-period-pulse: 0s}}.jf-focus:focus-visible{outline:var(--jf-border-width-focus) solid var(--jf-border-focus);outline-offset:2px}.jf-mono{font-family:var(--jf-font-mono);font-variant-numeric:tabular-nums}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--leading-relaxed:1.625;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--jf-font-sans);--default-mono-font-family:var(--jf-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:960px){.container{max-width:960px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}@media(min-width:40rem){.container{max-width:40rem}}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-20{height:calc(var(--spacing) * 20)}.h-36{height:calc(var(--spacing) * 36)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[460px\]{max-height:460px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-full{width:100%}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-\[440px\]{max-width:440px}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-56{flex-basis:calc(var(--spacing) * 56)}.border-collapse{border-collapse:collapse}.-rotate-90{rotate:-90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[var\(--jf-radius-control\)\]{border-radius:var(--jf-radius-control)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-danger\/20{border-color:var(--jf-danger-text)}@supports (color:color-mix(in lab,red,red)){.border-danger\/20{border-color:color-mix(in oklab,var(--jf-danger-text) 20%,transparent)}}.border-line{border-color:var(--jf-border-subtle)}.border-warning{border-color:var(--jf-warning-text)}.bg-danger{background-color:var(--jf-danger-text)}.bg-danger-bg{background-color:var(--jf-danger-bg)}.bg-info{background-color:var(--jf-info-text)}.bg-primary{background-color:var(--jf-primary)}.bg-success{background-color:var(--jf-success-text)}.bg-success-bg{background-color:var(--jf-success-bg)}.bg-tonal{background-color:var(--jf-tonal)}.bg-warning{background-color:var(--jf-warning-text)}.bg-warning-bg{background-color:var(--jf-warning-bg)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:var(--spacing)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--jf-font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.text-wrap{text-wrap:wrap}.text-danger{color:var(--jf-danger-text)}.text-ink{color:var(--jf-text)}.text-ink-secondary{color:var(--jf-text-secondary)}.text-success{color:var(--jf-success-text)}.text-warning{color:var(--jf-warning-text)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-tonal-hover:hover{background-color:var(--jf-tonal-hover)}}@media(min-width:960px){.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:w-60{width:calc(var(--spacing) * 60)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}}}:root{font-family:var(--jf-font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:var(--jf-canvas);min-width:320px;min-height:100%}body{background:var(--jf-canvas);min-width:320px;min-height:100vh;color:var(--jf-text);font-family:var(--jf-font-sans);font-size:var(--jf-compact-size);font-weight:var(--jf-body-weight);line-height:var(--jf-compact-leading);font-variant-numeric:tabular-nums;margin:0}button,input,textarea,select{font:inherit}h1,.jf-page-title{font-size:var(--jf-page-title-size);line-height:var(--jf-page-title-leading);font-weight:var(--jf-heading-weight);letter-spacing:-.015em;text-wrap:balance;margin:0}h2,.jf-section-title{font-size:var(--jf-section-title-size);line-height:var(--jf-section-title-leading);font-weight:var(--jf-heading-weight);letter-spacing:normal;text-wrap:balance;margin:0}h3,.jf-subsection-title{font-size:var(--jf-subsection-size);line-height:var(--jf-subsection-leading);font-weight:var(--jf-emphasis-weight);letter-spacing:normal;text-wrap:balance;margin:0}h4,.jf-module-title{font-size:var(--jf-compact-size);line-height:1.4;font-weight:var(--jf-emphasis-weight);letter-spacing:normal;margin:0}p{text-wrap:pretty;margin:0}code,kbd,samp,pre{font-family:var(--jf-font-mono)}.jf-display{font-size:var(--jf-display-size);line-height:var(--jf-display-leading);letter-spacing:var(--jf-display-tracking);font-weight:var(--jf-heading-weight);line-break:strict;text-wrap:balance}.jf-body{font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading)}.jf-caption{font-size:var(--jf-caption-size);line-height:var(--jf-caption-leading)}.jf-overline{font-size:var(--jf-overline-size);line-height:var(--jf-overline-leading);font-weight:var(--jf-emphasis-weight);letter-spacing:var(--jf-overline-tracking)}.jf-metric{font-size:var(--jf-page-title-size);line-height:var(--jf-page-title-leading);font-weight:var(--jf-heading-weight);font-variant-numeric:tabular-nums}.jf-nowrap{white-space:nowrap}.jf-balance{text-wrap:balance}.jf-pretty{text-wrap:pretty}.jf-cjk-display{line-break:strict}.jf-anywhere{overflow-wrap:anywhere}.jf-truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.jf-tabular{font-variant-numeric:tabular-nums}.jf-stack{gap:var(--jf-space-8);align-content:start;display:grid}.jf-toolbar{justify-content:space-between;align-items:center;gap:var(--jf-space-3);flex-wrap:wrap;display:flex}.jf-action-group{align-items:center;gap:var(--jf-space-2);flex-wrap:wrap;display:flex}.jf-field-row{align-items:flex-end;gap:var(--jf-space-3);flex-wrap:wrap;display:flex}.jf-scroll-x{min-width:0;overflow-x:auto}.jf-divider{height:1px;margin:var(--jf-space-8) 0;background:var(--jf-border-subtle);border:0}:where(a,button,input,select,textarea,[tabindex],[role]):focus-visible{outline:var(--jf-border-width-focus) solid var(--jf-border-focus);outline-offset:2px}@keyframes jf-fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes jf-fade-in{0%{opacity:0}to{opacity:1}}@keyframes jf-fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes jf-slide-in-left{0%{transform:translate(-100%)}to{transform:none}}@keyframes jf-slide-in-right{0%{transform:translate(100%)}to{transform:none}}@keyframes jf-slide-in-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}@keyframes jf-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes jf-spin{to{transform:rotate(360deg)}}@keyframes jf-pulse-tonal{0%,to{background-color:var(--jf-tonal)}50%{background-color:var(--jf-tonal-selected)}}.dashboard-shell{background:var(--jf-canvas);color:var(--jf-text);min-height:100vh}.dashboard-sidebar{z-index:var(--jf-z-sticky);width:var(--jf-sidebar-width);border-right:1px solid var(--jf-border-subtle);background:var(--jf-surface);padding:0 var(--jf-space-4);transition:transform var(--jf-duration-overlay) var(--jf-ease-out),width var(--jf-duration-normal) var(--jf-ease);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.dashboard-sidebar-open{z-index:var(--jf-z-modal);box-shadow:var(--jf-shadow-drawer);transform:translate(0)}@media(min-width:960px){.dashboard-sidebar{transform:translate(0)}.dashboard-main{margin-left:var(--jf-sidebar-width);transition:margin-left var(--jf-duration-normal) var(--jf-ease)}}.sidebar-brand{height:var(--jf-header-height);border-bottom:1px solid var(--jf-border-subtle);padding:0 var(--jf-space-2) 0 var(--jf-space-3);flex:none;justify-content:space-between;align-items:center;display:flex}.sidebar-brand-title{font-size:1.125rem;font-weight:var(--jf-emphasis-weight);color:var(--jf-text);white-space:nowrap;letter-spacing:-.01em}@media(min-width:960px){.sidebar-brand{justify-content:flex-start}.sidebar-brand-close{display:none}}.sidebar-section-label{padding:var(--jf-space-5) var(--jf-space-3) var(--jf-space-2);font-size:1rem;font-weight:var(--jf-emphasis-weight);color:var(--jf-text);letter-spacing:normal;line-height:1.4}.sidebar-nav{gap:var(--jf-space-1);display:grid}.sidebar-link{min-height:var(--jf-control-md);align-items:center;gap:var(--jf-space-3);border-radius:var(--jf-radius-control);padding:0 var(--jf-space-3);color:var(--jf-text-secondary);font-weight:var(--jf-body-weight);white-space:nowrap;transition:background var(--jf-duration-fast) var(--jf-ease),color var(--jf-duration-fast) var(--jf-ease);text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar-link:hover{background:var(--jf-tonal);color:var(--jf-text)}.sidebar-link:active{background:var(--jf-tonal-active)}.sidebar-link:before{content:"";border-radius:var(--jf-radius-pill);width:3px;transition:background var(--jf-duration-fast) var(--jf-ease);background:0 0;position:absolute;top:8px;bottom:8px;left:0}.sidebar-link-active{background:var(--jf-tonal-selected);color:var(--jf-text);font-weight:var(--jf-emphasis-weight)}.sidebar-link-active:before{background:var(--jf-primary)}.sidebar-link-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.sidebar-bottom{padding:var(--jf-space-4) 0 var(--jf-space-5);border-top:1px solid var(--jf-border-subtle);margin-top:auto}@media(min-width:960px){.dashboard-sidebar-collapsed{width:var(--jf-sidebar-collapsed);padding:0 var(--jf-space-2)}.dashboard-sidebar-collapsed .sidebar-brand{justify-content:center;padding:0}.dashboard-sidebar-collapsed .sidebar-brand-title,.dashboard-sidebar-collapsed .sidebar-section-label,.dashboard-sidebar-collapsed .sidebar-link-label{display:none}.dashboard-sidebar-collapsed .sidebar-link{justify-content:center;padding:0}.dashboard-sidebar-collapsed .sidebar-bottom{padding-inline:0}.dashboard-main-collapsed{margin-left:var(--jf-sidebar-collapsed)}}.dashboard-scrim{z-index:calc(var(--jf-z-modal) - 1);background:rgb(0 0 0/var(--jf-opacity-overlay));position:fixed;inset:0}.dashboard-main{min-width:0;min-height:100vh}.dashboard-topbar{z-index:var(--jf-z-sticky);height:var(--jf-header-height);justify-content:space-between;align-items:center;gap:var(--jf-space-3);border-bottom:1px solid var(--jf-border-subtle);background:var(--jf-surface);padding:0 var(--jf-space-6);display:flex;position:sticky;top:0}@media(min-width:1280px){.dashboard-topbar{padding:0 var(--jf-space-8)}}.dashboard-topbar-title{font-size:var(--jf-compact-size);line-height:var(--jf-compact-leading);font-weight:var(--jf-emphasis-weight);color:var(--jf-text-secondary)}.dashboard-content{min-height:calc(100vh - var(--jf-header-height));padding:var(--jf-space-3) var(--jf-space-4) var(--jf-space-8);flex-direction:column;display:flex}@media(min-width:640px){.dashboard-content{padding:var(--jf-space-4) var(--jf-space-6) var(--jf-space-10)}}@media(min-width:1280px){.dashboard-content{padding:var(--jf-space-5) var(--jf-space-8) var(--jf-space-12)}}.dashboard-content-inner{width:100%;max-width:var(--jf-content-max);animation:jf-fade-in-up var(--jf-duration-page) var(--jf-ease-out) both;margin-inline:auto}.auth-scene{background:var(--jf-canvas)}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.dashboard-content-inner{animation:none}}.metric-icon-wrap{border-radius:var(--jf-radius-control);background:var(--jf-tonal);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false} diff --git a/internal/api/dashboard/static/web/assets/labels-F4zjjjMy.js b/internal/api/dashboard/static/web/assets/labels-F4zjjjMy.js new file mode 100644 index 0000000..06df5e2 --- /dev/null +++ b/internal/api/dashboard/static/web/assets/labels-F4zjjjMy.js @@ -0,0 +1 @@ +import{T as t}from"./index-CeO69YUd.js";import{b as e}from"./field-context-Dg4JwEpB.js";function i(r,n){return t.global.t(r)}function l(r){return t.global.te(r)}function f(r,n){return`labels.${r}.${n}`}function s(r,n){if(n==null||n==="")return"";const o=f(r,n);return l(o)?i(o):n}function c(r){return r==null||r===""?"":e(r)}export{s as e,c as l}; diff --git a/internal/api/dashboard/static/web/index.html b/internal/api/dashboard/static/web/index.html index e2d86b5..a768f5d 100644 --- a/internal/api/dashboard/static/web/index.html +++ b/internal/api/dashboard/static/web/index.html @@ -18,8 +18,8 @@ document.documentElement.style.colorScheme = mode; } catch (e) { /* first paint still uses light defaults */ } - - + +
diff --git a/webui/e2e/management.spec.ts b/webui/e2e/management.spec.ts index 0e39756..d73741a 100644 --- a/webui/e2e/management.spec.ts +++ b/webui/e2e/management.spec.ts @@ -81,6 +81,8 @@ async function installApiMocks(page: Page) { let conflictNextPatch = false let didSync = false let requestedSummaryWindow = '' + let requestedDashboardWindow = '' + let failHealth = false let patchBody: unknown const settingsPatchBodies: unknown[] = [] const providerPatchRequests: Array<{ path: string; body: unknown }> = [] @@ -96,7 +98,12 @@ async function installApiMocks(page: Page) { let overallLatencyOnly = false let providerDetailPairs: Array<{ model: string; upstream_model_id: string; enabled: boolean }> = [] let pairRows: Array> = [] + let providerRows: Array> = [] + let failNextGroupPut = false + let keyRows: Array> = [] + const keyDeleteRequests: string[] = [] const providerRequests: Array<{ cursor: string | null; enabled: string | null }> = [] + const providerSearches: string[] = [] const providerModelSelections: Array<{ path: string; body: unknown }> = [] const pairDeleteRequests: string[] = [] await page.route('**/admin/v1/**', async route => { @@ -149,6 +156,10 @@ async function installApiMocks(page: Page) { if (path === '/admin/v1/groups' && request.method() === 'PUT') { const body = request.postDataJSON() groupPutBodies.push(body) + if (failNextGroupPut) { + failNextGroupPut = false + return json({ error: { code: 'invalid_group', message: 'groups must contain distinct enabled provider/model pairs, at most eight per group', field: 'groups' } }, 400) + } groupDocument = body as typeof groupDocument return json(groupDocument) } @@ -188,6 +199,7 @@ async function installApiMocks(page: Page) { } if (path === '/admin/v1/providers') { providerRequests.push({ cursor: url.searchParams.get('cursor'), enabled: url.searchParams.get('enabled') }) + providerSearches.push(url.searchParams.get('search') ?? '') if (failNextProviders) { failNextProviders = false return json({ error: { code: 'unknown_provider', message: 'the requested provider is not registered' } }, 404) @@ -203,7 +215,7 @@ async function installApiMocks(page: Page) { ? json({ items: [second], next_cursor: null }) : json({ items: [first], next_cursor: 'page-2' }) } - return json({ items: [], next_cursor: null }) + return json({ items: providerRows, next_cursor: null }) } if (path === '/admin/v1/sync-state' && request.method() === 'GET') return didSync ? json({ synchronized: true, url: 'https://models.dev/api.json', fetched_at: '2026-09-24T00:00:00Z', allowlist_digest: 'test-digest', imported_pairs: 3, skipped_pairs: 1, warnings: [] }) @@ -217,6 +229,8 @@ async function installApiMocks(page: Page) { didSync = true return json({ synchronized: true, url: 'https://models.dev/api.json', fetched_at: '2026-09-24T00:00:00Z', imported_pairs: 3, skipped_pairs: 1, warnings: [] }) } + if (path === '/admin/v1/dashboard') requestedDashboardWindow = url.searchParams.get('window') ?? '' + if (path === '/admin/v1/health' && failHealth) return json({ error: { code: 'internal_error', message: 'health probe failed' } }, 500) if (path === '/admin/v1/dashboard') return json({ window: { key: '24h', from: '', to: '' }, success_rate: { numerator: 9, denominator: 10, value: 0.9 }, models: [], groups: [], output_tps_60s: 3.5 }) if (path === '/admin/v1/health') return json({ status: 'ok', uptime_ms: 7200000, started_at: '2026-09-24T00:00:00Z', @@ -243,6 +257,13 @@ async function installApiMocks(page: Page) { attempt_output_tokens_per_second_60s: 3.5, statuses: { success: 9, client_error: 0, server_error: 1 }, models: [], recent: [], log_disabled: false, }) } + if (path === '/admin/v1/keys' && request.method() === 'GET') return json({ items: keyRows }) + if (path.startsWith('/admin/v1/keys/') && request.method() === 'DELETE') { + keyDeleteRequests.push(path) + const name = decodeURIComponent(path.slice('/admin/v1/keys/'.length)) + keyRows = keyRows.map(row => row.name === name ? { ...row, active: false } : row) + return json({ name, disabled: true }) + } if (path === '/admin/v1/logs') return json({ items: [logEvent()], next_cursor: null }) return json({ error: { code: 'not_found', message: 'unexpected mocked endpoint' } }, 404) }) @@ -256,12 +277,20 @@ async function installApiMocks(page: Page) { get registryPatchRequests() { return registryPatchRequests }, get groupPutBodies() { return groupPutBodies }, get requestedSummaryWindow() { return requestedSummaryWindow }, + get requestedDashboardWindow() { return requestedDashboardWindow }, + failHealth() { failHealth = true }, get providerRequests() { return providerRequests }, + get providerSearches() { return providerSearches }, get providerModelSelections() { return providerModelSelections }, get pairDeleteRequests() { return pairDeleteRequests }, setProviderDetailPairs(pairs: Array<{ model: string; upstream_model_id: string; enabled: boolean }>) { providerDetailPairs = pairs }, setPairRows(rows: Array>) { pairRows = rows }, setModelRows(rows: Array>) { modelRows = rows }, + setProviderRows(rows: Array>) { providerRows = rows }, + setGroupDocument(document: { simple: unknown[]; medium: unknown[]; complex: unknown[] }) { groupDocument = document as typeof groupDocument }, + failGroupPutOnce() { failNextGroupPut = true }, + setKeyRows(rows: Array>) { keyRows = rows }, + get keyDeleteRequests() { return keyDeleteRequests }, enableProviderPagination() { providerPagination = true }, failProviderDiscoveryOnce() { failNextProviderDiscovery = true }, useOverallLatencyWithoutSamples() { overallLatencyOnly = true }, @@ -310,11 +339,12 @@ test('settings auto-save, status multi-select, shared toast and global reset', a expect(mock.patchBody).toEqual({ routing: { auto: { failover: { retry_on: { status_codes: [429] } } } } }) await page.getByRole('button', { name: '重置所有运行时覆盖' }).click() - await expect(page.getByRole('alertdialog')).toBeVisible() - await page.getByRole('button', { name: '取消' }).click() + await expect(page.getByRole('alertdialog', { name: '重置全部运行时覆盖?' })).toBeVisible() + await page.getByRole('alertdialog').getByRole('button', { name: '取消' }).click() + await expect(page.getByRole('alertdialog')).toHaveCount(0) expect(mock.deleteSettingsCount).toBe(0) await page.getByRole('button', { name: '重置所有运行时覆盖' }).click() - await page.getByRole('button', { name: '确认重置' }).click() + await page.getByRole('alertdialog').getByRole('button', { name: '确认重置' }).click() await expect.poll(() => mock.deleteSettingsCount).toBe(1) }) @@ -347,7 +377,7 @@ test('registry sync reports success and failure without inventing a successful s // The title is the existing sentence an operator already relies on; the description is the // new actionable half that this change adds. await expect(page.getByText('同步失败,现有配置未被修改。')).toBeVisible() - await expect(page.getByText(/请稍后重试/)).toBeVisible() + await expect(page.getByText(/详细原因见服务日志/)).toBeVisible() expect(mock.syncCount).toBe(2) await page.getByRole('button', { name: '立即同步 models.dev' }).click() @@ -378,7 +408,7 @@ test('a known management error renders Chinese title and advice while an unknown mock.failProviders() await page.goto('/admin/providers') await expect(page.getByText('找不到指定提供商')).toBeVisible() - await expect(page.getByText(/刷新列表确认对象是否仍然存在/)).toBeVisible() + await expect(page.getByText(/该提供商可能已被删除/)).toBeVisible() // The raw machine code stays out of the operator-facing alert. await expect(page.getByText('unknown_provider')).toHaveCount(0) @@ -460,7 +490,7 @@ test('provider pagination appends rows and resets when a filter changes', async expect(mock.providerRequests.at(-1)).toEqual({ cursor: 'page-2', enabled: null }) await page.getByRole('combobox', { name: '提供商状态筛选' }).click() - await page.getByRole('option', { name: '已禁用', exact: true }).click() + await page.getByRole('option', { name: '已停用', exact: true }).click() await expect(page.getByText('Second Provider', { exact: true })).toHaveCount(0) await expect.poll(() => mock.providerRequests.at(-1)).toEqual({ cursor: null, enabled: 'false' }) @@ -504,28 +534,44 @@ test('provider drawer permanently unbinds a configured model', async ({ page }) const mock = await installApiMocks(page) mock.enableProviderPagination() mock.setProviderDetailPairs([{ model: 'gpt-4o', upstream_model_id: 'gpt-4o', enabled: true }]) - page.on('dialog', dialog => dialog.accept()) await page.goto('/admin/providers') await page.getByRole('button', { name: /模型绑定 · 0/ }).click() await expect(page.getByRole('heading', { name: '当前模型绑定' })).toBeVisible() await page.getByRole('button', { name: '解除绑定 gpt-4o' }).click() + await page.getByRole('alertdialog').getByRole('button', { name: '解除绑定' }).click() await expect(page.getByText('已永久解除绑定:gpt-4o')).toBeVisible() await expect(page.getByRole('heading', { name: '当前模型绑定' })).toHaveCount(0) await expect.poll(() => mock.pairDeleteRequests).toEqual(['/admin/v1/pairs/provider-a/gpt-4o']) }) +test('provider discovery recognises a disabled binding instead of offering to bind it again', async ({ page }) => { + const mock = await installApiMocks(page) + mock.enableProviderPagination() + mock.setProviderDetailPairs([{ model: 'openai/gpt-4o', upstream_model_id: 'gpt-4o', enabled: false }]) + await page.goto('/admin/providers') + await page.getByRole('button', { name: /模型绑定 · 0/ }).click() + + await expect(page.getByText('已绑定 · 已停用')).toBeVisible() + await expect(page.getByRole('button', { name: '绑定', exact: true })).toHaveCount(1) + await page.getByRole('button', { name: '重新启用' }).click() + await expect.poll(() => mock.registryPatchRequests).toEqual([{ + path: '/admin/v1/pairs/provider-a/openai%2Fgpt-4o', body: { enabled: true }, + }]) + await expect(page.getByText('已绑定', { exact: true })).toBeVisible() +}) + test('provider bindings remain removable when model discovery fails', async ({ page }) => { const mock = await installApiMocks(page) mock.enableProviderPagination() mock.setProviderDetailPairs([{ model: 'gpt-4o', upstream_model_id: 'gpt-4o', enabled: true }]) mock.failProviderDiscoveryOnce() - page.on('dialog', dialog => dialog.accept()) await page.goto('/admin/providers') await page.getByRole('button', { name: /模型绑定 · 0/ }).click() await expect(page.getByRole('heading', { name: '当前模型绑定' })).toBeVisible() await page.getByRole('button', { name: '解除绑定 gpt-4o' }).click() + await page.getByRole('alertdialog').getByRole('button', { name: '解除绑定' }).click() await expect(page.getByText('已永久解除绑定:gpt-4o')).toBeVisible() await expect.poll(() => mock.pairDeleteRequests).toEqual(['/admin/v1/pairs/provider-a/gpt-4o']) }) @@ -587,15 +633,29 @@ test('model binding capacity fields autosave together', async ({ page }) => { await expect(page.getByRole('button', { name: '保存更改' })).toHaveCount(0) }) -test('model groups autosave checkbox changes without a save button', async ({ page }) => { - const mock = await installApiMocks(page) - mock.setPairRows([{ - provider: 'provider-a', model: 'model-a', upstream_model_id: 'upstream-a', +function groupPair(provider: string, model: string, enabled = true) { + return { + provider, model, upstream_model_id: model, context_window: 32768, max_output: 4096, supports_tools: false, supports_vision: false, - supports_audio_input: false, supports_reasoning: false, enabled: true, + supports_audio_input: false, supports_reasoning: false, enabled, source: 'local', owner: 'admin', - }]) - await page.goto('/admin/pairs') + } +} + +function groupProvider(key: string, enabled = true) { + return { key, kind: 'openai_compatible', display_name: key, enabled, priority: 0, source: 'local', owner: 'admin', gateway_provider: null, base_url: 'https://a.example/v1', api_key_set: true, pair_count: 1 } +} + +function groupModel(id: string, enabled = true) { + return { id, display_name: id, enabled, pair_count: 1, source: 'local', owner: 'admin' } +} + +test('model groups autosave checkbox changes without a save button', async ({ page }) => { + const mock = await installApiMocks(page) + mock.setPairRows([groupPair('provider-a', 'model-a')]) + mock.setProviderRows([groupProvider('provider-a')]) + mock.setModelRows([groupModel('model-a')]) + await page.goto('/admin/groups') await page.getByRole('checkbox', { name: 'provider-a · model-a' }).first().check() await expect.poll(() => mock.groupPutBodies).toEqual([{ simple: [{ provider: 'provider-a', model: 'model-a' }], medium: [], complex: [], @@ -604,6 +664,46 @@ test('model groups autosave checkbox changes without a save button', async ({ pa await expect(page.getByText('更改已保存', { exact: true })).toBeVisible() }) +test('model groups only offer routable pairs and flag stale members', async ({ page }) => { + const mock = await installApiMocks(page) + mock.setPairRows([ + groupPair('provider-a', 'model-a'), + groupPair('provider-a', 'model-off', false), + groupPair('provider-b', 'model-a'), + ]) + mock.setProviderRows([groupProvider('provider-a'), groupProvider('provider-b', false)]) + mock.setModelRows([groupModel('model-a'), groupModel('model-off')]) + mock.setGroupDocument({ simple: [{ provider: 'provider-b', model: 'model-a' }], medium: [], complex: [] }) + await page.goto('/admin/groups') + + await expect(page.getByRole('checkbox', { name: 'provider-a · model-off(绑定已停用)' }).first()).toBeDisabled() + await expect(page.getByText('组内有不可用的成员').first()).toBeVisible() + await expect(page.getByText('提供商已停用', { exact: true }).first()).toBeVisible() + await page.getByRole('button', { name: '移除 provider-b model-a' }).click() + await expect.poll(() => mock.groupPutBodies).toEqual([{ simple: [], medium: [], complex: [] }]) +}) + +test('model groups roll back a rejected save', async ({ page }) => { + const mock = await installApiMocks(page) + mock.setPairRows([groupPair('provider-a', 'model-a')]) + mock.setProviderRows([groupProvider('provider-a')]) + mock.setModelRows([groupModel('model-a')]) + mock.failGroupPutOnce() + await page.goto('/admin/groups') + + const checkbox = page.getByRole('checkbox', { name: 'provider-a · model-a' }).first() + await checkbox.check() + await expect(page.getByText('模型分组配置无效')).toBeVisible() + await expect(checkbox).not.toBeChecked() +}) + +test('the legacy pairs path redirects to model groups', async ({ page }) => { + await installApiMocks(page) + await page.goto('/admin/pairs') + await expect(page).toHaveURL(/\/admin\/groups$/) + await expect(page.getByRole('heading', { name: '模型分组', level: 1 })).toBeVisible() +}) + test('model management can permanently unbind a pair and refresh the table', async ({ page }) => { const mock = await installApiMocks(page) mock.setPairRows([{ @@ -612,11 +712,11 @@ test('model management can permanently unbind a pair and refresh the table', asy supports_audio_input: false, supports_reasoning: false, enabled: true, source: 'local', owner: 'admin', }]) - page.on('dialog', dialog => dialog.accept()) await page.goto('/admin/models') await expect(page.getByText('tenant/model', { exact: true })).toBeVisible() await page.getByRole('button', { name: '解除绑定 provider-a - tenant/model' }).click() + await page.getByRole('alertdialog').getByRole('button', { name: '解除绑定' }).click() await expect(page.getByText('没有匹配的模型绑定')).toBeVisible() await expect.poll(() => mock.pairDeleteRequests).toEqual(['/admin/v1/pairs/provider-a/tenant%2Fmodel']) }) @@ -627,13 +727,13 @@ test('dashboard displays overall latency source and preserves zero measurements' await page.goto('/admin/') await expect(page.getByText('全部请求平均延迟', { exact: true }).first()).toBeVisible() - await expect(page.getByText('0 ms', { exact: true })).toHaveCount(3) + await expect(page.getByText('0 ms', { exact: true })).toHaveCount(2) }) test('dashboard separates health from operational routing summary', async ({ page }) => { const mock = await installApiMocks(page) await page.goto('/admin/') - await expect(page.getByRole('heading', { name: '系统总览' })).toBeVisible() + await expect(page.getByRole('heading', { name: '总览', level: 1 })).toBeVisible() await expect(page.getByText('服务运行正常')).toBeVisible() await expect(page.getByRole('heading', { name: '请求状态分布' })).toBeVisible() await expect(page.getByRole('heading', { name: '智能路由决策效能' })).toBeVisible() @@ -642,4 +742,51 @@ test('dashboard separates health from operational routing summary', async ({ pag await page.getByRole('combobox').first().click() await page.getByRole('option', { name: /最近 7 天/ }).click() await expect.poll(() => mock.requestedSummaryWindow).toBe('7d') + await expect.poll(() => mock.requestedDashboardWindow).toBe('7d') +}) + +test('dashboard reports an unknown health state instead of checking forever', async ({ page }) => { + const mock = await installApiMocks(page) + mock.failHealth() + await page.goto('/admin/') + await expect(page.getByText('健康状态未知', { exact: true })).toBeVisible() + await expect(page.getByText('状态未知', { exact: true })).toBeVisible() +}) + +test('revoking an inference key confirms in-app and leaves the revoked row without actions', async ({ page }) => { + const mock = await installApiMocks(page) + mock.setKeyRows([{ name: 'web-client', scopes: ['inference'], active: true, key_set: true, created_at: '2026-09-24T00:00:00Z', updated_at: '2026-09-24T00:00:00Z' }]) + await page.goto('/admin/keys') + await expect(page.getByRole('heading', { name: '推理密钥', level: 1 })).toBeVisible() + + await page.getByRole('button', { name: '撤销' }).click() + const dialog = page.getByRole('alertdialog', { name: '撤销推理密钥“web-client”?' }) + await expect(dialog).toBeVisible() + await dialog.getByRole('button', { name: '撤销密钥' }).click() + await expect.poll(() => mock.keyDeleteRequests).toEqual(['/admin/v1/keys/web-client']) + await expect(page.getByText('已撤销推理密钥:web-client')).toBeVisible() + await expect(page.getByText('已撤销', { exact: true })).toBeVisible() + await expect(page.getByRole('button', { name: '轮换' })).toHaveCount(0) +}) + +test('provider search runs while typing', async ({ page }) => { + const mock = await installApiMocks(page) + await page.goto('/admin/providers') + await page.getByRole('textbox', { name: '搜索提供商名称或标识' }).fill('deep') + await expect.poll(() => mock.providerSearches.at(-1)).toBe('deep') +}) + +test('escape on a confirmation raised from a drawer closes only the confirmation', async ({ page }) => { + const mock = await installApiMocks(page) + mock.enableProviderPagination() + mock.setProviderDetailPairs([{ model: 'gpt-4o', upstream_model_id: 'gpt-4o', enabled: true }]) + await page.goto('/admin/providers') + await page.getByRole('button', { name: /模型绑定 · 0/ }).click() + await page.getByRole('button', { name: '解除绑定 gpt-4o' }).click() + await expect(page.getByRole('alertdialog')).toBeVisible() + + await page.keyboard.press('Escape') + await expect(page.getByRole('alertdialog')).toHaveCount(0) + await expect(page.getByRole('heading', { name: '当前模型绑定' })).toBeVisible() + expect(mock.pairDeleteRequests).toEqual([]) }) diff --git a/webui/src/App.vue b/webui/src/App.vue index 5f78bc7..75c6a5d 100644 --- a/webui/src/App.vue +++ b/webui/src/App.vue @@ -5,9 +5,10 @@ import { RouterLink, RouterView, useRoute } from 'vue-router' import { useI18n } from 'vue-i18n' import JfButton from '@/components/JfButton.vue' import JfIcon from '@/components/JfIcon.vue' +import ConfirmHost from '@/components/ConfirmHost.vue' import { api, setUnauthorizedHandler } from '@/lib/api' import { clearSession } from '@/lib/session' -import { savedToastVisible } from '@/lib/save-toast' +import { savedToastMessage, savedToastVisible } from '@/lib/save-toast' import { useOverlayFocus } from '@/lib/overlay' import { router } from '@/router' @@ -52,7 +53,7 @@ const navigation = computed(() => [ { label: t('app.overview'), icon: 'squares-2x2', to: '/' }, { label: t('app.providers'), icon: 'server-stack', to: '/providers' }, { label: t('app.models'), icon: 'cpu-chip', to: '/models' }, - { label: t('app.groups'), icon: 'layers-2', to: '/pairs' }, + { label: t('app.groups'), icon: 'layers-2', to: '/groups' }, ]) const systemNavigation = computed(() => [ { label: t('app.settings'), icon: 'cog-6-tooth', to: '/settings' }, @@ -206,8 +207,10 @@ async function logout() {
- 更改已保存 + {{ savedToastMessage }}
+ + diff --git a/webui/src/components/ConfirmHost.vue b/webui/src/components/ConfirmHost.vue new file mode 100644 index 0000000..7ac910c --- /dev/null +++ b/webui/src/components/ConfirmHost.vue @@ -0,0 +1,26 @@ + + + diff --git a/webui/src/components/JfDialog.vue b/webui/src/components/JfDialog.vue index 65af228..69df328 100644 --- a/webui/src/components/JfDialog.vue +++ b/webui/src/components/JfDialog.vue @@ -12,12 +12,15 @@ const props = withDefaults(defineProps<{ /** A destructive confirmation is announced as an alertdialog. */ role?: 'dialog' | 'alertdialog' closeLabel?: string + /** `confirm` stacks above drawers and other dialogs it may be raised from. */ + layer?: 'modal' | 'confirm' }>(), { description: undefined, size: 'md', dismissible: true, role: 'dialog', closeLabel: '关闭', + layer: 'modal', }) const emit = defineEmits<{ 'update:open': [boolean] }>() @@ -40,7 +43,7 @@ function onScrimClick() {