@record-evolution/widget-gauge 1.7.29 → 1.7.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -553,7 +553,7 @@ var Jt = Object.defineProperty, Qt = Object.getOwnPropertyDescriptor, v = (s, t,
553
553
  q.use([yt, vt, bt]);
554
554
  let _ = class extends H {
555
555
  constructor() {
556
- super(), this.dataSets = [], this.canvasList = /* @__PURE__ */ new Map(), this.origWidth = 600, this.origHeight = 350, this.textContainerHeight = 36, this.modifier = 1, this.version = "1.7.29", this.resizeObserver = new ResizeObserver(() => {
556
+ super(), this.dataSets = [], this.canvasList = /* @__PURE__ */ new Map(), this.origWidth = 600, this.origHeight = 350, this.textContainerHeight = 36, this.modifier = 1, this.version = "1.7.31", this.resizeObserver = new ResizeObserver(() => {
557
557
  this.adjustSizes(), this.applyData();
558
558
  }), this.template = {
559
559
  series: [
@@ -774,7 +774,7 @@ let _ = class extends H {
774
774
  const i = document.createElement("div");
775
775
  i.setAttribute("name", s.label ?? ""), i.setAttribute("class", "chart"), i.setAttribute(
776
776
  "style",
777
- `min-width: ${this.origWidth}; min-height: ${this.origHeight}; width: ${this.origWidth}; height: ${this.origHeight};`
777
+ `min-width: ${this.origWidth}px; min-height: ${this.origHeight}px; width: ${this.origWidth}px; height: ${this.origHeight}px;`
778
778
  ), t.appendChild(e), t.appendChild(i), this.gaugeContainer.appendChild(t);
779
779
  const r = q.init(i, this.theme?.theme_name);
780
780
  this.canvasList.set(s.label ?? "", { echart: r, title: e, wrapper: t });
@@ -905,7 +905,7 @@ v([
905
905
  $t(".wrapper")
906
906
  ], _.prototype, "wrapper", 2);
907
907
  _ = v([
908
- Gt("widget-gauge-1.7.29")
908
+ Gt("widget-gauge-1.7.31")
909
909
  ], _);
910
910
  export {
911
911
  _ as WidgetGauge
@@ -1 +1 @@
1
- {"version":3,"file":"widget-gauge.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../src/widget-gauge.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { html, css, LitElement, PropertyValueMap, PropertyValues } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { GaugeChartConfiguration, SectionColor } from './definition-schema.js'\n\nimport * as echarts from 'echarts/core'\nimport { TooltipComponent } from 'echarts/components'\nimport { GaugeChart, GaugeSeriesOption } from 'echarts/charts'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { EChartsOption, SeriesOption } from 'echarts'\n\necharts.use([TooltipComponent, GaugeChart, CanvasRenderer])\n\ntype Dataseries = Exclude<GaugeChartConfiguration['dataseries'], undefined>[number]\ntype Data = Exclude<Dataseries['data'], undefined>[number]\ntype Theme = {\n theme_name: string\n theme_object: any\n}\n\nexport\n@customElement('widget-gauge-versionplaceholder')\nclass WidgetGauge extends LitElement {\n @property({ type: Object })\n inputData?: GaugeChartConfiguration\n\n @property({ type: Object })\n theme?: Theme\n\n @state()\n private dataSets: Dataseries[] = []\n\n @state()\n private canvasList: Map<\n string,\n { echart?: echarts.ECharts; title?: HTMLHeadingElement; wrapper?: HTMLDivElement }\n > = new Map()\n\n @state() private themeBgColor?: string\n @state() private themeTitleColor?: string\n @state() private themeSubtitleColor?: string\n\n @query('.gauge-container') private gaugeContainer?: HTMLDivElement\n @query('.wrapper') private wrapper?: HTMLDivElement\n\n private resizeObserver: ResizeObserver\n\n boxes?: HTMLDivElement[]\n origWidth: number = 600\n origHeight: number = 350\n textContainerHeight: number = 36\n template: EChartsOption\n modifier: number = 1\n version: string = 'versionplaceholder'\n\n constructor() {\n super()\n this.resizeObserver = new ResizeObserver(() => {\n this.adjustSizes()\n this.applyData()\n })\n\n this.template = {\n series: [\n {\n type: 'gauge',\n startAngle: 180,\n endAngle: 0,\n min: 33,\n max: 99,\n radius: '140%',\n center: ['50%', '90%'],\n progress: {\n show: true,\n clip: true,\n width: 50,\n roundCap: false,\n itemStyle: {\n color: 'auto'\n }\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: { show: false },\n axisLabel: { show: false },\n anchor: { show: false },\n pointer: { show: false },\n detail: {\n valueAnimation: false,\n fontSize: 25,\n offsetCenter: [0, '-7%']\n },\n title: {\n text: 'Gauge A',\n offsetCenter: [0, '-35%'],\n fontSize: 20,\n show: true\n },\n data: [\n {\n value: 70,\n name: 'Value Name'\n }\n ]\n } as SeriesOption,\n {\n type: 'gauge',\n name: 'Gauge B',\n startAngle: 180,\n endAngle: 0,\n min: 33,\n max: 99,\n radius: '145%',\n center: ['50%', '90%'],\n axisLine: {\n lineStyle: {\n width: 20,\n color: [\n [0.2, '#67e0e3'],\n [0.8, '#37a2da'],\n [1, '#fd666d']\n ]\n }\n },\n axisTick: { show: false },\n splitLine: {\n length: 15,\n distance: -25,\n lineStyle: {\n width: 2,\n color: 'auto'\n }\n },\n\n axisLabel: {\n distance: -20,\n color: '#666',\n rotate: 'tangential',\n fontSize: 12\n }\n } as SeriesOption\n ]\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n }\n }\n\n update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if (changedProperties.has('inputData') && this.gaugeContainer) {\n this.transformData()\n this.setupCharts()\n }\n\n if (changedProperties.has('theme')) {\n this.registerTheme(this.theme)\n this.deleteCharts()\n this.transformData()\n this.setupCharts()\n this.adjustSizes()\n this.applyData()\n }\n super.update(changedProperties)\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('inputData') && this.gaugeContainer) {\n this.adjustSizes()\n this.applyData()\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if (this.wrapper) this.resizeObserver.observe(this.wrapper)\n this.registerTheme(this.theme)\n this.transformData()\n this.setupCharts()\n this.adjustSizes()\n this.applyData()\n }\n\n registerTheme(theme?: Theme) {\n const cssTextColor = getComputedStyle(this).getPropertyValue('--re-text-color').trim()\n const cssBgColor = getComputedStyle(this).getPropertyValue('--re-tile-background-color').trim()\n this.themeBgColor = cssBgColor || this.theme?.theme_object?.backgroundColor\n this.themeTitleColor = cssTextColor || this.theme?.theme_object?.title?.textStyle?.color\n this.themeSubtitleColor =\n cssTextColor || this.theme?.theme_object?.title?.subtextStyle?.color || this.themeTitleColor\n\n if (!theme || !theme.theme_object || !theme.theme_name) return\n\n // Filter out component keys that would trigger warnings about unregistered components\n const excludeKeys = [\n 'title',\n 'legend',\n 'toolbox',\n 'dataZoom',\n 'visualMap',\n 'timeline',\n 'geo',\n 'parallel',\n 'markPoint'\n ]\n const filteredTheme = Object.fromEntries(\n Object.entries(theme.theme_object).filter(([key]) => !excludeKeys.includes(key))\n )\n echarts.registerTheme(theme.theme_name, filteredTheme)\n }\n\n adjustSizes() {\n // if (!this.origHeight) return\n if (!this.gaugeContainer) return\n const userWidth = this.gaugeContainer.getBoundingClientRect().width\n const userHeight = this.gaugeContainer.getBoundingClientRect().height\n const count = this.dataSets.length\n\n const chartW = this.origWidth\n const chartH = this.origHeight\n if (!userHeight || !userWidth || !chartW || !chartH) return\n const fits = []\n for (let c = 1; c <= count; c++) {\n const r = Math.ceil(count / c)\n const netWidth = userWidth - 24 * (c - 1) // subtract the gaps between the charts\n const netHeight = userHeight - 24 * (r - 1)\n const m = netWidth / chartW / c // modifying factor to make it fit\n const size = m * m * chartW * chartH * count // screen space used by charts overall\n if (r * m * chartH <= netHeight) fits.push({ c, r, m, size, uwgap: netWidth, uhgap: netHeight })\n }\n\n for (let r = 1; r <= count; r++) {\n const c = Math.ceil(count / r)\n const netWidth = userWidth - 24 * (c - 1)\n const netHeight = userHeight - 24 * (r - 1)\n const m = netHeight / chartH / r\n const size = m * m * chartW * chartH * count\n if (c * m * chartW <= netWidth) fits.push({ c, r, m, size, uwgap: netWidth, uhgap: netHeight })\n }\n\n const maxSize = fits.reduce((p, c) => (c.size < p ? p : c.size), 0)\n const fit = fits.find((f) => f.size === maxSize)\n if (!fit) return\n const modifier = fit.m ?? 0\n\n // console.log(\n // 'FITS count',\n // userWidth,\n // count,\n // fit,\n // fits,\n // 'new size',\n // fit?.size.toFixed(0),\n // 'total space',\n // (userWidth * userHeight).toFixed(0),\n // this.boxes\n // )\n this.boxes = Array.from(this.gaugeContainer?.querySelectorAll('.chart') as NodeListOf<HTMLDivElement>)\n\n this.gaugeContainer.style.gridTemplateColumns = `repeat(${fit.c}, 1fr)`\n\n this.boxes?.forEach((box) =>\n box.setAttribute(\n 'style',\n `width:${modifier * chartW}px; height:${modifier * (chartH - this.textContainerHeight)}px`\n )\n )\n\n this.modifier = modifier\n\n this.canvasList.forEach((canvasObj) => {\n canvasObj.echart?.resize()\n })\n }\n\n async transformData() {\n // console.log('Transforming data', this.inputData?.dataseries)\n this.dataSets = []\n if (!this?.inputData) return\n this.inputData.dataseries\n ?.sort((a, b) => ((a.label ?? '') > (b.label ?? '') ? 1 : -1))\n .forEach((ds, idx) => {\n // pivot data\n const distincts = ds.multiChart\n ? ([...new Set(ds.data?.map((d: Data) => d.pivot))].sort() as string[])\n : ['']\n distincts.forEach((piv) => {\n const prefix = piv ?? ''\n let label = ds.label?.trim() ?? ''\n label = prefix + (!!prefix && !!label ? ' - ' : '') + label\n if (this.dataSets.some((ds) => ds.label === label)) label += ' ' + idx\n const pds: any = {\n label: label,\n unit: ds.unit,\n precision: ds.precision,\n advanced: ds.advanced,\n valueColor: ds.valueColor,\n sections: ds.sections,\n multiChart: ds.multiChart,\n value: ds.value,\n data: distincts.length === 1 ? ds.data : ds?.data?.filter((d) => d.pivot === piv)\n }\n this.dataSets.push(pds)\n })\n })\n }\n\n applyData() {\n if (!this.gaugeContainer) return\n const modifier = this.modifier\n this.dataSets.forEach((d) => {\n d.label ??= ''\n })\n\n this.dataSets.sort((a, b) => ((a.label as string) > (b.label as string) ? 1 : -1))\n\n for (const ds of this.dataSets) {\n // compute derivative values\n // filter latest values and calculate average\n ds.label ??= ''\n ds.advanced ??= {}\n if (typeof ds.advanced?.averageLatest !== 'number' || isNaN(ds.advanced?.averageLatest))\n ds.advanced.averageLatest = 1\n const data = ds?.data?.slice(-ds.advanced?.averageLatest || -1) ?? []\n if (!ds.multiChart) {\n ds.needleValue = ds.value as number\n } else {\n const values = (data?.map((d) => d.value)?.filter((p) => p !== undefined) ?? []) as number[]\n ds.needleValue = (values.reduce((p, c) => p + c, 0) / values.length) as number\n }\n ds.needleValue = isNaN(ds.needleValue as number)\n ? (ds.sections?.gaugeMinValue ?? 0)\n : ds.needleValue\n\n const echart = this.canvasList.get(ds.label)?.echart\n const option = echart?.getOption() ?? window.structuredClone(this.template)\n const seriesArr = option.series as GaugeSeriesOption[]\n const ga: any = seriesArr?.[0],\n ga2: any = seriesArr?.[1]\n\n // Needle\n // Check age of data Latency\n const tsp = Date.parse(ds?.data?.[0]?.tsp ?? '')\n if (isNaN(tsp)) {\n const now = new Date().getTime()\n if (now - tsp > (ds.advanced?.maxLatency ?? Infinity) * 1000) ds.needleValue = undefined\n }\n\n ga.data[0].value = ds.needleValue\n ga.data[0].name = ds.unit\n // unit style\n\n ga.title.fontSize = 32 * modifier\n ga.title.color = ds.valueColor || this.themeTitleColor\n ga.title.opacity = 1\n // value style\n ga.detail.color = ds.valueColor || this.themeTitleColor\n ga.detail.opacity = 1\n ga.detail.fontSize = 60 * modifier\n\n ga.detail.formatter = (val: number) =>\n isNaN(val) ? '-' : val.toFixed(Math.floor(ds.precision ?? 0))\n // Axis\n const defaultColors = ['#bf444c', '#d88273', '#f6efa6']\n const themeColors = this.theme?.theme_object?.color ?? defaultColors\n const gaugeMin = ds.sections?.gaugeMinValue ?? 0\n\n // Filter out entries with null/undefined/empty limits, keeping limits and colors in sync\n const validSections = (ds.sections?.sectionLimits ?? [])\n .map((l, i) => {\n const limit = l?.limit as string | number | null | undefined\n return {\n limit: limit === '' || limit == null ? undefined : Number(limit),\n color: l?.sectionColor || themeColors[i % themeColors.length]\n }\n })\n .filter(\n (s): s is { limit: number; color: SectionColor } => s.limit != null && !isNaN(s.limit)\n )\n\n // Determine ascending/descending based on gaugeMin vs first limit\n const isAscending = !validSections.length || gaugeMin <= validSections[0].limit\n\n // Filter to keep only sections that maintain monotonic order\n const sections = validSections.filter((s, i, arr) => {\n if (i === 0) return true\n return isAscending ? s.limit > arr[i - 1].limit : s.limit < arr[i - 1].limit\n })\n\n const sectionLimits = sections.length ? sections.map((s) => s.limit) : [40, 80, 100]\n const colors: SectionColor[] = sections.length\n ? sections.map((s) => s.color)\n : themeColors.slice(0, 3)\n\n const gaugeMax = sectionLimits?.[sectionLimits.length - 1] ?? 100\n ds.range = Math.abs(gaugeMax - gaugeMin)\n\n ga.min = ga2.min = gaugeMin\n ga.max = ga2.max = gaugeMax\n\n // percentages of the sections paired with the colors (must be strictly ascending for ECharts)\n const colorSections = sectionLimits\n .map((limit, i) => {\n const pct = Math.abs(limit - gaugeMin) / (ds.range as number)\n const color = colors[i]\n return [pct, color] as [number, SectionColor]\n })\n .filter(([s]) => !isNaN(s) && s >= 0)\n\n ga2.axisLine.lineStyle.width = 8 * modifier\n if (colorSections.length) ga2.axisLine.lineStyle.color = colorSections\n ga2.axisLabel.fontSize = 24 * modifier\n // ga2.axisLabel.color = ds.valueColor\n ga2.axisLabel.distance = -24 * modifier\n ga2.splitLine.length = 16 * modifier\n ga2.splitLine.distance = -16 * modifier\n\n // Progress\n let progressColor = colors?.[colors.length - 1]\n for (const [i, s] of sectionLimits?.entries() ?? []) {\n const inSection = isAscending\n ? s > (ds.needleValue as number)\n : s < (ds.needleValue as number)\n if (inSection) {\n progressColor = colors?.[i] ?? colors?.[0]\n break\n }\n }\n ga.progress.itemStyle.color = progressColor\n ga.progress.width = 60 * modifier\n\n const titleElement = this.canvasList.get(ds.label)?.title\n if (titleElement) {\n titleElement.style.fontSize = String(36 * modifier) + 'px'\n titleElement.style.maxWidth = String(550 * modifier) + 'px'\n titleElement.style.height = String(this.textContainerHeight * modifier) + 'px'\n titleElement.textContent = ds.label ?? ''\n }\n\n // Apply\n echart?.setOption(option)\n }\n }\n deleteCharts() {\n this.canvasList.forEach((canvasObj, label) => {\n canvasObj.echart?.dispose()\n canvasObj.wrapper?.remove()\n })\n this.canvasList.clear()\n }\n\n setupCharts() {\n if (!this.gaugeContainer) return\n // remove the gauge canvases of non provided data series\n this.canvasList.forEach((canvasObj, label) => {\n const ex = this.dataSets.find((ds) => ds.label === label)\n if (!ex) {\n canvasObj.echart?.dispose()\n canvasObj.wrapper?.remove()\n this.canvasList.delete(label)\n }\n })\n\n this.dataSets.forEach((ds) => {\n if (this.canvasList.has(ds.label ?? '')) return\n const newWrapper = document.createElement('div')\n newWrapper.setAttribute('class', 'chart-wrapper')\n const newTitle = document.createElement('h3')\n newTitle.style.fontSize = '20px'\n const newCanvas = document.createElement('div')\n newCanvas.setAttribute('name', ds.label ?? '')\n newCanvas.setAttribute('class', 'chart')\n newCanvas.setAttribute(\n 'style',\n `min-width: ${this.origWidth}; min-height: ${this.origHeight}; width: ${this.origWidth}; height: ${this.origHeight};`\n )\n\n newWrapper!.appendChild(newTitle)\n newWrapper!.appendChild(newCanvas)\n this.gaugeContainer!.appendChild(newWrapper)\n\n const newChart = echarts.init(newCanvas, this.theme?.theme_name)\n this.canvasList.set(ds.label ?? '', { echart: newChart, title: newTitle, wrapper: newWrapper })\n })\n }\n\n static styles = css`\n :host {\n display: block;\n font-family: sans-serif;\n box-sizing: border-box;\n position: relative;\n margin: auto;\n container-type: size;\n }\n\n .paging:not([active]) {\n display: none !important;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n padding: 2cqh 2cqw;\n box-sizing: border-box;\n gap: 12px;\n }\n\n .chart-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n .gauge-container {\n display: grid;\n flex: 1;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n overflow: hidden;\n position: relative;\n gap: 24px;\n }\n\n header {\n display: flex;\n flex-direction: column;\n }\n h3 {\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 0.8;\n }\n\n .title {\n line-height: 1.5;\n }\n p {\n margin: 10px 0 0 0;\n max-width: 300px;\n font-size: 14px;\n line-height: 17px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .no-data {\n font-size: 20px;\n display: flex;\n height: 100%;\n width: 100%;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n `\n\n render() {\n return html`\n <div\n class=\"wrapper\"\n style=\"background-color: ${this.themeBgColor}; color: ${this.themeTitleColor}\"\n >\n <header class=\"paging\" ?active=${this.inputData?.title || this.inputData?.subTitle}>\n <h3 class=\"paging title\" ?active=${this.inputData?.title}>${this.inputData?.title}</h3>\n <p\n class=\"paging\"\n ?active=${this.inputData?.subTitle}\n style=\"color: ${this.themeSubtitleColor}\"\n >\n ${this.inputData?.subTitle}\n </p>\n </header>\n <div class=\"paging no-data\" ?active=${!this.dataSets.length}>No Data</div>\n <div class=\"gauge-container\"></div>\n </div>\n `\n }\n}\n"],"names":["t","e","s","o","n$3","r","n","i","S","c","h","a","l","p","d","u","f","b","y$1","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M","R","z","j","B","echarts","TooltipComponent","GaugeChart","CanvasRenderer","WidgetGauge","LitElement","changedProperties","_changedProperties","theme","cssTextColor","cssBgColor","excludeKeys","filteredTheme","key","userWidth","userHeight","count","chartW","chartH","fits","netWidth","netHeight","size","maxSize","fit","modifier","box","canvasObj","ds","idx","distincts","piv","prefix","label","pds","data","values","echart","option","seriesArr","ga","ga2","tsp","val","defaultColors","themeColors","gaugeMin","validSections","limit","isAscending","sections","arr","sectionLimits","colors","gaugeMax","colorSections","pct","color","progressColor","titleElement","newWrapper","newTitle","newCanvas","newChart","html","css","__decorateClass","property","state","query","customElement"],"mappings":";;;;AAKA,MAAMA,IAAE,YAAWC,IAAED,EAAE,eAAsBA,EAAE,aAAX,UAAqBA,EAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAUE,IAAE,uBAAM,GAAGC,KAAE,oBAAI;AAAO,IAAAC,KAAC,MAAO;AAAA,EAAC,YAAY,GAAE,GAAED,GAAE;AAAC,QAAG,KAAK,eAAa,IAAGA,MAAID,EAAE,OAAM,MAAM,mEAAmE;AAAE,SAAK,UAAQ,GAAE,KAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK;AAAE,UAAMA,IAAE,KAAK;AAAE,QAAGD,KAAY,MAAT,QAAW;AAAC,YAAMA,IAAWC,MAAT,UAAgBA,EAAE,WAAN;AAAa,MAAAD,MAAI,IAAEE,GAAE,IAAID,CAAC,IAAY,MAAT,YAAc,KAAK,IAAE,IAAE,IAAI,iBAAe,YAAY,KAAK,OAAO,GAAED,KAAGE,GAAE,IAAID,GAAE,CAAC;AAAA,IAAE;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC;AAAC,MAAMG,KAAE,CAAAL,MAAG,IAAIM,GAAY,OAAON,KAAjB,WAAmBA,IAAEA,IAAE,IAAG,QAAOE,CAAC,GAAEK,KAAE,CAACP,MAAKC,MAAI;AAAC,QAAME,IAAMH,EAAE,WAAN,IAAaA,EAAE,CAAC,IAAEC,EAAE,QAAQ,CAACA,GAAEC,GAAEC,MAAIF,KAAG,CAAAD,MAAG;AAAC,QAAQA,EAAE,iBAAP,GAAoB,QAAOA,EAAE;AAAQ,QAAa,OAAOA,KAAjB,SAAmB,QAAOA;AAAE,UAAM,MAAM,qEAAmEA,IAAE,sFAAsF;AAAA,EAAC,GAAGE,CAAC,IAAEF,EAAEG,IAAE,CAAC,IAAGH,EAAE,CAAC,CAAC;AAAE,SAAO,IAAIM,GAAEH,GAAEH,GAAEE,CAAC;AAAC,GAAEM,KAAE,CAAC,GAAEL,MAAI;AAAC,MAAGF,EAAE,GAAE,qBAAmBE,EAAE,KAAK,CAAAH,MAAGA,aAAa,gBAAcA,IAAEA,EAAE;MAAkB,YAAU,KAAKG,GAAE;AAAC,UAAMA,IAAE,SAAS,cAAc,OAAO,GAAEG,IAAEN,EAAE;AAAS,IAASM,MAAT,UAAYH,EAAE,aAAa,SAAQG,CAAC,GAAEH,EAAE,cAAY,EAAE,SAAQ,EAAE,YAAYA,CAAC;AAAA,EAAC;AAAC,GAAEM,KAAER,IAAE,CAAAD,MAAGA,IAAE,CAAAA,MAAGA,aAAa,iBAAe,OAAG;AAAC,MAAI,IAAE;AAAG,aAAUE,KAAK,EAAE,SAAS,MAAGA,EAAE;AAAQ,SAAOG,GAAE,CAAC;AAAC,GAAGL,CAAC,IAAEA;ACAxzC,MAAK,EAAC,IAAGO,IAAE,gBAAeN,IAAE,0BAAyBS,IAAE,qBAAoBL,IAAE,uBAAsBF,IAAE,gBAAeG,GAAC,IAAE,QAAOK,IAAE,YAAWF,KAAEE,EAAE,cAAaC,KAAEH,KAAEA,GAAE,cAAY,IAAGI,KAAEF,EAAE,gCAA+BG,IAAE,CAACd,GAAEE,MAAIF,GAAEe,IAAE,EAAC,YAAYf,GAAEE,GAAE;AAAC,UAAOA,GAAC;AAAA,IAAE,KAAK;AAAQ,MAAAF,IAAEA,IAAEY,KAAE;AAAK;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,MAAAZ,IAAQA,KAAN,OAAQA,IAAE,KAAK,UAAUA,CAAC;AAAA,EAAC;AAAC,SAAOA;AAAC,GAAE,cAAcA,GAAEE,GAAE;AAAC,MAAIK,IAAEP;AAAE,UAAOE;IAAG,KAAK;AAAQ,MAAAK,IAASP,MAAP;AAAS;AAAA,IAAM,KAAK;AAAO,MAAAO,IAASP,MAAP,OAAS,OAAK,OAAOA,CAAC;AAAE;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,UAAG;AAAC,QAAAO,IAAE,KAAK,MAAMP,CAAC;AAAA,MAAC,QAAS;AAAC,QAAAO,IAAE;AAAA,MAAI;AAAA,EAAC;AAAC,SAAOA;AAAC,EAAC,GAAES,IAAE,CAAChB,GAAEE,MAAI,CAACK,GAAEP,GAAEE,CAAC,GAAEe,KAAE,EAAC,WAAU,IAAG,MAAK,QAAO,WAAUF,GAAE,SAAQ,IAAG,YAAW,IAAG,YAAWC,EAAC;AAAE,OAAO,aAAW,uBAAO,UAAU,GAAEL,EAAE,wBAAsB,oBAAI;AAAO,IAAAO,IAAC,cAAgB,YAAW;AAAA,EAAC,OAAO,eAAe,GAAE;AAAC,SAAK,KAAI,IAAI,KAAK,MAAI,CAAA,GAAI,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,qBAAoB;AAAC,WAAO,KAAK,SAAQ,GAAG,KAAK,QAAM,CAAC,GAAG,KAAK,KAAK,KAAI,CAAE;AAAA,EAAC;AAAA,EAAC,OAAO,eAAe,GAAEhB,IAAEe,IAAE;AAAC,QAAGf,EAAE,UAAQA,EAAE,YAAU,KAAI,KAAK,KAAI,GAAG,KAAK,UAAU,eAAe,CAAC,OAAKA,IAAE,OAAO,OAAOA,CAAC,GAAG,UAAQ,KAAI,KAAK,kBAAkB,IAAI,GAAEA,CAAC,GAAE,CAACA,EAAE,YAAW;AAAC,YAAM,IAAE,uBAAM,GAAGQ,IAAE,KAAK,sBAAsB,GAAE,GAAER,CAAC;AAAE,MAASQ,MAAT,UAAYT,GAAE,KAAK,WAAU,GAAES,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,sBAAsB,GAAER,GAAE,GAAE;AAAC,UAAK,EAAC,KAAID,GAAE,KAAII,EAAC,IAAEK,GAAE,KAAK,WAAU,CAAC,KAAG,EAAC,MAAK;AAAC,aAAO,KAAKR,CAAC;AAAA,IAAC,GAAE,IAAIF,GAAE;AAAC,WAAKE,CAAC,IAAEF;AAAA,IAAC,EAAC;AAAE,WAAM,EAAC,KAAIC,GAAE,IAAIC,GAAE;AAAC,YAAMQ,IAAET,GAAG,KAAK,IAAI;AAAE,MAAAI,GAAG,KAAK,MAAKH,CAAC,GAAE,KAAK,cAAc,GAAEQ,GAAE,CAAC;AAAA,IAAC,GAAE,cAAa,IAAG,YAAW,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,mBAAmB,GAAE;AAAC,WAAO,KAAK,kBAAkB,IAAI,CAAC,KAAGO;AAAA,EAAC;AAAA,EAAC,OAAO,OAAM;AAAC,QAAG,KAAK,eAAeH,EAAE,mBAAmB,CAAC,EAAE;AAAO,UAAM,IAAER,GAAE,IAAI;AAAE,MAAE,SAAQ,GAAY,EAAE,MAAX,WAAe,KAAK,IAAE,CAAC,GAAG,EAAE,CAAC,IAAG,KAAK,oBAAkB,IAAI,IAAI,EAAE,iBAAiB;AAAA,EAAC;AAAA,EAAC,OAAO,WAAU;AAAC,QAAG,KAAK,eAAeQ,EAAE,WAAW,CAAC,EAAE;AAAO,QAAG,KAAK,YAAU,IAAG,KAAK,KAAI,GAAG,KAAK,eAAeA,EAAE,YAAY,CAAC,GAAE;AAAC,YAAMd,IAAE,KAAK,YAAWE,IAAE,CAAC,GAAGG,GAAEL,CAAC,GAAE,GAAGG,GAAEH,CAAC,CAAC;AAAE,iBAAUO,KAAKL,EAAE,MAAK,eAAeK,GAAEP,EAAEO,CAAC,CAAC;AAAA,IAAC;AAAC,UAAM,IAAE,KAAK,OAAO,QAAQ;AAAE,QAAU,MAAP,MAAS;AAAC,YAAML,IAAE,oBAAoB,IAAI,CAAC;AAAE,UAAYA,MAAT,OAAW,YAAS,CAACF,GAAEO,CAAC,KAAIL,EAAE,MAAK,kBAAkB,IAAIF,GAAEO,CAAC;AAAA,IAAC;AAAC,SAAK,OAAK,oBAAI;AAAI,eAAS,CAACP,GAAEE,CAAC,KAAI,KAAK,mBAAkB;AAAC,YAAMK,IAAE,KAAK,KAAKP,GAAEE,CAAC;AAAE,MAASK,MAAT,UAAY,KAAK,KAAK,IAAIA,GAAEP,CAAC;AAAA,IAAC;AAAC,SAAK,gBAAc,KAAK,eAAe,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,OAAO,eAAeE,GAAE;AAAC,UAAMK,IAAE,CAAA;AAAG,QAAG,MAAM,QAAQL,CAAC,GAAE;AAAC,YAAMD,IAAE,IAAI,IAAIC,EAAE,KAAK,KAAG,EAAE,QAAO,CAAE;AAAE,iBAAUA,KAAKD,EAAE,CAAAM,EAAE,QAAQP,GAAEE,CAAC,CAAC;AAAA,IAAC,MAAM,CAASA,MAAT,UAAYK,EAAE,KAAKP,GAAEE,CAAC,CAAC;AAAE,WAAOK;AAAA,EAAC;AAAA,EAAC,OAAO,KAAK,GAAEL,GAAE;AAAC,UAAM,IAAEA,EAAE;AAAU,WAAW,MAAL,KAAO,SAAiB,OAAO,KAAjB,WAAmB,IAAY,OAAO,KAAjB,WAAmB,EAAE,YAAW,IAAG;AAAA,EAAM;AAAA,EAAC,cAAa;AAAC,UAAK,GAAG,KAAK,OAAK,QAAO,KAAK,kBAAgB,IAAG,KAAK,aAAW,IAAG,KAAK,OAAK,MAAK,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,IAAI,SAAS,OAAG,KAAK,iBAAe,EAAC,GAAG,KAAK,OAAK,oBAAI,OAAI,KAAK,KAAI,GAAG,KAAK,cAAa,GAAG,KAAK,YAAY,GAAG,SAAS,OAAG,EAAE,IAAI,EAAC;AAAA,EAAE;AAAA,EAAC,cAAc,GAAE;AAAC,KAAC,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC,GAAW,KAAK,eAAd,UAA0B,KAAK,eAAa,EAAE,gBAAa;AAAA,EAAI;AAAA,EAAC,iBAAiB,GAAE;AAAC,SAAK,MAAM,OAAO,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,UAAM,IAAE,oBAAI,OAAIA,IAAE,KAAK,YAAY;AAAkB,eAAU,KAAKA,EAAE,KAAI,EAAG,MAAK,eAAe,CAAC,MAAI,EAAE,IAAI,GAAE,KAAK,CAAC,CAAC,GAAE,OAAO,KAAK,CAAC;AAAG,MAAE,OAAK,MAAI,KAAK,OAAK;AAAA,EAAE;AAAA,EAAC,mBAAkB;AAAC,UAAM,IAAE,KAAK,cAAY,KAAK,aAAa,KAAK,YAAY,iBAAiB;AAAE,WAAOA,GAAE,GAAE,KAAK,YAAY,aAAa,GAAE;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,SAAK,eAAa,KAAK,iBAAgB,GAAG,KAAK,eAAe,EAAE,GAAE,KAAK,MAAM,SAAS,OAAG,EAAE,gBAAa,EAAI;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,SAAK,MAAM,SAAS,OAAG,EAAE,qBAAoB;AAAA,EAAE;AAAA,EAAC,yBAAyB,GAAEA,GAAE,GAAE;AAAC,SAAK,KAAK,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEA,GAAE;AAAC,UAAM,IAAE,KAAK,YAAY,kBAAkB,IAAI,CAAC,GAAED,IAAE,KAAK,YAAY,KAAK,GAAE,CAAC;AAAE,QAAYA,MAAT,UAAiB,EAAE,YAAP,IAAe;AAAC,YAAMS,KAAY,EAAE,WAAW,gBAAtB,SAAkC,EAAE,YAAUK,GAAG,YAAYb,GAAE,EAAE,IAAI;AAAE,WAAK,OAAK,GAAQQ,KAAN,OAAQ,KAAK,gBAAgBT,CAAC,IAAE,KAAK,aAAaA,GAAES,CAAC,GAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,KAAK,GAAER,GAAE;AAAC,UAAM,IAAE,KAAK,aAAYD,IAAE,EAAE,KAAK,IAAI,CAAC;AAAE,QAAYA,MAAT,UAAY,KAAK,SAAOA,GAAE;AAAC,YAAMD,IAAE,EAAE,mBAAmBC,CAAC,GAAES,IAAc,OAAOV,EAAE,aAArB,aAA+B,EAAC,eAAcA,EAAE,UAAS,IAAWA,EAAE,WAAW,kBAAtB,SAAoCA,EAAE,YAAUe;AAAE,WAAK,OAAKd,GAAE,KAAKA,CAAC,IAAES,EAAE,cAAcR,GAAEF,EAAE,IAAI,KAAG,KAAK,MAAM,IAAIC,CAAC,KAAG,MAAK,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,cAAc,GAAEC,GAAE,GAAE;AAAC,QAAY,MAAT,QAAW;AAAC,YAAMD,IAAE,KAAK,aAAYS,IAAE,KAAK,CAAC;AAAE,UAAG,MAAIT,EAAE,mBAAmB,CAAC,GAAE,GAAG,EAAE,cAAYe,GAAGN,GAAER,CAAC,KAAG,EAAE,cAAY,EAAE,WAASQ,MAAI,KAAK,MAAM,IAAI,CAAC,KAAG,CAAC,KAAK,aAAaT,EAAE,KAAK,GAAE,CAAC,CAAC,GAAG;AAAO,WAAK,EAAE,GAAEC,GAAE,CAAC;AAAA,IAAC;AAAC,IAAK,KAAK,oBAAV,OAA4B,KAAK,OAAK,KAAK,KAAI;AAAA,EAAG;AAAA,EAAC,EAAE,GAAEA,GAAE,EAAC,YAAW,GAAE,SAAQD,GAAE,SAAQS,EAAC,GAAEL,GAAE;AAAC,SAAG,EAAE,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC,MAAI,KAAK,KAAK,IAAI,GAAEA,KAAGH,KAAG,KAAK,CAAC,CAAC,GAAOQ,MAAL,MAAiBL,MAAT,YAAc,KAAK,KAAK,IAAI,CAAC,MAAI,KAAK,cAAY,MAAIH,IAAE,SAAQ,KAAK,KAAK,IAAI,GAAEA,CAAC,IAAQD,MAAL,MAAQ,KAAK,SAAO,MAAI,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,OAAM;AAAC,SAAK,kBAAgB;AAAG,QAAG;AAAC,YAAM,KAAK;AAAA,IAAI,SAAOD,GAAE;AAAC,cAAQ,OAAOA,CAAC;AAAA,IAAC;AAAC,UAAM,IAAE,KAAK;AAAiB,WAAa,KAAN,QAAS,MAAM,GAAE,CAAC,KAAK;AAAA,EAAe;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK,cAAa;AAAA,EAAE;AAAA,EAAC,gBAAe;AAAC,QAAG,CAAC,KAAK,gBAAgB;AAAO,QAAG,CAAC,KAAK,YAAW;AAAC,UAAG,KAAK,eAAa,KAAK,iBAAgB,GAAG,KAAK,MAAK;AAAC,mBAAS,CAACA,GAAEE,CAAC,KAAI,KAAK,KAAK,MAAKF,CAAC,IAAEE;AAAE,aAAK,OAAK;AAAA,MAAM;AAAC,YAAMF,IAAE,KAAK,YAAY;AAAkB,UAAGA,EAAE,OAAK,EAAE,YAAS,CAACE,GAAEK,CAAC,KAAIP,GAAE;AAAC,cAAK,EAAC,SAAQA,EAAC,IAAEO,GAAEN,IAAE,KAAKC,CAAC;AAAE,QAAKF,MAAL,MAAQ,KAAK,KAAK,IAAIE,CAAC,KAAYD,MAAT,UAAY,KAAK,EAAEC,GAAE,QAAOK,GAAEN,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,IAAE;AAAG,UAAMC,IAAE,KAAK;AAAK,QAAG;AAAC,UAAE,KAAK,aAAaA,CAAC,GAAE,KAAG,KAAK,WAAWA,CAAC,GAAE,KAAK,MAAM,SAAS,CAAAF,MAAGA,EAAE,aAAU,EAAI,GAAG,KAAK,OAAOE,CAAC,KAAG,KAAK,KAAI;AAAA,IAAE,SAAOA,GAAE;AAAC,YAAM,IAAE,IAAG,KAAK,KAAI,GAAGA;AAAA,IAAC;AAAC,SAAG,KAAK,KAAKA,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,SAAK,MAAM,SAAS,CAAAF,MAAGA,EAAE,cAAW,EAAI,GAAG,KAAK,eAAa,KAAK,aAAW,IAAG,KAAK,aAAa,CAAC,IAAG,KAAK,QAAQ,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,oBAAI,OAAI,KAAK,kBAAgB;AAAA,EAAE;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,kBAAiB;AAAA,EAAE;AAAA,EAAC,oBAAmB;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,aAAa,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,GAAE;AAAC,SAAK,SAAO,KAAK,KAAK,SAAS,CAAAA,MAAG,KAAK,KAAKA,GAAE,KAAKA,CAAC,CAAC,EAAC,GAAG,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,QAAQ,GAAE;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAA,EAAC;AAAC;AAACmB,EAAE,gBAAc,CAAA,GAAGA,EAAE,oBAAkB,EAAC,MAAK,OAAM,GAAEA,EAAEL,EAAE,mBAAmB,CAAC,IAAE,oBAAI,OAAIK,EAAEL,EAAE,WAAW,CAAC,IAAE,oBAAI,OAAID,KAAI,EAAC,iBAAgBM,EAAC,CAAC,IAAGR,EAAE,4BAA0B,CAAA,GAAI,KAAK,OAAO;ACAjxL,MAACX,IAAE,YAAWO,IAAEP,EAAE,cAAaE,KAAEK,IAAEA,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAP,MAAGA,EAAC,CAAC,IAAE,QAAOC,KAAE,SAAQS,IAAE,OAAO,KAAK,OAAM,EAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,KAAIP,KAAE,MAAIO,GAAEJ,KAAE,IAAIH,EAAC,KAAIE,IAAE,UAASO,IAAE,MAAIP,EAAE,cAAc,EAAE,GAAEI,IAAE,CAAAT,MAAUA,MAAP,QAAoB,OAAOA,KAAjB,YAAgC,OAAOA,KAAnB,YAAqBW,IAAE,MAAM,SAAQI,KAAE,CAAAf,MAAGW,EAAEX,CAAC,KAAe,OAAOA,IAAI,OAAO,QAAQ,KAAtC,YAAwCc,IAAE;AAAA,QAAcE,IAAE,uDAAsDI,KAAE,QAAOC,KAAE,MAAKC,IAAE,OAAO,KAAKR,CAAC,qBAAqBA,CAAC,KAAKA,CAAC;AAAA,2BAAsC,GAAG,GAAED,KAAE,MAAKU,KAAE,MAAKC,KAAE,sCAAqCL,KAAE,CAAAnB,MAAG,CAACO,MAAKL,OAAK,EAAC,YAAWF,GAAE,SAAQO,GAAE,QAAOL,EAAC,IAAGuB,KAAEN,GAAE,CAAC,GAAgBO,IAAE,uBAAO,IAAI,cAAc,GAAEC,IAAE,uBAAO,IAAI,aAAa,GAAEC,KAAE,oBAAI,WAAQC,IAAExB,EAAE,iBAAiBA,GAAE,GAAG;AAAE,SAASyB,GAAE9B,GAAEO,GAAE;AAAC,MAAG,CAACI,EAAEX,CAAC,KAAG,CAACA,EAAE,eAAe,KAAK,EAAE,OAAM,MAAM,gCAAgC;AAAE,SAAgBE,OAAT,SAAWA,GAAE,WAAWK,CAAC,IAAEA;AAAC;AAAC,MAAMwB,KAAE,CAAC/B,GAAEO,MAAI;AAAC,QAAML,IAAEF,EAAE,SAAO,GAAEG,IAAE;AAAG,MAAI,GAAES,IAAML,MAAJ,IAAM,UAAYA,MAAJ,IAAM,WAAS,IAAGE,IAAEO;AAAE,WAAQT,IAAE,GAAEA,IAAEL,GAAEK,KAAI;AAAC,UAAML,IAAEF,EAAEO,CAAC;AAAE,QAAII,GAAEI,GAAED,IAAE,IAAGK,IAAE;AAAE,WAAKA,IAAEjB,EAAE,WAASO,EAAE,YAAUU,GAAEJ,IAAEN,EAAE,KAAKP,CAAC,GAASa,MAAP,QAAW,CAAAI,IAAEV,EAAE,WAAUA,MAAIO,IAAUD,EAAE,CAAC,MAAX,QAAaN,IAAEW,KAAWL,EAAE,CAAC,MAAZ,SAAcN,IAAEY,KAAWN,EAAE,CAAC,MAAZ,UAAeS,GAAE,KAAKT,EAAE,CAAC,CAAC,MAAI,IAAE,OAAO,OAAKA,EAAE,CAAC,GAAE,GAAG,IAAGN,IAAEa,KAAYP,EAAE,CAAC,MAAZ,WAAgBN,IAAEa,KAAGb,MAAIa,IAAQP,EAAE,CAAC,MAAT,OAAYN,IAAE,KAAGO,GAAEF,IAAE,MAAaC,EAAE,CAAC,MAAZ,SAAcD,IAAE,MAAIA,IAAEL,EAAE,YAAUM,EAAE,CAAC,EAAE,QAAOJ,IAAEI,EAAE,CAAC,GAAEN,IAAWM,EAAE,CAAC,MAAZ,SAAcO,IAAQP,EAAE,CAAC,MAAT,MAAWQ,KAAEV,MAAGJ,MAAIc,MAAGd,MAAII,KAAEJ,IAAEa,IAAEb,MAAIW,MAAGX,MAAIY,KAAEZ,IAAEO,KAAGP,IAAEa,GAAE,IAAE;AAAQ,UAAMG,IAAEhB,MAAIa,KAAGtB,EAAEO,IAAE,CAAC,EAAE,WAAW,IAAI,IAAE,MAAI;AAAG,IAAAK,KAAGH,MAAIO,IAAEd,IAAEI,KAAEQ,KAAG,KAAGX,EAAE,KAAKQ,CAAC,GAAET,EAAE,MAAM,GAAEY,CAAC,IAAEb,KAAEC,EAAE,MAAMY,CAAC,IAAEJ,IAAEe,KAAGvB,IAAEQ,KAAQI,MAAL,KAAOP,IAAEkB;AAAA,EAAE;AAAC,SAAM,CAACK,GAAE9B,GAAEY,KAAGZ,EAAEE,CAAC,KAAG,UAAYK,MAAJ,IAAM,WAAaA,MAAJ,IAAM,YAAU,GAAG,GAAEJ,CAAC;AAAC;AAAE,MAAM6B,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQ,GAAE,YAAW9B,EAAC,GAAEI,GAAE;AAAC,QAAI;AAAE,SAAK,QAAM,CAAA;AAAG,QAAIG,IAAE,GAAEE,IAAE;AAAE,UAAMI,IAAE,EAAE,SAAO,GAAED,IAAE,KAAK,OAAM,CAACE,GAAEI,CAAC,IAAEW,GAAE,GAAE7B,CAAC;AAAE,QAAG,KAAK,KAAG8B,EAAE,cAAchB,GAAEV,CAAC,GAAEuB,EAAE,cAAY,KAAK,GAAG,SAAY3B,MAAJ,KAAWA,MAAJ,GAAM;AAAC,YAAMF,IAAE,KAAK,GAAG,QAAQ;AAAW,MAAAA,EAAE,YAAY,GAAGA,EAAE,UAAU;AAAA,IAAC;AAAC,YAAa,IAAE6B,EAAE,gBAAZ,QAAyBf,EAAE,SAAOC,KAAG;AAAC,UAAO,EAAE,aAAN,GAAe;AAAC,YAAG,EAAE,gBAAgB,YAAUf,KAAK,EAAE,kBAAiB,EAAG,KAAGA,EAAE,SAASC,EAAC,GAAE;AAAC,gBAAMM,IAAEa,EAAET,GAAG,GAAET,IAAE,EAAE,aAAaF,CAAC,EAAE,MAAMU,CAAC,GAAET,IAAE,eAAe,KAAKM,CAAC;AAAE,UAAAO,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,GAAE,MAAKR,EAAE,CAAC,GAAE,SAAQC,GAAE,MAAWD,EAAE,CAAC,MAAT,MAAWgC,KAAQhC,EAAE,CAAC,MAAT,MAAWiC,KAAQjC,EAAE,CAAC,MAAT,MAAWkC,KAAEC,EAAC,CAAC,GAAE,EAAE,gBAAgBpC,CAAC;AAAA,QAAC,MAAM,CAAAA,EAAE,WAAWU,CAAC,MAAII,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC,GAAE,EAAE,gBAAgBT,CAAC;AAAG,YAAGwB,GAAE,KAAK,EAAE,OAAO,GAAE;AAAC,gBAAMxB,IAAE,EAAE,YAAY,MAAMU,CAAC,GAAER,IAAEF,EAAE,SAAO;AAAE,cAAGE,IAAE,GAAE;AAAC,cAAE,cAAYK,IAAEA,EAAE,cAAY;AAAG,qBAAQA,IAAE,GAAEA,IAAEL,GAAEK,IAAI,GAAE,OAAOP,EAAEO,CAAC,GAAEK,EAAC,CAAE,GAAEiB,EAAE,SAAQ,GAAGf,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAEL,EAAC,CAAC;AAAE,cAAE,OAAOT,EAAEE,CAAC,GAAEU,GAAG;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAa,EAAE,aAAN,EAAe,KAAG,EAAE,SAAOT,GAAE,CAAAW,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC;AAAA,WAAM;AAAC,YAAIT,IAAE;AAAG,gBAAWA,IAAE,EAAE,KAAK,QAAQU,GAAEV,IAAE,CAAC,OAA5B,KAAgC,CAAAc,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC,GAAET,KAAGU,EAAE,SAAO;AAAA,MAAC;AAAC,MAAAD;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAEF,GAAE;AAAC,UAAML,IAAEG,EAAE,cAAc,UAAU;AAAE,WAAOH,EAAE,YAAU,GAAEA;AAAA,EAAC;AAAC;AAAC,SAASM,EAAER,GAAEO,GAAEL,IAAEF,GAAEC,GAAE;AAAC,MAAGM,MAAImB,EAAE,QAAOnB;AAAE,MAAIG,IAAWT,MAAT,SAAWC,EAAE,OAAOD,CAAC,IAAEC,EAAE;AAAK,QAAMC,IAAEM,EAAEF,CAAC,IAAE,SAAOA,EAAE;AAAgB,SAAOG,GAAG,gBAAcP,MAAIO,GAAG,OAAO,EAAE,GAAWP,MAAT,SAAWO,IAAE,UAAQA,IAAE,IAAIP,EAAEH,CAAC,GAAEU,EAAE,KAAKV,GAAEE,GAAED,CAAC,IAAYA,MAAT,UAAYC,EAAE,SAAO,CAAA,GAAID,CAAC,IAAES,IAAER,EAAE,OAAKQ,IAAYA,MAAT,WAAaH,IAAEC,EAAER,GAAEU,EAAE,KAAKV,GAAEO,EAAE,MAAM,GAAEG,GAAET,CAAC,IAAGM;AAAC;AAAC,MAAM8B,GAAC;AAAA,EAAC,YAAY,GAAE9B,GAAE;AAAC,SAAK,OAAK,CAAA,GAAG,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAE,GAAE;AAAC,UAAK,EAAC,IAAG,EAAC,SAAQA,EAAC,GAAE,OAAML,EAAC,IAAE,KAAK,MAAKD,KAAG,GAAG,iBAAeI,GAAG,WAAWE,GAAE,EAAE;AAAE,IAAAsB,EAAE,cAAY5B;AAAE,QAAIS,IAAEmB,EAAE,SAAQ,GAAG,IAAE,GAAEvB,IAAE,GAAEM,IAAEV,EAAE,CAAC;AAAE,WAAcU,MAAT,UAAY;AAAC,UAAG,MAAIA,EAAE,OAAM;AAAC,YAAIL;AAAE,QAAIK,EAAE,SAAN,IAAWL,IAAE,IAAI+B,EAAE5B,GAAEA,EAAE,aAAY,MAAK,CAAC,IAAME,EAAE,SAAN,IAAWL,IAAE,IAAIK,EAAE,KAAKF,GAAEE,EAAE,MAAKA,EAAE,SAAQ,MAAK,CAAC,IAAMA,EAAE,SAAN,MAAaL,IAAE,IAAIgC,GAAE7B,GAAE,MAAK,CAAC,IAAG,KAAK,KAAK,KAAKH,CAAC,GAAEK,IAAEV,EAAE,EAAEI,CAAC;AAAA,MAAC;AAAC,YAAIM,GAAG,UAAQF,IAAEmB,EAAE,SAAQ,GAAG;AAAA,IAAI;AAAC,WAAOA,EAAE,cAAYxB,GAAEJ;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIM,IAAE;AAAE,eAAUL,KAAK,KAAK,MAAcA,iBAAaA,EAAE,YAAX,UAAoBA,EAAE,KAAK,GAAEA,GAAEK,CAAC,GAAEA,KAAGL,EAAE,QAAQ,SAAO,KAAGA,EAAE,KAAK,EAAEK,CAAC,CAAC,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAM+B,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,MAAM,QAAM,KAAK;AAAA,EAAI;AAAA,EAAC,YAAY,GAAE/B,GAAEL,GAAED,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK0B,GAAE,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKpB,GAAE,KAAK,OAAKL,GAAE,KAAK,UAAQD,GAAE,KAAK,OAAKA,GAAG,eAAa;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK,KAAK;AAAW,UAAMM,IAAE,KAAK;AAAK,WAAgBA,MAAT,UAAiB,GAAG,aAAR,OAAmB,IAAEA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEA,IAAE,MAAK;AAAC,QAAEC,EAAE,MAAK,GAAED,CAAC,GAAEE,EAAE,CAAC,IAAE,MAAIkB,KAAS,KAAN,QAAc,MAAL,MAAQ,KAAK,SAAOA,KAAG,KAAK,KAAI,GAAG,KAAK,OAAKA,KAAG,MAAI,KAAK,QAAM,MAAID,KAAG,KAAK,EAAE,CAAC,IAAW,EAAE,eAAX,SAAsB,KAAK,EAAE,CAAC,IAAW,EAAE,aAAX,SAAoB,KAAK,EAAE,CAAC,IAAEX,GAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,WAAO,KAAK,KAAK,WAAW,aAAa,GAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAO,MAAI,KAAK,QAAO,KAAK,OAAK,KAAK,EAAE,CAAC;AAAA,EAAE;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAOY,KAAGlB,EAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAK,IAAE,KAAK,EAAEJ,EAAE,eAAe,CAAC,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAK,EAAC,QAAOE,GAAE,YAAWL,EAAC,IAAE,GAAED,IAAY,OAAOC,KAAjB,WAAmB,KAAK,KAAK,CAAC,KAAYA,EAAE,OAAX,WAAgBA,EAAE,KAAG8B,EAAE,cAAcF,GAAE5B,EAAE,GAAEA,EAAE,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,IAAGA;AAAG,QAAG,KAAK,MAAM,SAAOD,EAAE,MAAK,KAAK,EAAEM,CAAC;AAAA,SAAM;AAAC,YAAMP,IAAE,IAAIqC,GAAEpC,GAAE,IAAI,GAAEC,IAAEF,EAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,EAAE,EAAEO,CAAC,GAAE,KAAK,EAAEL,CAAC,GAAE,KAAK,OAAKF;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,QAAIO,IAAEqB,GAAE,IAAI,EAAE,OAAO;AAAE,WAAgBrB,MAAT,UAAYqB,GAAE,IAAI,EAAE,SAAQrB,IAAE,IAAIyB,EAAE,CAAC,CAAC,GAAEzB;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,IAAAI,EAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAA,GAAG,KAAK;AAAQ,UAAMJ,IAAE,KAAK;AAAK,QAAIL,GAAED,IAAE;AAAE,eAAUS,KAAK,EAAE,CAAAT,MAAIM,EAAE,SAAOA,EAAE,KAAKL,IAAE,IAAIoC,EAAE,KAAK,EAAE1B,GAAG,GAAE,KAAK,EAAEA,EAAC,CAAE,GAAE,MAAK,KAAK,OAAO,CAAC,IAAEV,IAAEK,EAAEN,CAAC,GAAEC,EAAE,KAAKQ,CAAC,GAAET;AAAI,IAAAA,IAAEM,EAAE,WAAS,KAAK,KAAKL,KAAGA,EAAE,KAAK,aAAYD,CAAC,GAAEM,EAAE,SAAON;AAAA,EAAE;AAAA,EAAC,KAAK,IAAE,KAAK,KAAK,aAAYM,GAAE;AAAC,SAAI,KAAK,OAAO,IAAG,IAAGA,CAAC,GAAE,KAAG,MAAI,KAAK,QAAM;AAAC,YAAM,IAAE,EAAE;AAAY,QAAE,OAAM,GAAG,IAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,IAAS,KAAK,SAAd,WAAqB,KAAK,OAAK,GAAE,KAAK,OAAO,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM6B,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,YAAY,GAAE7B,GAAEL,GAAED,GAAES,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAKiB,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQ,GAAE,KAAK,OAAKpB,GAAE,KAAK,OAAKN,GAAE,KAAK,UAAQS,GAAER,EAAE,SAAO,KAAQA,EAAE,CAAC,MAAR,MAAgBA,EAAE,CAAC,MAAR,MAAW,KAAK,OAAK,MAAMA,EAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQA,KAAG,KAAK,OAAKyB;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEpB,IAAE,MAAKL,GAAED,GAAE;AAAC,UAAMS,IAAE,KAAK;AAAQ,QAAI,IAAE;AAAG,QAAYA,MAAT,OAAW,KAAEF,EAAE,MAAK,GAAED,GAAE,CAAC,GAAE,IAAE,CAACE,EAAE,CAAC,KAAG,MAAI,KAAK,QAAM,MAAIiB,GAAE,MAAI,KAAK,OAAK;AAAA,SAAO;AAAC,YAAMzB,IAAE;AAAE,UAAIK,GAAED;AAAE,WAAI,IAAEK,EAAE,CAAC,GAAEJ,IAAE,GAAEA,IAAEI,EAAE,SAAO,GAAEJ,IAAI,CAAAD,IAAEG,EAAE,MAAKP,EAAEC,IAAEI,CAAC,GAAEC,GAAED,CAAC,GAAED,MAAIqB,MAAIrB,IAAE,KAAK,KAAKC,CAAC,IAAG,MAAI,CAACG,EAAEJ,CAAC,KAAGA,MAAI,KAAK,KAAKC,CAAC,GAAED,MAAIsB,IAAE,IAAEA,IAAE,MAAIA,MAAI,MAAItB,KAAG,MAAIK,EAAEJ,IAAE,CAAC,IAAG,KAAK,KAAKA,CAAC,IAAED;AAAA,IAAC;AAAC,SAAG,CAACJ,KAAG,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAI0B,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAK,KAAG,EAAE;AAAA,EAAC;AAAC;AAAC,MAAMM,WAAUG,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,KAAK,IAAI,IAAE,MAAIT,IAAE,SAAO;AAAA,EAAC;AAAC;AAAC,MAAMO,WAAUE,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,gBAAgB,KAAK,MAAK,CAAC,CAAC,KAAG,MAAIT,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMQ,WAAUC,EAAC;AAAA,EAAC,YAAY,GAAE7B,GAAEL,GAAED,GAAES,GAAE;AAAC,UAAM,GAAEH,GAAEL,GAAED,GAAES,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEH,IAAE,MAAK;AAAC,SAAI,IAAEC,EAAE,MAAK,GAAED,GAAE,CAAC,KAAGoB,OAAKD,EAAE;AAAO,UAAMxB,IAAE,KAAK,MAAKD,IAAE,MAAI0B,KAAGzB,MAAIyB,KAAG,EAAE,YAAUzB,EAAE,WAAS,EAAE,SAAOA,EAAE,QAAM,EAAE,YAAUA,EAAE,SAAQQ,IAAE,MAAIiB,MAAIzB,MAAIyB,KAAG1B;AAAG,IAAAA,KAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKC,CAAC,GAAEQ,KAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAK,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,IAAY,OAAO,KAAK,QAAxB,aAA6B,KAAK,KAAK,KAAK,KAAK,SAAS,QAAM,KAAK,SAAQ,CAAC,IAAE,KAAK,KAAK,YAAY,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM6B,GAAC;AAAA,EAAC,YAAY,GAAEhC,GAAEL,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKK,GAAE,KAAK,UAAQL;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE;AAAC,IAAAM,EAAE,MAAK,CAAC;AAAA,EAAC;AAAC;AAAM,MAA6DgC,KAAExC,EAAE;AAAuBwC,KAAIR,GAAEM,CAAC,IAAGtC,EAAE,oBAAkB,CAAA,GAAI,KAAK,OAAO;AAAE,MAAMyC,KAAE,CAACzC,GAAEO,GAAEL,MAAI;AAAC,QAAMD,IAAEC,GAAG,gBAAcK;AAAE,MAAIG,IAAET,EAAE;AAAW,MAAYS,MAAT,QAAW;AAAC,UAAMV,IAAEE,GAAG,gBAAc;AAAK,IAAAD,EAAE,aAAWS,IAAE,IAAI4B,EAAE/B,EAAE,aAAaK,EAAC,GAAGZ,CAAC,GAAEA,GAAE,QAAOE,KAAG,CAAA,CAAE;AAAA,EAAC;AAAC,SAAOQ,EAAE,KAAKV,CAAC,GAAEU;AAAC;ACA16N,MAAMR,IAAE;AAAW,MAAMK,UAAUP,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,gBAAc,EAAC,MAAK,KAAI,GAAE,KAAK,OAAK;AAAA,EAAM;AAAA,EAAC,mBAAkB;AAAC,UAAM,IAAE,MAAM,iBAAgB;AAAG,WAAO,KAAK,cAAc,iBAAe,EAAE,YAAW;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE;AAAC,UAAMK,IAAE,KAAK,OAAM;AAAG,SAAK,eAAa,KAAK,cAAc,cAAY,KAAK,cAAa,MAAM,OAAO,CAAC,GAAE,KAAK,OAAKJ,GAAEI,GAAE,KAAK,YAAW,KAAK,aAAa;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,UAAM,kBAAiB,GAAG,KAAK,MAAM,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,UAAM,qBAAoB,GAAG,KAAK,MAAM,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOA;AAAAA,EAAC;AAAC;AAACE,EAAE,gBAAc,IAAGA,EAAE,YAAa,IAAGL,EAAE,2BAA2B,EAAC,YAAWK,EAAC,CAAC;AAAE,MAAMJ,KAAED,EAAE;AAA0BC,KAAI,EAAC,YAAWI,EAAC,CAAC;AAAA,CAAwDL,EAAE,uBAAqB,IAAI,KAAK,OAAO;ACA/xB,MAAMF,KAAE,CAAAA,MAAG,CAACC,GAAEE,MAAI;EAAUA,eAAEA,EAAE,gBAAgB,MAAI;AAAC,mBAAe,OAAOH,GAAEC,CAAC;AAAA,EAAC,EAAC,IAAG,eAAe,OAAOD,GAAEC,CAAC;AAAC;ACA1G,MAAME,KAAE,EAAC,WAAU,IAAG,MAAK,QAAO,WAAUH,GAAE,SAAQ,IAAG,YAAWC,EAAC,GAAEI,KAAE,CAACL,IAAEG,IAAEF,GAAEI,MAAI;AAAC,QAAK,EAAC,MAAKC,GAAE,UAASC,EAAC,IAAEF;AAAE,MAAIH,IAAE,WAAW,oBAAoB,IAAIK,CAAC;AAAE,MAAYL,MAAT,UAAY,WAAW,oBAAoB,IAAIK,GAAEL,IAAE,oBAAI,KAAG,GAAaI,MAAX,cAAgBN,IAAE,OAAO,OAAOA,CAAC,GAAG,UAAQ,KAAIE,EAAE,IAAIG,EAAE,MAAKL,CAAC,GAAeM,MAAb,YAAe;AAAC,UAAK,EAAC,MAAK,EAAC,IAAED;AAAE,WAAM,EAAC,IAAIA,GAAE;AAAC,YAAMC,IAAEL,EAAE,IAAI,KAAK,IAAI;AAAE,MAAAA,EAAE,IAAI,KAAK,MAAKI,CAAC,GAAE,KAAK,cAAc,GAAEC,GAAEN,CAAC;AAAA,IAAC,GAAE,KAAKC,GAAE;AAAC,aAAgBA,MAAT,UAAY,KAAK,EAAE,GAAE,QAAOD,GAAEC,CAAC,GAAEA;AAAA,IAAC,EAAC;AAAA,EAAC;AAAC,MAAcK,MAAX,UAAa;AAAC,UAAK,EAAC,MAAK,EAAC,IAAED;AAAE,WAAO,SAASA,GAAE;AAAC,YAAMC,IAAE,KAAK,CAAC;AAAE,MAAAL,EAAE,KAAK,MAAKI,CAAC,GAAE,KAAK,cAAc,GAAEC,GAAEN,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAM,MAAM,qCAAmCM,CAAC;AAAC;AAAE,SAASA,EAAEN,GAAE;AAAC,SAAM,CAACC,GAAEE,MAAc,OAAOA,KAAjB,WAAmBE,GAAEL,GAAEC,GAAEE,CAAC,KAAG,CAACH,GAAEC,GAAEE,MAAI;AAAC,UAAME,IAAEJ,EAAE,eAAeE,CAAC;AAAE,WAAOF,EAAE,YAAY,eAAeE,GAAEH,CAAC,GAAEK,IAAE,OAAO,yBAAyBJ,GAAEE,CAAC,IAAE;AAAA,EAAM,GAAGH,GAAEC,GAAEE,CAAC;AAAC;ACAlyB,SAASE,EAAEA,GAAE;AAAC,SAAOL,EAAE,EAAC,GAAGK,GAAE,OAAM,IAAG,WAAU,GAAE,CAAC;AAAC;ACAvD,MAAMJ,KAAE,CAACA,GAAE,GAAEQ,OAAKA,EAAE,eAAa,IAAGA,EAAE,aAAW,IAAG,QAAQ,YAAoB,OAAO,KAAjB,YAAoB,OAAO,eAAeR,GAAE,GAAEQ,CAAC,GAAEA;ACApH,SAASR,GAAEA,GAAEI,GAAE;AAAC,SAAM,CAACC,GAAEJ,GAAEK,MAAI;AAAC,UAAMJ,IAAE,CAAAH,MAAGA,EAAE,YAAY,cAAcC,CAAC,KAAG;AAAwP,WAAOD,GAAEM,GAAEJ,GAAE,EAAC,MAAK;AAAC,aAAOC,EAAE,IAAI;AAAA,IAAC,EAAC,CAAC;AAAA,EAAC;AAAC;;;;;;ACK5WuC,EAAQ,IAAI,CAACC,IAAkBC,IAAYC,EAAc,CAAC;AAW1D,IAAMC,IAAN,cAA0BC,EAAW;AAAA,EAiCjC,cAAc;AACV,UAAA,GA1BJ,KAAQ,WAAyB,CAAA,GAGjC,KAAQ,iCAGA,IAAA,GAYR,KAAA,YAAoB,KACpB,KAAA,aAAqB,KACrB,KAAA,sBAA8B,IAE9B,KAAA,WAAmB,GACnB,KAAA,UAAkB,UAId,KAAK,iBAAiB,IAAI,eAAe,MAAM;AAC3C,WAAK,YAAA,GACL,KAAK,UAAA;AAAA,IACT,CAAC,GAED,KAAK,WAAW;AAAA,MACZ,QAAQ;AAAA,QACJ;AAAA,UACI,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,UAAU;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,YACP,UAAU;AAAA,YACV,WAAW;AAAA,cACP,OAAO;AAAA,YAAA;AAAA,UACX;AAAA,UAEJ,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,WAAW,EAAE,MAAM,GAAA;AAAA,UACnB,WAAW,EAAE,MAAM,GAAA;AAAA,UACnB,QAAQ,EAAE,MAAM,GAAA;AAAA,UAChB,SAAS,EAAE,MAAM,GAAA;AAAA,UACjB,QAAQ;AAAA,YACJ,gBAAgB;AAAA,YAChB,UAAU;AAAA,YACV,cAAc,CAAC,GAAG,KAAK;AAAA,UAAA;AAAA,UAE3B,OAAO;AAAA,YACH,MAAM;AAAA,YACN,cAAc,CAAC,GAAG,MAAM;AAAA,YACxB,UAAU;AAAA,YACV,MAAM;AAAA,UAAA;AAAA,UAEV,MAAM;AAAA,YACF;AAAA,cACI,OAAO;AAAA,cACP,MAAM;AAAA,YAAA;AAAA,UACV;AAAA,QACJ;AAAA,QAEJ;AAAA,UACI,MAAM;AAAA,UACN,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,UAAU;AAAA,YACN,WAAW;AAAA,cACP,OAAO;AAAA,cACP,OAAO;AAAA,gBACH,CAAC,KAAK,SAAS;AAAA,gBACf,CAAC,KAAK,SAAS;AAAA,gBACf,CAAC,GAAG,SAAS;AAAA,cAAA;AAAA,YACjB;AAAA,UACJ;AAAA,UAEJ,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,WAAW;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,WAAW;AAAA,cACP,OAAO;AAAA,cACP,OAAO;AAAA,YAAA;AAAA,UACX;AAAA,UAGJ,WAAW;AAAA,YACP,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,UAAA;AAAA,QACd;AAAA,MACJ;AAAA,IACJ;AAAA,EAER;AAAA,EAEA,uBAAuB;AACnB,UAAM,qBAAA,GACF,KAAK,kBACL,KAAK,eAAe,WAAA;AAAA,EAE5B;AAAA,EAEA,OAAOC,GAA4E;AAC/E,IAAIA,EAAkB,IAAI,WAAW,KAAK,KAAK,mBAC3C,KAAK,cAAA,GACL,KAAK,YAAA,IAGLA,EAAkB,IAAI,OAAO,MAC7B,KAAK,cAAc,KAAK,KAAK,GAC7B,KAAK,aAAA,GACL,KAAK,cAAA,GACL,KAAK,YAAA,GACL,KAAK,YAAA,GACL,KAAK,UAAA,IAET,MAAM,OAAOA,CAAiB;AAAA,EAClC;AAAA,EAEU,QAAQA,GAAyC;AACvD,IAAIA,EAAkB,IAAI,WAAW,KAAK,KAAK,mBAC3C,KAAK,YAAA,GACL,KAAK,UAAA;AAAA,EAEb;AAAA,EAEU,aAAaC,GAA6E;AAChG,IAAI,KAAK,WAAS,KAAK,eAAe,QAAQ,KAAK,OAAO,GAC1D,KAAK,cAAc,KAAK,KAAK,GAC7B,KAAK,cAAA,GACL,KAAK,YAAA,GACL,KAAK,YAAA,GACL,KAAK,UAAA;AAAA,EACT;AAAA,EAEA,cAAcC,GAAe;AACzB,UAAMC,IAAe,iBAAiB,IAAI,EAAE,iBAAiB,iBAAiB,EAAE,KAAA,GAC1EC,IAAa,iBAAiB,IAAI,EAAE,iBAAiB,4BAA4B,EAAE,KAAA;AAMzF,QALA,KAAK,eAAeA,KAAc,KAAK,OAAO,cAAc,iBAC5D,KAAK,kBAAkBD,KAAgB,KAAK,OAAO,cAAc,OAAO,WAAW,OACnF,KAAK,qBACDA,KAAgB,KAAK,OAAO,cAAc,OAAO,cAAc,SAAS,KAAK,iBAE7E,CAACD,KAAS,CAACA,EAAM,gBAAgB,CAACA,EAAM,WAAY;AAGxD,UAAMG,IAAc;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAEEC,IAAgB,OAAO;AAAA,MACzB,OAAO,QAAQJ,EAAM,YAAY,EAAE,OAAO,CAAC,CAACK,CAAG,MAAM,CAACF,EAAY,SAASE,CAAG,CAAC;AAAA,IAAA;AAEnF,IAAAb,EAAQ,cAAcQ,EAAM,YAAYI,CAAa;AAAA,EACzD;AAAA,EAEA,cAAc;AAEV,QAAI,CAAC,KAAK,eAAgB;AAC1B,UAAME,IAAY,KAAK,eAAe,sBAAA,EAAwB,OACxDC,IAAa,KAAK,eAAe,sBAAA,EAAwB,QACzDC,IAAQ,KAAK,SAAS,QAEtBC,IAAS,KAAK,WACdC,IAAS,KAAK;AACpB,QAAI,CAACH,KAAc,CAACD,KAAa,CAACG,KAAU,CAACC,EAAQ;AACrD,UAAMC,IAAO,CAAA;AACb,aAASpD,IAAI,GAAGA,KAAKiD,GAAOjD,KAAK;AAC7B,YAAMJ,IAAI,KAAK,KAAKqD,IAAQjD,CAAC,GACvBqD,IAAWN,IAAY,MAAM/C,IAAI,IACjCsD,IAAYN,IAAa,MAAMpD,IAAI,IACnCiB,IAAIwC,IAAWH,IAASlD,GACxBuD,IAAO1C,IAAIA,IAAIqC,IAASC,IAASF;AACvC,MAAIrD,IAAIiB,IAAIsC,KAAUG,OAAgB,KAAK,EAAE,GAAAtD,GAAG,GAAAJ,GAAG,GAAAiB,GAAG,MAAA0C,GAAM,OAAOF,GAAU,OAAOC,GAAW;AAAA,IACnG;AAEA,aAAS1D,IAAI,GAAGA,KAAKqD,GAAOrD,KAAK;AAC7B,YAAMI,IAAI,KAAK,KAAKiD,IAAQrD,CAAC,GACvByD,IAAWN,IAAY,MAAM/C,IAAI,IACjCsD,IAAYN,IAAa,MAAMpD,IAAI,IACnCiB,IAAIyC,IAAYH,IAASvD,GACzB2D,IAAO1C,IAAIA,IAAIqC,IAASC,IAASF;AACvC,MAAIjD,IAAIa,IAAIqC,KAAUG,OAAe,KAAK,EAAE,GAAArD,GAAG,GAAAJ,GAAG,GAAAiB,GAAG,MAAA0C,GAAM,OAAOF,GAAU,OAAOC,GAAW;AAAA,IAClG;AAEA,UAAME,IAAUJ,EAAK,OAAO,CAAChD,GAAGJ,MAAOA,EAAE,OAAOI,IAAIA,IAAIJ,EAAE,MAAO,CAAC,GAC5DyD,IAAML,EAAK,KAAK,CAAC7C,MAAMA,EAAE,SAASiD,CAAO;AAC/C,QAAI,CAACC,EAAK;AACV,UAAMC,IAAWD,EAAI,KAAK;AAc1B,SAAK,QAAQ,MAAM,KAAK,KAAK,gBAAgB,iBAAiB,QAAQ,CAA+B,GAErG,KAAK,eAAe,MAAM,sBAAsB,UAAUA,EAAI,CAAC,UAE/D,KAAK,OAAO;AAAA,MAAQ,CAACE,MACjBA,EAAI;AAAA,QACA;AAAA,QACA,SAASD,IAAWR,CAAM,cAAcQ,KAAYP,IAAS,KAAK,oBAAoB;AAAA,MAAA;AAAA,IAC1F,GAGJ,KAAK,WAAWO,GAEhB,KAAK,WAAW,QAAQ,CAACE,MAAc;AACnC,MAAAA,EAAU,QAAQ,OAAA;AAAA,IACtB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,gBAAgB;AAGlB,IADA,KAAK,WAAW,CAAA,GACX,MAAM,aACX,KAAK,UAAU,YACT,KAAK,CAAC1D,GAAGM,OAAQN,EAAE,SAAS,OAAOM,EAAE,SAAS,MAAM,IAAI,EAAG,EAC5D,QAAQ,CAACqD,GAAIC,MAAQ;AAElB,YAAMC,IAAYF,EAAG,aACd,CAAC,GAAG,IAAI,IAAIA,EAAG,MAAM,IAAI,CAACxD,MAAYA,EAAE,KAAK,CAAC,CAAC,EAAE,KAAA,IAClD,CAAC,EAAE;AACT,MAAA0D,EAAU,QAAQ,CAACC,MAAQ;AACvB,cAAMC,IAASD,KAAO;AACtB,YAAIE,IAAQL,EAAG,OAAO,KAAA,KAAU;AAChC,QAAAK,IAAQD,KAAYA,KAAYC,IAAQ,QAAQ,MAAMA,GAClD,KAAK,SAAS,KAAK,CAACL,MAAOA,EAAG,UAAUK,CAAK,MAAGA,KAAS,MAAMJ;AACnE,cAAMK,IAAW;AAAA,UACb,OAAAD;AAAA,UACA,MAAML,EAAG;AAAA,UACT,WAAWA,EAAG;AAAA,UACd,UAAUA,EAAG;AAAA,UACb,YAAYA,EAAG;AAAA,UACf,UAAUA,EAAG;AAAA,UACb,YAAYA,EAAG;AAAA,UACf,OAAOA,EAAG;AAAA,UACV,MAAME,EAAU,WAAW,IAAIF,EAAG,OAAOA,GAAI,MAAM,OAAO,CAACxD,MAAMA,EAAE,UAAU2D,CAAG;AAAA,QAAA;AAEpF,aAAK,SAAS,KAAKG,CAAG;AAAA,MAC1B,CAAC;AAAA,IACL,CAAC;AAAA,EACT;AAAA,EAEA,YAAY;AACR,QAAI,CAAC,KAAK,eAAgB;AAC1B,UAAMT,IAAW,KAAK;AACtB,SAAK,SAAS,QAAQ,CAACrD,MAAM;AACzB,MAAAA,EAAE,UAAU;AAAA,IAChB,CAAC,GAED,KAAK,SAAS,KAAK,CAACH,GAAGM,MAAQN,EAAE,QAAoBM,EAAE,QAAmB,IAAI,EAAG;AAEjF,eAAWqD,KAAM,KAAK,UAAU;AAG5B,MAAAA,EAAG,UAAU,IACbA,EAAG,aAAa,CAAA,IACZ,OAAOA,EAAG,UAAU,iBAAkB,YAAY,MAAMA,EAAG,UAAU,aAAa,OAClFA,EAAG,SAAS,gBAAgB;AAChC,YAAMO,IAAOP,GAAI,MAAM,MAAM,CAACA,EAAG,UAAU,iBAAiB,EAAE,KAAK,CAAA;AACnE,UAAI,CAACA,EAAG;AACJ,QAAAA,EAAG,cAAcA,EAAG;AAAA,WACjB;AACH,cAAMQ,IAAUD,GAAM,IAAI,CAAC/D,MAAMA,EAAE,KAAK,GAAG,OAAO,CAACD,MAAMA,MAAM,MAAS,KAAK,CAAA;AAC7E,QAAAyD,EAAG,cAAeQ,EAAO,OAAO,CAACjE,GAAGJ,MAAMI,IAAIJ,GAAG,CAAC,IAAIqE,EAAO;AAAA,MACjE;AACA,MAAAR,EAAG,cAAc,MAAMA,EAAG,WAAqB,IACxCA,EAAG,UAAU,iBAAiB,IAC/BA,EAAG;AAET,YAAMS,IAAS,KAAK,WAAW,IAAIT,EAAG,KAAK,GAAG,QACxCU,IAASD,GAAQ,UAAA,KAAe,OAAO,gBAAgB,KAAK,QAAQ,GACpEE,IAAYD,EAAO,QACnBE,IAAUD,IAAY,CAAC,GACzBE,IAAWF,IAAY,CAAC,GAItBG,IAAM,KAAK,MAAMd,GAAI,OAAO,CAAC,GAAG,OAAO,EAAE;AAC/C,MAAI,MAAMc,CAAG,MACG,oBAAI,KAAA,GAAO,QAAA,IACbA,KAAOd,EAAG,UAAU,cAAc,SAAY,UAAS,cAAc,SAGnFY,EAAG,KAAK,CAAC,EAAE,QAAQZ,EAAG,aACtBY,EAAG,KAAK,CAAC,EAAE,OAAOZ,EAAG,MAGrBY,EAAG,MAAM,WAAW,KAAKf,GACzBe,EAAG,MAAM,QAAQZ,EAAG,cAAc,KAAK,iBACvCY,EAAG,MAAM,UAAU,GAEnBA,EAAG,OAAO,QAAQZ,EAAG,cAAc,KAAK,iBACxCY,EAAG,OAAO,UAAU,GACpBA,EAAG,OAAO,WAAW,KAAKf,GAE1Be,EAAG,OAAO,YAAY,CAACG,MACnB,MAAMA,CAAG,IAAI,MAAMA,EAAI,QAAQ,KAAK,MAAMf,EAAG,aAAa,CAAC,CAAC;AAEhE,YAAMgB,IAAgB,CAAC,WAAW,WAAW,SAAS,GAChDC,IAAc,KAAK,OAAO,cAAc,SAASD,GACjDE,IAAWlB,EAAG,UAAU,iBAAiB,GAGzCmB,KAAiBnB,EAAG,UAAU,iBAAiB,CAAA,GAChD,IAAI,CAAC1D,GAAGL,MAAM;AACX,cAAMmF,IAAQ9E,GAAG;AACjB,eAAO;AAAA,UACH,OAAO8E,MAAU,MAAMA,KAAS,OAAO,SAAY,OAAOA,CAAK;AAAA,UAC/D,OAAO9E,GAAG,gBAAgB2E,EAAYhF,IAAIgF,EAAY,MAAM;AAAA,QAAA;AAAA,MAEpE,CAAC,EACA;AAAA,QACG,CAACrF,MAAmDA,EAAE,SAAS,QAAQ,CAAC,MAAMA,EAAE,KAAK;AAAA,MAAA,GAIvFyF,IAAc,CAACF,EAAc,UAAUD,KAAYC,EAAc,CAAC,EAAE,OAGpEG,IAAWH,EAAc,OAAO,CAACvF,GAAGK,GAAGsF,MACrCtF,MAAM,IAAU,KACboF,IAAczF,EAAE,QAAQ2F,EAAItF,IAAI,CAAC,EAAE,QAAQL,EAAE,QAAQ2F,EAAItF,IAAI,CAAC,EAAE,KAC1E,GAEKuF,IAAgBF,EAAS,SAASA,EAAS,IAAI,CAAC1F,MAAMA,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,GAC7E6F,IAAyBH,EAAS,SAClCA,EAAS,IAAI,CAAC1F,MAAMA,EAAE,KAAK,IAC3BqF,EAAY,MAAM,GAAG,CAAC,GAEtBS,IAAWF,IAAgBA,EAAc,SAAS,CAAC,KAAK;AAC9D,MAAAxB,EAAG,QAAQ,KAAK,IAAI0B,IAAWR,CAAQ,GAEvCN,EAAG,MAAMC,EAAI,MAAMK,GACnBN,EAAG,MAAMC,EAAI,MAAMa;AAGnB,YAAMC,KAAgBH,EACjB,IAAI,CAACJ,GAAOnF,MAAM;AACf,cAAM2F,IAAM,KAAK,IAAIR,IAAQF,CAAQ,IAAKlB,EAAG,OACvC6B,KAAQJ,EAAOxF,CAAC;AACtB,eAAO,CAAC2F,GAAKC,EAAK;AAAA,MACtB,CAAC,EACA,OAAO,CAAC,CAACjG,CAAC,MAAM,CAAC,MAAMA,CAAC,KAAKA,KAAK,CAAC;AAExC,MAAAiF,EAAI,SAAS,UAAU,QAAQ,IAAIhB,GAC/B8B,GAAc,WAAQd,EAAI,SAAS,UAAU,QAAQc,KACzDd,EAAI,UAAU,WAAW,KAAKhB,GAE9BgB,EAAI,UAAU,WAAW,MAAMhB,GAC/BgB,EAAI,UAAU,SAAS,KAAKhB,GAC5BgB,EAAI,UAAU,WAAW,MAAMhB;AAG/B,UAAIiC,KAAgBL,IAASA,EAAO,SAAS,CAAC;AAC9C,iBAAW,CAACxF,GAAGL,CAAC,KAAK4F,GAAe,QAAA,KAAa;AAI7C,YAHkBH,IACZzF,IAAKoE,EAAG,cACRpE,IAAKoE,EAAG,aACC;AACX,UAAA8B,KAAgBL,IAASxF,CAAC,KAAKwF,IAAS,CAAC;AACzC;AAAA,QACJ;AAEJ,MAAAb,EAAG,SAAS,UAAU,QAAQkB,IAC9BlB,EAAG,SAAS,QAAQ,KAAKf;AAEzB,YAAMkC,IAAe,KAAK,WAAW,IAAI/B,EAAG,KAAK,GAAG;AACpD,MAAI+B,MACAA,EAAa,MAAM,WAAW,OAAO,KAAKlC,CAAQ,IAAI,MACtDkC,EAAa,MAAM,WAAW,OAAO,MAAMlC,CAAQ,IAAI,MACvDkC,EAAa,MAAM,SAAS,OAAO,KAAK,sBAAsBlC,CAAQ,IAAI,MAC1EkC,EAAa,cAAc/B,EAAG,SAAS,KAI3CS,GAAQ,UAAUC,CAAM;AAAA,IAC5B;AAAA,EACJ;AAAA,EACA,eAAe;AACX,SAAK,WAAW,QAAQ,CAACX,GAAWM,MAAU;AAC1C,MAAAN,EAAU,QAAQ,QAAA,GAClBA,EAAU,SAAS,OAAA;AAAA,IACvB,CAAC,GACD,KAAK,WAAW,MAAA;AAAA,EACpB;AAAA,EAEA,cAAc;AACV,IAAK,KAAK,mBAEV,KAAK,WAAW,QAAQ,CAACA,GAAWM,MAAU;AAE1C,MADW,KAAK,SAAS,KAAK,CAACL,MAAOA,EAAG,UAAUK,CAAK,MAEpDN,EAAU,QAAQ,QAAA,GAClBA,EAAU,SAAS,OAAA,GACnB,KAAK,WAAW,OAAOM,CAAK;AAAA,IAEpC,CAAC,GAED,KAAK,SAAS,QAAQ,CAACL,MAAO;AAC1B,UAAI,KAAK,WAAW,IAAIA,EAAG,SAAS,EAAE,EAAG;AACzC,YAAMgC,IAAa,SAAS,cAAc,KAAK;AAC/C,MAAAA,EAAW,aAAa,SAAS,eAAe;AAChD,YAAMC,IAAW,SAAS,cAAc,IAAI;AAC5C,MAAAA,EAAS,MAAM,WAAW;AAC1B,YAAMC,IAAY,SAAS,cAAc,KAAK;AAC9C,MAAAA,EAAU,aAAa,QAAQlC,EAAG,SAAS,EAAE,GAC7CkC,EAAU,aAAa,SAAS,OAAO,GACvCA,EAAU;AAAA,QACN;AAAA,QACA,cAAc,KAAK,SAAS,iBAAiB,KAAK,UAAU,YAAY,KAAK,SAAS,aAAa,KAAK,UAAU;AAAA,MAAA,GAGtHF,EAAY,YAAYC,CAAQ,GAChCD,EAAY,YAAYE,CAAS,GACjC,KAAK,eAAgB,YAAYF,CAAU;AAE3C,YAAMG,IAAW/D,EAAQ,KAAK8D,GAAW,KAAK,OAAO,UAAU;AAC/D,WAAK,WAAW,IAAIlC,EAAG,SAAS,IAAI,EAAE,QAAQmC,GAAU,OAAOF,GAAU,SAASD,EAAA,CAAY;AAAA,IAClG,CAAC;AAAA,EACL;AAAA,EA8EA,SAAS;AACL,WAAOI;AAAAA;AAAAA;AAAAA,2CAG4B,KAAK,YAAY,YAAY,KAAK,eAAe;AAAA;AAAA,iDAE3C,KAAK,WAAW,SAAS,KAAK,WAAW,QAAQ;AAAA,uDAC3C,KAAK,WAAW,KAAK,IAAI,KAAK,WAAW,KAAK;AAAA;AAAA;AAAA,kCAGnE,KAAK,WAAW,QAAQ;AAAA,wCAClB,KAAK,kBAAkB;AAAA;AAAA,0BAErC,KAAK,WAAW,QAAQ;AAAA;AAAA;AAAA,sDAGI,CAAC,KAAK,SAAS,MAAM;AAAA;AAAA;AAAA;AAAA,EAIvE;AACJ;AAnjBM5D,EAkdK,SAAS6D;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAhdhBC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GADxB/D,EAEF,WAAA,aAAA,CAAA;AAGA8D,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAJxB/D,EAKF,WAAA,SAAA,CAAA;AAGQ8D,EAAA;AAAA,EADPE,EAAA;AAAM,GAPLhE,EAQM,WAAA,YAAA,CAAA;AAGA8D,EAAA;AAAA,EADPE,EAAA;AAAM,GAVLhE,EAWM,WAAA,cAAA,CAAA;AAKS8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAhBLhE,EAgBe,WAAA,gBAAA,CAAA;AACA8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAjBLhE,EAiBe,WAAA,mBAAA,CAAA;AACA8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAlBLhE,EAkBe,WAAA,sBAAA,CAAA;AAEkB8D,EAAA;AAAA,EAAlCG,GAAM,kBAAkB;AAAA,GApBvBjE,EAoBiC,WAAA,kBAAA,CAAA;AACR8D,EAAA;AAAA,EAA1BG,GAAM,UAAU;AAAA,GArBfjE,EAqByB,WAAA,WAAA,CAAA;AArBzBA,IAAN8D,EAAA;AAAA,EADCI,GAAc,qBAAiC;AAAA,GAC1ClE,CAAA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
1
+ {"version":3,"file":"widget-gauge.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../src/widget-gauge.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { html, css, LitElement, PropertyValueMap, PropertyValues } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { GaugeChartConfiguration, SectionColor } from './definition-schema.js'\n\nimport * as echarts from 'echarts/core'\nimport { TooltipComponent } from 'echarts/components'\nimport { GaugeChart, GaugeSeriesOption } from 'echarts/charts'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { EChartsOption, SeriesOption } from 'echarts'\n\necharts.use([TooltipComponent, GaugeChart, CanvasRenderer])\n\ntype Dataseries = Exclude<GaugeChartConfiguration['dataseries'], undefined>[number]\ntype Data = Exclude<Dataseries['data'], undefined>[number]\ntype Theme = {\n theme_name: string\n theme_object: any\n}\n\nexport\n@customElement('widget-gauge-versionplaceholder')\nclass WidgetGauge extends LitElement {\n @property({ type: Object })\n inputData?: GaugeChartConfiguration\n\n @property({ type: Object })\n theme?: Theme\n\n @state()\n private dataSets: Dataseries[] = []\n\n @state()\n private canvasList: Map<\n string,\n { echart?: echarts.ECharts; title?: HTMLHeadingElement; wrapper?: HTMLDivElement }\n > = new Map()\n\n @state() private themeBgColor?: string\n @state() private themeTitleColor?: string\n @state() private themeSubtitleColor?: string\n\n @query('.gauge-container') private gaugeContainer?: HTMLDivElement\n @query('.wrapper') private wrapper?: HTMLDivElement\n\n private resizeObserver: ResizeObserver\n\n boxes?: HTMLDivElement[]\n origWidth: number = 600\n origHeight: number = 350\n textContainerHeight: number = 36\n template: EChartsOption\n modifier: number = 1\n version: string = 'versionplaceholder'\n\n constructor() {\n super()\n this.resizeObserver = new ResizeObserver(() => {\n this.adjustSizes()\n this.applyData()\n })\n\n this.template = {\n series: [\n {\n type: 'gauge',\n startAngle: 180,\n endAngle: 0,\n min: 33,\n max: 99,\n radius: '140%',\n center: ['50%', '90%'],\n progress: {\n show: true,\n clip: true,\n width: 50,\n roundCap: false,\n itemStyle: {\n color: 'auto'\n }\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: { show: false },\n axisLabel: { show: false },\n anchor: { show: false },\n pointer: { show: false },\n detail: {\n valueAnimation: false,\n fontSize: 25,\n offsetCenter: [0, '-7%']\n },\n title: {\n text: 'Gauge A',\n offsetCenter: [0, '-35%'],\n fontSize: 20,\n show: true\n },\n data: [\n {\n value: 70,\n name: 'Value Name'\n }\n ]\n } as SeriesOption,\n {\n type: 'gauge',\n name: 'Gauge B',\n startAngle: 180,\n endAngle: 0,\n min: 33,\n max: 99,\n radius: '145%',\n center: ['50%', '90%'],\n axisLine: {\n lineStyle: {\n width: 20,\n color: [\n [0.2, '#67e0e3'],\n [0.8, '#37a2da'],\n [1, '#fd666d']\n ]\n }\n },\n axisTick: { show: false },\n splitLine: {\n length: 15,\n distance: -25,\n lineStyle: {\n width: 2,\n color: 'auto'\n }\n },\n\n axisLabel: {\n distance: -20,\n color: '#666',\n rotate: 'tangential',\n fontSize: 12\n }\n } as SeriesOption\n ]\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n }\n }\n\n update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if (changedProperties.has('inputData') && this.gaugeContainer) {\n this.transformData()\n this.setupCharts()\n }\n\n if (changedProperties.has('theme')) {\n this.registerTheme(this.theme)\n this.deleteCharts()\n this.transformData()\n this.setupCharts()\n this.adjustSizes()\n this.applyData()\n }\n super.update(changedProperties)\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('inputData') && this.gaugeContainer) {\n this.adjustSizes()\n this.applyData()\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if (this.wrapper) this.resizeObserver.observe(this.wrapper)\n this.registerTheme(this.theme)\n this.transformData()\n this.setupCharts()\n this.adjustSizes()\n this.applyData()\n }\n\n registerTheme(theme?: Theme) {\n const cssTextColor = getComputedStyle(this).getPropertyValue('--re-text-color').trim()\n const cssBgColor = getComputedStyle(this).getPropertyValue('--re-tile-background-color').trim()\n this.themeBgColor = cssBgColor || this.theme?.theme_object?.backgroundColor\n this.themeTitleColor = cssTextColor || this.theme?.theme_object?.title?.textStyle?.color\n this.themeSubtitleColor =\n cssTextColor || this.theme?.theme_object?.title?.subtextStyle?.color || this.themeTitleColor\n\n if (!theme || !theme.theme_object || !theme.theme_name) return\n\n // Filter out component keys that would trigger warnings about unregistered components\n const excludeKeys = [\n 'title',\n 'legend',\n 'toolbox',\n 'dataZoom',\n 'visualMap',\n 'timeline',\n 'geo',\n 'parallel',\n 'markPoint'\n ]\n const filteredTheme = Object.fromEntries(\n Object.entries(theme.theme_object).filter(([key]) => !excludeKeys.includes(key))\n )\n echarts.registerTheme(theme.theme_name, filteredTheme)\n }\n\n adjustSizes() {\n // if (!this.origHeight) return\n if (!this.gaugeContainer) return\n const userWidth = this.gaugeContainer.getBoundingClientRect().width\n const userHeight = this.gaugeContainer.getBoundingClientRect().height\n const count = this.dataSets.length\n\n const chartW = this.origWidth\n const chartH = this.origHeight\n if (!userHeight || !userWidth || !chartW || !chartH) return\n const fits = []\n for (let c = 1; c <= count; c++) {\n const r = Math.ceil(count / c)\n const netWidth = userWidth - 24 * (c - 1) // subtract the gaps between the charts\n const netHeight = userHeight - 24 * (r - 1)\n const m = netWidth / chartW / c // modifying factor to make it fit\n const size = m * m * chartW * chartH * count // screen space used by charts overall\n if (r * m * chartH <= netHeight) fits.push({ c, r, m, size, uwgap: netWidth, uhgap: netHeight })\n }\n\n for (let r = 1; r <= count; r++) {\n const c = Math.ceil(count / r)\n const netWidth = userWidth - 24 * (c - 1)\n const netHeight = userHeight - 24 * (r - 1)\n const m = netHeight / chartH / r\n const size = m * m * chartW * chartH * count\n if (c * m * chartW <= netWidth) fits.push({ c, r, m, size, uwgap: netWidth, uhgap: netHeight })\n }\n\n const maxSize = fits.reduce((p, c) => (c.size < p ? p : c.size), 0)\n const fit = fits.find((f) => f.size === maxSize)\n if (!fit) return\n const modifier = fit.m ?? 0\n\n // console.log(\n // 'FITS count',\n // userWidth,\n // count,\n // fit,\n // fits,\n // 'new size',\n // fit?.size.toFixed(0),\n // 'total space',\n // (userWidth * userHeight).toFixed(0),\n // this.boxes\n // )\n this.boxes = Array.from(this.gaugeContainer?.querySelectorAll('.chart') as NodeListOf<HTMLDivElement>)\n\n this.gaugeContainer.style.gridTemplateColumns = `repeat(${fit.c}, 1fr)`\n\n this.boxes?.forEach((box) =>\n box.setAttribute(\n 'style',\n `width:${modifier * chartW}px; height:${modifier * (chartH - this.textContainerHeight)}px`\n )\n )\n\n this.modifier = modifier\n\n this.canvasList.forEach((canvasObj) => {\n canvasObj.echart?.resize()\n })\n }\n\n async transformData() {\n // console.log('Transforming data', this.inputData?.dataseries)\n this.dataSets = []\n if (!this?.inputData) return\n this.inputData.dataseries\n ?.sort((a, b) => ((a.label ?? '') > (b.label ?? '') ? 1 : -1))\n .forEach((ds, idx) => {\n // pivot data\n const distincts = ds.multiChart\n ? ([...new Set(ds.data?.map((d: Data) => d.pivot))].sort() as string[])\n : ['']\n distincts.forEach((piv) => {\n const prefix = piv ?? ''\n let label = ds.label?.trim() ?? ''\n label = prefix + (!!prefix && !!label ? ' - ' : '') + label\n if (this.dataSets.some((ds) => ds.label === label)) label += ' ' + idx\n const pds: any = {\n label: label,\n unit: ds.unit,\n precision: ds.precision,\n advanced: ds.advanced,\n valueColor: ds.valueColor,\n sections: ds.sections,\n multiChart: ds.multiChart,\n value: ds.value,\n data: distincts.length === 1 ? ds.data : ds?.data?.filter((d) => d.pivot === piv)\n }\n this.dataSets.push(pds)\n })\n })\n }\n\n applyData() {\n if (!this.gaugeContainer) return\n const modifier = this.modifier\n this.dataSets.forEach((d) => {\n d.label ??= ''\n })\n\n this.dataSets.sort((a, b) => ((a.label as string) > (b.label as string) ? 1 : -1))\n\n for (const ds of this.dataSets) {\n // compute derivative values\n // filter latest values and calculate average\n ds.label ??= ''\n ds.advanced ??= {}\n if (typeof ds.advanced?.averageLatest !== 'number' || isNaN(ds.advanced?.averageLatest))\n ds.advanced.averageLatest = 1\n const data = ds?.data?.slice(-ds.advanced?.averageLatest || -1) ?? []\n if (!ds.multiChart) {\n ds.needleValue = ds.value as number\n } else {\n const values = (data?.map((d) => d.value)?.filter((p) => p !== undefined) ?? []) as number[]\n ds.needleValue = (values.reduce((p, c) => p + c, 0) / values.length) as number\n }\n ds.needleValue = isNaN(ds.needleValue as number)\n ? (ds.sections?.gaugeMinValue ?? 0)\n : ds.needleValue\n\n const echart = this.canvasList.get(ds.label)?.echart\n const option = echart?.getOption() ?? window.structuredClone(this.template)\n const seriesArr = option.series as GaugeSeriesOption[]\n const ga: any = seriesArr?.[0],\n ga2: any = seriesArr?.[1]\n\n // Needle\n // Check age of data Latency\n const tsp = Date.parse(ds?.data?.[0]?.tsp ?? '')\n if (isNaN(tsp)) {\n const now = new Date().getTime()\n if (now - tsp > (ds.advanced?.maxLatency ?? Infinity) * 1000) ds.needleValue = undefined\n }\n\n ga.data[0].value = ds.needleValue\n ga.data[0].name = ds.unit\n // unit style\n\n ga.title.fontSize = 32 * modifier\n ga.title.color = ds.valueColor || this.themeTitleColor\n ga.title.opacity = 1\n // value style\n ga.detail.color = ds.valueColor || this.themeTitleColor\n ga.detail.opacity = 1\n ga.detail.fontSize = 60 * modifier\n\n ga.detail.formatter = (val: number) =>\n isNaN(val) ? '-' : val.toFixed(Math.floor(ds.precision ?? 0))\n // Axis\n const defaultColors = ['#bf444c', '#d88273', '#f6efa6']\n const themeColors = this.theme?.theme_object?.color ?? defaultColors\n const gaugeMin = ds.sections?.gaugeMinValue ?? 0\n\n // Filter out entries with null/undefined/empty limits, keeping limits and colors in sync\n const validSections = (ds.sections?.sectionLimits ?? [])\n .map((l, i) => {\n const limit = l?.limit as string | number | null | undefined\n return {\n limit: limit === '' || limit == null ? undefined : Number(limit),\n color: l?.sectionColor || themeColors[i % themeColors.length]\n }\n })\n .filter(\n (s): s is { limit: number; color: SectionColor } => s.limit != null && !isNaN(s.limit)\n )\n\n // Determine ascending/descending based on gaugeMin vs first limit\n const isAscending = !validSections.length || gaugeMin <= validSections[0].limit\n\n // Filter to keep only sections that maintain monotonic order\n const sections = validSections.filter((s, i, arr) => {\n if (i === 0) return true\n return isAscending ? s.limit > arr[i - 1].limit : s.limit < arr[i - 1].limit\n })\n\n const sectionLimits = sections.length ? sections.map((s) => s.limit) : [40, 80, 100]\n const colors: SectionColor[] = sections.length\n ? sections.map((s) => s.color)\n : themeColors.slice(0, 3)\n\n const gaugeMax = sectionLimits?.[sectionLimits.length - 1] ?? 100\n ds.range = Math.abs(gaugeMax - gaugeMin)\n\n ga.min = ga2.min = gaugeMin\n ga.max = ga2.max = gaugeMax\n\n // percentages of the sections paired with the colors (must be strictly ascending for ECharts)\n const colorSections = sectionLimits\n .map((limit, i) => {\n const pct = Math.abs(limit - gaugeMin) / (ds.range as number)\n const color = colors[i]\n return [pct, color] as [number, SectionColor]\n })\n .filter(([s]) => !isNaN(s) && s >= 0)\n\n ga2.axisLine.lineStyle.width = 8 * modifier\n if (colorSections.length) ga2.axisLine.lineStyle.color = colorSections\n ga2.axisLabel.fontSize = 24 * modifier\n // ga2.axisLabel.color = ds.valueColor\n ga2.axisLabel.distance = -24 * modifier\n ga2.splitLine.length = 16 * modifier\n ga2.splitLine.distance = -16 * modifier\n\n // Progress\n let progressColor = colors?.[colors.length - 1]\n for (const [i, s] of sectionLimits?.entries() ?? []) {\n const inSection = isAscending\n ? s > (ds.needleValue as number)\n : s < (ds.needleValue as number)\n if (inSection) {\n progressColor = colors?.[i] ?? colors?.[0]\n break\n }\n }\n ga.progress.itemStyle.color = progressColor\n ga.progress.width = 60 * modifier\n\n const titleElement = this.canvasList.get(ds.label)?.title\n if (titleElement) {\n titleElement.style.fontSize = String(36 * modifier) + 'px'\n titleElement.style.maxWidth = String(550 * modifier) + 'px'\n titleElement.style.height = String(this.textContainerHeight * modifier) + 'px'\n titleElement.textContent = ds.label ?? ''\n }\n\n // Apply\n echart?.setOption(option)\n }\n }\n deleteCharts() {\n this.canvasList.forEach((canvasObj, label) => {\n canvasObj.echart?.dispose()\n canvasObj.wrapper?.remove()\n })\n this.canvasList.clear()\n }\n\n setupCharts() {\n if (!this.gaugeContainer) return\n // const { width, height } = this.gaugeContainer.getBoundingClientRect()\n // if (!width || !height) return\n // remove the gauge canvases of non provided data series\n // console.log(\n // 'Setting up charts',\n // this.dataSets,\n // this.canvasList,\n // this.gaugeContainer.getBoundingClientRect()\n // )\n this.canvasList.forEach((canvasObj, label) => {\n const ex = this.dataSets.find((ds) => ds.label === label)\n if (!ex) {\n canvasObj.echart?.dispose()\n canvasObj.wrapper?.remove()\n this.canvasList.delete(label)\n }\n })\n\n this.dataSets.forEach((ds) => {\n if (this.canvasList.has(ds.label ?? '')) return\n const newWrapper = document.createElement('div')\n newWrapper.setAttribute('class', 'chart-wrapper')\n const newTitle = document.createElement('h3')\n newTitle.style.fontSize = '20px'\n const newCanvas = document.createElement('div')\n newCanvas.setAttribute('name', ds.label ?? '')\n newCanvas.setAttribute('class', 'chart')\n newCanvas.setAttribute(\n 'style',\n `min-width: ${this.origWidth}px; min-height: ${this.origHeight}px; width: ${this.origWidth}px; height: ${this.origHeight}px;`\n )\n\n newWrapper!.appendChild(newTitle)\n newWrapper!.appendChild(newCanvas)\n this.gaugeContainer!.appendChild(newWrapper)\n const newChart = echarts.init(newCanvas, this.theme?.theme_name)\n this.canvasList.set(ds.label ?? '', { echart: newChart, title: newTitle, wrapper: newWrapper })\n })\n }\n\n static styles = css`\n :host {\n display: block;\n font-family: sans-serif;\n box-sizing: border-box;\n position: relative;\n margin: auto;\n container-type: size;\n }\n\n .paging:not([active]) {\n display: none !important;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n padding: 2cqh 2cqw;\n box-sizing: border-box;\n gap: 12px;\n }\n\n .chart-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n .gauge-container {\n display: grid;\n flex: 1;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n overflow: hidden;\n position: relative;\n gap: 24px;\n }\n\n header {\n display: flex;\n flex-direction: column;\n }\n h3 {\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 0.8;\n }\n\n .title {\n line-height: 1.5;\n }\n p {\n margin: 10px 0 0 0;\n max-width: 300px;\n font-size: 14px;\n line-height: 17px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .no-data {\n font-size: 20px;\n display: flex;\n height: 100%;\n width: 100%;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n `\n\n render() {\n return html`\n <div\n class=\"wrapper\"\n style=\"background-color: ${this.themeBgColor}; color: ${this.themeTitleColor}\"\n >\n <header class=\"paging\" ?active=${this.inputData?.title || this.inputData?.subTitle}>\n <h3 class=\"paging title\" ?active=${this.inputData?.title}>${this.inputData?.title}</h3>\n <p\n class=\"paging\"\n ?active=${this.inputData?.subTitle}\n style=\"color: ${this.themeSubtitleColor}\"\n >\n ${this.inputData?.subTitle}\n </p>\n </header>\n <div class=\"paging no-data\" ?active=${!this.dataSets.length}>No Data</div>\n <div class=\"gauge-container\"></div>\n </div>\n `\n }\n}\n"],"names":["t","e","s","o","n$3","r","n","i","S","c","h","a","l","p","d","u","f","b","y$1","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M","R","z","j","B","echarts","TooltipComponent","GaugeChart","CanvasRenderer","WidgetGauge","LitElement","changedProperties","_changedProperties","theme","cssTextColor","cssBgColor","excludeKeys","filteredTheme","key","userWidth","userHeight","count","chartW","chartH","fits","netWidth","netHeight","size","maxSize","fit","modifier","box","canvasObj","ds","idx","distincts","piv","prefix","label","pds","data","values","echart","option","seriesArr","ga","ga2","tsp","val","defaultColors","themeColors","gaugeMin","validSections","limit","isAscending","sections","arr","sectionLimits","colors","gaugeMax","colorSections","pct","color","progressColor","titleElement","newWrapper","newTitle","newCanvas","newChart","html","css","__decorateClass","property","state","query","customElement"],"mappings":";;;;AAKA,MAAMA,IAAE,YAAWC,IAAED,EAAE,eAAsBA,EAAE,aAAX,UAAqBA,EAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAUE,IAAE,uBAAM,GAAGC,KAAE,oBAAI;AAAO,IAAAC,KAAC,MAAO;AAAA,EAAC,YAAY,GAAE,GAAED,GAAE;AAAC,QAAG,KAAK,eAAa,IAAGA,MAAID,EAAE,OAAM,MAAM,mEAAmE;AAAE,SAAK,UAAQ,GAAE,KAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK;AAAE,UAAMA,IAAE,KAAK;AAAE,QAAGD,KAAY,MAAT,QAAW;AAAC,YAAMA,IAAWC,MAAT,UAAgBA,EAAE,WAAN;AAAa,MAAAD,MAAI,IAAEE,GAAE,IAAID,CAAC,IAAY,MAAT,YAAc,KAAK,IAAE,IAAE,IAAI,iBAAe,YAAY,KAAK,OAAO,GAAED,KAAGE,GAAE,IAAID,GAAE,CAAC;AAAA,IAAE;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC;AAAC,MAAMG,KAAE,CAAAL,MAAG,IAAIM,GAAY,OAAON,KAAjB,WAAmBA,IAAEA,IAAE,IAAG,QAAOE,CAAC,GAAEK,KAAE,CAACP,MAAKC,MAAI;AAAC,QAAME,IAAMH,EAAE,WAAN,IAAaA,EAAE,CAAC,IAAEC,EAAE,QAAQ,CAACA,GAAEC,GAAEC,MAAIF,KAAG,CAAAD,MAAG;AAAC,QAAQA,EAAE,iBAAP,GAAoB,QAAOA,EAAE;AAAQ,QAAa,OAAOA,KAAjB,SAAmB,QAAOA;AAAE,UAAM,MAAM,qEAAmEA,IAAE,sFAAsF;AAAA,EAAC,GAAGE,CAAC,IAAEF,EAAEG,IAAE,CAAC,IAAGH,EAAE,CAAC,CAAC;AAAE,SAAO,IAAIM,GAAEH,GAAEH,GAAEE,CAAC;AAAC,GAAEM,KAAE,CAAC,GAAEL,MAAI;AAAC,MAAGF,EAAE,GAAE,qBAAmBE,EAAE,KAAK,CAAAH,MAAGA,aAAa,gBAAcA,IAAEA,EAAE;MAAkB,YAAU,KAAKG,GAAE;AAAC,UAAMA,IAAE,SAAS,cAAc,OAAO,GAAEG,IAAEN,EAAE;AAAS,IAASM,MAAT,UAAYH,EAAE,aAAa,SAAQG,CAAC,GAAEH,EAAE,cAAY,EAAE,SAAQ,EAAE,YAAYA,CAAC;AAAA,EAAC;AAAC,GAAEM,KAAER,IAAE,CAAAD,MAAGA,IAAE,CAAAA,MAAGA,aAAa,iBAAe,OAAG;AAAC,MAAI,IAAE;AAAG,aAAUE,KAAK,EAAE,SAAS,MAAGA,EAAE;AAAQ,SAAOG,GAAE,CAAC;AAAC,GAAGL,CAAC,IAAEA;ACAxzC,MAAK,EAAC,IAAGO,IAAE,gBAAeN,IAAE,0BAAyBS,IAAE,qBAAoBL,IAAE,uBAAsBF,IAAE,gBAAeG,GAAC,IAAE,QAAOK,IAAE,YAAWF,KAAEE,EAAE,cAAaC,KAAEH,KAAEA,GAAE,cAAY,IAAGI,KAAEF,EAAE,gCAA+BG,IAAE,CAACd,GAAEE,MAAIF,GAAEe,IAAE,EAAC,YAAYf,GAAEE,GAAE;AAAC,UAAOA,GAAC;AAAA,IAAE,KAAK;AAAQ,MAAAF,IAAEA,IAAEY,KAAE;AAAK;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,MAAAZ,IAAQA,KAAN,OAAQA,IAAE,KAAK,UAAUA,CAAC;AAAA,EAAC;AAAC,SAAOA;AAAC,GAAE,cAAcA,GAAEE,GAAE;AAAC,MAAIK,IAAEP;AAAE,UAAOE;IAAG,KAAK;AAAQ,MAAAK,IAASP,MAAP;AAAS;AAAA,IAAM,KAAK;AAAO,MAAAO,IAASP,MAAP,OAAS,OAAK,OAAOA,CAAC;AAAE;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,UAAG;AAAC,QAAAO,IAAE,KAAK,MAAMP,CAAC;AAAA,MAAC,QAAS;AAAC,QAAAO,IAAE;AAAA,MAAI;AAAA,EAAC;AAAC,SAAOA;AAAC,EAAC,GAAES,IAAE,CAAChB,GAAEE,MAAI,CAACK,GAAEP,GAAEE,CAAC,GAAEe,KAAE,EAAC,WAAU,IAAG,MAAK,QAAO,WAAUF,GAAE,SAAQ,IAAG,YAAW,IAAG,YAAWC,EAAC;AAAE,OAAO,aAAW,uBAAO,UAAU,GAAEL,EAAE,wBAAsB,oBAAI;AAAO,IAAAO,IAAC,cAAgB,YAAW;AAAA,EAAC,OAAO,eAAe,GAAE;AAAC,SAAK,KAAI,IAAI,KAAK,MAAI,CAAA,GAAI,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,qBAAoB;AAAC,WAAO,KAAK,SAAQ,GAAG,KAAK,QAAM,CAAC,GAAG,KAAK,KAAK,KAAI,CAAE;AAAA,EAAC;AAAA,EAAC,OAAO,eAAe,GAAEhB,IAAEe,IAAE;AAAC,QAAGf,EAAE,UAAQA,EAAE,YAAU,KAAI,KAAK,KAAI,GAAG,KAAK,UAAU,eAAe,CAAC,OAAKA,IAAE,OAAO,OAAOA,CAAC,GAAG,UAAQ,KAAI,KAAK,kBAAkB,IAAI,GAAEA,CAAC,GAAE,CAACA,EAAE,YAAW;AAAC,YAAM,IAAE,uBAAM,GAAGQ,IAAE,KAAK,sBAAsB,GAAE,GAAER,CAAC;AAAE,MAASQ,MAAT,UAAYT,GAAE,KAAK,WAAU,GAAES,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,sBAAsB,GAAER,GAAE,GAAE;AAAC,UAAK,EAAC,KAAID,GAAE,KAAII,EAAC,IAAEK,GAAE,KAAK,WAAU,CAAC,KAAG,EAAC,MAAK;AAAC,aAAO,KAAKR,CAAC;AAAA,IAAC,GAAE,IAAIF,GAAE;AAAC,WAAKE,CAAC,IAAEF;AAAA,IAAC,EAAC;AAAE,WAAM,EAAC,KAAIC,GAAE,IAAIC,GAAE;AAAC,YAAMQ,IAAET,GAAG,KAAK,IAAI;AAAE,MAAAI,GAAG,KAAK,MAAKH,CAAC,GAAE,KAAK,cAAc,GAAEQ,GAAE,CAAC;AAAA,IAAC,GAAE,cAAa,IAAG,YAAW,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,mBAAmB,GAAE;AAAC,WAAO,KAAK,kBAAkB,IAAI,CAAC,KAAGO;AAAA,EAAC;AAAA,EAAC,OAAO,OAAM;AAAC,QAAG,KAAK,eAAeH,EAAE,mBAAmB,CAAC,EAAE;AAAO,UAAM,IAAER,GAAE,IAAI;AAAE,MAAE,SAAQ,GAAY,EAAE,MAAX,WAAe,KAAK,IAAE,CAAC,GAAG,EAAE,CAAC,IAAG,KAAK,oBAAkB,IAAI,IAAI,EAAE,iBAAiB;AAAA,EAAC;AAAA,EAAC,OAAO,WAAU;AAAC,QAAG,KAAK,eAAeQ,EAAE,WAAW,CAAC,EAAE;AAAO,QAAG,KAAK,YAAU,IAAG,KAAK,KAAI,GAAG,KAAK,eAAeA,EAAE,YAAY,CAAC,GAAE;AAAC,YAAMd,IAAE,KAAK,YAAWE,IAAE,CAAC,GAAGG,GAAEL,CAAC,GAAE,GAAGG,GAAEH,CAAC,CAAC;AAAE,iBAAUO,KAAKL,EAAE,MAAK,eAAeK,GAAEP,EAAEO,CAAC,CAAC;AAAA,IAAC;AAAC,UAAM,IAAE,KAAK,OAAO,QAAQ;AAAE,QAAU,MAAP,MAAS;AAAC,YAAML,IAAE,oBAAoB,IAAI,CAAC;AAAE,UAAYA,MAAT,OAAW,YAAS,CAACF,GAAEO,CAAC,KAAIL,EAAE,MAAK,kBAAkB,IAAIF,GAAEO,CAAC;AAAA,IAAC;AAAC,SAAK,OAAK,oBAAI;AAAI,eAAS,CAACP,GAAEE,CAAC,KAAI,KAAK,mBAAkB;AAAC,YAAMK,IAAE,KAAK,KAAKP,GAAEE,CAAC;AAAE,MAASK,MAAT,UAAY,KAAK,KAAK,IAAIA,GAAEP,CAAC;AAAA,IAAC;AAAC,SAAK,gBAAc,KAAK,eAAe,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,OAAO,eAAeE,GAAE;AAAC,UAAMK,IAAE,CAAA;AAAG,QAAG,MAAM,QAAQL,CAAC,GAAE;AAAC,YAAMD,IAAE,IAAI,IAAIC,EAAE,KAAK,KAAG,EAAE,QAAO,CAAE;AAAE,iBAAUA,KAAKD,EAAE,CAAAM,EAAE,QAAQP,GAAEE,CAAC,CAAC;AAAA,IAAC,MAAM,CAASA,MAAT,UAAYK,EAAE,KAAKP,GAAEE,CAAC,CAAC;AAAE,WAAOK;AAAA,EAAC;AAAA,EAAC,OAAO,KAAK,GAAEL,GAAE;AAAC,UAAM,IAAEA,EAAE;AAAU,WAAW,MAAL,KAAO,SAAiB,OAAO,KAAjB,WAAmB,IAAY,OAAO,KAAjB,WAAmB,EAAE,YAAW,IAAG;AAAA,EAAM;AAAA,EAAC,cAAa;AAAC,UAAK,GAAG,KAAK,OAAK,QAAO,KAAK,kBAAgB,IAAG,KAAK,aAAW,IAAG,KAAK,OAAK,MAAK,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,IAAI,SAAS,OAAG,KAAK,iBAAe,EAAC,GAAG,KAAK,OAAK,oBAAI,OAAI,KAAK,KAAI,GAAG,KAAK,cAAa,GAAG,KAAK,YAAY,GAAG,SAAS,OAAG,EAAE,IAAI,EAAC;AAAA,EAAE;AAAA,EAAC,cAAc,GAAE;AAAC,KAAC,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC,GAAW,KAAK,eAAd,UAA0B,KAAK,eAAa,EAAE,gBAAa;AAAA,EAAI;AAAA,EAAC,iBAAiB,GAAE;AAAC,SAAK,MAAM,OAAO,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,UAAM,IAAE,oBAAI,OAAIA,IAAE,KAAK,YAAY;AAAkB,eAAU,KAAKA,EAAE,KAAI,EAAG,MAAK,eAAe,CAAC,MAAI,EAAE,IAAI,GAAE,KAAK,CAAC,CAAC,GAAE,OAAO,KAAK,CAAC;AAAG,MAAE,OAAK,MAAI,KAAK,OAAK;AAAA,EAAE;AAAA,EAAC,mBAAkB;AAAC,UAAM,IAAE,KAAK,cAAY,KAAK,aAAa,KAAK,YAAY,iBAAiB;AAAE,WAAOA,GAAE,GAAE,KAAK,YAAY,aAAa,GAAE;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,SAAK,eAAa,KAAK,iBAAgB,GAAG,KAAK,eAAe,EAAE,GAAE,KAAK,MAAM,SAAS,OAAG,EAAE,gBAAa,EAAI;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,SAAK,MAAM,SAAS,OAAG,EAAE,qBAAoB;AAAA,EAAE;AAAA,EAAC,yBAAyB,GAAEA,GAAE,GAAE;AAAC,SAAK,KAAK,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEA,GAAE;AAAC,UAAM,IAAE,KAAK,YAAY,kBAAkB,IAAI,CAAC,GAAED,IAAE,KAAK,YAAY,KAAK,GAAE,CAAC;AAAE,QAAYA,MAAT,UAAiB,EAAE,YAAP,IAAe;AAAC,YAAMS,KAAY,EAAE,WAAW,gBAAtB,SAAkC,EAAE,YAAUK,GAAG,YAAYb,GAAE,EAAE,IAAI;AAAE,WAAK,OAAK,GAAQQ,KAAN,OAAQ,KAAK,gBAAgBT,CAAC,IAAE,KAAK,aAAaA,GAAES,CAAC,GAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,KAAK,GAAER,GAAE;AAAC,UAAM,IAAE,KAAK,aAAYD,IAAE,EAAE,KAAK,IAAI,CAAC;AAAE,QAAYA,MAAT,UAAY,KAAK,SAAOA,GAAE;AAAC,YAAMD,IAAE,EAAE,mBAAmBC,CAAC,GAAES,IAAc,OAAOV,EAAE,aAArB,aAA+B,EAAC,eAAcA,EAAE,UAAS,IAAWA,EAAE,WAAW,kBAAtB,SAAoCA,EAAE,YAAUe;AAAE,WAAK,OAAKd,GAAE,KAAKA,CAAC,IAAES,EAAE,cAAcR,GAAEF,EAAE,IAAI,KAAG,KAAK,MAAM,IAAIC,CAAC,KAAG,MAAK,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,cAAc,GAAEC,GAAE,GAAE;AAAC,QAAY,MAAT,QAAW;AAAC,YAAMD,IAAE,KAAK,aAAYS,IAAE,KAAK,CAAC;AAAE,UAAG,MAAIT,EAAE,mBAAmB,CAAC,GAAE,GAAG,EAAE,cAAYe,GAAGN,GAAER,CAAC,KAAG,EAAE,cAAY,EAAE,WAASQ,MAAI,KAAK,MAAM,IAAI,CAAC,KAAG,CAAC,KAAK,aAAaT,EAAE,KAAK,GAAE,CAAC,CAAC,GAAG;AAAO,WAAK,EAAE,GAAEC,GAAE,CAAC;AAAA,IAAC;AAAC,IAAK,KAAK,oBAAV,OAA4B,KAAK,OAAK,KAAK,KAAI;AAAA,EAAG;AAAA,EAAC,EAAE,GAAEA,GAAE,EAAC,YAAW,GAAE,SAAQD,GAAE,SAAQS,EAAC,GAAEL,GAAE;AAAC,SAAG,EAAE,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC,MAAI,KAAK,KAAK,IAAI,GAAEA,KAAGH,KAAG,KAAK,CAAC,CAAC,GAAOQ,MAAL,MAAiBL,MAAT,YAAc,KAAK,KAAK,IAAI,CAAC,MAAI,KAAK,cAAY,MAAIH,IAAE,SAAQ,KAAK,KAAK,IAAI,GAAEA,CAAC,IAAQD,MAAL,MAAQ,KAAK,SAAO,MAAI,KAAK,SAAO,oBAAI,OAAK,IAAI,CAAC;AAAA,EAAE;AAAA,EAAC,MAAM,OAAM;AAAC,SAAK,kBAAgB;AAAG,QAAG;AAAC,YAAM,KAAK;AAAA,IAAI,SAAOD,GAAE;AAAC,cAAQ,OAAOA,CAAC;AAAA,IAAC;AAAC,UAAM,IAAE,KAAK;AAAiB,WAAa,KAAN,QAAS,MAAM,GAAE,CAAC,KAAK;AAAA,EAAe;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK,cAAa;AAAA,EAAE;AAAA,EAAC,gBAAe;AAAC,QAAG,CAAC,KAAK,gBAAgB;AAAO,QAAG,CAAC,KAAK,YAAW;AAAC,UAAG,KAAK,eAAa,KAAK,iBAAgB,GAAG,KAAK,MAAK;AAAC,mBAAS,CAACA,GAAEE,CAAC,KAAI,KAAK,KAAK,MAAKF,CAAC,IAAEE;AAAE,aAAK,OAAK;AAAA,MAAM;AAAC,YAAMF,IAAE,KAAK,YAAY;AAAkB,UAAGA,EAAE,OAAK,EAAE,YAAS,CAACE,GAAEK,CAAC,KAAIP,GAAE;AAAC,cAAK,EAAC,SAAQA,EAAC,IAAEO,GAAEN,IAAE,KAAKC,CAAC;AAAE,QAAKF,MAAL,MAAQ,KAAK,KAAK,IAAIE,CAAC,KAAYD,MAAT,UAAY,KAAK,EAAEC,GAAE,QAAOK,GAAEN,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,IAAE;AAAG,UAAMC,IAAE,KAAK;AAAK,QAAG;AAAC,UAAE,KAAK,aAAaA,CAAC,GAAE,KAAG,KAAK,WAAWA,CAAC,GAAE,KAAK,MAAM,SAAS,CAAAF,MAAGA,EAAE,aAAU,EAAI,GAAG,KAAK,OAAOE,CAAC,KAAG,KAAK,KAAI;AAAA,IAAE,SAAOA,GAAE;AAAC,YAAM,IAAE,IAAG,KAAK,KAAI,GAAGA;AAAA,IAAC;AAAC,SAAG,KAAK,KAAKA,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,SAAK,MAAM,SAAS,CAAAF,MAAGA,EAAE,cAAW,EAAI,GAAG,KAAK,eAAa,KAAK,aAAW,IAAG,KAAK,aAAa,CAAC,IAAG,KAAK,QAAQ,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,oBAAI,OAAI,KAAK,kBAAgB;AAAA,EAAE;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,kBAAiB;AAAA,EAAE;AAAA,EAAC,oBAAmB;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,aAAa,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,GAAE;AAAC,SAAK,SAAO,KAAK,KAAK,SAAS,CAAAA,MAAG,KAAK,KAAKA,GAAE,KAAKA,CAAC,CAAC,EAAC,GAAG,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,QAAQ,GAAE;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAA,EAAC;AAAC;AAACmB,EAAE,gBAAc,CAAA,GAAGA,EAAE,oBAAkB,EAAC,MAAK,OAAM,GAAEA,EAAEL,EAAE,mBAAmB,CAAC,IAAE,oBAAI,OAAIK,EAAEL,EAAE,WAAW,CAAC,IAAE,oBAAI,OAAID,KAAI,EAAC,iBAAgBM,EAAC,CAAC,IAAGR,EAAE,4BAA0B,CAAA,GAAI,KAAK,OAAO;ACAjxL,MAACX,IAAE,YAAWO,IAAEP,EAAE,cAAaE,KAAEK,IAAEA,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAP,MAAGA,EAAC,CAAC,IAAE,QAAOC,KAAE,SAAQS,IAAE,OAAO,KAAK,OAAM,EAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,KAAIP,KAAE,MAAIO,GAAEJ,KAAE,IAAIH,EAAC,KAAIE,IAAE,UAASO,IAAE,MAAIP,EAAE,cAAc,EAAE,GAAEI,IAAE,CAAAT,MAAUA,MAAP,QAAoB,OAAOA,KAAjB,YAAgC,OAAOA,KAAnB,YAAqBW,IAAE,MAAM,SAAQI,KAAE,CAAAf,MAAGW,EAAEX,CAAC,KAAe,OAAOA,IAAI,OAAO,QAAQ,KAAtC,YAAwCc,IAAE;AAAA,QAAcE,IAAE,uDAAsDI,KAAE,QAAOC,KAAE,MAAKC,IAAE,OAAO,KAAKR,CAAC,qBAAqBA,CAAC,KAAKA,CAAC;AAAA,2BAAsC,GAAG,GAAED,KAAE,MAAKU,KAAE,MAAKC,KAAE,sCAAqCL,KAAE,CAAAnB,MAAG,CAACO,MAAKL,OAAK,EAAC,YAAWF,GAAE,SAAQO,GAAE,QAAOL,EAAC,IAAGuB,KAAEN,GAAE,CAAC,GAAgBO,IAAE,uBAAO,IAAI,cAAc,GAAEC,IAAE,uBAAO,IAAI,aAAa,GAAEC,KAAE,oBAAI,WAAQC,IAAExB,EAAE,iBAAiBA,GAAE,GAAG;AAAE,SAASyB,GAAE9B,GAAEO,GAAE;AAAC,MAAG,CAACI,EAAEX,CAAC,KAAG,CAACA,EAAE,eAAe,KAAK,EAAE,OAAM,MAAM,gCAAgC;AAAE,SAAgBE,OAAT,SAAWA,GAAE,WAAWK,CAAC,IAAEA;AAAC;AAAC,MAAMwB,KAAE,CAAC/B,GAAEO,MAAI;AAAC,QAAML,IAAEF,EAAE,SAAO,GAAEG,IAAE;AAAG,MAAI,GAAES,IAAML,MAAJ,IAAM,UAAYA,MAAJ,IAAM,WAAS,IAAGE,IAAEO;AAAE,WAAQT,IAAE,GAAEA,IAAEL,GAAEK,KAAI;AAAC,UAAML,IAAEF,EAAEO,CAAC;AAAE,QAAII,GAAEI,GAAED,IAAE,IAAGK,IAAE;AAAE,WAAKA,IAAEjB,EAAE,WAASO,EAAE,YAAUU,GAAEJ,IAAEN,EAAE,KAAKP,CAAC,GAASa,MAAP,QAAW,CAAAI,IAAEV,EAAE,WAAUA,MAAIO,IAAUD,EAAE,CAAC,MAAX,QAAaN,IAAEW,KAAWL,EAAE,CAAC,MAAZ,SAAcN,IAAEY,KAAWN,EAAE,CAAC,MAAZ,UAAeS,GAAE,KAAKT,EAAE,CAAC,CAAC,MAAI,IAAE,OAAO,OAAKA,EAAE,CAAC,GAAE,GAAG,IAAGN,IAAEa,KAAYP,EAAE,CAAC,MAAZ,WAAgBN,IAAEa,KAAGb,MAAIa,IAAQP,EAAE,CAAC,MAAT,OAAYN,IAAE,KAAGO,GAAEF,IAAE,MAAaC,EAAE,CAAC,MAAZ,SAAcD,IAAE,MAAIA,IAAEL,EAAE,YAAUM,EAAE,CAAC,EAAE,QAAOJ,IAAEI,EAAE,CAAC,GAAEN,IAAWM,EAAE,CAAC,MAAZ,SAAcO,IAAQP,EAAE,CAAC,MAAT,MAAWQ,KAAEV,MAAGJ,MAAIc,MAAGd,MAAII,KAAEJ,IAAEa,IAAEb,MAAIW,MAAGX,MAAIY,KAAEZ,IAAEO,KAAGP,IAAEa,GAAE,IAAE;AAAQ,UAAMG,IAAEhB,MAAIa,KAAGtB,EAAEO,IAAE,CAAC,EAAE,WAAW,IAAI,IAAE,MAAI;AAAG,IAAAK,KAAGH,MAAIO,IAAEd,IAAEI,KAAEQ,KAAG,KAAGX,EAAE,KAAKQ,CAAC,GAAET,EAAE,MAAM,GAAEY,CAAC,IAAEb,KAAEC,EAAE,MAAMY,CAAC,IAAEJ,IAAEe,KAAGvB,IAAEQ,KAAQI,MAAL,KAAOP,IAAEkB;AAAA,EAAE;AAAC,SAAM,CAACK,GAAE9B,GAAEY,KAAGZ,EAAEE,CAAC,KAAG,UAAYK,MAAJ,IAAM,WAAaA,MAAJ,IAAM,YAAU,GAAG,GAAEJ,CAAC;AAAC;AAAE,MAAM6B,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQ,GAAE,YAAW9B,EAAC,GAAEI,GAAE;AAAC,QAAI;AAAE,SAAK,QAAM,CAAA;AAAG,QAAIG,IAAE,GAAEE,IAAE;AAAE,UAAMI,IAAE,EAAE,SAAO,GAAED,IAAE,KAAK,OAAM,CAACE,GAAEI,CAAC,IAAEW,GAAE,GAAE7B,CAAC;AAAE,QAAG,KAAK,KAAG8B,EAAE,cAAchB,GAAEV,CAAC,GAAEuB,EAAE,cAAY,KAAK,GAAG,SAAY3B,MAAJ,KAAWA,MAAJ,GAAM;AAAC,YAAMF,IAAE,KAAK,GAAG,QAAQ;AAAW,MAAAA,EAAE,YAAY,GAAGA,EAAE,UAAU;AAAA,IAAC;AAAC,YAAa,IAAE6B,EAAE,gBAAZ,QAAyBf,EAAE,SAAOC,KAAG;AAAC,UAAO,EAAE,aAAN,GAAe;AAAC,YAAG,EAAE,gBAAgB,YAAUf,KAAK,EAAE,kBAAiB,EAAG,KAAGA,EAAE,SAASC,EAAC,GAAE;AAAC,gBAAMM,IAAEa,EAAET,GAAG,GAAET,IAAE,EAAE,aAAaF,CAAC,EAAE,MAAMU,CAAC,GAAET,IAAE,eAAe,KAAKM,CAAC;AAAE,UAAAO,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,GAAE,MAAKR,EAAE,CAAC,GAAE,SAAQC,GAAE,MAAWD,EAAE,CAAC,MAAT,MAAWgC,KAAQhC,EAAE,CAAC,MAAT,MAAWiC,KAAQjC,EAAE,CAAC,MAAT,MAAWkC,KAAEC,EAAC,CAAC,GAAE,EAAE,gBAAgBpC,CAAC;AAAA,QAAC,MAAM,CAAAA,EAAE,WAAWU,CAAC,MAAII,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC,GAAE,EAAE,gBAAgBT,CAAC;AAAG,YAAGwB,GAAE,KAAK,EAAE,OAAO,GAAE;AAAC,gBAAMxB,IAAE,EAAE,YAAY,MAAMU,CAAC,GAAER,IAAEF,EAAE,SAAO;AAAE,cAAGE,IAAE,GAAE;AAAC,cAAE,cAAYK,IAAEA,EAAE,cAAY;AAAG,qBAAQA,IAAE,GAAEA,IAAEL,GAAEK,IAAI,GAAE,OAAOP,EAAEO,CAAC,GAAEK,EAAC,CAAE,GAAEiB,EAAE,SAAQ,GAAGf,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAEL,EAAC,CAAC;AAAE,cAAE,OAAOT,EAAEE,CAAC,GAAEU,GAAG;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAa,EAAE,aAAN,EAAe,KAAG,EAAE,SAAOT,GAAE,CAAAW,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC;AAAA,WAAM;AAAC,YAAIT,IAAE;AAAG,gBAAWA,IAAE,EAAE,KAAK,QAAQU,GAAEV,IAAE,CAAC,OAA5B,KAAgC,CAAAc,EAAE,KAAK,EAAC,MAAK,GAAE,OAAML,EAAC,CAAC,GAAET,KAAGU,EAAE,SAAO;AAAA,MAAC;AAAC,MAAAD;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAEF,GAAE;AAAC,UAAML,IAAEG,EAAE,cAAc,UAAU;AAAE,WAAOH,EAAE,YAAU,GAAEA;AAAA,EAAC;AAAC;AAAC,SAASM,EAAER,GAAEO,GAAEL,IAAEF,GAAEC,GAAE;AAAC,MAAGM,MAAImB,EAAE,QAAOnB;AAAE,MAAIG,IAAWT,MAAT,SAAWC,EAAE,OAAOD,CAAC,IAAEC,EAAE;AAAK,QAAMC,IAAEM,EAAEF,CAAC,IAAE,SAAOA,EAAE;AAAgB,SAAOG,GAAG,gBAAcP,MAAIO,GAAG,OAAO,EAAE,GAAWP,MAAT,SAAWO,IAAE,UAAQA,IAAE,IAAIP,EAAEH,CAAC,GAAEU,EAAE,KAAKV,GAAEE,GAAED,CAAC,IAAYA,MAAT,UAAYC,EAAE,SAAO,CAAA,GAAID,CAAC,IAAES,IAAER,EAAE,OAAKQ,IAAYA,MAAT,WAAaH,IAAEC,EAAER,GAAEU,EAAE,KAAKV,GAAEO,EAAE,MAAM,GAAEG,GAAET,CAAC,IAAGM;AAAC;AAAC,MAAM8B,GAAC;AAAA,EAAC,YAAY,GAAE9B,GAAE;AAAC,SAAK,OAAK,CAAA,GAAG,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAE,GAAE;AAAC,UAAK,EAAC,IAAG,EAAC,SAAQA,EAAC,GAAE,OAAML,EAAC,IAAE,KAAK,MAAKD,KAAG,GAAG,iBAAeI,GAAG,WAAWE,GAAE,EAAE;AAAE,IAAAsB,EAAE,cAAY5B;AAAE,QAAIS,IAAEmB,EAAE,SAAQ,GAAG,IAAE,GAAEvB,IAAE,GAAEM,IAAEV,EAAE,CAAC;AAAE,WAAcU,MAAT,UAAY;AAAC,UAAG,MAAIA,EAAE,OAAM;AAAC,YAAIL;AAAE,QAAIK,EAAE,SAAN,IAAWL,IAAE,IAAI+B,EAAE5B,GAAEA,EAAE,aAAY,MAAK,CAAC,IAAME,EAAE,SAAN,IAAWL,IAAE,IAAIK,EAAE,KAAKF,GAAEE,EAAE,MAAKA,EAAE,SAAQ,MAAK,CAAC,IAAMA,EAAE,SAAN,MAAaL,IAAE,IAAIgC,GAAE7B,GAAE,MAAK,CAAC,IAAG,KAAK,KAAK,KAAKH,CAAC,GAAEK,IAAEV,EAAE,EAAEI,CAAC;AAAA,MAAC;AAAC,YAAIM,GAAG,UAAQF,IAAEmB,EAAE,SAAQ,GAAG;AAAA,IAAI;AAAC,WAAOA,EAAE,cAAYxB,GAAEJ;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIM,IAAE;AAAE,eAAUL,KAAK,KAAK,MAAcA,iBAAaA,EAAE,YAAX,UAAoBA,EAAE,KAAK,GAAEA,GAAEK,CAAC,GAAEA,KAAGL,EAAE,QAAQ,SAAO,KAAGA,EAAE,KAAK,EAAEK,CAAC,CAAC,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAM+B,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,MAAM,QAAM,KAAK;AAAA,EAAI;AAAA,EAAC,YAAY,GAAE/B,GAAEL,GAAED,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK0B,GAAE,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKpB,GAAE,KAAK,OAAKL,GAAE,KAAK,UAAQD,GAAE,KAAK,OAAKA,GAAG,eAAa;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK,KAAK;AAAW,UAAMM,IAAE,KAAK;AAAK,WAAgBA,MAAT,UAAiB,GAAG,aAAR,OAAmB,IAAEA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEA,IAAE,MAAK;AAAC,QAAEC,EAAE,MAAK,GAAED,CAAC,GAAEE,EAAE,CAAC,IAAE,MAAIkB,KAAS,KAAN,QAAc,MAAL,MAAQ,KAAK,SAAOA,KAAG,KAAK,KAAI,GAAG,KAAK,OAAKA,KAAG,MAAI,KAAK,QAAM,MAAID,KAAG,KAAK,EAAE,CAAC,IAAW,EAAE,eAAX,SAAsB,KAAK,EAAE,CAAC,IAAW,EAAE,aAAX,SAAoB,KAAK,EAAE,CAAC,IAAEX,GAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,WAAO,KAAK,KAAK,WAAW,aAAa,GAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAO,MAAI,KAAK,QAAO,KAAK,OAAK,KAAK,EAAE,CAAC;AAAA,EAAE;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAOY,KAAGlB,EAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAK,IAAE,KAAK,EAAEJ,EAAE,eAAe,CAAC,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAK,EAAC,QAAOE,GAAE,YAAWL,EAAC,IAAE,GAAED,IAAY,OAAOC,KAAjB,WAAmB,KAAK,KAAK,CAAC,KAAYA,EAAE,OAAX,WAAgBA,EAAE,KAAG8B,EAAE,cAAcF,GAAE5B,EAAE,GAAEA,EAAE,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,IAAGA;AAAG,QAAG,KAAK,MAAM,SAAOD,EAAE,MAAK,KAAK,EAAEM,CAAC;AAAA,SAAM;AAAC,YAAMP,IAAE,IAAIqC,GAAEpC,GAAE,IAAI,GAAEC,IAAEF,EAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,EAAE,EAAEO,CAAC,GAAE,KAAK,EAAEL,CAAC,GAAE,KAAK,OAAKF;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,QAAIO,IAAEqB,GAAE,IAAI,EAAE,OAAO;AAAE,WAAgBrB,MAAT,UAAYqB,GAAE,IAAI,EAAE,SAAQrB,IAAE,IAAIyB,EAAE,CAAC,CAAC,GAAEzB;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,IAAAI,EAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAA,GAAG,KAAK;AAAQ,UAAMJ,IAAE,KAAK;AAAK,QAAIL,GAAED,IAAE;AAAE,eAAUS,KAAK,EAAE,CAAAT,MAAIM,EAAE,SAAOA,EAAE,KAAKL,IAAE,IAAIoC,EAAE,KAAK,EAAE1B,GAAG,GAAE,KAAK,EAAEA,EAAC,CAAE,GAAE,MAAK,KAAK,OAAO,CAAC,IAAEV,IAAEK,EAAEN,CAAC,GAAEC,EAAE,KAAKQ,CAAC,GAAET;AAAI,IAAAA,IAAEM,EAAE,WAAS,KAAK,KAAKL,KAAGA,EAAE,KAAK,aAAYD,CAAC,GAAEM,EAAE,SAAON;AAAA,EAAE;AAAA,EAAC,KAAK,IAAE,KAAK,KAAK,aAAYM,GAAE;AAAC,SAAI,KAAK,OAAO,IAAG,IAAGA,CAAC,GAAE,KAAG,MAAI,KAAK,QAAM;AAAC,YAAM,IAAE,EAAE;AAAY,QAAE,OAAM,GAAG,IAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,IAAS,KAAK,SAAd,WAAqB,KAAK,OAAK,GAAE,KAAK,OAAO,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM6B,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,YAAY,GAAE7B,GAAEL,GAAED,GAAES,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAKiB,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQ,GAAE,KAAK,OAAKpB,GAAE,KAAK,OAAKN,GAAE,KAAK,UAAQS,GAAER,EAAE,SAAO,KAAQA,EAAE,CAAC,MAAR,MAAgBA,EAAE,CAAC,MAAR,MAAW,KAAK,OAAK,MAAMA,EAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQA,KAAG,KAAK,OAAKyB;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEpB,IAAE,MAAKL,GAAED,GAAE;AAAC,UAAMS,IAAE,KAAK;AAAQ,QAAI,IAAE;AAAG,QAAYA,MAAT,OAAW,KAAEF,EAAE,MAAK,GAAED,GAAE,CAAC,GAAE,IAAE,CAACE,EAAE,CAAC,KAAG,MAAI,KAAK,QAAM,MAAIiB,GAAE,MAAI,KAAK,OAAK;AAAA,SAAO;AAAC,YAAMzB,IAAE;AAAE,UAAIK,GAAED;AAAE,WAAI,IAAEK,EAAE,CAAC,GAAEJ,IAAE,GAAEA,IAAEI,EAAE,SAAO,GAAEJ,IAAI,CAAAD,IAAEG,EAAE,MAAKP,EAAEC,IAAEI,CAAC,GAAEC,GAAED,CAAC,GAAED,MAAIqB,MAAIrB,IAAE,KAAK,KAAKC,CAAC,IAAG,MAAI,CAACG,EAAEJ,CAAC,KAAGA,MAAI,KAAK,KAAKC,CAAC,GAAED,MAAIsB,IAAE,IAAEA,IAAE,MAAIA,MAAI,MAAItB,KAAG,MAAIK,EAAEJ,IAAE,CAAC,IAAG,KAAK,KAAKA,CAAC,IAAED;AAAA,IAAC;AAAC,SAAG,CAACJ,KAAG,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAI0B,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAK,KAAG,EAAE;AAAA,EAAC;AAAC;AAAC,MAAMM,WAAUG,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,KAAK,IAAI,IAAE,MAAIT,IAAE,SAAO;AAAA,EAAC;AAAC;AAAC,MAAMO,WAAUE,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,gBAAgB,KAAK,MAAK,CAAC,CAAC,KAAG,MAAIT,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMQ,WAAUC,EAAC;AAAA,EAAC,YAAY,GAAE7B,GAAEL,GAAED,GAAES,GAAE;AAAC,UAAM,GAAEH,GAAEL,GAAED,GAAES,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEH,IAAE,MAAK;AAAC,SAAI,IAAEC,EAAE,MAAK,GAAED,GAAE,CAAC,KAAGoB,OAAKD,EAAE;AAAO,UAAMxB,IAAE,KAAK,MAAKD,IAAE,MAAI0B,KAAGzB,MAAIyB,KAAG,EAAE,YAAUzB,EAAE,WAAS,EAAE,SAAOA,EAAE,QAAM,EAAE,YAAUA,EAAE,SAAQQ,IAAE,MAAIiB,MAAIzB,MAAIyB,KAAG1B;AAAG,IAAAA,KAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKC,CAAC,GAAEQ,KAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAK,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,IAAY,OAAO,KAAK,QAAxB,aAA6B,KAAK,KAAK,KAAK,KAAK,SAAS,QAAM,KAAK,SAAQ,CAAC,IAAE,KAAK,KAAK,YAAY,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM6B,GAAC;AAAA,EAAC,YAAY,GAAEhC,GAAEL,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKK,GAAE,KAAK,UAAQL;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE;AAAC,IAAAM,EAAE,MAAK,CAAC;AAAA,EAAC;AAAC;AAAM,MAA6DgC,KAAExC,EAAE;AAAuBwC,KAAIR,GAAEM,CAAC,IAAGtC,EAAE,oBAAkB,CAAA,GAAI,KAAK,OAAO;AAAE,MAAMyC,KAAE,CAACzC,GAAEO,GAAEL,MAAI;AAAC,QAAMD,IAAEC,GAAG,gBAAcK;AAAE,MAAIG,IAAET,EAAE;AAAW,MAAYS,MAAT,QAAW;AAAC,UAAMV,IAAEE,GAAG,gBAAc;AAAK,IAAAD,EAAE,aAAWS,IAAE,IAAI4B,EAAE/B,EAAE,aAAaK,EAAC,GAAGZ,CAAC,GAAEA,GAAE,QAAOE,KAAG,CAAA,CAAE;AAAA,EAAC;AAAC,SAAOQ,EAAE,KAAKV,CAAC,GAAEU;AAAC;ACA16N,MAAMR,IAAE;AAAW,MAAMK,UAAUP,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,gBAAc,EAAC,MAAK,KAAI,GAAE,KAAK,OAAK;AAAA,EAAM;AAAA,EAAC,mBAAkB;AAAC,UAAM,IAAE,MAAM,iBAAgB;AAAG,WAAO,KAAK,cAAc,iBAAe,EAAE,YAAW;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE;AAAC,UAAMK,IAAE,KAAK,OAAM;AAAG,SAAK,eAAa,KAAK,cAAc,cAAY,KAAK,cAAa,MAAM,OAAO,CAAC,GAAE,KAAK,OAAKJ,GAAEI,GAAE,KAAK,YAAW,KAAK,aAAa;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,UAAM,kBAAiB,GAAG,KAAK,MAAM,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,UAAM,qBAAoB,GAAG,KAAK,MAAM,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOA;AAAAA,EAAC;AAAC;AAACE,EAAE,gBAAc,IAAGA,EAAE,YAAa,IAAGL,EAAE,2BAA2B,EAAC,YAAWK,EAAC,CAAC;AAAE,MAAMJ,KAAED,EAAE;AAA0BC,KAAI,EAAC,YAAWI,EAAC,CAAC;AAAA,CAAwDL,EAAE,uBAAqB,IAAI,KAAK,OAAO;ACA/xB,MAAMF,KAAE,CAAAA,MAAG,CAACC,GAAEE,MAAI;EAAUA,eAAEA,EAAE,gBAAgB,MAAI;AAAC,mBAAe,OAAOH,GAAEC,CAAC;AAAA,EAAC,EAAC,IAAG,eAAe,OAAOD,GAAEC,CAAC;AAAC;ACA1G,MAAME,KAAE,EAAC,WAAU,IAAG,MAAK,QAAO,WAAUH,GAAE,SAAQ,IAAG,YAAWC,EAAC,GAAEI,KAAE,CAACL,IAAEG,IAAEF,GAAEI,MAAI;AAAC,QAAK,EAAC,MAAKC,GAAE,UAASC,EAAC,IAAEF;AAAE,MAAIH,IAAE,WAAW,oBAAoB,IAAIK,CAAC;AAAE,MAAYL,MAAT,UAAY,WAAW,oBAAoB,IAAIK,GAAEL,IAAE,oBAAI,KAAG,GAAaI,MAAX,cAAgBN,IAAE,OAAO,OAAOA,CAAC,GAAG,UAAQ,KAAIE,EAAE,IAAIG,EAAE,MAAKL,CAAC,GAAeM,MAAb,YAAe;AAAC,UAAK,EAAC,MAAK,EAAC,IAAED;AAAE,WAAM,EAAC,IAAIA,GAAE;AAAC,YAAMC,IAAEL,EAAE,IAAI,KAAK,IAAI;AAAE,MAAAA,EAAE,IAAI,KAAK,MAAKI,CAAC,GAAE,KAAK,cAAc,GAAEC,GAAEN,CAAC;AAAA,IAAC,GAAE,KAAKC,GAAE;AAAC,aAAgBA,MAAT,UAAY,KAAK,EAAE,GAAE,QAAOD,GAAEC,CAAC,GAAEA;AAAA,IAAC,EAAC;AAAA,EAAC;AAAC,MAAcK,MAAX,UAAa;AAAC,UAAK,EAAC,MAAK,EAAC,IAAED;AAAE,WAAO,SAASA,GAAE;AAAC,YAAMC,IAAE,KAAK,CAAC;AAAE,MAAAL,EAAE,KAAK,MAAKI,CAAC,GAAE,KAAK,cAAc,GAAEC,GAAEN,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAM,MAAM,qCAAmCM,CAAC;AAAC;AAAE,SAASA,EAAEN,GAAE;AAAC,SAAM,CAACC,GAAEE,MAAc,OAAOA,KAAjB,WAAmBE,GAAEL,GAAEC,GAAEE,CAAC,KAAG,CAACH,GAAEC,GAAEE,MAAI;AAAC,UAAME,IAAEJ,EAAE,eAAeE,CAAC;AAAE,WAAOF,EAAE,YAAY,eAAeE,GAAEH,CAAC,GAAEK,IAAE,OAAO,yBAAyBJ,GAAEE,CAAC,IAAE;AAAA,EAAM,GAAGH,GAAEC,GAAEE,CAAC;AAAC;ACAlyB,SAASE,EAAEA,GAAE;AAAC,SAAOL,EAAE,EAAC,GAAGK,GAAE,OAAM,IAAG,WAAU,GAAE,CAAC;AAAC;ACAvD,MAAMJ,KAAE,CAACA,GAAE,GAAEQ,OAAKA,EAAE,eAAa,IAAGA,EAAE,aAAW,IAAG,QAAQ,YAAoB,OAAO,KAAjB,YAAoB,OAAO,eAAeR,GAAE,GAAEQ,CAAC,GAAEA;ACApH,SAASR,GAAEA,GAAEI,GAAE;AAAC,SAAM,CAACC,GAAEJ,GAAEK,MAAI;AAAC,UAAMJ,IAAE,CAAAH,MAAGA,EAAE,YAAY,cAAcC,CAAC,KAAG;AAAwP,WAAOD,GAAEM,GAAEJ,GAAE,EAAC,MAAK;AAAC,aAAOC,EAAE,IAAI;AAAA,IAAC,EAAC,CAAC;AAAA,EAAC;AAAC;;;;;;ACK5WuC,EAAQ,IAAI,CAACC,IAAkBC,IAAYC,EAAc,CAAC;AAW1D,IAAMC,IAAN,cAA0BC,EAAW;AAAA,EAiCjC,cAAc;AACV,UAAA,GA1BJ,KAAQ,WAAyB,CAAA,GAGjC,KAAQ,iCAGA,IAAA,GAYR,KAAA,YAAoB,KACpB,KAAA,aAAqB,KACrB,KAAA,sBAA8B,IAE9B,KAAA,WAAmB,GACnB,KAAA,UAAkB,UAId,KAAK,iBAAiB,IAAI,eAAe,MAAM;AAC3C,WAAK,YAAA,GACL,KAAK,UAAA;AAAA,IACT,CAAC,GAED,KAAK,WAAW;AAAA,MACZ,QAAQ;AAAA,QACJ;AAAA,UACI,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,UAAU;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,YACP,UAAU;AAAA,YACV,WAAW;AAAA,cACP,OAAO;AAAA,YAAA;AAAA,UACX;AAAA,UAEJ,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,WAAW,EAAE,MAAM,GAAA;AAAA,UACnB,WAAW,EAAE,MAAM,GAAA;AAAA,UACnB,QAAQ,EAAE,MAAM,GAAA;AAAA,UAChB,SAAS,EAAE,MAAM,GAAA;AAAA,UACjB,QAAQ;AAAA,YACJ,gBAAgB;AAAA,YAChB,UAAU;AAAA,YACV,cAAc,CAAC,GAAG,KAAK;AAAA,UAAA;AAAA,UAE3B,OAAO;AAAA,YACH,MAAM;AAAA,YACN,cAAc,CAAC,GAAG,MAAM;AAAA,YACxB,UAAU;AAAA,YACV,MAAM;AAAA,UAAA;AAAA,UAEV,MAAM;AAAA,YACF;AAAA,cACI,OAAO;AAAA,cACP,MAAM;AAAA,YAAA;AAAA,UACV;AAAA,QACJ;AAAA,QAEJ;AAAA,UACI,MAAM;AAAA,UACN,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,UAAU;AAAA,YACN,WAAW;AAAA,cACP,OAAO;AAAA,cACP,OAAO;AAAA,gBACH,CAAC,KAAK,SAAS;AAAA,gBACf,CAAC,KAAK,SAAS;AAAA,gBACf,CAAC,GAAG,SAAS;AAAA,cAAA;AAAA,YACjB;AAAA,UACJ;AAAA,UAEJ,UAAU,EAAE,MAAM,GAAA;AAAA,UAClB,WAAW;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,WAAW;AAAA,cACP,OAAO;AAAA,cACP,OAAO;AAAA,YAAA;AAAA,UACX;AAAA,UAGJ,WAAW;AAAA,YACP,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,UAAA;AAAA,QACd;AAAA,MACJ;AAAA,IACJ;AAAA,EAER;AAAA,EAEA,uBAAuB;AACnB,UAAM,qBAAA,GACF,KAAK,kBACL,KAAK,eAAe,WAAA;AAAA,EAE5B;AAAA,EAEA,OAAOC,GAA4E;AAC/E,IAAIA,EAAkB,IAAI,WAAW,KAAK,KAAK,mBAC3C,KAAK,cAAA,GACL,KAAK,YAAA,IAGLA,EAAkB,IAAI,OAAO,MAC7B,KAAK,cAAc,KAAK,KAAK,GAC7B,KAAK,aAAA,GACL,KAAK,cAAA,GACL,KAAK,YAAA,GACL,KAAK,YAAA,GACL,KAAK,UAAA,IAET,MAAM,OAAOA,CAAiB;AAAA,EAClC;AAAA,EAEU,QAAQA,GAAyC;AACvD,IAAIA,EAAkB,IAAI,WAAW,KAAK,KAAK,mBAC3C,KAAK,YAAA,GACL,KAAK,UAAA;AAAA,EAEb;AAAA,EAEU,aAAaC,GAA6E;AAChG,IAAI,KAAK,WAAS,KAAK,eAAe,QAAQ,KAAK,OAAO,GAC1D,KAAK,cAAc,KAAK,KAAK,GAC7B,KAAK,cAAA,GACL,KAAK,YAAA,GACL,KAAK,YAAA,GACL,KAAK,UAAA;AAAA,EACT;AAAA,EAEA,cAAcC,GAAe;AACzB,UAAMC,IAAe,iBAAiB,IAAI,EAAE,iBAAiB,iBAAiB,EAAE,KAAA,GAC1EC,IAAa,iBAAiB,IAAI,EAAE,iBAAiB,4BAA4B,EAAE,KAAA;AAMzF,QALA,KAAK,eAAeA,KAAc,KAAK,OAAO,cAAc,iBAC5D,KAAK,kBAAkBD,KAAgB,KAAK,OAAO,cAAc,OAAO,WAAW,OACnF,KAAK,qBACDA,KAAgB,KAAK,OAAO,cAAc,OAAO,cAAc,SAAS,KAAK,iBAE7E,CAACD,KAAS,CAACA,EAAM,gBAAgB,CAACA,EAAM,WAAY;AAGxD,UAAMG,IAAc;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAEEC,IAAgB,OAAO;AAAA,MACzB,OAAO,QAAQJ,EAAM,YAAY,EAAE,OAAO,CAAC,CAACK,CAAG,MAAM,CAACF,EAAY,SAASE,CAAG,CAAC;AAAA,IAAA;AAEnF,IAAAb,EAAQ,cAAcQ,EAAM,YAAYI,CAAa;AAAA,EACzD;AAAA,EAEA,cAAc;AAEV,QAAI,CAAC,KAAK,eAAgB;AAC1B,UAAME,IAAY,KAAK,eAAe,sBAAA,EAAwB,OACxDC,IAAa,KAAK,eAAe,sBAAA,EAAwB,QACzDC,IAAQ,KAAK,SAAS,QAEtBC,IAAS,KAAK,WACdC,IAAS,KAAK;AACpB,QAAI,CAACH,KAAc,CAACD,KAAa,CAACG,KAAU,CAACC,EAAQ;AACrD,UAAMC,IAAO,CAAA;AACb,aAASpD,IAAI,GAAGA,KAAKiD,GAAOjD,KAAK;AAC7B,YAAMJ,IAAI,KAAK,KAAKqD,IAAQjD,CAAC,GACvBqD,IAAWN,IAAY,MAAM/C,IAAI,IACjCsD,IAAYN,IAAa,MAAMpD,IAAI,IACnCiB,IAAIwC,IAAWH,IAASlD,GACxBuD,IAAO1C,IAAIA,IAAIqC,IAASC,IAASF;AACvC,MAAIrD,IAAIiB,IAAIsC,KAAUG,OAAgB,KAAK,EAAE,GAAAtD,GAAG,GAAAJ,GAAG,GAAAiB,GAAG,MAAA0C,GAAM,OAAOF,GAAU,OAAOC,GAAW;AAAA,IACnG;AAEA,aAAS1D,IAAI,GAAGA,KAAKqD,GAAOrD,KAAK;AAC7B,YAAMI,IAAI,KAAK,KAAKiD,IAAQrD,CAAC,GACvByD,IAAWN,IAAY,MAAM/C,IAAI,IACjCsD,IAAYN,IAAa,MAAMpD,IAAI,IACnCiB,IAAIyC,IAAYH,IAASvD,GACzB2D,IAAO1C,IAAIA,IAAIqC,IAASC,IAASF;AACvC,MAAIjD,IAAIa,IAAIqC,KAAUG,OAAe,KAAK,EAAE,GAAArD,GAAG,GAAAJ,GAAG,GAAAiB,GAAG,MAAA0C,GAAM,OAAOF,GAAU,OAAOC,GAAW;AAAA,IAClG;AAEA,UAAME,IAAUJ,EAAK,OAAO,CAAChD,GAAGJ,MAAOA,EAAE,OAAOI,IAAIA,IAAIJ,EAAE,MAAO,CAAC,GAC5DyD,IAAML,EAAK,KAAK,CAAC7C,MAAMA,EAAE,SAASiD,CAAO;AAC/C,QAAI,CAACC,EAAK;AACV,UAAMC,IAAWD,EAAI,KAAK;AAc1B,SAAK,QAAQ,MAAM,KAAK,KAAK,gBAAgB,iBAAiB,QAAQ,CAA+B,GAErG,KAAK,eAAe,MAAM,sBAAsB,UAAUA,EAAI,CAAC,UAE/D,KAAK,OAAO;AAAA,MAAQ,CAACE,MACjBA,EAAI;AAAA,QACA;AAAA,QACA,SAASD,IAAWR,CAAM,cAAcQ,KAAYP,IAAS,KAAK,oBAAoB;AAAA,MAAA;AAAA,IAC1F,GAGJ,KAAK,WAAWO,GAEhB,KAAK,WAAW,QAAQ,CAACE,MAAc;AACnC,MAAAA,EAAU,QAAQ,OAAA;AAAA,IACtB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,gBAAgB;AAGlB,IADA,KAAK,WAAW,CAAA,GACX,MAAM,aACX,KAAK,UAAU,YACT,KAAK,CAAC1D,GAAGM,OAAQN,EAAE,SAAS,OAAOM,EAAE,SAAS,MAAM,IAAI,EAAG,EAC5D,QAAQ,CAACqD,GAAIC,MAAQ;AAElB,YAAMC,IAAYF,EAAG,aACd,CAAC,GAAG,IAAI,IAAIA,EAAG,MAAM,IAAI,CAACxD,MAAYA,EAAE,KAAK,CAAC,CAAC,EAAE,KAAA,IAClD,CAAC,EAAE;AACT,MAAA0D,EAAU,QAAQ,CAACC,MAAQ;AACvB,cAAMC,IAASD,KAAO;AACtB,YAAIE,IAAQL,EAAG,OAAO,KAAA,KAAU;AAChC,QAAAK,IAAQD,KAAYA,KAAYC,IAAQ,QAAQ,MAAMA,GAClD,KAAK,SAAS,KAAK,CAACL,MAAOA,EAAG,UAAUK,CAAK,MAAGA,KAAS,MAAMJ;AACnE,cAAMK,IAAW;AAAA,UACb,OAAAD;AAAA,UACA,MAAML,EAAG;AAAA,UACT,WAAWA,EAAG;AAAA,UACd,UAAUA,EAAG;AAAA,UACb,YAAYA,EAAG;AAAA,UACf,UAAUA,EAAG;AAAA,UACb,YAAYA,EAAG;AAAA,UACf,OAAOA,EAAG;AAAA,UACV,MAAME,EAAU,WAAW,IAAIF,EAAG,OAAOA,GAAI,MAAM,OAAO,CAACxD,MAAMA,EAAE,UAAU2D,CAAG;AAAA,QAAA;AAEpF,aAAK,SAAS,KAAKG,CAAG;AAAA,MAC1B,CAAC;AAAA,IACL,CAAC;AAAA,EACT;AAAA,EAEA,YAAY;AACR,QAAI,CAAC,KAAK,eAAgB;AAC1B,UAAMT,IAAW,KAAK;AACtB,SAAK,SAAS,QAAQ,CAACrD,MAAM;AACzB,MAAAA,EAAE,UAAU;AAAA,IAChB,CAAC,GAED,KAAK,SAAS,KAAK,CAACH,GAAGM,MAAQN,EAAE,QAAoBM,EAAE,QAAmB,IAAI,EAAG;AAEjF,eAAWqD,KAAM,KAAK,UAAU;AAG5B,MAAAA,EAAG,UAAU,IACbA,EAAG,aAAa,CAAA,IACZ,OAAOA,EAAG,UAAU,iBAAkB,YAAY,MAAMA,EAAG,UAAU,aAAa,OAClFA,EAAG,SAAS,gBAAgB;AAChC,YAAMO,IAAOP,GAAI,MAAM,MAAM,CAACA,EAAG,UAAU,iBAAiB,EAAE,KAAK,CAAA;AACnE,UAAI,CAACA,EAAG;AACJ,QAAAA,EAAG,cAAcA,EAAG;AAAA,WACjB;AACH,cAAMQ,IAAUD,GAAM,IAAI,CAAC/D,MAAMA,EAAE,KAAK,GAAG,OAAO,CAACD,MAAMA,MAAM,MAAS,KAAK,CAAA;AAC7E,QAAAyD,EAAG,cAAeQ,EAAO,OAAO,CAACjE,GAAGJ,MAAMI,IAAIJ,GAAG,CAAC,IAAIqE,EAAO;AAAA,MACjE;AACA,MAAAR,EAAG,cAAc,MAAMA,EAAG,WAAqB,IACxCA,EAAG,UAAU,iBAAiB,IAC/BA,EAAG;AAET,YAAMS,IAAS,KAAK,WAAW,IAAIT,EAAG,KAAK,GAAG,QACxCU,IAASD,GAAQ,UAAA,KAAe,OAAO,gBAAgB,KAAK,QAAQ,GACpEE,IAAYD,EAAO,QACnBE,IAAUD,IAAY,CAAC,GACzBE,IAAWF,IAAY,CAAC,GAItBG,IAAM,KAAK,MAAMd,GAAI,OAAO,CAAC,GAAG,OAAO,EAAE;AAC/C,MAAI,MAAMc,CAAG,MACG,oBAAI,KAAA,GAAO,QAAA,IACbA,KAAOd,EAAG,UAAU,cAAc,SAAY,UAAS,cAAc,SAGnFY,EAAG,KAAK,CAAC,EAAE,QAAQZ,EAAG,aACtBY,EAAG,KAAK,CAAC,EAAE,OAAOZ,EAAG,MAGrBY,EAAG,MAAM,WAAW,KAAKf,GACzBe,EAAG,MAAM,QAAQZ,EAAG,cAAc,KAAK,iBACvCY,EAAG,MAAM,UAAU,GAEnBA,EAAG,OAAO,QAAQZ,EAAG,cAAc,KAAK,iBACxCY,EAAG,OAAO,UAAU,GACpBA,EAAG,OAAO,WAAW,KAAKf,GAE1Be,EAAG,OAAO,YAAY,CAACG,MACnB,MAAMA,CAAG,IAAI,MAAMA,EAAI,QAAQ,KAAK,MAAMf,EAAG,aAAa,CAAC,CAAC;AAEhE,YAAMgB,IAAgB,CAAC,WAAW,WAAW,SAAS,GAChDC,IAAc,KAAK,OAAO,cAAc,SAASD,GACjDE,IAAWlB,EAAG,UAAU,iBAAiB,GAGzCmB,KAAiBnB,EAAG,UAAU,iBAAiB,CAAA,GAChD,IAAI,CAAC1D,GAAGL,MAAM;AACX,cAAMmF,IAAQ9E,GAAG;AACjB,eAAO;AAAA,UACH,OAAO8E,MAAU,MAAMA,KAAS,OAAO,SAAY,OAAOA,CAAK;AAAA,UAC/D,OAAO9E,GAAG,gBAAgB2E,EAAYhF,IAAIgF,EAAY,MAAM;AAAA,QAAA;AAAA,MAEpE,CAAC,EACA;AAAA,QACG,CAACrF,MAAmDA,EAAE,SAAS,QAAQ,CAAC,MAAMA,EAAE,KAAK;AAAA,MAAA,GAIvFyF,IAAc,CAACF,EAAc,UAAUD,KAAYC,EAAc,CAAC,EAAE,OAGpEG,IAAWH,EAAc,OAAO,CAACvF,GAAGK,GAAGsF,MACrCtF,MAAM,IAAU,KACboF,IAAczF,EAAE,QAAQ2F,EAAItF,IAAI,CAAC,EAAE,QAAQL,EAAE,QAAQ2F,EAAItF,IAAI,CAAC,EAAE,KAC1E,GAEKuF,IAAgBF,EAAS,SAASA,EAAS,IAAI,CAAC1F,MAAMA,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,GAC7E6F,IAAyBH,EAAS,SAClCA,EAAS,IAAI,CAAC1F,MAAMA,EAAE,KAAK,IAC3BqF,EAAY,MAAM,GAAG,CAAC,GAEtBS,IAAWF,IAAgBA,EAAc,SAAS,CAAC,KAAK;AAC9D,MAAAxB,EAAG,QAAQ,KAAK,IAAI0B,IAAWR,CAAQ,GAEvCN,EAAG,MAAMC,EAAI,MAAMK,GACnBN,EAAG,MAAMC,EAAI,MAAMa;AAGnB,YAAMC,KAAgBH,EACjB,IAAI,CAACJ,GAAOnF,MAAM;AACf,cAAM2F,IAAM,KAAK,IAAIR,IAAQF,CAAQ,IAAKlB,EAAG,OACvC6B,KAAQJ,EAAOxF,CAAC;AACtB,eAAO,CAAC2F,GAAKC,EAAK;AAAA,MACtB,CAAC,EACA,OAAO,CAAC,CAACjG,CAAC,MAAM,CAAC,MAAMA,CAAC,KAAKA,KAAK,CAAC;AAExC,MAAAiF,EAAI,SAAS,UAAU,QAAQ,IAAIhB,GAC/B8B,GAAc,WAAQd,EAAI,SAAS,UAAU,QAAQc,KACzDd,EAAI,UAAU,WAAW,KAAKhB,GAE9BgB,EAAI,UAAU,WAAW,MAAMhB,GAC/BgB,EAAI,UAAU,SAAS,KAAKhB,GAC5BgB,EAAI,UAAU,WAAW,MAAMhB;AAG/B,UAAIiC,KAAgBL,IAASA,EAAO,SAAS,CAAC;AAC9C,iBAAW,CAACxF,GAAGL,CAAC,KAAK4F,GAAe,QAAA,KAAa;AAI7C,YAHkBH,IACZzF,IAAKoE,EAAG,cACRpE,IAAKoE,EAAG,aACC;AACX,UAAA8B,KAAgBL,IAASxF,CAAC,KAAKwF,IAAS,CAAC;AACzC;AAAA,QACJ;AAEJ,MAAAb,EAAG,SAAS,UAAU,QAAQkB,IAC9BlB,EAAG,SAAS,QAAQ,KAAKf;AAEzB,YAAMkC,IAAe,KAAK,WAAW,IAAI/B,EAAG,KAAK,GAAG;AACpD,MAAI+B,MACAA,EAAa,MAAM,WAAW,OAAO,KAAKlC,CAAQ,IAAI,MACtDkC,EAAa,MAAM,WAAW,OAAO,MAAMlC,CAAQ,IAAI,MACvDkC,EAAa,MAAM,SAAS,OAAO,KAAK,sBAAsBlC,CAAQ,IAAI,MAC1EkC,EAAa,cAAc/B,EAAG,SAAS,KAI3CS,GAAQ,UAAUC,CAAM;AAAA,IAC5B;AAAA,EACJ;AAAA,EACA,eAAe;AACX,SAAK,WAAW,QAAQ,CAACX,GAAWM,MAAU;AAC1C,MAAAN,EAAU,QAAQ,QAAA,GAClBA,EAAU,SAAS,OAAA;AAAA,IACvB,CAAC,GACD,KAAK,WAAW,MAAA;AAAA,EACpB;AAAA,EAEA,cAAc;AACV,IAAK,KAAK,mBAUV,KAAK,WAAW,QAAQ,CAACA,GAAWM,MAAU;AAE1C,MADW,KAAK,SAAS,KAAK,CAACL,MAAOA,EAAG,UAAUK,CAAK,MAEpDN,EAAU,QAAQ,QAAA,GAClBA,EAAU,SAAS,OAAA,GACnB,KAAK,WAAW,OAAOM,CAAK;AAAA,IAEpC,CAAC,GAED,KAAK,SAAS,QAAQ,CAACL,MAAO;AAC1B,UAAI,KAAK,WAAW,IAAIA,EAAG,SAAS,EAAE,EAAG;AACzC,YAAMgC,IAAa,SAAS,cAAc,KAAK;AAC/C,MAAAA,EAAW,aAAa,SAAS,eAAe;AAChD,YAAMC,IAAW,SAAS,cAAc,IAAI;AAC5C,MAAAA,EAAS,MAAM,WAAW;AAC1B,YAAMC,IAAY,SAAS,cAAc,KAAK;AAC9C,MAAAA,EAAU,aAAa,QAAQlC,EAAG,SAAS,EAAE,GAC7CkC,EAAU,aAAa,SAAS,OAAO,GACvCA,EAAU;AAAA,QACN;AAAA,QACA,cAAc,KAAK,SAAS,mBAAmB,KAAK,UAAU,cAAc,KAAK,SAAS,eAAe,KAAK,UAAU;AAAA,MAAA,GAG5HF,EAAY,YAAYC,CAAQ,GAChCD,EAAY,YAAYE,CAAS,GACjC,KAAK,eAAgB,YAAYF,CAAU;AAC3C,YAAMG,IAAW/D,EAAQ,KAAK8D,GAAW,KAAK,OAAO,UAAU;AAC/D,WAAK,WAAW,IAAIlC,EAAG,SAAS,IAAI,EAAE,QAAQmC,GAAU,OAAOF,GAAU,SAASD,EAAA,CAAY;AAAA,IAClG,CAAC;AAAA,EACL;AAAA,EA8EA,SAAS;AACL,WAAOI;AAAAA;AAAAA;AAAAA,2CAG4B,KAAK,YAAY,YAAY,KAAK,eAAe;AAAA;AAAA,iDAE3C,KAAK,WAAW,SAAS,KAAK,WAAW,QAAQ;AAAA,uDAC3C,KAAK,WAAW,KAAK,IAAI,KAAK,WAAW,KAAK;AAAA;AAAA;AAAA,kCAGnE,KAAK,WAAW,QAAQ;AAAA,wCAClB,KAAK,kBAAkB;AAAA;AAAA,0BAErC,KAAK,WAAW,QAAQ;AAAA;AAAA;AAAA,sDAGI,CAAC,KAAK,SAAS,MAAM;AAAA;AAAA;AAAA;AAAA,EAIvE;AACJ;AA1jBM5D,EAydK,SAAS6D;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAvdhBC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GADxB/D,EAEF,WAAA,aAAA,CAAA;AAGA8D,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAJxB/D,EAKF,WAAA,SAAA,CAAA;AAGQ8D,EAAA;AAAA,EADPE,EAAA;AAAM,GAPLhE,EAQM,WAAA,YAAA,CAAA;AAGA8D,EAAA;AAAA,EADPE,EAAA;AAAM,GAVLhE,EAWM,WAAA,cAAA,CAAA;AAKS8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAhBLhE,EAgBe,WAAA,gBAAA,CAAA;AACA8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAjBLhE,EAiBe,WAAA,mBAAA,CAAA;AACA8D,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAlBLhE,EAkBe,WAAA,sBAAA,CAAA;AAEkB8D,EAAA;AAAA,EAAlCG,GAAM,kBAAkB;AAAA,GApBvBjE,EAoBiC,WAAA,kBAAA,CAAA;AACR8D,EAAA;AAAA,EAA1BG,GAAM,UAAU;AAAA,GArBfjE,EAqByB,WAAA,WAAA,CAAA;AArBzBA,IAAN8D,EAAA;AAAA,EADCI,GAAc,qBAAiC;AAAA,GAC1ClE,CAAA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
package/package.json CHANGED
@@ -3,18 +3,23 @@
3
3
  "description": "REWidget widget-gauge",
4
4
  "license": "MIT",
5
5
  "author": "widget-gauge",
6
- "version": "1.7.29",
6
+ "version": "1.7.31",
7
+ "engines": {
8
+ "node": ">=24.9.0",
9
+ "npm": ">=10.0.2"
10
+ },
7
11
  "type": "module",
8
12
  "main": "dist/widget-gauge.js",
9
13
  "types": "dist/src/widget-gauge.d.ts",
10
14
  "files": [
11
15
  "dist",
12
16
  "src",
13
- "thumbnail.png"
17
+ "thumbnail.png",
18
+ "thumbnail.webp"
14
19
  ],
15
20
  "scripts": {
16
21
  "analyze": "cem analyze --litelement",
17
- "start": "vite",
22
+ "start": "vite build --watch & vite",
18
23
  "build": "vite build",
19
24
  "watch": "vite build --watch",
20
25
  "link": "npm run build && npm link && cd ../RESWARM/frontend && npm link @record-evolution/widget-gauge",
@@ -5,36 +5,48 @@
5
5
  * and run json-schema-to-typescript to regenerate this file.
6
6
  */
7
7
 
8
+ /**
9
+ * The main heading displayed above the gauge(s). Use to describe what metric is being shown (e.g., 'CPU Temperature', 'Tank Level').
10
+ */
8
11
  export type Title = string;
12
+ /**
13
+ * Secondary text displayed below the title. Use for additional context like location, device name, or measurement conditions.
14
+ */
9
15
  export type Subtitle = string;
16
+ /**
17
+ * The name displayed below or inside the gauge to identify what value it shows. Appears in legends when multiple gauges are present.
18
+ */
10
19
  export type Label = string;
11
20
  /**
12
- * The unit of the values. e.g. °C or km/h
21
+ * The measurement unit displayed after the value (e.g., '°C', 'km/h', '%', 'PSI'). Keep short for better display.
13
22
  */
14
23
  export type Unit = string;
15
24
  /**
16
- * The number of decimal places to show in the value. If not specified, precision is 0.
25
+ * Number of decimal places to display (e.g., 0 for whole numbers, 1 for 23.5, 2 for 23.45). Default is 0.
17
26
  */
18
27
  export type Decimals = number;
19
28
  /**
20
- * Draw multiple Charts based on the split column of a data table.
29
+ * When enabled, automatically creates multiple gauges based on distinct values in a pivot column. Use when you have one data table containing values for multiple entities (e.g., temperatures for multiple devices).
21
30
  */
22
31
  export type MultiChart = boolean;
23
32
  /**
24
- * The value of the gauge
33
+ * The numeric value to display on the gauge. Can be bound to a data column for real-time updates. Used when Multi Chart is disabled.
25
34
  */
26
35
  export type Value = number;
27
36
  /**
28
- * This should be an ISO String date like 2023-11-04T22:47:52.351152+00:00. Will only be used to detect data age of data.
37
+ * ISO 8601 timestamp string (e.g., '2023-11-04T22:47:52.351152+00:00'). Used to detect data age and apply maxLatency filtering if configured.
29
38
  */
30
39
  export type Timestamp = string;
40
+ /**
41
+ * The numeric measurement value for this data point.
42
+ */
31
43
  export type Value1 = number;
32
44
  /**
33
- * You can specify a table column to autogenerate dataseries for each distinct entry in this column. E.g. if you have a table with columns [city, timestamp, temperature] and specify ''city'' as split column, then you will get a gauge for each city.
45
+ * Column value used to split data into multiple gauges. Each unique value creates a separate gauge (e.g., device_id creates one gauge per device).
34
46
  */
35
47
  export type SplitDataBy = string;
36
48
  /**
37
- * Provide a list of values. Only the latest value is shown in the gauge unless you configure "Advanced Settings" below or use split data.
49
+ * Data array for Multi Chart mode. Only the latest value per pivot group is displayed unless averaging is configured. Provide timestamp for data freshness indication.
38
50
  */
39
51
  export type Data = {
40
52
  tsp?: Timestamp;
@@ -43,12 +55,15 @@ export type Data = {
43
55
  [k: string]: unknown;
44
56
  }[];
45
57
  /**
46
- * The start value of the gauge. If not specified 0 is used.
58
+ * The minimum value shown on the gauge scale (left-most point). Default is 0. Set to negative for metrics that can go below zero.
47
59
  */
48
60
  export type GaugeStartValue = number;
61
+ /**
62
+ * The upper boundary value for this color section. The last section's limit defines the gauge maximum.
63
+ */
49
64
  export type RightLimit = number;
50
65
  /**
51
- * The right limits of the gauge sections and the color for that section.
66
+ * Define color zones by specifying the upper boundary and color for each section. Sections are drawn from the gauge minimum to the first limit, then between consecutive limits.
52
67
  */
53
68
  export type SectionRightLimits = {
54
69
  limit?: RightLimit;
@@ -56,13 +71,16 @@ export type SectionRightLimits = {
56
71
  [k: string]: unknown;
57
72
  }[];
58
73
  /**
59
- * Calculate the average over the given number of newest values. (If you use 'split by', then per each of the split dataseries.) If not specified then the latest value is shown without modification.
74
+ * Calculate a rolling average over the specified number of most recent data points. Useful for smoothing noisy sensor data. Leave empty to show raw latest value.
60
75
  */
61
76
  export type AverageLatestValues = number;
62
77
  /**
63
- * If you provide timestamp data, the delivered value is only shown in the gauge when the age of the data is not older than the given maximum Latency in seconds.
78
+ * Maximum age (in seconds) for data to be displayed. If the latest data point's timestamp is older than this threshold, the gauge shows no value or a stale indicator. Useful for detecting sensor offline conditions.
64
79
  */
65
80
  export type MaximumLatencyInSeconds = number;
81
+ /**
82
+ * Array of gauge configurations. Each entry creates a separate gauge dial that can display different metrics or the same metric for different entities (via pivot).
83
+ */
66
84
  export type Gauges = {
67
85
  label?: Label;
68
86
  valueColor?: ValueColor;
@@ -76,23 +94,38 @@ export type Gauges = {
76
94
  [k: string]: unknown;
77
95
  }[];
78
96
 
97
+ /**
98
+ * A circular gauge widget for displaying single numeric values within a defined range. Use this widget to show KPIs, sensor readings, progress indicators, or any metric that benefits from a visual representation against minimum and maximum boundaries. Supports color-coded sections to indicate value zones (e.g., normal/warning/critical), multiple gauges in one widget, and automatic pivot-based generation from data columns. Ideal for real-time monitoring dashboards showing temperature, speed, utilization, or similar bounded metrics.
99
+ */
79
100
  export interface GaugeChartConfiguration {
80
101
  title?: Title;
81
102
  subTitle?: Subtitle;
82
103
  dataseries?: Gauges;
83
104
  [k: string]: unknown;
84
105
  }
106
+ /**
107
+ * The color of the numeric value text displayed on the gauge. Use a contrasting color for readability.
108
+ */
85
109
  export interface ValueColor {
86
110
  [k: string]: unknown;
87
111
  }
112
+ /**
113
+ * Configure the gauge scale range and color zones to indicate value severity or status levels.
114
+ */
88
115
  export interface GaugeColorSections {
89
116
  gaugeMinValue?: GaugeStartValue;
90
117
  sectionLimits?: SectionRightLimits;
91
118
  [k: string]: unknown;
92
119
  }
120
+ /**
121
+ * The fill color for this section of the gauge arc. Use semantic colors like green for normal, yellow for warning, red for critical.
122
+ */
93
123
  export interface SectionColor {
94
124
  [k: string]: unknown;
95
125
  }
126
+ /**
127
+ * Additional settings for data processing and display behavior.
128
+ */
96
129
  export interface AdvancedConfiguration {
97
130
  averageLatest?: AverageLatestValues;
98
131
  maxLatency?: MaximumLatencyInSeconds;
@@ -1,19 +1,23 @@
1
1
  {
2
2
  "title": "Gauge-chart Configuration",
3
+ "description": "A circular gauge widget for displaying single numeric values within a defined range. Use this widget to show KPIs, sensor readings, progress indicators, or any metric that benefits from a visual representation against minimum and maximum boundaries. Supports color-coded sections to indicate value zones (e.g., normal/warning/critical), multiple gauges in one widget, and automatic pivot-based generation from data columns. Ideal for real-time monitoring dashboards showing temperature, speed, utilization, or similar bounded metrics.",
3
4
  "type": "object",
4
5
  "properties": {
5
6
  "title": {
6
7
  "title": "Title",
8
+ "description": "The main heading displayed above the gauge(s). Use to describe what metric is being shown (e.g., 'CPU Temperature', 'Tank Level').",
7
9
  "type": "string",
8
10
  "order": 1
9
11
  },
10
12
  "subTitle": {
11
13
  "title": "Subtitle",
14
+ "description": "Secondary text displayed below the title. Use for additional context like location, device name, or measurement conditions.",
12
15
  "type": "string",
13
16
  "order": 2
14
17
  },
15
18
  "dataseries": {
16
19
  "title": "Gauges",
20
+ "description": "Array of gauge configurations. Each entry creates a separate gauge dial that can display different metrics or the same metric for different entities (via pivot).",
17
21
  "type": "array",
18
22
  "dataDrivenDisabled": true,
19
23
  "order": 2,
@@ -22,39 +26,41 @@
22
26
  "properties": {
23
27
  "label": {
24
28
  "title": "Label",
29
+ "description": "The name displayed below or inside the gauge to identify what value it shows. Appears in legends when multiple gauges are present.",
25
30
  "type": "string",
26
31
  "required": true,
27
32
  "order": 1
28
33
  },
29
34
  "valueColor": {
30
35
  "title": "Value Color",
36
+ "description": "The color of the numeric value text displayed on the gauge. Use a contrasting color for readability.",
31
37
  "type": "color",
32
38
  "order": 2
33
39
  },
34
40
  "unit": {
35
41
  "title": "Unit",
36
- "description": "The unit of the values. e.g. °C or km/h",
42
+ "description": "The measurement unit displayed after the value (e.g., '°C', 'km/h', '%', 'PSI'). Keep short for better display.",
37
43
  "type": "string",
38
44
  "dataDrivenDisabled": false,
39
45
  "order": 3
40
46
  },
41
47
  "precision": {
42
48
  "title": "Decimals",
43
- "description": "The number of decimal places to show in the value. If not specified, precision is 0.",
49
+ "description": "Number of decimal places to display (e.g., 0 for whole numbers, 1 for 23.5, 2 for 23.45). Default is 0.",
44
50
  "type": "number",
45
51
  "dataDrivenDisabled": true,
46
52
  "order": 4
47
53
  },
48
54
  "multiChart": {
49
55
  "title": "Multi Chart",
50
- "description": "Draw multiple Charts based on the split column of a data table.",
56
+ "description": "When enabled, automatically creates multiple gauges based on distinct values in a pivot column. Use when you have one data table containing values for multiple entities (e.g., temperatures for multiple devices).",
51
57
  "type": "boolean",
52
58
  "dataDrivenDisabled": true,
53
59
  "order": 6
54
60
  },
55
61
  "value": {
56
62
  "title": "Value",
57
- "description": "The value of the gauge",
63
+ "description": "The numeric value to display on the gauge. Can be bound to a data column for real-time updates. Used when Multi Chart is disabled.",
58
64
  "type": "number",
59
65
  "condition": {
60
66
  "relativePath": "../multiChart",
@@ -64,7 +70,7 @@
64
70
  },
65
71
  "data": {
66
72
  "title": "Data",
67
- "description": "Provide a list of values. Only the latest value is shown in the gauge unless you configure \"Advanced Settings\" below or use split data.",
73
+ "description": "Data array for Multi Chart mode. Only the latest value per pivot group is displayed unless averaging is configured. Provide timestamp for data freshness indication.",
68
74
  "type": "array",
69
75
  "condition": {
70
76
  "relativePath": "../multiChart",
@@ -76,19 +82,20 @@
76
82
  "properties": {
77
83
  "tsp": {
78
84
  "title": "Timestamp",
79
- "description": "This should be an ISO String date like 2023-11-04T22:47:52.351152+00:00. Will only be used to detect data age of data.",
85
+ "description": "ISO 8601 timestamp string (e.g., '2023-11-04T22:47:52.351152+00:00'). Used to detect data age and apply maxLatency filtering if configured.",
80
86
  "type": "string",
81
87
  "order": 1
82
88
  },
83
89
  "value": {
84
90
  "title": "Value",
91
+ "description": "The numeric measurement value for this data point.",
85
92
  "type": "number",
86
93
  "order": 2,
87
94
  "required": true
88
95
  },
89
96
  "pivot": {
90
97
  "title": "Split Data by",
91
- "description": "You can specify a table column to autogenerate dataseries for each distinct entry in this column. E.g. if you have a table with columns [city, timestamp, temperature] and specify ''city'' as split column, then you will get a gauge for each city.",
98
+ "description": "Column value used to split data into multiple gauges. Each unique value creates a separate gauge (e.g., device_id creates one gauge per device).",
92
99
  "order": 3,
93
100
  "type": "string"
94
101
  }
@@ -97,20 +104,20 @@
97
104
  },
98
105
  "sections": {
99
106
  "title": "Gauge Color Sections",
100
- "description": "",
107
+ "description": "Configure the gauge scale range and color zones to indicate value severity or status levels.",
101
108
  "type": "object",
102
109
  "order": 8,
103
110
  "properties": {
104
111
  "gaugeMinValue": {
105
112
  "title": "Gauge Start Value",
106
- "description": "The start value of the gauge. If not specified 0 is used.",
113
+ "description": "The minimum value shown on the gauge scale (left-most point). Default is 0. Set to negative for metrics that can go below zero.",
107
114
  "type": "number",
108
115
  "dataDrivenDisabled": true,
109
116
  "order": 1
110
117
  },
111
118
  "sectionLimits": {
112
119
  "title": "Section Right Limits",
113
- "description": "The right limits of the gauge sections and the color for that section.",
120
+ "description": "Define color zones by specifying the upper boundary and color for each section. Sections are drawn from the gauge minimum to the first limit, then between consecutive limits.",
114
121
  "type": "array",
115
122
  "dataDrivenDisabled": true,
116
123
  "order": 2,
@@ -119,12 +126,14 @@
119
126
  "properties": {
120
127
  "limit": {
121
128
  "title": "Right Limit",
129
+ "description": "The upper boundary value for this color section. The last section's limit defines the gauge maximum.",
122
130
  "type": "number",
123
131
  "dataDrivenDisabled": true,
124
132
  "order": 1
125
133
  },
126
134
  "sectionColor": {
127
135
  "title": "Section Color",
136
+ "description": "The fill color for this section of the gauge arc. Use semantic colors like green for normal, yellow for warning, red for critical.",
128
137
  "type": "color",
129
138
  "dataDrivenDisabled": true,
130
139
  "order": 2
@@ -136,20 +145,20 @@
136
145
  },
137
146
  "advanced": {
138
147
  "title": "Advanced Configuration",
139
- "description": "",
148
+ "description": "Additional settings for data processing and display behavior.",
140
149
  "type": "object",
141
150
  "order": 9,
142
151
  "properties": {
143
152
  "averageLatest": {
144
153
  "title": "Average Latest Values",
145
- "description": "Calculate the average over the given number of newest values. (If you use 'split by', then per each of the split dataseries.) If not specified then the latest value is shown without modification.",
154
+ "description": "Calculate a rolling average over the specified number of most recent data points. Useful for smoothing noisy sensor data. Leave empty to show raw latest value.",
146
155
  "type": "number",
147
156
  "dataDrivenDisabled": true,
148
157
  "order": 6
149
158
  },
150
159
  "maxLatency": {
151
160
  "title": "Maximum Latency in seconds",
152
- "description": "If you provide timestamp data, the delivered value is only shown in the gauge when the age of the data is not older than the given maximum Latency in seconds.",
161
+ "description": "Maximum age (in seconds) for data to be displayed. If the latest data point's timestamp is older than this threshold, the gauge shows no value or a stale indicator. Useful for detecting sensor offline conditions.",
153
162
  "type": "number",
154
163
  "dataDrivenDisabled": true,
155
164
  "order": 7
@@ -452,7 +452,15 @@ class WidgetGauge extends LitElement {
452
452
 
453
453
  setupCharts() {
454
454
  if (!this.gaugeContainer) return
455
+ // const { width, height } = this.gaugeContainer.getBoundingClientRect()
456
+ // if (!width || !height) return
455
457
  // remove the gauge canvases of non provided data series
458
+ // console.log(
459
+ // 'Setting up charts',
460
+ // this.dataSets,
461
+ // this.canvasList,
462
+ // this.gaugeContainer.getBoundingClientRect()
463
+ // )
456
464
  this.canvasList.forEach((canvasObj, label) => {
457
465
  const ex = this.dataSets.find((ds) => ds.label === label)
458
466
  if (!ex) {
@@ -473,13 +481,12 @@ class WidgetGauge extends LitElement {
473
481
  newCanvas.setAttribute('class', 'chart')
474
482
  newCanvas.setAttribute(
475
483
  'style',
476
- `min-width: ${this.origWidth}; min-height: ${this.origHeight}; width: ${this.origWidth}; height: ${this.origHeight};`
484
+ `min-width: ${this.origWidth}px; min-height: ${this.origHeight}px; width: ${this.origWidth}px; height: ${this.origHeight}px;`
477
485
  )
478
486
 
479
487
  newWrapper!.appendChild(newTitle)
480
488
  newWrapper!.appendChild(newCanvas)
481
489
  this.gaugeContainer!.appendChild(newWrapper)
482
-
483
490
  const newChart = echarts.init(newCanvas, this.theme?.theme_name)
484
491
  this.canvasList.set(ds.label ?? '', { echart: newChart, title: newTitle, wrapper: newWrapper })
485
492
  })
package/thumbnail.webp ADDED
Binary file