mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-29 05:13:56 +08:00
82 lines
911 KiB
JavaScript
82 lines
911 KiB
JavaScript
(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const o of n)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function t(n){const o={};return n.integrity&&(o.integrity=n.integrity),n.referrerPolicy&&(o.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?o.credentials="include":n.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(n){if(n.ep)return;n.ep=!0;const o=t(n);fetch(n.href,o)}})();/**
|
||
* @vue/shared v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function Pr(A){const e=Object.create(null);for(const t of A.split(","))e[t]=1;return t=>t in e}const KA={},hi=[],ot=()=>{},eI=()=>!1,lo=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&(A.charCodeAt(2)>122||A.charCodeAt(2)<97),Or=A=>A.startsWith("onUpdate:"),ue=Object.assign,Vr=(A,e)=>{const t=A.indexOf(e);t>-1&&A.splice(t,1)},tB=Object.prototype.hasOwnProperty,JA=(A,e)=>tB.call(A,e),yA=Array.isArray,fi=A=>cn(A)==="[object Map]",Bo=A=>cn(A)==="[object Set]",Ng=A=>cn(A)==="[object Date]",SA=A=>typeof A=="function",te=A=>typeof A=="string",It=A=>typeof A=="symbol",PA=A=>A!==null&&typeof A=="object",tI=A=>(PA(A)||SA(A))&&SA(A.then)&&SA(A.catch),iI=Object.prototype.toString,cn=A=>iI.call(A),iB=A=>cn(A).slice(8,-1),nI=A=>cn(A)==="[object Object]",Wr=A=>te(A)&&A!=="NaN"&&A[0]!=="-"&&""+parseInt(A,10)===A,Oi=Pr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qo=A=>{const e=Object.create(null);return t=>e[t]||(e[t]=A(t))},nB=/-\w/g,Je=Qo(A=>A.replace(nB,e=>e.slice(1).toUpperCase())),oB=/\B([A-Z])/g,Ii=Qo(A=>A.replace(oB,"-$1").toLowerCase()),co=Qo(A=>A.charAt(0).toUpperCase()+A.slice(1)),xo=Qo(A=>A?`on${co(A)}`:""),Yt=(A,e)=>!Object.is(A,e),Jn=(A,...e)=>{for(let t=0;t<A.length;t++)A[t](...e)},oI=(A,e,t,i=!1)=>{Object.defineProperty(A,e,{configurable:!0,enumerable:!1,writable:i,value:t})},Eo=A=>{const e=parseFloat(A);return isNaN(e)?A:e};let Gg;const uo=()=>Gg||(Gg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function WA(A){if(yA(A)){const e={};for(let t=0;t<A.length;t++){const i=A[t],n=te(i)?aB(i):WA(i);if(n)for(const o in n)e[o]=n[o]}return e}else if(te(A)||PA(A))return A}const rB=/;(?![^(]*\))/g,gB=/:([^]+)/,sB=/\/\*[^]*?\*\//g;function aB(A){const e={};return A.replace(sB,"").split(rB).forEach(t=>{if(t){const i=t.split(gB);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function kA(A){let e="";if(te(A))e=A;else if(yA(A))for(let t=0;t<A.length;t++){const i=kA(A[t]);i&&(e+=i+" ")}else if(PA(A))for(const t in A)A[t]&&(e+=t+" ");return e.trim()}const IB="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",CB=Pr(IB);function rI(A){return!!A||A===""}function lB(A,e){if(A.length!==e.length)return!1;let t=!0;for(let i=0;t&&i<A.length;i++)t=ho(A[i],e[i]);return t}function ho(A,e){if(A===e)return!0;let t=Ng(A),i=Ng(e);if(t||i)return t&&i?A.getTime()===e.getTime():!1;if(t=It(A),i=It(e),t||i)return A===e;if(t=yA(A),i=yA(e),t||i)return t&&i?lB(A,e):!1;if(t=PA(A),i=PA(e),t||i){if(!t||!i)return!1;const n=Object.keys(A).length,o=Object.keys(e).length;if(n!==o)return!1;for(const r in A){const g=A.hasOwnProperty(r),s=e.hasOwnProperty(r);if(g&&!s||!g&&s||!ho(A[r],e[r]))return!1}}return String(A)===String(e)}function BB(A,e){return A.findIndex(t=>ho(t,e))}const gI=A=>!!(A&&A.__v_isRef===!0),v=A=>te(A)?A:A==null?"":yA(A)||PA(A)&&(A.toString===iI||!SA(A.toString))?gI(A)?v(A.value):JSON.stringify(A,sI,2):String(A),sI=(A,e)=>gI(e)?sI(A,e.value):fi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,n],o)=>(t[Jo(i,o)+" =>"]=n,t),{})}:Bo(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>Jo(t))}:It(e)?Jo(e):PA(e)&&!yA(e)&&!nI(e)?String(e):e,Jo=(A,e="")=>{var t;return It(A)?`Symbol(${(t=A.description)!=null?t:e})`:A};/**
|
||
* @vue/reactivity v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let ke;class aI{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ke,!e&&ke&&(this.index=(ke.scopes||(ke.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){const t=ke;try{return ke=this,e()}finally{ke=t}}}on(){++this._on===1&&(this.prevScope=ke,ke=this)}off(){this._on>0&&--this._on===0&&(ke=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,i;for(t=0,i=this.effects.length;t<i;t++)this.effects[t].stop();for(this.effects.length=0,t=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function QB(A){return new aI(A)}function cB(){return ke}let OA;const To=new WeakSet;class II{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ke&&ke.active&&ke.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,To.has(this)&&(To.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||lI(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Lg(this),BI(this);const e=OA,t=_e;OA=this,_e=!0;try{return this.fn()}finally{QI(this),OA=e,_e=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Zr(e);this.deps=this.depsTail=void 0,Lg(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?To.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ar(this)&&this.run()}get dirty(){return ar(this)}}let CI=0,Vi,Wi;function lI(A,e=!1){if(A.flags|=8,e){A.next=Wi,Wi=A;return}A.next=Vi,Vi=A}function qr(){CI++}function jr(){if(--CI>0)return;if(Wi){let e=Wi;for(Wi=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let A;for(;Vi;){let e=Vi;for(Vi=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){A||(A=i)}e=t}}if(A)throw A}function BI(A){for(let e=A.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function QI(A){let e,t=A.depsTail,i=t;for(;i;){const n=i.prevDep;i.version===-1?(i===t&&(t=n),Zr(i),EB(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=n}A.deps=e,A.depsTail=t}function ar(A){for(let e=A.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(cI(e.dep.computed)||e.dep.version!==e.version))return!0;return!!A._dirty}function cI(A){if(A.flags&4&&!(A.flags&16)||(A.flags&=-17,A.globalVersion===An)||(A.globalVersion=An,!A.isSSR&&A.flags&128&&(!A.deps&&!A._dirty||!ar(A))))return;A.flags|=2;const e=A.dep,t=OA,i=_e;OA=A,_e=!0;try{BI(A);const n=A.fn(A._value);(e.version===0||Yt(n,A._value))&&(A.flags|=128,A._value=n,e.version++)}catch(n){throw e.version++,n}finally{OA=t,_e=i,QI(A),A.flags&=-3}}function Zr(A,e=!1){const{dep:t,prevSub:i,nextSub:n}=A;if(i&&(i.nextSub=n,A.prevSub=void 0),n&&(n.prevSub=i,A.nextSub=void 0),t.subs===A&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let o=t.computed.deps;o;o=o.nextDep)Zr(o,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function EB(A){const{prevDep:e,nextDep:t}=A;e&&(e.nextDep=t,A.prevDep=void 0),t&&(t.prevDep=e,A.nextDep=void 0)}let _e=!0;const EI=[];function wt(){EI.push(_e),_e=!1}function Dt(){const A=EI.pop();_e=A===void 0?!0:A}function Lg(A){const{cleanup:e}=A;if(A.cleanup=void 0,e){const t=OA;OA=void 0;try{e()}finally{OA=t}}}let An=0;class uB{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Xr{constructor(e){this.computed=e,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(e){if(!OA||!_e||OA===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==OA)t=this.activeLink=new uB(OA,this),OA.deps?(t.prevDep=OA.depsTail,OA.depsTail.nextDep=t,OA.depsTail=t):OA.deps=OA.depsTail=t,uI(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=OA.depsTail,t.nextDep=void 0,OA.depsTail.nextDep=t,OA.depsTail=t,OA.deps===t&&(OA.deps=i)}return t}trigger(e){this.version++,An++,this.notify(e)}notify(e){qr();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{jr()}}}function uI(A){if(A.dep.sc++,A.sub.flags&4){const e=A.dep.computed;if(e&&!A.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)uI(i)}const t=A.dep.subs;t!==A&&(A.prevSub=t,t&&(t.nextSub=A)),A.dep.subs=A}}const Ir=new WeakMap,ri=Symbol(""),Cr=Symbol(""),en=Symbol("");function ce(A,e,t){if(_e&&OA){let i=Ir.get(A);i||Ir.set(A,i=new Map);let n=i.get(t);n||(i.set(t,n=new Xr),n.map=i,n.key=t),n.track()}}function ut(A,e,t,i,n,o){const r=Ir.get(A);if(!r){An++;return}const g=s=>{s&&s.trigger()};if(qr(),e==="clear")r.forEach(g);else{const s=yA(A),a=s&&Wr(t);if(s&&t==="length"){const I=Number(i);r.forEach((l,C)=>{(C==="length"||C===en||!It(C)&&C>=I)&&g(l)})}else switch((t!==void 0||r.has(void 0))&&g(r.get(t)),a&&g(r.get(en)),e){case"add":s?a&&g(r.get("length")):(g(r.get(ri)),fi(A)&&g(r.get(Cr)));break;case"delete":s||(g(r.get(ri)),fi(A)&&g(r.get(Cr)));break;case"set":fi(A)&&g(r.get(ri));break}}jr()}function li(A){const e=xA(A);return e===A?e:(ce(e,"iterate",en),xe(A)?e:e.map(Pe))}function fo(A){return ce(A=xA(A),"iterate",en),A}function Ut(A,e){return kt(A)?gi(A)?Di(Pe(e)):Di(e):Pe(e)}const hB={__proto__:null,[Symbol.iterator](){return Ho(this,Symbol.iterator,A=>Ut(this,A))},concat(...A){return li(this).concat(...A.map(e=>yA(e)?li(e):e))},entries(){return Ho(this,"entries",A=>(A[1]=Ut(this,A[1]),A))},every(A,e){return lt(this,"every",A,e,void 0,arguments)},filter(A,e){return lt(this,"filter",A,e,t=>t.map(i=>Ut(this,i)),arguments)},find(A,e){return lt(this,"find",A,e,t=>Ut(this,t),arguments)},findIndex(A,e){return lt(this,"findIndex",A,e,void 0,arguments)},findLast(A,e){return lt(this,"findLast",A,e,t=>Ut(this,t),arguments)},findLastIndex(A,e){return lt(this,"findLastIndex",A,e,void 0,arguments)},forEach(A,e){return lt(this,"forEach",A,e,void 0,arguments)},includes(...A){return Yo(this,"includes",A)},indexOf(...A){return Yo(this,"indexOf",A)},join(A){return li(this).join(A)},lastIndexOf(...A){return Yo(this,"lastIndexOf",A)},map(A,e){return lt(this,"map",A,e,void 0,arguments)},pop(){return xi(this,"pop")},push(...A){return xi(this,"push",A)},reduce(A,...e){return Ug(this,"reduce",A,e)},reduceRight(A,...e){return Ug(this,"reduceRight",A,e)},shift(){return xi(this,"shift")},some(A,e){return lt(this,"some",A,e,void 0,arguments)},splice(...A){return xi(this,"splice",A)},toReversed(){return li(this).toReversed()},toSorted(A){return li(this).toSorted(A)},toSpliced(...A){return li(this).toSpliced(...A)},unshift(...A){return xi(this,"unshift",A)},values(){return Ho(this,"values",A=>Ut(this,A))}};function Ho(A,e,t){const i=fo(A),n=i[e]();return i!==A&&!xe(A)&&(n._next=n.next,n.next=()=>{const o=n._next();return o.done||(o.value=t(o.value)),o}),n}const fB=Array.prototype;function lt(A,e,t,i,n,o){const r=fo(A),g=r!==A&&!xe(A),s=r[e];if(s!==fB[e]){const l=s.apply(A,o);return g?Pe(l):l}let a=t;r!==A&&(g?a=function(l,C){return t.call(this,Ut(A,l),C,A)}:t.length>2&&(a=function(l,C){return t.call(this,l,C,A)}));const I=s.call(r,a,i);return g&&n?n(I):I}function Ug(A,e,t,i){const n=fo(A);let o=t;return n!==A&&(xe(A)?t.length>3&&(o=function(r,g,s){return t.call(this,r,g,s,A)}):o=function(r,g,s){return t.call(this,r,Ut(A,g),s,A)}),n[e](o,...i)}function Yo(A,e,t){const i=xA(A);ce(i,"iterate",en);const n=i[e](...t);return(n===-1||n===!1)&&Ag(t[0])?(t[0]=xA(t[0]),i[e](...t)):n}function xi(A,e,t=[]){wt(),qr();const i=xA(A)[e].apply(A,t);return jr(),Dt(),i}const dB=Pr("__proto__,__v_isRef,__isVue"),hI=new Set(Object.getOwnPropertyNames(Symbol).filter(A=>A!=="arguments"&&A!=="caller").map(A=>Symbol[A]).filter(It));function pB(A){It(A)||(A=String(A));const e=xA(this);return ce(e,"has",A),e.hasOwnProperty(A)}class fI{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if(t==="__v_skip")return e.__v_skip;const n=this._isReadonly,o=this._isShallow;if(t==="__v_isReactive")return!n;if(t==="__v_isReadonly")return n;if(t==="__v_isShallow")return o;if(t==="__v_raw")return i===(n?o?RB:yI:o?mI:pI).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=yA(e);if(!n){let s;if(r&&(s=hB[t]))return s;if(t==="hasOwnProperty")return pB}const g=Reflect.get(e,t,le(e)?e:i);if((It(t)?hI.has(t):dB(t))||(n||ce(e,"get",t),o))return g;if(le(g)){const s=r&&Wr(t)?g:g.value;return n&&PA(s)?Br(s):s}return PA(g)?n?Br(g):po(g):g}}class dI extends fI{constructor(e=!1){super(!1,e)}set(e,t,i,n){let o=e[t];const r=yA(e)&&Wr(t);if(!this._isShallow){const a=kt(o);if(!xe(i)&&!kt(i)&&(o=xA(o),i=xA(i)),!r&&le(o)&&!le(i))return a||(o.value=i),!0}const g=r?Number(t)<e.length:JA(e,t),s=Reflect.set(e,t,i,le(e)?e:n);return e===xA(n)&&(g?Yt(i,o)&&ut(e,"set",t,i):ut(e,"add",t,i)),s}deleteProperty(e,t){const i=JA(e,t);e[t];const n=Reflect.deleteProperty(e,t);return n&&i&&ut(e,"delete",t,void 0),n}has(e,t){const i=Reflect.has(e,t);return(!It(t)||!hI.has(t))&&ce(e,"has",t),i}ownKeys(e){return ce(e,"iterate",yA(e)?"length":ri),Reflect.ownKeys(e)}}class mB extends fI{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const yB=new dI,wB=new mB,DB=new dI(!0);const lr=A=>A,kn=A=>Reflect.getPrototypeOf(A);function kB(A,e,t){return function(...i){const n=this.__v_raw,o=xA(n),r=fi(o),g=A==="entries"||A===Symbol.iterator&&r,s=A==="keys"&&r,a=n[A](...i),I=t?lr:e?Di:Pe;return!e&&ce(o,"iterate",s?Cr:ri),{next(){const{value:l,done:C}=a.next();return C?{value:l,done:C}:{value:g?[I(l[0]),I(l[1])]:I(l),done:C}},[Symbol.iterator](){return this}}}}function vn(A){return function(...e){return A==="delete"?!1:A==="clear"?void 0:this}}function vB(A,e){const t={get(n){const o=this.__v_raw,r=xA(o),g=xA(n);A||(Yt(n,g)&&ce(r,"get",n),ce(r,"get",g));const{has:s}=kn(r),a=e?lr:A?Di:Pe;if(s.call(r,n))return a(o.get(n));if(s.call(r,g))return a(o.get(g));o!==r&&o.get(n)},get size(){const n=this.__v_raw;return!A&&ce(xA(n),"iterate",ri),n.size},has(n){const o=this.__v_raw,r=xA(o),g=xA(n);return A||(Yt(n,g)&&ce(r,"has",n),ce(r,"has",g)),n===g?o.has(n):o.has(n)||o.has(g)},forEach(n,o){const r=this,g=r.__v_raw,s=xA(g),a=e?lr:A?Di:Pe;return!A&&ce(s,"iterate",ri),g.forEach((I,l)=>n.call(o,a(I),a(l),r))}};return ue(t,A?{add:vn("add"),set:vn("set"),delete:vn("delete"),clear:vn("clear")}:{add(n){!e&&!xe(n)&&!kt(n)&&(n=xA(n));const o=xA(this);return kn(o).has.call(o,n)||(o.add(n),ut(o,"add",n,n)),this},set(n,o){!e&&!xe(o)&&!kt(o)&&(o=xA(o));const r=xA(this),{has:g,get:s}=kn(r);let a=g.call(r,n);a||(n=xA(n),a=g.call(r,n));const I=s.call(r,n);return r.set(n,o),a?Yt(o,I)&&ut(r,"set",n,o):ut(r,"add",n,o),this},delete(n){const o=xA(this),{has:r,get:g}=kn(o);let s=r.call(o,n);s||(n=xA(n),s=r.call(o,n)),g&&g.call(o,n);const a=o.delete(n);return s&&ut(o,"delete",n,void 0),a},clear(){const n=xA(this),o=n.size!==0,r=n.clear();return o&&ut(n,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(n=>{t[n]=kB(n,A,e)}),t}function zr(A,e){const t=vB(A,e);return(i,n,o)=>n==="__v_isReactive"?!A:n==="__v_isReadonly"?A:n==="__v_raw"?i:Reflect.get(JA(t,n)&&n in i?t:i,n,o)}const FB={get:zr(!1,!1)},SB={get:zr(!1,!0)},bB={get:zr(!0,!1)};const pI=new WeakMap,mI=new WeakMap,yI=new WeakMap,RB=new WeakMap;function NB(A){switch(A){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function GB(A){return A.__v_skip||!Object.isExtensible(A)?0:NB(iB(A))}function po(A){return kt(A)?A:$r(A,!1,yB,FB,pI)}function wI(A){return $r(A,!1,DB,SB,mI)}function Br(A){return $r(A,!0,wB,bB,yI)}function $r(A,e,t,i,n){if(!PA(A)||A.__v_raw&&!(e&&A.__v_isReactive))return A;const o=GB(A);if(o===0)return A;const r=n.get(A);if(r)return r;const g=new Proxy(A,o===2?i:t);return n.set(A,g),g}function gi(A){return kt(A)?gi(A.__v_raw):!!(A&&A.__v_isReactive)}function kt(A){return!!(A&&A.__v_isReadonly)}function xe(A){return!!(A&&A.__v_isShallow)}function Ag(A){return A?!!A.__v_raw:!1}function xA(A){const e=A&&A.__v_raw;return e?xA(e):A}function Ki(A){return!JA(A,"__v_skip")&&Object.isExtensible(A)&&oI(A,"__v_skip",!0),A}const Pe=A=>PA(A)?po(A):A,Di=A=>PA(A)?Br(A):A;function le(A){return A?A.__v_isRef===!0:!1}function EA(A){return DI(A,!1)}function eg(A){return DI(A,!0)}function DI(A,e){return le(A)?A:new LB(A,e)}class LB{constructor(e,t){this.dep=new Xr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:xA(e),this._value=t?e:Pe(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||xe(e)||kt(e);e=i?e:xA(e),Yt(e,t)&&(this._rawValue=e,this._value=i?e:Pe(e),this.dep.trigger())}}function QA(A){return le(A)?A.value:A}const UB={get:(A,e,t)=>e==="__v_raw"?A:QA(Reflect.get(A,e,t)),set:(A,e,t,i)=>{const n=A[e];return le(n)&&!le(t)?(n.value=t,!0):Reflect.set(A,e,t,i)}};function kI(A){return gi(A)?A:new Proxy(A,UB)}class MB{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Xr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=An-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&OA!==this)return lI(this,!0),!0}get value(){const e=this.dep.track();return cI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function xB(A,e,t=!1){let i,n;return SA(A)?i=A:(i=A.get,n=A.set),new MB(i,n,t)}const Fn={},qn=new WeakMap;let ei;function JB(A,e=!1,t=ei){if(t){let i=qn.get(t);i||qn.set(t,i=[]),i.push(A)}}function TB(A,e,t=KA){const{immediate:i,deep:n,once:o,scheduler:r,augmentJob:g,call:s}=t,a=d=>n?d:xe(d)||n===!1||n===0?ht(d,1):ht(d);let I,l,C,Q,E=!1,f=!1;if(le(A)?(l=()=>A.value,E=xe(A)):gi(A)?(l=()=>a(A),E=!0):yA(A)?(f=!0,E=A.some(d=>gi(d)||xe(d)),l=()=>A.map(d=>{if(le(d))return d.value;if(gi(d))return a(d);if(SA(d))return s?s(d,2):d()})):SA(A)?e?l=s?()=>s(A,2):A:l=()=>{if(C){wt();try{C()}finally{Dt()}}const d=ei;ei=I;try{return s?s(A,3,[Q]):A(Q)}finally{ei=d}}:l=ot,e&&n){const d=l,w=n===!0?1/0:n;l=()=>ht(d(),w)}const h=cB(),u=()=>{I.stop(),h&&h.active&&Vr(h.effects,I)};if(o&&e){const d=e;e=(...w)=>{d(...w),u()}}let p=f?new Array(A.length).fill(Fn):Fn;const c=d=>{if(!(!(I.flags&1)||!I.dirty&&!d))if(e){const w=I.run();if(n||E||(f?w.some((F,N)=>Yt(F,p[N])):Yt(w,p))){C&&C();const F=ei;ei=I;try{const N=[w,p===Fn?void 0:f&&p[0]===Fn?[]:p,Q];p=w,s?s(e,3,N):e(...N)}finally{ei=F}}}else I.run()};return g&&g(c),I=new II(l),I.scheduler=r?()=>r(c,!1):c,Q=d=>JB(d,!1,I),C=I.onStop=()=>{const d=qn.get(I);if(d){if(s)s(d,4);else for(const w of d)w();qn.delete(I)}},e?i?c(!0):p=I.run():r?r(c.bind(null,!0),!0):I.run(),u.pause=I.pause.bind(I),u.resume=I.resume.bind(I),u.stop=u,u}function ht(A,e=1/0,t){if(e<=0||!PA(A)||A.__v_skip||(t=t||new Map,(t.get(A)||0)>=e))return A;if(t.set(A,e),e--,le(A))ht(A.value,e,t);else if(yA(A))for(let i=0;i<A.length;i++)ht(A[i],e,t);else if(Bo(A)||fi(A))A.forEach(i=>{ht(i,e,t)});else if(nI(A)){for(const i in A)ht(A[i],e,t);for(const i of Object.getOwnPropertySymbols(A))Object.prototype.propertyIsEnumerable.call(A,i)&&ht(A[i],e,t)}return A}/**
|
||
* @vue/runtime-core v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function En(A,e,t,i){try{return i?A(...i):A()}catch(n){mo(n,e,t)}}function Ct(A,e,t,i){if(SA(A)){const n=En(A,e,t,i);return n&&tI(n)&&n.catch(o=>{mo(o,e,t)}),n}if(yA(A)){const n=[];for(let o=0;o<A.length;o++)n.push(Ct(A[o],e,t,i));return n}}function mo(A,e,t,i=!0){const n=e?e.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=e&&e.appContext.config||KA;if(e){let g=e.parent;const s=e.proxy,a=`https://vuejs.org/error-reference/#runtime-${t}`;for(;g;){const I=g.ec;if(I){for(let l=0;l<I.length;l++)if(I[l](A,s,a)===!1)return}g=g.parent}if(o){wt(),En(o,null,10,[A,s,a]),Dt();return}}HB(A,t,n,i,r)}function HB(A,e,t,i=!0,n=!1){if(n)throw A;console.error(A)}const me=[];let At=-1;const di=[];let Mt=null,Qi=0;const vI=Promise.resolve();let jn=null;function un(A){const e=jn||vI;return A?e.then(this?A.bind(this):A):e}function YB(A){let e=At+1,t=me.length;for(;e<t;){const i=e+t>>>1,n=me[i],o=tn(n);o<A||o===A&&n.flags&2?e=i+1:t=i}return e}function tg(A){if(!(A.flags&1)){const e=tn(A),t=me[me.length-1];!t||!(A.flags&2)&&e>=tn(t)?me.push(A):me.splice(YB(e),0,A),A.flags|=1,FI()}}function FI(){jn||(jn=vI.then(bI))}function _B(A){yA(A)?di.push(...A):Mt&&A.id===-1?Mt.splice(Qi+1,0,A):A.flags&1||(di.push(A),A.flags|=1),FI()}function Mg(A,e,t=At+1){for(;t<me.length;t++){const i=me[t];if(i&&i.flags&2){if(A&&i.id!==A.uid)continue;me.splice(t,1),t--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function SI(A){if(di.length){const e=[...new Set(di)].sort((t,i)=>tn(t)-tn(i));if(di.length=0,Mt){Mt.push(...e);return}for(Mt=e,Qi=0;Qi<Mt.length;Qi++){const t=Mt[Qi];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}Mt=null,Qi=0}}const tn=A=>A.id==null?A.flags&2?-1:1/0:A.id;function bI(A){try{for(At=0;At<me.length;At++){const e=me[At];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),En(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;At<me.length;At++){const e=me[At];e&&(e.flags&=-2)}At=-1,me.length=0,SI(),jn=null,(me.length||di.length)&&bI()}}let be=null,RI=null;function Zn(A){const e=be;return be=A,RI=A&&A.type.__scopeId||null,e}function KB(A,e=be,t){if(!e||A._n)return A;const i=(...n)=>{i._d&&$n(-1);const o=Zn(e);let r;try{r=A(...n)}finally{Zn(o),i._d&&$n(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function XA(A,e){if(be===null)return A;const t=ko(be),i=A.dirs||(A.dirs=[]);for(let n=0;n<e.length;n++){let[o,r,g,s=KA]=e[n];o&&(SA(o)&&(o={mounted:o,updated:o}),o.deep&&ht(r),i.push({dir:o,instance:t,value:r,oldValue:void 0,arg:g,modifiers:s}))}return A}function Zt(A,e,t,i){const n=A.dirs,o=e&&e.dirs;for(let r=0;r<n.length;r++){const g=n[r];o&&(g.oldValue=o[r].value);let s=g.dir[i];s&&(wt(),Ct(s,t,8,[A.el,g,A,e]),Dt())}}function Tn(A,e){if(Ee){let t=Ee.provides;const i=Ee.parent&&Ee.parent.provides;i===t&&(t=Ee.provides=Object.create(i)),t[A]=e}}function rt(A,e,t=!1){const i=vi();if(i||pi){let n=pi?pi._context.provides:i?i.parent==null||i.ce?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(n&&A in n)return n[A];if(arguments.length>1)return t&&SA(e)?e.call(i&&i.proxy):e}}const PB=Symbol.for("v-scx"),OB=()=>rt(PB);function ae(A,e,t){return NI(A,e,t)}function NI(A,e,t=KA){const{immediate:i,deep:n,flush:o,once:r}=t,g=ue({},t),s=e&&i||!e&&o!=="post";let a;if(on){if(o==="sync"){const Q=OB();a=Q.__watcherHandles||(Q.__watcherHandles=[])}else if(!s){const Q=()=>{};return Q.stop=ot,Q.resume=ot,Q.pause=ot,Q}}const I=Ee;g.call=(Q,E,f)=>Ct(Q,I,E,f);let l=!1;o==="post"?g.scheduler=Q=>{Se(Q,I&&I.suspense)}:o!=="sync"&&(l=!0,g.scheduler=(Q,E)=>{E?Q():tg(Q)}),g.augmentJob=Q=>{e&&(Q.flags|=4),l&&(Q.flags|=2,I&&(Q.id=I.uid,Q.i=I))};const C=TB(A,e,g);return on&&(a?a.push(C):s&&C()),C}function VB(A,e,t){const i=this.proxy,n=te(A)?A.includes(".")?GI(i,A):()=>i[A]:A.bind(i,i);let o;SA(e)?o=e:(o=e.handler,t=e);const r=dn(this),g=NI(n,o.bind(i),t);return r(),g}function GI(A,e){const t=e.split(".");return()=>{let i=A;for(let n=0;n<t.length&&i;n++)i=i[t[n]];return i}}const WB=Symbol("_vte"),qB=A=>A.__isTeleport,jB=Symbol("_leaveCb");function ig(A,e){A.shapeFlag&6&&A.component?(A.transition=e,ig(A.component.subTree,e)):A.shapeFlag&128?(A.ssContent.transition=e.clone(A.ssContent),A.ssFallback.transition=e.clone(A.ssFallback)):A.transition=e}function hn(A,e){return SA(A)?ue({name:A.name},e,{setup:A}):A}function LI(A){A.ids=[A.ids[0]+A.ids[2]+++"-",0,0]}const Xn=new WeakMap;function qi(A,e,t,i,n=!1){if(yA(A)){A.forEach((E,f)=>qi(E,e&&(yA(e)?e[f]:e),t,i,n));return}if(ji(i)&&!n){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&qi(A,e,t,i.component.subTree);return}const o=i.shapeFlag&4?ko(i.component):i.el,r=n?null:o,{i:g,r:s}=A,a=e&&e.r,I=g.refs===KA?g.refs={}:g.refs,l=g.setupState,C=xA(l),Q=l===KA?eI:E=>JA(C,E);if(a!=null&&a!==s){if(xg(e),te(a))I[a]=null,Q(a)&&(l[a]=null);else if(le(a)){a.value=null;const E=e;E.k&&(I[E.k]=null)}}if(SA(s))En(s,g,12,[r,I]);else{const E=te(s),f=le(s);if(E||f){const h=()=>{if(A.f){const u=E?Q(s)?l[s]:I[s]:s.value;if(n)yA(u)&&Vr(u,o);else if(yA(u))u.includes(o)||u.push(o);else if(E)I[s]=[o],Q(s)&&(l[s]=I[s]);else{const p=[o];s.value=p,A.k&&(I[A.k]=p)}}else E?(I[s]=r,Q(s)&&(l[s]=r)):f&&(s.value=r,A.k&&(I[A.k]=r))};if(r){const u=()=>{h(),Xn.delete(A)};u.id=-1,Xn.set(A,u),Se(u,t)}else xg(A),h()}}}function xg(A){const e=Xn.get(A);e&&(e.flags|=8,Xn.delete(A))}uo().requestIdleCallback;uo().cancelIdleCallback;const ji=A=>!!A.type.__asyncLoader,UI=A=>A.type.__isKeepAlive;function ZB(A,e){MI(A,"a",e)}function XB(A,e){MI(A,"da",e)}function MI(A,e,t=Ee){const i=A.__wdc||(A.__wdc=()=>{let n=t;for(;n;){if(n.isDeactivated)return;n=n.parent}return A()});if(yo(e,i,t),t){let n=t.parent;for(;n&&n.parent;)UI(n.parent.vnode)&&zB(i,e,t,n),n=n.parent}}function zB(A,e,t,i){const n=yo(e,A,i,!0);Ci(()=>{Vr(i[e],n)},t)}function yo(A,e,t=Ee,i=!1){if(t){const n=t[A]||(t[A]=[]),o=e.__weh||(e.__weh=(...r)=>{wt();const g=dn(t),s=Ct(e,t,A,r);return g(),Dt(),s});return i?n.unshift(o):n.push(o),o}}const vt=A=>(e,t=Ee)=>{(!on||A==="sp")&&yo(A,(...i)=>e(...i),t)},xI=vt("bm"),Ft=vt("m"),$B=vt("bu"),AQ=vt("u"),eQ=vt("bum"),Ci=vt("um"),tQ=vt("sp"),iQ=vt("rtg"),nQ=vt("rtc");function oQ(A,e=Ee){yo("ec",A,e)}const rQ="components",JI=Symbol.for("v-ndc");function TI(A){return te(A)?gQ(rQ,A,!1)||A:A||JI}function gQ(A,e,t=!0,i=!1){const n=be||Ee;if(n){const o=n.type;{const g=OQ(o,!1);if(g&&(g===e||g===Je(e)||g===co(Je(e))))return o}const r=Jg(n[A]||o[A],e)||Jg(n.appContext[A],e);return!r&&i?o:r}}function Jg(A,e){return A&&(A[e]||A[Je(e)]||A[co(Je(e))])}function Ke(A,e,t,i){let n;const o=t,r=yA(A);if(r||te(A)){const g=r&&gi(A);let s=!1,a=!1;g&&(s=!xe(A),a=kt(A),A=fo(A)),n=new Array(A.length);for(let I=0,l=A.length;I<l;I++)n[I]=e(s?a?Di(Pe(A[I])):Pe(A[I]):A[I],I,void 0,o)}else if(typeof A=="number"){n=new Array(A);for(let g=0;g<A;g++)n[g]=e(g+1,g,void 0,o)}else if(PA(A))if(A[Symbol.iterator])n=Array.from(A,(g,s)=>e(g,s,void 0,o));else{const g=Object.keys(A);n=new Array(g.length);for(let s=0,a=g.length;s<a;s++){const I=g[s];n[s]=e(A[I],I,s,o)}}else n=[];return n}const Qr=A=>A?nC(A)?ko(A):Qr(A.parent):null,Zi=ue(Object.create(null),{$:A=>A,$el:A=>A.vnode.el,$data:A=>A.data,$props:A=>A.props,$attrs:A=>A.attrs,$slots:A=>A.slots,$refs:A=>A.refs,$parent:A=>Qr(A.parent),$root:A=>Qr(A.root),$host:A=>A.ce,$emit:A=>A.emit,$options:A=>YI(A),$forceUpdate:A=>A.f||(A.f=()=>{tg(A.update)}),$nextTick:A=>A.n||(A.n=un.bind(A.proxy)),$watch:A=>VB.bind(A)}),_o=(A,e)=>A!==KA&&!A.__isScriptSetup&&JA(A,e),sQ={get({_:A},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:n,props:o,accessCache:r,type:g,appContext:s}=A;if(e[0]!=="$"){const C=r[e];if(C!==void 0)switch(C){case 1:return i[e];case 2:return n[e];case 4:return t[e];case 3:return o[e]}else{if(_o(i,e))return r[e]=1,i[e];if(n!==KA&&JA(n,e))return r[e]=2,n[e];if(JA(o,e))return r[e]=3,o[e];if(t!==KA&&JA(t,e))return r[e]=4,t[e];cr&&(r[e]=0)}}const a=Zi[e];let I,l;if(a)return e==="$attrs"&&ce(A.attrs,"get",""),a(A);if((I=g.__cssModules)&&(I=I[e]))return I;if(t!==KA&&JA(t,e))return r[e]=4,t[e];if(l=s.config.globalProperties,JA(l,e))return l[e]},set({_:A},e,t){const{data:i,setupState:n,ctx:o}=A;return _o(n,e)?(n[e]=t,!0):i!==KA&&JA(i,e)?(i[e]=t,!0):JA(A.props,e)||e[0]==="$"&&e.slice(1)in A?!1:(o[e]=t,!0)},has({_:{data:A,setupState:e,accessCache:t,ctx:i,appContext:n,props:o,type:r}},g){let s;return!!(t[g]||A!==KA&&g[0]!=="$"&&JA(A,g)||_o(e,g)||JA(o,g)||JA(i,g)||JA(Zi,g)||JA(n.config.globalProperties,g)||(s=r.__cssModules)&&s[g])},defineProperty(A,e,t){return t.get!=null?A._.accessCache[e]=0:JA(t,"value")&&this.set(A,e,t.value,null),Reflect.defineProperty(A,e,t)}};function Tg(A){return yA(A)?A.reduce((e,t)=>(e[t]=null,e),{}):A}let cr=!0;function aQ(A){const e=YI(A),t=A.proxy,i=A.ctx;cr=!1,e.beforeCreate&&Hg(e.beforeCreate,A,"bc");const{data:n,computed:o,methods:r,watch:g,provide:s,inject:a,created:I,beforeMount:l,mounted:C,beforeUpdate:Q,updated:E,activated:f,deactivated:h,beforeDestroy:u,beforeUnmount:p,destroyed:c,unmounted:d,render:w,renderTracked:F,renderTriggered:N,errorCaptured:G,serverPrefetch:P,expose:b,inheritAttrs:R,components:L,directives:cA,filters:dA}=e;if(a&&IQ(a,i,null),r)for(const X in r){const eA=r[X];SA(eA)&&(i[X]=eA.bind(t))}if(n){const X=n.call(t,t);PA(X)&&(A.data=po(X))}if(cr=!0,o)for(const X in o){const eA=o[X],fA=SA(eA)?eA.bind(t,t):SA(eA.get)?eA.get.bind(t,t):ot,DA=!SA(eA)&&SA(eA.set)?eA.set.bind(t):ot,Y=hA({get:fA,set:DA});Object.defineProperty(i,X,{enumerable:!0,configurable:!0,get:()=>Y.value,set:q=>Y.value=q})}if(g)for(const X in g)HI(g[X],i,t,X);if(s){const X=SA(s)?s.call(t):s;Reflect.ownKeys(X).forEach(eA=>{Tn(eA,X[eA])})}I&&Hg(I,A,"c");function iA(X,eA){yA(eA)?eA.forEach(fA=>X(fA.bind(t))):eA&&X(eA.bind(t))}if(iA(xI,l),iA(Ft,C),iA($B,Q),iA(AQ,E),iA(ZB,f),iA(XB,h),iA(oQ,G),iA(nQ,F),iA(iQ,N),iA(eQ,p),iA(Ci,d),iA(tQ,P),yA(b))if(b.length){const X=A.exposed||(A.exposed={});b.forEach(eA=>{Object.defineProperty(X,eA,{get:()=>t[eA],set:fA=>t[eA]=fA,enumerable:!0})})}else A.exposed||(A.exposed={});w&&A.render===ot&&(A.render=w),R!=null&&(A.inheritAttrs=R),L&&(A.components=L),cA&&(A.directives=cA),P&&LI(A)}function IQ(A,e,t=ot){yA(A)&&(A=Er(A));for(const i in A){const n=A[i];let o;PA(n)?"default"in n?o=rt(n.from||i,n.default,!0):o=rt(n.from||i):o=rt(n),le(o)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):e[i]=o}}function Hg(A,e,t){Ct(yA(A)?A.map(i=>i.bind(e.proxy)):A.bind(e.proxy),e,t)}function HI(A,e,t,i){let n=i.includes(".")?GI(t,i):()=>t[i];if(te(A)){const o=e[A];SA(o)&&ae(n,o)}else if(SA(A))ae(n,A.bind(t));else if(PA(A))if(yA(A))A.forEach(o=>HI(o,e,t,i));else{const o=SA(A.handler)?A.handler.bind(t):e[A.handler];SA(o)&&ae(n,o,A)}}function YI(A){const e=A.type,{mixins:t,extends:i}=e,{mixins:n,optionsCache:o,config:{optionMergeStrategies:r}}=A.appContext,g=o.get(e);let s;return g?s=g:!n.length&&!t&&!i?s=e:(s={},n.length&&n.forEach(a=>zn(s,a,r,!0)),zn(s,e,r)),PA(e)&&o.set(e,s),s}function zn(A,e,t,i=!1){const{mixins:n,extends:o}=e;o&&zn(A,o,t,!0),n&&n.forEach(r=>zn(A,r,t,!0));for(const r in e)if(!(i&&r==="expose")){const g=CQ[r]||t&&t[r];A[r]=g?g(A[r],e[r]):e[r]}return A}const CQ={data:Yg,props:_g,emits:_g,methods:Pi,computed:Pi,beforeCreate:fe,created:fe,beforeMount:fe,mounted:fe,beforeUpdate:fe,updated:fe,beforeDestroy:fe,beforeUnmount:fe,destroyed:fe,unmounted:fe,activated:fe,deactivated:fe,errorCaptured:fe,serverPrefetch:fe,components:Pi,directives:Pi,watch:BQ,provide:Yg,inject:lQ};function Yg(A,e){return e?A?function(){return ue(SA(A)?A.call(this,this):A,SA(e)?e.call(this,this):e)}:e:A}function lQ(A,e){return Pi(Er(A),Er(e))}function Er(A){if(yA(A)){const e={};for(let t=0;t<A.length;t++)e[A[t]]=A[t];return e}return A}function fe(A,e){return A?[...new Set([].concat(A,e))]:e}function Pi(A,e){return A?ue(Object.create(null),A,e):e}function _g(A,e){return A?yA(A)&&yA(e)?[...new Set([...A,...e])]:ue(Object.create(null),Tg(A),Tg(e??{})):e}function BQ(A,e){if(!A)return e;if(!e)return A;const t=ue(Object.create(null),A);for(const i in e)t[i]=fe(A[i],e[i]);return t}function _I(){return{app:null,config:{isNativeTag:eI,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let QQ=0;function cQ(A,e){return function(i,n=null){SA(i)||(i=ue({},i)),n!=null&&!PA(n)&&(n=null);const o=_I(),r=new WeakSet,g=[];let s=!1;const a=o.app={_uid:QQ++,_component:i,_props:n,_container:null,_context:o,_instance:null,version:WQ,get config(){return o.config},set config(I){},use(I,...l){return r.has(I)||(I&&SA(I.install)?(r.add(I),I.install(a,...l)):SA(I)&&(r.add(I),I(a,...l))),a},mixin(I){return o.mixins.includes(I)||o.mixins.push(I),a},component(I,l){return l?(o.components[I]=l,a):o.components[I]},directive(I,l){return l?(o.directives[I]=l,a):o.directives[I]},mount(I,l,C){if(!s){const Q=a._ceVNode||HA(i,n);return Q.appContext=o,C===!0?C="svg":C===!1&&(C=void 0),A(Q,I,C),s=!0,a._container=I,I.__vue_app__=a,ko(Q.component)}},onUnmount(I){g.push(I)},unmount(){s&&(Ct(g,a._instance,16),A(null,a._container),delete a._container.__vue_app__)},provide(I,l){return o.provides[I]=l,a},runWithContext(I){const l=pi;pi=a;try{return I()}finally{pi=l}}};return a}}let pi=null;const EQ=(A,e)=>e==="modelValue"||e==="model-value"?A.modelModifiers:A[`${e}Modifiers`]||A[`${Je(e)}Modifiers`]||A[`${Ii(e)}Modifiers`];function uQ(A,e,...t){if(A.isUnmounted)return;const i=A.vnode.props||KA;let n=t;const o=e.startsWith("update:"),r=o&&EQ(i,e.slice(7));r&&(r.trim&&(n=t.map(I=>te(I)?I.trim():I)),r.number&&(n=t.map(Eo)));let g,s=i[g=xo(e)]||i[g=xo(Je(e))];!s&&o&&(s=i[g=xo(Ii(e))]),s&&Ct(s,A,6,n);const a=i[g+"Once"];if(a){if(!A.emitted)A.emitted={};else if(A.emitted[g])return;A.emitted[g]=!0,Ct(a,A,6,n)}}const hQ=new WeakMap;function KI(A,e,t=!1){const i=t?hQ:e.emitsCache,n=i.get(A);if(n!==void 0)return n;const o=A.emits;let r={},g=!1;if(!SA(A)){const s=a=>{const I=KI(a,e,!0);I&&(g=!0,ue(r,I))};!t&&e.mixins.length&&e.mixins.forEach(s),A.extends&&s(A.extends),A.mixins&&A.mixins.forEach(s)}return!o&&!g?(PA(A)&&i.set(A,null),null):(yA(o)?o.forEach(s=>r[s]=null):ue(r,o),PA(A)&&i.set(A,r),r)}function wo(A,e){return!A||!lo(e)?!1:(e=e.slice(2).replace(/Once$/,""),JA(A,e[0].toLowerCase()+e.slice(1))||JA(A,Ii(e))||JA(A,e))}function Kg(A){const{type:e,vnode:t,proxy:i,withProxy:n,propsOptions:[o],slots:r,attrs:g,emit:s,render:a,renderCache:I,props:l,data:C,setupState:Q,ctx:E,inheritAttrs:f}=A,h=Zn(A);let u,p;try{if(t.shapeFlag&4){const d=n||i,w=d;u=tt(a.call(w,d,I,l,Q,C,E)),p=g}else{const d=e;u=tt(d.length>1?d(l,{attrs:g,slots:r,emit:s}):d(l,null)),p=e.props?g:fQ(g)}}catch(d){Xi.length=0,mo(d,A,1),u=HA(Kt)}let c=u;if(p&&f!==!1){const d=Object.keys(p),{shapeFlag:w}=c;d.length&&w&7&&(o&&d.some(Or)&&(p=dQ(p,o)),c=ki(c,p,!1,!0))}return t.dirs&&(c=ki(c,null,!1,!0),c.dirs=c.dirs?c.dirs.concat(t.dirs):t.dirs),t.transition&&ig(c,t.transition),u=c,Zn(h),u}const fQ=A=>{let e;for(const t in A)(t==="class"||t==="style"||lo(t))&&((e||(e={}))[t]=A[t]);return e},dQ=(A,e)=>{const t={};for(const i in A)(!Or(i)||!(i.slice(9)in e))&&(t[i]=A[i]);return t};function pQ(A,e,t){const{props:i,children:n,component:o}=A,{props:r,children:g,patchFlag:s}=e,a=o.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&s>=0){if(s&1024)return!0;if(s&16)return i?Pg(i,r,a):!!r;if(s&8){const I=e.dynamicProps;for(let l=0;l<I.length;l++){const C=I[l];if(r[C]!==i[C]&&!wo(a,C))return!0}}}else return(n||g)&&(!g||!g.$stable)?!0:i===r?!1:i?r?Pg(i,r,a):!0:!!r;return!1}function Pg(A,e,t){const i=Object.keys(e);if(i.length!==Object.keys(A).length)return!0;for(let n=0;n<i.length;n++){const o=i[n];if(e[o]!==A[o]&&!wo(t,o))return!0}return!1}function mQ({vnode:A,parent:e},t){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===A&&(i.el=A.el),i===A)(A=e.vnode).el=t,e=e.parent;else break}}const PI={},OI=()=>Object.create(PI),VI=A=>Object.getPrototypeOf(A)===PI;function yQ(A,e,t,i=!1){const n={},o=OI();A.propsDefaults=Object.create(null),WI(A,e,n,o);for(const r in A.propsOptions[0])r in n||(n[r]=void 0);t?A.props=i?n:wI(n):A.type.props?A.props=n:A.props=o,A.attrs=o}function wQ(A,e,t,i){const{props:n,attrs:o,vnode:{patchFlag:r}}=A,g=xA(n),[s]=A.propsOptions;let a=!1;if((i||r>0)&&!(r&16)){if(r&8){const I=A.vnode.dynamicProps;for(let l=0;l<I.length;l++){let C=I[l];if(wo(A.emitsOptions,C))continue;const Q=e[C];if(s)if(JA(o,C))Q!==o[C]&&(o[C]=Q,a=!0);else{const E=Je(C);n[E]=ur(s,g,E,Q,A,!1)}else Q!==o[C]&&(o[C]=Q,a=!0)}}}else{WI(A,e,n,o)&&(a=!0);let I;for(const l in g)(!e||!JA(e,l)&&((I=Ii(l))===l||!JA(e,I)))&&(s?t&&(t[l]!==void 0||t[I]!==void 0)&&(n[l]=ur(s,g,l,void 0,A,!0)):delete n[l]);if(o!==g)for(const l in o)(!e||!JA(e,l))&&(delete o[l],a=!0)}a&&ut(A.attrs,"set","")}function WI(A,e,t,i){const[n,o]=A.propsOptions;let r=!1,g;if(e)for(let s in e){if(Oi(s))continue;const a=e[s];let I;n&&JA(n,I=Je(s))?!o||!o.includes(I)?t[I]=a:(g||(g={}))[I]=a:wo(A.emitsOptions,s)||(!(s in i)||a!==i[s])&&(i[s]=a,r=!0)}if(o){const s=xA(t),a=g||KA;for(let I=0;I<o.length;I++){const l=o[I];t[l]=ur(n,s,l,a[l],A,!JA(a,l))}}return r}function ur(A,e,t,i,n,o){const r=A[t];if(r!=null){const g=JA(r,"default");if(g&&i===void 0){const s=r.default;if(r.type!==Function&&!r.skipFactory&&SA(s)){const{propsDefaults:a}=n;if(t in a)i=a[t];else{const I=dn(n);i=a[t]=s.call(null,e),I()}}else i=s;n.ce&&n.ce._setProp(t,i)}r[0]&&(o&&!g?i=!1:r[1]&&(i===""||i===Ii(t))&&(i=!0))}return i}const DQ=new WeakMap;function qI(A,e,t=!1){const i=t?DQ:e.propsCache,n=i.get(A);if(n)return n;const o=A.props,r={},g=[];let s=!1;if(!SA(A)){const I=l=>{s=!0;const[C,Q]=qI(l,e,!0);ue(r,C),Q&&g.push(...Q)};!t&&e.mixins.length&&e.mixins.forEach(I),A.extends&&I(A.extends),A.mixins&&A.mixins.forEach(I)}if(!o&&!s)return PA(A)&&i.set(A,hi),hi;if(yA(o))for(let I=0;I<o.length;I++){const l=Je(o[I]);Og(l)&&(r[l]=KA)}else if(o)for(const I in o){const l=Je(I);if(Og(l)){const C=o[I],Q=r[l]=yA(C)||SA(C)?{type:C}:ue({},C),E=Q.type;let f=!1,h=!0;if(yA(E))for(let u=0;u<E.length;++u){const p=E[u],c=SA(p)&&p.name;if(c==="Boolean"){f=!0;break}else c==="String"&&(h=!1)}else f=SA(E)&&E.name==="Boolean";Q[0]=f,Q[1]=h,(f||JA(Q,"default"))&&g.push(l)}}const a=[r,g];return PA(A)&&i.set(A,a),a}function Og(A){return A[0]!=="$"&&!Oi(A)}const ng=A=>A==="_"||A==="_ctx"||A==="$stable",og=A=>yA(A)?A.map(tt):[tt(A)],kQ=(A,e,t)=>{if(e._n)return e;const i=KB((...n)=>og(e(...n)),t);return i._c=!1,i},jI=(A,e,t)=>{const i=A._ctx;for(const n in A){if(ng(n))continue;const o=A[n];if(SA(o))e[n]=kQ(n,o,i);else if(o!=null){const r=og(o);e[n]=()=>r}}},ZI=(A,e)=>{const t=og(e);A.slots.default=()=>t},XI=(A,e,t)=>{for(const i in e)(t||!ng(i))&&(A[i]=e[i])},vQ=(A,e,t)=>{const i=A.slots=OI();if(A.vnode.shapeFlag&32){const n=e._;n?(XI(i,e,t),t&&oI(i,"_",n,!0)):jI(e,i)}else e&&ZI(A,e)},FQ=(A,e,t)=>{const{vnode:i,slots:n}=A;let o=!0,r=KA;if(i.shapeFlag&32){const g=e._;g?t&&g===1?o=!1:XI(n,e,t):(o=!e.$stable,jI(e,n)),r=e}else e&&(ZI(A,e),r={default:1});if(o)for(const g in n)!ng(g)&&r[g]==null&&delete n[g]},Se=GQ;function SQ(A){return bQ(A)}function bQ(A,e){const t=uo();t.__VUE__=!0;const{insert:i,remove:n,patchProp:o,createElement:r,createText:g,createComment:s,setText:a,setElementText:I,parentNode:l,nextSibling:C,setScopeId:Q=ot,insertStaticContent:E}=A,f=(D,S,k,J=null,W=null,V=null,tA=void 0,AA=null,m=!!S.dynamicChildren)=>{if(D===S)return;D&&!Ji(D,S)&&(J=M(D),q(D,W,V,!0),D=null),S.patchFlag===-2&&(m=!1,S.dynamicChildren=null);const{type:y,ref:x,shapeFlag:K}=S;switch(y){case fn:h(D,S,k,J);break;case Kt:u(D,S,k,J);break;case Hn:D==null&&p(S,k,J,tA);break;case jA:L(D,S,k,J,W,V,tA,AA,m);break;default:K&1?w(D,S,k,J,W,V,tA,AA,m):K&6?cA(D,S,k,J,W,V,tA,AA,m):(K&64||K&128)&&y.process(D,S,k,J,W,V,tA,AA,m,IA)}x!=null&&W?qi(x,D&&D.ref,V,S||D,!S):x==null&&D&&D.ref!=null&&qi(D.ref,null,V,D,!0)},h=(D,S,k,J)=>{if(D==null)i(S.el=g(S.children),k,J);else{const W=S.el=D.el;S.children!==D.children&&a(W,S.children)}},u=(D,S,k,J)=>{D==null?i(S.el=s(S.children||""),k,J):S.el=D.el},p=(D,S,k,J)=>{[D.el,D.anchor]=E(D.children,S,k,J,D.el,D.anchor)},c=({el:D,anchor:S},k,J)=>{let W;for(;D&&D!==S;)W=C(D),i(D,k,J),D=W;i(S,k,J)},d=({el:D,anchor:S})=>{let k;for(;D&&D!==S;)k=C(D),n(D),D=k;n(S)},w=(D,S,k,J,W,V,tA,AA,m)=>{if(S.type==="svg"?tA="svg":S.type==="math"&&(tA="mathml"),D==null)F(S,k,J,W,V,tA,AA,m);else{const y=D.el&&D.el._isVueCE?D.el:null;try{y&&y._beginPatch(),P(D,S,W,V,tA,AA,m)}finally{y&&y._endPatch()}}},F=(D,S,k,J,W,V,tA,AA)=>{let m,y;const{props:x,shapeFlag:K,transition:nA,dirs:z}=D;if(m=D.el=r(D.type,V,x&&x.is,x),K&8?I(m,D.children):K&16&&G(D.children,m,null,J,W,Ko(D,V),tA,AA),z&&Zt(D,null,J,"created"),N(m,D,D.scopeId,tA,J),x){for(const O in x)O!=="value"&&!Oi(O)&&o(m,O,null,x[O],V,J);"value"in x&&o(m,"value",null,x.value,V),(y=x.onVnodeBeforeMount)&&ze(y,J,D)}z&&Zt(D,null,J,"beforeMount");const U=RQ(W,nA);U&&nA.beforeEnter(m),i(m,S,k),((y=x&&x.onVnodeMounted)||U||z)&&Se(()=>{y&&ze(y,J,D),U&&nA.enter(m),z&&Zt(D,null,J,"mounted")},W)},N=(D,S,k,J,W)=>{if(k&&Q(D,k),J)for(let V=0;V<J.length;V++)Q(D,J[V]);if(W){let V=W.subTree;if(S===V||eC(V.type)&&(V.ssContent===S||V.ssFallback===S)){const tA=W.vnode;N(D,tA,tA.scopeId,tA.slotScopeIds,W.parent)}}},G=(D,S,k,J,W,V,tA,AA,m=0)=>{for(let y=m;y<D.length;y++){const x=D[y]=AA?xt(D[y]):tt(D[y]);f(null,x,S,k,J,W,V,tA,AA)}},P=(D,S,k,J,W,V,tA)=>{const AA=S.el=D.el;let{patchFlag:m,dynamicChildren:y,dirs:x}=S;m|=D.patchFlag&16;const K=D.props||KA,nA=S.props||KA;let z;if(k&&Xt(k,!1),(z=nA.onVnodeBeforeUpdate)&&ze(z,k,S,D),x&&Zt(S,D,k,"beforeUpdate"),k&&Xt(k,!0),(K.innerHTML&&nA.innerHTML==null||K.textContent&&nA.textContent==null)&&I(AA,""),y?b(D.dynamicChildren,y,AA,k,J,Ko(S,W),V):tA||eA(D,S,AA,null,k,J,Ko(S,W),V,!1),m>0){if(m&16)R(AA,K,nA,k,W);else if(m&2&&K.class!==nA.class&&o(AA,"class",null,nA.class,W),m&4&&o(AA,"style",K.style,nA.style,W),m&8){const U=S.dynamicProps;for(let O=0;O<U.length;O++){const uA=U[O],NA=K[uA],ZA=nA[uA];(ZA!==NA||uA==="value")&&o(AA,uA,NA,ZA,W,k)}}m&1&&D.children!==S.children&&I(AA,S.children)}else!tA&&y==null&&R(AA,K,nA,k,W);((z=nA.onVnodeUpdated)||x)&&Se(()=>{z&&ze(z,k,S,D),x&&Zt(S,D,k,"updated")},J)},b=(D,S,k,J,W,V,tA)=>{for(let AA=0;AA<S.length;AA++){const m=D[AA],y=S[AA],x=m.el&&(m.type===jA||!Ji(m,y)||m.shapeFlag&198)?l(m.el):k;f(m,y,x,null,J,W,V,tA,!0)}},R=(D,S,k,J,W)=>{if(S!==k){if(S!==KA)for(const V in S)!Oi(V)&&!(V in k)&&o(D,V,S[V],null,W,J);for(const V in k){if(Oi(V))continue;const tA=k[V],AA=S[V];tA!==AA&&V!=="value"&&o(D,V,AA,tA,W,J)}"value"in k&&o(D,"value",S.value,k.value,W)}},L=(D,S,k,J,W,V,tA,AA,m)=>{const y=S.el=D?D.el:g(""),x=S.anchor=D?D.anchor:g("");let{patchFlag:K,dynamicChildren:nA,slotScopeIds:z}=S;z&&(AA=AA?AA.concat(z):z),D==null?(i(y,k,J),i(x,k,J),G(S.children||[],k,x,W,V,tA,AA,m)):K>0&&K&64&&nA&&D.dynamicChildren&&D.dynamicChildren.length===nA.length?(b(D.dynamicChildren,nA,k,W,V,tA,AA),(S.key!=null||W&&S===W.subTree)&&zI(D,S,!0)):eA(D,S,k,x,W,V,tA,AA,m)},cA=(D,S,k,J,W,V,tA,AA,m)=>{S.slotScopeIds=AA,D==null?S.shapeFlag&512?W.ctx.activate(S,k,J,tA,m):dA(S,k,J,W,V,tA,m):CA(D,S,m)},dA=(D,S,k,J,W,V,tA)=>{const AA=D.component=HQ(D,J,W);if(UI(D)&&(AA.ctx.renderer=IA),YQ(AA,!1,tA),AA.asyncDep){if(W&&W.registerDep(AA,iA,tA),!D.el){const m=AA.subTree=HA(Kt);u(null,m,S,k),D.placeholder=m.el}}else iA(AA,D,S,k,W,V,tA)},CA=(D,S,k)=>{const J=S.component=D.component;if(pQ(D,S,k))if(J.asyncDep&&!J.asyncResolved){X(J,S,k);return}else J.next=S,J.update();else S.el=D.el,J.vnode=S},iA=(D,S,k,J,W,V,tA)=>{const AA=()=>{if(D.isMounted){let{next:K,bu:nA,u:z,parent:U,vnode:O}=D;{const Ce=$I(D);if(Ce){K&&(K.el=O.el,X(D,K,tA)),Ce.asyncDep.then(()=>{D.isUnmounted||AA()});return}}let uA=K,NA;Xt(D,!1),K?(K.el=O.el,X(D,K,tA)):K=O,nA&&Jn(nA),(NA=K.props&&K.props.onVnodeBeforeUpdate)&&ze(NA,U,K,O),Xt(D,!0);const ZA=Kg(D),he=D.subTree;D.subTree=ZA,f(he,ZA,l(he.el),M(he),D,W,V),K.el=ZA.el,uA===null&&mQ(D,ZA.el),z&&Se(z,W),(NA=K.props&&K.props.onVnodeUpdated)&&Se(()=>ze(NA,U,K,O),W)}else{let K;const{el:nA,props:z}=S,{bm:U,m:O,parent:uA,root:NA,type:ZA}=D,he=ji(S);Xt(D,!1),U&&Jn(U),!he&&(K=z&&z.onVnodeBeforeMount)&&ze(K,uA,S),Xt(D,!0);{NA.ce&&NA.ce._def.shadowRoot!==!1&&NA.ce._injectChildStyle(ZA);const Ce=D.subTree=Kg(D);f(null,Ce,k,J,D,W,V),S.el=Ce.el}if(O&&Se(O,W),!he&&(K=z&&z.onVnodeMounted)){const Ce=S;Se(()=>ze(K,uA,Ce),W)}(S.shapeFlag&256||uA&&ji(uA.vnode)&&uA.vnode.shapeFlag&256)&&D.a&&Se(D.a,W),D.isMounted=!0,S=k=J=null}};D.scope.on();const m=D.effect=new II(AA);D.scope.off();const y=D.update=m.run.bind(m),x=D.job=m.runIfDirty.bind(m);x.i=D,x.id=D.uid,m.scheduler=()=>tg(x),Xt(D,!0),y()},X=(D,S,k)=>{S.component=D;const J=D.vnode.props;D.vnode=S,D.next=null,wQ(D,S.props,J,k),FQ(D,S.children,k),wt(),Mg(D),Dt()},eA=(D,S,k,J,W,V,tA,AA,m=!1)=>{const y=D&&D.children,x=D?D.shapeFlag:0,K=S.children,{patchFlag:nA,shapeFlag:z}=S;if(nA>0){if(nA&128){DA(y,K,k,J,W,V,tA,AA,m);return}else if(nA&256){fA(y,K,k,J,W,V,tA,AA,m);return}}z&8?(x&16&&TA(y,W,V),K!==y&&I(k,K)):x&16?z&16?DA(y,K,k,J,W,V,tA,AA,m):TA(y,W,V,!0):(x&8&&I(k,""),z&16&&G(K,k,J,W,V,tA,AA,m))},fA=(D,S,k,J,W,V,tA,AA,m)=>{D=D||hi,S=S||hi;const y=D.length,x=S.length,K=Math.min(y,x);let nA;for(nA=0;nA<K;nA++){const z=S[nA]=m?xt(S[nA]):tt(S[nA]);f(D[nA],z,k,null,W,V,tA,AA,m)}y>x?TA(D,W,V,!0,!1,K):G(S,k,J,W,V,tA,AA,m,K)},DA=(D,S,k,J,W,V,tA,AA,m)=>{let y=0;const x=S.length;let K=D.length-1,nA=x-1;for(;y<=K&&y<=nA;){const z=D[y],U=S[y]=m?xt(S[y]):tt(S[y]);if(Ji(z,U))f(z,U,k,null,W,V,tA,AA,m);else break;y++}for(;y<=K&&y<=nA;){const z=D[K],U=S[nA]=m?xt(S[nA]):tt(S[nA]);if(Ji(z,U))f(z,U,k,null,W,V,tA,AA,m);else break;K--,nA--}if(y>K){if(y<=nA){const z=nA+1,U=z<x?S[z].el:J;for(;y<=nA;)f(null,S[y]=m?xt(S[y]):tt(S[y]),k,U,W,V,tA,AA,m),y++}}else if(y>nA)for(;y<=K;)q(D[y],W,V,!0),y++;else{const z=y,U=y,O=new Map;for(y=U;y<=nA;y++){const Fe=S[y]=m?xt(S[y]):tt(S[y]);Fe.key!=null&&O.set(Fe.key,y)}let uA,NA=0;const ZA=nA-U+1;let he=!1,Ce=0;const jt=new Array(ZA);for(y=0;y<ZA;y++)jt[y]=0;for(y=z;y<=K;y++){const Fe=D[y];if(NA>=ZA){q(Fe,W,V,!0);continue}let Xe;if(Fe.key!=null)Xe=O.get(Fe.key);else for(uA=U;uA<=nA;uA++)if(jt[uA-U]===0&&Ji(Fe,S[uA])){Xe=uA;break}Xe===void 0?q(Fe,W,V,!0):(jt[Xe-U]=y+1,Xe>=Ce?Ce=Xe:he=!0,f(Fe,S[Xe],k,null,W,V,tA,AA,m),NA++)}const Mo=he?NQ(jt):hi;for(uA=Mo.length-1,y=ZA-1;y>=0;y--){const Fe=U+y,Xe=S[Fe],bg=S[Fe+1],Rg=Fe+1<x?bg.el||AC(bg):J;jt[y]===0?f(null,Xe,k,Rg,W,V,tA,AA,m):he&&(uA<0||y!==Mo[uA]?Y(Xe,k,Rg,2):uA--)}}},Y=(D,S,k,J,W=null)=>{const{el:V,type:tA,transition:AA,children:m,shapeFlag:y}=D;if(y&6){Y(D.component.subTree,S,k,J);return}if(y&128){D.suspense.move(S,k,J);return}if(y&64){tA.move(D,S,k,IA);return}if(tA===jA){i(V,S,k);for(let K=0;K<m.length;K++)Y(m[K],S,k,J);i(D.anchor,S,k);return}if(tA===Hn){c(D,S,k);return}if(J!==2&&y&1&&AA)if(J===0)AA.beforeEnter(V),i(V,S,k),Se(()=>AA.enter(V),W);else{const{leave:K,delayLeave:nA,afterLeave:z}=AA,U=()=>{D.ctx.isUnmounted?n(V):i(V,S,k)},O=()=>{V._isLeaving&&V[jB](!0),K(V,()=>{U(),z&&z()})};nA?nA(V,U,O):O()}else i(V,S,k)},q=(D,S,k,J=!1,W=!1)=>{const{type:V,props:tA,ref:AA,children:m,dynamicChildren:y,shapeFlag:x,patchFlag:K,dirs:nA,cacheIndex:z}=D;if(K===-2&&(W=!1),AA!=null&&(wt(),qi(AA,null,k,D,!0),Dt()),z!=null&&(S.renderCache[z]=void 0),x&256){S.ctx.deactivate(D);return}const U=x&1&&nA,O=!ji(D);let uA;if(O&&(uA=tA&&tA.onVnodeBeforeUnmount)&&ze(uA,S,D),x&6)LA(D.component,k,J);else{if(x&128){D.suspense.unmount(k,J);return}U&&Zt(D,null,S,"beforeUnmount"),x&64?D.type.remove(D,S,k,IA,J):y&&!y.hasOnce&&(V!==jA||K>0&&K&64)?TA(y,S,k,!1,!0):(V===jA&&K&384||!W&&x&16)&&TA(m,S,k),J&&gA(D)}(O&&(uA=tA&&tA.onVnodeUnmounted)||U)&&Se(()=>{uA&&ze(uA,S,D),U&&Zt(D,null,S,"unmounted")},k)},gA=D=>{const{type:S,el:k,anchor:J,transition:W}=D;if(S===jA){FA(k,J);return}if(S===Hn){d(D);return}const V=()=>{n(k),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(D.shapeFlag&1&&W&&!W.persisted){const{leave:tA,delayLeave:AA}=W,m=()=>tA(k,V);AA?AA(D.el,V,m):m()}else V()},FA=(D,S)=>{let k;for(;D!==S;)k=C(D),n(D),D=k;n(S)},LA=(D,S,k)=>{const{bum:J,scope:W,job:V,subTree:tA,um:AA,m,a:y}=D;Vg(m),Vg(y),J&&Jn(J),W.stop(),V&&(V.flags|=8,q(tA,D,S,k)),AA&&Se(AA,S),Se(()=>{D.isUnmounted=!0},S)},TA=(D,S,k,J=!1,W=!1,V=0)=>{for(let tA=V;tA<D.length;tA++)q(D[tA],S,k,J,W)},M=D=>{if(D.shapeFlag&6)return M(D.component.subTree);if(D.shapeFlag&128)return D.suspense.next();const S=C(D.anchor||D.el),k=S&&S[WB];return k?C(k):S};let Z=!1;const $=(D,S,k)=>{let J;D==null?S._vnode&&(q(S._vnode,null,null,!0),J=S._vnode.component):f(S._vnode||null,D,S,null,null,null,k),S._vnode=D,Z||(Z=!0,Mg(J),SI(),Z=!1)},IA={p:f,um:q,m:Y,r:gA,mt:dA,mc:G,pc:eA,pbc:b,n:M,o:A};return{render:$,hydrate:void 0,createApp:cQ($)}}function Ko({type:A,props:e},t){return t==="svg"&&A==="foreignObject"||t==="mathml"&&A==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function Xt({effect:A,job:e},t){t?(A.flags|=32,e.flags|=4):(A.flags&=-33,e.flags&=-5)}function RQ(A,e){return(!A||A&&!A.pendingBranch)&&e&&!e.persisted}function zI(A,e,t=!1){const i=A.children,n=e.children;if(yA(i)&&yA(n))for(let o=0;o<i.length;o++){const r=i[o];let g=n[o];g.shapeFlag&1&&!g.dynamicChildren&&((g.patchFlag<=0||g.patchFlag===32)&&(g=n[o]=xt(n[o]),g.el=r.el),!t&&g.patchFlag!==-2&&zI(r,g)),g.type===fn&&(g.patchFlag!==-1?g.el=r.el:g.__elIndex=o+(A.type===jA?1:0)),g.type===Kt&&!g.el&&(g.el=r.el)}}function NQ(A){const e=A.slice(),t=[0];let i,n,o,r,g;const s=A.length;for(i=0;i<s;i++){const a=A[i];if(a!==0){if(n=t[t.length-1],A[n]<a){e[i]=n,t.push(i);continue}for(o=0,r=t.length-1;o<r;)g=o+r>>1,A[t[g]]<a?o=g+1:r=g;a<A[t[o]]&&(o>0&&(e[i]=t[o-1]),t[o]=i)}}for(o=t.length,r=t[o-1];o-- >0;)t[o]=r,r=e[r];return t}function $I(A){const e=A.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:$I(e)}function Vg(A){if(A)for(let e=0;e<A.length;e++)A[e].flags|=8}function AC(A){if(A.placeholder)return A.placeholder;const e=A.component;return e?AC(e.subTree):null}const eC=A=>A.__isSuspense;function GQ(A,e){e&&e.pendingBranch?yA(A)?e.effects.push(...A):e.effects.push(A):_B(A)}const jA=Symbol.for("v-fgt"),fn=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),Hn=Symbol.for("v-stc"),Xi=[];let Re=null;function H(A=!1){Xi.push(Re=A?null:[])}function LQ(){Xi.pop(),Re=Xi[Xi.length-1]||null}let nn=1;function $n(A,e=!1){nn+=A,A<0&&Re&&e&&(Re.hasOnce=!0)}function tC(A){return A.dynamicChildren=nn>0?Re||hi:null,LQ(),nn>0&&Re&&Re.push(A),A}function _(A,e,t,i,n,o){return tC(B(A,e,t,i,n,o,!0))}function ye(A,e,t,i,n){return tC(HA(A,e,t,i,n,!0))}function Ao(A){return A?A.__v_isVNode===!0:!1}function Ji(A,e){return A.type===e.type&&A.key===e.key}const iC=({key:A})=>A??null,Yn=({ref:A,ref_key:e,ref_for:t})=>(typeof A=="number"&&(A=""+A),A!=null?te(A)||le(A)||SA(A)?{i:be,r:A,k:e,f:!!t}:A:null);function B(A,e=null,t=null,i=0,n=null,o=A===jA?0:1,r=!1,g=!1){const s={__v_isVNode:!0,__v_skip:!0,type:A,props:e,key:e&&iC(e),ref:e&&Yn(e),scopeId:RI,slotScopeIds:null,children:t,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:i,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:be};return g?(rg(s,t),o&128&&A.normalize(s)):t&&(s.shapeFlag|=te(t)?8:16),nn>0&&!r&&Re&&(s.patchFlag>0||o&6)&&s.patchFlag!==32&&Re.push(s),s}const HA=UQ;function UQ(A,e=null,t=null,i=0,n=null,o=!1){if((!A||A===JI)&&(A=Kt),Ao(A)){const g=ki(A,e,!0);return t&&rg(g,t),nn>0&&!o&&Re&&(g.shapeFlag&6?Re[Re.indexOf(A)]=g:Re.push(g)),g.patchFlag=-2,g}if(VQ(A)&&(A=A.__vccOpts),e){e=MQ(e);let{class:g,style:s}=e;g&&!te(g)&&(e.class=kA(g)),PA(s)&&(Ag(s)&&!yA(s)&&(s=ue({},s)),e.style=WA(s))}const r=te(A)?1:eC(A)?128:qB(A)?64:PA(A)?4:SA(A)?2:0;return B(A,e,t,i,n,r,o,!0)}function MQ(A){return A?Ag(A)||VI(A)?ue({},A):A:null}function ki(A,e,t=!1,i=!1){const{props:n,ref:o,patchFlag:r,children:g,transition:s}=A,a=e?xQ(n||{},e):n,I={__v_isVNode:!0,__v_skip:!0,type:A.type,props:a,key:a&&iC(a),ref:e&&e.ref?t&&o?yA(o)?o.concat(Yn(e)):[o,Yn(e)]:Yn(e):o,scopeId:A.scopeId,slotScopeIds:A.slotScopeIds,children:g,target:A.target,targetStart:A.targetStart,targetAnchor:A.targetAnchor,staticCount:A.staticCount,shapeFlag:A.shapeFlag,patchFlag:e&&A.type!==jA?r===-1?16:r|16:r,dynamicProps:A.dynamicProps,dynamicChildren:A.dynamicChildren,appContext:A.appContext,dirs:A.dirs,transition:s,component:A.component,suspense:A.suspense,ssContent:A.ssContent&&ki(A.ssContent),ssFallback:A.ssFallback&&ki(A.ssFallback),placeholder:A.placeholder,el:A.el,anchor:A.anchor,ctx:A.ctx,ce:A.ce};return s&&i&&ig(I,s.clone(I)),I}function gt(A=" ",e=0){return HA(fn,null,A,e)}function Do(A,e){const t=HA(Hn,null,A);return t.staticCount=e,t}function sA(A="",e=!1){return e?(H(),ye(Kt,null,A)):HA(Kt,null,A)}function tt(A){return A==null||typeof A=="boolean"?HA(Kt):yA(A)?HA(jA,null,A.slice()):Ao(A)?xt(A):HA(fn,null,String(A))}function xt(A){return A.el===null&&A.patchFlag!==-1||A.memo?A:ki(A)}function rg(A,e){let t=0;const{shapeFlag:i}=A;if(e==null)e=null;else if(yA(e))t=16;else if(typeof e=="object")if(i&65){const n=e.default;n&&(n._c&&(n._d=!1),rg(A,n()),n._c&&(n._d=!0));return}else{t=32;const n=e._;!n&&!VI(e)?e._ctx=be:n===3&&be&&(be.slots._===1?e._=1:(e._=2,A.patchFlag|=1024))}else SA(e)?(e={default:e,_ctx:be},t=32):(e=String(e),i&64?(t=16,e=[gt(e)]):t=8);A.children=e,A.shapeFlag|=t}function xQ(...A){const e={};for(let t=0;t<A.length;t++){const i=A[t];for(const n in i)if(n==="class")e.class!==i.class&&(e.class=kA([e.class,i.class]));else if(n==="style")e.style=WA([e.style,i.style]);else if(lo(n)){const o=e[n],r=i[n];r&&o!==r&&!(yA(o)&&o.includes(r))&&(e[n]=o?[].concat(o,r):r)}else n!==""&&(e[n]=i[n])}return e}function ze(A,e,t,i=null){Ct(A,e,7,[t,i])}const JQ=_I();let TQ=0;function HQ(A,e,t){const i=A.type,n=(e?e.appContext:A.appContext)||JQ,o={uid:TQ++,vnode:A,type:i,parent:e,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new aI(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(n.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:qI(i,n),emitsOptions:KI(i,n),emit:null,emitted:null,propsDefaults:KA,inheritAttrs:i.inheritAttrs,ctx:KA,data:KA,props:KA,attrs:KA,slots:KA,refs:KA,setupState:KA,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=e?e.root:o,o.emit=uQ.bind(null,o),A.ce&&A.ce(o),o}let Ee=null;const vi=()=>Ee||be;let eo,hr;{const A=uo(),e=(t,i)=>{let n;return(n=A[t])||(n=A[t]=[]),n.push(i),o=>{n.length>1?n.forEach(r=>r(o)):n[0](o)}};eo=e("__VUE_INSTANCE_SETTERS__",t=>Ee=t),hr=e("__VUE_SSR_SETTERS__",t=>on=t)}const dn=A=>{const e=Ee;return eo(A),A.scope.on(),()=>{A.scope.off(),eo(e)}},Wg=()=>{Ee&&Ee.scope.off(),eo(null)};function nC(A){return A.vnode.shapeFlag&4}let on=!1;function YQ(A,e=!1,t=!1){e&&hr(e);const{props:i,children:n}=A.vnode,o=nC(A);yQ(A,i,o,e),vQ(A,n,t||e);const r=o?_Q(A,e):void 0;return e&&hr(!1),r}function _Q(A,e){const t=A.type;A.accessCache=Object.create(null),A.proxy=new Proxy(A.ctx,sQ);const{setup:i}=t;if(i){wt();const n=A.setupContext=i.length>1?PQ(A):null,o=dn(A),r=En(i,A,0,[A.props,n]),g=tI(r);if(Dt(),o(),(g||A.sp)&&!ji(A)&&LI(A),g){if(r.then(Wg,Wg),e)return r.then(s=>{qg(A,s)}).catch(s=>{mo(s,A,0)});A.asyncDep=r}else qg(A,r)}else oC(A)}function qg(A,e,t){SA(e)?A.type.__ssrInlineRender?A.ssrRender=e:A.render=e:PA(e)&&(A.setupState=kI(e)),oC(A)}function oC(A,e,t){const i=A.type;A.render||(A.render=i.render||ot);{const n=dn(A);wt();try{aQ(A)}finally{Dt(),n()}}}const KQ={get(A,e){return ce(A,"get",""),A[e]}};function PQ(A){const e=t=>{A.exposed=t||{}};return{attrs:new Proxy(A.attrs,KQ),slots:A.slots,emit:A.emit,expose:e}}function ko(A){return A.exposed?A.exposeProxy||(A.exposeProxy=new Proxy(kI(Ki(A.exposed)),{get(e,t){if(t in e)return e[t];if(t in Zi)return Zi[t](A)},has(e,t){return t in e||t in Zi}})):A.proxy}function OQ(A,e=!0){return SA(A)?A.displayName||A.name:A.name||e&&A.__name}function VQ(A){return SA(A)&&"__vccOpts"in A}const hA=(A,e)=>xB(A,e,on);function GA(A,e,t){try{$n(-1);const i=arguments.length;return i===2?PA(e)&&!yA(e)?Ao(e)?HA(A,null,[e]):HA(A,e):HA(A,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&Ao(t)&&(t=[t]),HA(A,e,t))}finally{$n(1)}}const WQ="3.5.26";/**
|
||
* @vue/runtime-dom v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let fr;const jg=typeof window<"u"&&window.trustedTypes;if(jg)try{fr=jg.createPolicy("vue",{createHTML:A=>A})}catch{}const rC=fr?A=>fr.createHTML(A):A=>A,qQ="http://www.w3.org/2000/svg",jQ="http://www.w3.org/1998/Math/MathML",Et=typeof document<"u"?document:null,Zg=Et&&Et.createElement("template"),ZQ={insert:(A,e,t)=>{e.insertBefore(A,t||null)},remove:A=>{const e=A.parentNode;e&&e.removeChild(A)},createElement:(A,e,t,i)=>{const n=e==="svg"?Et.createElementNS(qQ,A):e==="mathml"?Et.createElementNS(jQ,A):t?Et.createElement(A,{is:t}):Et.createElement(A);return A==="select"&&i&&i.multiple!=null&&n.setAttribute("multiple",i.multiple),n},createText:A=>Et.createTextNode(A),createComment:A=>Et.createComment(A),setText:(A,e)=>{A.nodeValue=e},setElementText:(A,e)=>{A.textContent=e},parentNode:A=>A.parentNode,nextSibling:A=>A.nextSibling,querySelector:A=>Et.querySelector(A),setScopeId(A,e){A.setAttribute(e,"")},insertStaticContent(A,e,t,i,n,o){const r=t?t.previousSibling:e.lastChild;if(n&&(n===o||n.nextSibling))for(;e.insertBefore(n.cloneNode(!0),t),!(n===o||!(n=n.nextSibling)););else{Zg.innerHTML=rC(i==="svg"?`<svg>${A}</svg>`:i==="mathml"?`<math>${A}</math>`:A);const g=Zg.content;if(i==="svg"||i==="mathml"){const s=g.firstChild;for(;s.firstChild;)g.appendChild(s.firstChild);g.removeChild(s)}e.insertBefore(g,t)}return[r?r.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},XQ=Symbol("_vtc");function zQ(A,e,t){const i=A[XQ];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?A.removeAttribute("class"):t?A.setAttribute("class",e):A.className=e}const Xg=Symbol("_vod"),$Q=Symbol("_vsh"),Ac=Symbol(""),ec=/(?:^|;)\s*display\s*:/;function tc(A,e,t){const i=A.style,n=te(t);let o=!1;if(t&&!n){if(e)if(te(e))for(const r of e.split(";")){const g=r.slice(0,r.indexOf(":")).trim();t[g]==null&&_n(i,g,"")}else for(const r in e)t[r]==null&&_n(i,r,"");for(const r in t)r==="display"&&(o=!0),_n(i,r,t[r])}else if(n){if(e!==t){const r=i[Ac];r&&(t+=";"+r),i.cssText=t,o=ec.test(t)}}else e&&A.removeAttribute("style");Xg in A&&(A[Xg]=o?i.display:"",A[$Q]&&(i.display="none"))}const zg=/\s*!important$/;function _n(A,e,t){if(yA(t))t.forEach(i=>_n(A,e,i));else if(t==null&&(t=""),e.startsWith("--"))A.setProperty(e,t);else{const i=ic(A,e);zg.test(t)?A.setProperty(Ii(i),t.replace(zg,""),"important"):A[i]=t}}const $g=["Webkit","Moz","ms"],Po={};function ic(A,e){const t=Po[e];if(t)return t;let i=Je(e);if(i!=="filter"&&i in A)return Po[e]=i;i=co(i);for(let n=0;n<$g.length;n++){const o=$g[n]+i;if(o in A)return Po[e]=o}return e}const As="http://www.w3.org/1999/xlink";function es(A,e,t,i,n,o=CB(e)){i&&e.startsWith("xlink:")?t==null?A.removeAttributeNS(As,e.slice(6,e.length)):A.setAttributeNS(As,e,t):t==null||o&&!rI(t)?A.removeAttribute(e):A.setAttribute(e,o?"":It(t)?String(t):t)}function ts(A,e,t,i,n){if(e==="innerHTML"||e==="textContent"){t!=null&&(A[e]=e==="innerHTML"?rC(t):t);return}const o=A.tagName;if(e==="value"&&o!=="PROGRESS"&&!o.includes("-")){const g=o==="OPTION"?A.getAttribute("value")||"":A.value,s=t==null?A.type==="checkbox"?"on":"":String(t);(g!==s||!("_value"in A))&&(A.value=s),t==null&&A.removeAttribute(e),A._value=t;return}let r=!1;if(t===""||t==null){const g=typeof A[e];g==="boolean"?t=rI(t):t==null&&g==="string"?(t="",r=!0):g==="number"&&(t=0,r=!0)}try{A[e]=t}catch{}r&&A.removeAttribute(n||e)}function ti(A,e,t,i){A.addEventListener(e,t,i)}function nc(A,e,t,i){A.removeEventListener(e,t,i)}const is=Symbol("_vei");function oc(A,e,t,i,n=null){const o=A[is]||(A[is]={}),r=o[e];if(i&&r)r.value=i;else{const[g,s]=rc(e);if(i){const a=o[e]=ac(i,n);ti(A,g,a,s)}else r&&(nc(A,g,r,s),o[e]=void 0)}}const ns=/(?:Once|Passive|Capture)$/;function rc(A){let e;if(ns.test(A)){e={};let i;for(;i=A.match(ns);)A=A.slice(0,A.length-i[0].length),e[i[0].toLowerCase()]=!0}return[A[2]===":"?A.slice(3):Ii(A.slice(2)),e]}let Oo=0;const gc=Promise.resolve(),sc=()=>Oo||(gc.then(()=>Oo=0),Oo=Date.now());function ac(A,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Ct(Ic(i,t.value),e,5,[i])};return t.value=A,t.attached=sc(),t}function Ic(A,e){if(yA(e)){const t=A.stopImmediatePropagation;return A.stopImmediatePropagation=()=>{t.call(A),A._stopped=!0},e.map(i=>n=>!n._stopped&&i&&i(n))}else return e}const os=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&A.charCodeAt(2)>96&&A.charCodeAt(2)<123,Cc=(A,e,t,i,n,o)=>{const r=n==="svg";e==="class"?zQ(A,i,r):e==="style"?tc(A,t,i):lo(e)?Or(e)||oc(A,e,t,i,o):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):lc(A,e,i,r))?(ts(A,e,i),!A.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&es(A,e,i,r,o,e!=="value")):A._isVueCE&&(/[A-Z]/.test(e)||!te(i))?ts(A,Je(e),i,o,e):(e==="true-value"?A._trueValue=i:e==="false-value"&&(A._falseValue=i),es(A,e,i,r))};function lc(A,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in A&&os(e)&&SA(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&A.tagName==="IFRAME"||e==="form"||e==="list"&&A.tagName==="INPUT"||e==="type"&&A.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const n=A.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return os(e)&&te(t)?!1:e in A}const to=A=>{const e=A.props["onUpdate:modelValue"]||!1;return yA(e)?t=>Jn(e,t):e};function Bc(A){A.target.composing=!0}function rs(A){const e=A.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const mi=Symbol("_assign");function gs(A,e,t){return e&&(A=A.trim()),t&&(A=Eo(A)),A}const ie={created(A,{modifiers:{lazy:e,trim:t,number:i}},n){A[mi]=to(n);const o=i||n.props&&n.props.type==="number";ti(A,e?"change":"input",r=>{r.target.composing||A[mi](gs(A.value,t,o))}),(t||o)&&ti(A,"change",()=>{A.value=gs(A.value,t,o)}),e||(ti(A,"compositionstart",Bc),ti(A,"compositionend",rs),ti(A,"change",rs))},mounted(A,{value:e}){A.value=e??""},beforeUpdate(A,{value:e,oldValue:t,modifiers:{lazy:i,trim:n,number:o}},r){if(A[mi]=to(r),A.composing)return;const g=(o||A.type==="number")&&!/^0\d/.test(A.value)?Eo(A.value):A.value,s=e??"";g!==s&&(document.activeElement===A&&A.type!=="range"&&(i&&e===t||n&&A.value.trim()===s)||(A.value=s))}},dr={deep:!0,created(A,{value:e,modifiers:{number:t}},i){const n=Bo(e);ti(A,"change",()=>{const o=Array.prototype.filter.call(A.options,r=>r.selected).map(r=>t?Eo(io(r)):io(r));A[mi](A.multiple?n?new Set(o):o:o[0]),A._assigning=!0,un(()=>{A._assigning=!1})}),A[mi]=to(i)},mounted(A,{value:e}){ss(A,e)},beforeUpdate(A,e,t){A[mi]=to(t)},updated(A,{value:e}){A._assigning||ss(A,e)}};function ss(A,e){const t=A.multiple,i=yA(e);if(!(t&&!i&&!Bo(e))){for(let n=0,o=A.options.length;n<o;n++){const r=A.options[n],g=io(r);if(t)if(i){const s=typeof g;s==="string"||s==="number"?r.selected=e.some(a=>String(a)===String(g)):r.selected=BB(e,g)>-1}else r.selected=e.has(g);else if(ho(io(r),e)){A.selectedIndex!==n&&(A.selectedIndex=n);return}}!t&&A.selectedIndex!==-1&&(A.selectedIndex=-1)}}function io(A){return"_value"in A?A._value:A.value}const Qc=["ctrl","shift","alt","meta"],cc={stop:A=>A.stopPropagation(),prevent:A=>A.preventDefault(),self:A=>A.target!==A.currentTarget,ctrl:A=>!A.ctrlKey,shift:A=>!A.shiftKey,alt:A=>!A.altKey,meta:A=>!A.metaKey,left:A=>"button"in A&&A.button!==0,middle:A=>"button"in A&&A.button!==1,right:A=>"button"in A&&A.button!==2,exact:(A,e)=>Qc.some(t=>A[`${t}Key`]&&!e.includes(t))},dt=(A,e)=>{const t=A._withMods||(A._withMods={}),i=e.join(".");return t[i]||(t[i]=(n,...o)=>{for(let r=0;r<e.length;r++){const g=cc[e[r]];if(g&&g(n,e))return}return A(n,...o)})},Ec=ue({patchProp:Cc},ZQ);let as;function uc(){return as||(as=SQ(Ec))}const hc=(...A)=>{const e=uc().createApp(...A),{mount:t}=e;return e.mount=i=>{const n=dc(i);if(!n)return;const o=e._component;!SA(o)&&!o.render&&!o.template&&(o.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const r=t(n,!1,fc(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),r},e};function fc(A){if(A instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&A instanceof MathMLElement)return"mathml"}function dc(A){return te(A)?document.querySelector(A):A}/*!
|
||
* shared v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function pc(A,e){typeof console<"u"&&(console.warn("[intlify] "+A),e&&console.warn(e.stack))}const no=typeof window<"u",Vt=(A,e=!1)=>e?Symbol.for(A):Symbol(A),mc=(A,e,t)=>yc({l:A,k:e,s:t}),yc=A=>JSON.stringify(A).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ee=A=>typeof A=="number"&&isFinite(A),wc=A=>sC(A)==="[object Date]",Pt=A=>sC(A)==="[object RegExp]",vo=A=>vA(A)&&Object.keys(A).length===0,Be=Object.assign,Dc=Object.create,YA=(A=null)=>Dc(A);let Is;const ft=()=>Is||(Is=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:YA());function Cs(A){return A.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function ls(A){return A.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function kc(A){return A=A.replace(/(\w+)\s*=\s*"([^"]*)"/g,(i,n,o)=>`${n}="${ls(o)}"`),A=A.replace(/(\w+)\s*=\s*'([^']*)'/g,(i,n,o)=>`${n}='${ls(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(A)&&(A=A.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(i=>{A=A.replace(i,"$1javascript:")}),A}const vc=Object.prototype.hasOwnProperty;function He(A,e){return vc.call(A,e)}const qA=Array.isArray,VA=A=>typeof A=="function",rA=A=>typeof A=="string",RA=A=>typeof A=="boolean",UA=A=>A!==null&&typeof A=="object",Fc=A=>UA(A)&&VA(A.then)&&VA(A.catch),gC=Object.prototype.toString,sC=A=>gC.call(A),vA=A=>{if(!UA(A))return!1;const e=Object.getPrototypeOf(A);return e===null||e.constructor===Object},Sc=A=>A==null?"":qA(A)||vA(A)&&A.toString===gC?JSON.stringify(A,null,2):String(A);function bc(A,e=""){return A.reduce((t,i,n)=>n===0?t+i:t+e+i,"")}function Fo(A){let e=A;return()=>++e}const Sn=A=>!UA(A)||qA(A);function Kn(A,e){if(Sn(A)||Sn(e))throw new Error("Invalid value");const t=[{src:A,des:e}];for(;t.length;){const{src:i,des:n}=t.pop();Object.keys(i).forEach(o=>{o!=="__proto__"&&(UA(i[o])&&!UA(n[o])&&(n[o]=Array.isArray(i[o])?[]:YA()),Sn(n[o])||Sn(i[o])?n[o]=i[o]:t.push({src:i[o],des:n[o]}))})}}/*!
|
||
* message-compiler v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function Rc(A,e,t){return{line:A,column:e,offset:t}}function oo(A,e,t){return{start:A,end:e}}const Nc=/\{([0-9a-zA-Z]+)\}/g;function aC(A,...e){return e.length===1&&Gc(e[0])&&(e=e[0]),(!e||!e.hasOwnProperty)&&(e={}),A.replace(Nc,(t,i)=>e.hasOwnProperty(i)?e[i]:"")}const IC=Object.assign,Bs=A=>typeof A=="string",Gc=A=>A!==null&&typeof A=="object";function CC(A,e=""){return A.reduce((t,i,n)=>n===0?t+i:t+e+i,"")}const gg={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Lc={[gg.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Uc(A,e,...t){const i=aC(Lc[A],...t||[]),n={message:String(i),code:A};return e&&(n.location=e),n}const pA={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,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Mc={[pA.EXPECTED_TOKEN]:"Expected token: '{0}'",[pA.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[pA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[pA.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[pA.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[pA.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[pA.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[pA.EMPTY_PLACEHOLDER]:"Empty placeholder",[pA.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[pA.INVALID_LINKED_FORMAT]:"Invalid linked format",[pA.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[pA.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[pA.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[pA.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[pA.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[pA.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Li(A,e,t={}){const{domain:i,messages:n,args:o}=t,r=aC((n||Mc)[A]||"",...o||[]),g=new SyntaxError(String(r));return g.code=A,e&&(g.location=e),g.domain=i,g}function xc(A){throw A}const Bt=" ",Jc="\r",de=`
|
||
`,Tc="\u2028",Hc="\u2029";function Yc(A){const e=A;let t=0,i=1,n=1,o=0;const r=N=>e[N]===Jc&&e[N+1]===de,g=N=>e[N]===de,s=N=>e[N]===Hc,a=N=>e[N]===Tc,I=N=>r(N)||g(N)||s(N)||a(N),l=()=>t,C=()=>i,Q=()=>n,E=()=>o,f=N=>r(N)||s(N)||a(N)?de:e[N],h=()=>f(t),u=()=>f(t+o);function p(){return o=0,I(t)&&(i++,n=0),r(t)&&t++,t++,n++,e[t]}function c(){return r(t+o)&&o++,o++,e[t+o]}function d(){t=0,i=1,n=1,o=0}function w(N=0){o=N}function F(){const N=t+o;for(;N!==t;)p();o=0}return{index:l,line:C,column:Q,peekOffset:E,charAt:f,currentChar:h,currentPeek:u,next:p,peek:c,reset:d,resetPeek:w,skipToPeek:F}}const bt=void 0,_c=".",Qs="'",Kc="tokenizer";function Pc(A,e={}){const t=e.location!==!1,i=Yc(A),n=()=>i.index(),o=()=>Rc(i.line(),i.column(),i.index()),r=o(),g=n(),s={currentType:14,offset:g,startLoc:r,endLoc:r,lastType:14,lastOffset:g,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},a=()=>s,{onError:I}=e;function l(m,y,x,...K){const nA=a();if(y.column+=x,y.offset+=x,I){const z=t?oo(nA.startLoc,y):null,U=Li(m,z,{domain:Kc,args:K});I(U)}}function C(m,y,x){m.endLoc=o(),m.currentType=y;const K={type:y};return t&&(K.loc=oo(m.startLoc,m.endLoc)),x!=null&&(K.value=x),K}const Q=m=>C(m,14);function E(m,y){return m.currentChar()===y?(m.next(),y):(l(pA.EXPECTED_TOKEN,o(),0,y),"")}function f(m){let y="";for(;m.currentPeek()===Bt||m.currentPeek()===de;)y+=m.currentPeek(),m.peek();return y}function h(m){const y=f(m);return m.skipToPeek(),y}function u(m){if(m===bt)return!1;const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y===95}function p(m){if(m===bt)return!1;const y=m.charCodeAt(0);return y>=48&&y<=57}function c(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=u(m.currentPeek());return m.resetPeek(),K}function d(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=m.currentPeek()==="-"?m.peek():m.currentPeek(),nA=p(K);return m.resetPeek(),nA}function w(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=m.currentPeek()===Qs;return m.resetPeek(),K}function F(m,y){const{currentType:x}=y;if(x!==8)return!1;f(m);const K=m.currentPeek()===".";return m.resetPeek(),K}function N(m,y){const{currentType:x}=y;if(x!==9)return!1;f(m);const K=u(m.currentPeek());return m.resetPeek(),K}function G(m,y){const{currentType:x}=y;if(!(x===8||x===12))return!1;f(m);const K=m.currentPeek()===":";return m.resetPeek(),K}function P(m,y){const{currentType:x}=y;if(x!==10)return!1;const K=()=>{const z=m.currentPeek();return z==="{"?u(m.peek()):z==="@"||z==="%"||z==="|"||z===":"||z==="."||z===Bt||!z?!1:z===de?(m.peek(),K()):L(m,!1)},nA=K();return m.resetPeek(),nA}function b(m){f(m);const y=m.currentPeek()==="|";return m.resetPeek(),y}function R(m){const y=f(m),x=m.currentPeek()==="%"&&m.peek()==="{";return m.resetPeek(),{isModulo:x,hasSpace:y.length>0}}function L(m,y=!0){const x=(nA=!1,z="",U=!1)=>{const O=m.currentPeek();return O==="{"?z==="%"?!1:nA:O==="@"||!O?z==="%"?!0:nA:O==="%"?(m.peek(),x(nA,"%",!0)):O==="|"?z==="%"||U?!0:!(z===Bt||z===de):O===Bt?(m.peek(),x(!0,Bt,U)):O===de?(m.peek(),x(!0,de,U)):!0},K=x();return y&&m.resetPeek(),K}function cA(m,y){const x=m.currentChar();return x===bt?bt:y(x)?(m.next(),x):null}function dA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36}function CA(m){return cA(m,dA)}function iA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36||y===45}function X(m){return cA(m,iA)}function eA(m){const y=m.charCodeAt(0);return y>=48&&y<=57}function fA(m){return cA(m,eA)}function DA(m){const y=m.charCodeAt(0);return y>=48&&y<=57||y>=65&&y<=70||y>=97&&y<=102}function Y(m){return cA(m,DA)}function q(m){let y="",x="";for(;y=fA(m);)x+=y;return x}function gA(m){h(m);const y=m.currentChar();return y!=="%"&&l(pA.EXPECTED_TOKEN,o(),0,y),m.next(),"%"}function FA(m){let y="";for(;;){const x=m.currentChar();if(x==="{"||x==="}"||x==="@"||x==="|"||!x)break;if(x==="%")if(L(m))y+=x,m.next();else break;else if(x===Bt||x===de)if(L(m))y+=x,m.next();else{if(b(m))break;y+=x,m.next()}else y+=x,m.next()}return y}function LA(m){h(m);let y="",x="";for(;y=X(m);)x+=y;return m.currentChar()===bt&&l(pA.UNTERMINATED_CLOSING_BRACE,o(),0),x}function TA(m){h(m);let y="";return m.currentChar()==="-"?(m.next(),y+=`-${q(m)}`):y+=q(m),m.currentChar()===bt&&l(pA.UNTERMINATED_CLOSING_BRACE,o(),0),y}function M(m){return m!==Qs&&m!==de}function Z(m){h(m),E(m,"'");let y="",x="";for(;y=cA(m,M);)y==="\\"?x+=$(m):x+=y;const K=m.currentChar();return K===de||K===bt?(l(pA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),K===de&&(m.next(),E(m,"'")),x):(E(m,"'"),x)}function $(m){const y=m.currentChar();switch(y){case"\\":case"'":return m.next(),`\\${y}`;case"u":return IA(m,y,4);case"U":return IA(m,y,6);default:return l(pA.UNKNOWN_ESCAPE_SEQUENCE,o(),0,y),""}}function IA(m,y,x){E(m,y);let K="";for(let nA=0;nA<x;nA++){const z=Y(m);if(!z){l(pA.INVALID_UNICODE_ESCAPE_SEQUENCE,o(),0,`\\${y}${K}${m.currentChar()}`);break}K+=z}return`\\${y}${K}`}function bA(m){return m!=="{"&&m!=="}"&&m!==Bt&&m!==de}function D(m){h(m);let y="",x="";for(;y=cA(m,bA);)x+=y;return x}function S(m){let y="",x="";for(;y=CA(m);)x+=y;return x}function k(m){const y=x=>{const K=m.currentChar();return K==="{"||K==="%"||K==="@"||K==="|"||K==="("||K===")"||!K||K===Bt?x:(x+=K,m.next(),y(x))};return y("")}function J(m){h(m);const y=E(m,"|");return h(m),y}function W(m,y){let x=null;switch(m.currentChar()){case"{":return y.braceNest>=1&&l(pA.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),m.next(),x=C(y,2,"{"),h(m),y.braceNest++,x;case"}":return y.braceNest>0&&y.currentType===2&&l(pA.EMPTY_PLACEHOLDER,o(),0),m.next(),x=C(y,3,"}"),y.braceNest--,y.braceNest>0&&h(m),y.inLinked&&y.braceNest===0&&(y.inLinked=!1),x;case"@":return y.braceNest>0&&l(pA.UNTERMINATED_CLOSING_BRACE,o(),0),x=V(m,y)||Q(y),y.braceNest=0,x;default:{let nA=!0,z=!0,U=!0;if(b(m))return y.braceNest>0&&l(pA.UNTERMINATED_CLOSING_BRACE,o(),0),x=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,x;if(y.braceNest>0&&(y.currentType===5||y.currentType===6||y.currentType===7))return l(pA.UNTERMINATED_CLOSING_BRACE,o(),0),y.braceNest=0,tA(m,y);if(nA=c(m,y))return x=C(y,5,LA(m)),h(m),x;if(z=d(m,y))return x=C(y,6,TA(m)),h(m),x;if(U=w(m,y))return x=C(y,7,Z(m)),h(m),x;if(!nA&&!z&&!U)return x=C(y,13,D(m)),l(pA.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,x.value),h(m),x;break}}return x}function V(m,y){const{currentType:x}=y;let K=null;const nA=m.currentChar();switch((x===8||x===9||x===12||x===10)&&(nA===de||nA===Bt)&&l(pA.INVALID_LINKED_FORMAT,o(),0),nA){case"@":return m.next(),K=C(y,8,"@"),y.inLinked=!0,K;case".":return h(m),m.next(),C(y,9,".");case":":return h(m),m.next(),C(y,10,":");default:return b(m)?(K=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,K):F(m,y)||G(m,y)?(h(m),V(m,y)):N(m,y)?(h(m),C(y,12,S(m))):P(m,y)?(h(m),nA==="{"?W(m,y)||K:C(y,11,k(m))):(x===8&&l(pA.INVALID_LINKED_FORMAT,o(),0),y.braceNest=0,y.inLinked=!1,tA(m,y))}}function tA(m,y){let x={type:14};if(y.braceNest>0)return W(m,y)||Q(y);if(y.inLinked)return V(m,y)||Q(y);switch(m.currentChar()){case"{":return W(m,y)||Q(y);case"}":return l(pA.UNBALANCED_CLOSING_BRACE,o(),0),m.next(),C(y,3,"}");case"@":return V(m,y)||Q(y);default:{if(b(m))return x=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,x;const{isModulo:nA,hasSpace:z}=R(m);if(nA)return z?C(y,0,FA(m)):C(y,4,gA(m));if(L(m))return C(y,0,FA(m));break}}return x}function AA(){const{currentType:m,offset:y,startLoc:x,endLoc:K}=s;return s.lastType=m,s.lastOffset=y,s.lastStartLoc=x,s.lastEndLoc=K,s.offset=n(),s.startLoc=o(),i.currentChar()===bt?C(s,14):tA(i,s)}return{nextToken:AA,currentOffset:n,currentPosition:o,context:a}}const Oc="parser",Vc=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Wc(A,e,t){switch(A){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||t,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function qc(A={}){const e=A.location!==!1,{onError:t,onWarn:i}=A;function n(c,d,w,F,...N){const G=c.currentPosition();if(G.offset+=F,G.column+=F,t){const P=e?oo(w,G):null,b=Li(d,P,{domain:Oc,args:N});t(b)}}function o(c,d,w,F,...N){const G=c.currentPosition();if(G.offset+=F,G.column+=F,i){const P=e?oo(w,G):null;i(Uc(d,P,N))}}function r(c,d,w){const F={type:c};return e&&(F.start=d,F.end=d,F.loc={start:w,end:w}),F}function g(c,d,w,F){e&&(c.end=d,c.loc&&(c.loc.end=w))}function s(c,d){const w=c.context(),F=r(3,w.offset,w.startLoc);return F.value=d,g(F,c.currentOffset(),c.currentPosition()),F}function a(c,d){const w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(5,F,N);return G.index=parseInt(d,10),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function I(c,d,w){const F=c.context(),{lastOffset:N,lastStartLoc:G}=F,P=r(4,N,G);return P.key=d,w===!0&&(P.modulo=!0),c.nextToken(),g(P,c.currentOffset(),c.currentPosition()),P}function l(c,d){const w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(9,F,N);return G.value=d.replace(Vc,Wc),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function C(c){const d=c.nextToken(),w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(8,F,N);return d.type!==12?(n(c,pA.UNEXPECTED_EMPTY_LINKED_MODIFIER,w.lastStartLoc,0),G.value="",g(G,F,N),{nextConsumeToken:d,node:G}):(d.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Te(d)),G.value=d.value||"",g(G,c.currentOffset(),c.currentPosition()),{node:G})}function Q(c,d){const w=c.context(),F=r(7,w.offset,w.startLoc);return F.value=d,g(F,c.currentOffset(),c.currentPosition()),F}function E(c){const d=c.context(),w=r(6,d.offset,d.startLoc);let F=c.nextToken();if(F.type===9){const N=C(c);w.modifier=N.node,F=N.nextConsumeToken||c.nextToken()}switch(F.type!==10&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(F)),F=c.nextToken(),F.type===2&&(F=c.nextToken()),F.type){case 11:F.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(F)),w.key=Q(c,F.value||"");break;case 5:F.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(F)),w.key=I(c,F.value||"");break;case 6:F.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(F)),w.key=a(c,F.value||"");break;case 7:F.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(F)),w.key=l(c,F.value||"");break;default:{n(c,pA.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const N=c.context(),G=r(7,N.offset,N.startLoc);return G.value="",g(G,N.offset,N.startLoc),w.key=G,g(w,N.offset,N.startLoc),{nextConsumeToken:F,node:w}}}return g(w,c.currentOffset(),c.currentPosition()),{node:w}}function f(c){const d=c.context(),w=d.currentType===1?c.currentOffset():d.offset,F=d.currentType===1?d.endLoc:d.startLoc,N=r(2,w,F);N.items=[];let G=null,P=null;do{const L=G||c.nextToken();switch(G=null,L.type){case 0:L.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(s(c,L.value||""));break;case 6:L.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(a(c,L.value||""));break;case 4:P=!0;break;case 5:L.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(I(c,L.value||"",!!P)),P&&(o(c,gg.USE_MODULO_SYNTAX,d.lastStartLoc,0,Te(L)),P=null);break;case 7:L.value==null&&n(c,pA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Te(L)),N.items.push(l(c,L.value||""));break;case 8:{const cA=E(c);N.items.push(cA.node),G=cA.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const b=d.currentType===1?d.lastOffset:c.currentOffset(),R=d.currentType===1?d.lastEndLoc:c.currentPosition();return g(N,b,R),N}function h(c,d,w,F){const N=c.context();let G=F.items.length===0;const P=r(1,d,w);P.cases=[],P.cases.push(F);do{const b=f(c);G||(G=b.items.length===0),P.cases.push(b)}while(N.currentType!==14);return G&&n(c,pA.MUST_HAVE_MESSAGES_IN_PLURAL,w,0),g(P,c.currentOffset(),c.currentPosition()),P}function u(c){const d=c.context(),{offset:w,startLoc:F}=d,N=f(c);return d.currentType===14?N:h(c,w,F,N)}function p(c){const d=Pc(c,IC({},A)),w=d.context(),F=r(0,w.offset,w.startLoc);return e&&F.loc&&(F.loc.source=c),F.body=u(d),A.onCacheKey&&(F.cacheKey=A.onCacheKey(c)),w.currentType!==14&&n(d,pA.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,c[w.offset]||""),g(F,d.currentOffset(),d.currentPosition()),F}return{parse:p}}function Te(A){if(A.type===14)return"EOF";const e=(A.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function jc(A,e={}){const t={ast:A,helpers:new Set};return{context:()=>t,helper:o=>(t.helpers.add(o),o)}}function cs(A,e){for(let t=0;t<A.length;t++)sg(A[t],e)}function sg(A,e){switch(A.type){case 1:cs(A.cases,e),e.helper("plural");break;case 2:cs(A.items,e);break;case 6:{sg(A.key,e),e.helper("linked"),e.helper("type");break}case 5:e.helper("interpolate"),e.helper("list");break;case 4:e.helper("interpolate"),e.helper("named");break}}function Zc(A,e={}){const t=jc(A);t.helper("normalize"),A.body&&sg(A.body,t);const i=t.context();A.helpers=Array.from(i.helpers)}function Xc(A){const e=A.body;return e.type===2?Es(e):e.cases.forEach(t=>Es(t)),A}function Es(A){if(A.items.length===1){const e=A.items[0];(e.type===3||e.type===9)&&(A.static=e.value,delete e.value)}else{const e=[];for(let t=0;t<A.items.length;t++){const i=A.items[t];if(!(i.type===3||i.type===9)||i.value==null)break;e.push(i.value)}if(e.length===A.items.length){A.static=CC(e);for(let t=0;t<A.items.length;t++){const i=A.items[t];(i.type===3||i.type===9)&&delete i.value}}}}const zc="minifier";function ci(A){switch(A.t=A.type,A.type){case 0:{const e=A;ci(e.body),e.b=e.body,delete e.body;break}case 1:{const e=A,t=e.cases;for(let i=0;i<t.length;i++)ci(t[i]);e.c=t,delete e.cases;break}case 2:{const e=A,t=e.items;for(let i=0;i<t.length;i++)ci(t[i]);e.i=t,delete e.items,e.static&&(e.s=e.static,delete e.static);break}case 3:case 9:case 8:case 7:{const e=A;e.value&&(e.v=e.value,delete e.value);break}case 6:{const e=A;ci(e.key),e.k=e.key,delete e.key,e.modifier&&(ci(e.modifier),e.m=e.modifier,delete e.modifier);break}case 5:{const e=A;e.i=e.index,delete e.index;break}case 4:{const e=A;e.k=e.key,delete e.key;break}default:throw Li(pA.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:zc,args:[A.type]})}delete A.type}const $c="parser";function AE(A,e){const{filename:t,breakLineCode:i,needIndent:n}=e,o=e.location!==!1,r={filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:i,needIndent:n,indentLevel:0};o&&A.loc&&(r.source=A.loc.source);const g=()=>r;function s(f,h){r.code+=f}function a(f,h=!0){const u=h?i:"";s(n?u+" ".repeat(f):u)}function I(f=!0){const h=++r.indentLevel;f&&a(h)}function l(f=!0){const h=--r.indentLevel;f&&a(h)}function C(){a(r.indentLevel)}return{context:g,push:s,indent:I,deindent:l,newline:C,helper:f=>`_${f}`,needIndent:()=>r.needIndent}}function eE(A,e){const{helper:t}=A;A.push(`${t("linked")}(`),Fi(A,e.key),e.modifier?(A.push(", "),Fi(A,e.modifier),A.push(", _type")):A.push(", undefined, _type"),A.push(")")}function tE(A,e){const{helper:t,needIndent:i}=A;A.push(`${t("normalize")}([`),A.indent(i());const n=e.items.length;for(let o=0;o<n&&(Fi(A,e.items[o]),o!==n-1);o++)A.push(", ");A.deindent(i()),A.push("])")}function iE(A,e){const{helper:t,needIndent:i}=A;if(e.cases.length>1){A.push(`${t("plural")}([`),A.indent(i());const n=e.cases.length;for(let o=0;o<n&&(Fi(A,e.cases[o]),o!==n-1);o++)A.push(", ");A.deindent(i()),A.push("])")}}function nE(A,e){e.body?Fi(A,e.body):A.push("null")}function Fi(A,e){const{helper:t}=A;switch(e.type){case 0:nE(A,e);break;case 1:iE(A,e);break;case 2:tE(A,e);break;case 6:eE(A,e);break;case 8:A.push(JSON.stringify(e.value),e);break;case 7:A.push(JSON.stringify(e.value),e);break;case 5:A.push(`${t("interpolate")}(${t("list")}(${e.index}))`,e);break;case 4:A.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(e.key)}))`,e);break;case 9:A.push(JSON.stringify(e.value),e);break;case 3:A.push(JSON.stringify(e.value),e);break;default:throw Li(pA.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:$c,args:[e.type]})}}const oE=(A,e={})=>{const t=Bs(e.mode)?e.mode:"normal",i=Bs(e.filename)?e.filename:"message.intl";e.sourceMap;const n=e.breakLineCode!=null?e.breakLineCode:t==="arrow"?";":`
|
||
`,o=e.needIndent?e.needIndent:t!=="arrow",r=A.helpers||[],g=AE(A,{filename:i,breakLineCode:n,needIndent:o});g.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),g.indent(o),r.length>0&&(g.push(`const { ${CC(r.map(I=>`${I}: _${I}`),", ")} } = ctx`),g.newline()),g.push("return "),Fi(g,A),g.deindent(o),g.push("}"),delete A.helpers;const{code:s,map:a}=g.context();return{ast:A,code:s,map:a?a.toJSON():void 0}};function rE(A,e={}){const t=IC({},e),i=!!t.jit,n=!!t.minify,o=t.optimize==null?!0:t.optimize,g=qc(t).parse(A);return i?(o&&Xc(g),n&&ci(g),{ast:g,code:""}):(Zc(g,t),oE(g,t))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function gE(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ft().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ft().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ft().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function st(A){return UA(A)&&ag(A)===0&&(He(A,"b")||He(A,"body"))}const lC=["b","body"];function sE(A){return Wt(A,lC)}const BC=["c","cases"];function aE(A){return Wt(A,BC,[])}const QC=["s","static"];function IE(A){return Wt(A,QC)}const cC=["i","items"];function CE(A){return Wt(A,cC,[])}const EC=["t","type"];function ag(A){return Wt(A,EC)}const uC=["v","value"];function bn(A,e){const t=Wt(A,uC);if(t!=null)return t;throw rn(e)}const hC=["m","modifier"];function lE(A){return Wt(A,hC)}const fC=["k","key"];function BE(A){const e=Wt(A,fC);if(e)return e;throw rn(6)}function Wt(A,e,t){for(let i=0;i<e.length;i++){const n=e[i];if(He(A,n)&&A[n]!=null)return A[n]}return t}const dC=[...lC,...BC,...QC,...cC,...fC,...hC,...uC,...EC];function rn(A){return new Error(`unhandled node type: ${A}`)}const qt=[];qt[0]={w:[0],i:[3,0],"[":[4],o:[7]};qt[1]={w:[1],".":[2],"[":[4],o:[7]};qt[2]={w:[2],i:[3,0],0:[3,0]};qt[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};qt[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};qt[5]={"'":[4,0],o:8,l:[5,0]};qt[6]={'"':[4,0],o:8,l:[6,0]};const QE=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function cE(A){return QE.test(A)}function EE(A){const e=A.charCodeAt(0),t=A.charCodeAt(A.length-1);return e===t&&(e===34||e===39)?A.slice(1,-1):A}function uE(A){if(A==null)return"o";switch(A.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return A;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function hE(A){const e=A.trim();return A.charAt(0)==="0"&&isNaN(parseInt(A))?!1:cE(e)?EE(e):"*"+e}function fE(A){const e=[];let t=-1,i=0,n=0,o,r,g,s,a,I,l;const C=[];C[0]=()=>{r===void 0?r=g:r+=g},C[1]=()=>{r!==void 0&&(e.push(r),r=void 0)},C[2]=()=>{C[0](),n++},C[3]=()=>{if(n>0)n--,i=4,C[0]();else{if(n=0,r===void 0||(r=hE(r),r===!1))return!1;C[1]()}};function Q(){const E=A[t+1];if(i===5&&E==="'"||i===6&&E==='"')return t++,g="\\"+E,C[0](),!0}for(;i!==null;)if(t++,o=A[t],!(o==="\\"&&Q())){if(s=uE(o),l=qt[i],a=l[s]||l.l||8,a===8||(i=a[0],a[1]!==void 0&&(I=C[a[1]],I&&(g=o,I()===!1))))return;if(i===7)return e}}const us=new Map;function dE(A,e){return UA(A)?A[e]:null}function pE(A,e){if(!UA(A))return null;let t=us.get(e);if(t||(t=fE(e),t&&us.set(e,t)),!t)return null;const i=t.length;let n=A,o=0;for(;o<i;){const r=t[o];if(dC.includes(r)&&st(n))return null;const g=n[r];if(g===void 0||VA(n))return null;n=g,o++}return n}const mE=A=>A,yE=A=>"",wE="text",DE=A=>A.length===0?"":bc(A),kE=Sc;function hs(A,e){return A=Math.abs(A),e===2?A?A>1?1:0:1:A?Math.min(A,2):0}function vE(A){const e=ee(A.pluralIndex)?A.pluralIndex:-1;return A.named&&(ee(A.named.count)||ee(A.named.n))?ee(A.named.count)?A.named.count:ee(A.named.n)?A.named.n:e:e}function FE(A,e){e.count||(e.count=A),e.n||(e.n=A)}function SE(A={}){const e=A.locale,t=vE(A),i=UA(A.pluralRules)&&rA(e)&&VA(A.pluralRules[e])?A.pluralRules[e]:hs,n=UA(A.pluralRules)&&rA(e)&&VA(A.pluralRules[e])?hs:void 0,o=u=>u[i(t,u.length,n)],r=A.list||[],g=u=>r[u],s=A.named||YA();ee(A.pluralIndex)&&FE(t,s);const a=u=>s[u];function I(u){const p=VA(A.messages)?A.messages(u):UA(A.messages)?A.messages[u]:!1;return p||(A.parent?A.parent.message(u):yE)}const l=u=>A.modifiers?A.modifiers[u]:mE,C=vA(A.processor)&&VA(A.processor.normalize)?A.processor.normalize:DE,Q=vA(A.processor)&&VA(A.processor.interpolate)?A.processor.interpolate:kE,E=vA(A.processor)&&rA(A.processor.type)?A.processor.type:wE,h={list:g,named:a,plural:o,linked:(u,...p)=>{const[c,d]=p;let w="text",F="";p.length===1?UA(c)?(F=c.modifier||F,w=c.type||w):rA(c)&&(F=c||F):p.length===2&&(rA(c)&&(F=c||F),rA(d)&&(w=d||w));const N=I(u)(h),G=w==="vnode"&&qA(N)&&F?N[0]:N;return F?l(F)(G,w):G},message:I,type:E,interpolate:Q,normalize:C,values:Be(YA(),r,s)};return h}let gn=null;function bE(A){gn=A}function RE(A,e,t){gn&&gn.emit("i18n:init",{timestamp:Date.now(),i18n:A,version:e,meta:t})}const NE=GE("function:translate");function GE(A){return e=>gn&&gn.emit(A,e)}const LE=gg.__EXTEND_POINT__,zt=Fo(LE),UE={FALLBACK_TO_TRANSLATE:zt(),CANNOT_FORMAT_NUMBER:zt(),FALLBACK_TO_NUMBER_FORMAT:zt(),CANNOT_FORMAT_DATE:zt(),FALLBACK_TO_DATE_FORMAT:zt(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:zt(),__EXTEND_POINT__:zt()},pC=pA.__EXTEND_POINT__,$t=Fo(pC),Ye={INVALID_ARGUMENT:pC,INVALID_DATE_ARGUMENT:$t(),INVALID_ISO_DATE_ARGUMENT:$t(),NOT_SUPPORT_NON_STRING_MESSAGE:$t(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:$t(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:$t(),NOT_SUPPORT_LOCALE_TYPE:$t(),__EXTEND_POINT__:$t()};function it(A){return Li(A,null,void 0)}function Ig(A,e){return e.locale!=null?fs(e.locale):fs(A.locale)}let Vo;function fs(A){if(rA(A))return A;if(VA(A)){if(A.resolvedOnce&&Vo!=null)return Vo;if(A.constructor.name==="Function"){const e=A();if(Fc(e))throw it(Ye.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Vo=e}else throw it(Ye.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw it(Ye.NOT_SUPPORT_LOCALE_TYPE)}function ME(A,e,t){return[...new Set([t,...qA(e)?e:UA(e)?Object.keys(e):rA(e)?[e]:[t]])]}function mC(A,e,t){const i=rA(t)?t:Si,n=A;n.__localeChainCache||(n.__localeChainCache=new Map);let o=n.__localeChainCache.get(i);if(!o){o=[];let r=[t];for(;qA(r);)r=ds(o,r,e);const g=qA(e)||!vA(e)?e:e.default?e.default:null;r=rA(g)?[g]:g,qA(r)&&ds(o,r,!1),n.__localeChainCache.set(i,o)}return o}function ds(A,e,t){let i=!0;for(let n=0;n<e.length&&RA(i);n++){const o=e[n];rA(o)&&(i=xE(A,e[n],t))}return i}function xE(A,e,t){let i;const n=e.split("-");do{const o=n.join("-");i=JE(A,o,t),n.splice(-1,1)}while(n.length&&i===!0);return i}function JE(A,e,t){let i=!1;if(!A.includes(e)&&(i=!0,e)){i=e[e.length-1]!=="!";const n=e.replace(/!/g,"");A.push(n),(qA(t)||vA(t))&&t[n]&&(i=t[n])}return i}const TE="9.14.5",So=-1,Si="en-US",ps="",ms=A=>`${A.charAt(0).toLocaleUpperCase()}${A.substr(1)}`;function HE(){return{upper:(A,e)=>e==="text"&&rA(A)?A.toUpperCase():e==="vnode"&&UA(A)&&"__v_isVNode"in A?A.children.toUpperCase():A,lower:(A,e)=>e==="text"&&rA(A)?A.toLowerCase():e==="vnode"&&UA(A)&&"__v_isVNode"in A?A.children.toLowerCase():A,capitalize:(A,e)=>e==="text"&&rA(A)?ms(A):e==="vnode"&&UA(A)&&"__v_isVNode"in A?ms(A.children):A}}let yC;function ys(A){yC=A}let wC;function YE(A){wC=A}let DC;function _E(A){DC=A}let kC=null;const KE=A=>{kC=A},PE=()=>kC;let vC=null;const ws=A=>{vC=A},OE=()=>vC;let Ds=0;function VE(A={}){const e=VA(A.onWarn)?A.onWarn:pc,t=rA(A.version)?A.version:TE,i=rA(A.locale)||VA(A.locale)?A.locale:Si,n=VA(i)?Si:i,o=qA(A.fallbackLocale)||vA(A.fallbackLocale)||rA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:n,r=vA(A.messages)?A.messages:Wo(n),g=vA(A.datetimeFormats)?A.datetimeFormats:Wo(n),s=vA(A.numberFormats)?A.numberFormats:Wo(n),a=Be(YA(),A.modifiers,HE()),I=A.pluralRules||YA(),l=VA(A.missing)?A.missing:null,C=RA(A.missingWarn)||Pt(A.missingWarn)?A.missingWarn:!0,Q=RA(A.fallbackWarn)||Pt(A.fallbackWarn)?A.fallbackWarn:!0,E=!!A.fallbackFormat,f=!!A.unresolving,h=VA(A.postTranslation)?A.postTranslation:null,u=vA(A.processor)?A.processor:null,p=RA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,c=!!A.escapeParameter,d=VA(A.messageCompiler)?A.messageCompiler:yC,w=VA(A.messageResolver)?A.messageResolver:wC||dE,F=VA(A.localeFallbacker)?A.localeFallbacker:DC||ME,N=UA(A.fallbackContext)?A.fallbackContext:void 0,G=A,P=UA(G.__datetimeFormatters)?G.__datetimeFormatters:new Map,b=UA(G.__numberFormatters)?G.__numberFormatters:new Map,R=UA(G.__meta)?G.__meta:{};Ds++;const L={version:t,cid:Ds,locale:i,fallbackLocale:o,messages:r,modifiers:a,pluralRules:I,missing:l,missingWarn:C,fallbackWarn:Q,fallbackFormat:E,unresolving:f,postTranslation:h,processor:u,warnHtmlMessage:p,escapeParameter:c,messageCompiler:d,messageResolver:w,localeFallbacker:F,fallbackContext:N,onWarn:e,__meta:R};return L.datetimeFormats=g,L.numberFormats=s,L.__datetimeFormatters=P,L.__numberFormatters=b,__INTLIFY_PROD_DEVTOOLS__&&RE(L,t,R),L}const Wo=A=>({[A]:YA()});function Cg(A,e,t,i,n){const{missing:o,onWarn:r}=A;if(o!==null){const g=o(A,t,e,n);return rA(g)?g:e}else return e}function Ti(A,e,t){const i=A;i.__localeChainCache=new Map,A.localeFallbacker(A,t,e)}function WE(A,e){return A===e?!1:A.split("-")[0]===e.split("-")[0]}function qE(A,e){const t=e.indexOf(A);if(t===-1)return!1;for(let i=t+1;i<e.length;i++)if(WE(A,e[i]))return!0;return!1}function qo(A){return t=>jE(t,A)}function jE(A,e){const t=sE(e);if(t==null)throw rn(0);if(ag(t)===1){const o=aE(t);return A.plural(o.reduce((r,g)=>[...r,ks(A,g)],[]))}else return ks(A,t)}function ks(A,e){const t=IE(e);if(t!=null)return A.type==="text"?t:A.normalize([t]);{const i=CE(e).reduce((n,o)=>[...n,pr(A,o)],[]);return A.normalize(i)}}function pr(A,e){const t=ag(e);switch(t){case 3:return bn(e,t);case 9:return bn(e,t);case 4:{const i=e;if(He(i,"k")&&i.k)return A.interpolate(A.named(i.k));if(He(i,"key")&&i.key)return A.interpolate(A.named(i.key));throw rn(t)}case 5:{const i=e;if(He(i,"i")&&ee(i.i))return A.interpolate(A.list(i.i));if(He(i,"index")&&ee(i.index))return A.interpolate(A.list(i.index));throw rn(t)}case 6:{const i=e,n=lE(i),o=BE(i);return A.linked(pr(A,o),n?pr(A,n):void 0,A.type)}case 7:return bn(e,t);case 8:return bn(e,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const FC=A=>A;let ui=YA();function SC(A,e={}){let t=!1;const i=e.onError||xc;return e.onError=n=>{t=!0,i(n)},{...rE(A,e),detectError:t}}const ZE=(A,e)=>{if(!rA(A))throw it(Ye.NOT_SUPPORT_NON_STRING_MESSAGE);{RA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||FC)(A),n=ui[i];if(n)return n;const{code:o,detectError:r}=SC(A,e),g=new Function(`return ${o}`)();return r?g:ui[i]=g}};function XE(A,e){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&rA(A)){RA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||FC)(A),n=ui[i];if(n)return n;const{ast:o,detectError:r}=SC(A,{...e,location:!1,jit:!0}),g=qo(o);return r?g:ui[i]=g}else{const t=A.cacheKey;if(t){const i=ui[t];return i||(ui[t]=qo(A))}else return qo(A)}}const vs=()=>"",Me=A=>VA(A);function Fs(A,...e){const{fallbackFormat:t,postTranslation:i,unresolving:n,messageCompiler:o,fallbackLocale:r,messages:g}=A,[s,a]=mr(...e),I=RA(a.missingWarn)?a.missingWarn:A.missingWarn,l=RA(a.fallbackWarn)?a.fallbackWarn:A.fallbackWarn,C=RA(a.escapeParameter)?a.escapeParameter:A.escapeParameter,Q=!!a.resolvedMessage,E=rA(a.default)||RA(a.default)?RA(a.default)?o?s:()=>s:a.default:t?o?s:()=>s:"",f=t||E!=="",h=Ig(A,a);C&&zE(a);let[u,p,c]=Q?[s,h,g[h]||YA()]:bC(A,s,h,r,l,I),d=u,w=s;if(!Q&&!(rA(d)||st(d)||Me(d))&&f&&(d=E,w=d),!Q&&(!(rA(d)||st(d)||Me(d))||!rA(p)))return n?So:s;let F=!1;const N=()=>{F=!0},G=Me(d)?d:RC(A,s,p,d,w,N);if(F)return d;const P=eu(A,p,c,a),b=SE(P),R=$E(A,G,b);let L=i?i(R,s):R;if(C&&rA(L)&&(L=kc(L)),__INTLIFY_PROD_DEVTOOLS__){const cA={timestamp:Date.now(),key:rA(s)?s:Me(d)?d.key:"",locale:p||(Me(d)?d.locale:""),format:rA(d)?d:Me(d)?d.source:"",message:L};cA.meta=Be({},A.__meta,PE()||{}),NE(cA)}return L}function zE(A){qA(A.list)?A.list=A.list.map(e=>rA(e)?Cs(e):e):UA(A.named)&&Object.keys(A.named).forEach(e=>{rA(A.named[e])&&(A.named[e]=Cs(A.named[e]))})}function bC(A,e,t,i,n,o){const{messages:r,onWarn:g,messageResolver:s,localeFallbacker:a}=A,I=a(A,i,t);let l=YA(),C,Q=null;const E="translate";for(let f=0;f<I.length&&(C=I[f],l=r[C]||YA(),(Q=s(l,e))===null&&(Q=l[e]),!(rA(Q)||st(Q)||Me(Q)));f++)if(!qE(C,I)){const h=Cg(A,e,C,o,E);h!==e&&(Q=h)}return[Q,C,l]}function RC(A,e,t,i,n,o){const{messageCompiler:r,warnHtmlMessage:g}=A;if(Me(i)){const a=i;return a.locale=a.locale||t,a.key=a.key||e,a}if(r==null){const a=()=>i;return a.locale=t,a.key=e,a}const s=r(i,Au(A,t,n,i,g,o));return s.locale=t,s.key=e,s.source=i,s}function $E(A,e,t){return e(t)}function mr(...A){const[e,t,i]=A,n=YA();if(!rA(e)&&!ee(e)&&!Me(e)&&!st(e))throw it(Ye.INVALID_ARGUMENT);const o=ee(e)?String(e):(Me(e),e);return ee(t)?n.plural=t:rA(t)?n.default=t:vA(t)&&!vo(t)?n.named=t:qA(t)&&(n.list=t),ee(i)?n.plural=i:rA(i)?n.default=i:vA(i)&&Be(n,i),[o,n]}function Au(A,e,t,i,n,o){return{locale:e,key:t,warnHtmlMessage:n,onError:r=>{throw o&&o(r),r},onCacheKey:r=>mc(e,t,r)}}function eu(A,e,t,i){const{modifiers:n,pluralRules:o,messageResolver:r,fallbackLocale:g,fallbackWarn:s,missingWarn:a,fallbackContext:I}=A,C={locale:e,modifiers:n,pluralRules:o,messages:Q=>{let E=r(t,Q);if(E==null&&I){const[,,f]=bC(I,Q,e,g,s,a);E=r(f,Q)}if(rA(E)||st(E)){let f=!1;const u=RC(A,Q,e,E,Q,()=>{f=!0});return f?vs:u}else return Me(E)?E:vs}};return A.processor&&(C.processor=A.processor),i.list&&(C.list=i.list),i.named&&(C.named=i.named),ee(i.plural)&&(C.pluralIndex=i.plural),C}function Ss(A,...e){const{datetimeFormats:t,unresolving:i,fallbackLocale:n,onWarn:o,localeFallbacker:r}=A,{__datetimeFormatters:g}=A,[s,a,I,l]=yr(...e),C=RA(I.missingWarn)?I.missingWarn:A.missingWarn;RA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,E=Ig(A,I),f=r(A,n,E);if(!rA(s)||s==="")return new Intl.DateTimeFormat(E,l).format(a);let h={},u,p=null;const c="datetime format";for(let F=0;F<f.length&&(u=f[F],h=t[u]||{},p=h[s],!vA(p));F++)Cg(A,s,u,C,c);if(!vA(p)||!rA(u))return i?So:s;let d=`${u}__${s}`;vo(l)||(d=`${d}__${JSON.stringify(l)}`);let w=g.get(d);return w||(w=new Intl.DateTimeFormat(u,Be({},p,l)),g.set(d,w)),Q?w.formatToParts(a):w.format(a)}const NC=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function yr(...A){const[e,t,i,n]=A,o=YA();let r=YA(),g;if(rA(e)){const s=e.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!s)throw it(Ye.INVALID_ISO_DATE_ARGUMENT);const a=s[3]?s[3].trim().startsWith("T")?`${s[1].trim()}${s[3].trim()}`:`${s[1].trim()}T${s[3].trim()}`:s[1].trim();g=new Date(a);try{g.toISOString()}catch{throw it(Ye.INVALID_ISO_DATE_ARGUMENT)}}else if(wc(e)){if(isNaN(e.getTime()))throw it(Ye.INVALID_DATE_ARGUMENT);g=e}else if(ee(e))g=e;else throw it(Ye.INVALID_ARGUMENT);return rA(t)?o.key=t:vA(t)&&Object.keys(t).forEach(s=>{NC.includes(s)?r[s]=t[s]:o[s]=t[s]}),rA(i)?o.locale=i:vA(i)&&(r=i),vA(n)&&(r=n),[o.key||"",g,o,r]}function bs(A,e,t){const i=A;for(const n in t){const o=`${e}__${n}`;i.__datetimeFormatters.has(o)&&i.__datetimeFormatters.delete(o)}}function Rs(A,...e){const{numberFormats:t,unresolving:i,fallbackLocale:n,onWarn:o,localeFallbacker:r}=A,{__numberFormatters:g}=A,[s,a,I,l]=wr(...e),C=RA(I.missingWarn)?I.missingWarn:A.missingWarn;RA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,E=Ig(A,I),f=r(A,n,E);if(!rA(s)||s==="")return new Intl.NumberFormat(E,l).format(a);let h={},u,p=null;const c="number format";for(let F=0;F<f.length&&(u=f[F],h=t[u]||{},p=h[s],!vA(p));F++)Cg(A,s,u,C,c);if(!vA(p)||!rA(u))return i?So:s;let d=`${u}__${s}`;vo(l)||(d=`${d}__${JSON.stringify(l)}`);let w=g.get(d);return w||(w=new Intl.NumberFormat(u,Be({},p,l)),g.set(d,w)),Q?w.formatToParts(a):w.format(a)}const GC=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function wr(...A){const[e,t,i,n]=A,o=YA();let r=YA();if(!ee(e))throw it(Ye.INVALID_ARGUMENT);const g=e;return rA(t)?o.key=t:vA(t)&&Object.keys(t).forEach(s=>{GC.includes(s)?r[s]=t[s]:o[s]=t[s]}),rA(i)?o.locale=i:vA(i)&&(r=i),vA(n)&&(r=n),[o.key||"",g,o,r]}function Ns(A,e,t){const i=A;for(const n in t){const o=`${e}__${n}`;i.__numberFormatters.has(o)&&i.__numberFormatters.delete(o)}}gE();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const tu="9.14.5";function iu(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(ft().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(ft().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ft().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ft().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ft().__INTLIFY_PROD_DEVTOOLS__=!1)}const nu=UE.__EXTEND_POINT__,Qt=Fo(nu);Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt(),Qt();const LC=Ye.__EXTEND_POINT__,we=Fo(LC),re={UNEXPECTED_RETURN_TYPE:LC,INVALID_ARGUMENT:we(),MUST_BE_CALL_SETUP_TOP:we(),NOT_INSTALLED:we(),NOT_AVAILABLE_IN_LEGACY_MODE:we(),REQUIRED_VALUE:we(),INVALID_VALUE:we(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:we(),NOT_INSTALLED_WITH_PROVIDE:we(),UNEXPECTED_ERROR:we(),NOT_COMPATIBLE_LEGACY_VUE_I18N:we(),BRIDGE_SUPPORT_VUE_2_ONLY:we(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:we(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:we(),__EXTEND_POINT__:we()};function Ie(A,...e){return Li(A,null,void 0)}const Dr=Vt("__translateVNode"),kr=Vt("__datetimeParts"),vr=Vt("__numberParts"),UC=Vt("__setPluralRules"),MC=Vt("__injectWithOption"),Fr=Vt("__dispose");function sn(A){if(!UA(A)||st(A))return A;for(const e in A)if(He(A,e))if(!e.includes("."))UA(A[e])&&sn(A[e]);else{const t=e.split("."),i=t.length-1;let n=A,o=!1;for(let r=0;r<i;r++){if(t[r]==="__proto__")throw new Error(`unsafe key: ${t[r]}`);if(t[r]in n||(n[t[r]]=YA()),!UA(n[t[r]])){o=!0;break}n=n[t[r]]}if(o||(st(n)?dC.includes(t[i])||delete A[e]:(n[t[i]]=A[e],delete A[e])),!st(n)){const r=n[t[i]];UA(r)&&sn(r)}}return A}function bo(A,e){const{messages:t,__i18n:i,messageResolver:n,flatJson:o}=e,r=vA(t)?t:qA(i)?YA():{[A]:YA()};if(qA(i)&&i.forEach(g=>{if("locale"in g&&"resource"in g){const{locale:s,resource:a}=g;s?(r[s]=r[s]||YA(),Kn(a,r[s])):Kn(a,r)}else rA(g)&&Kn(JSON.parse(g),r)}),n==null&&o)for(const g in r)He(r,g)&&sn(r[g]);return r}function xC(A){return A.type}function JC(A,e,t){let i=UA(e.messages)?e.messages:YA();"__i18nGlobal"in t&&(i=bo(A.locale.value,{messages:i,__i18n:t.__i18nGlobal}));const n=Object.keys(i);n.length&&n.forEach(o=>{A.mergeLocaleMessage(o,i[o])});{if(UA(e.datetimeFormats)){const o=Object.keys(e.datetimeFormats);o.length&&o.forEach(r=>{A.mergeDateTimeFormat(r,e.datetimeFormats[r])})}if(UA(e.numberFormats)){const o=Object.keys(e.numberFormats);o.length&&o.forEach(r=>{A.mergeNumberFormat(r,e.numberFormats[r])})}}}function Gs(A){return HA(fn,null,A,0)}const Ls="__INTLIFY_META__",Us=()=>[],ou=()=>!1;let Ms=0;function xs(A){return(e,t,i,n)=>A(t,i,vi()||void 0,n)}const ru=()=>{const A=vi();let e=null;return A&&(e=xC(A)[Ls])?{[Ls]:e}:null};function lg(A={},e){const{__root:t,__injectWithOption:i}=A,n=t===void 0,o=A.flatJson,r=no?EA:eg,g=!!A.translateExistCompatible;let s=RA(A.inheritLocale)?A.inheritLocale:!0;const a=r(t&&s?t.locale.value:rA(A.locale)?A.locale:Si),I=r(t&&s?t.fallbackLocale.value:rA(A.fallbackLocale)||qA(A.fallbackLocale)||vA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:a.value),l=r(bo(a.value,A)),C=r(vA(A.datetimeFormats)?A.datetimeFormats:{[a.value]:{}}),Q=r(vA(A.numberFormats)?A.numberFormats:{[a.value]:{}});let E=t?t.missingWarn:RA(A.missingWarn)||Pt(A.missingWarn)?A.missingWarn:!0,f=t?t.fallbackWarn:RA(A.fallbackWarn)||Pt(A.fallbackWarn)?A.fallbackWarn:!0,h=t?t.fallbackRoot:RA(A.fallbackRoot)?A.fallbackRoot:!0,u=!!A.fallbackFormat,p=VA(A.missing)?A.missing:null,c=VA(A.missing)?xs(A.missing):null,d=VA(A.postTranslation)?A.postTranslation:null,w=t?t.warnHtmlMessage:RA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,F=!!A.escapeParameter;const N=t?t.modifiers:vA(A.modifiers)?A.modifiers:{};let G=A.pluralRules||t&&t.pluralRules,P;P=(()=>{n&&ws(null);const U={version:tu,locale:a.value,fallbackLocale:I.value,messages:l.value,modifiers:N,pluralRules:G,missing:c===null?void 0:c,missingWarn:E,fallbackWarn:f,fallbackFormat:u,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:w,escapeParameter:F,messageResolver:A.messageResolver,messageCompiler:A.messageCompiler,__meta:{framework:"vue"}};U.datetimeFormats=C.value,U.numberFormats=Q.value,U.__datetimeFormatters=vA(P)?P.__datetimeFormatters:void 0,U.__numberFormatters=vA(P)?P.__numberFormatters:void 0;const O=VE(U);return n&&ws(O),O})(),Ti(P,a.value,I.value);function R(){return[a.value,I.value,l.value,C.value,Q.value]}const L=hA({get:()=>a.value,set:U=>{a.value=U,P.locale=a.value}}),cA=hA({get:()=>I.value,set:U=>{I.value=U,P.fallbackLocale=I.value,Ti(P,a.value,U)}}),dA=hA(()=>l.value),CA=hA(()=>C.value),iA=hA(()=>Q.value);function X(){return VA(d)?d:null}function eA(U){d=U,P.postTranslation=U}function fA(){return p}function DA(U){U!==null&&(c=xs(U)),p=U,P.missing=c}const Y=(U,O,uA,NA,ZA,he)=>{R();let Ce;try{__INTLIFY_PROD_DEVTOOLS__,n||(P.fallbackContext=t?OE():void 0),Ce=U(P)}finally{__INTLIFY_PROD_DEVTOOLS__,n||(P.fallbackContext=void 0)}if(uA!=="translate exists"&&ee(Ce)&&Ce===So||uA==="translate exists"&&!Ce){const[jt,Mo]=O();return t&&h?NA(t):ZA(jt)}else{if(he(Ce))return Ce;throw Ie(re.UNEXPECTED_RETURN_TYPE)}};function q(...U){return Y(O=>Reflect.apply(Fs,null,[O,...U]),()=>mr(...U),"translate",O=>Reflect.apply(O.t,O,[...U]),O=>O,O=>rA(O))}function gA(...U){const[O,uA,NA]=U;if(NA&&!UA(NA))throw Ie(re.INVALID_ARGUMENT);return q(O,uA,Be({resolvedMessage:!0},NA||{}))}function FA(...U){return Y(O=>Reflect.apply(Ss,null,[O,...U]),()=>yr(...U),"datetime format",O=>Reflect.apply(O.d,O,[...U]),()=>ps,O=>rA(O))}function LA(...U){return Y(O=>Reflect.apply(Rs,null,[O,...U]),()=>wr(...U),"number format",O=>Reflect.apply(O.n,O,[...U]),()=>ps,O=>rA(O))}function TA(U){return U.map(O=>rA(O)||ee(O)||RA(O)?Gs(String(O)):O)}const Z={normalize:TA,interpolate:U=>U,type:"vnode"};function $(...U){return Y(O=>{let uA;const NA=O;try{NA.processor=Z,uA=Reflect.apply(Fs,null,[NA,...U])}finally{NA.processor=null}return uA},()=>mr(...U),"translate",O=>O[Dr](...U),O=>[Gs(O)],O=>qA(O))}function IA(...U){return Y(O=>Reflect.apply(Rs,null,[O,...U]),()=>wr(...U),"number format",O=>O[vr](...U),Us,O=>rA(O)||qA(O))}function bA(...U){return Y(O=>Reflect.apply(Ss,null,[O,...U]),()=>yr(...U),"datetime format",O=>O[kr](...U),Us,O=>rA(O)||qA(O))}function D(U){G=U,P.pluralRules=G}function S(U,O){return Y(()=>{if(!U)return!1;const uA=rA(O)?O:a.value,NA=W(uA),ZA=P.messageResolver(NA,U);return g?ZA!=null:st(ZA)||Me(ZA)||rA(ZA)},()=>[U],"translate exists",uA=>Reflect.apply(uA.te,uA,[U,O]),ou,uA=>RA(uA))}function k(U){let O=null;const uA=mC(P,I.value,a.value);for(let NA=0;NA<uA.length;NA++){const ZA=l.value[uA[NA]]||{},he=P.messageResolver(ZA,U);if(he!=null){O=he;break}}return O}function J(U){const O=k(U);return O??(t?t.tm(U)||{}:{})}function W(U){return l.value[U]||{}}function V(U,O){if(o){const uA={[U]:O};for(const NA in uA)He(uA,NA)&&sn(uA[NA]);O=uA[U]}l.value[U]=O,P.messages=l.value}function tA(U,O){l.value[U]=l.value[U]||{};const uA={[U]:O};if(o)for(const NA in uA)He(uA,NA)&&sn(uA[NA]);O=uA[U],Kn(O,l.value[U]),P.messages=l.value}function AA(U){return C.value[U]||{}}function m(U,O){C.value[U]=O,P.datetimeFormats=C.value,bs(P,U,O)}function y(U,O){C.value[U]=Be(C.value[U]||{},O),P.datetimeFormats=C.value,bs(P,U,O)}function x(U){return Q.value[U]||{}}function K(U,O){Q.value[U]=O,P.numberFormats=Q.value,Ns(P,U,O)}function nA(U,O){Q.value[U]=Be(Q.value[U]||{},O),P.numberFormats=Q.value,Ns(P,U,O)}Ms++,t&&no&&(ae(t.locale,U=>{s&&(a.value=U,P.locale=U,Ti(P,a.value,I.value))}),ae(t.fallbackLocale,U=>{s&&(I.value=U,P.fallbackLocale=U,Ti(P,a.value,I.value))}));const z={id:Ms,locale:L,fallbackLocale:cA,get inheritLocale(){return s},set inheritLocale(U){s=U,U&&t&&(a.value=t.locale.value,I.value=t.fallbackLocale.value,Ti(P,a.value,I.value))},get availableLocales(){return Object.keys(l.value).sort()},messages:dA,get modifiers(){return N},get pluralRules(){return G||{}},get isGlobal(){return n},get missingWarn(){return E},set missingWarn(U){E=U,P.missingWarn=E},get fallbackWarn(){return f},set fallbackWarn(U){f=U,P.fallbackWarn=f},get fallbackRoot(){return h},set fallbackRoot(U){h=U},get fallbackFormat(){return u},set fallbackFormat(U){u=U,P.fallbackFormat=u},get warnHtmlMessage(){return w},set warnHtmlMessage(U){w=U,P.warnHtmlMessage=U},get escapeParameter(){return F},set escapeParameter(U){F=U,P.escapeParameter=U},t:q,getLocaleMessage:W,setLocaleMessage:V,mergeLocaleMessage:tA,getPostTranslationHandler:X,setPostTranslationHandler:eA,getMissingHandler:fA,setMissingHandler:DA,[UC]:D};return z.datetimeFormats=CA,z.numberFormats=iA,z.rt=gA,z.te=S,z.tm=J,z.d=FA,z.n=LA,z.getDateTimeFormat=AA,z.setDateTimeFormat=m,z.mergeDateTimeFormat=y,z.getNumberFormat=x,z.setNumberFormat=K,z.mergeNumberFormat=nA,z[MC]=i,z[Dr]=$,z[kr]=bA,z[vr]=IA,z}function gu(A){const e=rA(A.locale)?A.locale:Si,t=rA(A.fallbackLocale)||qA(A.fallbackLocale)||vA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:e,i=VA(A.missing)?A.missing:void 0,n=RA(A.silentTranslationWarn)||Pt(A.silentTranslationWarn)?!A.silentTranslationWarn:!0,o=RA(A.silentFallbackWarn)||Pt(A.silentFallbackWarn)?!A.silentFallbackWarn:!0,r=RA(A.fallbackRoot)?A.fallbackRoot:!0,g=!!A.formatFallbackMessages,s=vA(A.modifiers)?A.modifiers:{},a=A.pluralizationRules,I=VA(A.postTranslation)?A.postTranslation:void 0,l=rA(A.warnHtmlInMessage)?A.warnHtmlInMessage!=="off":!0,C=!!A.escapeParameterHtml,Q=RA(A.sync)?A.sync:!0;let E=A.messages;if(vA(A.sharedMessages)){const F=A.sharedMessages;E=Object.keys(F).reduce((G,P)=>{const b=G[P]||(G[P]={});return Be(b,F[P]),G},E||{})}const{__i18n:f,__root:h,__injectWithOption:u}=A,p=A.datetimeFormats,c=A.numberFormats,d=A.flatJson,w=A.translateExistCompatible;return{locale:e,fallbackLocale:t,messages:E,flatJson:d,datetimeFormats:p,numberFormats:c,missing:i,missingWarn:n,fallbackWarn:o,fallbackRoot:r,fallbackFormat:g,modifiers:s,pluralRules:a,postTranslation:I,warnHtmlMessage:l,escapeParameter:C,messageResolver:A.messageResolver,inheritLocale:Q,translateExistCompatible:w,__i18n:f,__root:h,__injectWithOption:u}}function Sr(A={},e){{const t=lg(gu(A)),{__extender:i}=A,n={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return RA(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=RA(o)?!o:o},get silentFallbackWarn(){return RA(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=RA(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){const[r,g,s]=o,a={};let I=null,l=null;if(!rA(r))throw Ie(re.INVALID_ARGUMENT);const C=r;return rA(g)?a.locale=g:qA(g)?I=g:vA(g)&&(l=g),qA(s)?I=s:vA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},rt(...o){return Reflect.apply(t.rt,t,[...o])},tc(...o){const[r,g,s]=o,a={plural:1};let I=null,l=null;if(!rA(r))throw Ie(re.INVALID_ARGUMENT);const C=r;return rA(g)?a.locale=g:ee(g)?a.plural=g:qA(g)?I=g:vA(g)&&(l=g),rA(s)?a.locale=s:qA(s)?I=s:vA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},te(o,r){return t.te(o,r)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,r){t.setLocaleMessage(o,r)},mergeLocaleMessage(o,r){t.mergeLocaleMessage(o,r)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,r){t.setDateTimeFormat(o,r)},mergeDateTimeFormat(o,r){t.mergeDateTimeFormat(o,r)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,r){t.setNumberFormat(o,r)},mergeNumberFormat(o,r){t.mergeNumberFormat(o,r)},getChoiceIndex(o,r){return-1}};return n.__extender=i,n}}const Bg={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:A=>A==="parent"||A==="global",default:"parent"},i18n:{type:Object}};function su({slots:A},e){return e.length===1&&e[0]==="default"?(A.default?A.default():[]).reduce((i,n)=>[...i,...n.type===jA?n.children:[n]],[]):e.reduce((t,i)=>{const n=A[i];return n&&(t[i]=n()),t},YA())}function TC(A){return jA}const au=hn({name:"i18n-t",props:Be({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:A=>ee(A)||!isNaN(A)}},Bg),setup(A,e){const{slots:t,attrs:i}=e,n=A.i18n||ve({useScope:A.scope,__useComponent:!0});return()=>{const o=Object.keys(t).filter(l=>l!=="_"),r=YA();A.locale&&(r.locale=A.locale),A.plural!==void 0&&(r.plural=rA(A.plural)?+A.plural:A.plural);const g=su(e,o),s=n[Dr](A.keypath,g,r),a=Be(YA(),i),I=rA(A.tag)||UA(A.tag)?A.tag:TC();return GA(I,a,s)}}}),Js=au;function Iu(A){return qA(A)&&!rA(A[0])}function HC(A,e,t,i){const{slots:n,attrs:o}=e;return()=>{const r={part:!0};let g=YA();A.locale&&(r.locale=A.locale),rA(A.format)?r.key=A.format:UA(A.format)&&(rA(A.format.key)&&(r.key=A.format.key),g=Object.keys(A.format).reduce((C,Q)=>t.includes(Q)?Be(YA(),C,{[Q]:A.format[Q]}):C,YA()));const s=i(A.value,r,g);let a=[r.key];qA(s)?a=s.map((C,Q)=>{const E=n[C.type],f=E?E({[C.type]:C.value,index:Q,parts:s}):[C.value];return Iu(f)&&(f[0].key=`${C.type}-${Q}`),f}):rA(s)&&(a=[s]);const I=Be(YA(),o),l=rA(A.tag)||UA(A.tag)?A.tag:TC();return GA(l,I,a)}}const Cu=hn({name:"i18n-n",props:Be({value:{type:Number,required:!0},format:{type:[String,Object]}},Bg),setup(A,e){const t=A.i18n||ve({useScope:A.scope,__useComponent:!0});return HC(A,e,GC,(...i)=>t[vr](...i))}}),Ts=Cu,lu=hn({name:"i18n-d",props:Be({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Bg),setup(A,e){const t=A.i18n||ve({useScope:A.scope,__useComponent:!0});return HC(A,e,NC,(...i)=>t[kr](...i))}}),Hs=lu;function Bu(A,e){const t=A;if(A.mode==="composition")return t.__getInstance(e)||A.global;{const i=t.__getInstance(e);return i!=null?i.__composer:A.global.__composer}}function Qu(A){const e=r=>{const{instance:g,modifiers:s,value:a}=r;if(!g||!g.$)throw Ie(re.UNEXPECTED_ERROR);const I=Bu(A,g.$),l=Ys(a);return[Reflect.apply(I.t,I,[..._s(l)]),I]};return{created:(r,g)=>{const[s,a]=e(g);no&&A.global===a&&(r.__i18nWatcher=ae(a.locale,()=>{g.instance&&g.instance.$forceUpdate()})),r.__composer=a,r.textContent=s},unmounted:r=>{no&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:g})=>{if(r.__composer){const s=r.__composer,a=Ys(g);r.textContent=Reflect.apply(s.t,s,[..._s(a)])}},getSSRProps:r=>{const[g]=e(r);return{textContent:g}}}}function Ys(A){if(rA(A))return{path:A};if(vA(A)){if(!("path"in A))throw Ie(re.REQUIRED_VALUE,"path");return A}else throw Ie(re.INVALID_VALUE)}function _s(A){const{path:e,locale:t,args:i,choice:n,plural:o}=A,r={},g=i||{};return rA(t)&&(r.locale=t),ee(n)&&(r.plural=n),ee(o)&&(r.plural=o),[e,g,r]}function cu(A,e,...t){const i=vA(t[0])?t[0]:{},n=!!i.useI18nComponentName;(RA(i.globalInstall)?i.globalInstall:!0)&&([n?"i18n":Js.name,"I18nT"].forEach(r=>A.component(r,Js)),[Ts.name,"I18nN"].forEach(r=>A.component(r,Ts)),[Hs.name,"I18nD"].forEach(r=>A.component(r,Hs))),A.directive("t",Qu(e))}function Eu(A,e,t){return{beforeCreate(){const i=vi();if(!i)throw Ie(re.UNEXPECTED_ERROR);const n=this.$options;if(n.i18n){const o=n.i18n;if(n.__i18n&&(o.__i18n=n.__i18n),o.__root=e,this===this.$root)this.$i18n=Ks(A,o);else{o.__injectWithOption=!0,o.__extender=t.__vueI18nExtend,this.$i18n=Sr(o);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(n.__i18n)if(this===this.$root)this.$i18n=Ks(A,n);else{this.$i18n=Sr({__i18n:n.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:e});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=A;n.__i18nGlobal&&JC(e,n,n),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,r)=>this.$i18n.te(o,r),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),t.__setInstance(i,this.$i18n)},mounted(){},unmounted(){const i=vi();if(!i)throw Ie(re.UNEXPECTED_ERROR);const n=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__disposer&&(n.__disposer(),delete n.__disposer,delete n.__extender),t.__deleteInstance(i),delete this.$i18n}}}function Ks(A,e){A.locale=e.locale||A.locale,A.fallbackLocale=e.fallbackLocale||A.fallbackLocale,A.missing=e.missing||A.missing,A.silentTranslationWarn=e.silentTranslationWarn||A.silentFallbackWarn,A.silentFallbackWarn=e.silentFallbackWarn||A.silentFallbackWarn,A.formatFallbackMessages=e.formatFallbackMessages||A.formatFallbackMessages,A.postTranslation=e.postTranslation||A.postTranslation,A.warnHtmlInMessage=e.warnHtmlInMessage||A.warnHtmlInMessage,A.escapeParameterHtml=e.escapeParameterHtml||A.escapeParameterHtml,A.sync=e.sync||A.sync,A.__composer[UC](e.pluralizationRules||A.pluralizationRules);const t=bo(A.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(t).forEach(i=>A.mergeLocaleMessage(i,t[i])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(i=>A.mergeDateTimeFormat(i,e.datetimeFormats[i])),e.numberFormats&&Object.keys(e.numberFormats).forEach(i=>A.mergeNumberFormat(i,e.numberFormats[i])),A}const uu=Vt("global-vue-i18n");function hu(A={},e){const t=__VUE_I18N_LEGACY_API__&&RA(A.legacy)?A.legacy:__VUE_I18N_LEGACY_API__,i=RA(A.globalInjection)?A.globalInjection:!0,n=__VUE_I18N_LEGACY_API__&&t?!!A.allowComposition:!0,o=new Map,[r,g]=fu(A,t),s=Vt("");function a(C){return o.get(C)||null}function I(C,Q){o.set(C,Q)}function l(C){o.delete(C)}{const C={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},get allowComposition(){return n},async install(Q,...E){if(Q.__VUE_I18N_SYMBOL__=s,Q.provide(Q.__VUE_I18N_SYMBOL__,C),vA(E[0])){const u=E[0];C.__composerExtend=u.__composerExtend,C.__vueI18nExtend=u.__vueI18nExtend}let f=null;!t&&i&&(f=Fu(Q,C.global)),__VUE_I18N_FULL_INSTALL__&&cu(Q,C,...E),__VUE_I18N_LEGACY_API__&&t&&Q.mixin(Eu(g,g.__composer,C));const h=Q.unmount;Q.unmount=()=>{f&&f(),C.dispose(),h()}},get global(){return g},dispose(){r.stop()},__instances:o,__getInstance:a,__setInstance:I,__deleteInstance:l};return C}}function ve(A={}){const e=vi();if(e==null)throw Ie(re.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Ie(re.NOT_INSTALLED);const t=du(e),i=mu(t),n=xC(e),o=pu(A,n);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!A.__useComponent){if(!t.allowComposition)throw Ie(re.NOT_AVAILABLE_IN_LEGACY_MODE);return ku(e,o,i,A)}if(o==="global")return JC(i,A,n),i;if(o==="parent"){let s=yu(t,e,A.__useComponent);return s==null&&(s=i),s}const r=t;let g=r.__getInstance(e);if(g==null){const s=Be({},A);"__i18n"in n&&(s.__i18n=n.__i18n),i&&(s.__root=i),g=lg(s),r.__composerExtend&&(g[Fr]=r.__composerExtend(g)),Du(r,e,g),r.__setInstance(e,g)}return g}function fu(A,e,t){const i=QB();{const n=__VUE_I18N_LEGACY_API__&&e?i.run(()=>Sr(A)):i.run(()=>lg(A));if(n==null)throw Ie(re.UNEXPECTED_ERROR);return[i,n]}}function du(A){{const e=rt(A.isCE?uu:A.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Ie(A.isCE?re.NOT_INSTALLED_WITH_PROVIDE:re.UNEXPECTED_ERROR);return e}}function pu(A,e){return vo(A)?"__i18n"in e?"local":"global":A.useScope?A.useScope:"local"}function mu(A){return A.mode==="composition"?A.global:A.global.__composer}function yu(A,e,t=!1){let i=null;const n=e.root;let o=wu(e,t);for(;o!=null;){const r=A;if(A.mode==="composition")i=r.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const g=r.__getInstance(o);g!=null&&(i=g.__composer,t&&i&&!i[MC]&&(i=null))}if(i!=null||n===o)break;o=o.parent}return i}function wu(A,e=!1){return A==null?null:e&&A.vnode.ctx||A.parent}function Du(A,e,t){Ft(()=>{},e),Ci(()=>{const i=t;A.__deleteInstance(e);const n=i[Fr];n&&(n(),delete i[Fr])},e)}function ku(A,e,t,i={}){const n=e==="local",o=eg(null);if(n&&A.proxy&&!(A.proxy.$options.i18n||A.proxy.$options.__i18n))throw Ie(re.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=RA(i.inheritLocale)?i.inheritLocale:!rA(i.locale),g=EA(!n||r?t.locale.value:rA(i.locale)?i.locale:Si),s=EA(!n||r?t.fallbackLocale.value:rA(i.fallbackLocale)||qA(i.fallbackLocale)||vA(i.fallbackLocale)||i.fallbackLocale===!1?i.fallbackLocale:g.value),a=EA(bo(g.value,i)),I=EA(vA(i.datetimeFormats)?i.datetimeFormats:{[g.value]:{}}),l=EA(vA(i.numberFormats)?i.numberFormats:{[g.value]:{}}),C=n?t.missingWarn:RA(i.missingWarn)||Pt(i.missingWarn)?i.missingWarn:!0,Q=n?t.fallbackWarn:RA(i.fallbackWarn)||Pt(i.fallbackWarn)?i.fallbackWarn:!0,E=n?t.fallbackRoot:RA(i.fallbackRoot)?i.fallbackRoot:!0,f=!!i.fallbackFormat,h=VA(i.missing)?i.missing:null,u=VA(i.postTranslation)?i.postTranslation:null,p=n?t.warnHtmlMessage:RA(i.warnHtmlMessage)?i.warnHtmlMessage:!0,c=!!i.escapeParameter,d=n?t.modifiers:vA(i.modifiers)?i.modifiers:{},w=i.pluralRules||n&&t.pluralRules;function F(){return[g.value,s.value,a.value,I.value,l.value]}const N=hA({get:()=>o.value?o.value.locale.value:g.value,set:k=>{o.value&&(o.value.locale.value=k),g.value=k}}),G=hA({get:()=>o.value?o.value.fallbackLocale.value:s.value,set:k=>{o.value&&(o.value.fallbackLocale.value=k),s.value=k}}),P=hA(()=>o.value?o.value.messages.value:a.value),b=hA(()=>I.value),R=hA(()=>l.value);function L(){return o.value?o.value.getPostTranslationHandler():u}function cA(k){o.value&&o.value.setPostTranslationHandler(k)}function dA(){return o.value?o.value.getMissingHandler():h}function CA(k){o.value&&o.value.setMissingHandler(k)}function iA(k){return F(),k()}function X(...k){return o.value?iA(()=>Reflect.apply(o.value.t,null,[...k])):iA(()=>"")}function eA(...k){return o.value?Reflect.apply(o.value.rt,null,[...k]):""}function fA(...k){return o.value?iA(()=>Reflect.apply(o.value.d,null,[...k])):iA(()=>"")}function DA(...k){return o.value?iA(()=>Reflect.apply(o.value.n,null,[...k])):iA(()=>"")}function Y(k){return o.value?o.value.tm(k):{}}function q(k,J){return o.value?o.value.te(k,J):!1}function gA(k){return o.value?o.value.getLocaleMessage(k):{}}function FA(k,J){o.value&&(o.value.setLocaleMessage(k,J),a.value[k]=J)}function LA(k,J){o.value&&o.value.mergeLocaleMessage(k,J)}function TA(k){return o.value?o.value.getDateTimeFormat(k):{}}function M(k,J){o.value&&(o.value.setDateTimeFormat(k,J),I.value[k]=J)}function Z(k,J){o.value&&o.value.mergeDateTimeFormat(k,J)}function $(k){return o.value?o.value.getNumberFormat(k):{}}function IA(k,J){o.value&&(o.value.setNumberFormat(k,J),l.value[k]=J)}function bA(k,J){o.value&&o.value.mergeNumberFormat(k,J)}const D={get id(){return o.value?o.value.id:-1},locale:N,fallbackLocale:G,messages:P,datetimeFormats:b,numberFormats:R,get inheritLocale(){return o.value?o.value.inheritLocale:r},set inheritLocale(k){o.value&&(o.value.inheritLocale=k)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(a.value)},get modifiers(){return o.value?o.value.modifiers:d},get pluralRules(){return o.value?o.value.pluralRules:w},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:C},set missingWarn(k){o.value&&(o.value.missingWarn=k)},get fallbackWarn(){return o.value?o.value.fallbackWarn:Q},set fallbackWarn(k){o.value&&(o.value.missingWarn=k)},get fallbackRoot(){return o.value?o.value.fallbackRoot:E},set fallbackRoot(k){o.value&&(o.value.fallbackRoot=k)},get fallbackFormat(){return o.value?o.value.fallbackFormat:f},set fallbackFormat(k){o.value&&(o.value.fallbackFormat=k)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:p},set warnHtmlMessage(k){o.value&&(o.value.warnHtmlMessage=k)},get escapeParameter(){return o.value?o.value.escapeParameter:c},set escapeParameter(k){o.value&&(o.value.escapeParameter=k)},t:X,getPostTranslationHandler:L,setPostTranslationHandler:cA,getMissingHandler:dA,setMissingHandler:CA,rt:eA,d:fA,n:DA,tm:Y,te:q,getLocaleMessage:gA,setLocaleMessage:FA,mergeLocaleMessage:LA,getDateTimeFormat:TA,setDateTimeFormat:M,mergeDateTimeFormat:Z,getNumberFormat:$,setNumberFormat:IA,mergeNumberFormat:bA};function S(k){k.locale.value=g.value,k.fallbackLocale.value=s.value,Object.keys(a.value).forEach(J=>{k.mergeLocaleMessage(J,a.value[J])}),Object.keys(I.value).forEach(J=>{k.mergeDateTimeFormat(J,I.value[J])}),Object.keys(l.value).forEach(J=>{k.mergeNumberFormat(J,l.value[J])}),k.escapeParameter=c,k.fallbackFormat=f,k.fallbackRoot=E,k.fallbackWarn=Q,k.missingWarn=C,k.warnHtmlMessage=p}return xI(()=>{if(A.proxy==null||A.proxy.$i18n==null)throw Ie(re.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const k=o.value=A.proxy.$i18n.__composer;e==="global"?(g.value=k.locale.value,s.value=k.fallbackLocale.value,a.value=k.messages.value,I.value=k.datetimeFormats.value,l.value=k.numberFormats.value):n&&S(k)}),D}const vu=["locale","fallbackLocale","availableLocales"],Ps=["t","rt","d","n","tm","te"];function Fu(A,e){const t=Object.create(null);return vu.forEach(n=>{const o=Object.getOwnPropertyDescriptor(e,n);if(!o)throw Ie(re.UNEXPECTED_ERROR);const r=le(o.value)?{get(){return o.value.value},set(g){o.value.value=g}}:{get(){return o.get&&o.get()}};Object.defineProperty(t,n,r)}),A.config.globalProperties.$i18n=t,Ps.forEach(n=>{const o=Object.getOwnPropertyDescriptor(e,n);if(!o||!o.value)throw Ie(re.UNEXPECTED_ERROR);Object.defineProperty(A.config.globalProperties,`$${n}`,o)}),()=>{delete A.config.globalProperties.$i18n,Ps.forEach(n=>{delete A.config.globalProperties[`$${n}`]})}}iu();__INTLIFY_JIT_COMPILATION__?ys(XE):ys(ZE);YE(pE);_E(mC);if(__INTLIFY_PROD_DEVTOOLS__){const A=ft();A.__INTLIFY__=!0,bE(A.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Jt=EA({isOnline:!1,error:"",lastCheck:null}),ge=EA({chip:null,board:null,firmware:null,flash:null,assetsPartition:null,network:null,screen:null}),si=EA(""),Pn=EA(!1),yi=EA(null),Su=A=>new URLSearchParams(window.location.search).get(A),On=async(A,e={})=>{if(!si.value)throw new Error("Authentication token not found");const t=await fetch("/api/messaging/device/tools/call",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${si.value}`},body:JSON.stringify({name:A,arguments:e})});if(t.ok)return await t.json();{const i=await t.text();console.error(`MCP tool ${A} failed:`,t.status,i);let n=`Failed to call ${A}`;try{const o=JSON.parse(i);o.message&&(n=o.message)}catch{n=`${n}: HTTP ${t.status}`}throw new Error(n)}},bu=async()=>{var A,e,t,i;try{const[n,o,r]=await Promise.allSettled([On("self.get_system_info"),On("self.get_device_status"),On("self.screen.get_info")]);if(n.status==="fulfilled"&&n.value){const g=n.value.data||n.value;if(ge.value.chip={model:g.chip_model_name||"Unknown"},ge.value.board={model:((A=g.board)==null?void 0:A.name)||"Unknown"},ge.value.firmware={version:((e=g.application)==null?void 0:e.version)||"Unknown"},g.flash_size){const s=Math.round(g.flash_size/1024/1024);ge.value.flash={size:`${s}MB`}}else ge.value.flash={size:"Unknown"};if(g.partition_table){const s=g.partition_table.find(a=>a.label==="assets");s?ge.value.assetsPartition={size:s.size,sizeFormatted:`${Math.round(s.size/1024/1024)}MB`}:ge.value.assetsPartition=null}else ge.value.assetsPartition=null}else console.warn("系统信息获取失败:",n.reason||n.value),ge.value.chip={model:"Unknown"},ge.value.board={model:"Unknown"},ge.value.firmware={version:"Unknown"},ge.value.flash={size:"Unknown"},ge.value.assetsPartition=null;if(o.status==="fulfilled"&&o.value){const g=o.value.data||o.value;ge.value.network={type:((t=g.network)==null?void 0:t.type)||"unknown",signal:((i=g.network)==null?void 0:i.signal)||"Unknown"}}else console.warn("设备状态获取失败:",o.reason||o.value),ge.value.network={type:"unknown",signal:"Unknown"};if(r.status==="fulfilled"&&r.value){const g=r.value.data||r.value;ge.value.screen={resolution:`${g.width||0}x${g.height||0}`}}else console.warn("屏幕信息获取失败:",r.reason||r.value),ge.value.screen={resolution:"Unknown"}}catch(n){console.error("获取设备信息时发生错误:",n)}},Ro=async()=>{if(!(Pn.value||!si.value)){Pn.value=!0;try{const A=await fetch("/api/messaging/device/tools/list",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${si.value}`}});if(A.ok)Jt.value.isOnline=!0,Jt.value.error="",Jt.value.lastCheck=new Date,await bu();else throw new Error(`HTTP ${A.status}: ${A.statusText}`)}catch{Jt.value.isOnline=!1,Jt.value.error="",Jt.value.lastCheck=new Date,yi.value&&clearTimeout(yi.value),yi.value=setTimeout(Ro,3e4)}finally{Pn.value=!1}}},Ru=(A,e)=>{if(!A)return e("device.signal.unknown");switch(A.toLowerCase()){case"strong":return e("device.signal.strong");case"medium":return e("device.signal.medium");case"weak":return e("device.signal.weak");case"none":return e("device.signal.none");default:return A}},Nu=()=>{si.value=Su("token"),si.value&&Ro()},Gu=()=>{yi.value&&(clearTimeout(yi.value),yi.value=null)},Lu=async()=>{await Ro()};function No(){const A=hA(()=>!!si.value),e=hA(()=>Jt.value.isOnline);return{deviceStatus:Jt,deviceInfo:ge,isChecking:Pn,hasToken:A,isDeviceOnline:e,initializeDeviceStatus:Nu,cleanupDeviceStatus:Gu,refreshDeviceStatus:Lu,checkDeviceStatus:Ro,callMcpTool:On,getSignalDisplayText:Ru}}const Os={__name:"WifiIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-blue-500"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[B("path",{d:"M3 9c4.97-4.97 13.03-4.97 18 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M6 12c3.31-3.31 8.69-3.31 12 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M9 15c1.66-1.66 4.34-1.66 6 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("circle",{cx:"12",cy:"18",r:"1.5",fill:"currentColor"},null,-1)])],2))}},Vs={__name:"Signal4GIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-green-500"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[Do('<rect x="2" y="16" width="3" height="6" rx="0.5"></rect><rect x="7" y="12" width="3" height="10" rx="0.5" opacity="0.8"></rect><rect x="12" y="8" width="3" height="14" rx="0.5" opacity="0.6"></rect><rect x="17" y="4" width="3" height="18" rx="0.5" opacity="0.4"></rect><text x="21" y="8" font-size="6" font-weight="bold" fill="currentColor">4G</text>',5)])],2))}},Ws={__name:"ChipIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[Do('<rect x="7" y="7" width="10" height="10" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></rect><rect x="9" y="9" width="6" height="6" stroke-width="1.5" fill="currentColor" opacity="0.1"></rect><line x1="7" y1="9" x2="4" y2="9" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="12" x2="4" y2="12" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="15" x2="4" y2="15" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="9" x2="20" y2="9" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="12" x2="20" y2="12" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="15" x2="20" y2="15" stroke-width="1.5" stroke-linecap="round"></line><line x1="9" y1="7" x2="9" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="12" y1="7" x2="12" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="15" y1="7" x2="15" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="9" y1="17" x2="9" y2="20" stroke-width="1.5" stroke-linecap="round"></line><line x1="12" y1="17" x2="12" y2="20" stroke-width="1.5" stroke-linecap="round"></line><line x1="15" y1="17" x2="15" y2="20" stroke-width="1.5" stroke-linecap="round"></line>',14)])],2))}},qs={__name:"FlashIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[Do('<rect x="6" y="5" width="12" height="14" rx="1" stroke-width="2"></rect><line x1="6" y1="8" x2="4" y2="8" stroke-width="1.5"></line><line x1="6" y1="11" x2="4" y2="11" stroke-width="1.5"></line><line x1="6" y1="14" x2="4" y2="14" stroke-width="1.5"></line><line x1="6" y1="17" x2="4" y2="17" stroke-width="1.5"></line><line x1="18" y1="8" x2="20" y2="8" stroke-width="1.5"></line><line x1="18" y1="11" x2="20" y2="11" stroke-width="1.5"></line><line x1="18" y1="14" x2="20" y2="14" stroke-width="1.5"></line><line x1="18" y1="17" x2="20" y2="17" stroke-width="1.5"></line><path d="M13 7l-3 5h2l-1 4 3-5h-2l1-4z" fill="currentColor" opacity="0.5"></path>',10)])],2))}},js={__name:"BoardIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[Do('<rect x="4" y="4" width="16" height="16" rx="1" stroke-width="2"></rect><circle cx="6.5" cy="6.5" r="1" stroke-width="1.5"></circle><circle cx="17.5" cy="6.5" r="1" stroke-width="1.5"></circle><circle cx="6.5" cy="17.5" r="1" stroke-width="1.5"></circle><circle cx="17.5" cy="17.5" r="1" stroke-width="1.5"></circle><rect x="9" y="9" width="6" height="6" rx="0.5" stroke-width="1.5" fill="currentColor" opacity="0.1"></rect><line x1="9" y1="11" x2="15" y2="11" stroke-width="1" opacity="0.5"></line><line x1="9" y1="13" x2="15" y2="13" stroke-width="1" opacity="0.5"></line><line x1="9" y1="12" x2="6" y2="12" stroke-width="1" opacity="0.4"></line><line x1="15" y1="12" x2="18" y2="12" stroke-width="1" opacity="0.4"></line>',10)])],2))}},Zs={__name:"ScreenIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=hA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:kA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},null,-1)])],2))}},Uu={class:"flex items-center space-x-2"},Mu={class:"flex items-center space-x-1"},xu={key:0,class:"flex items-center space-x-1"},Ju={class:"text-xs text-gray-500"},Tu={key:0,class:"flex items-center space-x-4 text-sm text-gray-600"},Hu={key:0,class:"flex items-center space-x-1"},Yu={key:1,class:"flex items-center space-x-1"},_u={key:2,class:"flex items-center space-x-1"},Ku={key:3,class:"flex items-center space-x-1"},Pu={key:1,class:"lg:hidden flex flex-col bg-white rounded-lg border border-gray-200 shadow-sm overflow-hidden"},Ou={class:"flex items-center justify-between px-4 py-3 bg-gray-50 border-b border-gray-200"},Vu={class:"flex items-center space-x-2"},Wu={key:0,class:"flex items-center space-x-1"},qu={class:"text-xs font-medium text-gray-600"},ju={key:0,class:"px-4 py-3"},Zu={class:"grid grid-cols-1 gap-2.5"},Xu={class:"flex justify-between items-center py-1.5 border-b border-gray-100"},zu={key:0,class:"flex items-center space-x-2 flex-1"},$u={class:"min-w-0 flex-1"},Ah={class:"text-xs text-gray-500 leading-tight"},eh={class:"text-sm text-gray-800 font-medium truncate"},th={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},ih={class:"min-w-0 flex-1"},nh={class:"text-xs text-gray-500 leading-tight"},oh={class:"text-sm text-gray-800 font-medium truncate"},rh={class:"flex justify-between items-center py-1.5"},gh={key:0,class:"flex items-center space-x-2 flex-1"},sh={class:"min-w-0 flex-1"},ah={class:"text-xs text-gray-500 leading-tight"},Ih={class:"text-sm text-gray-800 font-medium"},Ch={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},lh={class:"min-w-0 flex-1"},Bh={class:"text-xs text-gray-500 leading-tight"},Qh={class:"text-sm text-gray-800 font-medium"},ch={__name:"DeviceStatus",setup(A){const{t:e}=ve(),{deviceStatus:t,deviceInfo:i,hasToken:n,initializeDeviceStatus:o,cleanupDeviceStatus:r,getSignalDisplayText:g}=No(),s=hA(()=>n.value);return Ft(()=>{o()}),Ci(()=>{r()}),(a,I)=>(H(),_(jA,null,[s.value?(H(),_("div",{key:0,class:kA(["hidden lg:flex items-center space-x-4",QA(t).isOnline?"":"opacity-60"])},[B("div",Uu,[B("div",Mu,[B("div",{class:kA(["w-2 h-2 rounded-full",QA(t).isOnline?"bg-green-500":"bg-gray-400"])},null,2),B("span",{class:kA(["text-sm font-medium",QA(t).isOnline?"text-gray-700":"text-gray-500"])},v(QA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),QA(t).isOnline&&QA(i).network?(H(),_("div",xu,[QA(i).network.type==="wifi"?(H(),ye(QA(Os),{key:0,color:"text-blue-500"})):QA(i).network.type==="4g"?(H(),ye(QA(Vs),{key:1})):sA("",!0),B("span",Ju,v(QA(g)(QA(i).network.signal,QA(e))),1)])):sA("",!0)]),QA(t).isOnline?(H(),_("div",Tu,[QA(i).chip?(H(),_("div",Hu,[HA(QA(Ws)),B("span",null,v(QA(i).chip.model),1)])):sA("",!0),QA(i).flash?(H(),_("div",Yu,[HA(QA(qs)),B("span",null,v(QA(i).flash.size),1)])):sA("",!0),QA(i).board?(H(),_("div",_u,[HA(QA(js)),B("span",null,v(QA(i).board.model),1)])):sA("",!0),QA(i).screen?(H(),_("div",Ku,[HA(QA(Zs)),B("span",null,v(QA(i).screen.resolution),1)])):sA("",!0)])):sA("",!0)],2)):sA("",!0),s.value?(H(),_("div",Pu,[B("div",Ou,[B("div",Vu,[B("div",{class:kA(["w-2.5 h-2.5 rounded-full",QA(t).isOnline?"bg-green-500":"bg-red-400"])},null,2),B("span",{class:kA(["text-sm font-medium",QA(t).isOnline?"text-gray-800":"text-gray-600"])},v(QA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),QA(t).isOnline&&QA(i).network?(H(),_("div",Wu,[QA(i).network.type==="wifi"?(H(),ye(QA(Os),{key:0,color:"text-blue-500"})):QA(i).network.type==="4g"?(H(),ye(QA(Vs),{key:1})):sA("",!0),B("span",qu,v(QA(g)(QA(i).network.signal,QA(e))),1)])):sA("",!0)]),QA(t).isOnline?(H(),_("div",ju,[B("div",Zu,[B("div",Xu,[QA(i).chip?(H(),_("div",zu,[HA(QA(Ws),{class:"flex-shrink-0"}),B("div",$u,[B("div",Ah,v(a.$t("device.chip")),1),B("div",eh,v(QA(i).chip.model),1)])])):sA("",!0),QA(i).board?(H(),_("div",th,[HA(QA(js),{class:"flex-shrink-0"}),B("div",ih,[B("div",nh,v(a.$t("device.board")),1),B("div",oh,v(QA(i).board.model),1)])])):sA("",!0)]),B("div",rh,[QA(i).flash?(H(),_("div",gh,[HA(QA(qs),{class:"flex-shrink-0"}),B("div",sh,[B("div",ah,v(a.$t("device.flash")),1),B("div",Ih,v(QA(i).flash.size),1)])])):sA("",!0),QA(i).screen?(H(),_("div",Ch,[HA(QA(Zs),{class:"flex-shrink-0"}),B("div",lh,[B("div",Bh,v(a.$t("device.screen")),1),B("div",Qh,v(QA(i).screen.resolution),1)])])):sA("",!0)])])])):sA("",!0)])):sA("",!0)],64))}},Eh={title:"Xiaozhi AI Customization"},uh={cancel:"Cancel",confirm:"Confirm",close:"Close",start:"Start",download:"Download",generate:"Generate",reset:"Reset",yes:"Yes",no:"No",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",info:"Information",next:"Next",previous:"Previous",finish:"Finish",retry:"Retry",ok:"OK",other:"Other"},hh={title:"Xiaozhi AI Customization"},fh={title:"Saved Configuration Detected",message:"Configuration has been automatically restored. You can continue from where you left off or start over.",restart:"Start Over"},dh={chip:"Chip Configuration",theme:"Theme Design",generate:"Preview & Generate"},ph={title:"Generate assets.bin",confirmConfig:"Please confirm your configuration",chipModel:"Chip Model:",resolution:"Resolution:",wakeword:"Wake Word:",font:"Font:",emoji:"Emoji Package:",fileList:"Included Files List",estimated:"Estimated",compressed:"Before compression",generating:"Generating assets.bin...",progress:"{progress}% Complete",completed:"Your assets.bin file is ready",filename:"Filename: assets.bin",fileSize:"File Size: {size}",generationTime:"Generation Time: {time}",downloadAssets:"Download assets.bin",flashToDevice:"Flash to Device Online",flashing:"Flashing to device...",flashingCancel:"Cancel Flash",flashingError:"Flashing Error",flashingInProgress:"Flashing in progress, please do not close the window",customFont:"Custom Font",customEmoji:"Custom Emoji Package",notConfigured:"Not Configured",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Hello Xiaozhi",wn9_nihaoxiaozhi_tts:"Hello Xiaozhi",wn9_alexa:"Alexa"}},mh={init:"Initialize Generator",font:"Process Font Files",wakeword:"Package Wake Word Model",emoji:"Process Emoji Images",background:"Process Background Images",index:"Generate Index File",spiffs:"Build SPIFFS Mapping",package:"Complete Packaging"},yh={title:"Wake Word Configuration",description:"Select a preset wake word model or customize it using a command recognition model.",supportWakeNet9:"Your chip supports WakeNet9 models.",supportWakeNet9s:"Your chip supports WakeNet9s models.",notSupported:"Your chip does not support wake word functionality.",notice:"Note:",unsupportedMessage:"{chipModel} chip does not support wake word functionality. If you need to use wake words, please select ESP32-S3, ESP32-P4, or ESP32-C3/C5/C6 chips.",noWakeword:"No Wake Word",presetWakeword:"Preset Wake Word",customWakeword:"Custom Wake Word",selectWakeword:"Select Wake Word",placeholder:"Select wake word...",customSettings:"Custom Wake Word Settings",wakewordName:"Wake Word Name",wakewordNamePlaceholder:"e.g., Xiaozhi / Potato",wakewordCommand:"Wake Command",wakewordCommandPlaceholderCN:"Pinyin separated by spaces, e.g., ni hao xiao zhi",wakewordCommandPlaceholderEN:"English words, no punctuation, e.g., HELLO POTATO",threshold:"Sensitivity Threshold (0-100)",thresholdDesc:"Lower is more sensitive, default 20",duration:"Recognition Duration",durationDesc:"Maximum duration for command recognition",selectModel:"Select Recognition Model",mn6cn:"MultiNet6 (Chinese)",mn6en:"MultiNet6 (English)",mn7cn:"MultiNet7 (Chinese)",mn7en:"MultiNet7 (English)",errors:{nameRequired:"Please enter wake word name",commandRequired:"Please enter wake command",noPunctuation:"Command cannot contain punctuation",durationRange:"Duration must be between 500-10000ms"},tips:{tipLabel:"Tip:",optional:"Wake words are optional. If disabled, the device cannot be voice-activated.",wakeNet9sOnly:"C3/C5/C6 chips only support WakeNet9s lightweight models.",wakeNet9Full:"S3/P4 chips support complete WakeNet9 models with more choices.",customSupport:"Custom wake words use MultiNet models, currently only supported on ESP32-S3."}},wh={resetFailed:"Reset failed, please refresh the page and try again",generationFailed:"Generation failed: {error}",noFileToDownload:"No downloadable file available",deviceOffline:"Device is offline and cannot be flashed",fileTooLarge:"Flash failed: File size {fileSize}MB exceeds assets partition size {partitionSize}MB. Please reduce configuration content or use a device with larger capacity.",flashCancelConfirm:"Are you sure you want to cancel flashing?",oldDataCleared:`Old version emoji data structure has been detected and cleared.
|
||
|
||
The new version uses file deduplication technology to save storage space.
|
||
|
||
Please re-upload custom emoji images.`,incompatibleEmojiData:"Incompatible emoji data detected, please reconfigure"},Dh={authTokenMissing:"Authentication token not found",checkingDeviceStatus:"Checking device status...",deviceOfflineOrUnresponsive:"Device offline or unresponsive: {error}",unableToGetDeviceStatus:"Unable to get device status",initializingTransferService:"Initializing transfer service...",initializeTransferFailed:"Failed to initialize transfer service: {error}",settingDeviceDownloadUrl:"Setting device download URL...",setDownloadUrlFailed:"Failed to set download URL: {error}",rebootingDevice:"Rebooting device...",waitingForDeviceReboot:"Waiting for device to reboot...",deviceRebootTimeout:"Device reboot timeout (60 seconds)",startingFileTransfer:"Starting file transfer...",flashCompleted:"Flashing completed!",onlineFlashFailed:"Online flashing failed: {error}"},kh={online:"Online",offline:"Offline",checking:"Checking...",flashing:"Flashing...",ready:"Ready",chip:"Chip",board:"Board",flash:"Flash",screen:"Screen",signal:{unknown:"Unknown",strong:"Strong",medium:"Medium",weak:"Weak",none:"No Signal"}},vh={title:"Step 1: Chip Model and Screen Configuration",loadingFromDevice:"Loading hardware configuration from device...",loadedFromDevice:"Hardware configuration automatically loaded from device",manualConfig:"Please configure hardware parameters manually",loadingTitle:"Loading Device Configuration...",loadingDesc:"Reading chip model and screen resolution from device",autoLoadedTitle:"Device Configuration Auto-loaded",chipModel:"Chip Model",screenWidth:"Screen Width",screenHeight:"Screen Height",colorFormat:"Color Format:",manualEdit:"Manual Configuration",collapseManual:"Collapse Manual Configuration",manualConfigTitle:"Manual Hardware Configuration",next:"Next",selectChip:"Select Chip",chipRequired:"Chip Model",widthRequired:"Screen Width",heightRequired:"Screen Height",loadingError:"Loading configuration error",deviceOffline:"Device not connected or offline",chipModelError:"Unable to get chip model, please enter manually",resolutionError:"Unable to get screen resolution, please enter manually",timeoutError:"Configuration loading timeout, please enter manually",manualConfigDesc:"Unable to auto-read device configuration",manualConfigHint:"Device not connected or offline, please manually input hardware configuration",manualConfigRequired:"Please manually input hardware configuration",resolutionFormatError:"Screen resolution format error"},Fh={title:"Step 2: Theme Design",description:"Configure wake word, font, emoji and background to customize your Xiaozhi AI theme.",previous:"Previous",next:"Next",tabs:{wakeword:"Wake Word Config",font:"Font Config",emoji:"Emoji Collection",background:"Chat Background"}},Sh={title:"Step 3: Preview",description:"Preview the effect of your custom configuration on the actual device.",devicePreview:"Device Preview (1:1 Pixel Ratio)",previewSettings:"Preview Settings",previewText:"Preview Text",defaultPreviewText:"Hi, I'm your friend Xiaozhi!",currentEmotion:"Current Emotion",themeMode:"Theme Mode",lightMode:"Light",darkMode:"Dark",configSummary:"Configuration Summary",wakeword:"Wake Word:",font:"Font:",loading:"Loading...",emotion:"Emotion:",skin:"Skin:",previous:"Previous",generate:"Generate assets.bin",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"},noEmotionConfigured:"No emotion configured",fontLoading:"Font loading...",configureEmojiFirst:"Please configure emoji package in theme design first",customFont:"Custom Font {size}px",customEmoji:"Custom Emoji {count} images",notConfigured:"Not configured",skinLight:"Light {type}",skinDark:"Dark {type}",hideSubtitle:"Hide Subtitle:",image:"Image",color:"Color"},bh={title:"Chat Background Configuration",description:"Configure chat backgrounds for light and dark modes, supporting solid colors or custom images.",lightMode:"Light Mode Background",darkMode:"Dark Mode Background",solidBackground:"Solid Background",imageBackground:"Image Background",backgroundColor:"Background Color:",textColor:"Text Color:",backgroundImage:"Background Image:",clickOrDragToUpload:"Click or drag to upload background image",removeImage:"Remove Image",backgroundPreview:"Background Preview",lightModePreview:"Light Mode",darkModePreview:"Dark Mode",chatArea:"Chat Content Area",quickConfig:"Quick Configuration",defaultColors:"Default Colors",stoneTexture:"Stone Texture",sunnyColors:"Sunny Colors",skyBlue:"Sky Blue",romanticPink:"Romantic Pink",selectValidImage:"Please select a valid image file"},Rh={title:"Emoji Collection Configuration",description:"Choose preset emoji package or custom emoji images. Each emoji package contains 21 different emotion expressions.",noEmojiPack:"No Emoji Pack",noEmojiPackDescription:"Don't configure emoji pack, only font and background resources will be included in the package.",presetEmojiPack:"Preset Emoji Pack",customEmojiPack:"Custom Emoji Pack",selectPresetEmojiPack:"Select Preset Emoji Pack",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"High-quality emoji set from Twitter, perfect for clear display",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter emoji pack, {size}×{size} pixels",size:"Size",preview:"Preview",select:"Select",customEmojiTitle:"Custom Emoji Pack",customEmojiDescription:"Upload your own emoji images. Each emotion needs one image.",uploadInstructions:"Click or drag to upload emoji images (PNG/JPG/WEBP)",supportedFormats:"Supported formats: PNG, JPG, WEBP. Recommended size: 64×64 pixels",emotionMapping:"Emotion Mapping",uploadAllEmotions:"Please upload emoji images for all emotions",maxImageWidth:"Max Image Width (px)",maxImageHeight:"Max Image Height (px)",clickToUpload:"Click to upload",orDragDrop:"or drag and drop",clickToUploadOrDrag:"Click to upload or drag here",remove:"Remove",replace:"Replace",selectValidEmojiImage:"Please select a valid emoji image file",selectValidFormat:"Please select a valid PNG or GIF format image",maxFileSize:"File size cannot exceed 1MB",invalidFormat:"Unsupported image format. Please use PNG, JPG, or WEBP.",required:"Required",uploadEmojiImages:"Upload Emoji Images (GIF requires PSRAM)",customEmojiPackConfig:"Custom Emoji Pack Configuration",neutralRequiredNotice:"* Must upload neutral default emotion, others are optional. If not uploaded, default emotion will be used instead.",sharedFileMessage:"Emotion {emotionKey} uses the same image file as {existingEmotions} (shared storage)",fileDeleted:"File {fileHash} has been deleted (no other emotion references)",fileRetained:"File {fileHash} is still used by other emotions, retained",imageLoadFailed:"Failed to load emoji image",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"}},Nh={title:"Font Configuration",description:"Choose preset fonts or upload custom font files.",noFonts:"No Fonts",noFontsDescription:"Do not use font configuration, the device will use the default font",presetFonts:"Preset Fonts",customFonts:"Custom Fonts",selectPresetFont:"Select Preset Font",fontSize:"Font Size:",bitDepth:"Bit Depth:",charset:"Character Set:",fileSize:"File Size:",customFontConfig:"Custom Font Configuration",fontFile:"Font File",clickSelectFontFile:"Click to select font file",orDragFileHere:"or drag file here",supportedFormats:"Supports TTF, WOFF, WOFF2 formats",removeFile:"Remove File",fontSizePx:"Font Size (px)",range:"Range:",bitDepthBpp:"Bit Depth (BPP)",monochrome:"1 bpp (Monochrome)",fourColors:"2 bpp (4 colors)",sixteenColors:"4 bpp (16 colors)",characterSet:"Character Set",deepseekR1:"DeepSeek R1 (7405 characters)",gb2312:"GB2312 (7445 characters)",qwen18409:"Qwen (18409 characters)",latin1:"Latin1 (190 characters)",fullCharset:"Full Character Set (All characters in font file)",hideSubtitle:"Hide Subtitle",hideSubtitleDescription:"Do not show real-time text subtitles during conversation",selectValidFontFile:"Please select a valid font file (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Gh={app:Eh,common:uh,header:hh,configNotice:fh,steps:dh,generateModal:ph,progressSteps:mh,wakewordConfig:yh,errors:wh,flashProgress:Dh,device:kh,chipConfig:vh,themeDesign:Fh,generateSummary:Sh,backgroundConfig:bh,emojiConfig:Rh,fontConfig:Nh},Lh={title:"小智 AI 自定义"},Uh={cancel:"取消",confirm:"确认",close:"关闭",start:"开始",download:"下载",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"加载中...",error:"错误",success:"成功",warning:"警告",info:"信息",next:"下一步",previous:"上一步",finish:"完成",retry:"重试",ok:"确定",other:"其他"},Mh={title:"小智 AI 自定义"},xh={title:"检测到已保存的配置",message:"配置已自动恢复,您可以继续之前的进度或重新开始。",restart:"重新开始"},Jh={chip:"芯片配置",theme:"主题设计",generate:"效果预览"},Th={title:"生成 assets.bin",confirmConfig:"请确认您的配置",chipModel:"芯片型号:",resolution:"分辨率:",wakeword:"唤醒词:",font:"字体:",emoji:"表情包:",fileList:"包含的文件列表",estimated:"预估",compressed:"压缩前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 文件已准备就绪",filename:"文件名: assets.bin",fileSize:"文件大小: {size}",generationTime:"生成时间: {time}",downloadAssets:"下载 assets.bin",flashToDevice:"在线烧录到设备",flashing:"正在烧录到设备...",flashingCancel:"取消烧录",flashingError:"烧录错误",flashingInProgress:"烧录中,请勿关闭窗口",customFont:"自定义字体",customEmoji:"自定义表情包",notConfigured:"未配置",wakewordNames:{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},Hh={init:"初始化生成器",font:"处理字体文件",wakeword:"打包唤醒词模型",emoji:"处理表情图片",background:"处理背景图片",index:"生成索引文件",spiffs:"构建SPIFFS映射",package:"完成打包"},Yh={resetFailed:"重置失败,请刷新页面重试",generationFailed:"生成失败: {error}",noFileToDownload:"没有可下载的文件",deviceOffline:"设备离线,无法进行烧录",fileTooLarge:"烧录失败:文件大小 {fileSize}MB 超过 assets 分区大小 {partitionSize}MB,请减少配置内容或使用更大容量的设备。",flashCancelConfirm:"确定要取消烧录吗?",oldDataCleared:`检测到旧版本的表情数据结构已被清除。
|
||
|
||
新版本使用文件去重技术,可以节省存储空间。
|
||
|
||
请重新上传自定义表情图片。`,incompatibleEmojiData:"检测到不兼容的表情数据,请重新配置"},_h={authTokenMissing:"未找到认证令牌",checkingDeviceStatus:"检查设备状态...",deviceOfflineOrUnresponsive:"设备离线或无响应: {error}",unableToGetDeviceStatus:"无法获取设备状态",initializingTransferService:"初始化传输服务...",initializeTransferFailed:"初始化传输服务失败: {error}",settingDeviceDownloadUrl:"设置设备下载URL...",setDownloadUrlFailed:"设置下载URL失败: {error}",rebootingDevice:"重启设备...",waitingForDeviceReboot:"等待设备重启...",deviceRebootTimeout:"等待设备重启超时(60秒)",startingFileTransfer:"开始传输文件...",flashCompleted:"烧录完成!",onlineFlashFailed:"在线烧录失败: {error}"},Kh={online:"在线",offline:"离线",checking:"检查中...",flashing:"烧录中...",ready:"就绪",chip:"芯片",board:"开发板",flash:"Flash",screen:"屏幕",signal:{unknown:"未知",strong:"强",medium:"中等",weak:"弱",none:"无信号"}},Ph={title:"步骤 1: 芯片型号和屏幕配置",loadingFromDevice:"正在从设备读取硬件配置...",loadedFromDevice:"已从设备自动读取硬件配置",manualConfig:"请手动配置硬件参数",loadingTitle:"正在加载设备配置...",loadingDesc:"从设备读取芯片型号和屏幕分辨率",autoLoadedTitle:"设备配置已自动加载",chipModel:"芯片型号",screenWidth:"屏幕宽度",screenHeight:"屏幕高度",colorFormat:"颜色格式:",manualEdit:"手动修改配置",collapseManual:"收起手动配置",manualConfigTitle:"手动配置硬件参数",next:"下一步",selectChip:"请选择芯片",chipRequired:"芯片型号",widthRequired:"屏幕宽度",heightRequired:"屏幕高度",loadingError:"加载配置时发生错误",deviceOffline:"设备未连接或离线",chipModelError:"无法获取芯片型号,请手动输入",resolutionError:"无法获取屏幕分辨率,请手动输入",timeoutError:"加载设备配置超时,请手动输入",manualConfigDesc:"无法自动读取设备配置",manualConfigHint:"设备未连接或离线,请手动输入硬件配置",manualConfigRequired:"请手动输入硬件配置",resolutionFormatError:"屏幕分辨率格式错误"},Oh={title:"步骤 2: 主题设计",description:"配置唤醒词、字体、表情和背景来自定义您的小智AI主题。",previous:"上一步",next:"下一步",tabs:{wakeword:"唤醒词配置",font:"字体配置",emoji:"表情集合",background:"聊天背景"}},Vh={title:"步骤 3: 效果预览",description:"预览您的自定义配置在实际设备上的效果。",devicePreview:"设备预览 (1:1 像素比例)",previewSettings:"预览设置",previewText:"预览文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"当前表情",themeMode:"主题模式",lightMode:"浅色",darkMode:"深色",configSummary:"配置摘要",wakeword:"唤醒词:",font:"字体:",loading:"加载中...",emotion:"表情:",skin:"皮肤:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字体加载中...",configureEmojiFirst:"请先在主题设计中配置表情包",customFont:"自定义字体 {size}px",customEmoji:"自定义表情 {count}张",notConfigured:"未配置",skinLight:"浅色{type}",skinDark:"深色{type}",hideSubtitle:"隐藏字幕:",image:"图片",color:"颜色"},Wh={title:"聊天背景配置",description:"配置浅色模式和深色模式的聊天背景,支持纯色或自定义图片。",lightMode:"浅色模式背景",darkMode:"深色模式背景",solidBackground:"纯色背景",imageBackground:"图片背景",backgroundColor:"背景颜色:",textColor:"文字颜色:",backgroundImage:"背景图片:",clickOrDragToUpload:"点击或拖拽上传背景图片",removeImage:"移除图片",backgroundPreview:"背景预览",lightModePreview:"浅色模式",darkModePreview:"深色模式",chatArea:"聊天内容区域",quickConfig:"快捷配置",defaultColors:"默认配色",stoneTexture:"石墨质感",sunnyColors:"暖阳配色",skyBlue:"天空蓝调",romanticPink:"浪漫粉色",selectValidImage:"请选择有效的图片文件"},qh={title:"表情集合配置",description:"选择预设表情包或自定义表情图片。每个表情包包含21种不同情绪的表情。",noEmojiPack:"无表情包",noEmojiPackDescription:"不配置表情包,打包时只包含字体和背景资源。",presetEmojiPack:"预设表情包",customEmojiPack:"自定义表情包",selectPresetEmojiPack:"选择预设表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"来自Twitter的高质量表情符号集,适合清晰显示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"预览",select:"选择",customEmojiTitle:"自定义表情包",customEmojiDescription:"上传您自己的表情图片。每种情绪需要一张图片。",uploadInstructions:"点击或拖拽上传表情图片 (PNG/JPG/WEBP)",supportedFormats:"支持格式: PNG, JPG, WEBP。推荐尺寸: 64×64像素",emotionMapping:"情绪映射",uploadAllEmotions:"请为所有情绪上传表情图片",maxImageWidth:"最大图片宽度 (px)",maxImageHeight:"最大图片高度 (px)",clickToUpload:"点击上传",orDragDrop:"或拖拽上传",clickToUploadOrDrag:"点击上传或拖拽到此处",remove:"移除",replace:"替换",selectValidEmojiImage:"请选择有效的表情图片文件",selectValidFormat:"请选择有效的PNG或GIF格式图片",maxFileSize:"文件大小不能超过1MB",invalidFormat:"不支持的图片格式。请使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上传表情图片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定义表情包配置",neutralRequiredNotice:"* 必须上传 neutral 默认表情,其他表情可选。如果不上传其他表情,将使用默认表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了与 {existingEmotions} 相同的图片文件(共享存储)",fileDeleted:"文件 {fileHash} 已删除(无其他表情引用)",fileRetained:"文件 {fileHash} 仍被其他表情使用,保留文件",imageLoadFailed:"表情图片加载失败",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"}},jh={title:"字体配置",description:"选择预设字体或上传自定义字体文件。",noFonts:"无字体",noFontsDescription:"不使用字体配置,设备将使用默认字体",presetFonts:"预设字体",customFonts:"自定义字体",selectPresetFont:"选择预设字体",fontSize:"字号:",bitDepth:"位深:",charset:"字符集:",fileSize:"文件大小:",customFontConfig:"自定义字体配置",fontFile:"字体文件",clickSelectFontFile:"点击选择字体文件",orDragFileHere:"或拖拽文件到此处",supportedFormats:"支持 TTF, WOFF, WOFF2 格式",removeFile:"移除文件",fontSizePx:"字号 (px)",range:"范围:",bitDepthBpp:"位深 (BPP)",monochrome:"1 bpp (单色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字符集",deepseekR1:"DeepSeek R1 (7405字符)",gb2312:"GB2312 (7445字符)",qwen18409:"Qwen (18409字符)",latin1:"Latin1 (190字符)",fullCharset:"完整字符集 (字体文件的所有字符)",hideSubtitle:"隐藏字幕",hideSubtitleDescription:"对话时不显示实时文字字幕",selectValidFontFile:"请选择有效的字体文件 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠体 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠体 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠体 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠体 30px",font_noto_qwen_14_1:"思源黑体 14px",font_noto_qwen_16_4:"思源黑体 16px",font_noto_qwen_20_4:"思源黑体 20px",font_noto_qwen_30_4:"思源黑体 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Zh={title:"唤醒词配置",description:"选择预设唤醒词模型或通过命令词模型自定义唤醒词。",supportWakeNet9:"您的芯片支持 WakeNet9 模型。",supportWakeNet9s:"您的芯片支持 WakeNet9s 模型。",notSupported:"您的芯片不支持唤醒词功能。",notice:"注意:",unsupportedMessage:"{chipModel} 芯片不支持唤醒词功能。如需使用唤醒词,请选择 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 芯片。",noWakeword:"关闭唤醒",presetWakeword:"预设唤醒词",customWakeword:"自定义唤醒词",selectWakeword:"选择唤醒词",placeholder:"选择唤醒词...",customSettings:"自定义唤醒词设置",wakewordName:"唤醒词名称",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"唤醒命令",wakewordCommandPlaceholderCN:"拼音空格隔开,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文单词,不能包含标点,例如:HELLO POTATO",threshold:"灵敏度阈值 (0-100)",thresholdDesc:"越小越灵敏,默认 20",duration:"识别时长",durationDesc:"命令词最长持续时间",selectModel:"选择识别模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"请输入唤醒词名称",commandRequired:"请输入唤醒命令",noPunctuation:"命令不能包含标点符号",durationRange:"时长需在 500-10000ms 之间"},tips:{tipLabel:"提示:",optional:"唤醒词是可选的,关闭后设备将无法通过语音唤醒。",wakeNet9sOnly:"C3/C5/C6 芯片仅支持 WakeNet9s 轻量级模型。",wakeNet9Full:"S3/P4 芯片支持完整的 WakeNet9 模型,选择更多。",customSupport:"自定义唤醒词使用 MultiNet 模型实现,目前仅支持 ESP32-S3 芯片。"}},Xh={app:Lh,common:Uh,header:Mh,configNotice:xh,steps:Jh,generateModal:Th,progressSteps:Hh,errors:Yh,flashProgress:_h,device:Kh,chipConfig:Ph,themeDesign:Oh,generateSummary:Vh,backgroundConfig:Wh,emojiConfig:qh,fontConfig:jh,wakewordConfig:Zh},zh={title:"小智 AI 自訂"},$h={cancel:"取消",confirm:"確認",close:"關閉",start:"開始",download:"下載",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"載入中...",error:"錯誤",success:"成功",warning:"警告",info:"資訊",next:"下一步",previous:"上一步",finish:"完成",retry:"重試",ok:"確定",other:"其他"},Af={title:"小智 AI 自訂"},ef={title:"檢測到已儲存的配置",message:"配置已自動恢復,您可以繼續之前的進度或重新開始。",restart:"重新開始"},tf={chip:"晶片配置",theme:"主題設計",generate:"效果預覽"},nf={title:"生成 assets.bin",confirmConfig:"請確認您的配置",chipModel:"晶片型號:",resolution:"解析度:",wakeword:"喚醒詞:",font:"字體:",emoji:"表情包:",fileList:"包含的檔案列表",estimated:"預估",compressed:"壓縮前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 檔案已準備就緒",filename:"檔案名: assets.bin",fileSize:"檔案大小: {size}",generationTime:"生成時間: {time}",downloadAssets:"下載 assets.bin",flashToDevice:"線上燒錄到設備",flashing:"正在燒錄到設備...",flashingCancel:"取消燒錄",flashingError:"燒錄錯誤",flashingInProgress:"燒錄中,請勿關閉視窗",customFont:"自訂字體",customEmoji:"自訂表情套件",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi,樂鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},of={init:"初始化生成器",font:"處理字體檔案",wakeword:"打包喚醒詞模型",emoji:"處理表情圖片",background:"處理背景圖片",index:"生成索引檔案",spiffs:"建構SPIFFS映射",package:"完成打包"},rf={title:"喚醒詞配置",description:"選擇預設喚醒詞模型或透過命令詞模型自訂喚醒詞。",supportWakeNet9:"您的晶片支援 WakeNet9 模型。",supportWakeNet9s:"您的晶片支援 WakeNet9s 模型。",notSupported:"您的晶片不支援喚醒詞功能。",notice:"注意:",unsupportedMessage:"{chipModel} 晶片不支援喚醒詞功能。如需使用喚醒詞,請選擇 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 晶片。",noWakeword:"關閉喚醒",presetWakeword:"預設喚醒詞",customWakeword:"自訂喚醒詞",selectWakeword:"選擇喚醒詞",placeholder:"選擇喚醒詞...",customSettings:"自訂喚醒詞設定",wakewordName:"喚醒詞名稱",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"喚醒命令",wakewordCommandPlaceholderCN:"拼音空格隔開,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文單詞,不能包含標點,例如:HELLO POTATO",threshold:"靈敏度閾值 (0-100)",thresholdDesc:"越小越靈敏,預設 20",duration:"識別時長",durationDesc:"命令詞最長持續時間",selectModel:"選擇識別模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"請輸入喚醒詞名稱",commandRequired:"請輸入喚醒命令",noPunctuation:"命令不能包含標點符號",durationRange:"時長需在 500-10000ms 之間"},tips:{tipLabel:"提示:",optional:"喚醒詞是可選的,關閉後裝置將無法透過語音喚醒。",wakeNet9sOnly:"C3/C5/C6 晶片僅支援 WakeNet9s 輕量級模型。",wakeNet9Full:"S3/P4 晶片支援完整的 WakeNet9 模型,選擇更多。",customSupport:"自訂喚醒詞使用 MultiNet 模型實現,目前僅支援 ESP32-S3 晶片。"}},gf={resetFailed:"重置失敗,請重新整理頁面重試",generationFailed:"生成失敗: {error}",noFileToDownload:"沒有可下載的檔案",deviceOffline:"設備離線,無法進行燒錄",fileTooLarge:"燒錄失敗:檔案大小 {fileSize}MB 超過 assets 分區大小 {partitionSize}MB,請減少配置內容或使用更大容量的設備。",flashCancelConfirm:"確定要取消燒錄嗎?",oldDataCleared:`檢測到舊版本的表情資料結構已被清除。
|
||
|
||
新版本使用檔案去重技術,可以節省儲存空間。
|
||
|
||
請重新上傳自訂表情圖片。`,incompatibleEmojiData:"檢測到不相容的表情資料,請重新配置"},sf={authTokenMissing:"未找到認證令牌",checkingDeviceStatus:"檢查設備狀態...",deviceOfflineOrUnresponsive:"設備離線或無響應: {error}",unableToGetDeviceStatus:"無法獲取設備狀態",initializingTransferService:"初始化傳輸服務...",initializeTransferFailed:"初始化傳輸服務失敗: {error}",settingDeviceDownloadUrl:"設置設備下載URL...",setDownloadUrlFailed:"設置下載URL失敗: {error}",rebootingDevice:"重啟設備...",waitingForDeviceReboot:"等待設備重啟...",deviceRebootTimeout:"等待設備重啟超時(60秒)",startingFileTransfer:"開始檔案傳輸...",flashCompleted:"燒錄完成!",onlineFlashFailed:"線上燒錄失敗: {error}"},af={online:"線上",offline:"離線",checking:"檢查中...",flashing:"燒錄中...",ready:"就緒",chip:"晶片",board:"開發板",flash:"Flash",screen:"螢幕",signal:{unknown:"未知",strong:"強",medium:"中等",weak:"弱",none:"無訊號"}},If={title:"步驟 1: 晶片型號和螢幕配置",loadingFromDevice:"正在從設備讀取硬體配置...",loadedFromDevice:"已從設備自動讀取硬體配置",manualConfig:"請手動配置硬體參數",loadingTitle:"正在載入設備配置...",loadingDesc:"從設備讀取晶片型號和螢幕解析度",autoLoadedTitle:"設備配置已自動載入",chipModel:"晶片型號",screenWidth:"螢幕寬度",screenHeight:"螢幕高度",colorFormat:"顏色格式:",manualEdit:"手動修改配置",collapseManual:"收起手動配置",manualConfigTitle:"手動配置硬體參數",next:"下一步",selectChip:"請選擇晶片",chipRequired:"晶片型號",widthRequired:"螢幕寬度",heightRequired:"螢幕高度",loadingError:"載入配置時發生錯誤",deviceOffline:"設備未連接或離線",chipModelError:"無法獲取晶片型號,請手動輸入",resolutionError:"無法獲取螢幕解析度,請手動輸入",timeoutError:"載入設備配置超時,請手動輸入",manualConfigDesc:"無法自動讀取設備配置",manualConfigHint:"設備未連接或離線,請手動輸入硬體配置",manualConfigRequired:"請手動輸入硬體配置",resolutionFormatError:"螢幕解析度格式錯誤"},Cf={title:"步驟 2: 主題設計",description:"配置喚醒詞、字體、表情和背景來自訂您的小智AI主題。",previous:"上一步",next:"下一步",tabs:{wakeword:"喚醒詞配置",font:"字體配置",emoji:"表情集合",background:"聊天背景"}},lf={title:"步驟 3: 效果預覽",description:"預覽您的自訂配置在實際設備上的效果。",devicePreview:"設備預覽 (1:1 像素比例)",previewSettings:"預覽設定",previewText:"預覽文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"當前表情",themeMode:"主題模式",lightMode:"淺色",darkMode:"深色",configSummary:"配置摘要",wakeword:"喚醒詞:",font:"字體:",loading:"載入中...",emotion:"表情:",skin:"皮膚:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字體載入中...",configureEmojiFirst:"請先在主題設計中配置表情包",customFont:"自訂字體 {size}px",customEmoji:"自訂表情 {count}張",notConfigured:"未配置",skinLight:"淺色{type}",skinDark:"深色{type}",hideSubtitle:"隱藏字幕:",image:"圖片",color:"顏色"},Bf={title:"聊天背景配置",description:"配置淺色模式和深色模式的聊天背景,支援純色或自訂圖片。",lightMode:"淺色模式背景",darkMode:"深色模式背景",solidBackground:"純色背景",imageBackground:"圖片背景",backgroundColor:"背景顏色:",textColor:"文字顏色:",backgroundImage:"背景圖片:",clickOrDragToUpload:"點擊或拖拽上傳背景圖片",removeImage:"移除圖片",backgroundPreview:"背景預覽",lightModePreview:"淺色模式",darkModePreview:"深色模式",chatArea:"聊天內容區域",quickConfig:"快捷配置",defaultColors:"預設配色",stoneTexture:"石墨質感",sunnyColors:"暖陽配色",skyBlue:"天空藍調",romanticPink:"浪漫粉色",selectValidImage:"請選擇有效的圖片檔案"},Qf={title:"表情集合配置",description:"選擇預設表情包或自定義表情圖片。每個表情包包含21種不同情緒的表情。",noEmojiPack:"無表情包",noEmojiPackDescription:"不配置表情包,打包時只包含字體和背景資源。",presetEmojiPack:"預設表情包",customEmojiPack:"自定義表情包",selectPresetEmojiPack:"選擇預設表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"來自Twitter的高品質表情符號集,適合清晰顯示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"預覽",select:"選擇",customEmojiTitle:"自定義表情包",customEmojiDescription:"上傳您自己的表情圖片。每種情緒需要一張圖片。",uploadInstructions:"點擊或拖拽上傳表情圖片 (PNG/JPG/WEBP)",supportedFormats:"支援格式: PNG, JPG, WEBP。推薦尺寸: 64×64像素",emotionMapping:"情緒映射",uploadAllEmotions:"請為所有情緒上傳表情圖片",maxImageWidth:"最大圖片寬度 (px)",maxImageHeight:"最大圖片高度 (px)",clickToUpload:"點擊上傳",orDragDrop:"或拖拽上傳",clickToUploadOrDrag:"點擊上傳或拖拽到此處",remove:"移除",replace:"替換",selectValidEmojiImage:"請選擇有效的表情圖片檔案",selectValidFormat:"請選擇有效的PNG或GIF格式圖片",maxFileSize:"檔案大小不能超過1MB",invalidFormat:"不支援的圖片格式。請使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上傳表情圖片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定義表情包配置",neutralRequiredNotice:"* 必須上傳 neutral 預設表情,其他表情可選。如果不上傳其他表情,將使用預設表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了與 {existingEmotions} 相同的圖片檔案(共享儲存)",fileDeleted:"檔案 {fileHash} 已刪除(無其他表情引用)",fileRetained:"檔案 {fileHash} 仍被其他表情使用,保留檔案",imageLoadFailed:"表情圖片載入失敗",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"}},cf={title:"字體配置",description:"選擇預設字體或上傳自訂字體檔案。",noFonts:"無字體",noFontsDescription:"不使用字體配置,裝置將使用預設字體",presetFonts:"預設字體",customFonts:"自訂字體",selectPresetFont:"選擇預設字體",fontSize:"字號:",bitDepth:"位元深度:",charset:"字元集:",fileSize:"檔案大小:",customFontConfig:"自訂字體配置",fontFile:"字體檔案",clickSelectFontFile:"點擊選擇字體檔案",orDragFileHere:"或拖拽檔案到此處",supportedFormats:"支援 TTF, WOFF, WOFF2 格式",removeFile:"移除檔案",fontSizePx:"字號 (px)",range:"範圍:",bitDepthBpp:"位元深度 (BPP)",monochrome:"1 bpp (單色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字元集",deepseekR1:"DeepSeek R1 (7405字元)",gb2312:"GB2312 (7445字元)",qwen18409:"Qwen (18409字元)",latin1:"Latin1 (190字元)",fullCharset:"完整字元集 (字體檔案的所有字元)",hideSubtitle:"隱藏字幕",hideSubtitleDescription:"對話時不顯示即時文字字幕",selectValidFontFile:"請選擇有效的字體檔案 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠體 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠體 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠體 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠體 30px",font_noto_qwen_14_1:"思源黑體 14px",font_noto_qwen_16_4:"思源黑體 16px",font_noto_qwen_20_4:"思源黑體 20px",font_noto_qwen_30_4:"思源黑體 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Ef={app:zh,common:$h,header:Af,configNotice:ef,steps:tf,generateModal:nf,progressSteps:of,wakewordConfig:rf,errors:gf,flashProgress:sf,device:af,chipConfig:If,themeDesign:Cf,generateSummary:lf,backgroundConfig:Bf,emojiConfig:Qf,fontConfig:cf},uf={title:"小智 AI カスタマイズ"},hf={cancel:"キャンセル",confirm:"確認",close:"閉じる",start:"開始",download:"ダウンロード",generate:"生成",reset:"リセット",yes:"はい",no:"いいえ",loading:"読み込み中...",error:"エラー",success:"成功",warning:"警告",info:"情報",next:"次へ",previous:"前へ",finish:"完了",retry:"再試行",ok:"OK",other:"その他"},ff={title:"小智 AI カスタマイズ"},df={title:"保存された設定を検出",message:"設定が自動的に復元されました。中断したところから続行するか、最初からやり直すことができます。",restart:"最初からやり直す"},pf={chip:"チップ設定",theme:"テーマデザイン",generate:"プレビュー&生成"},mf={title:"assets.binを生成",confirmConfig:"設定を確認してください",chipModel:"チップモデル:",resolution:"解像度:",wakeword:"ウェイクワード:",font:"フォント:",emoji:"絵文字パック:",fileList:"含まれるファイル一覧",estimated:"推定",compressed:"圧縮前",generating:"assets.binを生成中...",progress:"{progress}% 完了",completed:"assets.binファイルの準備ができました",filename:"ファイル名: assets.bin",fileSize:"ファイルサイズ: {size}",generationTime:"生成時間: {time}",downloadAssets:"assets.binをダウンロード",flashToDevice:"デバイスにオンライン書き込み",flashing:"デバイスに書き込み中...",flashingCancel:"書き込みをキャンセル",flashingError:"書き込みエラー",flashingInProgress:"書き込み中、ウィンドウを閉じないでください",customFont:"カスタムフォント",customEmoji:"カスタム絵文字パック",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"こんにちは小智",wn9_nihaoxiaozhi_tts:"こんにちは小智",wn9_alexa:"アレクサ"}},yf={init:"ジェネレーターを初期化",font:"フォントファイルを処理",wakeword:"ウェイクワードモデルをパッケージ化",emoji:"絵文字画像を処理",background:"背景画像を処理",index:"インデックスファイルを生成",spiffs:"SPIFFSマッピングを構築",package:"パッケージ化を完了"},wf={title:"ウェイクワード設定",description:"プリセットのウェイクワードを選択するか、コマンド認識モデルを使用してカスタマイズします。",supportWakeNet9:"チップはWakeNet9モデルをサポートしています。",supportWakeNet9s:"チップはWakeNet9sモデルをサポートしています。",notSupported:"チップはウェイクワード機能をサポートしていません。",notice:"注意:",unsupportedMessage:"{chipModel}チップはウェイクワード機能をサポートしていません。ウェイクワードを使用する必要がある場合は、ESP32-S3、ESP32-P4、またはESP32-C3/C5/C6チップを選択してください。",noWakeword:"起動を無効にする",presetWakeword:"プリセット",customWakeword:"カスタム",selectWakeword:"ウェイクワードを選択",placeholder:"選択してください...",customSettings:"カスタムウェイクワード設定",wakewordName:"ウェイクワード名",wakewordNamePlaceholder:"例:小智 / Potato",wakewordCommand:"ウェイクコマンド",wakewordCommandPlaceholderCN:"ピンインをスペースで区切る。例:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英語の単語。句読点は含めない。例:HELLO POTATO",threshold:"感度しきい値 (0-100)",thresholdDesc:"値が小さいほど感度が高くなります。デフォルトは20",duration:"認識時間",durationDesc:"コマンド認識の最大継続時間",selectModel:"認識モデルを選択",mn6cn:"MultiNet6 (中国語)",mn6en:"MultiNet6 (英語)",mn7cn:"MultiNet7 (中国語)",mn7en:"MultiNet7 (英語)",errors:{nameRequired:"ウェイクワード名を入力してください",commandRequired:"ウェイクコマンドを入力してください",noPunctuation:"コマンドに句読点を含めることはできません",durationRange:"時間は500〜10000msの間で設定してください"},tips:{tipLabel:"ヒント:",optional:"ウェイクワードはオプションです。無効にすると、デバイスは音声で起動できなくなります。",wakeNet9sOnly:"C3/C5/C6チップはWakeNet9s軽量モデルしかサポートしていません。",wakeNet9Full:"S3/P4チップは完全なWakeNet9モデルをサポートし、より多くの選択肢があります。",customSupport:"カスタムウェイクワードはMultiNetモデルを使用しており、現在はESP32-S3チップのみをサポートしています。"}},Df={resetFailed:"リセットに失敗しました、ページを更新して再試行してください",generationFailed:"生成に失敗しました: {error}",noFileToDownload:"ダウンロード可能なファイルがありません",deviceOffline:"デバイスがオフラインで書き込みできません",fileTooLarge:"書き込みに失敗しました: ファイルサイズ{fileSize}MBがassetsパーティションサイズ{partitionSize}MBを超えています。設定内容を減らすか、より大容量のデバイスを使用してください。",flashCancelConfirm:"書き込みをキャンセルしてもよろしいですか?",oldDataCleared:`古いバージョンの絵文字データ構造が検出され、クリアされました。
|
||
|
||
新しいバージョンはファイル重複除去技術を使用してストレージスペースを節約します。
|
||
|
||
カスタム絵文字画像を再アップロードしてください。`,incompatibleEmojiData:"互換性のない絵文字データを検出しました、再設定してください"},kf={authTokenMissing:"認証トークンが見つかりません",checkingDeviceStatus:"デバイスの状態を確認中...",deviceOfflineOrUnresponsive:"デバイスがオフラインまたは応答なし: {error}",unableToGetDeviceStatus:"デバイスの状態を取得できません",initializingTransferService:"転送サービスを初期化中...",initializeTransferFailed:"転送サービスの初期化に失敗しました: {error}",settingDeviceDownloadUrl:"デバイスダウンロードURLを設定中...",setDownloadUrlFailed:"ダウンロードURLの設定に失敗しました: {error}",rebootingDevice:"デバイスを再起動中...",waitingForDeviceReboot:"デバイスの再起動を待機中...",deviceRebootTimeout:"デバイスの再起動タイムアウト(60秒)",startingFileTransfer:"ファイル転送を開始中...",flashCompleted:"書き込み完了!",onlineFlashFailed:"オンライン書き込みに失敗しました: {error}"},vf={online:"オンライン",offline:"オフライン",checking:"確認中...",flashing:"書き込み中...",ready:"準備完了",chip:"チップ",board:"ボード",flash:"Flash",screen:"画面",signal:{unknown:"不明",strong:"強",medium:"中",weak:"弱",none:"信号なし"}},Ff={title:"ステップ1: チップモデルと画面設定",loadingFromDevice:"デバイスからハードウェア設定を読み込み中...",loadedFromDevice:"デバイスからハードウェア設定が自動読み込みされました",manualConfig:"ハードウェアパラメータを手動で設定してください",loadingTitle:"デバイス設定を読み込み中...",loadingDesc:"デバイスからチップモデルと画面解像度を読み取り中",autoLoadedTitle:"デバイス設定が自動読み込みされました",chipModel:"チップモデル",screenWidth:"画面幅",screenHeight:"画面高",colorFormat:"色形式:",manualEdit:"手動設定",collapseManual:"手動設定を折りたたむ",manualConfigTitle:"手動ハードウェア設定",next:"次へ",selectChip:"チップを選択",chipRequired:"チップモデル",widthRequired:"画面幅",heightRequired:"画面高",loadingError:"設定読み込みエラー",deviceOffline:"デバイスが接続されていないかオフラインです",chipModelError:"チップモデルを取得できません、手動で入力してください",resolutionError:"画面解像度を取得できません、手動で入力してください",timeoutError:"設定読み込みタイムアウト、手動で入力してください",manualConfigDesc:"デバイスの設定を自動読み取りできません",manualConfigHint:"デバイスが接続されていないかオフラインです、ハードウェア設定を手動で入力してください",manualConfigRequired:"ハードウェア設定を手動で入力してください",resolutionFormatError:"画面解像度形式エラー"},Sf={title:"ステップ2: テーマデザイン",description:"ウェイクワード、フォント、絵文字、背景を設定して、小智AIテーマをカスタマイズします。",previous:"前へ",next:"次へ",tabs:{wakeword:"ウェイクワード設定",font:"フォント設定",emoji:"絵文字コレクション",background:"チャット背景"}},bf={title:"ステップ3: プレビュー",description:"実際のデバイスでのカスタム設定の効果をプレビューします。",devicePreview:"デバイスプレビュー(1:1ピクセル比)",previewSettings:"プレビュー設定",previewText:"プレビューテキスト",defaultPreviewText:"こんにちは、私はあなたの友人、シャオズーです!",currentEmotion:"現在の感情",themeMode:"テーマモード",lightMode:"ライト",darkMode:"ダーク",configSummary:"設定概要",wakeword:"ウェイクワード:",font:"フォント:",loading:"読み込み中...",emotion:"感情:",skin:"スキン:",previous:"前へ",generate:"assets.binを生成",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"},noEmotionConfigured:"感情が設定されていません",fontLoading:"フォント読み込み中...",configureEmojiFirst:"テーマデザインで絵文字パックを設定してください",customFont:"カスタムフォント {size}px",customEmoji:"カスタム絵文字 {count}画像",notConfigured:"未設定",skinLight:"ライト{type}",skinDark:"ダーク{type}",hideSubtitle:"字幕を隠す:",image:"画像",color:"色"},Rf={title:"チャット背景設定",description:"ライトモードとダークモードのチャット背景を設定し、単色またはカスタム画像をサポートします。",lightMode:"ライトモード背景",darkMode:"ダークモード背景",solidBackground:"単色背景",imageBackground:"画像背景",backgroundColor:"背景色:",textColor:"文字色:",backgroundImage:"背景画像:",clickOrDragToUpload:"クリックまたはドラッグして背景画像をアップロード",removeImage:"画像を削除",backgroundPreview:"背景プレビュー",lightModePreview:"ライトモード",darkModePreview:"ダークモード",chatArea:"チャットコンテンツエリア",quickConfig:"クイック設定",defaultColors:"デフォルト色",stoneTexture:"石質感",sunnyColors:"晴れ色",skyBlue:"空色",romanticPink:"ロマンチックピンク",selectValidImage:"有効な画像ファイルを選択してください"},Nf={title:"絵文字コレクション設定",description:"プリセット絵文字パックを選択するか、カスタム絵文字画像をアップロードします。各絵文字パックには21種類の異なる感情表現が含まれます。",noEmojiPack:"絵文字パックなし",noEmojiPackDescription:"絵文字パックを設定せず、パッケージにはフォントと背景リソースのみを含めます。",presetEmojiPack:"プリセット絵文字パック",customEmojiPack:"カスタム絵文字パック",selectPresetEmojiPack:"プリセット絵文字パックを選択",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Twitterの高品質絵文字セット、鮮明な表示に最適",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter絵文字パック、{size}×{size}ピクセル",size:"サイズ",preview:"プレビュー",select:"選択",customEmojiTitle:"カスタム絵文字パック",customEmojiDescription:"独自の絵文字画像をアップロードします。各感情に1つの画像が必要です。",uploadInstructions:"クリックまたはドラッグして絵文字画像をアップロード(PNG/JPG/WEBP)",supportedFormats:"サポート形式: PNG, JPG, WEBP。推奨サイズ: 64×64ピクセル",emotionMapping:"感情マッピング",uploadAllEmotions:"すべての感情の絵文字画像をアップロードしてください",maxImageWidth:"最大画像幅(px)",maxImageHeight:"最大画像高(px)",clickToUpload:"クリックしてアップロード",orDragDrop:"またはドラッグ&ドロップ",clickToUploadOrDrag:"クリックしてアップロードまたはここにドラッグ",remove:"削除",replace:"置き換え",selectValidEmojiImage:"有効な絵文字画像ファイルを選択してください",selectValidFormat:"有効なPNGまたはGIF形式の画像を選択してください",maxFileSize:"ファイルサイズは1MBを超えないでください",invalidFormat:"サポートされていない画像形式です。PNG、JPG、またはWEBPを使用してください。",required:"必須",uploadEmojiImages:"絵文字画像をアップロード(GIFにはPSRAMが必要)",customEmojiPackConfig:"カスタム絵文字パック設定",neutralRequiredNotice:"* 中立のデフォルト感情をアップロードする必要があります、他の感情はオプションです。アップロードしない場合、デフォルト感情が代わりに使用されます。",sharedFileMessage:"感情{emotionKey}は{existingEmotions}と同じ画像ファイルを使用しています(共有ストレージ)",fileDeleted:"ファイル{fileHash}が削除されました(他の感情参照なし)",fileRetained:"ファイル{fileHash}は他の感情でまだ使用されているため、保持されます",imageLoadFailed:"絵文字画像の読み込みに失敗しました",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"}},Gf={title:"フォント設定",description:"プリセットフォントを選択するか、カスタムフォントファイルをアップロードします。",noFonts:"フォントなし",noFontsDescription:"フォント設定を使用しない、デバイスはデフォルトのフォントを使用します",presetFonts:"プリセットフォント",customFonts:"カスタムフォント",selectPresetFont:"プリセットフォントを選択",fontSize:"フォントサイズ:",bitDepth:"ビット深度:",charset:"文字セット:",fileSize:"ファイルサイズ:",customFontConfig:"カスタムフォント設定",fontFile:"フォントファイル",clickSelectFontFile:"クリックしてフォントファイルを選択",orDragFileHere:"またはファイルをここにドラッグ",supportedFormats:"TTF、WOFF、WOFF2形式をサポート",removeFile:"ファイルを削除",fontSizePx:"フォントサイズ(px)",range:"範囲:",bitDepthBpp:"ビット深度(BPP)",monochrome:"1 bpp(モノクロ)",fourColors:"2 bpp(4色)",sixteenColors:"4 bpp(16色)",characterSet:"文字セット",deepseekR1:"DeepSeek R1(7405文字)",gb2312:"GB2312(7445文字)",qwen18409:"Qwen(18409文字)",latin1:"Latin1(190文字)",fullCharset:"完全な文字セット(フォントファイルのすべての文字)",hideSubtitle:"字幕を隠す",hideSubtitleDescription:"会話中にリアルタイム字幕を表示しない",selectValidFontFile:"有効なフォントファイルを選択してください(TTF、WOFF、WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Lf={app:uf,common:hf,header:ff,configNotice:df,steps:pf,generateModal:mf,progressSteps:yf,wakewordConfig:wf,errors:Df,flashProgress:kf,device:vf,chipConfig:Ff,themeDesign:Sf,generateSummary:bf,backgroundConfig:Rf,emojiConfig:Nf,fontConfig:Gf},Uf={title:"Xiaozhi AI Tùy chỉnh"},Mf={cancel:"Hủy",confirm:"Xác nhận",close:"Đóng",start:"Bắt đầu",download:"Tải xuống",generate:"Tạo",reset:"Đặt lại",yes:"Có",no:"Không",loading:"Đang tải...",error:"Lỗi",success:"Thành công",warning:"Cảnh báo",info:"Thông tin",next:"Tiếp theo",previous:"Trước đó",finish:"Hoàn thành",retry:"Thử lại",ok:"OK",other:"Khác"},xf={title:"Xiaozhi AI Tùy chỉnh"},Jf={title:"Phát hiện cấu hình đã lưu",message:"Cấu hình đã được khôi phục tự động. Bạn có thể tiếp tục từ nơi đã dừng hoặc bắt đầu lại.",restart:"Bắt đầu lại"},Tf={chip:"Cấu hình chip",theme:"Thiết kế chủ đề",generate:"Xem trước & Tạo"},Hf={title:"Tạo assets.bin",confirmConfig:"Vui lòng xác nhận cấu hình của bạn",chipModel:"Mô hình chip:",resolution:"Độ phân giải:",wakeword:"Từ đánh thức:",font:"Phông chữ:",emoji:"Gói biểu tượng cảm xúc:",fileList:"Danh sách tệp được bao gồm",estimated:"Ước tính",compressed:"Trước khi nén",generating:"Đang tạo assets.bin...",progress:"{progress}% Hoàn thành",completed:"Tệp assets.bin của bạn đã sẵn sàng",filename:"Tên tệp: assets.bin",fileSize:"Kích thước tệp: {size}",generationTime:"Thời gian tạo: {time}",downloadAssets:"Tải xuống assets.bin",flashToDevice:"Flash trực tuyến vào thiết bị",flashing:"Đang flash vào thiết bị...",flashingCancel:"Hủy flash",flashingError:"Lỗi flash",flashingInProgress:"Đang flash, vui lòng không đóng cửa sổ",customFont:"Phông chữ tùy chỉnh",customEmoji:"Gói biểu tượng cảm xúc tùy chỉnh",notConfigured:"Chưa cấu hình",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Xin chào Xiaozhi",wn9_nihaoxiaozhi_tts:"Xin chào Xiaozhi",wn9_alexa:"Alexa"}},Yf={init:"Khởi tạo trình tạo",font:"Xử lý tệp phông chữ",wakeword:"Đóng gói mô hình từ đánh thức",emoji:"Xử lý hình ảnh biểu tượng cảm xúc",background:"Xử lý hình ảnh nền",index:"Tạo tệp chỉ mục",spiffs:"Xây dựng ánh xạ SPIFFS",package:"Hoàn thành đóng gói"},_f={title:"Cấu hình từ đánh thức",description:"Chọn mô hình từ đánh thức đặt sẵn hoặc tùy chỉnh thông qua mô hình lệnh.",supportWakeNet9:"Chip của bạn hỗ trợ mô hình WakeNet9.",supportWakeNet9s:"Chip của bạn hỗ trợ mô hình WakeNet9s.",notSupported:"Chip của bạn không hỗ trợ chức năng từ đánh thức.",notice:"Lưu ý:",unsupportedMessage:"Chip {chipModel} không hỗ trợ chức năng từ đánh thức. Nếu bạn cần sử dụng từ đánh thức, vui lòng chọn chip ESP32-S3, ESP32-P4 hoặc ESP32-C3/C5/C6.",noWakeword:"Tắt đánh thức",presetWakeword:"Mặc định",customWakeword:"Tùy chỉnh",selectWakeword:"Chọn từ đánh thức",placeholder:"Chọn một từ...",customSettings:"Cài đặt từ đánh thức tùy chỉnh",wakewordName:"Tên từ đánh thức",wakewordNamePlaceholder:"VD: Xiaozhi / Potato",wakewordCommand:"Lệnh đánh thức",wakewordCommandPlaceholderCN:"Pinyin cách nhau bằng dấu cách, VD: ni hao xiao zhi",wakewordCommandPlaceholderEN:"Từ tiếng Anh, không dấu câu, VD: HELLO POTATO",threshold:"Ngưỡng nhạy (0-100)",thresholdDesc:"Càng nhỏ càng nhạy, mặc định là 20",duration:"Thời gian nhận diện",durationDesc:"Thời gian tối đa để nhận diện lệnh",selectModel:"Chọn mô hình nhận diện",mn6cn:"MultiNet6 (Tiếng Trung)",mn6en:"MultiNet6 (Tiếng Anh)",mn7cn:"MultiNet7 (Tiếng Trung)",mn7en:"MultiNet7 (Tiếng Anh)",errors:{nameRequired:"Vui lòng nhập tên từ đánh thức",commandRequired:"Vui lòng nhập lệnh đánh thức",noPunctuation:"Lệnh không thể chứa dấu câu",durationRange:"Thời gian phải từ 500-10000ms"},tips:{tipLabel:"Mẹo:",optional:"Từ đánh thức là tùy chọn. Nếu tắt, thiết bị sẽ không thể đánh thức bằng giọng nói.",wakeNet9sOnly:"Chip C3/C5/C6 chỉ hỗ trợ mô hình nhẹ WakeNet9s.",wakeNet9Full:"Chip S3/P4 hỗ trợ mô hình WakeNet9 hoàn chỉnh với nhiều lựa chọn hơn.",customSupport:"Từ đánh thức tùy chỉnh sử dụng mô hình MultiNet, hiện chỉ hỗ trợ chip ESP32-S3."}},Kf={resetFailed:"Đặt lại thất bại, vui lòng làm mới trang và thử lại",generationFailed:"Tạo thất bại: {error}",noFileToDownload:"Không có tệp nào để tải xuống",deviceOffline:"Thiết bị ngoại tuyến và không thể flash",fileTooLarge:"Flash thất bại: Kích thước tệp {fileSize}MB vượt quá kích thước phân vùng assets {partitionSize}MB. Vui lòng giảm nội dung cấu hình hoặc sử dụng thiết bị có dung lượng lớn hơn.",flashCancelConfirm:"Bạn có chắc chắn muốn hủy flash?",oldDataCleared:`Đã phát hiện và xóa cấu trúc dữ liệu biểu tượng cảm xúc phiên bản cũ.
|
||
|
||
Phiên bản mới sử dụng công nghệ loại bỏ trùng lặp tệp để tiết kiệm không gian lưu trữ.
|
||
|
||
Vui lòng tải lại hình ảnh biểu tượng cảm xúc tùy chỉnh.`,incompatibleEmojiData:"Phát hiện dữ liệu biểu tượng cảm xúc không tương thích, vui lòng cấu hình lại"},Pf={authTokenMissing:"Không tìm thấy mã thông báo xác thực",checkingDeviceStatus:"Đang kiểm tra trạng thái thiết bị...",deviceOfflineOrUnresponsive:"Thiết bị ngoại tuyến hoặc không phản hồi: {error}",unableToGetDeviceStatus:"Không thể lấy trạng thái thiết bị",initializingTransferService:"Đang khởi tạo dịch vụ truyền tải...",initializeTransferFailed:"Khởi tạo dịch vụ truyền tải thất bại: {error}",settingDeviceDownloadUrl:"Đang thiết lập URL tải xuống thiết bị...",setDownloadUrlFailed:"Thiết lập URL tải xuống thất bại: {error}",rebootingDevice:"Đang khởi động lại thiết bị...",waitingForDeviceReboot:"Đang chờ thiết bị khởi động lại...",deviceRebootTimeout:"Hết thời gian chờ thiết bị khởi động lại (60 giây)",startingFileTransfer:"Đang bắt đầu truyền tải tệp...",flashCompleted:"Flash hoàn thành!",onlineFlashFailed:"Flash trực tuyến thất bại: {error}"},Of={online:"Trực tuyến",offline:"Ngoại tuyến",checking:"Đang kiểm tra...",flashing:"Đang flash...",ready:"Sẵn sàng",chip:"Chip",board:"Bo mạch",flash:"Flash",screen:"Màn hình",signal:{unknown:"Không xác định",strong:"Mạnh",medium:"Trung bình",weak:"Yếu",none:"Không có tín hiệu"}},Vf={title:"Bước 1: Cấu hình mô hình chip và màn hình",loadingFromDevice:"Đang tải cấu hình phần cứng từ thiết bị...",loadedFromDevice:"Cấu hình phần cứng được tải tự động từ thiết bị",manualConfig:"Vui lòng cấu hình các thông số phần cứng theo cách thủ công",loadingTitle:"Đang tải cấu hình thiết bị...",loadingDesc:"Đang đọc mô hình chip và độ phân giải màn hình từ thiết bị",autoLoadedTitle:"Cấu hình thiết bị được tải tự động",chipModel:"Mô hình chip",screenWidth:"Chiều rộng màn hình",screenHeight:"Chiều cao màn hình",colorFormat:"Định dạng màu:",manualEdit:"Cấu hình thủ công",collapseManual:"Thu gọn cấu hình thủ công",manualConfigTitle:"Cấu hình phần cứng thủ công",next:"Tiếp theo",selectChip:"Chọn chip",chipRequired:"Mô hình chip",widthRequired:"Chiều rộng màn hình",heightRequired:"Chiều cao màn hình",loadingError:"Lỗi tải cấu hình",deviceOffline:"Thiết bị chưa kết nối hoặc ngoại tuyến",chipModelError:"Không thể lấy mô hình chip, vui lòng nhập thủ công",resolutionError:"Không thể lấy độ phân giải màn hình, vui lòng nhập thủ công",timeoutError:"Hết thời gian tải cấu hình, vui lòng nhập thủ công",manualConfigDesc:"Không thể tự động đọc cấu hình thiết bị",manualConfigHint:"Thiết bị chưa kết nối hoặc ngoại tuyến, vui lòng nhập cấu hình phần cứng thủ công",manualConfigRequired:"Vui lòng nhập cấu hình phần cứng thủ công",resolutionFormatError:"Lỗi định dạng độ phân giải màn hình"},Wf={title:"Bước 2: Thiết kế chủ đề",description:"Cấu hình từ đánh thức, phông chữ, biểu tượng cảm xúc và nền để tùy chỉnh chủ đề Xiaozhi AI của bạn.",previous:"Trước đó",next:"Tiếp theo",tabs:{wakeword:"Cấu hình từ đánh thức",font:"Cấu hình phông chữ",emoji:"Bộ sưu tập biểu tượng cảm xúc",background:"Nền trò chuyện"}},qf={title:"Bước 3: Xem trước",description:"Xem trước hiệu ứng của cấu hình tùy chỉnh trên thiết bị thực tế.",devicePreview:"Xem trước thiết bị (tỷ lệ pixel 1:1)",previewSettings:"Cài đặt xem trước",previewText:"Văn bản xem trước",defaultPreviewText:"Xin chào, tôi là bạn của bạn Xiaozhi!",currentEmotion:"Cảm xúc hiện tại",themeMode:"Chế độ chủ đề",lightMode:"Sáng",darkMode:"Tối",configSummary:"Tóm tắt cấu hình",wakeword:"Từ đánh thức:",font:"Phông chữ:",loading:"Đang tải...",emotion:"Cảm xúc:",skin:"Da:",previous:"Trước đó",generate:"Tạo assets.bin",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"},noEmotionConfigured:"Chưa cấu hình cảm xúc",fontLoading:"Đang tải phông chữ...",configureEmojiFirst:"Vui lòng cấu hình gói biểu tượng cảm xúc trong thiết kế chủ đề trước",customFont:"Phông chữ tùy chỉnh {size}px",customEmoji:"Biểu tượng cảm xúc tùy chỉnh {count} hình ảnh",notConfigured:"Chưa cấu hình",skinLight:"Sáng {type}",skinDark:"Tối {type}",hideSubtitle:"Ẩn phụ đề:",image:"Hình ảnh",color:"Màu sắc"},jf={title:"Cấu hình nền trò chuyện",description:"Cấu hình nền trò chuyện cho chế độ sáng và tối, hỗ trợ màu đơn hoặc hình ảnh tùy chỉnh.",lightMode:"Nền chế độ sáng",darkMode:"Nền chế độ tối",solidBackground:"Nền màu đơn",imageBackground:"Nền hình ảnh",backgroundColor:"Màu nền:",textColor:"Màu chữ:",backgroundImage:"Hình ảnh nền:",clickOrDragToUpload:"Nhấp hoặc kéo để tải lên hình ảnh nền",removeImage:"Xóa hình ảnh",backgroundPreview:"Xem trước nền",lightModePreview:"Chế độ sáng",darkModePreview:"Chế độ tối",chatArea:"Khu vực nội dung trò chuyện",quickConfig:"Cấu hình nhanh",defaultColors:"Màu mặc định",stoneTexture:"Kết cấu đá",sunnyColors:"Màu nắng",skyBlue:"Xanh trời",romanticPink:"Hồng lãng mạn",selectValidImage:"Vui lòng chọn tệp hình ảnh hợp lệ"},Zf={title:"Cấu hình bộ sưu tập biểu tượng cảm xúc",description:"Chọn gói biểu tượng cảm xúc đặt sẵn hoặc hình ảnh biểu tượng cảm xúc tùy chỉnh. Mỗi gói biểu tượng cảm xúc chứa 21 biểu cảm cảm xúc khác nhau.",noEmojiPack:"Không có gói biểu tượng cảm xúc",noEmojiPackDescription:"Không cấu hình gói biểu tượng cảm xúc, chỉ bao gồm phông chữ và tài nguyên nền trong gói.",presetEmojiPack:"Gói biểu tượng cảm xúc đặt sẵn",customEmojiPack:"Gói biểu tượng cảm xúc tùy chỉnh",selectPresetEmojiPack:"Chọn gói biểu tượng cảm xúc đặt sẵn",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Bộ biểu tượng cảm xúc chất lượng cao từ Twitter, hoàn hảo để hiển thị rõ ràng",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Gói biểu tượng cảm xúc Twitter, {size}×{size} pixel",size:"Kích thước",preview:"Xem trước",select:"Chọn",customEmojiTitle:"Gói biểu tượng cảm xúc tùy chỉnh",customEmojiDescription:"Tải lên hình ảnh biểu tượng cảm xúc của riêng bạn. Mỗi cảm xúc cần một hình ảnh.",uploadInstructions:"Nhấp hoặc kéo để tải lên hình ảnh biểu tượng cảm xúc (PNG/JPG/WEBP)",supportedFormats:"Định dạng được hỗ trợ: PNG, JPG, WEBP. Kích thước khuyến nghị: 64×64 pixel",emotionMapping:"Ánh xạ cảm xúc",uploadAllEmotions:"Vui lòng tải lên hình ảnh biểu tượng cảm xúc cho tất cả cảm xúc",maxImageWidth:"Chiều rộng hình ảnh tối đa (px)",maxImageHeight:"Chiều cao hình ảnh tối đa (px)",clickToUpload:"Nhấp để tải lên",orDragDrop:"hoặc kéo và thả",clickToUploadOrDrag:"Nhấp để tải lên hoặc kéo vào đây",remove:"Xóa",replace:"Thay thế",selectValidEmojiImage:"Vui lòng chọn tệp hình ảnh biểu tượng cảm xúc hợp lệ",selectValidFormat:"Vui lòng chọn hình ảnh định dạng PNG hoặc GIF hợp lệ",maxFileSize:"Kích thước tệp không được vượt quá 1MB",invalidFormat:"Định dạng hình ảnh không được hỗ trợ. Vui lòng sử dụng PNG, JPG hoặc WEBP.",required:"Bắt buộc",uploadEmojiImages:"Tải lên hình ảnh biểu tượng cảm xúc (GIF cần PSRAM)",customEmojiPackConfig:"Cấu hình gói biểu tượng cảm xúc tùy chỉnh",neutralRequiredNotice:"* Phải tải lên cảm xúc mặc định trung lập, các cảm xúc khác là tùy chọn. Nếu không tải lên, cảm xúc mặc định sẽ được sử dụng thay thế.",sharedFileMessage:"Cảm xúc {emotionKey} sử dụng cùng tệp hình ảnh với {existingEmotions} (lưu trữ chia sẻ)",fileDeleted:"Tệp {fileHash} đã bị xóa (không có tham chiếu cảm xúc khác)",fileRetained:"Tệp {fileHash} vẫn được sử dụng bởi các cảm xúc khác, được giữ lại",imageLoadFailed:"Không tải được hình ảnh biểu tượng cảm xúc",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"}},Xf={title:"Cấu hình phông chữ",description:"Chọn phông chữ đặt sẵn hoặc tải lên tệp phông chữ tùy chỉnh.",noFonts:"Không có phông chữ",noFontsDescription:"Không sử dụng cấu hình phông chữ, thiết bị sẽ sử dụng phông chữ mặc định",presetFonts:"Phông chữ đặt sẵn",customFonts:"Phông chữ tùy chỉnh",selectPresetFont:"Chọn phông chữ đặt sẵn",fontSize:"Kích thước phông chữ:",bitDepth:"Độ sâu bit:",charset:"Bộ ký tự:",fileSize:"Kích thước tệp:",customFontConfig:"Cấu hình phông chữ tùy chỉnh",fontFile:"Tệp phông chữ",clickSelectFontFile:"Nhấp để chọn tệp phông chữ",orDragFileHere:"hoặc kéo tệp vào đây",supportedFormats:"Hỗ trợ định dạng TTF, WOFF, WOFF2",removeFile:"Xóa tệp",fontSizePx:"Kích thước phông chữ (px)",range:"Phạm vi:",bitDepthBpp:"Độ sâu bit (BPP)",monochrome:"1 bpp (Đơn sắc)",fourColors:"2 bpp (4 màu)",sixteenColors:"4 bpp (16 màu)",characterSet:"Bộ ký tự",deepseekR1:"DeepSeek R1 (7405 ký tự)",gb2312:"GB2312 (7445 ký tự)",qwen18409:"Qwen (18409 ký tự)",latin1:"Latin1 (190 ký tự)",fullCharset:"Bộ ký tự đầy đủ (Tất cả ký tự trong tệp phông chữ)",hideSubtitle:"Ẩn phụ đề",hideSubtitleDescription:"Không hiển thị phụ đề văn bản trong khi trò chuyện",selectValidFontFile:"Vui lòng chọn tệp phông chữ hợp lệ (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},zf={app:Uf,common:Mf,header:xf,configNotice:Jf,steps:Tf,generateModal:Hf,progressSteps:Yf,wakewordConfig:_f,errors:Kf,flashProgress:Pf,device:Of,chipConfig:Vf,themeDesign:Wf,generateSummary:qf,backgroundConfig:jf,emojiConfig:Zf,fontConfig:Xf},$f={en:Gh,"zh-CN":Xh,"zh-TW":Ef,ja:Lf,vi:zf},Rn=[{code:"en",name:"English",flag:"🇺🇸"},{code:"zh-CN",name:"简体中文",flag:"🇨🇳"},{code:"zh-TW",name:"繁體中文",flag:"🇹🇼"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"vi",name:"Tiếng Việt",flag:"🇻🇳"}];function Ad(){const A=navigator.language||navigator.userLanguage;return{"zh-CN":"zh-CN","zh-TW":"zh-TW","zh-HK":"zh-TW",zh:"zh-CN",ja:"ja",vi:"vi",en:"en","en-US":"en","en-GB":"en"}[A]||"en"}const ed={class:"relative"},td={class:"py-1"},id=["onClick"],nd={class:"mr-3"},od={key:0,class:"ml-auto w-4 h-4 text-blue-600",fill:"currentColor",viewBox:"0 0 20 20"},rd={__name:"LanguageSelector",setup(A){const{locale:e}=ve(),t=EA(!1),i=hA(()=>Rn.find(s=>s.code===e.value)||Rn[0]),n=()=>{t.value=!t.value},o=()=>{t.value=!1},r=s=>{e.value=s,localStorage.setItem("user-language",s),o()},g=s=>{s.target.closest(".relative")||o()};return Ft(()=>{document.addEventListener("click",g);const s=localStorage.getItem("user-language");s&&Rn.find(a=>a.code===s)&&(e.value=s)}),Ci(()=>{document.removeEventListener("click",g)}),(s,a)=>(H(),_("div",ed,[B("button",{onClick:n,class:"flex items-center space-x-2 px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"},[B("span",null,v(i.value.flag),1),B("span",null,v(i.value.name),1),(H(),_("svg",{class:kA(["w-4 h-4 transition-transform duration-200",{"rotate-180":t.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[1]||(a[1]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),t.value?(H(),_("div",{key:0,class:"absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded-md shadow-lg z-50",onClick:a[0]||(a[0]=dt(()=>{},["stop"]))},[B("div",td,[(H(!0),_(jA,null,Ke(QA(Rn),I=>(H(),_("button",{key:I.code,onClick:l=>r(I.code),class:kA(["flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100",{"bg-blue-50 text-blue-700":I.code===i.value.code}])},[B("span",nd,v(I.flag),1),B("span",null,v(I.name),1),I.code===i.value.code?(H(),_("svg",od,[...a[2]||(a[2]=[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])])):sA("",!0)],10,id))),128))])])):sA("",!0),t.value?(H(),_("div",{key:1,class:"fixed inset-0 z-40",onClick:o})):sA("",!0)]))}},gd={class:"space-y-6"},sd={class:"text-xl font-semibold text-gray-900 mb-4"},ad={class:"text-gray-600 mb-6"},Id={key:0},Cd={key:1},ld={key:2},Bd={key:0,class:"space-y-4"},Qd={class:"bg-blue-50 border-2 border-blue-200 rounded-lg p-6"},cd={class:"flex items-center justify-center space-x-3"},Ed={class:"text-lg font-medium text-blue-900"},ud={class:"text-sm text-blue-700 mt-1"},hd={key:1,class:"space-y-4"},fd={class:"bg-green-50 border-2 border-green-200 rounded-lg p-4"},dd={class:"flex items-start justify-between mb-3"},pd={class:"flex items-center"},md={class:"text-lg font-medium text-green-900"},yd={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4"},wd={class:"bg-white rounded-lg p-3"},Dd={class:"block text-sm font-medium text-gray-700 mb-1"},kd={class:"text-base font-semibold text-gray-900"},vd={class:"bg-white rounded-lg p-3"},Fd={class:"block text-sm font-medium text-gray-700 mb-1"},Sd={class:"text-base font-semibold text-gray-900"},bd={class:"bg-white rounded-lg p-3"},Rd={class:"block text-sm font-medium text-gray-700 mb-1"},Nd={class:"text-base font-semibold text-gray-900"},Gd={class:"mt-3 text-sm text-green-700"},Ld={class:"border border-gray-200 rounded-lg p-4"},Ud={key:0,class:"mt-4"},Md={key:2,class:"space-y-4"},xd={class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4"},Jd={class:"flex items-start"},Td={class:"font-medium text-yellow-900"},Hd={class:"text-sm text-yellow-700 mt-1"},Yd={class:"border-2 border-gray-300 rounded-lg p-4"},_d={class:"text-lg font-medium text-gray-900 mb-4"},Kd={class:"flex justify-end"},Pd=["disabled"],Od={__name:"ChipConfig",props:{modelValue:{type:Object,default:()=>({model:"",display:{width:320,height:240,color:"RGB565"}})}},emits:["update:modelValue","next"],setup(A,{emit:e}){const{t}=ve(),i=e,n=hA(()=>[{value:"",label:t("chipConfig.selectChip")},{value:"esp32s3",label:"ESP32-S3"},{value:"esp32c3",label:"ESP32-C3"},{value:"esp32c5",label:"ESP32-C5"},{value:"esp32c6",label:"ESP32-C6"},{value:"esp32p4",label:"ESP32-P4"},{value:"esp32",label:"ESP32"},{value:"others",label:t("common.other")}]),o={name:"ConfigForm",props:{config:{type:Object,required:!0},showRequired:{type:Boolean,default:!1}},render(){const w=this.$t;return GA("div",{class:"grid grid-cols-1 md:grid-cols-3 gap-4"},[GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.chipRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("select",{class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.model,onChange:F=>{this.config.model=F.target.value}},QA(n).map(F=>GA("option",{value:F.value,key:F.value},F.label)))]),GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.widthRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.width,min:128,max:800,placeholder:"320",onInput:F=>{this.config.display.width=Number(F.target.value)}})]),GA("div",[GA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.heightRequired")+" ",this.showRequired&&GA("span",{class:"text-red-500"},"*")]),GA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.height,min:128,max:600,placeholder:"240",onInput:F=>{this.config.display.height=Number(F.target.value)}})])])}},{deviceInfo:r,isDeviceOnline:g,hasToken:s}=No(),a=EA(s.value),I=EA(!1),l=EA(""),C=EA(!1),Q=EA({model:"",display:{width:320,height:240,color:"RGB565"}}),E={"ESP32-S3":"esp32s3",ESP32S3:"esp32s3","ESP32-C3":"esp32c3",ESP32C3:"esp32c3","ESP32-C5":"esp32c5",ESP32C5:"esp32c5","ESP32-P4":"esp32p4",ESP32P4:"esp32p4","ESP32-C6":"esp32c6",ESP32C6:"esp32c6",ESP32:"esp32"},f=()=>{var w,F;try{if(!g.value)return a.value||(l.value=t("chipConfig.deviceOffline"),I.value=!1),!1;const N=(w=r.value.chip)==null?void 0:w.model;if(!N||N==="未知")return!1;let G=E[N.toUpperCase()]||E[N]||N.toLowerCase().replace(/-/g,"");["esp32s3","esp32c3","esp32c5","esp32p4","esp32c6","esp32","others"].includes(G)||(G="others");const b=(F=r.value.screen)==null?void 0:F.resolution;if(!b||b==="未知")return!1;const[R,L]=b.split("x").map(Number);return!R||!L||isNaN(R)||isNaN(L)?(l.value=t("chipConfig.resolutionFormatError"),I.value=!1,a.value=!1,!1):(Q.value={model:G,display:{width:R,height:L,color:"RGB565"}},i("update:modelValue",{model:G,display:{width:R,height:L,color:"RGB565"}}),I.value=!0,l.value="",a.value=!1,console.log("✓ 设备配置加载成功:",{chip:G,width:R,height:L}),!0)}catch(N){return console.error("加载设备配置失败:",N),l.value=t("chipConfig.loadingError"),I.value=!1,a.value=!1,!1}},h=hA(()=>Q.value.model&&Q.value.display.width&&Q.value.display.height),u=hA(()=>Q.value.model?Q.value.model.toUpperCase().replace(/ESP32/i,"ESP32-"):""),p=hA(()=>Q.value.display),c=()=>{C.value=!C.value},d=()=>{h.value&&i("next")};return ae(()=>Q.value,w=>{i("update:modelValue",{model:w.model,display:{...w.display}})},{deep:!0}),ae(()=>g.value,w=>{w&&!I.value&&(a.value=!0,l.value="",setTimeout(()=>{f()},100))}),ae(()=>[r.value.chip,r.value.screen],()=>{g.value&&!I.value&&f()},{deep:!0}),Ft(()=>{if(!s.value){a.value=!1,l.value=t("chipConfig.manualConfigRequired"),console.log("⚠ 未检测到设备连接,使用手动配置模式");return}g.value&&r.value.chip&&r.value.chip.model!=="未知"&&r.value.screen&&r.value.screen.resolution!=="未知"?(console.log("✓ 检测到已缓存的设备信息,立即加载"),f()):g.value?(console.log("⏳ 设备在线,等待设备信息加载..."),a.value=!0,setTimeout(()=>{f()},500),setTimeout(()=>{a.value&&!I.value&&g.value&&(a.value=!1,!r.value.chip||r.value.chip.model==="未知"?l.value=t("chipConfig.chipModelError"):!r.value.screen||r.value.screen.resolution==="未知"?l.value=t("chipConfig.resolutionError"):l.value=t("chipConfig.timeoutError"),console.warn("⚠ 设备配置加载超时:",l.value))},1e4)):(console.log("⏳ 等待设备连接..."),a.value=!0,setTimeout(()=>{a.value&&!I.value&&!g.value&&(a.value=!1,l.value=t("chipConfig.manualConfigHint"),console.warn("⚠ 等待设备连接超时"))},1e4))}),(w,F)=>(H(),_("div",gd,[B("div",null,[B("h2",sd,v(w.$t("chipConfig.title")),1),B("p",ad,[a.value?(H(),_("span",Id,v(w.$t("chipConfig.loadingFromDevice")),1)):I.value?(H(),_("span",Cd,v(w.$t("chipConfig.loadedFromDevice")),1)):(H(),_("span",ld,v(w.$t("chipConfig.manualConfig")),1))])]),a.value?(H(),_("div",Bd,[B("div",Qd,[B("div",cd,[F[0]||(F[0]=B("svg",{class:"animate-spin h-6 w-6 text-blue-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[B("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),B("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)),B("div",null,[B("h3",Ed,v(w.$t("chipConfig.loadingTitle")),1),B("p",ud,v(w.$t("chipConfig.loadingDesc")),1)])])])])):QA(g)&&I.value?(H(),_("div",hd,[B("div",fd,[B("div",dd,[B("div",pd,[F[1]||(F[1]=B("div",{class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center mr-2"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)),B("h3",md,v(w.$t("chipConfig.autoLoadedTitle")),1)])]),B("div",yd,[B("div",wd,[B("label",Dd,v(w.$t("chipConfig.chipModel")),1),B("div",kd,v(u.value),1)]),B("div",vd,[B("label",Fd,v(w.$t("chipConfig.screenWidth")),1),B("div",Sd,v(p.value.width)+" px",1)]),B("div",bd,[B("label",Rd,v(w.$t("chipConfig.screenHeight")),1),B("div",Nd,v(p.value.height)+" px",1)])]),B("div",Gd," ✓ "+v(w.$t("chipConfig.colorFormat"))+" "+v(p.value.color),1)]),B("div",Ld,[B("button",{onClick:c,class:"flex items-center text-sm text-gray-600 hover:text-gray-900"},[F[2]||(F[2]=B("svg",{class:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)),gt(" "+v(C.value?w.$t("chipConfig.collapseManual"):w.$t("chipConfig.manualEdit")),1)]),C.value?(H(),_("div",Ud,[HA(o,{config:Q.value},null,8,["config"])])):sA("",!0)])])):(H(),_("div",Md,[B("div",xd,[B("div",Jd,[F[3]||(F[3]=B("svg",{class:"w-5 h-5 text-yellow-600 mr-3 flex-shrink-0 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),B("div",null,[B("h4",Td,v(w.$t("chipConfig.manualConfigDesc")),1),B("p",Hd,v(l.value||w.$t("chipConfig.manualConfigHint")),1)])])]),B("div",Yd,[B("h3",_d,v(w.$t("chipConfig.manualConfigTitle")),1),HA(o,{config:Q.value,"show-required":!0},null,8,["config"])])])),B("div",Kd,[B("button",{onClick:d,disabled:!h.value,class:"bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(w.$t("chipConfig.next")),9,Pd)])]))}},Vd={class:"space-y-6"},Wd={class:"text-lg font-medium text-gray-900 mb-2"},qd={class:"text-gray-600"},jd={key:0,class:"bg-orange-50 border border-orange-200 rounded-lg p-4"},Zd={class:"text-sm text-orange-800"},Xd={class:"mt-1"},zd={key:1,class:"space-y-6"},$d={class:"flex space-x-4"},A0={key:0,class:"space-y-4"},e0={class:"block text-sm font-medium text-gray-700"},t0={class:"relative"},i0=["value"],n0=["value"],o0={key:1,class:"space-y-4 bg-gray-50 p-4 rounded-lg border border-gray-200"},r0={class:"font-medium text-gray-900"},g0={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},s0={class:"block text-sm font-medium text-gray-700 mb-1"},a0=["placeholder"],I0={key:0,class:"text-xs text-red-500 mt-1"},C0={class:"block text-sm font-medium text-gray-700 mb-1"},l0=["placeholder"],B0={key:0,class:"text-xs text-red-500 mt-1"},Q0={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},c0={class:"block text-sm font-medium text-gray-700 mb-1"},E0={class:"flex items-center space-x-2"},u0={class:"text-sm text-gray-600 w-8"},h0={class:"text-xs text-gray-500 mt-1"},f0={class:"block text-sm font-medium text-gray-700 mb-1"},d0={key:0,class:"text-xs text-red-500 mt-1"},p0={class:"block text-sm font-medium text-gray-700 mb-1"},m0={value:"mn6_cn"},y0={value:"mn6_en"},w0={class:"bg-blue-50 border border-blue-200 rounded-lg p-3"},D0={class:"text-sm text-blue-800"},k0={class:"mt-1 list-disc list-inside space-y-1"},v0={key:0},F0={key:1},S0={key:2},b0={__name:"WakewordConfig",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,n=e,o=[{id:"wn9s_hilexin",name:"Hi,乐鑫",model:"WakeNet9s"},{id:"wn9s_hiesp",name:"Hi,ESP",model:"WakeNet9s"},{id:"wn9s_nihaoxiaozhi",name:"你好小智",model:"WakeNet9s"},{id:"wn9s_hijason",name:"Hi,Jason",model:"WakeNet9s"},{id:"wn9s_alexa",name:"Alexa",model:"WakeNet9s"},{id:"wn9_hilexin",name:"Hi,乐鑫",model:"WakeNet9"},{id:"wn9_hiesp",name:"Hi,ESP",model:"WakeNet9"},{id:"wn9_nihaoxiaozhi_tts",name:"你好小智",model:"WakeNet9"},{id:"wn9_hijason_tts2",name:"Hi,Jason",model:"WakeNet9"},{id:"wn9_nihaomiaoban_tts2",name:"你好喵伴",model:"WakeNet9"},{id:"wn9_xiaoaitongxue",name:"小爱同学",model:"WakeNet9"},{id:"wn9_himfive",name:"Hi,M Five",model:"WakeNet9"},{id:"wn9_alexa",name:"Alexa",model:"WakeNet9"},{id:"wn9_jarvis_tts",name:"Jarvis",model:"WakeNet9"},{id:"wn9_computer_tts",name:"Computer",model:"WakeNet9"},{id:"wn9_heywillow_tts",name:"Hey,Willow",model:"WakeNet9"},{id:"wn9_sophia_tts",name:"Sophia",model:"WakeNet9"},{id:"wn9_mycroft_tts",name:"Mycroft",model:"WakeNet9"},{id:"wn9_heyprinter_tts",name:"Hey,Printer",model:"WakeNet9"},{id:"wn9_hijoy_tts",name:"Hi,Joy",model:"WakeNet9"},{id:"wn9_heywanda_tts",name:"Hey,Wand",model:"WakeNet9"},{id:"wn9_astrolabe_tts",name:"Astrolabe",model:"WakeNet9"},{id:"wn9_heyily_tts2",name:"Hey,Ily",model:"WakeNet9"},{id:"wn9_hijolly_tts2",name:"Hi,Jolly",model:"WakeNet9"},{id:"wn9_hifairy_tts2",name:"Hi,Fairy",model:"WakeNet9"},{id:"wn9_bluechip_tts2",name:"Blue Chip",model:"WakeNet9"},{id:"wn9_hiandy_tts2",name:"Hi,Andy",model:"WakeNet9"},{id:"wn9_heyivy_tts2",name:"Hey,Ivy",model:"WakeNet9"},{id:"wn9_hiwalle_tts2",name:"Hi,Wall E",model:"WakeNet9"},{id:"wn9_nihaoxiaoxin_tts",name:"你好小鑫",model:"WakeNet9"},{id:"wn9_xiaomeitongxue_tts",name:"小美同学",model:"WakeNet9"},{id:"wn9_hixiaoxing_tts",name:"Hi,小星",model:"WakeNet9"},{id:"wn9_xiaolongxiaolong_tts",name:"小龙小龙",model:"WakeNet9"},{id:"wn9_miaomiaotongxue_tts",name:"喵喵同学",model:"WakeNet9"},{id:"wn9_himiaomiao_tts",name:"Hi,喵喵",model:"WakeNet9"},{id:"wn9_hilili_tts",name:"Hi,Lily",model:"WakeNet9"},{id:"wn9_hitelly_tts",name:"Hi,Telly",model:"WakeNet9"},{id:"wn9_xiaobinxiaobin_tts",name:"小滨小滨",model:"WakeNet9"},{id:"wn9_haixiaowu_tts",name:"Hi,小巫",model:"WakeNet9"},{id:"wn9_xiaoyaxiaoya_tts2",name:"小鸭小鸭",model:"WakeNet9"},{id:"wn9_linaiban_tts2",name:"璃奈板",model:"WakeNet9"},{id:"wn9_xiaosurou_tts2",name:"小酥肉",model:"WakeNet9"},{id:"wn9_xiaoyutongxue_tts2",name:"小宇同学",model:"WakeNet9"},{id:"wn9_xiaomingtongxue_tts2",name:"小明同学",model:"WakeNet9"},{id:"wn9_xiaokangtongxue_tts2",name:"小康同学",model:"WakeNet9"},{id:"wn9_xiaojianxiaojian_tts2",name:"小箭小箭",model:"WakeNet9"},{id:"wn9_xiaotexiaote_tts2",name:"小特小特",model:"WakeNet9"},{id:"wn9_nihaoxiaoyi_tts2",name:"你好小益",model:"WakeNet9"},{id:"wn9_nihaobaiying_tts2",name:"你好百应",model:"WakeNet9"},{id:"wn9_xiaoluxiaolu_tts2",name:"小鹿小鹿",model:"WakeNet9"},{id:"wn9_nihaodongdong_tts2",name:"你好东东",model:"WakeNet9"},{id:"wn9_nihaoxiaoan_tts2",name:"你好小安",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3mai4_tts2",name:"你好小脉",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3rui4_tts3",name:"你好小瑞",model:"WakeNet9"},{id:"wn9_hai1xiao3ou1_tts3",name:"嗨小欧",model:"WakeNet9"}],r=hA(()=>{const u=i.chipModel.toLowerCase();return u==="esp32s3"||u==="esp32p4"}),g=hA(()=>{const u=i.chipModel.toLowerCase();return u==="esp32c3"||u==="esp32c5"||u==="esp32c6"}),s=hA(()=>i.chipModel.toLowerCase()==="esp32s3"),a=hA(()=>r.value||g.value),I=hA(()=>r.value?o.filter(u=>u.model==="WakeNet9"):g.value?o.filter(u=>u.model==="WakeNet9s"):[]),l=EA({name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}),C=EA({name:"",command:"",duration:""}),Q=()=>{let u=!0;return C.value={name:"",command:"",duration:""},l.value.name.trim()||(C.value.name=t("wakewordConfig.errors.nameRequired"),u=!1),l.value.command.trim()?l.value.model.includes("_en")&&/[!,.?]/.test(l.value.command)&&(C.value.command=t("wakewordConfig.errors.noPunctuation"),u=!1):(C.value.command=t("wakewordConfig.errors.commandRequired"),u=!1),(!l.value.duration||l.value.duration<500||l.value.duration>1e4)&&(C.value.duration=t("wakewordConfig.errors.durationRange"),u=!1),u},E=EA(!1),f=u=>{var p;n("update:modelValue",{...i.modelValue,type:u,preset:u==="preset"&&(i.modelValue.preset||((p=I.value[0])==null?void 0:p.id))||"",custom:{...i.modelValue.custom,...l.value}})},h=u=>{n("update:modelValue",{...i.modelValue,preset:u})};return ae(l,u=>{E.value||i.modelValue.type==="custom"&&(Q(),n("update:modelValue",{...i.modelValue,custom:{...u}}))},{deep:!0}),ae(()=>i.modelValue.custom,u=>{u&&(E.value=!0,l.value={name:u.name||"",command:u.command||"",threshold:u.threshold!==void 0?u.threshold:20,duration:u.duration!==void 0?u.duration:3e3,model:u.model||"mn6_cn"},un(()=>{E.value=!1}))},{deep:!0,immediate:!0}),(u,p)=>(H(),_("div",Vd,[B("div",null,[B("h3",Wd,v(u.$t("wakewordConfig.title")),1),B("p",qd,v(u.$t("wakewordConfig.description")),1)]),a.value?(H(),_("div",zd,[B("div",$d,[B("button",{onClick:p[0]||(p[0]=c=>f("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(u.$t("wakewordConfig.noWakeword")),3),B("button",{onClick:p[1]||(p[1]=c=>f("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(u.$t("wakewordConfig.presetWakeword")),3),s.value?(H(),_("button",{key:0,onClick:p[2]||(p[2]=c=>f("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(u.$t("wakewordConfig.customWakeword")),3)):sA("",!0)]),A.modelValue.type==="preset"?(H(),_("div",A0,[B("label",e0,v(u.$t("wakewordConfig.selectWakeword")),1),B("div",t0,[B("select",{value:A.modelValue.preset,onChange:p[3]||(p[3]=c=>h(c.target.value)),class:"w-full border border-gray-300 rounded-md px-3 py-2 pr-10 bg-white focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[(H(!0),_(jA,null,Ke(I.value,c=>(H(),_("option",{key:c.id,value:c.id},v(c.name)+" ("+v(c.model)+") ",9,n0))),128))],40,i0)])])):sA("",!0),A.modelValue.type==="custom"?(H(),_("div",o0,[B("h4",r0,v(u.$t("wakewordConfig.customSettings")),1),B("div",g0,[B("div",null,[B("label",s0,[gt(v(u.$t("wakewordConfig.wakewordName"))+" ",1),p[9]||(p[9]=B("span",{class:"text-red-500"},"*",-1))]),XA(B("input",{type:"text","onUpdate:modelValue":p[4]||(p[4]=c=>l.value.name=c),placeholder:u.$t("wakewordConfig.wakewordNamePlaceholder"),class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.name}])},null,10,a0),[[ie,l.value.name]]),C.value.name?(H(),_("p",I0,v(C.value.name),1)):sA("",!0)]),B("div",null,[B("label",C0,[gt(v(u.$t("wakewordConfig.wakewordCommand"))+" ",1),p[10]||(p[10]=B("span",{class:"text-red-500"},"*",-1))]),XA(B("input",{type:"text","onUpdate:modelValue":p[5]||(p[5]=c=>l.value.command=c),placeholder:l.value.model.includes("_cn")?u.$t("wakewordConfig.wakewordCommandPlaceholderCN"):u.$t("wakewordConfig.wakewordCommandPlaceholderEN"),class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.command}])},null,10,l0),[[ie,l.value.command]]),C.value.command?(H(),_("p",B0,v(C.value.command),1)):sA("",!0)])]),B("div",Q0,[B("div",null,[B("label",c0,v(u.$t("wakewordConfig.threshold")),1),B("div",E0,[XA(B("input",{type:"range","onUpdate:modelValue":p[6]||(p[6]=c=>l.value.threshold=c),min:"0",max:"100",step:"1",class:"flex-1"},null,512),[[ie,l.value.threshold,void 0,{number:!0}]]),B("span",u0,v(l.value.threshold),1)]),B("p",h0,v(u.$t("wakewordConfig.thresholdDesc")),1)]),B("div",null,[B("label",f0,v(u.$t("wakewordConfig.duration"))+" (ms) ",1),XA(B("input",{type:"number","onUpdate:modelValue":p[7]||(p[7]=c=>l.value.duration=c),min:"500",max:"10000",step:"100",class:kA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.duration}])},null,2),[[ie,l.value.duration,void 0,{number:!0}]]),C.value.duration?(H(),_("p",d0,v(C.value.duration),1)):sA("",!0)]),B("div",null,[B("label",p0,v(u.$t("wakewordConfig.selectModel")),1),XA(B("select",{"onUpdate:modelValue":p[8]||(p[8]=c=>l.value.model=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"},[B("option",m0,v(u.$t("wakewordConfig.mn6cn")),1),B("option",y0,v(u.$t("wakewordConfig.mn6en")),1)],512),[[dr,l.value.model]])])])])):sA("",!0),B("div",w0,[B("div",D0,[B("strong",null,v(u.$t("wakewordConfig.tips.tipLabel")),1),B("ul",k0,[B("li",null,v(u.$t("wakewordConfig.tips.optional")),1),g.value?(H(),_("li",v0,v(u.$t("wakewordConfig.tips.wakeNet9sOnly")),1)):r.value?(H(),_("li",F0,v(u.$t("wakewordConfig.tips.wakeNet9Full")),1)):sA("",!0),s.value?(H(),_("li",S0,v(u.$t("wakewordConfig.tips.customSupport")),1)):sA("",!0)])])])])):(H(),_("div",jd,[B("div",Zd,[B("strong",null,v(u.$t("wakewordConfig.notice")),1),B("p",Xd,v(u.$t("wakewordConfig.unsupportedMessage",{chipModel:A.chipModel})),1)])]))]))}};class R0{constructor(){this.dbName="XiaozhiConfigDB",this.version=1,this.db=null,this.initialized=!1}async initialize(){if(!(this.initialized&&this.db))return new Promise((e,t)=>{const i=indexedDB.open(this.dbName,this.version);i.onerror=()=>{console.error("IndexedDB 初始化失败:",i.error),t(i.error)},i.onsuccess=()=>{this.db=i.result,this.initialized=!0,console.log("IndexedDB 初始化成功"),e()},i.onupgradeneeded=n=>{const o=n.target.result;if(o.objectStoreNames.contains("configs")||o.createObjectStore("configs",{keyPath:"key"}).createIndex("timestamp","timestamp",{unique:!1}),!o.objectStoreNames.contains("files")){const r=o.createObjectStore("files",{keyPath:"id"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}if(!o.objectStoreNames.contains("temp_data")){const r=o.createObjectStore("temp_data",{keyPath:"key"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}console.log("IndexedDB 表结构创建完成")}})}async saveConfig(e){this.initialized||await this.initialize();const i={key:"current_config",config:this.sanitizeConfigForStorage(e),timestamp:Date.now()};return new Promise((n,o)=>{const s=this.db.transaction(["configs"],"readwrite").objectStore("configs").put(i);s.onerror=()=>{console.error("保存配置失败:",s.error),o(s.error)},s.onsuccess=()=>{console.log("配置已保存到 IndexedDB"),n()}})}sanitizeConfigForStorage(e){var i,n,o,r,g,s,a,I,l,C;const t=JSON.parse(JSON.stringify(e||{}));try{if((n=(i=t==null?void 0:t.theme)==null?void 0:i.font)!=null&&n.custom&&(t.theme.font.custom.file=null),((r=(o=t==null?void 0:t.theme)==null?void 0:o.emoji)==null?void 0:r.type)==="custom"){t.theme.emoji.custom||(t.theme.emoji.custom={});const Q=((s=(g=t.theme.emoji)==null?void 0:g.custom)==null?void 0:s.images)||{},E={};if(Object.keys(Q).forEach(f=>{E[f]=null}),t.theme.emoji.custom.images=E,t.theme.emoji.custom.emotionMap,t.theme.emoji.custom.fileMap){const f=t.theme.emoji.custom.fileMap,h={};Object.keys(f).forEach(u=>{h[u]=null}),t.theme.emoji.custom.fileMap=h}}(I=(a=t==null?void 0:t.theme)==null?void 0:a.skin)!=null&&I.light&&(t.theme.skin.light.backgroundImage=null),(C=(l=t==null?void 0:t.theme)==null?void 0:l.skin)!=null&&C.dark&&(t.theme.skin.dark.backgroundImage=null)}catch{}return t}async loadConfig(){return this.initialized||await this.initialize(),new Promise((e,t)=>{const o=this.db.transaction(["configs"],"readonly").objectStore("configs").get("current_config");o.onerror=()=>{console.error("加载配置失败:",o.error),t(o.error)},o.onsuccess=()=>{const r=o.result;r?(console.log("从 IndexedDB 恢复配置成功"),e({config:r.config,timestamp:r.timestamp})):e(null)}})}async saveFile(e,t,i,n={}){this.initialized||await this.initialize();const o=await this.fileToArrayBuffer(t);let r={};try{r=n?JSON.parse(JSON.stringify(n)):{}}catch{r={...n}}const g={id:e,type:i,name:t.name,size:t.size,mimeType:t.type,lastModified:t.lastModified,data:o,metadata:r,timestamp:Date.now()};return new Promise((s,a)=>{const C=this.db.transaction(["files"],"readwrite").objectStore("files").put(g);C.onerror=()=>{console.error("保存文件失败:",C.error),a(C.error)},C.onsuccess=()=>{console.log(`文件 ${t.name} 已保存到 IndexedDB`),s()}})}async loadFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readonly").objectStore("files").get(e);r.onerror=()=>{console.error("加载文件失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;if(g){const s=new Blob([g.data],{type:g.mimeType}),a=new File([s],g.name,{type:g.mimeType,lastModified:g.lastModified});a.storedId=g.id,a.storedType=g.type,a.storedMetadata=g.metadata,a.storedTimestamp=g.timestamp,console.log(`文件 ${g.name} 从 IndexedDB 恢复成功`),t(a)}else t(null)}})}async getFilesByType(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const g=this.db.transaction(["files"],"readonly").objectStore("files").index("type").getAll(e);g.onerror=()=>{console.error("获取文件列表失败:",g.error),i(g.error)},g.onsuccess=()=>{const a=(g.result||[]).map(I=>{const l=new Blob([I.data],{type:I.mimeType}),C=new File([l],I.name,{type:I.mimeType,lastModified:I.lastModified});return C.storedId=I.id,C.storedType=I.type,C.storedMetadata=I.metadata,C.storedTimestamp=I.timestamp,C});t(a)}})}async saveTempData(e,t,i,n={}){this.initialized||await this.initialize();const o={key:e,type:i,data:t,metadata:n,timestamp:Date.now()};return new Promise((r,g)=>{const I=this.db.transaction(["temp_data"],"readwrite").objectStore("temp_data").put(o);I.onerror=()=>{console.error("保存临时数据失败:",I.error),g(I.error)},I.onsuccess=()=>{console.log(`临时数据 ${e} 已保存`),r()}})}async loadTempData(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["temp_data"],"readonly").objectStore("temp_data").get(e);r.onerror=()=>{console.error("加载临时数据失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;t(g||null)}})}async clearAll(){this.initialized||await this.initialize();const e=["configs","files","temp_data"];return new Promise((t,i)=>{const n=this.db.transaction(e,"readwrite");let o=0,r=!1;const g=()=>{o++,o===e.length&&(r?i(new Error("清空部分数据时出现错误")):(console.log("所有存储数据已清空"),t()))};e.forEach(s=>{const I=n.objectStore(s).clear();I.onerror=()=>{console.error(`清空 ${s} 失败:`,I.error),r=!0,g()},I.onsuccess=()=>{console.log(`${s} 已清空`),g()}})})}async deleteFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readwrite").objectStore("files").delete(e);r.onerror=()=>{console.error("删除文件失败:",r.error),i(r.error)},r.onsuccess=()=>{console.log(`文件 ${e} 已删除`),t()}})}async getStorageInfo(){this.initialized||await this.initialize();const e=["configs","files","temp_data"],t={};for(const n of e){const o=await new Promise((r,g)=>{const I=this.db.transaction([n],"readonly").objectStore(n).count();I.onerror=()=>g(I.error),I.onsuccess=()=>r(I.result)});t[n]={count:o}}const i=await this.loadConfig();return t.lastSaved=i?new Date(i.timestamp):null,t}async hasStoredConfig(){try{return await this.loadConfig()!==null}catch(e){return console.error("检查存储配置时出错:",e),!1}}fileToArrayBuffer(e){return new Promise((t,i)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>i(new Error("读取文件失败")),n.readAsArrayBuffer(e)})}close(){this.db&&(this.db.close(),this.db=null,this.initialized=!1,console.log("IndexedDB 连接已关闭"))}}const Qe=new R0;class bi{static async saveFontFile(e,t={}){if(e){const i="custom_font";try{await Qe.saveFile(i,e,"font",{size:t.size||20,bpp:t.bpp||4,charset:t.charset||"deepseek"}),console.log(`字体文件已保存: ${e.name}`)}catch(n){console.warn(`保存字体文件失败: ${e.name}`,n)}}}static async saveEmojiFile(e,t,i={}){var n,o;if(t&&e){const r=e.startsWith("hash_")?e:`emoji_${e}`;try{const g=((n=i==null?void 0:i.size)==null?void 0:n.width)??64,s=((o=i==null?void 0:i.size)==null?void 0:o.height)??64;await Qe.saveFile(r,t,"emoji",{name:e,size:{width:g,height:s},format:i==null?void 0:i.format,emotions:i==null?void 0:i.emotions}),console.log(`表情文件已保存: ${r} - ${t.name}`)}catch(g){console.warn(`保存表情文件失败: ${e}`,g)}}}static async saveBackgroundFile(e,t,i={}){if(t&&e){const n=`background_${e}`;try{let o={};try{o=i?JSON.parse(JSON.stringify(i)):{}}catch{o={...i}}await Qe.saveFile(n,t,"background",{mode:e,...o}),console.log(`背景文件已保存: ${e} - ${t.name}`)}catch(o){console.warn(`保存背景文件失败: ${e}`,o)}}}static async restoreFontFile(){try{return await Qe.loadFile("custom_font")}catch(e){return console.warn("恢复字体文件失败:",e),null}}static async restoreEmojiFile(e){if(!e)return null;try{const t=e.startsWith("hash_")?e:`emoji_${e}`;return await Qe.loadFile(t)}catch(t){return console.warn(`恢复表情文件失败: ${e}`,t),null}}static async restoreBackgroundFile(e){if(!e)return null;try{const t=`background_${e}`;return await Qe.loadFile(t)}catch(t){return console.warn(`恢复背景文件失败: ${e}`,t),null}}static async deleteFontFile(){try{await Qe.deleteFile("custom_font"),console.log("字体文件已删除")}catch(e){console.warn("删除字体文件失败:",e)}}static async deleteEmojiFile(e){if(e)try{const t=e.startsWith("hash_")?e:`emoji_${e}`;await Qe.deleteFile(t),console.log(`表情文件已删除: ${t}`)}catch(t){console.warn(`删除表情文件失败: ${e}`,t)}}static async deleteBackgroundFile(e){if(e)try{const t=`background_${e}`;await Qe.deleteFile(t),console.log(`背景文件已删除: ${e}`)}catch(t){console.warn(`删除背景文件失败: ${e}`,t)}}static async getStorageInfo(){try{return await Qe.getStorageInfo()}catch(e){return console.warn("获取存储信息失败:",e),{configs:{count:0},files:{count:0},temp_data:{count:0},lastSaved:null}}}static async clearAllFiles(){try{await Qe.clearAll(),console.log("所有存储文件已清理")}catch(e){throw console.warn("清理存储文件失败:",e),e}}}const N0={class:"space-y-6"},G0={class:"text-lg font-medium text-gray-900 mb-2"},L0={class:"text-gray-600"},U0={class:"space-y-4"},M0={class:"flex space-x-4"},x0={key:0,class:"space-y-4"},J0={class:"bg-gray-50 border border-gray-200 rounded-lg p-6 text-center"},T0={class:"mt-2 text-gray-600"},H0={key:1,class:"space-y-4"},Y0={class:"font-medium text-gray-900"},_0={class:"grid grid-cols-1 md:grid-cols-4 gap-4"},K0=["onClick"],P0={class:"flex items-start justify-between"},O0={class:"flex-1"},V0={class:"font-medium text-gray-900 mb-1"},W0={class:"text-sm text-gray-600 space-y-1"},q0={key:0,class:"flex-shrink-0 ml-3"},j0={key:2,class:"space-y-6"},Z0={class:"font-medium text-gray-900"},X0={class:"space-y-2"},z0={class:"block text-sm font-medium text-gray-700"},$0={key:0},Ap={class:"mt-2"},ep={class:"text-gray-500"},tp={class:"text-xs text-gray-400 mt-1"},ip={key:1,class:"text-green-600"},np={class:"mt-1 font-medium"},op={key:0,class:"grid grid-cols-1 md:grid-cols-3 gap-4"},rp={class:"block text-sm font-medium text-gray-700 mb-2"},gp={class:"text-xs text-gray-500 mt-1"},sp={class:"block text-sm font-medium text-gray-700 mb-2"},ap={value:1},Ip={value:2},Cp={value:4},lp={class:"block text-sm font-medium text-gray-700 mb-2"},Bp={value:"qwen"},Qp={value:"deepseek"},cp={value:"gb2312"},Ep={value:"latin"},up={value:"full"},hp={class:"flex items-center justify-between p-4 bg-gray-50 rounded-lg border border-gray-200"},fp={class:"flex-1"},dp={class:"font-medium text-gray-900"},pp={class:"text-sm text-gray-500 mt-1"},mp={class:"ml-4"},yp={class:"relative inline-flex items-center cursor-pointer"},wp=["checked"],Dp={__name:"FontConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,n=e,o=EA(null),r=[{id:"font_puhui_deepseek_14_1",size:14,bpp:1,fileSize:"~180KB"},{id:"font_puhui_deepseek_16_4",size:16,bpp:4,fileSize:"~720KB"},{id:"font_puhui_deepseek_20_4",size:20,bpp:4,fileSize:"~1.1MB"},{id:"font_puhui_deepseek_30_4",size:30,bpp:4,fileSize:"~2.5MB"},{id:"font_noto_qwen_14_1",size:14,bpp:1,fileSize:"~626KB"},{id:"font_noto_qwen_16_4",size:16,bpp:4,fileSize:"~2.0MB"},{id:"font_noto_qwen_20_4",size:20,bpp:4,fileSize:"~2.9MB"},{id:"font_noto_qwen_30_4",size:30,bpp:4,fileSize:"~5.8MB"}],g=hA(()=>r.map(h=>{let u;return h.id.startsWith("font_puhui_deepseek_")?u=t("fontConfig.charsetDeepseek"):h.id.startsWith("font_noto_qwen_")&&(u=t("fontConfig.charsetQwen")),{...h,name:t("fontConfig.presetFontNames."+h.id),charset:u}})),s=EA({size:20,bpp:4,charset:"qwen"}),a=h=>{n("update:modelValue",{...i.modelValue,type:h,preset:h==="preset"?i.modelValue.preset||"font_puhui_deepseek_20_4":"",custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},I=h=>{n("update:modelValue",{...i.modelValue,preset:h,custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},l=h=>{const u=h.target.files[0];u&&Q(u)},C=h=>{h.preventDefault();const u=h.dataTransfer.files;u.length>0&&Q(u[0])},Q=async h=>{h&&(h.type.includes("font")||h.name.toLowerCase().match(/\.(ttf|woff|woff2)$/))?(n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:h,...s.value}}),await bi.saveFontFile(h,s.value)):alert(t("fontConfig.selectValidFontFile"))},E=async()=>{n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:null}}),o.value&&(o.value.value=""),await bi.deleteFontFile()},f=EA(!1);return ae(()=>s.value,h=>{f.value||i.modelValue.type==="custom"&&i.modelValue.custom.file&&n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,...h}})},{deep:!0}),ae(()=>i.modelValue.custom,h=>{h.size&&h.bpp&&h.charset&&(f.value=!0,s.value={size:h.size,bpp:h.bpp,charset:h.charset},un(()=>{f.value=!1}))},{deep:!0,immediate:!0}),(h,u)=>{var p;return H(),_("div",N0,[B("div",null,[B("h3",G0,v(h.$t("fontConfig.title")),1),B("p",L0,v(h.$t("fontConfig.description")),1)]),B("div",U0,[B("div",M0,[B("button",{onClick:u[0]||(u[0]=c=>a("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.noFonts")),3),B("button",{onClick:u[1]||(u[1]=c=>a("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.presetFonts")),3),B("button",{onClick:u[2]||(u[2]=c=>a("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.customFonts")),3)])]),A.modelValue.type==="none"?(H(),_("div",x0,[B("div",J0,[u[10]||(u[10]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)),B("p",T0,v(h.$t("fontConfig.noFontsDescription")),1)])])):sA("",!0),A.modelValue.type==="preset"?(H(),_("div",H0,[B("h4",Y0,v(h.$t("fontConfig.presetFonts")),1),B("div",_0,[(H(!0),_(jA,null,Ke(g.value,c=>(H(),_("div",{key:c.id,onClick:d=>I(c.id),class:kA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===c.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",P0,[B("div",O0,[B("h5",V0,v(c.name),1),B("div",W0,[B("div",null,v(h.$t("fontConfig.fontSize"))+" "+v(c.size)+"px",1),B("div",null,v(h.$t("fontConfig.bitDepth"))+" "+v(c.bpp)+"bpp",1),B("div",null,v(h.$t("fontConfig.charset"))+" "+v(c.charset),1),B("div",null,v(h.$t("fontConfig.fileSize"))+" "+v(c.fileSize),1)])]),A.modelValue.preset===c.id?(H(),_("div",q0,[...u[11]||(u[11]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):sA("",!0)])],10,K0))),128))])])):sA("",!0),A.modelValue.type==="custom"?(H(),_("div",j0,[B("h4",Z0,v(h.$t("fontConfig.customFonts")),1),B("div",X0,[B("label",z0,v(h.$t("fontConfig.fontFile")),1),B("div",{onDrop:C,onDragover:u[4]||(u[4]=dt(()=>{},["prevent"])),onDragenter:u[5]||(u[5]=dt(()=>{},["prevent"])),class:"border-2 border-dashed border-gray-300 rounded-lg p-6 text-center hover:border-gray-400 transition-colors"},[B("input",{ref_key:"fileInput",ref:o,type:"file",accept:".ttf,.woff,.woff2",onChange:l,class:"hidden"},null,544),A.modelValue.custom.file?(H(),_("div",ip,[u[13]||(u[13]=B("svg",{class:"mx-auto h-8 w-8",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1)),B("p",np,v((p=A.modelValue.custom.file)==null?void 0:p.name),1),B("button",{onClick:E,class:"text-red-600 hover:text-red-500 text-sm mt-1"},v(h.$t("fontConfig.removeFile")),1)])):(H(),_("div",$0,[u[12]||(u[12]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})],-1)),B("div",Ap,[B("button",{onClick:u[3]||(u[3]=c=>h.$refs.fileInput.click()),class:"text-primary-600 hover:text-primary-500 font-medium"},v(h.$t("fontConfig.clickSelectFontFile")),1),B("p",ep,v(h.$t("fontConfig.orDragFileHere")),1)]),B("p",tp,v(h.$t("fontConfig.supportedFormats")),1)]))],32)]),A.modelValue.custom.file?(H(),_("div",op,[B("div",null,[B("label",rp,v(h.$t("fontConfig.fontSizePx")),1),XA(B("input",{type:"number","onUpdate:modelValue":u[6]||(u[6]=c=>s.value.size=c),min:"8",max:"80",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ie,s.value.size,void 0,{number:!0}]]),B("p",gp,v(h.$t("fontConfig.range"))+" 8-80px",1)]),B("div",null,[B("label",sp,v(h.$t("fontConfig.bitDepthBpp")),1),XA(B("select",{"onUpdate:modelValue":u[7]||(u[7]=c=>s.value.bpp=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",ap,v(h.$t("fontConfig.monochrome")),1),B("option",Ip,v(h.$t("fontConfig.fourColors")),1),B("option",Cp,v(h.$t("fontConfig.sixteenColors")),1)],512),[[dr,s.value.bpp]])]),B("div",null,[B("label",lp,v(h.$t("fontConfig.characterSet")),1),XA(B("select",{"onUpdate:modelValue":u[8]||(u[8]=c=>s.value.charset=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",Bp,v(h.$t("fontConfig.qwen18409")),1),B("option",Qp,v(h.$t("fontConfig.deepseekR1")),1),B("option",cp,v(h.$t("fontConfig.gb2312")),1),B("option",Ep,v(h.$t("fontConfig.latin1")),1),B("option",up,v(h.$t("fontConfig.fullCharset")),1)],512),[[dr,s.value.charset]])])])):sA("",!0)])):sA("",!0),B("div",hp,[B("div",fp,[B("h4",dp,v(h.$t("fontConfig.hideSubtitle")),1),B("p",pp,v(h.$t("fontConfig.hideSubtitleDescription")),1)]),B("div",mp,[B("label",yp,[B("input",{type:"checkbox",checked:A.modelValue.hide_subtitle,onChange:u[9]||(u[9]=c=>n("update:modelValue",{...A.modelValue,hide_subtitle:c.target.checked})),class:"sr-only peer"},null,40,wp),u[14]||(u[14]=B("div",{class:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-500"},null,-1))])])])])}}},kp={class:"space-y-6"},vp={class:"text-lg font-medium text-gray-900 mb-2"},Fp={class:"text-gray-600"},Sp={class:"space-y-4"},bp={class:"flex flex-wrap gap-3"},Rp={key:0,class:"text-sm text-gray-500"},Np={key:0,class:"space-y-4"},Gp={class:"font-medium text-gray-900"},Lp={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Up=["onClick"],Mp={class:"flex items-start justify-between mb-3"},xp={class:"font-medium text-gray-900"},Jp={class:"text-sm text-gray-600"},Tp={class:"text-xs text-gray-500 mt-1"},Hp={key:0,class:"flex-shrink-0 ml-3"},Yp={class:"grid grid-cols-7 gap-1 justify-items-center"},_p=["src","alt"],Kp={key:1,class:"space-y-6"},Pp={class:"font-medium text-gray-900"},Op={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Vp={class:"block text-sm font-medium text-gray-700 mb-2"},Wp={class:"block text-sm font-medium text-gray-700 mb-2"},qp={class:"space-y-4"},jp={class:"font-medium text-gray-900"},Zp={class:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-4"},Xp={class:"text-center"},zp={class:"text-lg mb-1"},$p={class:"text-xs text-gray-600 flex items-center justify-center gap-1"},Am={key:0,class:"text-red-500"},em=["onDrop"],tm=["onChange"],im=["onClick"],nm={class:"text-xs text-gray-500"},om={key:1,class:"w-full h-full relative"},rm=["src","alt"],gm=["onClick"],sm={class:"text-xs text-gray-500 mt-2"},am={__name:"EmojiConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,n=e,o=async p=>{const c=await p.arrayBuffer(),d=await crypto.subtle.digest("SHA-256",c);return Array.from(new Uint8Array(d)).map(N=>N.toString(16).padStart(2,"0")).join("")},r=[{id:"twemoji32",name:t("emojiConfig.twitterEmojiName",{size:32}),description:t("emojiConfig.twitterEmojiDescription",{size:32}),size:32,preview:["neutral","happy","laughing","funny","sad","angry","crying"]},{id:"twemoji64",name:t("emojiConfig.twitterEmojiName",{size:64}),description:t("emojiConfig.twitterEmojiDescription",{size:64}),size:64,preview:["neutral","happy","laughing","funny","sad","angry","crying"]}],g=hA(()=>[{key:"neutral",name:t("emojiConfig.emotions.neutral"),emoji:"😶"},{key:"happy",name:t("emojiConfig.emotions.happy"),emoji:"🙂"},{key:"laughing",name:t("emojiConfig.emotions.laughing"),emoji:"😆"},{key:"funny",name:t("emojiConfig.emotions.funny"),emoji:"😂"},{key:"sad",name:t("emojiConfig.emotions.sad"),emoji:"😔"},{key:"angry",name:t("emojiConfig.emotions.angry"),emoji:"😠"},{key:"crying",name:t("emojiConfig.emotions.crying"),emoji:"😭"},{key:"loving",name:t("emojiConfig.emotions.loving"),emoji:"😍"},{key:"embarrassed",name:t("emojiConfig.emotions.embarrassed"),emoji:"😳"},{key:"surprised",name:t("emojiConfig.emotions.surprised"),emoji:"😯"},{key:"shocked",name:t("emojiConfig.emotions.shocked"),emoji:"😱"},{key:"thinking",name:t("emojiConfig.emotions.thinking"),emoji:"🤔"},{key:"winking",name:t("emojiConfig.emotions.winking"),emoji:"😉"},{key:"cool",name:t("emojiConfig.emotions.cool"),emoji:"😎"},{key:"relaxed",name:t("emojiConfig.emotions.relaxed"),emoji:"😌"},{key:"delicious",name:t("emojiConfig.emotions.delicious"),emoji:"🤤"},{key:"kissy",name:t("emojiConfig.emotions.kissy"),emoji:"😘"},{key:"confident",name:t("emojiConfig.emotions.confident"),emoji:"😏"},{key:"sleepy",name:t("emojiConfig.emotions.sleepy"),emoji:"😴"},{key:"silly",name:t("emojiConfig.emotions.silly"),emoji:"😜"},{key:"confused",name:t("emojiConfig.emotions.confused"),emoji:"🙄"}]),s=EA({size:{width:32,height:32}}),a=p=>{if(i.modelValue.type===p)return;const c={...i.modelValue,type:p};p==="none"?(c.preset="",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):p==="preset"?(c.preset=i.modelValue.preset||"twemoji32",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):p==="custom"&&(c.preset="",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}),n("update:modelValue",c)},I=p=>{i.modelValue.preset!==p&&n("update:modelValue",{...i.modelValue,preset:p,custom:{...i.modelValue.custom,images:i.modelValue.custom.images||{}}})},l=(p,c)=>{const d=p.target.files[0];d&&Q(c,d)},C=(p,c)=>{p.preventDefault();const d=p.dataTransfer.files;d.length>0&&Q(c,d[0])},Q=async(p,c)=>{const d=["png","gif"],w=c.name.split(".").pop().toLowerCase();if(!d.includes(w)){alert(t("emojiConfig.selectValidFormat"));return}const F=await o(c),N=i.modelValue.custom||{},G={...N.fileMap||{}},P={...N.emotionMap||{}},b={...N.images||{}};let R=[];for(const[L,cA]of Object.entries(P))cA===F&&L!==p&&R.push(L);R.length>0&&console.log(t("emojiConfig.sharedFileMessage",{emotionKey:p,existingEmotions:R.join(", ")})),G[F]=c,P[p]=F,b[p]=c,n("update:modelValue",{...i.modelValue,custom:{...N,size:s.value.size,images:b,fileMap:G,emotionMap:P}}),await bi.saveEmojiFile(`hash_${F}`,c,{size:s.value.size,format:w,emotions:[...R,p]})},E=async p=>{const c=i.modelValue.custom||{},d={...c.images},w={...c.emotionMap||{}},F={...c.fileMap||{}},N=w[p];delete d[p],delete w[p],Object.values(w).filter(P=>P===N).length===0&&N?(delete F[N],await bi.deleteEmojiFile(`hash_${N}`),console.log(t("emojiConfig.fileDeleted",{fileHash:N}))):console.log(t("emojiConfig.fileRetained",{fileHash:N})),n("update:modelValue",{...i.modelValue,custom:{...c,images:d,emotionMap:w,fileMap:F}})},f=(p,c)=>`./static/twemoji${p==="twemoji64"?"64":"32"}/${c}.png`,h=p=>{if(i.modelValue.type==="preset")return f(i.modelValue.preset,p);{const c=i.modelValue.custom.images[p];return c instanceof File||c instanceof Blob?URL.createObjectURL(c):null}},u=p=>{console.warn(t("emojiConfig.imageLoadFailed"),p.target.src),p.target.style.display="none"};return ae(()=>s.value.size,p=>{if(i.modelValue.type==="custom"){const c=i.modelValue.custom;JSON.stringify(c.size)!==JSON.stringify(p)&&n("update:modelValue",{...i.modelValue,custom:{...c,size:p}})}},{deep:!0}),i.modelValue.custom.size&&(s.value={size:{...i.modelValue.custom.size}}),(p,c)=>(H(),_("div",kp,[B("div",null,[B("h3",vp,v(p.$t("emojiConfig.title")),1),B("p",Fp,v(p.$t("emojiConfig.description")),1)]),B("div",Sp,[B("div",bp,[B("button",{onClick:c[0]||(c[0]=d=>a("none")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.noEmojiPack")),3),B("button",{onClick:c[1]||(c[1]=d=>a("preset")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.presetEmojiPack")),3),B("button",{onClick:c[2]||(c[2]=d=>a("custom")),class:kA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.customEmojiPack")),3)]),A.modelValue.type==="none"?(H(),_("p",Rp,v(p.$t("emojiConfig.noEmojiPackDescription")),1)):sA("",!0)]),A.modelValue.type==="preset"?(H(),_("div",Np,[B("h4",Gp,v(p.$t("emojiConfig.selectPresetEmojiPack")),1),B("div",Lp,[(H(),_(jA,null,Ke(r,d=>B("div",{key:d.id,onClick:w=>I(d.id),class:kA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===d.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",Mp,[B("div",null,[B("h5",xp,v(d.name),1),B("p",Jp,v(d.description),1),B("div",Tp,v(p.$t("emojiConfig.size"))+": "+v(d.size)+"px × "+v(d.size)+"px ",1)]),A.modelValue.preset===d.id?(H(),_("div",Hp,[...c[7]||(c[7]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):sA("",!0)]),B("div",Yp,[(H(!0),_(jA,null,Ke(d.preview,w=>(H(),_("div",{key:w,style:WA({width:d.size+"px",height:d.size+"px"}),class:"bg-gray-100 rounded flex items-center justify-center"},[B("img",{src:f(d.id,w),alt:w,style:WA({width:d.size+"px",height:d.size+"px"}),class:"object-contain rounded",onError:u},null,44,_p)],4))),128))])],10,Up)),64))])])):sA("",!0),A.modelValue.type==="custom"?(H(),_("div",Kp,[B("h4",Pp,v(p.$t("emojiConfig.customEmojiPackConfig")),1),B("div",Op,[B("div",null,[B("label",Vp,v(p.$t("emojiConfig.maxImageWidth")),1),XA(B("input",{type:"number","onUpdate:modelValue":c[3]||(c[3]=d=>s.value.size.width=d),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ie,s.value.size.width,void 0,{number:!0}]])]),B("div",null,[B("label",Wp,v(p.$t("emojiConfig.maxImageHeight")),1),XA(B("input",{type:"number","onUpdate:modelValue":c[4]||(c[4]=d=>s.value.size.height=d),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ie,s.value.size.height,void 0,{number:!0}]])])]),B("div",qp,[B("h5",jp,v(p.$t("emojiConfig.uploadEmojiImages")),1),B("div",Zp,[(H(!0),_(jA,null,Ke(g.value,d=>(H(),_("div",{key:d.key,class:"space-y-2"},[B("div",Xp,[B("div",zp,v(d.emoji),1),B("div",$p,[B("span",null,v(d.name),1),d.key==="neutral"?(H(),_("span",Am,v(p.$t("emojiConfig.required")),1)):sA("",!0)])]),B("div",{onDrop:w=>C(w,d.key),onDragover:c[5]||(c[5]=dt(()=>{},["prevent"])),onDragenter:c[6]||(c[6]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-2 text-center cursor-pointer transition-colors aspect-square flex flex-col items-center justify-center",A.modelValue.custom.images[d.key]?"border-green-300 bg-green-50":d.key==="neutral"?"border-red-300 bg-red-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_for:!0,ref:d.key+"Input",type:"file",accept:".png,.gif",onChange:w=>l(w,d.key),class:"hidden"},null,40,tm),A.modelValue.custom.images[d.key]?(H(),_("div",om,[h(d.key)?(H(),_("img",{key:0,src:h(d.key),alt:d.name,class:"w-full h-full object-cover rounded",onError:u},null,40,rm)):sA("",!0),B("button",{onClick:w=>E(d.key),class:"absolute -top-1 -right-1 w-4 h-4 bg-red-500 text-white rounded-full flex items-center justify-center text-xs hover:bg-red-600"}," × ",8,gm)])):(H(),_("div",{key:0,onClick:w=>{var F;return(F=p.$refs[d.key+"Input"][0])==null?void 0:F.click()}},[c[8]||(c[8]=B("svg",{class:"w-6 h-6 text-gray-400 mx-auto mb-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})],-1)),B("div",nm,v(p.$t("emojiConfig.clickToUploadOrDrag")),1)],8,im))],42,em)]))),128))]),B("div",sm,v(p.$t("emojiConfig.neutralRequiredNotice")),1)])])):sA("",!0)]))}},Im={class:"space-y-6"},Cm={class:"text-lg font-medium text-gray-900 mb-2"},lm={class:"text-gray-600"},Bm={class:"space-y-4"},Qm={class:"font-medium text-gray-900 flex items-center"},cm={class:"border border-gray-200 rounded-lg p-4 space-y-4"},Em={class:"flex space-x-4"},um={key:0,class:"space-y-3"},hm={class:"flex items-center space-x-3"},fm={class:"text-sm font-medium text-gray-700"},dm={class:"flex items-center space-x-2"},pm={class:"flex items-center space-x-3"},mm={class:"text-sm font-medium text-gray-700"},ym={class:"flex items-center space-x-2"},wm={key:1,class:"space-y-3"},Dm={class:"text-sm font-medium text-gray-700"},km={class:"mt-1 text-sm text-gray-600"},vm={key:1,class:"space-y-2"},Fm=["src"],Sm={class:"text-sm text-green-700 font-medium"},bm={class:"flex items-center space-x-3"},Rm={class:"text-sm font-medium text-gray-700"},Nm={class:"flex items-center space-x-2"},Gm={class:"space-y-4"},Lm={class:"font-medium text-gray-900 flex items-center"},Um={class:"border border-gray-200 rounded-lg p-4 space-y-4"},Mm={class:"flex space-x-4"},xm={key:0,class:"space-y-3"},Jm={class:"flex items-center space-x-3"},Tm={class:"text-sm font-medium text-gray-700"},Hm={class:"flex items-center space-x-2"},Ym={class:"flex items-center space-x-3"},_m={class:"text-sm font-medium text-gray-700"},Km={class:"flex items-center space-x-2"},Pm={key:1,class:"space-y-3"},Om={class:"text-sm font-medium text-gray-700"},Vm={class:"mt-1 text-sm text-gray-600"},Wm={key:1,class:"space-y-2"},qm=["src"],jm={class:"text-sm text-green-700 font-medium"},Zm={class:"flex items-center space-x-3"},Xm={class:"text-sm font-medium text-gray-700"},zm={class:"flex items-center space-x-2"},$m={class:"space-y-4"},Ay={class:"font-medium text-gray-900"},ey={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},ty={class:"space-y-2"},iy={class:"text-sm font-medium text-gray-700"},ny={class:"absolute inset-0 bg-white bg-opacity-10 flex items-center justify-center rounded-lg"},oy={class:"space-y-2"},ry={class:"text-sm font-medium text-gray-700"},gy={class:"absolute inset-0 bg-black bg-opacity-10 flex items-center justify-center rounded-lg"},sy={class:"bg-blue-50 border border-blue-200 rounded-lg p-4"},ay={class:"font-medium text-blue-900 mb-2"},Iy={class:"flex flex-wrap gap-2"},Cy={__name:"BackgroundConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=ve(),i=A,n=e,o=EA(null),r=EA(null),g=hA({get:()=>i.modelValue.light.backgroundColor,set:b=>Q(b)}),s=hA({get:()=>i.modelValue.dark.backgroundColor,set:b=>E(b)}),a=hA({get:()=>i.modelValue.light.textColor,set:b=>f(b)}),I=hA({get:()=>i.modelValue.dark.textColor,set:b=>h(b)}),l=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:b,backgroundImage:b==="image"?i.modelValue.light.backgroundImage:null}})},C=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundType:b,backgroundImage:b==="image"?i.modelValue.dark.backgroundImage:null}})},Q=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundColor:b}})},E=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundColor:b}})},f=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,textColor:b}})},h=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,textColor:b}})},u=(b,R)=>{const L=b.target.files[0];L&&c(R,L)},p=(b,R)=>{b.preventDefault();const L=b.dataTransfer.files;L.length>0&&c(R,L[0])},c=async(b,R)=>{R&&R.type.startsWith("image/")?(n("update:modelValue",{...i.modelValue,[b]:{...i.modelValue[b],backgroundImage:R}}),await bi.saveBackgroundFile(b,R)):alert(t("backgroundConfig.selectValidImage"))},d=async b=>{n("update:modelValue",{...i.modelValue,[b]:{...i.modelValue[b],backgroundImage:null}}),b==="light"&&o.value&&(o.value.value=""),b==="dark"&&r.value&&(r.value.value=""),await bi.deleteBackgroundFile(b)},w=b=>{const R=i.modelValue[b].backgroundImage;return R?URL.createObjectURL(R):null},F=()=>i.modelValue.light.backgroundType==="image"&&i.modelValue.light.backgroundImage?{backgroundImage:`url(${w("light")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.light.backgroundColor},N=()=>i.modelValue.dark.backgroundType==="image"&&i.modelValue.dark.backgroundImage?{backgroundImage:`url(${w("dark")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.dark.backgroundColor},G=(b,R)=>{const L=P(b)?"#000000":"#ffffff",cA=P(R)?"#000000":"#ffffff";n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:"color",backgroundColor:b,textColor:L,backgroundImage:null},dark:{...i.modelValue.dark,backgroundType:"color",backgroundColor:R,textColor:cA,backgroundImage:null}})},P=b=>{const R=b.replace("#",""),L=parseInt(R.substr(0,2),16),cA=parseInt(R.substr(2,2),16),dA=parseInt(R.substr(4,2),16);return(L*299+cA*587+dA*114)/1e3>128};return(b,R)=>(H(),_("div",Im,[B("div",null,[B("h3",Cm,v(b.$t("backgroundConfig.title")),1),B("p",lm,v(b.$t("backgroundConfig.description")),1)]),B("div",Bm,[B("h4",Qm,[R[33]||(R[33]=B("svg",{class:"w-5 h-5 mr-2 text-yellow-500",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z","clip-rule":"evenodd"})],-1)),gt(" "+v(b.$t("backgroundConfig.lightMode")),1)]),B("div",cm,[B("div",Em,[B("button",{onClick:R[0]||(R[0]=L=>l("color")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:R[1]||(R[1]=L=>l("image")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.light.backgroundType==="color"?(H(),_("div",um,[B("div",hm,[B("label",fm,v(b.$t("backgroundConfig.backgroundColor")),1),B("div",dm,[XA(B("input",{type:"color","onUpdate:modelValue":R[2]||(R[2]=L=>g.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,g.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[3]||(R[3]=L=>g.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,g.value]])]),B("div",{style:WA({backgroundColor:g.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",pm,[B("label",mm,v(b.$t("backgroundConfig.textColor")),1),B("div",ym,[XA(B("input",{type:"color","onUpdate:modelValue":R[4]||(R[4]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,a.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[5]||(R[5]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,a.value]])]),B("div",{style:WA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0),A.modelValue.light.backgroundType==="image"?(H(),_("div",wm,[B("label",Dm,v(b.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:R[9]||(R[9]=L=>p(L,"light")),onDragover:R[10]||(R[10]=dt(()=>{},["prevent"])),onDragenter:R[11]||(R[11]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.light.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"lightImageInput",ref:o,type:"file",accept:"image/*",onChange:R[6]||(R[6]=L=>u(L,"light")),class:"hidden"},null,544),A.modelValue.light.backgroundImage?(H(),_("div",vm,[B("img",{src:w("light"),alt:"{{ $t('backgroundConfig.lightModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,Fm),B("p",Sm,v(A.modelValue.light.backgroundImage.name),1),B("button",{onClick:R[8]||(R[8]=L=>d("light")),class:"text-red-600 hover:text-red-500 text-sm"},v(b.$t("backgroundConfig.removeImage")),1)])):(H(),_("div",{key:0,onClick:R[7]||(R[7]=L=>b.$refs.lightImageInput.click())},[R[34]||(R[34]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",km,v(b.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",bm,[B("label",Rm,v(b.$t("backgroundConfig.textColor")),1),B("div",Nm,[XA(B("input",{type:"color","onUpdate:modelValue":R[12]||(R[12]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,a.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[13]||(R[13]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,a.value]])]),B("div",{style:WA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0)])]),B("div",Gm,[B("h4",Lm,[R[35]||(R[35]=B("svg",{class:"w-5 h-5 mr-2 text-gray-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"})],-1)),gt(" "+v(b.$t("backgroundConfig.darkMode")),1)]),B("div",Um,[B("div",Mm,[B("button",{onClick:R[14]||(R[14]=L=>C("color")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:R[15]||(R[15]=L=>C("image")),class:kA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.dark.backgroundType==="color"?(H(),_("div",xm,[B("div",Jm,[B("label",Tm,v(b.$t("backgroundConfig.backgroundColor")),1),B("div",Hm,[XA(B("input",{type:"color","onUpdate:modelValue":R[16]||(R[16]=L=>s.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,s.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[17]||(R[17]=L=>s.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,s.value]])]),B("div",{style:WA({backgroundColor:s.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",Ym,[B("label",_m,v(b.$t("backgroundConfig.textColor")),1),B("div",Km,[XA(B("input",{type:"color","onUpdate:modelValue":R[18]||(R[18]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,I.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[19]||(R[19]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,I.value]])]),B("div",{style:WA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0),A.modelValue.dark.backgroundType==="image"?(H(),_("div",Pm,[B("label",Om,v(b.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:R[23]||(R[23]=L=>p(L,"dark")),onDragover:R[24]||(R[24]=dt(()=>{},["prevent"])),onDragenter:R[25]||(R[25]=dt(()=>{},["prevent"])),class:kA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.dark.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"darkImageInput",ref:r,type:"file",accept:"image/*",onChange:R[20]||(R[20]=L=>u(L,"dark")),class:"hidden"},null,544),A.modelValue.dark.backgroundImage?(H(),_("div",Wm,[B("img",{src:w("dark"),alt:"{{ $t('backgroundConfig.darkModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,qm),B("p",jm,v(A.modelValue.dark.backgroundImage.name),1),B("button",{onClick:R[22]||(R[22]=L=>d("dark")),class:"text-red-600 hover:text-red-500 text-sm"},v(b.$t("backgroundConfig.removeImage")),1)])):(H(),_("div",{key:0,onClick:R[21]||(R[21]=L=>b.$refs.darkImageInput.click())},[R[36]||(R[36]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",Vm,v(b.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",Zm,[B("label",Xm,v(b.$t("backgroundConfig.textColor")),1),B("div",zm,[XA(B("input",{type:"color","onUpdate:modelValue":R[26]||(R[26]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ie,I.value]]),XA(B("input",{type:"text","onUpdate:modelValue":R[27]||(R[27]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ie,I.value]])]),B("div",{style:WA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):sA("",!0)])]),B("div",$m,[B("h4",Ay,v(b.$t("backgroundConfig.backgroundPreview")),1),B("div",ey,[B("div",ty,[B("div",iy,v(b.$t("backgroundConfig.lightModePreview")),1),B("div",{style:WA(F()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",ny,[B("span",{style:WA({color:A.modelValue.light.textColor})},v(b.$t("backgroundConfig.chatArea")),5)])],4)]),B("div",oy,[B("div",ry,v(b.$t("backgroundConfig.darkModePreview")),1),B("div",{style:WA(N()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",gy,[B("span",{style:WA({color:A.modelValue.dark.textColor})},v(b.$t("backgroundConfig.chatArea")),5)])],4)])])]),B("div",sy,[B("h5",ay,v(b.$t("backgroundConfig.quickConfig")),1),B("div",Iy,[B("button",{onClick:R[28]||(R[28]=L=>G("#ffffff","#1f2937")),class:"px-3 py-1 text-sm bg-white border border-gray-300 rounded hover:bg-gray-50"},v(b.$t("backgroundConfig.defaultColors")),1),B("button",{onClick:R[29]||(R[29]=L=>G("#f5f5f4","#374151")),class:"px-3 py-1 text-sm bg-stone-100 border border-gray-300 rounded hover:bg-stone-200"},v(b.$t("backgroundConfig.stoneTexture")),1),B("button",{onClick:R[30]||(R[30]=L=>G("#fef7cd","#7c2d12")),class:"px-3 py-1 text-sm bg-yellow-100 border border-gray-300 rounded hover:bg-yellow-200"},v(b.$t("backgroundConfig.sunnyColors")),1),B("button",{onClick:R[31]||(R[31]=L=>G("#e0f2fe","#1e40af")),class:"px-3 py-1 text-sm bg-sky-100 border border-gray-300 rounded hover:bg-sky-200"},v(b.$t("backgroundConfig.skyBlue")),1),B("button",{onClick:R[32]||(R[32]=L=>G("#fdf2f8","#be185d")),class:"px-3 py-1 text-sm bg-pink-100 border border-gray-300 rounded hover:bg-pink-200"},v(b.$t("backgroundConfig.romanticPink")),1)])])]))}},ly={class:"space-y-6"},By={class:"text-xl font-semibold text-gray-900 mb-4"},Qy={class:"text-gray-600 mb-6"},cy={class:"border-b border-gray-200"},Ey={class:"-mb-px flex space-x-4 sm:space-x-8"},uy=["onClick"],hy={class:"flex items-center"},fy={class:"hidden sm:inline"},dy={class:"min-h-96"},py={class:"flex justify-between"},my={__name:"ThemeDesign",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0},activeTab:{type:String,default:"wakeword"}},emits:["update:modelValue","next","prev","tabChange"],setup(A,{emit:e}){const{t}=ve(),i={render(){return GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})])}},n={render(){return GA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[GA("path",{d:"M320 96C329.5 96 338 101.5 341.9 110.2L515.1 496L536 496C549.3 496 560 506.7 560 520C560 533.3 549.3 544 536 544L440 544C426.7 544 416 533.3 416 520C416 506.7 426.7 496 440 496L462.5 496L426.6 416L213.4 416L177.5 496L200 496C213.3 496 224 506.7 224 520C224 533.3 213.3 544 200 544L104 544C90.7 544 80 533.3 80 520C80 506.7 90.7 496 104 496L124.9 496L298.1 110.2C302 101.5 310.5 96 320 96zM320 178.6L235 368L405 368L320 178.6z"})])}},o={render(){return GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})])}},r={render(){return GA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[GA("path",{d:"M160 144C151.2 144 144 151.2 144 160L144 480C144 488.8 151.2 496 160 496L480 496C488.8 496 496 488.8 496 480L496 160C496 151.2 488.8 144 480 144L160 144zM96 160C96 124.7 124.7 96 160 96L480 96C515.3 96 544 124.7 544 160L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 160zM224 192C241.7 192 256 206.3 256 224C256 241.7 241.7 256 224 256C206.3 256 192 241.7 192 224C192 206.3 206.3 192 224 192zM360 264C368.5 264 376.4 268.5 380.7 275.8L460.7 411.8C465.1 419.2 465.1 428.4 460.8 435.9C456.5 443.4 448.6 448 440 448L200 448C191.1 448 182.8 443 178.7 435.1C174.6 427.2 175.2 417.6 180.3 410.3L236.3 330.3C240.8 323.9 248.1 320.1 256 320.1C263.9 320.1 271.2 323.9 275.7 330.3L292.9 354.9L339.4 275.9C343.7 268.6 351.6 264.1 360.1 264.1z"})])}},g=A,s=e,a=EA(g.activeTab),I=hA(()=>[{id:"wakeword",name:t("themeDesign.tabs.wakeword"),icon:i},{id:"font",name:t("themeDesign.tabs.font"),icon:n},{id:"emoji",name:t("themeDesign.tabs.emoji"),icon:o},{id:"background",name:t("themeDesign.tabs.background"),icon:r}]),l=hA({get:()=>g.modelValue,set:E=>s("update:modelValue",E)}),C=()=>{var h,u,p;const E=g.modelValue.wakeword;if(E.type==="custom"){if(!((h=E.custom.name)!=null&&h.trim())){alert(t("wakewordConfig.errors.nameRequired"));return}if(!((u=E.custom.command)!=null&&u.trim())){alert(t("wakewordConfig.errors.commandRequired"));return}if(!E.custom.duration||E.custom.duration<500||E.custom.duration>1e4){alert(t("wakewordConfig.errors.durationRange"));return}}const f=g.modelValue.font;if(f.type==="custom"&&!((p=f.custom)!=null&&p.file)){alert(t("fontConfig.selectValidFontFile"));return}s("next")},Q=E=>{a.value=E,s("tabChange",E)};return ae(()=>g.activeTab,E=>{a.value=E}),(E,f)=>(H(),_("div",ly,[B("div",null,[B("h2",By,v(E.$t("themeDesign.title")),1),B("p",Qy,v(E.$t("themeDesign.description")),1)]),B("div",cy,[B("nav",Ey,[(H(!0),_(jA,null,Ke(I.value,h=>(H(),_("button",{key:h.id,onClick:u=>Q(h.id),class:kA(["py-2 px-1 border-b-2 font-medium text-sm relative",a.value===h.id?"border-primary-500 text-primary-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"])},[B("span",hy,[(H(),ye(TI(h.icon),{class:"w-5 h-5 sm:mr-2"})),B("span",fy,v(h.name),1)])],10,uy))),128))])]),B("div",dy,[a.value==="wakeword"?(H(),ye(b0,{key:0,modelValue:l.value.wakeword,"onUpdate:modelValue":f[0]||(f[0]=h=>l.value.wakeword=h),chipModel:A.chipModel},null,8,["modelValue","chipModel"])):sA("",!0),a.value==="font"?(H(),ye(Dp,{key:1,modelValue:l.value.font,"onUpdate:modelValue":f[1]||(f[1]=h=>l.value.font=h)},null,8,["modelValue"])):sA("",!0),a.value==="emoji"?(H(),ye(am,{key:2,modelValue:l.value.emoji,"onUpdate:modelValue":f[2]||(f[2]=h=>l.value.emoji=h)},null,8,["modelValue"])):sA("",!0),a.value==="background"?(H(),ye(Cy,{key:3,modelValue:l.value.skin,"onUpdate:modelValue":f[3]||(f[3]=h=>l.value.skin=h)},null,8,["modelValue"])):sA("",!0)]),B("div",py,[B("button",{onClick:f[4]||(f[4]=h=>E.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(E.$t("themeDesign.previous")),1),B("button",{onClick:C,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(E.$t("themeDesign.next")),1)])]))}},yy=(A,e)=>{const t=A.__vccOpts||A;for(const[i,n]of e)t[i]=n;return t},wy={class:"space-y-6"},Dy={class:"text-xl font-semibold text-gray-900 mb-4"},ky={class:"text-gray-600 mb-6"},vy={class:"flex flex-col lg:flex-row gap-8"},Fy={class:"flex-1"},Sy={class:"text-lg font-medium text-gray-900 mb-4"},by={class:"bg-gray-100 p-4 rounded-lg"},Ry={class:"max-w-full overflow-auto flex justify-center"},Ny={class:"bg-gray-800 p-6 rounded-2xl shadow-2xl inline-block"},Gy={class:"bg-gray-900 p-2 rounded-xl"},Ly={class:"relative z-10 flex flex-col items-center justify-center p-4 text-center"},Uy={class:"mb-4"},My={key:0,class:"emoji-container"},xy=["src","alt"],Jy={key:1,class:"emoji-container"},Ty={class:"text-center"},Hy={class:"text-sm"},Yy={class:"text-xs"},_y={key:0,class:"absolute inset-0 flex items-center justify-center"},Ky={class:"animate-pulse text-gray-400 text-xs"},Py={class:"mt-3 text-center text-xs text-gray-400"},Oy={class:"w-full lg:w-80"},Vy={class:"text-lg font-medium text-gray-900 mb-4"},Wy={class:"space-y-6 bg-white border border-gray-200 rounded-lg p-4"},qy={class:"block text-sm font-medium text-gray-700 mb-2"},jy={class:"block text-sm font-medium text-gray-700 mb-2"},Zy={key:0,class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto justify-center"},Xy=["onClick","title"],zy={key:0},$y=["src","alt"],Aw={key:1,class:"text-lg"},ew={key:1,class:"text-center py-4 text-gray-500 bg-gray-50 rounded-lg border-2 border-dashed"},tw={class:"text-2xl mb-2"},iw={class:"text-sm"},nw={class:"block text-sm font-medium text-gray-700 mb-2"},ow={class:"flex space-x-2"},rw={class:"border-t pt-4"},gw={class:"font-medium text-gray-900 mb-2"},sw={class:"text-xs text-gray-600 space-y-1"},aw={key:0},Iw={class:"flex items-center"},Cw={key:0,class:"ml-2 animate-pulse text-blue-500"},lw={key:1},Bw={class:"flex justify-between"},Qw={__name:"GenerateSummary",props:{config:{type:Object,required:!0}},emits:["prev","generate"],setup(A){const{t:e}=ve(),t=A,i=EA(e("generateSummary.defaultPreviewText")),n=EA("happy"),o=EA("light"),r=EA(!1),g=EA(""),s=hA(()=>[{key:"neutral",name:e("generateSummary.emotions.neutral"),emoji:"😶"},{key:"happy",name:e("generateSummary.emotions.happy"),emoji:"🙂"},{key:"laughing",name:e("generateSummary.emotions.laughing"),emoji:"😆"},{key:"funny",name:e("generateSummary.emotions.funny"),emoji:"😂"},{key:"sad",name:e("generateSummary.emotions.sad"),emoji:"😔"},{key:"angry",name:e("generateSummary.emotions.angry"),emoji:"😠"},{key:"crying",name:e("generateSummary.emotions.crying"),emoji:"😭"},{key:"loving",name:e("generateSummary.emotions.loving"),emoji:"😍"},{key:"surprised",name:e("generateSummary.emotions.surprised"),emoji:"😯"},{key:"thinking",name:e("generateSummary.emotions.thinking"),emoji:"🤔"},{key:"cool",name:e("generateSummary.emotions.cool"),emoji:"😎"},{key:"sleepy",name:e("generateSummary.emotions.sleepy"),emoji:"😴"}]),a=hA(()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return s.value;if(t.config.theme.emoji.type==="custom"){const b=t.config.theme.emoji.custom.images;return s.value.filter(R=>b[R.key])}else return[]}),I=hA(()=>u(n.value)),l=()=>{const{width:b,height:R}=t.config.chip.display;return{width:`${b}px`,height:`${R}px`}},C=()=>{const b=t.config.theme.skin[o.value];if(b.backgroundType==="image"&&b.backgroundImage)try{if(b.backgroundImage&&typeof b.backgroundImage=="object"&&b.backgroundImage.size)return{backgroundImage:`url(${URL.createObjectURL(b.backgroundImage)})`,backgroundSize:"cover",backgroundPosition:"center"}}catch(R){console.warn("背景图片预览加载失败:",R)}return{backgroundColor:b.backgroundColor||"#ffffff"}},Q=()=>{let b=48;return t.config.theme.emoji.type==="preset"?b=t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size&&(b=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height)),{width:`${b}px`,height:`${b}px`}},E=()=>{let b=14;if(t.config.theme.font.type==="preset"){const L=t.config.theme.font.preset;L.includes("_14_")?b=14:L.includes("_16_")?b=16:L.includes("_20_")?b=20:L.includes("_30_")&&(b=30)}else t.config.theme.font.custom.size&&(b=t.config.theme.font.custom.size);const R=o.value==="dark"?t.config.theme.skin.dark.textColor:t.config.theme.skin.light.textColor;return{fontSize:`${b}px`,color:R,fontFamily:h(),textShadow:o.value==="dark"?"1px 1px 2px rgba(0,0,0,0.5)":"1px 1px 2px rgba(255,255,255,0.5)"}},f=async()=>{document.querySelectorAll("style[data-font-preview]").forEach(R=>R.remove()),r.value=!1,g.value="";try{if(t.config.theme.font.type==="preset"){const R=t.config.theme.font.preset;let L,cA;R&&R.startsWith("font_noto_qwen_")?(L="NotoPreview",cA="./static/fonts/noto_qwen.ttf"):(L="PuHuiPreview",cA="./static/fonts/puhui_deepseek.ttf");const dA=document.createElement("style");dA.setAttribute("data-font-preview","true"),dA.textContent=`
|
||
@font-face {
|
||
font-family: '${L}';
|
||
src: url('${cA}') format('truetype');
|
||
font-display: swap;
|
||
}
|
||
`,document.head.appendChild(dA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}else if(t.config.theme.font.custom.file)try{const R=t.config.theme.font.custom.file;if(!R||typeof R!="object"||!R.size)throw new Error("字体文件对象无效");const L="CustomFontPreview",cA=URL.createObjectURL(R),dA=document.createElement("style");dA.setAttribute("data-font-preview","true"),dA.textContent=`
|
||
@font-face {
|
||
font-family: '${L}';
|
||
src: url('${cA}');
|
||
font-display: swap;
|
||
}
|
||
`,document.head.appendChild(dA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}catch(R){console.warn("自定义字体预览加载失败:",R),g.value="Arial, sans-serif",r.value=!0}else g.value="system-ui",r.value=!0}catch(R){console.warn("Font loading failed:",R),g.value="system-ui",r.value=!0}},h=()=>r.value&&g.value?`"${g.value}", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif`:'"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif',u=b=>{if(t.config.theme.emoji.type==="preset")return`./static/twemoji${t.config.theme.emoji.preset==="twemoji64"?"64":"32"}/${b}.png`;if(t.config.theme.emoji.type==="custom"&&t.config.theme.emoji.custom.images[b])try{const R=t.config.theme.emoji.custom.images[b];if(R&&typeof R=="object"&&R.size)return URL.createObjectURL(R)}catch(R){console.warn(`表情图片预览加载失败 (${b}):`,R)}return null},p=b=>{const R=s.value.find(L=>L.key===b);return R?R.emoji:"😶"},c=()=>{if(t.config.theme.emoji.type==="preset")return(t.config.theme.emoji.preset==="twemoji64"?64:32)+16;if(t.config.theme.emoji.custom.size){const b=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height);return Math.min(b+16,64)}return 48},d=()=>t.config.theme.emoji.type==="preset"?t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size?Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height,48):32,w=b=>{n.value=b},F=()=>{const b=t.config.theme.wakeword;return!b||b.type==="none"?e("wakewordConfig.noWakeword"):b.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa",wn9_jarvis_tts:"Jarvis"}[b.preset]||b.preset:b.type==="custom"?b.custom.name||e("wakewordConfig.customWakeword"):e("wakewordConfig.noWakeword")},N=()=>{if(t.config.theme.font.type==="preset")return e("fontConfig.presetFontNames."+t.config.theme.font.preset)||t.config.theme.font.preset;{const b=t.config.theme.font.custom;return e("generateSummary.customFont",{size:b.size})}},G=()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return t.config.theme.emoji.preset==="twemoji64"?"Twemoji 64×64":"Twemoji 32×32";if(t.config.theme.emoji.type==="custom"){const b=Object.keys(t.config.theme.emoji.custom.images).length;return e("generateSummary.customEmoji",{count:b})}else return t.config.theme.emoji.type==="none"?e("emojiConfig.noEmojiPack"):e("generateSummary.notConfigured")},P=()=>{const b=t.config.theme.skin.light.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color"),R=t.config.theme.skin.dark.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color");return e("generateSummary.skinLight",{type:b})+"/"+e("generateSummary.skinDark",{type:R})};return ae(()=>t.config.theme.font,()=>{f()},{deep:!0}),Ft(async()=>{a.value.length>0?n.value=a.value[0].key:n.value="",await f()}),Ci(()=>{document.querySelectorAll("style[data-font-preview]").forEach(R=>R.remove())}),(b,R)=>(H(),_("div",wy,[B("div",null,[B("h2",Dy,v(b.$t("generateSummary.title")),1),B("p",ky,v(b.$t("generateSummary.description")),1)]),B("div",vy,[B("div",Fy,[B("h3",Sy,v(b.$t("generateSummary.devicePreview")),1),B("div",by,[B("div",Ry,[B("div",Ny,[B("div",Gy,[B("div",{style:WA(l()),class:"relative rounded-lg overflow-hidden border-2 border-gray-700 flex flex-col items-center justify-center"},[B("div",{style:WA(C()),class:"absolute inset-0"},null,4),B("div",Ly,[B("div",Uy,[n.value&&a.value.length>0?(H(),_("div",My,[I.value?(H(),_("img",{key:0,src:I.value,alt:n.value,style:WA(Q()),class:"emoji-image"},null,12,xy)):(H(),_("div",{key:1,style:WA(Q()),class:"emoji-fallback bg-gray-200 rounded-full flex items-center justify-center text-2xl"},v(p(n.value)),5))])):(H(),_("div",Jy,[B("div",{style:WA(Q()),class:"emoji-placeholder flex items-center justify-center text-gray-400 border-2 border-dashed border-gray-300 rounded bg-gray-50"},[B("div",Ty,[B("div",Hy,v(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",Yy,v(A.config.theme.emoji.type==="none"?b.$t("emojiConfig.noEmojiPack"):b.$t("generateSummary.noEmotionConfigured")),1)])],4)]))]),A.config.theme.font.hide_subtitle?sA("",!0):(H(),_("div",{key:0,style:WA(E()),class:"text-message max-w-full break-words relative"},[r.value?sA("",!0):(H(),_("div",_y,[B("div",Ky,v(b.$t("generateSummary.fontLoading")),1)])),B("div",{class:kA({"opacity-0":!r.value})},v(i.value),3)],4))])],4)]),B("div",Py,v(A.config.chip.display.width)+" × "+v(A.config.chip.display.height)+" "+v(A.config.chip.model.toUpperCase()),1)])])])]),B("div",Oy,[B("h3",Vy,v(b.$t("generateSummary.previewSettings")),1),B("div",Wy,[B("div",null,[B("label",qy,v(b.$t("generateSummary.previewText")),1),XA(B("textarea",{"onUpdate:modelValue":R[0]||(R[0]=L=>i.value=L),class:"w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",rows:"3",placeholder:"Hi, I'm your friend Xiaozhi!"},null,512),[[ie,i.value]])]),B("div",null,[B("label",jy,v(b.$t("generateSummary.currentEmotion")),1),a.value.length>0?(H(),_("div",Zy,[(H(!0),_(jA,null,Ke(a.value,L=>(H(),_("button",{key:L.key,onClick:cA=>w(L.key),class:kA(["p-2 border rounded transition-colors flex items-center justify-center",n.value===L.key?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"]),title:L.name,style:WA({width:c()+"px",height:c()+"px"})},[u(L.key)?(H(),_("div",zy,[B("img",{src:u(L.key),alt:L.name,style:WA({width:d()+"px",height:d()+"px"}),class:"object-contain rounded"},null,12,$y)])):(H(),_("div",Aw,v(L.emoji),1))],14,Xy))),128))])):(H(),_("div",ew,[B("div",tw,v(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",iw,v(A.config.theme.emoji.type==="none"?b.$t("emojiConfig.noEmojiPackDescription"):b.$t("generateSummary.configureEmojiFirst")),1)]))]),B("div",null,[B("label",nw,v(b.$t("generateSummary.themeMode")),1),B("div",ow,[B("button",{onClick:R[1]||(R[1]=L=>o.value="light"),class:kA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",o.value==="light"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌞 "+v(b.$t("generateSummary.lightMode")),3),B("button",{onClick:R[2]||(R[2]=L=>o.value="dark"),class:kA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",o.value==="dark"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌙 "+v(b.$t("generateSummary.darkMode")),3)])]),B("div",rw,[B("h4",gw,v(b.$t("generateSummary.configSummary")),1),B("div",sw,[A.config.theme.wakeword?(H(),_("div",aw,v(b.$t("generateSummary.wakeword"))+" "+v(F()),1)):sA("",!0),B("div",Iw,[B("span",null,v(b.$t("generateSummary.font"))+" "+v(N()),1),r.value?sA("",!0):(H(),_("span",Cw,v(b.$t("generateSummary.loading")),1))]),B("div",null,v(b.$t("generateSummary.emotion"))+" "+v(G()),1),B("div",null,v(b.$t("generateSummary.skin"))+" "+v(P()),1),A.config.theme.font.hide_subtitle?(H(),_("div",lw,v(b.$t("generateSummary.hideSubtitle"))+" "+v(b.$t("common.yes")),1)):sA("",!0)])])])])]),B("div",Bw,[B("button",{onClick:R[3]||(R[3]=L=>b.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(b.$t("generateSummary.previous")),1),B("button",{onClick:R[4]||(R[4]=L=>b.$emit("generate")),class:"bg-green-500 hover:bg-green-600 text-white px-8 py-2 rounded-lg font-medium transition-colors flex items-center"},[R[5]||(R[5]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+v(b.$t("generateSummary.generate")),1)])])]))}},cw=yy(Qw,[["__scopeId","data-v-aa1dde40"]]);/*! https://mths.be/codepointat v0.2.0 by @mathias */String.prototype.codePointAt||function(){var A=function(){try{var t={},i=Object.defineProperty,n=i(t,t,t)&&i}catch{}return n}(),e=function(t){if(this==null)throw TypeError();var i=String(this),n=i.length,o=t?Number(t):0;if(o!=o&&(o=0),!(o<0||o>=n)){var r=i.charCodeAt(o),g;return r>=55296&&r<=56319&&n>o+1&&(g=i.charCodeAt(o+1),g>=56320&&g<=57343)?(r-55296)*1024+g-56320+65536:r}};A?A(String.prototype,"codePointAt",{value:e,configurable:!0,writable:!0}):String.prototype.codePointAt=e}();var Qg=0,YC=-3;function an(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Ew(A,e){this.source=A,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=e,this.destLen=0,this.ltree=new an,this.dtree=new an}var _C=new an,KC=new an,cg=new Uint8Array(30),Eg=new Uint16Array(30),PC=new Uint8Array(30),OC=new Uint16Array(30),uw=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Xs=new an,$e=new Uint8Array(320);function VC(A,e,t,i){var n,o;for(n=0;n<t;++n)A[n]=0;for(n=0;n<30-t;++n)A[n+t]=n/t|0;for(o=i,n=0;n<30;++n)e[n]=o,o+=1<<A[n]}function hw(A,e){var t;for(t=0;t<7;++t)A.table[t]=0;for(A.table[7]=24,A.table[8]=152,A.table[9]=112,t=0;t<24;++t)A.trans[t]=256+t;for(t=0;t<144;++t)A.trans[24+t]=t;for(t=0;t<8;++t)A.trans[168+t]=280+t;for(t=0;t<112;++t)A.trans[176+t]=144+t;for(t=0;t<5;++t)e.table[t]=0;for(e.table[5]=32,t=0;t<32;++t)e.trans[t]=t}var zs=new Uint16Array(16);function jo(A,e,t,i){var n,o;for(n=0;n<16;++n)A.table[n]=0;for(n=0;n<i;++n)A.table[e[t+n]]++;for(A.table[0]=0,o=0,n=0;n<16;++n)zs[n]=o,o+=A.table[n];for(n=0;n<i;++n)e[t+n]&&(A.trans[zs[e[t+n]]++]=n)}function fw(A){A.bitcount--||(A.tag=A.source[A.sourceIndex++],A.bitcount=7);var e=A.tag&1;return A.tag>>>=1,e}function et(A,e,t){if(!e)return t;for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<<A.bitcount,A.bitcount+=8;var i=A.tag&65535>>>16-e;return A.tag>>>=e,A.bitcount-=e,i+t}function br(A,e){for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<<A.bitcount,A.bitcount+=8;var t=0,i=0,n=0,o=A.tag;do i=2*i+(o&1),o>>>=1,++n,t+=e.table[n],i-=e.table[n];while(i>=0);return A.tag=o,A.bitcount-=n,e.trans[t+i]}function dw(A,e,t){var i,n,o,r,g,s;for(i=et(A,5,257),n=et(A,5,1),o=et(A,4,4),r=0;r<19;++r)$e[r]=0;for(r=0;r<o;++r){var a=et(A,3,0);$e[uw[r]]=a}for(jo(Xs,$e,0,19),g=0;g<i+n;){var I=br(A,Xs);switch(I){case 16:var l=$e[g-1];for(s=et(A,2,3);s;--s)$e[g++]=l;break;case 17:for(s=et(A,3,3);s;--s)$e[g++]=0;break;case 18:for(s=et(A,7,11);s;--s)$e[g++]=0;break;default:$e[g++]=I;break}}jo(e,$e,0,i),jo(t,$e,i,n)}function $s(A,e,t){for(;;){var i=br(A,e);if(i===256)return Qg;if(i<256)A.dest[A.destLen++]=i;else{var n,o,r,g;for(i-=257,n=et(A,cg[i],Eg[i]),o=br(A,t),r=A.destLen-et(A,PC[o],OC[o]),g=r;g<r+n;++g)A.dest[A.destLen++]=A.dest[g]}}}function pw(A){for(var e,t,i;A.bitcount>8;)A.sourceIndex--,A.bitcount-=8;if(e=A.source[A.sourceIndex+1],e=256*e+A.source[A.sourceIndex],t=A.source[A.sourceIndex+3],t=256*t+A.source[A.sourceIndex+2],e!==(~t&65535))return YC;for(A.sourceIndex+=4,i=e;i;--i)A.dest[A.destLen++]=A.source[A.sourceIndex++];return A.bitcount=0,Qg}function mw(A,e){var t=new Ew(A,e),i,n,o;do{switch(i=fw(t),n=et(t,2,0),n){case 0:o=pw(t);break;case 1:o=$s(t,_C,KC);break;case 2:dw(t,t.ltree,t.dtree),o=$s(t,t.ltree,t.dtree);break;default:o=YC}if(o!==Qg)throw new Error("Data error")}while(!i);return t.destLen<t.dest.length?typeof t.dest.slice=="function"?t.dest.slice(0,t.destLen):t.dest.subarray(0,t.destLen):t.dest}hw(_C,KC);VC(cg,Eg,4,3);VC(PC,OC,2,1);cg[28]=0;Eg[28]=258;var yw=mw;function Bi(A,e,t,i,n){return Math.pow(1-n,3)*A+3*Math.pow(1-n,2)*n*e+3*(1-n)*Math.pow(n,2)*t+Math.pow(n,3)*i}function St(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}St.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)};St.prototype.addPoint=function(A,e){typeof A=="number"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=A,this.x2=A),A<this.x1&&(this.x1=A),A>this.x2&&(this.x2=A)),typeof e=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))};St.prototype.addX=function(A){this.addPoint(A,null)};St.prototype.addY=function(A){this.addPoint(null,A)};St.prototype.addBezier=function(A,e,t,i,n,o,r,g){var s=[A,e],a=[t,i],I=[n,o],l=[r,g];this.addPoint(A,e),this.addPoint(r,g);for(var C=0;C<=1;C++){var Q=6*s[C]-12*a[C]+6*I[C],E=-3*s[C]+9*a[C]-9*I[C]+3*l[C],f=3*a[C]-3*s[C];if(E===0){if(Q===0)continue;var h=-f/Q;0<h&&h<1&&(C===0&&this.addX(Bi(s[C],a[C],I[C],l[C],h)),C===1&&this.addY(Bi(s[C],a[C],I[C],l[C],h)));continue}var u=Math.pow(Q,2)-4*f*E;if(!(u<0)){var p=(-Q+Math.sqrt(u))/(2*E);0<p&&p<1&&(C===0&&this.addX(Bi(s[C],a[C],I[C],l[C],p)),C===1&&this.addY(Bi(s[C],a[C],I[C],l[C],p)));var c=(-Q-Math.sqrt(u))/(2*E);0<c&&c<1&&(C===0&&this.addX(Bi(s[C],a[C],I[C],l[C],c)),C===1&&this.addY(Bi(s[C],a[C],I[C],l[C],c)))}}};St.prototype.addQuad=function(A,e,t,i,n,o){var r=A+.6666666666666666*(t-A),g=e+2/3*(i-e),s=r+1/3*(n-A),a=g+1/3*(o-e);this.addBezier(A,e,r,g,s,a,n,o)};function ne(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}ne.prototype.moveTo=function(A,e){this.commands.push({type:"M",x:A,y:e})};ne.prototype.lineTo=function(A,e){this.commands.push({type:"L",x:A,y:e})};ne.prototype.curveTo=ne.prototype.bezierCurveTo=function(A,e,t,i,n,o){this.commands.push({type:"C",x1:A,y1:e,x2:t,y2:i,x:n,y:o})};ne.prototype.quadTo=ne.prototype.quadraticCurveTo=function(A,e,t,i){this.commands.push({type:"Q",x1:A,y1:e,x:t,y:i})};ne.prototype.close=ne.prototype.closePath=function(){this.commands.push({type:"Z"})};ne.prototype.extend=function(A){if(A.commands)A=A.commands;else if(A instanceof St){var e=A;this.moveTo(e.x1,e.y1),this.lineTo(e.x2,e.y1),this.lineTo(e.x2,e.y2),this.lineTo(e.x1,e.y2),this.close();return}Array.prototype.push.apply(this.commands,A)};ne.prototype.getBoundingBox=function(){for(var A=new St,e=0,t=0,i=0,n=0,o=0;o<this.commands.length;o++){var r=this.commands[o];switch(r.type){case"M":A.addPoint(r.x,r.y),e=i=r.x,t=n=r.y;break;case"L":A.addPoint(r.x,r.y),i=r.x,n=r.y;break;case"Q":A.addQuad(i,n,r.x1,r.y1,r.x,r.y),i=r.x,n=r.y;break;case"C":A.addBezier(i,n,r.x1,r.y1,r.x2,r.y2,r.x,r.y),i=r.x,n=r.y;break;case"Z":i=e,n=t;break;default:throw new Error("Unexpected path command "+r.type)}}return A.isEmpty()&&A.addPoint(0,0),A};ne.prototype.draw=function(A){A.beginPath();for(var e=0;e<this.commands.length;e+=1){var t=this.commands[e];t.type==="M"?A.moveTo(t.x,t.y):t.type==="L"?A.lineTo(t.x,t.y):t.type==="C"?A.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y):t.type==="Q"?A.quadraticCurveTo(t.x1,t.y1,t.x,t.y):t.type==="Z"&&A.closePath()}this.fill&&(A.fillStyle=this.fill,A.fill()),this.stroke&&(A.strokeStyle=this.stroke,A.lineWidth=this.strokeWidth,A.stroke())};ne.prototype.toPathData=function(A){A=A!==void 0?A:2;function e(r){return Math.round(r)===r?""+Math.round(r):r.toFixed(A)}function t(){for(var r=arguments,g="",s=0;s<arguments.length;s+=1){var a=r[s];a>=0&&s>0&&(g+=" "),g+=e(a)}return g}for(var i="",n=0;n<this.commands.length;n+=1){var o=this.commands[n];o.type==="M"?i+="M"+t(o.x,o.y):o.type==="L"?i+="L"+t(o.x,o.y):o.type==="C"?i+="C"+t(o.x1,o.y1,o.x2,o.y2,o.x,o.y):o.type==="Q"?i+="Q"+t(o.x1,o.y1,o.x,o.y):o.type==="Z"&&(i+="Z")}return i};ne.prototype.toSVG=function(A){var e='<path d="';return e+=this.toPathData(A),e+='"',this.fill&&this.fill!=="black"&&(this.fill===null?e+=' fill="none"':e+=' fill="'+this.fill+'"'),this.stroke&&(e+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),e+="/>",e};ne.prototype.toDOMElement=function(A){var e=this.toPathData(A),t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("d",e),t};function WC(A){throw new Error(A)}function Aa(A,e){A||WC(e)}var mA={fail:WC,argument:Aa,assert:Aa},ea=32768,ta=2147483648,Ri={},oA={},wA={};function je(A){return function(){return A}}oA.BYTE=function(A){return mA.argument(A>=0&&A<=255,"Byte value should be between 0 and 255."),[A]};wA.BYTE=je(1);oA.CHAR=function(A){return[A.charCodeAt(0)]};wA.CHAR=je(1);oA.CHARARRAY=function(A){typeof A>"u"&&(A="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var e=[],t=0;t<A.length;t+=1)e[t]=A.charCodeAt(t);return e};wA.CHARARRAY=function(A){return typeof A>"u"?0:A.length};oA.USHORT=function(A){return[A>>8&255,A&255]};wA.USHORT=je(2);oA.SHORT=function(A){return A>=ea&&(A=-(2*ea-A)),[A>>8&255,A&255]};wA.SHORT=je(2);oA.UINT24=function(A){return[A>>16&255,A>>8&255,A&255]};wA.UINT24=je(3);oA.ULONG=function(A){return[A>>24&255,A>>16&255,A>>8&255,A&255]};wA.ULONG=je(4);oA.LONG=function(A){return A>=ta&&(A=-(2*ta-A)),[A>>24&255,A>>16&255,A>>8&255,A&255]};wA.LONG=je(4);oA.FIXED=oA.ULONG;wA.FIXED=wA.ULONG;oA.FWORD=oA.SHORT;wA.FWORD=wA.SHORT;oA.UFWORD=oA.USHORT;wA.UFWORD=wA.USHORT;oA.LONGDATETIME=function(A){return[0,0,0,0,A>>24&255,A>>16&255,A>>8&255,A&255]};wA.LONGDATETIME=je(8);oA.TAG=function(A){return mA.argument(A.length===4,"Tag should be exactly 4 ASCII characters."),[A.charCodeAt(0),A.charCodeAt(1),A.charCodeAt(2),A.charCodeAt(3)]};wA.TAG=je(4);oA.Card8=oA.BYTE;wA.Card8=wA.BYTE;oA.Card16=oA.USHORT;wA.Card16=wA.USHORT;oA.OffSize=oA.BYTE;wA.OffSize=wA.BYTE;oA.SID=oA.USHORT;wA.SID=wA.USHORT;oA.NUMBER=function(A){return A>=-107&&A<=107?[A+139]:A>=108&&A<=1131?(A=A-108,[(A>>8)+247,A&255]):A>=-1131&&A<=-108?(A=-A-108,[(A>>8)+251,A&255]):A>=-32768&&A<=32767?oA.NUMBER16(A):oA.NUMBER32(A)};wA.NUMBER=function(A){return oA.NUMBER(A).length};oA.NUMBER16=function(A){return[28,A>>8&255,A&255]};wA.NUMBER16=je(3);oA.NUMBER32=function(A){return[29,A>>24&255,A>>16&255,A>>8&255,A&255]};wA.NUMBER32=je(5);oA.REAL=function(A){var e=A.toString(),t=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(e);if(t){var i=parseFloat("1e"+((t[2]?+t[2]:0)+t[1].length));e=(Math.round(A*i)/i).toString()}for(var n="",o=0,r=e.length;o<r;o+=1){var g=e[o];g==="e"?n+=e[++o]==="-"?"c":"b":g==="."?n+="a":g==="-"?n+="e":n+=g}n+=n.length&1?"f":"ff";for(var s=[30],a=0,I=n.length;a<I;a+=2)s.push(parseInt(n.substr(a,2),16));return s};wA.REAL=function(A){return oA.REAL(A).length};oA.NAME=oA.CHARARRAY;wA.NAME=wA.CHARARRAY;oA.STRING=oA.CHARARRAY;wA.STRING=wA.CHARARRAY;Ri.UTF8=function(A,e,t){for(var i=[],n=t,o=0;o<n;o++,e+=1)i[o]=A.getUint8(e);return String.fromCharCode.apply(null,i)};Ri.UTF16=function(A,e,t){for(var i=[],n=t/2,o=0;o<n;o++,e+=2)i[o]=A.getUint16(e);return String.fromCharCode.apply(null,i)};oA.UTF16=function(A){for(var e=[],t=0;t<A.length;t+=1){var i=A.charCodeAt(t);e[e.length]=i>>8&255,e[e.length]=i&255}return e};wA.UTF16=function(A){return A.length*2};var Rr={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};Ri.MACSTRING=function(A,e,t,i){var n=Rr[i];if(n!==void 0){for(var o="",r=0;r<t;r++){var g=A.getUint8(e+r);g<=127?o+=String.fromCharCode(g):o+=n[g&127]}return o}};var Nn=typeof WeakMap=="function"&&new WeakMap,Gn,ww=function(A){if(!Gn){Gn={};for(var e in Rr)Gn[e]=new String(e)}var t=Gn[A];if(t!==void 0){if(Nn){var i=Nn.get(t);if(i!==void 0)return i}var n=Rr[A];if(n!==void 0){for(var o={},r=0;r<n.length;r++)o[n.charCodeAt(r)]=r+128;return Nn&&Nn.set(t,o),o}}};oA.MACSTRING=function(A,e){var t=ww(e);if(t!==void 0){for(var i=[],n=0;n<A.length;n++){var o=A.charCodeAt(n);if(o>=128&&(o=t[o],o===void 0))return;i[n]=o}return i}};wA.MACSTRING=function(A,e){var t=oA.MACSTRING(A,e);return t!==void 0?t.length:0};function Nr(A){return A>=-128&&A<=127}function Dw(A,e,t){for(var i=0,n=A.length;e<n&&i<64&&A[e]===0;)++e,++i;return t.push(128|i-1),e}function kw(A,e,t){for(var i=0,n=A.length,o=e;o<n&&i<64;){var r=A[o];if(!Nr(r)||r===0&&o+1<n&&A[o+1]===0)break;++o,++i}t.push(i-1);for(var g=e;g<o;++g)t.push(A[g]+256&255);return o}function vw(A,e,t){for(var i=0,n=A.length,o=e;o<n&&i<64;){var r=A[o];if(r===0||Nr(r)&&o+1<n&&Nr(A[o+1]))break;++o,++i}t.push(64|i-1);for(var g=e;g<o;++g){var s=A[g];t.push(s+65536>>8&255,s+256&255)}return o}oA.VARDELTAS=function(A){for(var e=0,t=[];e<A.length;){var i=A[e];i===0?e=Dw(A,e,t):i>=-128&&i<=127?e=kw(A,e,t):e=vw(A,e,t)}return t};oA.INDEX=function(A){for(var e=1,t=[e],i=[],n=0;n<A.length;n+=1){var o=oA.OBJECT(A[n]);Array.prototype.push.apply(i,o),e+=o.length,t.push(e)}if(i.length===0)return[0,0];for(var r=[],g=1+Math.floor(Math.log(e)/Math.log(2))/8|0,s=[void 0,oA.BYTE,oA.USHORT,oA.UINT24,oA.ULONG][g],a=0;a<t.length;a+=1){var I=s(t[a]);Array.prototype.push.apply(r,I)}return Array.prototype.concat(oA.Card16(A.length),oA.OffSize(g),r,i)};wA.INDEX=function(A){return oA.INDEX(A).length};oA.DICT=function(A){for(var e=[],t=Object.keys(A),i=t.length,n=0;n<i;n+=1){var o=parseInt(t[n],0),r=A[o];e=e.concat(oA.OPERAND(r.value,r.type)),e=e.concat(oA.OPERATOR(o))}return e};wA.DICT=function(A){return oA.DICT(A).length};oA.OPERATOR=function(A){return A<1200?[A]:[12,A-1200]};oA.OPERAND=function(A,e){var t=[];if(Array.isArray(e))for(var i=0;i<e.length;i+=1)mA.argument(A.length===e.length,"Not enough arguments given for type"+e),t=t.concat(oA.OPERAND(A[i],e[i]));else if(e==="SID")t=t.concat(oA.NUMBER(A));else if(e==="offset")t=t.concat(oA.NUMBER32(A));else if(e==="number")t=t.concat(oA.NUMBER(A));else if(e==="real")t=t.concat(oA.REAL(A));else throw new Error("Unknown operand type "+e);return t};oA.OP=oA.BYTE;wA.OP=wA.BYTE;var Ln=typeof WeakMap=="function"&&new WeakMap;oA.CHARSTRING=function(A){if(Ln){var e=Ln.get(A);if(e!==void 0)return e}for(var t=[],i=A.length,n=0;n<i;n+=1){var o=A[n];t=t.concat(oA[o.type](o.value))}return Ln&&Ln.set(A,t),t};wA.CHARSTRING=function(A){return oA.CHARSTRING(A).length};oA.OBJECT=function(A){var e=oA[A.type];return mA.argument(e!==void 0,"No encoding function for type "+A.type),e(A.value)};wA.OBJECT=function(A){var e=wA[A.type];return mA.argument(e!==void 0,"No sizeOf function for type "+A.type),e(A.value)};oA.TABLE=function(A){for(var e=[],t=A.fields.length,i=[],n=[],o=0;o<t;o+=1){var r=A.fields[o],g=oA[r.type];mA.argument(g!==void 0,"No encoding function for field type "+r.type+" ("+r.name+")");var s=A[r.name];s===void 0&&(s=r.value);var a=g(s);r.type==="TABLE"?(n.push(e.length),e=e.concat([0,0]),i.push(a)):e=e.concat(a)}for(var I=0;I<i.length;I+=1){var l=n[I],C=e.length;mA.argument(C<65536,"Table "+A.tableName+" too big."),e[l]=C>>8,e[l+1]=C&255,e=e.concat(i[I])}return e};wA.TABLE=function(A){for(var e=0,t=A.fields.length,i=0;i<t;i+=1){var n=A.fields[i],o=wA[n.type];mA.argument(o!==void 0,"No sizeOf function for field type "+n.type+" ("+n.name+")");var r=A[n.name];r===void 0&&(r=n.value),e+=o(r),n.type==="TABLE"&&(e+=2)}return e};oA.RECORD=oA.TABLE;wA.RECORD=wA.TABLE;oA.LITERAL=function(A){return A};wA.LITERAL=function(A){return A.length};function se(A,e,t){if(e.length&&(e[0].name!=="coverageFormat"||e[0].value===1))for(var i=0;i<e.length;i+=1){var n=e[i];this[n.name]=n.value}if(this.tableName=A,this.fields=e,t)for(var o=Object.keys(t),r=0;r<o.length;r+=1){var g=o[r],s=t[g];this[g]!==void 0&&(this[g]=s)}}se.prototype.encode=function(){return oA.TABLE(this)};se.prototype.sizeOf=function(){return wA.TABLE(this)};function In(A,e,t){t===void 0&&(t=e.length);var i=new Array(e.length+1);i[0]={name:A+"Count",type:"USHORT",value:t};for(var n=0;n<e.length;n++)i[n+1]={name:A+n,type:"USHORT",value:e[n]};return i}function Gr(A,e,t){var i=e.length,n=new Array(i+1);n[0]={name:A+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n[o+1]={name:A+o,type:"TABLE",value:t(e[o],o)};return n}function Cn(A,e,t){var i=e.length,n=[];n[0]={name:A+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n=n.concat(t(e[o],o));return n}function ro(A){A.format===1?se.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(In("glyph",A.glyphs))):A.format===2?se.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:2}].concat(Cn("rangeRecord",A.ranges,function(e){return[{name:"startGlyphID",type:"USHORT",value:e.start},{name:"endGlyphID",type:"USHORT",value:e.end},{name:"startCoverageIndex",type:"USHORT",value:e.index}]}))):mA.assert(!1,"Coverage format must be 1 or 2.")}ro.prototype=Object.create(se.prototype);ro.prototype.constructor=ro;function go(A){se.call(this,"scriptListTable",Cn("scriptRecord",A,function(e,t){var i=e.script,n=i.defaultLangSys;return mA.assert(!!n,"Unable to write GSUB: script "+e.tag+" has no default language system."),[{name:"scriptTag"+t,type:"TAG",value:e.tag},{name:"script"+t,type:"TABLE",value:new se("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new se("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:n.reqFeatureIndex}].concat(In("featureIndex",n.featureIndexes)))}].concat(Cn("langSys",i.langSysRecords,function(o,r){var g=o.langSys;return[{name:"langSysTag"+r,type:"TAG",value:o.tag},{name:"langSys"+r,type:"TABLE",value:new se("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:g.reqFeatureIndex}].concat(In("featureIndex",g.featureIndexes)))}]})))}]}))}go.prototype=Object.create(se.prototype);go.prototype.constructor=go;function so(A){se.call(this,"featureListTable",Cn("featureRecord",A,function(e,t){var i=e.feature;return[{name:"featureTag"+t,type:"TAG",value:e.tag},{name:"feature"+t,type:"TABLE",value:new se("featureTable",[{name:"featureParams",type:"USHORT",value:i.featureParams}].concat(In("lookupListIndex",i.lookupListIndexes)))}]}))}so.prototype=Object.create(se.prototype);so.prototype.constructor=so;function ao(A,e){se.call(this,"lookupListTable",Gr("lookup",A,function(t){var i=e[t.lookupType];return mA.assert(!!i,"Unable to write GSUB lookup type "+t.lookupType+" tables."),new se("lookupTable",[{name:"lookupType",type:"USHORT",value:t.lookupType},{name:"lookupFlag",type:"USHORT",value:t.lookupFlag}].concat(Gr("subtable",t.subtables,i)))}))}ao.prototype=Object.create(se.prototype);ao.prototype.constructor=ao;var aA={Table:se,Record:se,Coverage:ro,ScriptList:go,FeatureList:so,LookupList:ao,ushortList:In,tableList:Gr,recordList:Cn};function ia(A,e){return A.getUint8(e)}function Io(A,e){return A.getUint16(e,!1)}function Fw(A,e){return A.getInt16(e,!1)}function ug(A,e){return A.getUint32(e,!1)}function qC(A,e){var t=A.getInt16(e,!1),i=A.getUint16(e+2,!1);return t+i/65535}function Sw(A,e){for(var t="",i=e;i<e+4;i+=1)t+=String.fromCharCode(A.getInt8(i));return t}function bw(A,e,t){for(var i=0,n=0;n<t;n+=1)i<<=8,i+=A.getUint8(e+n);return i}function Rw(A,e,t){for(var i=[],n=e;n<t;n+=1)i.push(A.getUint8(n));return i}function Nw(A){for(var e="",t=0;t<A.length;t+=1)e+=String.fromCharCode(A[t]);return e}var Gw={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function T(A,e){this.data=A,this.offset=e,this.relativeOffset=0}T.prototype.parseByte=function(){var A=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,A};T.prototype.parseChar=function(){var A=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,A};T.prototype.parseCard8=T.prototype.parseByte;T.prototype.parseUShort=function(){var A=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,A};T.prototype.parseCard16=T.prototype.parseUShort;T.prototype.parseSID=T.prototype.parseUShort;T.prototype.parseOffset16=T.prototype.parseUShort;T.prototype.parseShort=function(){var A=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,A};T.prototype.parseF2Dot14=function(){var A=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,A};T.prototype.parseULong=function(){var A=ug(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,A};T.prototype.parseOffset32=T.prototype.parseULong;T.prototype.parseFixed=function(){var A=qC(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,A};T.prototype.parseString=function(A){var e=this.data,t=this.offset+this.relativeOffset,i="";this.relativeOffset+=A;for(var n=0;n<A;n++)i+=String.fromCharCode(e.getUint8(t+n));return i};T.prototype.parseTag=function(){return this.parseString(4)};T.prototype.parseLongDateTime=function(){var A=ug(this.data,this.offset+this.relativeOffset+4);return A-=2082844800,this.relativeOffset+=8,A};T.prototype.parseVersion=function(A){var e=Io(this.data,this.offset+this.relativeOffset),t=Io(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,A===void 0&&(A=4096),e+t/A/10};T.prototype.skip=function(A,e){e===void 0&&(e=1),this.relativeOffset+=Gw[A]*e};T.prototype.parseULongList=function(A){A===void 0&&(A=this.parseULong());for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint32(i),i+=4;return this.relativeOffset+=A*4,e};T.prototype.parseOffset16List=T.prototype.parseUShortList=function(A){A===void 0&&(A=this.parseUShort());for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint16(i),i+=2;return this.relativeOffset+=A*2,e};T.prototype.parseShortList=function(A){for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getInt16(i),i+=2;return this.relativeOffset+=A*2,e};T.prototype.parseByteList=function(A){for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint8(i++);return this.relativeOffset+=A,e};T.prototype.parseList=function(A,e){e||(e=A,A=this.parseUShort());for(var t=new Array(A),i=0;i<A;i++)t[i]=e.call(this);return t};T.prototype.parseList32=function(A,e){e||(e=A,A=this.parseULong());for(var t=new Array(A),i=0;i<A;i++)t[i]=e.call(this);return t};T.prototype.parseRecordList=function(A,e){e||(e=A,A=this.parseUShort());for(var t=new Array(A),i=Object.keys(e),n=0;n<A;n++){for(var o={},r=0;r<i.length;r++){var g=i[r],s=e[g];o[g]=s.call(this)}t[n]=o}return t};T.prototype.parseRecordList32=function(A,e){e||(e=A,A=this.parseULong());for(var t=new Array(A),i=Object.keys(e),n=0;n<A;n++){for(var o={},r=0;r<i.length;r++){var g=i[r],s=e[g];o[g]=s.call(this)}t[n]=o}return t};T.prototype.parseStruct=function(A){if(typeof A=="function")return A.call(this);for(var e=Object.keys(A),t={},i=0;i<e.length;i++){var n=e[i],o=A[n];t[n]=o.call(this)}return t};T.prototype.parseValueRecord=function(A){if(A===void 0&&(A=this.parseUShort()),A!==0){var e={};return A&1&&(e.xPlacement=this.parseShort()),A&2&&(e.yPlacement=this.parseShort()),A&4&&(e.xAdvance=this.parseShort()),A&8&&(e.yAdvance=this.parseShort()),A&16&&(e.xPlaDevice=void 0,this.parseShort()),A&32&&(e.yPlaDevice=void 0,this.parseShort()),A&64&&(e.xAdvDevice=void 0,this.parseShort()),A&128&&(e.yAdvDevice=void 0,this.parseShort()),e}};T.prototype.parseValueRecordList=function(){for(var A=this.parseUShort(),e=this.parseUShort(),t=new Array(e),i=0;i<e;i++)t[i]=this.parseValueRecord(A);return t};T.prototype.parsePointer=function(A){var e=this.parseOffset16();if(e>0)return new T(this.data,this.offset+e).parseStruct(A)};T.prototype.parsePointer32=function(A){var e=this.parseOffset32();if(e>0)return new T(this.data,this.offset+e).parseStruct(A)};T.prototype.parseListOfLists=function(A){for(var e=this.parseOffset16List(),t=e.length,i=this.relativeOffset,n=new Array(t),o=0;o<t;o++){var r=e[o];if(r===0){n[o]=void 0;continue}if(this.relativeOffset=r,A){for(var g=this.parseOffset16List(),s=new Array(g.length),a=0;a<g.length;a++)this.relativeOffset=r+g[a],s[a]=A.call(this);n[o]=s}else n[o]=this.parseUShortList()}return this.relativeOffset=i,n};T.prototype.parseCoverage=function(){var A=this.offset+this.relativeOffset,e=this.parseUShort(),t=this.parseUShort();if(e===1)return{format:1,glyphs:this.parseUShortList(t)};if(e===2){for(var i=new Array(t),n=0;n<t;n++)i[n]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:i}}throw new Error("0x"+A.toString(16)+": Coverage format must be 1 or 2.")};T.prototype.parseClassDef=function(){var A=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(e===2)return{format:2,ranges:this.parseRecordList({start:T.uShort,end:T.uShort,classId:T.uShort})};throw new Error("0x"+A.toString(16)+": ClassDef format must be 1 or 2.")};T.list=function(A,e){return function(){return this.parseList(A,e)}};T.list32=function(A,e){return function(){return this.parseList32(A,e)}};T.recordList=function(A,e){return function(){return this.parseRecordList(A,e)}};T.recordList32=function(A,e){return function(){return this.parseRecordList32(A,e)}};T.pointer=function(A){return function(){return this.parsePointer(A)}};T.pointer32=function(A){return function(){return this.parsePointer32(A)}};T.tag=T.prototype.parseTag;T.byte=T.prototype.parseByte;T.uShort=T.offset16=T.prototype.parseUShort;T.uShortList=T.prototype.parseUShortList;T.uLong=T.offset32=T.prototype.parseULong;T.uLongList=T.prototype.parseULongList;T.struct=T.prototype.parseStruct;T.coverage=T.prototype.parseCoverage;T.classDef=T.prototype.parseClassDef;var na={reserved:T.uShort,reqFeatureIndex:T.uShort,featureIndexes:T.uShortList};T.prototype.parseScriptList=function(){return this.parsePointer(T.recordList({tag:T.tag,script:T.pointer({defaultLangSys:T.pointer(na),langSysRecords:T.recordList({tag:T.tag,langSys:T.pointer(na)})})}))||[]};T.prototype.parseFeatureList=function(){return this.parsePointer(T.recordList({tag:T.tag,feature:T.pointer({featureParams:T.offset16,lookupListIndexes:T.uShortList})}))||[]};T.prototype.parseLookupList=function(A){return this.parsePointer(T.list(T.pointer(function(){var e=this.parseUShort();mA.argument(1<=e&&e<=9,"GPOS/GSUB lookup type "+e+" unknown.");var t=this.parseUShort(),i=t&16;return{lookupType:e,lookupFlag:t,subtables:this.parseList(T.pointer(A[e])),markFilteringSet:i?this.parseUShort():void 0}})))||[]};T.prototype.parseFeatureVariationsList=function(){return this.parsePointer32(function(){var A=this.parseUShort(),e=this.parseUShort();mA.argument(A===1&&e<1,"GPOS/GSUB feature variations table unknown.");var t=this.parseRecordList32({conditionSetOffset:T.offset32,featureTableSubstitutionOffset:T.offset32});return t})||[]};var BA={getByte:ia,getCard8:ia,getUShort:Io,getCard16:Io,getShort:Fw,getULong:ug,getFixed:qC,getTag:Sw,getOffset:bw,getBytes:Rw,bytesToString:Nw,Parser:T};function Lw(A,e){e.parseUShort(),A.length=e.parseULong(),A.language=e.parseULong();var t;A.groupCount=t=e.parseULong(),A.glyphIndexMap={};for(var i=0;i<t;i+=1)for(var n=e.parseULong(),o=e.parseULong(),r=e.parseULong(),g=n;g<=o;g+=1)A.glyphIndexMap[g]=r,r++}function Uw(A,e,t,i,n){A.length=e.parseUShort(),A.language=e.parseUShort();var o;A.segCount=o=e.parseUShort()>>1,e.skip("uShort",3),A.glyphIndexMap={};for(var r=new BA.Parser(t,i+n+14),g=new BA.Parser(t,i+n+16+o*2),s=new BA.Parser(t,i+n+16+o*4),a=new BA.Parser(t,i+n+16+o*6),I=i+n+16+o*8,l=0;l<o-1;l+=1)for(var C=void 0,Q=r.parseUShort(),E=g.parseUShort(),f=s.parseShort(),h=a.parseUShort(),u=E;u<=Q;u+=1)h!==0?(I=a.offset+a.relativeOffset-2,I+=h,I+=(u-E)*2,C=BA.getUShort(t,I),C!==0&&(C=C+f&65535)):C=u+f&65535,A.glyphIndexMap[u]=C}function Mw(A,e){var t={};t.version=BA.getUShort(A,e),mA.argument(t.version===0,"cmap table version should be 0."),t.numTables=BA.getUShort(A,e+2);for(var i=-1,n=t.numTables-1;n>=0;n-=1){var o=BA.getUShort(A,e+4+n*8),r=BA.getUShort(A,e+4+n*8+2);if(o===3&&(r===0||r===1||r===10)||o===0&&(r===0||r===1||r===2||r===3||r===4)){i=BA.getULong(A,e+4+n*8+4);break}}if(i===-1)throw new Error("No valid cmap sub-tables found.");var g=new BA.Parser(A,e+i);if(t.format=g.parseUShort(),t.format===12)Lw(t,g);else if(t.format===4)Uw(t,g,A,e,i);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+t.format+").");return t}function xw(A,e,t){A.segments.push({end:e,start:e,delta:-(e-t),offset:0,glyphIndex:t})}function Jw(A){A.segments.push({end:65535,start:65535,delta:1,offset:0})}function Tw(A){var e=!0,t;for(t=A.length-1;t>0;t-=1){var i=A.get(t);if(i.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),e=!1;break}}var n=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:e?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:e?12:20}];e||(n=n.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),n=n.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var o=new aA.Table("cmap",n);for(o.segments=[],t=0;t<A.length;t+=1){for(var r=A.get(t),g=0;g<r.unicodes.length;g+=1)xw(o,r.unicodes[g],t);o.segments=o.segments.sort(function(p,c){return p.start-c.start})}Jw(o);var s=o.segments.length,a=0,I=[],l=[],C=[],Q=[],E=[],f=[];for(t=0;t<s;t+=1){var h=o.segments[t];h.end<=65535&&h.start<=65535?(I=I.concat({name:"end_"+t,type:"USHORT",value:h.end}),l=l.concat({name:"start_"+t,type:"USHORT",value:h.start}),C=C.concat({name:"idDelta_"+t,type:"SHORT",value:h.delta}),Q=Q.concat({name:"idRangeOffset_"+t,type:"USHORT",value:h.offset}),h.glyphId!==void 0&&(E=E.concat({name:"glyph_"+t,type:"USHORT",value:h.glyphId}))):a+=1,!e&&h.glyphIndex!==void 0&&(f=f.concat({name:"cmap12Start_"+t,type:"ULONG",value:h.start}),f=f.concat({name:"cmap12End_"+t,type:"ULONG",value:h.end}),f=f.concat({name:"cmap12Glyph_"+t,type:"ULONG",value:h.glyphIndex}))}if(o.segCountX2=(s-a)*2,o.searchRange=Math.pow(2,Math.floor(Math.log(s-a)/Math.log(2)))*2,o.entrySelector=Math.log(o.searchRange/2)/Math.log(2),o.rangeShift=o.segCountX2-o.searchRange,o.fields=o.fields.concat(I),o.fields.push({name:"reservedPad",type:"USHORT",value:0}),o.fields=o.fields.concat(l),o.fields=o.fields.concat(C),o.fields=o.fields.concat(Q),o.fields=o.fields.concat(E),o.cmap4Length=14+I.length*2+2+l.length*2+C.length*2+Q.length*2+E.length*2,!e){var u=16+f.length*4;o.cmap12Offset=12+2*2+4+o.cmap4Length,o.fields=o.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:u},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:f.length/3}]),o.fields=o.fields.concat(f)}return o}var jC={parse:Mw,make:Tw},Vn=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],Hw=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],Yw=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ii=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function ZC(A){this.font=A}ZC.prototype.charToGlyphIndex=function(A){var e=A.codePointAt(0),t=this.font.glyphs;if(t){for(var i=0;i<t.length;i+=1)for(var n=t.get(i),o=0;o<n.unicodes.length;o+=1)if(n.unicodes[o]===e)return i}return null};function XC(A){this.cmap=A}XC.prototype.charToGlyphIndex=function(A){return this.cmap.glyphIndexMap[A.codePointAt(0)]||0};function Co(A,e){this.encoding=A,this.charset=e}Co.prototype.charToGlyphIndex=function(A){var e=A.codePointAt(0),t=this.encoding[e];return this.charset.indexOf(t)};function hg(A){switch(A.version){case 1:this.names=ii.slice();break;case 2:this.names=new Array(A.numberOfGlyphs);for(var e=0;e<A.numberOfGlyphs;e++)A.glyphNameIndex[e]<ii.length?this.names[e]=ii[A.glyphNameIndex[e]]:this.names[e]=A.names[A.glyphNameIndex[e]-ii.length];break;case 2.5:this.names=new Array(A.numberOfGlyphs);for(var t=0;t<A.numberOfGlyphs;t++)this.names[t]=ii[t+A.glyphNameIndex[t]];break;case 3:this.names=[];break;default:this.names=[];break}}hg.prototype.nameToGlyphIndex=function(A){return this.names.indexOf(A)};hg.prototype.glyphIndexToName=function(A){return this.names[A]};function _w(A){for(var e,t=A.tables.cmap.glyphIndexMap,i=Object.keys(t),n=0;n<i.length;n+=1){var o=i[n],r=t[o];e=A.glyphs.get(r),e.addUnicode(parseInt(o))}for(var g=0;g<A.glyphs.length;g+=1)e=A.glyphs.get(g),A.cffEncoding?A.isCIDFont?e.name="gid"+g:e.name=A.cffEncoding.charset[g]:A.glyphNames.names&&(e.name=A.glyphNames.glyphIndexToName(g))}function Kw(A){A._IndexToUnicodeMap={};for(var e=A.tables.cmap.glyphIndexMap,t=Object.keys(e),i=0;i<t.length;i+=1){var n=t[i],o=e[n];A._IndexToUnicodeMap[o]===void 0?A._IndexToUnicodeMap[o]={unicodes:[parseInt(n)]}:A._IndexToUnicodeMap[o].unicodes.push(parseInt(n))}}function Pw(A,e){e.lowMemory?Kw(A):_w(A)}function Ow(A,e,t,i,n){A.beginPath(),A.moveTo(e,t),A.lineTo(i,n),A.stroke()}var Ai={line:Ow};function Vw(A,e){var t=e||new ne;return{configurable:!0,get:function(){return typeof t=="function"&&(t=t()),t},set:function(i){t=i}}}function Ne(A){this.bindConstructorValues(A)}Ne.prototype.bindConstructorValues=function(A){this.index=A.index||0,this.name=A.name||null,this.unicode=A.unicode||void 0,this.unicodes=A.unicodes||A.unicode!==void 0?[A.unicode]:[],"xMin"in A&&(this.xMin=A.xMin),"yMin"in A&&(this.yMin=A.yMin),"xMax"in A&&(this.xMax=A.xMax),"yMax"in A&&(this.yMax=A.yMax),"advanceWidth"in A&&(this.advanceWidth=A.advanceWidth),Object.defineProperty(this,"path",Vw(this,A.path))};Ne.prototype.addUnicode=function(A){this.unicodes.length===0&&(this.unicode=A),this.unicodes.push(A)};Ne.prototype.getBoundingBox=function(){return this.path.getBoundingBox()};Ne.prototype.getPath=function(A,e,t,i,n){A=A!==void 0?A:0,e=e!==void 0?e:0,t=t!==void 0?t:72;var o,r;i||(i={});var g=i.xScale,s=i.yScale;if(i.hinting&&n&&n.hinting&&(r=this.path&&n.hinting.exec(this,t)),r)o=n.hinting.getCommands(r),A=Math.round(A),e=Math.round(e),g=s=1;else{o=this.path.commands;var a=1/(this.path.unitsPerEm||1e3)*t;g===void 0&&(g=a),s===void 0&&(s=a)}for(var I=new ne,l=0;l<o.length;l+=1){var C=o[l];C.type==="M"?I.moveTo(A+C.x*g,e+-C.y*s):C.type==="L"?I.lineTo(A+C.x*g,e+-C.y*s):C.type==="Q"?I.quadraticCurveTo(A+C.x1*g,e+-C.y1*s,A+C.x*g,e+-C.y*s):C.type==="C"?I.curveTo(A+C.x1*g,e+-C.y1*s,A+C.x2*g,e+-C.y2*s,A+C.x*g,e+-C.y*s):C.type==="Z"&&I.closePath()}return I};Ne.prototype.getContours=function(){if(this.points===void 0)return[];for(var A=[],e=[],t=0;t<this.points.length;t+=1){var i=this.points[t];e.push(i),i.lastPointOfContour&&(A.push(e),e=[])}return mA.argument(e.length===0,"There are still points left in the current contour."),A};Ne.prototype.getMetrics=function(){for(var A=this.path.commands,e=[],t=[],i=0;i<A.length;i+=1){var n=A[i];n.type!=="Z"&&(e.push(n.x),t.push(n.y)),(n.type==="Q"||n.type==="C")&&(e.push(n.x1),t.push(n.y1)),n.type==="C"&&(e.push(n.x2),t.push(n.y2))}var o={xMin:Math.min.apply(null,e),yMin:Math.min.apply(null,t),xMax:Math.max.apply(null,e),yMax:Math.max.apply(null,t),leftSideBearing:this.leftSideBearing};return isFinite(o.xMin)||(o.xMin=0),isFinite(o.xMax)||(o.xMax=this.advanceWidth),isFinite(o.yMin)||(o.yMin=0),isFinite(o.yMax)||(o.yMax=0),o.rightSideBearing=this.advanceWidth-o.leftSideBearing-(o.xMax-o.xMin),o};Ne.prototype.draw=function(A,e,t,i,n){this.getPath(e,t,i,n).draw(A)};Ne.prototype.drawPoints=function(A,e,t,i){function n(l,C,Q,E){A.beginPath();for(var f=0;f<l.length;f+=1)A.moveTo(C+l[f].x*E,Q+l[f].y*E),A.arc(C+l[f].x*E,Q+l[f].y*E,2,0,Math.PI*2,!1);A.closePath(),A.fill()}e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:24;for(var o=1/this.path.unitsPerEm*i,r=[],g=[],s=this.path,a=0;a<s.commands.length;a+=1){var I=s.commands[a];I.x!==void 0&&r.push({x:I.x,y:-I.y}),I.x1!==void 0&&g.push({x:I.x1,y:-I.y1}),I.x2!==void 0&&g.push({x:I.x2,y:-I.y2})}A.fillStyle="blue",n(r,e,t,o),A.fillStyle="red",n(g,e,t,o)};Ne.prototype.drawMetrics=function(A,e,t,i){var n;e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:24,n=1/this.path.unitsPerEm*i,A.lineWidth=1,A.strokeStyle="black",Ai.line(A,e,-1e4,e,1e4),Ai.line(A,-1e4,t,1e4,t);var o=this.xMin||0,r=this.yMin||0,g=this.xMax||0,s=this.yMax||0,a=this.advanceWidth||0;A.strokeStyle="blue",Ai.line(A,e+o*n,-1e4,e+o*n,1e4),Ai.line(A,e+g*n,-1e4,e+g*n,1e4),Ai.line(A,-1e4,t+-r*n,1e4,t+-r*n),Ai.line(A,-1e4,t+-s*n,1e4,t+-s*n),A.strokeStyle="green",Ai.line(A,e+a*n,-1e4,e+a*n,1e4)};function Un(A,e,t){Object.defineProperty(A,e,{get:function(){return A.path,A[t]},set:function(i){A[t]=i},enumerable:!0,configurable:!0})}function fg(A,e){if(this.font=A,this.glyphs={},Array.isArray(e))for(var t=0;t<e.length;t++){var i=e[t];i.path.unitsPerEm=A.unitsPerEm,this.glyphs[t]=i}this.length=e&&e.length||0}fg.prototype.get=function(A){if(this.glyphs[A]===void 0){this.font._push(A),typeof this.glyphs[A]=="function"&&(this.glyphs[A]=this.glyphs[A]());var e=this.glyphs[A],t=this.font._IndexToUnicodeMap[A];if(t)for(var i=0;i<t.unicodes.length;i++)e.addUnicode(t.unicodes[i]);this.font.cffEncoding?this.font.isCIDFont?e.name="gid"+A:e.name=this.font.cffEncoding.charset[A]:this.font.glyphNames.names&&(e.name=this.font.glyphNames.glyphIndexToName(A)),this.glyphs[A].advanceWidth=this.font._hmtxTableData[A].advanceWidth,this.glyphs[A].leftSideBearing=this.font._hmtxTableData[A].leftSideBearing}else typeof this.glyphs[A]=="function"&&(this.glyphs[A]=this.glyphs[A]());return this.glyphs[A]};fg.prototype.push=function(A,e){this.glyphs[A]=e,this.length++};function Ww(A,e){return new Ne({index:e,font:A})}function qw(A,e,t,i,n,o){return function(){var r=new Ne({index:e,font:A});return r.path=function(){t(r,i,n);var g=o(A.glyphs,r);return g.unitsPerEm=A.unitsPerEm,g},Un(r,"xMin","_xMin"),Un(r,"xMax","_xMax"),Un(r,"yMin","_yMin"),Un(r,"yMax","_yMax"),r}}function jw(A,e,t,i){return function(){var n=new Ne({index:e,font:A});return n.path=function(){var o=t(A,n,i);return o.unitsPerEm=A.unitsPerEm,o},n}}var at={GlyphSet:fg,glyphLoader:Ww,ttfGlyphLoader:qw,cffGlyphLoader:jw};function zC(A,e){if(A===e)return!0;if(Array.isArray(A)&&Array.isArray(e)){if(A.length!==e.length)return!1;for(var t=0;t<A.length;t+=1)if(!zC(A[t],e[t]))return!1;return!0}else return!1}function Lr(A){var e;return A.length<1240?e=107:A.length<33900?e=1131:e=32768,e}function Lt(A,e,t){var i=[],n=[],o=BA.getCard16(A,e),r,g;if(o!==0){var s=BA.getByte(A,e+2);r=e+(o+1)*s+2;for(var a=e+3,I=0;I<o+1;I+=1)i.push(BA.getOffset(A,a,s)),a+=s;g=r+i[o]}else g=e+2;for(var l=0;l<i.length-1;l+=1){var C=BA.getBytes(A,r+i[l],r+i[l+1]);t&&(C=t(C)),n.push(C)}return{objects:n,startOffset:e,endOffset:g}}function Zw(A,e){var t=[],i=BA.getCard16(A,e),n,o;if(i!==0){var r=BA.getByte(A,e+2);n=e+(i+1)*r+2;for(var g=e+3,s=0;s<i+1;s+=1)t.push(BA.getOffset(A,g,r)),g+=r;o=n+t[i]}else o=e+2;return{offsets:t,startOffset:e,endOffset:o}}function Xw(A,e,t,i,n){var o=BA.getCard16(t,i),r=0;if(o!==0){var g=BA.getByte(t,i+2);r=i+(o+1)*g+2}var s=BA.getBytes(t,r+e[A],r+e[A+1]);return s}function zw(A){for(var e="",t=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var n=A.parseByte(),o=n>>4,r=n&15;if(o===t||(e+=i[o],r===t))break;e+=i[r]}return parseFloat(e)}function $w(A,e){var t,i,n,o;if(e===28)return t=A.parseByte(),i=A.parseByte(),t<<8|i;if(e===29)return t=A.parseByte(),i=A.parseByte(),n=A.parseByte(),o=A.parseByte(),t<<24|i<<16|n<<8|o;if(e===30)return zw(A);if(e>=32&&e<=246)return e-139;if(e>=247&&e<=250)return t=A.parseByte(),(e-247)*256+t+108;if(e>=251&&e<=254)return t=A.parseByte(),-(e-251)*256-t-108;throw new Error("Invalid b0 "+e)}function AD(A){for(var e={},t=0;t<A.length;t+=1){var i=A[t][0],n=A[t][1],o=void 0;if(n.length===1?o=n[0]:o=n,e.hasOwnProperty(i)&&!isNaN(e[i]))throw new Error("Object "+e+" already has key "+i);e[i]=o}return e}function $C(A,e,t){e=e!==void 0?e:0;var i=new BA.Parser(A,e),n=[],o=[];for(t=t!==void 0?t:A.length;i.relativeOffset<t;){var r=i.parseByte();r<=21?(r===12&&(r=1200+i.parseByte()),n.push([r,o]),o=[]):o.push($w(i,r))}return AD(n)}function zi(A,e){return e<=390?e=Vn[e]:e=A[e-391],e}function Al(A,e,t){for(var i={},n,o=0;o<e.length;o+=1){var r=e[o];if(Array.isArray(r.type)){var g=[];g.length=r.type.length;for(var s=0;s<r.type.length;s++)n=A[r.op]!==void 0?A[r.op][s]:void 0,n===void 0&&(n=r.value!==void 0&&r.value[s]!==void 0?r.value[s]:null),r.type[s]==="SID"&&(n=zi(t,n)),g[s]=n;i[r.name]=g}else n=A[r.op],n===void 0&&(n=r.value!==void 0?r.value:null),r.type==="SID"&&(n=zi(t,n)),i[r.name]=n}return i}function eD(A,e){var t={};return t.formatMajor=BA.getCard8(A,e),t.formatMinor=BA.getCard8(A,e+1),t.size=BA.getCard8(A,e+2),t.offsetSize=BA.getCard8(A,e+3),t.startOffset=e,t.endOffset=e+4,t}var el=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],tl=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function tD(A,e){var t=$C(A,0,A.byteLength);return Al(t,el,e)}function il(A,e,t,i){var n=$C(A,e,t);return Al(n,tl,i)}function oa(A,e,t,i){for(var n=[],o=0;o<t.length;o+=1){var r=new DataView(new Uint8Array(t[o]).buffer),g=tD(r,i);g._subrs=[],g._subrsBias=0,g._defaultWidthX=0,g._nominalWidthX=0;var s=g.private[0],a=g.private[1];if(s!==0&&a!==0){var I=il(A,a+e,s,i);if(g._defaultWidthX=I.defaultWidthX,g._nominalWidthX=I.nominalWidthX,I.subrs!==0){var l=a+I.subrs,C=Lt(A,l+e);g._subrs=C.objects,g._subrsBias=Lr(g._subrs)}g._privateDict=I}n.push(g)}return n}function iD(A,e,t,i){var n,o,r=new BA.Parser(A,e);t-=1;var g=[".notdef"],s=r.parseCard8();if(s===0)for(var a=0;a<t;a+=1)n=r.parseSID(),g.push(zi(i,n));else if(s===1)for(;g.length<=t;){n=r.parseSID(),o=r.parseCard8();for(var I=0;I<=o;I+=1)g.push(zi(i,n)),n+=1}else if(s===2)for(;g.length<=t;){n=r.parseSID(),o=r.parseCard16();for(var l=0;l<=o;l+=1)g.push(zi(i,n)),n+=1}else throw new Error("Unknown charset format "+s);return g}function nD(A,e,t){var i,n={},o=new BA.Parser(A,e),r=o.parseCard8();if(r===0)for(var g=o.parseCard8(),s=0;s<g;s+=1)i=o.parseCard8(),n[i]=s;else if(r===1){var a=o.parseCard8();i=1;for(var I=0;I<a;I+=1)for(var l=o.parseCard8(),C=o.parseCard8(),Q=l;Q<=l+C;Q+=1)n[Q]=i,i+=1}else throw new Error("Unknown encoding format "+r);return new Co(n,t)}function ra(A,e,t){var i,n,o,r,g=new ne,s=[],a=0,I=!1,l=!1,C=0,Q=0,E,f,h,u;if(A.isCIDFont){var p=A.tables.cff.topDict._fdSelect[e.index],c=A.tables.cff.topDict._fdArray[p];E=c._subrs,f=c._subrsBias,h=c._defaultWidthX,u=c._nominalWidthX}else E=A.tables.cff.topDict._subrs,f=A.tables.cff.topDict._subrsBias,h=A.tables.cff.topDict._defaultWidthX,u=A.tables.cff.topDict._nominalWidthX;var d=h;function w(G,P){l&&g.closePath(),g.moveTo(G,P),l=!0}function F(){var G;G=s.length%2!==0,G&&!I&&(d=s.shift()+u),a+=s.length>>1,s.length=0,I=!0}function N(G){for(var P,b,R,L,cA,dA,CA,iA,X,eA,fA,DA,Y=0;Y<G.length;){var q=G[Y];switch(Y+=1,q){case 1:F();break;case 3:F();break;case 4:s.length>1&&!I&&(d=s.shift()+u,I=!0),Q+=s.pop(),w(C,Q);break;case 5:for(;s.length>0;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 6:for(;s.length>0&&(C+=s.shift(),g.lineTo(C,Q),s.length!==0);)Q+=s.shift(),g.lineTo(C,Q);break;case 7:for(;s.length>0&&(Q+=s.shift(),g.lineTo(C,Q),s.length!==0);)C+=s.shift(),g.lineTo(C,Q);break;case 8:for(;s.length>0;)i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 10:cA=s.pop()+f,dA=E[cA],dA&&N(dA);break;case 11:return;case 12:switch(q=G[Y],Y+=1,q){case 35:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),CA=o+s.shift(),iA=r+s.shift(),X=CA+s.shift(),eA=iA+s.shift(),fA=X+s.shift(),DA=eA+s.shift(),C=fA+s.shift(),Q=DA+s.shift(),s.shift(),g.curveTo(i,n,o,r,CA,iA),g.curveTo(X,eA,fA,DA,C,Q);break;case 34:i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),CA=o+s.shift(),iA=r,X=CA+s.shift(),eA=r,fA=X+s.shift(),DA=Q,C=fA+s.shift(),g.curveTo(i,n,o,r,CA,iA),g.curveTo(X,eA,fA,DA,C,Q);break;case 36:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),CA=o+s.shift(),iA=r,X=CA+s.shift(),eA=r,fA=X+s.shift(),DA=eA+s.shift(),C=fA+s.shift(),g.curveTo(i,n,o,r,CA,iA),g.curveTo(X,eA,fA,DA,C,Q);break;case 37:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),CA=o+s.shift(),iA=r+s.shift(),X=CA+s.shift(),eA=iA+s.shift(),fA=X+s.shift(),DA=eA+s.shift(),Math.abs(fA-C)>Math.abs(DA-Q)?C=fA+s.shift():Q=DA+s.shift(),g.curveTo(i,n,o,r,CA,iA),g.curveTo(X,eA,fA,DA,C,Q);break;default:console.log("Glyph "+e.index+": unknown operator 1200"+q),s.length=0}break;case 14:s.length>0&&!I&&(d=s.shift()+u,I=!0),l&&(g.closePath(),l=!1);break;case 18:F();break;case 19:case 20:F(),Y+=a+7>>3;break;case 21:s.length>2&&!I&&(d=s.shift()+u,I=!0),Q+=s.pop(),C+=s.pop(),w(C,Q);break;case 22:s.length>1&&!I&&(d=s.shift()+u,I=!0),C+=s.pop(),w(C,Q);break;case 23:F();break;case 24:for(;s.length>2;)i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 25:for(;s.length>6;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 26:for(s.length%2&&(C+=s.shift());s.length>0;)i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o,Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 27:for(s.length%2&&(Q+=s.shift());s.length>0;)i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r,g.curveTo(i,n,o,r,C,Q);break;case 28:P=G[Y],b=G[Y+1],s.push((P<<24|b<<16)>>16),Y+=2;break;case 29:cA=s.pop()+A.gsubrsBias,dA=A.gsubrs[cA],dA&&N(dA);break;case 30:for(;s.length>0&&(i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q),s.length!==0);)i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),Q=r+s.shift(),C=o+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q);break;case 31:for(;s.length>0&&(i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),Q=r+s.shift(),C=o+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q),s.length!==0);)i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q);break;default:q<32?console.log("Glyph "+e.index+": unknown operator "+q):q<247?s.push(q-139):q<251?(P=G[Y],Y+=1,s.push((q-247)*256+P+108)):q<255?(P=G[Y],Y+=1,s.push(-(q-251)*256-P-108)):(P=G[Y],b=G[Y+1],R=G[Y+2],L=G[Y+3],Y+=4,s.push((P<<24|b<<16|R<<8|L)/65536))}}}return N(t),e.advanceWidth=d,g}function oD(A,e,t,i){var n=[],o,r=new BA.Parser(A,e),g=r.parseCard8();if(g===0)for(var s=0;s<t;s++){if(o=r.parseCard8(),o>=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+o+" (FD count "+i+")");n.push(o)}else if(g===3){var a=r.parseCard16(),I=r.parseCard16();if(I!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+I);for(var l,C=0;C<a;C++){if(o=r.parseCard8(),l=r.parseCard16(),o>=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+o+" (FD count "+i+")");if(l>t)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+l);for(;I<l;I++)n.push(o);I=l}if(l!==t)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+l)}else throw new Error("CFF Table CID Font FDSelect table has unsupported format "+g);return n}function rD(A,e,t,i){t.tables.cff={};var n=eD(A,e),o=Lt(A,n.endOffset,BA.bytesToString),r=Lt(A,o.endOffset),g=Lt(A,r.endOffset,BA.bytesToString),s=Lt(A,g.endOffset);t.gsubrs=s.objects,t.gsubrsBias=Lr(t.gsubrs);var a=oa(A,e,r.objects,g.objects);if(a.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+a.length);var I=a[0];if(t.tables.cff.topDict=I,I._privateDict&&(t.defaultWidthX=I._privateDict.defaultWidthX,t.nominalWidthX=I._privateDict.nominalWidthX),I.ros[0]!==void 0&&I.ros[1]!==void 0&&(t.isCIDFont=!0),t.isCIDFont){var l=I.fdArray,C=I.fdSelect;if(l===0||C===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");l+=e;var Q=Lt(A,l),E=oa(A,e,Q.objects,g.objects);I._fdArray=E,C+=e,I._fdSelect=oD(A,C,t.numGlyphs,E.length)}var f=e+I.private[1],h=il(A,f,I.private[0],g.objects);if(t.defaultWidthX=h.defaultWidthX,t.nominalWidthX=h.nominalWidthX,h.subrs!==0){var u=f+h.subrs,p=Lt(A,u);t.subrs=p.objects,t.subrsBias=Lr(t.subrs)}else t.subrs=[],t.subrsBias=0;var c;i.lowMemory?(c=Zw(A,e+I.charStrings),t.nGlyphs=c.offsets.length):(c=Lt(A,e+I.charStrings),t.nGlyphs=c.objects.length);var d=iD(A,e+I.charset,t.nGlyphs,g.objects);if(I.encoding===0?t.cffEncoding=new Co(Hw,d):I.encoding===1?t.cffEncoding=new Co(Yw,d):t.cffEncoding=nD(A,e+I.encoding,d),t.encoding=t.encoding||t.cffEncoding,t.glyphs=new at.GlyphSet(t),i.lowMemory)t._push=function(N){var G=Xw(N,c.offsets,A,e+I.charStrings);t.glyphs.push(N,at.cffGlyphLoader(t,N,ra,G))};else for(var w=0;w<t.nGlyphs;w+=1){var F=c.objects[w];t.glyphs.push(w,at.cffGlyphLoader(t,w,ra,F))}}function nl(A,e){var t,i=Vn.indexOf(A);return i>=0&&(t=i),i=e.indexOf(A),i>=0?t=i+Vn.length:(t=Vn.length+e.length,e.push(A)),t}function gD(){return new aA.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function sD(A){var e=new aA.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);e.names=[];for(var t=0;t<A.length;t+=1)e.names.push({name:"name_"+t,type:"NAME",value:A[t]});return e}function ol(A,e,t){for(var i={},n=0;n<A.length;n+=1){var o=A[n],r=e[o.name];r!==void 0&&!zC(r,o.value)&&(o.type==="SID"&&(r=nl(r,t)),i[o.op]={name:o.name,type:o.type,value:r})}return i}function ga(A,e){var t=new aA.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return t.dict=ol(el,A,e),t}function sa(A){var e=new aA.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return e.topDicts=[{name:"topDict_0",type:"TABLE",value:A}],e}function aD(A){var e=new aA.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);e.strings=[];for(var t=0;t<A.length;t+=1)e.strings.push({name:"string_"+t,type:"STRING",value:A[t]});return e}function ID(){return new aA.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}])}function CD(A,e){for(var t=new aA.Record("Charsets",[{name:"format",type:"Card8",value:0}]),i=0;i<A.length;i+=1){var n=A[i],o=nl(n,e);t.fields.push({name:"glyph_"+i,type:"SID",value:o})}return t}function lD(A){var e=[],t=A.path;e.push({name:"width",type:"NUMBER",value:A.advanceWidth});for(var i=0,n=0,o=0;o<t.commands.length;o+=1){var r=void 0,g=void 0,s=t.commands[o];if(s.type==="Q"){var a=.3333333333333333,I=2/3;s={type:"C",x:s.x,y:s.y,x1:Math.round(a*i+I*s.x1),y1:Math.round(a*n+I*s.y1),x2:Math.round(a*s.x+I*s.x1),y2:Math.round(a*s.y+I*s.y1)}}if(s.type==="M")r=Math.round(s.x-i),g=Math.round(s.y-n),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rmoveto",type:"OP",value:21}),i=Math.round(s.x),n=Math.round(s.y);else if(s.type==="L")r=Math.round(s.x-i),g=Math.round(s.y-n),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rlineto",type:"OP",value:5}),i=Math.round(s.x),n=Math.round(s.y);else if(s.type==="C"){var l=Math.round(s.x1-i),C=Math.round(s.y1-n),Q=Math.round(s.x2-s.x1),E=Math.round(s.y2-s.y1);r=Math.round(s.x-s.x2),g=Math.round(s.y-s.y2),e.push({name:"dx1",type:"NUMBER",value:l}),e.push({name:"dy1",type:"NUMBER",value:C}),e.push({name:"dx2",type:"NUMBER",value:Q}),e.push({name:"dy2",type:"NUMBER",value:E}),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rrcurveto",type:"OP",value:8}),i=Math.round(s.x),n=Math.round(s.y)}}return e.push({name:"endchar",type:"OP",value:14}),e}function BD(A){for(var e=new aA.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),t=0;t<A.length;t+=1){var i=A.get(t),n=lD(i);e.charStrings.push({name:i.name,type:"CHARSTRING",value:n})}return e}function QD(A,e){var t=new aA.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}]);return t.dict=ol(tl,A,e),t}function cD(A,e){for(var t=new aA.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),i=1/e.unitsPerEm,n={version:e.version,fullName:e.fullName,familyName:e.familyName,weight:e.weightName,fontBBox:e.fontBBox||[0,0,0,0],fontMatrix:[i,0,0,i,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},o={},r=[],g,s=1;s<A.length;s+=1)g=A.get(s),r.push(g.name);var a=[];t.header=gD(),t.nameIndex=sD([e.postScriptName]);var I=ga(n,a);t.topDictIndex=sa(I),t.globalSubrIndex=ID(),t.charsets=CD(r,a),t.charStringsIndex=BD(A),t.privateDict=QD(o,a),t.stringIndex=aD(a);var l=t.header.sizeOf()+t.nameIndex.sizeOf()+t.topDictIndex.sizeOf()+t.stringIndex.sizeOf()+t.globalSubrIndex.sizeOf();return n.charset=l,n.encoding=0,n.charStrings=n.charset+t.charsets.sizeOf(),n.private[1]=n.charStrings+t.charStringsIndex.sizeOf(),I=ga(n,a),t.topDictIndex=sa(I),t}var rl={parse:rD,make:cD};function ED(A,e){var t={},i=new BA.Parser(A,e);return t.version=i.parseVersion(),t.fontRevision=Math.round(i.parseFixed()*1e3)/1e3,t.checkSumAdjustment=i.parseULong(),t.magicNumber=i.parseULong(),mA.argument(t.magicNumber===1594834165,"Font header has wrong magic number."),t.flags=i.parseUShort(),t.unitsPerEm=i.parseUShort(),t.created=i.parseLongDateTime(),t.modified=i.parseLongDateTime(),t.xMin=i.parseShort(),t.yMin=i.parseShort(),t.xMax=i.parseShort(),t.yMax=i.parseShort(),t.macStyle=i.parseUShort(),t.lowestRecPPEM=i.parseUShort(),t.fontDirectionHint=i.parseShort(),t.indexToLocFormat=i.parseShort(),t.glyphDataFormat=i.parseShort(),t}function uD(A){var e=Math.round(new Date().getTime()/1e3)+2082844800,t=e;return A.createdTimestamp&&(t=A.createdTimestamp+2082844800),new aA.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:t},{name:"modified",type:"LONGDATETIME",value:e},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],A)}var gl={parse:ED,make:uD};function hD(A,e){var t={},i=new BA.Parser(A,e);return t.version=i.parseVersion(),t.ascender=i.parseShort(),t.descender=i.parseShort(),t.lineGap=i.parseShort(),t.advanceWidthMax=i.parseUShort(),t.minLeftSideBearing=i.parseShort(),t.minRightSideBearing=i.parseShort(),t.xMaxExtent=i.parseShort(),t.caretSlopeRise=i.parseShort(),t.caretSlopeRun=i.parseShort(),t.caretOffset=i.parseShort(),i.relativeOffset+=8,t.metricDataFormat=i.parseShort(),t.numberOfHMetrics=i.parseUShort(),t}function fD(A){return new aA.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],A)}var sl={parse:hD,make:fD};function dD(A,e,t,i,n){for(var o,r,g=new BA.Parser(A,e),s=0;s<i;s+=1){s<t&&(o=g.parseUShort(),r=g.parseShort());var a=n.get(s);a.advanceWidth=o,a.leftSideBearing=r}}function pD(A,e,t,i,n){A._hmtxTableData={};for(var o,r,g=new BA.Parser(e,t),s=0;s<n;s+=1)s<i&&(o=g.parseUShort(),r=g.parseShort()),A._hmtxTableData[s]={advanceWidth:o,leftSideBearing:r}}function mD(A,e,t,i,n,o,r){r.lowMemory?pD(A,e,t,i,n):dD(e,t,i,n,o)}function yD(A){for(var e=new aA.Table("hmtx",[]),t=0;t<A.length;t+=1){var i=A.get(t),n=i.advanceWidth||0,o=i.leftSideBearing||0;e.fields.push({name:"advanceWidth_"+t,type:"USHORT",value:n}),e.fields.push({name:"leftSideBearing_"+t,type:"SHORT",value:o})}return e}var al={parse:mD,make:yD};function wD(A){for(var e=new aA.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:A.length}]),t="",i=12+A.length*4,n=0;n<A.length;++n){var o=t.indexOf(A[n]);o<0&&(o=t.length,t+=A[n]),e.fields.push({name:"offset "+n,type:"USHORT",value:i+o}),e.fields.push({name:"length "+n,type:"USHORT",value:A[n].length})}return e.fields.push({name:"stringPool",type:"CHARARRAY",value:t}),e}function DD(A,e){var t=new BA.Parser(A,e),i=t.parseULong();mA.argument(i===1,"Unsupported ltag table version."),t.skip("uLong",1);for(var n=t.parseULong(),o=[],r=0;r<n;r++){for(var g="",s=e+t.parseUShort(),a=t.parseUShort(),I=s;I<s+a;++I)g+=String.fromCharCode(A.getInt8(I));o.push(g)}return o}var Il={make:wD,parse:DD};function kD(A,e){var t={},i=new BA.Parser(A,e);return t.version=i.parseVersion(),t.numGlyphs=i.parseUShort(),t.version===1&&(t.maxPoints=i.parseUShort(),t.maxContours=i.parseUShort(),t.maxCompositePoints=i.parseUShort(),t.maxCompositeContours=i.parseUShort(),t.maxZones=i.parseUShort(),t.maxTwilightPoints=i.parseUShort(),t.maxStorage=i.parseUShort(),t.maxFunctionDefs=i.parseUShort(),t.maxInstructionDefs=i.parseUShort(),t.maxStackElements=i.parseUShort(),t.maxSizeOfInstructions=i.parseUShort(),t.maxComponentElements=i.parseUShort(),t.maxComponentDepth=i.parseUShort()),t}function vD(A){return new aA.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:A}])}var Cl={parse:kD,make:vD},ll=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Bl={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},FD={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},Ql={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function SD(A,e,t){switch(A){case 0:if(e===65535)return"und";if(t)return t[e];break;case 1:return Bl[e];case 3:return Ql[e]}}var Ur="utf-16",bD={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},RD={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function cl(A,e,t){switch(A){case 0:return Ur;case 1:return RD[t]||bD[e];case 3:if(e===1||e===10)return Ur;break}}function ND(A,e,t){for(var i={},n=new BA.Parser(A,e),o=n.parseUShort(),r=n.parseUShort(),g=n.offset+n.parseUShort(),s=0;s<r;s++){var a=n.parseUShort(),I=n.parseUShort(),l=n.parseUShort(),C=n.parseUShort(),Q=ll[C]||C,E=n.parseUShort(),f=n.parseUShort(),h=SD(a,l,t),u=cl(a,I,l);if(u!==void 0&&h!==void 0){var p=void 0;if(u===Ur?p=Ri.UTF16(A,g+f,E):p=Ri.MACSTRING(A,g+f,E,u),p){var c=i[Q];c===void 0&&(c=i[Q]={}),c[h]=p}}}return o===1&&n.parseUShort(),i}function Zo(A){var e={};for(var t in A)e[A[t]]=parseInt(t);return e}function aa(A,e,t,i,n,o){return new aA.Record("NameRecord",[{name:"platformID",type:"USHORT",value:A},{name:"encodingID",type:"USHORT",value:e},{name:"languageID",type:"USHORT",value:t},{name:"nameID",type:"USHORT",value:i},{name:"length",type:"USHORT",value:n},{name:"offset",type:"USHORT",value:o}])}function GD(A,e){var t=A.length,i=e.length-t+1;A:for(var n=0;n<i;n++)for(;n<i;n++){for(var o=0;o<t;o++)if(e[n+o]!==A[o])continue A;return n}return-1}function Ia(A,e){var t=GD(A,e);if(t<0){t=e.length;for(var i=0,n=A.length;i<n;++i)e.push(A[i])}return t}function LD(A,e){var t,i=[],n={},o=Zo(ll);for(var r in A){var g=o[r];if(g===void 0&&(g=r),t=parseInt(g),isNaN(t))throw new Error('Name table entry "'+r+'" does not exist, see nameTableNames for complete list.');n[t]=A[r],i.push(t)}for(var s=Zo(Bl),a=Zo(Ql),I=[],l=[],C=0;C<i.length;C++){t=i[C];var Q=n[t];for(var E in Q){var f=Q[E],h=1,u=s[E],p=FD[u],c=cl(h,p,u),d=oA.MACSTRING(f,c);d===void 0&&(h=0,u=e.indexOf(E),u<0&&(u=e.length,e.push(E)),p=4,d=oA.UTF16(f));var w=Ia(d,l);I.push(aa(h,p,u,t,d.length,w));var F=a[E];if(F!==void 0){var N=oA.UTF16(f),G=Ia(N,l);I.push(aa(3,1,F,t,N.length,G))}}}I.sort(function(R,L){return R.platformID-L.platformID||R.encodingID-L.encodingID||R.languageID-L.languageID||R.nameID-L.nameID});for(var P=new aA.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:I.length},{name:"stringOffset",type:"USHORT",value:6+I.length*12}]),b=0;b<I.length;b++)P.fields.push({name:"record_"+b,type:"RECORD",value:I[b]});return P.fields.push({name:"strings",type:"LITERAL",value:l}),P}var El={parse:ND,make:LD},Mr=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function UD(A){for(var e=0;e<Mr.length;e+=1){var t=Mr[e];if(A>=t.begin&&A<t.end)return e}return-1}function MD(A,e){var t={},i=new BA.Parser(A,e);t.version=i.parseUShort(),t.xAvgCharWidth=i.parseShort(),t.usWeightClass=i.parseUShort(),t.usWidthClass=i.parseUShort(),t.fsType=i.parseUShort(),t.ySubscriptXSize=i.parseShort(),t.ySubscriptYSize=i.parseShort(),t.ySubscriptXOffset=i.parseShort(),t.ySubscriptYOffset=i.parseShort(),t.ySuperscriptXSize=i.parseShort(),t.ySuperscriptYSize=i.parseShort(),t.ySuperscriptXOffset=i.parseShort(),t.ySuperscriptYOffset=i.parseShort(),t.yStrikeoutSize=i.parseShort(),t.yStrikeoutPosition=i.parseShort(),t.sFamilyClass=i.parseShort(),t.panose=[];for(var n=0;n<10;n++)t.panose[n]=i.parseByte();return t.ulUnicodeRange1=i.parseULong(),t.ulUnicodeRange2=i.parseULong(),t.ulUnicodeRange3=i.parseULong(),t.ulUnicodeRange4=i.parseULong(),t.achVendID=String.fromCharCode(i.parseByte(),i.parseByte(),i.parseByte(),i.parseByte()),t.fsSelection=i.parseUShort(),t.usFirstCharIndex=i.parseUShort(),t.usLastCharIndex=i.parseUShort(),t.sTypoAscender=i.parseShort(),t.sTypoDescender=i.parseShort(),t.sTypoLineGap=i.parseShort(),t.usWinAscent=i.parseUShort(),t.usWinDescent=i.parseUShort(),t.version>=1&&(t.ulCodePageRange1=i.parseULong(),t.ulCodePageRange2=i.parseULong()),t.version>=2&&(t.sxHeight=i.parseShort(),t.sCapHeight=i.parseShort(),t.usDefaultChar=i.parseUShort(),t.usBreakChar=i.parseUShort(),t.usMaxContent=i.parseUShort()),t}function xD(A){return new aA.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],A)}var xr={parse:MD,make:xD,unicodeRanges:Mr,getUnicodeRange:UD};function JD(A,e){var t={},i=new BA.Parser(A,e);switch(t.version=i.parseVersion(),t.italicAngle=i.parseFixed(),t.underlinePosition=i.parseShort(),t.underlineThickness=i.parseShort(),t.isFixedPitch=i.parseULong(),t.minMemType42=i.parseULong(),t.maxMemType42=i.parseULong(),t.minMemType1=i.parseULong(),t.maxMemType1=i.parseULong(),t.version){case 1:t.names=ii.slice();break;case 2:t.numberOfGlyphs=i.parseUShort(),t.glyphNameIndex=new Array(t.numberOfGlyphs);for(var n=0;n<t.numberOfGlyphs;n++)t.glyphNameIndex[n]=i.parseUShort();t.names=[];for(var o=0;o<t.numberOfGlyphs;o++)if(t.glyphNameIndex[o]>=ii.length){var r=i.parseChar();t.names.push(i.parseString(r))}break;case 2.5:t.numberOfGlyphs=i.parseUShort(),t.offset=new Array(t.numberOfGlyphs);for(var g=0;g<t.numberOfGlyphs;g++)t.offset[g]=i.parseChar();break}return t}function TD(){return new aA.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])}var ul={parse:JD,make:TD},Oe=new Array(9);Oe[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:1,coverage:this.parsePointer(T.coverage),deltaGlyphId:this.parseUShort()};if(t===2)return{substFormat:2,coverage:this.parsePointer(T.coverage),substitute:this.parseOffset16List()};mA.assert(!1,"0x"+e.toString(16)+": lookup type 1 format must be 1 or 2.")};Oe[2]=function(){var e=this.parseUShort();return mA.argument(e===1,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),sequences:this.parseListOfLists()}};Oe[3]=function(){var e=this.parseUShort();return mA.argument(e===1,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),alternateSets:this.parseListOfLists()}};Oe[4]=function(){var e=this.parseUShort();return mA.argument(e===1,"GSUB ligature table identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),ligatureSets:this.parseListOfLists(function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}})}};var wi={sequenceIndex:T.uShort,lookupListIndex:T.uShort};Oe[5]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:t,coverage:this.parsePointer(T.coverage),ruleSets:this.parseListOfLists(function(){var o=this.parseUShort(),r=this.parseUShort();return{input:this.parseUShortList(o-1),lookupRecords:this.parseRecordList(r,wi)}})};if(t===2)return{substFormat:t,coverage:this.parsePointer(T.coverage),classDef:this.parsePointer(T.classDef),classSets:this.parseListOfLists(function(){var o=this.parseUShort(),r=this.parseUShort();return{classes:this.parseUShortList(o-1),lookupRecords:this.parseRecordList(r,wi)}})};if(t===3){var i=this.parseUShort(),n=this.parseUShort();return{substFormat:t,coverages:this.parseList(i,T.pointer(T.coverage)),lookupRecords:this.parseRecordList(n,wi)}}mA.assert(!1,"0x"+e.toString(16)+": lookup type 5 format must be 1, 2 or 3.")};Oe[6]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:1,coverage:this.parsePointer(T.coverage),chainRuleSets:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(wi)}})};if(t===2)return{substFormat:2,coverage:this.parsePointer(T.coverage),backtrackClassDef:this.parsePointer(T.classDef),inputClassDef:this.parsePointer(T.classDef),lookaheadClassDef:this.parsePointer(T.classDef),chainClassSet:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(wi)}})};if(t===3)return{substFormat:3,backtrackCoverage:this.parseList(T.pointer(T.coverage)),inputCoverage:this.parseList(T.pointer(T.coverage)),lookaheadCoverage:this.parseList(T.pointer(T.coverage)),lookupRecords:this.parseRecordList(wi)};mA.assert(!1,"0x"+e.toString(16)+": lookup type 6 format must be 1, 2 or 3.")};Oe[7]=function(){var e=this.parseUShort();mA.argument(e===1,"GSUB Extension Substitution subtable identifier-format must be 1");var t=this.parseUShort(),i=new T(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:t,extension:Oe[t].call(i)}};Oe[8]=function(){var e=this.parseUShort();return mA.argument(e===1,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),backtrackCoverage:this.parseList(T.pointer(T.coverage)),lookaheadCoverage:this.parseList(T.pointer(T.coverage)),substitutes:this.parseUShortList()}};function HD(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);return mA.argument(i===1||i===1.1,"Unsupported GSUB table version."),i===1?{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(Oe)}:{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(Oe),variations:t.parseFeatureVariationsList()}}var Ui=new Array(9);Ui[1]=function(e){return e.substFormat===1?new aA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)},{name:"deltaGlyphID",type:"USHORT",value:e.deltaGlyphId}]):new aA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)}].concat(aA.ushortList("substitute",e.substitute)))};Ui[2]=function(e){return mA.assert(e.substFormat===1,"Lookup type 2 substFormat must be 1."),new aA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)}].concat(aA.tableList("seqSet",e.sequences,function(t){return new aA.Table("sequenceSetTable",aA.ushortList("sequence",t))})))};Ui[3]=function(e){return mA.assert(e.substFormat===1,"Lookup type 3 substFormat must be 1."),new aA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)}].concat(aA.tableList("altSet",e.alternateSets,function(t){return new aA.Table("alternateSetTable",aA.ushortList("alternate",t))})))};Ui[4]=function(e){return mA.assert(e.substFormat===1,"Lookup type 4 substFormat must be 1."),new aA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)}].concat(aA.tableList("ligSet",e.ligatureSets,function(t){return new aA.Table("ligatureSetTable",aA.tableList("ligature",t,function(i){return new aA.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:i.ligGlyph}].concat(aA.ushortList("component",i.components,i.components.length+1)))}))})))};Ui[6]=function(e){if(e.substFormat===1){var t=new aA.Table("chainContextTable",[{name:"substFormat",type:"USHORT",value:e.substFormat},{name:"coverage",type:"TABLE",value:new aA.Coverage(e.coverage)}].concat(aA.tableList("chainRuleSet",e.chainRuleSets,function(o){return new aA.Table("chainRuleSetTable",aA.tableList("chainRule",o,function(r){var g=aA.ushortList("backtrackGlyph",r.backtrack,r.backtrack.length).concat(aA.ushortList("inputGlyph",r.input,r.input.length+1)).concat(aA.ushortList("lookaheadGlyph",r.lookahead,r.lookahead.length)).concat(aA.ushortList("substitution",[],r.lookupRecords.length));return r.lookupRecords.forEach(function(s,a){g=g.concat({name:"sequenceIndex"+a,type:"USHORT",value:s.sequenceIndex}).concat({name:"lookupListIndex"+a,type:"USHORT",value:s.lookupListIndex})}),new aA.Table("chainRuleTable",g)}))})));return t}else if(e.substFormat===2)mA.assert(!1,"lookup type 6 format 2 is not yet supported.");else if(e.substFormat===3){var i=[{name:"substFormat",type:"USHORT",value:e.substFormat}];i.push({name:"backtrackGlyphCount",type:"USHORT",value:e.backtrackCoverage.length}),e.backtrackCoverage.forEach(function(o,r){i.push({name:"backtrackCoverage"+r,type:"TABLE",value:new aA.Coverage(o)})}),i.push({name:"inputGlyphCount",type:"USHORT",value:e.inputCoverage.length}),e.inputCoverage.forEach(function(o,r){i.push({name:"inputCoverage"+r,type:"TABLE",value:new aA.Coverage(o)})}),i.push({name:"lookaheadGlyphCount",type:"USHORT",value:e.lookaheadCoverage.length}),e.lookaheadCoverage.forEach(function(o,r){i.push({name:"lookaheadCoverage"+r,type:"TABLE",value:new aA.Coverage(o)})}),i.push({name:"substitutionCount",type:"USHORT",value:e.lookupRecords.length}),e.lookupRecords.forEach(function(o,r){i=i.concat({name:"sequenceIndex"+r,type:"USHORT",value:o.sequenceIndex}).concat({name:"lookupListIndex"+r,type:"USHORT",value:o.lookupListIndex})});var n=new aA.Table("chainContextTable",i);return n}mA.assert(!1,"lookup type 6 format must be 1, 2 or 3.")};function YD(A){return new aA.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new aA.ScriptList(A.scripts)},{name:"features",type:"TABLE",value:new aA.FeatureList(A.features)},{name:"lookups",type:"TABLE",value:new aA.LookupList(A.lookups,Ui)}])}var hl={parse:HD,make:YD};function _D(A,e){var t=new BA.Parser(A,e),i=t.parseULong();mA.argument(i===1,"Unsupported META table version."),t.parseULong(),t.parseULong();for(var n=t.parseULong(),o={},r=0;r<n;r++){var g=t.parseTag(),s=t.parseULong(),a=t.parseULong(),I=Ri.UTF8(A,e+s,a);o[g]=I}return o}function KD(A){var e=Object.keys(A).length,t="",i=16+e*12,n=new aA.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:i},{name:"numTags",type:"ULONG",value:e}]);for(var o in A){var r=t.length;t+=A[o],n.fields.push({name:"tag "+o,type:"TAG",value:o}),n.fields.push({name:"offset "+o,type:"ULONG",value:i+r}),n.fields.push({name:"length "+o,type:"ULONG",value:A[o].length})}return n.fields.push({name:"stringPool",type:"CHARARRAY",value:t}),n}var fl={parse:_D,make:KD};function Ca(A){return Math.log(A)/Math.log(2)|0}function dg(A){for(;A.length%4!==0;)A.push(0);for(var e=0,t=0;t<A.length;t+=4)e+=(A[t]<<24)+(A[t+1]<<16)+(A[t+2]<<8)+A[t+3];return e%=Math.pow(2,32),e}function la(A,e,t,i){return new aA.Record("Table Record",[{name:"tag",type:"TAG",value:A!==void 0?A:""},{name:"checkSum",type:"ULONG",value:e!==void 0?e:0},{name:"offset",type:"ULONG",value:t!==void 0?t:0},{name:"length",type:"ULONG",value:i!==void 0?i:0}])}function dl(A){var e=new aA.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);e.tables=A,e.numTables=A.length;var t=Math.pow(2,Ca(e.numTables));e.searchRange=16*t,e.entrySelector=Ca(t),e.rangeShift=e.numTables*16-e.searchRange;for(var i=[],n=[],o=e.sizeOf()+la().sizeOf()*e.numTables;o%4!==0;)o+=1,n.push({name:"padding",type:"BYTE",value:0});for(var r=0;r<A.length;r+=1){var g=A[r];mA.argument(g.tableName.length===4,"Table name"+g.tableName+" is invalid.");var s=g.sizeOf(),a=la(g.tableName,dg(g.encode()),o,s);for(i.push({name:a.tag+" Table Record",type:"RECORD",value:a}),n.push({name:g.tableName+" table",type:"RECORD",value:g}),o+=s,mA.argument(!isNaN(o),"Something went wrong calculating the offset.");o%4!==0;)o+=1,n.push({name:"padding",type:"BYTE",value:0})}return i.sort(function(I,l){return I.value.tag>l.value.tag?1:-1}),e.fields=e.fields.concat(i),e.fields=e.fields.concat(n),e}function Ba(A,e,t){for(var i=0;i<e.length;i+=1){var n=A.charToGlyphIndex(e[i]);if(n>0){var o=A.glyphs.get(n);return o.getMetrics()}}return t}function PD(A){for(var e=0,t=0;t<A.length;t+=1)e+=A[t];return e/A.length}function OD(A){for(var e=[],t=[],i=[],n=[],o=[],r=[],g=[],s,a=0,I=0,l=0,C=0,Q=0,E=0;E<A.glyphs.length;E+=1){var f=A.glyphs.get(E),h=f.unicode|0;if(isNaN(f.advanceWidth))throw new Error("Glyph "+f.name+" ("+E+"): advanceWidth is not a number.");(s>h||s===void 0)&&h>0&&(s=h),a<h&&(a=h);var u=xr.getUnicodeRange(h);if(u<32)I|=1<<u;else if(u<64)l|=1<<u-32;else if(u<96)C|=1<<u-64;else if(u<123)Q|=1<<u-96;else throw new Error("Unicode ranges bits > 123 are reserved for internal usage");if(f.name!==".notdef"){var p=f.getMetrics();e.push(p.xMin),t.push(p.yMin),i.push(p.xMax),n.push(p.yMax),r.push(p.leftSideBearing),g.push(p.rightSideBearing),o.push(f.advanceWidth)}}var c={xMin:Math.min.apply(null,e),yMin:Math.min.apply(null,t),xMax:Math.max.apply(null,i),yMax:Math.max.apply(null,n),advanceWidthMax:Math.max.apply(null,o),advanceWidthAvg:PD(o),minLeftSideBearing:Math.min.apply(null,r),maxLeftSideBearing:Math.max.apply(null,r),minRightSideBearing:Math.min.apply(null,g)};c.ascender=A.ascender,c.descender=A.descender;var d=gl.make({flags:3,unitsPerEm:A.unitsPerEm,xMin:c.xMin,yMin:c.yMin,xMax:c.xMax,yMax:c.yMax,lowestRecPPEM:3,createdTimestamp:A.createdTimestamp}),w=sl.make({ascender:c.ascender,descender:c.descender,advanceWidthMax:c.advanceWidthMax,minLeftSideBearing:c.minLeftSideBearing,minRightSideBearing:c.minRightSideBearing,xMaxExtent:c.maxLeftSideBearing+(c.xMax-c.xMin),numberOfHMetrics:A.glyphs.length}),F=Cl.make(A.glyphs.length),N=xr.make(Object.assign({xAvgCharWidth:Math.round(c.advanceWidthAvg),usFirstCharIndex:s,usLastCharIndex:a,ulUnicodeRange1:I,ulUnicodeRange2:l,ulUnicodeRange3:C,ulUnicodeRange4:Q,sTypoAscender:c.ascender,sTypoDescender:c.descender,sTypoLineGap:0,usWinAscent:c.yMax,usWinDescent:Math.abs(c.yMin),ulCodePageRange1:1,sxHeight:Ba(A,"xyvw",{yMax:Math.round(c.ascender/2)}).yMax,sCapHeight:Ba(A,"HIKLEFJMNTZBDPRAGOQSUVWXY",c).yMax,usDefaultChar:A.hasChar(" ")?32:0,usBreakChar:A.hasChar(" ")?32:0},A.tables.os2)),G=al.make(A.glyphs),P=jC.make(A.glyphs),b=A.getEnglishName("fontFamily"),R=A.getEnglishName("fontSubfamily"),L=b+" "+R,cA=A.getEnglishName("postScriptName");cA||(cA=b.replace(/\s/g,"")+"-"+R);var dA={};for(var CA in A.names)dA[CA]=A.names[CA];dA.uniqueID||(dA.uniqueID={en:A.getEnglishName("manufacturer")+":"+L}),dA.postScriptName||(dA.postScriptName={en:cA}),dA.preferredFamily||(dA.preferredFamily=A.names.fontFamily),dA.preferredSubfamily||(dA.preferredSubfamily=A.names.fontSubfamily);var iA=[],X=El.make(dA,iA),eA=iA.length>0?Il.make(iA):void 0,fA=ul.make(),DA=rl.make(A.glyphs,{version:A.getEnglishName("version"),fullName:L,familyName:b,weightName:R,postScriptName:cA,unitsPerEm:A.unitsPerEm,fontBBox:[0,c.yMin,c.ascender,c.advanceWidthMax]}),Y=A.metas&&Object.keys(A.metas).length>0?fl.make(A.metas):void 0,q=[d,w,F,N,X,P,fA,DA,G];eA&&q.push(eA),A.tables.gsub&&q.push(hl.make(A.tables.gsub)),Y&&q.push(Y);for(var gA=dl(q),FA=gA.encode(),LA=dg(FA),TA=gA.fields,M=!1,Z=0;Z<TA.length;Z+=1)if(TA[Z].name==="head table"){TA[Z].value.checkSumAdjustment=2981146554-LA,M=!0;break}if(!M)throw new Error("Could not find head table with checkSum to adjust.");return gA}var VD={make:dl,fontToTable:OD,computeCheckSum:dg};function Xo(A,e){for(var t=0,i=A.length-1;t<=i;){var n=t+i>>>1,o=A[n].tag;if(o===e)return n;o<e?t=n+1:i=n-1}return-t-1}function Qa(A,e){for(var t=0,i=A.length-1;t<=i;){var n=t+i>>>1,o=A[n];if(o===e)return n;o<e?t=n+1:i=n-1}return-t-1}function ca(A,e){for(var t,i=0,n=A.length-1;i<=n;){var o=i+n>>>1;t=A[o];var r=t.start;if(r===e)return t;r<e?i=o+1:n=o-1}if(i>0)return t=A[i-1],e>t.end?0:t}function pn(A,e){this.font=A,this.tableName=e}pn.prototype={searchTag:Xo,binSearch:Qa,getTable:function(A){var e=this.font.tables[this.tableName];return!e&&A&&(e=this.font.tables[this.tableName]=this.createDefaultTable()),e},getScriptNames:function(){var A=this.getTable();return A?A.scripts.map(function(e){return e.tag}):[]},getDefaultScriptName:function(){var A=this.getTable();if(A){for(var e=!1,t=0;t<A.scripts.length;t++){var i=A.scripts[t].tag;if(i==="DFLT")return i;i==="latn"&&(e=!0)}if(e)return"latn"}},getScriptTable:function(A,e){var t=this.getTable(e);if(t){A=A||"DFLT";var i=t.scripts,n=Xo(t.scripts,A);if(n>=0)return i[n].script;if(e){var o={tag:A,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-n,0,o),o.script}}},getLangSysTable:function(A,e,t){var i=this.getScriptTable(A,t);if(i){if(!e||e==="dflt"||e==="DFLT")return i.defaultLangSys;var n=Xo(i.langSysRecords,e);if(n>=0)return i.langSysRecords[n].langSys;if(t){var o={tag:e,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-n,0,o),o.langSys}}},getFeatureTable:function(A,e,t,i){var n=this.getLangSysTable(A,e,i);if(n){for(var o,r=n.featureIndexes,g=this.font.tables[this.tableName].features,s=0;s<r.length;s++)if(o=g[r[s]],o.tag===t)return o.feature;if(i){var a=g.length;return mA.assert(a===0||t>=g[a-1].tag,"Features must be added in alphabetical order."),o={tag:t,feature:{params:0,lookupListIndexes:[]}},g.push(o),r.push(a),o.feature}}},getLookupTables:function(A,e,t,i,n){var o=this.getFeatureTable(A,e,t,n),r=[];if(o){for(var g,s=o.lookupListIndexes,a=this.font.tables[this.tableName].lookups,I=0;I<s.length;I++)g=a[s[I]],g.lookupType===i&&r.push(g);if(r.length===0&&n){g={lookupType:i,lookupFlag:0,subtables:[],markFilteringSet:void 0};var l=a.length;return a.push(g),s.push(l),[g]}}return r},getGlyphClass:function(A,e){switch(A.format){case 1:return A.startGlyph<=e&&e<A.startGlyph+A.classes.length?A.classes[e-A.startGlyph]:0;case 2:var t=ca(A.ranges,e);return t?t.classId:0}},getCoverageIndex:function(A,e){switch(A.format){case 1:var t=Qa(A.glyphs,e);return t>=0?t:-1;case 2:var i=ca(A.ranges,e);return i?i.index+e-i.start:-1}},expandCoverage:function(A){if(A.format===1)return A.glyphs;for(var e=[],t=A.ranges,i=0;i<t.length;i++)for(var n=t[i],o=n.start,r=n.end,g=o;g<=r;g++)e.push(g);return e}};function mn(A){pn.call(this,A,"gpos")}mn.prototype=pn.prototype;mn.prototype.init=function(){var A=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(A)};mn.prototype.getKerningValue=function(A,e,t){for(var i=0;i<A.length;i++)for(var n=A[i].subtables,o=0;o<n.length;o++){var r=n[o],g=this.getCoverageIndex(r.coverage,e);if(!(g<0))switch(r.posFormat){case 1:for(var s=r.pairSets[g],a=0;a<s.length;a++){var I=s[a];if(I.secondGlyph===t)return I.value1&&I.value1.xAdvance||0}break;case 2:var l=this.getGlyphClass(r.classDef1,e),C=this.getGlyphClass(r.classDef2,t),Q=r.classRecords[l][C];return Q.value1&&Q.value1.xAdvance||0}}return 0};mn.prototype.getKerningTables=function(A,e){if(this.font.tables.gpos)return this.getLookupTables(A,e,"kern",2)};function Ge(A){pn.call(this,A,"gsub")}function WD(A,e){var t=A.length;if(t!==e.length)return!1;for(var i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}function pg(A,e,t){for(var i=A.subtables,n=0;n<i.length;n++){var o=i[n];if(o.substFormat===e)return o}if(t)return i.push(t),t}Ge.prototype=pn.prototype;Ge.prototype.createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}};Ge.prototype.getSingle=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,1),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++){var s=r[g],a=this.expandCoverage(s.coverage),I=void 0;if(s.substFormat===1){var l=s.deltaGlyphId;for(I=0;I<a.length;I++){var C=a[I];i.push({sub:C,by:C+l})}}else{var Q=s.substitute;for(I=0;I<a.length;I++)i.push({sub:a[I],by:Q[I]})}}return i};Ge.prototype.getMultiple=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,2),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++){var s=r[g],a=this.expandCoverage(s.coverage),I=void 0;for(I=0;I<a.length;I++){var l=a[I],C=s.sequences[I];i.push({sub:l,by:C})}}return i};Ge.prototype.getAlternates=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,3),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++)for(var s=r[g],a=this.expandCoverage(s.coverage),I=s.alternateSets,l=0;l<a.length;l++)i.push({sub:a[l],by:I[l]});return i};Ge.prototype.getLigatures=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,4),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++)for(var s=r[g],a=this.expandCoverage(s.coverage),I=s.ligatureSets,l=0;l<a.length;l++)for(var C=a[l],Q=I[l],E=0;E<Q.length;E++){var f=Q[E];i.push({sub:[C].concat(f.components),by:f.ligGlyph})}return i};Ge.prototype.addSingle=function(A,e,t,i){var n=this.getLookupTables(t,i,A,1,!0)[0],o=pg(n,2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});mA.assert(o.coverage.format===1,"Single: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.substitute.splice(g,0,0)),o.substitute[g]=e.by};Ge.prototype.addMultiple=function(A,e,t,i){mA.assert(e.by instanceof Array&&e.by.length>1,'Multiple: "by" must be an array of two or more ids');var n=this.getLookupTables(t,i,A,2,!0)[0],o=pg(n,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});mA.assert(o.coverage.format===1,"Multiple: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.sequences.splice(g,0,0)),o.sequences[g]=e.by};Ge.prototype.addAlternate=function(A,e,t,i){var n=this.getLookupTables(t,i,A,3,!0)[0],o=pg(n,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});mA.assert(o.coverage.format===1,"Alternate: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.alternateSets.splice(g,0,0)),o.alternateSets[g]=e.by};Ge.prototype.addLigature=function(A,e,t,i){var n=this.getLookupTables(t,i,A,4,!0)[0],o=n.subtables[0];o||(o={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},n.subtables[0]=o),mA.assert(o.coverage.format===1,"Ligature: unable to modify coverage table format "+o.coverage.format);var r=e.sub[0],g=e.sub.slice(1),s={ligGlyph:e.by,components:g},a=this.binSearch(o.coverage.glyphs,r);if(a>=0){for(var I=o.ligatureSets[a],l=0;l<I.length;l++)if(WD(I[l].components,g))return;I.push(s)}else a=-1-a,o.coverage.glyphs.splice(a,0,r),o.ligatureSets.splice(a,0,[s])};Ge.prototype.getFeature=function(A,e,t){if(/ss\d\d/.test(A))return this.getSingle(A,e,t);switch(A){case"aalt":case"salt":return this.getSingle(A,e,t).concat(this.getAlternates(A,e,t));case"dlig":case"liga":case"rlig":return this.getLigatures(A,e,t);case"ccmp":return this.getMultiple(A,e,t).concat(this.getLigatures(A,e,t));case"stch":return this.getMultiple(A,e,t)}};Ge.prototype.add=function(A,e,t,i){if(/ss\d\d/.test(A))return this.addSingle(A,e,t,i);switch(A){case"aalt":case"salt":return typeof e.by=="number"?this.addSingle(A,e,t,i):this.addAlternate(A,e,t,i);case"dlig":case"liga":case"rlig":return this.addLigature(A,e,t,i);case"ccmp":return e.by instanceof Array?this.addMultiple(A,e,t,i):this.addLigature(A,e,t,i)}};function qD(){return typeof window<"u"}function pl(A){for(var e=new ArrayBuffer(A.length),t=new Uint8Array(e),i=0;i<A.length;++i)t[i]=A[i];return e}function jD(A){for(var e=new Buffer(A.byteLength),t=new Uint8Array(A),i=0;i<e.length;++i)e[i]=t[i];return e}function Hi(A,e){if(!A)throw e}function Ea(A,e,t,i,n){var o;return(e&i)>0?(o=A.parseByte(),e&n||(o=-o),o=t+o):(e&n)>0?o=t:o=t+A.parseShort(),o}function ml(A,e,t){var i=new BA.Parser(e,t);A.numberOfContours=i.parseShort(),A._xMin=i.parseShort(),A._yMin=i.parseShort(),A._xMax=i.parseShort(),A._yMax=i.parseShort();var n,o;if(A.numberOfContours>0){for(var r=A.endPointIndices=[],g=0;g<A.numberOfContours;g+=1)r.push(i.parseUShort());A.instructionLength=i.parseUShort(),A.instructions=[];for(var s=0;s<A.instructionLength;s+=1)A.instructions.push(i.parseByte());var a=r[r.length-1]+1;n=[];for(var I=0;I<a;I+=1)if(o=i.parseByte(),n.push(o),(o&8)>0)for(var l=i.parseByte(),C=0;C<l;C+=1)n.push(o),I+=1;if(mA.argument(n.length===a,"Bad flags."),r.length>0){var Q=[],E;if(a>0){for(var f=0;f<a;f+=1)o=n[f],E={},E.onCurve=!!(o&1),E.lastPointOfContour=r.indexOf(f)>=0,Q.push(E);for(var h=0,u=0;u<a;u+=1)o=n[u],E=Q[u],E.x=Ea(i,o,h,2,16),h=E.x;for(var p=0,c=0;c<a;c+=1)o=n[c],E=Q[c],E.y=Ea(i,o,p,4,32),p=E.y}A.points=Q}else A.points=[]}else if(A.numberOfContours===0)A.points=[];else{A.isComposite=!0,A.points=[],A.components=[];for(var d=!0;d;){n=i.parseUShort();var w={glyphIndex:i.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(n&1)>0?(n&2)>0?(w.dx=i.parseShort(),w.dy=i.parseShort()):w.matchedPoints=[i.parseUShort(),i.parseUShort()]:(n&2)>0?(w.dx=i.parseChar(),w.dy=i.parseChar()):w.matchedPoints=[i.parseByte(),i.parseByte()],(n&8)>0?w.xScale=w.yScale=i.parseF2Dot14():(n&64)>0?(w.xScale=i.parseF2Dot14(),w.yScale=i.parseF2Dot14()):(n&128)>0&&(w.xScale=i.parseF2Dot14(),w.scale01=i.parseF2Dot14(),w.scale10=i.parseF2Dot14(),w.yScale=i.parseF2Dot14()),A.components.push(w),d=!!(n&32)}if(n&256){A.instructionLength=i.parseUShort(),A.instructions=[];for(var F=0;F<A.instructionLength;F+=1)A.instructions.push(i.parseByte())}}}function zo(A,e){for(var t=[],i=0;i<A.length;i+=1){var n=A[i],o={x:e.xScale*n.x+e.scale01*n.y+e.dx,y:e.scale10*n.x+e.yScale*n.y+e.dy,onCurve:n.onCurve,lastPointOfContour:n.lastPointOfContour};t.push(o)}return t}function ZD(A){for(var e=[],t=[],i=0;i<A.length;i+=1){var n=A[i];t.push(n),n.lastPointOfContour&&(e.push(t),t=[])}return mA.argument(t.length===0,"There are still points left in the current contour."),e}function yl(A){var e=new ne;if(!A)return e;for(var t=ZD(A),i=0;i<t.length;++i){var n=t[i],o=null,r=n[n.length-1],g=n[0];if(r.onCurve)e.moveTo(r.x,r.y);else if(g.onCurve)e.moveTo(g.x,g.y);else{var s={x:(r.x+g.x)*.5,y:(r.y+g.y)*.5};e.moveTo(s.x,s.y)}for(var a=0;a<n.length;++a)if(o=r,r=g,g=n[(a+1)%n.length],r.onCurve)e.lineTo(r.x,r.y);else{var I=g;o.onCurve||((r.x+o.x)*.5,(r.y+o.y)*.5),g.onCurve||(I={x:(r.x+g.x)*.5,y:(r.y+g.y)*.5}),e.quadraticCurveTo(r.x,r.y,I.x,I.y)}e.closePath()}return e}function wl(A,e){if(e.isComposite)for(var t=0;t<e.components.length;t+=1){var i=e.components[t],n=A.get(i.glyphIndex);if(n.getPath(),n.points){var o=void 0;if(i.matchedPoints===void 0)o=zo(n.points,i);else{if(i.matchedPoints[0]>e.points.length-1||i.matchedPoints[1]>n.points.length-1)throw Error("Matched points out of range in "+e.name);var r=e.points[i.matchedPoints[0]],g=n.points[i.matchedPoints[1]],s={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};g=zo([g],s)[0],s.dx=r.x-g.x,s.dy=r.y-g.y,o=zo(n.points,s)}e.points=e.points.concat(o)}}return yl(e.points)}function XD(A,e,t,i){for(var n=new at.GlyphSet(i),o=0;o<t.length-1;o+=1){var r=t[o],g=t[o+1];r!==g?n.push(o,at.ttfGlyphLoader(i,o,ml,A,e+r,wl)):n.push(o,at.glyphLoader(i,o))}return n}function zD(A,e,t,i){var n=new at.GlyphSet(i);return i._push=function(o){var r=t[o],g=t[o+1];r!==g?n.push(o,at.ttfGlyphLoader(i,o,ml,A,e+r,wl)):n.push(o,at.glyphLoader(i,o))},n}function $D(A,e,t,i,n){return n.lowMemory?zD(A,e,t,i):XD(A,e,t,i)}var Dl={getPath:yl,parse:$D},kl,ai,vl,Jr;function Fl(A){this.font=A,this.getCommands=function(e){return Dl.getPath(e).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function Ak(A){return A}function Sl(A){return Math.sign(A)*Math.round(Math.abs(A))}function ek(A){return Math.sign(A)*Math.round(Math.abs(A*2))/2}function tk(A){return Math.sign(A)*(Math.round(Math.abs(A)+.5)-.5)}function ik(A){return Math.sign(A)*Math.ceil(Math.abs(A))}function nk(A){return Math.sign(A)*Math.floor(Math.abs(A))}var bl=function(A){var e=this.srPeriod,t=this.srPhase,i=this.srThreshold,n=1;return A<0&&(A=-A,n=-1),A+=i-t,A=Math.trunc(A/e)*e,A+=t,A<0?t*n:A*n},nt={x:1,y:0,axis:"x",distance:function(A,e,t,i){return(t?A.xo:A.x)-(i?e.xo:e.x)},interpolate:function(A,e,t,i){var n,o,r,g,s,a,I;if(!i||i===this){if(n=A.xo-e.xo,o=A.xo-t.xo,s=e.x-e.xo,a=t.x-t.xo,r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){A.x=A.xo+(s+a)/2;return}A.x=A.xo+(s*g+a*r)/I;return}if(n=i.distance(A,e,!0,!0),o=i.distance(A,t,!0,!0),s=i.distance(e,e,!1,!0),a=i.distance(t,t,!1,!0),r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){nt.setRelative(A,A,(s+a)/2,i,!0);return}nt.setRelative(A,A,(s*g+a*r)/I,i,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(A,e,t,i,n){if(!i||i===this){A.x=(n?e.xo:e.x)+t;return}var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y;A.x=g+(A.y-s)/i.normalSlope},slope:0,touch:function(A){A.xTouched=!0},touched:function(A){return A.xTouched},untouch:function(A){A.xTouched=!1}},pt={x:0,y:1,axis:"y",distance:function(A,e,t,i){return(t?A.yo:A.y)-(i?e.yo:e.y)},interpolate:function(A,e,t,i){var n,o,r,g,s,a,I;if(!i||i===this){if(n=A.yo-e.yo,o=A.yo-t.yo,s=e.y-e.yo,a=t.y-t.yo,r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){A.y=A.yo+(s+a)/2;return}A.y=A.yo+(s*g+a*r)/I;return}if(n=i.distance(A,e,!0,!0),o=i.distance(A,t,!0,!0),s=i.distance(e,e,!1,!0),a=i.distance(t,t,!1,!0),r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){pt.setRelative(A,A,(s+a)/2,i,!0);return}pt.setRelative(A,A,(s*g+a*r)/I,i,!0)},normalSlope:0,setRelative:function(A,e,t,i,n){if(!i||i===this){A.y=(n?e.yo:e.y)+t;return}var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y;A.y=s+i.normalSlope*(A.x-g)},slope:Number.POSITIVE_INFINITY,touch:function(A){A.yTouched=!0},touched:function(A){return A.yTouched},untouch:function(A){A.yTouched=!1}};Object.freeze(nt);Object.freeze(pt);function yn(A,e){this.x=A,this.y=e,this.axis=void 0,this.slope=e/A,this.normalSlope=-A/e,Object.freeze(this)}yn.prototype.distance=function(A,e,t,i){return this.x*nt.distance(A,e,t,i)+this.y*pt.distance(A,e,t,i)};yn.prototype.interpolate=function(A,e,t,i){var n,o,r,g,s,a,I;if(r=i.distance(A,e,!0,!0),g=i.distance(A,t,!0,!0),n=i.distance(e,e,!1,!0),o=i.distance(t,t,!1,!0),s=Math.abs(r),a=Math.abs(g),I=s+a,I===0){this.setRelative(A,A,(n+o)/2,i,!0);return}this.setRelative(A,A,(n*a+o*s)/I,i,!0)};yn.prototype.setRelative=function(A,e,t,i,n){i=i||this;var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y,a=i.normalSlope,I=this.slope,l=A.x,C=A.y;A.x=(I*l-a*g+s-C)/(I-a),A.y=I*(A.x-l)+C};yn.prototype.touch=function(A){A.xTouched=!0,A.yTouched=!0};function wn(A,e){var t=Math.sqrt(A*A+e*e);return A/=t,e/=t,A===1&&e===0?nt:A===0&&e===1?pt:new yn(A,e)}function mt(A,e,t,i){this.x=this.xo=Math.round(A*64)/64,this.y=this.yo=Math.round(e*64)/64,this.lastPointOfContour=t,this.onCurve=i,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}mt.prototype.nextTouched=function(A){for(var e=this.nextPointOnContour;!A.touched(e)&&e!==this;)e=e.nextPointOnContour;return e};mt.prototype.prevTouched=function(A){for(var e=this.prevPointOnContour;!A.touched(e)&&e!==this;)e=e.prevPointOnContour;return e};var ln=Object.freeze(new mt(0,0)),ok={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function Ht(A,e){switch(this.env=A,this.stack=[],this.prog=e,A){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=nt,this.round=Sl}}Fl.prototype.exec=function(A,e){if(typeof e!="number")throw new Error("Point size is not a number!");if(!(this._errorState>2)){var t=this.font,i=this._prepState;if(!i||i.ppem!==e){var n=this._fpgmState;if(!n){Ht.prototype=ok,n=this._fpgmState=new Ht("fpgm",t.tables.fpgm),n.funcs=[],n.font=t,exports.DEBUG&&(console.log("---EXEC FPGM---"),n.step=-1);try{ai(n)}catch(a){console.log("Hinting error in FPGM:"+a),this._errorState=3;return}}Ht.prototype=n,i=this._prepState=new Ht("prep",t.tables.prep),i.ppem=e;var o=t.tables.cvt;if(o)for(var r=i.cvt=new Array(o.length),g=e/t.unitsPerEm,s=0;s<o.length;s++)r[s]=o[s]*g;else i.cvt=[];exports.DEBUG&&(console.log("---EXEC PREP---"),i.step=-1);try{ai(i)}catch(a){this._errorState<2&&console.log("Hinting error in PREP:"+a),this._errorState=2}}if(!(this._errorState>1))try{return vl(A,i)}catch(a){this._errorState<1&&(console.log("Hinting error:"+a),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};vl=function(A,e){var t=e.ppem/e.font.unitsPerEm,i=t,n=A.components,o,r,g;if(Ht.prototype=e,!n)g=new Ht("glyf",A.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),g.step=-1),Jr(A,g,t,i),r=g.gZone;else{var s=e.font;r=[],o=[];for(var a=0;a<n.length;a++){var I=n[a],l=s.glyphs.get(I.glyphIndex);g=new Ht("glyf",l.instructions),exports.DEBUG&&(console.log("---EXEC COMP "+a+"---"),g.step=-1),Jr(l,g,t,i);for(var C=Math.round(I.dx*t),Q=Math.round(I.dy*i),E=g.gZone,f=g.contours,h=0;h<E.length;h++){var u=E[h];u.xTouched=u.yTouched=!1,u.xo=u.x=u.x+C,u.yo=u.y=u.y+Q}var p=r.length;r.push.apply(r,E);for(var c=0;c<f.length;c++)o.push(f[c]+p)}A.instructions&&!g.inhibitGridFit&&(g=new Ht("glyf",A.instructions),g.gZone=g.z0=g.z1=g.z2=r,g.contours=o,r.push(new mt(0,0),new mt(Math.round(A.advanceWidth*t),0)),exports.DEBUG&&(console.log("---EXEC COMPOSITE---"),g.step=-1),ai(g),r.length-=2)}return r};Jr=function(A,e,t,i){for(var n=A.points||[],o=n.length,r=e.gZone=e.z0=e.z1=e.z2=[],g=e.contours=[],s,a=0;a<o;a++)s=n[a],r[a]=new mt(s.x*t,s.y*i,s.lastPointOfContour,s.onCurve);for(var I,l,C=0;C<o;C++)s=r[C],I||(I=s,g.push(C)),s.lastPointOfContour?(s.nextPointOnContour=I,I.prevPointOnContour=s,I=void 0):(l=r[C+1],s.nextPointOnContour=l,l.prevPointOnContour=s);if(!e.inhibitGridFit){if(exports.DEBUG){console.log("PROCESSING GLYPH",e.stack);for(var Q=0;Q<o;Q++)console.log(Q,r[Q].x,r[Q].y)}if(r.push(new mt(0,0),new mt(Math.round(A.advanceWidth*t),0)),ai(e),r.length-=2,exports.DEBUG){console.log("FINISHED GLYPH",e.stack);for(var E=0;E<o;E++)console.log(E,r[E].x,r[E].y)}}};ai=function(A){var e=A.prog;if(e){var t=e.length,i;for(A.ip=0;A.ip<t;A.ip++){if(exports.DEBUG&&A.step++,i=kl[e[A.ip]],!i)throw new Error("unknown instruction: 0x"+Number(e[A.ip]).toString(16));i(A)}}};function Go(A){for(var e=A.tZone=new Array(A.gZone.length),t=0;t<e.length;t++)e[t]=new mt(0,0)}function Rl(A,e){var t=A.prog,i=A.ip,n=1,o;do if(o=t[++i],o===88)n++;else if(o===89)n--;else if(o===64)i+=t[i+1]+1;else if(o===65)i+=2*t[i+1]+1;else if(o>=176&&o<=183)i+=o-176+1;else if(o>=184&&o<=191)i+=(o-184+1)*2;else if(e&&n===1&&o===27)break;while(n>0);A.ip=i}function ua(A,e){exports.DEBUG&&console.log(e.step,"SVTCA["+A.axis+"]"),e.fv=e.pv=e.dpv=A}function ha(A,e){exports.DEBUG&&console.log(e.step,"SPVTCA["+A.axis+"]"),e.pv=e.dpv=A}function fa(A,e){exports.DEBUG&&console.log(e.step,"SFVTCA["+A.axis+"]"),e.fv=A}function da(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];exports.DEBUG&&console.log("SPVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.pv=e.dpv=wn(g,s)}function pa(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];exports.DEBUG&&console.log("SFVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.fv=wn(g,s)}function rk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.pv=A.dpv=wn(i,t)}function gk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.fv=wn(i,t)}function sk(A){var e=A.stack,t=A.pv;exports.DEBUG&&console.log(A.step,"GPV[]"),e.push(t.x*16384),e.push(t.y*16384)}function ak(A){var e=A.stack,t=A.fv;exports.DEBUG&&console.log(A.step,"GFV[]"),e.push(t.x*16384),e.push(t.y*16384)}function Ik(A){A.fv=A.pv,exports.DEBUG&&console.log(A.step,"SFVTPV[]")}function Ck(A){var e=A.stack,t=e.pop(),i=e.pop(),n=e.pop(),o=e.pop(),r=e.pop(),g=A.z0,s=A.z1,a=g[t],I=g[i],l=s[n],C=s[o],Q=A.z2[r];exports.DEBUG&&console.log("ISECT[], ",t,i,n,o,r);var E=a.x,f=a.y,h=I.x,u=I.y,p=l.x,c=l.y,d=C.x,w=C.y,F=(E-h)*(c-w)-(f-u)*(p-d),N=E*u-f*h,G=p*w-c*d;Q.x=(N*(p-d)-G*(E-h))/F,Q.y=(N*(c-w)-G*(f-u))/F}function lk(A){A.rp0=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP0[]",A.rp0)}function Bk(A){A.rp1=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP1[]",A.rp1)}function Qk(A){A.rp2=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SRP2[]",A.rp2)}function ck(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP0[]",e),A.zp0=e,e){case 0:A.tZone||Go(A),A.z0=A.tZone;break;case 1:A.z0=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function Ek(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP1[]",e),A.zp1=e,e){case 0:A.tZone||Go(A),A.z1=A.tZone;break;case 1:A.z1=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function uk(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZP2[]",e),A.zp2=e,e){case 0:A.tZone||Go(A),A.z2=A.tZone;break;case 1:A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function hk(A){var e=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"SZPS[]",e),A.zp0=A.zp1=A.zp2=e,e){case 0:A.tZone||Go(A),A.z0=A.z1=A.z2=A.tZone;break;case 1:A.z0=A.z1=A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function fk(A){A.loop=A.stack.pop(),exports.DEBUG&&console.log(A.step,"SLOOP[]",A.loop)}function dk(A){exports.DEBUG&&console.log(A.step,"RTG[]"),A.round=Sl}function pk(A){exports.DEBUG&&console.log(A.step,"RTHG[]"),A.round=tk}function mk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SMD[]",e),A.minDis=e/64}function yk(A){exports.DEBUG&&console.log(A.step,"ELSE[]"),Rl(A,!1)}function wk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"JMPR[]",e),A.ip+=e-1}function Dk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCVTCI[]",e),A.cvCutIn=e/64}function kk(A){var e=A.stack;exports.DEBUG&&console.log(A.step,"DUP[]"),e.push(e[e.length-1])}function $o(A){exports.DEBUG&&console.log(A.step,"POP[]"),A.stack.pop()}function vk(A){exports.DEBUG&&console.log(A.step,"CLEAR[]"),A.stack.length=0}function Fk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SWAP[]"),e.push(t),e.push(i)}function Sk(A){var e=A.stack;exports.DEBUG&&console.log(A.step,"DEPTH[]"),e.push(e.length)}function bk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"LOOPCALL[]",t,i);var n=A.ip,o=A.prog;A.prog=A.funcs[t];for(var r=0;r<i;r++)ai(A),exports.DEBUG&&console.log(++A.step,r+1<i?"next loopcall":"done loopcall",r);A.ip=n,A.prog=o}function Rk(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"CALL[]",e);var t=A.ip,i=A.prog;A.prog=A.funcs[e],ai(A),A.ip=t,A.prog=i,exports.DEBUG&&console.log(++A.step,"returning from",e)}function Nk(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"CINDEX[]",t),e.push(e[e.length-t])}function Gk(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"MINDEX[]",t),e.push(e.splice(e.length-t,1)[0])}function Lk(A){if(A.env!=="fpgm")throw new Error("FDEF not allowed here");var e=A.stack,t=A.prog,i=A.ip,n=e.pop(),o=i;for(exports.DEBUG&&console.log(A.step,"FDEF[]",n);t[++i]!==45;);A.ip=i,A.funcs[n]=t.slice(o+1,i)}function ma(A,e){var t=e.stack.pop(),i=e.z0[t],n=e.fv,o=e.pv;exports.DEBUG&&console.log(e.step,"MDAP["+A+"]",t);var r=o.distance(i,ln);A&&(r=e.round(r)),n.setRelative(i,ln,r,o),n.touch(i),e.rp0=e.rp1=t}function ya(A,e){var t=e.z2,i=t.length-2,n,o,r;exports.DEBUG&&console.log(e.step,"IUP["+A.axis+"]");for(var g=0;g<i;g++)n=t[g],!A.touched(n)&&(o=n.prevTouched(A),o!==n&&(r=n.nextTouched(A),o===r&&A.setRelative(n,n,A.distance(o,o,!1,!0),A,!0),A.interpolate(n,o,r,A)))}function wa(A,e){for(var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=e.loop,s=e.z2;g--;){var a=t.pop(),I=s[a],l=r.distance(n,n,!1,!0);o.setRelative(I,I,l,r),o.touch(I),exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-g)+": ":"")+"SHP["+(A?"rp1":"rp2")+"]",a)}e.loop=1}function Da(A,e){var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=t.pop(),s=e.z2[e.contours[g]],a=s;exports.DEBUG&&console.log(e.step,"SHC["+A+"]",g);var I=r.distance(n,n,!1,!0);do a!==n&&o.setRelative(a,a,I,r),a=a.nextPointOnContour;while(a!==s)}function ka(A,e){var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=t.pop();exports.DEBUG&&console.log(e.step,"SHZ["+A+"]",g);var s;switch(g){case 0:s=e.tZone;break;case 1:s=e.gZone;break;default:throw new Error("Invalid zone")}for(var a,I=r.distance(n,n,!1,!0),l=s.length-2,C=0;C<l;C++)a=s[C],o.setRelative(a,a,I,r)}function Uk(A){for(var e=A.stack,t=A.loop,i=A.fv,n=e.pop()/64,o=A.z2;t--;){var r=e.pop(),g=o[r];exports.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-t)+": ":"")+"SHPIX[]",r,n),i.setRelative(g,g,n),i.touch(g)}A.loop=1}function Mk(A){for(var e=A.stack,t=A.rp1,i=A.rp2,n=A.loop,o=A.z0[t],r=A.z1[i],g=A.fv,s=A.dpv,a=A.z2;n--;){var I=e.pop(),l=a[I];exports.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-n)+": ":"")+"IP[]",I,t,"<->",i),g.interpolate(l,o,r,s),g.touch(l)}A.loop=1}function va(A,e){var t=e.stack,i=t.pop()/64,n=t.pop(),o=e.z1[n],r=e.z0[e.rp0],g=e.fv,s=e.pv;g.setRelative(o,r,i,s),g.touch(o),exports.DEBUG&&console.log(e.step,"MSIRP["+A+"]",i,n),e.rp1=e.rp0,e.rp2=n,A&&(e.rp0=n)}function xk(A){for(var e=A.stack,t=A.rp0,i=A.z0[t],n=A.loop,o=A.fv,r=A.pv,g=A.z1;n--;){var s=e.pop(),a=g[s];exports.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-n)+": ":"")+"ALIGNRP[]",s),o.setRelative(a,i,0,r),o.touch(a)}A.loop=1}function Jk(A){exports.DEBUG&&console.log(A.step,"RTDG[]"),A.round=ek}function Fa(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z0[n],r=e.fv,g=e.pv,s=e.cvt[i];exports.DEBUG&&console.log(e.step,"MIAP["+A+"]",i,"(",s,")",n);var a=g.distance(o,ln);A&&(Math.abs(a-s)<e.cvCutIn&&(a=s),a=e.round(a)),r.setRelative(o,ln,a,g),e.zp0===0&&(o.xo=o.x,o.yo=o.y),r.touch(o),e.rp0=e.rp1=n}function Tk(A){var e=A.prog,t=A.ip,i=A.stack,n=e[++t];exports.DEBUG&&console.log(A.step,"NPUSHB[]",n);for(var o=0;o<n;o++)i.push(e[++t]);A.ip=t}function Hk(A){var e=A.ip,t=A.prog,i=A.stack,n=t[++e];exports.DEBUG&&console.log(A.step,"NPUSHW[]",n);for(var o=0;o<n;o++){var r=t[++e]<<8|t[++e];r&32768&&(r=-((r^65535)+1)),i.push(r)}A.ip=e}function Yk(A){var e=A.stack,t=A.store;t||(t=A.store=[]);var i=e.pop(),n=e.pop();exports.DEBUG&&console.log(A.step,"WS",i,n),t[n]=i}function _k(A){var e=A.stack,t=A.store,i=e.pop();exports.DEBUG&&console.log(A.step,"RS",i);var n=t&&t[i]||0;e.push(n)}function Kk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"WCVTP",t,i),A.cvt[i]=t/64}function Pk(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"RCVT",t),e.push(A.cvt[t]*64)}function Sa(A,e){var t=e.stack,i=t.pop(),n=e.z2[i];exports.DEBUG&&console.log(e.step,"GC["+A+"]",i),t.push(e.dpv.distance(n,ln,A,!1)*64)}function ba(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z1[i],r=e.z0[n],g=e.dpv.distance(r,o,A,A);exports.DEBUG&&console.log(e.step,"MD["+A+"]",i,n,"->",g),e.stack.push(Math.round(g*64))}function Ok(A){exports.DEBUG&&console.log(A.step,"MPPEM[]"),A.stack.push(A.ppem)}function Vk(A){exports.DEBUG&&console.log(A.step,"FLIPON[]"),A.autoFlip=!0}function Wk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"LT[]",t,i),e.push(i<t?1:0)}function qk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"LTEQ[]",t,i),e.push(i<=t?1:0)}function jk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"GT[]",t,i),e.push(i>t?1:0)}function Zk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"GTEQ[]",t,i),e.push(i>=t?1:0)}function Xk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"EQ[]",t,i),e.push(t===i?1:0)}function zk(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"NEQ[]",t,i),e.push(t!==i?1:0)}function $k(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"ODD[]",t),e.push(Math.trunc(t)%2?1:0)}function Av(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"EVEN[]",t),e.push(Math.trunc(t)%2?0:1)}function ev(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"IF[]",e),e||(Rl(A,!0),exports.DEBUG&&console.log(A.step,"EIF[]"))}function tv(A){exports.DEBUG&&console.log(A.step,"EIF[]")}function iv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"AND[]",t,i),e.push(t&&i?1:0)}function nv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"OR[]",t,i),e.push(t||i?1:0)}function ov(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"NOT[]",t),e.push(t?0:1)}function Ar(A,e){var t=e.stack,i=t.pop(),n=e.fv,o=e.pv,r=e.ppem,g=e.deltaBase+(A-1)*16,s=e.deltaShift,a=e.z0;exports.DEBUG&&console.log(e.step,"DELTAP["+A+"]",i,t);for(var I=0;I<i;I++){var l=t.pop(),C=t.pop(),Q=g+((C&240)>>4);if(Q===r){var E=(C&15)-8;E>=0&&E++,exports.DEBUG&&console.log(e.step,"DELTAPFIX",l,"by",E*s);var f=a[l];n.setRelative(f,f,E*s,o)}}}function rv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"SDB[]",t),A.deltaBase=t}function gv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"SDS[]",t),A.deltaShift=Math.pow(.5,t)}function sv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"ADD[]",t,i),e.push(i+t)}function av(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"SUB[]",t,i),e.push(i-t)}function Iv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"DIV[]",t,i),e.push(i*64/t)}function Cv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MUL[]",t,i),e.push(i*t/64)}function lv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"ABS[]",t),e.push(Math.abs(t))}function Bv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"NEG[]",t),e.push(-t)}function Qv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"FLOOR[]",t),e.push(Math.floor(t/64)*64)}function cv(A){var e=A.stack,t=e.pop();exports.DEBUG&&console.log(A.step,"CEILING[]",t),e.push(Math.ceil(t/64)*64)}function Mn(A,e){var t=e.stack,i=t.pop();exports.DEBUG&&console.log(e.step,"ROUND[]"),t.push(e.round(i/64)*64)}function Ev(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"WCVTF[]",t,i),A.cvt[i]=t*A.ppem/A.font.unitsPerEm}function er(A,e){var t=e.stack,i=t.pop(),n=e.ppem,o=e.deltaBase+(A-1)*16,r=e.deltaShift;exports.DEBUG&&console.log(e.step,"DELTAC["+A+"]",i,t);for(var g=0;g<i;g++){var s=t.pop(),a=t.pop(),I=o+((a&240)>>4);if(I===n){var l=(a&15)-8;l>=0&&l++;var C=l*r;exports.DEBUG&&console.log(e.step,"DELTACFIX",s,"by",C),e.cvt[s]+=C}}}function uv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SROUND[]",e),A.round=bl;var t;switch(e&192){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function hv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"S45ROUND[]",e),A.round=bl;var t;switch(e&192){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function fv(A){exports.DEBUG&&console.log(A.step,"ROFF[]"),A.round=Ak}function dv(A){exports.DEBUG&&console.log(A.step,"RUTG[]"),A.round=ik}function pv(A){exports.DEBUG&&console.log(A.step,"RDTG[]"),A.round=nk}function mv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCANCTRL[]",e)}function Ra(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];exports.DEBUG&&console.log(e.step,"SDPVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.dpv=wn(g,s)}function yv(A){var e=A.stack,t=e.pop(),i=0;exports.DEBUG&&console.log(A.step,"GETINFO[]",t),t&1&&(i=35),t&32&&(i|=4096),e.push(i)}function wv(A){var e=A.stack,t=e.pop(),i=e.pop(),n=e.pop();exports.DEBUG&&console.log(A.step,"ROLL[]"),e.push(i),e.push(t),e.push(n)}function Dv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MAX[]",t,i),e.push(Math.max(i,t))}function kv(A){var e=A.stack,t=e.pop(),i=e.pop();exports.DEBUG&&console.log(A.step,"MIN[]",t,i),e.push(Math.min(i,t))}function vv(A){var e=A.stack.pop();exports.DEBUG&&console.log(A.step,"SCANTYPE[]",e)}function Fv(A){var e=A.stack.pop(),t=A.stack.pop();switch(exports.DEBUG&&console.log(A.step,"INSTCTRL[]",e,t),e){case 1:A.inhibitGridFit=!!t;return;case 2:A.ignoreCvt=!!t;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Rt(A,e){var t=e.stack,i=e.prog,n=e.ip;exports.DEBUG&&console.log(e.step,"PUSHB["+A+"]");for(var o=0;o<A;o++)t.push(i[++n]);e.ip=n}function Nt(A,e){var t=e.ip,i=e.prog,n=e.stack;exports.DEBUG&&console.log(e.ip,"PUSHW["+A+"]");for(var o=0;o<A;o++){var r=i[++t]<<8|i[++t];r&32768&&(r=-((r^65535)+1)),n.push(r)}e.ip=t}function lA(A,e,t,i,n,o){var r=o.stack,g=A&&r.pop(),s=r.pop(),a=o.rp0,I=o.z0[a],l=o.z1[s],C=o.minDis,Q=o.fv,E=o.dpv,f,h,u,p;h=f=E.distance(l,I,!0,!0),u=h>=0?1:-1,h=Math.abs(h),A&&(p=o.cvt[g],i&&Math.abs(h-p)<o.cvCutIn&&(h=p)),t&&h<C&&(h=C),i&&(h=o.round(h)),Q.setRelative(l,I,u*h,E),Q.touch(l),exports.DEBUG&&console.log(o.step,(A?"MIRP[":"MDRP[")+(e?"M":"m")+(t?">":"_")+(i?"R":"_")+(n===0?"Gr":n===1?"Bl":n===2?"Wh":"")+"]",A?g+"("+o.cvt[g]+","+p+")":"",s,"(d =",f,"->",u*h,")"),o.rp1=o.rp0,o.rp2=s,e&&(o.rp0=s)}kl=[ua.bind(void 0,pt),ua.bind(void 0,nt),ha.bind(void 0,pt),ha.bind(void 0,nt),fa.bind(void 0,pt),fa.bind(void 0,nt),da.bind(void 0,0),da.bind(void 0,1),pa.bind(void 0,0),pa.bind(void 0,1),rk,gk,sk,ak,Ik,Ck,lk,Bk,Qk,ck,Ek,uk,hk,fk,dk,pk,mk,yk,wk,Dk,void 0,void 0,kk,$o,vk,Fk,Sk,Nk,Gk,void 0,void 0,void 0,bk,Rk,Lk,void 0,ma.bind(void 0,0),ma.bind(void 0,1),ya.bind(void 0,pt),ya.bind(void 0,nt),wa.bind(void 0,0),wa.bind(void 0,1),Da.bind(void 0,0),Da.bind(void 0,1),ka.bind(void 0,0),ka.bind(void 0,1),Uk,Mk,va.bind(void 0,0),va.bind(void 0,1),xk,Jk,Fa.bind(void 0,0),Fa.bind(void 0,1),Tk,Hk,Yk,_k,Kk,Pk,Sa.bind(void 0,0),Sa.bind(void 0,1),void 0,ba.bind(void 0,0),ba.bind(void 0,1),Ok,void 0,Vk,void 0,void 0,Wk,qk,jk,Zk,Xk,zk,$k,Av,ev,tv,iv,nv,ov,Ar.bind(void 0,1),rv,gv,sv,av,Iv,Cv,lv,Bv,Qv,cv,Mn.bind(void 0,0),Mn.bind(void 0,1),Mn.bind(void 0,2),Mn.bind(void 0,3),void 0,void 0,void 0,void 0,Ev,Ar.bind(void 0,2),Ar.bind(void 0,3),er.bind(void 0,1),er.bind(void 0,2),er.bind(void 0,3),uv,hv,void 0,void 0,fv,void 0,dv,pv,$o,$o,void 0,void 0,void 0,void 0,void 0,mv,Ra.bind(void 0,0),Ra.bind(void 0,1),yv,void 0,wv,Dv,kv,vv,Fv,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Rt.bind(void 0,1),Rt.bind(void 0,2),Rt.bind(void 0,3),Rt.bind(void 0,4),Rt.bind(void 0,5),Rt.bind(void 0,6),Rt.bind(void 0,7),Rt.bind(void 0,8),Nt.bind(void 0,1),Nt.bind(void 0,2),Nt.bind(void 0,3),Nt.bind(void 0,4),Nt.bind(void 0,5),Nt.bind(void 0,6),Nt.bind(void 0,7),Nt.bind(void 0,8),lA.bind(void 0,0,0,0,0,0),lA.bind(void 0,0,0,0,0,1),lA.bind(void 0,0,0,0,0,2),lA.bind(void 0,0,0,0,0,3),lA.bind(void 0,0,0,0,1,0),lA.bind(void 0,0,0,0,1,1),lA.bind(void 0,0,0,0,1,2),lA.bind(void 0,0,0,0,1,3),lA.bind(void 0,0,0,1,0,0),lA.bind(void 0,0,0,1,0,1),lA.bind(void 0,0,0,1,0,2),lA.bind(void 0,0,0,1,0,3),lA.bind(void 0,0,0,1,1,0),lA.bind(void 0,0,0,1,1,1),lA.bind(void 0,0,0,1,1,2),lA.bind(void 0,0,0,1,1,3),lA.bind(void 0,0,1,0,0,0),lA.bind(void 0,0,1,0,0,1),lA.bind(void 0,0,1,0,0,2),lA.bind(void 0,0,1,0,0,3),lA.bind(void 0,0,1,0,1,0),lA.bind(void 0,0,1,0,1,1),lA.bind(void 0,0,1,0,1,2),lA.bind(void 0,0,1,0,1,3),lA.bind(void 0,0,1,1,0,0),lA.bind(void 0,0,1,1,0,1),lA.bind(void 0,0,1,1,0,2),lA.bind(void 0,0,1,1,0,3),lA.bind(void 0,0,1,1,1,0),lA.bind(void 0,0,1,1,1,1),lA.bind(void 0,0,1,1,1,2),lA.bind(void 0,0,1,1,1,3),lA.bind(void 0,1,0,0,0,0),lA.bind(void 0,1,0,0,0,1),lA.bind(void 0,1,0,0,0,2),lA.bind(void 0,1,0,0,0,3),lA.bind(void 0,1,0,0,1,0),lA.bind(void 0,1,0,0,1,1),lA.bind(void 0,1,0,0,1,2),lA.bind(void 0,1,0,0,1,3),lA.bind(void 0,1,0,1,0,0),lA.bind(void 0,1,0,1,0,1),lA.bind(void 0,1,0,1,0,2),lA.bind(void 0,1,0,1,0,3),lA.bind(void 0,1,0,1,1,0),lA.bind(void 0,1,0,1,1,1),lA.bind(void 0,1,0,1,1,2),lA.bind(void 0,1,0,1,1,3),lA.bind(void 0,1,1,0,0,0),lA.bind(void 0,1,1,0,0,1),lA.bind(void 0,1,1,0,0,2),lA.bind(void 0,1,1,0,0,3),lA.bind(void 0,1,1,0,1,0),lA.bind(void 0,1,1,0,1,1),lA.bind(void 0,1,1,0,1,2),lA.bind(void 0,1,1,0,1,3),lA.bind(void 0,1,1,1,0,0),lA.bind(void 0,1,1,1,0,1),lA.bind(void 0,1,1,1,0,2),lA.bind(void 0,1,1,1,0,3),lA.bind(void 0,1,1,1,1,0),lA.bind(void 0,1,1,1,1,1),lA.bind(void 0,1,1,1,1,2),lA.bind(void 0,1,1,1,1,3)];function Mi(A){this.char=A,this.state={},this.activeState=null}function mg(A,e,t){this.contextName=t,this.startIndex=A,this.endOffset=e}function Sv(A,e,t){this.contextName=A,this.openRange=null,this.ranges=[],this.checkStart=e,this.checkEnd=t}function Ve(A,e){this.context=A,this.index=e,this.length=A.length,this.current=A[e],this.backtrack=A.slice(0,e),this.lookahead=A.slice(e+1)}function Lo(A){this.eventId=A,this.subscribers=[]}function bv(A){var e=this,t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(function(n){Object.defineProperty(e.events,n,{value:new Lo(n)})}),A&&t.forEach(function(n){var o=A[n];typeof o=="function"&&e.events[n].subscribe(o)});var i=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];i.forEach(function(n){e.events[n].subscribe(e.updateContextsRanges)})}function $A(A){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],bv.call(this,A)}Mi.prototype.setState=function(A,e){return this.state[A]=e,this.activeState={key:A,value:this.state[A]},this.activeState};Mi.prototype.getState=function(A){return this.state[A]||null};$A.prototype.inboundIndex=function(A){return A>=0&&A<this.tokens.length};$A.prototype.composeRUD=function(A){var e=this,t=!0,i=A.map(function(o){return e[o[0]].apply(e,o.slice(1).concat(t))}),n=function(o){return typeof o=="object"&&o.hasOwnProperty("FAIL")};if(i.every(n))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:i.filter(n)};this.dispatch("composeRUD",[i.filter(function(o){return!n(o)})])};$A.prototype.replaceRange=function(A,e,t,i){e=e!==null?e:this.tokens.length;var n=t.every(function(r){return r instanceof Mi});if(!isNaN(A)&&this.inboundIndex(A)&&n){var o=this.tokens.splice.apply(this.tokens,[A,e].concat(t));return i||this.dispatch("replaceToken",[A,e,t]),[o,t]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};$A.prototype.replaceToken=function(A,e,t){if(!isNaN(A)&&this.inboundIndex(A)&&e instanceof Mi){var i=this.tokens.splice(A,1,e);return t||this.dispatch("replaceToken",[A,e]),[i[0],e]}else return{FAIL:"replaceToken: invalid token or index."}};$A.prototype.removeRange=function(A,e,t){e=isNaN(e)?this.tokens.length:e;var i=this.tokens.splice(A,e);return t||this.dispatch("removeRange",[i,A,e]),i};$A.prototype.removeToken=function(A,e){if(!isNaN(A)&&this.inboundIndex(A)){var t=this.tokens.splice(A,1);return e||this.dispatch("removeToken",[t,A]),t}else return{FAIL:"removeToken: invalid token index."}};$A.prototype.insertToken=function(A,e,t){var i=A.every(function(n){return n instanceof Mi});return i?(this.tokens.splice.apply(this.tokens,[e,0].concat(A)),t||this.dispatch("insertToken",[A,e]),A):{FAIL:"insertToken: invalid token(s)."}};$A.prototype.registerModifier=function(A,e,t){this.events.newToken.subscribe(function(i,n){var o=[i,n],r=e===null||e.apply(this,o)===!0,g=[i,n];if(r){var s=t.apply(this,g);i.setState(A,s)}}),this.registeredModifiers.push(A)};Lo.prototype.subscribe=function(A){return typeof A=="function"?this.subscribers.push(A)-1:{FAIL:"invalid '"+this.eventId+"' event handler"}};Lo.prototype.unsubscribe=function(A){this.subscribers.splice(A,1)};Ve.prototype.setCurrentIndex=function(A){this.index=A,this.current=this.context[A],this.backtrack=this.context.slice(0,A),this.lookahead=this.context.slice(A+1)};Ve.prototype.get=function(A){switch(!0){case A===0:return this.current;case(A<0&&Math.abs(A)<=this.backtrack.length):return this.backtrack.slice(A)[0];case(A>0&&A<=this.lookahead.length):return this.lookahead[A-1];default:return null}};$A.prototype.rangeToText=function(A){if(A instanceof mg)return this.getRangeTokens(A).map(function(e){return e.char}).join("")};$A.prototype.getText=function(){return this.tokens.map(function(A){return A.char}).join("")};$A.prototype.getContext=function(A){var e=this.registeredContexts[A];return e||null};$A.prototype.on=function(A,e){var t=this.events[A];return t?t.subscribe(e):null};$A.prototype.dispatch=function(A,e){var t=this,i=this.events[A];i instanceof Lo&&i.subscribers.forEach(function(n){n.apply(t,e||[])})};$A.prototype.registerContextChecker=function(A,e,t){if(this.getContext(A))return{FAIL:"context name '"+A+"' is already registered."};if(typeof e!="function")return{FAIL:"missing context start check."};if(typeof t!="function")return{FAIL:"missing context end check."};var i=new Sv(A,e,t);return this.registeredContexts[A]=i,this.contextCheckers.push(i),i};$A.prototype.getRangeTokens=function(A){var e=A.startIndex+A.endOffset;return[].concat(this.tokens.slice(A.startIndex,e))};$A.prototype.getContextRanges=function(A){var e=this.getContext(A);return e?e.ranges:{FAIL:"context checker '"+A+"' is not registered."}};$A.prototype.resetContextsRanges=function(){var A=this.registeredContexts;for(var e in A)if(A.hasOwnProperty(e)){var t=A[e];t.ranges=[]}};$A.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var A=this.tokens.map(function(i){return i.char}),e=0;e<A.length;e++){var t=new Ve(A,e);this.runContextCheck(t)}this.dispatch("updateContextsRanges",[this.registeredContexts])};$A.prototype.setEndOffset=function(A,e){var t=this.getContext(e).openRange.startIndex,i=new mg(t,A,e),n=this.getContext(e).ranges;return i.rangeId=e+"."+n.length,n.push(i),this.getContext(e).openRange=null,i};$A.prototype.runContextCheck=function(A){var e=this,t=A.index;this.contextCheckers.forEach(function(i){var n=i.contextName,o=e.getContext(n).openRange;if(!o&&i.checkStart(A)&&(o=new mg(t,null,n),e.getContext(n).openRange=o,e.dispatch("contextStart",[n,t])),o&&i.checkEnd(A)){var r=t-o.startIndex+1,g=e.setEndOffset(r,n);e.dispatch("contextEnd",[n,g])}})};$A.prototype.tokenize=function(A){this.tokens=[],this.resetContextsRanges();var e=Array.from(A);this.dispatch("start");for(var t=0;t<e.length;t++){var i=e[t],n=new Ve(e,t);this.dispatch("next",[n]),this.runContextCheck(n);var o=new Mi(i);this.tokens.push(o),this.dispatch("newToken",[o,n])}return this.dispatch("end",[this.tokens]),this.tokens};function _t(A){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(A)}function Nl(A){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(A)}function Ot(A){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(A)}function Wn(A){return/[A-z]/.test(A)}function Rv(A){return/\s/.test(A)}function Le(A){this.font=A,this.features={}}function ni(A){this.id=A.id,this.tag=A.tag,this.substitution=A.substitution}function Dn(A,e){if(!A)return-1;switch(e.format){case 1:return e.glyphs.indexOf(A);case 2:for(var t=e.ranges,i=0;i<t.length;i++){var n=t[i];if(A>=n.start&&A<=n.end){var o=A-n.start;return n.index+o}}break;default:return-1}return-1}function Nv(A,e){var t=Dn(A,e.coverage);return t===-1?null:A+e.deltaGlyphId}function Gv(A,e){var t=Dn(A,e.coverage);return t===-1?null:e.substitute[t]}function tr(A,e){for(var t=[],i=0;i<A.length;i++){var n=A[i],o=e.current;o=Array.isArray(o)?o[0]:o;var r=Dn(o,n);r!==-1&&t.push(r)}return t.length!==A.length?-1:t}function Lv(A,e){var t=e.inputCoverage.length+e.lookaheadCoverage.length+e.backtrackCoverage.length;if(A.context.length<t)return[];var i=tr(e.inputCoverage,A);if(i===-1)return[];var n=e.inputCoverage.length-1;if(A.lookahead.length<e.lookaheadCoverage.length)return[];for(var o=A.lookahead.slice(n);o.length&&Ot(o[0].char);)o.shift();var r=new Ve(o,0),g=tr(e.lookaheadCoverage,r),s=[].concat(A.backtrack);for(s.reverse();s.length&&Ot(s[0].char);)s.shift();if(s.length<e.backtrackCoverage.length)return[];var a=new Ve(s,0),I=tr(e.backtrackCoverage,a),l=i.length===e.inputCoverage.length&&g.length===e.lookaheadCoverage.length&&I.length===e.backtrackCoverage.length,C=[];if(l)for(var Q=0;Q<e.lookupRecords.length;Q++)for(var E=e.lookupRecords[Q],f=E.lookupListIndex,h=this.getLookupByIndex(f),u=0;u<h.subtables.length;u++){var p=h.subtables[u],c=this.getLookupMethod(h,p),d=this.getSubstitutionType(h,p);if(d==="12")for(var w=0;w<i.length;w++){var F=A.get(w),N=c(F);N&&C.push(N)}}return C}function Uv(A,e){var t=A.current,i=Dn(t,e.coverage);if(i===-1)return null;for(var n,o=e.ligatureSets[i],r=0;r<o.length;r++){n=o[r];for(var g=0;g<n.components.length;g++){var s=A.lookahead[g],a=n.components[g];if(s!==a)break;if(g===n.components.length-1)return n}}return null}function Mv(A,e){var t=Dn(A,e.coverage);return t===-1?null:e.sequences[t]}Le.prototype.getDefaultScriptFeaturesIndexes=function(){for(var A=this.font.tables.gsub.scripts,e=0;e<A.length;e++){var t=A[e];if(t.tag==="DFLT")return t.script.defaultLangSys.featureIndexes}return[]};Le.prototype.getScriptFeaturesIndexes=function(A){var e=this.font.tables;if(!e.gsub)return[];if(!A)return this.getDefaultScriptFeaturesIndexes();for(var t=this.font.tables.gsub.scripts,i=0;i<t.length;i++){var n=t[i];if(n.tag===A&&n.script.defaultLangSys)return n.script.defaultLangSys.featureIndexes;var o=n.langSysRecords;if(o)for(var r=0;r<o.length;r++){var g=o[r];if(g.tag===A){var s=g.langSys;return s.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};Le.prototype.mapTagsToFeatures=function(A,e){for(var t={},i=0;i<A.length;i++){var n=A[i].tag,o=A[i].feature;t[n]=o}this.features[e].tags=t};Le.prototype.getScriptFeatures=function(A){var e=this.features[A];if(this.features.hasOwnProperty(A))return e;var t=this.getScriptFeaturesIndexes(A);if(!t)return null;var i=this.font.tables.gsub;return e=t.map(function(n){return i.features[n]}),this.features[A]=e,this.mapTagsToFeatures(e,A),e};Le.prototype.getSubstitutionType=function(A,e){var t=A.lookupType.toString(),i=e.substFormat.toString();return t+i};Le.prototype.getLookupMethod=function(A,e){var t=this,i=this.getSubstitutionType(A,e);switch(i){case"11":return function(n){return Nv.apply(t,[n,e])};case"12":return function(n){return Gv.apply(t,[n,e])};case"63":return function(n){return Lv.apply(t,[n,e])};case"41":return function(n){return Uv.apply(t,[n,e])};case"21":return function(n){return Mv.apply(t,[n,e])};default:throw new Error("lookupType: "+A.lookupType+" - substFormat: "+e.substFormat+" is not yet supported")}};Le.prototype.lookupFeature=function(A){var e=A.contextParams,t=e.index,i=this.getFeature({tag:A.tag,script:A.script});if(!i)return new Error("font '"+this.font.names.fullName.en+"' doesn't support feature '"+A.tag+"' for script '"+A.script+"'.");for(var n=this.getFeatureLookups(i),o=[].concat(e.context),r=0;r<n.length;r++)for(var g=n[r],s=this.getLookupSubtables(g),a=0;a<s.length;a++){var I=s[a],l=this.getSubstitutionType(g,I),C=this.getLookupMethod(g,I),Q=void 0;switch(l){case"11":Q=C(e.current),Q&&o.splice(t,1,new ni({id:11,tag:A.tag,substitution:Q}));break;case"12":Q=C(e.current),Q&&o.splice(t,1,new ni({id:12,tag:A.tag,substitution:Q}));break;case"63":Q=C(e),Array.isArray(Q)&&Q.length&&o.splice(t,1,new ni({id:63,tag:A.tag,substitution:Q}));break;case"41":Q=C(e),Q&&o.splice(t,1,new ni({id:41,tag:A.tag,substitution:Q}));break;case"21":Q=C(e.current),Q&&o.splice(t,1,new ni({id:21,tag:A.tag,substitution:Q}));break}e=new Ve(o,t),!(Array.isArray(Q)&&!Q.length)&&(Q=null)}return o.length?o:null};Le.prototype.supports=function(A){if(!A.script)return!1;this.getScriptFeatures(A.script);var e=this.features.hasOwnProperty(A.script);if(!A.tag)return e;var t=this.features[A.script].some(function(i){return i.tag===A.tag});return e&&t};Le.prototype.getLookupSubtables=function(A){return A.subtables||null};Le.prototype.getLookupByIndex=function(A){var e=this.font.tables.gsub.lookups;return e[A]||null};Le.prototype.getFeatureLookups=function(A){return A.lookupListIndexes.map(this.getLookupByIndex.bind(this))};Le.prototype.getFeature=function(e){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(e.script)||this.getScriptFeatures(e.script);var t=this.features[e.script];return t?t.tags[e.tag]?this.features[e.script].tags[e.tag]:null:{FAIL:"No feature for script "+e.script}};function xv(A){var e=A.current,t=A.get(-1);return t===null&&_t(e)||!_t(t)&&_t(e)}function Jv(A){var e=A.get(1);return e===null||!_t(e)}var Tv={startCheck:xv,endCheck:Jv};function Hv(A){var e=A.current,t=A.get(-1);return(_t(e)||Ot(e))&&!_t(t)}function Yv(A){var e=A.get(1);switch(!0){case e===null:return!0;case(!_t(e)&&!Ot(e)):var t=Rv(e);if(!t)return!0;if(t){var i=!1;if(i=A.lookahead.some(function(n){return _t(n)||Ot(n)}),!i)return!0}break;default:return!1}}var _v={startCheck:Hv,endCheck:Yv};function Kv(A,e,t){e[t].setState(A.tag,A.substitution)}function Pv(A,e,t){e[t].setState(A.tag,A.substitution)}function Ov(A,e,t){A.substitution.forEach(function(i,n){var o=e[t+n];o.setState(A.tag,i)})}function Vv(A,e,t){var i=e[t];i.setState(A.tag,A.substitution.ligGlyph);for(var n=A.substitution.components.length,o=0;o<n;o++)i=e[t+o+1],i.setState("deleted",!0)}var Na={11:Kv,12:Pv,63:Ov,41:Vv};function yg(A,e,t){A instanceof ni&&Na[A.id]&&Na[A.id](A,e,t)}function Wv(A){for(var e=[].concat(A.backtrack),t=e.length-1;t>=0;t--){var i=e[t],n=Nl(i),o=Ot(i);if(!n&&!o)return!0;if(n)return!1}return!1}function qv(A){if(Nl(A.current))return!1;for(var e=0;e<A.lookahead.length;e++){var t=A.lookahead[e],i=Ot(t);if(!i)return!0}return!1}function jv(A){var e=this,t="arab",i=this.featuresTags[t],n=this.tokenizer.getRangeTokens(A);if(n.length!==1){var o=new Ve(n.map(function(g){return g.getState("glyphIndex")}),0),r=new Ve(n.map(function(g){return g.char}),0);n.forEach(function(g,s){if(!Ot(g.char)){o.setCurrentIndex(s),r.setCurrentIndex(s);var a=0;Wv(r)&&(a|=1),qv(r)&&(a|=2);var I;switch(a){case 1:I="fina";break;case 2:I="init";break;case 3:I="medi";break}if(i.indexOf(I)!==-1){var l=e.query.lookupFeature({tag:I,script:t,contextParams:o});if(l instanceof Error)return console.info(l.message);l.forEach(function(C,Q){C instanceof ni&&(yg(C,n,Q),o.context[Q]=C.substitution)})}}})}}function Ga(A,e){var t=A.map(function(i){return i.activeState.value});return new Ve(t,0)}function Zv(A){var e=this,t="arab",i=this.tokenizer.getRangeTokens(A),n=Ga(i);n.context.forEach(function(o,r){n.setCurrentIndex(r);var g=e.query.lookupFeature({tag:"rlig",script:t,contextParams:n});g.length&&(g.forEach(function(s){return yg(s,i,r)}),n=Ga(i))})}function Xv(A){var e=A.current,t=A.get(-1);return t===null&&Wn(e)||!Wn(t)&&Wn(e)}function zv(A){var e=A.get(1);return e===null||!Wn(e)}var $v={startCheck:Xv,endCheck:zv};function La(A,e){var t=A.map(function(i){return i.activeState.value});return new Ve(t,0)}function AF(A){var e=this,t="latn",i=this.tokenizer.getRangeTokens(A),n=La(i);n.context.forEach(function(o,r){n.setCurrentIndex(r);var g=e.query.lookupFeature({tag:"liga",script:t,contextParams:n});g.length&&(g.forEach(function(s){return yg(s,i,r)}),n=La(i))})}function Ze(A){this.baseDir=A||"ltr",this.tokenizer=new $A,this.featuresTags={}}Ze.prototype.setText=function(A){this.text=A};Ze.prototype.contextChecks={latinWordCheck:$v,arabicWordCheck:Tv,arabicSentenceCheck:_v};function ir(A){var e=this.contextChecks[A+"Check"];return this.tokenizer.registerContextChecker(A,e.startCheck,e.endCheck)}function eF(){return ir.call(this,"latinWord"),ir.call(this,"arabicWord"),ir.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function tF(){var A=this,e=this.tokenizer.getContextRanges("arabicSentence");e.forEach(function(t){var i=A.tokenizer.getRangeTokens(t);A.tokenizer.replaceRange(t.startIndex,t.endOffset,i.reverse())})}Ze.prototype.registerFeatures=function(A,e){var t=this,i=e.filter(function(n){return t.query.supports({script:A,tag:n})});this.featuresTags.hasOwnProperty(A)?this.featuresTags[A]=this.featuresTags[A].concat(i):this.featuresTags[A]=i};Ze.prototype.applyFeatures=function(A,e){if(!A)throw new Error("No valid font was provided to apply features");this.query||(this.query=new Le(A));for(var t=0;t<e.length;t++){var i=e[t];this.query.supports({script:i.script})&&this.registerFeatures(i.script,i.tags)}};Ze.prototype.registerModifier=function(A,e,t){this.tokenizer.registerModifier(A,e,t)};function wg(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function iF(){var A=this,e="arab";if(this.featuresTags.hasOwnProperty(e)){wg.call(this);var t=this.tokenizer.getContextRanges("arabicWord");t.forEach(function(i){jv.call(A,i)})}}function nF(){var A=this,e="arab";if(this.featuresTags.hasOwnProperty(e)){var t=this.featuresTags[e];if(t.indexOf("rlig")!==-1){wg.call(this);var i=this.tokenizer.getContextRanges("arabicWord");i.forEach(function(n){Zv.call(A,n)})}}}function oF(){var A=this,e="latn";if(this.featuresTags.hasOwnProperty(e)){var t=this.featuresTags[e];if(t.indexOf("liga")!==-1){wg.call(this);var i=this.tokenizer.getContextRanges("latinWord");i.forEach(function(n){AF.call(A,n)})}}}Ze.prototype.checkContextReady=function(A){return!!this.tokenizer.getContext(A)};Ze.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(iF.call(this),nF.call(this)),this.checkContextReady("latinWord")&&oF.call(this),this.checkContextReady("arabicSentence")&&tF.call(this)};Ze.prototype.processText=function(A){(!this.text||this.text!==A)&&(this.setText(A),eF.call(this),this.applyFeaturesToContexts())};Ze.prototype.getBidiText=function(A){return this.processText(A),this.tokenizer.getText()};Ze.prototype.getTextGlyphs=function(A){this.processText(A);for(var e=[],t=0;t<this.tokenizer.tokens.length;t++){var i=this.tokenizer.tokens[t];if(!i.state.deleted){var n=i.activeState.value;e.push(Array.isArray(n)?n[0]:n)}}return e};function _A(A){A=A||{},A.tables=A.tables||{},A.empty||(Hi(A.familyName,"When creating a new Font object, familyName is required."),Hi(A.styleName,"When creating a new Font object, styleName is required."),Hi(A.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),Hi(A.ascender,"When creating a new Font object, ascender is required."),Hi(A.descender<=0,"When creating a new Font object, negative descender value is required."),this.names={fontFamily:{en:A.familyName||" "},fontSubfamily:{en:A.styleName||" "},fullName:{en:A.fullName||A.familyName+" "+A.styleName},postScriptName:{en:A.postScriptName||(A.familyName+A.styleName).replace(/\s/g,"")},designer:{en:A.designer||" "},designerURL:{en:A.designerURL||" "},manufacturer:{en:A.manufacturer||" "},manufacturerURL:{en:A.manufacturerURL||" "},license:{en:A.license||" "},licenseURL:{en:A.licenseURL||" "},version:{en:A.version||"Version 0.1"},description:{en:A.description||" "},copyright:{en:A.copyright||" "},trademark:{en:A.trademark||" "}},this.unitsPerEm=A.unitsPerEm||1e3,this.ascender=A.ascender,this.descender=A.descender,this.createdTimestamp=A.createdTimestamp,this.tables=Object.assign(A.tables,{os2:Object.assign({usWeightClass:A.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:A.widthClass||this.usWidthClasses.MEDIUM,fsSelection:A.fsSelection||this.fsSelectionValues.REGULAR},A.tables.os2)})),this.supported=!0,this.glyphs=new at.GlyphSet(this,A.glyphs||[]),this.encoding=new ZC(this),this.position=new mn(this),this.substitution=new Ge(this),this.tables=this.tables||{},this._push=null,this._hmtxTableData={},Object.defineProperty(this,"hinting",{get:function(){if(this._hinting)return this._hinting;if(this.outlinesFormat==="truetype")return this._hinting=new Fl(this)}})}_A.prototype.hasChar=function(A){return this.encoding.charToGlyphIndex(A)!==null};_A.prototype.charToGlyphIndex=function(A){return this.encoding.charToGlyphIndex(A)};_A.prototype.charToGlyph=function(A){var e=this.charToGlyphIndex(A),t=this.glyphs.get(e);return t||(t=this.glyphs.get(0)),t};_A.prototype.updateFeatures=function(A){return this.defaultRenderOptions.features.map(function(e){return e.script==="latn"?{script:"latn",tags:e.tags.filter(function(t){return A[t]})}:e})};_A.prototype.stringToGlyphs=function(A,e){var t=this,i=new Ze,n=function(l){return t.charToGlyphIndex(l.char)};i.registerModifier("glyphIndex",null,n);var o=e?this.updateFeatures(e.features):this.defaultRenderOptions.features;i.applyFeatures(this,o);for(var r=i.getTextGlyphs(A),g=r.length,s=new Array(g),a=this.glyphs.get(0),I=0;I<g;I+=1)s[I]=this.glyphs.get(r[I])||a;return s};_A.prototype.nameToGlyphIndex=function(A){return this.glyphNames.nameToGlyphIndex(A)};_A.prototype.nameToGlyph=function(A){var e=this.nameToGlyphIndex(A),t=this.glyphs.get(e);return t||(t=this.glyphs.get(0)),t};_A.prototype.glyphIndexToName=function(A){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(A):""};_A.prototype.getKerningValue=function(A,e){A=A.index||A,e=e.index||e;var t=this.position.defaultKerningTables;return t?this.position.getKerningValue(t,A,e):this.kerningPairs[A+","+e]||0};_A.prototype.defaultRenderOptions={kerning:!0,features:[{script:"arab",tags:["init","medi","fina","rlig"]},{script:"latn",tags:["liga","rlig"]}]};_A.prototype.forEachGlyph=function(A,e,t,i,n,o){e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:72,n=Object.assign({},this.defaultRenderOptions,n);var r=1/this.unitsPerEm*i,g=this.stringToGlyphs(A,n),s;if(n.kerning){var a=n.script||this.position.getDefaultScriptName();s=this.position.getKerningTables(a,n.language)}for(var I=0;I<g.length;I+=1){var l=g[I];if(o.call(this,l,e,t,i,n),l.advanceWidth&&(e+=l.advanceWidth*r),n.kerning&&I<g.length-1){var C=s?this.position.getKerningValue(s,l.index,g[I+1].index):this.getKerningValue(l,g[I+1]);e+=C*r}n.letterSpacing?e+=n.letterSpacing*i:n.tracking&&(e+=n.tracking/1e3*i)}return e};_A.prototype.getPath=function(A,e,t,i,n){var o=new ne;return this.forEachGlyph(A,e,t,i,n,function(r,g,s,a){var I=r.getPath(g,s,a,n,this);o.extend(I)}),o};_A.prototype.getPaths=function(A,e,t,i,n){var o=[];return this.forEachGlyph(A,e,t,i,n,function(r,g,s,a){var I=r.getPath(g,s,a,n,this);o.push(I)}),o};_A.prototype.getAdvanceWidth=function(A,e,t){return this.forEachGlyph(A,0,0,e,t,function(){})};_A.prototype.draw=function(A,e,t,i,n,o){this.getPath(e,t,i,n,o).draw(A)};_A.prototype.drawPoints=function(A,e,t,i,n,o){this.forEachGlyph(e,t,i,n,o,function(r,g,s,a){r.drawPoints(A,g,s,a)})};_A.prototype.drawMetrics=function(A,e,t,i,n,o){this.forEachGlyph(e,t,i,n,o,function(r,g,s,a){r.drawMetrics(A,g,s,a)})};_A.prototype.getEnglishName=function(A){var e=this.names[A];if(e)return e.en};_A.prototype.validate=function(){var A=this;function e(i,n){}function t(i){var n=A.getEnglishName(i);n&&n.trim().length>0}t("fontFamily"),t("weightName"),t("manufacturer"),t("copyright"),t("version"),this.unitsPerEm>0};_A.prototype.toTables=function(){return VD.fontToTable(this)};_A.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};_A.prototype.toArrayBuffer=function(){for(var A=this.toTables(),e=A.encode(),t=new ArrayBuffer(e.length),i=new Uint8Array(t),n=0;n<e.length;n++)i[n]=e[n];return t};_A.prototype.download=function(A){var e=this.getEnglishName("fontFamily"),t=this.getEnglishName("fontSubfamily");A=A||e.replace(/\s/g,"")+"-"+t+".otf";var i=this.toArrayBuffer();if(qD())if(window.URL=window.URL||window.webkitURL,window.URL){var n=new DataView(i),o=new Blob([n],{type:"font/opentype"}),r=document.createElement("a");r.href=window.URL.createObjectURL(o),r.download=A;var g=document.createEvent("MouseEvents");g.initEvent("click",!0,!1),r.dispatchEvent(g)}else console.warn("Font file could not be downloaded. Try using a different browser.");else{var s=require("fs"),a=jD(i);s.writeFileSync(A,a)}};_A.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512};_A.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9};_A.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};function Gl(A,e){var t=JSON.stringify(A),i=256;for(var n in e){var o=parseInt(n);if(!(!o||o<256)){if(JSON.stringify(e[n])===t)return o;i<=o&&(i=o+1)}}return e[i]=A,i}function rF(A,e,t){var i=Gl(e.name,t);return[{name:"tag_"+A,type:"TAG",value:e.tag},{name:"minValue_"+A,type:"FIXED",value:e.minValue<<16},{name:"defaultValue_"+A,type:"FIXED",value:e.defaultValue<<16},{name:"maxValue_"+A,type:"FIXED",value:e.maxValue<<16},{name:"flags_"+A,type:"USHORT",value:0},{name:"nameID_"+A,type:"USHORT",value:i}]}function gF(A,e,t){var i={},n=new BA.Parser(A,e);return i.tag=n.parseTag(),i.minValue=n.parseFixed(),i.defaultValue=n.parseFixed(),i.maxValue=n.parseFixed(),n.skip("uShort",1),i.name=t[n.parseUShort()]||{},i}function sF(A,e,t,i){for(var n=Gl(e.name,i),o=[{name:"nameID_"+A,type:"USHORT",value:n},{name:"flags_"+A,type:"USHORT",value:0}],r=0;r<t.length;++r){var g=t[r].tag;o.push({name:"axis_"+A+" "+g,type:"FIXED",value:e.coordinates[g]<<16})}return o}function aF(A,e,t,i){var n={},o=new BA.Parser(A,e);n.name=i[o.parseUShort()]||{},o.skip("uShort",1),n.coordinates={};for(var r=0;r<t.length;++r)n.coordinates[t[r].tag]=o.parseFixed();return n}function IF(A,e){var t=new aA.Table("fvar",[{name:"version",type:"ULONG",value:65536},{name:"offsetToData",type:"USHORT",value:0},{name:"countSizePairs",type:"USHORT",value:2},{name:"axisCount",type:"USHORT",value:A.axes.length},{name:"axisSize",type:"USHORT",value:20},{name:"instanceCount",type:"USHORT",value:A.instances.length},{name:"instanceSize",type:"USHORT",value:4+A.axes.length*4}]);t.offsetToData=t.sizeOf();for(var i=0;i<A.axes.length;i++)t.fields=t.fields.concat(rF(i,A.axes[i],e));for(var n=0;n<A.instances.length;n++)t.fields=t.fields.concat(sF(n,A.instances[n],A.axes,e));return t}function CF(A,e,t){var i=new BA.Parser(A,e),n=i.parseULong();mA.argument(n===65536,"Unsupported fvar table version.");var o=i.parseOffset16();i.skip("uShort",1);for(var r=i.parseUShort(),g=i.parseUShort(),s=i.parseUShort(),a=i.parseUShort(),I=[],l=0;l<r;l++)I.push(gF(A,e+o+l*g,t));for(var C=[],Q=e+o+r*g,E=0;E<s;E++)C.push(aF(A,Q+E*a,I,t));return{axes:I,instances:C}}var lF={make:IF,parse:CF},BF=function(){return{coverage:this.parsePointer(T.coverage),attachPoints:this.parseList(T.pointer(T.uShortList))}},QF=function(){var A=this.parseUShort();if(mA.argument(A===1||A===2||A===3,"Unsupported CaretValue table version."),A===1)return{coordinate:this.parseShort()};if(A===2)return{pointindex:this.parseShort()};if(A===3)return{coordinate:this.parseShort()}},cF=function(){return this.parseList(T.pointer(QF))},EF=function(){return{coverage:this.parsePointer(T.coverage),ligGlyphs:this.parseList(T.pointer(cF))}},uF=function(){return this.parseUShort(),this.parseList(T.pointer(T.coverage))};function hF(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);mA.argument(i===1||i===1.2||i===1.3,"Unsupported GDEF table version.");var n={version:i,classDef:t.parsePointer(T.classDef),attachList:t.parsePointer(BF),ligCaretList:t.parsePointer(EF),markAttachClassDef:t.parsePointer(T.classDef)};return i>=1.2&&(n.markGlyphSets=t.parsePointer(uF)),n}var fF={parse:hF},We=new Array(10);We[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{posFormat:1,coverage:this.parsePointer(T.coverage),value:this.parseValueRecord()};if(t===2)return{posFormat:2,coverage:this.parsePointer(T.coverage),values:this.parseValueRecordList()};mA.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};We[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();mA.assert(t===1||t===2,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var i=this.parsePointer(T.coverage),n=this.parseUShort(),o=this.parseUShort();if(t===1)return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:o,pairSets:this.parseList(T.pointer(T.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(n),value2:this.parseValueRecord(o)}})))};if(t===2){var r=this.parsePointer(T.classDef),g=this.parsePointer(T.classDef),s=this.parseUShort(),a=this.parseUShort();return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:o,classDef1:r,classDef2:g,class1Count:s,class2Count:a,classRecords:this.parseList(s,T.list(a,function(){return{value1:this.parseValueRecord(n),value2:this.parseValueRecord(o)}}))}}};We[3]=function(){return{error:"GPOS Lookup 3 not supported"}};We[4]=function(){return{error:"GPOS Lookup 4 not supported"}};We[5]=function(){return{error:"GPOS Lookup 5 not supported"}};We[6]=function(){return{error:"GPOS Lookup 6 not supported"}};We[7]=function(){return{error:"GPOS Lookup 7 not supported"}};We[8]=function(){return{error:"GPOS Lookup 8 not supported"}};We[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function dF(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);return mA.argument(i===1||i===1.1,"Unsupported GPOS table version "+i),i===1?{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(We)}:{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(We),variations:t.parseFeatureVariationsList()}}var pF=new Array(10);function mF(A){return new aA.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new aA.ScriptList(A.scripts)},{name:"features",type:"TABLE",value:new aA.FeatureList(A.features)},{name:"lookups",type:"TABLE",value:new aA.LookupList(A.lookups,pF)}])}var yF={parse:dF,make:mF};function wF(A){var e={};A.skip("uShort");var t=A.parseUShort();mA.argument(t===0,"Unsupported kern sub-table version."),A.skip("uShort",2);var i=A.parseUShort();A.skip("uShort",3);for(var n=0;n<i;n+=1){var o=A.parseUShort(),r=A.parseUShort(),g=A.parseShort();e[o+","+r]=g}return e}function DF(A){var e={};A.skip("uShort");var t=A.parseULong();t>1&&console.warn("Only the first kern subtable is supported."),A.skip("uLong");var i=A.parseUShort(),n=i&255;if(A.skip("uShort"),n===0){var o=A.parseUShort();A.skip("uShort",3);for(var r=0;r<o;r+=1){var g=A.parseUShort(),s=A.parseUShort(),a=A.parseShort();e[g+","+s]=a}}return e}function kF(A,e){var t=new BA.Parser(A,e),i=t.parseUShort();if(i===0)return wF(t);if(i===1)return DF(t);throw new Error("Unsupported kern table version ("+i+").")}var vF={parse:kF};function FF(A,e,t,i){for(var n=new BA.Parser(A,e),o=i?n.parseUShort:n.parseULong,r=[],g=0;g<t+1;g+=1){var s=o.call(n);i&&(s*=2),r.push(s)}return r}var SF={parse:FF};function bF(A,e){var t=require("fs");t.readFile(A,function(i,n){if(i)return e(i.message);e(null,pl(n))})}function RF(A,e){var t=new XMLHttpRequest;t.open("get",A,!0),t.responseType="arraybuffer",t.onload=function(){return t.response?e(null,t.response):e("Font could not be loaded: "+t.statusText)},t.onerror=function(){e("Font could not be loaded")},t.send()}function Ua(A,e){for(var t=[],i=12,n=0;n<e;n+=1){var o=BA.getTag(A,i),r=BA.getULong(A,i+4),g=BA.getULong(A,i+8),s=BA.getULong(A,i+12);t.push({tag:o,checksum:r,offset:g,length:s,compression:!1}),i+=16}return t}function NF(A,e){for(var t=[],i=44,n=0;n<e;n+=1){var o=BA.getTag(A,i),r=BA.getULong(A,i+4),g=BA.getULong(A,i+8),s=BA.getULong(A,i+12),a=void 0;g<s?a="WOFF":a=!1,t.push({tag:o,offset:r,compression:a,compressedLength:g,length:s}),i+=20}return t}function Ae(A,e){if(e.compression==="WOFF"){var t=new Uint8Array(A.buffer,e.offset+2,e.compressedLength-2),i=new Uint8Array(e.length);if(yw(t,i),i.byteLength!==e.length)throw new Error("Decompression error: "+e.tag+" decompressed length doesn't match recorded length");var n=new DataView(i.buffer,0);return{data:n,offset:0}}else return{data:A,offset:e.offset}}function Dg(A,e){e=e??{};var t,i,n=new _A({empty:!0}),o=new DataView(A,0),r,g=[],s=BA.getTag(o,0);if(s==="\0\0\0"||s==="true"||s==="typ1")n.outlinesFormat="truetype",r=BA.getUShort(o,4),g=Ua(o,r);else if(s==="OTTO")n.outlinesFormat="cff",r=BA.getUShort(o,4),g=Ua(o,r);else if(s==="wOFF"){var a=BA.getTag(o,4);if(a==="\0\0\0")n.outlinesFormat="truetype";else if(a==="OTTO")n.outlinesFormat="cff";else throw new Error("Unsupported OpenType flavor "+s);r=BA.getUShort(o,12),g=NF(o,r)}else throw new Error("Unsupported OpenType signature "+s);for(var I,l,C,Q,E,f,h,u,p,c,d,w,F=0;F<r;F+=1){var N=g[F],G=void 0;switch(N.tag){case"cmap":G=Ae(o,N),n.tables.cmap=jC.parse(G.data,G.offset),n.encoding=new XC(n.tables.cmap);break;case"cvt ":G=Ae(o,N),w=new BA.Parser(G.data,G.offset),n.tables.cvt=w.parseShortList(N.length/2);break;case"fvar":l=N;break;case"fpgm":G=Ae(o,N),w=new BA.Parser(G.data,G.offset),n.tables.fpgm=w.parseByteList(N.length);break;case"head":G=Ae(o,N),n.tables.head=gl.parse(G.data,G.offset),n.unitsPerEm=n.tables.head.unitsPerEm,t=n.tables.head.indexToLocFormat;break;case"hhea":G=Ae(o,N),n.tables.hhea=sl.parse(G.data,G.offset),n.ascender=n.tables.hhea.ascender,n.descender=n.tables.hhea.descender,n.numberOfHMetrics=n.tables.hhea.numberOfHMetrics;break;case"hmtx":h=N;break;case"ltag":G=Ae(o,N),i=Il.parse(G.data,G.offset);break;case"maxp":G=Ae(o,N),n.tables.maxp=Cl.parse(G.data,G.offset),n.numGlyphs=n.tables.maxp.numGlyphs;break;case"name":c=N;break;case"OS/2":G=Ae(o,N),n.tables.os2=xr.parse(G.data,G.offset);break;case"post":G=Ae(o,N),n.tables.post=ul.parse(G.data,G.offset),n.glyphNames=new hg(n.tables.post);break;case"prep":G=Ae(o,N),w=new BA.Parser(G.data,G.offset),n.tables.prep=w.parseByteList(N.length);break;case"glyf":C=N;break;case"loca":p=N;break;case"CFF ":I=N;break;case"kern":u=N;break;case"GDEF":Q=N;break;case"GPOS":E=N;break;case"GSUB":f=N;break;case"meta":d=N;break}}var P=Ae(o,c);if(n.tables.name=El.parse(P.data,P.offset,i),n.names=n.tables.name,C&&p){var b=t===0,R=Ae(o,p),L=SF.parse(R.data,R.offset,n.numGlyphs,b),cA=Ae(o,C);n.glyphs=Dl.parse(cA.data,cA.offset,L,n,e)}else if(I){var dA=Ae(o,I);rl.parse(dA.data,dA.offset,n,e)}else throw new Error("Font doesn't contain TrueType or CFF outlines.");var CA=Ae(o,h);if(al.parse(n,CA.data,CA.offset,n.numberOfHMetrics,n.numGlyphs,n.glyphs,e),Pw(n,e),u){var iA=Ae(o,u);n.kerningPairs=vF.parse(iA.data,iA.offset)}else n.kerningPairs={};if(Q){var X=Ae(o,Q);n.tables.gdef=fF.parse(X.data,X.offset)}if(E){var eA=Ae(o,E);n.tables.gpos=yF.parse(eA.data,eA.offset),n.position.init()}if(f){var fA=Ae(o,f);n.tables.gsub=hl.parse(fA.data,fA.offset)}if(l){var DA=Ae(o,l);n.tables.fvar=lF.parse(DA.data,DA.offset,n.names)}if(d){var Y=Ae(o,d);n.tables.meta=fl.parse(Y.data,Y.offset),n.metas=n.tables.meta}return n}function GF(A,e,t){t=t??{};var i=typeof window>"u",n=i&&!t.isUrl?bF:RF;return new Promise(function(o,r){n(A,function(g,s){if(g){if(e)return e(g);r(g)}var a;try{a=Dg(s,t)}catch(I){if(e)return e(I,null);r(I)}if(e)return e(null,a);o(a)})})}function LF(A,e){var t=require("fs"),i=t.readFileSync(A);return Dg(pl(i),e)}var Tr=Object.freeze({__proto__:null,Font:_A,Glyph:Ne,Path:ne,BoundingBox:St,_parse:BA,parse:Dg,load:GF,loadSync:LF});const UF="modulepreload",MF=function(A,e){return new URL(A,e).href},Ma={},Ll=function(e,t,i){let n=Promise.resolve();if(t&&t.length>0){const r=document.getElementsByTagName("link"),g=document.querySelector("meta[property=csp-nonce]"),s=(g==null?void 0:g.nonce)||(g==null?void 0:g.getAttribute("nonce"));n=Promise.allSettled(t.map(a=>{if(a=MF(a,i),a in Ma)return;Ma[a]=!0;const I=a.endsWith(".css"),l=I?'[rel="stylesheet"]':"";if(!!i)for(let E=r.length-1;E>=0;E--){const f=r[E];if(f.href===a&&(!I||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${l}`))return;const Q=document.createElement("link");if(Q.rel=I?"stylesheet":UF,I||(Q.as="script"),Q.crossOrigin="",Q.href=a,s&&Q.setAttribute("nonce",s),document.head.appendChild(Q),I)return new Promise((E,f)=>{Q.addEventListener("load",E),Q.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})}))}function o(r){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=r,window.dispatchEvent(g),!g.defaultPrevented)throw r}return n.then(r=>{for(const g of r||[])g.status==="rejected"&&o(g.reason);return e().catch(o)})},xF=()=>Ll(()=>import("./ft_render-ByO_jG18.js"),[],import.meta.url);let j=null,Bn=0;const JF=new Promise(A=>{xF().then(e=>{e.default().then(t=>{j=t,A()})})});function xa(A){return A/65536}function Ue(A){return A/64}function Yi(A){return A>=0?A:A+256}let Ul,Ml,xl,kg,Jl,Tl,Hl;async function TF(){if(await JF,j._init_constants(),Ul=j.cwrap("FT_New_Memory_Face","number",["number","number","number","number","number"]),Ml=j.cwrap("FT_Set_Char_Size","number",["number","number","number","number","number"]),xl=j.cwrap("FT_Set_Pixel_Sizes","number",["number","number","number"]),kg=j.cwrap("FT_Get_Char_Index","number",["number","number"]),Jl=j.cwrap("FT_Load_Glyph","number",["number","number","number"]),Tl=j.cwrap("FT_Get_Sfnt_Table","number",["number","number"]),j.cwrap("FT_Get_Kerning","number",["number","number","number","number","number"]),Hl=j.cwrap("FT_Done_Face","number",["number"]),!Bn){let A=j._malloc(4);try{let e=j.ccall("FT_Init_FreeType","number",["number"],[A]);if(e)throw new Error(`error in FT_Init_FreeType: ${e}`);Bn=j.getValue(A,"i32")}finally{j._free(A)}}}function HF(A,e){let t,i;if(A instanceof ArrayBuffer)i=A.byteLength;else if(A instanceof Uint8Array)i=A.byteLength;else if(A&&typeof A.length=="number")i=A.length;else throw new Error("Invalid font source format");let n={ptr:0,font:j._malloc(i)};const o=A instanceof ArrayBuffer?new Uint8Array(A):A;j.writeArrayToMemory(o,n.font);let r=j._malloc(4);try{if(t=Ul(Bn,n.font,i,0,r),t)throw new Error(`error in FT_New_Memory_Face: ${t}`);n.ptr=j.getValue(r,"i32")}finally{j._free(r)}if(t=Ml(n.ptr,0,e*64,300,300),t)throw new Error(`error in FT_Set_Char_Size: ${t}`);if(t=xl(n.ptr,0,e),t)throw new Error(`error in FT_Set_Pixel_Sizes: ${t}`);let g=j.getValue(n.ptr+j.OFFSET_FACE_UNITS_PER_EM,"i16"),s=j.getValue(n.ptr+j.OFFSET_FACE_ASCENDER,"i16"),a=j.getValue(n.ptr+j.OFFSET_FACE_DESCENDER,"i16"),I=j.getValue(n.ptr+j.OFFSET_FACE_HEIGHT,"i16");return Object.assign(n,{units_per_em:g,ascender:s,descender:a,height:I})}function YF(A){let e=Tl(A.ptr,j.FT_SFNT_OS2);if(!e)throw new Error("os/2 table not found for this font");let t=j.getValue(e+j.OFFSET_TT_OS2_ASCENDER,"i16"),i=j.getValue(e+j.OFFSET_TT_OS2_DESCENDER,"i16"),n=j.getValue(e+j.OFFSET_TT_OS2_LINEGAP,"i16");return{typoAscent:t,typoDescent:i,typoLineGap:n}}function nr(A,e){return kg(A.ptr,e)!==0}function _F(A,e,t={}){let i=kg(A.ptr,e);if(i===0)throw new Error(`glyph does not exist for codepoint ${e}`);let n=j.FT_LOAD_RENDER;t.mono?n|=j.FT_LOAD_TARGET_MONO:t.lcd?n|=j.FT_LOAD_TARGET_LCD:t.lcd_v?n|=j.FT_LOAD_TARGET_LCD_V:t.autohint_strong?n|=j.FT_LOAD_TARGET_NORMAL:n|=j.FT_LOAD_TARGET_LIGHT,t.autohint_off?n|=j.FT_LOAD_NO_AUTOHINT:n|=j.FT_LOAD_FORCE_AUTOHINT,t.use_color_info&&(n|=j.FT_LOAD_COLOR);let o=Jl(A.ptr,i,n);if(o)throw new Error(`error in FT_Load_Glyph: ${o}`);let r=j.getValue(A.ptr+j.OFFSET_FACE_GLYPH,"i32"),g={glyph_index:j.getValue(r+j.OFFSET_GLYPH_INDEX,"i32"),metrics:{width:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_WIDTH,"i32")),height:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HEIGHT,"i32")),horiBearingX:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_BEARING_X,"i32")),horiBearingY:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_BEARING_Y,"i32")),horiAdvance:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_HORI_ADVANCE,"i32")),vertBearingX:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_BEARING_X,"i32")),vertBearingY:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_BEARING_Y,"i32")),vertAdvance:Ue(j.getValue(r+j.OFFSET_GLYPH_METRICS_VERT_ADVANCE,"i32"))},linearHoriAdvance:xa(j.getValue(r+j.OFFSET_GLYPH_LINEAR_HORI_ADVANCE,"i32")),linearVertAdvance:xa(j.getValue(r+j.OFFSET_GLYPH_LINEAR_VERT_ADVANCE,"i32")),advance:{x:Ue(j.getValue(r+j.OFFSET_GLYPH_ADVANCE_X,"i32")),y:Ue(j.getValue(r+j.OFFSET_GLYPH_ADVANCE_Y,"i32"))},bitmap:{width:j.getValue(r+j.OFFSET_GLYPH_BITMAP_WIDTH,"i32"),rows:j.getValue(r+j.OFFSET_GLYPH_BITMAP_ROWS,"i32"),pitch:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PITCH,"i32"),num_grays:j.getValue(r+j.OFFSET_GLYPH_BITMAP_NUM_GRAYS,"i16"),pixel_mode:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PIXEL_MODE,"i8"),palette_mode:j.getValue(r+j.OFFSET_GLYPH_BITMAP_PALETTE_MODE,"i8")},bitmap_left:j.getValue(r+j.OFFSET_GLYPH_BITMAP_LEFT,"i32"),bitmap_top:j.getValue(r+j.OFFSET_GLYPH_BITMAP_TOP,"i32"),lsb_delta:Ue(j.getValue(r+j.OFFSET_GLYPH_LSB_DELTA,"i32")),rsb_delta:Ue(j.getValue(r+j.OFFSET_GLYPH_RSB_DELTA,"i32"))},s=g.bitmap.width,a=g.bitmap.rows,I=g.bitmap_left,l=g.bitmap_top,C=j.getValue(r+j.OFFSET_GLYPH_BITMAP_BUFFER,"i32"),Q=Math.abs(g.bitmap.pitch),E=g.linearHoriAdvance,f=g.linearVertAdvance,h=g.bitmap.pixel_mode,u=[];for(let p=0;p<a;p++){let c=C+p*Q,d=[];for(let w=0;w<s;w++)if(h===j.FT_PIXEL_MODE_MONO){let F=j.getValue(c+~~(w/8),"i8");d.push(F&1<<7-w%8?255:0)}else if(h===j.FT_PIXEL_MODE_BGRA){let F=Yi(j.getValue(c+w*4+0,"i8")),N=Yi(j.getValue(c+w*4+1,"i8")),G=Yi(j.getValue(c+w*4+2,"i8")),P=Yi(j.getValue(c+w*4+3,"i8")),b=Math.round(.299*G+.587*N+.114*F);b>255&&(b=255),P=(255-b)*P/255,d.push(P)}else{let F=j.getValue(c+w,"i8");d.push(Yi(F))}u.push(d)}return{x:I,y:l,width:s,height:a,advance_x:E,advance_y:f,pixels:u,freetype:g}}function KF(A){let e=Hl(A.ptr);if(e)throw new Error(`error in FT_Done_Face: ${e}`);j._free(A.font),A.ptr=0,A.font=0}function PF(){let A=j.ccall("FT_Done_FreeType","number",["number"],[Bn]);if(A)throw new Error(`error in FT_Done_FreeType: ${A}`);Bn=0}class yt extends Error{constructor(e){super(e),this.name="AppError",Error.captureStackTrace&&Error.captureStackTrace(this,yt)}}class OF{constructor(){this.data={}}add_range(e,t,i,n){let o=n-t,r=[];for(let g=t;g<=i;g++)this._set_char(e,g,g+o),r.push(g);return r}add_symbols(e,t){let i=[];for(let n of t){let o=n.codePointAt(0);this._set_char(e,o,o),i.push(o)}return i}_set_char(e,t,i){this.data[i]={font:e,code:t}}get(){return this.data}}async function VF(A){await TF();let e={};A.font.forEach(C=>{e[C.source_path]=C});let t={},i={};for(let{source_path:C,source_bin:Q}of A.font)if(!t[C])try{let E=Q;E instanceof File?E=await E.arrayBuffer():E instanceof Uint8Array&&(E=E.buffer.slice(E.byteOffset,E.byteOffset+E.byteLength)),t[C]=Tr.parse(E),i[C]=HF(E,A.size)}catch(E){throw new yt(`Cannot load font "${C}": ${E.message}`)}let n=new OF;for(let{source_path:C,ranges:Q}of A.font){let E=i[C];for(let f of Q){if(f.range)for(let h=0;h<f.range.length;h+=3){let u=f.range.slice(h,h+3),p=n.add_range(C,...u),c=!0;for(let d of p)if(nr(E,d)){c=!1;break}if(c){let d="0x"+u[0].toString(16),w="0x"+u[1].toString(16);throw new yt(`Font "${C}" doesn't have any characters included in range ${d}-${w}`)}}if(f.symbols){let h=n.add_symbols(C,f.symbols),u=!0;for(let p of h)if(nr(E,p)){u=!1;break}if(u)throw new yt(`Font "${C}" doesn't have any characters included in "${f.symbols}"`)}}}let o=n.get(),r=[],g=Object.keys(o).sort((C,Q)=>C-Q).map(Number);for(let C of g){let Q=o[C].code,E=o[C].font;if(!nr(i[E],Q))continue;let f=_F(i[E],Q,{autohint_off:e[E].autohint_off,autohint_strong:e[E].autohint_strong,lcd:A.lcd,lcd_v:A.lcd_v,mono:!A.lcd&&!A.lcd_v&&A.bpp===1,use_color_info:A.use_color_info});r.push({code:C,advanceWidth:f.advance_x,bbox:{x:f.x,y:f.y-f.height,width:f.width,height:f.height},kerning:{},freetype:f.freetype,pixels:f.pixels})}if(!A.no_kerning){let C=r.map(Q=>Q.code);for(let{code:Q,kerning:E}of r){let f=o[Q].code,h=o[Q].font,u=t[h],p=u.charToGlyph(String.fromCodePoint(f));for(let c of C){if(o[c].font!==h)continue;let d=o[c].code,w=u.charToGlyph(String.fromCodePoint(d)),F=u.getKerningValue(p,w);F&&(E[c]=F*A.size/u.unitsPerEm)}}}let s=i[A.font[0].source_path],a=A.size/s.units_per_em,I=YF(s),l=t[A.font[0].source_path].tables.post;for(let C of Object.values(i))KF(C);return PF(),{ascent:Math.max(...r.map(C=>C.bbox.y+C.bbox.height)),descent:Math.min(...r.map(C=>C.bbox.y)),typoAscent:Math.round(I.typoAscent*a),typoDescent:Math.round(I.typoDescent*a),typoLineGap:Math.round(I.typoLineGap*a),size:A.size,glyphs:r,underlinePosition:Math.round(l.underlinePosition*a),underlineThickness:Math.round(l.underlineThickness*a)}}function WF(){return 16}function qF(A,e){return 16+(e-A+1)}function jF(A){return 16+A*2}function Ja(A){A=A.sort((i,n)=>i-n);let e=[];for(let i=0;i<A.length;i++){let n={dist:1/0};for(let o=0;o<=i;o++){let r=o-1>=0?e[o-1].dist:0,g;A[i]-A[o]<256&&(g=qF(A[o],A[i]),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"format0"})),A[i]-A[o]<256&&A[i]-i===A[o]-o&&(g=WF(A[o],A[i]),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"format0_tiny"})),A[i]-A[o]<65536&&(g=jF(i-o+1),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"sparse_tiny"}))}e[i]=n}let t=[];for(let i=A.length-1;i>=0;){let n=e[i];t.unshift([n.format,A.slice(n.start,n.end+1)]),i=n.start-1}return t}const De=4,ZF=(A,e,t)=>{A.setUint32(t,e,!0),A.setUint32(t+4,0,!0)};class XF{constructor(e,t){if(this.src=e,this.opts=t,this.font_name=t.lv_font_name,this.font_name||(this.font_name=t.output||"font"),t.bpp===3&&t.no_compress)throw new yt('LVGL supports "--bpp 3" with compression only');this.init_tables()}init_tables(){this.head=new zF(this),this.glyf=new AS(this),this.cmap=new eS(this),this.kern=new tS(this)}toCBin(){const[e,t]=this.glyf.toCBin(),i=this.cmap.toCBin(De),n=this.kern.toCBin(De),o=12+De*6+0,r=8+De*4,g=new ArrayBuffer(o+r),s=new DataView(g),a=(h,u)=>s.setUint32(u,h,!0);var I=0;a(0,I),I+=De,a(0,I),I+=De,a(0,I),I+=De,s.setUint32(I,this.src.ascent-this.src.descent,!0),I+=4,s.setInt32(I,-this.src.descent,!0),I+=4,s.setUint8(I,this.src.subpixels_mode||0),I+=1,s.setInt8(I,this.src.underlinePosition||0),I+=1,s.setInt8(I,this.src.underlineThickness||0),I+=1,I+=1,a(o,I),I+=De,a(0,I),I+=De,a(0,I),I+=De;const l=this.head.kern_ref();a(r+n.byteLength,I),I+=De,a(r+n.byteLength+e.byteLength,I),I+=De,a(r+n.byteLength+e.byteLength+t.byteLength,I),I+=De,a(l.dsc==="NULL"?0:r,I),I+=De,s.setUint16(I,l.scale,!0),I+=2;const C=this.cmap.getMapNumber(),Q=this.opts.bpp,E=l.classes,f=this.glyf.getCompressionCode();return s.setUint16(I,C|Q<<9|E<<13|f<<14,!0),I+=2,this.concatArrayBuffers([g,n,e,t,i])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}}class zF{constructor(e){this.font=e}kern_ref(){return this.font,{scale:0,dsc:"NULL",classes:0}}}class $F{constructor(e){this.buffer=new Uint8Array(e),this.byteIndex=0,this.bitIndex=0,this.bigEndian=!0}writeBits(e,t){for(;t>0;){const i=Math.min(8-this.bitIndex,t),n=(1<<i)-1,o=e>>t-i&n;this.bigEndian?this.buffer[this.byteIndex]|=o<<8-this.bitIndex-i:this.buffer[this.byteIndex]|=o<<this.bitIndex,this.bitIndex+=i,this.bitIndex>=8&&(this.byteIndex++,this.bitIndex=0),t-=i}}getUsedBytes(){return this.bitIndex>0?this.byteIndex+1:this.byteIndex}}class AS{constructor(e){this.font=e,this.lv_data=[],this.lv_compiled=!1}pixelsToBpp(e){const t=this.font.opts.bpp;return e.map(i=>i.map(n=>n>>>8-t))}storePixels(e,t){this.getCompressionCode()===0?this.storePixelsRaw(e,t):this.storePixelsCompressed(e,t)}storePixelsRaw(e,t){const i=this.font.opts.bpp;for(let n=0;n<t.length;n++){const o=t[n];for(let r=0;r<o.length;r++)e.writeBits(o[r],i)}}storePixelsCompressed(e,t){this.storePixelsRaw(e,t)}lv_bitmap(e){const t=100+e.bbox.width*e.bbox.height*4,i=new ArrayBuffer(t),n=new $F(i);n.bigEndian=!0;const o=this.pixelsToBpp(e.pixels);this.storePixels(n,o);const r=new ArrayBuffer(n.getUsedBytes()),g=new Uint8Array(i);return new Uint8Array(r).set(g.subarray(0,n.getUsedBytes())),r}lv_compile(){if(this.lv_compiled)return;this.lv_compiled=!0;const e=this.font;this.lv_data=[];let t=0;e.src.glyphs.forEach(i=>{const n=e.glyph_id[i.code],o=this.lv_bitmap(i);this.lv_data[n]={bin:o,offset:t,glyph:i},t+=o.byteLength})}toCBin(){this.lv_compile();const e=this.lv_data.slice(1).filter(r=>r).map(r=>r.bin),t=this.balign4(this.concatArrayBuffers(e)),i=new ArrayBuffer(this.lv_data.length*16+16),n=new DataView(i);let o=1;return this.lv_data.forEach(r=>{if(r){const g=Math.round(r.glyph.advanceWidth*16);n.setUint32(o*16,r.offset,!0),n.setUint32(o*16+4,g,!0),n.setUint16(o*16+8,r.glyph.bbox.width,!0),n.setUint16(o*16+10,r.glyph.bbox.height,!0),n.setInt16(o*16+12,r.glyph.bbox.x,!0),n.setInt16(o*16+14,r.glyph.bbox.y,!0)}o++}),[t,i]}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}getCompressionCode(){return this.font.opts.no_compress||this.font.opts.bpp===1?0:this.font.opts.no_prefilter?2:1}}class eS{constructor(e){this.font=e,this.lv_compiled=!1,this.lv_subtables=[],this.subtables_plan=null,this.buildGlyphIdMap()}buildGlyphIdMap(){const e=this.font;e.glyph_id={},e.src.glyphs&&e.src.glyphs.forEach((t,i)=>{e.glyph_id[t.code]=i+1})}lv_format2enum(e){switch(e){case"format0_tiny":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY";case"format0":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL";case"sparse_tiny":return"LV_FONT_FMT_TXT_CMAP_SPARSE_TINY";case"sparse":return"LV_FONT_FMT_TXT_CMAP_SPARSE_FULL";default:throw new Error("Unknown subtable format")}}lv_format2int(e){return["format0","sparse","format0_tiny","sparse_tiny"].indexOf(e)}getMapNumber(){if(!this.subtables_plan){const e=this.font;if(!e.src.glyphs||e.src.glyphs.length===0)return 0;this.subtables_plan=Ja(e.src.glyphs.map(t=>t.code))}return this.subtables_plan.length}glyphByCode(e){const t=this.font;return t.src.glyphs?t.src.glyphs.find(i=>i.code===e):null}collect_format0_data(e,t,i){const n=this.font,o=[];for(let r=e;r<=t;r++){const g=n.glyph_id[r]||0;o.push(g?g-i:0)}return o}collect_sparse_data(e,t){const i=this.font;let n=[],o=[];for(let r of e){let g=this.glyphByCode(r),s=i.glyph_id[g.code],a=r-e[0],I=s-t;if(a<0||a>65535)throw new Error("Codepoint delta out of range");if(I<0||I>65535)throw new Error("Glyph ID delta out of range");n.push(a),o.push(I)}return{codes:n,ids:o}}toCBin(e){const t=this.font;if(!t.src.glyphs||t.src.glyphs.length===0)return new ArrayBuffer(0);this.subtables_plan||(this.subtables_plan=Ja(t.src.glyphs.map(l=>l.code)));const i=this.subtables_plan;let n=0;const o=12+e*2+(e==4?0:4),r=new ArrayBuffer(i.length*o),g=new DataView(r),s=e==4?(l,C)=>g.setUint32(C,l,!0):(l,C)=>ZF(g,l,C),a=[];let I=r.byteLength;for(let[l,C]of i){let Q=this.glyphByCode(C[0]),E=t.glyph_id[Q.code],f=C[0],h=C[C.length-1],u=!1,p=!1,c=0,d=new ArrayBuffer(0),w=new ArrayBuffer(0);if(l!=="format0_tiny")if(l==="format0"){p=!0;let N=this.collect_format0_data(f,h,E);c=N.length,d=this.balign4(this.uint8ArrayToBuffer(new Uint8Array(N)))}else if(l==="sparse_tiny"){u=!0;let N=this.collect_sparse_data(C,E);c=N.codes.length,w=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes)))}else{u=!0,p=!0;let N=this.collect_sparse_data(C,E);c=N.codes.length,w=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes))),d=this.align4(this.uint16ArrayToBuffer(new Uint16Array(N.ids)))}let F=n*o;g.setUint32(F,f,!0),F+=4,g.setUint16(F,h-f+1,!0),F+=2,g.setUint16(F,E,!0),F+=2,s(u?I:0,F),F+=e,I+=w.byteLength,s(p?I:0,F),F+=e,I+=d.byteLength,g.setUint16(F,c,!0),F+=2,g.setUint8(F,this.lv_format2int(l)),F+=1,a.push(w),a.push(d),n++}return this.concatArrayBuffers([r,...a])}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}align4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}uint8ArrayToBuffer(e){const t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}uint16ArrayToBuffer(e){return e.buffer.slice(0,e.byteLength)}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}}class tS{constructor(e){this.font=e}toCBin(e){return new ArrayBuffer(0)}}function iS(A,e){if(!A.output)throw new yt('Output is required for "cbin" writer');const i=new XF(e,A).toCBin();return{[A.output]:i}}class nS{constructor(){this.initialized=!1,this.supportedFormats=["ttf","woff","woff2","otf"],this.charsetCache=new Map}async initialize(){if(!this.initialized)try{if(typeof Tr>"u")throw new Error("opentype.js not loaded");this.initialized=!0,console.log("BrowserFontConverter 初始化完成")}catch(e){throw console.error("BrowserFontConverter initialization failed:",e),e}}validateFont(e){if(!e)return!1;if(e instanceof File){const t=e.name.toLowerCase(),i=e.type.toLowerCase(),n=this.supportedFormats.some(r=>t.endsWith(`.${r}`)),o=["font/ttf","font/truetype","application/x-font-ttf","font/woff","font/woff2","application/font-woff","font/otf","application/x-font-otf"].some(r=>i.includes(r));return n||o}return e instanceof ArrayBuffer&&e.byteLength>0}async getFontInfo(e){try{let t;if(e instanceof File)t=await e.arrayBuffer();else if(e instanceof ArrayBuffer)t=e;else throw new Error("Unsupported font file type");const i=Tr.parse(t);return{familyName:this.getLocalizedName(i.names.fontFamily)||"Unknown",fullName:this.getLocalizedName(i.names.fullName)||"Unknown",postScriptName:this.getLocalizedName(i.names.postScriptName)||"Unknown",version:this.getLocalizedName(i.names.version)||"Unknown",unitsPerEm:i.unitsPerEm,ascender:i.ascender,descender:i.descender,numGlyphs:i.numGlyphs,supported:!0}}catch(t){return console.error("Failed to get font information:",t),{familyName:"Unknown",supported:!1,error:t.message}}}getLocalizedName(e){return e?e.zh||e["zh-CN"]||e.en||e[Object.keys(e)[0]]:null}async convertToCBIN(e){this.initialized||await this.initialize();const{fontFile:t,fontName:i,fontSize:n=20,bpp:o=4,charset:r="deepseek",symbols:g="",range:s="",compression:a=!1,lcd:I=!1,lcd_v:l=!1,progressCallback:C=null}=e;if(!this.validateFont(t))throw new yt("不支持的字体文件格式");try{C&&C(0,"Starting font processing...");let Q;t instanceof File?Q=await t.arrayBuffer():Q=t,C&&C(10,"Parsing font structure...");const{ranges:E,charSymbols:f}=await this.parseCharacterInputAsync(r,g,s);C&&C(20,"Preparing conversion parameters...");const h={font:[{source_path:i||"custom_font",source_bin:Q,ranges:[{range:E,symbols:f}],autohint_off:!1,autohint_strong:!1}],size:n,bpp:o,lcd:I,lcd_v:l,no_compress:!a,no_kerning:!1,use_color_info:!1,format:"cbin",output:i||"font"};C&&C(30,"Collecting font data...");const u=await VF(h);C&&C(70,"Generating CBIN format...");const p=iS(h,u),c=h.output;return C&&C(100,"Conversion completed!"),p[c]}catch(Q){throw console.error("Font conversion failed:",Q),new yt(`Font conversion failed: ${Q.message}`)}}async parseCharacterInputAsync(e,t,i){let n=[],o=t||"";return e==="full"?(n=[0,65535,0],{ranges:n,charSymbols:o}):(e&&e!=="custom"&&(o=await this.getCharsetContentAsync(e)+o),i&&(n=this.parseUnicodeRange(i)),{ranges:n,charSymbols:o})}parseCharacterInput(e,t,i){let n=[],o=t||"";return e==="full"?(n=[0,65535,0],{ranges:n,charSymbols:o}):(e&&e!=="custom"&&(o=this.getCharsetContent(e)+o),i&&(n=this.parseUnicodeRange(i)),{ranges:n,charSymbols:o})}async loadCharsetFromFile(e){const i={latin:"./static/charsets/latin1.txt",deepseek:"./static/charsets/deepseek.txt",gb2312:"./static/charsets/gb2312.txt",qwen:"./static/charsets/qwen18409.txt"}[e];if(!i)return null;try{const n=await fetch(i);if(!n.ok)throw new Error(`Failed to load charset file: ${n.status}`);const r=(await n.text()).split(`
|
||
`).join("");return this.charsetCache.set(e,r),r}catch(n){return console.error(`Failed to load charset ${e}:`,n),null}}getCharsetContent(e){const t={};return(e==="latin"||e==="deepseek"||e==="gb2312")&&this.charsetCache.has(e)?this.charsetCache.get(e):e==="basic"?this.getCharsetContent("latin"):t[e]||""}async getCharsetContentAsync(e){if(e==="basic"&&(e="latin"),this.charsetCache.has(e))return this.charsetCache.get(e);if(e==="latin"||e==="deepseek"||e==="gb2312"||e==="qwen"){const t=await this.loadCharsetFromFile(e);if(t)return t}return this.getCharsetContent(e)}parseUnicodeRange(e){const t=[],i=e.split(",");for(const n of i){const o=n.trim();if(o)if(o.includes("-")){const[r,g]=o.split("-"),s=this.parseHexOrDec(r),a=this.parseHexOrDec(g);s!==null&&a!==null&&t.push(s,a,s)}else{const r=this.parseHexOrDec(o);r!==null&&t.push(r,r,r)}}return t}parseHexOrDec(e){const t=e.trim();if(t.startsWith("0x")||t.startsWith("0X")){const n=parseInt(t,16);return isNaN(n)?null:n}const i=parseInt(t,10);return isNaN(i)?null:i}async estimateSizeAsync(e){const{fontSize:t=20,bpp:i=4,charset:n="latin",symbols:o="",range:r=""}=e;let g=o.length;if(n==="full")g=65536;else if(n&&n!=="custom"){const I=await this.getCharsetContentAsync(n);g+=I.length}if(r){const I=this.parseUnicodeRange(r);for(let l=0;l<I.length;l+=3)g+=I[l+1]-I[l]+1}n!=="full"&&(g=Math.min(g,g*.8));const s=Math.ceil(t*t*i/8)+40,a=g*s+2048;return{characterCount:Math.floor(g),avgBytesPerChar:s,estimatedSize:a,formattedSize:this.formatBytes(a)}}estimateSize(e){const{fontSize:t=20,bpp:i=4,charset:n="latin",symbols:o="",range:r=""}=e;let g=o.length;if(n==="full")g=65536;else if(n&&n!=="custom"){const I=this.getCharsetContent(n);g+=I.length}if(r){const I=this.parseUnicodeRange(r);for(let l=0;l<I.length;l+=3)g+=I[l+1]-I[l]+1}n!=="full"&&(g=Math.min(g,g*.8));const s=Math.ceil(t*t*i/8)+40,a=g*s+2048;return{characterCount:Math.floor(g),avgBytesPerChar:s,estimatedSize:a,formattedSize:this.formatBytes(a)}}formatBytes(e){if(e===0)return"0 Bytes";const t=1024,i=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,n)).toFixed(2))+" "+i[n]}cleanup(){this.initialized=!1}}const oS=new nS;class rS{constructor(){this.models=new Map}addModelFile(e,t,i){this.models.has(e)||this.models.set(e,new Map),this.models.get(e).set(t,i)}async loadModelFromShare(e){try{let t=[],i="";if(e.startsWith("wn9"))t=["_MODEL_INFO_","wn9_data","wn9_index"],i=`./static/wakenet_model/${e}/`;else if(e.startsWith("mn6")||e.startsWith("mn7"))t=["_MODEL_INFO_",`${e.substring(0,3)}_data`,`${e.substring(0,3)}_index`,"vocab"],i=`./static/multinet_model/${e}/`,await this.loadFSTModel();else throw new Error(`Unknown model type: ${e}`);let n=0;for(const o of t)try{const r=await fetch(`${i}${o}`);if(r.ok){const g=await r.arrayBuffer();this.addModelFile(e,o,g),n++}else console.warn(`无法加载文件: ${o}, status: ${r.status}`)}catch(r){console.warn(`加载文件失败: ${o}`,r)}return n===t.length}catch(t){return console.error(`加载模型失败: ${e}`,t),!1}}async loadFSTModel(){try{const e="fst";if(this.models.has(e))return!0;const t=["commands_cn.txt","commands_en.txt"],i="./static/multinet_model/fst/";let n=0;for(const o of t)try{const r=await fetch(`${i}${o}`);if(r.ok){const g=await r.arrayBuffer();this.addModelFile(e,o,g),n++}else console.warn(`无法加载 FST 文件: ${o}, status: ${r.status}`)}catch(r){console.warn(`加载 FST 文件失败: ${o}`,r)}return n>0}catch(e){return console.error("加载 FST 模型失败",e),!1}}packString(e,t){const i=new Uint8Array(t),n=Math.min(e.length,t);for(let o=0;o<n;o++)i[o]=e.charCodeAt(o)&255;return i}packUint32(e){const t=new Uint8Array(4);return t[0]=e&255,t[1]=e>>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packModels(){if(this.models.size===0)throw new Error("没有模型数据可打包");let e=0;const t=[];for(const[a,I]of Array.from(this.models.entries()).sort((l,C)=>l[0].localeCompare(C[0]))){e+=I.size;const l=Array.from(I.entries()).sort((C,Q)=>C[0].localeCompare(Q[0]));t.push({name:a,files:l})}const i=this.models.size;let n=4;for(const a of t)n+=36,n+=a.files.length*40;const o=n+Array.from(this.models.values()).reduce((a,I)=>a+Array.from(I.values()).reduce((l,C)=>l+C.byteLength,0),0),r=new Uint8Array(o);let g=0;r.set(this.packUint32(i),g),g+=4;let s=n;for(const a of t){r.set(this.packString(a.name,32),g),g+=32,r.set(this.packUint32(a.files.length),g),g+=4;for(const[I,l]of a.files)r.set(this.packString(I,32),g),g+=32,r.set(this.packUint32(s),g),g+=4,r.set(this.packUint32(l.byteLength),g),g+=4,s+=l.byteLength}for(const a of t)for(const[I,l]of a.files)r.set(new Uint8Array(l),g),g+=l.byteLength;return r.buffer}static async getAvailableModels(){try{return{WakeNet9:["wn9_alexa","wn9_astrolabe_tts","wn9_bluechip_tts2","wn9_computer_tts","wn9_haixiaowu_tts","wn9_heyily_tts2","wn9_heyprinter_tts","wn9_heywanda_tts","wn9_heywillow_tts","wn9_hiesp","wn9_hifairy_tts2","wn9_hijason_tts2","wn9_hijolly_tts2","wn9_hijoy_tts","wn9_hilexin","wn9_hilili_tts","wn9_himfive","wn9_himiaomiao_tts","wn9_hitelly_tts","wn9_hiwalle_tts2","wn9_hixiaoxing_tts","wn9_jarvis_tts","wn9_linaiban_tts2","wn9_miaomiaotongxue_tts","wn9_mycroft_tts","wn9_nihaobaiying_tts2","wn9_nihaodongdong_tts2","wn9_nihaomiaoban_tts2","wn9_nihaoxiaoan_tts2","wn9_nihaoxiaoxin_tts","wn9_nihaoxiaoyi_tts2","wn9_nihaoxiaozhi","wn9_nihaoxiaozhi_tts","wn9_sophia_tts","wn9_xiaoaitongxue","wn9_xiaobinxiaobin_tts","wn9_xiaojianxiaojian_tts2","wn9_xiaokangtongxue_tts2","wn9_xiaolongxiaolong_tts","wn9_xiaoluxiaolu_tts2","wn9_xiaomeitongxue_tts","wn9_xiaomingtongxue_tts2","wn9_xiaosurou_tts2","wn9_xiaotexiaote_tts2","wn9_xiaoyaxiaoya_tts2","wn9_xiaoyutongxue_tts2"],WakeNet9s:["wn9s_alexa","wn9s_hiesp","wn9s_hijason","wn9s_hilexin","wn9s_nihaoxiaozhi"]}}catch(e){return console.error("获取模型列表失败:",e),{WakeNet9:[],WakeNet9s:[]}}}static isValidModel(e,t){return t==="esp32c3"||t==="esp32c6"?e.startsWith("wn9s_"):e.startsWith("wn9_")}clear(){this.models.clear()}getStats(){let e=0,t=0;for(const i of this.models.values()){e+=i.size;for(const n of i.values())t+=n.byteLength}return{modelCount:this.models.size,fileCount:e,totalSize:t,models:Array.from(this.models.keys())}}validatePackingCompatibility(){const e="test_model",t=this.packString(e,32),i=305419896,n=this.packUint32(i);return{stringPacking:{input:e,output:Array.from(t).map(o=>`0x${o.toString(16).padStart(2,"0")}`),isASCII:t.every((o,r)=>r>=e.length||o===e.charCodeAt(r))},intPacking:{input:`0x${i.toString(16)}`,output:Array.from(n).map(o=>`0x${o.toString(16).padStart(2,"0")}`),isLittleEndian:n[0]===120&&n[3]===18}}}}class gS{constructor(){this.files=[],this.textEncoder=new TextEncoder}addFile(e,t,i={}){e.length>32&&console.warn(`Filename "${e}" exceeds 32 bytes and will be truncated`),this.files.push({filename:e,data:t,size:t.byteLength,width:i.width||0,height:i.height||0})}async getImageDimensions(e){return new Promise(t=>{try{const i=new Blob([e]),n=URL.createObjectURL(i),o=new Image;o.onload=()=>{URL.revokeObjectURL(n),t({width:o.width,height:o.height})},o.onerror=()=>{URL.revokeObjectURL(n),t({width:0,height:0})},o.src=n}catch{t({width:0,height:0})}})}parseSpecialImageFormat(e,t){const i=e.toLowerCase().split(".").pop();if([".sjpg",".spng",".sqoi"].includes("."+i))try{const n=new DataView(t),o=n.getUint16(14,!0),r=n.getUint16(16,!0);return{width:o,height:r}}catch(n){console.warn(`Failed to parse special image format: ${e}`,n)}return{width:0,height:0}}packUint32(e){const t=new Uint8Array(4);return t[0]=e&255,t[1]=e>>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packUint16(e){const t=new Uint8Array(2);return t[0]=e&255,t[1]=e>>8&255,t}packString(e,t){const i=new Uint8Array(t),n=this.textEncoder.encode(e),o=Math.min(n.length,t);return i.set(n.slice(0,o),0),i}computeChecksum(e){let t=0;for(let i=0;i<e.length;i++)t+=e[i];return t&65535}sortFiles(e){return e.slice().sort((t,i)=>{const n=t.filename.split(".").pop()||"",o=i.filename.split(".").pop()||"";if(n!==o)return n.localeCompare(o);const r=t.filename.replace(/\.[^/.]+$/,""),g=i.filename.replace(/\.[^/.]+$/,"");return r.localeCompare(g)})}async generate(e=null){if(this.files.length===0)throw new Error("No files to package");e&&e(0,"Starting to package files...");const t=this.sortFiles(this.files),i=t.length,n=[];let o=0;for(let p=0;p<t.length;p++){const c=t[p];let d=c.width,w=c.height;if(e&&e(10+p/i*30,`Processing file: ${c.filename}`),d===0&&w===0){const F=this.parseSpecialImageFormat(c.filename,c.data);if(F.width>0||F.height>0)d=F.width,w=F.height;else{const N=c.filename.toLowerCase().split(".").pop();if(["png","jpg","jpeg","gif","bmp","webp"].includes(N)){const G=await this.getImageDimensions(c.data);d=G.width,w=G.height}}}n.push({filename:c.filename,data:c.data,size:c.size,offset:o,width:d,height:w}),o+=2+c.size}e&&e(40,"Building file mapping table...");const r=i*44,g=new Uint8Array(r);let s=0;for(const p of n)g.set(this.packString(p.filename,32),s),s+=32,g.set(this.packUint32(p.size),s),s+=4,g.set(this.packUint32(p.offset),s),s+=4,g.set(this.packUint16(p.width),s),s+=2,g.set(this.packUint16(p.height),s),s+=2;e&&e(60,"Merging file data...");const a=new Uint8Array(o);let I=0;for(let p=0;p<n.length;p++){const c=n[p];e&&e(60+p/i*20,`Merging file: ${c.filename}`),a[I]=90,a[I+1]=90,I+=2,a.set(new Uint8Array(c.data),I),I+=c.size}e&&e(80,"Computing checksum...");const l=new Uint8Array(r+o);l.set(g,0),l.set(a,r);const C=this.computeChecksum(l),Q=l.length;e&&e(90,"Building final file...");const f=12+Q,h=new Uint8Array(f);let u=0;return h.set(this.packUint32(i),u),u+=4,h.set(this.packUint32(C),u),u+=4,h.set(this.packUint32(Q),u),u+=4,h.set(l,u),e&&e(100,"Packaging completed"),h.buffer}getStats(){var i;let e=0;const t=new Map;for(const n of this.files){e+=n.size;const o=((i=n.filename.split(".").pop())==null?void 0:i.toLowerCase())||"unknown";t.set(o,(t.get(o)||0)+1)}return{fileCount:this.files.length,totalSize:e,fileTypes:Object.fromEntries(t),averageFileSize:this.files.length>0?Math.round(e/this.files.length):0}}printFileList(){if(console.log("=== Packaged File List ==="),console.log(`Total files: ${this.files.length}`),this.files.length===0){console.log("No files available");return}this.sortFiles(this.files).forEach((i,n)=>{var s;const o=((s=i.filename.split(".").pop())==null?void 0:s.toLowerCase())||"unknown",r=(i.size/1024).toFixed(2),g=i.width&&i.height?`${i.width}x${i.height}`:"N/A";console.log(`${String(n+1).padStart(3," ")}. ${i.filename}`),console.log(` Type: ${o.toUpperCase()}`),console.log(` Size: ${r} KB (${i.size} bytes)`),console.log(` Dimensions: ${g}`),console.log("")});const t=this.getStats();console.log("=== File Statistics ==="),console.log(`Total size: ${(t.totalSize/1024).toFixed(2)} KB`),console.log(`Average size: ${(t.averageFileSize/1024).toFixed(2)} KB`),console.log("File type distribution:"),Object.entries(t.fileTypes).forEach(([i,n])=>{console.log(` ${i.toUpperCase()}: ${n} files`)})}clear(){this.files=[]}}let xn={tool:{workerLocalUrl:`var gifsicle=function(){Me="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(Me=Me||__filename);var Me,c=function(e){var j,r,h=void 0!==(e=e||{})?e:{},t=(h.ready=new Promise(function(e,r){j=e}),h.preRun=h.preRun||[],h.preRun.push(function(){if(h.folder&&h.folder.length)for(let e=0;e<h.folder.length;e++){var r=h.folder[e];T.mkdir(r)}T.mkdir("/tem"),T.mkdir("/out");var t=h.input;for(let e=0;e<t.length;e++){var n=t[e];T.writeFile("/"+n.name,new Uint8Array(n.file))}}),h.postRun=h.postRun||[],h.postRun.push(function(){let r=[],t=T.readdir("/out");t.splice(0,2);for(let e=0;e<t.length;e++){var n=t[e],o=T.readFile("/out/"+n);r.push({file:o,name:n})}h.output(r)}),{});for(r in h)h.hasOwnProperty(r)&&(t[r]=h[r]);var n,o,i,O,a=[],C="./this.program",u=function(e,r){throw r},L=!1,c=!1,L="object"==typeof window,c="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,I=!L&&!s&&!c,f="";s?(f=c?require("path").dirname(f)+"/":__dirname+"/",n=function(e,r){return i=i||require("fs"),e=(O=O||require("path")).normalize(e),i.readFileSync(e,r?null:"utf8")},o=function(e){e=n(e,!0);return H((e=e.buffer?e:new Uint8Array(e)).buffer),e},1<process.argv.length&&(C=process.argv[1].replace(/\\\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof Fe))throw e}),process.on("unhandledRejection",D),u=function(e){process.exit(e)},h.inspect=function(){return"[Emscripten Module object]"}):I?("undefined"!=typeof read&&(n=function(e){return read(e)}),o=function(e){return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(H("object"==typeof(e=read(e,"binary"))),e)},"undefined"!=typeof scriptArgs?a=scriptArgs:void 0!==arguments&&(a=arguments),"function"==typeof quit&&(u=function(e){quit(e)}),"undefined"!=typeof print&&((console="undefined"==typeof console?{}:console).log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(L||c)&&(c?f=self.location.href:document.currentScript&&(f=document.currentScript.src),f=0!==(f=Me?Me:f).indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",n=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},c&&(o=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}));var l,d,p,m=h.print||console.log.bind(console),w=h.printErr||console.warn.bind(console);for(r in t)t.hasOwnProperty(r)&&(h[r]=t[r]);t=null,h.arguments&&(a=h.arguments),h.thisProgram&&(C=h.thisProgram),h.quit&&(u=h.quit),h.wasmBinary&&(l=h.wasmBinary),h.noExitRuntime&&(d=h.noExitRuntime),"object"!=typeof WebAssembly&&w("no native wasm support detected");var I=new WebAssembly.Table({initial:64,maximum:64,element:"anyfunc"}),U=!1;function H(e,r){e||D("Assertion failed: "+r)}var q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function g(e,r,t){for(var n=r+t,o=r;e[o]&&!(n<=o);)++o;if(16<o-r&&e.subarray&&q)return q.decode(e.subarray(r,o));for(var i="";r<o;){var a,s,u=e[r++];128&u?(s=63&e[r++],192==(224&u)?i+=String.fromCharCode((31&u)<<6|s):(a=63&e[r++],(u=224==(240&u)?(15&u)<<12|s<<6|a:(7&u)<<18|s<<12|a<<6|63&e[r++])<65536?i+=String.fromCharCode(u):(s=u-65536,i+=String.fromCharCode(55296|s>>10,56320|1023&s)))):i+=String.fromCharCode(u)}return i}function W(e,r){return e?g(E,e,r):""}function X(e,r,t,n){if(!(0<n))return 0;for(var o=t,i=t+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if((s=55296<=s&&s<=57343?65536+((1023&s)<<10)|1023&e.charCodeAt(++a):s)<=127){if(i<=t)break;r[t++]=s}else if(s<=2047){if(i<=t+1)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(i<=t+2)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(i<=t+3)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function G(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);(n=55296<=n&&n<=57343?65536+((1023&n)<<10)|1023&e.charCodeAt(++t):n)<=127?++r:r+=n<=2047?2:n<=65535?3:4}return r}function V(e){var r=G(e)+1,t=Se(r);return X(e,y,t,r),t}var v,y,E,K,k;function Y(e){v=e,h.HEAP8=y=new Int8Array(e),h.HEAP16=K=new Int16Array(e),h.HEAP32=k=new Int32Array(e),h.HEAPU8=E=new Uint8Array(e),h.HEAPU16=new Uint16Array(e),h.HEAPU32=new Uint32Array(e),h.HEAPF32=new Float32Array(e),h.HEAPF64=new Float64Array(e)}f=h.INITIAL_MEMORY||16777216;function Z(e){for(;0<e.length;){var r,t=e.shift();"function"==typeof t?t(h):"number"==typeof(r=t.func)?void 0===t.arg?h.dynCall_v(r):h.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}}p=h.wasmMemory||new WebAssembly.Memory({initial:f/65536,maximum:32768}),f=(v=p?p.buffer:v).byteLength,Y(v),k[9776]=5282144;var $=[],J=[],Q=[],ee=[];function re(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)e=h.preRun.shift(),$.unshift(e);var e;Z($)}function te(){if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)e=h.postRun.shift(),ee.unshift(e);var e;Z(ee)}var ne=Math.abs,oe=Math.ceil,ie=Math.floor,ae=Math.min,_=0,b=null;function se(){_++,h.monitorRunDependencies&&h.monitorRunDependencies(_)}function ue(){var e;_--,h.monitorRunDependencies&&h.monitorRunDependencies(_),0==_&&b&&(e=b,b=null,e())}function D(e){throw h.onAbort&&h.onAbort(e),m(e+=""),w(e),U=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function ce(e,r){return String.prototype.startsWith?e.startsWith(r):0===e.indexOf(r)}h.preloadedImages={},h.preloadedAudios={};var fe="data:application/octet-stream;base64,";var le="file://";function de(e){return ce(e,le)}var S,F,P="data:application/wasm;base64,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ACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAAC5ABAQN/IAAhAQJAAkAgAEEDcUUNACAALQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQEgAigCACIDQX9zIANB//37d2pxQYCBgoR4cUUNAAsgA0H/AXFFBEAgAiAAaw8LA0AgAi0AASEDIAJBAWoiASECIAMNAAsLIAEgAGsLSgECfwJAIAAtAAAiAkUgAiABLQAAIgNHcg0AA0AgAS0AASEDIAAtAAEiAkUNASABQQFqIQEgAEEBaiEAIAIgA0YNAAsLIAIgA2sLoggBC38gAEUEQCABEBoPCyABQUBPBEBB3JwCQTA2AgBBAA8LIABBfGoiBygCACIIQXhxIQIgCEEDcSIDQQFGQeCtAigCACILIABBeGoiBktyGkEQIAFBC2pBeHEgAUELSRshBAJAAkAgA0UEQCAEQYACSSACIARBBHJJcg0BIAIgBGtBsLECKAIAQQF0TQ0CDAELIAIgBmohBSACIARPBEAgAiAEayIBQRBJDQIgByAIQQFxIARyQQJyNgIAIAQgBmoiAiABQQNyNgIEIAUgBSgCBEEBcjYCBCACIAEQpQEgAA8LIAVB6K0CKAIARgRAQdytAigCACACaiICIARNDQEgByAIQQFxIARyQQJyNgIAIAQgBmoiASACIARrIgJBAXI2AgRB3K0CIAI2AgBB6K0CIAE2AgAgAA8LIAVB5K0CKAIARgRAQditAigCACACaiICIARJDQECQCACIARrIgFBEE8EQCAHIAhBAXEgBHJBAnI2AgAgBCAGaiIDIAFBAXI2AgQgAiAGaiICIAE2AgAgAiACKAIEQX5xNgIEDAELIAcgCEEBcSACckECcjYCACACIAZqIgEgASgCBEEBcjYCBEEAIQFBACEDC0HkrQIgAzYCAEHYrQIgATYCACAADwsgBSgCBCIDQQJxDQAgA0F4cSACaiIJIARJDQAgCSAEayEMAkAgA0H/AU0EQCAFKAIIIgIgA0EDdiIDQQN0QfitAmpHGiACIAUoAgwiAUYEQEHQrQJB0K0CKAIAQX4gA3dxNgIADAILIAIgATYCDCABIAI2AggMAQsgBSgCGCEKAkAgBSAFKAIMIgJHBEAgCyAFKAIIIgFNBEAgASgCDBoLIAEgAjYCDCACIAE2AggMAQsCQCAFQRRqIgEoAgAiAw0AIAVBEGoiASgCACIDDQBBACECDAELA0AgASELIAMiAkEUaiIBKAIAIgMNACACQRBqIQEgAigCECIDDQALIAtBADYCAAsgCkUNAAJAIAUgBSgCHCIBQQJ0QYCwAmoiAygCAEYEQCADIAI2AgAgAg0BQdStAkHUrQIoAgBBfiABd3E2AgAMAgsgCkEQQRQgCigCECAFRhtqIAI2AgAgAkUNAQsgAiAKNgIYIAUoAhAiAQRAIAIgATYCECABIAI2AhgLIAUoAhQiAUUNACACIAE2AhQgASACNgIYCyAMQQ9NBEAgByAIQQFxIAlyQQJyNgIAIAYgCWoiASABKAIEQQFyNgIEIAAPCyAHIAhBAXEgBHJBAnI2AgAgBCAGaiIBIAxBA3I2AgQgBiAJaiICIAIoAgRBAXI2AgQgASAMEKUBIAAPCyABEBoiAkUEQEEADwsgAiAAQXxBeCAHKAIAIgNBA3EbIANBeHFqIgMgASADIAFJGxAYGiAAEBYgAiEACyAAC8EBAgN/AX4CQAJAIAApA3AiBFBFBEAgACkDeCAEWQ0BCyAAEGsiAkF/Sg0BCyAAQQA2AmhBfw8LIAAoAgghAQJAAkAgACkDcCIEUA0AIAQgACkDeEJ/hXwiBCABIAAoAgQiA2usWQ0AIAAgAyAEp2o2AmgMAQsgACABNgJoCwJAIAFFBEAgACgCBCEADAELIAAgACkDeCABIAAoAgQiAGtBAWqsfDcDeAsgAEF/aiIALQAAIAJHBEAgACACOgAACyACC5gLAgV/D34jAEHgAGsiBSQAIAJCIIYgAUIgiIQhDyAEQi+GIANCEYiEIQ0gBEL///////8/gyIOQg+GIANCMYiEIRAgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiC0IgiCERIA5CEYghEiAEQjCIp0H//wFxIQcCQAJ/IAJCMIinQf//AXEiCUF/akH9/wFNBEBBACAHQX9qQf7/AUkNARoLIAFQIAJC////////////AIMiDEKAgICAgIDA//8AVCAMQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASAMQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgDIQhAkIAIQEgAlAEQEKAgICAgIDg//8AIQoMAwsgCkKAgICAgIDA//8AhCEKDAILIAEgDIRQBEBCACEBDAILIAIgA4RQBEBCACEBDAILIAxC////////P1gEQCAFQdAAaiABIAsgASALIAtQIgYbeSAGQQZ0rXynIgZBcWoQKCAFKQNYIgtCIIYgBSkDUCIBQiCIhCEPIAtCIIghEUEQIAZrIQYLIAYgAkL///////8/Vg0AGiAFQUBrIAMgDiADIA4gDlAiCBt5IAhBBnStfKciCEFxahAoIAUpA0giAkIPhiAFKQNAIgNCMYiEIRAgAkIvhiADQhGIhCENIAJCEYghEiAGIAhrQRBqCyEGIA1C/////w+DIgIgAUL/////D4MiAX4iEyADQg+GQoCA/v8PgyIDIA9C/////w+DIgx+fCIEQiCGIg4gASADfnwiDSAOVK0gAiAMfiIVIAMgC0L/////D4MiC358IhQgEEL/////D4MiDiABfnwiECAEIBNUrUIghiAEQiCIhHwiEyACIAt+IhYgAyARQoCABIQiD358IgMgDCAOfnwiESABIBJC/////weDQoCAgIAIhCIBfnwiEkIghnwiF3whBCAHIAlqIAZqQYGAf2ohBgJAIAsgDn4iGCACIA9+fCICIBhUrSACIAEgDH58Igwg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AAsLAkACQCAAIAhHBEAgBigCECIFIABBBHRqIgcoAgAgAUYNAQsCQEEAIAggCEEHcRtFBEAgBigCECEFDAELIAYoAhAgCEEEdEGAAWoQHiIFRQ0DIAYgBTYCECAGKAIUIQgLIAUgAEEEdCIJaiIHQRBqIAcgCCAAa0EEdBDCASAGIAYoAhRBAWo2AhQgBigCECIFIAlqQQA2AgQMAQsgBygCBEEFRw0AIAUgAEEEdGooAgwiBygCABAWIAcoAgQQFiAHEBYgBigCECEFCyAFIABBBHRqIgAgBDYCDCAAIAI2AgggACADNgIEIAAgATYCAEEAIQoLIAoLaQEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgASACIANrIgJBgAIgAkGAAkkiARsQGxogAUUEQANAIAAgBUGAAhAnIAJBgH5qIgJB/wFLDQALCyAAIAUgAhAnCyAFQYACaiQAC2gBAX8gAEEASCABQQFIckVBAEEAQRRBARAXIgIbRQRAIAIQFkEADwsgAiAANgIAIAIgACABIAAgAUobIgA2AgQgAkEAQQggABAXIgE2AhAgAkIANwIIIAIhACABBH8gAAUgABAWQQALCyUBAX8jAEEQayICJAAgAiABNgIMQQBBAEEDIAAgARBdQQEQAgALwQkCBH8EfiMAQfAAayIFJAAgBEL///////////8AgyEKAkACQCABQn98IgtCf1EgAkL///////////8AgyIJIAsgAVStfEJ/fCILQv///////7///wBWIAtC////////v///AFEbRQRAIANCf3wiC0J/UiAKIAsgA1StfEJ/fCILQv///////7///wBUIAtC////////v///AFEbDQELIAFQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIAlCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIGGyEEQgAgASAGGyEDDAILIAMgCkKAgICAgIDA//8AhYRQDQEgASAJhFAEQCADIAqEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAqEUEUN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BiAEIAFBAnRqKAIARQ0AC0F/QQEgAEEJSRshBwwFCwsgAEEgIAogByAMayIOIAsgCyAOSBsiE2oiByAPIA8gB0gbIgEgByAJECsgACAQIAoQJyAAQTAgASAHIAlBgIAEcxArIABBMCATIA5BABArIAAgDCAOECcgAEEgIAEgByAJQYDAAHMQKwwBCwtBACEHDAELQX8hBwsgCEHQAGokACAHC20BAn9BAEHMAEEBEBciAAR/IABCADcCACAAQgA3AhggAEEANgI8IABB//8DOwEUIABBADYCSCAAQgA3AkAgAEEGNgIoIABCADcCICAAQgA3AiwgAEIANwIIIABBADYCECAAQgA3AjQgAAVBAAsLEAAgACABIAJBAEEAELoBGgt8AQJ/IAAgAC0ASiIBQX9qIAFyOgBKIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQMAGgsgAEEANgIcIABCADcDECAAKAIAIgFBBHEEQCAAIAFBIHI2AgBBfw8LIAAgACgCLCAAKAIwaiICNgIIIAAgAjYCBCABQRt0QR91C2kBAn8CQCAAKAIUIAAoAhxNDQAgAEEAQQAgACgCJBEDABogACgCFA0AQX8PCyAAKAIEIgEgACgCCCICSQRAIAAgASACa6xBASAAKAIoEQ8AGgsgAEEANgIcIABCADcDECAAQgA3AgRBAAtAAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRAuIAAgBSkDADcDACAAIAUpAwg3AwggBUEQaiQACykBAX8jAEEQayICJAAgAiABNgIMQYjoASgCACAAIAEQhQEgAkEQaiQAC7cBAQR/AkAgAigCECIDBH8gAwUgAhDBAQ0BIAIoAhALIAIoAhQiBWsgAUkEQCACIAAgASACKAIkEQMADwsCQCACLABLQQBIDQAgASEEA0AgBCIDRQ0BIAAgA0F/aiIEai0AAEEKRw0ACyACIAAgAyACKAIkEQMAIgQgA0kNASABIANrIQEgACADaiEAIAIoAhQhBSADIQYLIAUgACABEBgaIAIgAigCFCABajYCFCABIAZqIQQLIAQLgwEBA38jAEEQayICJAAgAiABOgAPAkAgACgCECIDRQRAIAAQwQENASAAKAIQIQMLAkAgACgCFCIEIANPDQAgACwASyABQf8BcUYNACAAIARBAWo2AhQg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IAAgBiAEoKKhDwsgAUEDdCIBQcCIAmorAwAgACAGIASgoiABQeCIAmorAwChIAChoSIAmiAAIANCAFMbIQALIAAPCyAARBgtRFT7Ifk/IACmIANC////////////AINCgICAgICAgPj/AFYbC5IBAQN8RAAAAAAAAPA/IAAgAKIiAkQAAAAAAADgP6IiA6EiBEQAAAAAAADwPyAEoSADoSACIAIgAiACRJAVyxmgAfo+okR3UcEWbMFWv6CiRExVVVVVVaU/oKIgAiACoiIDIAOiIAIgAkTUOIi+6fqovaJExLG0vZ7uIT6gokStUpyAT36SvqCioKIgACABoqGgoAtGAQF/IwBBIGsiASQAAn8gACABQQhqEBEiAEUEQEE7IQBBASABLQAIQQJGDQEaC0HcnAIgADYCAEEACyEAIAFBIGokACAAC+EBAQN/IwBBIGsiBEIANwMYIARCADcDECAEQgA3AwggBEIANwMAIAEtAAAiAkUEQEEADwsgAS0AAUUEQCAAIQEDQCABIgNBAWohASADLQAAIAJGDQALIAMgAGsPCwNAIAQgAkEDdkEccWoiAyADKAIAQQEgAkEfcXRyNgIAIAEtAAEhAiABQQFqIQEgAg0ACyAAIQMCQCAALQAAIgJFDQAgACEBA0AgBCACQQN2QRxxaigCACACQR9xdkEBcUUEQCABIQMMAgsgAS0AASECIAFBAWoiAyEBIAINAAsLIAMgAGsLewECfwJAIAAoAgQiAyAAKAIIIgJIBEAgACgCACECDAELIAAgAkEBdEECIAIbIgM2AgggACAAKAIAQQQgAxAXIgI2AgAgAkUEQEEADwsgACgCBCEDCyACIANBAnRqIAE2AgAgACADQQFqNgIEIAEgASgCSEEBajYCSEEBCw4AIAAgABAcQQFqEJICCwkAIAAgARCTAgt7AQF/IwBBkAFrIgQkACAEIAA2AiwgBCAANgIEIARBADYCACAEQX82AkwgBEF/IABB/////wdqIABBAEgbNgIIIARCABA0IAQgAkEBIAMQtwEhAyABBEAgASAAIAQoAgQgBCgCeGogBCgCCGtqNgIACyAEQZABaiQAIAMLpQEBBX8jAEGAAmsiBCQAAkAgAkECSA0AIAEgAkECdGoiByAENgIAIABFDQAgBCEDA0AgAyABKAIAIABBgAIgAEGAAkkbIgUQGBpBACEDA0AgASADQQJ0aiIGKAIAIAEgA0EBaiIDQQJ0aigCACAFEBgaIAYgBigCACAFajYCACACIANHDQALIAAgBWsiAEUNASAHKAIAIQMMAAALAAsgBEGAAmokAAsmAQF/IAAoAgBBf2poIgFFBEAgACgCBGgiAEEgakEAIAAbDwsgAQvvAgEFfyAAKAIIIQMgACgCBCEEIAAoAgAhBUEAQShBARAXIgEEfyABIAU2AgACQCAEBEAgAUEAQQEgA0EBahAXIgI2AgQgAkUEQCABEBZBAA8LIAIgBCADEBgaIAEoAgQgA2pBADoAAAwBC0EAIQMgAUEANgIECyABQgA3AhQgAUEANgIMIAEgAzYCCCABQgA3AhwgAUEANgIkAkACQCAAKAIMIgIEQCAAKAIkDQELIAEgAjYCDCABIAAoAhA2AhAMAQsgAUEAQQEgACgCEBAXIgI2AgwgAkUEQCABKAIEEBYCQEEAIAEoAhgiAEUgASgCHCICGw0AIAJBJGogAEEgaiACGyEDA0AgASADIgAoAgAiAkcEQCACQSBqIQMgAg0BCwsgAkUNACAAIAEoAiA2AgALIAEQFkEADwsgAiAAKAIMIAAoAhAQGBogACgCECECIAFBBjYCJCABIAI2AhALIAEgACgCFDYCFCABBUEACwtDAAJAIABFDQACQAJAAkACQCABQQJqDgYAAQICBAMECyAAIAI8AAAPCyAAIAI9AQAPCyAAIAI+AgAPCyAAIAI3AwALC/gDAgN/AX4CQAJAAkACfyAAKAIEIgIgACgCaEkEQCAAIAJBAWo2AgQgAi0AAAwBCyAAEB8LIgNBVWoOAwEAAQALIANBUGohAQwBCyADQS1GIQQCQCABRQJ/IAAoAgQiAiAAKAJoSQRAIAAgAkEBajYCBCACLQAADAELIAAQHwsiAkFQaiIBQQpJcg0AIAAoAmhFDQAgACAAKAIEQX9qNgIECyACIQMLAkAgAUEKSQRAQQAhAQNAIAMgAUEKbGohAQJ/IAAoAgQiAiAAKAJoSQRAIAAgAkEBajYCBCACLQAADAELIAAQHwsiA0FQaiICQQlNQQAgAUFQaiIBQcyZs+YASBsNAAsgAawhBQJAIAJBCk8NAANAIAOtIAVCCn58QlB8IQUCfyAAKAIEIgEgACgCaEkEQCAAIAFBAWo2AgQgAS0AAAwBCyAAEB8LIgNBUGoiAkEJSw0BIAVCro+F18fC66MBUw0ACwsgAkEKSQRAA0ACfyAAKAIEIgEgACgCaEkEQCAAIAFBAWo2AgQgAS0AAAwBCyAAEB8LQVBqQQpJDQALCyAAKAJoBEAgACAAKAIEQX9qNgIEC0IAIAV9IAUgBBshBQwBC0KAgICAgICAgIB/IQUgACgCaEUNACAAIAAoAgRBf2o2AgRCgICAgICAgICAfw8LIAUL7QcCBX8CfiMAQTBrIgUkAAJAIAJBAk0EQCACQQJ0IgJBuPEBaigCACEHIAJBrPEBaigCACEIA0ACfyABKAIEIgIgASgCaEkEQCABIAJBAWo2AgQgAi0AAAwBCyABEB8LIgIQNQ0AC0EBIQYCQAJAIAJBVWoOAwABAAELQX9BASACQS1GGyEGIAEoAgQiAiABKAJoSQRAIAEgAkEBajYCBCACLQAAIQIMAQsgARAfIQILAkACQANAIARBxPEBaiwAACACQSByRgRAAkAgBEEGSw0AIAEoAgQiAiABKAJoSQRAIAEgAkEBajYCBCACLQAAIQIMAQsgARAfIQILIARBAWoiBEEIRw0BDAILCyAEQQNHBEAgBEEIRg0BIANFIARBBElyDQIgBEEIRg0BCyABKAJoIgIEQCABIAEoAgRBf2o2AgQLIANFIARBBElyDQADQCACBEAgASABKAIEQX9qNgIECyAEQX9qIgRBA0sNAAsLIAUgBrJDAACAf5QQtgIgBSkDCCEKIAUpAwAhCQwCCwJAAkACQCAEDQBBACEEA0AgBEHN8QFqLAAAIAJBIHJHDQECQCAEQQFLDQAgASgCBCICIAEoAmhJBEAgASACQQFqNgIEIAItAAAhAgwBCyABEB8hAgsgBEEBaiIEQQNHDQALDAELAkACQCAEDgQAAQECAQsCQCACQTBHDQACfyABKAIEIgQgASgCaEkEQCABIARBAWo2AgQgBC0AAAwBCyABEB8LQV9xQdgARgRAIAVBEGogASAIIAcgBiADEJwCIAUpAxghCiAFKQMQIQkMBgsgASgCaEUNACABIAEoAgRBf2o2AgQLIAVBIGogASACIAggByAGIAMQmwIgBSkDKCEKIAUpAyAhCQwECyABKAJoBEAgASABKAIEQX9qNgIECwwBCwJAAn8gASgCBCICIAEoAmhJBEAgASACQQFqNgIEIAItAAAMAQsgARAfC0EoRgRAQQEhBAwBC0KAgICAgIDg//8AIQogASgCaEUNAyABIAEoAgRBf2o2AgQMAwsDQAJ/IAEoAgQiAiABKAJoSQRAIAEgAkEBajYCBCACLQAADAELIAEQHwsiAkFQakEKSSACQb9/akEaSXIgAkHfAEZyRUEAIAJBn39qQRpPG0UEQCAEQQFqIQQMAQsLQoCAgICAgOD//wAhCiACQSlGDQIgASgCaCICBEAgASABKAIEQX9qNgIECyADBEAgBEUNAwNAIARBf2ohBCACBEAgASABKAIEQX9qNgIECyAEDQALDAMLC0HcnAJBHDYCACABQgAQNAtCACEKCyAAIAk3AwAgACAKNwMIIAVBMGokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQICAEKQMoIQIgBCkDICEBIANB//8BSARAIANBgYB/aiEDDAILIARBEGogASACQgBCgICAgICAgP//ABAgIANB/f8CIANB/f8CSBtBgoB+aiEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgIDAABAgIAQpA0ghAiAEKQNAIQEgA0GDgH5KBEAgA0H+/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgIDAABAgIANBhoB9IANBhoB9ShtB/P8BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAgIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs1ACAAIAE3AwAgACACQv///////z+DIARCMIinQYCAAnEgAkIwiKdB//8BcXKtQjCGhDcDCAvHCgIFfwR+IwBBEGsiByQAAkACQAJAAkACQAJAIAFBJE0EQANAAn8gACgCBCIEIAAoAmhJBEAgACAEQQFqNgIEIAQtAAAMAQsgABAfCyIEEDUNAAsCQAJAIARBVWoOAwABAAELQX9BACAEQS1GGyEGIAAoAgQiBCAAKAJoSQRAIAAgBEEBajYCBCAELQAAIQQMAQsgABAfIQQLAkAgAUFvcSAEQTBHckUEQAJ/IAAoAgQiBCAAKAJoSQRAIAAgBEEBajYCBCAELQAADAELIAAQHwsiBEFfcUHYAEYEQAJ/IAAoAgQiASAAKAJoSQRAIAAgAUEBajYCBCABLQAADAELIAAQHwshBEEQIQEgBEGh7wFqLQAAQRBJDQUgACgCaEUEQEIAIQMgAg0KDAkLIAAgACgCBCIBQX9qNgIEIAJFDQggACABQX5qNgIEQgAhAwwJCyABDQFBCCEBDAQLIAFBCiABGyIBIARBoe8Bai0AAEsNACAAKAJoBEAgACAAKAIEQX9qNgIEC0IAIQMgAEIAEDRB3JwCQRw2AgAMBwsgAUEKRw0CIARBUGoiAkEJTQRAQQAhAQNAIAFBCmwhBQJ/IAAoAgQiASAAKAJoSQRAIAAgAUEBajYCBCABLQAADAELIAAQHwshBCACIAVqIQEgBEFQaiICQQlNQQAgAUGZs+bMAUkbDQALIAGtIQkLIAJBCUsNASAJQgp+IQogAq0hCwNAAn8gACgCBCIBIAAoAmhJBEAgACABQQFqNgIEIAEtAAAMAQsgABAfCyIEQVBqIgJBCUsgCiALfCIJQpqz5syZs+bMGVpyDQIgCUIKfiIKIAKtIgtCf4VYDQALQQohAQwDC0HcnAJBHDYCAEIAIQMMBQtBCiEBIAJBCU0NAQwCCyABIAFBf2pxBEAgASAEQaHvAWotAAAiAksEQANAIAIgASAFbGoiBUHG4/E4TUEAIAECfyAAKAIEIgIgACgCaEkEQCAAIAJBAWo2AgQgAi0AAAwBCyAAEB8LIgRBoe8Bai0AACICSxsNAAsgBa0hCQsgASACTQ0BIAGtIQoDQCAJIAp+IgsgAq1C/wGDIgxCf4VWDQIgCyAMfCEJIAECfyAAKAIEIgIgACgCaEkEQCAAIAJBAWo2AgQgAi0AAAwBCyAAEB8LIgRBoe8Bai0AACICTQ0CIAcgCiAJEDogBykDCFANAAsMAQsgAUEXbEEFdkEHcUGh8QFqLAAAIQggASAEQaHvAWotAAAiAksEQANAIAIgBSAIdHIiBUH///8/TUEAIAECfyAAKAIEIgIgACgCaEkEQCAAIAJBAWo2AgQgAi0AAAwBCyAAEB8LIgRBoe8Bai0AACICSxsNAAsgBa0hCQsgASACTUJ/IAitIgqIIgsgCVRyDQADQCACrUL/AYMgCSAKhoQhCQJ/IAAoAgQiAiAAKAJoSQRAIAAgAkEBajYCBCACLQAADAELIAAQHwshBCAJIAtWDQEgASAEQaHvAWotAAAiAksNAAsLIAEgBEGh7wFqLQAATQ0AA0AgAQJ/IAAoAgQiAiAAKAJoSQRAIAAgAkEBajYCBCACLQAADAELIAAQHwtBoe8Bai0AAEsNAAtB3JwCQcQANgIAIAZBACADQgGDUBshBiADIQkLIAAoAmgEQCAAIAAoAgRBf2o2AgQLAkAgCSADVA0AIAOnQQFxIAZyRQRAQdycAkHEADYCACADQn98IQMMAwsgCSADWA0AQdycAkHEADYCAAwCCyAJIAasIgOFIAN9IQMMAQtCACEDIABCABA0CyAHQRBqJAAgAwuYAgACQAJAIAFBFEsNAAJAAkACQAJAAkACQAJAAkAgAUF3ag4KAAECCQMEBQYJBwgLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAAgAiADEQEACw8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtEAQR/IAAoAgAiAiwAACIDEEQEQANAIAAgAkEBaiIENgIAIAFBCmwgA2pBUGohASACLAABIQMgBCECIAMQRA0ACwsgAQv7AgEDfyMAQdABayIFJAAgBSACNgLMAUEAIQIgBUGgAWpBAEEoEBsaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBCDAUEASARAQX8hAQwBCyAAKAJMQQBOBEBBASECCyAAKAIAIQYgACwASkEATARAIAAgBkFfcTYCAAsgBkEgcSEHAn8gACgCMARAIAAgASAFQcgBaiAFQdAAaiAFQaABaiADIAQQgwEMAQsgAEHQADYCMCAAIAVB0ABqNgIQIAAgBTYCHCAAIAU2AhQgACgCLCEGIAAgBTYCLCAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIMBIgEgBkUNABogAEEAQQAgACgCJBEDABogAEEANgIwIAAgBjYCLCAAQQA2AhwgAEEANgIQIAAoAhQhAyAAQQA2AhQgAUF/IAMbCyEBIAAgACgCACIAIAdyNgIAQX8gASAAQSBxGyEBIAJFDQALIAVB0AFqJAAgAQt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARC7ASEAIAEoAgBBQGoLNgIAIAAPCyABIAJBgnhqNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCxIAIABFBEBBAA8LIAAgARCkAgtPAQJ/QQBBNEEBEBciAAR/IABCADcCACAAQQA7ARQgAEIANwIcIABBfzYCGCAAQYACNgIQIABCADcCCCAAQgA3AiQgAEIANwIsIAAFQQALCxQAAkAgACgCTEEASA0ACyAAKAI8C4ICAQV/IAEoAkxBAE4Ef0EBBUEACxpB/wchBCAAIQMCQANAAkAgBEUNACADIAEoAgQiAiACQQogASgCCCACayIFEGoiBiACa0EBaiAFIAYbIgIgBCACIARJGyICEBgaIAEgASgCBCACaiIFNgIEIAIgA2ohAyAGDQAgBCACayIERQ0AAkAgBSABKAIISQRAIAEgBUEBajYCBCAFLQAAIQIMAQsgARBrIgJBf0oNAEEAIQIgACADRg0DIAEtAABBEHFFDQMMAQsgAyACOgAAIANBAWohAyAEQX9qIQQgAkH/AXFBCkcNAQsLIABFBEBBACECDAELIANBADoAACAAIQILIAILCAAgABAJEFoLWQEBfyAAIAAtAEoiAUF/aiABcjoASiAAKAIAIgFBCHEEQCAAIAFBIHI2AgBBfw8LIABCADcCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQAL1gIBAX8CQCAAIAFGDQAgASAAayACa0EAIAJBAXRrTQRAIAAgASACEBgaDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAw0CIABBA3FFDQEDQCACRQ0EIAAgAS0AADoAACABQQFqIQEgAkF/aiECIABBAWoiAEEDcQ0ACwwBCwJAIAMNACAAIAJqQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AA0AgACABKAIANgIAIAFBBGohASAAQQRqIQAgAkF8aiICQQNLDQALCyACRQ0AA0AgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiICDQALCwuhBgIFfwR+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEEhFDQAgAyAEELoCIQcgAkIwiKciCUH//wFxIgZB//8BRg0AIAcNAQsgBUEQaiABIAIgAyAEECAgBSAFKQMQIgIgBSkDGCIBIAIgARDEASAFKQMIIQIgBSkDACEEDAELIAEgAkL///////8/gyAGrUIwhoQiCiADIARC////////P4MgBEIwiKdB//8BcSIHrUIwhoQiCxBIQQBMBEAgASAKIAMgCxBIBEAgASEEDAILIAVB8ABqIAEgAkIAQgAQICAFKQN4IQIgBSkDcCEEDAELIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAECAgBSkDaCIKQjCIp0GIf2ohBiAFKQNgCyEEIAdFBEAgBUHQAGogAyALQgBCgICAgICAwLvAABAgIAUpA1giC0IwiKdBiH9qIQcgBSkDUCEDCyAKQv///////z+DQoCAgICAgMAAhCIKIAtC////////P4NCgICAgICAwACEIg19IAQgA1StfSIMQn9VIQggBCADfSELIAYgB0oEQANAAn4gCARAIAsgDIRQBEAgBUEgaiABIAJCAEIAECAgBSkDKCECIAUpAyAhBAwFCyALQj+IIQogDEIBhgwBCyAKQgGGIQogBCELIARCP4gLIQwgCiAMhCIKIA19IAtCAYYiBCADVK19IgxCf1UhCCAEIAN9IQsgBkF/aiIGIAdKDQALIAchBgsCQCAIRQ0AIAsiBCAMIgqEQgBSDQAgBUEwaiABIAJCAEIAECAgBSkDOCECIAUpAzAhBAwBCyAKQv///////z9YBEADQCAEQj+IIQEgBkF/aiEGIARCAYYhBCABIApCAYaEIgpCgICAgICAwABUDQALCyAJQYCAAnEhByAGQQBMBEAgBUFAayAEIApC////////P4MgBkH4AGogB3KtQjCGhEIAQoCAgICAgMDDPxAgIAUpA0ghAiAFKQNAIQQMAQsgCkL///////8/gyAGIAdyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQAC4IRAgV/DH4jAEHAAWsiBSQAIARC////////P4MhEiACQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyERIARCMIinQf//AXEhBwJAAkACQCACQjCIp0H//wFxIglBf2pB/f8BTQRAIAdBf2pB/v8BSQ0BCyABUCACQv///////////wCDIgpCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCERDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIREgAyEBDAILIAEgCkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACERDAMLIBFCgICAgICAwP//AIQhEUIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAKhFANAiACIAOEUARAIBFCgICAgICAwP//AIQhEUIAIQEMAgsgCkL///////8/WARAIAVBsAFqIAEgDCABIAwgDFAiBht5IAZBBnStfKciBkFxahAoQRAgBmshBiAFKQO4ASEMIAUpA7ABIQELIAJC////////P1YNACAFQaABaiADIBIgAyASIBJQIggbeSAIQQZ0rXynIghBcWoQKCAGIAhqQXBqIQYgBSkDqAEhEiAFKQOgASEDCyAFQZABaiASQoCAgICAgMAAhCIUQg+GIANCMYiEIgJChMn5zr/mvIL1ACACfSIEEDogBUGAAWpCACAFKQOYAX0gBBA6IAVB8ABqIAUpA4gBQgGGIAUpA4ABQj+IhCIEIAIQOiAFQeAAaiAEQgAgBSkDeH0QOiAFQdAAaiAFKQNoQgGGIAUpA2BCP4iEIgQgAhA6IAVBQGsgBEIAIAUpA1h9EDogBUEwaiAFKQNIQgGGIAUpA0BCP4iEIgQgAhA6IAVBIGogBEIAIAUpAzh9EDogBUEQaiAFKQMoQgGGIAUpAyBCP4iEIgQgAhA6IAUgBEIAIAUpAxh9EDogBiAJIAdraiEGAn5CACAFKQMIQgGGIAUpAwBCP4iEQn98IgpC/////w+DIgQgAkIgiCIOfiIQIApCIIgiCiACQv////8PgyILfnwiAkIghiINIAQgC358IgsgDVStIAogDn4gAiAQVK1CIIYgAkIgiIR8fCALIAQgA0IRiEL/////D4MiDn4iECAKIANCD4ZCgID+/w+DIg1+fCICQiCGIg8gBCANfnwgD1StIAogDn4gAiAQVK1CIIYgAkIgiIR8fHwiAiALVK18IAJCAFKtfH0iC0L/////D4MiDiAEfiIQIAogDn4iDSAEIAtCIIgiD358IgtCIIZ8Ig4gEFStIAogD34gCyANVK1CIIYgC0IgiIR8fCAOQgAgAn0iAkIgiCILIAR+IhAgAkL/////D4MiDSAKfnwiAkIghiIPIAQgDX58IA9UrSAKIAt+IAIgEFStQiCGIAJCIIiEfHx8IgIgDlStfCACQn58IhAgAlStfEJ/fCILQv////8PgyICIAxCAoYgAUI+iIRC/////w+DIgR+Ig4gAUIeiEL/////D4MiCiALQiCIIgt+fCINIA5UrSANIBBCIIgiDiAMQh6IQv//7/8Pg0KAgBCEIgx+fCIPIA1UrXwgCyAMfnwgAiAMfiITIAQgC358Ig0gE1StQiCGIA1CIIiEfCAPIA1CIIZ8Ig0gD1StfCANIAogDn4iEyAQQv////8PgyIQIAR+fCIPIBNUrSAPIAIgAUIChkL8////D4MiE358IhUgD1StfHwiDyANVK18IA8gCyATfiILIAwgEH58IgwgBCAOfnwiBCACIAp+fCICQiCIIAIgBFStIAwgC1StIAQgDFStfHxCIIaEfCIMIA9UrXwgDCAVIA4gE34iBCAKIBB+fCIKQiCIIAogBFStQiCGhHwiBCAVVK0gBCACQiCGfCAEVK18fCIEIAxUrXwiAkL/////////AFgEQCABQjGGIARC/////w+DIgEgA0L/////D4MiCn4iDEIAUq19QgAgDH0iECAEQiCIIgwgCn4iDSABIANCIIgiC358Ig5CIIYiD1StfSACQv////8PgyAKfiABIBJC/////w+DfnwgCyAMfnwgDiANVK1CIIYgDkIgiIR8IAQgFEIgiH4gAyACQiCIfnwgAiALfnwgDCASfnxCIIZ8fSESIAZBf2ohBiAQIA99DAELIARCIYghCyABQjCGIAJCP4YgBEIBiIQiBEL/////D4MiASADQv////8PgyIKfiIMQgBSrX1CACAMfSIOIAEgA0IgiCIMfiIQIAsgAkIfhoQiDUL/////D4MiDyAKfnwiC0Ig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URtFBEAgAUIZiKdB////AXFBgICA/gdyIQIMAQtBgICA/AchAiAFQv///////7+/wABWDQBBACECIAVCMIinIgRBkf4ASQ0AIANBEGogACABQv///////z+DQoCAgICAgMAAhCIFIARB/4F/ahAoIAMgACAFQYH/ACAEaxBTIAMpAwgiAEIZiKchAiADKQMAIAMpAxAgAykDGIRCAFKthCIFUCAAQv///w+DIgBCgICACFQgAEKAgIAIURtFBEAgAkEBaiECDAELIAUgAEKAgIAIhYRCAFINACACQQFxIAJqIQILIANBIGokACACIAFCIIinQYCAgIB4cXK+C8YBAgN/An4jAEEQayIDJAACfiABvCIEQf////8HcSICQYCAgHxqQf////cHTQRAIAKtQhmGQoCAgICAgIDAP3wMAQsgAkGAgID8B08EQCAErUIZhkKAgICAgIDA//8AhAwBCyACRQRAQgAMAQsgAyACrUIAIAJnIgJB0QBqECggAykDACEFIAMpAwhCgICAgICAwACFQYn/ACACa61CMIaECyEGIAAgBTcDACAAIAYgBEGAgICAeHGtQiCGhDcDCCADQRBqJAALEAAjACAAa0FwcSIAJAAgAAuNBQEFfwJAIAAoAjwiAigCmAEiBEF/TARAQdCQAkGSC0EUIgAQGBoMAQsgAi0AnwEEQEHQkAIgAkGAAWoiAEH/ASAAEBwiASABQf8BShsiABAYIQMgAigCfARAIAAgA2ohASAAQX9zQYACaiIAQQFIQf3/A0H9/wMgAigCACAEQRRsaigCBCICIAJBgHBxQYCwA0YbIAJB///DAEsbIgJB/wBKckUEQCABIAI6AAAgAUEBaiADayEADAMLAkAgAEECSCACQf8PSnIEfwJ/IABBA0ggAkH//wNKckUEQEEBIQQgASEAIAJBDHZBYHIMAQsgAEEESA0CIAEgAkESdkHwAXI6AAAgAUEBaiEAQQIhBCACQQx2QT9xQYB/cgshBSAAIAU6AAAgASAEaiEBIAJBBnZBP3FBgH9yBSACQQZ2QUByCyEAIAEgADoAACABIAJBP3FBgAFyOgABIAFBAmohAQsgASADayEADAILQf8BIAFMDQEgACADaiACKAIAIARBFGxqKAIEOgAAIABBAWohAAwBCyACLQCgASEDQdCQAiACQYABaiIAQf8BIAAQHCIAIABB/wFKGyIAEBghASADBEAgACABakGaCSAAQX9zQYACaiIDQQMgA0EDSBsiAxAYGiABIAAgA2oiAGogAigCACAEQRRsaigCACACKAIEIARBDGxqLQACaiIBIABBf3NBgAJqIgIgARAcIgEgASACShsiARAYGiAAIAFqIQAMAQsgACABaiACKAIAIARBFGxqKAIAIAIoAgQgBEEMbGotAAJqIgEgAEF/c0GAAmoiAiABEBwiASABIAJKGyIBEBgaIAAgAWohAAsgAEGAAkgEQCAAQdCQAmpBADoAAAsLgAEBAn8jAEGQAmsiBCQAIAQgBEGMAmo2AgggBCAEQQxqIgU2AgAgBCAFNgIEIAAgBCACIAMQkwEgASAEKAIAIgAgBCgCBCAAayICQf8HIAJBgAhJGyIBEBggAWpBADoAACAAIAVHBEAgABAWIAQoAgQgBCgCAGsaCyAEQZACaiQAC0QCAX8BfiABQv///////z+DIQMCfyABQjCIp0H//wFxIgJB//8BRwRAQQQgAg0BGkECQQMgACADhFAbDwsgACADhFALC7UCAwJ/AX4CfAJAAnwgAL0iA0IgiKdB/////wdxIgFBgOC/hARPBEAgAUGAgMCEBEkgA0IAU3JFBEAgAEQAAAAAAADgf6IPCyABQYCAwP8HTwRARAAAAAAAAPC/IACjDwsgAEQAAAAAAMyQwGVBAXMNAkQAAAAAAAAAACADQn9XDQEaDAILIAFB//+/5ANLDQEgAEQAAAAAAADwP6ALDwsgAEQAAAAAAAC4QqAiBL2nQYABaiIBQQR0QfAfcSICQZC5AWorAwAiBSAFIAAgBEQAAAAAAAC4wqChIAJBCHJBkLkBaisDAKEiAKIgACAAIAAgAER0XIcDgNhVP6JEAAT3iKuygz+gokSmoATXCGusP6CiRHXFgv+9v84/oKJE7zn6/kIu5j+goqAgAUGAfnFBgAJtEEEL2AECAX8BfkF/IQICQCAAQgBSIAFC////////////AIMiA0KAgICAgIDA//8AViADQoCAgICAgMD//wBRGw0AIAAgA0KAgICAgICA/z+EhFAEQEEADwsgAUKAgICAgICA/z+DQgBZBEAgAEIAVCABQoCAgICAgID/P1MgAUKAgICAgICA/z9RGw0BIAAgAUKAgICAgICA/z+FhEIAUg8LIABCAFYg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IAJBoAJqEBkLQcCXAkJ/NwMAQYCVAkGAlQIoAgBBAnI2AgAMOgtBkJcCKAIAKAIEDQACQEH4lAItAABBgAFxRQ0AQdicAi0AAEUEQCACQdSLATYC2AIgAkHUiwE2AtQCIAJB1IsBNgLQAkEAQfGxASACQdACahAZQdicAkEBOgAADAELIAJB1IsBNgLAAkEAQdeyASACQcACahAZC0H4lAJB+JQCKAIAQYABcjYCAEHIlgIoAgAhAUEAQTBBARAXIQACQCABBEAgACABKQIANwIAIAAgASkCKDcCKCAAIAEpAiA3AiAgACABKQIYNwIYIAAgASkCEDcCECAAIAEpAgg3AggMAQsgAEIANwIAIABCADcCKCAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AggLIABBADYCACAAQfSTAigCADYCCCAAQfiTAigCADYCDCAAQeyTAigCADYCECAAQfCTAigCADYCFEHIlgIgADYCAAw5C0HIlgJBADYCAAw4C0HIlgIoAgAhAEGQlwIoAgAoAgRFBEBBAEEwQQEQFyEBAkAgAARAIAEgACkCADcCACABIAApAig3AiggASAAKQIgNwIgIAEgACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIDAELIAFCADcCACABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIICyABQQA2AgBByJYCIAE2AgAgAUEBNgIEDDgLIABFDTcgACgCBEUNN0EAQTBBARAXIgEgACkCADcCACABIAApAig3AiggASAAKQIgNwIgIAEgACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIIAFBADYCAEHIlgIgATYCACABQQA2AgQMNwtB5JYCQQE2AgAMNgtB6JYCQQE2AgAMNQtB5JYCQQA2AgAMNAtB6JYCQQA2AgAMMwsgAkGQlwIoAgAiASgCDCIANgKIDCABQQEQjAEiBEUEQCABQZq0AUEAECIaDAILQfiUAkH4lAIoAgBBgAJyNgIAAkAgACwAACIDQVBqQQpPBEAgAC0AAUUNAQsgACACQYgMakEAECQiA0H/AUsNLyACKAKIDC0AAA0vCyADQQBBABCCASIAIAQ2AgwgACAEEBw2AhAgAEHslgIoAgA2AiBB7JYCIAA2AgAMMgtBkJcCKAIAIgAoAgwhAyAAQQEQ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BCEDIAFBADYCwAEgAUEANgKcASABQQA2AgQgASADNgIAIAFCADcDECABQgA3AzAgAUIANwNIIAEgAy8BEiIGNgIYIAMvARQhBSABIAQ2AlQgASACNgJQIAEgBDYCPCABIAI2AjggASAFNgIcIAFCADcDiAEgASACtyIHIAa4IgijOQNwIAFCADcDgAEgASAIIAejOQNgIAFBgP0ANgLYASABQgA3AwggASAEtyIHIAW4IgijOQN4IAEgCCAHozkDaCABIAAoAhg2AtwBIAAoAgghAgNAIAEgAjYCCCABIAMoAgAgAkECdGooAgA2AgQgASAAKAIcEM8BIAAoAgwiAyADKAIAQQFqIgI2AgAgACACNgIIIAIgACgCBCIDKAIESA0ACyABEM4BIAFB4AFqJABBAAu4AwEMfyABKAIwIgQoAhwgAC8BDiILayIJQQAgCUEAShshByAJIAQoAiQiDGoiBSAALwEKIgMgBSADSBshBQJAIAQoAhggAC8BDCINayIDIAQoAiAiDmoiBiAALwEIIgogBiAKSBsiCiADQQAgA0EASiIDGyIGSgRAIAogBmshCAwBCyAEKAIoIA5Bf2pBACADGyANa2ohBgsCfyAFIAdKBEAgBCgCLCEDIAUgB2sMAQsgBCgCLCIDIAxBf2pBACAJQQBKGyALa2ohB0EACyEFIAQoAighBCABIAM2AjggASAENgI0AkACQCAIQQFIIAVBAUhyDQAgACgCACIERQ0AQQAhAiAAQQBBBCAFQQFqEBciAzYCAANAIAMgAkECdGogBCACIAdqQQJ0aigCACAGajYCACAAKAIAIQMgAkEBaiICIAVIDQALIAMgBUECdGpBADYCACAEEBYgACAFOwEKIAAgCDsBCAwBCyACBEAgABB6DAELIAAoAgAQFiAAQQA2AgAgAEEANgIICyAAIAAvAQwgBiABKAI0a2o7AQwgACAALwEOIAcgASgCOGtqOwEOIAAoAgBBAEcL1QEBCn8gASgCHCACLwEOIglrIgZBACAGQQBKGyEEIAYgASgCJCIKaiIFIAIvAQoiAyAFIANIGyEFAkAgASgCGCACLwEMIgtrIgMgASgCICIMaiIHIAIvAQgiAiAHIAJIGyIHIANBACADQQBKIgMbIgJKBEAgByACayEIDAELIAEoAiggDEF/akEAIAMbIAtraiECCyAA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Qb7QACADECILIQEgA0EQaiQAIAEL5wEBA38jAEEwayIEJAAgABAcIQYgAgR/IAIQHAVBCgshBUHckwIoAgAQFkHckwJBAEEBIAUgBmpBA2oQFyIFNgIAAkAgAgRAIAQgAjYCBCAEIAA2AgAgBUG6zwAgBBA+DAELIANB6QdOBEBBkM4AIQZBBCECIANBkM4ASwRAA0AgAkEBaiECIAZBCmwiBiADSQ0ACwsgBCABNgIoIAQgAjYCJCAEIAA2AiAgBUHIzwAgBEEgahA+DAELIAQgATYCFCAEIAA2AhAgBUHAzwAgBEEQahA+C0HckwIoAgAhACAEQTBqJAAgAAveBAEDfyMAQZABayIEJAACQCABRSACRXINACABIAIQYCEBQdiTAigCAARAQQpBgOgBKAIAIgUQJSAFEEcaQdiTAkEANgIACyAEIAE2AoABIABB3c0AIARBgAFqECEgAigCHCIBBEAgBCABNgJwIABB7M0AIARB8ABqECELIAIvAQghASAEIAIvAQo2AmQgBCABNgJgIABB8c0AIARB4ABqECEgAi8BDCIBIAIvAQ4iBXIEQCAEIAU2AlQgBCABNgJQIABB980AIARB0ABqECELIAItABMEQEGBzgBBC0EBIAAQIxoLIAIuARQiAUEATgRAIAQgAUH//wNxNgJAIABBjc4AIARBQGsQIQtBCiAAECUCQCADQQRxRQ0AIAIoAjRFDQAgBCACKAIsNgIwIABBnc4AIARBMGoQIQsCQCACKAIgIgFFDQAgASgCCEEBSA0AQQAhBQNAQbXOAEEMQQEgABAjGiAFQQJ0IgYgASgCAGooAgAgASgCBCAGaigCACAAEJcBQQogABAlIAVBAWoiBSABKAIISA0ACwsCQCACKAIYIgFFDQAgBCABKAIANgIgIABBws4AIARBIGoQISADQQFxRQ0AIAAgAigCGEHezgAQ2QELIAItABJFBEAgAi8BEEUNAQtB5M4AQQNBASAAECMaIAItABIiAQRAIAQgAUECdEGAzwBqKAIANgIQIABB6M4AIARBEGoQIQsgAi8BECIBBEAgBCABQeQAbiICNgIAIAQgASACQeQAbGtB//8DcTYCBCAAQaDPACAEECELQQogABAlCyAEQZABaiQAC8sEAQR/IwBB4ABrIgQkAAJAIAFFDQBB2JMCKAIABEBBCkGA6AEo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b24gJTwlcyVzJT4AJTwlTyU+IGNhbiUsdCB0YWtlIGFuIGFyZ3VtZW50ACU8JU8lPiByZXF1aXJlcyBhIG5vbi1vcHRpb24gYXJndW1lbnQAJTwlTyU+IHJlcXVpcmVzIGFuIGFyZ3VtZW50AChubyBjdXJyZW50IG9wdGlvbiEpAABDTFAgaW50ZXJuYWwgZXJyb3I6IG1vcmUgdGhhbiAxIG9wdGlvbiBoYXMgc2hvcnQgbmFtZSAlPCVjJT4AQ0xQIGludGVybmFsIGVycm9yOiAxLWNoYXIgbG9uZyBuYW1lIGNvbmZsaWN0cyB3aXRoIHNob3J0IG5hbWUgJTwlYyU+AENMUCBpbnRlcm5hbCBlcnJvcjogZHVwbGljYXRlIGxvbmcgbmFtZSAlPCVzJT4AJTwlTyU+IGV4cGVjdHMgYSBub25uZWdhdGl2ZSBpbnRlZ2VyLCBub3QgJTwlcyU+ACU8JU8lPiBleHBlY3RzIGFuIGludGVnZXIsIG5vdCAlPCVzJT4AJTwlTyU+IGV4cGVjdHMgYSByZWFsIG51bWJlciwgbm90ICU8JXMlPgB5ZXMAdHJ1ZQBubwBmYWxzZQAlPCVPJT4gZXhwZWN0cyBhIHRydWUtb3ItZmFsc2UgdmFsdWUsIG5vdCAlPCVzJT4AbWluX21hdGNoID4gMABhcmdjbXAAYW1iaWd1b3VzAGludmFsaWQAb3B0aW9uICU8JVYlPiBpcyAlcwBhbnkgaW50ZWdlcgAwAG5leHRfYXJndW1lbnQAbl9vcHRpb25fY2hhcnMgPCBDbHBfT3B0aW9uQ2hhcnNTaXplAHNldF9vcHRpb25fdGV4dABsZW4gPiAwAGZpbmRfbG9uZwBjbGktPmNvdWxkX2JlX3Nob3J0AHN3aXRjaF90b19zaG9ydF9hcmd1bWVudAAobnVsbCkAXCUwM28AJWQA4oCYACcA4oCZAG91dCBvZiBtZW1vcnkKAChQb3NzaWJpbGl0aWVzIGFyZQAgYW5kIAAsIGFuZCAALCBhbmQgb3RoZXJzAC4pCgAlczogT3V0IG9mIG1lbW9yeSwgZ2l2aW5nIHVwCgAlczogT3V0IG9mIG1lbW9yeSwgZ2l2aW5nIHVwIChodWdlIGFsbG9jYXRpb24pCgBnaWZmdW5jLmMAZ2lmcmVhZC5jAGltYWdlIGNvcnJ1cHRlZCwgbWluX2NvZGVfc2l6ZSB0b28gYmlnAGltYWdlIGNvcnJ1cHRlZCwgbWluX2NvZGVfc2l6ZSB0b28gc21hbGwAaW1hZ2UgY29ycnVwdGVkLCBjb2RlIG91dCBvZiByYW5nZQAobm90IHJlcG9ydGluZyBtb3JlIGVycm9ycykAbWlzc2luZyAlbGQgJXMgb2YgaW1hZ2UgZGF0YQBwaXhlbABwaXhlbHMAJWxkIHN1cGVyZmx1b3VzIHBpeGVscyBvZiBpbWFnZSBkYXRhAHVua25vd24gYmxvY2sgdHlwZSAlZCBhdCBmaWxlIG9mZnNldCAldQB0cmFpbGluZyBnYXJiYWdlIGFmdGVyIEdJRiBpZ25vcmVkAGltYWdlIGhhcyB6ZXJvIHdpZHRoIGFuZC9vciBoZWlnaHQAaW1hZ2UgcG9zaXRpb24gYW5kL29yIGRpbWVuc2lvbnMgb3V0IG9mIHJhbmdlAGJhZCBncmFwaGljIGV4dGVuc2lvbgBORVRTQ0FQRTIuMABBTklNRVhUUzEuMABiYWQgbG9vcCBleHRlbnNpb24AZ2lmdW5vcHQuYwBtYXB0byA+PSAwICYmIG1hcHRvIDwgbmRlc3Rjb2wAbWVyZ2UuYwBtZXJnZV9jb2xvcm1hcF9pZl9wb3NzaWJsZQBHSUZfQ09MT1JFUSgmZGVzdGNvbFttYXB0b10sICZzcmNjb2xbaV0pAHRvbyBtYW55IGNvbG9ycywgdXNpbmcgbG9jYWwgY29sb3JtYXBzCiAgKFlvdSBtYXkgd2FudCB0byB0cnkgJTwtLWNvbG9ycyAyNTYlPi4pAHRvbyBtYW55IGNvbG9ycywgdXNpbmcgbG9jYWwgY29sb3JtYXBzAGRlc3QtPmdsb2JhbABtZXJnZV9zdHJlYW0Ac29tZSBjb2xvcnMgdW5kZWZpbmVkIGJ5IGNvbG9ybWFwAGMtPmhhc3BpeGVsID09IDIgJiYgZm91bmRfdHJhbnNwYXJlbnQgPCAyNTYAbWVyZ2VfaW1hZ2UAZGVzdGNtLT5uY29sIDw9IDI1NgBvcHRpbWl6ZS5jAC4vb3B0dGVtcGxhdGUuYwAlZCBjb2xvcnMgcmVxdWlyZWQgaW4gYSBmcmFtZSAoMjU2IGlzIG1heCkAYm91bmRzLT50b3AgPCBzY3Jl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CgYKBQkGCQIJBA0EDQMIAwoBDQYLAQwDDgUPAwgDCAMMBAsDDQMIBAkGDAQLBgsDCgAMAQsHDAQMBAsFAQ4ACgIJAgsBCAEIAwkEDwcNBw4HDgAKAA4HCQALAQ8ACwALAw8HDgYKBQgACwAIBwsADwAMAQ0GCQAPBAkBCAoFDwYNBg4HDgQMBQ8GCgILAwoDCwMNBgsFDgMOBggFDgUOBwoHCwMNAw0CDgQPBQ8DCAQLBAkFDAMIBQ8CDQUDCgIJBQ8ECQALBwsADgULBQ4HDwYJAAkACAQOBgwACwQPBQgGCgYLBgoDDAUJBgkFDAYMBw4ADgIPBQgCCgMJDgcOBwgBDAIOBA8DCwUMAggACgMMAQ0FDgULAAsDDQcIAQwDDwMOAg8DCwYPAQwBCQMJAwsDCwcLBQwADgYNBgUKBgwDDwMIBwoADwcKBQgBDgUKBw4CDgAOAQgDCAUKBQ8ACAYOAAgCDwQLBgoACAUJBA4BDwMKAQ8ADwUIBw0PAwgACQYMBg8ACwQOAw8DCgUMAwoDCQYJBQ0FDwYOAAkADAQLAw8ECwYPAg8DDgQNAgsBCAUMBwkECAUMAgsAAA0FCwUOBQ8HCQUIAgoDDwYJAwwFCwYOAw0GDQAJAQsDCAMJBAkGDgcIBgwHDQYJBQ0DDwUOAw8EDAQMAg0ADwoHDgEIAgoCDAANAQ0FCwYMAwkGDwEJAQoGCgMPBg8FDwcMBgwACQMMAwsDCAMNAgkDCQYKAgsGCQAJAQkGCgQDCgQJBAkGDQMPAAgECgAOBQ8HDwIMBwoFDwcIAAkACAYOBA8CDwEPAAkFDgAMBwoGCAYLAA0HDgENAgoFCQAODgYNAQwDCAMJBgwEDwIIBQkBCgEIBQ8ACAIMAwwFDAULAgoCCAUKBQwECQMIBA0BDwAMAwgECgMJBQ0FDQMLBAQMAwoGCQAOAAgBCQEJBg8ACgIJBgoHCgIOBAgADQQIAQsGDgcOAAgEDgcOBAkCDAAMAwgFCQYOAAkCDgUKAQ8KAg8GDgMLBg8EDwQNBQsDDAQOBQwADQMIBg8CCgYNAgwGCAMKAw4FCAAKAw0CCQYKBg8EDQIIAw4GCwcNAAoFAg0BCQUKAw8GCgAPBA8EDwYJAA4BCQYMAAsFCQAOBQ4GCQMLBwsBDwEJAw0FDAAJAgkGDQIJBg0HCwcIAA0DCQkGDQYNAAgFDgILBwsCCwIMAwsEDQQKAw8FDQALBgoADQMPBw4DCAQMBgkGCgMOBQ0FCwMNBggCDgMPAwsEDAYECgcLAQoCDgcOAA4EDwAIAA8FDwcLBw4GDAAIAQ8BDgIIAAsECAULAQ8ADAcOAAsECAIIAA4CDgQJBAoHDwUODgANAg4FCwUKAgoGCwMMBQsHCwEMAwsDCQMMBAsGCQUOBQwHDgIMAQgECwcKAw4EDgAOBQsHCwUPAQ4ACgMKAAUMBwoHCwAOBQ4BDgMIAA8ACQUJAQgGDwYPBw0HCQQLAAoGCgcMBw8ACQcOAgsADAcLBw0ACQYOAgsBDwAIAAoKAw8DDwMIBAsDCwYPBgsFDAUNAA8ECAELAwoDDwMOAQ4GDQMLAwsDDQYIAwwFCAQNAwgCDQQIAw4HCAUOBA8FAwkACgAMAwsHCgYIBwwACwEIBQwFDAcLAg4ACgAMAA8CCQUJAA8EDgYJBwsGCgAJAQkADgQMBQkGCgQLBgwFDAwGDwQIBA8HDwMOAAkDDQUOBQsBCQAPAwgHDAcIBQkEDAYMAQoGCQAPAw4ADwMNBQ8FCQYKAA4ADQEPAQgDCAECCAcPAAsBDAEMAA8ACwINAQoFCAcNBgoACwQMBwoBCQEJAAwCCwcPAQsACQIIBAwCDAYOBA4DDQMPAQ4EDwYMDQYLAwwECAQJBAkFDAYKBQ4HDgMKAg0DDgUIAg0BDwYPBAgEDwUKAQ4FDAQNBQsBCQUJAwkACgcKBwsGCgMJAAMPBQgBCQUIBA0GCAQPBgoGDgcLAAkBDAAIBgwGCgMMBw0HCwMIAA0HDAAPBAwFCAQPBQoADwMPAQgBDwQOBg8KBg4ADQQNAQkBDQMLAgwBCAMMAw4GCAQPBAgDDwEJBgsCDgMNBwoECgMIBwsCDAELAQ4DCQYJBw0FCwcKAgkDAQkADgcMBw4FCQYKBg4GDwEOBwoDDAAOBQkGCAEMAA0CCAQJBg8ADgQKBwsFDgIIBA8DCAcNAQkADwAOBQ4ADg8ECgYLAQoCDgMPAQoDCgMIBAwDCgYJBg4CDAMLBAkGDAUPAAoDCAQOAQ4DCwIMBwsCDAYKAQ0ECwQKBQsCCwcACAELBAgECgYLAwoGCgYIAQsBDwcPBgkBCQcIAA4FDAMNBAwADwUMAQwHCQYIAw8ADQYPBw8HDQIPAQ4CDwAIDAUNBQ8BDAEPAQ4GDgIOAg4GCwYLAwwCDQYPAwkFCAIIBQkBCQQJAggEDQENAAsGCwYJAgsDCgEKBgkGCwcPBQUMAAkFCAUJAAoCDQQIBQ4CCQIPBAgCCAAMBgwACgUPBAkDDQAJBA8BDgEJAAkCDgYMAA8HCQIJAA8GCgMPAw0JAQ8FDAMOAA8HCAUOAQsBDQYKBw0ADgUKBwsDDwYLAQwCCAQNBQoCCgYNBQ0ECgUJAwgEDAEMBQsGDgMLBwsHAgsEDAcIAw8DCwQLBwoBCgIKAAsEDAAKAQgHCwEKAQ8HCgILAQkGDgILAQ4EDAINAQkFCAcLBwoHDwQNAwoBCw0FCAAPAwsGDAcPAw8BDwQOBQ0GCAEPBg0FDAIPBAkEDwMOBg4FCQMMBgsFCAIJBQwFDwENAw4CCAAIAAwHDwUADgEIAggCDwIJBgwADAcMBw0ADwYOBQsBDAUIBQgBDgAKBAwGCQYIAAkADwQPBQ0BDwUMBwoGDgQJBg8ADwcNCgQNBQ0FCwUMBQkDCQQIAwkDCgYLAQ8CCAUPAQ0CCwYOBggCDwMOAw0GCQYJAAoCCgcLAQ8DCQMNAwoDCQQKAQQLBwoCDgQPAw8CDwcKAg4BCAAPAggBDAINAQgHDAYLAQoECwIPAA0ADAcLBQwHCAYPBAwHCgYKAAoACwQMBwoNAg4CCgcLAQsHCwcMAwsHDQQLBgwFCwYKBw0ECwMPAw4EDwMIBQoHCgYPAwkDDwELAwkADwEPAw8EDQUIAw8DAwkBDAQOAAsHDwELAw4ACwUKAgoCCAYOBwsACgcOBw8GCQYJAQwHCQQIBw0ADQYMBggBCQEPBAwADAQKAA0ADA0FCgYJAQ0GCwAOBwsHDgUPAg0FDwQJAg0DDgcKAwoDDAMMAggFDwMNAwsDCgQJAw8BDgQLBgoDCAQNAAoECAUFCAMNBA4BDQcJAg4EDgQMBwoGCgUMAgsGDAcNBAsCCwMIBQ8CCgEJAgwADAAKAQwACQcKAA8ECQAIAQ4EDgQNDAIIBgoACAUNAwgFCgMLAg8ADQMIAg8GCQEIAw4BDwUOBwgADAYPBQgFCQQPBQgFDwQMAwkGDAMNBQsHCgEIAwQPAgsCCgYLAw4HDwAKAA4DDAQIBwkDCwANAgwCDQUIBQgCCwQMAgoHCAYKBwwHCwAPBwgHDwAJAgwGDQAJBAkIAwwFDwUNAQgHCAMMBQkFCQYOAQwDDwcKBwgFCAUPAA0BDgcJAQ4HDQIMAwgBDQMIBAwACwMMBQsFCQMMBg4CBQ0CCAYMBwoFDgQLAgsCDQINBQoFCQAKBw0EDwIJAQkFCQYKBAwFDAQKAw4DDwEIBAwFCAUOBwsHDwULAg0BCQoADQYKAg8DCAEMAg4GCAUKBw0BDQEMBwkBCQIMBQwEDAMMAgkACAEPAQoHCgYMBAsBDgILAA4BCQIMAggFDQUGCgcLAAkDCQULAAgADQINBA0FCQQIAggACgAOBgkGCQQOBwkACwcKBwsHDgQOBQ8ECAQLBQ4ACAEOBw4CCwcNDAMNAw4FDwYMAA8ECwUJBQkCDgEMAQ0FDwQLBwwBDQIIAQwADwYOAg4DCgELAwsADAEPAgsBDAQJBAoCDQYKAgIIBAgECQAJAg8FCQYLBw4ACQIMAggACgEJBwgCCQELAgsCCAEJAQsHDQYLAQsACQINBA4BDwIIBw8ADQYJBA0NBQ0BDgAMBgkGDAANAAsDDQYLBwwFDgYOBQ8DDQYOBw8GDwUNBA4FCAIOAw4GDgUKBgoCCQUPBQsBCAUNAwsCAggGCAAJAQ8ACwQPBwgECAENBwsBDQUPAQ8CCQANBQwDDAIIAQoBDQUPAwkDCQIMBQ4GDQEJBgkBCAQPBwoHDw4FDgMMBAoHDAcIAgwBDQILBA0DCAUIAQoHDAYJBQgACAcOBQ0GCAQIAgwGDQUIBwgDCgMNBAwBDQQLAQ4DCAECDQYKAAkBDwAMBAsCCQAJAA0BCAALBQkGDQIPAgwHDAYPAg4BDQEOBAsCDgEJAA8BDAUOBg0CDwMJAQ8HCAEOCwcNAw8GCAQIBA4CDgYNBgsEDgQPBA4DCgIKBQkGCQMJAQsGCQQIBA8ACAQNBAkECQUJAwoCCQUMBggEDAALBAQKBA0BDAcIAA0EDAINAQ4HDwMIBwwDCgQJBAsHCAILAgoADAEOBg4HDQcLAwoACgQJAw0ADQcIBwkHCwIIAQ4PAAsBCQYPAwoHCQEJBwoHCgEMBQgBDwcNAwwCDQIOBw4FCgQIBAsBCgMOAA4GDgUNAggHCgcNAg4CDQIOBQsGBwsFDQELBwgFDgQNAQ4FCgIPBA0HCwcKAQgFCQQMBwoBDQcNBwsADgUOAg4EDAQNBw0HCAIOAg0FCQUJAggBCgwACAINBAwBCwEKAQoEDAILBQgBDwMOAQ0EDgIJAgwCCAQIAgwDCgYLAAsHCgEJAgoADQELBwoGDQEMAQwGDgcCDgQPBw4FCAQNAgoEDQANAQsBDAcMBg0EDQQNAgwCDQENBwoCCwIKBw8HCwUNAggCDgQJAg4ACAEIBwoFDwYOCwcKAgsBDQALAQ8HCAEJBA0ECAQIAwoACQAJAgkHCQYKBw0BDQcOBgsDDAIIAgwFCwUMAgoFDgQMBA0CCQEKAAIMAA0HDQIMBAgBDAQNBgsHDQcNAQkHCgIKAQkCCgELBgkEDQIKAAoCDgANBwoHCgAMAAkADQINAQkADwIOAg0LBwgECgIKBwwBCwcIAg0BCgAKAg0GDgAOBw0GDgUNBA8BCgINBw0HCQQJBg0DDQMIBA0ECgYKBQwECgcLBgkGBA4GCwcNBgoECAQLBggFDQcOBw4BCQAMAQkBDAQOBwoEDQcNBwsECgELBw0EDAEKBAwCCAIMAgoCDAEMBAwCDAgCDQIIAQ0BDAEMAgwCCwEJAgsDDAQIBAwECgYKAQ0CCwIKAQwADgIOBAkCCAENBAgADAQLBgwGCwcKBwsCCgdkaWFnNDUAZGlhZ29uYWwAQZDGAAvkCAgIQAIQIDA4KBgIACQ0PCwcDAQUMTkpGQkBESE9LR0NBRUlNSoaCgISIjI6Hg4GFiY2Pi4LAxMjMzsrGwcXJzc/Lx8PaGFsZnRvbmUAaGFsZgB0cmloYWxmdG9uZQB0cmloYWxmAHNxaGFsZnRvbmUAc3FoYWxmAHNxdWFyZWhhbGZ0b25lAHRyaXZpYWwgYWRhcHRpdmUgcGFsZXR0ZSAob25seSAlZCBjb2xvcnMgaW4gc291cmNlKQAAGQAAABoAAAAbAAAAcGxhbnBvcyA9PSBucGxhbgBwbGFuX2Zyb21fY3BsYW4AKm5ld19uY29sIDwgbmV3X2NtLT5jYXBhY2l0eQB0cnlfYXNzaWduX3RyYW5zcGFyZW5jeQAqbmV3X25jb2wgPT0gMjU2ACh1bnNpZ25lZCkgaSA8ICh1bnNpZ25lZCkga2QzLT5uaXRlbXMALi9rY29sb3IuaABrZDNfZGlzYWJsZQBrZDMtPmRpc2FibGVkIDwgMCB8fCBrZDMtPmRpc2FibGVkID09IGkAZ2lmc2ljbGUAVXNhZ2U6ICVzIFtPUFRJT04gfCBGSUxFIHwgRlJBTUVdLi4uClRyeSAnJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KACdHaWZzaWNsZScgbWFuaXB1bGF0ZXMgR0lGIGltYWdlcy4gSXRzIG1vc3QgY29tbW9uIHVzZXMgaW5jbHVkZSBjb21iaW5pbmcKc2luZ2xlIGltYWdlcyBpbnRvIGFuaW1hdGlvbnMsIGFkZGluZyB0cmFuc3BhcmVuY3ksIG9wdGltaXppbmcgYW5pbWF0aW9ucyBmb3IKc3BhY2UsIGFuZCBwcmludGluZyBpbmZvcm1hdGlvbiBhYm91dCBHSUZzLgoKVXNhZ2U6ICVzIFtPUFRJT04gfCBGSUxFIHwgRlJBTUVdLi4uCgoAUmVwb3J0IGJ1Z3MgdG8gPGVrb2hsZXJAZ21haWwuY29tPi4KVG9vIG11Y2ggaW5mb3JtYXRpb24/IFRyeSAnJXMgLS1oZWxwIHwgbW9yZScuCgAqICVzICVkIGltYWdlJXMKADxzdGRpbj4AAHMAICBsb2dpY2FsIHNjcmVlbiAlZHglZAoAICBnbG9iYWwgY29sb3IgdGFibGUgWyVkXQoAICB8ACAgYmFja2dyb3VuZCAlZAoAICBlbmQgY29tbWVudCAAICBsb29wIGZvcmV2ZXIKACAgbG9vcCBjb3VudCAldQoAICBleHRlbnNpb25zICVkCgAgICsgaW1hZ2UgIyVkIAAjJXMgACVkeCVkACBhdCAlZCwlZAAgaW50ZXJsYWNlZAAgdHJhbnNwYXJlbnQgJWQAICAgIGNvbXByZXNzZWQgc2l6ZSAldQoAICAgIGNvbW1lbnQgACAgICBsb2NhbCBjb2xvciB0YWJsZSBbJWRdCgAgICAgfAAgICAAIGRpc3Bvc2FsICVzAEGAzwALwUQ2KwAAOysAAEArAABLKwAAVCsAAFYrAABYKwAAWisAACBkZWxheSAlZC4lMDJkcwBzdXBwb3J0LmMAJXMuJXMAJXMuJTAzZAAlcy4lMCpkAGZyYW1lIHNwZWNpZmljYXRpb25zIG11c3Qgc3RhcnQgd2l0aCAjAG5vIGZyYW1lIG5hbWVkICU8IyVzJT4AZnJhbWUgJTwjJXMlPiBvdXQgb2YgcmFuZ2UsIGltYWdlIGhhcyAlZCBmcmFtZXMAaW52YWxpZCBkaW1lbnNpb25zICU8JXMlPiAod2FudCBXeEgpAGludmFsaWQgcG9zaXRpb24gJTwlcyU+ICh3YW50ICdYLFknKQBpbnZhbGlkIHNjYWxlIGZhY3RvciAlPCVzJT4gKHdhbnQgWHhZKQBpbnZhbGlkIHJlY3RhbmdsZSAlPCVzJT4gKHdhbnQgWDEsWTEtWDIsWTIgb3IgWDEsWTErV3hIADAxMjM0NTY3ODlBQkNERUZhYmNkZWYAaW52YWxpZCBjb2xvciAlPCVzJT4gKHdhbnQgI1JHQiBvciAjUlJHR0JCKQBpbnZhbGlkIGNvbG9yICU8JXMlPgAlPCVPJT4gdGFrZXMgdHdvIGNvbG9yIGFyZ3VtZW50cwAtAHJiACVzAGZpbGUgbm90IGluIEdJRiBmb3JtYXQAY2FuJSx0IHVzZSBhcyBwYWxldHRlIChubyBnbG9iYWwgY29sb3IgdGFibGUpAHRoZXJlIHdlcmUgZXJyb3JzIHJlYWRpbmcgdGhpcyBHSUYAZW1wdHkgb3V0cHV0IEdJRiBub3Qgd3JpdHRlbgBodWdlIEdJRiwgY29uc2VydmluZyBtZW1vcnkgKHByb2Nlc3NpbmcgbWF5IHRha2UgYSB3aGlsZSkAc3JjaS0+cmVmY291bnQgPiAxAG1lcmdlX2ZyYW1lX2ludGVydmFsACVzOiVzJXMgZmF0YWwgZXJyb3I6IAAlczolcyVzIHdhcm5pbmc6IAAlczolcyVzIAA6ACUuKnMlLipzACAgICAAICUzZDogIyUwMlglMDJYJTAyWABcYQBcYgBcZgBcbgBccgBcdABcdgBcXABcMDAwAFwlMDNvACAgZXh0ZW5zaW9uICVkOiAAYXBwICcAJyVjJyAoMHglMDJYKQAweCUwMlgAIGF0IGVuZAAgYmVmb3JlICMlZAAgcGFja2V0aXplZAAgICAgJTA4eDogACUwMnggICAAJTAyeCUwMnggACAgICAgAG5vbmUAYXNpcwBiYWNrZ3JvdW5kAHByZXZpb3VzADQANQA2ADcAJWcgJWcgJWcAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRgAlMXglMXglMXgAJTJ4JTJ4JTJ4AG1heGltdW0gMjU2IGNvbG9ycyBhbGxvd2VkIGluIGNvbG9ybWFwAGZpbGUgbm90IGluIGNvbG9ybWFwIGZvcm1hdABmMSA+PSAwICYmIGYyIDwgZnNldC0+Y291bnQAbWVyZ2VyX2ZsYXR0ZW4AY3JvcHBpbmcgZGltZW5zaW9ucyBkb24lLHQgZml0IGltYWdlAHRyYW5zcGFyZW50ACVzIGNvbG9yIG91dCBvZiByYW5nZQAlcyBjb2xvciBub3QgaW4gY29sb3JtYXAAZGVzdC0+bmltYWdlcyA+IDAAZml4X3RvdGFsX2Nyb3AAaXJyZWxldmFudCBiYWNrZ3JvdW5kIGNvbG9yCiAgKFRoZSBiYWNrZ3JvdW5kIHdpbGwgYXBwZWFyIHRyYW5zcGFyZW50IGJlY2F1c2UgIHRoZSBmaXJzdCBpbWFnZSBjb250YWlucyB0cmFuc3BhcmVuY3kuKQBpcnJlbGV2YW50IGJhY2tncm91bmQgY29sb3IAaW5wdXQgaW1hZ2VzIGhhdmUgY29uZmxpY3RpbmcgYmFja2dyb3VuZCBjb2xvcnMKICAoVGhpcyBtZWFucyBzb21lIGFuaW1hdGlvbiBmcmFtZXMgbWF5IGFwcGVhciBpbmNvcnJlY3QuKQBpbnB1dCBpbWFnZXMgaGF2ZSBjb25mbGljdGluZyBiYWNrZ3JvdW5kIGNvbG9ycwBNb2RlIG9wdGlvbnM6IGF0IG1vc3Qgb25lLCBiZWZvcmUgYW55IGZpbGVuYW1lcy4KICAtbSwgLS1tZXJnZSAgICAgICAgICAgICAgICAgICBNZXJnZSBtb2RlOiBjb21iaW5lIGlucHV0cywgd3JpdGUgc3Rkb3V0LgogIC1iLCAtLWJhdGNoICAgICAgICAgICAgICAgICAgIEJhdGNoIG1vZGU6IG1vZGlmeSBpbnB1dHMsIHdyaXRlIGJhY2sgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1lIGZpbGVuYW1lcy4KICAtZSwgLS1leHBsb2RlICAgICAgICAgICAgICAgICBFeHBsb2RlIG1vZGU6IHdyaXRlIE4gZmlsZXMgZm9yIGVhY2ggaW5wdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lIHBlciBmcmFtZSwgdG8gJ2lucHV0LmZyYW1lLW51bWJlcicuCiAgLUUsIC0tZXhwbG9kZS1ieS1uYW1lICAgICAgICAgRXhwbG9kZSBtb2RlLCBidXQgd3JpdGUgJ2lucHV0Lm5hbWUnLgoAR2VuZXJhbCBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OIGZvciBpbmZvIGFuZCB2ZXJib3NlLgogIC1JLCAtLWluZm8gICAgICAgICAgICAgICAgICAgIFByaW50IGluZm8gYWJvdXQgaW5wdXQgR0lGcy4gVHdvIC1JJ3MgbWVhbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWwgb3V0cHV0IGlzIG5vdCBzdXBwcmVzc2VkLgogICAgICAtLWNvbG9yLWluZm8sIC0tY2luZm8gICAgIC0taW5mbyBwbHVzIGNvbG9ybWFwIGRldGFpbHMuCiAgICAgIC0tZXh0ZW5zaW9uLWluZm8sIC0teGluZm8gLS1pbmZvIHBsdXMgZXh0ZW5zaW9uIGRldGFpbHMuCiAgICAgIC0tc2l6ZS1pbmZvLCAtLXNpbmZvICAgICAgLS1pbmZvIHBsdXMgY29tcHJlc3Npb24gaW5mb3JtYXRpb24uCiAgLVYsIC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgUHJpbnRzIHByb2dyZXNzIGluZm9ybWF0aW9uLgAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgIFByaW50IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KICAgICAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICBQcmludCB2ZXJzaW9uIG51bWJlciBhbmQgZXhpdC4KICAtbywgLS1vdXRwdXQgRklMRSAgICAgICAgICAgICBXcml0ZSBvdXRwdXQgdG8gRklMRS4KICAtdywgLS1uby13YXJuaW5ncyAgICAgICAgICAgICBEb24ndCByZXBvcnQgd2FybmluZ3MuCiAgICAgIC0tbm8taWdub3JlLWVycm9ycyAgICAgICAgUXVpdCBvbiB2ZXJ5IGVycm9uZW91cyBpbnB1dCBHSUZzLgogICAgICAtLWNvbnNlcnZlLW1lbW9yeSAgICAgICAgIENvbnNlcnZlIG1lbW9yeSBhdCB0aGUgZXhwZW5zZSBvZiBzcGVlZC4KICAgICAgLS1tdWx0aWZpbGUgICAgICAgICAgICAgICBTdXBwb3J0IGNvbmNhdGVuYXRlZCBHSUYgZmlsZXMuCgBGcmFtZSBzZWxlY3Rpb25zOiAgICAgICAgICAgICAgICNudW0sICNudW0xLW51bTIsICNudW0xLSwgI25hbWUKCkZyYW1lIGNoYW5nZSBvcHRpb25zOgogIC0tZGVsZXRlIEZSQU1FUyAgICAgICAgICAgICAgIERlbGV0ZSBGUkFNRVMgZnJvbSBpbnB1dC4KICAtLWluc2VydC1iZWZvcmUgRlJBTUUgR0lGUyAgICBJbnNlcnQgR0lGUyBiZWZvcmUgRlJBTUVTIGluIGlucHV0LgogIC0tYXBwZW5kIEdJRlMgICAgICAgICAgICAgICAgIEFwcGVuZCBHSUZTIHRvIGlucHV0LgogIC0tcmVwbGFjZSBGUkFNRVMgR0lGUyAgICAgICAgIFJlcGxhY2UgRlJBTUVTIHdpdGggR0lGUyBpbiBpbnB1dC4KICAtLWRvbmUgICAgICAgICAgICAgICAgICAgICAgICBEb25lIHdpdGggZnJhbWUgY2hhbmdlcy4KAEltYWdlIG9wdGlvbnM6IEFsc28gLS1uby1PUFRJT04gYW5kIC0tc2FtZS1PUFRJT04uCiAgLUIsIC0tYmFja2dyb3VuZCBDT0wgICAgICAgICAgTWFrZSBDT0wgdGhlIGJhY2tncm91bmQgY29sb3IuCiAgICAgIC0tY3JvcCBYLFkrV3hILCAtLWNyb3AgWCxZLVgyLFkyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JvcCB0aGUgaW1hZ2UuCiAgICAgIC0tY3JvcC10cmFuc3BhcmVuY3kgICAgICAgQ3JvcCB0cmFuc3BhcmVudCBib3JkZXJzIG9mZiB0aGUgaW1hZ2UuCiAgICAgIC0tZmxpcC1ob3Jpem9udGFsLCAtLWZsaXAtdmVydGljYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGlwIHRoZSBpbWFnZS4AICAtaSwgLS1pbnRlcmxhY2UgICAgICAgICAgICAgICBUdXJuIG9uIGludGVybGFjaW5nLgogIC1TLCAtLWxvZ2ljYWwtc2NyZWVuIFd4SCAgICAgIFNldCBsb2dpY2FsIHNjcmVlbiB0byBXeEguCiAgLXAsIC0tcG9zaXRpb24gWCxZICAgICAgICAgICAgU2V0IGZyYW1lIHBvc2l0aW9uIHRvIChYLFkpLgogICAgICAtLXJvdGF0ZS05MCwgLS1yb3RhdGUtMTgwLCAtLXJvdGF0ZS0yNzAsIC0tbm8tcm90YXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm90YXRlIHRoZSBpbWFnZS4KICAtdCwgLS10cmFuc3BhcmVudCBDT0wgICAgICAgICBNYWtlIENPTCB0cmFuc3BhcmVudC4KAEV4dGVuc2lvbiBvcHRpb25zOgogICAgICAtLWFwcC1leHRlbnNpb24gTiBEICAgICAgIEFkZCBhbiBhcHAgZXh0ZW5zaW9uIG5hbWVkIE4gd2l0aCBkYXRhIEQuCiAgLWMsIC0tY29tbWVudCBURVhUICAgICAgICAgICAgQWRkIGEgY29tbWVudCBiZWZvcmUgdGhlIG5leHQgZnJhbWUuCiAgICAgIC0tZXh0ZW5zaW9uIE4gRCAgICAgICAgICAgQWRkIGFuIGV4dGVuc2lvbiBudW1iZXIgTiB3aXRoIGRhdGEgRC4KICAtbiwgLS1uYW1lIFRFWFQgICAgICAgICAgICAgICBTZXQgbmV4dCBmcmFtZSdzIG5hbWUuCiAgICAgIC0tbm8tY29tbWVudHMsIC0tbm8tbmFtZXMsIC0tbm8tZXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZSBjb21tZW50cyAobmFtZXMsIGV4dGVuc2lvbnMpIGZyb20gaW5wdXQuAEFuaW1hdGlvbiBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OIGFuZCAtLXNhbWUtT1BUSU9OLgogIC1kLCAtLWRlbGF5IFRJTUUgICAgICAgICAgICAgIFNldCBmcmFtZSBkZWxheSB0byBUSU1FIChpbiAxLzEwMHNlYykuCiAgLUQsIC0tZGlzcG9zYWwgTUVUSE9EICAgICAgICAgU2V0IGZyYW1lIGRpc3Bvc2FsIHRvIE1FVEhPRC4KICAtbCwgLS1sb29wY291bnRbPU5dICAgICAgICAgICBTZXQgbG9vcCBleHRlbnNpb24gdG8gTiAoZGVmYXVsdCBmb3JldmVyKS4KICAtTywgLS1vcHRpbWl6ZVs9TEVWRUxdICAgICAgICBPcHRpbWl6ZSBvdXRwdXQgR0lGcy4KICAtVSwgLS11bm9wdGltaXplICAgICAgICAgICAgICBVbm9wdGltaXplIGlucHV0IEdJRnMuACAgLWosIC0tdGhyZWFkc1s9VEhSRUFEU10gICAgICAgVXNlIG11bHRpcGxlIHRocmVhZHMgdG8gaW1wcm92ZSBzcGVlZC4ACldob2xlLUdJRiBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OLgogICAgICAtLWNhcmVmdWwgICAgICAgICAgICAgICAgIFdyaXRlIGxhcmdlciBHSUZzIHRoYXQgYXZvaWQgYnVncyBpbiBvdGhlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1zLgogICAgICAtLWNoYW5nZS1jb2xvciBDT0wxIENPTDIgIENoYW5nZSBDT0wxIHRvIENPTDIgdGhyb3VnaG91dC4KICAtaywgLS1jb2xvcnMgTiAgICAgICAgICAgICAgICBSZWR1Y2UgdGhlIG51bWJlciBvZiBjb2xvcnMgdG8gTi4KICAgICAgLS1jb2xvci1tZXRob2QgTUVUSE9EICAgICBTZXQgbWV0aG9kIGZvciBjaG9vc2luZyByZWR1Y2VkIGNvbG9ycy4KICAtZiwgLS1kaXRoZXIgICAgICAgICAgICAgICAgICBEaXRoZXIgaW1hZ2UgYWZ0ZXIgY2hhbmdpbmcgY29sb3JtYXAuACAgICAgIC0tZ2FtbWEgRyAgICAgICAgICAgICAgICAgU2V0IGdhbW1hIGZvciBjb2xvciByZWR1Y3Rpb24gWzIuMl0uACAgICAgIC0tbG9zc3lbPUxPU1NJTkVTU10gICAgICAgQWx0ZXIgaW1hZ2UgY29sb3JzIHRvIHNocmluayBvdXRwdXQgZmlsZSBzaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgdGhlIGNvc3Qgb2YgYXJ0aWZhY3RzIGFuZCBub2lzZS4KICAgICAgLS1yZXNpemUgV3hIICAgICAgICAgICAgICBSZXNpemUgdGhlIG91dHB1dCBHSUYgdG8gV3hILgogICAgICAtLXJlc2l6ZS13aWR0aCBXICAgICAgICAgIFJlc2l6ZSB0byB3aWR0aCBXIGFuZCBwcm9wb3J0aW9uYWwgaGVpZ2h0LgogICAgICAtLXJlc2l6ZS1oZWlnaHQgSCAgICAgICAgIFJlc2l6ZSB0byBoZWlnaHQgSCBhbmQgcHJvcG9ydGlvbmFsIHdpZHRoLgogICAgICAtLXJlc2l6ZS1maXQgV3hIICAgICAgICAgIFJlc2l6ZSBpZiBuZWNlc3NhcnkgdG8gZml0IHdpdGhpbiBXeEguACAgICAgIC0tc2NhbGUgWEZBQ1RPUlt4WUZBQ1RPUl0gU2NhbGUgdGhlIG91dHB1dCBHSUYgYnkgWEZBQ1RPUnhZRkFDVE9SLgogICAgICAtLXJlc2l6ZS1tZXRob2QgTUVUSE9EICAgIFNldCByZXNpemluZyBtZXRob2QuCiAgICAgIC0tcmVzaXplLWNvbG9ycyBOICAgICAgICAgUmVzaXplIGNhbiBhZGQgbmV3IGNvbG9ycyB1cCB0byBOLgogICAgICAtLXRyYW5zZm9ybS1jb2xvcm1hcCBDTUQgIFRyYW5zZm9ybSBlYWNoIG91dHB1dCBjb2xvcm1hcCBieSBzaGVsbCBDTUQuCiAgICAgIC0tdXNlLWNvbG9ybWFwIENNQVAgICAgICAgU2V0IG91dHB1dCBHSUYncyBjb2xvcm1hcCB0byBDTUFQLCB3aGljaCBjYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSAnd2ViJywgJ2dyYXknLCAnYncnLCBvciBhIEdJRiBmaWxlLgoAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAP////////////////////////////////////8KAAAACwAAAAwAAAANAAAADgAAAA8AAAD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////woAAAALAAAADAAAAA0AAAAOAAAADwAAAHhmb3JtLmMAAAAAAC90bXAvZ2lmc2ljbGUuWFhYWFhYAGNhbiUsdCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUhACVzICA+JXMAdwBjYW4lLHQgcnVuIGNvbG9yIHRyYW5zZm9ybWF0aW9uIGNvbW1hbmQ6ICVzACVkICVkICVkCgBjb2xvciB0cmFuc2Zvcm1hdGlvbiBlcnJvcjogJXMAY29sb3IgdHJhbnNmb3JtYXRpb24gY29tbWFuZCBmYWlsZWQAcgBjb2xvciB0cmFuc2Zvcm1hdGlvbiBjb21tYW5kIGdlbmVyYXRlZCBubyBvdXRwdXQAPGNvbG9yIHRyYW5zZm9ybWF0aW9uPgB0b28gZmV3IGNvbG9ycyBpbiBjb2xvciB0cmFuc2Zvcm1hdGlvbiByZXN1bHRzAHRvbyBtYW55IGNvbG9ycyBpbiBjb2xvciB0cmFuc2Zvcm1hdGlvbiByZXN1bHRzAHJvdGF0aW9uID09IDEgfHwgcm90YXRpb24gPT0gMwByb3RhdGVfaW1hZ2UAbmV3IGltYWdlIGlzIHRvbyBsYXJnZSAobWF4IHNpemUgNjU1MzV4NjU1MzUpAGdmcy0+bmltYWdlcyA+IDAAcmVzaXplX3N0cmVhbQBpbWFnZSB0b28gY29tcGxleCBmb3IgbXVsdGl0aHJlYWRlZCByZXNpemUsIHVzaW5nIDEgdGhyZWFkCiAgKFRyeSBydW5uaW5nIHRoZSBHSUYgdGhyb3VnaCAlPGdpZnNpY2xlIC1VJT4uKQBzY3R4LT5rZDMgPT0gJnNjdHgtPmdsb2JhbF9rZDMAc2NhbGVfaW1hZ2VfdXBkYXRlX2dsb2JhbF9rZDMAKHVuc2lnbmVkKSBpIDwgKHVuc2lnbmVkKSBrZDMtPm5pdGVtcwAuL2tjb2xvci5oAGtkM19kaXNhYmxlAGtkMy0+ZGlzYWJsZWQgPCAwIHx8IGtkMy0+ZGlzYWJsZWQgPT0gaQAha3NzLT5kYXRhICYmICFrc3MtPnNjcmF0Y2gAa3NzY3JlZW5faW5pdAAha2NzLT5kYXRhICYmICFrY3MtPnNjcmF0Y2gAa2NzY3JlZW5faW5pdAAodW5zaWduZWQpIGdmaS0+bGVmdCArIGdmaS0+d2lkdGggPD0ga3NzLT53aWR0aABrc3NjcmVlbl9hcHBseQAodW5zaWduZWQpIGdmaS0+dG9wICsgZ2ZpLT5oZWlnaHQgPD0ga3NzLT5oZWlnaHQAa3NzY3JlZW5fZGlzcG9zZQAodW5zaWduZWQpIGdmaS0+bGVmdCArIGdmaS0+d2lkdGggPD0ga2NzLT53aWR0aABrY3NjcmVlbl9kaXNwb3NlACh1bnNpZ25lZCkgZ2ZpLT50b3AgKyBnZmktPmhlaWdodCA8PSBrY3MtPmhlaWdodABrY3NjcmVlbl9hcHBseQB3LT5pcG9zID49IHlpMCAmJiB3LT5pcG9zIDwgeWkxAHNjYWxlX2ltYWdlX2RhdGFfd2VpZ2h0ZWQAYXBwZW5kAGFwcC1leHRlbnNpb24Abm8tYXBwLWV4dGVuc2lvbnMAYmFja2dyb3VuZABiYXRjaABiZwBjYXJlZnVsAGNoYW5nZS1jb2xvcgBjaW5mbwBjbGlwAGNvbG9ycwBjb2xvci1tZXRob2QAY29sb3ItaW5mbwBjb21tZW50AG5vLWNvbW1lbnRzAGNvbnNlcnZlLW1lbW9yeQBjcm9wAGNyb3AtdHJhbnNwYXJlbmN5AGRlbGF5AGRlbGV0ZQBkaXNwb3NhbABkaXRoZXIAZG9uZQBleHBsb2RlAGV4cGxvZGUtYnktbmFtZQBleHRlbnNpb24Abm8tZXh0ZW5zaW9uAG5vLWV4dGVuc2lvbnMAZXh0ZW5zaW9uLWluZm8AZmxpcC1ob3Jpem9udGFsAGZsaXAtdmVydGljYWwAbm8tZmxpcABnYW1tYQBncmF5AGhlbHAAaWdub3JlLWVycm9ycwBpbmZvAGluc2VydC1iZWZvcmUAaW50ZXJsYWNlAGxvZ2ljYWwtc2NyZWVuAGxvb3Bjb3VudABsb3NzeQBtZXJnZQBtZXRob2QAbXVsdGlmaWxlAG5hbWUAbmV4dGZpbGUAbm8tbmFtZXMAb3B0aW1pemUAb3V0cHV0AHBvc2l0aW9uAHJlcGxhY2UAcmVzaXplAHJlc2l6ZS13aWR0aAByZXNpemUtaGVpZ2h0AHJlc2l6AHJlc2kAcmVzAHJlc2l6ZS1maXQAcmVzaXplLWZpdC13aWR0aAByZXNpemUtZml0LWhlaWdodAByZXNpemUtZmkAcmVzaXplLWYAcmVzaXplLXRvdWNoAHJlc2l6ZS10b3VjaC13aWR0aAByZXNpemUtdG91Y2gtaGVpZ2h0AHJlc2l6ZS10b3VjAHJlc2l6ZS10b3UAcmVzaXplLXRvAHJlc2l6ZS10AHJlc2l6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ZQB0cmFpbGluZyBnYXJiYWdlIGlnbm9yZWQAZmlsZSBub3QgaW4gR0lGIGZvcm1hdAAlczogJTwtLW11bHRpZmlsZSU+IGlzIHVzZWZ1bCBvbmx5IGluIG1lcmdlIG1vZGUAI3N0ZGluIwBHSUYgdG9vIGNvbXBsZXggdG8gdW5vcHRpbWl6ZQogIChUaGUgcmVhc29uIHdhcyBsb2NhbCBjb2xvciB0YWJsZXMgb3IgY29tcGxleCB0cmFuc3BhcmVuY3kuCiAgVHJ5IHJ1bm5pbmcgdGhlIEdJRiB0aHJvdWdoICU8Z2lmc2ljbGUgLS1jb2xvcnM9MjU1JT4gZmlyc3QuKQBHSUYgdG9vIGNvbXBsZXggdG8gdW5vcHRpbWl6ZQAtAGluZmluaXRlAGZvcmV2ZXIAbm9uZQBhc2lzAHByZXZpb3VzAGRpdmVyc2l0eQBibGVuZC1kaXZlcnNpdHkAbWVkaWFuLWN1dABrZWVwLWVtcHR5AG5vLWtlZXAtZW1wdHkAZHJvcC1lbXB0eQBuby1kcm9wLWVtcHR5AHBvaW50AHNhbXBsZQBtaXgAYm94AGNhdHJvbQBsYW5jem9zAGxhbmN6b3MyAGxhbmN6b3MzAG1pdGNoZWxsAGZhc3QAZ29vZAAAAAAAALBGAAD4RQAA60UAAGtZAACwRQAA8EYAABdHAADURQAAJUYAAHhZAAB9WQAAAAAAAMlGAACGWQAAlVkAAKJZAACuWQAAAUYAALxZAADFWQAAXUUAANVZAAAoRwAA6lkAAH9GAAD+WQAADFoAAGRpc3Bvc2FsIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA3AENPTE9SMiBtdXN0IGJlIGluIFJHQiBmb3JtYXQgaW4gJTwtLWNoYW5nZS1jb2xvciBDT0xPUjEgQ09MT1IyJT4AYXJndW1lbnQgdG8gJU8gbXVzdCBiZSBiZXR3ZWVuIDIgYW5kIDI1NgBkZWZhdWx0AHBvc3Rlcml6ZQAlPCVzJT4gaXMgbm90IGEgdmFsaWQgZGl0aGVyAHNSR0IAc3JnYgAlTyBzaG91bGQgYmUgYSBudW1iZXIgb3IgJTxzcmdiJT4Ab25lIG9mIFcgYW5kIEggbXVzdCBiZSBwb3NpdGl2ZSBpbiAlPCVzIFd4SCU+ACVzIGFyZ3VtZW50IG11c3QgYmUgcG9zaXRpdmUAJXMgWCBhbmQgWSBmYWN0b3JzIG11c3QgYmUgcG9zaXRpdmUAJXMgY2FuIGJlIGF0IG1vc3QgMjU2AExDREYgR2lmc2ljbGUgJXMKADEuOTIAZnJhbWUAaW5wdXQAAAAFWwAAFFsAACU8LS1pbmZvJT4gc3VwcHJlc3NlcyBub3JtYWwgb3V0cHV0LCBjYW4lLHQgdXNlIHdpdGggYW4KICBvdXRwdXQgbW9kZSBsaWtlICU8LS1tZXJnZSU+IG9yICU8LS1iYXRjaCU+LgogIChUcnkgJTwtSUklPiwgd2hpY2ggZG9lc24lLHQgc3VwcHJlc3Mgbm9ybWFsIG91dHB1dC4pAHRvbyBsYXRlIHRvIGNoYW5nZSBtb2RlcwBJcyBhIHRlcm1pbmFsAHJiACVzADx1bmtub3duPgAlczojJWQAcmVhZCBlcnJvcjogAAAlcyVzACVzJXMgKCVkIHRpbWVzKQAocGx1cyBtb3JlIGVycm9yczsgaXMgdGhpcyBHSUYgY29ycnVwdD8pAG1pc3NpbmcgJWx1IHBpeGVsAGZhdGFsIGVycm9yOiB0b28gbWFueSBtaXNzaW5nIHBpeGVscywgZ2l2aW5nIHVwAHcAbWVyZ2VfYW5kX3dyaXRlX2ZyYW1lcwAjc3Rkb3V0IwB0cml2aWFsIGFkYXB0aXZlIHBhbGV0dGUgKG9ubHkgJWQgY29sb3JzIGluIHNvdXJjZSkAY2FuJ3QgaGFwcGVuAHdiADxzdGRvdXQ+AElzIGEgdGVybWluYWw6IHRyeSBgLW8gT1VUUFVURklMRWAAcmVkdW5kYW50ICVzIG9wdGlvbgogIChUaGUgJXMgb3B0aW9uIHdhcyBvdmVycmlkZGVuIGJ5IGFub3RoZXIgJXMgb3B0aW9uCiAgYmVmb3JlIGl0IGhhZCBhbnkgZWZmZWN0LikAcmVkdW5kYW50ICVzIG9wdGlvbgB0cmFuc3BhcmVuY3kAZmxpcAByb3RhdGlvbgBsb2dpY2FsIHNjcmVlbgBvcHRpbWl6YXRpb24Ab3V0cHV0IGZpbGUAY29sb3JtYXAgc2l6ZQBjb2xvcm1hcABjb2xvcm1hcCBtZXRob2QAY29sb3IgdHJhbnNmb3JtYXRpb24AbWVtb3J5IGNvbnNlcnZhdGlvbgByZXNpemUgbWV0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c3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAByd2EAgIYAABCHAACghwAAAAAAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEHh6AELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBm+kBCwEMAEGn6QELFQwAAAAADAAAAAAJDAAAAAAADAAADABB1ekBCwEOAEHh6QELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBj+oBCwEQAEGb6gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB0uoBCw4SAAAAEhISAAAAAAAACQBBg+sBCwELAEGP6wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBBvesBCwEMAEHJ6wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBgOwBCzAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AQdzsAQsBPwBBg+0BCwX//////wBB0O0BC4AEAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAYAAAANQAAAHEAAABr////zvv//5K///9pbmZpbml0eQBuYW4AQeDxAQs2CgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QXRdJ4AV529KoBwUg///z4nWFhYWFhYAEGg8gEL1xUDAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAGcRHAM1nwwAJ6NwAWYMqAIt2xACmHJYARK/dABlX0QClPgUABQf/ADN+PwDCMugAmE/eALt9MgAmPcMAHmvvAJ/4XgA1HzoAf/LKAPGHHQB8kCEAaiR8ANVu+gAwLXcAFTtDALUUxgDDGZ0ArcTCACxNQQAMAF0Ahn1GAONxLQCbxpoAM2IAALTSfAC0p5cAN1XVANc+9gCjEBgATXb8AGSd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";function pe(){try{if(l)return new Uint8Array(l);if(o)return o(P);throw"both async and sync fetching of the wasm failed"}catch(e){D(e)}}function he(){var e=function(){var r=new Error;if(!r.stack){try{throw new Error}catch(e){r=e}if(!r.stack)return"(no stack trace available)"}return r.stack.toString()}();return h.extraStackTrace&&(e+="\\n"+h.extraStackTrace()),e.replace(/\\b_Z[\\w\\d_]+/g,function(e){return e===e?e:e+" ["+e+"]"})}J.push({func:function(){_e()}});var me=s?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()},we=!0;function A(e){return k[De()>>2]=e}var x={splitPath:function(e){return/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||r?e:".")&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var e=x.splitPath(e),r=e[0],e=e[1];return r||e?r+(e=e&&e.substr(0,e.length-1)):"."},basename:function(e){if("/"===e)return"/";var r=e.lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return x.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return x.normalize(e.join("/"))},join2:function(e,r){return x.normalize(e+"/"+r)}},R={resolve:function(){for(var e="",r=!1,t=arguments.length-1;-1<=t&&!r;t--){var n=0<=t?arguments[t]:T.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r="/"===n.charAt(0)}return(r?"/":"")+(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;0<=t&&""===e[t];t--);return t<r?[]:e.slice(r,t-r+1)}e=R.resolve(e).substr(1),r=R.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}for(var u=[],s=a;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(a))).join("/")}},M={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){M.ttys[e]={input:[],output:[],ops:r},T.registerDevice(e,M.stream_ops)},stream_ops:{open:function(e){var r=M.ttys[e.node.rdev];if(!r)throw new T.ErrnoError(43);e.tty=r,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new T.ErrnoError(60);for(var i,a=0,s=0;s<n;s++){try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new T.ErrnoError(29)}if(void 0===i&&0===a)throw new T.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new T.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,r[t+i])}catch(e){throw new T.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var r=null;if(s){var t=Buffer.alloc?Buffer.alloc(256):new Buffer(256),n=0;try{n=i.readSync(process.stdin.fd,t,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}r=0<n?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\\n");if(!r)return null;e.input=ye(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(m(g(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&0<e.output.length&&(m(g(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(w(g(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&0<e.output.length&&(w(g(e.output,0)),e.output=[])}}},B={ops_table:null,mount:function(e){return B.createNode(null,"/",16895,0)},createNode:function(e,r,t,n){if(T.isBlkdev(t)||T.isFIFO(t))throw new T.ErrnoError(63);B.ops_table||(B.ops_table={dir:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr,lookup:B.node_ops.lookup,mknod:B.node_ops.mknod,rename:B.node_ops.rename,unlink:B.node_ops.unlink,rmdir:B.node_ops.rmdir,readdir:B.node_ops.readdir,symlink:B.node_ops.symlink},stream:{llseek:B.stream_ops.llseek}},file:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr},stream:{llseek:B.stream_ops.llseek,read:B.stream_ops.read,write:B.stream_ops.write,allocate:B.stream_ops.allocate,mmap:B.stream_ops.mmap,msync:B.stream_ops.msync}},link:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr,readlink:B.node_ops.readlink},stream:{}},chrdev:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr},stream:T.chrdev_stream_ops}});t=T.createNode(e,r,t,n);return T.isDir(t.mode)?(t.node_ops=B.ops_table.dir.node,t.stream_ops=B.ops_table.dir.stream,t.contents={}):T.isFile(t.mode)?(t.node_ops=B.ops_table.file.node,t.stream_ops=B.ops_table.file.stream,t.usedBytes=0,t.contents=null):T.isLink(t.mode)?(t.node_ops=B.ops_table.link.node,t.stream_ops=B.ops_table.link.stream):T.isChrdev(t.mode)&&(t.node_ops=B.ops_table.chrdev.node,t.stream_ops=B.ops_table.chrdev.stream),t.timestamp=Date.now(),e&&(e.contents[r]=t),t},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var r=[],t=0;t<e.usedBytes;++t)r.push(e.contents[t]);return r}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,r){var t=e.contents?e.contents.length:0;r<=t||(r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256)),t=e.contents,e.contents=new Uint8Array(r),0<e.usedBytes&&e.contents.set(t.subarray(0,e.usedBytes),0))},resizeFileStorage:function(e,r){if(e.usedBytes!=r){if(0==r)return e.contents=null,void(e.usedBytes=0);var t;if(!e.contents||e.contents.subarray)return t=e.contents,e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),void(e.usedBytes=r);if(e.contents||(e.contents=[]),e.contents.length>r)e.contents.length=r;else for(;e.contents.length<r;)e.contents.push(0);e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=T.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,T.isDir(e.mode)?r.size=4096:T.isFile(e.mode)?r.size=e.usedBytes:T.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&B.resizeFileStorage(e,r.size)},lookup:function(e,r){throw T.genericErrors[44]},mknod:function(e,r,t,n){return B.createNode(e,r,t,n)},rename:function(e,r,t){if(T.isDir(e.mode)){var n;try{n=T.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new T.ErrnoError(55)}delete e.parent.contents[e.name],e.name=t,(r.contents[t]=e).parent=r},unlink:function(e,r){delete e.contents[r]},rmdir:function(e,r){for(var t in T.lookupNode(e,r).contents)throw new T.ErrnoError(55);delete e.contents[r]},readdir:function(e){var r,t=[".",".."];for(r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,r,t){e=B.createNode(e,r,41471,0);return e.link=t,e},readlink:function(e){if(T.isLink(e.mode))return e.link;throw new T.ErrnoError(28)}},stream_ops:{read:function(e,r,t,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(8<a&&i.subarray)r.set(i.subarray(o,o+a),t);else for(var s=0;s<a;s++)r[t+s]=i[o+s];return a},write:function(e,r,t,n,o,i){if(r.buffer===y.buffer&&(i=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),r.subarray&&(!a.contents||a.contents.subarray)){if(i)return a.contents=r.subarray(t,t+n),a.usedBytes=n;if(0===a.usedBytes&&0===o)return a.contents=r.slice(t,t+n),a.usedBytes=n;if(o+n<=a.usedBytes)return a.contents.set(r.subarray(t,t+n),o),n}if(B.expandFileStorage(a,o+n),a.contents.subarray&&r.subarray)a.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=r[t+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,r,t){if(1===t?r+=e.position:2===t&&T.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new T.ErrnoError(28);return r},allocate:function(e,r,t){B.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap:function(e,r,t,n,o,i){if(H(0===r),!T.isFile(e.node.mode))throw new T.ErrnoError(43);var a,s,r=e.node.contents;if(2&i||r.buffer!==v){if((0<n||n+t<r.length)&&(r=r.subarray?r.subarray(n,n+t):Array.prototype.slice.call(r,n,n+t)),s=!0,!(a=be(t)))throw new T.ErrnoError(48);y.set(r,a)}else s=!1,a=r.byteOffset;return{ptr:a,allocated:s}},msync:function(e,r,t,n,o){if(T.isFile(e.node.mode))return 2&o||B.stream_ops.write(e,r,0,n,t,!1),0;throw new T.ErrnoError(43)}}},T={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(e instanceof T.ErrnoError)return A(e.errno);throw e+" : "+he()},lookupPath:function(e,r){if(r=r||{},!(e=R.resolve(T.cwd(),e)))return{path:"",node:null};var t,n={follow_mount:!0,recurse_count:0};for(t in n)void 0===r[t]&&(r[t]=n[t]);if(8<r.recurse_count)throw new T.ErrnoError(32);for(var o=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),i=T.root,a="/",s=0;s<o.length;s++){var u=s===o.length-1;if(u&&r.parent)break;if(i=T.lookupNode(i,o[s]),a=x.join2(a,o[s]),!T.isMountpoint(i)||u&&!r.follow_mount||(i=i.mounted.root),!u||r.follow)for(var c=0;T.isLink(i.mode);){var f=T.readlink(a),a=R.resolve(x.dirname(a),f),i=T.lookupPath(a,{recurse_count:r.recurse_count}).node;if(40<c++)throw new T.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var r,t;;){if(T.isRoot(e))return t=e.mount.mountpoint,r?"/"!==t[t.length-1]?t+"/"+r:t+r:t;r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%T.nameTable.length},hashAddNode:function(e){var r=T.hashName(e.parent.id,e.name);e.name_next=T.nameTable[r],T.nameTable[r]=e},hashRemoveNode:function(e){var r=T.hashName(e.parent.id,e.name);if(T.nameTable[r]===e)T.nameTable[r]=e.name_next;else for(var t=T.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=T.mayLookup(e);if(t)throw new T.ErrnoError(t,e);for(var t=T.hashName(e.id,r),n=T.nameTable[t];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return T.lookup(e,r)},createNode:function(e,r,t,n){e=new T.FSNode(e,r,t,n);return T.hashAddNode(e),e},destroyNode:function(e){T.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=T.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return T.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var r=T.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate:function(e,r){try{T.lookupNode(e,r);return 20}catch(e){}return T.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var n;try{n=T.lookupNode(e,r)}catch(e){return e.errno}r=T.nodePermissions(e,"wx");if(r)return r;if(t){if(!T.isDir(n.mode))return 54;if(T.isRoot(n)||T.getPath(n)===T.cwd())return 10}else if(T.isDir(n.mode))return 31;return 0},mayOpen:function(e,r){return e?T.isLink(e.mode)?32:T.isDir(e.mode)&&("r"!==T.flagsToPermissionString(r)||512&r)?31:T.nodePermissions(e,T.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd:function(e,r){r=r||T.MAX_OPEN_FDS;for(var t=e=e||0;t<=r;t++)if(!T.streams[t])return t;throw new T.ErrnoError(33)},getStream:function(e){return T.streams[e]},createStream:function(e,r,t){T.FSStream||(T.FSStream=function(){},T.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n,o=new T.FSStream;for(n in e)o[n]=e[n];e=o;r=T.nextfd(r,t);return e.fd=r,T.streams[r]=e},closeStream:function(e){T.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=T.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new T.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){T.devices[e]={stream_ops:r}},getDevice:function(e){return T.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(r,t){"function"==typeof r&&(t=r,r=!1),T.syncFSRequests++,1<T.syncFSRequests&&w("warning: "+T.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var n=T.getMounts(T.root.mount),o=0;function i(e){return T.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++o>=n.length&&i(null)}n.forEach(function(e){if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)})},mount:function(e,r,t){var n,o="/"===t,i=!t;if(o&&T.root)throw new T.ErrnoError(10);if(!o&&!i){i=T.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,T.isMountpoint(n))throw new T.ErrnoError(10);if(!T.isDir(n.mode))throw new T.ErrnoError(54)}i={type:e,opts:r,mountpoint:t,mounts:[]},r=e.mount(i);return(r.mount=i).root=r,o?T.root=r:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),r},unmount:function(e){e=T.lookupPath(e,{follow_mount:!1});if(!T.isMountpoint(e.node))throw new T.ErrnoError(28);var e=e.node,r=e.mounted,n=T.getMounts(r),r=(Object.keys(T.nameTable).forEach(function(e){for(var r=T.nameTable[e];r;){var t=r.name_next;-1!==n.indexOf(r.mount)&&T.destroyNode(r),r=t}}),e.mounted=null,e.mount.mounts.indexOf(r));e.mount.mounts.splice(r,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=T.lookupPath(e,{parent:!0}).node,e=x.basename(e);if(!e||"."===e||".."===e)throw new T.ErrnoError(28);var o=T.mayCreate(n,e);if(o)throw new T.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,r,t);throw new T.ErrnoError(63)},create:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:438)&4095|32768,0)},mkdir:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:511)&1023|16384,0)},mkdirTree:function(e,r){for(var t=e.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{T.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,r,t){return void 0===t&&(t=r,r=438),T.mknod(e,r|=8192,t)},symlink:function(e,r){if(!R.resolve(e))throw new T.ErrnoError(44);var t=T.lookupPath(r,{parent:!0}).node;if(!t)throw new T.ErrnoError(44);var r=x.basename(r),n=T.mayCreate(t,r);if(n)throw new T.ErrnoError(n);if(t.node_ops.symlink)return t.node_ops.symlink(t,r,e);throw new T.ErrnoError(63)},rename:function(r,t){var e,n,o=x.dirname(r),i=x.dirname(t),a=x.basename(r),s=x.basename(t);try{e=T.lookupPath(r,{parent:!0}).node,n=T.lookupPath(t,{parent:!0}).node}catch(e){throw new T.ErrnoError(10)}if(!e||!n)throw new T.ErrnoError(44);if(e.mount!==n.mount)throw new T.ErrnoError(75);var u,c=T.lookupNode(e,a),i=R.relative(r,i);if("."!==i.charAt(0))throw new T.ErrnoError(28);if("."!==(i=R.relative(t,o)).charAt(0))throw new T.ErrnoError(55);try{u=T.lookupNode(n,s)}catch(e){}if(c!==u){o=T.isDir(c.mode),i=T.mayDelete(e,a,o);if(i)throw new T.ErrnoError(i);if(i=u?T.mayDelete(n,s,o):T.mayCreate(n,s))throw new T.ErrnoError(i);if(!e.node_ops.rename)throw new T.ErrnoError(63);if(T.isMountpoint(c)||u&&T.isMountpoint(u))throw new T.ErrnoError(10);if(n!==e&&(i=T.nodePermissions(e,"w")))throw new T.ErrnoError(i);try{T.trackingDelegate.willMovePath}catch(e){w("FS.trackingDelegate['willMovePath']('"+r+"', '"+t+"') threw an exception: "+e.message)}T.hashRemoveNode(c);try{e.node_ops.rename(c,n,s)}catch(e){throw e}finally{T.hashAddNode(c)}try{T.trackingDelegate.onMovePath}catch(e){w("FS.trackingDelegate['onMovePath']('"+r+"', '"+t+"') threw an exception: "+e.message)}}},rmdir:function(r){var e=T.lookupPath(r,{parent:!0}).node,t=x.basename(r),n=T.lookupNode(e,t),o=T.mayDelete(e,t,!0);if(o)throw new T.ErrnoError(o);if(!e.node_ops.rmdir)throw new T.ErrnoError(63);if(T.isMountpoint(n))throw new T.ErrnoError(10);try{T.trackingDelegate.willDeletePath}catch(e){w("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+e.message)}e.node_ops.rmdir(e,t),T.destroyNode(n);try{T.trackingDelegate.onDeletePath}catch(e){w("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+e.message)}},readdir:function(e){e=T.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new T.ErrnoError(54)},unlink:function(r){var e=T.lookupPath(r,{parent:!0}).node,t=x.basename(r),n=T.lookupNode(e,t),o=T.mayDelete(e,t,!1);if(o)throw new T.ErrnoError(o);if(!e.node_ops.unlink)throw new T.ErrnoError(63);if(T.isMountpoint(n))throw new T.ErrnoError(10);try{T.trackingDelegate.willDeletePath}catch(e){w("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+e.message)}e.node_ops.unlink(e,t),T.destroyNode(n);try{T.trackingDelegate.onDeletePath}catch(e){w("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+e.message)}},readlink:function(e){e=T.lookupPath(e).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.readlink)return R.resolve(T.getPath(e.parent),e.node_ops.readlink(e));throw new T.ErrnoError(28)},stat:function(e,r){e=T.lookupPath(e,{follow:!r}).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new T.ErrnoError(63)},lstat:function(e){return T.stat(e,!0)},chmod:function(e,r,t){if(!(t="string"==typeof e?T.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new T.ErrnoError(63);t.node_ops.setattr(t,{mode:4095&r|-4096&t.mode,timestamp:Date.now()})},lchmod:function(e,r){T.chmod(e,r,!0)},fchmod:function(e,r){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chmod(e.node,r)},chown:function(e,r,t,n){if(!(n="string"==typeof e?T.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new T.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){T.chown(e,r,t,!0)},fchown:function(e,r,t){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chown(e.node,r,t)},truncate:function(e,r){if(r<0)throw new T.ErrnoError(28);if(!(e="string"==typeof e?T.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new T.ErrnoError(63);if(T.isDir(e.mode))throw new T.ErrnoError(31);if(!T.isFile(e.mode))throw new T.ErrnoError(28);var t=T.nodePermissions(e,"w");if(t)throw new T.ErrnoError(t);e.node_ops.setattr(e,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(28);T.truncate(e.node,r)},utime:function(e,r,t){e=T.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(r,t)})},open:function(r,e,t,n,o){if(""===r)throw new T.ErrnoError(44);if(t=void 0===t?438:t,t=64&(e="string"==typeof e?T.modeStringToFlags(e):e)?4095&t|32768:0,"object"==typeof r)i=r;else{r=x.normalize(r);try{var i=T.lookupPath(r,{follow:!(131072&e)}).node}catch(e){}}var a=!1;if(64&e)if(i){if(128&e)throw new T.ErrnoError(20)}else i=T.mknod(r,t,0),a=!0;if(!i)throw new T.ErrnoError(44);if(T.isChrdev(i.mode)&&(e&=-513),65536&e&&!T.isDir(i.mode))throw new T.ErrnoError(54);if(!a){t=T.mayOpen(i,e);if(t)throw new T.ErrnoError(t)}512&e&&T.truncate(i,0),e&=-131713;a=T.createStream({node:i,path:T.getPath(i),flags:e,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1},n,o);a.stream_ops.open&&a.stream_ops.open(a),!h.logReadFiles||1&e||(T.readFiles||(T.readFiles={}),r in T.readFiles||(T.readFiles[r]=1,w("FS.trackingDelegate error on read file: "+r)));try{T.trackingDelegate.onOpenFile}catch(e){w("FS.trackingDelegate['onOpenFile']('"+r+"', flags) threw an exception: "+e.message)}return a},close:function(e){if(T.isClosed(e))throw new T.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{T.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,r,t){if(T.isClosed(e))throw new T.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new T.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new T.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read:function(e,r,t,n,o){if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(1==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.read)throw new T.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;r=e.stream_ops.read(e,r,t,n,o);return i||(e.position+=r),r},write:function(r,e,t,n,o,i){if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(r))throw new T.ErrnoError(8);if(0==(2097155&r.flags))throw new T.ErrnoError(8);if(T.isDir(r.node.mode))throw new T.ErrnoError(31);if(!r.stream_ops.write)throw new T.ErrnoError(28);r.seekable&&1024&r.flags&&T.llseek(r,0,2);var a=void 0!==o;if(a){if(!r.seekable)throw new T.ErrnoError(70)}else o=r.position;e=r.stream_ops.write(r,e,t,n,o,i);a||(r.position+=e);try{r.path&&T.trackingDelegate.onWriteToFile&&T.trackingDelegate.onWriteToFile(r.path)}catch(e){w("FS.trackingDelegate['onWriteToFile']('"+r.path+"') threw an exception: "+e.message)}return e},allocate:function(e,r,t){if(T.isClosed(e))throw new T.ErrnoError(8);if(r<0||t<=0)throw new T.ErrnoError(28);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(!T.isFile(e.node.mode)&&!T.isDir(e.node.mode))throw new T.ErrnoError(43);if(!e.stream_ops.allocate)throw new T.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap:function(e,r,t,n,o,i){if(0!=(2&o)&&0==(2&i)&&2!=(2097155&e.flags))throw new T.ErrnoError(2);if(1==(2097155&e.flags))throw new T.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,r,t,n,o,i);throw new T.ErrnoError(43)},msync:function(e,r,t,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0},munmap:function(e){return 0},ioctl:function(e,r,t){if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,r,t);throw new T.ErrnoError(59)},readFile:function(e,r){if((r=r||{}).flags=r.flags||"r",r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');var t,n=T.open(e,r.flags),e=T.stat(e).size,o=new Uint8Array(e);return T.read(n,o,0,e,0),"utf8"===r.encoding?t=g(o,0):"binary"===r.encoding&&(t=o),T.close(n),t},writeFile:function(e,r,t){(t=t||{}).flags=t.flags||"w";e=T.open(e,t.flags,t.mode);if("string"==typeof r){var n=new Uint8Array(G(r)+1),o=X(r,n,0,n.length);T.write(e,n,0,o,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");T.write(e,r,0,r.byteLength,void 0,t.canOwn)}T.close(e)},cwd:function(){return T.currentPath},chdir:function(e){e=T.lookupPath(e,{follow:!0});if(null===e.node)throw new T.ErrnoError(44);if(!T.isDir(e.node.mode))throw new T.ErrnoError(54);var r=T.nodePermissions(e.node,"x");if(r)throw new T.ErrnoError(r);T.currentPath=e.path},createDefaultDirectories:function(){T.mkdir("/tmp"),T.mkdir("/home"),T.mkdir("/home/web_user")},createDefaultDevices:function(){if(T.mkdir("/dev"),T.registerDevice(T.makedev(1,3),{read:function(){return 0},write:function(e,r,t,n,o){return n}}),T.mkdev("/dev/null",T.makedev(1,3)),M.register(T.makedev(5,0),M.default_tty_ops),M.register(T.makedev(6,0),M.default_tty1_ops),T.mkdev("/dev/tty",T.makedev(5,0)),T.mkdev("/dev/tty1",T.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues)var e=new Uint8Array(1),r=function(){return crypto.getRandomValues(e),e[0]};else if(s)try{var t=require("crypto");r=function(){return t.randomBytes(1)[0]}}catch(e){}T.createDevice("/dev","random",r=r||function(){D("random_device")}),T.createDevice("/dev","urandom",r),T.mkdir("/dev/shm"),T.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){T.mkdir("/proc"),T.mkdir("/proc/self"),T.mkdir("/proc/self/fd"),T.mount({mount:function(){var e=T.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,r){var t=T.getStream(+r);if(!t)throw new T.ErrnoError(8);r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return t.path}}};return r.parent=r}},e}},{},"/proc/self/fd")},createStandardStreams:function(){h.stdin?T.createDevice("/dev","stdin",h.stdin):T.symlink("/dev/tty","/dev/stdin"),h.stdout?T.createDevice("/dev","stdout",null,h.stdout):T.symlink("/dev/tty","/dev/stdout"),h.stderr?T.createDevice("/dev","stderr",null,h.stderr):T.symlink("/dev/tty1","/dev/stderr"),T.open("/dev/stdin","r"),T.open("/dev/stdout","w"),T.open("/dev/stderr","w")},ensureErrnoError:function(){T.ErrnoError||(T.ErrnoError=function(e,r){this.node=r,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},T.ErrnoError.prototype=new Error,T.ErrnoError.prototype.constructor=T.ErrnoError,[44].forEach(function(e){T.genericErrors[e]=new T.ErrnoError(e),T.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){T.ensureErrnoError(),T.nameTable=new Array(4096),T.mount(B,{},"/"),T.createDefaultDirectories(),T.createDefaultDevices(),T.createSpecialDirectories(),T.filesystems={MEMFS:B}},init:function(e,r,t){T.init.initialized=!0,T.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=r||h.stdout,h.stderr=t||h.stderr,T.createStandardStreams()},quit:function(){T.init.initialized=!1;var e=h._fflush;e&&e(0);for(var r=0;r<T.streams.length;r++){var t=T.streams[r];t&&T.close(t)}},getMode:function(e,r){var t=0;return e&&(t|=365),r&&(t|=146),t},joinPath:function(e,r){e=x.join.apply(null,e);return e=r&&"/"==e[0]?e.substr(1):e},absolutePath:function(e,r){return R.resolve(r,e)},standardizePath:function(e){return x.normalize(e)},findObject:function(e,r){e=T.analyzePath(e,r);return e.exists?e.object:(A(e.error),null)},analyzePath:function(e,r){try{e=(n=T.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=T.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=x.basename(e),n=T.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createFolder:function(e,r,t,n){e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(t,n);return T.mkdir(e,r)},createPath:function(e,r,t,n){e="string"==typeof e?e:T.getPath(e);for(var o=r.split("/").reverse();o.length;){var i=o.pop();if(i){var a=x.join2(e,i);try{T.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,r,t,n,o){e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(n,o);return T.create(e,r)},createDataFile:function(e,r,t,n,o,i){r=r?x.join2("string"==typeof e?e:T.getPath(e),r):e,e=T.getMode(n,o),n=T.create(r,e);if(t){if("string"==typeof t){for(var a=new Array(t.length),s=0,u=t.length;s<u;++s)a[s]=t.charCodeAt(s);t=a}T.chmod(n,146|e);o=T.open(n,"w");T.write(o,t,0,t.length,0,i),T.close(o),T.chmod(n,e)}return n},createDevice:function(e,r,u,a){var e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(!!u,!!a),t=(T.createDevice.major||(T.createDevice.major=64),T.makedev(T.createDevice.major++,0));return T.registerDevice(t,{open:function(e){e.seekable=!1},close:function(e){a&&a.buffer&&a.buffer.length&&a(10)},read:function(e,r,t,n,o){for(var i,a=0,s=0;s<n;s++){try{i=u()}catch(e){throw new T.ErrnoError(29)}if(void 0===i&&0===a)throw new T.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,n,o){for(var i=0;i<n;i++)try{a(r[t+i])}catch(e){throw new T.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}}),T.mkdev(e,r,t)},createLink:function(e,r,t,n,o){e=x.join2("string"==typeof e?e:T.getPath(e),r);return T.symlink(t,e)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var r=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!n)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=ye(n(e.url),!0),e.usedBytes=e.contents.length}catch(e){r=!1}return r||A(29),r},createLazyFile:function(e,r,a,t,n){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){var r;if(!(e>this.length-1||e<0))return r=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[r]},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),t=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,e=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,o=1048576,i=(t||(o=n),this);i.setDataGetter(function(e){var r=e*o,t=(e+1)*o-1,t=Math.min(t,n-1);if(void 0===i.chunks[e]&&(i.chunks[e]=function(e,r){if(r<e)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(n-1<r)throw new Error("only "+n+" bytes available! programmer error!");var t=new XMLHttpRequest;if(t.open("GET",a,!1),n!==o&&t.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(t.responseType="arraybuffer"),t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),t.send(null),200<=t.status&&t.status<300||304===t.status)return void 0!==t.response?new Uint8Array(t.response||[]):ye(t.responseText||"",!0);throw new Error("Couldn't load "+a+". Status: "+t.status)}(r,t)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]}),!e&&n||(o=n=1,n=this.getter(0).length,o=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new o,i=(Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}}),{isDevice:!1,contents:i})}else i={isDevice:!1,url:a};var u=T.createFile(e,r,i,t,n),s=(i.contents?u.contents=i.contents:i.url&&(u.contents=null,u.url=i.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}}),{});return Object.keys(u.stream_ops).forEach(function(e){var r=u.stream_ops[e];s[e]=function(){if(T.forceLoadFile(u))return r.apply(null,arguments);throw new T.ErrnoError(29)}}),s.read=function(e,r,t,n,o){if(!T.forceLoadFile(u))throw new T.ErrnoError(29);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var s=0;s<a;s++)r[t+s]=i[o+s];else for(s=0;s<a;s++)r[t+s]=i.get(o+s);return a},u.stream_ops=s,u},createPreloadedFile:function(o,i,e,a,s,u,c,f,l,d){Browser.init();var p=i?R.resolve(x.join2(o,i)):o;function r(r){function t(e){d&&d(),f||T.createDataFile(o,i,e,a,s,l),u&&u(),ue()}var n=!1;h.preloadPlugins.forEach(function(e){n||e.canHandle(p)&&(e.handle(r,p,t,function(){c&&c(),ue()}),n=!0)}),n||t(r)}se(),"string"==typeof e?Browser.asyncLoad(e,function(e){r(e)},c):r(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(a,s,u){s=s||function(){},u=u||function(){};var e=T.indexedDB();try{var c=e.open(T.DB_NAME(),T.DB_VERSION)}catch(e){return u(e)}c.onupgradeneeded=function(){m("creating db"),c.result.createObjectStore(T.DB_STORE_NAME)},c.onsuccess=function(){var e=c.result.transaction([T.DB_STORE_NAME],"readwrite"),r=e.objectStore(T.DB_STORE_NAME),t=0,n=0,o=a.length;function i(){(0==n?s:u)()}a.forEach(function(e){e=r.put(T.analyzePath(e).object.contents,e);e.onsuccess=function(){++t+n==o&&i()},e.onerror=function(){t+ ++n==o&&i()}}),e.onerror=u},c.onerror=u},loadFilesFromDB:function(s,u,c){u=u||function(){},c=c||function(){};var e=T.indexedDB();try{var f=e.open(T.DB_NAME(),T.DB_VERSION)}catch(e){return c(e)}f.onupgradeneeded=c,f.onsuccess=function(){var e=f.result;try{var r=e.transaction([T.DB_STORE_NAME],"readonly")}catch(e){return void c(e)}var t=r.objectStore(T.DB_STORE_NAME),n=0,o=0,i=s.length;function a(){(0==o?u:c)()}s.forEach(function(e){var r=t.get(e);r.onsuccess=function(){T.analyzePath(e).exists&&T.unlink(e),T.createDataFile(x.dirname(e),x.basename(e),r.result,!0,!0,!0),++n+o==i&&a()},r.onerror=function(){n+ ++o==i&&a()}}),r.onerror=c},f.onerror=c}},N={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,r){if("/"!==r[0]){var t;if(-100===e)t=T.cwd();else{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);t=e.path}r=x.join2(t,r)}return r},doStat:function(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&x.normalize(r)!==x.normalize(T.getPath(e.node)))return-54;throw e}return k[t>>2]=n.dev,k[t+4>>2]=0,k[t+8>>2]=n.ino,k[t+12>>2]=n.mode,k[t+16>>2]=n.nlink,k[t+20>>2]=n.uid,k[t+24>>2]=n.gid,k[t+28>>2]=n.rdev,k[t+32>>2]=0,F=[n.size>>>0,(S=n.size,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+40>>2]=F[0],k[t+44>>2]=F[1],k[t+48>>2]=4096,k[t+52>>2]=n.blocks,k[t+56>>2]=n.atime.getTime()/1e3|0,k[t+60>>2]=0,k[t+64>>2]=n.mtime.getTime()/1e3|0,k[t+68>>2]=0,k[t+72>>2]=n.ctime.getTime()/1e3|0,k[t+76>>2]=0,F=[n.ino>>>0,(S=n.ino,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+80>>2]=F[0],k[t+84>>2]=F[1],0},doMsync:function(e,r,t,n,o){e=E.slice(e,e+t);T.msync(r,e,o,t,n)},doMkdir:function(e,r){return"/"===(e=x.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),T.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return T.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-28;var e=T.readlink(e),n=Math.min(t,G(e)),o=y[r+n];return X(e,E,r,t+1),y[r+n]=o,n},doAccess:function(e,r){if(-8&r)return-28;e=T.lookupPath(e,{follow:!0}).node;if(!e)return-44;var t="";return 4&r&&(t+="r"),2&r&&(t+="w"),1&r&&(t+="x"),t&&T.nodePermissions(e,t)?-2:0},doDup:function(e,r,t){var n=T.getStream(t);return n&&T.close(n),T.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=k[r+8*i>>2],s=k[r+(8*i+4)>>2],a=T.read(e,y,a,s,n);if(a<0)return-1;if(o+=a,a<s)break}return o},doWritev:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=k[r+8*i>>2],s=k[r+(8*i+4)>>2],a=T.write(e,y,a,s,n);if(a<0)return-1;o+=a}return o},varargs:void 0,get:function(){return N.varargs+=4,k[N.varargs-4>>2]},getStr:function(e){return W(e)},getStreamFromFD:function(e){e=T.getStream(e);if(e)return e;throw new T.ErrnoError(8)},get64:function(e,r){return e}};var ge={};function z(){if(!z.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:C||"./this.program"};for(r in ge)e[r]=ge[r];var r,t=[];for(r in e)t.push(r+"="+e[r]);z.strings=t}return z.strings}function ve(e,r,t,n){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=T.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n}function ye(e,r,t){t=0<t?t:G(e)+1,t=new Array(t),e=X(e,t,0,t.length);return r&&(t.length=e),t}Object.defineProperties(ve.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return T.isDir(this.mode)}},isDevice:{get:function(){return T.isChrdev(this.mode)}}}),T.FSNode=ve,T.staticInit();var Ee,ke={a:function(e,r,t,n){D("Assertion failed: "+W(e)+", at: "+[r?W(r):"unknown filename",t,n?W(n):"unknown function"])},s:function(e,r){var t;if(0===e)t=Date.now();else{if(1!==e&&4!==e||!we)return A(28),-1;t=me()}return k[r>>2]=t/1e3|0,k[r+4>>2]=t%1e3*1e3*1e3|0,0},d:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 0:return(o=N.get())<0?-28:T.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=N.get();return n.flags|=o,0;case 12:o=N.get();return K[o+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return A(28),-1;default:return-28}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},i:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=N.get();return k[o>>2]=0;case 21520:return n.tty?-28:-59;case 21531:o=N.get();return T.ioctl(n,r,o);case 21523:case 21524:return n.tty?0:-59;default:D("bad ioctl syscall "+r)}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},e:function(e,r,t){N.varargs=t;try{var n=N.getStr(e),o=N.get();return T.open(n,r,o).fd}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},t:function(e){try{return e=N.getStr(e),T.rmdir(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},j:function(e){try{var r=N.umask;return N.umask=e,r}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},u:function(e){try{return e=N.getStr(e),T.unlink(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},v:function(e,r,t,n){try{D("cannot wait on child processes")}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},n:function(e,r,t){E.copyWithin(e,r,r+t)},b:function(e){var r=E.length,t=2147483648;if(t<(e>>>=0))return!1;for(var n,o=1;o<=4;o*=2){var i=r*(1+.2/o),i=Math.min(i,e+100663296);if(function(e){try{return p.grow(e-v.byteLength+65535>>>16),Y(p.buffer),1}catch(e){}}(Math.min(t,(0<(i=Math.max(16777216,e,i))%(n=65536)&&(i+=n-i%n),i))))return!0}return!1},p:function(a,s){var u=0;return z().forEach(function(e,r){for(var t=s+u,n=(k[a+4*r>>2]=t,e),o=t,r=void 0,i=0;i<n.length;++i)y[o++>>0]=n.charCodeAt(i);r||(y[o>>0]=0),u+=e.length+1}),0},q:function(e,r){var t=z(),n=(k[e>>2]=t.length,0);return t.forEach(function(e){n+=e.length+1}),k[r>>2]=n,0},c:function(e){xe(e)},f:function(e){try{var r=N.getStreamFromFD(e);return T.close(r),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},r:function(e,r){try{var t=N.getStreamFromFD(e),n=t.tty?2:T.isDir(t.mode)?3:T.isLink(t.mode)?7:4;return y[r>>0]=n,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},h:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doReadv(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},m:function(e,r,t,n,o){try{var i=N.getStreamFromFD(e),a=4294967296*t+(r>>>0),s=9007199254740992;return a<=-s||s<=a?-61:(T.llseek(i,a,n),F=[i.position>>>0,(S=i.position,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[o>>2]=F[0],k[o+4>>2]=F[1],i.getdents&&0==a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},g:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doWritev(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},memory:p,o:function(){w("missing function: popen"),D(-1)},l:function(){return 6},k:function(){},table:I},_e=(!function(){var r={a:ke};function t(e,r){e=e.exports;h.asm=e,ue()}function n(e){t(e.instance)}function o(e){return(l||!L&&!c||"function"!=typeof fetch||de(P)?new Promise(function(e,r){e(pe())}):fetch(P,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+P+"'"}).catch(pe)).then(function(e){return WebAssembly.instantiate(e,r)}).then(e,function(e){w("failed to asynchronously prepare wasm: "+e),D(e)})}if(se(),h.instantiateWasm)try{h.instantiateWasm(r,t);return}catch(e){return w("Module.instantiateWasm callback failed with error: "+e)}l||"function"!=typeof WebAssembly.instantiateStreaming||ce(P,fe)||de(P)||"function"!=typeof fetch?o(n):fetch(P,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,r).then(n,function(e){return w("wasm streaming compile failed: "+e),w("falling back to ArrayBuffer instantiation"),o(n)})})}(),h.___wasm_call_ctors=function(){return(_e=h.___wasm_call_ctors=h.asm.w).apply(null,arguments)}),be=h._malloc=function(){return(be=h._malloc=h.asm.x).apply(null,arguments)},De=h.___errno_location=function(){return(De=h.___errno_location=h.asm.y).apply(null,arguments)},Se=(h._main=function(){return(h._main=h.asm.z).apply(null,arguments)},h.stackAlloc=function(){return(Se=h.stackAlloc=h.asm.A).apply(null,arguments)});function Fe(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Pe(r){var t=h._main;r=r||[];try{for(let e=0;e<r.length;e++){const s=r[e];var n,{argc:o,argv:i}=function(e){var r=e.length+1,t=Se(4*(r+1));k[t>>2]=V(C);for(var n=1;n<r;n++)k[(t>>2)+n]=V(e[n-1]);return k[(t>>2)+r]=0,{argc:r,argv:t}}(s.split(" ").filter(e=>Boolean(e)));if(0!==(n=t(o,i)))break}xe(n,!0)}catch(e){if(e instanceof Fe)return;if("unwind"==e)return void(d=!0);var a=e;e&&"object"==typeof e&&e.stack&&(a=[e,e.stack]),w("exception thrown: "+a),u(1,e)}}function Ae(e){function r(){Ee||(Ee=!0,h.calledRun=!0,U||(h.noFSInit||T.init.initialized||T.init(),Z(J),T.ignorePermissions=!1,Z(Q),j(h),h.onRuntimeInitialized&&h.onRuntimeInitialized(),Re&&Pe(e),te()))}e=e||a,0<_||(re(),0<_||(h.setStatus?(h.setStatus("Running..."),setTimeout(function(){setTimeout(function(){h.setStatus("")},1),r()},1)):r()))}function xe(e,r){r&&d&&0===e||(d||(U=!0,h.onExit&&h.onExit(e)),u(e,new Fe(e)))}if(h.dynCall_vi=function(){return(h.dynCall_vi=h.asm.B).apply(null,arguments)},b=function e(){Ee||Ae(),Ee||(b=e)},h.run=Ae,h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.pop()();var Re=!0;return h.noInitialRun&&(Re=!1),d=!0,Ae(),e.ready};let r="";let t="";var f={flush:()=>{0<r.length&&(console.log(r),r=""),0<t.length&&(console.error(t),t="")},stderr:e=>{t+=String.fromCharCode(e),10===e&&(console.error(t),t="")},stdout:e=>{r+=String.fromCharCode(e),10===e&&(console.log(r),r="")}};const l=[];return async(e={})=>{let{data:i=null,command:a=[],folder:s=[],isStrict:u=!1}=e;return await new Promise(e=>{l.push(e),1===l.length&&l[0]()}),new Promise((r,t)=>{let n=!1,o="";c({stdout:f.stdout,stderr:e=>{o+=String.fromCharCode(e),10===e&&(console.error(o),u&&t(o))},arguments:a,input:i,folder:s,output:e=>{r(e),n=!0}}).then(()=>{(0,f.flush)(),n||t(),0<l.length&&(l.shift(),0<l.length&&l[0]())})})}}();onmessage=function(r){(async()=>{var e=await gifsicle(r.data).catch(e=>{postMessage(e)});postMessage(e)})().catch(e=>{postMessage(null)})};`,workerBlobUrl:"",worker(){return this.workerBlobUrl||(this.workerLocalUrl?this.workerBlobUrl=URL.createObjectURL(new Blob([this.workerLocalUrl])):this.workerBlobUrl="../src/worker.js",this.workerBlobUrl)},errorLink(){return`
|
||
Check: https://github.com/renzhezhilu/gifsicle-wasm-browser`},testType(A){return A instanceof Element?"element":Object.prototype.toString.call(A).replace(/\[object\s(.+)\]/,"$1").toLowerCase()},async textToUrl(A){return this.worker()},loadCommand(A){var e=this.testType(A);if(A.length===0)throw"<command> the content can not be blank"+this.errorLink();if(e==="array")return A.map(t=>t.replace(/\n/gi," "));throw"<command> types:"+e+", must be an array"+this.errorLink()},loadOne(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(["string"].includes(i))fetch(A).then(n=>{if(n.status!==200)throw"<"+A+"> Url error!!!"+this.errorLink();return n.arrayBuffer()}).then(n=>e(n));else if(["blob","file"].includes(i))new Response(A).arrayBuffer().then(n=>e(n));else{if(!["arraybuffer"].includes(i))throw"<input.file> types:"+i+", only supports Url, blob, file, arraybuffer"+this.errorLink();e(A)}})},loadFile(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(i!=="array")throw"<input> types:"+i+", only supports Array"+this.errorLink();if(A.length===0)throw"<input> the content can not be blank"+this.errorLink();i=A.map(n=>this.loadOne(n.file)),Promise.all(i).then(function(n){var o=A.map((r,g)=>(r.file=n[g],r));e(o)}).catch(function(n){})})},loadFolder(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(!["array"].includes(i))throw"<folder> types:"+i+", only supports Array"+this.errorLink();e(A)})}},run(A={}){return new Promise(async(e,t)=>{let{input:i=[],command:n="",folder:o=[],isStrict:r=!1,start:g=Q=>{}}=A;var s=await this.tool.textToUrl();let a=new Worker(s);var I=this.tool.loadCommand(n),l=await this.tool.loadFile(i),C=(g(l),await this.tool.loadFolder(o));a.postMessage({data:l,command:I,folder:C,isStrict:r}),a.onmessage=async function(Q){if(!Q.data||typeof Q.data=="string")return a.terminate(),void t(Q.data);let E=[];for(let h=0;h<Q.data.length;h++){const u=Q.data[h];var f;u.name.includes(".txt")?(f=new File([u.file],u.name,{type:"text/plain"}),E.push(f)):(f=new File([u.file],u.name,{type:"image/gif"}),E.push(f))}a.terminate(),e(E)},a.onerror=function(Q){console.error(Q),a.terminate(),e(null)}})}};class sS{constructor(e={}){this.quality=e.quality||10,this.debug=e.debug||!1,this.scalingMode=e.scalingMode||"auto",this.optimize=e.optimize!==!1,this.optimizationLevel=e.optimizationLevel||2}async scaleGif(e,t={}){const{maxWidth:i,maxHeight:n,keepAspectRatio:o=!0,optimize:r=this.optimize,lossy:g=this.quality,loopCount:s=0}=t;if(!i&&!n)throw new Error("必须指定 maxWidth 或 maxHeight");try{let a;o?a=`--resize-fit ${i||"_"}x${n||"_"}`:a=`--resize ${i||"_"}x${n||"_"}!`;const I=[];I.push("-U"),I.push(a),s>=0&&I.push(`--loopcount=${s}`),g&&g>0&&I.push(`--lossy=${g}`),r&&I.push(`-O${this.optimizationLevel}`),I.push("1.gif"),I.push("-o /out/output.gif");const l=I.join(" ");this.debug&&(console.log("GIF 缩放命令:",l),console.log("输入文件大小:",e.size||"未知"));const C=await xn.run({input:[{file:e,name:"1.gif"}],command:[l]});if(!C||C.length===0)throw new Error("gifsicle 处理失败,未返回结果");const Q=C[0];if(this.debug&&(console.log("GIF 缩放完成"),console.log("输出文件大小:",Q.size),e.size)){const E=((1-Q.size/e.size)*100).toFixed(2);console.log(`压缩率: ${E}%`)}return new Blob([Q],{type:"image/gif"})}catch(a){throw console.error("GIF 缩放失败:",a),new Error(`GIF 缩放失败: ${a.message}`)}}async scaleGifBatch(e){const t=[];for(let i=0;i<e.length;i++){const{file:n,options:o}=e[i];try{const r=await this.scaleGif(n,o);t.push(r)}catch(r){console.error(`批量缩放第 ${i+1} 个文件失败:`,r),t.push(null)}}return t}async optimizeGif(e,t={}){const{lossy:i=this.quality,level:n=this.optimizationLevel,loopCount:o=0}=t;try{const r=["-U"];o>=0&&r.push(`--loopcount=${o}`),i&&i>0&&r.push(`--lossy=${i}`),r.push(`-O${n}`),r.push("1.gif"),r.push("-o /out/output.gif");const g=r.join(" ");this.debug&&console.log("GIF 优化命令:",g);const s=await xn.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 优化失败");return new Blob([s[0]],{type:"image/gif"})}catch(r){throw console.error("GIF 优化失败:",r),new Error(`GIF 优化失败: ${r.message}`)}}async getGifInfo(e){try{const t=await xn.run({input:[{file:e,name:"1.gif"}],command:["--info 1.gif -o /out/info.txt"]});if(!t||t.length===0)throw new Error("无法获取 GIF 信息");const n=await t[0].text();return this.parseGifInfo(n)}catch(t){return console.error("获取 GIF 信息失败:",t),{size:e.size||0,type:"image/gif"}}}parseGifInfo(e){const t={frames:0,width:0,height:0,colors:0,loopCount:0};try{const i=e.match(/(\d+) images?/);i&&(t.frames=parseInt(i[1]));const n=e.match(/logical screen (\d+)x(\d+)/);n&&(t.width=parseInt(n[1]),t.height=parseInt(n[2]));const o=e.match(/(\d+) colors/);if(o&&(t.colors=parseInt(o[1])),e.includes("loop forever"))t.loopCount=0;else{const r=e.match(/loop count (\d+)/);r&&(t.loopCount=parseInt(r[1]))}}catch(i){console.warn("解析 GIF 信息时出错:",i)}return t}async cropGif(e,t){const{x:i,y:n,width:o,height:r}=t;try{const g=["-U",`--crop ${i},${n}+${o}x${r}`,"1.gif","-o /out/output.gif"].join(" ");this.debug&&console.log("GIF 裁剪命令:",g);const s=await xn.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 裁剪失败");return new Blob([s[0]],{type:"image/gif"})}catch(g){throw console.error("GIF 裁剪失败:",g),new Error(`GIF 裁剪失败: ${g.message}`)}}dispose(){this.debug&&console.log("WasmGifScaler disposed")}setDebug(e){this.debug=e}setQuality(e){if(e<1||e>200)throw new Error("质量参数必须在 1-200 之间");this.quality=e}setOptimizationLevel(e){if(e<1||e>3)throw new Error("优化级别必须在 1-3 之间");this.optimizationLevel=e}}class Yl{constructor(){this.config=null,this.resources=new Map,this.tempFiles=[],this.fontConverterBrowser=oS,this.convertedFonts=new Map,this.wakenetPacker=new rS,this.spiffsGenerator=new gS,this.gifScaler=new sS({quality:30,debug:!0,scalingMode:"auto",optimize:!0,optimizationLevel:2}),this.configStorage=Qe,this.autoSaveEnabled=!0}setConfig(e,t={}){if(((t==null?void 0:t.strict)??!0)&&!this.validateConfig(e))throw new Error("Configuration object validation failed");return this.config={...e},this}validateConfig(e){var n,o,r;if(!e)return!1;if(!((n=e.chip)!=null&&n.model))return console.error("Missing chip model configuration"),!1;const t=e.chip.display;if(!(t!=null&&t.width)||!(t!=null&&t.height))return console.error("Missing display resolution configuration"),!1;const i=(o=e.theme)==null?void 0:o.font;return(i==null?void 0:i.type)==="preset"&&!i.preset?(console.error("Preset font configuration is incomplete"),!1):(i==null?void 0:i.type)==="custom"&&!((r=i.custom)!=null&&r.file)?(console.error("Custom font file not provided"),!1):!0}addResource(e,t,i,n="other"){return this.resources.set(e,{file:t,filename:i,size:t.size,type:t.type,lastModified:t.lastModified||Date.now(),resourceType:n}),this.autoSaveEnabled&&t instanceof File&&this.saveFileToStorage(e,t,n).catch(o=>{console.warn(`Auto-saving file ${i} failed:`,o)}),this}async saveFileToStorage(e,t,i){try{await this.configStorage.saveFile(e,t,i),console.log(`File ${t.name} auto-saved to storage`)}catch(n){throw console.error(`Failed to save file to storage: ${t.name}`,n),n}}async restoreResourceFromStorage(e){try{const t=await this.configStorage.loadFile(e);return t?(this.resources.set(e,{file:t,filename:t.name,size:t.size,type:t.type,lastModified:t.lastModified,resourceType:t.storedType,fromStorage:!0}),console.log(`Resource ${e} restored from storage successfully: ${t.name}`),!0):!1}catch(t){return console.error(`Failed to restore resource from storage: ${e}`,t),!1}}async restoreAllResourcesFromStorage(e){var i,n,o,r,g,s,a,I,l,C,Q;if(!e)return;const t=[];if((n=(i=e.theme)==null?void 0:i.font)!=null&&n.custom&&((o=e.theme.font.custom)==null?void 0:o.file)===null){const E="custom_font";if(await this.restoreResourceFromStorage(E)){const f=this.resources.get(E);f&&(e.theme.font.custom.file=f.file,t.push(`Custom font: ${f.filename}`),console.log(`Custom font restored even when type is '${e.theme.font.type}'`))}}if(((g=(r=e.theme)==null?void 0:r.emoji)==null?void 0:g.type)==="custom"&&e.theme.emoji.custom){const E=e.theme.emoji.custom,f=E.emotionMap||{},h=E.fileMap||{},u=E.images||{};if(Object.keys(f).length>0||Object.keys(h).length>0){const p=new Set;for(const c of Object.keys(h))h[c]===null&&p.add(c);for(const c of p){let d=`hash_${c}`,w=await this.restoreResourceFromStorage(d);if(!w){const F=`emoji_hash_${c}`;w=await this.restoreResourceFromStorage(F),w&&(d=F)}if(w){const F=this.resources.get(d);if(F){h[c]=F.file;const N=Object.entries(f).filter(([G,P])=>P===c).map(([G,P])=>G);N.forEach(G=>{u[G]=F.file}),t.push(`Emoji file ${c.substring(0,8)}... (used for: ${N.join(", ")})`)}}}Object.keys(h).forEach(c=>{e.theme.emoji.custom.fileMap[c]=h[c]}),Object.keys(u).forEach(c=>{e.theme.emoji.custom.images[c]=u[c]})}else{for(const[p,c]of Object.entries(u))if(c===null){const d=`emoji_${p}`;if(await this.restoreResourceFromStorage(d)){const w=this.resources.get(d);w&&(u[p]=w.file,t.push(`Emoji ${p}: ${w.filename}`))}}e.theme.emoji.custom.images=u}}if(((I=(a=(s=e.theme)==null?void 0:s.skin)==null?void 0:a.light)==null?void 0:I.backgroundType)==="image"&&e.theme.skin.light.backgroundImage===null){const E="background_light";if(await this.restoreResourceFromStorage(E)){const f=this.resources.get(E);f&&(e.theme.skin.light.backgroundImage=f.file,t.push(`Light background: ${f.filename}`))}}if(((Q=(C=(l=e.theme)==null?void 0:l.skin)==null?void 0:C.dark)==null?void 0:Q.backgroundType)==="image"&&e.theme.skin.dark.backgroundImage===null){const E="background_dark";if(await this.restoreResourceFromStorage(E)){const f=this.resources.get(E);f&&(e.theme.skin.dark.backgroundImage=f.file,t.push(`Dark background: ${f.filename}`))}}try{const E=this.getFontInfo();if(E&&E.type==="custom"){const f=`converted_font_${E.filename}`,h=await this.configStorage.loadTempData(f);h&&(this.convertedFonts.set(E.filename,h.data),console.log(`Converted font data restored: ${E.filename}`))}}catch(E){console.warn("Error restoring converted font data:",E)}t.length>0&&console.log("Files restored from storage:",t)}getWakewordModelInfo(){if(!this.config||!this.config.chip||!this.config.theme)return null;const e=this.config.chip.model,t=this.config.theme.wakeword;return!t||t.type==="none"?null:t.type==="preset"?{type:e==="esp32c3"||e==="esp32c6"?"WakeNet9s":"WakeNet9",name:t.preset,filename:"srmodels.bin"}:t.type==="custom"?{type:"MultiNet",name:t.custom.model,filename:"srmodels.bin",custom:t.custom}:null}getFontInfo(){if(!this.config||!this.config.theme||!this.config.theme.font)return null;const e=this.config.theme.font;if(e.type==="preset")return{type:"preset",filename:`${e.preset}.bin`,source:e.preset};if(e.type==="custom"&&e.custom.file){const t=e.custom;return{type:"custom",filename:`font_custom_${t.size}_${t.bpp}.bin`,source:e.custom.file,config:{size:t.size,bpp:t.bpp,charset:t.charset}}}return null}getEmojiCollectionInfo(){if(!this.config||!this.config.theme||!this.config.theme.emoji)return[];const e=this.config.theme.emoji,t=[];if(e.type==="preset"){const i=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],n=e.preset==="twemoji32"?"32":"64";i.forEach(o=>{t.push({name:o,file:`${o}.png`,source:`preset:${e.preset}`,size:{width:parseInt(n),height:parseInt(n)}})})}else if(e.type==="custom"){e.custom.images;const i=e.custom.emotionMap||{},n=e.custom.fileMap||{},o=e.custom.size||{width:64,height:64};if(Object.keys(i).length===0||Object.keys(n).length===0)throw console.error("❌ Error: Detected old version of emoji data structure"),console.error("Please clear browser cache or reset configuration, then re-upload emoji images"),new Error("Incompatible emoji data structure: Missing fileMap or emotionMap. Please reconfigure emojis.");const r=new Map;Object.entries(i).forEach(([g,s])=>{const a=n[s];if(a){if(!r.has(s)){const l=a.name?a.name.split(".").pop().toLowerCase():"png",C=`emoji_${s.substring(0,8)}.${l}`;r.set(s,C)}const I=r.get(s);t.push({name:g,file:I,source:a,fileHash:s,size:{...o}})}}),console.log(`Emoji deduplication: ${Object.keys(i).length} emojis using ${r.size} different image files`),t.find(g=>g.name==="neutral")||console.warn("Warning: neutral emoji not provided, default image will be used")}return t}getSkinInfo(){if(!this.config||!this.config.theme||!this.config.theme.skin)return{};const e=this.config.theme.skin,t={};return e.light&&(t.light={text_color:e.light.textColor||"#000000",background_color:e.light.backgroundColor||"#ffffff"},e.light.backgroundType==="image"&&e.light.backgroundImage&&(t.light.background_image="background_light.raw")),e.dark&&(t.dark={text_color:e.dark.textColor||"#ffffff",background_color:e.dark.backgroundColor||"#121212"},e.dark.backgroundType==="image"&&e.dark.backgroundImage&&(t.dark.background_image="background_dark.raw")),t}generateIndexJson(){if(!this.config)throw new Error("Configuration object not set");const e={version:1,chip_model:this.config.chip.model,hide_subtitle:this.config.theme.font.hide_subtitle||!1,display_config:{width:this.config.chip.display.width,height:this.config.chip.display.height,monochrome:!1,color:this.config.chip.display.color||"RGB565"}},t=this.getWakewordModelInfo();if(t&&(e.srmodels=t.filename,t.type==="MultiNet"&&t.custom)){const r=t.custom;e.multinet_model={language:r.model.includes("_en")?"en":"cn",duration:r.duration||3e3,threshold:r.threshold/100,commands:[{command:r.command,text:r.name,action:"wake"}]}}const i=this.getFontInfo();i&&(e.text_font=i.filename);const n=this.getSkinInfo();Object.keys(n).length>0&&(e.skin=n);const o=this.getEmojiCollectionInfo();return o.length>0&&(e.emoji_collection=o.map(r=>({name:r.name,file:r.file}))),e}preparePackageResources(){var g,s,a,I;const e={files:[],indexJson:this.generateIndexJson(),config:{...this.config}},t=this.getWakewordModelInfo();t&&t.name&&e.files.push({type:"wakeword",name:t.name,filename:t.filename,modelType:t.type,isCustom:t.type==="MultiNet"});const i=this.getFontInfo();i&&e.files.push({type:"font",filename:i.filename,source:i.source,config:i.config||null});const n=this.getEmojiCollectionInfo(),o=new Set;n.forEach(l=>{if(l.fileHash){if(o.has(l.fileHash)){console.log(`Skipping duplicate file: ${l.name} -> ${l.file} (hash: ${l.fileHash.substring(0,8)})`);return}o.add(l.fileHash)}e.files.push({type:"emoji",name:l.name,filename:l.file,source:l.source,size:l.size,fileHash:l.fileHash})});const r=(s=(g=this.config)==null?void 0:g.theme)==null?void 0:s.skin;return((a=r==null?void 0:r.light)==null?void 0:a.backgroundType)==="image"&&r.light.backgroundImage&&e.files.push({type:"background",filename:"background_light.raw",source:r.light.backgroundImage,mode:"light"}),((I=r==null?void 0:r.dark)==null?void 0:I.backgroundType)==="image"&&r.dark.backgroundImage&&e.files.push({type:"background",filename:"background_dark.raw",source:r.dark.backgroundImage,mode:"dark"}),e}async preprocessCustomFonts(e=null){const t=this.getFontInfo();if(t&&t.type==="custom"&&!this.convertedFonts.has(t.filename)){e&&e(20,"Converting custom font...");try{const i={fontFile:t.source,fontName:t.filename.replace(/\.bin$/,""),fontSize:t.config.size,bpp:t.config.bpp,charset:t.config.charset,symbols:t.config.symbols||"",range:t.config.range||"",compression:!1,progressCallback:(o,r)=>{e&&e(20+o*.2,`Font conversion: ${r}`)}};let n;if(await this.fontConverterBrowser.initialize(),n=await this.fontConverterBrowser.convertToCBIN(i),this.convertedFonts.set(t.filename,n),this.autoSaveEnabled){const o=`converted_font_${t.filename}`;try{await this.configStorage.saveTempData(o,n,"converted_font",{filename:t.filename,size:t.config.size,bpp:t.config.bpp,charset:t.config.charset}),console.log(`Converted font saved to storage: ${t.filename}`)}catch(r){console.warn(`Failed to save converted font: ${t.filename}`,r)}}}catch(i){throw console.error("Font conversion failed:",i),new Error(`Font conversion failed: ${i.message}`)}}}async generateAssetsBin(e=null){if(!this.config)throw new Error("Configuration object not set");try{e&&e(0,"Starting generation..."),await this.preprocessCustomFonts(e),await new Promise(n=>setTimeout(n,100)),e&&e(40,"Preparing resource files...");const t=this.preparePackageResources();this.wakenetPacker.clear(),this.spiffsGenerator.clear(),await this.processResourceFiles(t,e),await new Promise(n=>setTimeout(n,100)),e&&e(90,"Generating final file..."),this.spiffsGenerator.printFileList();const i=await this.spiffsGenerator.generate((n,o)=>{e&&e(90+n*.1,o)});return e&&e(100,"Generation completed"),new Blob([i],{type:"application/octet-stream"})}catch(t){throw console.error("Failed to generate assets.bin:",t),t}}downloadAssetsBin(e,t="assets.bin"){const i=URL.createObjectURL(e),n=document.createElement("a");n.href=i,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(i)}async getFontInfoWithDetails(e=null){var t,i,n,o;try{const r=e||((o=(n=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:n.custom)==null?void 0:o.file);if(!r)return null;let g;return await this.fontConverterBrowser.initialize(),g=await this.fontConverterBrowser.getFontInfo(r),{...g,file:r,isCustom:!0}}catch(r){return console.error("Failed to get font details:",r),null}}async estimateFontSize(e=null){var t,i,n;try{const o=e||((n=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:n.custom);if(!o)return null;const r={fontSize:o.size,bpp:o.bpp,charset:o.charset,symbols:o.symbols||"",range:o.range||""};let g;return g=this.fontConverterBrowser.estimateSize(r),g}catch(o){return console.error("Failed to estimate font size:",o),null}}validateCustomFont(e){const t=[],i=[];return e.file?this.fontConverterBrowser.validateFont(e.file)||t.push("Font file format not supported"):t.push("Missing font file"),(e.size<8||e.size>80)&&t.push("Font size must be between 8-80"),[1,2,4,8].includes(e.bpp)||t.push("BPP must be 1, 2, 4 or 8"),!e.charset&&!e.symbols&&!e.range&&i.push("No charset, symbols or range specified, default charset will be used"),{valid:t.length===0,errors:t,warnings:i}}getConverterStatus(){return{initialized:this.fontConverterBrowser.initialized,supportedFormats:this.fontConverterBrowser.supportedFormats}}async processResourceFiles(e,t=null){let i=0;const n=e.files.length,o=new TextEncoder().encode(JSON.stringify(e.indexJson,null,2));console.log("index.json",e.indexJson),this.spiffsGenerator.addFile("index.json",o.buffer);for(const r of e.files){const g=40+i/n*40;t&&t(g,`Processing file: ${r.filename}`);try{await this.processResourceFile(r),i++}catch(s){throw console.error(`Failed to process resource file: ${r.filename}`,s),new Error(`Failed to process resource file: ${r.filename} - ${s.message}`)}}}async processResourceFile(e){switch(e.type){case"wakeword":await this.processWakewordModel(e);break;case"font":await this.processFontFile(e);break;case"emoji":await this.processEmojiFile(e);break;case"background":await this.processBackgroundFile(e);break;default:console.warn(`Unknown resource type: ${e.type}`)}}async processWakewordModel(e){if(!await this.wakenetPacker.loadModelFromShare(e.name))throw new Error(`Failed to load wakeword model: ${e.name}`);const i=this.wakenetPacker.packModels();this.spiffsGenerator.addFile(e.filename,i)}async processFontFile(e){if(e.config){const t=this.convertedFonts.get(e.filename);if(t)this.spiffsGenerator.addFile(e.filename,t);else throw new Error(`Converted font not found: ${e.filename}`)}else{const t=await this.loadPresetFont(e.source);this.spiffsGenerator.addFile(e.filename,t)}}async processEmojiFile(e){var r,g;let t,i=!1,n="png",o=!1;if(typeof e.source=="string"&&e.source.startsWith("preset:")){const s=e.source.replace("preset:","");t=await this.loadPresetEmoji(s,e.name)}else{const s=e.source;o=this.isGifFile(s),n=s.name.split(".").pop().toLowerCase();try{const I=await this.getImageDimensions(s),l=e.size||{width:64,height:64};(I.width>l.width||I.height>l.height)&&(i=!0,console.log(`Emoji ${e.name} needs scaling: ${I.width}x${I.height} -> ${l.width}x${l.height}`))}catch(I){console.warn(`Failed to get emoji image dimensions: ${e.name}`,I)}i||(t=await this.fileToArrayBuffer(s))}if(i)try{const s=e.size||{width:64,height:64};if(o){console.log(`Using WasmGifScaler to process GIF emoji: ${e.name}`);const a=await this.gifScaler.scaleGif(e.source,{maxWidth:s.width,maxHeight:s.height,keepAspectRatio:!0,lossy:30});t=await this.fileToArrayBuffer(a)}else t=await this.scaleImageToFit(e.source,s,n)}catch(s){console.error(`Failed to scale emoji image: ${e.name}`,s),t=await this.fileToArrayBuffer(e.source)}this.spiffsGenerator.addFile(e.filename,t,{width:((r=e.size)==null?void 0:r.width)||0,height:((g=e.size)==null?void 0:g.height)||0}),e.fileHash&&console.log(`Emoji file added: ${e.filename} (hash: ${e.fileHash.substring(0,8)})`)}async processBackgroundFile(e){const t=await this.fileToArrayBuffer(e.source),i=await this.convertImageToRgb565(t);this.spiffsGenerator.addFile(e.filename,i)}async loadPresetFont(e){try{const t=await fetch(`./static/fonts/${e}.bin`);if(!t.ok)throw new Error(`HTTP ${t.status}`);return await t.arrayBuffer()}catch(t){throw new Error(`Failed to load preset font: ${e} - ${t.message}`)}}async loadPresetEmoji(e,t){try{const i=await fetch(`./static/${e}/${t}.png`);if(!i.ok)throw new Error(`HTTP ${i.status}`);return await i.arrayBuffer()}catch(i){throw new Error(`Failed to load preset emoji: ${e}/${t} - ${i.message}`)}}fileToArrayBuffer(e){return new Promise((t,i)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>i(new Error("Failed to read file")),n.readAsArrayBuffer(e)})}async scaleImageToFit(e,t,i="png"){return new Promise((n,o)=>{const r=e instanceof File?e:new Blob([e]),g=URL.createObjectURL(r),s=new Image;s.onload=()=>{try{const a=document.createElement("canvas"),I=a.getContext("2d");a.width=t.width,a.height=t.height;const l=s.width/s.height,C=t.width/t.height;let Q,E,f,h;l>C?(Q=t.width,E=t.width/l,f=0,h=(t.height-E)/2):(E=t.height,Q=t.height*l,f=(t.width-Q)/2,h=0),i==="png"?I.clearRect(0,0,a.width,a.height):(I.fillStyle="#FFFFFF",I.fillRect(0,0,a.width,a.height)),I.drawImage(s,f,h,Q,E),a.toBlob(u=>{const p=new FileReader;p.onload=()=>n(p.result),p.onerror=()=>o(new Error("Failed to convert image data")),p.readAsArrayBuffer(u)},`image/${i}`),URL.revokeObjectURL(g)}catch(a){URL.revokeObjectURL(g),o(a)}},s.onerror=()=>{URL.revokeObjectURL(g),o(new Error("Unable to load image"))},s.src=g})}isGifFile(e){return e.type==="image/gif"?!0:e.name.split(".").pop().toLowerCase()==="gif"}async getImageDimensions(e){return new Promise((t,i)=>{const n=e instanceof File?e:new Blob([e]),o=URL.createObjectURL(n),r=new Image;r.onload=()=>{URL.revokeObjectURL(o),t({width:r.width,height:r.height})},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error("Unable to get image dimensions"))},r.src=o})}async convertImageToRgb565(e){return new Promise((t,i)=>{const n=new Blob([e]),o=URL.createObjectURL(n),r=new Image;r.onload=()=>{var g,s,a,I,l,C;try{const Q=document.createElement("canvas"),E=Q.getContext("2d",{willReadFrequently:!0});Q.width=((a=(s=(g=this.config)==null?void 0:g.chip)==null?void 0:s.display)==null?void 0:a.width)||320,Q.height=((C=(l=(I=this.config)==null?void 0:I.chip)==null?void 0:l.display)==null?void 0:C.height)||240;const f=r.width/r.height,h=Q.width/Q.height;let u,p,c,d;f>h?(p=Q.height,u=Q.height*f,c=(Q.width-u)/2,d=0):(u=Q.width,p=Q.width/f,c=0,d=(Q.height-p)/2),E.drawImage(r,c,d,u,p);const F=E.getImageData(0,0,Q.width,Q.height).data,N=new ArrayBuffer(Q.width*Q.height*2),G=new Uint16Array(N);for(let Y=0;Y<F.length;Y+=4){const q=F[Y]>>3,gA=F[Y+1]>>2,FA=F[Y+2]>>3;G[Y/4]=q<<11|gA<<5|FA}const P=25,b=18,R=Q.width*2,L=28,cA=L+N.byteLength,dA=new ArrayBuffer(cA),CA=new Uint8Array(dA),iA=new DataView(dA);let X=0;const eA=0|b<<8|P;iA.setUint32(X,eA,!0),X+=4;const fA=Q.height<<16|Q.width;iA.setUint32(X,fA,!0),X+=4;const DA=0|R;iA.setUint32(X,DA,!0),X+=4,iA.setUint32(X,N.byteLength,!0),X+=4,iA.setUint32(X,L,!0),X+=4,iA.setUint32(X,0,!0),X+=4,iA.setUint32(X,0,!0),X+=4,CA.set(new Uint8Array(N),L),URL.revokeObjectURL(o),t(dA)}catch(Q){URL.revokeObjectURL(o),i(Q)}},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error("Unable to load image"))},r.src=o})}cleanup(){this.resources.clear(),this.tempFiles=[],this.convertedFonts.clear(),this.wakenetPacker.clear(),this.spiffsGenerator.clear(),this.gifScaler.dispose()}async clearAllStoredData(){try{await this.configStorage.clearAll(),this.cleanup(),console.log("All stored data cleared")}catch(e){throw console.error("Failed to clear stored data:",e),e}}async getStorageStatus(){try{const e=await this.configStorage.getStorageInfo();return{hasStoredData:await this.configStorage.hasStoredConfig(),storageInfo:e,autoSaveEnabled:this.autoSaveEnabled}}catch(e){return console.error("Failed to get storage status:",e),{hasStoredData:!1,storageInfo:null,autoSaveEnabled:this.autoSaveEnabled}}}setAutoSave(e){this.autoSaveEnabled=e,console.log(`Auto-save ${e?"enabled":"disabled"}`)}getResourceSummary(){const e=[],t=this.preparePackageResources(),i={wakeword:0,font:0,emoji:0,background:0};return t.files.forEach(n=>{i[n.type]=(i[n.type]||0)+1;let o="";switch(n.type){case"wakeword":o=`Wakeword model: ${n.name} (${n.modelType})`;break;case"font":n.config?o=`Custom font: size ${n.config.size}px, BPP ${n.config.bpp}`:o=`Preset font: ${n.source}`;break;case"emoji":o=`Emoji: ${n.name} (${n.size.width}x${n.size.height})`;break;case"background":o=`${n.mode==="light"?"Light":"Dark"} mode background`;break}e.push({type:n.type,filename:n.filename,description:o})}),{files:e,counts:i,totalFiles:e.length,indexJson:t.indexJson}}}const aS={class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},IS={class:"bg-white rounded-lg shadow-xl max-w-2xl w-full max-h-[90vh] overflow-hidden"},CS={class:"flex items-center justify-between p-6 border-b border-gray-200"},lS={class:"text-lg font-medium text-gray-900"},BS={key:1,class:"text-sm text-orange-600 font-medium"},QS={class:"p-6 overflow-y-auto",style:{"max-height":"calc(90vh - 140px)"}},cS={key:0,class:"space-y-6"},ES={class:"font-medium text-gray-900 mb-3"},uS={class:"bg-gray-50 rounded-lg p-4 space-y-2 text-sm"},hS={class:"flex justify-between"},fS={class:"text-gray-600"},dS={class:"font-medium"},pS={class:"flex justify-between"},mS={class:"text-gray-600"},yS={class:"font-medium"},wS={class:"flex justify-between"},DS={class:"text-gray-600"},kS={class:"font-medium"},vS={class:"flex justify-between"},FS={class:"text-gray-600"},SS={class:"font-medium"},bS={class:"flex justify-between"},RS={class:"text-gray-600"},NS={class:"font-medium"},GS={class:"font-medium text-gray-900 mb-3"},LS={class:"space-y-2 max-h-64 overflow-y-auto"},US={class:"flex items-center"},MS={class:"text-sm font-medium text-gray-900"},xS={class:"text-sm text-gray-700"},JS={key:0,class:"text-xs text-gray-500 ml-1"},TS={key:1,class:"text-xs text-gray-500 ml-1"},HS={key:1,class:"space-y-6 text-center"},YS={class:"space-y-4"},_S={class:"text-gray-600 mt-2"},KS={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},PS={class:"text-sm text-gray-600"},OS={class:"mt-1"},VS={class:"space-y-2 text-left"},WS={class:"flex-shrink-0 mr-3"},qS={key:0,class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center"},jS={key:1,class:"w-5 h-5 bg-primary-500 rounded-full animate-pulse"},ZS={key:2,class:"w-5 h-5 bg-gray-300 rounded-full"},XS={key:2,class:"text-center space-y-6"},zS={class:"text-gray-600 mt-2"},$S={class:"bg-green-50 border border-green-200 rounded-lg p-4"},Ab={class:"text-sm text-green-800 space-y-1"},eb={class:"space-y-3"},tb=["disabled"],ib={key:3,class:"space-y-6 text-center"},nb={class:"space-y-4"},ob={class:"text-gray-600"},rb={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},gb={class:"text-sm text-gray-600"},sb={class:"mt-1"},ab={key:4,class:"text-center mt-4"},Ib={class:"text-sm text-red-600"},Cb={class:"flex justify-end space-x-3 p-6 border-t border-gray-200"},lb=["disabled"],Bb={__name:"GenerateModal",props:{config:{type:Object,required:!0}},emits:["close","generate","startFlash","cancelFlash"],setup(A,{emit:e}){const{t}=ve(),i=A,n=e,{deviceInfo:o}=No(),r=EA(!1),g=EA(!1),s=EA(0),a=EA(""),I=EA(""),l=EA(""),C=EA(null),Q=EA(null),E=EA(!1),f=EA(!1),h=EA(0),u=EA(""),p=EA(""),c=hA(()=>[{id:1,name:t("progressSteps.init"),status:"pending"},{id:2,name:t("progressSteps.font"),status:"pending"},{id:3,name:t("progressSteps.wakeword"),status:"pending"},{id:4,name:t("progressSteps.emoji"),status:"pending"},{id:5,name:t("progressSteps.background"),status:"pending"},{id:6,name:t("progressSteps.index"),status:"pending"},{id:7,name:t("progressSteps.spiffs"),status:"pending"},{id:8,name:t("progressSteps.package"),status:"pending"}]),d=EA([]),w=Ki({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{d:"M4 3a2 2 0 00-2 2v1a1 1 0 001 1h14a1 1 0 001-1V5a2 2 0 00-2-2H4zM3 8a1 1 0 011-1h12a1 1 0 011 1v5a2 2 0 01-2 2H5a2 2 0 01-2-2V8z"})])}),F=Ki({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{"fill-rule":"evenodd",d:"M7 4a3 3 0 016 0v4a3 3 0 11-6 0V4zm4 10.93A7.001 7.001 0 0017 8a1 1 0 10-2 0A5 5 0 015 8a1 1 0 00-2 0 7.001 7.001 0 006 6.93V17H6a1 1 0 100 2h8a1 1 0 100-2h-3v-2.07z","clip-rule":"evenodd"})])}),N=Ki({render:()=>GA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[GA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 4l8 16m-6-6h4"})])}),G=Ki({render:()=>GA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[GA("path",{"fill-rule":"evenodd",d:"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z","clip-rule":"evenodd"})])}),P=hA(()=>d.value.length>0),b=()=>{const Y=i.config.theme.wakeword;return!Y||Y.type==="none"?t("wakewordConfig.noWakeword"):Y.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}[Y.preset]||Y.preset:Y.type==="custom"?Y.custom.name||t("wakewordConfig.customWakeword"):t("wakewordConfig.noWakeword")},R=()=>i.config.theme.font.type==="preset"?i.config.theme.font.preset.replace("font_","").replace("_"," "):t("generateModal.customFont"),L=()=>i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset?i.config.theme.emoji.preset==="twemoji32"?"Twemoji 32×32":"Twemoji 64×64":i.config.theme.emoji.type==="custom"?t("generateModal.customEmoji"):i.config.theme.emoji.type==="none"?t("emojiConfig.noEmojiPack"):t("generateModal.notConfigured"),cA=()=>{d.value=[],d.value.push({id:"index",name:"index.json",description:"配置索引文件",icon:w,iconColor:"text-blue-500",size:"1KB"});const Y=i.config.theme.wakeword;if(Y&&Y.type!=="none"&&d.value.push({id:"srmodels",name:"srmodels.bin",description:Y.type==="custom"?"自定义命令词模型":"预设唤醒词模型",icon:F,iconColor:"text-green-500",size:Y.type==="custom"?"~1.2MB":"~300KB"}),i.config.theme.font.type==="preset"){const q={font_puhui_deepseek_14_1:"180KB",font_puhui_deepseek_16_4:"720KB",font_puhui_deepseek_20_4:"1.1MB",font_puhui_deepseek_30_4:"2.5MB"};d.value.push({id:"font",name:`${i.config.theme.font.preset}.bin`,description:"预设字体文件",icon:N,iconColor:"text-yellow-500",size:q[i.config.theme.font.preset]||"500KB"})}else if(i.config.theme.font.custom.file){const q=i.config.theme.font.custom,gA=Math.max(100,q.size*q.size*q.bpp*.7);d.value.push({id:"font",name:`font_custom_${q.size}_${q.bpp}.bin`,description:"自定义字体文件",icon:N,iconColor:"text-yellow-500",size:gA>1024?`${(gA/1024).toFixed(1)}MB`:`${Math.round(gA)}KB`,estimated:!0})}if(i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset){const q=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],gA=i.config.theme.emoji.preset==="twemoji64"?"3KB":"1KB";q.forEach(FA=>{d.value.push({id:`emoji_${FA}`,name:`${FA}.png`,description:`${FA}表情图片`,icon:G,iconColor:"text-pink-500",size:gA})})}else if(i.config.theme.emoji.type==="custom"){const q=i.config.theme.emoji.custom,gA=q.emotionMap||{},FA=q.fileMap||{};if(q.images,Object.keys(gA).length===0||Object.keys(FA).length===0){console.error(t("errors.incompatibleEmojiData"));return}const LA=new Map,TA=new Map;Object.entries(gA).forEach(([M,Z])=>{const $=FA[Z];if($){if(!LA.has(Z)){const IA=Math.round($.size/1024);LA.set(Z,{file:$,size:IA>1024?`${(IA/1024).toFixed(1)}MB`:`${IA}KB`,emotions:[]})}LA.get(Z).emotions.push(M),TA.set(M,Z)}}),LA.forEach((M,Z)=>{const $=M.emotions.join(", "),IA=M.emotions.length>1;d.value.push({id:`emoji_${Z.substring(0,8)}`,name:`emoji_${Z.substring(0,8)}.${M.file.name.split(".").pop()}`,description:IA?`共享表情图片 (${$})`:`${$}表情图片`,icon:G,iconColor:IA?"text-purple-500":"text-pink-500",size:M.size,isCustomEmoji:!0})}),LA.size<Object.keys(gA).length&&console.log(`表情去重:${Object.keys(gA).length} 个表情使用了 ${LA.size} 个文件`)}if(i.config.theme.skin.light.backgroundType==="image"&&i.config.theme.skin.light.backgroundImage){const{width:q,height:gA}=i.config.chip.display,FA=Math.round(q*gA*2/1024);d.value.push({id:"bg_light",name:"background_light.raw",description:"浅色模式背景图片",icon:G,iconColor:"text-indigo-500",size:FA>1024?`${(FA/1024).toFixed(1)}MB`:`${FA}KB`,estimated:!0})}if(i.config.theme.skin.dark.backgroundType==="image"&&i.config.theme.skin.dark.backgroundImage){const{width:q,height:gA}=i.config.chip.display,FA=Math.round(q*gA*2/1024);d.value.push({id:"bg_dark",name:"background_dark.raw",description:"深色模式背景图片",icon:G,iconColor:"text-indigo-500",size:FA>1024?`${(FA/1024).toFixed(1)}MB`:`${FA}KB`,estimated:!0})}},dA=Y=>{if(Y===0)return"0 B";const q=1024,gA=["B","KB","MB","GB"],FA=Math.floor(Math.log(Y)/Math.log(q));return`${parseFloat((Y/Math.pow(q,FA)).toFixed(2))} ${gA[FA]}`},CA=Y=>{if(Y<1e3)return`${Y}ms`;if(Y<6e4)return`${(Y/1e3).toFixed(1)}s`;{const q=Math.floor(Y/6e4),gA=Math.floor(Y%6e4/1e3);return`${q}m ${gA}s`}},iA=async()=>{r.value=!0,s.value=0,Q.value=Date.now();try{const Y=new Yl;Y.setConfig(i.config);const q=await Y.generateAssetsBin((LA,TA)=>{s.value=parseInt(LA),a.value=TA;const M=Math.floor(LA/(100/c.value.length));c.value.forEach((Z,$)=>{$<M?Z.status="completed":$===M?Z.status="processing":Z.status="pending"})});r.value=!1,g.value=!0,I.value=dA(q.size);const FA=Date.now()-Q.value;l.value=CA(FA),C.value=q,c.value.forEach(LA=>{LA.status="completed"}),n("generate",d.value.map(LA=>({id:LA.id,name:LA.name})))}catch(Y){console.error("生成 assets.bin 失败:",Y),r.value=!1,g.value=!1,alert(t("errors.generationFailed",{error:Y.message}))}},X=()=>{if(C.value){const Y=URL.createObjectURL(C.value),q=document.createElement("a");q.href=Y,q.download="assets.bin",q.style.display="none",document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(Y)}else console.error(t("errors.noFileToDownload"))},eA=async()=>{try{const q=new URLSearchParams(window.location.search).get("token");if(!q){E.value=!1;return}const gA=await fetch("/api/messaging/device/tools/list",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`}});E.value=gA.ok}catch(Y){console.error(t("flashProgress.unableToGetDeviceStatus"),Y),E.value=!1}},fA=async()=>{if(!C.value){alert(t("errors.noFileToDownload"));return}if(!E.value){alert(t("errors.deviceOffline"));return}if(o.value.assetsPartition&&o.value.assetsPartition.size){const Y=o.value.assetsPartition.size,q=C.value.size;if(q>Y){const gA=(q/1024/1024).toFixed(2),FA=(Y/1024/1024).toFixed(2);alert(t("errors.fileTooLarge",{fileSize:gA,partitionSize:FA}));return}}f.value=!0,h.value=0,u.value=t("flashProgress.startingFileTransfer"),p.value="";try{n("startFlash",{blob:C.value,onProgress:(Y,q)=>{h.value=Y,u.value=q},onComplete:()=>{f.value=!1,h.value=100,u.value=t("flashProgress.flashCompleted")},onError:Y=>{f.value=!1,p.value=Y,console.error(t("flashProgress.onlineFlashFailed",{error:Y}))}})}catch(Y){f.value=!1,p.value=t("flashProgress.onlineFlashFailed",{error:Y.message}),console.error(t("flashProgress.onlineFlashFailed",{error:Y}))}},DA=()=>{confirm(t("errors.flashCancelConfirm"))&&(f.value=!1,h.value=0,u.value="",p.value="",n("cancelFlash"))};return Ft(async()=>{cA(),await eA()}),(Y,q)=>(H(),_("div",aS,[B("div",IS,[B("div",CS,[B("h3",lS,v(Y.$t("generateModal.title")),1),f.value?(H(),_("div",BS,v(Y.$t("generateModal.flashingInProgress")),1)):(H(),_("button",{key:0,onClick:q[0]||(q[0]=gA=>Y.$emit("close")),class:"text-gray-400 hover:text-gray-500"},[...q[3]||(q[3]=[B("svg",{class:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]))]),B("div",QS,[!r.value&&!g.value?(H(),_("div",cS,[B("div",null,[B("h4",ES,v(Y.$t("generateModal.confirmConfig")),1),B("div",uS,[B("div",hS,[B("span",fS,v(Y.$t("generateModal.chipModel")),1),B("span",dS,v(A.config.chip.model.toUpperCase()),1)]),B("div",pS,[B("span",mS,v(Y.$t("generateModal.resolution")),1),B("span",yS,v(A.config.chip.display.width)+"×"+v(A.config.chip.display.height),1)]),B("div",wS,[B("span",DS,v(Y.$t("generateModal.wakeword")),1),B("span",kS,v(b()),1)]),B("div",vS,[B("span",FS,v(Y.$t("generateModal.font")),1),B("span",SS,v(R()),1)]),B("div",bS,[B("span",RS,v(Y.$t("generateModal.emoji")),1),B("span",NS,v(L()),1)])])]),B("div",null,[B("h4",GS,v(Y.$t("generateModal.fileList")),1),B("div",LS,[(H(!0),_(jA,null,Ke(d.value,gA=>(H(),_("div",{key:gA.id,class:"flex items-center justify-between px-3 py-2 border border-gray-200 rounded bg-gray-50"},[B("div",US,[(H(),ye(TI(gA.icon),{class:kA(["w-4 h-4 mr-2",gA.iconColor])},null,8,["class"])),B("span",MS,v(gA.name),1)]),B("div",xS,[gt(v(gA.size)+" ",1),gA.estimated?(H(),_("span",JS,v(Y.$t("generateModal.estimated")),1)):sA("",!0),gA.isCustomEmoji?(H(),_("span",TS,v(Y.$t("generateModal.compressed")),1)):sA("",!0)])]))),128))])])])):sA("",!0),r.value?(H(),_("div",HS,[q[5]||(q[5]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-primary-500"})],-1)),B("div",YS,[B("p",_S,v(Y.$t("generateModal.generating")),1),B("div",KS,[B("div",{class:"bg-primary-500 h-2 rounded-full transition-all duration-500 ease-out",style:WA({width:s.value+"%"})},null,4)]),B("div",PS,[B("div",null,v(a.value),1),B("div",OS,v(Y.$t("generateModal.progress",{progress:s.value})),1)])]),B("div",VS,[(H(!0),_(jA,null,Ke(c.value,gA=>(H(),_("div",{key:gA.id,class:"flex items-center text-sm"},[B("div",WS,[gA.status==="completed"?(H(),_("div",qS,[...q[4]||(q[4]=[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})],-1)])])):gA.status==="processing"?(H(),_("div",jS)):(H(),_("div",ZS))]),B("span",{class:kA([gA.status==="completed"?"text-green-700":gA.status==="processing"?"text-primary-700":"text-gray-500"])},v(gA.name),3)]))),128))])])):sA("",!0),g.value&&!f.value?(H(),_("div",XS,[q[8]||(q[8]=B("div",{class:"mx-auto flex items-center justify-center"},[B("svg",{class:"w-20 h-20 text-green-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})])],-1)),B("div",null,[B("p",zS,v(Y.$t("generateModal.completed")),1)]),B("div",$S,[B("div",Ab,[B("div",null,v(Y.$t("generateModal.filename")),1),B("div",null,v(Y.$t("generateModal.fileSize",{size:I.value})),1),B("div",null,v(Y.$t("generateModal.generationTime",{time:l.value})),1)])]),B("div",eb,[B("button",{onClick:X,class:"w-full bg-gray-100 hover:bg-gray-200 text-gray-700 px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[q[6]||(q[6]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+v(Y.$t("generateModal.downloadAssets")),1)]),B("button",{onClick:fA,disabled:!E.value,class:"w-full bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[q[7]||(q[7]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),gt(" "+v(Y.$t("generateModal.flashToDevice")),1)],8,tb)])])):sA("",!0),f.value&&!p.value?(H(),_("div",ib,[q[9]||(q[9]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-blue-500"})],-1)),B("div",nb,[B("p",ob,v(Y.$t("generateModal.flashing")),1),B("div",rb,[B("div",{class:"bg-blue-500 h-2 rounded-full transition-all duration-500 ease-out",style:WA({width:h.value+"%"})},null,4)]),B("div",gb,[B("div",null,v(u.value),1),B("div",sb,v(Y.$t("generateModal.progress",{progress:h.value})),1)])]),B("button",{onClick:DA,class:"px-4 py-2 text-sm font-medium text-red-600 bg-red-50 hover:bg-red-100 rounded-md transition-colors"},v(Y.$t("generateModal.flashingCancel")),1)])):sA("",!0),p.value?(H(),_("div",ab,[B("p",Ib,v(p.value),1)])):sA("",!0)]),B("div",Cb,[!r.value&&!g.value?(H(),_("button",{key:0,onClick:q[1]||(q[1]=gA=>Y.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},v(Y.$t("common.cancel")),1)):sA("",!0),!r.value&&!g.value?(H(),_("button",{key:1,onClick:iA,disabled:!P.value,class:"px-6 py-2 text-sm font-medium text-white bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 rounded-md transition-colors"},v(Y.$t("common.start"))+" "+v(Y.$t("common.generate")),9,lb)):sA("",!0),g.value&&!f.value?(H(),_("button",{key:2,onClick:q[2]||(q[2]=gA=>Y.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},v(Y.$t("common.close")),1)):sA("",!0)])])]))}};class Qb{constructor(e){this.token=e,this.ws=null,this.isConnected=!1,this.isCancelled=!1,this.chunkSize=64*1024,this.onProgress=null,this.onError=null,this.onComplete=null,this.onDownloadUrlReady=null,this.onTransferStarted=null,this.currentSession=null,this.totalBytesSent=0,this.isSendingChunk=!1}async connect(){return new Promise((e,t)=>{try{const i=`wss://api.tenclass.net/transfer/?token=${encodeURIComponent(this.token)}`;this.ws=new WebSocket(i),this.ws.onopen=()=>{this.isConnected=!0,console.log("WebSocket connected to transfer server"),e()},this.ws.onmessage=n=>{this.handleMessage(n)},this.ws.onerror=n=>{console.error("WebSocket error:",n),this.isConnected=!1,t(new Error("WebSocket connection failed"))},this.ws.onclose=n=>{console.log("WebSocket closed:",n.code,n.reason),this.isConnected=!1},setTimeout(()=>{this.isConnected||(this.ws.close(),t(new Error("WebSocket connection timeout")))},1e4)}catch(i){t(new Error(`Failed to create WebSocket connection: ${i.message}`))}})}handleMessage(e){try{if(typeof e.data=="string"){const t=JSON.parse(e.data);switch(t.type){case"file_created":this.currentSession&&(this.currentSession.url=t.url,this.onDownloadUrlReady&&this.onDownloadUrlReady(t.url));break;case"transfer_started":this.currentSession&&(this.currentSession.transferStarted=!0,this.onTransferStarted&&this.onTransferStarted(),this.currentSession.transferReady&&this.sendFileData());break;case"ack":if(this.currentSession){const{blob:i}=this.currentSession,n=i.size,o=t.bytesSent;if(o<0){console.error("Invalid server bytesSent (negative):",o),this.isSendingChunk=!1,this.onError&&this.onError(new Error("Server returned invalid byte count"));return}if(o>n){console.error(`Server bytesSent (${o}) exceeds fileSize (${n})`),this.isSendingChunk=!1,this.onError&&this.onError(new Error("Server byte count exceeds file size"));return}this.isSendingChunk=!1,o>this.currentSession.bytesSent&&(this.currentSession.bytesSent=o),this.sendFileData()}break;case"transfer_completed":if(this.currentSession){const i=this.currentSession.blob.size;this.totalBytesSent!==i&&console.warn(`Transfer size mismatch: sent ${this.totalBytesSent} bytes, expected ${i} bytes`)}this.onComplete&&this.onComplete();break;case"error":console.error("Transfer error:",t.message),this.onError&&this.onError(new Error(t.message));break}}}catch(t){console.error("Error handling message:",t),this.onError&&this.onError(t)}}async sendFileData(){if(this.isSendingChunk||!this.currentSession||this.isCancelled)return;const{blob:e}=this.currentSession,t=e.size;let i=this.currentSession.bytesSent;if(i>=t){this.onProgress&&this.onProgress(100,"Transfer completed, waiting for device confirmation...");return}if(this.isSendingChunk=!0,i>t){console.error(`Critical error: bytesSent (${i}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Transfer byte count exceeds file size"));return}const n=Math.max(0,t-i),o=Math.min(this.chunkSize,n);if(o<=0)return;const r=e.slice(i,i+o);try{const g=await new Promise((l,C)=>{const Q=new FileReader;Q.onload=()=>l(Q.result),Q.onerror=()=>C(new Error("File read failed")),Q.readAsArrayBuffer(r)});if(this.isCancelled)return;this.ws.send(g);const s=i+o;if(this.currentSession.bytesSent=s,this.totalBytesSent+=o,s>t){console.error(`Critical error: bytesSent (${s}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Transfer byte count exceeds file size"));return}if(this.totalBytesSent>t){console.error(`Critical error: totalBytesSent (${this.totalBytesSent}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Total sent bytes exceed file size"));return}const a=Math.round(s/t*60)+40,I=`Transferring... ${Math.round(s/1024)}KB / ${Math.round(t/1024)}KB`;this.onProgress&&this.onProgress(a,I)}catch(g){console.error("Error sending file chunk:",g),this.isSendingChunk=!1,this.onError&&this.onError(g)}}async initializeSession(e,t,i,n){return new Promise((o,r)=>{this.onProgress=t,this.onError=g=>{i&&i(g),r(g)},this.onDownloadUrlReady=g=>{n&&n(g),o(g)},this.isCancelled=!1;try{this.onProgress&&this.onProgress(5,"Connecting to transfer server..."),this.connect().then(()=>{this.onProgress&&this.onProgress(10,"Creating file session...");const g={type:"create_file",fileName:"assets.bin",fileSize:e.size};this.ws.send(JSON.stringify(g)),this.currentSession={blob:e,bytesSent:0,fileSize:e.size,transferStarted:!1,transferReady:!0},this.totalBytesSent=0}).catch(g=>{console.error("Transfer initialization failed:",g),this.onError&&this.onError(g)})}catch(g){console.error("Transfer initialization failed:",g),this.onError&&this.onError(g)}})}async startTransfer(e,t,i){return new Promise((n,o)=>{if(this.onProgress=e,this.onError=r=>{this.isSendingChunk=!1,t&&t(r),o(r)},this.onComplete=()=>{this.isSendingChunk=!1,i&&i(),n()},!this.currentSession||!this.currentSession.blob){const r=new Error("Transfer session not initialized");this.onError&&this.onError(r),o(r);return}this.currentSession.transferReady=!0,this.currentSession.transferStarted&&this.sendFileData()})}async transferFile(e,t,i,n,o){if(o){await this.initializeSession(e,t,i,o);return}this.onProgress=t,this.onError=i,this.onComplete=n,this.isCancelled=!1;try{this.onProgress&&this.onProgress(5,"Connecting to transfer server..."),await this.connect(),this.onProgress&&this.onProgress(10,"Creating file session...");const r={type:"create_file",fileName:"assets.bin",fileSize:e.size};this.ws.send(JSON.stringify(r)),this.currentSession={blob:e,bytesSent:0,fileSize:e.size,transferStarted:!1,transferReady:!0}}catch(r){console.error("Transfer initialization failed:",r),this.onError&&this.onError(r)}}cancel(){this.isCancelled=!0,this.isSendingChunk=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.close()}destroy(){this.cancel(),this.onProgress=null,this.onError=null,this.onComplete=null,this.onDownloadUrlReady=null,this.onTransferStarted=null,this.totalBytesSent=0,this.isSendingChunk=!1}}const cb={class:"flex items-center justify-between mb-2"},Eb={class:"flex items-center"},ub={class:"text-blue-800 font-medium"},hb={class:"text-blue-600 text-sm mb-3"},fb={class:"flex justify-end space-x-2"},db={class:"flex items-center justify-center mb-8"},pb={class:"flex flex-col items-center"},mb={class:"text-sm mt-2 text-gray-600"},yb={key:0,class:"w-16 h-0.5 bg-gray-300 mx-4"},wb={class:"bg-white rounded-lg shadow-sm border p-6"},_l={__name:"HomePage",setup(A){const{callMcpTool:e}=No(),{t}=ve(),i=EA(0),n=EA(!1),o=EA("wakeword"),r=EA(!1),g=EA(!1),s=EA(!1),a=EA(!0),I=new Yl,l=EA(null),C=EA(null),Q=[{titleKey:"steps.chip",key:"chip"},{titleKey:"steps.theme",key:"theme"},{titleKey:"steps.generate",key:"generate"}],E=EA({chip:{model:"",display:{width:320,height:240,color:"RGB565"}},theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:160,height:120},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}});hA(()=>E.value.chip.model&&(E.value.theme.font.type==="none"||E.value.theme.font.preset||E.value.theme.font.custom.file));const f=CA=>CA<i.value?"step-indicator completed":CA===i.value?"step-indicator active":"step-indicator inactive",h=async()=>{i.value<Q.length-1&&(i.value++,g.value||(g.value=!0,await R()))},u=()=>{i.value>0&&i.value--},p=()=>{n.value=!0},c=async CA=>{},d=()=>new URLSearchParams(window.location.search).get("token"),w=async(CA,iA={})=>await e(CA,iA),F=async CA=>{const{blob:iA,onProgress:X,onComplete:eA,onError:fA}=CA;try{const DA=d();if(!DA)throw new Error(t("flashProgress.authTokenMissing"));X(5,t("flashProgress.checkingDeviceStatus"));try{if(!await w("self.get_device_status"))throw new Error(t("flashProgress.deviceOfflineOrUnresponsive",{error:t("flashProgress.unableToGetDeviceStatus")}))}catch(M){console.error("检查设备状态失败:",M),fA(t("flashProgress.deviceOfflineOrUnresponsive",{error:M.message}));return}X(15,t("flashProgress.initializingTransferService")),C.value=new Qb(DA);let Y=null;const q=new Promise((M,Z)=>{Y=M});let gA=null;const FA=new Promise((M,Z)=>{gA=M});C.value.onTransferStarted=()=>{gA&&(gA(),gA=null)},await C.value.initializeSession(iA,(M,Z)=>{X(15+M*.75,Z)},M=>{console.error("WebSocket初始化失败:",M),fA(t("flashProgress.initializeTransferFailed",{error:M.message}))},M=>{Y(M)});const LA=await q;X(30,t("flashProgress.settingDeviceDownloadUrl"));try{await w("self.assets.set_download_url",{url:LA})}catch(M){console.error("设置下载URL失败:",M),fA(t("flashProgress.setDownloadUrlFailed",{error:M.message}));return}X(40,t("flashProgress.rebootingDevice")),w("self.reboot").catch(M=>{console.warn("reboot指令调用警告(设备可能已重启):",M)}),X(50,t("flashProgress.waitingForDeviceReboot"));const TA=new Promise((M,Z)=>{setTimeout(()=>Z(new Error(t("flashProgress.deviceRebootTimeout"))),6e4)});await Promise.race([FA,TA]),X(60,t("flashProgress.startingFileTransfer")),await C.value.startTransfer((M,Z)=>{const $=60+M*.4;X(Math.round($),Z)},M=>{fA(t("flashProgress.onlineFlashFailed",{error:M.message}))},()=>{eA()}),C.value.onTransferStarted=null}catch(DA){console.error("在线烧录失败:",DA),fA(t("flashProgress.onlineFlashFailed",{error:DA.message}))}},N=()=>{C.value&&(C.value.cancel(),C.value.destroy(),C.value=null)},G=CA=>{o.value=CA},P=async()=>{var CA,iA,X;try{a.value=!0;const eA=await Qe.loadConfig();if(eA){E.value=eA.config,i.value=0,o.value="wakeword",r.value=!0,g.value=!0,await b(),l.value&&clearTimeout(l.value),l.value=setTimeout(()=>{r.value=!1},5e3),I.setConfig(E.value,{strict:!1}),await I.restoreAllResourcesFromStorage(E.value);try{const fA=((X=(iA=(CA=E.value)==null?void 0:CA.theme)==null?void 0:iA.emoji)==null?void 0:X.custom)||{},DA=fA.images||{},Y=fA.fileMap||{},q=fA.emotionMap||{};E.value={...E.value,theme:{...E.value.theme,emoji:{...E.value.theme.emoji,custom:{...fA,images:{...DA},fileMap:{...Y},emotionMap:{...q}}}}}}catch(fA){console.error("刷新表情配置引用失败:",fA)}}else r.value=!1,g.value=!1}catch(eA){console.error("加载配置失败:",eA),r.value=!1,g.value=!1}finally{a.value=!1}},b=async()=>{var CA,iA,X;try{const eA=(X=(iA=(CA=E.value)==null?void 0:CA.theme)==null?void 0:iA.emoji)==null?void 0:X.custom;if(!eA)return;const fA=Object.keys(eA.images||{}).length>0,DA=eA.fileMap&&Object.keys(eA.fileMap).length>0,Y=eA.emotionMap&&Object.keys(eA.emotionMap).length>0;if(fA&&(!DA||!Y)){console.warn("⚠️ 检测到旧版本的表情数据结构(不兼容)"),console.log("正在清理旧数据...");try{const gA=Object.keys(eA.images||{});for(const FA of gA)await Qe.deleteFile(`emoji_${FA}`);console.log(`已删除 ${gA.length} 个旧表情文件`)}catch(gA){console.warn("清理旧表情文件时出错:",gA)}E.value.theme.emoji.custom={size:eA.size||{width:64,height:64},images:{},fileMap:{},emotionMap:{}},E.value.theme.emoji.type==="custom"&&(E.value.theme.emoji.type="",console.log("已重置表情类型,请重新选择")),await R(),console.log("✅ 旧表情数据已完全清除"),setTimeout(()=>{alert(`检测到旧版本的表情数据结构已被清除。
|
||
|
||
新版本使用文件去重技术,可以节省存储空间。
|
||
|
||
请重新上传自定义表情图片。`)},500)}}catch(eA){console.error("清理旧表情数据时出错:",eA)}},R=async()=>{try{await Qe.saveConfig(E.value)}catch(CA){console.error("保存配置失败:",CA)}},L=async()=>{try{s.value=!0,await I.clearAllStoredData();const CA={model:E.value.chip.model,display:{...E.value.chip.display}};E.value={chip:CA,theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:64,height:64},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}},i.value=0,o.value="wakeword",r.value=!1,g.value=!1}catch(CA){console.error("重置配置失败:",CA),alert(t("errors.resetFailed"))}finally{s.value=!1}};ae(E,async CA=>{!a.value&&g.value&&await R()},{deep:!0}),Ft(async()=>{await Qe.initialize(),await P()}),Ci(()=>{l.value&&clearTimeout(l.value)});const cA=()=>{r.value=!1,l.value&&clearTimeout(l.value)},dA=()=>{l.value&&clearTimeout(l.value),l.value=setTimeout(()=>{r.value=!1},5e3)};return(CA,iA)=>(H(),_("div",null,[r.value?(H(),_("div",{key:0,class:"fixed bottom-4 right-4 z-50 bg-blue-50 border border-blue-200 rounded-lg p-4 shadow-lg transition-opacity duration-300 min-w-[300px]",onMouseenter:dA},[B("div",cb,[B("div",Eb,[iA[3]||(iA[3]=B("svg",{class:"w-5 h-5 text-blue-500 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),B("span",ub,v(CA.$t("configNotice.title")),1)]),B("button",{onClick:cA,class:"text-gray-500 hover:text-gray-700"},[...iA[4]||(iA[4]=[B("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),B("p",hb,v(CA.$t("configNotice.message")),1),B("div",fb,[B("button",{onClick:L,class:"px-3 py-1 text-sm text-red-600 hover:text-red-800 font-medium"},v(CA.$t("configNotice.restart")),1)])],32)):sA("",!0),B("div",db,[(H(),_(jA,null,Ke(Q,(X,eA)=>B("div",{key:eA,class:"flex items-center"},[B("div",pb,[B("div",{class:kA(f(eA))},v(eA+1),3),B("span",mb,v(CA.$t(X.titleKey)),1)]),eA<Q.length-1?(H(),_("div",yb)):sA("",!0)])),64))]),B("div",wb,[i.value===0?(H(),ye(Od,{key:0,modelValue:E.value.chip,"onUpdate:modelValue":iA[0]||(iA[0]=X=>E.value.chip=X),onNext:h},null,8,["modelValue"])):sA("",!0),i.value===1?(H(),ye(my,{key:1,modelValue:E.value.theme,"onUpdate:modelValue":iA[1]||(iA[1]=X=>E.value.theme=X),chipModel:E.value.chip.model,activeTab:o.value,onNext:h,onPrev:u,onTabChange:G},null,8,["modelValue","chipModel","activeTab"])):sA("",!0),i.value===2?(H(),ye(cw,{key:2,config:E.value,onGenerate:p,onPrev:u},null,8,["config"])):sA("",!0)]),n.value?(H(),ye(Bb,{key:1,config:E.value,onClose:iA[2]||(iA[2]=X=>n.value=!1),onGenerate:c,onStartFlash:F,onCancelFlash:N},null,8,["config"])):sA("",!0)]))}},Db=Object.freeze(Object.defineProperty({__proto__:null,default:_l},Symbol.toStringTag,{value:"Module"})),kb={class:"min-h-screen bg-gray-50"},vb={class:"bg-white shadow-sm border-b"},Fb={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4"},Sb={class:"flex flex-col relative sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0"},bb={class:"text-2xl font-bold text-gray-900"},Rb={class:"flex items-center space-x-4"},Nb={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},Gb={__name:"App",setup(A){const e=EA(""),t=()=>{e.value&&(window.location.href=e.value)};return Ft(()=>{e.value=sessionStorage.getItem("devicePath")}),(i,n)=>(H(),_("div",kb,[B("header",vb,[B("div",Fb,[B("div",Sb,[e.value?(H(),_("div",{key:0,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-1 rounded-md cursor-pointer",onClick:t},"返回")):sA("",!0),B("h1",bb,v(i.$t("header.title")),1),B("div",Rb,[HA(ch),HA(rd)])])])]),B("main",Nb,[HA(_l)])]))}};/*!
|
||
* vue-router v4.6.4
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/const Ei=typeof document<"u";function Kl(A){return typeof A=="object"||"displayName"in A||"props"in A||"__vccOpts"in A}function Lb(A){return A.__esModule||A[Symbol.toStringTag]==="Module"||A.default&&Kl(A.default)}const MA=Object.assign;function or(A,e){const t={};for(const i in e){const n=e[i];t[i]=qe(n)?n.map(A):A(n)}return t}const $i=()=>{},qe=Array.isArray;function Ta(A,e){const t={};for(const i in A)t[i]=i in e?e[i]:A[i];return t}const Pl=/#/g,Ub=/&/g,Mb=/\//g,xb=/=/g,Jb=/\?/g,Ol=/\+/g,Tb=/%5B/g,Hb=/%5D/g,Vl=/%5E/g,Yb=/%60/g,Wl=/%7B/g,_b=/%7C/g,ql=/%7D/g,Kb=/%20/g;function vg(A){return A==null?"":encodeURI(""+A).replace(_b,"|").replace(Tb,"[").replace(Hb,"]")}function Pb(A){return vg(A).replace(Wl,"{").replace(ql,"}").replace(Vl,"^")}function Hr(A){return vg(A).replace(Ol,"%2B").replace(Kb,"+").replace(Pl,"%23").replace(Ub,"%26").replace(Yb,"`").replace(Wl,"{").replace(ql,"}").replace(Vl,"^")}function Ob(A){return Hr(A).replace(xb,"%3D")}function Vb(A){return vg(A).replace(Pl,"%23").replace(Jb,"%3F")}function Wb(A){return Vb(A).replace(Mb,"%2F")}function Qn(A){if(A==null)return null;try{return decodeURIComponent(""+A)}catch{}return""+A}const qb=/\/$/,jb=A=>A.replace(qb,"");function rr(A,e,t="/"){let i,n={},o="",r="";const g=e.indexOf("#");let s=e.indexOf("?");return s=g>=0&&s>g?-1:s,s>=0&&(i=e.slice(0,s),o=e.slice(s,g>0?g:e.length),n=A(o.slice(1))),g>=0&&(i=i||e.slice(0,g),r=e.slice(g,e.length)),i=$b(i??e,t),{fullPath:i+o+r,path:i,query:n,hash:Qn(r)}}function Zb(A,e){const t=e.query?A(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function Ha(A,e){return!e||!A.toLowerCase().startsWith(e.toLowerCase())?A:A.slice(e.length)||"/"}function Xb(A,e,t){const i=e.matched.length-1,n=t.matched.length-1;return i>-1&&i===n&&Ni(e.matched[i],t.matched[n])&&jl(e.params,t.params)&&A(e.query)===A(t.query)&&e.hash===t.hash}function Ni(A,e){return(A.aliasOf||A)===(e.aliasOf||e)}function jl(A,e){if(Object.keys(A).length!==Object.keys(e).length)return!1;for(var t in A)if(!zb(A[t],e[t]))return!1;return!0}function zb(A,e){return qe(A)?Ya(A,e):qe(e)?Ya(e,A):(A==null?void 0:A.valueOf())===(e==null?void 0:e.valueOf())}function Ya(A,e){return qe(e)?A.length===e.length&&A.every((t,i)=>t===e[i]):A.length===1&&A[0]===e}function $b(A,e){if(A.startsWith("/"))return A;if(!A)return e;const t=e.split("/"),i=A.split("/"),n=i[i.length-1];(n===".."||n===".")&&i.push("");let o=t.length-1,r,g;for(r=0;r<i.length;r++)if(g=i[r],g!==".")if(g==="..")o>1&&o--;else break;return t.slice(0,o).join("/")+"/"+i.slice(r).join("/")}const Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Yr=function(A){return A.pop="pop",A.push="push",A}({}),gr=function(A){return A.back="back",A.forward="forward",A.unknown="",A}({});function AR(A){if(!A)if(Ei){const e=document.querySelector("base");A=e&&e.getAttribute("href")||"/",A=A.replace(/^\w+:\/\/[^\/]+/,"")}else A="/";return A[0]!=="/"&&A[0]!=="#"&&(A="/"+A),jb(A)}const eR=/^[^#]+#/;function tR(A,e){return A.replace(eR,"#")+e}function iR(A,e){const t=document.documentElement.getBoundingClientRect(),i=A.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const Uo=()=>({left:window.scrollX,top:window.scrollY});function nR(A){let e;if("el"in A){const t=A.el,i=typeof t=="string"&&t.startsWith("#"),n=typeof t=="string"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!n)return;e=iR(n,A)}else e=A;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function _a(A,e){return(history.state?history.state.position-e:-1)+A}const _r=new Map;function oR(A,e){_r.set(A,e)}function rR(A){const e=_r.get(A);return _r.delete(A),e}function gR(A){return typeof A=="string"||A&&typeof A=="object"}function Zl(A){return typeof A=="string"||typeof A=="symbol"}let zA=function(A){return A[A.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",A[A.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",A[A.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",A[A.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",A[A.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",A}({});const Xl=Symbol("");zA.MATCHER_NOT_FOUND+"",zA.NAVIGATION_GUARD_REDIRECT+"",zA.NAVIGATION_ABORTED+"",zA.NAVIGATION_CANCELLED+"",zA.NAVIGATION_DUPLICATED+"";function Gi(A,e){return MA(new Error,{type:A,[Xl]:!0},e)}function ct(A,e){return A instanceof Error&&Xl in A&&(e==null||!!(A.type&e))}const sR=["params","query","hash"];function aR(A){if(typeof A=="string")return A;if(A.path!=null)return A.path;const e={};for(const t of sR)t in A&&(e[t]=A[t]);return JSON.stringify(e,null,2)}function IR(A){const e={};if(A===""||A==="?")return e;const t=(A[0]==="?"?A.slice(1):A).split("&");for(let i=0;i<t.length;++i){const n=t[i].replace(Ol," "),o=n.indexOf("="),r=Qn(o<0?n:n.slice(0,o)),g=o<0?null:Qn(n.slice(o+1));if(r in e){let s=e[r];qe(s)||(s=e[r]=[s]),s.push(g)}else e[r]=g}return e}function Ka(A){let e="";for(let t in A){const i=A[t];if(t=Ob(t),i==null){i!==void 0&&(e+=(e.length?"&":"")+t);continue}(qe(i)?i.map(n=>n&&Hr(n)):[i&&Hr(i)]).forEach(n=>{n!==void 0&&(e+=(e.length?"&":"")+t,n!=null&&(e+="="+n))})}return e}function CR(A){const e={};for(const t in A){const i=A[t];i!==void 0&&(e[t]=qe(i)?i.map(n=>n==null?null:""+n):i==null?i:""+i)}return e}const lR=Symbol(""),Pa=Symbol(""),Fg=Symbol(""),zl=Symbol(""),Kr=Symbol("");function _i(){let A=[];function e(i){return A.push(i),()=>{const n=A.indexOf(i);n>-1&&A.splice(n,1)}}function t(){A=[]}return{add:e,list:()=>A.slice(),reset:t}}function Tt(A,e,t,i,n,o=r=>r()){const r=i&&(i.enterCallbacks[n]=i.enterCallbacks[n]||[]);return()=>new Promise((g,s)=>{const a=C=>{C===!1?s(Gi(zA.NAVIGATION_ABORTED,{from:t,to:e})):C instanceof Error?s(C):gR(C)?s(Gi(zA.NAVIGATION_GUARD_REDIRECT,{from:e,to:C})):(r&&i.enterCallbacks[n]===r&&typeof C=="function"&&r.push(C),g())},I=o(()=>A.call(i&&i.instances[n],e,t,a));let l=Promise.resolve(I);A.length<3&&(l=l.then(a)),l.catch(C=>s(C))})}function sr(A,e,t,i,n=o=>o()){const o=[];for(const r of A)for(const g in r.components){let s=r.components[g];if(!(e!=="beforeRouteEnter"&&!r.instances[g]))if(Kl(s)){const a=(s.__vccOpts||s)[e];a&&o.push(Tt(a,t,i,r,g,n))}else{let a=s();o.push(()=>a.then(I=>{if(!I)throw new Error(`Couldn't resolve component "${g}" at "${r.path}"`);const l=Lb(I)?I.default:I;r.mods[g]=I,r.components[g]=l;const C=(l.__vccOpts||l)[e];return C&&Tt(C,t,i,r,g,n)()}))}}return o}function BR(A,e){const t=[],i=[],n=[],o=Math.max(e.matched.length,A.matched.length);for(let r=0;r<o;r++){const g=e.matched[r];g&&(A.matched.find(a=>Ni(a,g))?i.push(g):t.push(g));const s=A.matched[r];s&&(e.matched.find(a=>Ni(a,s))||n.push(s))}return[t,i,n]}/*!
|
||
* vue-router v4.6.4
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let QR=()=>location.protocol+"//"+location.host;function $l(A,e){const{pathname:t,search:i,hash:n}=e,o=A.indexOf("#");if(o>-1){let r=n.includes(A.slice(o))?A.slice(o).length:1,g=n.slice(r);return g[0]!=="/"&&(g="/"+g),Ha(g,"")}return Ha(t,A)+i+n}function cR(A,e,t,i){let n=[],o=[],r=null;const g=({state:C})=>{const Q=$l(A,location),E=t.value,f=e.value;let h=0;if(C){if(t.value=Q,e.value=C,r&&r===E){r=null;return}h=f?C.position-f.position:0}else i(Q);n.forEach(u=>{u(t.value,E,{delta:h,type:Yr.pop,direction:h?h>0?gr.forward:gr.back:gr.unknown})})};function s(){r=t.value}function a(C){n.push(C);const Q=()=>{const E=n.indexOf(C);E>-1&&n.splice(E,1)};return o.push(Q),Q}function I(){if(document.visibilityState==="hidden"){const{history:C}=window;if(!C.state)return;C.replaceState(MA({},C.state,{scroll:Uo()}),"")}}function l(){for(const C of o)C();o=[],window.removeEventListener("popstate",g),window.removeEventListener("pagehide",I),document.removeEventListener("visibilitychange",I)}return window.addEventListener("popstate",g),window.addEventListener("pagehide",I),document.addEventListener("visibilitychange",I),{pauseListeners:s,listen:a,destroy:l}}function Oa(A,e,t,i=!1,n=!1){return{back:A,current:e,forward:t,replaced:i,position:window.history.length,scroll:n?Uo():null}}function ER(A){const{history:e,location:t}=window,i={value:$l(A,t)},n={value:e.state};n.value||o(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function o(s,a,I){const l=A.indexOf("#"),C=l>-1?(t.host&&document.querySelector("base")?A:A.slice(l))+s:QR()+A+s;try{e[I?"replaceState":"pushState"](a,"",C),n.value=a}catch(Q){console.error(Q),t[I?"replace":"assign"](C)}}function r(s,a){o(s,MA({},e.state,Oa(n.value.back,s,n.value.forward,!0),a,{position:n.value.position}),!0),i.value=s}function g(s,a){const I=MA({},n.value,e.state,{forward:s,scroll:Uo()});o(I.current,I,!0),o(s,MA({},Oa(i.value,s,null),{position:I.position+1},a),!1),i.value=s}return{location:i,state:n,push:g,replace:r}}function uR(A){A=AR(A);const e=ER(A),t=cR(A,e.state,e.location,e.replace);function i(o,r=!0){r||t.pauseListeners(),history.go(o)}const n=MA({location:"",base:A,go:i,createHref:tR.bind(null,A)},e,t);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>e.state.value}),n}let oi=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.Group=2]="Group",A}({});var oe=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.ParamRegExp=2]="ParamRegExp",A[A.ParamRegExpEnd=3]="ParamRegExpEnd",A[A.EscapeNext=4]="EscapeNext",A}(oe||{});const hR={type:oi.Static,value:""},fR=/[a-zA-Z0-9_]/;function dR(A){if(!A)return[[]];if(A==="/")return[[hR]];if(!A.startsWith("/"))throw new Error(`Invalid path "${A}"`);function e(Q){throw new Error(`ERR (${t})/"${a}": ${Q}`)}let t=oe.Static,i=t;const n=[];let o;function r(){o&&n.push(o),o=[]}let g=0,s,a="",I="";function l(){a&&(t===oe.Static?o.push({type:oi.Static,value:a}):t===oe.Param||t===oe.ParamRegExp||t===oe.ParamRegExpEnd?(o.length>1&&(s==="*"||s==="+")&&e(`A repeatable param (${a}) must be alone in its segment. eg: '/:ids+.`),o.push({type:oi.Param,value:a,regexp:I,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):e("Invalid state to consume buffer"),a="")}function C(){a+=s}for(;g<A.length;){if(s=A[g++],s==="\\"&&t!==oe.ParamRegExp){i=t,t=oe.EscapeNext;continue}switch(t){case oe.Static:s==="/"?(a&&l(),r()):s===":"?(l(),t=oe.Param):C();break;case oe.EscapeNext:C(),t=i;break;case oe.Param:s==="("?t=oe.ParamRegExp:fR.test(s)?C():(l(),t=oe.Static,s!=="*"&&s!=="?"&&s!=="+"&&g--);break;case oe.ParamRegExp:s===")"?I[I.length-1]=="\\"?I=I.slice(0,-1)+s:t=oe.ParamRegExpEnd:I+=s;break;case oe.ParamRegExpEnd:l(),t=oe.Static,s!=="*"&&s!=="?"&&s!=="+"&&g--,I="";break;default:e("Unknown state");break}}return t===oe.ParamRegExp&&e(`Unfinished custom RegExp for param "${a}"`),l(),r(),n}const Va="[^/]+?",pR={sensitive:!1,strict:!1,start:!0,end:!0};var pe=function(A){return A[A._multiplier=10]="_multiplier",A[A.Root=90]="Root",A[A.Segment=40]="Segment",A[A.SubSegment=30]="SubSegment",A[A.Static=40]="Static",A[A.Dynamic=20]="Dynamic",A[A.BonusCustomRegExp=10]="BonusCustomRegExp",A[A.BonusWildcard=-50]="BonusWildcard",A[A.BonusRepeatable=-20]="BonusRepeatable",A[A.BonusOptional=-8]="BonusOptional",A[A.BonusStrict=.7000000000000001]="BonusStrict",A[A.BonusCaseSensitive=.25]="BonusCaseSensitive",A}(pe||{});const mR=/[.+*?^${}()[\]/\\]/g;function yR(A,e){const t=MA({},pR,e),i=[];let n=t.start?"^":"";const o=[];for(const a of A){const I=a.length?[]:[pe.Root];t.strict&&!a.length&&(n+="/");for(let l=0;l<a.length;l++){const C=a[l];let Q=pe.Segment+(t.sensitive?pe.BonusCaseSensitive:0);if(C.type===oi.Static)l||(n+="/"),n+=C.value.replace(mR,"\\$&"),Q+=pe.Static;else if(C.type===oi.Param){const{value:E,repeatable:f,optional:h,regexp:u}=C;o.push({name:E,repeatable:f,optional:h});const p=u||Va;if(p!==Va){Q+=pe.BonusCustomRegExp;try{`${p}`}catch(d){throw new Error(`Invalid custom RegExp for param "${E}" (${p}): `+d.message)}}let c=f?`((?:${p})(?:/(?:${p}))*)`:`(${p})`;l||(c=h&&a.length<2?`(?:/${c})`:"/"+c),h&&(c+="?"),n+=c,Q+=pe.Dynamic,h&&(Q+=pe.BonusOptional),f&&(Q+=pe.BonusRepeatable),p===".*"&&(Q+=pe.BonusWildcard)}I.push(Q)}i.push(I)}if(t.strict&&t.end){const a=i.length-1;i[a][i[a].length-1]+=pe.BonusStrict}t.strict||(n+="/?"),t.end?n+="$":t.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const r=new RegExp(n,t.sensitive?"":"i");function g(a){const I=a.match(r),l={};if(!I)return null;for(let C=1;C<I.length;C++){const Q=I[C]||"",E=o[C-1];l[E.name]=Q&&E.repeatable?Q.split("/"):Q}return l}function s(a){let I="",l=!1;for(const C of A){(!l||!I.endsWith("/"))&&(I+="/"),l=!1;for(const Q of C)if(Q.type===oi.Static)I+=Q.value;else if(Q.type===oi.Param){const{value:E,repeatable:f,optional:h}=Q,u=E in a?a[E]:"";if(qe(u)&&!f)throw new Error(`Provided param "${E}" is an array but it is not repeatable (* or + modifiers)`);const p=qe(u)?u.join("/"):u;if(!p)if(h)C.length<2&&(I.endsWith("/")?I=I.slice(0,-1):l=!0);else throw new Error(`Missing required param "${E}"`);I+=p}}return I||"/"}return{re:r,score:i,keys:o,parse:g,stringify:s}}function wR(A,e){let t=0;for(;t<A.length&&t<e.length;){const i=e[t]-A[t];if(i)return i;t++}return A.length<e.length?A.length===1&&A[0]===pe.Static+pe.Segment?-1:1:A.length>e.length?e.length===1&&e[0]===pe.Static+pe.Segment?1:-1:0}function AB(A,e){let t=0;const i=A.score,n=e.score;for(;t<i.length&&t<n.length;){const o=wR(i[t],n[t]);if(o)return o;t++}if(Math.abs(n.length-i.length)===1){if(Wa(i))return 1;if(Wa(n))return-1}return n.length-i.length}function Wa(A){const e=A[A.length-1];return A.length>0&&e[e.length-1]<0}const DR={strict:!1,end:!0,sensitive:!1};function kR(A,e,t){const i=yR(dR(A.path),t),n=MA(i,{record:A,parent:e,children:[],alias:[]});return e&&!n.record.aliasOf==!e.record.aliasOf&&e.children.push(n),n}function vR(A,e){const t=[],i=new Map;e=Ta(DR,e);function n(l){return i.get(l)}function o(l,C,Q){const E=!Q,f=ja(l);f.aliasOf=Q&&Q.record;const h=Ta(e,l),u=[f];if("alias"in l){const d=typeof l.alias=="string"?[l.alias]:l.alias;for(const w of d)u.push(ja(MA({},f,{components:Q?Q.record.components:f.components,path:w,aliasOf:Q?Q.record:f})))}let p,c;for(const d of u){const{path:w}=d;if(C&&w[0]!=="/"){const F=C.record.path,N=F[F.length-1]==="/"?"":"/";d.path=C.record.path+(w&&N+w)}if(p=kR(d,C,h),Q?Q.alias.push(p):(c=c||p,c!==p&&c.alias.push(p),E&&l.name&&!Za(p)&&r(l.name)),eB(p)&&s(p),f.children){const F=f.children;for(let N=0;N<F.length;N++)o(F[N],p,Q&&Q.children[N])}Q=Q||p}return c?()=>{r(c)}:$i}function r(l){if(Zl(l)){const C=i.get(l);C&&(i.delete(l),t.splice(t.indexOf(C),1),C.children.forEach(r),C.alias.forEach(r))}else{const C=t.indexOf(l);C>-1&&(t.splice(C,1),l.record.name&&i.delete(l.record.name),l.children.forEach(r),l.alias.forEach(r))}}function g(){return t}function s(l){const C=bR(l,t);t.splice(C,0,l),l.record.name&&!Za(l)&&i.set(l.record.name,l)}function a(l,C){let Q,E={},f,h;if("name"in l&&l.name){if(Q=i.get(l.name),!Q)throw Gi(zA.MATCHER_NOT_FOUND,{location:l});h=Q.record.name,E=MA(qa(C.params,Q.keys.filter(c=>!c.optional).concat(Q.parent?Q.parent.keys.filter(c=>c.optional):[]).map(c=>c.name)),l.params&&qa(l.params,Q.keys.map(c=>c.name))),f=Q.stringify(E)}else if(l.path!=null)f=l.path,Q=t.find(c=>c.re.test(f)),Q&&(E=Q.parse(f),h=Q.record.name);else{if(Q=C.name?i.get(C.name):t.find(c=>c.re.test(C.path)),!Q)throw Gi(zA.MATCHER_NOT_FOUND,{location:l,currentLocation:C});h=Q.record.name,E=MA({},C.params,l.params),f=Q.stringify(E)}const u=[];let p=Q;for(;p;)u.unshift(p.record),p=p.parent;return{name:h,path:f,params:E,matched:u,meta:SR(u)}}A.forEach(l=>o(l));function I(){t.length=0,i.clear()}return{addRoute:o,resolve:a,removeRoute:r,clearRoutes:I,getRoutes:g,getRecordMatcher:n}}function qa(A,e){const t={};for(const i of e)i in A&&(t[i]=A[i]);return t}function ja(A){const e={path:A.path,redirect:A.redirect,name:A.name,meta:A.meta||{},aliasOf:A.aliasOf,beforeEnter:A.beforeEnter,props:FR(A),children:A.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in A?A.components||null:A.component&&{default:A.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function FR(A){const e={},t=A.props||!1;if("component"in A)e.default=t;else for(const i in A.components)e[i]=typeof t=="object"?t[i]:t;return e}function Za(A){for(;A;){if(A.record.aliasOf)return!0;A=A.parent}return!1}function SR(A){return A.reduce((e,t)=>MA(e,t.meta),{})}function bR(A,e){let t=0,i=e.length;for(;t!==i;){const o=t+i>>1;AB(A,e[o])<0?i=o:t=o+1}const n=RR(A);return n&&(i=e.lastIndexOf(n,i-1)),i}function RR(A){let e=A;for(;e=e.parent;)if(eB(e)&&AB(A,e)===0)return e}function eB({record:A}){return!!(A.name||A.components&&Object.keys(A.components).length||A.redirect)}function Xa(A){const e=rt(Fg),t=rt(zl),i=hA(()=>{const s=QA(A.to);return e.resolve(s)}),n=hA(()=>{const{matched:s}=i.value,{length:a}=s,I=s[a-1],l=t.matched;if(!I||!l.length)return-1;const C=l.findIndex(Ni.bind(null,I));if(C>-1)return C;const Q=za(s[a-2]);return a>1&&za(I)===Q&&l[l.length-1].path!==Q?l.findIndex(Ni.bind(null,s[a-2])):C}),o=hA(()=>n.value>-1&&MR(t.params,i.value.params)),r=hA(()=>n.value>-1&&n.value===t.matched.length-1&&jl(t.params,i.value.params));function g(s={}){if(UR(s)){const a=e[QA(A.replace)?"replace":"push"](QA(A.to)).catch($i);return A.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>a),a}return Promise.resolve()}return{route:i,href:hA(()=>i.value.href),isActive:o,isExactActive:r,navigate:g}}function NR(A){return A.length===1?A[0]:A}const GR=hn({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:Xa,setup(A,{slots:e}){const t=po(Xa(A)),{options:i}=rt(Fg),n=hA(()=>({[$a(A.activeClass,i.linkActiveClass,"router-link-active")]:t.isActive,[$a(A.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const o=e.default&&NR(e.default(t));return A.custom?o:GA("a",{"aria-current":t.isExactActive?A.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:n.value},o)}}}),LR=GR;function UR(A){if(!(A.metaKey||A.altKey||A.ctrlKey||A.shiftKey)&&!A.defaultPrevented&&!(A.button!==void 0&&A.button!==0)){if(A.currentTarget&&A.currentTarget.getAttribute){const e=A.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return A.preventDefault&&A.preventDefault(),!0}}function MR(A,e){for(const t in e){const i=e[t],n=A[t];if(typeof i=="string"){if(i!==n)return!1}else if(!qe(n)||n.length!==i.length||i.some((o,r)=>o.valueOf()!==n[r].valueOf()))return!1}return!0}function za(A){return A?A.aliasOf?A.aliasOf.path:A.path:""}const $a=(A,e,t)=>A??e??t,xR=hn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(A,{attrs:e,slots:t}){const i=rt(Kr),n=hA(()=>A.route||i.value),o=rt(Pa,0),r=hA(()=>{let a=QA(o);const{matched:I}=n.value;let l;for(;(l=I[a])&&!l.components;)a++;return a}),g=hA(()=>n.value.matched[r.value]);Tn(Pa,hA(()=>r.value+1)),Tn(lR,g),Tn(Kr,n);const s=EA();return ae(()=>[s.value,g.value,A.name],([a,I,l],[C,Q,E])=>{I&&(I.instances[l]=a,Q&&Q!==I&&a&&a===C&&(I.leaveGuards.size||(I.leaveGuards=Q.leaveGuards),I.updateGuards.size||(I.updateGuards=Q.updateGuards))),a&&I&&(!Q||!Ni(I,Q)||!C)&&(I.enterCallbacks[l]||[]).forEach(f=>f(a))},{flush:"post"}),()=>{const a=n.value,I=A.name,l=g.value,C=l&&l.components[I];if(!C)return AI(t.default,{Component:C,route:a});const Q=l.props[I],E=Q?Q===!0?a.params:typeof Q=="function"?Q(a):Q:null,h=GA(C,MA({},E,e,{onVnodeUnmounted:u=>{u.component.isUnmounted&&(l.instances[I]=null)},ref:s}));return AI(t.default,{Component:h,route:a})||h}}});function AI(A,e){if(!A)return null;const t=A(e);return t.length===1?t[0]:t}const JR=xR;function TR(A){const e=vR(A.routes,A),t=A.parseQuery||IR,i=A.stringifyQuery||Ka,n=A.history,o=_i(),r=_i(),g=_i(),s=eg(Gt);let a=Gt;Ei&&A.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const I=or.bind(null,M=>""+M),l=or.bind(null,Wb),C=or.bind(null,Qn);function Q(M,Z){let $,IA;return Zl(M)?($=e.getRecordMatcher(M),IA=Z):IA=M,e.addRoute(IA,$)}function E(M){const Z=e.getRecordMatcher(M);Z&&e.removeRoute(Z)}function f(){return e.getRoutes().map(M=>M.record)}function h(M){return!!e.getRecordMatcher(M)}function u(M,Z){if(Z=MA({},Z||s.value),typeof M=="string"){const k=rr(t,M,Z.path),J=e.resolve({path:k.path},Z),W=n.createHref(k.fullPath);return MA(k,J,{params:C(J.params),hash:Qn(k.hash),redirectedFrom:void 0,href:W})}let $;if(M.path!=null)$=MA({},M,{path:rr(t,M.path,Z.path).path});else{const k=MA({},M.params);for(const J in k)k[J]==null&&delete k[J];$=MA({},M,{params:l(k)}),Z.params=l(Z.params)}const IA=e.resolve($,Z),bA=M.hash||"";IA.params=I(C(IA.params));const D=Zb(i,MA({},M,{hash:Pb(bA),path:IA.path})),S=n.createHref(D);return MA({fullPath:D,hash:bA,query:i===Ka?CR(M.query):M.query||{}},IA,{redirectedFrom:void 0,href:S})}function p(M){return typeof M=="string"?rr(t,M,s.value.path):MA({},M)}function c(M,Z){if(a!==M)return Gi(zA.NAVIGATION_CANCELLED,{from:Z,to:M})}function d(M){return N(M)}function w(M){return d(MA(p(M),{replace:!0}))}function F(M,Z){const $=M.matched[M.matched.length-1];if($&&$.redirect){const{redirect:IA}=$;let bA=typeof IA=="function"?IA(M,Z):IA;return typeof bA=="string"&&(bA=bA.includes("?")||bA.includes("#")?bA=p(bA):{path:bA},bA.params={}),MA({query:M.query,hash:M.hash,params:bA.path!=null?{}:M.params},bA)}}function N(M,Z){const $=a=u(M),IA=s.value,bA=M.state,D=M.force,S=M.replace===!0,k=F($,IA);if(k)return N(MA(p(k),{state:typeof k=="object"?MA({},bA,k.state):bA,force:D,replace:S}),Z||$);const J=$;J.redirectedFrom=Z;let W;return!D&&Xb(i,IA,$)&&(W=Gi(zA.NAVIGATION_DUPLICATED,{to:J,from:IA}),Y(IA,IA,!0,!1)),(W?Promise.resolve(W):b(J,IA)).catch(V=>ct(V)?ct(V,zA.NAVIGATION_GUARD_REDIRECT)?V:DA(V):eA(V,J,IA)).then(V=>{if(V){if(ct(V,zA.NAVIGATION_GUARD_REDIRECT))return N(MA({replace:S},p(V.to),{state:typeof V.to=="object"?MA({},bA,V.to.state):bA,force:D}),Z||J)}else V=L(J,IA,!0,S,bA);return R(J,IA,V),V})}function G(M,Z){const $=c(M,Z);return $?Promise.reject($):Promise.resolve()}function P(M){const Z=FA.values().next().value;return Z&&typeof Z.runWithContext=="function"?Z.runWithContext(M):M()}function b(M,Z){let $;const[IA,bA,D]=BR(M,Z);$=sr(IA.reverse(),"beforeRouteLeave",M,Z);for(const k of IA)k.leaveGuards.forEach(J=>{$.push(Tt(J,M,Z))});const S=G.bind(null,M,Z);return $.push(S),TA($).then(()=>{$=[];for(const k of o.list())$.push(Tt(k,M,Z));return $.push(S),TA($)}).then(()=>{$=sr(bA,"beforeRouteUpdate",M,Z);for(const k of bA)k.updateGuards.forEach(J=>{$.push(Tt(J,M,Z))});return $.push(S),TA($)}).then(()=>{$=[];for(const k of D)if(k.beforeEnter)if(qe(k.beforeEnter))for(const J of k.beforeEnter)$.push(Tt(J,M,Z));else $.push(Tt(k.beforeEnter,M,Z));return $.push(S),TA($)}).then(()=>(M.matched.forEach(k=>k.enterCallbacks={}),$=sr(D,"beforeRouteEnter",M,Z,P),$.push(S),TA($))).then(()=>{$=[];for(const k of r.list())$.push(Tt(k,M,Z));return $.push(S),TA($)}).catch(k=>ct(k,zA.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function R(M,Z,$){g.list().forEach(IA=>P(()=>IA(M,Z,$)))}function L(M,Z,$,IA,bA){const D=c(M,Z);if(D)return D;const S=Z===Gt,k=Ei?history.state:{};$&&(IA||S?n.replace(M.fullPath,MA({scroll:S&&k&&k.scroll},bA)):n.push(M.fullPath,bA)),s.value=M,Y(M,Z,$,S),DA()}let cA;function dA(){cA||(cA=n.listen((M,Z,$)=>{if(!LA.listening)return;const IA=u(M),bA=F(IA,LA.currentRoute.value);if(bA){N(MA(bA,{replace:!0,force:!0}),IA).catch($i);return}a=IA;const D=s.value;Ei&&oR(_a(D.fullPath,$.delta),Uo()),b(IA,D).catch(S=>ct(S,zA.NAVIGATION_ABORTED|zA.NAVIGATION_CANCELLED)?S:ct(S,zA.NAVIGATION_GUARD_REDIRECT)?(N(MA(p(S.to),{force:!0}),IA).then(k=>{ct(k,zA.NAVIGATION_ABORTED|zA.NAVIGATION_DUPLICATED)&&!$.delta&&$.type===Yr.pop&&n.go(-1,!1)}).catch($i),Promise.reject()):($.delta&&n.go(-$.delta,!1),eA(S,IA,D))).then(S=>{S=S||L(IA,D,!1),S&&($.delta&&!ct(S,zA.NAVIGATION_CANCELLED)?n.go(-$.delta,!1):$.type===Yr.pop&&ct(S,zA.NAVIGATION_ABORTED|zA.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),R(IA,D,S)}).catch($i)}))}let CA=_i(),iA=_i(),X;function eA(M,Z,$){DA(M);const IA=iA.list();return IA.length?IA.forEach(bA=>bA(M,Z,$)):console.error(M),Promise.reject(M)}function fA(){return X&&s.value!==Gt?Promise.resolve():new Promise((M,Z)=>{CA.add([M,Z])})}function DA(M){return X||(X=!M,dA(),CA.list().forEach(([Z,$])=>M?$(M):Z()),CA.reset()),M}function Y(M,Z,$,IA){const{scrollBehavior:bA}=A;if(!Ei||!bA)return Promise.resolve();const D=!$&&rR(_a(M.fullPath,0))||(IA||!$)&&history.state&&history.state.scroll||null;return un().then(()=>bA(M,Z,D)).then(S=>S&&nR(S)).catch(S=>eA(S,M,Z))}const q=M=>n.go(M);let gA;const FA=new Set,LA={currentRoute:s,listening:!0,addRoute:Q,removeRoute:E,clearRoutes:e.clearRoutes,hasRoute:h,getRoutes:f,resolve:u,options:A,push:d,replace:w,go:q,back:()=>q(-1),forward:()=>q(1),beforeEach:o.add,beforeResolve:r.add,afterEach:g.add,onError:iA.add,isReady:fA,install(M){M.component("RouterLink",LR),M.component("RouterView",JR),M.config.globalProperties.$router=LA,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>QA(s)}),Ei&&!gA&&s.value===Gt&&(gA=!0,d(n.location).catch(IA=>{}));const Z={};for(const IA in Gt)Object.defineProperty(Z,IA,{get:()=>s.value[IA],enumerable:!0});M.provide(Fg,LA),M.provide(zl,wI(Z)),M.provide(Kr,s);const $=M.unmount;FA.add(M),M.unmount=function(){FA.delete(M),FA.size<1&&(a=Gt,cA&&cA(),cA=null,s.value=Gt,gA=!1,X=!1),$()}}};function TA(M){return M.reduce((Z,$)=>Z.then(()=>P($)),Promise.resolve())}return LA}const HR=[{path:"/",name:"Home",component:()=>Ll(()=>Promise.resolve().then(()=>Db),void 0,import.meta.url)}],YR=TR({history:uR("./"),routes:HR}),_R=hu({legacy:!1,locale:Ad(),fallbackLocale:"en",messages:$f}),Sg=hc(Gb);Sg.use(YR);Sg.use(_R);Sg.mount("#app");
|