@kodaris/krubble-app-components 1.0.69 → 1.0.70

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.
@@ -1 +1 @@
1
- {"version":3,"file":"krubble-app.umd.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","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/unsafe-html.js","../../../node_modules/lit-html/directives/class-map.js","scaffold/nav-item-edit.js","scaffold.js","screen-nav.js","screen-detail.js","subbar.js","router.js","../../../node_modules/marked/lib/marked.esm.js","chatbot.js"],"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;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$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.2\");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=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(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=M(t,h._$AS(t,i.values),h,e)),i}class R{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??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,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 k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,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=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(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!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.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=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(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 k(this.O(c()),this.O(c()),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,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,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=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||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){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.2\");const D=(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 k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w 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.2\");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{notEqual as t,defaultConverter 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:e,reflect:!1,hasChanged:t},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,!0,r)},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,!0,r)}}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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter(s=>t[s]).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter(t=>\"\"!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '@kodaris/krubble-components';\nlet KRNavItemEdit = class KRNavItemEdit extends LitElement {\n constructor() {\n super(...arguments);\n this.label = '';\n this.icon = '';\n this.url = '';\n this.active = true;\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.data) {\n this.label = this.data.label || '';\n this.icon = this.data.icon || '';\n this.url = this.data.url || '';\n this.active = this.data.active !== false;\n }\n }\n handleLabelInput(e) {\n const textField = e.target;\n this.label = textField.value;\n }\n handleIconInput(e) {\n const textField = e.target;\n this.icon = textField.value;\n }\n handleUrlInput(e) {\n const textField = e.target;\n this.url = textField.value;\n }\n handleActiveChange(e) {\n this.active = e.target.checked;\n }\n handleCancel() {\n this.dialogRef.close(undefined);\n }\n handleSave() {\n this.dialogRef.close({\n label: this.label,\n icon: this.icon || undefined,\n url: this.url || undefined,\n active: this.active,\n });\n }\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleSave();\n }\n }\n render() {\n return html `\n <h2>Edit Navigation Item</h2>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Label\"\n name=\"label\"\n .value=${this.label}\n @input=${this.handleLabelInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"Enter label\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Icon (emoji or SVG)\"\n name=\"icon\"\n .value=${this.icon}\n @input=${this.handleIconInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. 📊 or <svg>...</svg>\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"URL\"\n name=\"url\"\n .value=${this.url}\n @input=${this.handleUrlInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. /ci/my-page or https://...\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <div class=\"checkbox-group\">\n <input\n type=\"checkbox\"\n id=\"active\"\n .checked=${this.active}\n @change=${this.handleActiveChange}\n />\n <label class=\"checkbox-label\" for=\"active\">Visible in navigation</label>\n </div>\n </div>\n\n <div class=\"actions\">\n <button class=\"btn-cancel\" @click=${this.handleCancel}>Cancel</button>\n <button class=\"btn-save\" @click=${this.handleSave}>Save</button>\n </div>\n `;\n }\n};\nKRNavItemEdit.styles = css `\n :host {\n display: block;\n width: 360px;\n padding: 24px;\n color: rgba(255, 255, 255, 0.9);\n\n /* Dark theme for kr-text-field */\n --kr-text-field-label-color: rgba(255, 255, 255, 0.7);\n --kr-text-field-border-color: rgba(255, 255, 255, 0.1);\n --kr-text-field-bg: rgba(255, 255, 255, 0.05);\n --kr-text-field-color: #ffffff;\n --kr-text-field-focus-border-color: #beea4e;\n --kr-text-field-focus-ring-color: rgba(190, 234, 78, 0.1);\n --kr-text-field-placeholder-color: rgba(255, 255, 255, 0.3);\n --kr-text-field-helper-color: rgba(255, 255, 255, 0.5);\n }\n\n h2 {\n margin: 0 0 24px 0;\n font-size: 18px;\n font-weight: 600;\n color: #ffffff;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .checkbox-group {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: #beea4e;\n cursor: pointer;\n }\n\n .checkbox-label {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n }\n\n .actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n margin-top: 28px;\n }\n\n button {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .btn-cancel {\n background: rgba(255, 255, 255, 0.05);\n border: 1px solid rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n }\n\n .btn-cancel:hover {\n background: rgba(255, 255, 255, 0.1);\n color: #ffffff;\n }\n\n .btn-save {\n background: #beea4e;\n border: none;\n color: #10172a;\n }\n\n .btn-save:hover {\n background: #d4f472;\n }\n `;\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"label\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"icon\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"url\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"active\", void 0);\nKRNavItemEdit = __decorate([\n customElement('kr-nav-item-edit')\n], KRNavItemEdit);\nexport { KRNavItemEdit };\n//# sourceMappingURL=nav-item-edit.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { KRContextMenu, KRDialog } from '@kodaris/krubble-components';\nimport { KRHttp } from '@kodaris/krubble-http';\nimport { KRNavItemEdit } from './scaffold/nav-item-edit.js';\n/**\n * Application shell component with nav drawer and main content area.\n *\n * ## Features\n * - Collapsible navigation drawer with hierarchical items (groups and items)\n * - User profile display in footer with customization menu\n * - Edit mode for customizing navigation (rename, reorder, hide items, add custom items)\n * - Drag and drop reordering in edit mode\n * - Persistence of customizations via preference API (global/organization level)\n *\n * ## Nav Customization\n * Users can customize the navigation by clicking their profile and selecting\n * \"Customize Navigation\". This enters edit mode where users can:\n * - Right-click items to edit label, icon, or visibility\n * - Right-click to add new items above/below existing items\n * - Drag and drop to reorder items or move them between groups\n *\n * Customizations are stored globally and apply to all users.\n *\n * ## Preference Storage\n * Preferences are stored as JSON with the following structure:\n * ```json\n * {\n * \"nav\": {\n * \"itemId\": { \"label\": \"Custom Label\", \"icon\": \"...\", \"active\": true, \"order\": 0 },\n * \"custom-123\": { \"type\": \"item\", \"label\": \"New Item\", \"url\": \"/path\", ... }\n * }\n * }\n * ```\n *\n * The `nav` object is a delta - it only contains overrides for existing items\n * or definitions for custom items (prefixed with \"custom-\").\n *\n * ## API Endpoints Used\n * - GET `/api/system/preference/json/scaffold?global=true` - load preferences\n * - POST `/api/system/preference/json/scaffold?global=true` - create new preference\n * - PUT `/api/system/preference/json/scaffold/{uuid}?global=true` - update existing preference\n *\n * @slot - The main content\n *\n * @property {string} logo - URL for the logo image\n * @property {string} label - Title text to display instead of logo\n * @property {'light'|'dark'} scheme - Color scheme: 'light' (default) or 'dark'\n * @property {KRNavItem[]} nav - Navigation items as JSON array\n * @property {KRUser} user - User profile data\n * @property {boolean} navEnabled - Whether to show the nav drawer (menu toggle remains visible when false)\n * @property {'employee'|'customer'} user-type - User type. Customers skip all `/api/system` calls since that endpoint is employee-only. Defaults to 'employee'.\n *\n *\n * TODO\n * - Don't hardcode breadcrumbs\n * - Look at renderNormalFooter and renderEditFooter and see if that is what we want to do\n */\nlet KRScaffold = class KRScaffold extends LitElement {\n constructor() {\n super();\n /**\n * Default icon for nav items without an icon (shown at top level)\n */\n this.defaultNavItemIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"/></svg>';\n this.originalFetch = null;\n this.originalXhrOpen = null;\n this.navItemDragPreview = null;\n this.navItemDragStartY = 0;\n this.isNavItemDragging = false;\n this.navItemDragExpandTimeout = null;\n this.navInitialized = false;\n this.logo = '';\n this.label = '';\n /**\n * URL to navigate to when clicking the logo/title. Defaults to '/'.\n */\n this.homeUrl = '/';\n this.scheme = 'light';\n this.nav = [];\n this.navIconsDisplayed = false;\n this.navExpanded = false;\n this.user = null;\n /**\n * Whether to show the subbar with menu toggle\n */\n this.subbar = false;\n /**\n * Whether to hide the navigation drawer.\n * Menu toggle button remains visible and emits menu-click events.\n */\n this.navEnabled = true;\n /**\n * User type. Set to 'customer' to skip all /api/system calls — customers don't have access to that endpoint.\n */\n this.userType = 'employee';\n /**\n * Breadcrumbs to display in the subbar\n */\n this.breadcrumbs = [];\n this.navItemsExpanded = new Set();\n this.navQuery = '';\n this.activeNavItemId = null;\n this.isNavScrolled = false;\n this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';\n this.isEditing = false;\n this.isUserMenuOpen = false;\n this.pref = { nav: {} };\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.navItemDropPosition = 'above';\n this.pendingRequests = 0;\n this.boundHandleMouseMove = this.handleMouseMove.bind(this);\n this.boundHandleMouseUp = this.handleMouseUp.bind(this);\n }\n connectedCallback() {\n super.connectedCallback();\n this.installFetchInterceptor();\n }\n // Attributes are not reflected into properties until after the first update,\n // so loadPref() must run here (not connectedCallback) for user-type to be set.\n firstUpdated() {\n this.loadPref();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('nav') && this.nav.length > 0) {\n this.updateActiveNavItem();\n if (this.navExpanded && !this.navInitialized) {\n this.navInitialized = true;\n this.getComputedNav()\n .filter(item => item.type === 'group')\n .forEach(group => this.navItemsExpanded.add(group.id));\n }\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.uninstallFetchInterceptor();\n }\n /**\n * Installs global interceptors for fetch and XMLHttpRequest to track pending HTTP requests.\n * Updates `pendingRequests` state when requests start/complete.\n */\n installFetchInterceptor() {\n if (this.originalFetch) {\n return;\n }\n const scaffold = this;\n // Intercept fetch\n this.originalFetch = window.fetch.bind(window);\n const originalFetch = this.originalFetch; // Capture in local scope to avoid null reference after uninstall\n window.fetch = function (...args) {\n scaffold.pendingRequests++;\n return originalFetch(...args).finally(() => {\n scaffold.pendingRequests--;\n });\n };\n // Intercept XMLHttpRequest\n this.originalXhrOpen = XMLHttpRequest.prototype.open;\n const originalXhrOpen = this.originalXhrOpen; // Capture in local scope to avoid null reference after uninstall\n XMLHttpRequest.prototype.open = function (method, url, async = true, username, password) {\n scaffold.pendingRequests++;\n this.addEventListener('loadend', () => {\n scaffold.pendingRequests--;\n }, { once: true });\n return originalXhrOpen.call(this, method, url, async, username, password);\n };\n }\n /**\n * Restores the original fetch and XMLHttpRequest functions.\n */\n uninstallFetchInterceptor() {\n if (this.originalFetch) {\n window.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n if (this.originalXhrOpen) {\n XMLHttpRequest.prototype.open = this.originalXhrOpen;\n this.originalXhrOpen = null;\n }\n }\n /**\n * Resolves a navigation URL by prepending the base href.\n *\n * This method is used for:\n * 1. Setting href attributes on anchor elements (so Cmd/Ctrl+click opens correct URL in new tab)\n * 2. Comparing URLs with window.location.pathname in updateActiveNavItem()\n *\n * The original item.url is kept intact (without base href) and passed to Angular\n * via the nav-item-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - item.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(item) = \"/operations/settings\" (used for href and URL comparison)\n */\n resolveUrl(item) {\n if (!item.url) {\n return '#';\n }\n // External URLs - return as-is\n if (item.external) {\n return item.url;\n }\n // Remove leading slash from url if present, then combine with base\n let path = item.url;\n if (item.url.startsWith('/')) {\n path = item.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n // =========================================================================\n // Navigation Data\n // =========================================================================\n /**\n * Returns the computed navigation as a flat array with preferences applied.\n *\n * Transforms the hierarchical `nav` property into a flat list where each item\n * has a `parentId` reference instead of nested `children`. Merges user\n * preference overrides (label, icon, url, active, order, parentId) and\n * includes any custom items added via the edit dialog.\n *\n * @returns Flat array of nav items with preferences applied\n */\n getComputedNav() {\n const result = [];\n this.nav.forEach((item, index) => {\n const override = this.pref.nav[item.id];\n result.push({\n ...item,\n ...override,\n order: override?.order ?? item.order ?? index,\n parentId: override?.parentId ?? null,\n });\n // Add children if group\n if (item.type === 'group' && item.children) {\n item.children.forEach((child, childIndex) => {\n const childOverride = this.pref.nav[child.id];\n let parentId = item.id;\n if (childOverride?.parentId !== undefined) {\n parentId = childOverride.parentId;\n }\n result.push({\n ...child,\n ...childOverride,\n order: childOverride?.order ?? child.order ?? childIndex,\n parentId,\n });\n });\n }\n });\n // Add custom items from pref\n Object.entries(this.pref.nav).forEach(([id, item]) => {\n if (id.startsWith('custom') && item.type && item.label) {\n result.push({\n id,\n type: item.type,\n label: item.label,\n icon: item.icon,\n url: item.url,\n active: item.active,\n order: item.order ?? result.length,\n parentId: item.parentId ?? null,\n });\n }\n });\n return result;\n }\n /**\n * Returns nav items for a given parent, filtered and sorted for rendering.\n *\n * Filters the computed nav to items matching the parentId, sorts by order,\n * hides inactive items in normal mode, and applies the search query filter.\n * Groups are shown if their label matches or if they have matching children.\n *\n * @param parentId - The parent ID to filter by (null for top-level items)\n * @returns Filtered and sorted nav items ready for rendering\n */\n getNavItemChildren(parentId) {\n let items = this.getComputedNav()\n .filter(item => item.parentId === parentId)\n .sort((a, b) => a.order - b.order);\n // In normal mode, filter out hidden items\n if (!this.isEditing) {\n items = items.filter(item => item.active !== false);\n }\n // Apply search filter\n if (this.navQuery) {\n const query = this.navQuery.toLowerCase();\n const allItems = this.getComputedNav();\n // If we're getting children of a group, check if parent group name matches query\n // If so, show all children without filtering\n if (parentId !== null) {\n const parentGroup = allItems.find(item => item.id === parentId);\n if (parentGroup?.label.toLowerCase().includes(query)) {\n return items; // Show all children when group name matches\n }\n }\n items = items.filter(item => {\n if (item.type === 'group') {\n // Show group if its label matches OR if it has matching children\n return item.label.toLowerCase().includes(query) || allItems.some(child => child.parentId === item.id &&\n child.active !== false &&\n child.label.toLowerCase().includes(query));\n }\n // Show item if its label matches\n return item.label.toLowerCase().includes(query);\n });\n }\n return items;\n }\n // =========================================================================\n // Navigation Search\n // =========================================================================\n /**\n * Handles search input changes for filtering nav items.\n *\n * When a search query is entered, automatically expands any groups that\n * contain matching children so users can see the results. When the search\n * is cleared, collapses all groups back to their default state.\n *\n * @param e - The input event from the search field\n */\n handleNavQueryChange(e) {\n this.navQuery = e.target.value;\n // Expand all groups when searching so matching children are visible\n // (groups without matching children won't be rendered anyway)\n if (this.navQuery) {\n this.getComputedNav().forEach(item => {\n if (item.type === 'group') {\n this.navItemsExpanded.add(item.id);\n }\n });\n }\n else {\n // Collapse all when search is cleared\n this.navItemsExpanded.clear();\n }\n }\n /**\n * Clears the search query.\n */\n handleNavQueryClear() {\n this.navQuery = '';\n this.navItemsExpanded.clear();\n }\n // =========================================================================\n // Navigation Interaction\n // =========================================================================\n handleMenuClick() {\n this.isNavOpened = !this.isNavOpened;\n localStorage.setItem('kr-scaffold-nav-opened', String(this.isNavOpened));\n }\n /**\n * Handles click on the nav header (logo/title) to navigate home.\n * Dispatches a nav-item-click event so Angular can intercept and route.\n */\n handleNavHeaderClick() {\n // Clear active state since we're going home\n this.activeNavItemId = null;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item: { url: this.homeUrl } },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If no listener prevented default, navigate natively\n if (!navEvent.defaultPrevented) {\n window.location.href = this.homeUrl;\n }\n }\n /**\n * Handles scroll on nav content to show/hide header shadow.\n */\n handleNavScroll(e) {\n this.isNavScrolled = e.target.scrollTop > 0;\n }\n /**\n * Toggles the expanded/collapsed state of a nav group with animation.\n * Uses the Web Animations API to animate height transitions.\n * When collapsing, the `nav-group--expanded` class is removed after animation completes.\n * When expanding, the class is added immediately before animation starts.\n *\n * @param itemId - The unique identifier of the nav group to toggle\n */\n toggleNavItem(itemId) {\n const navItem = this.shadowRoot?.querySelector(`.nav-item[data-id=\"${itemId}\"]`);\n const groupEl = navItem?.nextElementSibling;\n if (!groupEl) {\n return;\n }\n if (this.navItemsExpanded.has(itemId)) {\n this.navItemsExpanded.delete(itemId);\n groupEl.animate([\n { height: `${groupEl.scrollHeight}px` },\n { height: '0px' }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n }).onfinish = () => {\n groupEl.classList.remove('nav-group--expanded');\n };\n }\n else {\n this.navItemsExpanded.add(itemId);\n groupEl.classList.add('nav-group--expanded');\n groupEl.animate([\n { height: '0px' },\n { height: `${groupEl.scrollHeight}px` }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n });\n }\n this.requestUpdate();\n }\n /**\n * Handles click events on navigation items.\n *\n * For groups, toggles the expanded/collapsed state.\n * For items, dispatches a cancelable `nav-item-click` custom event.\n *\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScaffoldDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router. Import `KrubbleModule` in your Angular app to enable\n * SPA navigation without page reloads.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n if (item.type === 'group') {\n this.toggleNavItem(item.id);\n }\n else {\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n // Set active item immediately on click for instant visual feedback\n this.activeNavItemId = item.id;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n // (e.g., SPA router handles navigation)\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n }\n /**\n * Updates the active nav item highlight based on the current URL.\n *\n * Compares the first path segment of `window.location.pathname` with each\n * nav item's URL to find a match. When found, highlights that item and\n * expands its parent group if nested.\n *\n * Called automatically by `KRScaffoldDirective` on Angular route changes.\n */\n updateActiveNavItem() {\n const currentPath = window.location.pathname;\n const allItems = this.getComputedNav().filter(item => item.type === 'item' && item.url);\n // Find the best match - prefer longer/more specific URL matches\n let activeItem = null;\n let longestMatch = 0;\n for (const item of allItems) {\n // Use resolveUrl because currentPath includes base href\n const url = this.resolveUrl(item);\n if (currentPath.startsWith(url) && url.length > longestMatch) {\n activeItem = item;\n longestMatch = url.length;\n }\n }\n if (activeItem) {\n this.activeNavItemId = activeItem.id;\n if (activeItem.parentId) {\n this.navItemsExpanded.add(activeItem.parentId);\n }\n }\n else {\n this.activeNavItemId = null;\n }\n }\n // =========================================================================\n // Navigation Customization\n // =========================================================================\n startEditing() {\n this.isEditing = true;\n }\n cancelEditing() {\n this.isEditing = false;\n // Reload to revert changes\n this.loadPref();\n }\n resetPref() {\n this.pref.nav = {};\n }\n savePref() {\n if (this.userType === 'customer') {\n return;\n }\n let url = '/api/system/preference/json/scaffold?global=true';\n let method = 'POST';\n if (this.pref.uuid) {\n url = `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`;\n method = 'PUT';\n }\n KRHttp.fetch({\n url,\n method,\n body: JSON.stringify({ nav: this.pref.nav }),\n })\n .then((response) => response.json())\n .then((data) => {\n this.pref = data.data;\n this.isEditing = false;\n })\n .catch((error) => {\n console.error('Failed to save nav customizations:', error);\n });\n }\n loadPref() {\n if (this.userType === 'customer') {\n return;\n }\n KRHttp.fetch({\n url: '/api/system/preference/json/scaffold?global=true',\n method: 'GET',\n })\n .then((response) => response.json())\n .then((data) => {\n const pref = data?.data?.[0];\n if (pref) {\n this.pref = pref;\n }\n })\n .catch(() => {\n // No preferences saved yet\n });\n }\n handleNavItemContextMenu(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n KRContextMenu.open({\n x: e.clientX,\n y: e.clientY,\n items: [\n {\n id: 'edit',\n label: 'Edit Item'\n },\n {\n id: 'divider-1',\n label: '',\n divider: true\n },\n {\n id: 'add-above',\n label: 'Add Item Above'\n },\n {\n id: 'add-below',\n label: 'Add Item Below'\n },\n ],\n }).then((result) => {\n if (!result) {\n return;\n }\n switch (result.id) {\n case 'edit':\n this.openNavItemEdit(item);\n break;\n case 'add-above':\n this.addNavItem(item, 'above');\n break;\n case 'add-below':\n this.addNavItem(item, 'below');\n break;\n }\n });\n }\n /**\n * Opens the nav item edit dialog for customizing an item's properties.\n *\n * Opens `KRNavItemEdit` dialog pre-populated with the item's current values.\n * When the user saves, merges the result into the nav delta to persist\n * customizations like label, icon, URL, and visibility.\n *\n * @param item - The nav item to edit\n */\n openNavItemEdit(item) {\n KRDialog.open(KRNavItemEdit, { data: item }).afterClosed().then((res) => {\n const result = res;\n if (!result) {\n return;\n }\n if (!this.pref.nav[item.id]) {\n this.pref.nav[item.id] = {};\n }\n this.pref.nav[item.id] = {\n ...this.pref.nav[item.id],\n ...result\n };\n this.requestUpdate();\n });\n }\n /**\n * Adds a new custom nav item relative to an existing item.\n *\n * Creates a placeholder item in the nav delta, shifts existing siblings\n * to make room, then opens the edit dialog so the user can configure\n * the new item's label, icon, and URL.\n *\n * @param targetItem - The existing item to position relative to\n * @param position - Whether to insert 'above' or 'below' the target item\n */\n addNavItem(targetItem, position) {\n const customId = `custom-${Date.now()}`;\n const siblings = this.getComputedNav()\n .filter(i => i.parentId === targetItem.parentId)\n .sort((a, b) => a.order - b.order);\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n let newOrder;\n if (position === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing items to make room for the new item\n siblings.forEach((sibling, index) => {\n if (index >= newOrder) {\n if (!this.pref.nav[sibling.id]) {\n this.pref.nav[sibling.id] = {};\n }\n this.pref.nav[sibling.id].order = index + 1;\n }\n });\n // Add the new item and open edit dialog\n const newItem = {\n id: customId,\n type: 'item',\n label: 'New Item',\n order: newOrder,\n parentId: targetItem.parentId,\n active: true,\n };\n this.pref.nav[customId] = newItem;\n this.requestUpdate();\n this.openNavItemEdit(newItem);\n }\n // =========================================================================\n // Navigation Drag & Drop\n // =========================================================================\n /**\n * Initiates a potential drag operation when mouse is pressed on a nav item.\n *\n * Only active in edit mode. Records the starting position and sets up\n * document-level listeners for mouse move and mouse up events. The actual\n * drag doesn't start until the mouse moves more than 5 pixels.\n *\n * @param e - The mouse event\n * @param item - The nav item being pressed\n */\n handleNavItemMouseDown(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n this.draggedNavItemId = item.id;\n this.navItemDragStartY = e.clientY;\n this.isNavItemDragging = false;\n document.addEventListener('mousemove', this.boundHandleMouseMove);\n document.addEventListener('mouseup', this.boundHandleMouseUp);\n }\n /**\n * Handles mouse movement during a nav item drag operation.\n *\n * Initiates dragging after the mouse moves more than 5 pixels (to distinguish\n * from clicks), creates a floating preview element that follows the cursor,\n * and updates the drop target indicator based on mouse position.\n *\n * @param e - The mouse event\n */\n handleMouseMove(e) {\n if (!this.draggedNavItemId) {\n return;\n }\n // Start dragging after moving a few pixels (to distinguish from clicks)\n if (!this.isNavItemDragging && Math.abs(e.clientY - this.navItemDragStartY) > 5) {\n this.isNavItemDragging = true;\n this.classList.add('kr-scaffold--dragging');\n // Create drag preview\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n if (draggedItem) {\n this.navItemDragPreview = document.createElement('div');\n this.navItemDragPreview.className = 'nav-item-drag-preview';\n this.navItemDragPreview.textContent = draggedItem.label;\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n this.shadowRoot?.appendChild(this.navItemDragPreview);\n }\n }\n if (!this.isNavItemDragging) {\n return;\n }\n // Update preview position\n if (this.navItemDragPreview) {\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n }\n // Find drop target based on mouse position\n this.updateNavItemDropTarget(e);\n }\n /**\n * Handles the end of a nav item drag operation.\n *\n * Removes document-level mouse listeners, executes the drop if there's a valid\n * target, and cleans up all drag-related state.\n */\n handleMouseUp() {\n document.removeEventListener('mousemove', this.boundHandleMouseMove);\n document.removeEventListener('mouseup', this.boundHandleMouseUp);\n if (this.isNavItemDragging && this.navItemDropTargetId) {\n this.executeNavItemDrop();\n }\n // Reset all drag state\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.isNavItemDragging = false;\n this.classList.remove('kr-scaffold--dragging');\n if (this.navItemDragPreview) {\n this.navItemDragPreview.remove();\n this.navItemDragPreview = null;\n }\n this.clearNavItemDragExpandTimeout();\n this.requestUpdate();\n }\n /**\n * Determines where a dragged nav item would be dropped based on mouse position.\n *\n * Loops through all nav items and checks if the mouse is hovering over one.\n * For groups, the item is divided into thirds (above/center/below) where\n * \"center\" means drop into the group. For regular items, it's halves (above/below).\n *\n * Also handles auto-expanding collapsed groups when hovering over their center,\n * and validates drops (e.g., prevents dropping a group into another group).\n *\n * Updates `navItemDropTargetId` and `navItemDropPosition` state which are used to render\n * visual drop indicators in the UI.\n *\n * @param e - The mouse event from dragging\n */\n updateNavItemDropTarget(e) {\n // Get all nav items in shadow DOM\n const navItems = this.shadowRoot?.querySelectorAll('.nav-item[data-id]');\n if (!navItems) {\n return;\n }\n let foundTarget = false;\n navItems.forEach((el) => {\n const rect = el.getBoundingClientRect();\n const itemId = el.getAttribute('data-id');\n if (!itemId || itemId === this.draggedNavItemId) {\n return;\n }\n // Skip if mouse is outside this element\n if (e.clientX < rect.left || e.clientX > rect.right ||\n e.clientY < rect.top || e.clientY > rect.bottom) {\n return;\n }\n const item = this.getComputedNav().find(i => i.id === itemId);\n if (!item) {\n return;\n }\n const y = e.clientY - rect.top;\n let position;\n // Determine drop position based on mouse Y position within the item.\n // Groups are divided into thirds: top=above, middle=center (drop into), bottom=below.\n // Regular items are divided in half: top=above, bottom=below.\n if (item.type === 'group') {\n if (y < rect.height / 3) {\n // Top third - drop above the group\n position = 'above';\n this.clearNavItemDragExpandTimeout();\n }\n else if (y > (rect.height * 2) / 3) {\n // Bottom third - drop below the group\n position = 'below';\n this.clearNavItemDragExpandTimeout();\n }\n else {\n // Middle third - drop into the group (as a child)\n position = 'center';\n // Auto-expand collapsed groups after a delay\n if (!this.navItemsExpanded.has(item.id) && !this.navItemDragExpandTimeout) {\n this.expandNavGroupOnDrag(item.id);\n }\n }\n }\n else {\n // Regular items only support above/below, not center\n if (y < rect.height / 2) {\n position = 'above';\n }\n else {\n position = 'below';\n }\n this.clearNavItemDragExpandTimeout();\n }\n // Determine what the new parent would be\n let newParentId;\n if (position === 'center') {\n newParentId = item.id;\n }\n else {\n newParentId = item.parentId;\n }\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n // Don't show drop indicator if invalid drop:\n // 1. Can't drop an item into itself (newParentId === draggedNavItemId)\n // 2. Groups can only exist at the top level, so prevent dropping a group into another group (newParentId !== null means it would be nested)\n if (newParentId === this.draggedNavItemId || (draggedItem?.type === 'group' && newParentId !== null)) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n return;\n }\n // Valid drop target found - store the target item and position (above/below/center)\n // so the UI can render the drop indicator in the correct location\n this.navItemDropTargetId = item.id;\n this.navItemDropPosition = position;\n foundTarget = true;\n });\n // Mouse is not over any valid nav item - clear the drop indicator\n // (e.g., user dragged outside the nav area or over empty space)\n if (!foundTarget) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n }\n this.requestUpdate();\n }\n /**\n * Cancels the pending auto-expand timeout for nav groups during drag.\n * Called when the user moves away from a group's center or stops dragging.\n */\n clearNavItemDragExpandTimeout() {\n if (this.navItemDragExpandTimeout) {\n clearTimeout(this.navItemDragExpandTimeout);\n this.navItemDragExpandTimeout = null;\n }\n }\n /**\n * Auto-expands a collapsed nav group after a delay while dragging over it.\n *\n * Uses a 500ms timeout to prevent groups from expanding too eagerly when the\n * user is just passing over them. Only expands if the user is still hovering\n * over the group's center when the timeout fires.\n *\n * @param itemId - The ID of the group to expand\n */\n expandNavGroupOnDrag(itemId) {\n this.navItemDragExpandTimeout = window.setTimeout(() => {\n if (this.navItemDropTargetId === itemId && this.navItemDropPosition === 'center') {\n this.navItemsExpanded.add(itemId);\n this.requestUpdate();\n }\n this.navItemDragExpandTimeout = null;\n }, 500);\n }\n /**\n * Executes the drop operation after a nav item drag completes.\n *\n * Calculates the new position and parent for the dragged item based on\n * the drop target and position (above/below/center). Updates the navDelta\n * with new order values for the dragged item and shifts siblings as needed.\n */\n executeNavItemDrop() {\n if (!this.draggedNavItemId || !this.navItemDropTargetId) {\n return;\n }\n const allItems = this.getComputedNav();\n const draggedItem = allItems.find(i => i.id === this.draggedNavItemId);\n const targetItem = allItems.find(i => i.id === this.navItemDropTargetId);\n if (!draggedItem || !targetItem) {\n return;\n }\n // Determine the new parentId for the dragged item\n let newParentId;\n if (this.navItemDropPosition === 'center' && targetItem.type === 'group') {\n if (targetItem.id === this.draggedNavItemId) {\n return;\n }\n newParentId = targetItem.id;\n }\n else {\n newParentId = targetItem.parentId;\n }\n if (newParentId === this.draggedNavItemId) {\n return;\n }\n // Get siblings in the destination parent\n const siblings = allItems\n .filter(i => i.parentId === newParentId && i.id !== this.draggedNavItemId)\n .sort((a, b) => a.order - b.order);\n const navDelta = this.pref.nav;\n // Calculate the new order\n let newOrder;\n if (this.navItemDropPosition === 'center') {\n // Dropping into a group - place at the end of its children\n if (siblings.length > 0) {\n newOrder = Math.max(...siblings.map(s => s.order)) + 1;\n }\n else {\n newOrder = 0;\n }\n }\n else {\n // Find where the target item is in the sorted siblings list\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n // Determine insert position based on drop position (above/below target)\n if (targetIndex === -1) {\n newOrder = 0;\n }\n else if (this.navItemDropPosition === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing siblings to make room for the dropped item.\n // Items at or after the insert position get their order bumped up by 1.\n siblings.forEach((sibling, index) => {\n if (!navDelta[sibling.id]) {\n navDelta[sibling.id] = {};\n }\n if (index >= newOrder) {\n navDelta[sibling.id].order = index + 1;\n }\n else {\n navDelta[sibling.id].order = index;\n }\n });\n }\n // Update the dragged item's position and parent in the delta\n if (!navDelta[this.draggedNavItemId]) {\n navDelta[this.draggedNavItemId] = {};\n }\n navDelta[this.draggedNavItemId].order = newOrder;\n navDelta[this.draggedNavItemId].parentId = newParentId;\n // Persist changes and trigger re-render\n this.pref.nav = navDelta;\n this.requestUpdate();\n }\n // =========================================================================\n // User Menu\n // =========================================================================\n toggleUserMenu() {\n this.isUserMenuOpen = !this.isUserMenuOpen;\n }\n closeUserMenu() {\n this.isUserMenuOpen = false;\n }\n handleCustomize() {\n this.closeUserMenu();\n this.startEditing();\n }\n // =========================================================================\n // Rendering\n // =========================================================================\n renderNormalFooter() {\n if (!this.user) {\n return nothing;\n }\n const initials = this.user.name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n // todo - use a reusable menu component\n return html `\n <div class=\"user-menu-container\">\n ${this.isUserMenuOpen ? html `\n <div class=\"user-menu\">\n <button class=\"user-menu__item\" @click=${this.handleCustomize}>\n Customize Navigation\n </button>\n </div>\n ` : nothing}\n <div class=\"user\" @click=${this.toggleUserMenu}>\n <div class=\"user__avatar\">\n ${this.user.avatar\n ? html `<img src=${this.user.avatar} alt=${this.user.name} />`\n : initials}\n </div>\n <div class=\"user__info\">\n <div class=\"user__name\">${this.user.name}</div>\n ${this.user.email ? html `<div class=\"user__email\">${this.user.email}</div>` : nothing}\n </div>\n </div>\n </div>\n `;\n }\n // todo - review\n renderEditFooter() {\n return html `\n <div class=\"edit-actions\">\n <button class=\"edit-actions__btn edit-actions__btn--primary\" @click=${this.savePref}>\n Save\n </button>\n <div class=\"edit-actions__secondary\">\n <button class=\"edit-actions__btn\" @click=${this.resetPref}>\n Reset\n </button>\n <button class=\"edit-actions__btn\" @click=${this.cancelEditing}>\n Cancel\n </button>\n </div>\n </div>\n `;\n }\n /**\n * Renders a navigation item as either a group or a link.\n *\n * Groups render as expandable `<button>` elements with a chevron indicator and\n * nested children. Items render as `<a>` anchor links with href navigation.\n *\n * Both types support drag-and-drop reordering in edit mode, context menus for\n * customization, and visual indicators for active/hidden/drop-target states.\n *\n * Icons use SVG strings and fall back to `defaultNavItemIcon` when not provided.\n * Icons are only rendered for top-level items, not for children nested within groups.\n *\n * @param item - The flat nav item data to render\n * @param isChild - Whether this item is nested within a group (affects icon rendering)\n * @returns Lit HTML template for the nav item\n */\n renderNavItem(item, isChild = false) {\n if (item.type === 'section') {\n return html `\n <div class=\"nav-section\">${item.label}</div>\n `;\n }\n if (item.type === 'group') {\n const children = this.getNavItemChildren(item.id);\n return html `\n <button\n class=${classMap({\n 'nav-item': true,\n 'nav-item--expanded': this.navItemsExpanded.has(item.id),\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n 'nav-item--drop-center': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'center',\n })}\n data-id=\"${item.id}\"\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n <svg\n class=\"nav-item__chevron\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path\n d=\"M6 9l6 6 6-6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <div class=${classMap({\n 'nav-group': true,\n 'nav-group--expanded': this.navItemsExpanded.has(item.id),\n })}>\n ${children.map((child) => this.renderNavItem(child, true))}\n </div>\n `;\n }\n return html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': this.activeNavItemId === item.id,\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n })}\n data-id=\"${item.id}\"\n href=${this.resolveUrl(item)}\n target=${item.external ? '_blank' : nothing}\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed && !isChild ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n </a>\n `;\n }\n // todo - don't hardcode breadcrumbs\n render() {\n const topLevelItems = this.getNavItemChildren(null);\n // Use unfiltered count to determine if search should show (so it doesn't disappear while typing)\n const totalTopLevelItems = this.getComputedNav().filter(item => item.parentId === null).length;\n return html `\n <div class=${classMap({\n 'progress': true,\n 'progress--loading': this.pendingRequests > 0,\n })}>\n <div class=\"progress__track\"></div>\n <div class=\"progress__bar progress__bar--primary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n <div class=\"progress__bar progress__bar--secondary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n </div>\n \n ${this.subbar ? html `\n <kr-subbar\n menu\n .breadcrumbs=${this.breadcrumbs}\n @menu-click=${this.handleMenuClick}\n >\n <slot name=\"subbar\"></slot>\n </kr-subbar>\n ` : nothing}\n\n <div class=\"wrapper\">\n ${this.navEnabled ? html `\n <nav class=${classMap({\n 'nav': true,\n 'nav--scrolled': this.isNavScrolled,\n 'nav--opened': !this.subbar || this.isNavOpened,\n })}>\n <div class=\"nav-header\" @click=${this.handleNavHeaderClick}>\n ${this.label\n ? html `<span class=\"nav-title\">${this.label}</span>`\n : this.logo\n ? html `<img\n class=\"nav-logo\"\n src=${this.logo}\n alt=\"Logo\"\n />`\n : nothing}\n </div>\n <div class=\"nav-content\" @scroll=${this.handleNavScroll}>\n ${totalTopLevelItems > 20 ? html `\n <div class=\"nav-search\">\n <div class=\"nav-search__wrapper\">\n <span class=\"nav-search__icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\n </svg>\n </span>\n <input\n class=\"nav-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n .value=${this.navQuery}\n @input=${this.handleNavQueryChange}\n />\n ${this.navQuery ? html `\n <button class=\"nav-search__clear\" @click=${this.handleNavQueryClear}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\n </svg>\n </button>\n ` : nothing}\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-items\">\n ${topLevelItems.map((item) => this.renderNavItem(item))}\n </div>\n </div>\n <!-- <div class=\"nav-footer\">\n ${this.isEditing ? this.renderEditFooter() : this.renderNormalFooter()}\n </div> -->\n </nav>\n ` : nothing}\n\n <main class=\"main\">\n <slot></slot>\n </main>\n </div>\n \n `;\n }\n};\nKRScaffold.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n font-size: 14px;\n --kr-scaffold-nav-width: 250px;\n\n /* Default to light scheme */\n --kr-scaffold-nav-bg: #F3F7FC;\n --kr-scaffold-nav-text: #000000;\n --kr-scaffold-nav-text-active: #000000;\n --kr-scaffold-nav-hover: #f3f4f6;\n --kr-scaffold-nav-active-bg: #e5e7eb;\n --kr-scaffold-nav-border: rgb(229, 229, 228);\n --kr-scaffold-nav-divider: #e5e7eb;\n --kr-scaffold-nav-search-bg: #ffffff;\n --kr-scaffold-nav-search-border: #d1d5db;\n }\n\n /* Dark scheme */\n :host([scheme=\"dark\"]) {\n --kr-scaffold-nav-bg: #10172a;\n --kr-scaffold-nav-text: rgb(255 255 255 / 80%);\n --kr-scaffold-nav-text-active: #ffffff;\n --kr-scaffold-nav-hover: rgba(255, 255, 255, 0.05);\n --kr-scaffold-nav-active-bg: rgb(255 255 255 / 12%);\n --kr-scaffold-nav-border: transparent;\n --kr-scaffold-nav-divider: rgba(255, 255, 255, 0.06);\n --kr-scaffold-nav-search-bg: rgba(255, 255, 255, 0.15);\n --kr-scaffold-nav-search-border: rgba(255, 255, 255, 0.3);\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Nav */\n .nav {\n width: var(--kr-scaffold-nav-width);\n background: var(--kr-scaffold-nav-bg);\n color: var(--kr-scaffold-nav-text);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n border-right: 1px solid var(--kr-scaffold-nav-border);\n transition: margin-left 0.3s ease;\n margin-left: calc(-1 * var(--kr-scaffold-nav-width));\n flex: 1;\n max-width: var(--kr-scaffold-nav-width);\n }\n\n .nav--opened {\n margin-left: 0;\n }\n\n .wrapper {\n display: flex;\n flex: 1;\n min-height: 0;\n max-height: 100%;\n height: 100%;\n }\n\n .nav-header {\n padding: 20px;\n display: flex;\n align-items: center;\n position: relative;\n z-index: 1;\n transition: box-shadow 0.2s ease;\n cursor: pointer;\n }\n\n .nav--scrolled .nav-header {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n\n .nav-logo {\n max-width: 100%;\n height: 32px;\n }\n\n .nav-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--kr-scaffold-nav-text-active);\n letter-spacing: .2px;\n }\n\n .nav-search {\n padding: 4px 0 8px;\n }\n\n .nav-search__wrapper {\n display: flex;\n align-items: center;\n background: var(--kr-scaffold-nav-search-bg);\n border-radius: 8px;\n padding: 0 12px;\n height: 40px;\n gap: 8px;\n border: 1px solid var(--kr-scaffold-nav-search-border);\n transition: all 0.15s ease;\n }\n\n .nav-search__icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n opacity: 0.6;\n }\n\n .nav-search__icon svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-search__input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-family: inherit;\n min-width: 0;\n }\n\n .nav-search__input::placeholder {\n color: var(--kr-scaffold-nav-text);\n opacity: 0.7;\n }\n\n .nav-search__clear {\n width: 18px;\n height: 18px;\n padding: 0;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n }\n\n .nav-search__clear:hover {\n opacity: 1;\n }\n\n .nav-search__clear svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 9px 12px 8px;\n }\n\n .nav-footer {\n padding: 12px;\n border-top: 1px solid var(--kr-scaffold-nav-divider);\n }\n\n .user {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .user:hover {\n background: var(--kr-scaffold-nav-hover);\n }\n\n .user__avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--kr-scaffold-avatar-bg, #beea4e);\n color: var(--kr-scaffold-avatar-text, #10172a);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user__info {\n flex: 1;\n min-width: 0;\n }\n\n .user__name {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-scaffold-nav-text-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user__email {\n font-size: 12px;\n color: var(--kr-scaffold-nav-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-menu-container {\n position: relative;\n }\n\n .user-menu {\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n margin-bottom: 8px;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n }\n\n .user-menu__item {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .user-menu__item:hover {\n background: var(--kr-scaffold-nav-hover);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .user-menu__divider {\n height: 1px;\n background: var(--kr-scaffold-nav-divider);\n margin: 4px 0;\n }\n\n /* Main */\n .main {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n background: transparent;\n display: flex;\n flex-direction: column;\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n color: #6b7280;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n .main__content {\n flex: 1;\n overflow-y: auto;\n }\n\n /* Nav Items */\n .nav-items {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 0 12px;\n height: 32px;\n border-radius: 8px;\n color: var(--kr-scaffold-nav-text);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n text-align: left;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: #F3F7FC;\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .nav-item--active,\n .nav-item--active:hover {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .nav-item__icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .nav-item__icon svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n }\n\n .nav-item__label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: 0.14px;\n }\n\n .nav-item__chevron {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform: rotate(-90deg);\n stroke: currentColor;\n }\n\n .nav-item--expanded .nav-item__chevron {\n transform: rotate(0deg);\n }\n\n .nav-group {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 0;\n }\n\n .nav-group--expanded {\n height: auto;\n }\n\n .nav-group .nav-item {\n padding: 0 12px 0 44px;\n height: 32px;\n font-size: 13px;\n font-weight: 400;\n margin-top: 2px;\n flex-shrink: 0;\n }\n\n .nav-group .nav-item--active,\n .nav-group .nav-item--active:hover {\n font-weight: 700;\n }\n\n .nav-group .nav-item:first-child {\n margin-top: 0;\n }\n\n /* Nav items in groups when icons are hidden */\n :host(:not([nav-icons-displayed])) .nav-group .nav-item {\n padding-left: 24px;\n }\n\n /* Sections */\n .nav-section {\n padding: 16px 12px 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.55px;\n color: var(--kr-scaffold-nav-text);\n opacity: 0.6;\n }\n\n .nav-section:first-child {\n padding-top: 0;\n }\n\n /* Edit mode actions */\n .edit-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .edit-actions__btn {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: var(--kr-scaffold-nav-hover);\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .edit-actions__btn:hover {\n background: var(--kr-scaffold-nav-active-bg);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .edit-actions__btn--primary {\n background: #beea4e;\n color: #10172a;\n }\n\n .edit-actions__btn--primary:hover {\n background: #d4f472;\n color: #10172a;\n }\n\n .edit-actions__secondary {\n display: flex;\n gap: 8px;\n }\n\n .edit-actions__secondary .edit-actions__btn {\n flex: 1;\n }\n\n /* Hidden/inactive items in edit mode */\n .nav-item--hidden {\n opacity: 0.4;\n font-style: italic;\n }\n\n .nav-item--hidden:hover {\n opacity: 0.6;\n }\n\n /* Dragging state */\n :host(.kr-scaffold--dragging),\n :host(.kr-scaffold--dragging) * {\n cursor: grabbing;\n user-select: none;\n }\n\n .nav-item-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 1000;\n opacity: 0.9;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n padding: 0 12px;\n height: 40px;\n min-width: 200px;\n display: flex;\n align-items: center;\n gap: 16px;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-weight: 500;\n }\n\n /* Drop indicator */\n .nav-item--drop-above,\n .nav-item--drop-below,\n .nav-item--drop-center {\n position: relative;\n }\n\n .nav-item--drop-above::before,\n .nav-item--drop-below::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 2px;\n background: #beea4e;\n }\n\n .nav-item--drop-above::before {\n top: 0;\n }\n\n .nav-item--drop-below::after {\n bottom: 0;\n }\n\n .nav-item--drop-center {\n background: var(--kr-scaffold-nav-active-bg);\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n //background: #f9fafb;\n background: #beea4e;\n border-top: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n //color: #6b7280;\n color: #10172a;\n font-size: 13px;\n font-weight: 600;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n /* Progress bar */\n .progress {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n overflow-x: hidden;\n z-index: 1000;\n display: none;\n }\n\n .progress--loading {\n display: block;\n }\n\n .progress__track {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n background: rgba(190, 234, 78, 0.3);\n }\n\n .progress__bar {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n transform-origin: left center;\n }\n\n .progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n background: #beea4e;\n }\n\n .progress__bar--primary {\n left: -145.166611%;\n }\n\n .progress--loading .progress__bar--primary {\n animation: progress-primary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--primary .progress__bar-inner {\n animation: progress-primary-scale 2s infinite linear;\n }\n\n .progress__bar--secondary {\n left: -54.888891%;\n }\n\n .progress--loading .progress__bar--secondary {\n animation: progress-secondary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--secondary .progress__bar-inner {\n animation: progress-secondary-scale 2s infinite linear;\n }\n\n @keyframes progress-primary-translate {\n 0% {\n transform: translateX(0);\n }\n 20% {\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n transform: translateX(0);\n }\n 59.15% {\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n transform: translateX(83.67142%);\n }\n 100% {\n transform: translateX(200.611057%);\n }\n }\n\n @keyframes progress-primary-scale {\n 0% {\n transform: scaleX(0.08);\n }\n 36.65% {\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n transform: scaleX(0.08);\n }\n 69.15% {\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n transform: scaleX(0.661479);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n\n @keyframes progress-secondary-translate {\n 0% {\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n transform: translateX(0);\n }\n 25% {\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n transform: translateX(37.651913%);\n }\n 48.35% {\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n transform: translateX(84.386165%);\n }\n 100% {\n transform: translateX(160.277782%);\n }\n }\n\n @keyframes progress-secondary-scale {\n 0% {\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n transform: scaleX(0.08);\n }\n 19.15% {\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n transform: scaleX(0.457104);\n }\n 44.15% {\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n transform: scaleX(0.72796);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n `;\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"logo\", void 0);\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"label\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'home-url'\n })\n], KRScaffold.prototype, \"homeUrl\", void 0);\n__decorate([\n property({\n type: String,\n reflect: true\n })\n], KRScaffold.prototype, \"scheme\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"nav\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-icons-displayed',\n reflect: true\n })\n], KRScaffold.prototype, \"navIconsDisplayed\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-expanded'\n })\n], KRScaffold.prototype, \"navExpanded\", void 0);\n__decorate([\n property({ type: Object })\n], KRScaffold.prototype, \"user\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRScaffold.prototype, \"subbar\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-enabled'\n })\n], KRScaffold.prototype, \"navEnabled\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'user-type'\n })\n], KRScaffold.prototype, \"userType\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"breadcrumbs\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemsExpanded\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navQuery\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"activeNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavScrolled\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavOpened\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isEditing\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isUserMenuOpen\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pref\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"draggedNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropTargetId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropPosition\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pendingRequests\", void 0);\nKRScaffold = __decorate([\n customElement('kr-scaffold')\n], KRScaffold);\nexport { KRScaffold };\n//# sourceMappingURL=scaffold.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary navigation component for screens within the scaffold.\n * Provides a simple nav drawer for sub-navigation within a page/screen.\n * Typically used when viewing details of a specific entity (e.g., Company, Contact).\n *\n * ## Usage\n * ```html\n * <kr-screen-nav\n * label=\"Acme Corporation\"\n * subLabel=\"Company\"\n * .items=${[\n * { id: 'overview', label: 'Overview', url: '/companies/123/overview' },\n * { id: 'contacts', label: 'Contacts', url: '/companies/123/contacts' },\n * { id: 'activity', label: 'Activity', url: '/companies/123/activity' },\n * ]}\n * activeId=\"overview\"\n * >\n * <div>Screen content here</div>\n * </kr-screen-nav>\n * ```\n *\n * @slot - The main screen content\n *\n * @property {string} label - Main label (e.g., entity name like \"Acme Corporation\")\n * @property {string} subLabel - Sub label (e.g., entity type like \"Company\")\n * @property {KRScreenNavItem[]} items - Navigation items as JSON array\n * @property {string} activeId - Currently active item ID\n */\nlet KRScreenNav = class KRScreenNav extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Main label (e.g., entity name like \"Acme Corporation\")\n */\n this.label = '';\n /**\n * Sub label (e.g., entity type like \"Company\")\n */\n this.subLabel = '';\n /**\n * Navigation items\n */\n this.items = [];\n /**\n * Currently active item ID. Auto-detected from the URL by default.\n * Can be set explicitly by the parent to override.\n */\n this.activeId = '';\n this.handlePopstate = () => {\n this.syncActiveFromUrl();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n // Defer so property bindings (.items) have been applied\n requestAnimationFrame(() => this.syncActiveFromUrl());\n window.addEventListener('popstate', this.handlePopstate);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopstate);\n }\n /**\n * Handles click events on navigation items.\n *\n * Dispatches a cancelable `nav-item-click` custom event.\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScreenNavDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n this.activeId = item.id;\n }\n syncActiveFromUrl() {\n const pathname = window.location.pathname;\n const match = this.items.find((item) => {\n if (!item.url) {\n return false;\n }\n // Absolute URL — exact match\n if (item.url.startsWith('/')) {\n return pathname === item.url;\n }\n // Relative URL — match against the end of the pathname\n return pathname.endsWith('/' + item.url);\n });\n if (match) {\n this.activeId = match.id;\n }\n }\n render() {\n return html `\n <nav class=\"nav\">\n ${this.label ? html `\n <div class=\"nav-header\">\n <div class=\"nav-header__text\">\n ${this.subLabel ? html `<div class=\"nav-header__subtitle\">${this.subLabel}</div>` : nothing}\n <div class=\"nav-header__title\">${this.label}</div>\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-content\">\n <div class=\"nav-items\">\n ${this.items.map((item) => html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': item.id === this.activeId\n })}\n href=${item.url || '#'}\n @click=${(e) => this.handleNavItemClick(e, item)}\n >\n ${item.label}\n </a>\n `)}\n </div>\n </div>\n </nav>\n <main class=\"content\">\n <div class=\"content__main\">\n <slot></slot>\n </div>\n </main>\n `;\n }\n};\nKRScreenNav.styles = css `\n :host {\n display: flex;\n height: 100%;\n }\n\n .nav {\n width: 200px;\n background: white;\n border-right: 1px solid #e5e7eb;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n }\n\n .nav-header {\n padding: 20px 16px 16px;\n }\n\n .nav-header__text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .nav-header__title {\n font-size: 20px;\n font-weight: 600;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .nav-header__subtitle {\n font-size: 12px;\n font-weight: 400;\n color: rgb(0 0 0 / 70%);\n line-height: 1;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 0 12px;\n }\n\n .nav-items {\n display: flex;\n flex-direction: column;\n padding: 0 8px;\n }\n\n .nav-item {\n display: block;\n padding: 0 12px;\n height: 32px;\n line-height: 32px;\n letter-spacing: 0.13px;\n color: rgb(32, 33, 36);\n text-decoration: none;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n border-radius: 8px;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: rgba(0, 0, 0, 0.04);\n color: #163052;\n }\n\n .nav-item--active {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .content__main {\n flex: 1;\n overflow-y: auto;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"subLabel\", void 0);\n__decorate([\n property({ type: Array })\n], KRScreenNav.prototype, \"items\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"activeId\", void 0);\nKRScreenNav = __decorate([\n customElement('kr-screen-nav')\n], KRScreenNav);\nexport { KRScreenNav };\n//# sourceMappingURL=screen-nav.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * Detail screen component for viewing/editing entity details.\n * Displays a form-like layout with labeled fields centered in a single column.\n *\n * ## Usage\n * ```html\n * <kr-screen-detail title=\"Company Details\">\n * <kr-button slot=\"actions\">Save</kr-button>\n * <kr-text-field label=\"Company Name\" value=\"Acme Corporation\"></kr-text-field>\n * <kr-text-field label=\"Industry\" value=\"Technology\"></kr-text-field>\n * <kr-text-field label=\"Website\" value=\"https://acme.com\"></kr-text-field>\n * </kr-screen-detail>\n * ```\n *\n * @slot - Form fields and content (centered, max-width 480px)\n * @slot actions - Action buttons displayed in the header on the right\n *\n * @property {string} title - Section title (e.g., \"Company Details\")\n */\nlet KRScreenDetail = class KRScreenDetail extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section title\n */\n this.title = '';\n }\n render() {\n return html `\n <div class=\"header\">\n <h2 class=\"header__title\">${this.title}</h2>\n <div class=\"header__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n};\nKRScreenDetail.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .header {\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px;\n background: #ffffff;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .header__title {\n font-size: 18px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .header__actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n display: flex;\n justify-content: center;\n }\n\n .content__inner {\n width: 100%;\n max-width: 700px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenDetail.prototype, \"title\", void 0);\nKRScreenDetail = __decorate([\n customElement('kr-screen-detail')\n], KRScreenDetail);\nexport { KRScreenDetail };\n//# sourceMappingURL=screen-detail.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary bar component that sits below the main app bar.\n *\n * @slot - Content to display in the subbar (right side)\n */\nlet KRSubbar = class KRSubbar extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Array of breadcrumb items to display\n */\n this.breadcrumbs = [];\n /**\n * Whether to show the menu icon\n */\n this.menu = false;\n }\n _handleMenuClick() {\n this.dispatchEvent(new CustomEvent('menu-click', {\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Resolves a breadcrumb URL by prepending the base href.\n *\n * This method is used for setting href attributes on anchor elements\n * (so Cmd/Ctrl+click opens correct URL in new tab).\n *\n * The original crumb.url is kept intact (without base href) and passed to Angular\n * via the breadcrumb-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - crumb.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(crumb) = \"/operations/settings\" (used for href)\n */\n resolveUrl(crumb) {\n if (!crumb.url) {\n return '#';\n }\n // Remove leading slash from url if present, then combine with base\n let path = crumb.url;\n if (crumb.url.startsWith('/')) {\n path = crumb.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n /**\n * Handles click on a breadcrumb link.\n * Dispatches a cancelable event so SPA routers can intercept.\n */\n _handleBreadcrumbClick(e, crumb, isCurrent) {\n // Don't navigate if it's the current/last breadcrumb\n if (isCurrent || !crumb.url) {\n e.preventDefault();\n return;\n }\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n const breadcrumbEvent = new CustomEvent('breadcrumb-click', {\n detail: { breadcrumb: crumb },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(breadcrumbEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (breadcrumbEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n render() {\n return html `\n ${this.menu ? html `\n <div class=\"menu\" @click=${this._handleMenuClick}>\n <svg\n class=\"menu__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <line\n x1=\"3\"\n y1=\"6\"\n x2=\"21\"\n y2=\"6\"\n ></line>\n <line\n x1=\"3\"\n y1=\"12\"\n x2=\"21\"\n y2=\"12\"\n ></line>\n <line\n x1=\"3\"\n y1=\"18\"\n x2=\"21\"\n y2=\"18\"\n ></line>\n </svg>\n </div>\n ` : nothing}\n <div class=\"breadcrumbs\">\n ${this.breadcrumbs.map((crumb, index) => {\n const isCurrent = index === this.breadcrumbs.length - 1;\n return html `\n ${index > 0 ? html `<span class=\"breadcrumb-separator\">/</span>` : ''}\n <a\n class=${classMap({\n 'breadcrumb': true,\n 'breadcrumb--current': isCurrent\n })}\n href=${this.resolveUrl(crumb)}\n @click=${(e) => this._handleBreadcrumbClick(e, crumb, isCurrent)}\n >${crumb.label}</a>\n `;\n })}\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n\n `;\n }\n};\nKRSubbar.styles = css `\n :host {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 40px;\n background: #E2E9F6;\n border-bottom: 1px solid rgb(229, 229, 228);\n align-items: center;\n padding: 0 16px;\n width: 100%;\n flex-shrink: 0;\n }\n\n .breadcrumbs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n flex: 1;\n }\n\n .breadcrumb {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n font-size: 13px;\n }\n\n .breadcrumb:hover {\n text-decoration: underline;\n }\n\n .breadcrumb--current {\n cursor: default;\n }\n\n .breadcrumb--current:hover {\n text-decoration: none;\n }\n\n .breadcrumb-separator {\n color: #9ca3af;\n font-size: 12px;\n }\n\n .content {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n .menu {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n cursor: pointer;\n }\n\n .menu__icon {\n width: 18px;\n height: 18px;\n }\n `;\n__decorate([\n property({ type: Array })\n], KRSubbar.prototype, \"breadcrumbs\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSubbar.prototype, \"menu\", void 0);\nKRSubbar = __decorate([\n customElement('kr-subbar')\n], KRSubbar);\nexport { KRSubbar };\n//# sourceMappingURL=subbar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nexport class KRRouter {\n static configure(config) {\n KRRouter.base = config.base;\n KRRouter.routes = config.routes;\n // Intercept <a> clicks for client-side navigation\n window.addEventListener('click', (e) => {\n const anchor = e.composedPath().find(el => el instanceof HTMLAnchorElement);\n if (!anchor) {\n return;\n }\n if (anchor.origin !== window.location.origin) {\n return;\n }\n if (!anchor.pathname.startsWith(KRRouter.base)) {\n return;\n }\n e.preventDefault();\n KRRouter.navigate(anchor.pathname);\n });\n }\n static navigate(path) {\n let fullPath = path;\n if (!path.startsWith('/')) {\n fullPath = KRRouter.base + '/' + path;\n }\n window.history.pushState({}, '', fullPath);\n window.dispatchEvent(new PopStateEvent('popstate'));\n }\n static getParams() {\n const matched = KRRouter.matchAll();\n const params = {};\n for (const match of matched) {\n for (const key in match.params) {\n params[key] = decodeURIComponent(match.params[key]);\n }\n }\n return params;\n }\n static outlet(level) {\n const matched = KRRouter.matchAll();\n if (level >= matched.length) {\n return null;\n }\n const match = matched[level];\n const tag = match.route.component;\n const cached = KRRouter.elementCache.get(level + ':' + tag);\n if (cached) {\n return cached;\n }\n // Clear old cache entry for this level\n for (const key of KRRouter.elementCache.keys()) {\n if (key.startsWith(level + ':')) {\n KRRouter.elementCache.delete(key);\n }\n }\n const el = document.createElement(tag);\n KRRouter.elementCache.set(level + ':' + tag, el);\n return el;\n }\n static matchAll() {\n const path = window.location.pathname;\n let relative = path;\n if (path.startsWith(KRRouter.base)) {\n relative = path.slice(KRRouter.base.length);\n }\n const segments = relative.split('/').filter(s => s);\n return KRRouter.matchRoutes(KRRouter.routes, segments);\n }\n static matchRoutes(routes, segments) {\n for (const route of routes) {\n const routeSegments = route.path.split('/').filter(s => s);\n if (routeSegments.length === 0 && segments.length === 0) {\n return [{\n route,\n params: {}\n }];\n }\n if (routeSegments.length === 0) {\n continue;\n }\n if (segments.length < routeSegments.length) {\n continue;\n }\n const params = {};\n let matched = true;\n for (let i = 0; i < routeSegments.length; i++) {\n if (routeSegments[i].startsWith(':')) {\n params[routeSegments[i].slice(1)] = segments[i];\n }\n else if (routeSegments[i] !== segments[i]) {\n matched = false;\n break;\n }\n }\n if (!matched) {\n continue;\n }\n const remaining = segments.slice(routeSegments.length);\n // If there are remaining segments but no children, this route doesn't fully match — try next route\n if (remaining.length > 0 && !route.children) {\n continue;\n }\n const result = [{\n route,\n params\n }];\n if (route.children && remaining.length > 0) {\n const childMatches = KRRouter.matchRoutes(route.children, remaining);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n // No remaining segments + default child — redirect\n if (route.children && remaining.length === 0 && route.default) {\n window.history.replaceState({}, '', window.location.pathname + '/' + route.default);\n const childMatches = KRRouter.matchRoutes(route.children, [route.default]);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n return result;\n }\n return [];\n }\n}\nKRRouter.base = '';\nKRRouter.routes = [];\nKRRouter.elementCache = new Map();\nlet KRRouterOutlet = class KRRouterOutlet extends LitElement {\n constructor() {\n super(...arguments);\n this.level = -1;\n this.handlePopState = () => {\n this.requestUpdate();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.level = this.detectLevel();\n window.addEventListener('popstate', this.handlePopState);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopState);\n }\n detectLevel() {\n let level = 0;\n let node = this;\n while (node) {\n if (node instanceof ShadowRoot) {\n node = node.host;\n continue;\n }\n if (node instanceof HTMLElement && node.tagName === 'KR-ROUTER-OUTLET' && node !== this) {\n level++;\n }\n if (node instanceof HTMLElement) {\n node = node.parentNode;\n }\n else {\n node = null;\n }\n }\n return level;\n }\n render() {\n const el = KRRouter.outlet(this.level);\n if (!el) {\n return html ``;\n }\n return html `${el}`;\n }\n};\nKRRouterOutlet.styles = css `\n :host {\n display: block;\n height: 100%;\n }\n `;\nKRRouterOutlet = __decorate([\n customElement('kr-router-outlet')\n], KRRouterOutlet);\nexport { KRRouterOutlet };\n//# sourceMappingURL=router.js.map","/**\n * marked v12.0.2 - a markdown parser\n * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n // precede setext continuation with 4 spaces so it isn't a setext\n let text = cap[0].replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1');\n text = rtrim(text.replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n (list.items[list.items.length - 1]).text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = '\\\\p{P}\\\\p{S}';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n }\n else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape$1(lang)\n + '\">'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n blockquote(quote) {\n return `<blockquote>\\n${quote}</blockquote>\\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `<h${level}>${text}</h${level}>\\n`;\n }\n hr() {\n return '<hr>\\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(text, task, checked) {\n return `<li>${text}</li>\\n`;\n }\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph(text) {\n return `<p>${text}</p>\\n`;\n }\n table(header, body) {\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow(content) {\n return `<tr>\\n${content}</tr>\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `<strong>${text}</strong>`;\n }\n em(text) {\n return `<em>${text}</em>`;\n }\n codespan(text) {\n return `<code>${text}</code>`;\n }\n br() {\n return '<br>';\n }\n del(text) {\n return `<del>${text}</del>`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${title}\"`;\n }\n out += '>';\n return out;\n }\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n em(text) {\n return text;\n }\n codespan(text) {\n return text;\n }\n del(text) {\n return text;\n }\n html(text) {\n return text;\n }\n text(text) {\n return text;\n }\n link(href, title, text) {\n return '' + text;\n }\n image(href, title, text) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const genericToken = token;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n const headingToken = token;\n out += this.renderer.heading(this.parseInline(headingToken.tokens), headingToken.depth, unescape(this.parseInline(headingToken.tokens, this.textRenderer)));\n continue;\n }\n case 'code': {\n const codeToken = token;\n out += this.renderer.code(codeToken.text, codeToken.lang, !!codeToken.escaped);\n continue;\n }\n case 'table': {\n const tableToken = token;\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < tableToken.header.length; j++) {\n cell += this.renderer.tablecell(this.parseInline(tableToken.header[j].tokens), { header: true, align: tableToken.align[j] });\n }\n header += this.renderer.tablerow(cell);\n let body = '';\n for (let j = 0; j < tableToken.rows.length; j++) {\n const row = tableToken.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), { header: false, align: tableToken.align[k] });\n }\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n const blockquoteToken = token;\n const body = this.parse(blockquoteToken.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n const listToken = token;\n const ordered = listToken.ordered;\n const start = listToken.start;\n const loose = listToken.loose;\n let body = '';\n for (let j = 0; j < listToken.items.length; j++) {\n const item = listToken.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.renderer.checkbox(!!checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape$1(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { marked } from 'marked';\n/**\n * AI chatbot component with SSE streaming.\n *\n * Accepts a `send` callback that returns a streaming Response (SSE format).\n * Parses the stream for text tokens, status updates, and errors.\n * Dispatches a `stream-event` custom event for every SSE message so consumers can react.\n *\n * ## SSE Stream Format\n * The component expects `data:` lines with JSON payloads containing a `type` field:\n * - `STATUS` — `{ type: \"STATUS\", message: \"Thinking...\" }`\n * - `RESPONSE_PART` — `{ type: \"RESPONSE_PART\", message: \"token text\" }`\n * - `TOOL_RESULT` — `{ type: \"TOOL_RESULT\", message: \"tool_name\", data: {...} }`\n * - `ERROR` — `{ type: \"ERROR\", message: \"Something went wrong\" }`\n * - `HEARTBEAT` — `{ type: \"HEARTBEAT\" }` (ignored)\n *\n * The final event should include `finished: true` to signal stream completion.\n *\n * ## Usage\n * ```html\n * <kr-chatbot\n * title=\"AI Assistant\"\n * .send=${(params) => {\n * return fetch('/api/ai/chat/stream', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json', 'Accept': 'text/event-stream' },\n * credentials: 'include',\n * body: JSON.stringify({ userText: params.message })\n * });\n * }}\n * ></kr-chatbot>\n * ```\n *\n * @slot - Optional slot content displayed above the messages area\n *\n * @fires message-submit - When the user sends a message. Cancelable. Detail: `{ message: string }`\n * @fires stream-event - Dispatched for every SSE message received. Detail contains the parsed event data.\n */\nlet KRChatbot = class KRChatbot extends LitElement {\n constructor() {\n super(...arguments);\n // --- Private properties ---\n this._reader = null;\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._userHasScrolledUp = false;\n this._isDragging = false;\n this._isResizing = false;\n this._overlay = null;\n this._resizeDir = '';\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dragStartLeft = 0;\n this._dragStartTop = 0;\n this._resizeStartW = 0;\n this._resizeStartH = 0;\n // --- @property (public API) ---\n /**\n * Callback function for sending messages. Receives the user's message and\n * current conversation history. Must return a Response with a streaming SSE body.\n */\n this.send = null;\n /**\n * Callback function called when the user clears the conversation.\n * Must return a Promise — messages are only cleared if it resolves.\n */\n this.clear = null;\n /**\n * Callback function called on init to load existing conversation messages.\n * Must return a Promise that resolves with an array of KRChatbotMessage.\n */\n this.load = null;\n /**\n * Conversation messages. Can be set externally for initial messages.\n * Updated internally as the conversation progresses.\n */\n this.messages = [];\n /**\n * Header title text.\n */\n this.title = 'Kat';\n /**\n * Header subtitle text (shown below title with a green status dot).\n */\n this.subtitle = '';\n /**\n * Input placeholder text.\n */\n this.placeholder = 'Type a message...';\n /**\n * Whether the chat panel is open. Only relevant in floating mode.\n */\n this.opened = false;\n // --- @state (internal) ---\n this._inputValue = '';\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n this._handleMouseMove = (e) => {\n if (this._isDragging) {\n let newLeft = this._dragStartLeft + (e.clientX - this._dragStartX);\n let newTop = this._dragStartTop + (e.clientY - this._dragStartY);\n const w = this._panelEl.offsetWidth;\n newLeft = Math.max(-w + 48, Math.min(newLeft, window.innerWidth - 48));\n newTop = Math.max(0, Math.min(newTop, window.innerHeight - 48));\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n else if (this._isResizing) {\n const dx = e.clientX - this._dragStartX;\n const dy = e.clientY - this._dragStartY;\n const minW = 340;\n const minH = 380;\n const maxW = window.innerWidth * 0.9;\n const maxH = window.innerHeight - 72;\n let newW = this._resizeStartW;\n let newH = this._resizeStartH;\n let newLeft = this._dragStartLeft;\n let newTop = this._dragStartTop;\n if (this._resizeDir.includes('e')) {\n newW = Math.max(minW, Math.min(this._resizeStartW + dx, maxW));\n }\n if (this._resizeDir.includes('w')) {\n newW = Math.max(minW, Math.min(this._resizeStartW - dx, maxW));\n newLeft = this._dragStartLeft + (this._resizeStartW - newW);\n }\n if (this._resizeDir.includes('s')) {\n newH = Math.max(minH, Math.min(this._resizeStartH + dy, maxH));\n }\n if (this._resizeDir.includes('n')) {\n newH = Math.max(minH, Math.min(this._resizeStartH - dy, maxH));\n newTop = this._dragStartTop + (this._resizeStartH - newH);\n }\n newLeft = Math.max(0, newLeft);\n newTop = Math.max(0, newTop);\n this._panelEl.style.width = newW + 'px';\n this._panelEl.style.height = newH + 'px';\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n };\n this._handleMouseUp = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._panelEl.classList.remove('panel--dragging');\n }\n if (this._isResizing) {\n this._isResizing = false;\n this._panelEl.classList.remove('panel--resizing');\n }\n this._hideOverlay();\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n this._saveState();\n };\n }\n // --- Lifecycle ---\n connectedCallback() {\n super.connectedCallback();\n if (this.load) {\n this.load().then((messages) => {\n if (messages && messages.length) {\n this.messages = messages;\n }\n }).catch(() => { });\n }\n this._restoreState();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n }\n updated(changed) {\n if (changed.has('messages') || changed.has('_statusText')) {\n if (!this._userHasScrolledUp && !this._isStreaming && this._messagesEl) {\n requestAnimationFrame(() => {\n if (this._messagesEl) {\n this._messagesEl.scrollTop = this._messagesEl.scrollHeight;\n }\n });\n }\n }\n if (changed.has('opened') && this.opened && this._inputEl) {\n setTimeout(() => {\n if (this._inputEl) {\n this._inputEl.focus();\n }\n }, 200);\n }\n }\n // --- Public methods ---\n /**\n * Stops the current stream without clearing the conversation.\n */\n stop() {\n this._handleStop();\n }\n // --- Private methods ---\n /**\n * Shows a full-viewport transparent overlay during drag/resize operations.\n *\n * This overlay solves a critical rendering issue when the chatbot is used inside\n * a page that contains iframes (e.g., the AI editor shell where the page content\n * is rendered in an iframe and the chatbot floats on top).\n *\n * Without the overlay, modifying the iframe's `pointer-events` style during drag\n * (to prevent it from swallowing mousemove events) causes Chrome to recalculate\n * compositing layers. This layer recalculation blocks the browser from repainting\n * the chatbot panel's style changes (width/height/position) even though they are\n * correctly applied to the DOM. The result is that the panel appears frozen while\n * the user drags, despite the inline styles updating on every mousemove.\n *\n * The overlay approach avoids this entirely: instead of touching the iframe's styles,\n * we place a transparent div (z-index 9999) above the iframe but below the chatbot\n * (z-index 10000). This div intercepts all mouse events that would otherwise hit the\n * iframe, without triggering any compositing layer changes on the iframe itself.\n */\n _showOverlay() {\n if (!this._overlay) {\n this._overlay = document.createElement('div');\n this._overlay.style.cssText = 'position:fixed; inset:0; z-index:9999; display:none;';\n document.body.appendChild(this._overlay);\n }\n this._overlay.style.display = 'block';\n }\n _hideOverlay() {\n if (this._overlay) {\n this._overlay.style.display = 'none';\n }\n }\n _handleHeaderMouseDown(e) {\n // Ignore clicks on buttons inside the header\n if (e.target.closest('button')) {\n return;\n }\n if (!this._panelEl) {\n return;\n }\n this._isDragging = true;\n this._panelEl.classList.add('panel--dragging');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n e.preventDefault();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleResizeMouseDown(e) {\n if (!this._panelEl) {\n return;\n }\n this._isResizing = true;\n this._resizeDir = e.currentTarget.dataset.dir || '';\n this._panelEl.classList.add('panel--resizing');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n this._resizeStartW = rect.width;\n this._resizeStartH = rect.height;\n e.preventDefault();\n e.stopPropagation();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleToggle() {\n this.opened = !this.opened;\n if (this.opened && this._panelEl) {\n this._applyStoredLayout();\n }\n this._saveState();\n }\n _saveState() {\n try {\n const state = { opened: String(this.opened) };\n if (this._panelEl) {\n const s = this._panelEl.style;\n if (s.left) {\n state.left = s.left;\n }\n if (s.top) {\n state.top = s.top;\n }\n if (s.width) {\n state.width = s.width;\n }\n if (s.height) {\n state.height = s.height;\n }\n if (s.position) {\n state.position = s.position;\n }\n }\n localStorage.setItem('kr-chatbot-state', JSON.stringify(state));\n }\n catch { /* localStorage not available */ }\n }\n _restoreState() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.opened === 'true') {\n this.opened = true;\n // Apply layout after first render\n this.updateComplete.then(() => this._applyStoredLayout());\n }\n }\n catch { /* localStorage not available */ }\n }\n _applyStoredLayout() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw || !this._panelEl) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.position) {\n this._panelEl.style.position = state.position;\n }\n if (state.left) {\n this._panelEl.style.left = state.left;\n }\n if (state.top) {\n this._panelEl.style.top = state.top;\n }\n if (state.width) {\n this._panelEl.style.width = state.width;\n }\n if (state.height) {\n this._panelEl.style.height = state.height;\n }\n }\n catch { /* localStorage not available */ }\n }\n _handleInputChange(e) {\n this._inputValue = e.target.value;\n // Auto-resize textarea\n const textarea = e.target;\n textarea.style.height = 'auto';\n textarea.style.height = Math.min(textarea.scrollHeight, 120) + 'px';\n }\n _handleKeyDown(e) {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n this._handleSubmit();\n }\n }\n _handleSubmit() {\n if (!this._inputValue.trim() || !this.send || this._isStreaming) {\n return;\n }\n const messageText = this._inputValue.trim();\n const submitEvent = new CustomEvent('message-submit', {\n detail: {\n message: messageText,\n },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(submitEvent);\n if (submitEvent.defaultPrevented) {\n return;\n }\n this.messages = [...this.messages, {\n role: 'user',\n content: messageText,\n }];\n this._inputValue = '';\n this._error = '';\n this._userHasScrolledUp = false;\n // Reset textarea height\n if (this._inputEl) {\n this._inputEl.style.height = 'auto';\n }\n // Add empty assistant message to stream into\n this.messages = [...this.messages, {\n role: 'assistant',\n content: '',\n }];\n this._isStreaming = true;\n this._statusText = '';\n // Scroll user's message to the top (Gemini-style).\n // Set min-height on the assistant message = container height so there's enough\n // scroll room below the user message to push it to the top.\n this.updateComplete.then(() => {\n if (!this._messagesEl) {\n return;\n }\n // Clear min-height from previous responses\n this._messagesEl.querySelectorAll('.message--assistant').forEach((el) => {\n el.style.minHeight = '';\n });\n const allMsgEls = this._messagesEl.querySelectorAll('.message');\n const userMsgEl = allMsgEls[this.messages.length - 2];\n const assistantMsgEl = allMsgEls[this.messages.length - 1];\n if (assistantMsgEl) {\n assistantMsgEl.style.minHeight = this._messagesEl.clientHeight + 'px';\n }\n if (userMsgEl) {\n this._messagesEl.scrollTop = userMsgEl.offsetTop - this._messagesEl.offsetTop - 24;\n }\n });\n this.send({\n message: messageText,\n messages: this.messages.slice(0, -1),\n }).then((response) => {\n if (!response.ok) {\n this._handleStreamError('Request failed: ' + response.status);\n return;\n }\n if (!response.body) {\n this._handleStreamError('No response body');\n return;\n }\n this._reader = response.body.getReader();\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStop() {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this._isStreaming = false;\n this._statusText = '';\n }\n _handleClear() {\n if (!this.clear) {\n return;\n }\n this.clear().then(() => {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this.messages = [];\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n this._inputValue = '';\n this._userHasScrolledUp = false;\n });\n }\n _handleMessagesScroll(e) {\n const container = e.target;\n const distanceFromBottom = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (distanceFromBottom > 50) {\n this._userHasScrolledUp = true;\n }\n else {\n this._userHasScrolledUp = false;\n }\n }\n _handleErrorDismiss() {\n this._error = '';\n }\n _readStreamChunk() {\n if (!this._reader) {\n return;\n }\n this._reader.read().then((result) => {\n if (result.done) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n return;\n }\n this._buffer = this._buffer + this._decoder.decode(result.value, { stream: true });\n const events = this._buffer.split('\\n\\n');\n this._buffer = events.pop() || '';\n for (let i = 0; i < events.length; i++) {\n if (!events[i].trim()) {\n continue;\n }\n const lines = events[i].split('\\n');\n for (let j = 0; j < lines.length; j++) {\n if (!lines[j].startsWith('data:')) {\n continue;\n }\n const raw = lines[j].slice(5).trim();\n if (!raw) {\n continue;\n }\n let data;\n try {\n data = JSON.parse(raw);\n }\n catch {\n continue;\n }\n // Dispatch a generic event for every SSE message so consumers can listen and react\n this.dispatchEvent(new CustomEvent('stream-event', {\n detail: data,\n bubbles: true,\n composed: true,\n }));\n if (data.type === 'STATUS') {\n if (data.message) {\n this._statusText = String(data.message);\n }\n }\n else if (data.type === 'REASONING_PART') {\n if (data.message) {\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n if (!this.messages[lastIndex].reasoning) {\n this.messages[lastIndex].reasoning = '';\n }\n this.messages[lastIndex].reasoning += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'RESPONSE_PART') {\n if (data.message) {\n this._statusText = '';\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n this.messages[lastIndex].content += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'ERROR') {\n this._handleStreamError(String(data.message || 'Unknown error'));\n }\n if (data.finished) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n }\n }\n }\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStreamError(message) {\n this._isStreaming = false;\n this._statusText = '';\n this._error = message;\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n // Remove the empty assistant message if it has no content\n if (this.messages.length > 0) {\n const lastMessage = this.messages[this.messages.length - 1];\n if (lastMessage.role === 'assistant' && !lastMessage.content) {\n this.messages = this.messages.slice(0, -1);\n }\n }\n }\n // --- Render ---\n render() {\n return html `\n <button\n class=${classMap({\n 'toggle': true,\n 'toggle--hidden': this.opened,\n })}\n @click=${this._handleToggle}\n title=\"Open chat\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n class=\"toggle-icon\"\n >\n <path d=\"M12 2C6.48 2 2 6.03 2 11c0 2.61 1.19 4.94 3.05 6.55L4 22l4.8-2.4C9.82 19.85 10.88 20 12 20c5.52 0 10-4.03 10-9S17.52 2 12 2z\"/>\n <path d=\"M8 11h.01M12 11h.01M16 11h.01\" stroke-width=\"2.5\"/>\n </svg>\n </button>\n\n <div class=${classMap({\n 'panel': true,\n 'panel--opened': this.opened,\n })}>\n <div\n class=\"resize resize--n\"\n data-dir=\"n\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--s\"\n data-dir=\"s\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--w\"\n data-dir=\"w\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--e\"\n data-dir=\"e\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--nw\"\n data-dir=\"nw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--ne\"\n data-dir=\"ne\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--sw\"\n data-dir=\"sw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--se\"\n data-dir=\"se\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div class=\"header\" @mousedown=${this._handleHeaderMouseDown}>\n <div class=\"header-left\">\n <div class=\"header-info\">\n <span class=\"header-title\">${this.title}</span>\n ${this.subtitle ? html `\n <span class=\"header-subtitle\">${this.subtitle}</span>\n ` : nothing}\n </div>\n </div>\n <div class=\"header-actions\">\n ${this.messages.length > 0 ? html `\n <button\n class=\"header-action\"\n @click=${this._handleClear}\n title=\"Clear conversation\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"\n />\n </svg>\n </button>\n ` : nothing}\n <button\n class=\"header-action\"\n @click=${this._handleToggle}\n title=\"Close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"messages\" @scroll=${this._handleMessagesScroll}>\n ${this.messages.length === 0 ? html `\n <div class=\"empty\">\n <span class=\"empty-text\">What can I help you with?</span>\n </div>\n ` : nothing}\n ${this.messages.map((msg) => html `\n <div class=${classMap({\n 'message': true,\n 'message--user': msg.role === 'user',\n 'message--assistant': msg.role === 'assistant',\n })}>\n ${msg.reasoning ? html `\n <details class=\"reasoning\">\n <summary>Thinking</summary>\n <div class=\"reasoning-content\">${msg.reasoning}</div>\n </details>\n ` : nothing}\n ${msg.content ? html `\n <div class=\"message-content\">\n ${msg.role === 'user'\n ? msg.content\n : unsafeHTML(marked.parse(msg.content, { breaks: true }))}\n </div>\n ` : nothing}\n ${msg.role === 'assistant' && this._isStreaming && msg === this.messages[this.messages.length - 1] ? html `\n <div class=\"typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n ` : nothing}\n </div>\n `)}\n </div>\n\n ${this._error ? html `\n <div class=\"error\">\n <span>${this._error}</span>\n <button class=\"error-dismiss\" @click=${this._handleErrorDismiss}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"error-dismiss-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ` : nothing}\n\n <div class=\"footer\">\n <div class=\"input-wrapper\">\n <button class=\"input-plus\" title=\"Attach\">+</button>\n <textarea\n class=\"input\"\n .value=${this._inputValue}\n placeholder=${this.placeholder}\n rows=\"1\"\n @input=${this._handleInputChange}\n @keydown=${this._handleKeyDown}\n ></textarea>\n ${this._isStreaming ? html `\n <button\n class=\"stop\"\n @click=${this._handleStop}\n title=\"Stop generating\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n class=\"stop-icon\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"12\"\n height=\"12\"\n rx=\"2\"\n />\n </svg>\n </button>\n ` : html `\n <button\n class=${classMap({\n 'send': true,\n 'send--disabled': !this._inputValue.trim(),\n })}\n @click=${this._handleSubmit}\n title=\"Send message\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n class=\"send-icon\"\n >\n <path d=\"M12 19V5M5 12l7-7 7 7\"/>\n </svg>\n </button>\n `}\n </div>\n </div>\n </div>\n `;\n }\n};\nKRChatbot.styles = css `\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n line-height: 1.6;\n\n --kr-chatbot-primary: #163052;\n --kr-chatbot-primary-hover: #1e4068;\n --kr-chatbot-bg: #ffffff;\n --kr-chatbot-border: #d9d9d9;\n --kr-chatbot-text: #1a1a2e;\n --kr-chatbot-text-secondary: #64668b;\n --kr-chatbot-user-bg: #e9e9e980;\n --kr-chatbot-error-bg: #fef2f2;\n --kr-chatbot-error-text: #dc2626;\n --kr-chatbot-success: #00b894;\n --kr-chatbot-toggle-size: 56px;\n --kr-chatbot-panel-width: 440px;\n --kr-chatbot-panel-height: 620px;\n }\n\n :host {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 10000;\n }\n\n /* Toggle button */\n .toggle {\n width: var(--kr-chatbot-toggle-size);\n height: var(--kr-chatbot-toggle-size);\n border-radius: 18px;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 24px rgba(22, 48, 82, 0.4);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .toggle:hover {\n transform: scale(1.05);\n box-shadow: 0 6px 32px rgba(22, 48, 82, 0.5);\n }\n\n .toggle--hidden {\n transform: scale(0);\n opacity: 0;\n pointer-events: none;\n }\n\n .toggle-icon {\n width: 26px;\n height: 26px;\n }\n\n /* Panel */\n .panel {\n display: none;\n flex-direction: column;\n background: var(--kr-chatbot-bg);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n width: var(--kr-chatbot-panel-width);\n height: var(--kr-chatbot-panel-height);\n max-height: calc(100vh - 72px);\n border-radius: 16px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08), 0 2px 12px rgba(0, 0, 0, 0.04);\n border: 1px solid rgba(0, 0, 0, 0.08);\n animation: chatbot-panel-in 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n transform-origin: bottom right;\n }\n\n .panel--opened {\n display: flex;\n }\n\n @keyframes chatbot-panel-in {\n from {\n opacity: 0;\n transform: scale(0.92) translateY(20px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n /* Header */\n .header {\n padding: 0 16px 0 24px;\n height: 64px;\n background: #ffffff;\n color: #000000;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n.header-info {\n display: flex;\n flex-direction: column;\n }\n\n .header-title {\n font-size: 16px;\n font-weight: 600;\n }\n\n .header-subtitle {\n color: rgba(255, 255, 255, 0.5);\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-subtitle::before {\n content: '';\n width: 5px;\n height: 5px;\n background: var(--kr-chatbot-success);\n border-radius: 50%;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-action {\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n color: rgb(0 0 0 / 70%);\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n }\n\n .header-action:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #000000;\n }\n\n .header-action-icon {\n width: 20px;\n height: 20px;\n }\n\n /* Messages */\n .messages {\n flex: 1;\n overflow-y: auto;\n padding: 32px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n scroll-behavior: smooth;\n background: white;\n }\n\n .messages::-webkit-scrollbar {\n width: 4px;\n }\n\n .messages::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .messages::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.08);\n border-radius: 2px;\n }\n\n .empty {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: var(--kr-chatbot-text-secondary);\n gap: 8px;\n }\n\n.empty-text {\n font-size: 14px;\n color: rgb(0 0 0 / 80%);\n }\n\n .message {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n animation: chatbot-msg-in 0.3s ease-out;\n }\n\n @keyframes chatbot-msg-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .message--user {\n align-self: flex-end;\n align-items: flex-end;\n max-width: 85%;\n }\n\n .message--assistant {\n align-self: flex-start;\n gap: 24px;\n }\n\n .message-content {\n line-height: 1.7;\n word-wrap: break-word;\n overflow-wrap: break-word;\n }\n\n .message--user .message-content {\n display: inline-block;\n background: var(--kr-chatbot-user-bg);\n color: #000000;\n padding: 10px 16px;\n border-radius: 20px;\n border-bottom-right-radius: 6px;\n font-size: 14px;\n }\n\n .message--assistant .message-content {\n background: transparent;\n color: #000000;\n padding: 0;\n font-size: 14px;\n }\n\n .message--assistant .message-content pre {\n background: #1e1e1e;\n color: #d4d4d4;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.4;\n }\n\n .message--assistant .message-content code {\n font-family: 'SF Mono', 'Fira Code', Monaco, monospace;\n font-size: 13px;\n }\n\n .message--assistant .message-content :not(pre) > code {\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 5px;\n border-radius: 3px;\n }\n\n .message--assistant .message-content strong {\n font-weight: 600;\n }\n\n .message--assistant .message-content p {\n margin: 0 0 8px 0;\n }\n\n .message--assistant .message-content p:last-child {\n margin-bottom: 0;\n }\n\n /* Reasoning */\n .reasoning {\n border-radius: 6px;\n background: rgb(244 244 244 / 80%);\n font-size: 12px;\n }\n\n .reasoning summary {\n cursor: pointer;\n padding: 6px 10px 6px 10px;\n color: black;\n user-select: none;\n }\n\n .reasoning-content {\n padding: 6px 10px 10px;\n color: black;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n.typing {\n display: flex;\n gap: 4px;\n padding: 4px 0;\n }\n\n .typing span {\n width: 6px;\n height: 6px;\n background: var(--kr-chatbot-text-secondary);\n border-radius: 50%;\n animation: chatbot-typing 1.4s infinite;\n opacity: 0.4;\n }\n\n .typing span:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .typing span:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes chatbot-typing {\n 0%, 60%, 100% {\n opacity: 0.4;\n transform: translateY(0);\n }\n 30% {\n opacity: 1;\n transform: translateY(-4px);\n }\n }\n\n /* Error */\n .error {\n padding: 8px 16px;\n background: var(--kr-chatbot-error-bg);\n color: var(--kr-chatbot-error-text);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .error-dismiss {\n background: none;\n border: none;\n color: var(--kr-chatbot-error-text);\n cursor: pointer;\n padding: 2px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .error-dismiss-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Footer / Input */\n .footer {\n padding: 16px 16px 16px;\n flex-shrink: 0;\n background: white;\n }\n\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 4px;\n background: white;\n border: 1px solid var(--kr-chatbot-border);\n border-radius: 26px;\n padding: 6px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .input-wrapper:focus-within {\n border-color: #b0b0b0;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);\n }\n\n .input-plus {\n width: 34px;\n height: 34px;\n border: none;\n background: transparent;\n color: var(--kr-chatbot-text);\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 20px;\n font-weight: 300;\n transition: background 0.15s;\n }\n\n .input-plus:hover {\n background: #f8f9fc;\n }\n\n .input {\n flex: 1;\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n font-size: 15px;\n line-height: 1.5;\n padding: 4px 0;\n min-height: 26px;\n max-height: 120px;\n background: transparent;\n color: black;\n }\n\n .input::placeholder {\n color: #b0b0b0;\n }\n\n .send {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .send:hover {\n background: var(--kr-chatbot-primary-hover);\n }\n\n .send--disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n .send--disabled:hover {\n background: var(--kr-chatbot-primary);\n }\n\n .send-icon {\n width: 16px;\n height: 16px;\n }\n\n .stop {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-error-text);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .stop:hover {\n background: #b91c1c;\n }\n\n .stop-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Header drag cursor */\n .header {\n cursor: grab;\n user-select: none;\n }\n\n .header:active {\n cursor: grabbing;\n }\n\n /* Drag / Resize states */\n .panel--dragging,\n .panel--resizing {\n transition: none;\n user-select: none;\n }\n\n .panel--dragging {\n box-shadow: 0 32px 96px rgba(0, 0, 0, 0.18), 0 12px 40px rgba(0, 0, 0, 0.1);\n }\n\n /* Resize handles */\n .resize {\n position: absolute;\n z-index: 10;\n }\n\n .resize--n { top: -4px; left: 12px; right: 12px; height: 8px; cursor: n-resize; }\n .resize--s { bottom: -4px; left: 12px; right: 12px; height: 8px; cursor: s-resize; }\n .resize--w { left: -4px; top: 12px; bottom: 12px; width: 8px; cursor: w-resize; }\n .resize--e { right: -4px; top: 12px; bottom: 12px; width: 8px; cursor: e-resize; }\n .resize--nw { top: -4px; left: -4px; width: 16px; height: 16px; cursor: nw-resize; }\n .resize--ne { top: -4px; right: -4px; width: 16px; height: 16px; cursor: ne-resize; }\n .resize--sw { bottom: -4px; left: -4px; width: 16px; height: 16px; cursor: sw-resize; }\n .resize--se { bottom: -4px; right: -4px; width: 16px; height: 16px; cursor: se-resize; }\n\n `;\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"send\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"clear\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"load\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"messages\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"subtitle\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"placeholder\", void 0);\n__decorate([\n property({\n type: Boolean,\n reflect: true\n })\n], KRChatbot.prototype, \"opened\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_inputValue\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isStreaming\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_statusText\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_error\", void 0);\n__decorate([\n query('.panel')\n], KRChatbot.prototype, \"_panelEl\", void 0);\n__decorate([\n query('.messages')\n], KRChatbot.prototype, \"_messagesEl\", void 0);\n__decorate([\n query('.input')\n], KRChatbot.prototype, \"_inputEl\", void 0);\nKRChatbot = __decorate([\n customElement('kr-chatbot')\n], KRChatbot);\nexport { KRChatbot };\n//# sourceMappingURL=chatbot.js.map"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","__decorate","this","LitElement","html","css","state","customElement","KRScaffold","KRHttp","KRContextMenu","KRDialog","nothing","classMap","unsafeHTML","property","KRScreenNav","KRScreenDetail","KRSubbar","KRRouterOutlet","KRChatbot","query"],"mappings":"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xD;AACA,oBAAoB,EAAE,IAAI,CAAC,QAAQ,GAAGA,CAAI,CAAC;AAC3C,+DAA+D,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,GAAGQ,CAAO;AAC/B;AACA;AACA,cAAc,CAAC,GAAGA,CAAO;AACzB;AACA,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvE;AACA;AACA;AACA,cAAc,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpF;AACA;AACA,QAAQ,CAAC,GAAGA,CAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAJ,oBAAU,CAAC,MAAM,GAAGH,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAGA,CAAI,CAAC;AACrB;AACA,sBAAsB,EAAES,CAAQ,CAAC;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACtD,SAAS,CAAC;AACV,uBAAuB,EAAE,IAAI,CAAC,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC;AACb;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAO,mBAAS,CAAC,MAAM,GAAGf,GAAG,CAAC;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,18]}
1
+ {"version":3,"file":"krubble-app.umd.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","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/unsafe-html.js","../../../node_modules/lit-html/directives/class-map.js","scaffold/nav-item-edit.js","scaffold.js","screen-nav.js","screen-detail.js","subbar.js","router.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/directives/repeat.js","../../../node_modules/marked/lib/marked.esm.js","chatbot.js"],"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;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$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.2\");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=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(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=M(t,h._$AS(t,i.values),h,e)),i}class R{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??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,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 k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,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=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(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!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.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=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(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 k(this.O(c()),this.O(c()),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,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,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=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||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){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.2\");const D=(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 k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w 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.2\");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{notEqual as t,defaultConverter 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:e,reflect:!1,hasChanged:t},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,!0,r)},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,!0,r)}}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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter(s=>t[s]).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter(t=>\"\"!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '@kodaris/krubble-components';\nlet KRNavItemEdit = class KRNavItemEdit extends LitElement {\n constructor() {\n super(...arguments);\n this.label = '';\n this.icon = '';\n this.url = '';\n this.active = true;\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.data) {\n this.label = this.data.label || '';\n this.icon = this.data.icon || '';\n this.url = this.data.url || '';\n this.active = this.data.active !== false;\n }\n }\n handleLabelInput(e) {\n const textField = e.target;\n this.label = textField.value;\n }\n handleIconInput(e) {\n const textField = e.target;\n this.icon = textField.value;\n }\n handleUrlInput(e) {\n const textField = e.target;\n this.url = textField.value;\n }\n handleActiveChange(e) {\n this.active = e.target.checked;\n }\n handleCancel() {\n this.dialogRef.close(undefined);\n }\n handleSave() {\n this.dialogRef.close({\n label: this.label,\n icon: this.icon || undefined,\n url: this.url || undefined,\n active: this.active,\n });\n }\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleSave();\n }\n }\n render() {\n return html `\n <h2>Edit Navigation Item</h2>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Label\"\n name=\"label\"\n .value=${this.label}\n @input=${this.handleLabelInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"Enter label\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Icon (emoji or SVG)\"\n name=\"icon\"\n .value=${this.icon}\n @input=${this.handleIconInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. 📊 or <svg>...</svg>\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"URL\"\n name=\"url\"\n .value=${this.url}\n @input=${this.handleUrlInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. /ci/my-page or https://...\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <div class=\"checkbox-group\">\n <input\n type=\"checkbox\"\n id=\"active\"\n .checked=${this.active}\n @change=${this.handleActiveChange}\n />\n <label class=\"checkbox-label\" for=\"active\">Visible in navigation</label>\n </div>\n </div>\n\n <div class=\"actions\">\n <button class=\"btn-cancel\" @click=${this.handleCancel}>Cancel</button>\n <button class=\"btn-save\" @click=${this.handleSave}>Save</button>\n </div>\n `;\n }\n};\nKRNavItemEdit.styles = css `\n :host {\n display: block;\n width: 360px;\n padding: 24px;\n color: rgba(255, 255, 255, 0.9);\n\n /* Dark theme for kr-text-field */\n --kr-text-field-label-color: rgba(255, 255, 255, 0.7);\n --kr-text-field-border-color: rgba(255, 255, 255, 0.1);\n --kr-text-field-bg: rgba(255, 255, 255, 0.05);\n --kr-text-field-color: #ffffff;\n --kr-text-field-focus-border-color: #beea4e;\n --kr-text-field-focus-ring-color: rgba(190, 234, 78, 0.1);\n --kr-text-field-placeholder-color: rgba(255, 255, 255, 0.3);\n --kr-text-field-helper-color: rgba(255, 255, 255, 0.5);\n }\n\n h2 {\n margin: 0 0 24px 0;\n font-size: 18px;\n font-weight: 600;\n color: #ffffff;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .checkbox-group {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: #beea4e;\n cursor: pointer;\n }\n\n .checkbox-label {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n }\n\n .actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n margin-top: 28px;\n }\n\n button {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .btn-cancel {\n background: rgba(255, 255, 255, 0.05);\n border: 1px solid rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n }\n\n .btn-cancel:hover {\n background: rgba(255, 255, 255, 0.1);\n color: #ffffff;\n }\n\n .btn-save {\n background: #beea4e;\n border: none;\n color: #10172a;\n }\n\n .btn-save:hover {\n background: #d4f472;\n }\n `;\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"label\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"icon\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"url\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"active\", void 0);\nKRNavItemEdit = __decorate([\n customElement('kr-nav-item-edit')\n], KRNavItemEdit);\nexport { KRNavItemEdit };\n//# sourceMappingURL=nav-item-edit.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { KRContextMenu, KRDialog } from '@kodaris/krubble-components';\nimport { KRHttp } from '@kodaris/krubble-http';\nimport { KRNavItemEdit } from './scaffold/nav-item-edit.js';\n/**\n * Application shell component with nav drawer and main content area.\n *\n * ## Features\n * - Collapsible navigation drawer with hierarchical items (groups and items)\n * - User profile display in footer with customization menu\n * - Edit mode for customizing navigation (rename, reorder, hide items, add custom items)\n * - Drag and drop reordering in edit mode\n * - Persistence of customizations via preference API (global/organization level)\n *\n * ## Nav Customization\n * Users can customize the navigation by clicking their profile and selecting\n * \"Customize Navigation\". This enters edit mode where users can:\n * - Right-click items to edit label, icon, or visibility\n * - Right-click to add new items above/below existing items\n * - Drag and drop to reorder items or move them between groups\n *\n * Customizations are stored globally and apply to all users.\n *\n * ## Preference Storage\n * Preferences are stored as JSON with the following structure:\n * ```json\n * {\n * \"nav\": {\n * \"itemId\": { \"label\": \"Custom Label\", \"icon\": \"...\", \"active\": true, \"order\": 0 },\n * \"custom-123\": { \"type\": \"item\", \"label\": \"New Item\", \"url\": \"/path\", ... }\n * }\n * }\n * ```\n *\n * The `nav` object is a delta - it only contains overrides for existing items\n * or definitions for custom items (prefixed with \"custom-\").\n *\n * ## API Endpoints Used\n * - GET `/api/system/preference/json/scaffold?global=true` - load preferences\n * - POST `/api/system/preference/json/scaffold?global=true` - create new preference\n * - PUT `/api/system/preference/json/scaffold/{uuid}?global=true` - update existing preference\n *\n * @slot - The main content\n *\n * @property {string} logo - URL for the logo image\n * @property {string} label - Title text to display instead of logo\n * @property {'light'|'dark'} scheme - Color scheme: 'light' (default) or 'dark'\n * @property {KRNavItem[]} nav - Navigation items as JSON array\n * @property {KRUser} user - User profile data\n * @property {boolean} navEnabled - Whether to show the nav drawer (menu toggle remains visible when false)\n * @property {'employee'|'customer'} user-type - User type. Customers skip all `/api/system` calls since that endpoint is employee-only. Defaults to 'employee'.\n *\n *\n * TODO\n * - Don't hardcode breadcrumbs\n * - Look at renderNormalFooter and renderEditFooter and see if that is what we want to do\n */\nlet KRScaffold = class KRScaffold extends LitElement {\n constructor() {\n super();\n /**\n * Default icon for nav items without an icon (shown at top level)\n */\n this.defaultNavItemIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"/></svg>';\n this.originalFetch = null;\n this.originalXhrOpen = null;\n this.navItemDragPreview = null;\n this.navItemDragStartY = 0;\n this.isNavItemDragging = false;\n this.navItemDragExpandTimeout = null;\n this.navInitialized = false;\n this.logo = '';\n this.label = '';\n /**\n * URL to navigate to when clicking the logo/title. Defaults to '/'.\n */\n this.homeUrl = '/';\n this.scheme = 'light';\n this.nav = [];\n this.navIconsDisplayed = false;\n this.navExpanded = false;\n this.user = null;\n /**\n * Whether to show the subbar with menu toggle\n */\n this.subbar = false;\n /**\n * Whether to hide the navigation drawer.\n * Menu toggle button remains visible and emits menu-click events.\n */\n this.navEnabled = true;\n /**\n * User type. Set to 'customer' to skip all /api/system calls — customers don't have access to that endpoint.\n */\n this.userType = 'employee';\n /**\n * Breadcrumbs to display in the subbar\n */\n this.breadcrumbs = [];\n this.navItemsExpanded = new Set();\n this.navQuery = '';\n this.activeNavItemId = null;\n this.isNavScrolled = false;\n this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';\n this.isEditing = false;\n this.isUserMenuOpen = false;\n this.pref = { nav: {} };\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.navItemDropPosition = 'above';\n this.pendingRequests = 0;\n this.boundHandleMouseMove = this.handleMouseMove.bind(this);\n this.boundHandleMouseUp = this.handleMouseUp.bind(this);\n }\n connectedCallback() {\n super.connectedCallback();\n this.installFetchInterceptor();\n }\n // Attributes are not reflected into properties until after the first update,\n // so loadPref() must run here (not connectedCallback) for user-type to be set.\n firstUpdated() {\n this.loadPref();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('nav') && this.nav.length > 0) {\n this.updateActiveNavItem();\n if (this.navExpanded && !this.navInitialized) {\n this.navInitialized = true;\n this.getComputedNav()\n .filter(item => item.type === 'group')\n .forEach(group => this.navItemsExpanded.add(group.id));\n }\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.uninstallFetchInterceptor();\n }\n /**\n * Installs global interceptors for fetch and XMLHttpRequest to track pending HTTP requests.\n * Updates `pendingRequests` state when requests start/complete.\n */\n installFetchInterceptor() {\n if (this.originalFetch) {\n return;\n }\n const scaffold = this;\n // Intercept fetch\n this.originalFetch = window.fetch.bind(window);\n const originalFetch = this.originalFetch; // Capture in local scope to avoid null reference after uninstall\n window.fetch = function (...args) {\n scaffold.pendingRequests++;\n return originalFetch(...args).finally(() => {\n scaffold.pendingRequests--;\n });\n };\n // Intercept XMLHttpRequest\n this.originalXhrOpen = XMLHttpRequest.prototype.open;\n const originalXhrOpen = this.originalXhrOpen; // Capture in local scope to avoid null reference after uninstall\n XMLHttpRequest.prototype.open = function (method, url, async = true, username, password) {\n scaffold.pendingRequests++;\n this.addEventListener('loadend', () => {\n scaffold.pendingRequests--;\n }, { once: true });\n return originalXhrOpen.call(this, method, url, async, username, password);\n };\n }\n /**\n * Restores the original fetch and XMLHttpRequest functions.\n */\n uninstallFetchInterceptor() {\n if (this.originalFetch) {\n window.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n if (this.originalXhrOpen) {\n XMLHttpRequest.prototype.open = this.originalXhrOpen;\n this.originalXhrOpen = null;\n }\n }\n /**\n * Resolves a navigation URL by prepending the base href.\n *\n * This method is used for:\n * 1. Setting href attributes on anchor elements (so Cmd/Ctrl+click opens correct URL in new tab)\n * 2. Comparing URLs with window.location.pathname in updateActiveNavItem()\n *\n * The original item.url is kept intact (without base href) and passed to Angular\n * via the nav-item-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - item.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(item) = \"/operations/settings\" (used for href and URL comparison)\n */\n resolveUrl(item) {\n if (!item.url) {\n return '#';\n }\n // External URLs - return as-is\n if (item.external) {\n return item.url;\n }\n // Remove leading slash from url if present, then combine with base\n let path = item.url;\n if (item.url.startsWith('/')) {\n path = item.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n // =========================================================================\n // Navigation Data\n // =========================================================================\n /**\n * Returns the computed navigation as a flat array with preferences applied.\n *\n * Transforms the hierarchical `nav` property into a flat list where each item\n * has a `parentId` reference instead of nested `children`. Merges user\n * preference overrides (label, icon, url, active, order, parentId) and\n * includes any custom items added via the edit dialog.\n *\n * @returns Flat array of nav items with preferences applied\n */\n getComputedNav() {\n const result = [];\n this.nav.forEach((item, index) => {\n const override = this.pref.nav[item.id];\n result.push({\n ...item,\n ...override,\n order: override?.order ?? item.order ?? index,\n parentId: override?.parentId ?? null,\n });\n // Add children if group\n if (item.type === 'group' && item.children) {\n item.children.forEach((child, childIndex) => {\n const childOverride = this.pref.nav[child.id];\n let parentId = item.id;\n if (childOverride?.parentId !== undefined) {\n parentId = childOverride.parentId;\n }\n result.push({\n ...child,\n ...childOverride,\n order: childOverride?.order ?? child.order ?? childIndex,\n parentId,\n });\n });\n }\n });\n // Add custom items from pref\n Object.entries(this.pref.nav).forEach(([id, item]) => {\n if (id.startsWith('custom') && item.type && item.label) {\n result.push({\n id,\n type: item.type,\n label: item.label,\n icon: item.icon,\n url: item.url,\n active: item.active,\n order: item.order ?? result.length,\n parentId: item.parentId ?? null,\n });\n }\n });\n return result;\n }\n /**\n * Returns nav items for a given parent, filtered and sorted for rendering.\n *\n * Filters the computed nav to items matching the parentId, sorts by order,\n * hides inactive items in normal mode, and applies the search query filter.\n * Groups are shown if their label matches or if they have matching children.\n *\n * @param parentId - The parent ID to filter by (null for top-level items)\n * @returns Filtered and sorted nav items ready for rendering\n */\n getNavItemChildren(parentId) {\n let items = this.getComputedNav()\n .filter(item => item.parentId === parentId)\n .sort((a, b) => a.order - b.order);\n // In normal mode, filter out hidden items\n if (!this.isEditing) {\n items = items.filter(item => item.active !== false);\n }\n // Apply search filter\n if (this.navQuery) {\n const query = this.navQuery.toLowerCase();\n const allItems = this.getComputedNav();\n // If we're getting children of a group, check if parent group name matches query\n // If so, show all children without filtering\n if (parentId !== null) {\n const parentGroup = allItems.find(item => item.id === parentId);\n if (parentGroup?.label.toLowerCase().includes(query)) {\n return items; // Show all children when group name matches\n }\n }\n items = items.filter(item => {\n if (item.type === 'group') {\n // Show group if its label matches OR if it has matching children\n return item.label.toLowerCase().includes(query) || allItems.some(child => child.parentId === item.id &&\n child.active !== false &&\n child.label.toLowerCase().includes(query));\n }\n // Show item if its label matches\n return item.label.toLowerCase().includes(query);\n });\n }\n return items;\n }\n // =========================================================================\n // Navigation Search\n // =========================================================================\n /**\n * Handles search input changes for filtering nav items.\n *\n * When a search query is entered, automatically expands any groups that\n * contain matching children so users can see the results. When the search\n * is cleared, collapses all groups back to their default state.\n *\n * @param e - The input event from the search field\n */\n handleNavQueryChange(e) {\n this.navQuery = e.target.value;\n // Expand all groups when searching so matching children are visible\n // (groups without matching children won't be rendered anyway)\n if (this.navQuery) {\n this.getComputedNav().forEach(item => {\n if (item.type === 'group') {\n this.navItemsExpanded.add(item.id);\n }\n });\n }\n else {\n // Collapse all when search is cleared\n this.navItemsExpanded.clear();\n }\n }\n /**\n * Clears the search query.\n */\n handleNavQueryClear() {\n this.navQuery = '';\n this.navItemsExpanded.clear();\n }\n // =========================================================================\n // Navigation Interaction\n // =========================================================================\n handleMenuClick() {\n this.isNavOpened = !this.isNavOpened;\n localStorage.setItem('kr-scaffold-nav-opened', String(this.isNavOpened));\n }\n /**\n * Handles click on the nav header (logo/title) to navigate home.\n * Dispatches a nav-item-click event so Angular can intercept and route.\n */\n handleNavHeaderClick() {\n // Clear active state since we're going home\n this.activeNavItemId = null;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item: { url: this.homeUrl } },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If no listener prevented default, navigate natively\n if (!navEvent.defaultPrevented) {\n window.location.href = this.homeUrl;\n }\n }\n /**\n * Handles scroll on nav content to show/hide header shadow.\n */\n handleNavScroll(e) {\n this.isNavScrolled = e.target.scrollTop > 0;\n }\n /**\n * Toggles the expanded/collapsed state of a nav group with animation.\n * Uses the Web Animations API to animate height transitions.\n * When collapsing, the `nav-group--expanded` class is removed after animation completes.\n * When expanding, the class is added immediately before animation starts.\n *\n * @param itemId - The unique identifier of the nav group to toggle\n */\n toggleNavItem(itemId) {\n const navItem = this.shadowRoot?.querySelector(`.nav-item[data-id=\"${itemId}\"]`);\n const groupEl = navItem?.nextElementSibling;\n if (!groupEl) {\n return;\n }\n if (this.navItemsExpanded.has(itemId)) {\n this.navItemsExpanded.delete(itemId);\n groupEl.animate([\n { height: `${groupEl.scrollHeight}px` },\n { height: '0px' }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n }).onfinish = () => {\n groupEl.classList.remove('nav-group--expanded');\n };\n }\n else {\n this.navItemsExpanded.add(itemId);\n groupEl.classList.add('nav-group--expanded');\n groupEl.animate([\n { height: '0px' },\n { height: `${groupEl.scrollHeight}px` }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n });\n }\n this.requestUpdate();\n }\n /**\n * Handles click events on navigation items.\n *\n * For groups, toggles the expanded/collapsed state.\n * For items, dispatches a cancelable `nav-item-click` custom event.\n *\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScaffoldDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router. Import `KrubbleModule` in your Angular app to enable\n * SPA navigation without page reloads.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n if (item.type === 'group') {\n this.toggleNavItem(item.id);\n }\n else {\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n // Set active item immediately on click for instant visual feedback\n this.activeNavItemId = item.id;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n // (e.g., SPA router handles navigation)\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n }\n /**\n * Updates the active nav item highlight based on the current URL.\n *\n * Compares the first path segment of `window.location.pathname` with each\n * nav item's URL to find a match. When found, highlights that item and\n * expands its parent group if nested.\n *\n * Called automatically by `KRScaffoldDirective` on Angular route changes.\n */\n updateActiveNavItem() {\n const currentPath = window.location.pathname;\n const allItems = this.getComputedNav().filter(item => item.type === 'item' && item.url);\n // Find the best match - prefer longer/more specific URL matches\n let activeItem = null;\n let longestMatch = 0;\n for (const item of allItems) {\n // Use resolveUrl because currentPath includes base href\n const url = this.resolveUrl(item);\n if (currentPath.startsWith(url) && url.length > longestMatch) {\n activeItem = item;\n longestMatch = url.length;\n }\n }\n if (activeItem) {\n this.activeNavItemId = activeItem.id;\n if (activeItem.parentId) {\n this.navItemsExpanded.add(activeItem.parentId);\n }\n }\n else {\n this.activeNavItemId = null;\n }\n }\n // =========================================================================\n // Navigation Customization\n // =========================================================================\n startEditing() {\n this.isEditing = true;\n }\n cancelEditing() {\n this.isEditing = false;\n // Reload to revert changes\n this.loadPref();\n }\n resetPref() {\n this.pref.nav = {};\n }\n savePref() {\n if (this.userType === 'customer') {\n return;\n }\n let url = '/api/system/preference/json/scaffold?global=true';\n let method = 'POST';\n if (this.pref.uuid) {\n url = `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`;\n method = 'PUT';\n }\n KRHttp.fetch({\n url,\n method,\n body: JSON.stringify({ nav: this.pref.nav }),\n })\n .then((response) => response.json())\n .then((data) => {\n this.pref = data.data;\n this.isEditing = false;\n })\n .catch((error) => {\n console.error('Failed to save nav customizations:', error);\n });\n }\n loadPref() {\n if (this.userType === 'customer') {\n return;\n }\n KRHttp.fetch({\n url: '/api/system/preference/json/scaffold?global=true',\n method: 'GET',\n })\n .then((response) => response.json())\n .then((data) => {\n const pref = data?.data?.[0];\n if (pref) {\n this.pref = pref;\n }\n })\n .catch(() => {\n // No preferences saved yet\n });\n }\n handleNavItemContextMenu(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n KRContextMenu.open({\n x: e.clientX,\n y: e.clientY,\n items: [\n {\n id: 'edit',\n label: 'Edit Item'\n },\n {\n id: 'divider-1',\n label: '',\n divider: true\n },\n {\n id: 'add-above',\n label: 'Add Item Above'\n },\n {\n id: 'add-below',\n label: 'Add Item Below'\n },\n ],\n }).then((result) => {\n if (!result) {\n return;\n }\n switch (result.id) {\n case 'edit':\n this.openNavItemEdit(item);\n break;\n case 'add-above':\n this.addNavItem(item, 'above');\n break;\n case 'add-below':\n this.addNavItem(item, 'below');\n break;\n }\n });\n }\n /**\n * Opens the nav item edit dialog for customizing an item's properties.\n *\n * Opens `KRNavItemEdit` dialog pre-populated with the item's current values.\n * When the user saves, merges the result into the nav delta to persist\n * customizations like label, icon, URL, and visibility.\n *\n * @param item - The nav item to edit\n */\n openNavItemEdit(item) {\n KRDialog.open(KRNavItemEdit, { data: item }).afterClosed().then((res) => {\n const result = res;\n if (!result) {\n return;\n }\n if (!this.pref.nav[item.id]) {\n this.pref.nav[item.id] = {};\n }\n this.pref.nav[item.id] = {\n ...this.pref.nav[item.id],\n ...result\n };\n this.requestUpdate();\n });\n }\n /**\n * Adds a new custom nav item relative to an existing item.\n *\n * Creates a placeholder item in the nav delta, shifts existing siblings\n * to make room, then opens the edit dialog so the user can configure\n * the new item's label, icon, and URL.\n *\n * @param targetItem - The existing item to position relative to\n * @param position - Whether to insert 'above' or 'below' the target item\n */\n addNavItem(targetItem, position) {\n const customId = `custom-${Date.now()}`;\n const siblings = this.getComputedNav()\n .filter(i => i.parentId === targetItem.parentId)\n .sort((a, b) => a.order - b.order);\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n let newOrder;\n if (position === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing items to make room for the new item\n siblings.forEach((sibling, index) => {\n if (index >= newOrder) {\n if (!this.pref.nav[sibling.id]) {\n this.pref.nav[sibling.id] = {};\n }\n this.pref.nav[sibling.id].order = index + 1;\n }\n });\n // Add the new item and open edit dialog\n const newItem = {\n id: customId,\n type: 'item',\n label: 'New Item',\n order: newOrder,\n parentId: targetItem.parentId,\n active: true,\n };\n this.pref.nav[customId] = newItem;\n this.requestUpdate();\n this.openNavItemEdit(newItem);\n }\n // =========================================================================\n // Navigation Drag & Drop\n // =========================================================================\n /**\n * Initiates a potential drag operation when mouse is pressed on a nav item.\n *\n * Only active in edit mode. Records the starting position and sets up\n * document-level listeners for mouse move and mouse up events. The actual\n * drag doesn't start until the mouse moves more than 5 pixels.\n *\n * @param e - The mouse event\n * @param item - The nav item being pressed\n */\n handleNavItemMouseDown(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n this.draggedNavItemId = item.id;\n this.navItemDragStartY = e.clientY;\n this.isNavItemDragging = false;\n document.addEventListener('mousemove', this.boundHandleMouseMove);\n document.addEventListener('mouseup', this.boundHandleMouseUp);\n }\n /**\n * Handles mouse movement during a nav item drag operation.\n *\n * Initiates dragging after the mouse moves more than 5 pixels (to distinguish\n * from clicks), creates a floating preview element that follows the cursor,\n * and updates the drop target indicator based on mouse position.\n *\n * @param e - The mouse event\n */\n handleMouseMove(e) {\n if (!this.draggedNavItemId) {\n return;\n }\n // Start dragging after moving a few pixels (to distinguish from clicks)\n if (!this.isNavItemDragging && Math.abs(e.clientY - this.navItemDragStartY) > 5) {\n this.isNavItemDragging = true;\n this.classList.add('kr-scaffold--dragging');\n // Create drag preview\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n if (draggedItem) {\n this.navItemDragPreview = document.createElement('div');\n this.navItemDragPreview.className = 'nav-item-drag-preview';\n this.navItemDragPreview.textContent = draggedItem.label;\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n this.shadowRoot?.appendChild(this.navItemDragPreview);\n }\n }\n if (!this.isNavItemDragging) {\n return;\n }\n // Update preview position\n if (this.navItemDragPreview) {\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n }\n // Find drop target based on mouse position\n this.updateNavItemDropTarget(e);\n }\n /**\n * Handles the end of a nav item drag operation.\n *\n * Removes document-level mouse listeners, executes the drop if there's a valid\n * target, and cleans up all drag-related state.\n */\n handleMouseUp() {\n document.removeEventListener('mousemove', this.boundHandleMouseMove);\n document.removeEventListener('mouseup', this.boundHandleMouseUp);\n if (this.isNavItemDragging && this.navItemDropTargetId) {\n this.executeNavItemDrop();\n }\n // Reset all drag state\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.isNavItemDragging = false;\n this.classList.remove('kr-scaffold--dragging');\n if (this.navItemDragPreview) {\n this.navItemDragPreview.remove();\n this.navItemDragPreview = null;\n }\n this.clearNavItemDragExpandTimeout();\n this.requestUpdate();\n }\n /**\n * Determines where a dragged nav item would be dropped based on mouse position.\n *\n * Loops through all nav items and checks if the mouse is hovering over one.\n * For groups, the item is divided into thirds (above/center/below) where\n * \"center\" means drop into the group. For regular items, it's halves (above/below).\n *\n * Also handles auto-expanding collapsed groups when hovering over their center,\n * and validates drops (e.g., prevents dropping a group into another group).\n *\n * Updates `navItemDropTargetId` and `navItemDropPosition` state which are used to render\n * visual drop indicators in the UI.\n *\n * @param e - The mouse event from dragging\n */\n updateNavItemDropTarget(e) {\n // Get all nav items in shadow DOM\n const navItems = this.shadowRoot?.querySelectorAll('.nav-item[data-id]');\n if (!navItems) {\n return;\n }\n let foundTarget = false;\n navItems.forEach((el) => {\n const rect = el.getBoundingClientRect();\n const itemId = el.getAttribute('data-id');\n if (!itemId || itemId === this.draggedNavItemId) {\n return;\n }\n // Skip if mouse is outside this element\n if (e.clientX < rect.left || e.clientX > rect.right ||\n e.clientY < rect.top || e.clientY > rect.bottom) {\n return;\n }\n const item = this.getComputedNav().find(i => i.id === itemId);\n if (!item) {\n return;\n }\n const y = e.clientY - rect.top;\n let position;\n // Determine drop position based on mouse Y position within the item.\n // Groups are divided into thirds: top=above, middle=center (drop into), bottom=below.\n // Regular items are divided in half: top=above, bottom=below.\n if (item.type === 'group') {\n if (y < rect.height / 3) {\n // Top third - drop above the group\n position = 'above';\n this.clearNavItemDragExpandTimeout();\n }\n else if (y > (rect.height * 2) / 3) {\n // Bottom third - drop below the group\n position = 'below';\n this.clearNavItemDragExpandTimeout();\n }\n else {\n // Middle third - drop into the group (as a child)\n position = 'center';\n // Auto-expand collapsed groups after a delay\n if (!this.navItemsExpanded.has(item.id) && !this.navItemDragExpandTimeout) {\n this.expandNavGroupOnDrag(item.id);\n }\n }\n }\n else {\n // Regular items only support above/below, not center\n if (y < rect.height / 2) {\n position = 'above';\n }\n else {\n position = 'below';\n }\n this.clearNavItemDragExpandTimeout();\n }\n // Determine what the new parent would be\n let newParentId;\n if (position === 'center') {\n newParentId = item.id;\n }\n else {\n newParentId = item.parentId;\n }\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n // Don't show drop indicator if invalid drop:\n // 1. Can't drop an item into itself (newParentId === draggedNavItemId)\n // 2. Groups can only exist at the top level, so prevent dropping a group into another group (newParentId !== null means it would be nested)\n if (newParentId === this.draggedNavItemId || (draggedItem?.type === 'group' && newParentId !== null)) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n return;\n }\n // Valid drop target found - store the target item and position (above/below/center)\n // so the UI can render the drop indicator in the correct location\n this.navItemDropTargetId = item.id;\n this.navItemDropPosition = position;\n foundTarget = true;\n });\n // Mouse is not over any valid nav item - clear the drop indicator\n // (e.g., user dragged outside the nav area or over empty space)\n if (!foundTarget) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n }\n this.requestUpdate();\n }\n /**\n * Cancels the pending auto-expand timeout for nav groups during drag.\n * Called when the user moves away from a group's center or stops dragging.\n */\n clearNavItemDragExpandTimeout() {\n if (this.navItemDragExpandTimeout) {\n clearTimeout(this.navItemDragExpandTimeout);\n this.navItemDragExpandTimeout = null;\n }\n }\n /**\n * Auto-expands a collapsed nav group after a delay while dragging over it.\n *\n * Uses a 500ms timeout to prevent groups from expanding too eagerly when the\n * user is just passing over them. Only expands if the user is still hovering\n * over the group's center when the timeout fires.\n *\n * @param itemId - The ID of the group to expand\n */\n expandNavGroupOnDrag(itemId) {\n this.navItemDragExpandTimeout = window.setTimeout(() => {\n if (this.navItemDropTargetId === itemId && this.navItemDropPosition === 'center') {\n this.navItemsExpanded.add(itemId);\n this.requestUpdate();\n }\n this.navItemDragExpandTimeout = null;\n }, 500);\n }\n /**\n * Executes the drop operation after a nav item drag completes.\n *\n * Calculates the new position and parent for the dragged item based on\n * the drop target and position (above/below/center). Updates the navDelta\n * with new order values for the dragged item and shifts siblings as needed.\n */\n executeNavItemDrop() {\n if (!this.draggedNavItemId || !this.navItemDropTargetId) {\n return;\n }\n const allItems = this.getComputedNav();\n const draggedItem = allItems.find(i => i.id === this.draggedNavItemId);\n const targetItem = allItems.find(i => i.id === this.navItemDropTargetId);\n if (!draggedItem || !targetItem) {\n return;\n }\n // Determine the new parentId for the dragged item\n let newParentId;\n if (this.navItemDropPosition === 'center' && targetItem.type === 'group') {\n if (targetItem.id === this.draggedNavItemId) {\n return;\n }\n newParentId = targetItem.id;\n }\n else {\n newParentId = targetItem.parentId;\n }\n if (newParentId === this.draggedNavItemId) {\n return;\n }\n // Get siblings in the destination parent\n const siblings = allItems\n .filter(i => i.parentId === newParentId && i.id !== this.draggedNavItemId)\n .sort((a, b) => a.order - b.order);\n const navDelta = this.pref.nav;\n // Calculate the new order\n let newOrder;\n if (this.navItemDropPosition === 'center') {\n // Dropping into a group - place at the end of its children\n if (siblings.length > 0) {\n newOrder = Math.max(...siblings.map(s => s.order)) + 1;\n }\n else {\n newOrder = 0;\n }\n }\n else {\n // Find where the target item is in the sorted siblings list\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n // Determine insert position based on drop position (above/below target)\n if (targetIndex === -1) {\n newOrder = 0;\n }\n else if (this.navItemDropPosition === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing siblings to make room for the dropped item.\n // Items at or after the insert position get their order bumped up by 1.\n siblings.forEach((sibling, index) => {\n if (!navDelta[sibling.id]) {\n navDelta[sibling.id] = {};\n }\n if (index >= newOrder) {\n navDelta[sibling.id].order = index + 1;\n }\n else {\n navDelta[sibling.id].order = index;\n }\n });\n }\n // Update the dragged item's position and parent in the delta\n if (!navDelta[this.draggedNavItemId]) {\n navDelta[this.draggedNavItemId] = {};\n }\n navDelta[this.draggedNavItemId].order = newOrder;\n navDelta[this.draggedNavItemId].parentId = newParentId;\n // Persist changes and trigger re-render\n this.pref.nav = navDelta;\n this.requestUpdate();\n }\n // =========================================================================\n // User Menu\n // =========================================================================\n toggleUserMenu() {\n this.isUserMenuOpen = !this.isUserMenuOpen;\n }\n closeUserMenu() {\n this.isUserMenuOpen = false;\n }\n handleCustomize() {\n this.closeUserMenu();\n this.startEditing();\n }\n // =========================================================================\n // Rendering\n // =========================================================================\n renderNormalFooter() {\n if (!this.user) {\n return nothing;\n }\n const initials = this.user.name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n // todo - use a reusable menu component\n return html `\n <div class=\"user-menu-container\">\n ${this.isUserMenuOpen ? html `\n <div class=\"user-menu\">\n <button class=\"user-menu__item\" @click=${this.handleCustomize}>\n Customize Navigation\n </button>\n </div>\n ` : nothing}\n <div class=\"user\" @click=${this.toggleUserMenu}>\n <div class=\"user__avatar\">\n ${this.user.avatar\n ? html `<img src=${this.user.avatar} alt=${this.user.name} />`\n : initials}\n </div>\n <div class=\"user__info\">\n <div class=\"user__name\">${this.user.name}</div>\n ${this.user.email ? html `<div class=\"user__email\">${this.user.email}</div>` : nothing}\n </div>\n </div>\n </div>\n `;\n }\n // todo - review\n renderEditFooter() {\n return html `\n <div class=\"edit-actions\">\n <button class=\"edit-actions__btn edit-actions__btn--primary\" @click=${this.savePref}>\n Save\n </button>\n <div class=\"edit-actions__secondary\">\n <button class=\"edit-actions__btn\" @click=${this.resetPref}>\n Reset\n </button>\n <button class=\"edit-actions__btn\" @click=${this.cancelEditing}>\n Cancel\n </button>\n </div>\n </div>\n `;\n }\n /**\n * Renders a navigation item as either a group or a link.\n *\n * Groups render as expandable `<button>` elements with a chevron indicator and\n * nested children. Items render as `<a>` anchor links with href navigation.\n *\n * Both types support drag-and-drop reordering in edit mode, context menus for\n * customization, and visual indicators for active/hidden/drop-target states.\n *\n * Icons use SVG strings and fall back to `defaultNavItemIcon` when not provided.\n * Icons are only rendered for top-level items, not for children nested within groups.\n *\n * @param item - The flat nav item data to render\n * @param isChild - Whether this item is nested within a group (affects icon rendering)\n * @returns Lit HTML template for the nav item\n */\n renderNavItem(item, isChild = false) {\n if (item.type === 'section') {\n return html `\n <div class=\"nav-section\">${item.label}</div>\n `;\n }\n if (item.type === 'group') {\n const children = this.getNavItemChildren(item.id);\n return html `\n <button\n class=${classMap({\n 'nav-item': true,\n 'nav-item--expanded': this.navItemsExpanded.has(item.id),\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n 'nav-item--drop-center': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'center',\n })}\n data-id=\"${item.id}\"\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n <svg\n class=\"nav-item__chevron\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path\n d=\"M6 9l6 6 6-6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <div class=${classMap({\n 'nav-group': true,\n 'nav-group--expanded': this.navItemsExpanded.has(item.id),\n })}>\n ${children.map((child) => this.renderNavItem(child, true))}\n </div>\n `;\n }\n return html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': this.activeNavItemId === item.id,\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n })}\n data-id=\"${item.id}\"\n href=${this.resolveUrl(item)}\n target=${item.external ? '_blank' : nothing}\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed && !isChild ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n </a>\n `;\n }\n // todo - don't hardcode breadcrumbs\n render() {\n const topLevelItems = this.getNavItemChildren(null);\n // Use unfiltered count to determine if search should show (so it doesn't disappear while typing)\n const totalTopLevelItems = this.getComputedNav().filter(item => item.parentId === null).length;\n return html `\n <div class=${classMap({\n 'progress': true,\n 'progress--loading': this.pendingRequests > 0,\n })}>\n <div class=\"progress__track\"></div>\n <div class=\"progress__bar progress__bar--primary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n <div class=\"progress__bar progress__bar--secondary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n </div>\n \n ${this.subbar ? html `\n <kr-subbar\n menu\n .breadcrumbs=${this.breadcrumbs}\n @menu-click=${this.handleMenuClick}\n >\n <slot name=\"subbar\"></slot>\n </kr-subbar>\n ` : nothing}\n\n <div class=\"wrapper\">\n ${this.navEnabled ? html `\n <nav class=${classMap({\n 'nav': true,\n 'nav--scrolled': this.isNavScrolled,\n 'nav--opened': !this.subbar || this.isNavOpened,\n })}>\n <div class=\"nav-header\" @click=${this.handleNavHeaderClick}>\n ${this.label\n ? html `<span class=\"nav-title\">${this.label}</span>`\n : this.logo\n ? html `<img\n class=\"nav-logo\"\n src=${this.logo}\n alt=\"Logo\"\n />`\n : nothing}\n </div>\n <div class=\"nav-content\" @scroll=${this.handleNavScroll}>\n ${totalTopLevelItems > 20 ? html `\n <div class=\"nav-search\">\n <div class=\"nav-search__wrapper\">\n <span class=\"nav-search__icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\n </svg>\n </span>\n <input\n class=\"nav-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n .value=${this.navQuery}\n @input=${this.handleNavQueryChange}\n />\n ${this.navQuery ? html `\n <button class=\"nav-search__clear\" @click=${this.handleNavQueryClear}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\n </svg>\n </button>\n ` : nothing}\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-items\">\n ${topLevelItems.map((item) => this.renderNavItem(item))}\n </div>\n </div>\n <!-- <div class=\"nav-footer\">\n ${this.isEditing ? this.renderEditFooter() : this.renderNormalFooter()}\n </div> -->\n </nav>\n ` : nothing}\n\n <main class=\"main\">\n <slot></slot>\n </main>\n </div>\n \n `;\n }\n};\nKRScaffold.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n font-size: 14px;\n --kr-scaffold-nav-width: 250px;\n\n /* Default to light scheme */\n --kr-scaffold-nav-bg: #F3F7FC;\n --kr-scaffold-nav-text: #000000;\n --kr-scaffold-nav-text-active: #000000;\n --kr-scaffold-nav-hover: #f3f4f6;\n --kr-scaffold-nav-active-bg: #e5e7eb;\n --kr-scaffold-nav-border: rgb(229, 229, 228);\n --kr-scaffold-nav-divider: #e5e7eb;\n --kr-scaffold-nav-search-bg: #ffffff;\n --kr-scaffold-nav-search-border: #d1d5db;\n }\n\n /* Dark scheme */\n :host([scheme=\"dark\"]) {\n --kr-scaffold-nav-bg: #10172a;\n --kr-scaffold-nav-text: rgb(255 255 255 / 80%);\n --kr-scaffold-nav-text-active: #ffffff;\n --kr-scaffold-nav-hover: rgba(255, 255, 255, 0.05);\n --kr-scaffold-nav-active-bg: rgb(255 255 255 / 12%);\n --kr-scaffold-nav-border: transparent;\n --kr-scaffold-nav-divider: rgba(255, 255, 255, 0.06);\n --kr-scaffold-nav-search-bg: rgba(255, 255, 255, 0.15);\n --kr-scaffold-nav-search-border: rgba(255, 255, 255, 0.3);\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Nav */\n .nav {\n width: var(--kr-scaffold-nav-width);\n background: var(--kr-scaffold-nav-bg);\n color: var(--kr-scaffold-nav-text);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n border-right: 1px solid var(--kr-scaffold-nav-border);\n transition: margin-left 0.3s ease;\n margin-left: calc(-1 * var(--kr-scaffold-nav-width));\n flex: 1;\n max-width: var(--kr-scaffold-nav-width);\n }\n\n .nav--opened {\n margin-left: 0;\n }\n\n .wrapper {\n display: flex;\n flex: 1;\n min-height: 0;\n max-height: 100%;\n height: 100%;\n }\n\n .nav-header {\n padding: 20px;\n display: flex;\n align-items: center;\n position: relative;\n z-index: 1;\n transition: box-shadow 0.2s ease;\n cursor: pointer;\n }\n\n .nav--scrolled .nav-header {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n\n .nav-logo {\n max-width: 100%;\n height: 32px;\n }\n\n .nav-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--kr-scaffold-nav-text-active);\n letter-spacing: .2px;\n }\n\n .nav-search {\n padding: 4px 0 8px;\n }\n\n .nav-search__wrapper {\n display: flex;\n align-items: center;\n background: var(--kr-scaffold-nav-search-bg);\n border-radius: 8px;\n padding: 0 12px;\n height: 40px;\n gap: 8px;\n border: 1px solid var(--kr-scaffold-nav-search-border);\n transition: all 0.15s ease;\n }\n\n .nav-search__icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n opacity: 0.6;\n }\n\n .nav-search__icon svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-search__input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-family: inherit;\n min-width: 0;\n }\n\n .nav-search__input::placeholder {\n color: var(--kr-scaffold-nav-text);\n opacity: 0.7;\n }\n\n .nav-search__clear {\n width: 18px;\n height: 18px;\n padding: 0;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n }\n\n .nav-search__clear:hover {\n opacity: 1;\n }\n\n .nav-search__clear svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 9px 12px 8px;\n }\n\n .nav-footer {\n padding: 12px;\n border-top: 1px solid var(--kr-scaffold-nav-divider);\n }\n\n .user {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .user:hover {\n background: var(--kr-scaffold-nav-hover);\n }\n\n .user__avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--kr-scaffold-avatar-bg, #beea4e);\n color: var(--kr-scaffold-avatar-text, #10172a);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user__info {\n flex: 1;\n min-width: 0;\n }\n\n .user__name {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-scaffold-nav-text-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user__email {\n font-size: 12px;\n color: var(--kr-scaffold-nav-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-menu-container {\n position: relative;\n }\n\n .user-menu {\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n margin-bottom: 8px;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n }\n\n .user-menu__item {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .user-menu__item:hover {\n background: var(--kr-scaffold-nav-hover);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .user-menu__divider {\n height: 1px;\n background: var(--kr-scaffold-nav-divider);\n margin: 4px 0;\n }\n\n /* Main */\n .main {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n background: transparent;\n display: flex;\n flex-direction: column;\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n color: #6b7280;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n .main__content {\n flex: 1;\n overflow-y: auto;\n }\n\n /* Nav Items */\n .nav-items {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 0 12px;\n height: 32px;\n border-radius: 8px;\n color: var(--kr-scaffold-nav-text);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n text-align: left;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: #F3F7FC;\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .nav-item--active,\n .nav-item--active:hover {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .nav-item__icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .nav-item__icon svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n }\n\n .nav-item__label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: 0.14px;\n }\n\n .nav-item__chevron {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform: rotate(-90deg);\n stroke: currentColor;\n }\n\n .nav-item--expanded .nav-item__chevron {\n transform: rotate(0deg);\n }\n\n .nav-group {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 0;\n }\n\n .nav-group--expanded {\n height: auto;\n }\n\n .nav-group .nav-item {\n padding: 0 12px 0 44px;\n height: 32px;\n font-size: 13px;\n font-weight: 400;\n margin-top: 2px;\n flex-shrink: 0;\n }\n\n .nav-group .nav-item--active,\n .nav-group .nav-item--active:hover {\n font-weight: 700;\n }\n\n .nav-group .nav-item:first-child {\n margin-top: 0;\n }\n\n /* Nav items in groups when icons are hidden */\n :host(:not([nav-icons-displayed])) .nav-group .nav-item {\n padding-left: 24px;\n }\n\n /* Sections */\n .nav-section {\n padding: 16px 12px 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.55px;\n color: var(--kr-scaffold-nav-text);\n opacity: 0.6;\n }\n\n .nav-section:first-child {\n padding-top: 0;\n }\n\n /* Edit mode actions */\n .edit-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .edit-actions__btn {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: var(--kr-scaffold-nav-hover);\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .edit-actions__btn:hover {\n background: var(--kr-scaffold-nav-active-bg);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .edit-actions__btn--primary {\n background: #beea4e;\n color: #10172a;\n }\n\n .edit-actions__btn--primary:hover {\n background: #d4f472;\n color: #10172a;\n }\n\n .edit-actions__secondary {\n display: flex;\n gap: 8px;\n }\n\n .edit-actions__secondary .edit-actions__btn {\n flex: 1;\n }\n\n /* Hidden/inactive items in edit mode */\n .nav-item--hidden {\n opacity: 0.4;\n font-style: italic;\n }\n\n .nav-item--hidden:hover {\n opacity: 0.6;\n }\n\n /* Dragging state */\n :host(.kr-scaffold--dragging),\n :host(.kr-scaffold--dragging) * {\n cursor: grabbing;\n user-select: none;\n }\n\n .nav-item-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 1000;\n opacity: 0.9;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n padding: 0 12px;\n height: 40px;\n min-width: 200px;\n display: flex;\n align-items: center;\n gap: 16px;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-weight: 500;\n }\n\n /* Drop indicator */\n .nav-item--drop-above,\n .nav-item--drop-below,\n .nav-item--drop-center {\n position: relative;\n }\n\n .nav-item--drop-above::before,\n .nav-item--drop-below::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 2px;\n background: #beea4e;\n }\n\n .nav-item--drop-above::before {\n top: 0;\n }\n\n .nav-item--drop-below::after {\n bottom: 0;\n }\n\n .nav-item--drop-center {\n background: var(--kr-scaffold-nav-active-bg);\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n //background: #f9fafb;\n background: #beea4e;\n border-top: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n //color: #6b7280;\n color: #10172a;\n font-size: 13px;\n font-weight: 600;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n /* Progress bar */\n .progress {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n overflow-x: hidden;\n z-index: 1000;\n display: none;\n }\n\n .progress--loading {\n display: block;\n }\n\n .progress__track {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n background: rgba(190, 234, 78, 0.3);\n }\n\n .progress__bar {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n transform-origin: left center;\n }\n\n .progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n background: #beea4e;\n }\n\n .progress__bar--primary {\n left: -145.166611%;\n }\n\n .progress--loading .progress__bar--primary {\n animation: progress-primary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--primary .progress__bar-inner {\n animation: progress-primary-scale 2s infinite linear;\n }\n\n .progress__bar--secondary {\n left: -54.888891%;\n }\n\n .progress--loading .progress__bar--secondary {\n animation: progress-secondary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--secondary .progress__bar-inner {\n animation: progress-secondary-scale 2s infinite linear;\n }\n\n @keyframes progress-primary-translate {\n 0% {\n transform: translateX(0);\n }\n 20% {\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n transform: translateX(0);\n }\n 59.15% {\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n transform: translateX(83.67142%);\n }\n 100% {\n transform: translateX(200.611057%);\n }\n }\n\n @keyframes progress-primary-scale {\n 0% {\n transform: scaleX(0.08);\n }\n 36.65% {\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n transform: scaleX(0.08);\n }\n 69.15% {\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n transform: scaleX(0.661479);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n\n @keyframes progress-secondary-translate {\n 0% {\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n transform: translateX(0);\n }\n 25% {\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n transform: translateX(37.651913%);\n }\n 48.35% {\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n transform: translateX(84.386165%);\n }\n 100% {\n transform: translateX(160.277782%);\n }\n }\n\n @keyframes progress-secondary-scale {\n 0% {\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n transform: scaleX(0.08);\n }\n 19.15% {\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n transform: scaleX(0.457104);\n }\n 44.15% {\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n transform: scaleX(0.72796);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n `;\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"logo\", void 0);\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"label\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'home-url'\n })\n], KRScaffold.prototype, \"homeUrl\", void 0);\n__decorate([\n property({\n type: String,\n reflect: true\n })\n], KRScaffold.prototype, \"scheme\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"nav\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-icons-displayed',\n reflect: true\n })\n], KRScaffold.prototype, \"navIconsDisplayed\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-expanded'\n })\n], KRScaffold.prototype, \"navExpanded\", void 0);\n__decorate([\n property({ type: Object })\n], KRScaffold.prototype, \"user\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRScaffold.prototype, \"subbar\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-enabled'\n })\n], KRScaffold.prototype, \"navEnabled\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'user-type'\n })\n], KRScaffold.prototype, \"userType\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"breadcrumbs\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemsExpanded\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navQuery\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"activeNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavScrolled\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavOpened\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isEditing\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isUserMenuOpen\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pref\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"draggedNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropTargetId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropPosition\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pendingRequests\", void 0);\nKRScaffold = __decorate([\n customElement('kr-scaffold')\n], KRScaffold);\nexport { KRScaffold };\n//# sourceMappingURL=scaffold.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary navigation component for screens within the scaffold.\n * Provides a simple nav drawer for sub-navigation within a page/screen.\n * Typically used when viewing details of a specific entity (e.g., Company, Contact).\n *\n * ## Usage\n * ```html\n * <kr-screen-nav\n * label=\"Acme Corporation\"\n * subLabel=\"Company\"\n * .items=${[\n * { id: 'overview', label: 'Overview', url: '/companies/123/overview' },\n * { id: 'contacts', label: 'Contacts', url: '/companies/123/contacts' },\n * { id: 'activity', label: 'Activity', url: '/companies/123/activity' },\n * ]}\n * activeId=\"overview\"\n * >\n * <div>Screen content here</div>\n * </kr-screen-nav>\n * ```\n *\n * @slot - The main screen content\n *\n * @property {string} label - Main label (e.g., entity name like \"Acme Corporation\")\n * @property {string} subLabel - Sub label (e.g., entity type like \"Company\")\n * @property {KRScreenNavItem[]} items - Navigation items as JSON array\n * @property {string} activeId - Currently active item ID\n */\nlet KRScreenNav = class KRScreenNav extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Main label (e.g., entity name like \"Acme Corporation\")\n */\n this.label = '';\n /**\n * Sub label (e.g., entity type like \"Company\")\n */\n this.subLabel = '';\n /**\n * Navigation items\n */\n this.items = [];\n /**\n * Currently active item ID. Auto-detected from the URL by default.\n * Can be set explicitly by the parent to override.\n */\n this.activeId = '';\n this.handlePopstate = () => {\n this.syncActiveFromUrl();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n // Defer so property bindings (.items) have been applied\n requestAnimationFrame(() => this.syncActiveFromUrl());\n window.addEventListener('popstate', this.handlePopstate);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopstate);\n }\n /**\n * Handles click events on navigation items.\n *\n * Dispatches a cancelable `nav-item-click` custom event.\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScreenNavDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n this.activeId = item.id;\n }\n syncActiveFromUrl() {\n const pathname = window.location.pathname;\n const match = this.items.find((item) => {\n if (!item.url) {\n return false;\n }\n // Absolute URL — exact match\n if (item.url.startsWith('/')) {\n return pathname === item.url;\n }\n // Relative URL — match against the end of the pathname\n return pathname.endsWith('/' + item.url);\n });\n if (match) {\n this.activeId = match.id;\n }\n }\n render() {\n return html `\n <nav class=\"nav\">\n ${this.label ? html `\n <div class=\"nav-header\">\n <div class=\"nav-header__text\">\n ${this.subLabel ? html `<div class=\"nav-header__subtitle\">${this.subLabel}</div>` : nothing}\n <div class=\"nav-header__title\">${this.label}</div>\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-content\">\n <div class=\"nav-items\">\n ${this.items.map((item) => html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': item.id === this.activeId\n })}\n href=${item.url || '#'}\n @click=${(e) => this.handleNavItemClick(e, item)}\n >\n ${item.label}\n </a>\n `)}\n </div>\n </div>\n </nav>\n <main class=\"content\">\n <div class=\"content__main\">\n <slot></slot>\n </div>\n </main>\n `;\n }\n};\nKRScreenNav.styles = css `\n :host {\n display: flex;\n height: 100%;\n }\n\n .nav {\n width: 200px;\n background: white;\n border-right: 1px solid #e5e7eb;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n }\n\n .nav-header {\n padding: 20px 16px 16px;\n }\n\n .nav-header__text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .nav-header__title {\n font-size: 20px;\n font-weight: 600;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .nav-header__subtitle {\n font-size: 12px;\n font-weight: 400;\n color: rgb(0 0 0 / 70%);\n line-height: 1;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 0 12px;\n }\n\n .nav-items {\n display: flex;\n flex-direction: column;\n padding: 0 8px;\n }\n\n .nav-item {\n display: block;\n padding: 0 12px;\n height: 32px;\n line-height: 32px;\n letter-spacing: 0.13px;\n color: rgb(32, 33, 36);\n text-decoration: none;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n border-radius: 8px;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: rgba(0, 0, 0, 0.04);\n color: #163052;\n }\n\n .nav-item--active {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .content__main {\n flex: 1;\n overflow-y: auto;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"subLabel\", void 0);\n__decorate([\n property({ type: Array })\n], KRScreenNav.prototype, \"items\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"activeId\", void 0);\nKRScreenNav = __decorate([\n customElement('kr-screen-nav')\n], KRScreenNav);\nexport { KRScreenNav };\n//# sourceMappingURL=screen-nav.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * Detail screen component for viewing/editing entity details.\n * Displays a form-like layout with labeled fields centered in a single column.\n *\n * ## Usage\n * ```html\n * <kr-screen-detail title=\"Company Details\">\n * <kr-button slot=\"actions\">Save</kr-button>\n * <kr-text-field label=\"Company Name\" value=\"Acme Corporation\"></kr-text-field>\n * <kr-text-field label=\"Industry\" value=\"Technology\"></kr-text-field>\n * <kr-text-field label=\"Website\" value=\"https://acme.com\"></kr-text-field>\n * </kr-screen-detail>\n * ```\n *\n * @slot - Form fields and content (centered, max-width 480px)\n * @slot actions - Action buttons displayed in the header on the right\n *\n * @property {string} title - Section title (e.g., \"Company Details\")\n */\nlet KRScreenDetail = class KRScreenDetail extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section title\n */\n this.title = '';\n }\n render() {\n return html `\n <div class=\"header\">\n <h2 class=\"header__title\">${this.title}</h2>\n <div class=\"header__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n};\nKRScreenDetail.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .header {\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px;\n background: #ffffff;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .header__title {\n font-size: 18px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .header__actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n display: flex;\n justify-content: center;\n }\n\n .content__inner {\n width: 100%;\n max-width: 700px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenDetail.prototype, \"title\", void 0);\nKRScreenDetail = __decorate([\n customElement('kr-screen-detail')\n], KRScreenDetail);\nexport { KRScreenDetail };\n//# sourceMappingURL=screen-detail.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary bar component that sits below the main app bar.\n *\n * @slot - Content to display in the subbar (right side)\n */\nlet KRSubbar = class KRSubbar extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Array of breadcrumb items to display\n */\n this.breadcrumbs = [];\n /**\n * Whether to show the menu icon\n */\n this.menu = false;\n }\n _handleMenuClick() {\n this.dispatchEvent(new CustomEvent('menu-click', {\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Resolves a breadcrumb URL by prepending the base href.\n *\n * This method is used for setting href attributes on anchor elements\n * (so Cmd/Ctrl+click opens correct URL in new tab).\n *\n * The original crumb.url is kept intact (without base href) and passed to Angular\n * via the breadcrumb-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - crumb.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(crumb) = \"/operations/settings\" (used for href)\n */\n resolveUrl(crumb) {\n if (!crumb.url) {\n return '#';\n }\n // Remove leading slash from url if present, then combine with base\n let path = crumb.url;\n if (crumb.url.startsWith('/')) {\n path = crumb.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n /**\n * Handles click on a breadcrumb link.\n * Dispatches a cancelable event so SPA routers can intercept.\n */\n _handleBreadcrumbClick(e, crumb, isCurrent) {\n // Don't navigate if it's the current/last breadcrumb\n if (isCurrent || !crumb.url) {\n e.preventDefault();\n return;\n }\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n const breadcrumbEvent = new CustomEvent('breadcrumb-click', {\n detail: { breadcrumb: crumb },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(breadcrumbEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (breadcrumbEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n render() {\n return html `\n ${this.menu ? html `\n <div class=\"menu\" @click=${this._handleMenuClick}>\n <svg\n class=\"menu__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <line\n x1=\"3\"\n y1=\"6\"\n x2=\"21\"\n y2=\"6\"\n ></line>\n <line\n x1=\"3\"\n y1=\"12\"\n x2=\"21\"\n y2=\"12\"\n ></line>\n <line\n x1=\"3\"\n y1=\"18\"\n x2=\"21\"\n y2=\"18\"\n ></line>\n </svg>\n </div>\n ` : nothing}\n <div class=\"breadcrumbs\">\n ${this.breadcrumbs.map((crumb, index) => {\n const isCurrent = index === this.breadcrumbs.length - 1;\n return html `\n ${index > 0 ? html `<span class=\"breadcrumb-separator\">/</span>` : ''}\n <a\n class=${classMap({\n 'breadcrumb': true,\n 'breadcrumb--current': isCurrent\n })}\n href=${this.resolveUrl(crumb)}\n @click=${(e) => this._handleBreadcrumbClick(e, crumb, isCurrent)}\n >${crumb.label}</a>\n `;\n })}\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n\n `;\n }\n};\nKRSubbar.styles = css `\n :host {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 40px;\n background: #E2E9F6;\n border-bottom: 1px solid rgb(229, 229, 228);\n align-items: center;\n padding: 0 16px;\n width: 100%;\n flex-shrink: 0;\n }\n\n .breadcrumbs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n flex: 1;\n }\n\n .breadcrumb {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n font-size: 13px;\n }\n\n .breadcrumb:hover {\n text-decoration: underline;\n }\n\n .breadcrumb--current {\n cursor: default;\n }\n\n .breadcrumb--current:hover {\n text-decoration: none;\n }\n\n .breadcrumb-separator {\n color: #9ca3af;\n font-size: 12px;\n }\n\n .content {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n .menu {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n cursor: pointer;\n }\n\n .menu__icon {\n width: 18px;\n height: 18px;\n }\n `;\n__decorate([\n property({ type: Array })\n], KRSubbar.prototype, \"breadcrumbs\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSubbar.prototype, \"menu\", void 0);\nKRSubbar = __decorate([\n customElement('kr-subbar')\n], KRSubbar);\nexport { KRSubbar };\n//# sourceMappingURL=subbar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nexport class KRRouter {\n static configure(config) {\n KRRouter.base = config.base;\n KRRouter.routes = config.routes;\n // Intercept <a> clicks for client-side navigation\n window.addEventListener('click', (e) => {\n const anchor = e.composedPath().find(el => el instanceof HTMLAnchorElement);\n if (!anchor) {\n return;\n }\n if (anchor.origin !== window.location.origin) {\n return;\n }\n if (!anchor.pathname.startsWith(KRRouter.base)) {\n return;\n }\n e.preventDefault();\n KRRouter.navigate(anchor.pathname);\n });\n }\n static navigate(path) {\n let fullPath = path;\n if (!path.startsWith('/')) {\n fullPath = KRRouter.base + '/' + path;\n }\n window.history.pushState({}, '', fullPath);\n window.dispatchEvent(new PopStateEvent('popstate'));\n }\n static getParams() {\n const matched = KRRouter.matchAll();\n const params = {};\n for (const match of matched) {\n for (const key in match.params) {\n params[key] = decodeURIComponent(match.params[key]);\n }\n }\n return params;\n }\n static outlet(level) {\n const matched = KRRouter.matchAll();\n if (level >= matched.length) {\n return null;\n }\n const match = matched[level];\n const tag = match.route.component;\n const cached = KRRouter.elementCache.get(level + ':' + tag);\n if (cached) {\n return cached;\n }\n // Clear old cache entry for this level\n for (const key of KRRouter.elementCache.keys()) {\n if (key.startsWith(level + ':')) {\n KRRouter.elementCache.delete(key);\n }\n }\n const el = document.createElement(tag);\n KRRouter.elementCache.set(level + ':' + tag, el);\n return el;\n }\n static matchAll() {\n const path = window.location.pathname;\n let relative = path;\n if (path.startsWith(KRRouter.base)) {\n relative = path.slice(KRRouter.base.length);\n }\n const segments = relative.split('/').filter(s => s);\n return KRRouter.matchRoutes(KRRouter.routes, segments);\n }\n static matchRoutes(routes, segments) {\n for (const route of routes) {\n const routeSegments = route.path.split('/').filter(s => s);\n if (routeSegments.length === 0 && segments.length === 0) {\n return [{\n route,\n params: {}\n }];\n }\n if (routeSegments.length === 0) {\n continue;\n }\n if (segments.length < routeSegments.length) {\n continue;\n }\n const params = {};\n let matched = true;\n for (let i = 0; i < routeSegments.length; i++) {\n if (routeSegments[i].startsWith(':')) {\n params[routeSegments[i].slice(1)] = segments[i];\n }\n else if (routeSegments[i] !== segments[i]) {\n matched = false;\n break;\n }\n }\n if (!matched) {\n continue;\n }\n const remaining = segments.slice(routeSegments.length);\n // If there are remaining segments but no children, this route doesn't fully match — try next route\n if (remaining.length > 0 && !route.children) {\n continue;\n }\n const result = [{\n route,\n params\n }];\n if (route.children && remaining.length > 0) {\n const childMatches = KRRouter.matchRoutes(route.children, remaining);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n // No remaining segments + default child — redirect\n if (route.children && remaining.length === 0 && route.default) {\n window.history.replaceState({}, '', window.location.pathname + '/' + route.default);\n const childMatches = KRRouter.matchRoutes(route.children, [route.default]);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n return result;\n }\n return [];\n }\n}\nKRRouter.base = '';\nKRRouter.routes = [];\nKRRouter.elementCache = new Map();\nlet KRRouterOutlet = class KRRouterOutlet extends LitElement {\n constructor() {\n super(...arguments);\n this.level = -1;\n this.handlePopState = () => {\n this.requestUpdate();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.level = this.detectLevel();\n window.addEventListener('popstate', this.handlePopState);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopState);\n }\n detectLevel() {\n let level = 0;\n let node = this;\n while (node) {\n if (node instanceof ShadowRoot) {\n node = node.host;\n continue;\n }\n if (node instanceof HTMLElement && node.tagName === 'KR-ROUTER-OUTLET' && node !== this) {\n level++;\n }\n if (node instanceof HTMLElement) {\n node = node.parentNode;\n }\n else {\n node = null;\n }\n }\n return level;\n }\n render() {\n const el = KRRouter.outlet(this.level);\n if (!el) {\n return html ``;\n }\n return html `${el}`;\n }\n};\nKRRouterOutlet.styles = css `\n :host {\n display: block;\n height: 100%;\n }\n `;\nKRRouterOutlet = __decorate([\n customElement('kr-router-outlet')\n], KRRouterOutlet);\nexport { KRRouterOutlet };\n//# sourceMappingURL=router.js.map","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * marked v12.0.2 - a markdown parser\n * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n // precede setext continuation with 4 spaces so it isn't a setext\n let text = cap[0].replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1');\n text = rtrim(text.replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n (list.items[list.items.length - 1]).text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = '\\\\p{P}\\\\p{S}';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n }\n else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape$1(lang)\n + '\">'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n blockquote(quote) {\n return `<blockquote>\\n${quote}</blockquote>\\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `<h${level}>${text}</h${level}>\\n`;\n }\n hr() {\n return '<hr>\\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(text, task, checked) {\n return `<li>${text}</li>\\n`;\n }\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph(text) {\n return `<p>${text}</p>\\n`;\n }\n table(header, body) {\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow(content) {\n return `<tr>\\n${content}</tr>\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `<strong>${text}</strong>`;\n }\n em(text) {\n return `<em>${text}</em>`;\n }\n codespan(text) {\n return `<code>${text}</code>`;\n }\n br() {\n return '<br>';\n }\n del(text) {\n return `<del>${text}</del>`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${title}\"`;\n }\n out += '>';\n return out;\n }\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n em(text) {\n return text;\n }\n codespan(text) {\n return text;\n }\n del(text) {\n return text;\n }\n html(text) {\n return text;\n }\n text(text) {\n return text;\n }\n link(href, title, text) {\n return '' + text;\n }\n image(href, title, text) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const genericToken = token;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n const headingToken = token;\n out += this.renderer.heading(this.parseInline(headingToken.tokens), headingToken.depth, unescape(this.parseInline(headingToken.tokens, this.textRenderer)));\n continue;\n }\n case 'code': {\n const codeToken = token;\n out += this.renderer.code(codeToken.text, codeToken.lang, !!codeToken.escaped);\n continue;\n }\n case 'table': {\n const tableToken = token;\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < tableToken.header.length; j++) {\n cell += this.renderer.tablecell(this.parseInline(tableToken.header[j].tokens), { header: true, align: tableToken.align[j] });\n }\n header += this.renderer.tablerow(cell);\n let body = '';\n for (let j = 0; j < tableToken.rows.length; j++) {\n const row = tableToken.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), { header: false, align: tableToken.align[k] });\n }\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n const blockquoteToken = token;\n const body = this.parse(blockquoteToken.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n const listToken = token;\n const ordered = listToken.ordered;\n const start = listToken.start;\n const loose = listToken.loose;\n let body = '';\n for (let j = 0; j < listToken.items.length; j++) {\n const item = listToken.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.renderer.checkbox(!!checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape$1(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { marked } from 'marked';\nimport { KRFilePreview } from '@kodaris/krubble-components';\n/** Image MIME types the chatbot accepts (matches what Bedrock can ingest). */\nconst ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];\n/**\n * AI chatbot component with SSE streaming.\n *\n * Accepts a `send` callback that returns a streaming Response (SSE format).\n * Parses the stream for text tokens, status updates, and errors.\n * Dispatches a `stream-event` custom event for every SSE message so consumers can react.\n *\n * ## SSE Stream Format\n * The component expects `data:` lines with JSON payloads containing a `type` field:\n * - `STATUS` — `{ type: \"STATUS\", message: \"Thinking...\" }`\n * - `RESPONSE_PART` — `{ type: \"RESPONSE_PART\", message: \"token text\" }`\n * - `TOOL_RESULT` — `{ type: \"TOOL_RESULT\", message: \"tool_name\", data: {...} }`\n * - `ERROR` — `{ type: \"ERROR\", message: \"Something went wrong\" }`\n * - `HEARTBEAT` — `{ type: \"HEARTBEAT\" }` (ignored)\n *\n * The final event should include `finished: true` to signal stream completion.\n *\n * ## Usage\n * ```html\n * <kr-chatbot\n * title=\"AI Assistant\"\n * .send=${(params) => {\n * return fetch('/api/ai/chat/stream', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json', 'Accept': 'text/event-stream' },\n * credentials: 'include',\n * body: JSON.stringify({ userText: params.message })\n * });\n * }}\n * ></kr-chatbot>\n * ```\n *\n * @slot - Optional slot content displayed above the messages area\n *\n * @fires message-submit - When the user sends a message. Cancelable. Detail: `{ message: string }`\n * @fires stream-event - Dispatched for every SSE message received. Detail contains the parsed event data.\n */\nlet KRChatbot = class KRChatbot extends LitElement {\n constructor() {\n super(...arguments);\n // --- Private properties ---\n this._reader = null;\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._userHasScrolledUp = false;\n this._isDragging = false;\n this._isResizing = false;\n this._overlay = null;\n this._resizeDir = '';\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dragStartLeft = 0;\n this._dragStartTop = 0;\n this._resizeStartW = 0;\n this._resizeStartH = 0;\n /** Counter for depth-aware dragenter/dragleave tracking. */\n this._dragDepth = 0;\n /** Monotonic id source for pending attachments. */\n this._pendingSeq = 0;\n // --- @property (public API) ---\n /**\n * Callback function for sending messages. Receives the user's message and\n * current conversation history. Must return a Response with a streaming SSE body.\n */\n this.send = null;\n /**\n * Callback function called when the user clears the conversation.\n * Must return a Promise — messages are only cleared if it resolves.\n */\n this.clear = null;\n /**\n * Callback function called on init to load existing conversation messages.\n * Must return a Promise that resolves with an array of KRChatbotMessage.\n */\n this.load = null;\n /**\n * Conversation messages. Can be set externally for initial messages.\n * Updated internally as the conversation progresses.\n */\n this.messages = [];\n /**\n * Header title text.\n */\n this.title = 'Kat';\n /**\n * Header subtitle text (shown below title with a green status dot).\n */\n this.subtitle = '';\n /**\n * Input placeholder text.\n */\n this.placeholder = 'Type a message...';\n /**\n * Whether the chat panel is open. Only relevant in floating mode.\n */\n this.opened = false;\n /**\n * Hide the built-in floating toggle button. Use this when an external\n * control (e.g. the site-editor bar) owns opening the chat — the panel is\n * then driven via the `open()` / `close()` / `toggle()` methods.\n */\n this.hideToggle = false;\n // --- @state (internal) ---\n this._inputValue = '';\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n /** Images staged in the composer, before the message is sent. */\n this._pendingAttachments = [];\n /** True while a file is being dragged over the panel (shows the drop overlay). */\n this._isDraggingFile = false;\n this._handleMouseMove = (e) => {\n if (this._isDragging) {\n let newLeft = this._dragStartLeft + (e.clientX - this._dragStartX);\n let newTop = this._dragStartTop + (e.clientY - this._dragStartY);\n const w = this._panelEl.offsetWidth;\n newLeft = Math.max(-w + 48, Math.min(newLeft, window.innerWidth - 48));\n newTop = Math.max(0, Math.min(newTop, window.innerHeight - 48));\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n else if (this._isResizing) {\n const dx = e.clientX - this._dragStartX;\n const dy = e.clientY - this._dragStartY;\n const minW = 340;\n const minH = 380;\n const maxW = window.innerWidth * 0.9;\n const maxH = window.innerHeight - 72;\n let newW = this._resizeStartW;\n let newH = this._resizeStartH;\n let newLeft = this._dragStartLeft;\n let newTop = this._dragStartTop;\n if (this._resizeDir.includes('e')) {\n newW = Math.max(minW, Math.min(this._resizeStartW + dx, maxW));\n }\n if (this._resizeDir.includes('w')) {\n newW = Math.max(minW, Math.min(this._resizeStartW - dx, maxW));\n newLeft = this._dragStartLeft + (this._resizeStartW - newW);\n }\n if (this._resizeDir.includes('s')) {\n newH = Math.max(minH, Math.min(this._resizeStartH + dy, maxH));\n }\n if (this._resizeDir.includes('n')) {\n newH = Math.max(minH, Math.min(this._resizeStartH - dy, maxH));\n newTop = this._dragStartTop + (this._resizeStartH - newH);\n }\n newLeft = Math.max(0, newLeft);\n newTop = Math.max(0, newTop);\n this._panelEl.style.width = newW + 'px';\n this._panelEl.style.height = newH + 'px';\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n };\n this._handleMouseUp = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._panelEl.classList.remove('panel--dragging');\n }\n if (this._isResizing) {\n this._isResizing = false;\n this._panelEl.classList.remove('panel--resizing');\n }\n this._hideOverlay();\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n this._saveState();\n };\n }\n // --- Lifecycle ---\n connectedCallback() {\n super.connectedCallback();\n if (this.load) {\n this.load().then((messages) => {\n if (messages && messages.length) {\n this.messages = messages;\n }\n }).catch(() => { });\n }\n this._restoreState();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n // Release any object URLs still held by staged attachments.\n this._pendingAttachments.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n }\n updated(changed) {\n if (changed.has('messages') || changed.has('_statusText')) {\n if (!this._userHasScrolledUp && !this._isStreaming && this._messagesEl) {\n requestAnimationFrame(() => {\n if (this._messagesEl) {\n this._messagesEl.scrollTop = this._messagesEl.scrollHeight;\n }\n });\n }\n }\n if (changed.has('opened') && this.opened && this._inputEl) {\n setTimeout(() => {\n if (this._inputEl) {\n this._inputEl.focus();\n }\n }, 200);\n }\n }\n // --- Public methods ---\n /**\n * Stops the current stream without clearing the conversation.\n */\n stop() {\n this._handleStop();\n }\n /** Open the chat panel. */\n open() {\n if (!this.opened) {\n this._handleToggle();\n }\n }\n /** Close the chat panel. */\n close() {\n if (this.opened) {\n this._handleToggle();\n }\n }\n /** Toggle the chat panel open/closed. */\n toggle() {\n this._handleToggle();\n }\n // --- Private methods ---\n /**\n * Shows a full-viewport transparent overlay during drag/resize operations.\n *\n * This overlay solves a critical rendering issue when the chatbot is used inside\n * a page that contains iframes (e.g., the AI editor shell where the page content\n * is rendered in an iframe and the chatbot floats on top).\n *\n * Without the overlay, modifying the iframe's `pointer-events` style during drag\n * (to prevent it from swallowing mousemove events) causes Chrome to recalculate\n * compositing layers. This layer recalculation blocks the browser from repainting\n * the chatbot panel's style changes (width/height/position) even though they are\n * correctly applied to the DOM. The result is that the panel appears frozen while\n * the user drags, despite the inline styles updating on every mousemove.\n *\n * The overlay approach avoids this entirely: instead of touching the iframe's styles,\n * we place a transparent div (z-index 9999) above the iframe but below the chatbot\n * (z-index 10000). This div intercepts all mouse events that would otherwise hit the\n * iframe, without triggering any compositing layer changes on the iframe itself.\n */\n _showOverlay() {\n if (!this._overlay) {\n this._overlay = document.createElement('div');\n this._overlay.style.cssText = 'position:fixed; inset:0; z-index:9999; display:none;';\n document.body.appendChild(this._overlay);\n }\n this._overlay.style.display = 'block';\n }\n _hideOverlay() {\n if (this._overlay) {\n this._overlay.style.display = 'none';\n }\n }\n _handleHeaderMouseDown(e) {\n // Ignore clicks on buttons inside the header\n if (e.target.closest('button')) {\n return;\n }\n if (!this._panelEl) {\n return;\n }\n this._isDragging = true;\n this._panelEl.classList.add('panel--dragging');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n e.preventDefault();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleResizeMouseDown(e) {\n if (!this._panelEl) {\n return;\n }\n this._isResizing = true;\n this._resizeDir = e.currentTarget.dataset.dir || '';\n this._panelEl.classList.add('panel--resizing');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n this._resizeStartW = rect.width;\n this._resizeStartH = rect.height;\n e.preventDefault();\n e.stopPropagation();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleToggle() {\n this.opened = !this.opened;\n if (this.opened && this._panelEl) {\n this._applyStoredLayout();\n }\n this._saveState();\n }\n _saveState() {\n try {\n const state = { opened: String(this.opened) };\n if (this._panelEl) {\n const s = this._panelEl.style;\n if (s.left) {\n state.left = s.left;\n }\n if (s.top) {\n state.top = s.top;\n }\n if (s.width) {\n state.width = s.width;\n }\n if (s.height) {\n state.height = s.height;\n }\n if (s.position) {\n state.position = s.position;\n }\n }\n localStorage.setItem('kr-chatbot-state', JSON.stringify(state));\n }\n catch { /* localStorage not available */ }\n }\n _restoreState() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.opened === 'true') {\n this.opened = true;\n // Apply layout after first render\n this.updateComplete.then(() => this._applyStoredLayout());\n }\n }\n catch { /* localStorage not available */ }\n }\n _applyStoredLayout() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw || !this._panelEl) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.position) {\n this._panelEl.style.position = state.position;\n }\n if (state.left) {\n this._panelEl.style.left = state.left;\n }\n if (state.top) {\n this._panelEl.style.top = state.top;\n }\n if (state.width) {\n this._panelEl.style.width = state.width;\n }\n if (state.height) {\n this._panelEl.style.height = state.height;\n }\n }\n catch { /* localStorage not available */ }\n }\n _handleInputChange(e) {\n this._inputValue = e.target.value;\n // Auto-resize textarea\n const textarea = e.target;\n textarea.style.height = 'auto';\n textarea.style.height = Math.min(textarea.scrollHeight, 120) + 'px';\n }\n _handleKeyDown(e) {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n this._handleSubmit();\n }\n }\n // --- Attachments ---\n _openFilePicker() {\n this._fileInputEl?.click();\n }\n _handleFileInputChange(e) {\n const input = e.target;\n if (input.files) {\n this._addFiles(input.files);\n }\n // Reset so picking the same file again re-fires change.\n input.value = '';\n }\n _handlePaste(e) {\n const items = e.clipboardData?.items;\n if (!items) {\n return;\n }\n const files = [];\n for (let i = 0; i < items.length; i++) {\n if (items[i].kind === 'file') {\n const file = items[i].getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n if (files.length) {\n e.preventDefault();\n this._addFiles(files);\n }\n }\n _handleDragEnter(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth++;\n this._isDraggingFile = true;\n }\n _handleDragOver(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n // Required so the drop event fires.\n e.preventDefault();\n }\n _handleDragLeave(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n this._dragDepth--;\n if (this._dragDepth <= 0) {\n this._dragDepth = 0;\n this._isDraggingFile = false;\n }\n }\n _handleDrop(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth = 0;\n this._isDraggingFile = false;\n if (e.dataTransfer?.files) {\n this._addFiles(e.dataTransfer.files);\n }\n }\n _hasFiles(e) {\n return Array.from(e.dataTransfer?.types || []).includes('Files');\n }\n /** Stage a set of image files in the composer (held locally until send). */\n _addFiles(fileList) {\n const files = Array.from(fileList).filter((f) => ACCEPTED_IMAGE_TYPES.includes(f.type));\n if (!files.length) {\n return;\n }\n files.forEach((file) => {\n const pending = {\n localId: 'att-' + this._pendingSeq++,\n file,\n name: file.name,\n previewUrl: URL.createObjectURL(file),\n };\n this._pendingAttachments = [...this._pendingAttachments, pending];\n });\n }\n _removePending(localId) {\n const target = this._pendingAttachments.find((p) => p.localId === localId);\n if (target) {\n URL.revokeObjectURL(target.previewUrl);\n }\n this._pendingAttachments = this._pendingAttachments.filter((p) => p.localId !== localId);\n }\n _clearPending() {\n this._pendingAttachments.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n this._pendingAttachments = [];\n }\n /** Open the shared full-screen previewer for an attachment. */\n _openAttachment(att) {\n KRFilePreview.open({\n src: att.url,\n name: att.name || 'image',\n });\n }\n /** Whether the send button is active: needs text or at least one image. */\n _canSend() {\n return Boolean(this._inputValue.trim()) || this._pendingAttachments.length > 0;\n }\n _handleSubmit() {\n if (!this.send || this._isStreaming) {\n return;\n }\n const messageText = this._inputValue.trim();\n const pending = this._pendingAttachments;\n // Allow sending an image with no text, but require at least one of them.\n if (!messageText && !pending.length) {\n return;\n }\n // The raw files sent to the backend, and the display attachments for the\n // sent message. The message reuses each preview object URL, so ownership of\n // those URLs transfers to the message (we don't revoke them here).\n const files = pending.map((p) => p.file);\n const attachments = pending.map((p) => ({\n url: p.previewUrl,\n name: p.name,\n mimeType: p.file.type,\n }));\n const submitEvent = new CustomEvent('message-submit', {\n detail: {\n message: messageText,\n files,\n },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(submitEvent);\n if (submitEvent.defaultPrevented) {\n return;\n }\n const userMessage = {\n role: 'user',\n content: messageText,\n };\n if (attachments.length) {\n userMessage.attachments = attachments;\n }\n this.messages = [...this.messages, userMessage];\n this._inputValue = '';\n this._error = '';\n this._userHasScrolledUp = false;\n // Clear the composer without revoking the object URLs — the sent message now\n // owns them for display.\n this._pendingAttachments = [];\n // Reset textarea height\n if (this._inputEl) {\n this._inputEl.style.height = 'auto';\n }\n // Add empty assistant message to stream into\n this.messages = [...this.messages, {\n role: 'assistant',\n content: '',\n }];\n this._isStreaming = true;\n this._statusText = '';\n // Scroll user's message to the top (Gemini-style).\n // Set min-height on the assistant message = container height so there's enough\n // scroll room below the user message to push it to the top.\n this.updateComplete.then(() => {\n if (!this._messagesEl) {\n return;\n }\n // Clear min-height from previous responses\n this._messagesEl.querySelectorAll('.message--assistant').forEach((el) => {\n el.style.minHeight = '';\n });\n const allMsgEls = this._messagesEl.querySelectorAll('.message');\n const userMsgEl = allMsgEls[this.messages.length - 2];\n const assistantMsgEl = allMsgEls[this.messages.length - 1];\n if (assistantMsgEl) {\n assistantMsgEl.style.minHeight = this._messagesEl.clientHeight + 'px';\n }\n if (userMsgEl) {\n this._messagesEl.scrollTop = userMsgEl.offsetTop - this._messagesEl.offsetTop - 24;\n }\n });\n this.send({\n message: messageText,\n messages: this.messages.slice(0, -1),\n files,\n }).then((response) => {\n if (!response.ok) {\n this._handleStreamError('Request failed: ' + response.status);\n return;\n }\n if (!response.body) {\n this._handleStreamError('No response body');\n return;\n }\n this._reader = response.body.getReader();\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStop() {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this._isStreaming = false;\n this._statusText = '';\n }\n _handleClear() {\n if (!this.clear) {\n return;\n }\n this.clear().then(() => {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this.messages = [];\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n this._inputValue = '';\n this._userHasScrolledUp = false;\n });\n }\n _handleMessagesScroll(e) {\n const container = e.target;\n const distanceFromBottom = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (distanceFromBottom > 50) {\n this._userHasScrolledUp = true;\n }\n else {\n this._userHasScrolledUp = false;\n }\n }\n _handleErrorDismiss() {\n this._error = '';\n }\n _readStreamChunk() {\n if (!this._reader) {\n return;\n }\n this._reader.read().then((result) => {\n if (result.done) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n return;\n }\n this._buffer = this._buffer + this._decoder.decode(result.value, { stream: true });\n const events = this._buffer.split('\\n\\n');\n this._buffer = events.pop() || '';\n for (let i = 0; i < events.length; i++) {\n if (!events[i].trim()) {\n continue;\n }\n const lines = events[i].split('\\n');\n for (let j = 0; j < lines.length; j++) {\n if (!lines[j].startsWith('data:')) {\n continue;\n }\n const raw = lines[j].slice(5).trim();\n if (!raw) {\n continue;\n }\n let data;\n try {\n data = JSON.parse(raw);\n }\n catch {\n continue;\n }\n // Dispatch a generic event for every SSE message so consumers can listen and react\n this.dispatchEvent(new CustomEvent('stream-event', {\n detail: data,\n bubbles: true,\n composed: true,\n }));\n if (data.type === 'STATUS') {\n if (data.message) {\n this._statusText = String(data.message);\n }\n }\n else if (data.type === 'REASONING_PART') {\n if (data.message) {\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n if (!this.messages[lastIndex].reasoning) {\n this.messages[lastIndex].reasoning = '';\n }\n this.messages[lastIndex].reasoning += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'RESPONSE_PART') {\n if (data.message) {\n this._statusText = '';\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n this.messages[lastIndex].content += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'ERROR') {\n this._handleStreamError(String(data.message || 'Unknown error'));\n }\n if (data.finished) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n }\n }\n }\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStreamError(message) {\n this._isStreaming = false;\n this._statusText = '';\n this._error = message;\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n // Remove the empty assistant message if it has no content\n if (this.messages.length > 0) {\n const lastMessage = this.messages[this.messages.length - 1];\n if (lastMessage.role === 'assistant' && !lastMessage.content) {\n this.messages = this.messages.slice(0, -1);\n }\n }\n }\n // --- Render ---\n render() {\n return html `\n ${this.hideToggle ? nothing : html `\n <button\n class=${classMap({\n 'toggle': true,\n 'toggle--hidden': this.opened,\n })}\n @click=${this._handleToggle}\n title=\"Open chat\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n class=\"toggle-icon\"\n >\n <path d=\"M12 2C6.48 2 2 6.03 2 11c0 2.61 1.19 4.94 3.05 6.55L4 22l4.8-2.4C9.82 19.85 10.88 20 12 20c5.52 0 10-4.03 10-9S17.52 2 12 2z\"/>\n <path d=\"M8 11h.01M12 11h.01M16 11h.01\" stroke-width=\"2.5\"/>\n </svg>\n </button>\n `}\n\n <div\n class=${classMap({\n 'panel': true,\n 'panel--opened': this.opened,\n })}\n @dragenter=${this._handleDragEnter}\n @dragover=${this._handleDragOver}\n @dragleave=${this._handleDragLeave}\n @drop=${this._handleDrop}\n >\n ${this._isDraggingFile ? html `\n <div class=\"drop-overlay\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"\n />\n </svg>\n <span>Drop images to attach</span>\n </div>\n ` : nothing}\n <div\n class=\"resize resize--n\"\n data-dir=\"n\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--s\"\n data-dir=\"s\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--w\"\n data-dir=\"w\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--e\"\n data-dir=\"e\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--nw\"\n data-dir=\"nw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--ne\"\n data-dir=\"ne\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--sw\"\n data-dir=\"sw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--se\"\n data-dir=\"se\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div class=\"header\" @mousedown=${this._handleHeaderMouseDown}>\n <div class=\"header-left\">\n <div class=\"header-info\">\n <span class=\"header-title\">${this.title}</span>\n ${this.subtitle ? html `\n <span class=\"header-subtitle\">${this.subtitle}</span>\n ` : nothing}\n </div>\n </div>\n <div class=\"header-actions\">\n ${this.messages.length > 0 ? html `\n <button\n class=\"header-action\"\n @click=${this._handleClear}\n title=\"Clear conversation\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"\n />\n </svg>\n </button>\n ` : nothing}\n <button\n class=\"header-action\"\n @click=${this._handleToggle}\n title=\"Close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"messages\" @scroll=${this._handleMessagesScroll}>\n ${this.messages.length === 0 ? html `\n <div class=\"empty\">\n <span class=\"empty-text\">What can I help you with?</span>\n </div>\n ` : nothing}\n ${this.messages.map((msg) => html `\n <div class=${classMap({\n 'message': true,\n 'message--user': msg.role === 'user',\n 'message--assistant': msg.role === 'assistant',\n })}>\n ${msg.reasoning ? html `\n <details class=\"reasoning\">\n <summary>Thinking</summary>\n <div class=\"reasoning-content\">${msg.reasoning}</div>\n </details>\n ` : nothing}\n ${msg.attachments && msg.attachments.length ? html `\n <div class=\"attachments\">\n ${msg.attachments.map((att) => html `\n <button\n class=\"attachment\"\n type=\"button\"\n title=${att.name || 'View image'}\n @click=${() => this._openAttachment(att)}\n >\n <img src=${att.url} alt=${att.name || ''} />\n </button>\n `)}\n </div>\n ` : nothing}\n ${msg.content ? html `\n <div class=\"message-content\">\n ${msg.role === 'user'\n ? msg.content\n : unsafeHTML(marked.parse(msg.content, { breaks: true }))}\n </div>\n ` : nothing}\n ${msg.role === 'assistant' && this._isStreaming && msg === this.messages[this.messages.length - 1] ? html `\n <div class=\"typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n ` : nothing}\n </div>\n `)}\n </div>\n\n ${this._error ? html `\n <div class=\"error\">\n <span>${this._error}</span>\n <button class=\"error-dismiss\" @click=${this._handleErrorDismiss}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"error-dismiss-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ` : nothing}\n\n <div class=\"footer\">\n ${this._pendingAttachments.length ? html `\n <div class=\"composer-attachments\">\n ${repeat(this._pendingAttachments, (p) => p.localId, (p) => html `\n <div class=\"chip\">\n <img src=${p.previewUrl} alt=${p.name} />\n <button\n class=\"chip-remove\"\n title=\"Remove\"\n @click=${() => this._removePending(p.localId)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"3\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n `)}\n </div>\n ` : nothing}\n <input\n class=\"file-input\"\n type=\"file\"\n accept=\"image/png,image/jpeg,image/gif,image/webp\"\n multiple\n hidden\n @change=${this._handleFileInputChange}\n />\n <div class=\"input-wrapper\">\n <button\n class=\"input-plus\"\n title=\"Attach image\"\n @click=${this._openFilePicker}\n >+</button>\n <textarea\n class=\"input\"\n .value=${this._inputValue}\n placeholder=${this.placeholder}\n rows=\"1\"\n @input=${this._handleInputChange}\n @keydown=${this._handleKeyDown}\n @paste=${this._handlePaste}\n ></textarea>\n ${this._isStreaming ? html `\n <button\n class=\"stop\"\n @click=${this._handleStop}\n title=\"Stop generating\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n class=\"stop-icon\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"12\"\n height=\"12\"\n rx=\"2\"\n />\n </svg>\n </button>\n ` : html `\n <button\n class=${classMap({\n 'send': true,\n 'send--disabled': !this._canSend(),\n })}\n @click=${this._handleSubmit}\n title=\"Send message\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n class=\"send-icon\"\n >\n <path d=\"M12 19V5M5 12l7-7 7 7\"/>\n </svg>\n </button>\n `}\n </div>\n </div>\n </div>\n `;\n }\n};\nKRChatbot.styles = css `\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n line-height: 1.6;\n\n --kr-chatbot-primary: #163052;\n --kr-chatbot-primary-hover: #1e4068;\n --kr-chatbot-bg: #ffffff;\n --kr-chatbot-border: #d9d9d9;\n --kr-chatbot-text: #1a1a2e;\n --kr-chatbot-text-secondary: #64668b;\n --kr-chatbot-user-bg: #e9e9e980;\n --kr-chatbot-error-bg: #fef2f2;\n --kr-chatbot-error-text: #dc2626;\n --kr-chatbot-success: #00b894;\n --kr-chatbot-toggle-size: 56px;\n --kr-chatbot-panel-width: 440px;\n --kr-chatbot-panel-height: 620px;\n }\n\n :host {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 10000;\n }\n\n /* Toggle button */\n .toggle {\n width: var(--kr-chatbot-toggle-size);\n height: var(--kr-chatbot-toggle-size);\n border-radius: 18px;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 24px rgba(22, 48, 82, 0.4);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .toggle:hover {\n transform: scale(1.05);\n box-shadow: 0 6px 32px rgba(22, 48, 82, 0.5);\n }\n\n .toggle--hidden {\n transform: scale(0);\n opacity: 0;\n pointer-events: none;\n }\n\n .toggle-icon {\n width: 26px;\n height: 26px;\n }\n\n /* Panel */\n .panel {\n display: none;\n flex-direction: column;\n background: var(--kr-chatbot-bg);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n width: var(--kr-chatbot-panel-width);\n height: var(--kr-chatbot-panel-height);\n max-height: calc(100vh - 72px);\n border-radius: 16px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08), 0 2px 12px rgba(0, 0, 0, 0.04);\n border: 1px solid rgba(0, 0, 0, 0.08);\n animation: chatbot-panel-in 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n transform-origin: bottom right;\n }\n\n .panel--opened {\n display: flex;\n }\n\n @keyframes chatbot-panel-in {\n from {\n opacity: 0;\n transform: scale(0.92) translateY(20px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n /* Header */\n .header {\n padding: 0 16px 0 24px;\n height: 64px;\n background: #ffffff;\n color: #000000;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n.header-info {\n display: flex;\n flex-direction: column;\n }\n\n .header-title {\n font-size: 16px;\n font-weight: 600;\n }\n\n .header-subtitle {\n color: rgba(255, 255, 255, 0.5);\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-subtitle::before {\n content: '';\n width: 5px;\n height: 5px;\n background: var(--kr-chatbot-success);\n border-radius: 50%;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-action {\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n color: rgb(0 0 0 / 70%);\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n }\n\n .header-action:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #000000;\n }\n\n .header-action-icon {\n width: 20px;\n height: 20px;\n }\n\n /* Messages */\n .messages {\n flex: 1;\n overflow-y: auto;\n padding: 32px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n scroll-behavior: smooth;\n background: white;\n }\n\n .messages::-webkit-scrollbar {\n width: 4px;\n }\n\n .messages::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .messages::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.08);\n border-radius: 2px;\n }\n\n .empty {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: var(--kr-chatbot-text-secondary);\n gap: 8px;\n }\n\n.empty-text {\n font-size: 14px;\n color: rgb(0 0 0 / 80%);\n }\n\n .message {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n animation: chatbot-msg-in 0.3s ease-out;\n }\n\n @keyframes chatbot-msg-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .message--user {\n align-self: flex-end;\n align-items: flex-end;\n max-width: 85%;\n }\n\n .message--assistant {\n align-self: flex-start;\n gap: 24px;\n }\n\n .message-content {\n line-height: 1.7;\n word-wrap: break-word;\n overflow-wrap: break-word;\n }\n\n .message--user .message-content {\n display: inline-block;\n background: var(--kr-chatbot-user-bg);\n color: #000000;\n padding: 10px 16px;\n border-radius: 20px;\n border-bottom-right-radius: 6px;\n font-size: 14px;\n }\n\n .message--assistant .message-content {\n background: transparent;\n color: #000000;\n padding: 0;\n font-size: 14px;\n }\n\n .message--assistant .message-content pre {\n background: #1e1e1e;\n color: #d4d4d4;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.4;\n }\n\n .message--assistant .message-content code {\n font-family: 'SF Mono', 'Fira Code', Monaco, monospace;\n font-size: 13px;\n }\n\n .message--assistant .message-content :not(pre) > code {\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 5px;\n border-radius: 3px;\n }\n\n .message--assistant .message-content strong {\n font-weight: 600;\n }\n\n .message--assistant .message-content p {\n margin: 0 0 8px 0;\n }\n\n .message--assistant .message-content p:last-child {\n margin-bottom: 0;\n }\n\n /* Reasoning */\n .reasoning {\n border-radius: 6px;\n background: rgb(244 244 244 / 80%);\n font-size: 12px;\n }\n\n .reasoning summary {\n cursor: pointer;\n padding: 6px 10px 6px 10px;\n color: black;\n user-select: none;\n }\n\n .reasoning-content {\n padding: 6px 10px 10px;\n color: black;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n.typing {\n display: flex;\n gap: 4px;\n padding: 4px 0;\n }\n\n .typing span {\n width: 6px;\n height: 6px;\n background: var(--kr-chatbot-text-secondary);\n border-radius: 50%;\n animation: chatbot-typing 1.4s infinite;\n opacity: 0.4;\n }\n\n .typing span:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .typing span:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes chatbot-typing {\n 0%, 60%, 100% {\n opacity: 0.4;\n transform: translateY(0);\n }\n 30% {\n opacity: 1;\n transform: translateY(-4px);\n }\n }\n\n /* Error */\n .error {\n padding: 8px 16px;\n background: var(--kr-chatbot-error-bg);\n color: var(--kr-chatbot-error-text);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .error-dismiss {\n background: none;\n border: none;\n color: var(--kr-chatbot-error-text);\n cursor: pointer;\n padding: 2px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .error-dismiss-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Footer / Input */\n .footer {\n padding: 16px 16px 16px;\n flex-shrink: 0;\n background: white;\n }\n\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 4px;\n background: white;\n border: 1px solid var(--kr-chatbot-border);\n border-radius: 26px;\n padding: 6px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .input-wrapper:focus-within {\n border-color: #b0b0b0;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);\n }\n\n .input-plus {\n width: 34px;\n height: 34px;\n border: none;\n background: transparent;\n color: var(--kr-chatbot-text);\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 20px;\n font-weight: 300;\n transition: background 0.15s;\n }\n\n .input-plus:hover {\n background: #f8f9fc;\n }\n\n .input {\n flex: 1;\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n font-size: 15px;\n line-height: 1.5;\n padding: 4px 0;\n min-height: 26px;\n max-height: 120px;\n background: transparent;\n color: black;\n }\n\n .input::placeholder {\n color: #b0b0b0;\n }\n\n .send {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .send:hover {\n background: var(--kr-chatbot-primary-hover);\n }\n\n .send--disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n .send--disabled:hover {\n background: var(--kr-chatbot-primary);\n }\n\n .send-icon {\n width: 16px;\n height: 16px;\n }\n\n .stop {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-error-text);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .stop:hover {\n background: #b91c1c;\n }\n\n .stop-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Header drag cursor */\n .header {\n cursor: grab;\n user-select: none;\n }\n\n .header:active {\n cursor: grabbing;\n }\n\n /* Drag / Resize states */\n .panel--dragging,\n .panel--resizing {\n transition: none;\n user-select: none;\n }\n\n .panel--dragging {\n box-shadow: 0 32px 96px rgba(0, 0, 0, 0.18), 0 12px 40px rgba(0, 0, 0, 0.1);\n }\n\n /* Resize handles */\n .resize {\n position: absolute;\n z-index: 10;\n }\n\n .resize--n { top: -4px; left: 12px; right: 12px; height: 8px; cursor: n-resize; }\n .resize--s { bottom: -4px; left: 12px; right: 12px; height: 8px; cursor: s-resize; }\n .resize--w { left: -4px; top: 12px; bottom: 12px; width: 8px; cursor: w-resize; }\n .resize--e { right: -4px; top: 12px; bottom: 12px; width: 8px; cursor: e-resize; }\n .resize--nw { top: -4px; left: -4px; width: 16px; height: 16px; cursor: nw-resize; }\n .resize--ne { top: -4px; right: -4px; width: 16px; height: 16px; cursor: ne-resize; }\n .resize--sw { bottom: -4px; left: -4px; width: 16px; height: 16px; cursor: sw-resize; }\n .resize--se { bottom: -4px; right: -4px; width: 16px; height: 16px; cursor: se-resize; }\n\n /* Attachment thumbnails inside a sent message bubble */\n .attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .message--user .attachments {\n justify-content: flex-end;\n }\n\n .attachment {\n width: 120px;\n height: 120px;\n border-radius: 12px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid rgba(0, 0, 0, 0.08);\n cursor: zoom-in;\n flex-shrink: 0;\n padding: 0;\n }\n\n .attachment img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n /* Composer attachment chips (pre-send) */\n .composer-attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 0 6px 10px;\n }\n\n .chip {\n position: relative;\n width: 56px;\n height: 56px;\n border-radius: 10px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid var(--kr-chatbot-border);\n flex-shrink: 0;\n }\n\n .chip img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .chip-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: none;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n line-height: 1;\n }\n\n .chip-remove:hover {\n background: rgba(0, 0, 0, 0.8);\n }\n\n .chip-remove svg {\n width: 10px;\n height: 10px;\n }\n\n /* Drag-and-drop overlay */\n .drop-overlay {\n position: absolute;\n inset: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 10px;\n /* Frosted, mostly-opaque surface so the chat content behind is masked\n and doesn't clash with the overlay label. */\n background: rgba(255, 255, 255, 0.92);\n backdrop-filter: blur(3px);\n border: 2px dashed var(--kr-chatbot-primary);\n border-radius: 16px;\n color: var(--kr-chatbot-primary);\n font-weight: 600;\n font-size: 15px;\n pointer-events: none;\n }\n\n .drop-overlay svg {\n width: 32px;\n height: 32px;\n }\n\n `;\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"send\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"clear\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"load\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"messages\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"subtitle\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"placeholder\", void 0);\n__decorate([\n property({\n type: Boolean,\n reflect: true\n })\n], KRChatbot.prototype, \"opened\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'hide-toggle',\n reflect: true\n })\n], KRChatbot.prototype, \"hideToggle\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_inputValue\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isStreaming\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_statusText\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_error\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_pendingAttachments\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isDraggingFile\", void 0);\n__decorate([\n query('.panel')\n], KRChatbot.prototype, \"_panelEl\", void 0);\n__decorate([\n query('.messages')\n], KRChatbot.prototype, \"_messagesEl\", void 0);\n__decorate([\n query('.input')\n], KRChatbot.prototype, \"_inputEl\", void 0);\n__decorate([\n query('.file-input')\n], KRChatbot.prototype, \"_fileInputEl\", void 0);\nKRChatbot = __decorate([\n customElement('kr-chatbot')\n], KRChatbot);\nexport { KRChatbot };\n//# sourceMappingURL=chatbot.js.map"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","v","m","M","__decorate","this","LitElement","html","css","state","customElement","KRScaffold","KRHttp","KRContextMenu","KRDialog","nothing","classMap","unsafeHTML","property","KRScreenNav","KRScreenDetail","KRSubbar","KRRouterOutlet","KRChatbot","KRFilePreview","repeat","query"],"mappings":"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A;AACA;AACA;AACA;AACA,6BAA6B,EAAE,IAAI,CAAC,QAAQ;AAC5C,6BAA6B,EAAE,IAAI,CAAC,oBAAoB;AACxD;AACA,oBAAoB,EAAE,IAAI,CAAC,QAAQ,GAAGA,CAAI,CAAC;AAC3C,+DAA+D,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,GAAGQ,CAAO;AAC/B;AACA;AACA,cAAc,CAAC,GAAGA,CAAO;AACzB;AACA,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvE;AACA;AACA;AACA,cAAc,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpF;AACA;AACA,QAAQ,CAAC,GAAGA,CAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAJ,oBAAU,CAAC,MAAM,GAAGH,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACHJ,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACxCP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AACzCP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,MAAM;EACpB,QAAQ,SAAS,EAAE;EACnB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;AAC3CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,MAAM;EACpB,QAAQ,OAAO,EAAE;EACjB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC1CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;EAC5B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;AACvCP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,OAAO;EACrB,QAAQ,SAAS,EAAE,qBAAqB;EACxC,QAAQ,OAAO,EAAE;EACjB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACrDP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,OAAO;EACrB,QAAQ,SAAS,EAAE;EACnB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC/CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACxCP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;EAC9B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC1CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,OAAO;EACrB,QAAQ,SAAS,EAAE;EACnB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC;AAC9CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC;EACb,QAAQ,IAAI,EAAE,MAAM;EACpB,QAAQ,SAAS,EAAE;EACnB,KAAK;EACL,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC5CP,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;EAC5B,CAAC,EAAEP,kBAAU,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC/CP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC;AACpDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC5CP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC;AACnDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC;AACjDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC/CP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;AAC7CP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC;AAClDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACxCP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC;AACpDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC;AACvDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC;AACvDP,cAAU,CAAC;EACX,IAAIK,CAAK;EACT,CAAC,EAAEE,kBAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC;AACnDA,oBAAU,GAAGP,YAAU,CAAC;EACxB,IAAIM,GAAa,CAAC,aAAa;EAC/B,CAAC,EAAEC,kBAAU,CAAC;;ECjgEd,IAAIP,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EACjE,CAAC;EAID;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACIc,qBAAW,GAAG,MAAM,WAAW,SAASb,GAAU,CAAC;EACvD,IAAI,WAAW,GAAG;EAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;EAC3B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;EACvB;EACA;EACA;EACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;EAC1B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;EACvB;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;EAC1B,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;EACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE;EACpC,QAAQ,CAAC;EACT,IAAI;EACJ,IAAI,iBAAiB,GAAG;EACxB,QAAQ,KAAK,CAAC,iBAAiB,EAAE;EACjC;EACA,QAAQ,qBAAqB,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;EAC7D,QAAQ,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;EAChE,IAAI;EACJ,IAAI,oBAAoB,GAAG;EAC3B,QAAQ,KAAK,CAAC,oBAAoB,EAAE;EACpC,QAAQ,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;EACnE,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE;EAChC,QAAQ,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;EAC3D,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE;EAC5B,YAAY,OAAO,EAAE,IAAI;EACzB,YAAY,QAAQ,EAAE,IAAI;EAC1B,YAAY,UAAU,EAAE,IAAI;EAC5B,SAAS,CAAC;EACV,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;EACpC;EACA,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE;EACvC,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,QAAQ;EACR,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;EAC/B,IAAI;EACJ,IAAI,iBAAiB,GAAG;EACxB,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;EACjD,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;EAChD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;EAC3B,gBAAgB,OAAO,KAAK;EAC5B,YAAY;EACZ;EACA,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EAC1C,gBAAgB,OAAO,QAAQ,KAAK,IAAI,CAAC,GAAG;EAC5C,YAAY;EACZ;EACA,YAAY,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;EACpD,QAAQ,CAAC,CAAC;EACV,QAAQ,IAAI,KAAK,EAAE;EACnB,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE;EACpC,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,GAAG;EACb,QAAQ,OAAOC,CAAI,CAAC;AACpB;AACA,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAGA,CAAI,CAAC;AAC5B;AACA;AACA,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAGA,CAAI,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAGQ,CAAO;AACzG,6CAA6C,EAAE,IAAI,CAAC,KAAK,CAAC;AAC1D;AACA;AACA,QAAQ,CAAC,GAAGA,CAAO;AACnB;AACA;AACA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKR,CAAI,CAAC;AAC5C;AACA,wBAAwB,EAAES,CAAQ,CAAC;AACnC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,kBAAkB,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;AACjD,SAAS,CAAC;AACV,uBAAuB,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG;AACxC,yBAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC;AAClE;AACA,kBAAkB,EAAE,IAAI,CAAC,KAAK;AAC9B;AACA,cAAc,CAAC,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAG,qBAAW,CAAC,MAAM,GAAGX,GAAG,CAAC;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACHJ,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEC,mBAAW,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAC1Cf,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEC,mBAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC7Cf,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;EAC5B,CAAC,EAAEC,mBAAW,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAC1Cf,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEC,mBAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC7CA,qBAAW,GAAGf,YAAU,CAAC;EACzB,IAAIM,GAAa,CAAC,eAAe;EACjC,CAAC,EAAES,mBAAW,CAAC;;ECnQf,IAAIf,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EACjE,CAAC;EAGD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACIe,wBAAc,GAAG,MAAM,cAAc,SAASd,GAAU,CAAC;EAC7D,IAAI,WAAW,GAAG;EAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;EAC3B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;EACvB,IAAI;EACJ,IAAI,MAAM,GAAG;EACb,QAAQ,OAAOC,CAAI,CAAC;AACpB;AACA,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAa,wBAAc,CAAC,MAAM,GAAGZ,GAAG,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACHJ,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7B,CAAC,EAAEE,sBAAc,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAC7CA,wBAAc,GAAGhB,YAAU,CAAC;EAC5B,IAAIM,GAAa,CAAC,kBAAkB;EACpC,CAAC,EAAEU,sBAAc,CAAC;;ECrGlB,IAAIhB,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EACjE,CAAC;EAID;EACA;EACA;EACA;EACA;AACIgB,kBAAQ,GAAG,MAAM,QAAQ,SAASf,GAAU,CAAC;EACjD,IAAI,WAAW,GAAG;EAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;EAC3B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;EACzB,IAAI;EACJ,IAAI,gBAAgB,GAAG;EACvB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE;EACzD,YAAY,OAAO,EAAE,IAAI;EACzB,YAAY,QAAQ,EAAE;EACtB,SAAS,CAAC,CAAC;EACX,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,UAAU,CAAC,KAAK,EAAE;EACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;EACxB,YAAY,OAAO,GAAG;EACtB,QAAQ;EACR;EACA,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EAC5B,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EACvC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EACrC,QAAQ;EACR,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG;EACpF,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACpC,YAAY,OAAO,QAAQ,GAAG,IAAI;EAClC,QAAQ;EACR,QAAQ,OAAO,QAAQ,GAAG,GAAG,GAAG,IAAI;EACpC,IAAI;EACJ;EACA;EACA;EACA;EACA,IAAI,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;EAChD;EACA,QAAQ,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;EACrC,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,YAAY;EACZ,QAAQ;EACR;EACA,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;EACtD,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC,kBAAkB,EAAE;EACpE,YAAY,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;EACzC,YAAY,OAAO,EAAE,IAAI;EACzB,YAAY,QAAQ,EAAE,IAAI;EAC1B,YAAY,UAAU,EAAE,IAAI;EAC5B,SAAS,CAAC;EACV,QAAQ,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;EAC3C;EACA,QAAQ,IAAI,eAAe,CAAC,gBAAgB,EAAE;EAC9C,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,GAAG;EACb,QAAQ,OAAOC,CAAI,CAAC;AACpB,MAAM,EAAE,IAAI,CAAC,IAAI,GAAGA,CAAI,CAAC;AACzB,iCAAiC,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,GAAGQ,CAAO;AACjB;AACA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AACjD,YAAY,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AACnE,YAAY,OAAOR,CAAI,CAAC;AACxB,YAAY,EAAE,KAAK,GAAG,CAAC,GAAGA,CAAI,CAAC,CAAC,2CAA2C,CAAC,GAAG,EAAE;AACjF;AACA,oBAAoB,EAAES,CAAQ,CAAC;AAC/B,gBAAgB,YAAY,EAAE,IAAI;AAClC,gBAAgB,qBAAqB,EAAE;AACvC,aAAa,CAAC;AACd,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC3C,qBAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;AAC9E,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;AAC3B,UAAU,CAAC;AACX,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;;AAEA,IAAI,CAAC;EACL,IAAI;EACJ;AACAK,kBAAQ,CAAC,MAAM,GAAGb,GAAG,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACHJ,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;EAC5B,CAAC,EAAEG,gBAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC7CjB,cAAU,CAAC;EACX,IAAIc,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;EAC9B,CAAC,EAAEG,gBAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACtCA,kBAAQ,GAAGjB,YAAU,CAAC;EACtB,IAAIM,GAAa,CAAC,WAAW;EAC7B,CAAC,EAAEW,gBAAQ,CAAC;;ECzNZ,IAAIjB,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EACjE,CAAC;EAGM,MAAM,QAAQ,CAAC;EACtB,IAAI,OAAO,SAAS,CAAC,MAAM,EAAE;EAC7B,QAAQ,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;EACnC,QAAQ,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;EACvC;EACA,QAAQ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;EAChD,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,iBAAiB,CAAC;EACvF,YAAY,IAAI,CAAC,MAAM,EAAE;EACzB,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;EAC1D,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EAC5D,gBAAgB;EAChB,YAAY;EACZ,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,YAAY,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;EAC9C,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE;EAC1B,QAAQ,IAAI,QAAQ,GAAG,IAAI;EAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EACnC,YAAY,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI;EACjD,QAAQ;EACR,QAAQ,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;EAClD,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;EAC3D,IAAI;EACJ,IAAI,OAAO,SAAS,GAAG;EACvB,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE;EAC3C,QAAQ,MAAM,MAAM,GAAG,EAAE;EACzB,QAAQ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;EACrC,YAAY,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;EAC5C,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;EACnE,YAAY;EACZ,QAAQ;EACR,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE;EACzB,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE;EAC3C,QAAQ,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;EACrC,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;EACpC,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS;EACzC,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;EACnE,QAAQ,IAAI,MAAM,EAAE;EACpB,YAAY,OAAO,MAAM;EACzB,QAAQ;EACR;EACA,QAAQ,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;EACxD,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE;EAC7C,gBAAgB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;EACjD,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;EAC9C,QAAQ,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;EACxD,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ,IAAI,OAAO,QAAQ,GAAG;EACtB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;EAC7C,QAAQ,IAAI,QAAQ,GAAG,IAAI;EAC3B,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EAC5C,YAAY,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;EACvD,QAAQ;EACR,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;EAC3D,QAAQ,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;EAC9D,IAAI;EACJ,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE;EACzC,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;EACpC,YAAY,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;EACtE,YAAY,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;EACrE,gBAAgB,OAAO,CAAC;EACxB,wBAAwB,KAAK;EAC7B,wBAAwB,MAAM,EAAE;EAChC,qBAAqB,CAAC;EACtB,YAAY;EACZ,YAAY,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;EAC5C,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE;EACxD,gBAAgB;EAChB,YAAY;EACZ,YAAY,MAAM,MAAM,GAAG,EAAE;EAC7B,YAAY,IAAI,OAAO,GAAG,IAAI;EAC9B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC3D,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EACtD,oBAAoB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;EACnE,gBAAgB;EAChB,qBAAqB,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;EAC3D,oBAAoB,OAAO,GAAG,KAAK;EACnC,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,OAAO,EAAE;EAC1B,gBAAgB;EAChB,YAAY;EACZ,YAAY,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;EAClE;EACA,YAAY,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;EACzD,gBAAgB;EAChB,YAAY;EACZ,YAAY,MAAM,MAAM,GAAG,CAAC;EAC5B,oBAAoB,KAAK;EACzB,oBAAoB;EACpB,iBAAiB,CAAC;EAClB,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;EACxD,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;EACpF,gBAAgB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;EAC7C,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;EAChD,oBAAoB,OAAO,MAAM;EACjC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE;EAC3E,gBAAgB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;EACnG,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;EAC1F,gBAAgB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;EAC7C,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;EAChD,oBAAoB,OAAO,MAAM;EACjC,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO,MAAM;EACzB,QAAQ;EACR,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ;EACA,QAAQ,CAAC,IAAI,GAAG,EAAE;EAClB,QAAQ,CAAC,MAAM,GAAG,EAAE;EACpB,QAAQ,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;AAC7BiB,wBAAc,GAAG,MAAM,cAAc,SAAShB,GAAU,CAAC;EAC7D,IAAI,WAAW,GAAG;EAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;EAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;EACvB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;EACpC,YAAY,IAAI,CAAC,aAAa,EAAE;EAChC,QAAQ,CAAC;EACT,IAAI;EACJ,IAAI,iBAAiB,GAAG;EACxB,QAAQ,KAAK,CAAC,iBAAiB,EAAE;EACjC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;EACvC,QAAQ,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;EAChE,IAAI;EACJ,IAAI,oBAAoB,GAAG;EAC3B,QAAQ,KAAK,CAAC,oBAAoB,EAAE;EACpC,QAAQ,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;EACnE,IAAI;EACJ,IAAI,WAAW,GAAG;EAClB,QAAQ,IAAI,KAAK,GAAG,CAAC;EACrB,QAAQ,IAAI,IAAI,GAAG,IAAI;EACvB,QAAQ,OAAO,IAAI,EAAE;EACrB,YAAY,IAAI,IAAI,YAAY,UAAU,EAAE;EAC5C,gBAAgB,IAAI,GAAG,IAAI,CAAC,IAAI;EAChC,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,IAAI,IAAI,KAAK,IAAI,EAAE;EACrG,gBAAgB,KAAK,EAAE;EACvB,YAAY;EACZ,YAAY,IAAI,IAAI,YAAY,WAAW,EAAE;EAC7C,gBAAgB,IAAI,GAAG,IAAI,CAAC,UAAU;EACtC,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,IAAI,GAAG,IAAI;EAC3B,YAAY;EACZ,QAAQ;EACR,QAAQ,OAAO,KAAK;EACpB,IAAI;EACJ,IAAI,MAAM,GAAG;EACb,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAC9C,QAAQ,IAAI,CAAC,EAAE,EAAE;EACjB,YAAY,OAAOC,CAAI,CAAC,CAAC,CAAC;EAC1B,QAAQ;EACR,QAAQ,OAAOA,CAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;EAC3B,IAAI;EACJ;AACAe,wBAAc,CAAC,MAAM,GAAGd,GAAG,CAAC;AAC5B;AACA;AACA;AACA;AACA,EAAE,CAAC;AACHc,wBAAc,GAAGlB,YAAU,CAAC;EAC5B,IAAIM,GAAa,CAAC,kBAAkB;EACpC,CAAC,EAAEY,sBAAc,CAAC;;EC9LlB;EACA;EACA;EACA;EACA,GAAO,MAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACpC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAA6P,CAAC,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAACW,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAE,CAAC;;ECJ7xB;EACA;EACA;EACA;EACA;EACA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAACZ,GAAC,CAAC,cAAcF,GAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAGI,GAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAACO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAACC,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAACA,GAAC,CAAC,MAAMH,GAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAACS,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACN,GAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAGH,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAGH,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAGH,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAACN,CAAC,CAAC,CAAC,CAACY,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAGT,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACH,GAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAACM,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAKA,GAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAE,CAAC,KAAKD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAACC,CAAC,CAAC,CAAC,CAACY,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACf,GAAC,CAAC,CAAC,CAACS,GAAC,CAAC,CAAC,CAAC,CAAC,CAACM,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,EAAEb,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAACU,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,CAACjB,CAAC,CAAC,CAAC,CAAC;;ECNrrC;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA,SAAS,YAAY,GAAG;EACxB,IAAI,OAAO;EACX,QAAQ,KAAK,EAAE,KAAK;EACpB,QAAQ,MAAM,EAAE,KAAK;EACrB,QAAQ,UAAU,EAAE,IAAI;EACxB,QAAQ,GAAG,EAAE,IAAI;EACjB,QAAQ,KAAK,EAAE,IAAI;EACnB,QAAQ,QAAQ,EAAE,KAAK;EACvB,QAAQ,QAAQ,EAAE,IAAI;EACtB,QAAQ,MAAM,EAAE,KAAK;EACrB,QAAQ,SAAS,EAAE,IAAI;EACvB,QAAQ,UAAU,EAAE;EACpB,KAAK;EACL;EACA,IAAI,SAAS,GAAG,YAAY,EAAE;EAC9B,SAAS,cAAc,CAAC,WAAW,EAAE;EACrC,IAAI,SAAS,GAAG,WAAW;EAC3B;;EAEA;EACA;EACA;EACA,MAAM,UAAU,GAAG,SAAS;EAC5B,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;EACxD,MAAM,kBAAkB,GAAG,mDAAmD;EAC9E,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;EACxE,MAAM,kBAAkB,GAAG;EAC3B,IAAI,GAAG,EAAE,OAAO;EAChB,IAAI,GAAG,EAAE,MAAM;EACf,IAAI,GAAG,EAAE,MAAM;EACf,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,GAAG,EAAE;EACT,CAAC;EACD,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE,CAAC;EAC3D,SAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;EAChC,IAAI,IAAI,MAAM,EAAE;EAChB,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EACnC,YAAY,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC;EACpE,QAAQ;EACR,IAAI;EACJ,SAAS;EACT,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EAC3C,YAAY,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;EAC5E,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,IAAI;EACf;EACA,MAAM,YAAY,GAAG,4CAA4C;EACjE,SAAS,QAAQ,CAAC,IAAI,EAAE;EACxB;EACA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;EAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;EAC3B,QAAQ,IAAI,CAAC,KAAK,OAAO;EACzB,YAAY,OAAO,GAAG;EACtB,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACjC,YAAY,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;EACnC,kBAAkB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAClE,kBAAkB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;EACtD,QAAQ;EACR,QAAQ,OAAO,EAAE;EACjB,IAAI,CAAC,CAAC;EACN;EACA,MAAM,KAAK,GAAG,cAAc;EAC5B,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;EAC1B,IAAI,IAAI,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM;EACjE,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE;EACnB,IAAI,MAAM,GAAG,GAAG;EAChB,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;EAChC,YAAY,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM;EACtE,YAAY,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACtD,YAAY,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;EACpD,YAAY,OAAO,GAAG;EACtB,QAAQ,CAAC;EACT,QAAQ,QAAQ,EAAE,MAAM;EACxB,YAAY,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;EAC1C,QAAQ;EACR,KAAK;EACL,IAAI,OAAO,GAAG;EACd;EACA,SAAS,QAAQ,CAAC,IAAI,EAAE;EACxB,IAAI,IAAI;EACR,QAAQ,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;EACnD,IAAI;EACJ,IAAI,OAAO,CAAC,EAAE;EACd,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,OAAO,IAAI;EACf;EACA,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;EACrC,SAAS,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE;EACrC;EACA;EACA,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK;EAChE,QAAQ,IAAI,OAAO,GAAG,KAAK;EAC3B,QAAQ,IAAI,IAAI,GAAG,MAAM;EACzB,QAAQ,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;EAChD,YAAY,OAAO,GAAG,CAAC,OAAO;EAC9B,QAAQ,IAAI,OAAO,EAAE;EACrB;EACA;EACA,YAAY,OAAO,GAAG;EACtB,QAAQ;EACR,aAAa;EACb;EACA,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;EAChC,IAAI,IAAI,CAAC,GAAG,CAAC;EACb;EACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;EAC1B,QAAQ,KAAK,CAAC,KAAK,EAAE;EACrB,IAAI;EACJ,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;EAC7D,QAAQ,KAAK,CAAC,GAAG,EAAE;EACnB,IAAI;EACJ,IAAI,IAAI,KAAK,EAAE;EACf,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE;EAClC,YAAY,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;EAC/B,QAAQ;EACR,aAAa;EACb,YAAY,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK;EACvC,gBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;EAC9B,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAClC;EACA,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;EACxD,IAAI;EACJ,IAAI,OAAO,KAAK;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE;EAC/B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM;EACxB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;EACjB,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ;EACA,IAAI,IAAI,OAAO,GAAG,CAAC;EACnB;EACA,IAAI,OAAO,OAAO,GAAG,CAAC,EAAE;EACxB,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;EACpD,QAAQ,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAO,EAAE;EACvC,YAAY,OAAO,EAAE;EACrB,QAAQ;EACR,aAGa;EACb,YAAY;EACZ,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;EACpC;EACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE;EACpC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;EAClC,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ,IAAI,IAAI,KAAK,GAAG,CAAC;EACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;EAC7B,YAAY,CAAC,EAAE;EACf,QAAQ;EACR,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;EAClC,YAAY,KAAK,EAAE;EACnB,QAAQ;EACR,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;EAClC,YAAY,KAAK,EAAE;EACnB,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE;EAC3B,gBAAgB,OAAO,CAAC;EACxB,YAAY;EACZ,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,EAAE;EACb;;EAEA,SAAS,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;EAC3C,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;EAC1B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;EAC1D,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;EACpD,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EAClC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;EACjC,QAAQ,MAAM,KAAK,GAAG;EACtB,YAAY,IAAI,EAAE,MAAM;EACxB,YAAY,GAAG;EACf,YAAY,IAAI;EAChB,YAAY,KAAK;EACjB,YAAY,IAAI;EAChB,YAAY,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;EAC3C,SAAS;EACT,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;EAClC,QAAQ,OAAO,KAAK;EACpB,IAAI;EACJ,IAAI,OAAO;EACX,QAAQ,IAAI,EAAE,OAAO;EACrB,QAAQ,GAAG;EACX,QAAQ,IAAI;EACZ,QAAQ,KAAK;EACb,QAAQ,IAAI,EAAE,QAAQ,CAAC,IAAI;EAC3B,KAAK;EACL;EACA,SAAS,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE;EAC3C,IAAI,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;EACxD,IAAI,IAAI,iBAAiB,KAAK,IAAI,EAAE;EACpC,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;EAC7C,IAAI,OAAO;EACX,SAAS,KAAK,CAAC,IAAI;EACnB,SAAS,GAAG,CAAC,IAAI,IAAI;EACrB,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;EACpD,QAAQ,IAAI,iBAAiB,KAAK,IAAI,EAAE;EACxC,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,QAAQ,MAAM,CAAC,YAAY,CAAC,GAAG,iBAAiB;EAChD,QAAQ,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE;EACxD,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;EAClD,QAAQ;EACR,QAAQ,OAAO,IAAI;EACnB,IAAI,CAAC;EACL,SAAS,IAAI,CAAC,IAAI,CAAC;EACnB;EACA;EACA;EACA;EACA,MAAM,UAAU,CAAC;EACjB,IAAI,OAAO;EACX,IAAI,KAAK,CAAC;EACV,IAAI,KAAK,CAAC;EACV,IAAI,WAAW,CAAC,OAAO,EAAE;EACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS;EAC3C,IAAI;EACJ,IAAI,KAAK,CAAC,GAAG,EAAE;EACf,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;EACtD,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;EACtC,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,OAAO;EAC7B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;EAC1B,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,IAAI,CAAC,GAAG,EAAE;EACd,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACnD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;EACxD,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,cAAc,EAAE,UAAU;EAC1C,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;EACpC,sBAAsB,KAAK,CAAC,IAAI,EAAE,IAAI;EACtC,sBAAsB;EACtB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,CAAC,GAAG,EAAE;EAChB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;EACrD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;EAC9B,YAAY,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EAClE,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG;EACnB,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACrG,gBAAgB;EAChB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,CAAC,GAAG,EAAE;EACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;EACtD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EACpC;EACA,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EACjC,gBAAgB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;EAChD,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EAC3C,oBAAoB,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE;EACzC,gBAAgB;EAChB,qBAAqB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;EACzD;EACA,oBAAoB,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE;EACzC,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,SAAS;EAC/B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;EACpC,gBAAgB,IAAI;EACpB,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;EAC9C,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,EAAE,CAAC,GAAG,EAAE;EACZ,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;EACjD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,IAAI;EAC1B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;EAC1B,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,UAAU,CAAC,GAAG,EAAE;EACpB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;EACzD,QAAQ,IAAI,GAAG,EAAE;EACjB;EACA,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAE,UAAU,CAAC;EACnF,YAAY,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;EAChE,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;EAC5C,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI;EACvC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;EACvD,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;EACtC,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,YAAY;EAClC,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,MAAM;EACtB,gBAAgB;EAChB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,IAAI,CAAC,GAAG,EAAE;EACd,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACjD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EACpC,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC7C,YAAY,MAAM,IAAI,GAAG;EACzB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,EAAE;EACvB,gBAAgB,OAAO,EAAE,SAAS;EAClC,gBAAgB,KAAK,EAAE,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;EAC1D,gBAAgB,KAAK,EAAE,KAAK;EAC5B,gBAAgB,KAAK,EAAE;EACvB,aAAa;EACb,YAAY,IAAI,GAAG,SAAS,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;EAC1E,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EACvC,gBAAgB,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;EACjD,YAAY;EACZ;EACA,YAAY,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;EACxF,YAAY,IAAI,GAAG,GAAG,EAAE;EACxB,YAAY,IAAI,YAAY,GAAG,EAAE;EACjC,YAAY,IAAI,iBAAiB,GAAG,KAAK;EACzC;EACA,YAAY,OAAO,GAAG,EAAE;EACxB,gBAAgB,IAAI,QAAQ,GAAG,KAAK;EACpC,gBAAgB,IAAI,EAAE,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;EAClD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACnD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;EAC/C,gBAAgB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;EACpG,gBAAgB,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACpD,gBAAgB,IAAI,MAAM,GAAG,CAAC;EAC9B,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EAC3C,oBAAoB,MAAM,GAAG,CAAC;EAC9B,oBAAoB,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE;EACnD,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EACnD,oBAAoB,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;EACrD,oBAAoB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;EACrD,oBAAoB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;EAC3C,gBAAgB;EAChB,gBAAgB,IAAI,SAAS,GAAG,KAAK;EACrC,gBAAgB,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;EACpD,oBAAoB,GAAG,IAAI,QAAQ,GAAG,IAAI;EAC1C,oBAAoB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;EAC5D,oBAAoB,QAAQ,GAAG,IAAI;EACnC,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,QAAQ,EAAE;EAC/B,oBAAoB,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC;EAC5I,oBAAoB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC;EACnI,oBAAoB,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;EACzG,oBAAoB,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7F;EACA,oBAAoB,OAAO,GAAG,EAAE;EAChC,wBAAwB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7D,wBAAwB,QAAQ,GAAG,OAAO;EAC1C;EACA,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EACnD,4BAA4B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;EACxF,wBAAwB;EACxB;EACA,wBAAwB,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;EAC7D,4BAA4B;EAC5B,wBAAwB;EACxB;EACA,wBAAwB,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;EAC9D,4BAA4B;EAC5B,wBAAwB;EACxB;EACA,wBAAwB,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;EAC5D,4BAA4B;EAC5B,wBAAwB;EACxB;EACA,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAC/C,4BAA4B;EAC5B,wBAAwB;EACxB,wBAAwB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;EACnF,4BAA4B,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;EACzE,wBAAwB;EACxB,6BAA6B;EAC7B;EACA,4BAA4B,IAAI,SAAS,EAAE;EAC3C,gCAAgC;EAChC,4BAA4B;EAC5B;EACA,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;EAC1D,gCAAgC;EAChC,4BAA4B;EAC5B,4BAA4B,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EAC7D,gCAAgC;EAChC,4BAA4B;EAC5B,4BAA4B,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EAC9D,gCAAgC;EAChC,4BAA4B;EAC5B,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EACpD,gCAAgC;EAChC,4BAA4B;EAC5B,4BAA4B,YAAY,IAAI,IAAI,GAAG,QAAQ;EAC3D,wBAAwB;EACxB,wBAAwB,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;EAC5D,4BAA4B,SAAS,GAAG,IAAI;EAC5C,wBAAwB;EACxB,wBAAwB,GAAG,IAAI,OAAO,GAAG,IAAI;EAC7C,wBAAwB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;EAC/D,wBAAwB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;EACrD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;EACjC;EACA,oBAAoB,IAAI,iBAAiB,EAAE;EAC3C,wBAAwB,IAAI,CAAC,KAAK,GAAG,IAAI;EACzC,oBAAoB;EACpB,yBAAyB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACpD,wBAAwB,iBAAiB,GAAG,IAAI;EAChD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,MAAM,GAAG,IAAI;EACjC,gBAAgB,IAAI,SAAS;EAC7B;EACA,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;EACtC,oBAAoB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;EAC7D,oBAAoB,IAAI,MAAM,EAAE;EAChC,wBAAwB,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM;EACxD,wBAAwB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;EAC/E,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;EAChC,oBAAoB,IAAI,EAAE,WAAW;EACrC,oBAAoB,GAAG;EACvB,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM;EAClC,oBAAoB,OAAO,EAAE,SAAS;EACtC,oBAAoB,KAAK,EAAE,KAAK;EAChC,oBAAoB,IAAI,EAAE,YAAY;EACtC,oBAAoB,MAAM,EAAE;EAC5B,iBAAiB,CAAC;EAClB,gBAAgB,IAAI,CAAC,GAAG,IAAI,GAAG;EAC/B,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE;EACjE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE;EAC7E,YAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;EACzC;EACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACxD,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK;EAC5C,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;EACrF,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;EACjC;EACA,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;EACxF,oBAAoB,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EAC/G,oBAAoB,IAAI,CAAC,KAAK,GAAG,qBAAqB;EACtD,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;EAC5B,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC5D,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;EAC9C,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,IAAI;EACJ,IAAI,IAAI,CAAC,GAAG,EAAE;EACd,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACnD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,KAAK,GAAG;EAC1B,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,KAAK,EAAE,IAAI;EAC3B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;EAClF,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC;EAC3B,aAAa;EACb,YAAY,OAAO,KAAK;EACxB,QAAQ;EACR,IAAI;EACJ,IAAI,GAAG,CAAC,GAAG,EAAE;EACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EAClD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;EACjE,YAAY,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;EACvH,YAAY,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAClI,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,KAAK;EAC3B,gBAAgB,GAAG;EACnB,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI;EACpB,gBAAgB;EAChB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,KAAK,CAAC,GAAG,EAAE;EACf,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;EACpD,QAAQ,IAAI,CAAC,GAAG,EAAE;EAClB,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;EAClC;EACA,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC1C,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;EAClE,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;EAC/F,QAAQ,MAAM,IAAI,GAAG;EACrB,YAAY,IAAI,EAAE,OAAO;EACzB,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EACvB,YAAY,MAAM,EAAE,EAAE;EACtB,YAAY,KAAK,EAAE,EAAE;EACrB,YAAY,IAAI,EAAE;EAClB,SAAS;EACT,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;EAC9C;EACA,YAAY;EACZ,QAAQ;EACR,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;EACpC,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;EACzC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;EACxC,YAAY;EACZ,iBAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;EAC/C,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;EACzC,YAAY;EACZ,iBAAiB,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;EAC9C,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;EACvC,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;EACrC,YAAY;EACZ,QAAQ;EACR,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;EACtC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;EAC7B,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;EAChD,aAAa,CAAC;EACd,QAAQ;EACR,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;EAChC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI;EAC3E,gBAAgB,OAAO;EACvB,oBAAoB,IAAI,EAAE,IAAI;EAC9B,oBAAoB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;EAClD,iBAAiB;EACjB,YAAY,CAAC,CAAC,CAAC;EACf,QAAQ;EACR,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,QAAQ,CAAC,GAAG,EAAE;EAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;EACvD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,SAAS;EAC/B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;EACvD,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;EAC5B,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;EAChD,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,SAAS,CAAC,GAAG,EAAE;EACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;EACxD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK;EAC9D,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;EACpC,kBAAkB,GAAG,CAAC,CAAC,CAAC;EACxB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,WAAW;EACjC,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI;EACpB,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;EAC9C,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,IAAI,CAAC,GAAG,EAAE;EACd,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACnD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;EAC5B,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;EAChD,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,CAAC,GAAG,EAAE;EAChB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;EACtD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,QAAQ;EAC9B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;EACrC,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,GAAG,CAAC,GAAG,EAAE;EACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EACnD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;EAClE,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;EAC9C,YAAY;EACZ,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;EACxE,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;EAC/C,YAAY;EACZ,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;EAC/F,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;EAClD,YAAY;EACZ,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;EACrG,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK;EACnD,YAAY;EACZ,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;EAC/C,gBAAgB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;EACvD,gBAAgB,KAAK,EAAE,KAAK;EAC5B,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC;EAC3B,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,IAAI,CAAC,GAAG,EAAE;EACd,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACpD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;EACjE;EACA,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;EAC9C,oBAAoB;EACpB,gBAAgB;EAChB;EACA,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;EACvE,gBAAgB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;EACvE,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,iBAAiB;EACjB;EACA,gBAAgB,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EACvE,gBAAgB,IAAI,cAAc,GAAG,EAAE,EAAE;EACzC,oBAAoB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;EACnE,oBAAoB,MAAM,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,cAAc;EAC1E,oBAAoB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC;EAChE,oBAAoB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;EAChE,oBAAoB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;EAC/B,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;EAC7B,YAAY,IAAI,KAAK,GAAG,EAAE;EAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EACvC;EACA,gBAAgB,MAAM,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;EACvE,gBAAgB,IAAI,IAAI,EAAE;EAC1B,oBAAoB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;EAClC,oBAAoB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;EACnC,gBAAgB;EAChB,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;EACzD,YAAY;EACZ,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;EAC9B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;EACjC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;EACvE;EACA,oBAAoB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;EACxC,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAC5C,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO,UAAU,CAAC,GAAG,EAAE;EACnC,gBAAgB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,IAAI;EACxF,gBAAgB,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG;EACvF,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;EAClC,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;EACxB,QAAQ,IAAI,GAAG;EACf,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;EACtD,gBAAgB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;EAC3D,YAAY,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;EACtE,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;EACxD,YAAY,IAAI,CAAC,IAAI,EAAE;EACvB,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;EAC7C,gBAAgB,OAAO;EACvB,oBAAoB,IAAI,EAAE,MAAM;EAChC,oBAAoB,GAAG,EAAE,IAAI;EAC7B,oBAAoB;EACpB,iBAAiB;EACjB,YAAY;EACZ,YAAY,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;EAC5D,QAAQ;EACR,IAAI;EACJ,IAAI,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE;EAC5C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;EAC9D,QAAQ,IAAI,CAAC,KAAK;EAClB,YAAY;EACZ;EACA,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;EACvD,YAAY;EACZ,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;EACnD,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;EACpF;EACA,YAAY,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;EACpD,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,EAAE,aAAa,GAAG,CAAC;EACxE,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB;EAC1H,YAAY,MAAM,CAAC,SAAS,GAAG,CAAC;EAChC;EACA,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;EAClE,YAAY,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;EAC7D,gBAAgB,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;EAC7F,gBAAgB,IAAI,CAAC,MAAM;EAC3B,oBAAoB,SAAS;EAC7B,gBAAgB,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM;EAC5C,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;EAC1C,oBAAoB,UAAU,IAAI,OAAO;EACzC,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;EAC/C,oBAAoB,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE;EACnE,wBAAwB,aAAa,IAAI,OAAO;EAChD,wBAAwB,SAAS;EACjC,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,UAAU,IAAI,OAAO;EACrC,gBAAgB,IAAI,UAAU,GAAG,CAAC;EAClC,oBAAoB,SAAS;EAC7B;EACA,gBAAgB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;EACjF;EACA,gBAAgB,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;EAC9D,gBAAgB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,cAAc,GAAG,OAAO,CAAC;EAC1F;EACA,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;EACpD,oBAAoB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EACjD,oBAAoB,OAAO;EAC3B,wBAAwB,IAAI,EAAE,IAAI;EAClC,wBAAwB,GAAG;EAC3B,wBAAwB,IAAI;EAC5B,wBAAwB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;EAC5D,qBAAqB;EACrB,gBAAgB;EAChB;EACA,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAC7C,gBAAgB,OAAO;EACvB,oBAAoB,IAAI,EAAE,QAAQ;EAClC,oBAAoB,GAAG;EACvB,oBAAoB,IAAI;EACxB,oBAAoB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;EACxD,iBAAiB;EACjB,YAAY;EACZ,QAAQ;EACR,IAAI;EACJ,IAAI,QAAQ,CAAC,GAAG,EAAE;EAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACpD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EACjD,YAAY,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;EACtD,YAAY,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9E,YAAY,IAAI,gBAAgB,IAAI,uBAAuB,EAAE;EAC7D,gBAAgB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACzD,YAAY;EACZ,YAAY,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;EACvC,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,UAAU;EAChC,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB;EAChB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,EAAE,CAAC,GAAG,EAAE;EACZ,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;EAClD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,IAAI;EAC1B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;EAC1B,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,GAAG,CAAC,GAAG,EAAE;EACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EACnD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,KAAK;EAC3B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;EAC5B,gBAAgB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;EACtD,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,QAAQ,CAAC,GAAG,EAAE;EAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;EACxD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,IAAI,EAAE,IAAI;EAC1B,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EAChC,gBAAgB,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvC,gBAAgB,IAAI,GAAG,SAAS,GAAG,IAAI;EACvC,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvC,gBAAgB,IAAI,GAAG,IAAI;EAC3B,YAAY;EACZ,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI;EACpB,gBAAgB,IAAI;EACpB,gBAAgB,MAAM,EAAE;EACxB,oBAAoB;EACpB,wBAAwB,IAAI,EAAE,MAAM;EACpC,wBAAwB,GAAG,EAAE,IAAI;EACjC,wBAAwB;EACxB;EACA;EACA,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,GAAG,CAAC,GAAG,EAAE;EACb,QAAQ,IAAI,GAAG;EACf,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACnD,YAAY,IAAI,IAAI,EAAE,IAAI;EAC1B,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EAChC,gBAAgB,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvC,gBAAgB,IAAI,GAAG,SAAS,GAAG,IAAI;EACvC,YAAY;EACZ,iBAAiB;EACjB;EACA,gBAAgB,IAAI,WAAW;EAC/B,gBAAgB,GAAG;EACnB,oBAAoB,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;EACxC,oBAAoB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;EACjF,gBAAgB,CAAC,QAAQ,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC;EAC/C,gBAAgB,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvC,gBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;EACvC,oBAAoB,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;EAC7C,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;EACjC,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB,IAAI;EACpB,gBAAgB,IAAI;EACpB,gBAAgB,MAAM,EAAE;EACxB,oBAAoB;EACpB,wBAAwB,IAAI,EAAE,MAAM;EACpC,wBAAwB,GAAG,EAAE,IAAI;EACjC,wBAAwB;EACxB;EACA;EACA,aAAa;EACb,QAAQ;EACR,IAAI;EACJ,IAAI,UAAU,CAAC,GAAG,EAAE;EACpB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACpD,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,IAAI,IAAI;EACpB,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;EAC7C,gBAAgB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;EAC7B,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvC,YAAY;EACZ,YAAY,OAAO;EACnB,gBAAgB,IAAI,EAAE,MAAM;EAC5B,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3B,gBAAgB;EAChB,aAAa;EACb,QAAQ;EACR,IAAI;EACJ;;EAEA;EACA;EACA;EACA,MAAM,OAAO,GAAG,kBAAkB;EAClC,MAAM,SAAS,GAAG,sCAAsC;EACxD,MAAM,MAAM,GAAG,6GAA6G;EAC5H,MAAM,EAAE,GAAG,oEAAoE;EAC/E,MAAM,OAAO,GAAG,sCAAsC;EACtD,MAAM,MAAM,GAAG,uBAAuB;EACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,oJAAoJ;EAC1K,KAAK,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;EAC7B,KAAK,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;EAClC,KAAK,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC;EAChD,KAAK,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;EACtC,KAAK,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC;EACxC,KAAK,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC;EAC1C,KAAK,QAAQ,EAAE;EACf,MAAM,UAAU,GAAG,sFAAsF;EACzG,MAAM,SAAS,GAAG,SAAS;EAC3B,MAAM,WAAW,GAAG,6BAA6B;EACjD,MAAM,GAAG,GAAG,IAAI,CAAC,iGAAiG;EAClH,KAAK,OAAO,CAAC,OAAO,EAAE,WAAW;EACjC,KAAK,OAAO,CAAC,OAAO,EAAE,8DAA8D;EACpF,KAAK,QAAQ,EAAE;EACf,MAAM,IAAI,GAAG,IAAI,CAAC,sCAAsC;EACxD,KAAK,OAAO,CAAC,OAAO,EAAE,MAAM;EAC5B,KAAK,QAAQ,EAAE;EACf,MAAM,IAAI,GAAG;EACb,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM,cAAc;EACpB,MAAM,QAAQ,GAAG,+BAA+B;EAChD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;EAC9B,MAAM,qEAAqE;EAC3E,MAAM,yBAAyB;EAC/B,MAAM,+BAA+B;EACrC,MAAM,+BAA+B;EACrC,MAAM,2CAA2C;EACjD,MAAM,sDAAsD;EAC5D,MAAM,oHAAoH;EAC1H,MAAM,oGAAoG;EAC1G,MAAM,GAAG,EAAE,GAAG;EACd,KAAK,OAAO,CAAC,SAAS,EAAE,QAAQ;EAChC,KAAK,OAAO,CAAC,KAAK,EAAE,IAAI;EACxB,KAAK,OAAO,CAAC,WAAW,EAAE,0EAA0E;EACpG,KAAK,QAAQ,EAAE;EACf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;EACjC,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE;EACrB,KAAK,OAAO,CAAC,SAAS,EAAE,uBAAuB;EAC/C,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;EAC7B,KAAK,OAAO,CAAC,QAAQ,EAAE,EAAE;EACzB,KAAK,OAAO,CAAC,YAAY,EAAE,SAAS;EACpC,KAAK,OAAO,CAAC,QAAQ,EAAE,gDAAgD;EACvE,KAAK,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAC9C,KAAK,OAAO,CAAC,MAAM,EAAE,6DAA6D;EAClF,KAAK,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACzB,KAAK,QAAQ,EAAE;EACf,MAAM,UAAU,GAAG,IAAI,CAAC,yCAAyC;EACjE,KAAK,OAAO,CAAC,WAAW,EAAE,SAAS;EACnC,KAAK,QAAQ,EAAE;EACf;EACA;EACA;EACA,MAAM,WAAW,GAAG;EACpB,IAAI,UAAU;EACd,IAAI,IAAI,EAAE,SAAS;EACnB,IAAI,GAAG;EACP,IAAI,MAAM;EACV,IAAI,OAAO;EACX,IAAI,EAAE;EACN,IAAI,IAAI;EACR,IAAI,QAAQ;EACZ,IAAI,IAAI;EACR,IAAI,OAAO;EACX,IAAI,SAAS;EACb,IAAI,KAAK,EAAE,QAAQ;EACnB,IAAI,IAAI,EAAE;EACV,CAAC;EACD;EACA;EACA;EACA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB;EACzC,MAAM,wDAAwD;EAC9D,MAAM,sFAAsF,CAAC;EAC7F,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE;EACrB,KAAK,OAAO,CAAC,SAAS,EAAE,uBAAuB;EAC/C,KAAK,OAAO,CAAC,YAAY,EAAE,SAAS;EACpC,KAAK,OAAO,CAAC,MAAM,EAAE,YAAY;EACjC,KAAK,OAAO,CAAC,QAAQ,EAAE,gDAAgD;EACvE,KAAK,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAC9C,KAAK,OAAO,CAAC,MAAM,EAAE,6DAA6D;EAClF,KAAK,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACzB,KAAK,QAAQ,EAAE;EACf,MAAM,QAAQ,GAAG;EACjB,IAAI,GAAG,WAAW;EAClB,IAAI,KAAK,EAAE,QAAQ;EACnB,IAAI,SAAS,EAAE,IAAI,CAAC,UAAU;EAC9B,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE;EACzB,SAAS,OAAO,CAAC,SAAS,EAAE,uBAAuB;EACnD,SAAS,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;EACjC,SAAS,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;EACnC,SAAS,OAAO,CAAC,YAAY,EAAE,SAAS;EACxC,SAAS,OAAO,CAAC,QAAQ,EAAE,gDAAgD;EAC3E,SAAS,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAClD,SAAS,OAAO,CAAC,MAAM,EAAE,6DAA6D;EACtF,SAAS,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EAC7B,SAAS,QAAQ;EACjB,CAAC;EACD;EACA;EACA;EACA,MAAM,aAAa,GAAG;EACtB,IAAI,GAAG,WAAW;EAClB,IAAI,IAAI,EAAE,IAAI,CAAC;EACf,UAAU,4CAA4C;EACtD,UAAU,sEAAsE;EAChF,SAAS,OAAO,CAAC,SAAS,EAAE,QAAQ;EACpC,SAAS,OAAO,CAAC,MAAM,EAAE;EACzB,UAAU;EACV,UAAU;EACV,UAAU,+BAA+B;EACzC,SAAS,QAAQ,EAAE;EACnB,IAAI,GAAG,EAAE,mEAAmE;EAC5E,IAAI,OAAO,EAAE,wBAAwB;EACrC,IAAI,MAAM,EAAE,QAAQ;EACpB,IAAI,QAAQ,EAAE,kCAAkC;EAChD,IAAI,SAAS,EAAE,IAAI,CAAC,UAAU;EAC9B,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE;EACzB,SAAS,OAAO,CAAC,SAAS,EAAE,iBAAiB;EAC7C,SAAS,OAAO,CAAC,UAAU,EAAE,QAAQ;EACrC,SAAS,OAAO,CAAC,QAAQ,EAAE,EAAE;EAC7B,SAAS,OAAO,CAAC,YAAY,EAAE,SAAS;EACxC,SAAS,OAAO,CAAC,SAAS,EAAE,EAAE;EAC9B,SAAS,OAAO,CAAC,OAAO,EAAE,EAAE;EAC5B,SAAS,OAAO,CAAC,OAAO,EAAE,EAAE;EAC5B,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE;EAC3B,SAAS,QAAQ;EACjB,CAAC;EACD;EACA;EACA;EACA,MAAM,MAAM,GAAG,6CAA6C;EAC5D,MAAM,UAAU,GAAG,qCAAqC;EACxD,MAAM,EAAE,GAAG,uBAAuB;EAClC,MAAM,UAAU,GAAG,6EAA6E;EAChG;EACA,MAAM,YAAY,GAAG,cAAc;EACnC,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,EAAE,GAAG;EAC1D,KAAK,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE;EACrD;EACA,MAAM,SAAS,GAAG,+CAA+C;EACjE,MAAM,cAAc,GAAG,IAAI,CAAC,mEAAmE,EAAE,GAAG;EACpG,KAAK,OAAO,CAAC,QAAQ,EAAE,YAAY;EACnC,KAAK,QAAQ,EAAE;EACf,MAAM,iBAAiB,GAAG,IAAI,CAAC,mCAAmC;EAClE,MAAM,gBAAgB;EACtB,MAAM,kCAAkC;EACxC,MAAM,2CAA2C;EACjD,MAAM,yCAAyC;EAC/C,MAAM,gCAAgC;EACtC,MAAM,yCAAyC;EAC/C,MAAM,mCAAmC,EAAE,IAAI,CAAC;EAChD,KAAK,OAAO,CAAC,QAAQ,EAAE,YAAY;EACnC,KAAK,QAAQ,EAAE;EACf;EACA,MAAM,iBAAiB,GAAG,IAAI,CAAC,yCAAyC;EACxE,MAAM,gBAAgB;EACtB,MAAM,8BAA8B;EACpC,MAAM,uCAAuC;EAC7C,MAAM,qCAAqC;EAC3C,MAAM,4BAA4B;EAClC,MAAM,mCAAmC,EAAE,IAAI,CAAC;EAChD,KAAK,OAAO,CAAC,QAAQ,EAAE,YAAY;EACnC,KAAK,QAAQ,EAAE;EACf,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI;EAC/C,KAAK,OAAO,CAAC,QAAQ,EAAE,YAAY;EACnC,KAAK,QAAQ,EAAE;EACf,MAAM,QAAQ,GAAG,IAAI,CAAC,qCAAqC;EAC3D,KAAK,OAAO,CAAC,QAAQ,EAAE,8BAA8B;EACrD,KAAK,OAAO,CAAC,OAAO,EAAE,8IAA8I;EACpK,KAAK,QAAQ,EAAE;EACf,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;EAC5E,MAAM,GAAG,GAAG,IAAI,CAAC;EACjB,MAAM,2BAA2B;EACjC,MAAM,0CAA0C;EAChD,MAAM,sBAAsB;EAC5B,MAAM,6BAA6B;EACnC,MAAM,kCAAkC,CAAC;EACzC,KAAK,OAAO,CAAC,SAAS,EAAE,cAAc;EACtC,KAAK,OAAO,CAAC,WAAW,EAAE,6EAA6E;EACvG,KAAK,QAAQ,EAAE;EACf,MAAM,YAAY,GAAG,qDAAqD;EAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,+CAA+C;EACjE,KAAK,OAAO,CAAC,OAAO,EAAE,YAAY;EAClC,KAAK,OAAO,CAAC,MAAM,EAAE,sCAAsC;EAC3D,KAAK,OAAO,CAAC,OAAO,EAAE,6DAA6D;EACnF,KAAK,QAAQ,EAAE;EACf,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB;EAC9C,KAAK,OAAO,CAAC,OAAO,EAAE,YAAY;EAClC,KAAK,OAAO,CAAC,KAAK,EAAE,WAAW;EAC/B,KAAK,QAAQ,EAAE;EACf,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB;EAC3C,KAAK,OAAO,CAAC,KAAK,EAAE,WAAW;EAC/B,KAAK,QAAQ,EAAE;EACf,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,EAAE,GAAG;EACvD,KAAK,OAAO,CAAC,SAAS,EAAE,OAAO;EAC/B,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM;EAC7B,KAAK,QAAQ,EAAE;EACf;EACA;EACA;EACA,MAAM,YAAY,GAAG;EACrB,IAAI,UAAU,EAAE,QAAQ;EACxB,IAAI,cAAc;EAClB,IAAI,QAAQ;EACZ,IAAI,SAAS;EACb,IAAI,EAAE;EACN,IAAI,IAAI,EAAE,UAAU;EACpB,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,cAAc;EAClB,IAAI,iBAAiB;EACrB,IAAI,iBAAiB;EACrB,IAAI,MAAM;EACV,IAAI,IAAI;EACR,IAAI,MAAM;EACV,IAAI,WAAW;EACf,IAAI,OAAO;EACX,IAAI,aAAa;EACjB,IAAI,GAAG;EACP,IAAI,IAAI,EAAE,UAAU;EACpB,IAAI,GAAG,EAAE;EACT,CAAC;EACD;EACA;EACA;EACA,MAAM,cAAc,GAAG;EACvB,IAAI,GAAG,YAAY;EACnB,IAAI,IAAI,EAAE,IAAI,CAAC,yBAAyB;EACxC,SAAS,OAAO,CAAC,OAAO,EAAE,YAAY;EACtC,SAAS,QAAQ,EAAE;EACnB,IAAI,OAAO,EAAE,IAAI,CAAC,+BAA+B;EACjD,SAAS,OAAO,CAAC,OAAO,EAAE,YAAY;EACtC,SAAS,QAAQ;EACjB,CAAC;EACD;EACA;EACA;EACA,MAAM,SAAS,GAAG;EAClB,IAAI,GAAG,YAAY;EACnB,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE;EACzD,IAAI,GAAG,EAAE,IAAI,CAAC,kEAAkE,EAAE,GAAG;EACrF,SAAS,OAAO,CAAC,OAAO,EAAE,2EAA2E;EACrG,SAAS,QAAQ,EAAE;EACnB,IAAI,UAAU,EAAE,4EAA4E;EAC5F,IAAI,GAAG,EAAE,8CAA8C;EACvD,IAAI,IAAI,EAAE;EACV,CAAC;EACD;EACA;EACA;EACA,MAAM,YAAY,GAAG;EACrB,IAAI,GAAG,SAAS;EAChB,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;EAChD,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;EAC7B,SAAS,OAAO,CAAC,MAAM,EAAE,eAAe;EACxC,SAAS,OAAO,CAAC,SAAS,EAAE,GAAG;EAC/B,SAAS,QAAQ;EACjB,CAAC;EACD;EACA;EACA;EACA,MAAM,KAAK,GAAG;EACd,IAAI,MAAM,EAAE,WAAW;EACvB,IAAI,GAAG,EAAE,QAAQ;EACjB,IAAI,QAAQ,EAAE;EACd,CAAC;EACD,MAAM,MAAM,GAAG;EACf,IAAI,MAAM,EAAE,YAAY;EACxB,IAAI,GAAG,EAAE,SAAS;EAClB,IAAI,MAAM,EAAE,YAAY;EACxB,IAAI,QAAQ,EAAE;EACd,CAAC;;EAED;EACA;EACA;EACA,MAAM,MAAM,CAAC;EACb,IAAI,MAAM;EACV,IAAI,OAAO;EACX,IAAI,KAAK;EACT,IAAI,SAAS;EACb,IAAI,WAAW;EACf,IAAI,WAAW,CAAC,OAAO,EAAE;EACzB;EACA,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;EACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;EAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS;EAC3C,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,UAAU,EAAE;EAC3E,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;EAC/C,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;EAC7C,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI;EACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG;EACrB,YAAY,MAAM,EAAE,KAAK;EACzB,YAAY,UAAU,EAAE,KAAK;EAC7B,YAAY,GAAG,EAAE;EACjB,SAAS;EACT,QAAQ,MAAM,KAAK,GAAG;EACtB,YAAY,KAAK,EAAE,KAAK,CAAC,MAAM;EAC/B,YAAY,MAAM,EAAE,MAAM,CAAC;EAC3B,SAAS;EACT,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EACnC,YAAY,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ;EACxC,YAAY,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ;EAC1C,QAAQ;EACR,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;EACnC,YAAY,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG;EACnC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACrC,gBAAgB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;EAC5C,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;EACzC,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK;EACpC,IAAI;EACJ;EACA;EACA;EACA,IAAI,WAAW,KAAK,GAAG;EACvB,QAAQ,OAAO;EACf,YAAY,KAAK;EACjB,YAAY;EACZ,SAAS;EACT,IAAI;EACJ;EACA;EACA;EACA,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;EAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC;EACzC,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;EAC7B,IAAI;EACJ;EACA;EACA;EACA,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;EACnC,QAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC;EACzC,QAAQ,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;EACtC,IAAI;EACJ;EACA;EACA;EACA,IAAI,GAAG,CAAC,GAAG,EAAE;EACb,QAAQ,GAAG,GAAG;EACd,aAAa,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;EACtC,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;EAC1C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;EAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;EACpD,QAAQ;EACR,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,OAAO,IAAI,CAAC,MAAM;EAC1B,IAAI;EACJ,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE;EAClC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;EACnC,YAAY,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EAClE,QAAQ;EACR,aAAa;EACb,YAAY,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK;EACpE,gBAAgB,OAAO,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;EAC3D,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,IAAI,KAAK;EACjB,QAAQ,IAAI,SAAS;EACrB,QAAQ,IAAI,MAAM;EAClB,QAAQ,IAAI,oBAAoB;EAChC,QAAQ,OAAO,GAAG,EAAE;EACpB,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC;EAC7B,mBAAmB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;EAC3C,mBAAmB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK;EACxE,oBAAoB,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;EACjF,wBAAwB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EAC7D,wBAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAC1C,wBAAwB,OAAO,IAAI;EACnC,oBAAoB;EACpB,oBAAoB,OAAO,KAAK;EAChC,gBAAgB,CAAC,CAAC,EAAE;EACpB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;EACnD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;EACjE;EACA;EACA,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI;EACzD,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD;EACA,gBAAgB,IAAI,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;EAChG,oBAAoB,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EACrD,oBAAoB,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;EACvD,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI;EACtF,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;EACpD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACrD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;EAChD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EACxD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;EACjD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;EAChG,oBAAoB,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EACrD,oBAAoB,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EACtD,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI;EACtF,gBAAgB;EAChB,qBAAqB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;EACxD,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACnD,wBAAwB,IAAI,EAAE,KAAK,CAAC,IAAI;EACxC,wBAAwB,KAAK,EAAE,KAAK,CAAC;EACrC,qBAAqB;EACrB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;EACnD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACtD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA;EACA,YAAY,MAAM,GAAG,GAAG;EACxB,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE;EAC/E,gBAAgB,IAAI,UAAU,GAAG,QAAQ;EACzC,gBAAgB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EAC5C,gBAAgB,IAAI,SAAS;EAC7B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK;EAC9E,oBAAoB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;EAC5E,oBAAoB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;EACzE,wBAAwB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;EACpE,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,gBAAgB,IAAI,UAAU,GAAG,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE;EAC9D,oBAAoB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;EAC7D,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;EAC9E,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,oBAAoB,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;EAC5E,oBAAoB,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EACrD,oBAAoB,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;EACvD,oBAAoB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;EAC1C,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI;EACtF,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC;EACrE,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;EAC5D,oBAAoB,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;EACrD,oBAAoB,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;EACvD,oBAAoB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;EAC1C,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI;EACtF,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,GAAG,EAAE;EACrB,gBAAgB,MAAM,MAAM,GAAG,yBAAyB,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;EAC5E,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACzC,oBAAoB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;EACzC,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;EAC3C,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI;EAC7B,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE;EAC7B,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;EAC9C,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ;EACA;EACA;EACA,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE;EACnC,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM;EACpC;EACA,QAAQ,IAAI,SAAS,GAAG,GAAG;EAC3B,QAAQ,IAAI,KAAK;EACjB,QAAQ,IAAI,YAAY,EAAE,QAAQ;EAClC;EACA,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;EAC/B,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;EACxD,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;EAClC,gBAAgB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;EACpG,oBAAoB,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;EAC3F,wBAAwB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;EACxL,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR;EACA,QAAQ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;EACxF,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;EACxK,QAAQ;EACR;EACA,QAAQ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;EAC7F,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;EACtI,QAAQ;EACR,QAAQ,OAAO,GAAG,EAAE;EACpB,YAAY,IAAI,CAAC,YAAY,EAAE;EAC/B,gBAAgB,QAAQ,GAAG,EAAE;EAC7B,YAAY;EACZ,YAAY,YAAY,GAAG,KAAK;EAChC;EACA,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC;EAC7B,mBAAmB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;EAC3C,mBAAmB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK;EACzE,oBAAoB,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;EACjF,wBAAwB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EAC7D,wBAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAC1C,wBAAwB,OAAO,IAAI;EACnC,oBAAoB;EACpB,oBAAoB,OAAO,KAAK;EAChC,gBAAgB,CAAC,CAAC,EAAE;EACpB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;EACpD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;EACjD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;EACrF,oBAAoB,SAAS,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG;EAC9C,oBAAoB,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;EAChD,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;EACxE,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;EACrF,oBAAoB,SAAS,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG;EAC9C,oBAAoB,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;EAChD,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;EAC3E,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACtD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;EAChD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;EACjD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACtD,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;EACzE,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EAClC,gBAAgB;EAChB,YAAY;EACZ;EACA;EACA,YAAY,MAAM,GAAG,GAAG;EACxB,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE;EAChF,gBAAgB,IAAI,UAAU,GAAG,QAAQ;EACzC,gBAAgB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EAC5C,gBAAgB,IAAI,SAAS;EAC7B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK;EAC/E,oBAAoB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;EAC5E,oBAAoB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;EACzE,wBAAwB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;EACpE,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,gBAAgB,IAAI,UAAU,GAAG,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE;EAC9D,oBAAoB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;EAC7D,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;EAC3D,gBAAgB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;EACrD,gBAAgB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE;EACjD,oBAAoB,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;EAClD,gBAAgB;EAChB,gBAAgB,YAAY,GAAG,IAAI;EACnC,gBAAgB,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACrD,gBAAgB,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;EAC5D,oBAAoB,SAAS,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG;EAC9C,oBAAoB,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;EAChD,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,GAAG,EAAE;EACrB,gBAAgB,MAAM,MAAM,GAAG,yBAAyB,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;EAC5E,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACzC,oBAAoB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;EACzC,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;EAC3C,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ;;EAEA;EACA;EACA;EACA,MAAM,SAAS,CAAC;EAChB,IAAI,OAAO;EACX,IAAI,WAAW,CAAC,OAAO,EAAE;EACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS;EAC3C,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;EACpC,QAAQ,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;EAC1D,QAAQ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI;EAC7C,QAAQ,IAAI,CAAC,IAAI,EAAE;EACnB,YAAY,OAAO;EACnB,mBAAmB,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;EACxD,kBAAkB,iBAAiB;EACnC,QAAQ;EACR,QAAQ,OAAO;EACf,cAAc,QAAQ,CAAC,IAAI;EAC3B,cAAc;EACd,eAAe,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;EACpD,cAAc,iBAAiB;EAC/B,IAAI;EACJ,IAAI,UAAU,CAAC,KAAK,EAAE;EACtB,QAAQ,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC;EACtD,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;EACtB,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;EAC9B;EACA,QAAQ,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;EACjD,IAAI;EACJ,IAAI,EAAE,GAAG;EACT,QAAQ,OAAO,QAAQ;EACvB,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;EAC/B,QAAQ,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI;EAC1C,QAAQ,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,KAAK,UAAU,GAAG,KAAK,GAAG,GAAG,IAAI,EAAE;EACnF,QAAQ,OAAO,GAAG,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK;EACzE,IAAI;EACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;EAClC,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;EACnC,IAAI;EACJ,IAAI,QAAQ,CAAC,OAAO,EAAE;EACtB,QAAQ,OAAO;EACf,eAAe,OAAO,GAAG,aAAa,GAAG,EAAE;EAC3C,cAAc,8BAA8B;EAC5C,IAAI;EACJ,IAAI,SAAS,CAAC,IAAI,EAAE;EACpB,QAAQ,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;EACjC,IAAI;EACJ,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;EACxB,QAAQ,IAAI,IAAI;EAChB,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;EAC3C,QAAQ,OAAO;EACf,cAAc;EACd,cAAc;EACd,cAAc;EACd,cAAc;EACd,cAAc,YAAY;EAC1B,IAAI;EACJ,IAAI,QAAQ,CAAC,OAAO,EAAE;EACtB,QAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;EACxC,IAAI;EACJ,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE;EAC9B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;EAC/C,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC;EAC1B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;EAC/C,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;EACzB,QAAQ,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;EAC7C,IAAI;EACJ;EACA;EACA;EACA,IAAI,MAAM,CAAC,IAAI,EAAE;EACjB,QAAQ,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;EACzC,IAAI;EACJ,IAAI,EAAE,CAAC,IAAI,EAAE;EACb,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;EACjC,IAAI;EACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;EACnB,QAAQ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;EACrC,IAAI;EACJ,IAAI,EAAE,GAAG;EACT,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ,IAAI,GAAG,CAAC,IAAI,EAAE;EACd,QAAQ,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;EACnC,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;EAC5B,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;EACxC,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;EAChC,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,QAAQ,IAAI,GAAG,SAAS;EACxB,QAAQ,IAAI,GAAG,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG;EAC1C,QAAQ,IAAI,KAAK,EAAE;EACnB,YAAY,GAAG,IAAI,UAAU,GAAG,KAAK,GAAG,GAAG;EAC3C,QAAQ;EACR,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;EAClC,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;EAC7B,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;EACxC,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;EAChC,YAAY,OAAO,IAAI;EACvB,QAAQ;EACR,QAAQ,IAAI,GAAG,SAAS;EACxB,QAAQ,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;EACpD,QAAQ,IAAI,KAAK,EAAE;EACnB,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;EACtC,QAAQ;EACR,QAAQ,GAAG,IAAI,GAAG;EAClB,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE;EACf,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ;;EAEA;EACA;EACA;EACA;EACA,MAAM,aAAa,CAAC;EACpB;EACA,IAAI,MAAM,CAAC,IAAI,EAAE;EACjB,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,EAAE,CAAC,IAAI,EAAE;EACb,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;EACnB,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,GAAG,CAAC,IAAI,EAAE;EACd,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE;EACf,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE;EACf,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;EAC5B,QAAQ,OAAO,EAAE,GAAG,IAAI;EACxB,IAAI;EACJ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;EAC7B,QAAQ,OAAO,EAAE,GAAG,IAAI;EACxB,IAAI;EACJ,IAAI,EAAE,GAAG;EACT,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ;;EAEA;EACA;EACA;EACA,MAAM,OAAO,CAAC;EACd,IAAI,OAAO;EACX,IAAI,QAAQ;EACZ,IAAI,YAAY;EAChB,IAAI,WAAW,CAAC,OAAO,EAAE;EACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS;EAC3C,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,SAAS,EAAE;EACxE,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;EAC7C,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;EAC5C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE;EAC/C,IAAI;EACJ;EACA;EACA;EACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;EAClC,QAAQ,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;EAC3C,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;EACnC,IAAI;EACJ;EACA;EACA;EACA,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;EACxC,QAAQ,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;EAC3C,QAAQ,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;EACzC,IAAI;EACJ;EACA;EACA;EACA,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE;EAC9B,QAAQ,IAAI,GAAG,GAAG,EAAE;EACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAChD,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;EACnC;EACA,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;EAC/H,gBAAgB,MAAM,YAAY,GAAG,KAAK;EAC1C,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC;EACrH,gBAAgB,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;EAClK,oBAAoB,GAAG,IAAI,GAAG,IAAI,EAAE;EACpC,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,YAAY,QAAQ,KAAK,CAAC,IAAI;EAC9B,gBAAgB,KAAK,OAAO,EAAE;EAC9B,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,IAAI,EAAE;EAC3B,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;EAC7C,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,SAAS,EAAE;EAChC,oBAAoB,MAAM,YAAY,GAAG,KAAK;EAC9C,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;EAC/K,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;EAClG,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,OAAO,EAAE;EAC9B,oBAAoB,MAAM,UAAU,GAAG,KAAK;EAC5C,oBAAoB,IAAI,MAAM,GAAG,EAAE;EACnC;EACA,oBAAoB,IAAI,IAAI,GAAG,EAAE;EACjC,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACvE,wBAAwB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;EACpJ,oBAAoB;EACpB,oBAAoB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC1D,oBAAoB,IAAI,IAAI,GAAG,EAAE;EACjC,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACrE,wBAAwB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;EACtD,wBAAwB,IAAI,GAAG,EAAE;EACjC,wBAAwB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC7D,4BAA4B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;EAC3I,wBAAwB;EACxB,wBAAwB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC5D,oBAAoB;EACpB,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;EAC5D,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,YAAY,EAAE;EACnC,oBAAoB,MAAM,eAAe,GAAG,KAAK;EACjD,oBAAoB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;EACnE,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;EACzD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO;EACrD,oBAAoB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK;EACjD,oBAAoB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK;EACjD,oBAAoB,IAAI,IAAI,GAAG,EAAE;EACjC,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACrE,wBAAwB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;EACvD,wBAAwB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;EACpD,wBAAwB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;EAC9C,wBAAwB,IAAI,QAAQ,GAAG,EAAE;EACzC,wBAAwB,IAAI,IAAI,CAAC,IAAI,EAAE;EACvC,4BAA4B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;EAC9E,4BAA4B,IAAI,KAAK,EAAE;EACvC,gCAAgC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;EACnG,oCAAoC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;EAC9F,oCAAoC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;EAC/I,wCAAwC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;EACtH,oCAAoC;EACpC,gCAAgC;EAChC,qCAAqC;EACrC,oCAAoC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;EACxD,wCAAwC,IAAI,EAAE,MAAM;EACpD,wCAAwC,IAAI,EAAE,QAAQ,GAAG;EACzD,qCAAqC,CAAC;EACtC,gCAAgC;EAChC,4BAA4B;EAC5B,iCAAiC;EACjC,gCAAgC,QAAQ,IAAI,QAAQ,GAAG,GAAG;EAC1D,4BAA4B;EAC5B,wBAAwB;EACxB,wBAAwB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;EAClE,wBAAwB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;EACjF,oBAAoB;EACpB,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;EACnE,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;EAC9E,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,WAAW,EAAE;EAClC,oBAAoB,MAAM,cAAc,GAAG,KAAK;EAChD,oBAAoB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;EAC3F,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,IAAI,SAAS,GAAG,KAAK;EACzC,oBAAoB,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI;EACrG,oBAAoB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;EACnF,wBAAwB,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;EAC/C,wBAAwB,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;EAC/G,oBAAoB;EACpB,oBAAoB,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;EACrE,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,SAAS;EACzB,oBAAoB,MAAM,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC,IAAI,GAAG,uBAAuB;EACxF,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EAC7C,wBAAwB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;EAC7C,wBAAwB,OAAO,EAAE;EACjC,oBAAoB;EACpB,yBAAyB;EACzB,wBAAwB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;EAC/C,oBAAoB;EACpB,gBAAgB;EAChB;EACA,QAAQ;EACR,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ;EACA;EACA;EACA,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE;EAClC,QAAQ,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ;EAC5C,QAAQ,IAAI,GAAG,GAAG,EAAE;EACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAChD,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;EACnC;EACA,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;EAC/H,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;EACvG,gBAAgB,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;EACjJ,oBAAoB,GAAG,IAAI,GAAG,IAAI,EAAE;EACpC,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,YAAY,QAAQ,KAAK,CAAC,IAAI;EAC9B,gBAAgB,KAAK,QAAQ,EAAE;EAC/B,oBAAoB,MAAM,WAAW,GAAG,KAAK;EAC7C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;EAC1D,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,QAAQ,GAAG,KAAK;EAC1C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;EACvD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACvH,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,OAAO,EAAE;EAC9B,oBAAoB,MAAM,UAAU,GAAG,KAAK;EAC5C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;EAC7F,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,QAAQ,EAAE;EAC/B,oBAAoB,MAAM,WAAW,GAAG,KAAK;EAC7C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC1F,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,IAAI,EAAE;EAC3B,oBAAoB,MAAM,OAAO,GAAG,KAAK;EACzC,oBAAoB,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAClF,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,UAAU,EAAE;EACjC,oBAAoB,MAAM,aAAa,GAAG,KAAK;EAC/C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;EAChE,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,IAAI,EAAE;EAC3B,oBAAoB,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE;EACxC,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,KAAK,EAAE;EAC5B,oBAAoB,MAAM,QAAQ,GAAG,KAAK;EAC1C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACpF,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EACxD,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,SAAS;EACzB,oBAAoB,MAAM,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC,IAAI,GAAG,uBAAuB;EACxF,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EAC7C,wBAAwB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;EAC7C,wBAAwB,OAAO,EAAE;EACjC,oBAAoB;EACpB,yBAAyB;EACzB,wBAAwB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;EAC/C,oBAAoB;EACpB,gBAAgB;EAChB;EACA,QAAQ;EACR,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ;;EAEA,MAAM,MAAM,CAAC;EACb,IAAI,OAAO;EACX,IAAI,WAAW,CAAC,OAAO,EAAE;EACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS;EAC3C,IAAI;EACJ,IAAI,OAAO,gBAAgB,GAAG,IAAI,GAAG,CAAC;EACtC,QAAQ,YAAY;EACpB,QAAQ,aAAa;EACrB,QAAQ;EACR,KAAK,CAAC;EACN;EACA;EACA;EACA,IAAI,UAAU,CAAC,QAAQ,EAAE;EACzB,QAAQ,OAAO,QAAQ;EACvB,IAAI;EACJ;EACA;EACA;EACA,IAAI,WAAW,CAAC,IAAI,EAAE;EACtB,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ;EACA;EACA;EACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;EAC7B,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ;;EAEA,MAAM,MAAM,CAAC;EACb,IAAI,QAAQ,GAAG,YAAY,EAAE;EAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;EAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;EAC1D,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;EAC5E,IAAI,MAAM,GAAG,OAAO;EACpB,IAAI,QAAQ,GAAG,SAAS;EACxB,IAAI,YAAY,GAAG,aAAa;EAChC,IAAI,KAAK,GAAG,MAAM;EAClB,IAAI,SAAS,GAAG,UAAU;EAC1B,IAAI,KAAK,GAAG,MAAM;EAClB,IAAI,WAAW,CAAC,GAAG,IAAI,EAAE;EACzB,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;EACzB,IAAI;EACJ;EACA;EACA;EACA,IAAI,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE;EACjC,QAAQ,IAAI,MAAM,GAAG,EAAE;EACvB,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;EACpC,YAAY,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAC9D,YAAY,QAAQ,KAAK,CAAC,IAAI;EAC9B,gBAAgB,KAAK,OAAO,EAAE;EAC9B,oBAAoB,MAAM,UAAU,GAAG,KAAK;EAC5C,oBAAoB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE;EAC1D,wBAAwB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACtF,oBAAoB;EACpB,oBAAoB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;EACvD,wBAAwB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;EAChD,4BAA4B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC1F,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,KAAK,MAAM,EAAE;EAC7B,oBAAoB,MAAM,SAAS,GAAG,KAAK;EAC3C,oBAAoB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;EACtF,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,SAAS;EACzB,oBAAoB,MAAM,YAAY,GAAG,KAAK;EAC9C,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE;EACpF,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK;EACzG,4BAA4B,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;EACnF,4BAA4B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACrF,wBAAwB,CAAC,CAAC;EAC1B,oBAAoB;EACpB,yBAAyB,IAAI,YAAY,CAAC,MAAM,EAAE;EAClD,wBAAwB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC9F,oBAAoB;EACpB,gBAAgB;EAChB;EACA,QAAQ;EACR,QAAQ,OAAO,MAAM;EACrB,IAAI;EACJ,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE;EACjB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;EACzF,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EAC/B;EACA,YAAY,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE;EACpC;EACA,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;EACnE;EACA,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;EACjC,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;EACjD,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EACnC,wBAAwB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;EAClE,oBAAoB;EACpB,oBAAoB,IAAI,UAAU,IAAI,GAAG,EAAE;EAC3C,wBAAwB,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;EAC3E,wBAAwB,IAAI,YAAY,EAAE;EAC1C;EACA,4BAA4B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE;EAChF,gCAAgC,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;EACxE,gCAAgC,IAAI,GAAG,KAAK,KAAK,EAAE;EACnD,oCAAoC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;EACxE,gCAAgC;EAChC,gCAAgC,OAAO,GAAG;EAC1C,4BAA4B,CAAC;EAC7B,wBAAwB;EACxB,6BAA6B;EAC7B,4BAA4B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ;EACzE,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,IAAI,WAAW,IAAI,GAAG,EAAE;EAC5C,wBAAwB,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE;EAC7F,4BAA4B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;EAC1F,wBAAwB;EACxB,wBAAwB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;EAC9D,wBAAwB,IAAI,QAAQ,EAAE;EACtC,4BAA4B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;EAC3D,wBAAwB;EACxB,6BAA6B;EAC7B,4BAA4B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;EACnE,wBAAwB;EACxB,wBAAwB,IAAI,GAAG,CAAC,KAAK,EAAE;EACvC,4BAA4B,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,EAAE;EACvD,gCAAgC,IAAI,UAAU,CAAC,UAAU,EAAE;EAC3D,oCAAoC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;EACzE,gCAAgC;EAChC,qCAAqC;EACrC,oCAAoC,UAAU,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;EACvE,gCAAgC;EAChC,4BAA4B;EAC5B,iCAAiC,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;EAC7D,gCAAgC,IAAI,UAAU,CAAC,WAAW,EAAE;EAC5D,oCAAoC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;EAC1E,gCAAgC;EAChC,qCAAqC;EACrC,oCAAoC,UAAU,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;EACxE,gCAAgC;EAChC,4BAA4B;EAC5B,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,IAAI,aAAa,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;EACjE,wBAAwB,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW;EAC1E,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,gBAAgB,IAAI,CAAC,UAAU,GAAG,UAAU;EAC5C,YAAY;EACZ;EACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;EAC/B,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;EACvF,gBAAgB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;EAClD,oBAAoB,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE;EAC7C,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC5E,oBAAoB;EACpB,oBAAoB,IAAI,IAAI,KAAK,SAAS,EAAE;EAC5C;EACA,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,MAAM,YAAY,GAAG,IAAI;EAC7C,oBAAoB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;EACpE,oBAAoB,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;EAC/D;EACA,oBAAoB,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;EAC1D,wBAAwB,IAAI,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;EACpE,wBAAwB,IAAI,GAAG,KAAK,KAAK,EAAE;EAC3C,4BAA4B,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;EACpE,wBAAwB;EACxB,wBAAwB,OAAO,GAAG,IAAI,EAAE;EACxC,oBAAoB,CAAC;EACrB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,QAAQ,GAAG,QAAQ;EACxC,YAAY;EACZ,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;EAChC,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;EAC1F,gBAAgB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;EACnD,oBAAoB,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE;EAC9C,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC7E,oBAAoB;EACpB,oBAAoB,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EACtE;EACA,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,MAAM,aAAa,GAAG,IAAI;EAC9C,oBAAoB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;EACvE,oBAAoB,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;EAClE;EACA;EACA,oBAAoB,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;EAC5D,wBAAwB,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;EACtE,wBAAwB,IAAI,GAAG,KAAK,KAAK,EAAE;EAC3C,4BAA4B,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;EACtE,wBAAwB;EACxB,wBAAwB,OAAO,GAAG;EAClC,oBAAoB,CAAC;EACrB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,SAAS,GAAG,SAAS;EAC1C,YAAY;EACZ;EACA,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;EAC5B,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,MAAM,EAAE;EACjE,gBAAgB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;EAC/C,oBAAoB,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;EAC1C,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EACxE,oBAAoB;EACpB,oBAAoB,IAAI,IAAI,KAAK,SAAS,EAAE;EAC5C;EACA,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,MAAM,SAAS,GAAG,IAAI;EAC1C,oBAAoB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;EAC3D,oBAAoB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;EACrD,oBAAoB,IAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;EAC3D;EACA,wBAAwB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;EACpD,4BAA4B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;EACrD,gCAAgC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;EAC/F,oCAAoC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;EACpE,gCAAgC,CAAC,CAAC;EAClC,4BAA4B;EAC5B,4BAA4B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;EAClE,4BAA4B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;EAC5D,wBAAwB,CAAC;EACzB,oBAAoB;EACpB,yBAAyB;EACzB;EACA,wBAAwB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;EACxD,4BAA4B,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;EAClE,4BAA4B,IAAI,GAAG,KAAK,KAAK,EAAE;EAC/C,gCAAgC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;EACjE,4BAA4B;EAC5B,4BAA4B,OAAO,GAAG;EACtC,wBAAwB,CAAC;EACzB,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK;EAClC,YAAY;EACZ;EACA,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;EACjC,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;EAC3D,gBAAgB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU;EACtD,gBAAgB,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;EACnD,oBAAoB,IAAI,MAAM,GAAG,EAAE;EACnC,oBAAoB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EACjE,oBAAoB,IAAI,UAAU,EAAE;EACpC,wBAAwB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAC5E,oBAAoB;EACpB,oBAAoB,OAAO,MAAM;EACjC,gBAAgB,CAAC;EACjB,YAAY;EACZ,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;EACzD,QAAQ,CAAC,CAAC;EACV,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,UAAU,CAAC,GAAG,EAAE;EACpB,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE;EACpD,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE;EACxB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;EACxD,IAAI;EACJ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;EAC5B,QAAQ,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;EAC9D,IAAI;EACJ,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;EAClC,QAAQ,OAAO,CAAC,GAAG,EAAE,OAAO,KAAK;EACjC,YAAY,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE;EAC1C,YAAY,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAE;EACxD;EACA,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;EACzE,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACjC,oBAAoB,OAAO,CAAC,IAAI,CAAC,oHAAoH,CAAC;EACtJ,gBAAgB;EAChB,gBAAgB,GAAG,CAAC,KAAK,GAAG,IAAI;EAChC,YAAY;EACZ,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;EACvE;EACA,YAAY,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;EAC5D,gBAAgB,OAAO,UAAU,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;EAC9F,YAAY;EACZ,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;EACzC,gBAAgB,OAAO,UAAU,CAAC,IAAI,KAAK,CAAC;EAC5C,sBAAsB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;EACjF,YAAY;EACZ,YAAY,IAAI,GAAG,CAAC,KAAK,EAAE;EAC3B,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;EACvC,YAAY;EACZ,YAAY,IAAI,GAAG,CAAC,KAAK,EAAE;EAC3B,gBAAgB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;EAClF,qBAAqB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;EAChD,qBAAqB,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM;EAC3F,qBAAqB,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM;EACrI,qBAAqB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;EACvD,qBAAqB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI;EAChF,qBAAqB,KAAK,CAAC,UAAU,CAAC;EACtC,YAAY;EACZ,YAAY,IAAI;EAChB,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;EAC/B,oBAAoB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;EACnD,gBAAgB;EAChB,gBAAgB,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;EAC5C,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;EAC/B,oBAAoB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;EAC/D,gBAAgB;EAChB,gBAAgB,IAAI,GAAG,CAAC,UAAU,EAAE;EACpC,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;EAC3D,gBAAgB;EAChB,gBAAgB,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;EAC9C,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;EAC/B,oBAAoB,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;EACtD,gBAAgB;EAChB,gBAAgB,OAAO,IAAI;EAC3B,YAAY;EACZ,YAAY,OAAO,CAAC,EAAE;EACtB,gBAAgB,OAAO,UAAU,CAAC,CAAC,CAAC;EACpC,YAAY;EACZ,QAAQ,CAAC;EACT,IAAI;EACJ,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;EAC5B,QAAQ,OAAO,CAAC,CAAC,KAAK;EACtB,YAAY,CAAC,CAAC,OAAO,IAAI,6DAA6D;EACtF,YAAY,IAAI,MAAM,EAAE;EACxB,gBAAgB,MAAM,GAAG,GAAG;EAC5B,sBAAsB,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,IAAI;EACnD,sBAAsB,QAAQ;EAC9B,gBAAgB,IAAI,KAAK,EAAE;EAC3B,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;EAC/C,gBAAgB;EAChB,gBAAgB,OAAO,GAAG;EAC1B,YAAY;EACZ,YAAY,IAAI,KAAK,EAAE;EACvB,gBAAgB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;EACxC,YAAY;EACZ,YAAY,MAAM,CAAC;EACnB,QAAQ,CAAC;EACT,IAAI;EACJ;;EAEA,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE;EACnC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;EAC1B,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;EACzC;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAAC,OAAO;EACd,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,OAAO,EAAE;EAC3C,QAAQ,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;EAC1C,QAAQ,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;EACjD,QAAQ,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;EACvC,QAAQ,OAAO,MAAM;EACrB,IAAI,CAAC;EACL;EACA;EACA;EACA,MAAM,CAAC,WAAW,GAAG,YAAY;EACjC,MAAM,CAAC,QAAQ,GAAG,SAAS;EAC3B;EACA;EACA;EACA,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,IAAI,EAAE;EAChC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;EAC/B,IAAI,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;EAC7C,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,IAAI,OAAO,MAAM;EACjB,CAAC;EACD;EACA;EACA;EACA,MAAM,CAAC,UAAU,GAAG,UAAU,MAAM,EAAE,QAAQ,EAAE;EAChD,IAAI,OAAO,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;EACtD,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW;EAC/C;EACA;EACA;EACA,MAAM,CAAC,MAAM,GAAG,OAAO;EACvB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;EAC7B,MAAM,CAAC,QAAQ,GAAG,SAAS;EAC3B,MAAM,CAAC,YAAY,GAAG,aAAa;EACnC,MAAM,CAAC,KAAK,GAAG,MAAM;EACrB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG;EACzB,MAAM,CAAC,SAAS,GAAG,UAAU;EAC7B,MAAM,CAAC,KAAK,GAAG,MAAM;EACrB,MAAM,CAAC,KAAK,GAAG,MAAM;EACL,MAAM,CAAC;EACJ,MAAM,CAAC;EACd,MAAM,CAAC;EACA,MAAM,CAAC;EACN,MAAM,CAAC;EAEZ,OAAO,CAAC;EACT,MAAM,CAAC;;EC53ErB,IAAI,UAAU,GAAG,CAACqB,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EACjE,CAAC;EAQD;EACA,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;EACnF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACIkB,mBAAS,GAAG,MAAM,SAAS,SAASjB,GAAU,CAAC;EACnD,IAAI,WAAW,GAAG;EAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;EAC3B;EACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;EAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE;EACzC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;EACzB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK;EACvC,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;EAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;EAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;EAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;EAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;EAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;EAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC;EAC/B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC;EAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC;EAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC;EAC9B;EACA,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;EAC3B;EACA,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;EAC5B;EACA;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;EACxB;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;EACzB;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;EACxB;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;EAC1B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;EAC1B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;EAC1B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,WAAW,GAAG,mBAAmB;EAC9C;EACA;EACA;EACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;EAC3B;EACA;EACA;EACA;EACA;EACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;EAC/B;EACA,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;EACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;EACxB;EACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,EAAE;EACrC;EACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;EACpC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK;EACvC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;EAClC,gBAAgB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;EAClF,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;EAChF,gBAAgB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;EACnD,gBAAgB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;EACtF,gBAAgB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;EAC/E,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI;EACzD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI;EACvD,YAAY;EACZ,iBAAiB,IAAI,IAAI,CAAC,WAAW,EAAE;EACvC,gBAAgB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW;EACvD,gBAAgB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW;EACvD,gBAAgB,MAAM,IAAI,GAAG,GAAG;EAChC,gBAAgB,MAAM,IAAI,GAAG,GAAG;EAChC,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG;EACpD,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE;EACpD,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa;EAC7C,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa;EAC7C,gBAAgB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;EACjD,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa;EAC/C,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACnD,oBAAoB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;EAClF,gBAAgB;EAChB,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACnD,oBAAoB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;EAClF,oBAAoB,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAC/E,gBAAgB;EAChB,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACnD,oBAAoB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;EAClF,gBAAgB;EAChB,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EACnD,oBAAoB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;EAClF,oBAAoB,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAC7E,gBAAgB;EAChB,gBAAgB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;EAC9C,gBAAgB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;EAC5C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI;EACvD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;EACxD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI;EACzD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI;EACvD,YAAY;EACZ,QAAQ,CAAC;EACT,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;EACpC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;EAClC,gBAAgB,IAAI,CAAC,WAAW,GAAG,KAAK;EACxC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;EACjE,YAAY;EACZ,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;EAClC,gBAAgB,IAAI,CAAC,WAAW,GAAG,KAAK;EACxC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;EACjE,YAAY;EACZ,YAAY,IAAI,CAAC,YAAY,EAAE;EAC/B,YAAY,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;EAC5E,YAAY,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;EACxE,YAAY,IAAI,CAAC,UAAU,EAAE;EAC7B,QAAQ,CAAC;EACT,IAAI;EACJ;EACA,IAAI,iBAAiB,GAAG;EACxB,QAAQ,KAAK,CAAC,iBAAiB,EAAE;EACjC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;EACvB,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;EAC3C,gBAAgB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;EACjD,oBAAoB,IAAI,CAAC,QAAQ,GAAG,QAAQ;EAC5C,gBAAgB;EAChB,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;EAC/B,QAAQ;EACR,QAAQ,IAAI,CAAC,aAAa,EAAE;EAC5B,IAAI;EACJ,IAAI,oBAAoB,GAAG;EAC3B,QAAQ,KAAK,CAAC,oBAAoB,EAAE;EACpC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1B,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACjC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;EAC/B,QAAQ;EACR,QAAQ,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;EACxE,QAAQ,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;EACpE;EACA,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;EAClF,IAAI;EACJ,IAAI,OAAO,CAAC,OAAO,EAAE;EACrB,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;EACnE,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;EACpF,gBAAgB,qBAAqB,CAAC,MAAM;EAC5C,oBAAoB,IAAI,IAAI,CAAC,WAAW,EAAE;EAC1C,wBAAwB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;EAClF,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;EACnE,YAAY,UAAU,CAAC,MAAM;EAC7B,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE;EACnC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;EACzC,gBAAgB;EAChB,YAAY,CAAC,EAAE,GAAG,CAAC;EACnB,QAAQ;EACR,IAAI;EACJ;EACA;EACA;EACA;EACA,IAAI,IAAI,GAAG;EACX,QAAQ,IAAI,CAAC,WAAW,EAAE;EAC1B,IAAI;EACJ;EACA,IAAI,IAAI,GAAG;EACX,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAC1B,YAAY,IAAI,CAAC,aAAa,EAAE;EAChC,QAAQ;EACR,IAAI;EACJ;EACA,IAAI,KAAK,GAAG;EACZ,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;EACzB,YAAY,IAAI,CAAC,aAAa,EAAE;EAChC,QAAQ;EACR,IAAI;EACJ;EACA,IAAI,MAAM,GAAG;EACb,QAAQ,IAAI,CAAC,aAAa,EAAE;EAC5B,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,YAAY,GAAG;EACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EACzD,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,sDAAsD;EAChG,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;EACpD,QAAQ;EACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;EAC7C,IAAI;EACJ,IAAI,YAAY,GAAG;EACnB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;EAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;EAChD,QAAQ;EACR,IAAI;EACJ,IAAI,sBAAsB,CAAC,CAAC,EAAE;EAC9B;EACA,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;EACxC,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC5B,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;EAC/B,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;EACtD,QAAQ,IAAI,CAAC,YAAY,EAAE;EAC3B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;EAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;EACnD,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;EACjD,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;EAC1C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;EAC3C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;EAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO;EACpC,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO;EACpC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI;EACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG;EACrC,QAAQ,CAAC,CAAC,cAAc,EAAE;EAC1B,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;EACrE,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;EACjE,IAAI;EACJ,IAAI,sBAAsB,CAAC,CAAC,EAAE;EAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC5B,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;EAC/B,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE;EAC3D,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;EACtD,QAAQ,IAAI,CAAC,YAAY,EAAE;EAC3B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;EAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;EACnD,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;EACjD,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;EAC1C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;EAC3C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;EAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO;EACpC,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO;EACpC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI;EACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG;EACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;EACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;EACxC,QAAQ,CAAC,CAAC,cAAc,EAAE;EAC1B,QAAQ,CAAC,CAAC,eAAe,EAAE;EAC3B,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;EACrE,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC;EACjE,IAAI;EACJ,IAAI,aAAa,GAAG;EACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;EAClC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;EAC1C,YAAY,IAAI,CAAC,kBAAkB,EAAE;EACrC,QAAQ;EACR,QAAQ,IAAI,CAAC,UAAU,EAAE;EACzB,IAAI;EACJ,IAAI,UAAU,GAAG;EACjB,QAAQ,IAAI;EACZ,YAAY,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;EACzD,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;EAC/B,gBAAgB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;EAC7C,gBAAgB,IAAI,CAAC,CAAC,IAAI,EAAE;EAC5B,oBAAoB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;EACvC,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,CAAC,GAAG,EAAE;EAC3B,oBAAoB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;EACrC,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,CAAC,KAAK,EAAE;EAC7B,oBAAoB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;EACzC,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,CAAC,MAAM,EAAE;EAC9B,oBAAoB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC3C,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,CAAC,QAAQ,EAAE;EAChC,oBAAoB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;EAC/C,gBAAgB;EAChB,YAAY;EACZ,YAAY,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;EAC3E,QAAQ;EACR,QAAQ,MAAM,mCAAmC;EACjD,IAAI;EACJ,IAAI,aAAa,GAAG;EACpB,QAAQ,IAAI;EACZ,YAAY,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;EAChE,YAAY,IAAI,CAAC,GAAG,EAAE;EACtB,gBAAgB;EAChB,YAAY;EACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;EACzC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;EACzC,gBAAgB,IAAI,CAAC,MAAM,GAAG,IAAI;EAClC;EACA,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;EACzE,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,mCAAmC;EACjD,IAAI;EACJ,IAAI,kBAAkB,GAAG;EACzB,QAAQ,IAAI;EACZ,YAAY,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;EAChE,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;EACxC,gBAAgB;EAChB,YAAY;EACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;EACzC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE;EAChC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;EAC7D,YAAY;EACZ,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE;EAC5B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;EACrD,YAAY;EACZ,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;EAC3B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;EACnD,YAAY;EACZ,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE;EAC7B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;EACvD,YAAY;EACZ,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;EAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;EACzD,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,mCAAmC;EACjD,IAAI;EACJ,IAAI,kBAAkB,CAAC,CAAC,EAAE;EAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;EACzC;EACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM;EACjC,QAAQ,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;EACtC,QAAQ,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,IAAI;EAC3E,IAAI;EACJ,IAAI,cAAc,CAAC,CAAC,EAAE;EACtB,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;EAC9C,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,YAAY,IAAI,CAAC,aAAa,EAAE;EAChC,QAAQ;EACR,IAAI;EACJ;EACA,IAAI,eAAe,GAAG;EACtB,QAAQ,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE;EAClC,IAAI;EACJ,IAAI,sBAAsB,CAAC,CAAC,EAAE;EAC9B,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM;EAC9B,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;EACzB,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;EACvC,QAAQ;EACR;EACA,QAAQ,KAAK,CAAC,KAAK,GAAG,EAAE;EACxB,IAAI;EACJ,IAAI,YAAY,CAAC,CAAC,EAAE;EACpB,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK;EAC5C,QAAQ,IAAI,CAAC,KAAK,EAAE;EACpB,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,KAAK,GAAG,EAAE;EACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC/C,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;EAC1C,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;EACjD,gBAAgB,IAAI,IAAI,EAAE;EAC1B,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;EACpC,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;EAC1B,YAAY,CAAC,CAAC,cAAc,EAAE;EAC9B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;EACjC,QAAQ;EACR,IAAI;EACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;EACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EAChC,YAAY;EACZ,QAAQ;EACR,QAAQ,CAAC,CAAC,cAAc,EAAE;EAC1B,QAAQ,IAAI,CAAC,UAAU,EAAE;EACzB,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;EACnC,IAAI;EACJ,IAAI,eAAe,CAAC,CAAC,EAAE;EACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EAChC,YAAY;EACZ,QAAQ;EACR;EACA,QAAQ,CAAC,CAAC,cAAc,EAAE;EAC1B,IAAI;EACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;EACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EAChC,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,UAAU,EAAE;EACzB,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;EAClC,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC;EAC/B,YAAY,IAAI,CAAC,eAAe,GAAG,KAAK;EACxC,QAAQ;EACR,IAAI;EACJ,IAAI,WAAW,CAAC,CAAC,EAAE;EACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EAChC,YAAY;EACZ,QAAQ;EACR,QAAQ,CAAC,CAAC,cAAc,EAAE;EAC1B,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;EAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;EACpC,QAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE;EACnC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;EAChD,QAAQ;EACR,IAAI;EACJ,IAAI,SAAS,CAAC,CAAC,EAAE;EACjB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;EACxE,IAAI;EACJ;EACA,IAAI,SAAS,CAAC,QAAQ,EAAE;EACxB,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;EAC/F,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;EAC3B,YAAY;EACZ,QAAQ;EACR,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EAChC,YAAY,MAAM,OAAO,GAAG;EAC5B,gBAAgB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;EACpD,gBAAgB,IAAI;EACpB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;EAC/B,gBAAgB,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;EACrD,aAAa;EACb,YAAY,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;EAC7E,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,cAAc,CAAC,OAAO,EAAE;EAC5B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;EAClF,QAAQ,IAAI,MAAM,EAAE;EACpB,YAAY,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;EAClD,QAAQ;EACR,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;EAChG,IAAI;EACJ,IAAI,aAAa,GAAG;EACpB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;EAClF,QAAQ,IAAI,CAAC,mBAAmB,GAAG,EAAE;EACrC,IAAI;EACJ;EACA,IAAI,eAAe,CAAC,GAAG,EAAE;EACzB,QAAQkB,+BAAa,CAAC,IAAI,CAAC;EAC3B,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;EACxB,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;EACrC,SAAS,CAAC;EACV,IAAI;EACJ;EACA,IAAI,QAAQ,GAAG;EACf,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;EACtF,IAAI;EACJ,IAAI,aAAa,GAAG;EACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;EAC7C,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;EACnD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB;EAChD;EACA,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EAC7C,YAAY;EACZ,QAAQ;EACR;EACA;EACA;EACA,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;EAChD,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;EAChD,YAAY,GAAG,EAAE,CAAC,CAAC,UAAU;EAC7B,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI;EACxB,YAAY,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;EACjC,SAAS,CAAC,CAAC;EACX,QAAQ,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;EAC9D,YAAY,MAAM,EAAE;EACpB,gBAAgB,OAAO,EAAE,WAAW;EACpC,gBAAgB,KAAK;EACrB,aAAa;EACb,YAAY,OAAO,EAAE,IAAI;EACzB,YAAY,QAAQ,EAAE,IAAI;EAC1B,YAAY,UAAU,EAAE,IAAI;EAC5B,SAAS,CAAC;EACV,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;EACvC,QAAQ,IAAI,WAAW,CAAC,gBAAgB,EAAE;EAC1C,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,WAAW,GAAG;EAC5B,YAAY,IAAI,EAAE,MAAM;EACxB,YAAY,OAAO,EAAE,WAAW;EAChC,SAAS;EACT,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE;EAChC,YAAY,WAAW,CAAC,WAAW,GAAG,WAAW;EACjD,QAAQ;EACR,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;EACvD,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;EACxB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK;EACvC;EACA;EACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,EAAE;EACrC;EACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;EAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;EAC/C,QAAQ;EACR;EACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;EAC3C,gBAAgB,IAAI,EAAE,WAAW;EACjC,gBAAgB,OAAO,EAAE,EAAE;EAC3B,aAAa,CAAC;EACd,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;EAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B;EACA;EACA;EACA,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM;EACvC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;EACnC,gBAAgB;EAChB,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;EACrF,gBAAgB,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;EACvC,YAAY,CAAC,CAAC;EACd,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC;EAC3E,YAAY,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;EACjE,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;EACtE,YAAY,IAAI,cAAc,EAAE;EAChC,gBAAgB,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI;EACrF,YAAY;EACZ,YAAY,IAAI,SAAS,EAAE;EAC3B,gBAAgB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE;EAClG,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV,QAAQ,IAAI,CAAC,IAAI,CAAC;EAClB,YAAY,OAAO,EAAE,WAAW;EAChC,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAChD,YAAY,KAAK;EACjB,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;EAC9B,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;EAC9B,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;EAC7E,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;EAChC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;EAC3D,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;EACpD,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE;EAC7C,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE;EAC7B,YAAY,IAAI,CAAC,gBAAgB,EAAE;EACnC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;EAC1B,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;EAC3C,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;EACpD,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,WAAW,GAAG;EAClB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1B,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACjC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;EAC/B,QAAQ;EACR,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;EACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,IAAI;EACJ,IAAI,YAAY,GAAG;EACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;EACzB,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM;EAChC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;EAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACrC,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI;EACnC,YAAY;EACZ,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE;EAC9B,YAAY,IAAI,CAAC,YAAY,GAAG,KAAK;EACrC,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE;EACjC,YAAY,IAAI,CAAC,MAAM,GAAG,EAAE;EAC5B,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE;EACjC,YAAY,IAAI,CAAC,kBAAkB,GAAG,KAAK;EAC3C,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,qBAAqB,CAAC,CAAC,EAAE;EAC7B,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;EAClC,QAAQ,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY;EACxG,QAAQ,IAAI,kBAAkB,GAAG,EAAE,EAAE;EACrC,YAAY,IAAI,CAAC,kBAAkB,GAAG,IAAI;EAC1C,QAAQ;EACR,aAAa;EACb,YAAY,IAAI,CAAC,kBAAkB,GAAG,KAAK;EAC3C,QAAQ;EACR,IAAI;EACJ,IAAI,mBAAmB,GAAG;EAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;EACxB,IAAI;EACJ,IAAI,gBAAgB,GAAG;EACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,YAAY;EACZ,QAAQ;EACR,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;EAC7C,YAAY,IAAI,MAAM,CAAC,IAAI,EAAE;EAC7B,gBAAgB,IAAI,CAAC,YAAY,GAAG,KAAK;EACzC,gBAAgB,IAAI,CAAC,WAAW,GAAG,EAAE;EACrC,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI;EACnC,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;EAC9F,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;EACrD,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;EAC7C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACpD,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;EACvC,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;EACnD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACvD,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;EACvD,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EACxD,oBAAoB,IAAI,CAAC,GAAG,EAAE;EAC9B,wBAAwB;EACxB,oBAAoB;EACpB,oBAAoB,IAAI,IAAI;EAC5B,oBAAoB,IAAI;EACxB,wBAAwB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;EAC9C,oBAAoB;EACpB,oBAAoB,MAAM;EAC1B,wBAAwB;EACxB,oBAAoB;EACpB;EACA,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE;EACvE,wBAAwB,MAAM,EAAE,IAAI;EACpC,wBAAwB,OAAO,EAAE,IAAI;EACrC,wBAAwB,QAAQ,EAAE,IAAI;EACtC,qBAAqB,CAAC,CAAC;EACvB,oBAAoB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;EAChD,wBAAwB,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1C,4BAA4B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;EACnE,wBAAwB;EACxB,oBAAoB;EACpB,yBAAyB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;EAC7D,wBAAwB,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1C,4BAA4B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;EACtE,4BAA4B,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;EACjG,gCAAgC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;EACzE,oCAAoC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE;EAC3E,gCAAgC;EAChC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;EAC1F,gCAAgC,IAAI,CAAC,aAAa,EAAE;EACpD,4BAA4B;EAC5B,wBAAwB;EACxB,oBAAoB;EACpB,yBAAyB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;EAC5D,wBAAwB,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1C,4BAA4B,IAAI,CAAC,WAAW,GAAG,EAAE;EACjD,4BAA4B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;EACtE,4BAA4B,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;EACjG,gCAAgC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;EACxF,gCAAgC,IAAI,CAAC,aAAa,EAAE;EACpD,4BAA4B;EAC5B,wBAAwB;EACxB,oBAAoB;EACpB,yBAAyB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;EACpD,wBAAwB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;EACxF,oBAAoB;EACpB,oBAAoB,IAAI,IAAI,CAAC,QAAQ,EAAE;EACvC,wBAAwB,IAAI,CAAC,YAAY,GAAG,KAAK;EACjD,wBAAwB,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7C,wBAAwB,IAAI,CAAC,OAAO,GAAG,IAAI;EAC3C,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,gBAAgB,EAAE;EACnC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;EAC1B,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;EAC3C,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;EACpD,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;EAChC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;EACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;EAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO;EAC7B,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;EAC1B,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EACjC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;EAC/B,QAAQ;EACR;EACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;EACtC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;EACvE,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;EAC1E,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,YAAY;EACZ,QAAQ;EACR,IAAI;EACJ;EACA,IAAI,MAAM,GAAG;EACb,QAAQ,OAAOjB,CAAI,CAAC;AACpB,MAAM,EAAE,IAAI,CAAC,UAAU,GAAGQ,CAAO,GAAGR,CAAI,CAAC;AACzC;AACA,gBAAgB,EAAES,CAAQ,CAAC;AAC3B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,gBAAgB,EAAE,IAAI,CAAC,MAAM;AACzC,SAAS,CAAC;AACV,iBAAiB,EAAE,IAAI,CAAC,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;;AAEP;AACA,cAAc,EAAEA,CAAQ,CAAC;AACzB,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,eAAe,EAAE,IAAI,CAAC,MAAM;AACxC,SAAS,CAAC;AACV,mBAAmB,EAAE,IAAI,CAAC,gBAAgB;AAC1C,kBAAkB,EAAE,IAAI,CAAC,eAAe;AACxC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB;AAC1C,cAAc,EAAE,IAAI,CAAC,WAAW;AAChC;AACA,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAGT,CAAI,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,CAAC,GAAGQ,CAAO;AACnB;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;AAClD;AACA,uCAAuC,EAAE,IAAI,CAAC,sBAAsB,CAAC;AACrE;AACA;AACA,yCAAyC,EAAE,IAAI,CAAC,KAAK,CAAC;AACtD,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAGR,CAAI,CAAC;AACrC,8CAA8C,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC9D,cAAc,CAAC,GAAGQ,CAAO;AACzB;AACA;AACA;AACA,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAGR,CAAI,CAAC;AAC9C;AACA;AACA,uBAAuB,EAAE,IAAI,CAAC,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAGQ,CAAO;AACvB;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,EAAE,IAAI,CAAC,qBAAqB,CAAC;AACnE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAGR,CAAI,CAAC;AAC9C;AACA;AACA;AACA,UAAU,CAAC,GAAGQ,CAAO;AACrB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKR,CAAI,CAAC;AAC5C,uBAAuB,EAAES,CAAQ,CAAC;AAClC,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,eAAe,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM;AAChD,YAAY,oBAAoB,EAAE,GAAG,CAAC,IAAI,KAAK,WAAW;AAC1D,SAAS,CAAC,CAAC;AACX,cAAc,EAAE,GAAG,CAAC,SAAS,GAAGT,CAAI,CAAC;AACrC;AACA;AACA,iDAAiD,EAAE,GAAG,CAAC,SAAS,CAAC;AACjE;AACA,cAAc,CAAC,GAAGQ,CAAO;AACzB,cAAc,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAGR,CAAI,CAAC;AACjE;AACA,kBAAkB,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKA,CAAI,CAAC;AACtD;AACA;AACA;AACA,4BAA4B,EAAE,GAAG,CAAC,IAAI,IAAI,YAAY;AACtD,6BAA6B,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AAC9D;AACA,+BAA+B,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAC/D;AACA,kBAAkB,CAAC,CAAC;AACpB;AACA,cAAc,CAAC,GAAGQ,CAAO;AACzB,cAAc,EAAE,GAAG,CAAC,OAAO,GAAGR,CAAI,CAAC;AACnC;AACA,kBAAkB,EAAE,GAAG,CAAC,IAAI,KAAK;AACjC,cAAc,GAAG,CAAC;AAClB,cAAcU,CAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE;AACA,cAAc,CAAC,GAAGF,CAAO;AACzB,cAAc,EAAE,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAGR,CAAI,CAAC;AACxH;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC,GAAGQ,CAAO;AACzB;AACA,UAAU,CAAC,CAAC;AACZ;;AAEA,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAGR,CAAI,CAAC;AAC7B;AACA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC;AAChC,iDAAiD,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,CAAC,GAAGQ,CAAO;;AAEnB;AACA,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAGR,CAAI,CAAC;AACnD;AACA,cAAc,EAAEkB,CAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAKlB,CAAI,CAAC;AAC/E;AACA,2BAA2B,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;AACxD;AACA;AACA;AACA,2BAA2B,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC,CAAC;AAChB;AACA,UAAU,CAAC,GAAGQ,CAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,eAAe;AAC3C;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,WAAW;AACvC,0BAA0B,EAAE,IAAI,CAAC,WAAW;AAC5C;AACA,qBAAqB,EAAE,IAAI,CAAC,kBAAkB;AAC9C,uBAAuB,EAAE,IAAI,CAAC,cAAc;AAC5C,qBAAqB,EAAE,IAAI,CAAC,YAAY;AACxC;AACA,YAAY,EAAE,IAAI,CAAC,YAAY,GAAGR,CAAI,CAAC;AACvC;AACA;AACA,uBAAuB,EAAE,IAAI,CAAC,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAGA,CAAI,CAAC;AACrB;AACA,sBAAsB,EAAES,CAAQ,CAAC;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,SAAS,CAAC;AACV,uBAAuB,EAAE,IAAI,CAAC,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC;AACb;AACA;AACA;AACA,IAAI,CAAC;EACL,IAAI;EACJ;AACAO,mBAAS,CAAC,MAAM,GAAGf,GAAG,CAAC;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;A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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,18,19,20]}