UNPKG

gantt-schedule-timeline-calendar

Version:

Gantt, Schedule, Timeline, Calendar components all in one. [gantt, timeline, schedule, scheduler, calendar, booking, gantt chart, reservation, javascript gantt, javascript timeline, javascript schedule, javascript scheduler, javascript calendar, javascrip

705 lines 414 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).GSTC=e()}(this,(function(){"use strict";
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const t=globalThis,e=t.trustedTypes,i=e?e.createPolicy("lit-html",{createHTML:t=>t}):void 0,s="$lit$",a=`lit$${Math.random().toFixed(9).slice(2)}$`,n="?"+a,o=`<${n}>`,r=document,l=()=>r.createComment(""),c=t=>null===t||"object"!=typeof t&&"function"!=typeof t,u=Array.isArray,h=t=>u(t)||"function"==typeof t?.[Symbol.iterator],d="[ \t\n\f\r]",m=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,g=/-->/g,f=/>/g,p=RegExp(`>|${d}(?:([^\\s"'>=/]+)(${d}*=${d}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),b=/'/g,v=/"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),k=w(1),x=w(2),D=w(3),$=Symbol.for("lit-noChange"),S=Symbol.for("lit-nothing"),P=new WeakMap,z=r.createTreeWalker(r,129);function C(t,e){if(!u(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==i?i.createHTML(e):e}const I=(t,e)=>{const i=t.length-1,n=[];let r,l=2===e?"<svg>":3===e?"<math>":"",c=m;for(let e=0;e<i;e++){const i=t[e];let u,h,d=-1,w=0;for(;w<i.length&&(c.lastIndex=w,h=c.exec(i),null!==h);)w=c.lastIndex,c===m?"!--"===h[1]?c=g:void 0!==h[1]?c=f:void 0!==h[2]?(y.test(h[2])&&(r=RegExp("</"+h[2],"g")),c=p):void 0!==h[3]&&(c=p):c===p?">"===h[0]?(c=r??m,d=-1):void 0===h[1]?d=-2:(d=c.lastIndex-h[2].length,u=h[1],c=void 0===h[3]?p:'"'===h[3]?v:b):c===v||c===b?c=p:c===g||c===f?c=m:(c=p,r=void 0);const k=c===p&&t[e+1].startsWith("/>")?" ":"";l+=c===m?i+o:d>=0?(n.push(u),i.slice(0,d)+s+i.slice(d)+a+k):i+a+(-2===d?e:k)}return[C(t,l+(t[i]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),n]};class T{constructor({strings:t,_$litType$:i},o){let r;this.parts=[];let c=0,u=0;const h=t.length-1,d=this.parts,[m,g]=I(t,i);if(this.el=T.createElement(m,o),z.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=z.nextNode())&&d.length<h;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(s)){const e=g[u++],i=r.getAttribute(t).split(a),s=/([.?@])?(.*)/.exec(e);d.push({type:1,index:c,name:s[2],strings:i,ctor:"."===s[1]?R:"?"===s[1]?W:"@"===s[1]?O:j}),r.removeAttribute(t)}else t.startsWith(a)&&(d.push({type:6,index:c}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(a),i=t.length-1;if(i>0){r.textContent=e?e.emptyScript:"";for(let e=0;e<i;e++)r.append(t[e],l()),z.nextNode(),d.push({type:2,index:++c});r.append(t[i],l())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(a,t+1));)d.push({type:7,index:c}),t+=a.length-1}c++}}static createElement(t,e){const i=r.createElement("template");return i.innerHTML=t,i}}function A(t,e,i=t,s){if(e===$)return e;let a=void 0!==s?i._$Co?.[s]:i._$Cl;const n=c(e)?void 0:e._$litDirective$;return a?.constructor!==n&&(a?._$AO?.(!1),void 0===n?a=void 0:(a=new n(t),a._$AT(t,i,s)),void 0!==s?(i._$Co??=[])[s]=a:i._$Cl=a),void 0!==a&&(e=A(t,a._$AS(t,e.values),a,s)),e}let M=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:i}=this._$AD,s=(t?.creationScope??r).importNode(e,!0);z.currentNode=s;let a=z.nextNode(),n=0,o=0,l=i[0];for(;void 0!==l;){if(n===l.index){let e;2===l.type?e=new _(a,a.nextSibling,this,t):1===l.type?e=new l.ctor(a,l.name,l.strings,this,t):6===l.type&&(e=new L(a,this,t)),this._$AV.push(e),l=i[++o]}n!==l?.index&&(a=z.nextNode(),n++)}return z.currentNode=r,s}p(t){let e=0;for(const i of this._$AV)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}};class _{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,i,s){this.type=2,this._$AH=S,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=A(this,t,e),c(t)?t===S||null==t||""===t?(this._$AH!==S&&this._$AR(),this._$AH=S):t!==this._$AH&&t!==$&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):h(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!==S&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:i}=t,s="number"==typeof i?this._$AC(t):(void 0===i.el&&(i.el=T.createElement(C(i.h,i.h[0]),this.options)),i);if(this._$AH?._$AD===s)this._$AH.p(e);else{const t=new M(s,this),i=t.u(this.options);t.p(e),this.T(i),this._$AH=t}}_$AC(t){let e=P.get(t.strings);return void 0===e&&P.set(t.strings,e=new T(t)),e}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,s=0;for(const a of t)s===e.length?e.push(i=new _(this.O(l()),this.O(l()),this,this.options)):i=e[s],i._$AI(a),s++;s<e.length&&(this._$AR(i&&i._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class j{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,i,s,a){this.type=1,this._$AH=S,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=a,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=S}_$AI(t,e=this,i,s){const a=this.strings;let n=!1;if(void 0===a)t=A(this,t,e,0),n=!c(t)||t!==this._$AH&&t!==$,n&&(this._$AH=t);else{const s=t;let o,r;for(t=a[0],o=0;o<a.length-1;o++)r=A(this,s[i+o],e,o),r===$&&(r=this._$AH[o]),n||=!c(r)||r!==this._$AH[o],r===S?t=S:t!==S&&(t+=(r??"")+a[o+1]),this._$AH[o]=r}n&&!s&&this.j(t)}j(t){t===S?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class R extends j{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===S?void 0:t}}class W extends j{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==S)}}class O extends j{constructor(t,e,i,s,a){super(t,e,i,s,a),this.type=5}_$AI(t,e=this){if((t=A(this,t,e,0)??S)===$)return;const i=this._$AH,s=t===S&&i!==S||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,a=t!==S&&(i===S||s);s&&this.element.removeEventListener(this.name,this,i),a&&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 L{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){A(this,t)}}const E={M:s,P:a,A:n,C:1,L:I,R:M,D:h,V:A,I:_,H:j,N:W,U:O,B:R,F:L},N=t.litHtmlPolyfillSupport;N?.(T,_),(t.litHtmlVersions??=[]).push("3.2.1");const V=(t,e,i)=>{const s=i?.renderBefore??e;let a=s._$litPart$;if(void 0===a){const t=i?.renderBefore??null;s._$litPart$=a=new _(e.insertBefore(l(),t),t,void 0,i??{})}return a._$AI(t),a};var B=Object.freeze({__proto__:null,_$LH:E,html:k,mathml:D,noChange:$,nothing:S,render:V,svg:x});
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const G={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},H=t=>(...e)=>({_$litDirective$:t,values:e});let q=class{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)}};
/**
     * @license
     * Copyright 2020 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const{I:Y}=E,F=(t,e)=>void 0!==t?._$litType$,U=t=>void 0===t.strings,K=()=>document.createComment(""),Z=(t,e,i)=>{const s=t._$AA.parentNode,a=void 0===e?t._$AB:e._$AA;if(void 0===i){const e=s.insertBefore(K(),a),n=s.insertBefore(K(),a);i=new Y(e,n,t,t.options)}else{const e=i._$AB.nextSibling,n=i._$AM,o=n!==t;if(o){let e;i._$AQ?.(t),i._$AM=t,void 0!==i._$AP&&(e=t._$AU)!==n._$AU&&i._$AP(e)}if(e!==a||o){let t=i._$AA;for(;t!==e;){const e=t.nextSibling;s.insertBefore(t,a),t=e}}}return i},X=(t,e,i=t)=>(t._$AI(e,i),t),Q={},J=(t,e=Q)=>t._$AH=e,tt=t=>t._$AH,et=t=>{t._$AP?.(!1,!0);let e=t._$AA;const i=t._$AB.nextSibling;for(;e!==i;){const t=e.nextSibling;e.remove(),e=t}},it=t=>{t._$AR()},st=(t,e)=>{const i=t._$AN;if(void 0===i)return!1;for(const t of i)t._$AO?.(e,!1),st(t,e);return!0},at=t=>{let e,i;do{if(void 0===(e=t._$AM))break;i=e._$AN,i.delete(t),t=e}while(0===i?.size)},nt=t=>{for(let e;e=t._$AM;t=e){let i=e._$AN;if(void 0===i)e._$AN=i=new Set;else if(i.has(t))break;i.add(t),lt(e)}};
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */function ot(t){void 0!==this._$AN?(at(this),this._$AM=t,nt(this)):this._$AM=t}function rt(t,e=!1,i=0){const s=this._$AH,a=this._$AN;if(void 0!==a&&0!==a.size)if(e)if(Array.isArray(s))for(let t=i;t<s.length;t++)st(s[t],!1),at(s[t]);else null!=s&&(st(s,!1),at(s));else st(this,t)}const lt=t=>{t.type==G.CHILD&&(t._$AP??=rt,t._$AQ??=ot)};class ct extends q{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),nt(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(st(this,t),at(this))}setValue(t){if(U(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class ut{constructor(t){this.Y=t}disconnect(){this.Y=void 0}reconnect(t){this.Y=t}deref(){return this.Y}}let ht=class{constructor(){this.Z=void 0,this.q=void 0}get(){return this.Z}pause(){this.Z??=new Promise((t=>this.q=t))}resume(){this.q?.(),this.Z=this.q=void 0}},dt=class extends ct{constructor(){super(...arguments),this._$CK=new ut(this),this._$CX=new ht}render(t,e){return $}update(t,[e,i]){if(this.isConnected||this.disconnected(),e===this._$CJ)return $;this._$CJ=e;let s=0;const{_$CK:a,_$CX:n}=this;return(async(t,e)=>{for await(const i of t)if(!1===await e(i))return})(e,(async t=>{for(;n.get();)await n.get();const o=a.deref();if(void 0!==o){if(o._$CJ!==e)return!1;void 0!==i&&(t=i(t,s)),o.commitValue(t,s),s++}return!0})),$}commitValue(t,e){this.setValue(t)}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}};
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const mt=H(dt),gt=H(class extends dt{constructor(t){if(super(t),t.type!==G.CHILD)throw Error("asyncAppend can only be used in child expressions")}update(t,e){return this._$Ctt=t,super.update(t,e)}commitValue(t,e){0===e&&it(this._$Ctt);const i=Z(this._$Ctt);X(i,t)}}),ft=t=>(t=>null!=t?._$litType$?.h)(t)?t._$litType$.h:t.strings,pt=H(class extends q{constructor(t){super(t),this.et=new WeakMap}render(t){return[t]}update(t,[e]){const i=F(this.it)?ft(this.it):null,s=F(e)?ft(e):null;if(null!==i&&(null===s||i!==s)){const e=tt(t).pop();let s=this.et.get(i);if(void 0===s){const t=document.createDocumentFragment();s=V(S,t),s.setConnected(!1),this.et.set(i,s)}J(s,[e]),Z(s,void 0,e)}if(null!==s){if(null===i||i!==s){const e=this.et.get(s);if(void 0!==e){const i=tt(e).pop();it(t),Z(t,void 0,i),J(t,[i])}}this.it=e}else this.it=void 0;return this.render(e)}}),bt={},vt=H(class extends q{constructor(){super(...arguments),this.ot=bt}render(t,e){return e()}update(t,[e,i]){if(Array.isArray(e)){if(Array.isArray(this.ot)&&this.ot.length===e.length&&e.every(((t,e)=>t===this.ot[e])))return $}else if(this.ot===e)return $;return this.ot=Array.isArray(e)?Array.from(e):e,this.render(e,i)}}),yt=t=>t??S
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */,wt=(t,e,i)=>{const s=new Map;for(let a=e;a<=i;a++)s.set(t[a],a);return s},kt=H(class extends q{constructor(t){if(super(t),t.type!==G.CHILD)throw Error("repeat() can only be used in text expressions")}dt(t,e,i){let s;void 0===i?i=e:void 0!==e&&(s=e);const a=[],n=[];let o=0;for(const e of t)a[o]=s?s(e,o):o,n[o]=i(e,o),o++;return{values:n,keys:a}}render(t,e,i){return this.dt(t,e,i).values}update(t,[e,i,s]){const a=tt(t),{values:n,keys:o}=this.dt(e,i,s);if(!Array.isArray(a))return this.ut=o,n;const r=this.ut??=[],l=[];let c,u,h=0,d=a.length-1,m=0,g=n.length-1;for(;h<=d&&m<=g;)if(null===a[h])h++;else if(null===a[d])d--;else if(r[h]===o[m])l[m]=X(a[h],n[m]),h++,m++;else if(r[d]===o[g])l[g]=X(a[d],n[g]),d--,g--;else if(r[h]===o[g])l[g]=X(a[h],n[g]),Z(t,l[g+1],a[h]),h++,g--;else if(r[d]===o[m])l[m]=X(a[d],n[m]),Z(t,a[h],a[d]),d--,m++;else if(void 0===c&&(c=wt(o,m,g),u=wt(r,h,d)),c.has(r[h]))if(c.has(r[d])){const e=u.get(o[m]),i=void 0!==e?a[e]:null;if(null===i){const e=Z(t,a[h]);X(e,n[m]),l[m]=e}else l[m]=X(i,n[m]),Z(t,a[h],i),a[e]=null;m++}else et(a[d]),d--;else et(a[h]),h++;for(;m<=g;){const e=Z(t,l[g+1]);X(e,n[m]),l[m++]=e}for(;h<=d;){const t=a[h++];null!==t&&et(t)}return this.ut=o,J(t,l),$}});
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
let xt=class extends q{constructor(t){if(super(t),this.it=S,t.type!==G.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===S||null==t)return this._t=void 0,this.it=t;if(t===$)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};xt.directiveName="unsafeHTML",xt.resultType=1;const Dt=H(xt),$t=t=>!(t=>null===t||"object"!=typeof t&&"function"!=typeof t)(t)&&"function"==typeof t.then,St=1073741823;
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class Pt extends ct{constructor(){super(...arguments),this._$Cwt=St,this._$Cbt=[],this._$CK=new ut(this),this._$CX=new ht}render(...t){return t.find((t=>!$t(t)))??$}update(t,e){const i=this._$Cbt;let s=i.length;this._$Cbt=e;const a=this._$CK,n=this._$CX;this.isConnected||this.disconnected();for(let t=0;t<e.length&&!(t>this._$Cwt);t++){const o=e[t];if(!$t(o))return this._$Cwt=t,o;t<s&&o===i[t]||(this._$Cwt=St,s=0,Promise.resolve(o).then((async t=>{for(;n.get();)await n.get();const e=a.deref();if(void 0!==e){const i=e._$Cbt.indexOf(o);i>-1&&i<e._$Cwt&&(e._$Cwt=i,e.setValue(t))}})))}return $}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}const zt=H(Pt),Ct=H(class extends q{constructor(t){if(super(t),t.type!==G.PROPERTY&&t.type!==G.ATTRIBUTE&&t.type!==G.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!U(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===$||e===S)return e;const i=t.element,s=t.name;if(t.type===G.PROPERTY){if(e===i[s])return $}else if(t.type===G.BOOLEAN_ATTRIBUTE){if(!!e===i.hasAttribute(s))return $}else if(t.type===G.ATTRIBUTE&&i.getAttribute(s)===e+"")return $;return J(t),e}}),It="important",Tt=" !"+It,At=H(class extends q{constructor(t){if(super(t),t.type!==G.ATTRIBUTE||"style"!==t.name||t.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce(((e,i)=>{const s=t[i];return null==s?e:e+`${i=i.includes("-")?i:i.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${s};`}),"")}update(t,[e]){const{style:i}=t.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(e)),this.render(e);for(const t of this.ft)null==e[t]&&(this.ft.delete(t),t.includes("-")?i.removeProperty(t):i[t]=null);for(const t in e){const s=e[t];if(null!=s){this.ft.add(t);const e="string"==typeof s&&s.endsWith(Tt);t.includes("-")||e?i.setProperty(t,e?s.slice(0,-11):s,e?It:""):i[t]=s}}return $}}),Mt=H(class extends q{constructor(t){if(super(t),t.type!==G.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((e=>t[e])).join(" ")+" "}update(t,[e]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(e)}const i=t.element.classList;for(const t of this.st)t in e||(i.remove(t),this.st.delete(t));for(const t in e){const s=!!e[t];s===this.st.has(t)||this.nt?.has(t)||(s?(i.add(t),this.st.add(t)):(i.remove(t),this.st.delete(t)))}return $}});
/**
     * @license
     * Copyright 2020 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
function _t(t,e,i){return t?e(t):i?.(t)}
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const jt=(t,e,i)=>{for(const i of e)if(i[0]===t)return(0,i[1])();return i?.()};
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */function*Rt(t,e){if(void 0!==t){let i=0;for(const s of t)yield e(s,i++)}}
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */function*Wt(t,e){const i="function"==typeof e;if(void 0!==t){let s=-1;for(const a of t)s>-1&&(yield i?e(s):e),s++,yield a}}
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */function*Ot(t,e,i=1){const s=void 0===e?0:t;e??=t;for(let t=s;i>0?t<e:e<t;t+=i)yield t}
/**
     * @license
     * Copyright 2020 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const Lt=H(class extends q{constructor(t){if(super(t),t.type!==G.CHILD)throw Error("templateContent can only be used in child bindings")}render(t){return this.vt===t?$:(this.vt=t,document.importNode(t.content,!0))}});
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class Et extends xt{}Et.directiveName="unsafeSVG",Et.resultType=2;const Nt=H(Et);
/**
     * @license
     * Copyright 2020 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class Vt{}const Bt=new WeakMap,Gt=H(class extends ct{render(t){return S}update(t,[e]){const i=e!==this.Y;return i&&void 0!==this.Y&&this.rt(void 0),(i||this.lt!==this.ct)&&(this.Y=e,this.ht=t.options?.host,this.rt(this.ct=t.element)),S}rt(t){if(this.isConnected||(t=void 0),"function"==typeof this.Y){const e=this.ht??globalThis;let i=Bt.get(e);void 0===i&&(i=new WeakMap,Bt.set(e,i)),void 0!==i.get(this.Y)&&this.Y.call(this.ht,void 0),i.set(this.Y,t),void 0!==t&&this.Y.call(this.ht,t)}else this.Y.value=t}get lt(){return"function"==typeof this.Y?Bt.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Ht=new WeakMap;class qt extends q{update(t,e){return e[0].execute(t),$}render(t){return t.toString()}}class Yt{constructor(t,e={schedule:!1}){this.schedule=!1,this.style=t,this._directive=H(qt),this.execute=this.execute.bind(this),this.schedule=e.schedule}directive(){return this._directive(this)}setStyle(t){for(const t in this.style)delete this.style[t];for(const e in t)this.style[e]=t[e]}toString(){return Object.keys(this.style).reduce(((t,e)=>{const i=this.style[e];return null==i?t:t+`${e=e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${i};`}),"")}_getInternalStyle(){return this.element?Ht.get(this.element):null}updateStyle(t,e,i){const s=i.previousStyle;for(const t of e)t&&!this.style[t]&&(i.toRemove.includes(t)||i.toRemove.push(t));for(const t in s)t&&t in this.style&&!this.style[t]&&e.includes(t)&&(i.toRemove.includes(t)||i.toRemove.push(t));for(const t in this.style){if(!t)continue;if(!(t in this.style))continue;const a=this.style[t];if(!a)continue;const n=s[t];void 0!==n&&n===a&&e.includes(t)||i.toUpdate.push(t)}if(i.toRemove.length||i.toUpdate.length){for(const e of i.toRemove)t.removeProperty(e),t[e]&&delete t[e],i.elementStyles=i.elementStyles.filter((t=>t!==e));for(const e of i.toUpdate){const s=this.style[e];s&&(e.includes("-")?t.setProperty(e,s):t[e]=s,i.elementStyles.includes(e)||i.elementStyles.push(e))}i.previousStyle=Object.assign({},this.style)}}execute(t){const e=t.element;let i;this.element=e,Ht.has(e)?i=Ht.get(e):(i={toUpdate:[],toRemove:[],previousStyle:{},elementStyles:[],styleTaken:!1},Ht.set(e,i)),i.toRemove.length=0,i.toUpdate.length=0;const s=e.style;let a;if(i.styleTaken)a=i.elementStyles;else{i.elementStyles=a=[];for(let t=i.length;t--;)a.push(s[t]);i.styleTaken=!0}this.schedule?requestAnimationFrame((()=>{this.updateStyle(s,a,i)})):this.updateStyle(s,a,i),Ht.set(e,i)}}const Ft=new WeakMap;const Ut=H(class extends q{render(t){return S}update(t,e){if("boolean"!=typeof e[0])throw new Error("[vido] Detach directive argument should be a boolean.");let i=e[0];const s=t.element;if(i)Ft.has(t)||Ft.set(t,{element:s,nextSibling:s.nextSibling,previousSibling:s.previousSibling,parent:s.parentNode}),s.remove();else{const e=Ft.get(t);e&&(e.nextSibling&&e.nextSibling.parentNode?e.nextSibling.parentNode.insertBefore(e.element,e.nextSibling):e.previousSibling&&e.previousSibling.parentNode?e.previousSibling.parentNode.appendChild(e.element):e.parent&&e.parent.appendChild(e.element),Ft.delete(t))}return this.render(i)}});class Kt{constructor(){this.isAction=!0}}Kt.prototype.isAction=!0;const Zt={element:document.createTextNode(""),axis:"xy",threshold:10,onDown(){},onMove(){},onUp(){},onWheel(){}},Xt="undefined"!=typeof PointerEvent;let Qt=0;class Jt extends Kt{constructor(t,e){super(),this.moving="",this.initialX=0,this.initialY=0,this.lastY=0,this.lastX=0,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onWheel=this.onWheel.bind(this),this.element=t,this.id=++Qt,this.options=Object.assign(Object.assign({},Zt),e.pointerOptions),Xt?(t.addEventListener("pointerdown",this.onPointerDown),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp)):(t.addEventListener("touchstart",this.onPointerDown),document.addEventListener("touchmove",this.onPointerMove,{passive:!1}),document.addEventListener("touchend",this.onPointerUp),document.addEventListener("touchcancel",this.onPointerUp),t.addEventListener("mousedown",this.onPointerDown),document.addEventListener("mousemove",this.onPointerMove,{passive:!1}),document.addEventListener("mouseup",this.onPointerUp))}normalizeMouseWheelEvent(t){let e=t.deltaX||0,i=t.deltaY||0,s=t.deltaZ||0;const a=t.deltaMode,n=parseInt(getComputedStyle(t.target).getPropertyValue("line-height"));let o=1;switch(a){case 1:o=n;break;case 2:o=window.height}return e*=o,i*=o,s*=o,{x:e,y:i,z:s,event:t}}onWheel(t){const e=this.normalizeMouseWheelEvent(t);this.options.onWheel(e)}normalizePointerEvent(t){let e={x:0,y:0,pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0,event:t};switch(t.type){case"wheel":const i=this.normalizeMouseWheelEvent(t);e.x=i.x,e.y=i.y,e.pageX=e.x,e.pageY=e.y,e.screenX=e.x,e.screenY=e.y,e.clientX=e.x,e.clientY=e.y;break;case"touchstart":case"touchmove":case"touchend":case"touchcancel":e.x=t.changedTouches[0].screenX,e.y=t.changedTouches[0].screenY,e.pageX=t.changedTouches[0].pageX,e.pageY=t.changedTouches[0].pageY,e.screenX=t.changedTouches[0].screenX,e.screenY=t.changedTouches[0].screenY,e.clientX=t.changedTouches[0].clientX,e.clientY=t.changedTouches[0].clientY;break;default:e.x=t.x,e.y=t.y,e.pageX=t.pageX,e.pageY=t.pageY,e.screenX=t.screenX,e.screenY=t.screenY,e.clientX=t.clientX,e.clientY=t.clientY}return e}onPointerDown(t){if("mousedown"===t.type&&0!==t.button)return;this.moving="xy";const e=this.normalizePointerEvent(t);this.lastX=e.x,this.lastY=e.y,this.initialX=e.x,this.initialY=e.y,this.options.onDown(e)}handleX(t){let e=t.x-this.lastX;return this.lastY=t.y,this.lastX=t.x,e}handleY(t){let e=t.y-this.lastY;return this.lastY=t.y,this.lastX=t.x,e}onPointerMove(t){if(""===this.moving||"mousemove"===t.type&&0!==t.button)return;const e=this.normalizePointerEvent(t);if("x|y"===this.options.axis){let i=0,s=0;("x"===this.moving||"xy"===this.moving&&Math.abs(e.x-this.initialX)>this.options.threshold)&&(this.moving="x",i=this.handleX(e)),("y"===this.moving||"xy"===this.moving&&Math.abs(e.y-this.initialY)>this.options.threshold)&&(this.moving="y",s=this.handleY(e)),this.options.onMove({movementX:i,movementY:s,x:e.x,y:e.y,initialX:this.initialX,initialY:this.initialY,lastX:this.lastX,lastY:this.lastY,event:t})}else if("xy"===this.options.axis){let i=0,s=0;Math.abs(e.x-this.initialX)>this.options.threshold&&(i=this.handleX(e)),Math.abs(e.y-this.initialY)>this.options.threshold&&(s=this.handleY(e)),this.options.onMove({movementX:i,movementY:s,x:e.x,y:e.y,initialX:this.initialX,initialY:this.initialY,lastX:this.lastX,lastY:this.lastY,event:t})}else if("x"===this.options.axis)("x"===this.moving||"xy"===this.moving&&Math.abs(e.x-this.initialX)>this.options.threshold)&&(this.moving="x",this.options.onMove({movementX:this.handleX(e),movementY:0,initialX:this.initialX,initialY:this.initialY,lastX:this.lastX,lastY:this.lastY,event:t}));else if("y"===this.options.axis){let i=0;("y"===this.moving||"xy"===this.moving&&Math.abs(e.y-this.initialY)>this.options.threshold)&&(this.moving="y",i=this.handleY(e)),this.options.onMove({movementX:0,movementY:i,x:e.x,y:e.y,initialX:this.initialX,initialY:this.initialY,lastX:this.lastX,lastY:this.lastY,event:t})}}onPointerUp(t){this.moving="";const e=this.normalizePointerEvent(t);this.options.onUp({movementX:0,movementY:0,x:e.x,y:e.y,initialX:this.initialX,initialY:this.initialY,lastX:this.lastX,lastY:this.lastY,event:t}),this.lastY=0,this.lastX=0}destroy(t){Xt?(t.removeEventListener("pointerdown",this.onPointerDown),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)):(t.removeEventListener("mousedown",this.onPointerDown),document.removeEventListener("mousemove",this.onPointerMove),document.removeEventListener("mouseup",this.onPointerUp),t.removeEventListener("touchstart",this.onPointerDown),document.removeEventListener("touchmove",this.onPointerMove),document.removeEventListener("touchend",this.onPointerUp),document.removeEventListener("touchcancel",this.onPointerUp))}}function te(t){let e=0;return function(i){e||(e=requestAnimationFrame((function(){e=0,t.apply(void 0,[i])})))}}function ee(t){return null==t||"string"==typeof t||"number"==typeof t||"boolean"==typeof t||"bigint"==typeof t||"symbol"==typeof t}function ie(t){return!ee(t)&&(t&&t.constructor?"Object"===t.constructor.name:"object"==typeof t&&null!==t)}function se(t){return!ee(t)&&(Array.isArray(t)||ie(t))}function ae(t,...e){const i=e.shift();if(ie(i)){ie(t)||(t=Object.create(null));for(const e in i){const s=i[e];se(s)?t[e]=ae(t[e],s):t[e]=s}}else if(Array.isArray(i)){const e=i.length;Array.isArray(t)?t.length=e:t=new Array(e);let s=0;for(;s<e;s++){const e=i[s];se(e)?t[s]=ae(t[s],e):t[s]=e}void 0!==i.raw&&(t.raw=i.raw.slice())}else t=i;return e.length?ae(t,...e):t}function ne(t){if(void 0!==t.actions){const e=t.actions.map((t=>{const e=Object.assign({},t),i=Object.assign({},e.props);return delete i.state,delete i.api,delete e.element,e.props=i,e}));t.actions=e}return ae({},t)}var oe={mergeDeep:ae,clone:ne,schedule:te};class re{constructor(t,e){this.slotInstances={},this.destroyed=!1,this.vido=t,this.props=e,this.destroy=this.destroy.bind(this),this.change=this.change.bind(this),this.html=this.html.bind(this),this.getInstances=this.getInstances.bind(this),this.setComponents=this.setComponents.bind(this),this.vido.onDestroy((()=>{this.destroy()}))}setComponents(t){if(t&&!this.destroyed){for(const e in t){const i=t[e];void 0===this.slotInstances[e]&&(this.slotInstances[e]=[]);for(const t of this.slotInstances[e])t.destroy();this.slotInstances[e].length=0;for(const t of i)this.slotInstances[e].push(this.vido.createComponent(t,this.props))}this.vido.update()}}destroy(){if(!this.destroyed){for(const t in this.slotInstances){for(const e of this.slotInstances[t])e.destroy();this.slotInstances[t].length=0}this.destroyed=!0}}change(t,e=void 0){if(!this.destroyed){this.props=t;for(const i in this.slotInstances){const s=this.slotInstances[i];for(const i of s)i.change(t,e)}}}getInstances(t){return this.destroyed?[]:void 0===t?this.slotInstances:this.slotInstances[t]}html(t,e){if(this.destroyed)return;if(!this.slotInstances[t]||0===this.slotInstances[t].length)return e;let i=e;for(const e of this.slotInstances[t])i=e.html(i);return i}getProps(){return this.props}isDestroyed(){return this.destroyed}}class le extends q{update(t,e){if("function"!=typeof e[0])throw new Error("[vido] GetElementDirective argument should be a function.");(0,e[0])(t.element)}render(){return S}}function ce(t,e){let i=0;const s=new Map;let a,n,o=new Map,r=0;const l=[],c=Promise.resolve(),u={},h=function(t){return class extends q{update(e,i){const s=e.element,a=i[0],n=i[1],o=i[2];for(const e of n)if(void 0!==e){let i;if(t.has(a))for(const n of t.get(a))if(n.componentAction.create===e&&n.element===s){i=n;break}if(i)i.props=o;else{void 0!==s.vido&&delete s.vido;const i={instance:a,componentAction:{create:e,update(){},destroy(){}},element:s,props:o};let n=[];t.has(a)&&(n=t.get(a)),n.push(i),t.set(a,n)}}}render(t,e,i){return S}}}(o);class d{constructor(t){this.instance=t}create(t,e){const i=H(h);return()=>i(this.instance,t,e)}}const m=function(t,e,i){return class{constructor(t,e,i={}){this.destroyed=!1,this.instance=t,this.name=e.name,this.vidoInstance=e,this.props=i,this.destroy=this.destroy.bind(this),this.update=this.update.bind(this),this.change=this.change.bind(this),this.html=this.html.bind(this)}destroy(){this.destroyed||(this.vidoInstance.debug&&(console.groupCollapsed(`destroying component ${this.instance}`),console.log(i({components:t.keys(),actionsByInstance:e})),console.trace(),console.groupEnd()),this.vidoInstance.destroyComponent(this.instance,this.vidoInstance),this.destroyed=!0)}update(s=void 0){return this.vidoInstance.debug&&(console.groupCollapsed(`updating component ${this.instance}`),console.log(i({components:t.keys(),actionsByInstance:e})),console.trace(),console.groupEnd()),this.vidoInstance.updateTemplate(s)}change(s,a={}){this.vidoInstance.debug&&(console.groupCollapsed(`changing component ${this.instance}`),console.log(i({props:this.props,newProps:s,components:t.keys(),actionsByInstance:e})),console.trace(),console.groupEnd());const n=t.get(this.instance);n&&n.change(s,a)}html(e={}){const i=t.get(this.instance);if(i&&!i.destroyed)return i.update(e,this.vidoInstance)}_getComponents(){return t}_getActions(){return e}}}(s,o,ne),g=function(t,e,i){return class{constructor(t,e,i){this.destroyed=!1,this.instance=t,this.vidoInstance=e,this.renderFunction=i,this.destroy=this.destroy.bind(this),this.update=this.update.bind(this),this.change=this.change.bind(this)}destroy(){if(!this.destroyed){this.vidoInstance.debug&&(console.groupCollapsed(`component destroy method fired ${this.instance}`),console.log(i({props:this.vidoInstance.props,components:t.keys(),destroyable:this.vidoInstance.destroyable,actionsByInstance:e})),console.trace(),console.groupEnd()),this.content&&"function"==typeof this.content.destroy&&this.content.destroy();for(const t of this.vidoInstance.destroyable)t();this.vidoInstance.onChangeFunctions.length=0,this.vidoInstance.destroyable.length=0,this.vidoInstance.destroyed=!0,this.destroyed=!0,this.vidoInstance.update()}}update(s={}){return this.vidoInstance.debug&&(console.groupCollapsed(`component update method fired ${this.instance}`),console.log(i({components:t.keys(),actionsByInstance:e})),console.trace(),console.groupEnd()),this.renderFunction(s)}change(s,a={leave:!1}){const n=s;this.vidoInstance.debug&&(console.groupCollapsed(`component change method fired ${this.instance}`),console.log(i({props:n,components:t.keys(),onChangeFunctions:this.vidoInstance.onChangeFunctions,changedProps:s,actionsByInstance:e})),console.trace(),console.groupEnd());for(const t of this.vidoInstance.onChangeFunctions)t(s,a)}}}(s,o,ne);class f{constructor(i="",a=""){this.instance="",this.name="",this.destroyable=[],this.destroyed=!1,this.onChangeFunctions=[],this.debug=!1,this.state=t,this.api=e,this.lastProps={},this.html=k,this.svg=x,this.lithtml=B,this.directive=H,this.asyncAppend=gt,this.asyncReplace=mt,this.cache=pt,this.classMap=Mt,this.styleMap=At,this.StyleMap=Yt,this.guard=vt,this.live=Ct,this.ifDefined=yt,this.repeat=kt,this.unsafeHTML=Dt,this.until=zt,this.when=_t,this.choose=jt,this.map=Rt,this.join=Wt,this.range=Ot,this.templateContent=Lt,this.unsafeSVG=Nt,this.ref=Gt,this.schedule=te,this.getElement=H(le),this.actionsByInstance=()=>{},this.detach=Ut,this.PointerAction=Jt,this.Action=Kt,this.Slots=re,this._components=s,this._actions=o,this.instance=i,this.reuseComponents=this.reuseComponents.bind(this),this.onDestroy=this.onDestroy.bind(this),this.onChange=this.onChange.bind(this),this.update=this.update.bind(this),this.destroyComponent=this.destroyComponent.bind(this);for(const t in u)this[t]=u[t].bind(this);this.name=a,this.Actions=new d(i)}static addMethod(t,e){u[t]=e}onDestroy(t){this.destroyable.push(t)}onChange(t){this.onChangeFunctions.push(t)}update(t){return this.updateTemplate(t)}reuseComponents(t,e,i,s,a=!0,n=!1){const o=[],r=t.length,l=e.length;let c=!1;!a||void 0!==e&&0!==e.length||(c=!0);let u=0;if(r<l){let a=l-r;for(;a;){const n=e[l-a],r=this.createComponent(s,i(n));t.push(r),o.push(r),a--}}else if(r>l){let e=r-l;if(a)c=!0,u=r-e;else{for(;e;){const i=r-e;o.push(t[i]),t[i].destroy(),e--}t.length=l}}let h=0;n&&console.log("modified components",o),n&&console.log("current components",t),n&&console.log("data array",e);for(const s of t){const t=e[h];n&&console.log(`reuse components data at '${h}'`,t),s&&!o.includes(s)&&(n&&console.log("getProps fn result",i(t)),s.change(i(t),{leave:c&&h>=u})),h++}}createComponent(t,e={}){const a=t.name+":"+i++;let n;n=new f(a,t.name);const r=new m(a,n,e),l=new g(a,n,t(n,e));return s.set(a,l),s.get(a).change(e),n.debug&&(console.groupCollapsed(`component created ${a}`),console.log(ne({props:e,components:s.keys(),actionsByInstance:o})),console.trace(),console.groupEnd()),r}destroyComponent(t,e){if(e.debug&&(console.groupCollapsed(`destroying component ${t}...`),console.log(ne({components:s.keys(),actionsByInstance:o})),console.trace(),console.groupEnd()),o.has(t))for(const e of o.get(t))"function"==typeof e.componentAction.destroy&&e.componentAction.destroy(e.element,e.props);o.delete(t);const i=s.get(t);i?(i.destroy(),s.delete(t),e.debug&&(console.groupCollapsed(`component destroyed ${t}`),console.log(ne({components:s.keys(),actionsByInstance:o})),console.trace(),console.groupEnd())):console.warn(`No component to destroy! [${t}]`)}executeActions(){for(const t of o.values()){for(const e of t)if(void 0===e.element.vido){const t=s.get(e.instance);e.isActive=function(){return t&&!1===t.destroyed};const i=e.componentAction,a=i.create;if(void 0!==a){let t;t=a.prototype&&(a.prototype.isAction||a.prototype.update||a.prototype.destroy)||a.isAction?new a(e.element,e.props):a(e.element,e.props),void 0!==t&&("function"==typeof t?i.destroy=t:("function"==typeof t.update&&(i.update=t.update.bind(t)),"function"==typeof t.destroy&&(i.destroy=t.destroy.bind(t))))}}else e.element.vido=e.props,"function"==typeof e.componentAction.update&&e.isActive()&&e.componentAction.update(e.element,e.props);for(const e of t)e.element.vido=e.props}}updateTemplate(t=void 0){return t&&l.push(t),new Promise((t=>{const e=++r,i=this;c.then((function(){if(e===r){r=0,i.render();for(const t of l)t();l.length=0,t(null)}}))}))}createApp(t){n=t.element;const e=this.createComponent(t.component,t.props);return a=e.instance,this.render(),e}render(){const t=s.get(a);t?(V(t.update(),n),this.executeActions()):n&&n.remove()}}return new f}ce.lithtml=B,ce.Action=Kt,ce.Directive=q,ce.StyleMap=Yt,ce.PointerAction=Jt,ce.Slots=re,ce.directives={schedule:te,detach:Ut,styleMap:At,classMap:Mt,asyncAppend:gt,asyncReplace:mt,cache:pt,guard:vt,live:Ct,ifDefined:yt,repeat:kt,unsafeHTML:Dt,until:zt,when:_t,choose:jt,map:Rt,join:Wt,range:Ot,templateContent:Lt,unsafeSVG:Nt,ref:Gt};const ue=B;var he=Object.freeze({__proto__:null,Action:Kt,AsyncReplaceDirective:dt,Directive:q,PartType:G,PointerAction:Jt,Slots:re,StyleMap:Yt,UnsafeHTMLDirective:xt,UntilDirective:Pt,_$LH:E,asyncAppend:gt,asyncReplace:mt,cache:pt,choose:jt,classMap:Mt,createRef:()=>new Vt,default:ce,detach:Ut,directive:H,guard:vt,helpers:oe,html:k,ifDefined:yt,join:Wt,lit:ue,lithtml:B,map:Rt,mathml:D,noChange:$,nothing:S,range:Ot,ref:Gt,render:V,repeat:kt,schedule:te,styleMap:At,svg:x,templateContent:Lt,unsafeHTML:Dt,unsafeSVG:Nt,until:zt,when:_t}),de=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self,{exports:{}});!function(t){t.exports=function(){var t=1e3,e=6e4,i=36e5,s="millisecond",a="second",n="minute",o="hour",r="day",l="week",c="month",u="quarter",h="year",d="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,f=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],i=t%100;return"["+t+(e[(i-20)%10]||e[i]||e[0])+"]"}},b=function(t,e,i){var s=String(t);return!s||s.length>=e?t:""+Array(e+1-s.length).join(i)+t},v={s:b,z:function(t){var e=-t.utcOffset(),i=Math.abs(e),s=Math.floor(i/60),a=i%60;return(e<=0?"+":"-")+b(s,2,"0")+":"+b(a,2,"0")},m:function t(e,i){if(e.date()<i.date())return-t(i,e);var s=12*(i.year()-e.year())+(i.month()-e.month()),a=e.clone().add(s,c),n=i-a<0,o=e.clone().add(s+(n?-1:1),c);return+(-(s+(i-a)/(n?a-o:o-a))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:l,d:r,D:d,h:o,m:n,s:a,ms:s,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},y="en",w={};w[y]=p;var k="$isDayjsObject",x=function(t){return t instanceof P||!(!t||!t[k])},D=function t(e,i,s){var a;if(!e)return y;if("string"==typeof e){var n=e.toLowerCase();w[n]&&(a=n),i&&(w[n]=i,a=n);var o=e.split("-");if(!a&&o.length>1)return t(o[0])}else{var r=e.name;w[r]=e,a=r}return!s&&a&&(y=a),a||!s&&y},$=function(t,e){if(x(t))return t.clone();var i="object"==typeof e?e:{};return i.date=t,i.args=arguments,new P(i)},S=v;S.l=D,S.i=x,S.w=function(t,e){return $(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var P=function(){function p(t){this.$L=D(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[k]=!0}var b=p.prototype;return b.parse=function(t){this.$d=function(t){var e=t.date,i=t.utc;if(null===e)return new Date(NaN);if(S.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var s=e.match(g);if(s){var a=s[2]-1||0,n=(s[7]||"0").substring(0,3);return i?new Date(Date.UTC(s[1],a,s[3]||1,s[4]||0,s[5]||0,s[6]||0,n)):new Date(s[1],a,s[3]||1,s[4]||0,s[5]||0,s[6]||0,n)}}return new Date(e)}(t),this.init()},b.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},b.$utils=function(){return S},b.isValid=function(){return!(this.$d.toString()===m)},b.isSame=function(t,e){var i=$(t);return this.startOf(e)<=i&&i<=this.endOf(e)},b.isAfter=function(t,e){return $(t)<this.startOf(e)},b.isBefore=function(t,e){return this.endOf(e)<$(t)},b.$g=function(t,e,i){return S.u(t)?this[e]:this.set(i,t)},b.unix=function(){return Math.floor(this.valueOf()/1e3)},b.valueOf=function(){return this.$d.getTime()},b.startOf=function(t,e){var i=this,s=!!S.u(e)||e,u=S.p(t),m=function(t,e){var a=S.w(i.$u?Date.UTC(i.$y,e,t):new Date(i.$y,e,t),i);return s?a:a.endOf(r)},g=function(t,e){return S.w(i.toDate()[t].apply(i.toDate("s"),(s?[0,0,0,0]:[23,59,59,999]).slice(e)),i)},f=this.$W,p=this.$M,b=this.$D,v="set"+(this.$u?"UTC":"");switch(u){case h:return s?m(1,0):m(31,11);case c:return s?m(1,p):m(0,p+1);case l:var y=this.$locale().weekStart||0,w=(f<y?f+7:f)-y;return m(s?b-w:b+(6-w),p);case r:case d:return g(v+"Hours",0);case o:return g(v+"Minutes",1);case n:return g(v+"Seconds",2);case a:return g(v+"Milliseconds",3);default:return this.clone()}},b.endOf=function(t){return this.startOf(t,!1)},b.$set=function(t,e){var i,l=S.p(t),u="set"+(this.$u?"UTC":""),m=(i={},i[r]=u+"Date",i[d]=u+"Date",i[c]=u+"Month",i[h]=u+"FullYear",i[o]=u+"Hours",i[n]=u+"Minutes",i[a]=u+"Seconds",i[s]=u+"Milliseconds",i)[l],g=l===r?this.$D+(e-this.$W):e;if(l===c||l===h){var f=this.clone().set(d,1);f.$d[m](g),f.init(),this.$d=f.set(d,Math.min(this.$D,f.daysInMonth())).$d}else m&&this.$d[m](g);return this.init(),this},b.set=function(t,e){return this.clone().$set(t,e)},b.get=function(t){return this[S.p(t)]()},b.add=function(s,u){var d,m=this;s=Number(s);var g=S.p(u),f=function(t){var e=$(m);return S.w(e.date(e.date()+Math.round(t*s)),m)};if(g===c)return this.set(c,this.$M+s);if(g===h)return this.set(h,this.$y+s);if(g===r)return f(1);if(g===l)return f(7);var p=(d={},d[n]=e,d[o]=i,d[a]=t,d)[g]||1,b=this.$d.getTime()+s*p;return S.w(b,this)},b.subtract=function(t,e){return this.add(-1*t,e)},b.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return i.invalidDate||m;var s=t||"YYYY-MM-DDTHH:mm:ssZ",a=S.z(this),n=this.$H,o=this.$m,r=this.$M,l=i.weekdays,c=i.months,u=i.meridiem,h=function(t,i,a,n){return t&&(t[i]||t(e,s))||a[i].slice(0,n)},d=function(t){return S.s(n%12||12,t,"0")},g=u||function(t,e,i){var s=t<12?"AM":"PM";return i?s.toLowerCase():s};return s.replace(f,(function(t,s){return s||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return S.s(e.$y,4,"0");case"M":return r+1;case"MM":return S.s(r+1,2,"0");case"MMM":return h(i.monthsShort,r,c,3);case"MMMM":return h(c,r);case"D":return e.$D;case"DD":return S.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(i.weekdaysMin,e.$W,l,2);case"ddd":return h(i.weekdaysShort,e.$W,l,3);case"dddd":return l[e.$W];case"H":return String(n);case"HH":return S.s(n,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return g(n,o,!0);case"A":return g(n,o,!1);case"m":return String(o);case"mm":return S.s(o,2,"0");case"s":return String(e.$s);case"ss":return S.s(e.$s,2,"0");case"SSS":return S.s(e.$ms,3,"0");case"Z":return a}return null}(t)||a.replace(":","")}))},b.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},b.diff=function(s,d,m){var g,f=this,p=S.p(d),b=$(s),v=(b.utcOffset()-this.utcOffset())*e,y=this-b,w=function(){return S.m(f,b)};switch(p){case h:g=w()/12;break;case c:g=w();break;case u:g=w()/3;break;case l:g=(y-v)/6048e5;break;case r:g=(y-v)/864e5;break;case o:g=y/i;break;case n:g=y/e;break;case a:g=y/t;break;default:g=y}return m?g:S.a(g)},b.daysInMonth=function(){return this.endOf(c).$D},b.$locale=function(){return w[this.$L]},b.locale=function(t,e){if(!t)return this.$L;var i=this.clone(),s=D(t,e,!0);return s&&(i.$L=s),i},b.clone=function(){return S.w(this.$d,this)},b.toDate=function(){return new Date(this.valueOf())},b.toJSON=function(){return this.isValid()?this.toISOString():null},b.toISOString=function(){return this.$d.toISOString()},b.toString=function(){return this.$d.toUTCString()},p}(),z=P.prototype;return $.prototype=z,[["$ms",s],["$s",a],["$m",n],["$H",o],["$W",r],["$M",c],["$y",h],["$D",d]].forEach((function(t){z[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),$.extend=function(t,e){return t.$i||(t(e,P,$),t.$i=!0),$},$.locale=D,$.isDayjs=x,$.unix=function(t){return $(1e3*t)},$.en=w[y],$.Ls=w,$.p={},$}()}(de);var me=de.exports,ge={exports:{}};!function(t){t.exports=function(){var t="minute",e=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(s,a,n){var o=a.prototype;n.utc=function(t){return new a({date:t,utc:!0,args:arguments})},o.utc=function(e){var i=n(this.toDate(),{locale:this.$L,utc:!0});return e?i.add(this.utcOffset(),t):i},o.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var r=o.parse;o.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),r.call(this,t)};var l=o.init;o.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else l.call(this)};var c=o.utcOffset;o.utcOffset=function(s,a){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?c.call(this):this.$offset;if("string"==typeof s&&(s=function(t){void 0===t&&(t="");var s=t.match(e);if(!s)return null;var a=(""+s[0]).match(i)||["-",0,0],n=a[0],o=60*+a[1]+ +a[2];return 0===o?0:"+"===n?o:-o}(s),null===s))return this;var o=Math.abs(s)<=16?60*s:s,r=this;if(a)return r.$offset=o,r.$u=0===s,r;if(0!==s){var l=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(r=this.local().add(o+l,t)).$offset=o,r.$x.$localOffset=l}else r=this.utc();return r};var u=o.format;o.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return u.call(this,e)},o.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},o.isUTC=function(){return!!this.$u},o.toISOString=function(){return this.toDate().toISOString()},o.toString=function(){return this.toDate().toUTCString()};var h=o.toDate;o.toDate=function(t){return"s"===t&&this.$offset?n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():h.call(this)};var d=o.diff;o.diff=function(t,e,i){if(t&&this.$u===t.$u)return d.call(this,t,e,i);var s=this.local(),a=n(t).local();return d.call(s,a,e,i)}}}()}(ge);var fe=ge.exports,pe={exports:{}};!function(t){t.exports=function(){var t,e,i=1e3,s=6e4,a=36e5,n=864e5,o=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,r=31536e6,l=2628e6,c=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,u={years:r,months:l,days:n,hours:a,minutes:s,seconds:i,milliseconds:1,weeks:6048e5},h=function(t){return t instanceof v},d=function(t,e,i){return new v(t,i,e.$l)},m=function(t){return e.p(t)+"s"},g=function(t){return t<0},f=function(t){return g(t)?Math.ceil(t):Math.floor(t)},p=function(t){return Math.abs(t)},b=function(t,e){return t?g(t)?{negative:!0,format:""+p(t)+e}:{negative:!1,format:""+t+e}:{negative:!1,format:""}},v=function(){function g(t,e,i){var s=this;if(this.$d={},this.$l=i,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),e)return d(t*u[m(e)],this);if("number"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if("object"==typeof t)return Object.keys(t).forEach((function(e){s.$d[m(e)]=t[e]})),this.calMilliseconds(),this;if("string"==typeof t){var a=t.match(c);if(a){var n=a.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=n[0],this.$d.months=n[1],this.$d.weeks=n[2],this.$d.days=n[3],this.$d.hours=n[4],this.$d.minutes=n[5],this.$d.seconds=n[6],this.calMilliseconds(),this}}return this}var p=g.prototype;return p.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(e,i){return e+(t.$d[i]||0)*u[i]}),0)},p.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=f(t/r),t%=r,this.$d.months=f(t/l),t%=l,this.$d.days=f(t/n),t%=n,this.$d.hours=f(t/a),t%=a,this.$d.minutes=f(t/s),t%=s,this.$d.seconds=f(t/i),t%=i,this.$d.milliseconds=t},p.toISOString=function(){var t=b(this.$d.years,"Y"),e=b(this.$d.months,"M"),i=+this.$d.days||0;this.$d.weeks&&(i+=7*this.$d.weeks);var s=b(i,"D"),a=b(this.$d.hours,"H"),n=b(this.$d.minutes,"M"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var r=b(o,"S"),l=t.negative||e.negative||s.negative||a.negative||n.negative||r.negative,c=a.format||n.format||r.format?"T":"",u=(l?"-":"")+"P"+t.format+e.format+s.format+c+a.format+n.format+r.format;return"P"===u||"-P"===u?"P0D":u},p.toJSON=function(){return this.toISOString()},p.format=function(t){var i=t||"YYYY-MM-DDTHH:mm:ss",s={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return i.replace(o,(function(t,e){return e||String(s[t])}))},p.as=function(t){return this.$ms/u[m(t)]},p.get=function(t){var e=this.$ms,i=m(t);return"milliseconds"===i?e%=1e3:e="weeks"===i?f(e/u[i]):this.$d[i],e||0},p.add=function(t,e,i){var s;return s=e?t*u[m(e)]:h(t)?t.$ms:d(t,this).$ms,d(this.$ms+s*(i?-1:1),this)},p.subtract=function(t,e){return this.add(t,e,!0)},p.locale=function(t){var e=this.clone();return e.$l=t,e},p.clone=function(){return d(this.$ms,this)},p.humanize=function(e){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!e)},p.valueOf=function(){return this.asMilliseconds()},p.milliseconds=function(){return this.get("milliseconds")},p.asMilliseconds=function(){return this.as("milliseconds")},p.seconds=function(){return this.get("seconds")},p.asSeconds=function(){return this.as("seconds")},p.minutes=function(){return this.get("minutes")},p.asMinutes=function(){return this.as("minutes")},p.hours=function(){return this.get("hours")},p.asHours=function(){return this.as("hours")},p.days=function(){return this.get("days")},p.asDays=function(){return this.as("days")},p.weeks=function(){return this.get("weeks")},p.asWeeks=function(){return this.as("weeks")},p.months=function(){return this.get("months")},p.asMonths=function(){return this.as("months")},p.years=function(){return this.get("years")},p.asYears=function(){return this.as("years")},g}(),y=function(t,e,i){return t.add(e.years()*i,"y").add(e.months()*i,"M").add(e.days()*i,"d").add(e.hours()*i,"h").add(e.minutes()*i,"m").add(e.seconds()*i,"s").add(e.milliseconds()*i,"ms")};return function(i,s,a){t=a,e=a().$utils(),a.duration=function(t,e){var i=a.locale();return d(t,{$l:i},e)},a.isDuration=h;var n=s.prototype.add,o=s.prototype.subtract;s.prototype.add=function(t,e){return h(t)?y(this,t,1):n.bind(this)(t,e)},s.prototype.subtract=function(t,e){return h(t)?y(this,t,-1):o.bind(this)(t,e)}}}()}(pe);var be=pe.exports;
/**
     * Gantt-Schedule-Timeline-Calendar Time api
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class ve{constructor(t,e){this.utcMode=!1,this.unsubs=[],this.currentDateLastCheck=0,this.state=t,this.api=e,this.dayjs=me,this.dayjs.extend(fe),this.dayjs.extend(be),this.unsubs.push(t.subscribe("config.utcMode",(t=>{this.utcMode=t}))),this.unsubs.push(t.subscribe("config.locale",(t=>{if(!t.name)throw new Error("Locale must have a name property.");this.locale=t,this.dayjs.locale(this.locale,null,!0)})))}destroy(){for(const t of this.unsubs)t()}date(t=void 0){return this.utcMode?me.utc(t).locale(this.locale.name):t?me(t).locale(this.locale.name):me().locale(this.locale.name)}recalculateTime(){this.api.main.recalculateTimes([{name:"all"}])}recalculateFromTo(t,e=!1){const i=t.period;if((t=Object.assign({},t)).from=+t.from,t.to=+t.to,t.fromDate=this.date(t.from).startOf(i),t.from=t.fromDate.valueOf(),t.toDate=this.date(t.to).endOf(i),t.to=t.toDate.valueOf(),!t.autoExpandTimeFromItems||t.calculatedZoomMode)return t;let s=Number.MAX_SAFE_INTEGER,a=0;const n=this.state.get("config.chart.items");if(Object.keys(n).length>0&&(0===t.from||0===t.to||e)){for(const t in n){const e=n[t];e.time.start<s&&e.time.start&&(s=e.time.start),e.time.end>a&&(a=e.time.end)}s<t.from&&(t.fromDate=this.date(s).startOf(i),t.from=t.fromDate.valueOf()),a>t.to&&(t.toDate=this.date(a).endOf(i),t.to=t.toDate.valueOf())}return t}getCenter(t){return t.leftGlobal+Math.round((t.rightGlobal-t.leftGlobal)/2)}isInCurrentView(t,e=this.state.get("$data.chart.time")){const i=t.valueOf();return!(i<e.leftGlobal||i>e.rightGlobal)}recalculateDatesWidths(t,e=this.state.get("$data.chart.time")){if(!e.timePerPixel)throw new Error("[gantt-schedule-timeline-calendar] No timePerPixel");for(const i of t){if(!i.leftGlobal||!i.rightGlobal)throw new Error("[gantt-schedule-timeline-calendar] No date leftGlobal or rightGlobal.");i.width=(i.rightGlobal+1-i.leftGlobal)/e.timePerPixel}return t}recalculateDatesPositions(t,e=this.state.get("$data.chart.time"),i=!0,s=!1){let a=0;if(i)for(const i of t){if(i.leftGlobal>=e.leftGlobal)break;if(isNaN(i.width))throw new Error("[gantt-schedule-timeline-calendar] NaN date width.");a-=i.width}for(let i of t){if(s&&(i=this.api.mergeDeep({},i)),i.leftPx=a,i.rightPx=a+i.width,isNaN(i.leftPx)||isNaN(i.rightPx))throw new Error("[gantt-schedule-timeline-calendar] Date leftPx or rightPx is a NaN.");i.currentView&&(i.currentView.leftPx=i.leftPx-e.leftPx,i.currentView.rightPx=i.rightPx-e.leftPx,i.currentView.width=i.currentView.rightPx-i.currentView.leftPx),a+=i.width}return t}setDatesCacheLevel(t,e,i=this.state.get("$data.chart.time")){if(!e.length)return;i.datesCache||(i.datesCache={timePerPixel:0,levels:[]}),i.datesCache.timePerPixel=i.timePerPixel,i.datesCache.levels[t]||(i.datesCache.levels[t]={leftTime:0,rightTime:0,dates:[]});const s=i.datesCache.levels[t];s.leftTime=e[0].leftGlobal,s.rightTime=e[e.length-1].rightGlobal,s.dates=[...e]}addDatesToCacheLevel(t,e,i=this.state.get("$data.chart.time")){if(!e.length)return;if(!i.datesCache)return;if(i.datesCache.timePerPixel!==i.timePerPixel)return e;const s=e[0],a=e[e.length-1],n=i.datesCache.levels[t];if(!n)return e;if(n.leftTime<=s.leftGlobal&&n.rightTime>=a.rightGlobal)return n.dates;if(n.dates.length>=1e6)throw new Error("[gantt-schedule-timeline-calendar] To many dates.");const o=[];if(s.leftGlobal<n.leftTime){for(const t of e){if(!(t.leftGlobal<n.leftTime))break;o.push(t)}n.leftTime=o[0].leftGlobal}for(const t of n.dates)o.push(t);if(a.rightGlobal>n.rightTime){for(const t of e)t.rightGlobal>n.rightTime&&o.push(t);n.rightTime=o[o.length-1].rightGlobal}return n.dates=o,n.dates}isLevelDateInCache(t,e,i=this.state.get("$data.chart.time")){if(!i.datesCache)return!1;if(i.datesCache.timePerPixel!==i.timePerPixel)return!1;const s=i.datesCache.levels[t];return!(!s||!s.dates.length)&&(e>=s.leftTime&&e<=s.rightTime)}getLevelDatesFromCache(t,e,i,s=this.state.get("$data.chart.time")){if(s.datesCache.timePerPixel!==s.timePerPixel)return[];const a=s.datesCache.levels[t];if(!a)return[];if(!(e>=a.leftTime&&i<=a.rightTime))return[];let n=0,o=0,r=!1;const l=a.dates.length;for(;o<l;o++){const t=a.dates[o];if(t.rightGlobal>=e&&(r=!0),t.rightGlobal>=i)break;r||n++}return{[Symbol.iterator](){let t=n;return{next:()=>t<=o?{value:a.dates[t++],done:!1}:(t=n,{done:!0})}},length:o-n+1}}getLevelDateFromCache(t,e,i=this.state.get("$data.chart.time")){if(!this.isLevelDateInCache(t,e,i))return null;for(const s of i.datesCache.levels[t].dates)if(s.rightGlobal>=e)return s;return null}getAllLevelDatesFromCache(t,e=this.state.get("$data.chart.time")){return e.datesCache.levels[t].dates}findOrCreateMainDateAtTime(t,e=this.state.get("$data.chart.time")){if(this.isLevelDateInCache(e.level,t,e))return this.getLevelDateFromCache(e.level,t,e);let i=[];e.datesCache.levels[e.level]&&(i=e.datesCache.levels[e.level].dates),i=this.addMissingDates(i,this.date(t),e);for(const e of i)if(e.rightGlobal>=t)return e;return null}addMissingDates(t,e,i=this.state.get("$data.chart.time"),s=!0){if(!t.length)return[];const a=t[0],n=t[t.length-1];if(!(e.valueOf()<a.leftGlobal||e.valueOf()>n.rightGlobal))return t;if(this.isLevelDateInCache(i.level,e.valueOf(),i))return this.getAllLevelDatesFromCache(i.level,i);const o=t.length;let r=t;if(s){r=new Array(o);for(let e=0;e<o;e++)r[e]=this.api.mergeDeep({},t[e])}const l=this.state.get(`config.chart.calendarLevels.${i.level}`),c=this.getCurrentFormatForLevel(l,i);let u=1;if("number"==typeof c.periodIncrement&&(u=c.periodIncrement),e.valueOf()<a.leftGlobal){if("function"==typeof c.periodIncrement)return t;const n=a.leftGlobalDate.subtract(1,"ms");let o=a.leftGlobalDate.subtract(u,i.period).startOf(i.period);for(;e.valueOf()<o.valueOf();)o=o.subtract(u,i.period).startOf(i.period);let l=[];do{l=this.generatePeriodDates({leftDate:o,rightDate:n,period:i.period,level:this.state.get(`config.chart.calendarLevels.${i.level}`),levelIndex:i.level,callOnDate:!0,callOnLevelDates:!0,time:i}),o=o.subtract(1,i.period)}while(!l.length||l[0].leftGlobal>e.valueOf());return l=l.filter((t=>!r.find((e=>e.leftGlobal===t.leftGlobal)))),t=[...l,...r],t=this.recalculateDatesWidths(t,i),t=this.recalculateDatesPositions(t,i,!0,s),this.addDatesToCacheLevel(i.level,t,i)}if(e.valueOf()>n.rightGlobal){let a=n.rightGlobalDate.add(u,i.period).endOf(i.period);for(;e.valueOf()>a.valueOf();)a=a.add(u,i.period).endOf(i.period);let o=this.generatePeriodDates({leftDate:n.rightGlobalDate.add(1,"ms"),rightDate:a,period:i.period,level:this.state.get(`config.chart.calendarLevels.${i.level}`),levelIndex:i.level,callOnDate:!0,callOnLevelDates:!0,time:i});return o=o.filter((t=>!r.find((e=>e.leftGlobal===t.leftGlobal)))),t=[...r,...o],t=this.recalculateDatesWidths(t,i),t=this.recalculateDatesPositions(t,i,!0,s),this.addDatesToCacheLevel(i.level,t,i)}return r}getGlobalOffsetPxFromDates(t,e=!0,i=this.state.get("$data.chart.time"),s=void 0){const a=t.valueOf();if(!i.allDates||0===i.allDates.length)return-100;if(void 0===s&&(s=i.allDates[i.level]),e&&(s=this.addMissingDates(s,t,i)),!s||0===s.length)return-1;let n;for(let t=0,e=s.length;t<e;t++){const e=s[t];if(a<=e.rightGlobal+1){n=e;break}}return n?a<n.leftGlobal?n.leftPx:n.rightPx-(n.rightGlobal-a)/i.timePerPixel:a<=i.leftGlobal?0:a>=i.rightGlobal?i.totalViewDurationPx+(a-i.rightGlobal+1)/i.timePerPixel:-1}getViewOffsetPxFromDates(t,e=!0,i=this.state.get("$data.chart.time"),s=void 0,a=!0){s||(s=i.allDates[i.level]),a&&(s=this.addMissingDates(s,t,i));const n=this.getDatesDiffPx(i.leftGlobalDate,t,i,!0,s);return e?this.limitOffsetPxToView(n):n}limitOffsetPxToView(t,e=this.state.get("$data.chart.time")){if(t<0)return 0;if(!e.levels.length)return e.width;const i=e.levels[e.level];if(!i.length)return e.width;const s=i[i.length-1];return t>s.currentView.rightPx?s.currentView.rightPx:t}findDateAtViewOffsetPx(t,e){return e.find((e=>e.currentView.rightPx>=t))}findDateIndex(t,e){let i=0;for(const s of e){if(s.rightGlobal>=t)return i;i++}return-1}findDateAtTime(t,e=void 0){if(!e){const t=this.state.get("$data.chart.time");e=t.allDates[t.level]}return e.find((e=>e.rightGlobal>=t))}getMainDateFromRelativePosition(t,e){const i=t.leftPx+e,s=this.state.get("$data.chart.time"),a=s.allDates[s.level];for(const t of a)if(t.rightPx>i)return t}getTimeFromOffsetPx(t,e=!0,i=this.state.get("$data.chart.time"),s=void 0){let a=t;e&&(a+=i.leftPx),s||(s=i.allDates[i.level]);const n=this.state.get(`config.chart.calendarLevels.${i.level}`),o=this.getCurrentFormatForLevel(n,i);let r=1;if("number"==typeof o.periodIncrement&&(r=o.periodIncrement),a<0){if("function"==typeof o.periodIncrement)return i.from;let t,e=i.fromDate.subtract(r,i.period).startOf(i.period),s=0;for(let n=0;n<1e3;n++){const n=this.generatePeriodDates({leftDate:e,rightDate:e.add(r,i.period).subtract(1,"ms"),period:i.period,time:i,level:this.state.get(`config.chart.calendarLevels.${i.level}`),levelIndex:i.level,callOnDate:!0,callOnLevelDates:!0,expandIfMissing:!1});if(n.length&&(t=n[0],s-=t.width,s<=a))return t.leftGlobal+(a-s)*i.timePerPixel;e=e.subtract(r,i.period).startOf(i.period)}}else if(a>i.totalViewDurationPx){let t,e=i.toDate.add(1,i.period).startOf(i.period),s=i.totalViewDurationPx;for(let n=0;n<1e3;n++){const n=this.generatePeriodDates({leftDate:e,rightDate:e.add(r,i.period).subtract(1,"ms"),period:i.period,time:i,level:this.state.get(`config.chart.calendarLevels.${i.level}`),levelIndex:i.level,callOnDate:!0,callOnLevelDates:!0,expandIfMissing:!1});if(n.length&&(t=n[0],s+=t.width,s>a))return t.rightGlobal+1-(s-a)*i.timePerPixel;e=e.add(r,i.period).startOf(i.period)}}for(let t=0,e=s.length;t<e;t++){const e=s[t];if(e.rightPx>a){const t=(e.rightPx-a)*i.timePerPixel;return e.rightGlobal+1-t}}const l=s[s.length-1];return l.rightGlobal+1-(l.rightPx-a)*i.timePerPixel}getCurrentFormatForLevel(t,e){return t.find((t=>+e.zoom<=+t.zoomTo))}alignLevelToMain(t,e,i=this.state.get("$data.chart.time")){if(t===i.level)return e;if(!this.state.get("config.chart.time.alignLevelsToMain"))return e;const s=i.allDates[i.level];if(!s||!s.length)return e;if(!e||!e.length)return e;const a=e.length;for(let t=0;t<a;t++){const a=e[t];let n,o=!1,r=0;for(const t of s){if(t.rightGlobal>=a.leftGlobal){if(!o)if(t.leftGlobal>=a.leftGlobal)a.leftGlobal=t.leftGlobal,a.leftGlobalDate=this.date(a.leftGlobal),a.leftPx=t.leftPx;else{const e=(t.rightGlobal-a.leftGlobal)/i.timePerPixel;r=-(t.width-e)}o=!0}if(t.leftGlobal>a.rightGlobal)break;o&&(r+=t.width,n=t)}if(n)if(n.rightGlobal<=a.rightGlobal)a.rightGlobal=n.rightGlobal,a.rightGlobalDate=this.date(a.rightGlobal),a.width=r,a.rightPx=a.leftPx+a.width;else{const t=(n.rightGlobal-a.rightGlobal)/i.timePerPixel;a.width=r-t,a.rightPx=a.leftPx+a.width}}return e}stopCheckingCurrentDates(){this.checkCurrentDateTimeoutId&&clearTimeout(this.checkCurrentDateTimeoutId)}checkCurrentDates(t=!1,e=this.state.get("$data.chart.time")){const i=this.date().valueOf(),s=e.checkCurrentDateInterval;if(this.stopCheckingCurrentDates(),t&&(this.checkCurrentDateTimeoutId=setTimeout((()=>{this.checkCurrentDates(t,e)}),s)),i-this.currentDateLastCheck<s)return;const a=e.allDates;let n=!1;for(const t of a){const e=t.length;for(let s=0;s<e;s++){const a=t[s],o=a.current;a.current=!1,a.previous=!1,a.next=!1,a.leftGlobal<=i&&a.rightGlobal>=i&&(!0!==o&&(n=!0),a.current=!0,s>0&&(t[s-1].previous=!0),s+1<e&&(t[s+1].next=!0))}}this.currentDateLastCheck=i,n&&this.state.update("$data.chart.time.levels",(t=>t),{data:"current-time"}),this.api.render()}getDSTDiffForLevel(t,e,i,s=this.state.get("$data.chart.time")){const a=this.api.time.getLevelDatesFromCache(t,e,i,s);let n=0;for(const t of a)t.DST.diffMs&&e<=t.DST.afterTime&&i>t.DST.afterTime&&(n+=t.DST.diffMs);return n}setDatesDST(t){for(const e of t){const t=e.rightGlobal-e.leftGlobal,i=e.rightGlobalDate.utc(!0).valueOf()-e.leftGlobalDate.utc(!0).valueOf();if(t!==i){e.DST={diffMs:t-i,afterTime:0,afterDate:null};for(let t=0;t<9216;t++)if(e.leftGlobalDate.add(t,"hour").hour()!==e.leftGlobalDate.utc(!0).add(t,"hour").hour()){e.DST.afterDate=e.leftGlobalDate.add(t,"hour").subtract(1,"ms"),e.DST.afterTime=e.DST.afterDate.valueOf();break}}}return t}_generatePeriodDates(t){const e=[];t=Object.assign({},t);const{datesCount:i,rightDate:s,period:a,level:n,levelIndex:o,time:r,originalLeftDate:l,format:c}=t;let u=t.leftDate;const h=this.date().valueOf();for(let t=0;t<i;t++){let t=c.periodIncrement||1;"function"==typeof t&&(t=t({currentDates:e,date:u,leftDate:l,rightDate:s,period:a,level:n,levelIndex:o,time:r,vido:this.api.vido,api:this.api}));const i=u.add(t-1,a).endOf(a),d=u.valueOf()<=h&&i.valueOf()>=h,m={id:`gstcid-${u.valueOf()}`,leftGlobal:u.valueOf(),leftGlobalDate:u,rightGlobalDate:i,rightGlobal:i.valueOf(),width:0,leftPx:0,rightPx:0,period:a,formatted:null,current:d,previous:!1,next:!1,periodIncrementedBy:t,DST:{diffMs:0,afterTime:0,afterDate:null}};d&&e.length&&(e[e.length-1].previous=!0),e.length&&e[e.length-1].current&&(m.next=!0);const g=m.rightGlobal+1-m.leftGlobal;m.width=g/r.timePerPixel,e.push(m),u=u.add(t||1,a)}return this.setDatesDST(e)}generatePeriodDates({leftDate:t,rightDate:e,period:i,level:s,levelIndex:a,time:n,callOnDate:o,callOnLevelDates:r,expandIfMissing:l=!0}){if(!n.timePerPixel)return[];const c=this.getCurrentFormatForLevel(s,n);t=t.startOf(i),e=e.endOf(i);const u=Math.ceil(e.diff(t,i,!0)),h=t.clone();let d=this._generatePeriodDates({datesCount:u,leftDate:t,rightDate:e,period:i,level:s,levelIndex:a,time:n,originalLeftDate:h,format:c});if(o){const t=[];for(let e=0;e<d.length;e++){let i=d[e];if(i){for(let t=0,e=n.onDate.length;t<e;t++)i=n.onDate[t]({date:i,format:c,time:n,level:s,levelIndex:a});i&&t.push(i)}}d=t}if(r)for(let t=0,e=n.onLevelDates.length;t<e;t++)d=n.onLevelDates[t]({dates:d,format:c,time:n,level:s,levelIndex:a});if((!d.length||d[d.length-1].rightGlobal<e.valueOf())&&l){let l=this._generatePeriodDates({datesCount:u+100,leftDate:t,rightDate:e,period:i,level:s,levelIndex:a,time:n,originalLeftDate:h,format:c});if(o){const t=[];for(let e=0;e<l.length;e++){let i=l[e];if(i){for(let t=0,e=n.onDate.length;t<e;t++)i=n.onDate[t]({date:i,format:c,time:n,level:s,levelIndex:a});i&&t.push(i)}}l=t}if(r)for(let t=0,e=n.onLevelDates.length;t<e;t++)l=n.onLevelDates[t]({dates:l,format:c,time:n,level:s,levelIndex:a});const d=[];for(const t of l)if(d.push(t),t.rightGlobal>=e.valueOf())return d}this.addDatesToCacheLevel(a,d,n);const m=[];for(const t of d)if(m.push(t),t.rightGlobal>=e.valueOf())return m;return m}getDatesDiffPx(t,e,i,s=!0,a=void 0){let n=e.valueOf(),o=t.valueOf();if(o===n)return 0;let r,l,c=0,u=!1;if(n<o){const i=t;t=e,o=n,n=(e=i).valueOf(),u=!0}if(void 0===a){if(!i.allDates||!i.allDates.length||!i.allDates[i.level])return 0;a=i.allDates[i.level]}if(0===a.length)return 0;if(this.isLevelDateInCache(i.level,o,i)?a=this.getAllLevelDatesFromCache(i.level,i):o<a[0].leftGlobal&&(a=this.addMissingDates(a,t,i)),this.isLevelDateInCache(i.level,n,i))a=this.getAllLevelDatesFromCache(i.level,i);else{n>a[a.length-1].rightGlobalDate.clone().valueOf()&&(a=this.addMissingDates(a,e,i))}this.addDatesToCacheLevel(i.level,a,i);let h=!1,d=0;for(const t of a)if(t.rightGlobal+1>=o&&!h&&(h=!0,l=t),h&&(c+=t.width),t.rightGlobal+1>=n){r=t,d=t.width;break}if(s){let t=o-l.leftGlobal;o<l.leftGlobal&&(t=0);let e=r.rightGlobal+1-n;r.leftGlobal>n&&(e=r.rightGlobal+1-r.leftGlobal);const s=(e+t)/i.timePerPixel;return u?-(c-s):c-s}return c-=d,u?-c:c}getDatesDiffMs(t,e,i,s=!0,a=void 0){if(t.valueOf()===e.valueOf())return 0;let n,o,r=0,l=!1;if(e.valueOf()<t.valueOf()){const i=t;t=e,e=i,l=!0}if(void 0===a){if(!i.allDates||!i.allDates.length||!i.allDates[i.level])return 0;a=i.allDates[i.level]}if(0===a.length)return 0;if(this.isLevelDateInCache(i.level,t.valueOf(),i)?a=this.getAllLevelDatesFromCache(i.level,i):t.valueOf()<a[0].leftGlobal&&(a=this.addMissingDates(a,t,i)),this.isLevelDateInCache(i.level,e.valueOf(),i))a=this.getAllLevelDatesFromCache(i.level,i);else{const t=a[a.length-1].rightGlobalDate.clone();e.valueOf()>t.valueOf()&&(a=this.addMissingDates(a,e,i))}this.addDatesToCacheLevel(i.level,a,i);let c=!1,u=0;for(const i of a)if(i.rightGlobal+1>=t.valueOf()&&!c&&(c=!0,o=i),c&&(r+=i.rightGlobal+1-i.leftGlobal),i.rightGlobal+1>=e.valueOf()){n=i,u=i.rightGlobal+1-i.leftGlobal;break}if(s){let i=t.valueOf()-o.leftGlobal;t.valueOf()<o.leftGlobal&&(i=0);let s=n.rightGlobal+1-e.valueOf();n.leftGlobal>e.valueOf()&&(s=n.rightGlobal+1-n.leftGlobal);const a=s+i;return l?-(r-a):r-a}return r-=u,l?-r:r}addTimeFromDates(t,e,i=this.state.get("$data.chart.time")){if(!i.allDates||!i.allDates.length||!i.allDates[i.level])return t+e;if(!e)return t;let s=this.getAllLevelDatesFromCache(i.level,i);const a=this.date(t);s=this.addMissingDates(s,a,i,!0);let n=this.findDateIndex(t,s),o=t-s[n].leftGlobal;o<0&&(o=0);let r=0;if(e>0){for(;r<e;){const t=s[n];if(r+=t.rightGlobal+1-t.leftGlobal,o&&(r-=o,o=0),r>=e)break;n++,s[n]||(s=this.addMissingDates(s,t.leftGlobalDate.add(1,i.period),i,!0))}return s[n].rightGlobal+1-(r-e)}for(;r>e;){let t=s[n];if(r-=o,o&&(o=0),r<=e)break;if(n--,n<0&&(s=this.addMissingDates(s,t.leftGlobalDate.subtract(1,i.period),i,!0),n=0),t=s[n],r-=t.rightGlobal+1-t.leftGlobal,r<=e)break}return s[n].leftGlobal+(-r+e)}getLeftViewDate(t=this.state.get("$data.chart.time")){if(!t.levels||!t.levels.length)return null;const e=t.levels[t.level];return e.length?e[0]:null}getRightViewDate(t=this.state.get("$data.chart.time")){if(!t.levels||!t.levels.length||!t.levels[t.level])return null;const e=t.levels[t.level];return e.length?e[e.length-1]:null}getLowerPeriod(t){switch(t){case"year":return"month";case"month":case"week":return"day";case"day":return"hour";case"hour":return"minute";case"minute":return"second";case"second":return"millisecond";default:return t}}getHigherPeriod(t){switch(t){case"month":return"year";case"week":case"day":return"month";case"hour":return"day";case"minute":return"hour";case"second":return"minute";case"millisecond":return"second";default:return t}}}
/**
     * Gantt-Schedule-Timeline-Calendar IDApi
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */var ye=new class{constructor(){this.GSTCID=this.GSTCID.bind(this),this.isGSTCID=this.isGSTCID.bind(this),this.sourceID=this.sourceID.bind(this)}GSTCID(t){return this.isGSTCID(t)?t:`gstcid-${t}`}isGSTCID(t){return String(t).startsWith("gstcid-")}sourceID(t){return this.isGSTCID(t)?t.substring(7):t}};
/**
     * Gantt-Schedule-Timeline-Calendar Slots
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class we extends re{constructor(t,e,i){super(e,i),this.subs=[],this.name=t,this.subs.push(e.state.subscribe(`config.slots.${t}`,this.setComponents,{queue:!0}))}destroy(){this.subs.forEach((t=>t())),super.destroy()}getName(){return this.name}}function ke(t,e,i){return new we(t,e,i)}
/**
     * Gantt-Schedule-Timeline-Calendar helpers
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */const xe="gstc";function De(t,e=""){let i=`${xe}__${t}`;return t===xe&&(i=xe),e?`${i} ${i}--${e.replace(":","-")}`:i}function $e(t,e){let i=`${xe}__${t}`;return t===xe&&(i=xe),`${i}--${e}`}
/**
     * Api functions
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */let Se=0;const Pe=new Map;function ze(t){return Pe.get(t.apiId)}class Ce{constructor(t){this.apiId=0,this.name=xe,this.debug=!1,this.plugins={},this.iconsCache={},this.unsubscribes=[],this.mutedMethods=new Set,this.mergeDeep=null,this.generateSlots=ke,this.getClass=De,this.getId=$e,this.GSTCID=ye.GSTCID,this.isGSTCID=ye.isGSTCID,this.sourceID=ye.sourceID,this.allActions=[],this.keysToKeep=["id","parents","children","allChildren","parentId"],this.apiId=++Se,Pe.set(this.apiId,{rowsDataWithParentsExpanded:[],rowsIdsWithParentsExpanded:[],rowsWithParentsExpanded:[],rowsWithParentsExpandedAsMap:new Map,rowsPositionsMap:{id:"",dataIndex:0,keys:[]},allRowsIds:[],allRowsAsArray:[],rowsWithParentsExpandedDataIndexMap:new Map,itemsAsArray:[],itemsDataAsArray:[]}),this.state=t,this.time=new ve(this.state,this),this.unsubscribes.push(this.state.subscribe("config.debug",(t=>this.debug=t))),this.unsubscribes.push(this.state.subscribe("config.chart.items;",(()=>this.resetRowsOverlappingCalculated()))),this.unsubscribes.push(this.state.subscribe("config.chart.items.:itemId.time",(t=>{var e;if(t.length){const i=this.getRowsData();if(!i)return;const s=this.state.get("config.chart.items");for(const a of t)if(null===(e=a.params)||void 0===e?void 0:e.itemId){const t=s[a.params.itemId];if(t){i[t.rowId].overlappingCalculated=!1}}}}),{bulk:!0,bulkValue:!1})),this.debug&&(window.state=t)}schedule(t){let e=0;return function(...i){e||(e=requestAnimationFrame((function(){e=0,t(...i)})))}}render(){return this.vido.update()}getListenerPosition(t){for(const e of this.state.getListeners().values())for(const i of e.listeners)if(i[1].fn===t)return i[0]}setVido(t){this.vido=t}clone(t){return this.mergeDeep({},t)}setMergeDeep(t){this.mergeDeep=t}log(...t){this.debug&&console.log.call(console,...t)}getInitializedPlugins(){return this.state.get("$data.initializedPlugins")}pluginInitialized(t){this.getInitializedPlugins().add(t)}pluginDestroyed(t){this.getInitializedPlugins().delete(t)}clearPluginsPositions(){this.getInitializedPlugins().clear()}isPluginInitialized(t){return this.getInitializedPlugins().has(t)}getPluginPosition(t){return[...this.getInitializedPlugins()].indexOf(t)}getPluginsPositions(){const t={};let e=0;for(const i of this.getInitializedPlugins())t[i]=e++;return t}isPluginInitializedBefore(t,e){return this.getPluginPosition(t)<this.getPluginPosition(e)}getActions(t){this.allActions.includes(t)||this.allActions.push(t);let e=this.state.get("config.actions."+t);return void 0===e&&(e=[]),e.slice()}isItemHorizontallyInViewport(t,e=void 0,i=void 0){if(!e||!i){const t=this.state.get().config.chart.time;e=t.leftGlobal,i=t.rightGlobal}return t.time.start<=i&&t.time.end>=e}getChildrenLinkedItemsIds(t,e,i=[]){const s=e[t];if(s.linkedWith&&s.linkedWith.length){i.includes(t)||i.push(t);for(const t of s.linkedWith){if(i.includes(t))continue;i.push(t);const s=e[t];s.linkedWith&&s.linkedWith.length&&this.getChildrenLinkedItemsIds(t,e,i)}}return i}collectAllLinkedItems(){const t=[],e=new Map,i=this.getAllItemsAsArray(),s=this.getItemsData();for(const e of i){const i=e.id;void 0===s[i]?t.push(i):s[e.id].linkedWith=e.linkedWith||[]}if(t.length)throw new Error(`Items with id [${t.join(", ")}] does not exists in "$data.chart.items". TIP: For performance reasons, state is mutable, so try not to modify items from the "state.get" method before you copy them (with "gstc.api.clone(items)" for example).`);for(const t of i){const i=t.id;if(e.has(i))continue;const a=this.getChildrenLinkedItemsIds(i,s);s[i].linkedWith.splice(s[i].linkedWith.length,0,...a);const n=Array.from(new Set(s[i].linkedWith));s[i].linkedWith=n.filter((t=>t!==i)),e.set(i,!0);for(const t of n)s[t].linkedWith=n.filter((e=>e!==t)),e.set(t,!0)}}getChildrenDependantItemsIds(t,e,i=[]){if(t.dependant&&t.dependant.length)for(const s of t.dependant){if(i.includes(s))continue;i.push(s);const a=e[s];if(!a)throw new Error(`Dependant item not found [id:'${s}'] found in item [id:'${t.id}']`);a.dependant&&a.dependant.length&&this.getChildrenDependantItemsIds(a,e,i)}return i}calculateItemVerticalPosition(t,e=null,i=null,s=null){if(s||(s=this.getItem(t)),e||(e=this.getItemData(t)),i||(i=this.getRowData(s.rowId)),s.gap&&e||(this.prepareItem(s),e=this.getItemData(t)),!i)return e.position;const a=i.position.top+s.gap.top,n=e.position.rowTop+s.gap.top,o=this.getRowViewTop(i.id);let r=o+e.position.actualRowTop;return o===1/0?r=1/0:-1===o&&(r=-1),e.position.top=a,e.position.actualRowTop=n,e.position.viewTop=r,e.position}setItemDataOutOfView(t,e=this.state.get("$data.chart.time")){t.outOfView||(t.outOfView={left:!1,right:!1,whole:!1});const i=t.time.startDate.valueOf(),s=t.time.endDate.valueOf();return t.outOfView.left=i<e.leftGlobal||i>=e.rightGlobal,t.outOfView.right=s>e.rightGlobal||s<=e.leftGlobal,t.outOfView.whole=s<=e.leftGlobal||i>=e.rightGlobal,t}calculateItemHorizontalPosition(t,e=null,i=null,s=this.state.get("$data.chart.time"),a=null){if(a||(a=this.getItem(t)),e||(e=this.getItemData(t)),i||(i=this.getRowData(a.rowId)),!i)return e.position;const n=e.time.startDate.valueOf()===a.time.start?e.time.startDate:this.time.date(a.time.start),o=e.time.endDate.valueOf()===a.time.end?e.time.endDate:this.time.date(a.time.end),r=this.time.getViewOffsetPxFromDates(n,!1,s),l=this.time.getViewOffsetPxFromDates(o.add(1,"ms"),!1,s);e.position.left=r,e.position.actualLeft=this.time.limitOffsetPxToView(r,s),e.position.right=l,e.position.actualRight=this.time.limitOffsetPxToView(l,s),e.width=l-r;let c=this.time.getViewOffsetPxFromDates(o,!1,s);c===l&&(c-=1/s.timePerPixel),e.timeWidth=c-r,e.actualWidth=e.position.actualRight-e.position.actualLeft;const u=this.state.get("config.chart.item.minWidth");return"number"==typeof u&&e.actualWidth<u&&(e.actualWidth=u),this.setItemDataOutOfView(e,s),e.position}calculateItemPosition(t,e=null,i=null,s=this.state.get("$data.chart.time"),a=null){return e||(e=this.state.get(`$data.chart.items.${t}`)),a||(a=this.state.get(`config.chart.items.${t}`)),i||(i=this.state.get(`$data.list.rows.${a.rowId}`)),this.calculateItemHorizontalPosition(t,e,i,s,a),this.calculateItemVerticalPosition(t,e,i,a),e.position}getItemPosition(t,e,i,s,a){var n,o;return void 0===e&&(e=null),void 0===i&&(i=null),void 0===s&&(s=null===(o=null===(n=this.state.get().$data)||void 0===n?void 0:n.chart)||void 0===o?void 0:o.time),void 0===a&&(a=null),a||(a=this.getItem(t)),e||(e=this.getItemData(t)),0===e.position.left&&0===e.position.right&&this.calculateItemPosition(t,e,i,s,a),e.position}getRow(t){return this.state.get().config.list.rows[t]}getRows(t){if(!t.length)return[];const e=this.getAllRows(),i=[];for(const s of t)e[s]&&i.push(e[s]);return i}getAllRows(){var t,e;return null===(e=null===(t=this.state.get().config)||void 0===t?void 0:t.list)||void 0===e?void 0:e.rows}getVisibleRowsId(){var t,e;return null===(e=null===(t=this.state.get().$data)||void 0===t?void 0:t.list)||void 0===e?void 0:e.visibleRows}getRowsData(){var t,e;return null===(e=null===(t=this.state.get().$data)||void 0===t?void 0:t.list)||void 0===e?void 0:e.rows}setRowsData(t){this.state.update("$data.list.rows",t)}getRowData(t){return this.state.get().$data.list.rows[t]}setRowData(t,e){this.state.update(`$data.list.rows.${t}`,e)}getItem(t){return this.state.get().config.chart.items[t]}getItems(t=[],e=this.getAllItems()){const i=[];for(const s of t)e[s]&&i.push(e[s]);return i}getAllItemsAsArray(){return ze(this).itemsAsArray}getAllItemsDataAsArray(){return ze(this).itemsDataAsArray}getAllItems(){return this.state.get().config.chart.items}getItemData(t){const e=this.state.get();if(e.$data&&e.$data.chart&&e.$data.chart.items)return e.$data.chart.items[t]}getItemsData(){const t=this.state.get();if(t.$data&&t.$data.chart)return t.$data.chart.items}setItemData(t,e){this.state.update(`$data.chart.items.${t}`,(t=>{for(const i in e)t[i]=e[i];return t}))}setItemsData(t){this.state.update("$data.chart.items",t)}prepareDependantItems(t,e){return this.getChildrenDependantItemsIds(t,e).filter((e=>e!==t.id))}prepareItem(t,e=this.state.get().config.chart.item.height,i=this.getItemsData(),s=this.getAllItems(),a=this.getAllRows()){let n=t.id;if(n=String(n),t.id=n,i[t.id]||(i[t.id]={id:t.id,actualHeight:0,outerHeight:0,time:null,position:{left:0,actualLeft:0,right:0,actualRight:0,rowTop:t.rowTop||0,actualRowTop:t.actualRowTop||0,top:0,viewTop:0},outOfView:{left:!1,right:!1,whole:!1},width:-1,actualWidth:-1,timeWidth:-1,detached:!1,linkedWith:[],dependant:this.getChildrenDependantItemsIds(t,s)}),t.time||console.error("There is something wrong with this item.",t),"number"!=typeof t.time.start||"number"!=typeof t.time.end)throw new Error('[gantt-schedule-timeline-calendar] Item "time.start" and "time.end" values should be a number (unix epoch milliseconds).');const o=t.rowId;if("string"!=typeof o)throw new Error('[gantt-schedule-timeline-calendar] Item "rowId" should be a string.');if(!o.startsWith("gstcid-"))throw new Error('[gantt-schedule-timeline-calendar] Item "rowId" should start with "gstcid-".');if(!a[o])throw new Error(`[gantt-schedule-timeline-calendar] Row for item "${t.id}" does not exists ("${o}"). TIP: Try updating the rows first to make sure the rows for the items exist.`);t.time.start=+t.time.start,t.time.end=+t.time.end,t.id=String(t.id);const r=this.state.get().config.chart.item;"number"!=typeof t.height&&(t.height=e),i[t.id].time=function(t,e,i){let s,a;return{get startDate(){return s||(s=i.time.date(t)),s},get endDate(){return a||(a=i.time.date(e)),a},set startDate(e){s=e,t=e.valueOf()},set endDate(t){a=t,e=t.valueOf()}}}(t.time.start,t.time.end,this),i[t.id].actualHeight=t.height,void 0===t.overlap&&(t.overlap=r.overlap),"number"!=typeof t.top&&(t.top=0),t.gap||(t.gap={}),"number"!=typeof t.gap.top&&(t.gap.top=r.gap.top),"number"!=typeof t.gap.bottom&&(t.gap.bottom=r.gap.bottom),"number"!=typeof t.minWidth&&(t.minWidth=r.minWidth),i[t.id].outerHeight=i[t.id].actualHeight+t.gap.top+t.gap.bottom,i[t.id].position.actualRowTop=i[t.id].position.rowTop+t.gap.top}prepareItems(t){const e=this.state.get("config.chart.item.height"),i=this.getItemsData(),s=ze(this);s.itemsAsArray.length=0,s.itemsDataAsArray.length=0;for(const a in t){const n=t[a];this.prepareItem(n,e,i,t),s.itemsAsArray.push(t[a]),s.itemsDataAsArray.push(i[a])}return this.collectAllLinkedItems(),t}sortRowsByChildren(t,e={},i=this.state.get("config.list.rows"),s=this.state.get("$data.list.rows")){for(const a of t){const t=i[a],n=s[a],o=t.parentId&&e[t.parentId]||!t.parentId;!e[a]&&o&&(e[a]=t),n.children.length&&this.sortRowsByChildren(n.children,e,i,s)}return e}getSortableValue(t,e){return"string"==typeof t?e[t]:"function"==typeof t?t({row:e,vido:this.vido}):""}sortRowsByColumn(t,e=!0){const i=this.state.get("config.list.sort.compare");let s=this.getAllRows();const a=ze(this);if(0===a.allRowsIds.length)return s;const n=a.allRowsAsArray;i?n.sort(i(t)):n.sort(((i,s)=>{const a=this.getSortableValue(t.sortable,i),n=this.getSortableValue(t.sortable,s);return"number"==typeof a?e?a-n:n-a:"string"==typeof a?e?a.localeCompare(n):n.localeCompare(a):void 0}));const o=n.map((t=>t.id)),r=this.getRowsData();for(const t of o){const e=r[t];e.children&&e.children.length&&e.children.sort(((t,e)=>o.indexOf(t)-o.indexOf(e)))}s=this.sortRowsByChildren(o),this.state.update("config.list.rows",s,{data:"sortRowsByColumn"});const l=this.getScrollTop();return this.state.get("config.scroll.vertical.byPixels")?this.setScrollTop(l.absolutePosPx):this.setScrollTop(l.dataIndex,l.preciseOffset),s}fillEmptyRowValues(t){const e=this.state.get("config.list.row.height"),i=this.getRowsData();let s=0;for(let a in t){const n=t[a];let o=i[a];if(a=String(a),n.id=a,"string"!=typeof a)throw new Error('[gantt-schedule-timeline-calendar] Row "id" must be a string.');if(!a.startsWith("gstcid-"))throw new Error(`[gantt-schedule-timeline-calendar] Row "id" should start with "gstcid-" (your row id: "${a}").`);if(a.startsWith("gstcid-gstcid-"))throw new Error(`[gantt-schedule-timeline-calendar] Your row "id" is wrapped more than once. It should look like this "gstcid-something" and it looks like this: "${a}".`);i[a]||(o={id:n.id,parentId:n.parentId,parents:[],children:[],allChildren:[],position:{top:0,bottom:0},items:[],itemsOrder:[],itemsTimeSectors:[],actualHeight:0,outerHeight:0,parentsExpanded:!0,inView:!0,overlappingCalculated:!1}),"number"!=typeof n.height&&(n.height=e),o.actualHeight=n.height,"boolean"!=typeof n.expanded&&(n.expanded=!1),o.position.top=s,"object"!=typeof n.gap&&(n.gap={}),"number"!=typeof n.gap.top&&(n.gap.top=0),"number"!=typeof n.gap.bottom&&(n.gap.bottom=0),void 0===n.visible&&(n.visible=!0),o.outerHeight=o.actualHeight+n.gap.top+n.gap.bottom,i[a]=o,s+=o.outerHeight}return t}itemsOnTheSameLevel(t,e){const i=t.position.rowTop+t.outerHeight,s=e.position.rowTop+e.outerHeight;return e.position.rowTop<=t.position.rowTop&&s>t.position.rowTop||(e.position.rowTop>=t.position.rowTop&&e.position.rowTop<i||e.position.rowTop>=t.position.rowTop&&s<i)}itemsTimeOverlaps(t,e){return e.time.start>=t.time.start&&e.time.start<=t.time.end||(e.time.end>=t.time.start&&e.time.end<=t.time.end||(e.time.start>=t.time.start&&e.time.end<=t.time.end||e.time.start<=t.time.start&&e.time.end>=t.time.end))}itemsOverlaps(t,e,i,s){const a=e.time.start&&t.time.start&&e.time.end&&t.time.end;return t.id!==e.id&&a&&this.itemsOnTheSameLevel(i,s)&&this.itemsTimeOverlaps(t,e)}itemOverlapsWithOthers(t,e,i=0){const s=this.getItemsData();for(let a=i,n=e.length;a<n;a++){const i=e[a];if(this.itemsOverlaps(t,i,s[t.id],s[i.id]))return i}return null}makeChildren(t,e={parents:[]}){if("object"!=typeof t)return[];t.children||(t.children=[]),t.allChildren||(t.allChildren=[]),t.parents||(t.parents=[...e.parents]),t.parentId&&"undefined"!==t.parentId&&t.parents.push(t.parentId);for(const e in t)if("id"!==e&&"parentId"!==e&&"children"!==e&&"allChildren"!==e&&"parents"!==e){"undefined"!==e&&(t.children.push(e),t.allChildren.push(e));const i=t[e];if("object"!=typeof i)continue;const s=this.makeChildren(i,t);t.allChildren.splice(t.allChildren.length,0,...s)}return t.allChildren}clearNested(t){for(const e in t)"object"!=typeof t[e]||Array.isArray(t[e])||this.clearNested(t[e]),this.keysToKeep.includes(e)||delete t[e],"parentId"===e&&"undefined"===t[e]&&(t[e]=void 0);return t}fastTree(t,e=null){var i,s;if(!e){e={undefined:{},id:"undefined"};for(const s in t){const a=t[s];e[a.id]||(e[a.id]={parentId:null!==(i=a.parentId)&&void 0!==i?i:"undefined",id:a.id})}}for(const t in e){const i=e[t];e[null!==(s=i.parentId)&&void 0!==s?s:"undefined"][i.id]=i}this.makeChildren(e[void 0]),delete e[void 0],delete e.id,delete e.parents,delete e.children,delete e.allChildren;for(const t in e)e[t]=this.clearNested(e[t]);return e}updateRowItemsAndItemRowMapForItem(t,e,i,s,a){var n,o,r;if(void 0===i&&(i=null===(n=this.state.get().$data)||void 0===n?void 0:n.itemRowMap),void 0===s&&(s=null===(r=null===(o=this.state.get().$data)||void 0===o?void 0:o.list)||void 0===r?void 0:r.rows),void 0===a&&(a=this.state.get().config.chart.items),!s[e])return;s[e].items||(s[e].items=[]);const l=i[t];l!==e&&(l&&s[l]&&(s[l].items=s[l].items.filter((e=>e!==t)).sort(((t,e)=>a[t].time.start-a[e].time.start))),i[t]=e,s[e].items.includes(t)||(s[e].items.push(t),this.timeSectorsItemsAddOrUpdate([a[t]],s[e].itemsTimeSectors)),l&&e!==l&&(s[l]&&(s[l].overlappingCalculated=!1),s[e]&&(s[e].overlappingCalculated=!1),this.timeSectorsDeleteItems([t],s[l].itemsTimeSectors)))}sortRowItemsInAddOrder(t,e){e.itemsOrder=e.items.slice(),e.itemsOrder.sort(((e,i)=>t[e]-t[i]))}sortRowItemsByTime(t){t.items=t.items.sort(((t,e)=>this.getItem(t).time.start-this.getItem(e).time.start))}makeTreeMap(t,e,i=!1){let s=this.state.get("$data.treeMap");if(!i||!s){s=this.fastTree(t);for(const e in t){const i=t[e],a=s[e];for(const t in a)i[t]=a[t]}}const a=this.state.get("$data.reloading")?{}:this.state.get("$data.itemRowMap"),n={};let o=0;const r=this.getAllItems();for(const t of e){const e=r[t];n[e.id]=o,this.updateRowItemsAndItemRowMapForItem(e.id,e.rowId,a),o++}for(const e in t){const i=t[e];this.sortRowItemsInAddOrder(n,i),i.itemsTimeSectors=this.timeSectorsGenerate(this.getItems(i.items))}return this.state.update("$data.itemRowMap",a),i||this.state.update("$data.treeMap",s),t}_updateRowsWithParentsExpandedCache(t){const e=ze(this);e.rowsIdsWithParentsExpanded.length=0,e.rowsIdsWithParentsExpanded.splice(0,0,...t),e.rowsWithParentsExpanded.length=0,e.rowsDataWithParentsExpanded.length=0,e.rowsWithParentsExpandedDataIndexMap.clear();const i=this.state.get("config.list.rows"),s=this.state.get("$data.list.rows");e.rowsWithParentsExpandedAsMap.clear();let a=0;for(const t of e.rowsIdsWithParentsExpanded){const n=i[t];n&&(e.rowsWithParentsExpanded.push(n),e.rowsWithParentsExpandedAsMap.set(t,n),e.rowsDataWithParentsExpanded.push(s[t]),e.rowsWithParentsExpandedDataIndexMap.set(t,a),a++)}}generateRowsWithParentsExpanded(t){const e=[],i=this.getRowsData();t:for(const s in t){if(!i[s]||!i[s].parents)return[];if(this.isRowVisible(s)){for(const e of i[s].parents){const i=t[e];if(!i||!i.expanded)continue t}e.push(s)}}return this._updateRowsWithParentsExpandedCache(e),e}getRowInfoFromTop(t){const e=this.state.get("config.list.rows"),i=this.state.get("$data.list.rows"),s=this.getRowPositionMapNode(t);return{dataIndex:s.dataIndex,row:e[s.id],rowData:i[s.id]}}getRowViewTop(t,e=this.state.get("$data.list.rows"),i=this.state.get("$data.scroll.vertical")){return e[t].position.top-i.absolutePosPx-i.preciseOffset}parentsExpanded(t){return ze(this).rowsWithParentsExpandedAsMap.has(t)}setAllRowsIdsCache(t){const e=ze(this);e.allRowsIds=t;const i=this.state.get("config.list.rows");e.allRowsAsArray.length=0;for(const s of t)e.allRowsAsArray.push(i[s])}resetRowsOverlappingCalculated(t=this.getRowsData()){for(const e in t)t[e].overlappingCalculated=!1}timeSectorItemFits(t,e){return t.time.start>=e.from&&t.time.start<=e.to||t.time.end>=e.from&&t.time.end<=e.to||t.time.start<=e.from&&t.time.end>=e.to}timeSectorsGenerate(t,e=this.state.get().$data.chart.time,i=10){const s=[];if(e.from===e.to)return s;const a=this,n=Math.ceil((e.to-e.from)/i);for(let o=0;o<i;o++){const i={from:e.from+n*o,to:e.from+n*(o+1)-1,items:[],get fromDate(){return a.time.date(this.from)},get toDate(){return a.time.date(this.to)}};for(const e of t)this.timeSectorItemFits(e,i)&&i.items.push(e.id);s.push(i)}return s}timeSectorsItemsAddOrUpdate(t,e){for(const i of e)for(const e of t)if(this.timeSectorItemFits(e,i)){if(i.items.includes(e.id))continue;i.items.push(e.id)}else i.items=i.items.filter((t=>t!==e.id));return e}timeSectorsDeleteItems(t,e){for(const i of e)i.items=i.items.filter((e=>!t.includes(e)));return e}timeSectorsGenerateForRows(t=!1,e=this.getRowsData(),i=this.state.get().$data.chart.time,s=10){if(i.from===i.to)return e;const a=this.state.get().$data.list.rowsIds;for(const n of a){const a=e[n];!t&&a.itemsTimeSectors&&0!==a.itemsTimeSectors.length||(a.itemsTimeSectors=this.timeSectorsGenerate(this.getItems(a.itemsOrder),i,s))}return e}fixOverlappedItemsByTimeSectors(t){if(t.overlappingCalculated)return;if(this.isMutedMethod("fixOverlapped"))return;const e=this.getItemsData(),i=t.itemsTimeSectors=this.timeSectorsGenerate(this.getItems(t.itemsOrder)),s=this.getItems(t.items);for(const t of s){if(t.overlap)continue;const i=e[t.id];i&&(i.position.rowTop=t.top)}for(const t of i){const i=t.items,s=this.getItems(i);let a=0;for(const t of s){if(t.overlap)continue;const i=e[t.id];if(!i)continue;i.position.actualRowTop=i.position.rowTop+t.gap.top;let n=this.itemOverlapsWithOthers(t,s,a);if(n)for(;n;){const e=this.getItemData(n.id),o=s.findIndex((t=>t.id===n.id));o<a?(i.position.rowTop+=e.outerHeight,i.position.actualRowTop=i.position.rowTop+t.gap.top):(e.position.rowTop+=i.outerHeight,e.position.actualRowTop=e.position.rowTop+n.gap.top),n=this.itemOverlapsWithOthers(t,s)}a++}}i.length>0&&(t.overlappingCalculated=!0)}recalculateRowHeight(t,e){if(!e||!t||!t.gap)return 0;let i=0;const s=this.getItemsData();if(!s)return 0;if(!1===t.visible)return e.actualHeight=0,e.outerHeight=0,0;const a=this.getItems(e.itemsOrder);this.fixOverlappedItemsByTimeSectors(e);for(const t of a){const e=s[t.id];i=Math.max(i,e.position.rowTop+e.outerHeight)}return i<t.height&&(i=t.height),e.actualHeight=i,e.outerHeight=e.actualHeight+t.gap.top+t.gap.bottom,e.outerHeight}calculateVisibleRowsHeights(){var t;if(this.isMutedMethod("calculateVisibleRowsHeights"))return!1;const e=this.state.get("$data.list.visibleRows");let i=0;const s=this.getAllRows(),a=this.getRowsData();let n=!1;for(const o of e){const e=(null===(t=a[o])||void 0===t?void 0:t.outerHeight)||0,r=this.recalculateRowHeight(s[o],a[o]);e!==r&&(n=!0),i+=r}return this.state.update("$data.list.visibleRowsHeight",i),n&&this.measureRows(),n}getRealChartHeight(t=!0){const e=this.state.get("$data.scroll.vertical.preciseOffset")||0,i=t?this.state.get("config.innerHeight"):this.state.get("$data.chart.dimensions.heightWithoutScrollBar"),s=this.state.get("config.additionalSpace");return i-s.top-s.bottom+-1*e}getLastRowId(t=ze(this).rowsIdsWithParentsExpanded,e=this.state.get("$data.scroll.vertical")){return t[this.getLastRowIndex(t,e)]}getLastRowIndex(t=ze(this).rowsIdsWithParentsExpanded,e=this.state.get("$data.scroll.vertical")){return t.length-e.lastPageCount}generateRowsPositionsMap(t,e=0,i={id:"",dataIndex:0,keys:[]}){if(0===t.length)return i;if(1===t.length)return i[t[0].position.top]={id:t[0].id,dataIndex:e,keys:[]},i.keys=[t[0].position.top],i;const s=Math.floor(t.length/2),a=e,n=e+s,o=t.slice(1,s),r=t.slice(s+1);i.keys.push(t[0].position.top),i.keys.push(t[s].position.top);const l=i[t[0].position.top]={id:t[0].id,dataIndex:a,keys:[]},c=i[t[s].position.top]={id:t[s].id,dataIndex:n,keys:[]};return this.generateRowsPositionsMap(o,a+1,l),this.generateRowsPositionsMap(r,n+1,c),i}getRowPositionMapNode(t,e=ze(this).rowsPositionsMap){return t>=e.keys[1]?this.getRowPositionMapNode(t,e[e.keys[1]]):t>=e.keys[0]?this.getRowPositionMapNode(t,e[e.keys[0]]):e}measureRows(t=!1){if(this.isMutedMethod("measureRows"))return;const e=this.state.get("$data.scroll.vertical"),i=this.state.get("config.list.rows"),s=this.getRealChartHeight(),a=this.getRowsData(),n=ze(this);if(void 0===e.dataIndex)return[];const o=this.state.get("$data.list.rowsIds");let r=0;if(e.data&&(r=n.rowsWithParentsExpandedDataIndexMap.get(e.data.id),-1===r)){const t=this.getLastRowId(n.rowsIdsWithParentsExpanded,e);r=n.rowsWithParentsExpandedDataIndexMap.get(t)}let l=0,c=0,u=0;for(let h=o.length;u<h;u++){const h=o[u],d=n.rowsWithParentsExpandedAsMap.has(h),m=this.getRowViewTop(h,a,e),g=u>=r&&m<=s,f=a[h];if(!f)return[];t&&(f.overlappingCalculated=!1),this.recalculateRowHeight(i[h],f),f.inView=g,f.parentsExpanded=d,f.position.top=l,c=l+f.outerHeight,f.position.bottom=c,d&&(l+=f.outerHeight)}return n.rowsPositionsMap=this.generateRowsPositionsMap(n.rowsDataWithParentsExpanded),this.state.update("$data.list.rows",a,{data:"measureRows"}),this.state.update("$data.list.rowsHeight",c),this.state.update("$data.scroll.vertical.absoluteSize",c),c}isRowVisible(t,e=this.getAllRows(),i=this.getRowsData()){if(!e[t])return!1;if(!1===e[t].visible)return!1;if(!i[t])return!1;const s=i[t].parents;for(const t of s)if(!e[t]||!1===e[t].visible)return!1;return!0}getVisibleRows(){const t=this.state.get("$data.scroll.vertical"),e=ze(this),i=e.rowsIdsWithParentsExpanded,s=this.getRowsData();if(!t.data)return[];const a=this.getRealChartHeight();if(!a)return[];let n=e.rowsWithParentsExpandedDataIndexMap.get(t.data.id);-1!==n&&void 0!==n||(n=t.dataIndex>e.rowsDataWithParentsExpanded.length-1?i.length-t.lastPageCount:t.dataIndex);const o=[];let r,l;for(let e=n,c=i.length;e<c;e++){const n=i[e];if(s[n]&&(l=s[n],r=this.getRowViewTop(n,s,t),r>=0&&r<=a?(o.push(n),l.parentsExpanded=!0):l.parentsExpanded=!1,r>a))break}return o}normalizeMouseWheelEvent(t){let e=t.deltaX||0,i=t.deltaY||0,s=t.deltaZ||0;const a=t.deltaMode,n=this.state.get("config.list.rowHeight");let o=1;switch(a){case 1:n&&(o=n);break;case 2:o=window.height}return e*=o,i*=o,s*=o,{x:e,y:i,z:s,event:t}}resetHorizontalScroll(t=this.state.get("$data.scroll.horizontal")){t.data=null,t.dataId="",t.dataIndex=0,t.handlePosPx=0,t.absolutePosPx=0,t.preciseOffset=0;const e=this.state.get("$data.chart.time");if(!e.allDates||!e.allDates.length)return;const i=e.allDates[e.level];if(!i||!i.length)return;const s=i[0];return t.data=Object.assign({},s),t.dataId=s.id,t}resetVerticalScroll(t=this.state.get("$data.scroll.vertical")){return t.data=null,t.dataId="",t.dataIndex=0,t.handlePosPx=0,t.absolutePosPx=0,t.preciseOffset=0,t.data=null,t.dataId=null,t}limitHorizontalScrollToView(t=this.state.get("$data.chart.time")){const e=this.state.get("$data.scroll.horizontal");if(!t.allDates||!t.allDates.length)return;const i=t.allDates[t.level].length-e.lastPageCount;e.dataIndex>i&&this.setScrollLeft(i,0,t)}calculateHorizontalScrollPosPxFromDates(t,e=0,i=this.state.get("$data.scroll.horizontal"),s=this.state.get("$data.chart.time")){if(s.calculatedZoomMode)return 0;if(void 0===t&&(t=0),!s.allDates||!s.allDates.length)return;const a=s.allDates[s.level];if(!a||!a.length)return;let n,o=0,r=0;if("number"==typeof t||""===t){""===t&&(t=0),r=t,n=a[r],n||(r=0,n=a[r]);const e=s.allDates[s.level].length-i.lastPageCount;r>e&&e>=0&&(r=e,n=a[r])}else if("string"==typeof t)for(let e=0;e<a.length;e++){const i=a[e];if(i.id===t){n=i,r=e;break}}if(!n&&i.data)for(let t=0;t<a.length;t++){const e=a[t];if(e.leftGlobal>=i.data.leftGlobal){n=e,r=t;break}}if(n||(r>0?(r=a.length-1,n=a[r]):(n=a[0],r=0)),r>a.length-i.lastPageCount&&(r=a.length-i.lastPageCount,n=a[r]),i.data=Object.assign({},n),o=n.leftPx-e,i.dataIndex=r,i.dataId=n.id,o){const t=o/i.absoluteSizeWithoutLastPage*i.maxHandlePosPx;i.handlePosPx=Math.max(t,0)}else i.handlePosPx=0;return i.handlePosPx>i.maxHandlePosPx&&(i.handlePosPx=Math.max(i.maxHandlePosPx,0)),i.preciseOffset=e,i.maxHandlePosPx>0?i.percent=i.handlePosPx/i.maxHandlePosPx*100:i.percent=0,i.absolutePosPx=Math.max(o,0),i}setScrollLeftByPixels(t){const e=this.state.get("$data.chart.time"),i=e.allDates[e.level];return i&&i.length?(t<0&&(t=0),this.state.update("$data.scroll.horizontal",(s=>{t>s.absoluteSizeWithoutLastPage&&(t=s.absoluteSizeWithoutLastPage);let a=0;const n=Math.round(t);let o;for(o of i){if(Math.round(o.rightPx)>n)break;a++}return s.dataIndex=a,s.dataId=o.id,s.preciseOffset=o.leftPx-t,this.calculateHorizontalScrollSizeAndPosFromDates(e.totalViewDurationPx,e,s,!1),t=s.absolutePosPx,s}),{data:"set-scroll-left"}),t):0}setScrollLeft(t,e=0,i=this.state.get("$data.chart.time")){if(i.calculatedZoomMode)return 0;if(this.state.get("config.scroll.horizontal.byPixels")){if("number"!=typeof t)throw new Error("When 'config.scroll.horizontal.byPixels' is true, 'dataIndexOrDateId' must be a number.");return t<0&&(t=0),this.setScrollLeftByPixels(t)}let s=0;const a=i.allDates[i.level];return a&&a.length?(this.state.update("$data.scroll.horizontal",(n=>{let o,r;if("number"==typeof t||""===t)o=t,r=a[o];else if("string"==typeof t)for(let e=0;e<a.length;e++)if(a[e].id===t){r=a[e],o=e;break}return r||(o>0?(o=a.length-1,r=a[o]):(o=0,r=a[0])),n.dataIndex=o,n.dataId=r.id,n.preciseOffset=e,this.calculateHorizontalScrollSizeAndPosFromDates(i.totalViewDurationPx,i,n,!1),s=n.absolutePosPx,n}),{data:"set-scroll-left"}),s):0}scrollToTime(t,e=!0){const i=this.state.get("$data.chart.time");if(i.calculatedZoomMode)return 0;if(!i.allDates)return 0;const s=this.time.findDateAtTime(t,i.allDates[i.level]);if(!s)return console.warn(`[gstc.api.scrollToTime] Time out of bounds (${t} -> ${this.time.date(t).format("YYYY-MM-DD HH:mm:ss")}).`),0;let a,n=0,o=0;if(e){const e=this.getChartWidth(!0)/2;o=(t-s.leftGlobal)/i.timePerPixel,s.rightPx<e&&(o=0);const r=-(e-o);if(a=this.time.getMainDateFromRelativePosition(s,r),!a)return console.warn(`[gstc.api.scrollToTime] Time out of bounds (${t} -> ${this.time.date(t).format("YYYY-MM-DD HH:mm:ss")}).`),0;n=i.allDates[i.level].indexOf(a)}else n=i.allDates[i.level].indexOf(s),o=(t-s.leftGlobal)/i.timePerPixel,a=s;if(-1===n)return 0;return this.state.get("config.scroll.horizontal").byPixels?this.setScrollLeft(a.leftPx+(e?a.width/2:0)):this.setScrollLeft(n,-o)}getScrollLeft(){return this.state.get("$data.scroll.horizontal")}getScrollSize(t){const e=this.state.get("$data.scroll.vertical.visible")?this.state.get("$data.chart.dimensions.widthWithoutScrollBar"):this.state.get("$data.chart.dimensions.width"),i=this.state.get("$data.scroll.horizontal.visible")?this.state.get("$data.chart.dimensions.heightWithoutScrollBar"):this.state.get("$data.chart.dimensions.innerHeight"),s=this.state.get("config.additionalSpace");return"horizontal"===t?e:i-s.top-s.bottom}getLastPageDatesWidth(t,e){let i=0,s=0;if(0===e.length)return{lastPageSize:i,lastPageCount:s};const a=this.state.get("config.scroll.horizontal"),n=a.byPixels||a.precise;for(let a=e.length-1;a>=0;a--){const n=e[a];if(i+=n.width,i>=t){i-=n.width;break}s++}return 0===i&&(i=t),n&&(i=t),{lastPageSize:i,lastPageCount:s}}calculateInitialChartWidth(t=!1){const e=this.state.get("config.initialWidth"),i=this.state.get("config.list.columns.data");let s=0;for(const t in i){s+=i[t].width}let a=e-s;return t&&(a-=this.state.get("config.scroll.horizontal.width")||0),a}getChartWidth(t=!1){let e=t?this.state.get("$data.chart.dimensions.widthWithoutScrollBar"):this.state.get("$data.chart.dimensions.width");return e||(e=this.calculateInitialChartWidth(t)),e}isHorizontalScrollVisible(t){const e=this.state.get("$data.scroll.horizontal");if(null!==e.data)return e.visible;const i=this.state.get("config.scroll.horizontal"),s=this.state.get("$data.chart.time"),a=s.totalViewDurationPx,n=this.getChartWidth(t),o=s.allDates[s.level];if(!o||!o.length)return!1;const{lastPageSize:r,lastPageCount:l}=this.getLastPageDatesWidth(n,o),c=this.getScrollSize("horizontal");let u=r/a*c;u<i.minInnerSize&&(u=i.minInnerSize);return!(l===o.length||c===u)}calculateHorizontalScrollSizeAndPosFromDates(t,e=this.state.get("$data.chart.time"),i=this.state.get("$data.scroll.horizontal"),s=!0){if(!e.allDates.length)return;const a=e.allDates[e.level],n=this.state.get("$data.scroll.vertical.visible"),o=this.getChartWidth(n),r=t,{lastPageSize:l,lastPageCount:c}=this.getLastPageDatesWidth(o,a),u=r-l,h=this.state.get("config.scroll.horizontal"),d=this.getScrollSize("horizontal");let m=l/r*d;m<h.minInnerSize&&(m=h.minInnerSize);const g=i.visible,f=!(c===a.length||d===m),p=Math.max(d?d-m:0,0);return i.absoluteSize=r,i.absoluteSizeWithoutLastPage=Math.max(u,0),i.innerHandleSize=m,i.maxHandlePosPx=p,i.scrollSize=f?d:0,i.lastPageCount=c,i.lastPageSize=l,i.visible=f,this.calculateHorizontalScrollPosPxFromDates(i.dataId,i.preciseOffset,i,e),s&&this.state.update("$data.scroll.horizontal",i),g!==f&&this.calculateVerticalScrollSize(),i}getLastPageRowsHeight(t,e){let i=0,s=0;const a=this.state.get("config.additionalSpace"),n=t-a.top-a.bottom;if(0===e.length)return{lastPageSize:i,lastPageCount:s};const o=this.getRowsData();for(let t=e.length-1;t>=0;t--){const a=o[e[t]];if(i+=a.outerHeight,i>=n){i-=a.outerHeight;break}s++}0===i&&(i=t);const r=this.state.get("config.scroll.vertical");return(r.byPixels||r.precise)&&(i=t),{lastPageSize:i,lastPageCount:s}}calculateVerticalScrollSize(){const t=this.state.get("$data.list.rowsWithParentsExpanded"),e=this.state.get("$data.list.rowsHeight"),i=this.isHorizontalScrollVisible(!0)?this.state.get("$data.chart.dimensions.heightWithoutScrollBar"):this.state.get("$data.chart.dimensions.innerHeight"),{lastPageSize:s,lastPageCount:a}=this.getLastPageRowsHeight(i,t),n=this.state.get("config.scroll.vertical"),o=i;let r=s/e*o;r<n.minInnerSize&&(r=n.minInnerSize);const l=!(a===t.length||o===r),c=o-r;this.state.update("$data.scroll.vertical",(i=>{if(i.absoluteSize=e,i.absoluteSizeWithoutLastPage=e-s,i.innerHandleSize=r,i.maxHandlePosPx=c,i.scrollSize=l?o:0,i.lastPageCount=a,i.lastPageSize=s,i.handlePosPx>c&&(i.handlePosPx=c),i.dataIndex>t.length-a){const e=this.getAllRows(),s=this.getRowsData();i.dataIndex=t.length-a;const n=t[i.dataIndex];e&&n?(i.data=e[n],i.dataId=i.data.id,i.absolutePosPx=s[n].position.top):(i.dataIndex=0,i.dataId="",i.data=null,i.handlePosPx=0,i.absolutePosPx=0),i.preciseOffset=0}else{const e=this.getRowsData(),s=t[i.dataIndex];e[s]&&(i.data=e[s],i.dataId=s,i.absolutePosPx=i.data.position.top-i.preciseOffset)}return i.visible=l,i}))}setScrollTopByPixels(t){const e=ze(this),i=this.state.get("$data.scroll.vertical.absoluteSizeWithoutLastPage");t>i&&(t=i);let{dataIndex:s,row:a,rowData:n}=this.getRowInfoFromTop(t);if(!n)return;const o=n.position.top-t;return this.state.update("$data.scroll.vertical",(i=>{const r=e.rowsWithParentsExpanded.length-i.lastPageCount;if(s>r){if(s=r,a=e.rowsWithParentsExpanded[s],!a&&(s=0,a=e.rowsWithParentsExpanded[s],!a))return t=0,this.resetVerticalScroll(i);n=this.getRowData(a.id)}return i.data=e.rowsWithParentsExpanded[s],i.dataId=i.data.id,i.preciseOffset=o,i.handlePosPx=t?Math.round(t/i.absoluteSizeWithoutLastPage*i.maxHandlePosPx):0,i.handlePosPx>i.maxHandlePosPx&&(i.handlePosPx=i.maxHandlePosPx),i.percent=i.handlePosPx/i.maxHandlePosPx*100,i.dataIndex=s,i.absolutePosPx=t,i}),{data:"set-scroll-top"}),t}setScrollTop(t=0,e=0){if(this.state.get("config.scroll.vertical.byPixels")){if("number"!=typeof t)throw new Error("When 'config.scroll.vertical.byPixels' is true, 'dataIndexOrRowId' must be a number.");return t<0&&(t=0),this.setScrollTopByPixels(t)}const i=ze(this),s=i.rowsIdsWithParentsExpanded;let a,n,o=0;if("string"==typeof t){const e=t;if(a=this.getRow(e),n=this.getRowData(a.id),this.parentsExpanded(e))o=s.indexOf(e);else for(const t of n.parents)this.parentsExpanded(t)&&(o=s.indexOf(t));if(!a)throw new Error(`Row with id: '${e}' not found. Maybe use GSTC.api.GSTCID(id) or check if row exists.`)}else{if("number"!=typeof t)throw new Error("[gstc.api.setScrollTop] Wrong dataIndex value. Must be `string` (for `rowId`) or `number` (for array index) only.");if(o=t,i.rowsWithParentsExpanded[o]||0===o||(o=0),!i.rowsWithParentsExpanded[o])return;a=i.rowsWithParentsExpanded[o],n=this.getRowData(a.id)}let r=0;return this.state.update("$data.scroll.vertical",(t=>{const s=i.rowsWithParentsExpanded.length-t.lastPageCount;if(o>s){if(o=s,a=i.rowsWithParentsExpanded[o],!a&&(o=0,a=i.rowsWithParentsExpanded[o],!a))return r=0,this.resetVerticalScroll(t);n=this.getRowData(a.id)}return r=n.position.top-e,t.data=i.rowsWithParentsExpanded[o],t.dataId=t.data.id,t.preciseOffset=e,t.handlePosPx=r?Math.round(r/t.absoluteSizeWithoutLastPage*t.maxHandlePosPx):0,t.handlePosPx>t.maxHandlePosPx&&(t.handlePosPx=t.maxHandlePosPx),t.percent=t.handlePosPx/t.maxHandlePosPx*100,t.dataIndex=o,t.absolutePosPx=r,t}),{data:"set-scroll-top"}),r}getScrollTop(){return this.state.get("$data.scroll.vertical")}getCurrentCalendarLevels(){return this.state.get("$data.chart.time.levels")}getGridCells(t=void 0){const e=this.state.get("$data.chart.grid.cells");if(!e)return[];if(void 0!==t){const i=t.length,s=new Array(i);for(let a=0;a<i;a++)s[a]=e[t[a]];return s}return Object.values(e)}getAllGridCells(){return this.state.get("$data.chart.grid.cells")}getGridRows(t=void 0){const e=this.state.get("$data.chart.grid.rows");return void 0!==t?e?Object.values(e).filter((e=>t.includes(e.row.id))):[]:e?Object.values(e):[]}getAllGridRows(){return this.state.get("$data.chart.grid.rows")}getGridCell(t){return this.state.get(`$data.chart.grid.cells.${t}`)}getGridRow(t){return this.state.get(`$data.chart.grid.rows.${t}`)}muteMethod(t){this.mutedMethods.add(t)}unmuteMethod(t){this.mutedMethods.delete(t)}isMutedMethod(t){return this.mutedMethods.has(t)}getSVGIconSrc(t){return"string"==typeof this.iconsCache[t]||(this.iconsCache[t]="data:image/svg+xml;base64,"+btoa(t)),this.iconsCache[t]}destroy(){for(const t of this.unsubscribes)t();this.unsubscribes=[],this.debug&&delete window.state}}function Ie(t,e,i,s){return new(i||(i=Promise))((function(a,n){function o(t){try{l(s.next(t))}catch(t){n(t)}}function r(t){try{l(s.throw(t))}catch(t){n(t)}}function l(t){var e;t.done?a(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,r)}l((s=s.apply(t,e||[])).next())}))}
/**
     * ScrollBar component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */
function Te(t,e){const{onDestroy:i,state:s,cache:a,api:n,html:o,StyleMap:r,Actions:l,update:c}=t,u="scroll-bar";let h,d,m="",g="";i(s.subscribe("config.classNames",(()=>{h=n.getClass(u),d=n.getClass(u+"-inner")})));const f="horizontal"===e.type?"height":"width",p="height"===f?"width":"height",b="horizontal"===e.type?"left":"top",v=new r({}),y=new r({}),w={maxPosPx:0,innerHandleSize:0,scrollSize:0,dataId:""};i(s.subscribeAll("horizontal"===e.type?[`config.scroll.${e.type}`,`$data.scroll.${e.type}`]:[`config.scroll.${e.type}`,`$data.scroll.${e.type}`,"$data.chart.dimensions.heightWithoutScrollBar","$data.list.rowsWithParentsExpanded","$data.list.rowsHeight","config.additionalSpace"],(function(t,i){const a=s.get(`config.scroll.${e.type}`),o=s.get(`$data.scroll.${e.type}`),r=n.getScrollSize(e.type),l=o.innerHandleSize,u=o.maxHandlePosPx,h=o.dataId,d=s.get("config.additionalSpace"),m=s.get("$data.chart.time");if(!m.allDates||!m.allDates.length||!m.allDates[m.level])return;if(o.visible?v.style.display="flex":v.style.display="none",v.style[f]=a.width+"px",v.style[p]=r+"px","vertical"===e.type&&(v.style.top=s.get("config.headerHeight")+d.top+"px"),!o.lastPageSize||!o.absoluteSize||!r)return;y.style[f]="100%",y.style[p]=l+"px";!("set-scroll-top"===i.options.data||"set-scroll-left"===i.options.data)&&function(t,e,i,s){const a=w.maxPosPx!==t||w.innerHandleSize!==e||w.scrollSize!==i||w.dataId!==s;return a&&(w.maxPosPx=t,w.innerHandleSize=e,w.scrollSize=i,w.dataId=s),a}(u,l,r,h)&&("horizontal"===e.type?a.byPixels?n.setScrollLeft(o.absolutePosPx):n.setScrollLeft(o.dataIndex,o.preciseOffset):a.byPixels?n.setScrollTop(o.absolutePosPx):n.setScrollTop(o.dataIndex,o.preciseOffset)),c()}),{group:!0,bulkValue:!1}));const k=n.getActions(u);k.push(class extends Kt{constructor(t){super();const i=`$data.elements.scroll-bar--${e.type}`;s.get(i)||s.update(i,t,{only:null})}update(){}destroy(){}});const x={api:n,state:s,props:e,componentName:u},D=l.create(k,x),$=[class extends Kt{constructor(t){super(),this.moving=!1,this.initialPointerPos=0,this.initialHandlePos=0,this.currentPos=0,this.currentPointerPos=0,this.lastDataIndex=0,this.lastOffset=0,this.dataIndex=0,this.previousRowId="",s.update(`$data.elements.scroll-bar-inner--${e.type}`,t,{only:null}),this.bodyClassName=s.get("config.scroll.bodyClassName"),this.pointerDown=this.pointerDown.bind(this),this.pointerUp=this.pointerUp.bind(this);const i=this.pointerMove.bind(this);this.pointerMove=i,this.unsubscribe=s.subscribe(`$data.scroll.${e.type}`,this.dataChanged.bind(this)),this.destroy=this.destroy.bind(this),t.addEventListener("pointerdown",this.pointerDown),document.addEventListener("pointermove",this.pointerMove),document.addEventListener("pointerup",this.pointerUp)}destroy(t){this.unsubscribe(),t.removeEventListener("pointerdown",this.pointerDown),document.removeEventListener("pointermove",this.pointerMove),document.removeEventListener("pointerup",this.pointerUp)}dataChanged(){const t=s.get(`$data.scroll.${e.type}`),i=s.get("$data.chart.time");if(!i.allDates.length)return;const a=i.allDates[i.level],n=t.dataIndex;if(this.lastDataIndex=n,"horizontal"===e.type&&a&&a.length)this.currentPos=t.handlePosPx,y.style[b]=this.currentPos+"px",c();else if("vertical"===e.type){if(!s.get("$data.list.rowsWithParentsExpanded").length)return;this.currentPos=t.handlePosPx,y.style[b]=this.currentPos+"px",c()}}limitPosition(t){return Math.max(Math.min(t,s.get(`$data.scroll.${e.type}.maxHandlePosPx`)),0)}pointerDown(t){t.stopPropagation(),t.preventDefault(),n.muteMethod("calculateRowsHeight"),document.body.classList.add(this.bodyClassName),requestAnimationFrame((()=>{this.moving=!0,this.initialPointerPos="horizontal"===e.type?t.pageX:t.pageY,this.initialHandlePos=s.get(`$data.scroll.${e.type}.handlePosPx`),g=" "+n.getClass(u)+"-inner--active",m=" "+n.getClass(u)+"--active",c()}))}pointerUp(t){this.moving&&(n.unmuteMethod("calculateRowsHeight"),t.preventDefault(),t.stopPropagation(),document.body.classList.remove(this.bodyClassName)),this.moving=!1,g="",m="",c()}pointerMoveRead(t){this.currentPointerPos="horizontal"===e.type?t.pageX:t.pageY}pointerMoveWrite(){const t=s.get(`config.scroll.${e.type}`),i=s.get(`$data.scroll.${e.type}`),a=this.currentPointerPos-this.initialPointerPos;this.currentPos=this.limitPosition(this.initialHandlePos+a);const o=s.get("$data.chart.time");if(!o.allDates.length)return;const r=o.allDates[o.level],l=this.currentPos/i.maxHandlePosPx*i.absoluteSizeWithoutLastPage,c=Math.round(l);if("horizontal"===e.type){let e,i=0,s=0,a=0;for(let t=r.length;i<t&&(e=r[i],a=Math.round(e.rightPx),!(a>c));i++);t.precise&&a!==c&&(s=e.leftPx-l),i||(i=0),e||(e=r[0]),this.dataIndex=i,this.lastDate=r[i],t.byPixels?n.setScrollLeft(l):n.setScrollLeft(e.id,s),this.lastDataIndex=i,this.lastOffset=s}else{const{dataIndex:e,row:i,rowData:s}=n.getRowInfoFromTop(l);let a=0;t.precise&&s.position.top!==l&&(a=s.position.top-l),this.dataIndex=e,this.previousRowId=i.id,t.byPixels?n.setScrollTop(l):n.setScrollTop(e,a),this.lastDataIndex=e,this.lastOffset=a}}pointerMove(t){this.moving&&(t.stopPropagation(),t.preventDefault(),requestAnimationFrame((()=>{this.pointerMoveRead(t)})),requestAnimationFrame((()=>{this.pointerMoveWrite()})))}}],S=l.create($,x),P=n.generateSlots(u,t,e);function z({classNameOuter:t,classNameOuterActive:e,classNameInner:i,classNameInnerActive:s,styleMapInner:a,styleMapOuter:n,innerActions:o,outerActions:r,slots:l,cache:c,html:u,vido:h,props:d}){return c(!d||!d.type?null:l.html("outer",u`
              <div
                data-actions=${r()}
                class=${t+" "+t+"--"+d.type+e}
                style=${n.directive()}
              >
                ${l.html("inner",u`
                    <div
                      data-actions=${o()}
                      class=${i+" "+i+"--"+d.type+s}
                      style=${a.directive()}
                    >
                      ${l.html("content")}
                    </div>
                  `)}
              </div>
            `))}let C=z;return i(s.subscribe(`config.templates.${u}`,(t=>{C=null!=t?t:z,c()}))),()=>C({innerActions:S,outerActions:D,classNameOuter:h,classNameOuterActive:m,classNameInner:d,classNameInnerActive:g,cache:a,styleMapInner:y,styleMapOuter:v,slots:P,html:o,vido:t,props:e})}
/**
     * List component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Ae(t,e={}){const{api:i,state:s,onDestroy:a,Actions:n,update:o,reuseComponents:r,html:l,StyleMap:c,cache:u}=t,h="list",d=i.getActions(h);let m,g;const f=Object.assign(Object.assign({},e),{list:m,percent:g,api:i,state:s,componentName:h});let p;const b=s.subscribe("config.components.ListColumn",(t=>p=t));!function(){const t=s.get("config.list.expander.icons"),e={};for(const s in t){const a=t[s];e[s]=i.getSVGIconSrc(a)}s.update("$data.list.expander.icons",e)}(),function(){const t={open:"",close:""},e=s.get("config.list.toggle.icons");for(const s in e){const a=e[s];t[s]=i.getSVGIconSrc(a)}s.update("$data.list.toggle.icons",t)}();const v=i.getClass(h),y=i.generateSlots(h,t,e);a(s.subscribe("config.list",(function(){m=s.get("config.list"),g=m.columns.percent,f.list=m,f.percent=g,o()})));const w=[];a(s.subscribe("config.list.columns.data",(function(t){const e=Object.values(t).filter((t=>!t.hidden)).sort(((t,e)=>"number"==typeof t.position&&"number"==typeof e.position?t.position-e.position:0));r(w,e,(t=>({column:t})),p,!0),o()})));const k=new c({height:"","--expander-padding-width":"","--expander-size":""});let x;function D(t){x||(x=t.offsetWidth,0===g&&(x=0),s.update("$data.list.width",x))}a(s.subscribeAll(["$data.height","config.list.expander"],(()=>{const t=s.get("config.list.expander");k.style.height=s.get("$data.height")+"px",k.style["--expander-padding-width"]=t.padding+"px",k.style["--expander-size"]=t.size+"px",o()}),{group:!0})),a((()=>{w.forEach((t=>t.destroy())),b()}));d.push(class{constructor(t,e){e.state.update("$data.elements.list",t),D(t)}update(t){return D(t)}});const $=n.create(d,f);function S({className:t,styleMap:e,list:i,listColumns:s,actions:a,slots:n,html:o,cache:r,vido:l,props:c}){return n.html("outer",r(i.columns.percent>0?o`
              <div class=${t} data-actions=${a()} style=${e.directive()}>
                ${n.html("content",s.map((t=>t.html())))}
              </div>
            `:""))}let P=S;return a(s.subscribe(`config.templates.${h}`,(t=>{P=null!=t?t:S,o()}))),()=>P({list:m,className:v,actions:$,styleMap:k,listColumns:w,slots:y,cache:u,html:l,vido:t,props:e})}
/**
     * ListColumn component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */"function"==typeof SuppressedError&&SuppressedError;class Me{constructor(t,e){let i=!1,s=e.state.get("$data.elements.list-columns");void 0===s&&(s=[],i=!0),s.includes(t)||(s.push(t),i=!0),i&&e.state.update("$data.elements.list-columns",s,{only:null})}destroy(t,e){e.state.update("$data.elements.list-columns",(e=>e.filter((e=>e!==t))),{only:null})}}function _e(t,e){const{api:i,state:s,onDestroy:a,onChange:n,cache:o,Actions:r,update:l,createComponent:c,reuseComponents:u,html:h,StyleMap:d}=t,m=[];let g,f;m.push(s.subscribe("config.components.ListColumnRow",(t=>g=t))),m.push(s.subscribe("config.components.ListColumnHeader",(t=>f=t)));const p=Object.assign(Object.assign({},e),{api:i,state:s,componentName:"list-column"}),b={column:e.column,state:s,api:i,componentName:"list-column-headers"},v={api:i,state:s,componentName:"list-column-rows"},y="list-column",w=y+"-rows",k=y+"-rows-offset",x=i.getActions(y),D=i.getActions(w),$=i.getClass(y,e.column.id),S=i.getClass(k,e.column.id),P=i.getClass(w,e.column.id);let z,C=i.getId(y,e&&e.column?e.column.id:"");const I=new d({width:"","--width":""}),T=new d({height:""}),A=new d({"margin-top":"0px"});let M=s.get("config.additionalSpace");const _=i.generateSlots(y,t,e);let j;function R(){if(!e||!e.column)return;const t=s.get("config.list");if(!t.columns.data[e.column.id])return;z=t.columns.data[e.column.id].width*t.columns.percent*.01,j=z;const a=Math.round(i.getRealChartHeight());I.style.width=j+"px",I.style["--width"]=j+"px",A.style.height=a+"px",T.style.top=s.get("config.headerHeight")+M.top+"px"}a(s.subscribeAll(["config.list.columns.percent","config.list.columns.resizer.width","$data.chart.dimensions.width","$data.chart.dimensions.heightWithoutScrollBar","$data.list.width","$data.list.visibleRowsHeight","config.additionalSpace.top"],R,{group:!0}));const W=c(f,e);a(W.destroy);const O=[],L={};function E(){var t;if(!e||!e.column)return;s.mute(E);const a=s.get("$data.list.visibleRows")||[],n=i.getRows(a),o=i.getRowsData();for(const i of n){const s=L[i.id]=null!==(t=L[i.id])&&void 0!==t?t:{};s.column=e.column,s.row=i,s.rowData=o[i.id],s.width=j}for(const t in L)a.includes(t)||delete L[t];u(O,n,(t=>t&&L[t.id]),g,!0),_.change(e),s.unmute(E)}n((t=>{if((e=t)&&e.column&&e.column.id){C=i.getId(y,e&&e.column?e.column.id:"");for(const t in e)p[t]=e[t];R(),W.change(e),E()}})),a(s.subscribeAll(["$data.list.visibleRows","$data.list.visibleRowsHeight","$data.list.rows","config.list.rows","config.chart.items.*.height","config.chart.items.*.rowId","config.chart.items.*.time"],E,{group:!0,bulkValue:!1})),a(s.subscribe("$data.scroll.vertical.preciseOffset",(t=>{A.style.transform=`translateY(${Math.round(t)||0}px)`,l()}))),a(s.subscribe("config.additionalSpace",(t=>{M=t}))),a((()=>{O.forEach((t=>t.destroy())),m.forEach((t=>t()))})),x.push(Me);const N=r.create(x,b),V=r.create(D,v);function B({className:t,classNameOffset:e,classNameContainer:i,containerStyleMap:s,offsetStyleMap:a,widthStyleMap:n,visibleRows:o,rowActions:r,elId:l,headerActions:c,ListColumnHeader:u,html:h,cache:d,vido:m,props:g}){return d(g&&g.column?_.html("outer",h`
              <div
                class=${t}
                data-gstcid=${g.column.id}
                data-actions=${c()}
                style=${n.directive()}
              >
                ${_.html("inner",h` ${u.html()}${_.html("container-outer",h`
        <div
          class=${i}
          data-gstcid=${g.column.id}
          data-actions=${r()}
          style=${s.directive()}
        >
          ${_.html("container-inner",h`
        <div class=${e} data-gstcid=${g.column.id} style=${a.directive()}>
          ${_.html("content",o.map((t=>t.html())))}
        </div>
      `)}
        </div>
      `)} `)}
              </div>
            `):null)}let G=B;return a(s.subscribe(`config.templates.${y}`,(t=>{G=null!=t?t:B,l()}))),()=>G({classNameOffset:S,offsetStyleMap:A,visibleRows:O,classNameContainer:P,containerStyleMap:T,rowActions:V,className:$,elId:C,headerActions:N,widthStyleMap:I,ListColumnHeader:W,html:h,cache:o,vido:t,props:e})}
/**
     * ListColumnHeader component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function je(t,e){const{api:i,state:s,onDestroy:a,cache:n,onChange:o,Actions:r,update:l,createComponent:c,html:u,StyleMap:h}=t,d="list-column-header",m=Object.assign(Object.assign({},e),{api:i,state:s,componentName:d}),g=i.getActions(d),f=[];let p;f.push(s.subscribe("config.components.ListColumnHeaderResizer",(t=>p=t)));const b=c(p,e);let v;f.push(s.subscribe("config.components.ListColumnRowExpander",(t=>v=t)));const y=c(v,e);a((()=>{b.destroy(),y.destroy(),f.forEach((t=>t()))}));const w=i.generateSlots(d,t,e),k=i.getClass(d),x=i.getClass(d+"-content");let D=i.getId(d,e.column.id);o((t=>{e=t;for(const t in e)m[t]=e[t];D=i.getId(d,e.column.id),b.change(e),y.change(e),w.change(t)}));const $=new h({height:"","--height":"","--paddings-count":""});a(s.subscribe("config.headerHeight",(()=>{const t=s.get("config");$.style.height=t.headerHeight+"px",$.style["--height"]=t.headerHeight+"px",$.style["--paddings-count"]="1",l()})));const S=r.create(g,m);function P({className:t,contentClass:e,styleMap:i,elId:s,cache:a,ListColumnRowExpander:n,ListColumnHeaderResizer:o,actions:r,slots:l,html:c,vido:u,props:h}){return a(!h||!h.column?null:l.html("outer",c`
              <div
                class=${t}
                data-gstcid=${h.column.id}
                style=${i.directive()}
                data-actions=${r()}
              >
                ${l.html("content",h.column.expander?c`
        <div class=${e}>
          ${n.html(h.column)}${o.html(h.column)}
        </div>
      `:c` <div class=${e}>${o.html(h.column)}</div> `)}
              </div>
            `))}let z=P;return a(s.subscribe(`config.templates.${d}`,(t=>{z=null!=t?t:P,l()}))),()=>z({className:k,contentClass:x,cache:n,styleMap:$,elId:D,ListColumnRowExpander:y,ListColumnHeaderResizer:b,actions:S,slots:w,html:u,vido:t,props:e})}
/**
     * ListColumnHeaderResizer component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Re(t,e){const{api:i,state:s,onDestroy:a,cache:n,update:o,html:r,Actions:l,onChange:c,PointerAction:u,StyleMap:h,unsafeHTML:d}=t,m="list-column-header-resizer",g=i.getActions(m),f=i.getActions(m+"-dots"),p={up:"",down:""};let b,v,y,w;a(s.subscribe("config.list.sort.icons",(t=>{p.up=i.getSVGIconSrc(t.up),p.down=i.getSVGIconSrc(t.down)}))),b=i.getClass(m),v=i.getClass(m+"-container"),y=i.getClass(m+"-dots"),w=i.getClass(m+"-dots-dot");const k=i.getClass(m+"-sort-icon");let x;const D=new h({});let $=!1;const S=i.generateSlots(m,t,e);let P=!0,z=0;const C={componentName:m,column:e.column,api:i,state:s,pointerOptions:{axis:"x",onMove:function({movementX:t,event:i}){if(!P)return;t&&(i.preventDefault(),i.stopPropagation());let a=s.get("config.list.columns.minWidth");"number"==typeof e.column.minWidth&&(a=e.column.minWidth),z+=t,z<a&&(z=a),$&&s.update(`config.list.columns.data.${e.column.id}.width`,z)}}};function I(){if(!e||!e.column||!e.column.id)return;C.column=e.column,b=i.getClass(m,e.column.id),v=i.getClass(m+"-container",e.column.id),y=i.getClass(m+"-dots",e.column.id),w=i.getClass(m+"-dots-dot",e.column.id),P=!("resizer"in e.column)||e.column.resizer;const t=s.get("config.list");x=z=e.column.width*t.columns.percent*.01,D.style["--width"]=t.columns.resizer.width+"px",$=t.columns.resizer.inRealTime,s.update("$data.list.width",x),S.change(e),o()}c((t=>{e=t,I()})),a(s.subscribeAll(["config.list.columns.percent","config.list.columns.resizer.width","config.list.columns.resizer.inRealTime"],I,{group:!0}));let T=[1,2,3,4,5,6,7,8];a(s.subscribe("config.list.columns.resizer.dots",(t=>{T=[];for(let e=0;e<t;e++)T.push(e);o()})));let A=!0;function M(){e.column.sortable&&(A=!A,s.update("config.list.sort",(t=>(t.activeColumnId=e.column.id,t.asc=A,t))))}let _=!1;a(s.subscribe("config.list.sort",(t=>{if(t.activeColumnId===e.column.id)return A=t.asc,void(_=!0);_=!1}))),f.push(u);const j=l.create(g,C),R=l.create(f,C);function W({className:t,containerClass:e,iconClass:i,dotsClass:s,dotClass:a,dotsStyleMap:n,dots:o,onLabelClick:r,dotsActions:l,resizer:c,icons:u,sortActive:h,cache:d,asc:m,actions:g,slots:f,html:p,unsafeHTML:b,vido:v,props:y}){const w=!y||!y.column;function k(){return y.column.sortable&&h?m?p` <img src="${u.down}" class=${i} /> `:p` <img src="${u.up}" class=${i} /> `:null}function x(){return w?null:"function"==typeof y.column.header.content?y.column.header.content({column:y.column,vido:v}):y.column.header.content}return d(w?null:f.html("outer",p`
              <div class=${t} data-gstcid=${y.column.id} data-actions=${g()}>
                ${f.html("container-outer",c?w?null:p`
        <div class=${e} @click=${r}>
          ${f.html("content",y.column.header.html?b(y.column.header.html):x())}
          ${k()}
        </div>
        <div class=${s} style=${n.directive()} data-actions=${l()}>
          ${o.map((()=>p` <div class=${a} /> `))}
        </div>
      `:w?null:p`
        <div class=${e} @click=${r}>
          ${f.html("content",y.column.header.html?b(y.column.header.html):x())}
          ${k()}
        </div>
      `)}
              </div>
            `))}let O=W;return a(s.subscribe(`config.templates.${m}`,(t=>{O=null!=t?t:W,o()}))),()=>O({className:b,containerClass:v,onLabelClick:M,iconClass:k,cache:n,dotsClass:y,dotsStyleMap:D,dotsActions:R,dots:T,dotClass:w,resizer:P,icons:p,sortActive:_,asc:A,actions:j,slots:S,html:r,unsafeHTML:d,vido:t,props:e})}
/**
     * ListColumnRow component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class We{constructor(t,e){let i=e.state.get("$data.elements.list-column-rows"),s=!1;void 0===i&&(s=!0,i=[]),i.includes(t)||(i.push(t),s=!0),s&&e.state.update("$data.elements.list-column-rows",i,{only:null})}destroy(t,e){e.state.update("$data.elements.list-column-rows",(e=>e.filter((e=>e!==t))),{only:null})}}function Oe(t,e){const{api:i,state:s,onDestroy:a,cache:n,Actions:o,update:r,html:l,createComponent:c,onChange:u,StyleMap:h,unsafeHTML:d}=t,m="list-column-row",g=Object.assign(Object.assign({},e),{api:i,state:s,componentName:m});let f,p=!1;a(s.subscribe("config.components.ListColumnRowExpander",(t=>f=t)));const b=new h(e.column.expander?{height:"",top:"","--height":"","--expander-padding-width":"","--expander-size":""}:{height:"",top:"","--height":""}),v=c(f,{row:e.row}),y=i.getClass(m),w=i.getClass(m+"-content");let k=i.getClass(m);const x=i.generateSlots(m,t,e);let D;u((function(a,n){var o;if(n.leave||!a||void 0===a.row||void 0===a.column)return p=!0,x.change(a,n),void r();p=!1,e=a;for(const t in e)g[t]=e[t];if(!e.column||!e.row||!e.rowData)return p=!0,x.change(a,n),void r();if(void 0===e.column||void 0===e.row)return;D=e.column.isHTML?void 0===e.row?null:"function"==typeof e.column.data?d(e.column.data({row:e.row,vido:t})):"function"==typeof e.row[e.column.data]?d(e.row[e.column.data]({row:e.row,vido:t})):"string"==typeof e.row[e.column.data]?d(e.row[e.column.data]):null:void 0===e.row?null:"function"==typeof e.column.data?e.column.data({row:e.row,vido:t}):"function"==typeof e.row[e.column.data]?e.row[e.column.data]({row:e.row,vido:t}):e.row[e.column.data];const l=s.get("config.list.expander");for(const t in b.style)delete b.style[t];b.style.height=e.rowData.outerHeight+"px",b.style["--height"]=e.rowData.outerHeight+"px",e.column.expander&&(b.style["--expander-padding-width"]=l.padding*(e.rowData.parents.length+1)+"px");const c=s.get("config.list.rows");for(const t of e.rowData.parents){const e=c[t];if("object"==typeof e.style&&"Object"===e.style.constructor.name&&"object"==typeof e.style.children){const t=e.style.children;for(const e in t)b.style[e]=t[e]}}if(null===(o=null==e?void 0:e.row)||void 0===o?void 0:o.style)for(const t in e.row.style)b.style[t]=e.row.style[t];if(e.row.classNames){if(Array.isArray(e.row.classNames)&&e.row.classNames.length)k=i.getClass(m)+" "+e.row.classNames.join(" ");else if("function"==typeof e.row.classNames){const s=e.row.classNames({row:e.row,vido:t});Array.isArray(s)&&s.length&&(k=i.getClass(m)+" "+s.join(" "))}}else k=y;v&&v.change(e),x.change(e,n),r()})),a((()=>{v&&v.destroy()}));const $=i.getActions(m);$.includes(We)||$.push(We);const S=o.create($,g);function P({classNameCurrent:t,classNameContent:e,styleMap:i,cache:s,shouldDetach:a,content:n,ListColumnRowExpander:o,slots:r,actions:l,html:c,vido:u,props:h}){return s(a||!h||!h.column||!h.row?null:r.html("outer",c`
              <div
                class=${t}
                data-gstcid=${h.row.id}
                style=${i.directive()}
                data-actions=${l()}
              >
                ${r.html("inner",c`
                    ${h.column.expander?o.html():null}
                    <div class=${e}>${r.html("content",n)}</div>
                  `)}
              </div>
            `))}let z=P;return a(s.subscribe(`config.templates.${m}`,(t=>{z=null!=t?t:P,r()}))),()=>z({classNameCurrent:k,cache:n,shouldDetach:p,styleMap:b,ListColumnRowExpander:v,classNameContent:w,slots:x,actions:S,content:D,html:l,vido:t,props:e})}
/**
     * ListColumnRowExpander component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Le(t,e){const{api:i,state:s,onDestroy:a,Actions:n,html:o,cache:r,createComponent:l,onChange:c,update:u}=t,h="list-column-row-expander",d=i.getActions(h),m=Object.assign(Object.assign({},e),{api:i,state:s,componentName:h}),g=i.getClass(h);let f;const p=s.subscribe("config.components.ListColumnRowExpanderToggle",(t=>f=t)),b=l(f,e);a((()=>{b.destroy(),p()}));const v=i.generateSlots(h,t,e);e.row&&c((function(t){if((e=t)&&e.row&&e.rowData){for(const t in e)m[t]=e[t];b.change(e),v.change(t),u()}}));const y=n.create(d,m);function w({className:t,ListColumnRowExpanderToggle:e,slots:i,actions:s,html:a,cache:n,vido:o,props:r}){return n(!r?null:i.html("outer",a`
              <div class=${t} data-gstcid=${r.row?r.row.id:""} data-action=${s()}>
                ${i.html("content",e.html())}
              </div>
            `))}let k=w;return a(s.subscribe(`config.templates.${h}`,(t=>{k=null!=t?t:w,u()}))),()=>k({className:g,ListColumnRowExpanderToggle:b,slots:v,actions:y,html:o,cache:r,vido:t,props:e})}
/**
     * ListColumnRowExpanderToggle component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Ee(t,e){const{api:i,state:s,cache:a,onDestroy:n,Actions:o,update:r,html:l,onChange:c}=t,u="list-column-row-expander-toggle",h=Object.assign(Object.assign({},e),{api:i,state:s,componentName:u}),d=i.getActions(u),m=i.getClass(u),g=i.getClass(u+"-child"),f=i.getClass(u+"-open"),p=i.getClass(u+"-closed");let b,v,y,w=!1;n(s.subscribe("$data.list.expander.icons",(t=>{t&&(b=t.child,v=t.open,y=t.closed),r()})));const k=i.generateSlots(u,t,e);e.row?(c((function(t){if(e&&e.row){e=t;for(const t in e)h[t]=e[t];w=e.row.expanded,k.change(t),r()}})),n((function(){}))):n(s.subscribe("config.list.rows.*.expanded",(function(t){for(const e of t)if(e.value){w=!0;break}r()}),{bulk:!0}));const x=o.create(d,h);function D(){w=!w,e.row?s.update(`config.list.rows.${e.row.id}.expanded`,w,{data:{name:"expanded",rowId:e.row.id,expanded:w}}):s.update("config.list.rows",(t=>{for(const e in t)t[e].expanded=w;return t}),{only:["*.expanded"],data:{name:"expanded"}})}function $({className:t,classNameChild:e,classNameOpen:i,classNameClosed:s,expanded:a,iconChild:n,iconOpen:o,iconClosed:r,toggle:l,cache:c,slots:u,actions:h,html:d,vido:m,props:g}){return c(!g?null:u.html("outer",d`
              <div
                class=${t}
                data-gstcid=${g.row?g.row.id:""}
                data-action=${h()}
                @click=${l}
              >
                ${u.html("content",(()=>{var t,l;return n?0===(null===(l=null===(t=g.rowData)||void 0===t?void 0:t.children)||void 0===l?void 0:l.length)?d` <img width="16" height="16" class=${e} src=${n} /> `:a?d` <img width="16" height="16" class=${i} src=${o} /> `:d` <img width="16" height="16" class=${s} src=${r} /> `:""})())}
              </div>
            `))}let S=$;return n(s.subscribe(`config.templates.${u}`,(t=>{S=null!=t?t:$,r()}))),()=>S({className:m,classNameChild:g,iconChild:b,expanded:w,cache:a,classNameOpen:f,classNameClosed:p,iconOpen:v,iconClosed:y,toggle:D,slots:k,actions:x,html:l,vido:t,props:e})}
/**
     * ListToggle component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Ne(t,e={}){const{html:i,onDestroy:s,api:a,state:n,update:o,StyleMap:r,Actions:l,onChange:c}=t,u="list-toggle",h=a.getClass(u),d=Object.assign(Object.assign({},e),{api:a,state:n,componentName:u});let m={open:"",close:""};s(n.subscribe("$data.list.toggle.icons",(t=>{t&&(m=t,o())})));const g=new r({top:"0px"});s(n.subscribe("$data.scroll.vertical.preciseOffset",(t=>{g.style.top=(-1*Math.round(t)||0)+"px"})));let f=!0;s(n.subscribe("config.list.columns.percent",(t=>f=0!==t)));let p=!1;function b(){p=!0}function v(){p&&(p=!1,n.update("config.list.columns.percent",(t=>0===t?100:0)))}c((t=>{e=t;for(const i in t)d[i]=e[i]}));const y=a.getActions(u),w=l.create(y,d),k=a.generateSlots(u,t,e);function x({className:t,styleMap:e,pointerDown:i,pointerUp:s,open:a,toggleIconsSrc:n,actions:o,slots:r,html:l,vido:c,props:u}){return r.html("outer",l`
        <div
          class=${t}
          style=${e.directive()}
          @pointerdown=${i}
          @pointerup=${s}
          actions=${o()}
        >
          ${r.html("content",l` <img src=${a?n.close:n.open} /> `)}
        </div>
      `)}let D=x;return s(n.subscribe(`config.templates.${u}`,(t=>{D=null!=t?t:x,o()}))),()=>D({className:h,styleMap:g,pointerDown:b,pointerUp:v,open:f,toggleIconsSrc:m,actions:w,slots:k,html:i,vido:t,props:e})}
/**
     * Chart component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Ve(t,e={}){const{api:i,state:s,onDestroy:a,Actions:n,html:o,createComponent:r,update:l}=t,c="chart",u=[];let h,d,m;u.push(s.subscribe("config.components.ChartCalendar",(t=>h=t))),u.push(s.subscribe("config.components.ChartTimeline",(t=>d=t))),u.push(s.subscribe("config.components.ScrollBar",(t=>m=t)));const g=r(h);a(g.destroy);const f=r(d);a(f.destroy);const p=r(m,{type:"horizontal"});a(p.destroy);const b=r(m,{type:"vertical"});a(b.destroy),a((()=>{u.forEach((t=>t()))}));const v=i.getClass(c),y=i.getActions(c);let w=!1;a(s.subscribe("config.chart.time.calculatedZoomMode",(t=>{w=t,l()})));const k={handleEvent:function(t){t.type},passive:!1,capture:!1};let x,D=0;y.push((function(t){x||(x=new ResizeObserver((()=>{const e=t.offsetWidth,i=t.offsetHeight,a=e-s.get("config.scroll.horizontal.width"),n=s.get("config.headerHeight");D!==e&&(D=e,s.update("$data.chart.dimensions",(t=>(t.width=e,t.widthWithoutScrollBar=a,t.height=i,t.innerHeight=i-n,t))))})),x.observe(t),s.update("$data.elements.chart",t))})),a((()=>{x.disconnect()}));const $={api:i,state:s,componentName:c},S=n.create(y,$),P=i.generateSlots(c,t,e);function z({className:t,onWheel:e,ChartCalendar:i,ChartTimeline:s,ScrollBarVertical:a,calculatedZoomMode:n,ScrollBarHorizontal:o,actions:r,slots:l,html:c,vido:u,props:h}){return l.html("outer",c`
        <div class=${t} data-actions=${r()} @wheel=${e}>
          ${l.html("content",c`
              ${i.html()}${s.html()}${a.html()}
              ${n?null:o.html()}
            `)}
        </div>
      `)}let C=z;return a(s.subscribe(`config.templates.${c}`,(t=>{C=null!=t?t:z,l()}))),()=>C({className:v,onWheel:k,ChartCalendar:g,ChartTimeline:f,ScrollBarVertical:b,calculatedZoomMode:w,ScrollBarHorizontal:p,actions:S,slots:P,html:o,vido:t,props:e})}
/**
     * ChartCalendar component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Be(t,e){const{api:i,state:s,onDestroy:a,Actions:n,update:o,reuseComponents:r,html:l,StyleMap:c}=t,u="chart-calendar",h=i.getActions(u),d=Object.assign(Object.assign({},e),{api:i,state:s,componentName:u}),m=s.get("config.components.ChartCalendarDate"),g=i.getClass(u);let f;const p=new c({height:"","--headerHeight":"","margin-left":""});a(s.subscribe("config.headerHeight",(t=>{f=t,p.style.height=f+"px",p.style["--calendar-height"]=f+"px",o()})));let b=[],v=0;a(s.subscribeAll(["$data.chart.time.levels","config.chart.time","$data.chart.time","config.chart.calendarLevels"],(()=>{const t=s.get("$data.chart.time.levels");let e=0;if(t.length!==v){v=t.length,b.forEach((t=>t.forEach((t=>t.destroy())))),b=[];for(let t=0;t<v;t++)b.push([])}for(const s of t){if(!s.length)continue;let t="YYYY-MM-DD HH";switch(s[0].period){case"day":t="YYYY-MM-DD";break;case"week":t="YYYY-MM-ww";break;case"month":t="YYYY-MM";break;case"year":t="YYYY"}const a=i.time.date().format(t);r(b[e],s,(i=>i&&{level:e,date:i,currentDate:a,currentDateFormat:t}),m,!0),e++}o()}),{bulk:!0,bulkValue:!1})),a((()=>{b.forEach((t=>t.forEach((t=>t.destroy()))))})),h.push((t=>{s.update("$data.elements.chart-calendar",t)}));const y=n.create(h,d),w=i.generateSlots(u,t,e);function k({className:t,styleMap:e,components:i,actions:s,slots:a,html:n,vido:o,props:r}){return a.html("outer",n`
        <div class=${t} data-actions=${s()} style=${e.directive()}>
          ${a.html("inner",i.length?i.map(((e,i)=>e&&e.length?n`
                        <div class=${t+"-dates "+t+`-dates--level-${i}`}>
                          ${a.html("content",e.map((t=>t.html())))}
                        </div>
                      `:null)):null)}
        </div>
      `)}let x=k;return a(s.subscribe(`config.templates.${u}`,(t=>{x=null!=t?t:k,o()}))),()=>x({className:g,styleMap:p,components:b,actions:y,slots:w,html:l,vido:t,props:e})}
/**
     * ChartCalendarDate component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class Ge extends Kt{constructor(t,e){super(),e.state.update("$data.elements.chart-calendar-dates",(e=>(void 0===e&&(e=[]),e.includes(t)||e.push(t),e)))}}function He(t,e){const{api:i,state:s,onDestroy:a,Actions:n,update:o,onChange:r,html:l,StyleMap:c,cache:u}=t,h="chart-calendar-date",d=i.getActions(h),m=i.getClass(h);let g,f="",p="";r((()=>{g=s.get("config.chart.time")}));const b=new c({width:"0px"},{schedule:!1});let v="";let y=!1;const w=i.generateSlots(h,t,e);let k,x;const D={date:e.date,period:e.period,api:i,state:s,componentName:h};r(((t,i)=>{if(i.leave)return y=!0,w.change(t,i),o();y=!1,k=e.level===g.level,x=k?m+"--main-date ":m+"--non-main-date ",e=t,D.date=e.date,D.period=e.period,function(){if(!e||!e.date)return;const t=s.get(`config.chart.calendarLevels.${e.level}`);b.style.width=e.date.currentView.width+"px",b.style.left=e.date.currentView.leftPx+"px";const i=t.find((t=>+g.zoom<=+t.zoomTo));f=e.date.current?" gstc-current":e.date.next?" gstc-next":e.date.previous?" gstc-previous":"",p=m+"-content "+m+`-content--${e.date.period}`+f,i.classNames&&Array.isArray(i.classNames)?(p+=" "+i.classNames.join(" "),v=" "+i.classNames.join(" ")):v="",o()}(),w.change(t,i)})),d.includes(Ge)||d.push(Ge);const $=n.create(d,D);function S({className:t,mainClass:e,additionalClass:i,formatClassName:s,finalClassName:a,styleMap:n,cache:o,shouldDetach:r,actions:l,slots:c,html:u,vido:h,props:d}){return o(r||!d||!d.date?null:c.html("outer",u`
              <div
                class=${t+" "+t+`--${d.date.period} `+e+t+`--level-${d.level}`+i+s}
                data-gstcid=${d.date.id}
                style=${n.directive()}
                data-actions=${l()}
              >
                ${c.html("content",u`<div class=${a.trim()}>${d.date.formatted}</div>`)}
              </div>
            `))}let P=S;return a(s.subscribe(`config.templates.${h}`,(t=>{P=null!=t?t:S,o()}))),()=>P({className:m,mainClass:x,additionalClass:f,formatClassName:v,styleMap:b,finalClassName:p,cache:u,shouldDetach:y,actions:$,slots:w,html:l,vido:t,props:e})}
/**
     * ChartTimeline component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function qe(t,e){const{api:i,state:s,onDestroy:a,Action:n,Actions:o,update:r,html:l,createComponent:c,StyleMap:u}=t,h="chart-timeline",d=Object.assign(Object.assign({},e),{api:i,state:s,componentName:h});let m,g,f;a(s.subscribe("config.components.ChartTimelineGrid",(t=>{m&&m.destroy(),m=c(t)}))),a((()=>{m&&m.destroy()})),a(s.subscribe("config.components.ChartTimelineItems",(t=>{g&&g.destroy(),g=c(t)}))),a((()=>{g&&g.destroy()})),a(s.subscribe("config.components.ListToggle",(t=>{f&&f.destroy(),f=c(t)}))),a((()=>{f&&f.destroy()}));const p=i.generateSlots(h,t,e),b=i.getClass(h),v=i.getClass(h+"-inner");let y;a(s.subscribe("config.list.toggle.display",(t=>y=t)));const w=new u({}),k=new u({});let x,D;a(s.subscribe("config.additionalSpace",(t=>{x=t,r()}))),a(s.subscribe("config.headerHeight",(t=>{D=t,r()}))),a(s.subscribeAll(["$data.chart.dimensions.heightWithoutScrollBar","$data.scroll.vertical.offset","$data.chart.dimensions.width","$data.list.visibleRowsHeight","$data.chart.time.dates.day","config.headerHeight","config.additionalSpace"],(function(){const t=s.get("$data.chart.dimensions.width"),e=Math.round(i.getRealChartHeight(!0));w.style.height=s.get("config.innerHeight")+"px",w.style["--height"]=w.style.height,w.style.top=x.top+D+"px",t?(w.style.width=t+"px",w.style["--width"]=t+"px"):(w.style.width="0px",w.style["--width"]="0px"),k.style.height=e+"px",k.style.width=t?t+"px":"0px";const a=s.get("$data.scroll.vertical.preciseOffset")||0;k.style.transform=`translateY(${Math.round(a)}px)`,r()}),{group:!0,bulkValue:!1}));let $=[];a(s.subscribe("config.actions.chart-timeline",(t=>{$=t}))),$.push(class extends n{constructor(t){super();s.get("$data.elements.chart-timeline")!==t&&s.update("$data.elements.chart-timeline",t)}});const S=o.create($,d);function P({className:t,classNameInner:e,styleMap:i,innerStyleMap:s,Grid:a,Items:n,showToggle:o,ListToggle:r,actions:l,slots:c,html:u,vido:h,props:d}){return c.html("outer",u`
        <div class=${t} style=${i.directive()} data-actions=${l()}>
          ${c.html("inner",u`
              <div class=${e} style=${s.directive()}>
                ${c.html("content",u` ${a.html()}${n.html()}${o?r.html():""} `)}
              </div>
            `)}
        </div>
      `)}let z=P;return a(s.subscribe(`config.templates.${h}`,(t=>{z=null!=t?t:P,r()}))),()=>z({className:b,styleMap:w,classNameInner:v,Grid:m,innerStyleMap:k,Items:g,showToggle:y,ListToggle:f,actions:S,slots:p,html:l,vido:t,props:e})}
/**
     * ChartTimelineGrid component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class Ye{constructor(t,e){e.state.get("$data.elements.chart-timeline-grid")!==t&&e.state.update("$data.elements.chart-timeline-grid",t,{only:null})}destroy(t,e){e.state.update("$data.elements",(t=>(delete t["chart-timeline-grid"],t)),{only:null})}}function Fe(t,e){const{api:i,state:s,onDestroy:a,Actions:n,update:o,html:r,reuseComponents:l,StyleMap:c}=t,u="chart-timeline-grid",h=i.getActions(u),d={api:i,state:s,componentName:u},m=s.get("config.components.ChartTimelineGridRow"),g=i.getClass(u);let f;a(s.subscribe("config.chart.grid.cell.onCreate",(t=>f=t)));const p=[],b={},v=new Map,y=new c({});function w(t){let e=t.month()+1;e<10&&(e="0"+e);let i=t.date();i<10&&(i="0"+i);let s=t.hour();s<10&&(s="0"+s);let a=t.minute();a<10&&(a="0"+a);let n=t.second();return n<10&&(n="0"+n),`${t.year()}-${e}-${i}T${s}-${a}-${n}`}a(s.subscribeAll(["$data.scroll.vertical.preciseOffset","$data.chart.dimensions.width","$data.chart.dimensions.heightWithoutScrollBar"],(function(){const t=s.get("$data.chart.dimensions.width"),e=i.getRealChartHeight();y.style.height=Math.round(e)+"px",y.style.width=t+"px"}),{group:!0}));let k="",x=0,D=0,$="",S=0,P="",z=0,C=0;function I(){const t=i.getGridRows();l(p,t||[],(t=>t),m,!0),o()}a(s.subscribeAll(["$data.list.rowsHeight","$data.list.visibleRows","$data.list.visibleRowsHeight","$data.chart.time.levels","$data.scroll","config.list.rows;","config.list.rows.*;"],(function(e,a){const n=s.get("$data.chart.time"),o=s.get(`$data.chart.time.levels.${n.level}`),r=n.levels[n.level];if(!r||!r.length)return;const l=n.levels[n.level].map((t=>t.currentView.width)).join(",");if(!o||0===o.length)return void s.update("$data.chart.grid",{rows:{},cells:{}});const c=i.getRowsData(),u=s.get("$data.list.visibleRows"),h=u.map((t=>c[t].outerHeight)).join("|"),d=u.join("|"),m=s.get("$data.scroll");if(d===k&&x===n.leftGlobal&&D===n.rightGlobal&&h===$&&S===o.length&&P===l&&m.horizontal.handlePosPx===z&&m.vertical.handlePosPx===C)return"$data.chart.time.levels"===a.path.listener?I():void 0;z=m.horizontal.handlePosPx,C=m.vertical.handlePosPx,x=n.leftGlobal,D=n.rightGlobal,P=l,$=h;let g=0;if(d!==k)for(const t in b)delete b[t];else if(S!==o.length)for(const t in b)b[t].cells.length=0;S=o.length;const p=i.getAllRows(),y=s.get("$data.chart.grid.cells");for(const t in y)delete y[t];for(const e of u){const i=p[e],s=c[e];if(!i||!s)continue;let a,n;d!==k?a=[]:(a=b[e].cells,a.length=0);for(const e of o){let n;v.has(e.leftGlobal)?n=v.get(e.leftGlobal):(n=w(e.leftGlobalDate),v.set(e.leftGlobal,n));const o=i.id+"-"+n;let r;if(y[o])r=y[o],r.id=o,r.time=e,r.row=i,r.rowData=s,r.top=g,r.vido=t,r.content=null;else{const a=Object.create(null);a.id=o,a.time=e,a.row=i,a.rowData=s,a.top=g,a.vido=t,a.content=null,r=a}for(const t of f)r.content=t(r);y[r.id]=r,a.push(r.id)}b[e]?(n=b[e],n.row=i,n.rowData=s,n.cells=a,n.top=g):n={row:i,rowData:s,cells:a,top:g},b[e]=n,g+=s.outerHeight}k=d,s.update("$data.chart.grid",{rows:b,cells:y})}),{group:!0,bulkValue:!1})),a(s.subscribe("$data.chart.grid",I,{group:!0})),a((()=>{p.forEach((t=>t.destroy()))})),h.push(Ye);const T=n.create(h,d),A=i.generateSlots(u,t,e);function M({className:t,styleMap:e,rowsComponents:i,actions:s,slots:a,html:n,vido:o,props:r}){return a.html("outer",n`
        <div class=${t} data-actions=${s()} style=${e.directive()}>
          ${a.html("content",i.map((t=>t.html())))}
        </div>
      `)}let _=M;return a(s.subscribe(`config.templates.${u}`,(t=>{_=null!=t?t:M,o()}))),()=>_({className:g,styleMap:y,rowsComponents:p,actions:T,slots:A,html:r,vido:t,props:e})}
/**
     * ChartTimelineGridRow component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class Ue{constructor(t,e){let i=!1,s=e.state.get("$data.elements.chart-timeline-grid-rows");void 0===s&&(s=[],i=!0),s.includes(t)||(s.push(t),i=!0),i&&e.state.update("$data.elements.chart-timeline-grid-rows",s,{only:null})}destroy(t,e){e.state.update("$data.elements.chart-timeline-grid-rows",(e=>e.filter((e=>e!==t))),{only:null})}}function Ke(t,e){const{api:i,state:s,onDestroy:a,cache:n,Actions:o,update:r,html:l,reuseComponents:c,onChange:u,StyleMap:h}=t,d="chart-timeline-grid-row",m=Object.assign(Object.assign({},e),{api:i,state:s,componentName:d});let g;a(s.subscribe("config.components.ChartTimelineGridRowCell",(t=>g=t)));const f=i.getActions(d),p=i.getClass(d),b=new h({height:e.row.height+"px"});let v=!1;const y=i.generateSlots(d,t,e),w=[];u((function(t,s){if(!t||s.leave||void 0===t.row)return v=!0,c(w,[],(t=>t),g,!0),y.change(t,s),void r();v=!1,e=t;const a=i.getGridCells(e.cells);if(c(w,a,(t=>t),g,!0),b.setStyle({}),b.style.height=e.rowData.outerHeight+"px",e.row.style)for(const t in e.row.style)b.style[t]=e.row.style[t];for(const t in e)m[t]=e[t];y.change(t,s)})),a((function(){w.forEach((t=>t.destroy()))})),-1===f.indexOf(Ue)&&f.push(Ue);const k=o.create(f,m);function x({className:t,styleMap:e,rowsCellsComponents:i,cache:s,shouldDetach:a,actions:n,slots:o,html:r,vido:l,props:c}){return s(a||!c||!c.row?null:o.html("outer",r`
              <div
                class=${t}
                data-gstcid=${c.row.id}
                data-actions=${n()}
                style=${e.directive()}
              >
                ${o.html("content",i.map((t=>t.html())))}
              </div>
            `))}let D=x;return a(s.subscribe(`config.templates.${d}`,(t=>{D=null!=t?t:x,r()}))),()=>D({className:p,styleMap:b,rowsCellsComponents:w,cache:n,shouldDetach:v,actions:k,slots:y,html:l,vido:t,props:e})}
/**
     * ChartTimelineGridRowCell component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class Ze{constructor(t,e){let i=!1,s=e.state.get("$data.elements.chart-timeline-grid-row-cells");void 0===s&&(s=[],i=!0),s.includes(t)||(s.push(t),i=!0),i&&e.state.update("$data.elements.chart-timeline-grid-row-cells",s,{only:null})}destroy(t,e){e.state.update("$data.elements.chart-timeline-grid-row-cells",(e=>e.filter((e=>e!==t))),{only:[""]})}}function Xe(t,e){const{api:i,state:s,cache:a,Actions:n,html:o,onChange:r,onDestroy:l,StyleMap:c,update:u}=t,h="chart-timeline-grid-row-cell",d=Object.assign(Object.assign({},e),{api:i,state:s,componentName:h});let m=!1;const g=i.getActions(h),f=i.generateSlots(h,t,e);let p;function b(t){p=i.getClass(h),t&&t.time&&t.time.current&&(p+=" current")}b(e);const v=new c({width:"",height:""});r((function(t,i){var s,a;if(!t||i.leave||void 0===t.row)return m=!0,f.change(t,i),void u();m=!1,e=t;for(const t in e)d[t]=e[t];if(b(e),v.setStyle({}),e&&e.row){if(v.style.width=((null===(a=null===(s=null==e?void 0:e.time)||void 0===s?void 0:s.currentView)||void 0===a?void 0:a.width)||0)+"px",e.row.style)for(const t in e.row.style)v.style[t]=e.row.style[t];f.change(e,i),u()}})),g.push(Ze);const y=n.create(g,d);function w({className:t,styleMap:e,cache:i,shouldDetach:s,actions:a,slots:n,html:o,vido:r,props:l}){var c;return i(s||!l||!l.id?null:n.html("outer",o`
              <div class=${t} data-gstcid=${l.id} data-actions=${a()} style=${e.directive()}>
                ${n.html("content",null!==(c=l&&l.content)&&void 0!==c?c:null)}
              </div>
            `))}let k=w;return l(s.subscribe(`config.templates.${h}`,(t=>{k=null!=t?t:w,u()}))),()=>k({className:p,styleMap:v,cache:a,shouldDetach:m,actions:y,slots:f,html:o,vido:t,props:e})}
/**
     * ChartTimelineItems component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Qe(t,e={}){const{api:i,state:s,onDestroy:a,Actions:n,update:o,html:r,reuseComponents:l,StyleMap:c}=t,u="chart-timeline-items";let h,d;a(s.subscribe(`config.actions.${u}`,(t=>h=t))),a(s.subscribe("config.components.ChartTimelineItemsRow",(t=>d=t)));const m=i.getClass(u),g=new c({});let f;a(s.subscribeAll(["$data.chart.dimensions.heightWithoutScrollBar","$data.chart.dimensions.width","$data.scroll.vertical.preciseOffset"],(function(){const t=s.get("$data.chart.dimensions.width"),e=i.getRealChartHeight();g.style.width=t+"px",g.style.height=e+"px"}),{group:!0})),a(s.subscribe("config.debug",(t=>f=t)));const p=[],b={};a(s.subscribeAll(["$data.list.visibleRows","config.list.rows","config.components.ChartTimelineItemsRow","config.chart.items","$data.chart.items","$data.chart.time","$data.chart.viewPortVisibleItems","config.templates"],(function t(e,a){s.mute(t),f&&console.log("[items.ts] Updating item & rows components.");const n=s.get("$data.list.visibleRows")||[],r=i.getRows(n),c=i.getRowsData();for(const t of r)b[t.id]||(b[t.id]={}),b[t.id].row=t,b[t.id].rowData=c[t.id];for(const t in b)n.includes(t)||delete b[t];l(p,r,(t=>t?b[t.id]:null),d,!0),o(),s.unmute(t)}),{group:!0,bulkValue:!1})),a((()=>{p.forEach((t=>t.destroy()))}));const v={api:i,state:s,componentName:u},y=n.create(h,v),w=i.generateSlots(u,t,e);function k({className:t,styleMap:e,rowsComponents:i,actions:s,slots:a,html:n,vido:o,props:r}){return a.html("outer",n`
        <div class=${t} style=${e.directive()} data-actions=${s()}>
          ${a.html("content",i.map((t=>t.html())))}
        </div>
      `)}let x=k;return a(s.subscribe(`config.templates.${u}`,(t=>{x=null!=t?t:k,o()}))),()=>x({className:m,styleMap:g,rowsComponents:p,actions:y,slots:w,html:r,vido:t,props:e})}
/**
     * ChartTimelineItemsRow component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class Je{constructor(t,e){let i=!1,s=e.state.get("$data.elements.chart-timeline-items-rows");void 0===s&&(s=[],i=!0),s.includes(t)||(s.push(t),i=!0),i&&e.state.update("$data.elements.chart-timeline-items-rows",s,{only:null})}destroy(t,e){e.state.update("$data.elements.chart-timeline-items-rows",(e=>e.filter((e=>e!==t))),{only:null})}}function ti(t,e){const{api:i,state:s,onDestroy:a,cache:n,Actions:o,update:r,html:l,onChange:c,reuseComponents:u,StyleMap:h}=t,d="chart-timeline-items-row",m=Object.assign(Object.assign({},e),{api:i,state:s,componentName:d});let g;a(s.subscribe("config.components.ChartTimelineItemsRowItem",(t=>g=t)));let f="";const p=[],b=new h({width:"",height:""});let v=!1;function y(t=e.rowData,i=null){const a=s.get("$data.chart");v=!1,b.style.width=a.dimensions.width+"px",e?(b.style.height=t.outerHeight+"px",b.style["--row-height"]=t.outerHeight+"px",r()):v=!0}function w(t,e){if(!t||!e)return v=!0,u(p,[],(()=>null),g,!0),r();const s=e.items;if(void 0===s)return v=!0,u(p,[],(()=>null),g,!0),y(),r();const a=i.getItems(s).filter((t=>i.isItemHorizontallyInViewport(t)));u(p,a,(e=>({row:t,item:e,itemData:e?i.getItemData(e.id):null})),g,!0),y(),r()}const k=i.getClass(d),x=i.generateSlots(d,t,e);c((function(i,s){if(s.leave||!i||void 0===i.row)return v=!0,u(p,[],(()=>null),g,!0),x.change(i,s),r();e=i;for(const t in e)m[t]=e[t];if(e.row.classNames){if(Array.isArray(e.row.classNames)&&e.row.classNames.length)f=k+" "+e.row.classNames.join(" ");else if("function"==typeof e.row.classNames){const i=e.row.classNames({row:e.row,vido:t});Array.isArray(i)&&i.length&&(f=k+" "+i.join(" "))}}else f=k;w(e.row,e.rowData),x.change(i,s),r()})),a(s.subscribe("$data.chart.dimensions.width",(()=>w(e.row,e.rowData)))),a((()=>{p.forEach((t=>t.destroy()))}));const D=i.getActions(d);D.push(Je);const $=o.create(D,m);function S({classNameCurrent:t,styleMap:e,shouldDetach:i,itemComponents:s,actions:a,slots:n,cache:o,html:r,vido:l,props:c}){return o(i||!c||!c.row?null:n.html("outer",r`
              <div
                class=${t}
                data-gstcid=${c.row.id}
                data-actions=${a()}
                style=${e.directive()}
              >
                ${n.html("content",s.map((t=>t.html())))}
              </div>
            `))}let P=S;return a(s.subscribe(`config.templates.${d}`,(t=>{P=null!=t?t:S,r()}))),()=>P({cache:n,shouldDetach:v,classNameCurrent:f,styleMap:b,itemComponents:p,actions:$,slots:x,html:l,vido:t,props:e})}
/**
     * ChartTimelineItemsRowItem component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */class ei{constructor(t,e){let i=!1,s=e.state.get("$data.elements.chart-timeline-items-row-items");void 0===s&&(s=[],i=!0),s.includes(t)||(s.push(t),i=!0),i&&e.state.update("$data.elements.chart-timeline-items-row-items",s,{only:null})}destroy(t,e){e.state.update("$data.elements.chart-timeline-items-row-items",(e=>e.filter((e=>e!==t))),{only:null})}}function ii(t,e){const{api:i,state:s,cache:a,onDestroy:n,Actions:o,update:r,html:l,onChange:c,unsafeHTML:u,StyleMap:h}=t;let d,m,g=0,f=0;n(s.subscribe("config.chart.spacing",(t=>{"number"==typeof t?(f=t,g=0):("number"==typeof t.left&&(g=t.left),"number"==typeof t.right&&(f=t.right)),r()})));const p="chart-timeline-items-row-item";let b=0,v=0,y=!1,w="";const k=new h({width:"",height:"",left:"",top:""}),x=new h({}),D=new h({}),$={item:e.item,itemData:e.itemData,row:e.row,left:b,width:v,api:i,state:s,componentName:p},S=i.getClass(p),P=i.getClass(p+"-label"),z=i.generateSlots(p,t,e);let C,I=!1;n(s.subscribe("config.chart.item.cutIcons",(t=>{C={left:i.getSVGIconSrc(t.left),right:i.getSVGIconSrc(t.right)}})));const T=i.getClass(`${p}-cut`)+" "+i.getClass(`${p}--left-cut-icon`),A=i.getClass(`${p}-cut-image`),M=()=>l`
    <div class=${T} style=${x.directive()}>
      <img src="${C.left}" width="18" height="18" class=${A} />
    </div>
  `,_=i.getClass(`${p}-cut`)+" "+i.getClass(`${p}--right-cut-icon`),j=i.getClass(`${p}-cut-image`),R=()=>l`
    <div class=${_} style=${D.directive()}>
      <img src="${C.right}" width="18" height="18" class=${j} />
    </div>
  `;c((function(a,n){if(n.leave||void 0===a.row||void 0===a.item)return y=!0,I=!0,z.change(a,n),r();I=!1,y=!1,(e=a).item.id===d&&e.row.id===m||(d=e.item.id,m=e.row.id),$.item=e.item,$.itemData=e.itemData,$.row=e.row,function(){var a;if(I)return r();const n=s.get("$data.chart.time");if(y||0===n.levels.length||!n.levels[n.level]||0===n.levels[n.level].length)return I=!0,r();if(!e.item||!e.itemData)return I=!0,r();if(!s.get().$data.chart.verticallyVisibleItems.includes(e.item.id))return I=!0,r();const o=e.itemData;if(b=o.position.actualLeft+g,v=o.actualWidth-f-g,e.item.time.end<n.leftGlobal||e.item.time.start>n.rightGlobal||v<=0)return I=!0,o.detached=I,r();if(w=S,e.item.time.start<n.leftGlobal?(x.style.display="flex",w+=" "+i.getClass(p+"--left-cut")):x.style.display="none",e.item.time.end>n.rightGlobal?(D.style.display="flex",w+=" "+i.getClass(p+"--right-cut")):D.style.display="none",e.item.classNames)if(Array.isArray(e.item.classNames)&&e.item.classNames.length)w+=" "+e.item.classNames.join(" ");else if("function"==typeof e.item.classNames){const i=e.item.classNames({item:e.item,vido:t});Array.isArray(i)&&(w+=" "+i.join(" "))}const l=k.style.width,c=k.style.left,u=k.style.top,h=k.style.height;k.setStyle({});const d=i.isItemHorizontallyInViewport(e.item,n.leftGlobal,n.rightGlobal);if(I=!d,o.detached=I,d?(k.style.width=v+"px",k.style.left=b+"px",k.style.top=o.position.actualRowTop+"px",k.style.height=o.actualHeight+"px"):(k.style.width=l,k.style.left=c,k.style.top=u,k.style.height=h),null===(a=null==e?void 0:e.item)||void 0===a?void 0:a.style)for(const t in e.item.style)k.style[t]=e.item.style[t];$.left=b,$.width=v,r()}(),z.change(a,n),r()}));const W=i.getActions(p);W.push(ei);const O=o.create(W,$);function L(){return e.item?e.item.isHTML?e.item&&e.item.label?"function"==typeof e.item.label?u(e.item.label({item:e.item,vido:t})):"string"==typeof e.item.label?u(e.item.label):null:null:e.item&&e.item.label?"function"==typeof e.item.label?e.item.label({item:e.item,vido:t}):e.item.label:null:null}function E({className:t,labelClassName:e,styleMap:i,cache:s,shouldDetach:a,cutterLeft:n,cutterRight:o,getContent:r,actions:l,slots:c,html:u,vido:h,props:d}){return s(a||!d||!d.item?null:c.html("outer",u`
              <div
                class=${t}
                data-gstcid=${d.item.id}
                data-actions=${l()}
                style=${i.directive()}
              >
                ${c.html("inner",u`
                    ${n()}
                    <div class=${e}>${c.html("content",r())}</div>
                    ${o()}
                  `)}
              </div>
            `))}let N=E;return c((()=>{const t=s.get(`config.templates.${p}`);N=null!=t?t:E,r()})),()=>N({className:w,labelClassName:P,cache:a,shouldDetach:I,styleMap:k,cutterLeft:M,cutterRight:R,getContent:L,actions:O,slots:z,html:l,vido:t,props:e})}
/**
     * Gantt-Schedule-Timeline-Calendar default configuration
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */const si=["main","scroll-bar","list","list-column","list-column-header","list-column-header-resizer","list-column-row","list-column-row-expander","list-column-row-expander-toggle","list-toggle","chart","chart-calendar","chart-calendar-date","chart-timeline","chart-timeline-grid","chart-timeline-grid-row","chart-timeline-grid-row-cell","chart-timeline-items","chart-timeline-items-row","chart-timeline-items-row-item"];function ai(){const t={};return si.forEach((e=>t[e]=[])),t}function ni(){const t={};return si.forEach((e=>t[e]=null)),t}function oi(){const t={};return si.forEach((e=>{t[e]={outer:[],inner:[],"container-outer":[],"container-inner":[],content:[]}})),t}function ri(){const t=[{zoomTo:17,period:"day",periodIncrement:1,classNames:["gstc-date-medium gstc-date-left"],format:({timeStart:t})=>t.format("DD MMMM YYYY (dddd)")},{zoomTo:23,period:"month",periodIncrement:1,format:({timeStart:t})=>t.format("MMMM YYYY")},{zoomTo:24,period:"month",periodIncrement:1,format:({timeStart:t})=>t.format("MMMM 'YY")},{zoomTo:25,period:"month",periodIncrement:1,format:({timeStart:t})=>t.format("MMM YYYY")},{zoomTo:27,period:"year",periodIncrement:1,format:({timeStart:t})=>t.format("YYYY")},{zoomTo:100,period:"year",periodIncrement:1,format:()=>null}],e=[{zoomTo:9,period:"minute",classNames:["gstc-date-medium"],main:!0,periodIncrement:1,format:({timeStart:t})=>t.format("HH:mm")},{zoomTo:11,period:"minute",classNames:["gstc-date-medium"],main:!0,periodIncrement:5,format:({timeStart:t})=>t.format("HH:mm")},{zoomTo:12,period:"minute",classNames:["gstc-date-medium"],main:!0,periodIncrement:15,format:({timeStart:t})=>t.format("HH:mm")},{zoomTo:13,period:"minute",classNames:["gstc-date-medium"],main:!0,periodIncrement:30,format:({timeStart:t})=>t.format("HH:mm")},{zoomTo:16,period:"hour",classNames:["gstc-date-medium"],main:!0,periodIncrement:1,format:({timeStart:t})=>t.format("HH:mm")},{zoomTo:17,period:"hour",main:!0,periodIncrement:1,format:({timeStart:t})=>t.format("HH")},{zoomTo:19,period:"day",main:!0,periodIncrement:1,classNames:["gstc-date-medium"],format:({timeStart:t,className:e,vido:i})=>i.html`<span class="${e}-content gstc-date-bold">${t.format("DD")}</span> <span class="${e}-content gstc-date-thin">${t.format("dddd")}</span>`},{zoomTo:20,period:"day",main:!0,periodIncrement:1,format:({timeStart:t,vido:e,className:i})=>e.html`<div class="${i}-content gstc-date-top">${t.format("DD")}</div><div class="${i}-content gstc-date-small">${t.format("dddd")}</div>`},{zoomTo:21,period:"day",main:!0,periodIncrement:1,format:({timeStart:t,vido:e,className:i})=>e.html`<div class="${i}-content gstc-date-top">${t.format("DD")}</div><div class="${i}-content gstc-date-small">${t.format("ddd")}</div>`},{zoomTo:22,period:"day",main:!0,periodIncrement:1,classNames:["gstc-date-vertical"],format:({timeStart:t,className:e,vido:i})=>i.html`<div class="${e}-content gstc-date-top">${t.format("DD")}</div><div class="${e}-content gstc-date-extra-small">${t.format("ddd")}</div>`},{zoomTo:23,period:"week",main:!0,periodIncrement:1,format:({timeStart:t,timeEnd:e,className:i,vido:s})=>s.html`<div class="${i}-content gstc-date-top">${t.format("DD")} - ${e.format("DD")}</div><div class="${i}-content gstc-date-small gstc-date-thin">${t.format("ddd")} - ${e.format("dd")}</div>`},{zoomTo:25,period:"week",main:!0,periodIncrement:1,classNames:["gstc-date-vertical"],format:({timeStart:t,timeEnd:e,className:i,vido:s})=>s.html`<div class="${i}-content gstc-date-top gstc-date-small gstc-date-normal">${t.format("DD")}</div><div class="gstc-dash gstc-date-small">-</div><div class="${i}-content gstc-date-small gstc-date-normal">${e.format("DD")}</div>`},{zoomTo:26,period:"month",main:!0,periodIncrement:1,classNames:["gstc-date-month-level-1"],format:({timeStart:t,vido:e,className:i})=>e.html`<div class="${i}-content gstc-date-top">${t.format("MMM")}</div><div class="${i}-content gstc-date-small gstc-date-bottom">${t.format("MM")}</div>`},{zoomTo:27,period:"month",main:!0,periodIncrement:1,classNames:["gstc-date-vertical"],format:({timeStart:t,className:e,vido:i})=>i.html`<div class="${e}-content gstc-date-top">${t.format("MM")}</div><div class="${e}-content gstc-date-extra-small">${t.format("MMM")}</div>`},{zoomTo:28,period:"year",main:!0,periodIncrement:1,classNames:["gstc-date-big"],format:({timeStart:t})=>t.format("YYYY")},{zoomTo:29,period:"year",main:!0,periodIncrement:1,classNames:["gstc-date-medium"],format:({timeStart:t})=>t.format("YYYY")},{zoomTo:30,period:"year",main:!0,periodIncrement:1,classNames:["gstc-date-medium"],format:({timeStart:t})=>t.format("YY")},{zoomTo:100,period:"year",main:!0,periodIncrement:1,format:()=>null}];return{licenseKey:"",debug:!1,plugins:[],plugin:{},innerHeight:428,initialWidth:1024,additionalSpace:{top:0,bottom:0},headerHeight:72,autoInnerHeight:!1,components:{ScrollBar:Te,List:Ae,ListColumn:_e,ListColumnHeader:je,ListColumnHeaderResizer:Re,ListColumnRow:Oe,ListColumnRowExpander:Le,ListColumnRowExpanderToggle:Ee,ListToggle:Ne,Chart:Ve,ChartCalendar:Be,ChartCalendarDate:He,ChartTimeline:qe,ChartTimelineGrid:Fe,ChartTimelineGridRow:Ke,ChartTimelineGridRowCell:Xe,ChartTimelineItems:Qe,ChartTimelineItemsRow:ti,ChartTimelineItemsRowItem:ii},slots:oi(),list:{rows:{},row:{height:40,gap:{top:0,bottom:0}},columns:{percent:100,resizer:{width:10,inRealTime:!0,dots:6},minWidth:50,data:{}},expander:{padding:18,size:20,icon:{width:16,height:16},icons:{child:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse ry="4" rx="4" id="svg_1" cy="12" cx="12" fill="#000000B0"/></svg>',open:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>',closed:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>'}},toggle:{display:!0,icons:{open:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path stroke="null" d="m16.406954,16.012672l4.00393,-4.012673l-4.00393,-4.012673l1.232651,-1.232651l5.245324,5.245324l-5.245324,5.245324l-1.232651,-1.232651z"/><path stroke="null" d="m-0.343497,12.97734zm1.620144,0l11.341011,0l0,-1.954681l-11.341011,0l0,1.954681zm0,3.909362l11.341011,0l0,-1.954681l-11.341011,0l0,1.954681zm0,-9.773404l0,1.95468l11.341011,0l0,-1.95468l-11.341011,0z"/></svg>',close:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path transform="rotate(-180 4.392796516418457,12) " stroke="null" d="m1.153809,16.012672l4.00393,-4.012673l-4.00393,-4.012673l1.232651,-1.232651l5.245324,5.245324l-5.245324,5.245324l-1.232651,-1.232651z"/><path stroke="null" d="m9.773297,12.97734zm1.620144,0l11.341011,0l0,-1.954681l-11.341011,0l0,1.954681zm0,3.909362l11.341011,0l0,-1.954681l-11.341011,0l0,1.954681zm0,-9.773404l0,1.95468l11.341011,0l0,-1.95468l-11.341011,0z"/></svg>'}},sort:{compare:null,asc:!0,activeColumnId:null,icons:{up:'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up"><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg>',down:'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down"><line x1="12" y1="5" x2="12" y2="19"></line><polyline points="19 12 12 19 5 12"></polyline></svg>'}}},scroll:{bodyClassName:"gstc-scrolling",horizontal:{width:20,minInnerSize:40,multiplier:1,precise:!0,byPixels:!0},vertical:{width:20,minInnerSize:40,multiplier:1,precise:!0,byPixels:!0}},chart:{time:{period:"day",from:0,to:0,zoom:20,leftGlobal:0,centerGlobal:0,rightGlobal:0,calculatedZoomMode:!1,onLevelDates:[],onCurrentViewLevelDates:[],onDate:[],allDates:[],autoExpandTimeFromItems:!1,alignLevelsToMain:!0,timePerPixel:0,checkCurrentDateInterval:3e5,datesCache:{timePerPixel:0,levels:[]}},calendarLevels:[t,e],grid:{cell:{onCreate:[]}},item:{gap:{top:4,bottom:4},rowTop:0,height:32,minWidth:10,overlap:!1,cutIcons:{left:'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M20 9v6h-8v4.84L4.16 12L12 4.16V9h8z" fill="#ffffff"/><rect x="0" y="0" width="24" height="24" fill="rgba(0, 0, 0, 0)" /></svg>',right:'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M4 15V9h8V4.16L19.84 12L12 19.84V15H4z" fill="#ffffff"/><rect x="0" y="0" width="24" height="24" fill="rgba(0, 0, 0, 0)" /></svg>'}},items:{},spacing:4},actions:ai(),templates:ni(),locale:{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekStart:0,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},ordinal:t=>{const e=["th","st","nd","rd"],i=t%100;return`[${t}${e[(i-20)%10]||e[i]||e[0]}]`}},utcMode:!1,merge:(t,e)=>oe.mergeDeep({},t,e),useLast:!0,Promise:Promise,mute:[],version:"3.40.5"}}
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */function li(t,e,i,s){return new(i||(i=Promise))((function(a,n){function o(t){try{l(s.next(t))}catch(t){n(t)}}function r(t){try{l(s.throw(t))}catch(t){n(t)}}function l(t){var e;t.done?a(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,r)}l((s=s.apply(t,e||[])).next())}))}const ci=[];class ui{constructor(t,e,i,s=void 0){this.obj=t,this.delimiter=e,this.wildcard=i,this.is_match=s}shortMatch(t,e){if(t===e)return!0;if(t===this.wildcard)return!0;if(this.is_match)return this.is_match(t,e);const i=t.indexOf(this.wildcard);if(i>-1){const s=t.substr(i+1);if(0===i||e.substring(0,i)===t.substring(0,i)){const t=s.length;return!(t>0)||e.substr(-t)===s}}return!1}match(t,e){return this.is_match?this.is_match(t,e):t===e||t===this.wildcard||e===this.wildcard||this.shortMatch(t,e)||function(t,e,i="*"){if(t===i)return!0;ci.length=0;let s=0,a=0,n=0,o=0;for(let e=0,a=t.length;e<a;e+=1){const a=t[e];a===i&&(s+=1,e>o&&ci.push(t.substring(o,e)),ci.push(a),o=e+1)}if(o<t.length&&ci.push(t.substring(o)),s?(a=t.length-s,n=1/0):n=a=t.length,0===ci.length)return t===e;const r=e.length;if(r<a||r>n)return!1;let l=ci.length-1,c=e.length-1,u=!1;for(;;){const t=ci[l];if(l-=1,t===i)u=!0;else{const i=c+1-t.length,s=e.lastIndexOf(t,i);if(-1===s||s>i)return!1;if(u)c=s-1,u=!1;else{if(s!==i)return!1;c-=t.length}}if(0>l)break}return!0}(t,e,this.wildcard)}handleArray(t,e,i,s,a={}){let n=t.indexOf(this.delimiter,i),o=!1;-1===n&&(o=!0,n=t.length);const r=t.substring(i,n);let l=0;for(const i of e){const e=l.toString(),c=""===s?e:s+this.delimiter+l;(r===this.wildcard||r===e||this.shortMatch(r,e))&&(o?a[c]=i:this.goFurther(t,i,n+1,c,a)),l++}return a}handleObject(t,e,i,s,a={}){let n=t.indexOf(this.delimiter,i),o=!1;-1===n&&(o=!0,n=t.length);const r=t.substring(i,n);for(let i in e){i=i.toString();const l=""===s?i:s+this.delimiter+i;(r===this.wildcard||r===i||this.shortMatch(r,i))&&(o?a[l]=e[i]:this.goFurther(t,e[i],n+1,l,a))}return a}goFurther(t,e,i,s,a={}){return Array.isArray(e)?this.handleArray(t,e,i,s,a):this.handleObject(t,e,i,s,a)}get(t){return this.goFurther(t,this.obj,0,"")}}class hi{static get(t,e,i=!1){if(!e)return;let s=e;for(const e of t)if(e in s)s=s[e];else{if(!i)return;s[e]=Object.create({}),s=s[e]}return s}static set(t,e,i){if(!i)return;if(0===t.length){for(const t in i)delete i[t];for(const t in e)i[t]=e[t];return}const s=t.slice(),a=s.pop(),n=hi.get(s,i,!0);return"object"==typeof n&&(n[a]=e),e}}let di,mi=0,gi=null;function fi(){return null!==gi&&gi.buffer===di.memory.buffer||(gi=new Uint8Array(di.memory.buffer)),gi}let pi=new TextEncoder("utf-8");const bi="function"==typeof pi.encodeInto?function(t,e){return pi.encodeInto(t,e)}:function(t,e){const i=pi.encode(t);return e.set(i),{read:t.length,written:i.length}};function vi(t,e,i){if(void 0===i){const i=pi.encode(t),s=e(i.length);return fi().subarray(s,s+i.length).set(i),mi=i.length,s}let s=t.length,a=e(s);const n=fi();let o=0;for(;o<s;o++){const e=t.charCodeAt(o);if(e>127)break;n[a+o]=e}if(o!==s){0!==o&&(t=t.slice(o)),a=i(a,s,s=o+3*t.length);const e=fi().subarray(a+o,a+s);o+=bi(t,e).written}return mi=o,a}function yi(t,e){var i=vi(t,di.__wbindgen_malloc,di.__wbindgen_realloc),s=mi,a=vi(e,di.__wbindgen_malloc,di.__wbindgen_realloc),n=mi;return 0!==di.is_match(i,s,a,n)}async function wi(t){("string"==typeof t||"function"==typeof Request&&t instanceof Request||"function"==typeof URL&&t instanceof URL)&&(t=fetch(t));const{instance:e,module:i}=await async function(t,e){if("function"==typeof Response&&t instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(t,e)}catch(e){if("application/wasm"==t.headers.get("Content-Type"))throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}const i=await t.arrayBuffer();return await WebAssembly.instantiate(i,e)}{const i=await WebAssembly.instantiate(t,e);return i instanceof WebAssembly.Instance?{instance:i,module:t}:i}}(await t,{});return di=e.exports,wi.__wbindgen_wasm_module=i,di}const ki={only:[],source:"",debug:!1,data:void 0,queue:!1,force:!1};function xi(t,e){console.debug(t,e)}function Di(t){return t&&t.constructor?"Object"===t.constructor.name:"object"==typeof t&&null!==t}class $i{constructor(t={},e={}){this.jobsRunning=0,this.updateQueue=[],this.subscribeQueue=[],this.listenersIgnoreCache=new WeakMap,this.is_match=null,this.destroyed=!1,this.queueRuns=0,this.groupId=0,this.namedGroups=[],this.numberGroups=[],this.traceId=0,this.traceMap=new Map,this.tracing=[],this.savedTrace=[],this.collection=null,this.collections=0,this.cache=new Map,this.splitCache=new Map,this.indices=new Map,this.indicesCount=new Map,this.lastExecs=new WeakMap,this.listeners=new Map,this.waitingListeners=new Map,this.options=Object.assign(Object.assign({},{delimiter:".",debug:!1,extraDebug:!1,useMute:!0,notRecursive:";",param:":",wildcard:"*",experimentalMatch:!1,queue:!1,defaultBulkValue:!0,useCache:!1,useSplitCache:!1,useIndicesCache:!1,maxSimultaneousJobs:1e3,maxQueueRuns:1e3,log:xi,Promise:Promise}),e),this.data=t,this.id=0,this.options.useCache?(this.pathGet=this.cacheGet,this.pathSet=this.cacheSet):(this.pathGet=hi.get,this.pathSet=hi.set),e.Promise?this.resolved=e.Promise.resolve():this.resolved=Promise.resolve(),this.muted=new Set,this.mutedListeners=new Set,this.scan=new ui(this.data,this.options.delimiter,this.options.wildcard),this.destroyed=!1}getDefaultListenerOptions(){return{bulk:!1,bulkValue:this.options.defaultBulkValue,debug:!1,source:"",data:void 0,queue:!1,group:!1}}cacheGet(t,e=this.data,i=!1){const s=t.join(this.options.delimiter),a=this.cache.get(s);if(a){const t=a.deref();if(t)return t}const n=hi.get(t,e,i);return(Di(n)||Array.isArray(n))&&this.cache.set(s,new WeakRef(n)),n}cacheSet(t,e,i=this.data){const s=t.join(this.options.delimiter);return Di(e)||Array.isArray(e)?this.cache.set(s,new WeakRef(e)):this.cache.delete(s),hi.set(t,e,i)}silentSet(t,e){return this.pathSet(this.split(t),e,this.data)}loadWasmMatcher(t){return li(this,void 0,void 0,(function*(){yield wi(t),this.is_match=yi,this.scan=new ui(this.data,this.options.delimiter,this.options.wildcard,this.is_match)}))}same(t,e){return(["number","string","undefined","boolean"].includes(typeof t)||null===t)&&e===t}getListeners(){return this.listeners}destroy(){this.destroyed=!0,this.data=void 0,this.listeners=new Map,this.waitingListeners=new Map,this.updateQueue=[],this.jobsRunning=0}match(t,e,i=!0){return this.is_match?this.is_match(t,e):t===e||(t===this.options.wildcard||e===this.options.wildcard||!(!i&&this.getIndicesCount(this.options.delimiter,t)<this.getIndicesCount(this.options.delimiter,e))&&this.scan.match(t,e))}getIndicesOf(t,e){if(this.options.useIndicesCache&&this.indices.has(e))return this.indices.get(e);const i=t.length;if(0==i)return[];let s,a=0,n=[];for(;(s=e.indexOf(t,a))>-1;)n.push(s),a=s+i;return this.options.useIndicesCache&&this.indices.set(e,n),n}getIndicesCount(t,e){if(this.options.useIndicesCache&&this.indicesCount.has(e))return this.indicesCount.get(e);const i=t.length;if(0==i)return 0;let s,a=0,n=0;for(;(s=e.indexOf(t,a))>-1;)n++,a=s+i;return this.options.useIndicesCache&&this.indicesCount.set(e,n),n}cutPath(t,e){if(""===e)return"";if((t=this.cleanNotRecursivePath(t))===(e=this.cleanNotRecursivePath(e)))return t;const i=this.getIndicesCount(this.options.delimiter,e),s=this.getIndicesOf(this.options.delimiter,t);return t.substring(0,s[i])}trimPath(t){return(t=this.cleanNotRecursivePath(t)).charAt(0)===this.options.delimiter?t.substr(1):t}split(t){if(""===t)return[];if(!this.options.useSplitCache)return t.split(this.options.delimiter);const e=this.splitCache.get(t);if(e)return e.slice();const i=t.split(this.options.delimiter);return this.splitCache.set(t,i.slice()),i}isWildcard(t){return t.includes(this.options.wildcard)||this.hasParams(t)}isNotRecursive(t){return t.endsWith(this.options.notRecursive)}cleanNotRecursivePath(t){return this.isNotRecursive(t)?t.substring(0,t.length-1):t}hasParams(t){return t.includes(this.options.param)}getParamsInfo(t){let e={replaced:"",original:t,params:{}},i=0,s=[];for(const a of this.split(t)){e.params[i]={original:a,replaced:"",name:""};const t=new RegExp(`\\${this.options.param}([^\\${this.options.delimiter}\\${this.options.param}]+)`,"g");let n=t.exec(a);n?(e.params[i].name=n[1],t.lastIndex=0,e.params[i].replaced=a.replace(t,this.options.wildcard),s.push(e.params[i].replaced),i++):(delete e.params[i],s.push(a),i++)}return e.replaced=s.join(this.options.delimiter),e}getParams(t,e){if(!t)return;const i=this.split(e),s={};for(const e in t.params){s[t.params[e].name]=i[e]}return s}waitForAll(t,e){const i={};for(let e of t)i[e]={dirty:!1},this.hasParams(e)&&(i[e].paramsInfo=this.getParamsInfo(e)),i[e].isWildcard=this.isWildcard(e),i[e].isRecursive=!this.isNotRecursive(e);return this.waitingListeners.set(t,{fn:e,paths:i}),e(i),function(){this.waitingListeners.delete(t)}}executeWaitingListeners(t){if(!this.destroyed)for(const e of this.waitingListeners.values()){const{fn:i,paths:s}=e;let a=0,n=0;for(let e in s){const i=s[e];let o=!1;i.isRecursive&&(t=this.cutPath(t,e)),i.isWildcard&&this.match(e,t)&&(o=!0),t===e&&(o=!0),o&&(i.dirty=!0),i.dirty&&a++,n++}a===n&&i(s)}}subscribeAll(t,e,i=this.getDefaultListenerOptions()){if(this.destroyed)return()=>{};let s=[],a=0,n=null;"boolean"==typeof i.group&&i.group?(this.groupId++,n=this.groupId,i.bulk=!0):"string"==typeof i.group&&(i.bulk=!0,n=i.group);for(const o of t)s.push(this.subscribe(o,e,i,{all:t,index:a,groupId:n})),a++;return function(){for(const t of s)t()}}getCleanListenersCollection(t={}){return Object.assign({listeners:new Map,isRecursive:!1,isWildcard:!1,hasParams:!1,match:void 0,paramsInfo:void 0,path:void 0,originalPath:void 0,count:0},t)}getCleanListener(t,e=this.getDefaultListenerOptions()){return{fn:t,options:Object.assign(Object.assign({},this.getDefaultListenerOptions()),e),groupId:null}}getListenerCollectionMatch(t,e,i){t=this.cleanNotRecursivePath(t);const s=this;return function(a,n=!1){let o=t;return e?a=s.cutPath(a,t):o=s.cutPath(s.cleanNotRecursivePath(t),a),n&&console.log("[getListenerCollectionMatch]",{listenerPath:t,scopedListenerPath:o,path:a,isRecursive:e,isWildcard:i}),!(!i||!s.match(o,a,e))||o===a}}getListenersCollection(t,e){if(this.listeners.has(t)){let i=this.listeners.get(t);return i.listeners.set(++this.id,e),e.id=this.id,i}const i=this.hasParams(t);let s;i&&(s=this.getParamsInfo(t));let a={isRecursive:!this.isNotRecursive(t),isWildcard:this.isWildcard(t),hasParams:i,paramsInfo:s,originalPath:t,path:i?s.replaced:t};a.isRecursive||(a.path=this.cleanNotRecursivePath(a.path));let n=this.getCleanListenersCollection(Object.assign(Object.assign({},a),{match:this.getListenerCollectionMatch(a.path,a.isRecursive,a.isWildcard)}));return this.id++,n.listeners.set(this.id,e),e.id=this.id,this.listeners.set(a.originalPath,n),n}subscribe(t,e,i=this.getDefaultListenerOptions(),s={all:[t],index:0,groupId:null}){if(this.destroyed)return()=>{};this.jobsRunning++;const a="subscribe";let n=this.getCleanListener(e,i);i.group&&(i.bulk=!0,"string"==typeof i.group?n.groupId=i.group:s.groupId&&(n.groupId=s.groupId)),this.listenersIgnoreCache.set(n,{truthy:[],falsy:[]});const o=this.getListenersCollection(t,n);i.debug&&console.log("[subscribe]",{listenerPath:t,options:i}),o.count++;let r=!0;if(n.groupId&&("string"==typeof n.groupId?this.namedGroups.includes(n.groupId)?r=!1:this.namedGroups.push(n.groupId):"number"==typeof n.groupId&&(this.numberGroups.includes(n.groupId)?r=!1:this.numberGroups.push(n.groupId))),r){const s=this.cleanNotRecursivePath(o.path),r=this.split(s);if(o.isWildcard){const r=this.scan.get(s);if(i.bulk){const s=[];for(const t in r)this.isMuted(t)||s.push({path:t,params:this.getParams(o.paramsInfo,t),value:r[t]});this.isMuted(e)||e(s,{type:a,listener:n,listenersCollection:o,path:{listener:t,update:void 0,resolved:void 0},options:i,params:void 0})}else for(const s in r)this.isMuted(s)||this.isMuted(e)||e(r[s],{type:a,listener:n,listenersCollection:o,path:{listener:t,update:void 0,resolved:this.cleanNotRecursivePath(s)},params:this.getParams(o.paramsInfo,s),options:i})}else this.isMuted(s)||this.isMuted(e)||e(this.pathGet(r,this.data),{type:a,listener:n,listenersCollection:o,path:{listener:t,update:void 0,resolved:this.cleanNotRecursivePath(t)},params:this.getParams(o.paramsInfo,s),options:i})}return this.debugSubscribe(n,o,t),this.jobsRunning--,this.unsubscribe(t,this.id)}unsubscribe(t,e){const i=this.listeners,s=i.get(t);return function(){s.listeners.delete(e),s.count--,0===s.count&&i.delete(t)}}runQueuedListeners(){if(!this.destroyed&&0!==this.subscribeQueue.length)if(0===this.jobsRunning){this.queueRuns=0;const t=[...this.subscribeQueue];for(let e=0,i=t.length;e<i;e++)t[e]();this.subscribeQueue.length=0}else{if(this.queueRuns++,this.queueRuns>=this.options.maxQueueRuns)throw this.queueRuns=0,new Error("Maximal number of queue runs exhausted.");Promise.resolve().then((()=>this.runQueuedListeners())).catch((t=>{throw t}))}}getQueueNotifyListeners(t,e=[]){for(const i in t){if(this.isMuted(i))continue;let{single:s,bulk:a}=t[i];for(const t of s){let i=!1,s=t.listener.id+":"+t.eventInfo.path.resolved;t.eventInfo.path.resolved||(s=t.listener.id+":"+t.eventInfo.path.listener);for(const t of e)if(s===t.resolvedIdPath){i=!0;break}if(i)continue;const a=this.debugTime(t);if(!this.isMuted(t.listener.fn))if(t.listener.options.queue&&this.jobsRunning)this.subscribeQueue.push((()=>{t.listener.fn(t.value?t.value():void 0,t.eventInfo)}));else{let i=t.listener.id+":"+t.eventInfo.path.resolved;t.eventInfo.path.resolved||(i=t.listener.id+":"+t.eventInfo.path.listener),e.push({id:t.listener.id,resolvedPath:t.eventInfo.path.resolved,resolvedIdPath:i,originalFn:t.listener.fn,fn:()=>{t.listener.fn(t.value?t.value():void 0,t.eventInfo)},options:t.listener.options,groupId:t.listener.groupId})}this.debugListener(a,t)}for(const t of a){let i=!1;for(const s of e)if(s.id===t.listener.id){i=!0;break}if(i)continue;const s=this.debugTime(t),a=[];for(const e of t.value)a.push(Object.assign(Object.assign({},e),{value:e.value?e.value():void 0}));if(!this.isMuted(t.listener.fn))if(t.listener.options.queue&&this.jobsRunning)this.subscribeQueue.push((()=>!this.jobsRunning&&(t.listener.fn(a,t.eventInfo),!0)));else{let i=t.listener.id+":"+t.eventInfo.path.resolved;t.eventInfo.path.resolved||(i=t.listener.id+":"+t.eventInfo.path.listener),e.push({id:t.listener.id,resolvedPath:t.eventInfo.path.resolved,resolvedIdPath:i,originalFn:t.listener.fn,fn:()=>{t.listener.fn(a,t.eventInfo)},options:t.listener.options,groupId:t.listener.groupId})}this.debugListener(s,t)}}return Promise.resolve().then((()=>this.runQueuedListeners())),e}shouldIgnore(t,e){if(!t.options.ignore)return!1;for(const i of t.options.ignore){if(e.startsWith(i))return!0;if(this.is_match&&this.is_match(i,e))return!0;{const t=this.cutPath(e,i);if(this.match(i,t))return!0}}return!1}getSubscribedListeners(t,e,i,s="update",a=null){i=Object.assign(Object.assign({},ki),i);const n={};for(let[o,r]of this.listeners)if(r.match(t)){n[o]={single:[],bulk:[],bulkData:[]};const l=r.paramsInfo?this.getParams(r.paramsInfo,t):void 0,c=this.cutPath(t,o),u=r.isRecursive||r.isWildcard?()=>this.get(c):()=>e,h=[{value:u,path:t,params:l}];for(const e of r.listeners.values())this.shouldIgnore(e,t)?e.options.debug&&console.log("[getSubscribedListeners] Listener was not fired because it was ignored.",{listener:e,listenersCollection:r}):e.options.bulk?n[o].bulk.push({listener:e,listenersCollection:r,eventInfo:{type:s,listener:e,path:{listener:o,update:a||t,resolved:void 0},params:l,options:i},value:h}):n[o].single.push({listener:e,listenersCollection:r,eventInfo:{type:s,listener:e,path:{listener:o,update:a||t,resolved:this.cleanNotRecursivePath(t)},params:l,options:i},value:u})}else if(this.options.extraDebug){let e=!1;for(const i of r.listeners.values())i.options.debug&&(e=!0,console.log("[getSubscribedListeners] Listener was not fired because there was no match.",{listener:i,listenersCollection:r,updatePath:t}));e&&r.match(t,!0)}return n}notifySubscribedListeners(t,e,i,s="update",a=null){return this.getQueueNotifyListeners(this.getSubscribedListeners(t,e,i,s,a))}useBulkValue(t){for(const[e,i]of t.listeners){if(i.options.bulk&&i.options.bulkValue)return!0;if(!i.options.bulk)return!0}return!1}getNestedListeners(t,e,i,s="update",a=null){const n={},o={};for(let[r,l]of this.listeners){if(!l.isRecursive)continue;const c=this.cutPath(r,t);if(this.match(c,t)){n[r]={single:[],bulk:[]};const u=this.trimPath(r.substr(c.length)),h=this.useBulkValue(l);let d;h&&(d=o[u]?o[u]:new ui(e,this.options.delimiter,this.options.wildcard).get(u),o[u]=d);const m=l.paramsInfo?this.getParams(l.paramsInfo,t):void 0,g=[],f={};for(const[e,o]of l.listeners)if(h)for(const c in d){const u=()=>d[c],h=[t,c].join(this.options.delimiter),p={type:s,listener:o,listenersCollection:l,path:{listener:r,update:a||t,resolved:this.cleanNotRecursivePath(h)},params:m,options:i};this.shouldIgnore(o,t)||(o.options.bulk?(g.push({value:u,path:h,params:m}),f[e]=o):n[r].single.push({listener:o,listenersCollection:l,eventInfo:p,value:u}))}else{const c={type:s,listener:o,listenersCollection:l,path:{listener:r,update:a||t,resolved:void 0},params:m,options:i};if(this.shouldIgnore(o,t))continue;o.options.bulk?(g.push({value:void 0,path:void 0,params:m}),f[e]=o):n[r].single.push({listener:o,listenersCollection:l,eventInfo:c,value:void 0})}for(const e in f){const a=f[e],o={type:s,listener:a,listenersCollection:l,path:{listener:r,update:t,resolved:void 0},options:i,params:m};n[r].bulk.push({listener:a,listenersCollection:l,eventInfo:o,value:g})}}else if(this.options.extraDebug)for(const e of l.listeners.values())e.options.debug&&console.log("[getNestedListeners] Listener was not fired because there was no match.",{listener:e,listenersCollection:l,currentCutPath:c,updatePath:t})}return n}notifyNestedListeners(t,e,i,s="update",a,n=null){return this.getQueueNotifyListeners(this.getNestedListeners(t,e,i,s,n),a)}getNotifyOnlyListeners(t,e,i,s="update",a=null){const n={};if("object"!=typeof i.only||!Array.isArray(i.only)||void 0===i.only[0]||!this.canBeNested(e))return n;for(const o of i.only){const r=new ui(e,this.options.delimiter,this.options.wildcard).get(o);n[o]={bulk:[],single:[]};for(const e in r){const l=t+this.options.delimiter+e;for(const[c,u]of this.listeners){const h=u.paramsInfo?this.getParams(u.paramsInfo,l):void 0;if(this.match(c,l)){const d=()=>r[e],m=[{value:d,path:l,params:h}];for(const e of u.listeners.values()){const r={type:s,listener:e,listenersCollection:u,path:{listener:c,update:a||t,resolved:this.cleanNotRecursivePath(l)},params:h,options:i};this.shouldIgnore(e,t)||(e.options.bulk?n[o].bulk.some((t=>t.listener===e))||n[o].bulk.push({listener:e,listenersCollection:u,eventInfo:r,value:m}):n[o].single.push({listener:e,listenersCollection:u,eventInfo:r,value:d}))}}}}}return n}runQueue(t){const e=[];for(const i of t)i.options.group?e.includes(i.groupId)||(i.fn(),e.push(i.groupId)):i.fn()}sortAndRunQueue(t,e){t.sort((function(t,e){return t.id-e.id})),this.options.debug&&console.log(`[deep-state-observer] queue for ${e}`,t),this.runQueue(t)}notifyOnly(t,e,i,s="update",a=""){const n=this.getQueueNotifyListeners(this.getNotifyOnlyListeners(t,e,i,s,a));this.sortAndRunQueue(n,t)}canBeNested(t){return"object"==typeof t&&null!==t}getUpdateValues(t,e){let i=e;return"function"==typeof e&&(i=e(t)),{newValue:i,oldValue:t}}wildcardNotify(t,e){let i=[];for(const e of t)this.getQueueNotifyListeners(e,i);for(const t of e)this.executeWaitingListeners(t);return this.jobsRunning--,i}wildcardUpdate(t,e,i=ki,s=!1){++this.jobsRunning,i=Object.assign(Object.assign({},ki),i);const a=this.scan.get(t),n={};for(const t in a){const s=this.split(t),{oldValue:o,newValue:r}=this.getUpdateValues(a[t],e);this.same(r,o)&&!i.force||(this.pathSet(s,r,this.data),n[t]=r)}const o=[],r=[];for(const e in n){const s=n[e];i.only.length?o.push(this.getNotifyOnlyListeners(e,s,i,"update",t)):(o.push(this.getSubscribedListeners(e,s,i,"update",t)),this.canBeNested(s)&&o.push(this.getNestedListeners(e,s,i,"update",t))),i.debug&&this.options.log("Wildcard update",{path:e,newValue:s}),r.push(e)}if(s){const e=this;return function(){const i=e.wildcardNotify(o,r);e.sortAndRunQueue(i,t)}}const l=this.wildcardNotify(o,r);this.sortAndRunQueue(l,t)}runUpdateQueue(){if(!this.destroyed)for(;this.updateQueue.length&&this.updateQueue.length<this.options.maxSimultaneousJobs;){const t=this.updateQueue.shift();t.options.queue=!1,this.update(t.updatePath,t.fnOrValue,t.options,t.multi)}}updateNotify(t,e,i){const s=this.notifySubscribedListeners(t,e,i);this.canBeNested(e)&&this.notifyNestedListeners(t,e,i,"update",s),this.sortAndRunQueue(s,t),this.executeWaitingListeners(t)}updateNotifyAll(t){let e=[];for(const i of t){const t=i.newValue;if(this.tracing.length){const e=this.tracing[this.tracing.length-1],s=this.traceMap.get(e);s.changed.push({traceId:e,updatePath:i.updatePath,fnOrValue:t,options:i.options}),this.traceMap.set(e,s)}e=e.concat(this.notifySubscribedListeners(i.updatePath,t,i.options)),this.canBeNested(i.newValue)&&this.notifyNestedListeners(i.updatePath,t,i.options,"update",e)}this.runQueue(e)}updateNotifyOnly(t,e,i){this.notifyOnly(t,e,i),this.executeWaitingListeners(t)}update(t,e,i=Object.assign({},ki),s=!1){if(this.destroyed)return;if(this.collection)return this.collection.update(t,e,i);if(this.tracing.length){const s=this.tracing[this.tracing.length-1],a=this.traceMap.get(s);a.changed.push({traceId:s,updatePath:t,fnOrValue:e,options:i}),this.traceMap.set(s,a)}const a=this.jobsRunning;if((this.options.queue||i.queue)&&a){if(a>this.options.maxSimultaneousJobs)throw new Error("Maximal simultaneous jobs limit reached.");this.updateQueue.push({updatePath:t,fnOrValue:e,options:i,multi:s});const n=Promise.resolve().then((()=>{this.runUpdateQueue()}));return s?function(){return n}:n}if(this.isWildcard(t))return this.wildcardUpdate(t,e,i,s);++this.jobsRunning;const n=this.split(t),o=this.pathGet(n,this.data);let{oldValue:r,newValue:l}=this.getUpdateValues(o,e);if(i.debug&&this.options.log(`Updating ${t} ${i.source?`from ${i.source}`:""}`,{oldValue:r,newValue:l}),this.same(l,r)&&!i.force)return--this.jobsRunning,s?function(){return l}:l;if(this.pathSet(n,l,this.data),null===(i=Object.assign(Object.assign({},ki),i)).only)return--this.jobsRunning,s?function(){}:l;if(i.only.length){if(--this.jobsRunning,s){const e=this;return function(){return e.updateNotifyOnly(t,l,i)}}return this.updateNotifyOnly(t,l,i),l}if(s){--this.jobsRunning;const e=this;return function(){return e.updateNotify(t,l,i)}}return this.updateNotify(t,l,i),--this.jobsRunning,l}multi(t=!1){if(this.destroyed)return{update(){return this},done(){},getStack:()=>[]};if(this.collection)return this.collection;const e=this,i=[],s=[];return{update(a,n,o=ki){if(t){const t=e.split(a);let s=n;const r=e.pathGet(t,e.data);"function"==typeof s&&(s=s(r)),e.pathSet(t,s,e.data),i.push({updatePath:a,newValue:s,options:o})}else s.push(e.update(a,n,o,!0));return this},done(){if(0===e.collections){if(t)e.updateNotifyAll(i);else for(const t of s)t();i.length=0}},getStack:()=>i}}collect(){return this.collections++,this.collection||(this.collection=this.multi(!0)),this.collection}executeCollected(){if(this.collections--,0===this.collections&&this.collection){const t=this.collection;this.collection=null,t.done()}}getCollectedCount(){return this.collections}getCollectedStack(){return this.collection?this.collection.getStack():[]}get(t=void 0){if(!this.destroyed)return void 0===t||""===t?this.data:this.isWildcard(t)?this.scan.get(t):this.pathGet(this.split(t),this.data)}last(t){let e=this.lastExecs.get(t);e||(e={calls:0},this.lastExecs.set(t,e));const i=++e.calls;this.resolved.then((()=>{i===e.calls&&(this.lastExecs.set(t,{calls:0}),t())}))}isMuted(t){if(!this.options.useMute)return!1;if("function"==typeof t)return this.isMutedListener(t);for(const e of this.muted){const i=!this.isNotRecursive(e),s=this.trimPath(e);if(this.match(t,s))return!0;if(this.match(s,t))return!0;if(i){const i=this.cutPath(s,t);if(this.match(i,e))return!0;if(this.match(e,i))return!0}}return!1}isMutedListener(t){return this.mutedListeners.has(t)}mute(t){if("function"==typeof t)return this.mutedListeners.add(t);this.muted.add(t)}unmute(t){if("function"==typeof t)return this.mutedListeners.delete(t);this.muted.delete(t)}debugSubscribe(t,e,i){t.options.debug&&this.options.log("listener subscribed",{listenerPath:i,listener:t,listenersCollection:e})}debugListener(t,e){(e.eventInfo.options.debug||e.listener.options.debug)&&this.options.log("Listener fired",{time:Date.now()-t,info:e})}debugTime(t){return t.listener.options.debug||t.eventInfo.options.debug?Date.now():0}startTrace(t,e=null){this.traceId++;const i=this.traceId+":"+t;return this.traceMap.set(i,{id:i,sort:this.traceId,stack:this.tracing.map((t=>t)),additionalData:e,changed:[]}),this.tracing.push(i),i}stopTrace(t){const e=this.traceMap.get(t);return this.tracing.pop(),this.traceMap.delete(t),e}saveTrace(t){const e=this.traceMap.get(t);return this.tracing.pop(),this.traceMap.delete(t),this.savedTrace.push(e),e}getSavedTraces(){const t=this.savedTrace.map((t=>t));return t.sort(((t,e)=>t.sort-e.sort)),this.savedTrace=[],t}}const Si=oe.mergeDeep;function Pi(t){const e=ri();let i=function(t,e){return oe.mergeDeep(t,e)};"function"==typeof t.merge&&(i=t.merge);const s=function(t,e,i){const s=i({},e.actions),a=i({},t.actions||{});let n=[...Object.keys(s),...Object.keys(a)];n=n.filter((t=>n.includes(t)));const o={};for(const t of n)o[t]=[],void 0!==s[t]&&Array.isArray(s[t])&&(o[t]=[...s[t]]),void 0!==a[t]&&Array.isArray(a[t])&&(o[t]=[...o[t],...a[t]]);return delete t.actions,delete e.actions,o}(t,e,i),a={config:i(e,t)};return a.config.actions=s,a}me.extend(fe),me.extend(be);const zi=!0;const Ci=ri().locale,Ii={name:"gstc",GSTCID:ye.GSTCID,isGSTCID:ye.isGSTCID,sourceID:ye.sourceID,fromArray(t){const e=this.GSTCID,i={};for(const s of t)s.id=e(s.id),"rowId"in s&&(s.rowId=e(s.rowId)),"parentId"in s&&(s.parentId=e(s.parentId)),"dependant"in s&&(s.dependant=s.dependant.map((t=>e(t)))),"linkedWith"in s&&(s.linkedWith=s.linkedWith.map((t=>e(t)))),i[s.id]=s;return i},stateFromConfig:function(t){return this.state=new $i(Pi(t),{delimiter:".",useMute:zi,maxSimultaneousJobs:1e3,Promise:t.Promise,debug:!!t.debug,useCache:!1,useSplitCache:!0,useIndicesCache:!1,defaultBulkValue:!1})},wasmStateFromConfig:function(t,e="./wildcard_matcher_bg.wasm"){return Ie(this,void 0,void 0,(function*(){return this.state=new $i(Pi(t),{delimiter:".",useMute:zi,maxSimultaneousJobs:1e3}),yield this.state.loadWasmMatcher(e),this.state}))},merge:Si,mergeDeep:Si,clone:function(t){return Si({},t)},lithtml:B,html:B,vido:he,date:(t,e=!1,i=Si({},Ci))=>(me.locale(i,null,!0),e?t?me.utc(t).locale(i.name):me.utc().locale(i.name):t?me(t).locale(i.name):me().locale(i.name)),setPeriod(t){return this.state.update("config.chart.time.period",t),this.state.get("config.chart.time.zoom")},dayjs:me};
/**
     * Main api
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */
function Ti(t,e){const{api:i,onDestroy:s,state:a,update:n,StyleMap:o}=t,r=i.name,l=new Map;let c;s(a.subscribe("config.debug",(t=>c=t)));let u=!1;function h(t,e){"fullReload"!==e.options.data&&f.fullReload(e,t)}function d(t,e){var i;["config","config.chart.items"].includes(e.path.update)||"config.list.rows"===e.path.update&&"expanded"!==(null===(i=e.options.data)||void 0===i?void 0:i.name)||(["config.list.rows.*.parentId"].includes(e.path.listener)?function(t,e){"subscribe"!==e.type&&"sortRowsByColumn"!==e.options.data&&"fullReload"!==e.options.data&&f.partialReload(!0,e,t)}(t,e):function(t,e){"subscribe"!==e.type&&"fullReload"!==e.options.data&&f.partialReload(!1,e,t)}(t,e))}function m(t=null,e){e&&"subscribe"===e.type||e&&e.options.data&&"update-vertically-visible-items"===e.options.data||f.minimalReload(e,t)}function g(){l.forEach((t=>t())),l.clear(),c&&console.log("Plugins destroyed.")}var f={className:De(r),styleMap:new o({}),initializePlugins(){s(a.subscribe("config.plugins",(e=>{if(void 0!==e&&Array.isArray(e)){l.forEach(((t,i)=>{e.includes(i)||(t(),l.delete(i))}));for(const i of e){if(l.has(i))continue;let e=i(t);"function"!=typeof e&&Object.prototype.hasOwnProperty.call(e,"destroy")?e=e.destroy.bind(e):"function"!=typeof e&&(e=()=>{}),l.set(i,e)}}c&&console.log("Plugins initialized.")}))),s(g)},heightChange(){if(i.isMutedMethod("heightChange"))return;const t=a.get("config"),e=a.get("config.scroll.horizontal.width"),s=t.innerHeight-e;a.multi(!0).update("$data.chart.dimensions.heightWithoutScrollBar",s).update("$data.chart.dimensions.innerHeight",t.innerHeight).update("$data.chart.dimensions.height",t.innerHeight+t.headerHeight).update("$data.height",t.innerHeight+t.headerHeight).done(),f.styleMap.style["--height"]=s+"px",f.styleMap.style.height=t.innerHeight+t.headerHeight+"px",i.calculateVerticalScrollSize(),n()},resizerActiveChange(t){u=t,f.className=De(i.name),u&&(f.className+=` ${i.name}__list-column-header-resizer--active`),n()},generateTreeFromVisibleRows(){if(i.isMutedMethod("generateTreeFromVisibleRows"))return;const t=i.getVisibleRowsId(),e=i.getAllRows(),s=i.getRowsData(),a={},o=[];for(const i of t){e[i];const t=s[i];a[i]=t;for(const e of t.items)o.push(e)}i.makeTreeMap(a,o,!0),n()},generateTree(t=!0){let e=a.get("$data.list.rowsIds");if(!e)return;e=e.slice();const s=a.get("config.list.rows");if(!t)return f.generateTreeFromVisibleRows();i.fillEmptyRowValues(s);let n=i.getAllRows();const o=i.getRowsData(),r=a.get("config.chart.items");i.prepareItems(r),i.makeTreeMap(o,Object.keys(r)),n=i.sortRowsByChildren(Object.values(n).map((t=>t.id)));a.get("config").list.rows=n;const l=Object.keys(n);a.update("$data.list.rowsIds",l),i.setAllRowsIdsCache(l)},prepareExpanded(){if(i.isMutedMethod("prepareExpanded"))return;const t=i.getAllRows();if(!t)return;const e=i.generateRowsWithParentsExpanded(t);a.update("$data.list.rowsWithParentsExpanded",e)},generateVisibleRowsAndItems(){if(i.isMutedMethod("generateVisibleRowsAndItems"))return;const t=i.getVisibleRows(),e=a.get("$data.list.visibleRows")||[];let s=!0;t.length!==e.length?s=!0:t.length&&(s=t.join("|")!==e.join("|"));let o=a.multi(!0);s&&(o=o.update("$data.list.visibleRows",t));const r=[],l=[],c=i.getRowsData(),u=a.get("config.chart.items");for(const e of t){const t=c[e];for(const e of t.items){r.push(e);const t=u[e];t&&i.isItemHorizontallyInViewport(t)&&l.push(e)}}o=o.update("$data.chart.verticallyVisibleItems",r),o=o.update("$data.chart.viewPortVisibleItems",l),o.done(),n()},updateItemsVerticalPositionsOfVisibleRows(){const t=i.getAllItems(),e=i.getItemsData(),s=i.getRowsData(),a=i.getVisibleRows();let n=[];for(const t of a){const e=s[t];e&&(n=n.concat(e.items))}for(const a of n){const n=t[a];n&&i.calculateItemVerticalPosition(a,e[a],s[n.rowId])}},getMutedListeners(){const t=[];return a.isMutedListener(h)&&t.push(h),a.isMutedListener(d)&&t.push(d),a.isMutedListener(m)&&t.push(m),t},triggerLoadedEvent(){Promise.resolve().then((()=>{const t=a.get("$data.elements.main");if(!t)return;const e=t.parentNode;if(!e)return;const i=new Event("gstc-loaded");t.dispatchEvent(i),e.dispatchEvent(i)}))},getLastPageDatesWidth(t,e){if(0===e.length)return 0;let i=0,s=0;if(e.length){if(Math.ceil(e[e.length-1].rightPx)>t)for(let a=e.length-1;a>=0;a--){const n=e[a];if(i+=n.width,i>=t){i-=n.width;break}s++}}return a.update("$data.scroll.horizontal",(t=>(t.lastPageSize=i,t.lastPageCount=s,t))),i},formatDate(e,i,s){const a=De("chart-calendar-date");return e.format({timeStart:i.leftGlobalDate.locale(s),timeEnd:i.rightGlobalDate.locale(s),vido:t,className:a,props:{date:i}})},generatePeriodDates(t,e,s,n){const o=t.period,r=e.fromDate,l=e.toDate,c=a.get("config.locale.name");let u=i.time.generatePeriodDates({leftDate:r,rightDate:l,level:s,levelIndex:n,period:o,time:e,callOnDate:!1,callOnLevelDates:!0});u=i.time.recalculateDatesWidths(u,e),n!==e.level&&(u=i.time.alignLevelToMain(n,u,e)),u=i.time.recalculateDatesPositions(u,e,!1,!1);for(const e of u)e.formatted=f.formatDate(t,e,c);return u},limitGlobal:t=>(t.leftGlobal<t.from&&(t.leftGlobal=t.from,t.leftGlobalDate=i.time.date(t.leftGlobal),t.leftGlobal=t.leftGlobalDate.valueOf()),t.rightGlobal>t.to&&(t.rightGlobal=t.to,t.rightGlobalDate=i.time.date(t.rightGlobal),t.rightGlobal=t.rightGlobalDate.valueOf()),t),setCenter(t){let e=Math.floor(t.rightGlobalDate.diff(t.leftGlobalDate,"millisecond",!0)/2);const s=i.time.getRightViewDate(t);s&&(s.width!==s.currentView.width&&(e-=(s.width-s.currentView.width)*t.timePerPixel),t.centerGlobalDate=t.leftGlobalDate.add(e,"millisecond"),t.centerGlobal=t.centerGlobalDate.valueOf())},guessPeriod(t,e){if(!t.zoom)return t;for(const i of e){const e=i.find((e=>+t.zoom<=+e.zoomTo));e&&e.main&&(t.period=e.period)}return t},getFormatAndLevelIndexForZoom(t,e=a.get("config.chart.calendarLevels")){let i=0,s=0;for(const a of e){for(const e of a)if(e.main&&t<=e.zoomTo)return s=i,{levelIndex:s,format:e};i++}if(!s)throw new Error(`There is no main date format for zoom ${t}.`)},generateAllDates(t,e){if(!t.zoom)return[];t.allDates=new Array(e.length),i.time.stopCheckingCurrentDates();const{format:s,levelIndex:a}=f.getFormatAndLevelIndexForZoom(t.zoom,e);t.level=a,t.allDates[t.level]=f.generatePeriodDates(s,t,e[a],t.level);let n=0;for(const s of e){const e=s.find((e=>+t.zoom<=+e.zoomTo));n!==t.level&&(t.allDates[n]=f.generatePeriodDates(e,t,s,n)),i.time.setDatesCacheLevel(n,t.allDates[n],t),n++}return i.time.checkCurrentDates(!0,t),t.allDates},getPeriodDatesAndCalculateViewOffsetFromAllDates(t,e){if(!t.length)return[];const s=t.filter((t=>t.leftGlobal<e.rightGlobal&&t.rightGlobal>=e.rightGlobal||t.leftGlobal<=e.leftGlobal&&t.rightGlobal>e.leftGlobal||t.leftGlobal>=e.leftGlobal&&t.rightGlobal<=e.rightGlobal));if(!s.length)return[];let a=0;e.leftGlobal>s[0].leftGlobal&&(a=i.time.getDatesDiffPx(e.leftGlobalDate,s[0].leftGlobalDate,e,!0));let n=a;const o=s.length-1;return s.map(((t,s)=>{if(t.currentView={leftPx:n,rightPx:n+t.width,width:t.width+a,leftGlobalDate:i.time.date(t.leftGlobal-a*e.timePerPixel),rightGlobalDate:i.time.date(t.rightGlobal),durationMs:0},t.currentView.durationMs=t.currentView.rightGlobalDate.valueOf()-t.currentView.leftGlobalDate.valueOf(),a=0,n+=t.width,s===o&&t.rightGlobal>e.rightGlobal){let s=0;t.currentView.leftPx<0&&(s=t.currentView.leftPx,t.currentView.leftPx=0),t.currentView.width=(e.rightGlobal+1-t.leftGlobal)/e.timePerPixel+s,t.currentView.rightPx=t.currentView.leftPx+t.currentView.width,t.currentView.rightGlobalDate=i.time.date(t.leftGlobal+t.currentView.width*e.timePerPixel)}return t}))},updateLevels(t,e){t.levels=[],t.currentZoomLevelFormatting=[];let i=0;for(const s of e){const e=s.find((e=>+t.zoom<=+e.zoomTo));if(t.currentZoomLevelFormatting[i]=e,e.main&&(t.format=e,t.level=i),e){let a=f.getPeriodDatesAndCalculateViewOffsetFromAllDates(t.allDates[i],t);t.onCurrentViewLevelDates.forEach((n=>{a=n({dates:a,format:e,time:t,level:s,levelIndex:i})})),t.levels.push(a)}i++}},updateLocale(){const t=a.get("$data.chart.time"),e=a.get("config.locale.name");let i=0;for(const s of t.allDates){const a=t.currentZoomLevelFormatting[i];for(const t of s)t.formatted=f.formatDate(a,t,e);i++}i=0;for(const s of t.levels){const a=t.currentZoomLevelFormatting[i];for(const t of s)t.formatted=f.formatDate(a,t,e);i++}n()},calculateTotalViewDurationFromDates(t){let e=0,i=0;for(const s of t.allDates[t.level])e+=s.width,i+=s.rightGlobal+1-s.leftGlobal;t.totalViewDurationPx=e,t.totalViewDurationMs=i},calculateRightGlobal(t,e,s,n,o){const r=a.get("$data.chart.time"),l=t.endOf(r.period).valueOf(),c=i.time.findDateAtTime(l,s);if(!c)return t.valueOf();let u=s.indexOf(c),h=c.leftGlobal,d=0;for(let t=s.length;u<t;u++){const t=s[u];if(h=t.rightGlobal,d+=t.width,d+n>=e)break}return h+o},updateViewPortVisibleItems(t=!1,e=a.get("$data.chart.time")){const s=a.get("$data.chart.verticallyVisibleItems"),n=i.getItems(s);if(!n)return[];const o=[];for(const t of n)i.isItemHorizontallyInViewport(t,e.leftGlobal,e.rightGlobal)&&o.push(t.id);if(t){a.get("$data.chart").viewPortVisibleItems=o}else a.update("$data.chart.viewPortVisibleItems",o);return n},updateViewPortVisibleItemsPositions(t=a.get("$data.chart.time"),e=a.multi(!0)){const s=a.get("$data.chart.viewPortVisibleItems"),n=i.getItems(s);if(!n)return e;const o=i.getAllRows(),r=i.getRowsData(),l=i.getItemsData();if(!o)return e;if(!t.levels||!t.levels[t.level])return e;let c=!1;for(const s of n){if(!s)return e;const a=o[s.rowId],n=r[s.rowId];if(!a||!n)continue;const u=i.mergeDeep({},l[s.id]),h=u.position,d=i.calculateItemPosition(s.id,l[s.id],n,t,s);for(const t in h)if(d[t]!==h[t]){c=!0;break}if(!c)for(const t in u)if(l[s.id][t]!==u[t]){c=!0;break}}return c&&(e=e.update("$data.chart.items",(t=>t),{data:"update-vertically-visible-items"})),e},calculateLeftAndRightGlobalNormally(t,e){const s=t.allDates[t.level],a=e.preciseOffset*t.timePerPixel;let n=s[e.dataIndex];if(!n&&s.length)n=s[s.length-1];else if(!s.length)return;t.leftGlobal=n.leftGlobal-a,t.leftGlobalDate=i.time.date(t.leftGlobal);let o=e.preciseOffset;const r=i.getChartWidth(!1);let l;for(let i=e.dataIndex;i<s.length;i++){const e=s[i];if(o+=e.width,o>=r){const i=(o-r)*t.timePerPixel;l=e.rightGlobal-i;break}}if(!l){l=s[s.length-1].rightGlobal}t.rightGlobal=l,t.rightGlobalDate=i.time.date(t.rightGlobal)},calculateLeftAndRightGlobalFromCenter(t,e,s){const a=i.getChartWidth(!1),n=t.allDates[t.level];if(n.length||(t.leftGlobal=t.from,t.leftGlobalDate=i.time.date(t.leftGlobal),t.rightGlobal=null,t.rightGlobalDate=null),0===s.handlePosPx){t.leftGlobal=t.fromDate.valueOf(),t.leftGlobalDate=i.time.date(t.leftGlobal),t.rightGlobal=i.time.getTimeFromOffsetPx(a,!1,t),t.rightGlobalDate=i.time.date(t.rightGlobal);const e=n[0];return s.dataId=e.id,s.dataIndex=0,s.preciseOffset=0,t}if(s.handlePosPx===s.maxHandlePosPx){t.rightGlobal=t.toDate.valueOf(),t.rightGlobalDate=i.time.date(t.rightGlobal);let e=n[n.length-1];let o=0,r=n.length-1;for(;r>=0;r--){const t=n[r];if(o+=t.width,o>=a){e=t;break}}const l=(o-a)/t.timePerPixel;t.leftGlobal=e.leftGlobal+l,t.leftGlobalDate=i.time.date(t.leftGlobal);const c=n[n.length-1];return s.dataId=c.id,s.dataIndex=n.length-1,s.preciseOffset=0,t}const o=Math.round(a/2);let r=0;for(const e of n){if(e.rightGlobal>t.centerGlobal)break;r++}if(r>=n.length||t.centerGlobal<n[0].leftGlobal||t.centerGlobal>n[n.length-1].rightGlobal)return f.calculateLeftAndRightGlobalNormally(t,s);const l=e.centerGlobal-n[r].leftGlobal;let c,u=-Math.round(l/t.timePerPixel),h=0;for(let t=r;t>=0;t--){const e=n[t];if(u+=e.width,u>=o){c=e,h=t;break}}c||(c=n[0],u=o);const d=u-o,m=Math.round(d*t.timePerPixel);t.leftGlobal=c.leftGlobal+m,t.leftGlobalDate=i.time.date(t.leftGlobal);let g,p=-d;const b=n.length;for(let t=0;t<b;t++){const e=n[t];if(p+=e.width,p>=a){g=e;break}}g||(g=n[n.length-1],p=a);const v=p-a,y=Math.round(v*t.timePerPixel);return t.rightGlobal=g.rightGlobal-y,t.rightGlobalDate=i.time.date(t.rightGlobal),s.dataId=c.id,s.dataIndex=h,s.preciseOffset=-d,t},updateFromToBasedOnDates(t){const e=t.allDates[t.level];e.length&&(t.from=e[0].leftGlobal,t.fromDate=i.time.date(t.from),t.to=e[e.length-1].rightGlobal,t.toDate=i.time.date(t.to))},recalculateTimes(t){if(i.isMutedMethod("recalculateTimes"))return;const s=a.get("config.chart.time"),o=e({},s),r=a.get("$data.chart.time");o.allDates=r.allDates||new Array(o.levels.length),o.datesCache=r.datesCache||{timePerPixel:0,levels:[]};const l=a.get("config.chart.items");if(!(o.from&&o.to||Object.keys(l).length))return;if("number"!=typeof o.from&&void 0!==o.from||"number"!=typeof o.to&&void 0!==o.to)throw new Error("[gantt-schedule-timeline-calendar] 'config.chart.time.from' and 'config.chart.time.to' must be a number (unix epoch milliseconds).");if(!o.from){let t=1/0;for(const e in l){const i=l[e];t>i.time.start&&(t=i.time.start)}o.from=t}if(!o.to){let t=0;for(const e in l){const i=l[e];t<i.time.end&&(t=i.time.end)}o.to=t}o.fromDate||(o.fromDate=i.time.date(o.from)),o.toDate||(o.toDate=i.time.date(o.to));const c=a.get("$data.scroll.vertical.visible"),u=i.getChartWidth(c),h=a.get("config.chart.calendarLevels"),d=a.get("$data.scroll.horizontal");o.calculatedZoomMode||i.time.recalculateFromTo(o),o.leftGlobal||(o.leftGlobal=o.from);const m=t.filter((t=>"items-out-of-view"===t.name));let g=1/0,p=0;if(m.length)for(const t of m)g>t.from&&(g=t.from),p<t.to&&(p=t.to);let b=!1;if((t.find((t=>"reload"===t.name))||t.find((t=>"all"===t.name))||t.find((t=>"from"===t.name))||t.find((t=>"to"===t.name))||t.find((t=>"zoom"===t.name))||t.find((t=>"calculated-zoom-mode"===t.name))||t.find((t=>"align-levels"===t.name))||t.find((t=>"auto-expand-time"===t.name))||t.find((t=>"locale"===t.name)))&&(b=!0),o.calculatedZoomMode&&u){o.totalViewDurationMs=i.time.date(o.to).add(1,o.period).startOf(o.period).diff(o.from,"millisecond"),o.timePerPixel=o.totalViewDurationMs/u,o.totalViewDurationPx=o.totalViewDurationMs/o.timePerPixel,o.zoom=Math.log(o.timePerPixel)/Math.log(2),i.resetHorizontalScroll(),b&&f.generateAllDates(o,h),f.calculateTotalViewDurationFromDates(o),o.timePerPixel=o.totalViewDurationMs/u,o.zoom=Math.log(o.timePerPixel)/Math.log(2);for(let t=0;t<o.allDates.length;t++)i.time.recalculateDatesWidths(o.allDates[t],o),i.time.recalculateDatesPositions(o.allDates[t],o),i.time.setDatesCacheLevel(t,o.allDates[t],o);f.calculateTotalViewDurationFromDates(o),o.leftGlobal=o.from,o.leftGlobalDate=i.time.date(o.leftGlobal),o.rightGlobal=o.to,o.rightGlobalDate=i.time.date(o.rightGlobal)}else{o.timePerPixel=Math.pow(2,o.zoom),m.length&&o.autoExpandTimeFromItems&&(o.from=g,o.to=p),o.fromDate=i.time.date(o.from).startOf(o.period),o.from=o.fromDate.valueOf(),o.toDate=i.time.date(o.to).endOf(o.period),o.to=o.toDate.valueOf(),b&&f.generateAllDates(o,h),m.length&&o.autoExpandTimeFromItems||f.updateFromToBasedOnDates(o),f.calculateTotalViewDurationFromDates(o);const e=a.get("$data.chart.time");t.find((t=>"zoom"===t.name))&&!t.find((t=>"all"===t.name))&&e.centerGlobalDate?(f.calculateLeftAndRightGlobalFromCenter(o,e,d),i.calculateHorizontalScrollSizeAndPosFromDates(o.totalViewDurationPx,o,d,!1)):(i.calculateHorizontalScrollSizeAndPosFromDates(o.totalViewDurationPx,o,d,!1),f.calculateLeftAndRightGlobalNormally(o,d))}f.updateLevels(o,h),f.limitGlobal(o),o.leftPx=0,o.rightPx=u,o.width=u;const v=o.levels[o.level];if(v&&v.length){const t=v[v.length-1];o.leftPx=v[0].leftPx-d.preciseOffset,o.rightPx=t.rightPx,o.width=o.rightPx}f.setCenter(o);let y=a.multi(!0);y=y.update("config.chart.time",(t=>((t=Object.assign({},t)).zoom=o.zoom,t.level=o.level,t.period=o.format.period,t.leftGlobal=o.leftGlobal,t.leftGlobalDate=o.leftGlobalDate.clone(),t.centerGlobal=o.centerGlobal,t.rightGlobal=o.rightGlobal,t.rightGlobalDate=o.rightGlobalDate.clone(),t.from=o.from,t.to=o.to,t.autoExpandTimeFromItems=o.autoExpandTimeFromItems,t.timePerPixel=o.timePerPixel,t))),y=y.update("$data.chart.time",o),f.updateViewPortVisibleItems(!0,o),y=f.updateViewPortVisibleItemsPositions(o,y),y=y.update("$data.chart.time.recalculateTimesLastReason",t);const w=t.find((t=>"set-scroll-left"===t.name));y=y.update("$data.scroll.horizontal",d,{data:w?"set-scroll-left":void 0}),y.done();const k=t.find((t=>"from"===t.name)),x=t.find((t=>"to"===t.name));(k||x)&&(i.timeSectorsGenerateForRows(!0),i.measureRows(!0)),n();const D=t.find((t=>"chart-width"===t.name));D&&0===D.oldValue&&0!==D.newValue&&setTimeout(f.triggerLoadedEvent,0)},minimalReload(t,e){if(i.isMutedMethod("minimalReload"))return;i.muteMethod("minimalReload");const s=f.getMutedListeners();a.mute(h),a.mute(d),a.mute(m),a.collect(),i.calculateVisibleRowsHeights(),f.generateVisibleRowsAndItems(),f.updateViewPortVisibleItemsPositions().done(),a.executeCollected(),s.includes(h)||a.unmute(h),s.includes(d)||a.unmute(d),s.includes(m)||a.unmute(m),i.unmuteMethod("minimalReload"),n()},partialReload(t=!0,e,s){if(i.isMutedMethod("partialReload"))return;i.muteMethod("partialReload");const o=f.getMutedListeners();if(a.mute(h),a.mute(d),a.mute(m),t){const t=a.get("$data");t.list.rows={},t.chart.items={}}a.collect(),f.generateTree(t),f.prepareExpanded(),i.measureRows(),i.calculateVerticalScrollSize(),f.minimalReload(e,s),a.executeCollected(),o.includes(h)||a.unmute(h),o.includes(d)||a.unmute(d),o.includes(m)||a.unmute(m),i.unmuteMethod("partialReload"),n()},fullReload(t,e){if(i.isMutedMethod("fullReload"))return;a.update("$data.reloading",!0),i.muteMethod("fullReload");const s=f.getMutedListeners();a.mute(h),a.mute(d),a.mute(m),a.collect(),f.partialReload(!0,t,e),f.recalculateTimes([{name:"reload"}]),a.executeCollected(),s.includes(h)||a.unmute(h),s.includes(d)||a.unmute(d),s.includes(m)||a.unmute(m),i.unmuteMethod("fullReload"),a.update("$data.reloading",!1),n()}};s(a.subscribe("config.chart.items.:itemId.time",(function(t,e){var s;if("subscribe"!==e.type&&!a.get().$data.reloading&&(null===(s=e.params)||void 0===s?void 0:s.itemId)){const t=i.getItem(e.params.itemId);if(!t)return;const s=i.getRowData(t.rowId);if(!s||!s.itemsTimeSectors)return;i.timeSectorsItemsAddOrUpdate([t],s.itemsTimeSectors)}})));const p={};s(a.subscribe("config.chart.items.:itemId.rowId",(function(t,e){var s,n;if("subscribe"===e.type)return;if(a.get().$data.reloading)return;if(!(null===(s=e.params)||void 0===s?void 0:s.itemId))return;if(i.isMutedMethod("updateRowItems"))return;const o={},r=[];for(const e of t){const s=e.value;if(!s)continue;const a=null===(n=e.params)||void 0===n?void 0:n.itemId;if(!a)continue;r.push(a);const l=p[a];if(l===t)return;p[a]=t,o[l]=i.getRowData(l),o[s]=i.getRowData(s)}i.makeTreeMap(o,r,!0)}),{group:!0,bulk:!0,bulkValue:!1})),s(a.subscribe("config.chart.items;",(()=>{const t=a.get().config.chart.items;for(const e in t){const i=t[e];i.rowId&&(p[e]=i.rowId)}}))),s(a.subscribeAll(["config.innerHeight","config.headerHeight","config.scroll.vertical.width"],f.heightChange,{group:!0,bulkValue:!1})),s(a.subscribe("$data.list.columns.resizer.active",f.resizerActiveChange));s(a.subscribeAll(["config;","config.chart.items;","config.list.rows;","config.list.rows.*;","config.chart.items.*;"],h,{group:"reload",bulkValue:!1}));s(a.subscribeAll(["config.list.rows.*.parentId","config.chart.items.*.rowId","config.list.rows.*.expanded"],d,{group:"reload",bulkValue:!1}));s(a.subscribeAll(["config.chart.items.*.time","config.chart.items.*.height","config.chart.items.*.top","$data.chart.dimensions.heightWithoutScrollBar","$data.list.rowsHeight","config.chart.item"],m,{group:"reload",bulkValue:!1})),s(a.subscribeAll(["$data.scroll.vertical.dataIndex","$data.scroll.vertical.preciseOffset"],(function(){a.collect(),f.generateVisibleRowsAndItems(),i.calculateVisibleRowsHeights(),f.updateItemsVerticalPositionsOfVisibleRows(),f.updateViewPortVisibleItemsPositions().done(),a.executeCollected()}),{group:!0,bulkValue:!1})),s(a.subscribe("config.list.sort",(t=>{const e=a.get(`config.list.columns.data.${t.activeColumnId}`);e&&i.sortRowsByColumn(e,t.asc)}))),s(a.subscribeAll(["config.chart.items.*.time","config.chart.items.*;","config.chart.items.*.rowId"],(function(t,e){e.options.data&&"updateViewPortVisibleItems"===e.options.data||i.isMutedMethod("updateViewPortVisibleItemsListener")||(f.updateViewPortVisibleItems(),f.updateViewPortVisibleItemsPositions().done())}),{group:!0,bulkValue:!1}));let b=a.get("config.locale.weekStart");s(a.subscribe("config.locale",((t,e)=>{"subscribe"!==e.type&&(t.weekStart===b?f.updateLocale():(b=t.weekStart,f.recalculateTimes([{name:"locale"}])))})));const v={utcMode:!1,initialized:!1,zoom:0,period:"",scrollAbsolutePosPx:0,scrollTime:0,chartWidth:0,from:0,to:0,dataFrom:0,dataTo:0,calculatedZoomMode:!1,alignLevels:!0,autoExpandTime:!0};return s(a.subscribeAll(["config.utcMode","config.chart.time","$data.chart.time","config.chart.calendarLevels","$data.scroll.horizontal","$data.chart.dimensions.width","config.chart.items.*.time"],((t,e)=>{const i=function(t){const e=a.get("config.utcMode"),i=a.get("config.chart.time"),s=a.get("$data.chart.time"),n=a.get("$data.scroll.horizontal"),o=a.get("$data.chart.dimensions.width"),r=a.get("config.chart.time.calculatedZoomMode"),l=Object.assign({},v);v.utcMode=e,v.zoom=i.zoom,v.period=i.period,v.from=i.from,v.to=i.to,v.dataFrom=s.from,v.dataTo=s.to,v.scrollAbsolutePosPx=n.absolutePosPx,n.data&&(v.scrollTime=n.data.leftGlobal),v.chartWidth=o,v.calculatedZoomMode=r,v.alignLevels=i.alignLevelsToMain,v.autoExpandTime=i.autoExpandTimeFromItems;const c=[];return v.initialized||(v.initialized=!0,c.push({name:"all"})),e!==l.utcMode&&c.push({name:"utc-mode",oldValue:l.utcMode,newValue:e}),r!==l.calculatedZoomMode&&c.push({name:"calculated-zoom-mode",oldValue:l.calculatedZoomMode,newValue:r}),i.zoom!==l.zoom&&c.push({name:"zoom",oldValue:l.zoom,newValue:i.zoom}),i.period!==l.period&&c.push({name:"period",oldValue:l.period,newValue:i.period}),i.from!==l.from&&c.push({name:"from",oldValue:l.from,newValue:i.from}),i.to!==l.to&&c.push({name:"to",oldValue:l.to,newValue:i.to}),s.from!==l.dataFrom&&c.push({name:"from",oldValue:l.dataFrom,newValue:s.from}),s.to!==l.dataTo&&c.push({name:"to",oldValue:l.dataTo,newValue:s.to}),"set-scroll-left"===t.options.data&&c.push({name:"set-scroll-left"}),n.absolutePosPx!==l.scrollAbsolutePosPx&&c.push({name:"scroll-pos",oldValue:l.scrollAbsolutePosPx,newValue:n.absolutePosPx}),v.scrollTime!==l.scrollTime&&c.push({name:"scroll-time",oldValue:l.scrollTime,newValue:v.scrollTime}),o!==l.chartWidth&&c.push({name:"chart-width",oldValue:l.chartWidth,newValue:o}),v.alignLevels!==l.alignLevels&&c.push({name:"align-levels",oldValue:l.alignLevels,newValue:v.alignLevels}),v.autoExpandTime!==l.autoExpandTime&&c.push({name:"auto-expand-time",oldValue:l.autoExpandTime,newValue:v.autoExpandTime}),c}(e);i.length&&f.recalculateTimes(i)}),{group:!0,bulkValue:!1})),s(a.subscribe("config.chart.items.:itemId.time",(t=>{const e=a.get("$data.chart.time"),s=i.getAllItems();let n=1/0,o=0;for(const i of t){const t=s[i.params.itemId];if(!t)return;if(t.time.start<e.from||t.time.end>e.to){let i=e.from,s=e.to;return t.time.start<e.from&&(i=t.time.start),t.time.end>e.to&&(s=t.time.end),f.recalculateTimes([{name:"items-out-of-view",from:i,to:s}])}t.time.start<n&&(n=t.time.start),t.time.end>o&&(o=t.time.end)}if(0===e.leftGlobal&&0===e.rightGlobal)return f.recalculateTimes([{name:"items",from:n,to:o}])}),{bulk:!0,bulkValue:!1})),s(a.subscribe("config.chart.time.checkCurrentDateInterval",(t=>{a.get("$data.chart.time").checkCurrentDateInterval!==t&&(a.update("$data.chart.time.checkCurrentDateInterval",t),i.time.stopCheckingCurrentDates(),i.time.checkCurrentDates(!0))}))),t.api.main=f,f}var Ai={exports:{}},Mi={exports:{}};!function(t){var e;t.exports=(e=e||function(t,e){var i=Object.create||function(){function t(){}return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),s={},a=s.lib={},n=a.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},o=a.WordArray=n.extend({init:function(t,i){t=this.words=t||[],this.sigBytes=i!=e?i:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,i=t.words,s=this.sigBytes,a=t.sigBytes;if(this.clamp(),s%4)for(var n=0;n<a;n++){var o=i[n>>>2]>>>24-n%4*8&255;e[s+n>>>2]|=o<<24-(s+n)%4*8}else for(n=0;n<a;n+=4)e[s+n>>>2]=i[n>>>2];return this.sigBytes+=a,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=n.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i,s=[],a=function(e){var i=987654321,s=4294967295;return function(){var a=((i=36969*(65535&i)+(i>>16)&s)<<16)+(e=18e3*(65535&e)+(e>>16)&s)&s;return a/=4294967296,(a+=.5)*(t.random()>.5?1:-1)}},n=0;n<e;n+=4){var r=a(4294967296*(i||t.random()));i=987654071*r(),s.push(4294967296*r()|0)}return new o.init(s,e)}}),r=s.enc={},l=r.Hex={stringify:function(t){for(var e=t.words,i=t.sigBytes,s=[],a=0;a<i;a++){var n=e[a>>>2]>>>24-a%4*8&255;s.push((n>>>4).toString(16)),s.push((15&n).toString(16))}return s.join("")},parse:function(t){for(var e=t.length,i=[],s=0;s<e;s+=2)i[s>>>3]|=parseInt(t.substr(s,2),16)<<24-s%8*4;return new o.init(i,e/2)}},c=r.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,s=[],a=0;a<i;a++){var n=e[a>>>2]>>>24-a%4*8&255;s.push(String.fromCharCode(n))}return s.join("")},parse:function(t){for(var e=t.length,i=[],s=0;s<e;s++)i[s>>>2]|=(255&t.charCodeAt(s))<<24-s%4*8;return new o.init(i,e)}},u=r.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},h=a.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=u.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,s=i.words,a=i.sigBytes,n=this.blockSize,r=a/(4*n),l=(r=e?t.ceil(r):t.max((0|r)-this._minBufferSize,0))*n,c=t.min(4*l,a);if(l){for(var u=0;u<l;u+=n)this._doProcessBlock(s,u);var h=s.splice(0,l);i.sigBytes-=c}return new o.init(h,c)},clone:function(){var t=n.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});a.Hasher=h.extend({cfg:n.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,i){return new t.init(i).finalize(e)}},_createHmacHelper:function(t){return function(e,i){return new d.HMAC.init(t,i).finalize(e)}}});var d=s.algo={};return s}(Math),e)}(Mi);var _i={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,function(){var t=e,i=t.lib,s=i.WordArray,a=i.Hasher,n=t.algo,o=[],r=n.SHA1=a.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,s=i[0],a=i[1],n=i[2],r=i[3],l=i[4],c=0;c<80;c++){if(c<16)o[c]=0|t[e+c];else{var u=o[c-3]^o[c-8]^o[c-14]^o[c-16];o[c]=u<<1|u>>>31}var h=(s<<5|s>>>27)+l+o[c];h+=c<20?1518500249+(a&n|~a&r):c<40?1859775393+(a^n^r):c<60?(a&n|a&r|n&r)-1894007588:(a^n^r)-899497514,l=r,r=n,n=a<<30|a>>>2,a=s,s=h}i[0]=i[0]+s|0,i[1]=i[1]+a|0,i[2]=i[2]+n|0,i[3]=i[3]+r|0,i[4]=i[4]+l|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,s=8*t.sigBytes;return e[s>>>5]|=128<<24-s%32,e[14+(s+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(s+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=a.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA1=a._createHelper(r),t.HmacSHA1=a._createHmacHelper(r)}(),e.SHA1)}(_i);var ji={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,void function(){var t=e,i=t.lib.Base,s=t.enc.Utf8;t.algo.HMAC=i.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=s.parse(e));var i=t.blockSize,a=4*i;e.sigBytes>a&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),r=n.words,l=o.words,c=0;c<i;c++)r[c]^=1549556828,l[c]^=909522486;n.sigBytes=o.sigBytes=a,this.reset()},reset:function(){var t=this._hasher;t.reset(),t.update(this._iKey)},update:function(t){return this._hasher.update(t),this},finalize:function(t){var e=this._hasher,i=e.finalize(t);return e.reset(),e.finalize(this._oKey.clone().concat(i))}})}())}(ji),function(t){var e;t.exports=(e=Mi.exports,function(){var t=e,i=t.lib,s=i.Base,a=i.WordArray,n=t.algo,o=n.SHA1,r=n.HMAC,l=n.PBKDF2=s.extend({cfg:s.extend({keySize:4,hasher:o,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var i=this.cfg,s=r.create(i.hasher,t),n=a.create(),o=a.create([1]),l=n.words,c=o.words,u=i.keySize,h=i.iterations;l.length<u;){var d=s.update(e).finalize(o);s.reset();for(var m=d.words,g=m.length,f=d,p=1;p<h;p++){f=s.finalize(f),s.reset();for(var b=f.words,v=0;v<g;v++)m[v]^=b[v]}n.concat(d),c[0]++}return n.sigBytes=4*u,n}});t.PBKDF2=function(t,e,i){return l.create(i).compute(t,e)}}(),e.PBKDF2)}(Ai);var Ri=Ai.exports,Wi={exports:{}},Oi={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,function(){var t=e,i=t.lib.WordArray;function s(t,e,s){for(var a=[],n=0,o=0;o<e;o++)if(o%4){var r=s[t.charCodeAt(o-1)]<<o%4*2,l=s[t.charCodeAt(o)]>>>6-o%4*2;a[n>>>2]|=(r|l)<<24-n%4*8,n++}return i.create(a,n)}t.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,s=this._map;t.clamp();for(var a=[],n=0;n<i;n+=3)for(var o=(e[n>>>2]>>>24-n%4*8&255)<<16|(e[n+1>>>2]>>>24-(n+1)%4*8&255)<<8|e[n+2>>>2]>>>24-(n+2)%4*8&255,r=0;r<4&&n+.75*r<i;r++)a.push(s.charAt(o>>>6*(3-r)&63));var l=s.charAt(64);if(l)for(;a.length%4;)a.push(l);return a.join("")},parse:function(t){var e=t.length,i=this._map,a=this._reverseMap;if(!a){a=this._reverseMap=[];for(var n=0;n<i.length;n++)a[i.charCodeAt(n)]=n}var o=i.charAt(64);if(o){var r=t.indexOf(o);-1!==r&&(e=r)}return s(t,e,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),e.enc.Base64)}(Oi);var Li={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,function(t){var i=e,s=i.lib,a=s.WordArray,n=s.Hasher,o=i.algo,r=[];!function(){for(var e=0;e<64;e++)r[e]=4294967296*t.abs(t.sin(e+1))|0}();var l=o.MD5=n.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var i=0;i<16;i++){var s=e+i,a=t[s];t[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var n=this._hash.words,o=t[e+0],l=t[e+1],m=t[e+2],g=t[e+3],f=t[e+4],p=t[e+5],b=t[e+6],v=t[e+7],y=t[e+8],w=t[e+9],k=t[e+10],x=t[e+11],D=t[e+12],$=t[e+13],S=t[e+14],P=t[e+15],z=n[0],C=n[1],I=n[2],T=n[3];z=c(z,C,I,T,o,7,r[0]),T=c(T,z,C,I,l,12,r[1]),I=c(I,T,z,C,m,17,r[2]),C=c(C,I,T,z,g,22,r[3]),z=c(z,C,I,T,f,7,r[4]),T=c(T,z,C,I,p,12,r[5]),I=c(I,T,z,C,b,17,r[6]),C=c(C,I,T,z,v,22,r[7]),z=c(z,C,I,T,y,7,r[8]),T=c(T,z,C,I,w,12,r[9]),I=c(I,T,z,C,k,17,r[10]),C=c(C,I,T,z,x,22,r[11]),z=c(z,C,I,T,D,7,r[12]),T=c(T,z,C,I,$,12,r[13]),I=c(I,T,z,C,S,17,r[14]),z=u(z,C=c(C,I,T,z,P,22,r[15]),I,T,l,5,r[16]),T=u(T,z,C,I,b,9,r[17]),I=u(I,T,z,C,x,14,r[18]),C=u(C,I,T,z,o,20,r[19]),z=u(z,C,I,T,p,5,r[20]),T=u(T,z,C,I,k,9,r[21]),I=u(I,T,z,C,P,14,r[22]),C=u(C,I,T,z,f,20,r[23]),z=u(z,C,I,T,w,5,r[24]),T=u(T,z,C,I,S,9,r[25]),I=u(I,T,z,C,g,14,r[26]),C=u(C,I,T,z,y,20,r[27]),z=u(z,C,I,T,$,5,r[28]),T=u(T,z,C,I,m,9,r[29]),I=u(I,T,z,C,v,14,r[30]),z=h(z,C=u(C,I,T,z,D,20,r[31]),I,T,p,4,r[32]),T=h(T,z,C,I,y,11,r[33]),I=h(I,T,z,C,x,16,r[34]),C=h(C,I,T,z,S,23,r[35]),z=h(z,C,I,T,l,4,r[36]),T=h(T,z,C,I,f,11,r[37]),I=h(I,T,z,C,v,16,r[38]),C=h(C,I,T,z,k,23,r[39]),z=h(z,C,I,T,$,4,r[40]),T=h(T,z,C,I,o,11,r[41]),I=h(I,T,z,C,g,16,r[42]),C=h(C,I,T,z,b,23,r[43]),z=h(z,C,I,T,w,4,r[44]),T=h(T,z,C,I,D,11,r[45]),I=h(I,T,z,C,P,16,r[46]),z=d(z,C=h(C,I,T,z,m,23,r[47]),I,T,o,6,r[48]),T=d(T,z,C,I,v,10,r[49]),I=d(I,T,z,C,S,15,r[50]),C=d(C,I,T,z,p,21,r[51]),z=d(z,C,I,T,D,6,r[52]),T=d(T,z,C,I,g,10,r[53]),I=d(I,T,z,C,k,15,r[54]),C=d(C,I,T,z,l,21,r[55]),z=d(z,C,I,T,y,6,r[56]),T=d(T,z,C,I,P,10,r[57]),I=d(I,T,z,C,b,15,r[58]),C=d(C,I,T,z,$,21,r[59]),z=d(z,C,I,T,f,6,r[60]),T=d(T,z,C,I,x,10,r[61]),I=d(I,T,z,C,m,15,r[62]),C=d(C,I,T,z,w,21,r[63]),n[0]=n[0]+z|0,n[1]=n[1]+C|0,n[2]=n[2]+I|0,n[3]=n[3]+T|0},_doFinalize:function(){var e=this._data,i=e.words,s=8*this._nDataBytes,a=8*e.sigBytes;i[a>>>5]|=128<<24-a%32;var n=t.floor(s/4294967296),o=s;i[15+(a+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),i[14+(a+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e.sigBytes=4*(i.length+1),this._process();for(var r=this._hash,l=r.words,c=0;c<4;c++){var u=l[c];l[c]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return r},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function c(t,e,i,s,a,n,o){var r=t+(e&i|~e&s)+a+o;return(r<<n|r>>>32-n)+e}function u(t,e,i,s,a,n,o){var r=t+(e&s|i&~s)+a+o;return(r<<n|r>>>32-n)+e}function h(t,e,i,s,a,n,o){var r=t+(e^i^s)+a+o;return(r<<n|r>>>32-n)+e}function d(t,e,i,s,a,n,o){var r=t+(i^(e|~s))+a+o;return(r<<n|r>>>32-n)+e}i.MD5=n._createHelper(l),i.HmacMD5=n._createHmacHelper(l)}(Math),e.MD5)}(Li);var Ei={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,function(){var t=e,i=t.lib,s=i.Base,a=i.WordArray,n=t.algo,o=n.MD5,r=n.EvpKDF=s.extend({cfg:s.extend({keySize:4,hasher:o,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var i=this.cfg,s=i.hasher.create(),n=a.create(),o=n.words,r=i.keySize,l=i.iterations;o.length<r;){c&&s.update(c);var c=s.update(t).finalize(e);s.reset();for(var u=1;u<l;u++)c=s.finalize(c),s.reset();n.concat(c)}return n.sigBytes=4*r,n}});t.EvpKDF=function(t,e,i){return r.create(i).compute(t,e)}}(),e.EvpKDF)}(Ei);var Ni={exports:{}};!function(t){var e;t.exports=void((e=Mi.exports).lib.Cipher||function(t){var i=e,s=i.lib,a=s.Base,n=s.WordArray,o=s.BufferedBlockAlgorithm,r=i.enc;r.Utf8;var l=r.Base64,c=i.algo.EvpKDF,u=s.Cipher=o.extend({cfg:a.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?y:b}return function(e){return{encrypt:function(i,s,a){return t(s).encrypt(e,i,s,a)},decrypt:function(i,s,a){return t(s).decrypt(e,i,s,a)}}}}()});s.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var h=i.mode={},d=s.BlockCipherMode=a.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),m=h.CBC=function(){var e=d.extend();function i(e,i,s){var a=this._iv;if(a){var n=a;this._iv=t}else n=this._prevBlock;for(var o=0;o<s;o++)e[i+o]^=n[o]}return e.Encryptor=e.extend({processBlock:function(t,e){var s=this._cipher,a=s.blockSize;i.call(this,t,e,a),s.encryptBlock(t,e),this._prevBlock=t.slice(e,e+a)}}),e.Decryptor=e.extend({processBlock:function(t,e){var s=this._cipher,a=s.blockSize,n=t.slice(e,e+a);s.decryptBlock(t,e),i.call(this,t,e,a),this._prevBlock=n}}),e}(),g=(i.pad={}).Pkcs7={pad:function(t,e){for(var i=4*e,s=i-t.sigBytes%i,a=s<<24|s<<16|s<<8|s,o=[],r=0;r<s;r+=4)o.push(a);var l=n.create(o,s);t.concat(l)},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}};s.BlockCipher=u.extend({cfg:u.cfg.extend({mode:m,padding:g}),reset:function(){u.reset.call(this);var t=this.cfg,e=t.iv,i=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var s=i.createEncryptor;else s=i.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==s?this._mode.init(this,e&&e.words):(this._mode=s.call(i,this,e&&e.words),this._mode.__creator=s)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4});var f=s.CipherParams=a.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),p=(i.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;if(i)var s=n.create([1398893684,1701076831]).concat(i).concat(e);else s=e;return s.toString(l)},parse:function(t){var e=l.parse(t),i=e.words;if(1398893684==i[0]&&1701076831==i[1]){var s=n.create(i.slice(2,4));i.splice(0,4),e.sigBytes-=16}return f.create({ciphertext:e,salt:s})}},b=s.SerializableCipher=a.extend({cfg:a.extend({format:p}),encrypt:function(t,e,i,s){s=this.cfg.extend(s);var a=t.createEncryptor(i,s),n=a.finalize(e),o=a.cfg;return f.create({ciphertext:n,key:i,iv:o.iv,algorithm:t,mode:o.mode,padding:o.padding,blockSize:t.blockSize,formatter:s.format})},decrypt:function(t,e,i,s){return s=this.cfg.extend(s),e=this._parse(e,s.format),t.createDecryptor(i,s).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),v=(i.kdf={}).OpenSSL={execute:function(t,e,i,s){s||(s=n.random(8));var a=c.create({keySize:e+i}).compute(t,s),o=n.create(a.words.slice(e),4*i);return a.sigBytes=4*e,f.create({key:a,iv:o,salt:s})}},y=s.PasswordBasedCipher=b.extend({cfg:b.cfg.extend({kdf:v}),encrypt:function(t,e,i,s){var a=(s=this.cfg.extend(s)).kdf.execute(i,t.keySize,t.ivSize);s.iv=a.iv;var n=b.encrypt.call(this,t,e,a.key,s);return n.mixIn(a),n},decrypt:function(t,e,i,s){s=this.cfg.extend(s),e=this._parse(e,s.format);var a=s.kdf.execute(i,t.keySize,t.ivSize,e.salt);return s.iv=a.iv,b.decrypt.call(this,t,e,a.key,s)}})}())}(Ni),function(t){var e;t.exports=(e=Mi.exports,function(){var t=e,i=t.lib.BlockCipher,s=t.algo,a=[],n=[],o=[],r=[],l=[],c=[],u=[],h=[],d=[],m=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var i=0,s=0;for(e=0;e<256;e++){var g=s^s<<1^s<<2^s<<3^s<<4;g=g>>>8^255&g^99,a[i]=g,n[g]=i;var f=t[i],p=t[f],b=t[p],v=257*t[g]^16843008*g;o[i]=v<<24|v>>>8,r[i]=v<<16|v>>>16,l[i]=v<<8|v>>>24,c[i]=v,v=16843009*b^65537*p^257*f^16843008*i,u[g]=v<<24|v>>>8,h[g]=v<<16|v>>>16,d[g]=v<<8|v>>>24,m[g]=v,i?(i=f^t[t[t[b^f]]],s^=t[t[s]]):i=s=1}}();var g=[0,1,2,4,8,16,32,64,128,27,54],f=s.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,s=4*((this._nRounds=i+6)+1),n=this._keySchedule=[],o=0;o<s;o++)if(o<i)n[o]=e[o];else{var r=n[o-1];o%i?i>6&&o%i==4&&(r=a[r>>>24]<<24|a[r>>>16&255]<<16|a[r>>>8&255]<<8|a[255&r]):(r=a[(r=r<<8|r>>>24)>>>24]<<24|a[r>>>16&255]<<16|a[r>>>8&255]<<8|a[255&r],r^=g[o/i|0]<<24),n[o]=n[o-i]^r}for(var l=this._invKeySchedule=[],c=0;c<s;c++)o=s-c,r=c%4?n[o]:n[o-4],l[c]=c<4||o<=4?r:u[a[r>>>24]]^h[a[r>>>16&255]]^d[a[r>>>8&255]]^m[a[255&r]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,r,l,c,a)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,u,h,d,m,n),i=t[e+1],t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,s,a,n,o,r){for(var l=this._nRounds,c=t[e]^i[0],u=t[e+1]^i[1],h=t[e+2]^i[2],d=t[e+3]^i[3],m=4,g=1;g<l;g++){var f=s[c>>>24]^a[u>>>16&255]^n[h>>>8&255]^o[255&d]^i[m++],p=s[u>>>24]^a[h>>>16&255]^n[d>>>8&255]^o[255&c]^i[m++],b=s[h>>>24]^a[d>>>16&255]^n[c>>>8&255]^o[255&u]^i[m++],v=s[d>>>24]^a[c>>>16&255]^n[u>>>8&255]^o[255&h]^i[m++];c=f,u=p,h=b,d=v}f=(r[c>>>24]<<24|r[u>>>16&255]<<16|r[h>>>8&255]<<8|r[255&d])^i[m++],p=(r[u>>>24]<<24|r[h>>>16&255]<<16|r[d>>>8&255]<<8|r[255&c])^i[m++],b=(r[h>>>24]<<24|r[d>>>16&255]<<16|r[c>>>8&255]<<8|r[255&u])^i[m++],v=(r[d>>>24]<<24|r[c>>>16&255]<<16|r[u>>>8&255]<<8|r[255&h])^i[m++],t[e]=f,t[e+1]=p,t[e+2]=b,t[e+3]=v},keySize:8});t.AES=i._createHelper(f)}(),e.AES)}(Wi);var Vi=Wi.exports,Bi={exports:{}};!function(t){var e;t.exports=(e=Mi.exports,function(t){var i=e,s=i.lib,a=s.WordArray,n=s.Hasher,o=i.algo,r=[],l=[];!function(){function e(e){for(var i=t.sqrt(e),s=2;s<=i;s++)if(!(e%s))return!1;return!0}function i(t){return 4294967296*(t-(0|t))|0}for(var s=2,a=0;a<64;)e(s)&&(a<8&&(r[a]=i(t.pow(s,.5))),l[a]=i(t.pow(s,1/3)),a++),s++}();var c=[],u=o.SHA256=n.extend({_doReset:function(){this._hash=new a.init(r.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,s=i[0],a=i[1],n=i[2],o=i[3],r=i[4],u=i[5],h=i[6],d=i[7],m=0;m<64;m++){if(m<16)c[m]=0|t[e+m];else{var g=c[m-15],f=(g<<25|g>>>7)^(g<<14|g>>>18)^g>>>3,p=c[m-2],b=(p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10;c[m]=f+c[m-7]+b+c[m-16]}var v=s&a^s&n^a&n,y=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),w=d+((r<<26|r>>>6)^(r<<21|r>>>11)^(r<<7|r>>>25))+(r&u^~r&h)+l[m]+c[m];d=h,h=u,u=r,r=o+w|0,o=n,n=a,a=s,s=w+(y+v)|0}i[0]=i[0]+s|0,i[1]=i[1]+a|0,i[2]=i[2]+n|0,i[3]=i[3]+o|0,i[4]=i[4]+r|0,i[5]=i[5]+u|0,i[6]=i[6]+h|0,i[7]=i[7]+d|0},_doFinalize:function(){var e=this._data,i=e.words,s=8*this._nDataBytes,a=8*e.sigBytes;return i[a>>>5]|=128<<24-a%32,i[14+(a+64>>>9<<4)]=t.floor(s/4294967296),i[15+(a+64>>>9<<4)]=s,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});i.SHA256=n._createHelper(u),i.HmacSHA256=n._createHmacHelper(u)}(Math),e.SHA256)}(Bi);var Gi=Bi.exports,Hi={exports:{}};!function(t){t.exports=Mi.exports.enc.Utf8}(Hi);var qi=Hi.exports;const Yi=(t,e)=>{const i=t.slice(),s=[];let a=e;for(;0!==i.length;){const t=i.pop(),e=t.toLowerCase();if(a.children.has("*")){if(a.children.has("!"+e))break;a=a.children.get("*")}else{if(!1===a.children.has(e))break;a=a.children.get(e)}s.unshift(t)}return s},Fi="[a-fA-F\\d:]",Ui=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${Fi})|(?<=${Fi})(?=\\s|$))`:"",Ki="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Zi="[a-fA-F\\d]{1,4}",Xi=`\n(?:\n(?:${Zi}:){7}(?:${Zi}|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n(?:${Zi}:){6}(?:${Ki}|:${Zi}|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\n(?:${Zi}:){5}(?::${Ki}|(?::${Zi}){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\n(?:${Zi}:){4}(?:(?::${Zi}){0,1}:${Ki}|(?::${Zi}){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\n(?:${Zi}:){3}(?:(?::${Zi}){0,2}:${Ki}|(?::${Zi}){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\n(?:${Zi}:){2}(?:(?::${Zi}){0,3}:${Ki}|(?::${Zi}){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\n(?:${Zi}:){1}(?:(?::${Zi}){0,4}:${Ki}|(?::${Zi}){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${Zi}){0,5}:${Ki}|(?::${Zi}){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Qi=new RegExp(`(?:^${Ki}$)|(?:^${Xi}$)`),Ji=new RegExp(`^${Ki}$`),ts=new RegExp(`^${Xi}$`),es=t=>t&&t.exact?Qi:new RegExp(`(?:${Ui(t)}${Ki}${Ui(t)})|(?:${Ui(t)}${Xi}${Ui(t)})`,"g");es.v4=t=>t&&t.exact?Ji:new RegExp(`${Ui(t)}${Ki}${Ui(t)}`,"g"),es.v6=t=>t&&t.exact?ts:new RegExp(`${Ui(t)}${Xi}${Ui(t)}`,"g");const is=es,ss=t=>is({exact:!0}).test(t);ss.v4=t=>is.v4({exact:!0}).test(t),ss.v6=t=>is.v6({exact:!0}).test(t),ss.version=t=>ss(t)?ss.v4(t)?4:6:void 0;var as=ss;var ns,os;!function(t){t.NoHostname="NO_HOSTNAME",t.DomainMaxLength="DOMAIN_MAX_LENGTH",t.LabelMinLength="LABEL_MIN_LENGTH",t.LabelMaxLength="LABEL_MAX_LENGTH",t.LabelInvalidCharacter="LABEL_INVALID_CHARACTER"}(ns||(ns={})),function(t){t.ValidIp="VALID_IP",t.ValidDomain="VALID_DOMAIN",t.Error="ERROR"}(os||(os={}));const rs=t=>({type:ns.NoHostname,message:`The given input ${String(t)} does not look like a hostname.`,column:1}),ls=t=>{const e=t.length;return{type:ns.DomainMaxLength,message:`Domain "${t}" is too long. Domain is ${e} octets long but should not be longer than 253.`,column:e}},cs=(t,e)=>{const i=t.length;return{type:ns.LabelMinLength,message:`Label "${t}" is too short. Label is ${i} octets long but should be at least 1.`,column:e}},us=(t,e)=>{const i=t.length;return{type:ns.LabelMaxLength,message:`Label "${t}" is too long. Label is ${i} octets long but should not be longer than 63.`,column:e}},hs=(t,e,i)=>({type:ns.LabelInvalidCharacter,message:`Label "${t}" contains invalid character "${e}" at column ${i}.`,column:i}),ds=Symbol("ROOT"),ms=Symbol("CHILD"),gs=t=>{const e={type:ds,children:new Map};let i="",s=e,a=e;const n=()=>{a=((t,e)=>{let i=t.children.get(e);return void 0===i&&(i={type:ms,label:e,children:new Map,parent:t},t.children.set(e,i)),i})(s,i),i=""};for(let o=0;o<t.length;o++){const r=t.charAt(o);switch(r){case",":n();continue;case">":n(),s=a;continue;case"|":n(),s=e;continue;case"<":if(s.type===ds)throw new Error(`Error in serialized trie at position ${o}: Cannot go up, current parent node is already root`);n(),s=s.parent;continue}i+=r}return""!==i&&n(),e},fs=["localhost","local","example","invalid","test"];var ps;!function(t){t.Invalid="INVALID",t.Ip="IP",t.Reserved="RESERVED",t.NotListed="NOT_LISTED",t.Listed="LISTED"}(ps||(ps={}));const bs=(t,e)=>e>=0&&e<t.length?t[e]:void 0,vs=(t,e)=>({subDomains:t.slice(0,Math.max(0,e)),domain:bs(t,e),topLevelDomains:t.slice(e+1)});let ys,ws;const ks=t=>{const e=(t=>{if("string"!=typeof t)return{type:os.Error,errors:[rs(t)]};const e=t.trim(),i=e.replace(/^\[|]$/g,""),s=as.version(i);if(void 0!==s)return{type:os.ValidIp,ip:i,ipVersion:s};if(e.length>253)return{type:os.Error,errors:[ls(e)]};const a=e.split(".");""===a[a.length-1]&&a.pop();const n=[];let o=1;for(const t of a){const e=/[^\d\-a-z]/iu.exec(t);e?n.push(hs(t,e[0],e.index+1)):t.length<1?n.push(cs(t,o)):t.length>63&&n.push(us(t,o)),o+=t.length+1}return n.length>0?{type:os.Error,errors:n}:{type:os.ValidDomain,domain:e,labels:a}})(t);if(e.type===os.Error)return{type:ps.Invalid,hostname:t,errors:e.errors};if(e.type===os.ValidIp)return{type:ps.Ip,hostname:e.ip,ipVersion:e.ipVersion};const{labels:i,domain:s}=e;if(""===t||fs.includes(i[i.length-1]))return{type:ps.Reserved,hostname:s,labels:i};ys=null!=ys?ys:gs("ac>com,edu,gov,net,mil,org<ad>nom<ae>co,net,org,sch,ac,gov,mil<aero>accident-investigation,accident-prevention,aerobatic,aeroclub,aerodrome,agents,aircraft,airline,airport,air-surveillance,airtraffic,air-traffic-control,ambulance,amusement,association,author,ballooning,broker,caa,cargo,catering,certification,championship,charter,civilaviation,club,conference,consultant,consulting,control,council,crew,design,dgca,educator,emergency,engine,engineer,entertainment,equipment,exchange,express,federation,flight,fuel,gliding,government,groundhandling,group,hanggliding,homebuilt,insurance,journal,journalist,leasing,logistics,magazine,maintenance,media,microlight,modelling,navigation,parachuting,paragliding,passenger-association,pilot,press,production,recreation,repbody,res,research,rotorcraft,safety,scientist,services,show,skydiving,software,student,trader,trading,trainer,union,workinggroup,works<af>gov,com,org,net,edu<ag>com,org,net,co,nom<ai>off,com,net,org<al>com,edu,gov,mil,net,org<am>co,com,commune,net,org<ao>ed,gv,og,co,pb,it<aq,ar>com,edu,gob,gov,int,mil,musica,net,org,tur<arpa>e164,in-addr,ip6,iris,uri,urn<as>gov<asia,at>ac>sth<co,gv,or<au>com,net,org,edu>act,catholic,nsw>schools<nt,qld,sa,tas,vic,wa<gov>qld,sa,tas,vic,wa<asn,id,info,conf,oz,act,nsw,nt,qld,sa,tas,vic,wa<aw>com<ax,az>com,net,int,gov,org,edu,info,pp,mil,name,pro,biz<ba>com,edu,gov,mil,net,org<bb>biz,co,com,edu,gov,info,net,org,store,tv<bd>*<be>ac<bf>gov<bg>a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9<bh>com,edu,net,org,gov<bi>co,com,edu,or,org<biz,bj>asso,barreau,gouv<bm>com,edu,gov,net,org<bn>com,edu,gov,net,org<bo>com,edu,gob,int,org,net,mil,tv,web,academia,agro,arte,blog,bolivia,ciencia,cooperativa,democracia,deporte,ecologia,economia,empresa,indigena,industria,info,medicina,movimiento,musica,natural,nombre,noticias,patria,politica,profesional,plurinacional,pueblo,revista,salud,tecnologia,tksat,transporte,wiki<br>9guacu,abc,adm,adv,agr,aju,am,anani,aparecida,app,arq,art,ato,b,barueri,belem,bhz,bib,bio,blog,bmd,boavista,bsb,campinagrande,campinas,caxias,cim,cng,cnt,com,contagem,coop,coz,cri,cuiaba,curitiba,def,des,det,dev,ecn,eco,edu,emp,enf,eng,esp,etc,eti,far,feira,flog,floripa,fm,fnd,fortal,fot,foz,fst,g12,geo,ggf,goiania,gov>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<gru,imb,ind,inf,jab,jampa,jdf,joinville,jor,jus,leg,lel,log,londrina,macapa,maceio,manaus,maringa,mat,med,mil,morena,mp,mus,natal,net,niteroi,nom>*<not,ntr,odo,ong,org,osasco,palmas,poa,ppg,pro,psc,psi,pvh,qsl,radio,rec,recife,rep,ribeirao,rio,riobranco,riopreto,salvador,sampa,santamaria,santoandre,saobernardo,saogonca,seg,sjc,slg,slz,sorocaba,srv,taxi,tc,tec,teo,the,tmp,trd,tur,tv,udi,vet,vix,vlog,wiki,zlg<bs>com,net,org,edu,gov<bt>com,edu,gov,net,org<bv,bw>co,org<by>gov,mil,com,of<bz>com,net,org,edu,gov<ca>ab,bc,mb,nb,nf,nl,ns,nt,nu,on,pe,qc,sk,yk,gc<cat,cc,cd>gov<cf,cg,ch,ci>org,or,com,co,edu,ed,ac,net,go,asso,xn--aroport-bya,int,presse,md,gouv<ck>*,!www<cl>co,gob,gov,mil<cm>co,com,gov,net<cn>ac,com,edu,gov,net,org,mil,xn--55qx5d,xn--io0a7i,xn--od0alg,ah,bj,cq,fj,gd,gs,gz,gx,ha,hb,he,hi,hl,hn,jl,js,jx,ln,nm,nx,qh,sc,sd,sh,sn,sx,tj,xj,xz,yn,zj,hk,mo,tw<co>arts,com,edu,firm,gov,info,int,mil,net,nom,org,rec,web<com,coop,cr>ac,co,ed,fi,go,or,sa<cu>com,edu,org,net,gov,inf<cv,cw>com,edu,net,org<cx>gov<cy>ac,biz,com,ekloges,gov,ltd,name,net,org,parliament,press,pro,tm<cz,de,dj,dk,dm>com,net,org,edu,gov<do>art,com,edu,gob,gov,mil,net,org,sld,web<dz>art,asso,com,edu,gov,org,net,pol,soc,tm<ec>com,info,net,fin,k12,med,pro,org,edu,gov,gob,mil<edu,ee>edu,gov,riik,lib,med,com,pri,aip,org,fie<eg>com,edu,eun,gov,mil,name,net,org,sci<er>*<es>com,nom,org,gob,edu<et>com,gov,org,edu,biz,name,info,net<eu,fi>aland<fj>ac,biz,com,gov,info,mil,name,net,org,pro<fk>*<fm>com,edu,net,org<fo,fr>asso,com,gouv,nom,prd,tm,aeroport,avocat,avoues,cci,chambagri,chirurgiens-dentistes,experts-comptables,geometre-expert,greta,huissier-justice,medecin,notaires,pharmacien,port,veterinaire<ga,gb,gd>edu,gov<ge>com,edu,gov,org,mil,net,pvt<gf,gg>co,net,org<gh>com,edu,gov,org,mil<gi>com,ltd,gov,mod,edu,org<gl>co,com,edu,net,org<gm,gn>ac,com,edu,gov,org,net<gov,gp>com,net,mobi,edu,org,asso<gq,gr>com,edu,net,org,gov<gs,gt>com,edu,gob,ind,mil,net,org<gu>com,edu,gov,guam,info,net,org,web<gw,gy>co,com,edu,gov,net,org<hk>com,edu,gov,idv,net,org,xn--55qx5d,xn--wcvs22d,xn--lcvr32d,xn--mxtq1m,xn--gmqw5a,xn--ciqpn,xn--gmq050i,xn--zf0avx,xn--io0a7i,xn--mk0axi,xn--od0alg,xn--od0aq3b,xn--tn0ag,xn--uc0atv,xn--uc0ay4a<hm,hn>com,edu,org,net,mil,gob<hr>iz,from,name,com<ht>com,shop,firm,info,adult,net,pro,org,med,art,coop,pol,asso,edu,rel,gouv,perso<hu>co,info,org,priv,sport,tm,2000,agrar,bolt,casino,city,erotica,erotika,film,forum,games,hotel,ingatlan,jogasz,konyvelo,lakas,media,news,reklam,sex,shop,suli,szex,tozsde,utazas,video<id>ac,biz,co,desa,go,mil,my,net,or,ponpes,sch,web<ie>gov<il>ac,co,gov,idf,k12,muni,net,org<im>ac,co>ltd,plc<com,net,org,tt,tv<in>co,firm,net,org,gen,ind,nic,ac,edu,res,gov,mil<info,int>eu<io>com<iq>gov,edu,mil,com,org,net<ir>ac,co,gov,id,net,org,sch,xn--mgba3a4f16a,xn--mgba3a4fra<is>net,com,edu,gov,org,int<it>gov,edu,abr,abruzzo,aosta-valley,aostavalley,bas,basilicata,cal,calabria,cam,campania,emilia-romagna,emiliaromagna,emr,friuli-v-giulia,friuli-ve-giulia,friuli-vegiulia,friuli-venezia-giulia,friuli-veneziagiulia,friuli-vgiulia,friuliv-giulia,friulive-giulia,friulivegiulia,friulivenezia-giulia,friuliveneziagiulia,friulivgiulia,fvg,laz,lazio,lig,liguria,lom,lombardia,lombardy,lucania,mar,marche,mol,molise,piedmont,piemonte,pmn,pug,puglia,sar,sardegna,sardinia,sic,sicilia,sicily,taa,tos,toscana,trentin-sud-tirol,xn--trentin-sd-tirol-rzb,trentin-sudtirol,xn--trentin-sdtirol-7vb,trentin-sued-tirol,trentin-suedtirol,trentino-a-adige,trentino-aadige,trentino-alto-adige,trentino-altoadige,trentino-s-tirol,trentino-stirol,trentino-sud-tirol,xn--trentino-sd-tirol-c3b,trentino-sudtirol,xn--trentino-sdtirol-szb,trentino-sued-tirol,trentino-suedtirol,trentino,trentinoa-adige,trentinoaadige,trentinoalto-adige,trentinoaltoadige,trentinos-tirol,trentinostirol,trentinosud-tirol,xn--trentinosd-tirol-rzb,trentinosudtirol,xn--trentinosdtirol-7vb,trentinosued-tirol,trentinosuedtirol,trentinsud-tirol,xn--trentinsd-tirol-6vb,trentinsudtirol,xn--trentinsdtirol-nsb,trentinsued-tirol,trentinsuedtirol,tuscany,umb,umbria,val-d-aosta,val-daosta,vald-aosta,valdaosta,valle-aosta,valle-d-aosta,valle-daosta,valleaosta,valled-aosta,valledaosta,vallee-aoste,xn--valle-aoste-ebb,vallee-d-aoste,xn--valle-d-aoste-ehb,valleeaoste,xn--valleaoste-e7a,valleedaoste,xn--valledaoste-ebb,vao,vda,ven,veneto,ag,agrigento,al,alessandria,alto-adige,altoadige,an,ancona,andria-barletta-trani,andria-trani-barletta,andriabarlettatrani,andriatranibarletta,ao,aosta,aoste,ap,aq,aquila,ar,arezzo,ascoli-piceno,ascolipiceno,asti,at,av,avellino,ba,balsan-sudtirol,xn--balsan-sdtirol-nsb,balsan-suedtirol,balsan,bari,barletta-trani-andria,barlettatraniandria,belluno,benevento,bergamo,bg,bi,biella,bl,bn,bo,bologna,bolzano-altoadige,bolzano,bozen-sudtirol,xn--bozen-sdtirol-2ob,bozen-suedtirol,bozen,br,brescia,brindisi,bs,bt,bulsan-sudtirol,xn--bulsan-sdtirol-nsb,bulsan-suedtirol,bulsan,bz,ca,cagliari,caltanissetta,campidano-medio,campidanomedio,campobasso,carbonia-iglesias,carboniaiglesias,carrara-massa,carraramassa,caserta,catania,catanzaro,cb,ce,cesena-forli,xn--cesena-forl-mcb,cesenaforli,xn--cesenaforl-i8a,ch,chieti,ci,cl,cn,co,como,cosenza,cr,cremona,crotone,cs,ct,cuneo,cz,dell-ogliastra,dellogliastra,en,enna,fc,fe,fermo,ferrara,fg,fi,firenze,florence,fm,foggia,forli-cesena,xn--forl-cesena-fcb,forlicesena,xn--forlcesena-c8a,fr,frosinone,ge,genoa,genova,go,gorizia,gr,grosseto,iglesias-carbonia,iglesiascarbonia,im,imperia,is,isernia,kr,la-spezia,laquila,laspezia,latina,lc,le,lecce,lecco,li,livorno,lo,lodi,lt,lu,lucca,macerata,mantova,massa-carrara,massacarrara,matera,mb,mc,me,medio-campidano,mediocampidano,messina,mi,milan,milano,mn,mo,modena,monza-brianza,monza-e-della-brianza,monza,monzabrianza,monzaebrianza,monzaedellabrianza,ms,mt,na,naples,napoli,no,novara,nu,nuoro,og,ogliastra,olbia-tempio,olbiatempio,or,oristano,ot,pa,padova,padua,palermo,parma,pavia,pc,pd,pe,perugia,pesaro-urbino,pesarourbino,pescara,pg,pi,piacenza,pisa,pistoia,pn,po,pordenone,potenza,pr,prato,pt,pu,pv,pz,ra,ragusa,ravenna,rc,re,reggio-calabria,reggio-emilia,reggiocalabria,reggioemilia,rg,ri,rieti,rimini,rm,rn,ro,roma,rome,rovigo,sa,salerno,sassari,savona,si,siena,siracusa,so,sondrio,sp,sr,ss,suedtirol,xn--sdtirol-n2a,sv,ta,taranto,te,tempio-olbia,tempioolbia,teramo,terni,tn,to,torino,tp,tr,trani-andria-barletta,trani-barletta-andria,traniandriabarletta,tranibarlettaandria,trapani,trento,treviso,trieste,ts,turin,tv,ud,udine,urbino-pesaro,urbinopesaro,va,varese,vb,vc,ve,venezia,venice,verbania,vercelli,verona,vi,vibo-valentia,vibovalentia,vicenza,viterbo,vr,vs,vt,vv<je>co,net,org<jm>*<jo>com,org,net,edu,sch,gov,mil,name<jobs,jp>ac,ad,co,ed,go,gr,lg,ne,or,aichi>aisai,ama,anjo,asuke,chiryu,chita,fuso,gamagori,handa,hazu,hekinan,higashiura,ichinomiya,inazawa,inuyama,isshiki,iwakura,kanie,kariya,kasugai,kira,kiyosu,komaki,konan,kota,mihama,miyoshi,nishio,nisshin,obu,oguchi,oharu,okazaki,owariasahi,seto,shikatsu,shinshiro,shitara,tahara,takahama,tobishima,toei,togo,tokai,tokoname,toyoake,toyohashi,toyokawa,toyone,toyota,tsushima,yatomi<akita>akita,daisen,fujisato,gojome,hachirogata,happou,higashinaruse,honjo,honjyo,ikawa,kamikoani,kamioka,katagami,kazuno,kitaakita,kosaka,kyowa,misato,mitane,moriyoshi,nikaho,noshiro,odate,oga,ogata,semboku,yokote,yurihonjo<aomori>aomori,gonohe,hachinohe,hashikami,hiranai,hirosaki,itayanagi,kuroishi,misawa,mutsu,nakadomari,noheji,oirase,owani,rokunohe,sannohe,shichinohe,shingo,takko,towada,tsugaru,tsuruta<chiba>abiko,asahi,chonan,chosei,choshi,chuo,funabashi,futtsu,hanamigawa,ichihara,ichikawa,ichinomiya,inzai,isumi,kamagaya,kamogawa,kashiwa,katori,katsuura,kimitsu,kisarazu,kozaki,kujukuri,kyonan,matsudo,midori,mihama,minamiboso,mobara,mutsuzawa,nagara,nagareyama,narashino,narita,noda,oamishirasato,omigawa,onjuku,otaki,sakae,sakura,shimofusa,shirako,shiroi,shisui,sodegaura,sosa,tako,tateyama,togane,tohnosho,tomisato,urayasu,yachimata,yachiyo,yokaichiba,yokoshibahikari,yotsukaido<ehime>ainan,honai,ikata,imabari,iyo,kamijima,kihoku,kumakogen,masaki,matsuno,matsuyama,namikata,niihama,ozu,saijo,seiyo,shikokuchuo,tobe,toon,uchiko,uwajima,yawatahama<fukui>echizen,eiheiji,fukui,ikeda,katsuyama,mihama,minamiechizen,obama,ohi,ono,sabae,sakai,takahama,tsuruga,wakasa<fukuoka>ashiya,buzen,chikugo,chikuho,chikujo,chikushino,chikuzen,chuo,dazaifu,fukuchi,hakata,higashi,hirokawa,hisayama,iizuka,inatsuki,kaho,kasuga,kasuya,kawara,keisen,koga,kurate,kurogi,kurume,minami,miyako,miyama,miyawaka,mizumaki,munakata,nakagawa,nakama,nishi,nogata,ogori,okagaki,okawa,oki,omuta,onga,onojo,oto,saigawa,sasaguri,shingu,shinyoshitomi,shonai,soeda,sue,tachiarai,tagawa,takata,toho,toyotsu,tsuiki,ukiha,umi,usui,yamada,yame,yanagawa,yukuhashi<fukushima>aizubange,aizumisato,aizuwakamatsu,asakawa,bandai,date,fukushima,furudono,futaba,hanawa,higashi,hirata,hirono,iitate,inawashiro,ishikawa,iwaki,izumizaki,kagamiishi,kaneyama,kawamata,kitakata,kitashiobara,koori,koriyama,kunimi,miharu,mishima,namie,nango,nishiaizu,nishigo,okuma,omotego,ono,otama,samegawa,shimogo,shirakawa,showa,soma,sukagawa,taishin,tamakawa,tanagura,tenei,yabuki,yamato,yamatsuri,yanaizu,yugawa<gifu>anpachi,ena,gifu,ginan,godo,gujo,hashima,hichiso,hida,higashishirakawa,ibigawa,ikeda,kakamigahara,kani,kasahara,kasamatsu,kawaue,kitagata,mino,minokamo,mitake,mizunami,motosu,nakatsugawa,ogaki,sakahogi,seki,sekigahara,shirakawa,tajimi,takayama,tarui,toki,tomika,wanouchi,yamagata,yaotsu,yoro<gunma>annaka,chiyoda,fujioka,higashiagatsuma,isesaki,itakura,kanna,kanra,katashina,kawaba,kiryu,kusatsu,maebashi,meiwa,midori,minakami,naganohara,nakanojo,nanmoku,numata,oizumi,ora,ota,shibukawa,shimonita,shinto,showa,takasaki,takayama,tamamura,tatebayashi,tomioka,tsukiyono,tsumagoi,ueno,yoshioka<hiroshima>asaminami,daiwa,etajima,fuchu,fukuyama,hatsukaichi,higashihiroshima,hongo,jinsekikogen,kaita,kui,kumano,kure,mihara,miyoshi,naka,onomichi,osakikamijima,otake,saka,sera,seranishi,shinichi,shobara,takehara<hokkaido>abashiri,abira,aibetsu,akabira,akkeshi,asahikawa,ashibetsu,ashoro,assabu,atsuma,bibai,biei,bifuka,bihoro,biratori,chippubetsu,chitose,date,ebetsu,embetsu,eniwa,erimo,esan,esashi,fukagawa,fukushima,furano,furubira,haboro,hakodate,hamatonbetsu,hidaka,higashikagura,higashikawa,hiroo,hokuryu,hokuto,honbetsu,horokanai,horonobe,ikeda,imakane,ishikari,iwamizawa,iwanai,kamifurano,kamikawa,kamishihoro,kamisunagawa,kamoenai,kayabe,kembuchi,kikonai,kimobetsu,kitahiroshima,kitami,kiyosato,koshimizu,kunneppu,kuriyama,kuromatsunai,kushiro,kutchan,kyowa,mashike,matsumae,mikasa,minamifurano,mombetsu,moseushi,mukawa,muroran,naie,nakagawa,nakasatsunai,nakatombetsu,nanae,nanporo,nayoro,nemuro,niikappu,niki,nishiokoppe,noboribetsu,numata,obihiro,obira,oketo,okoppe,otaru,otobe,otofuke,otoineppu,oumu,ozora,pippu,rankoshi,rebun,rikubetsu,rishiri,rishirifuji,saroma,sarufutsu,shakotan,shari,shibecha,shibetsu,shikabe,shikaoi,shimamaki,shimizu,shimokawa,shinshinotsu,shintoku,shiranuka,shiraoi,shiriuchi,sobetsu,sunagawa,taiki,takasu,takikawa,takinoue,teshikaga,tobetsu,tohma,tomakomai,tomari,toya,toyako,toyotomi,toyoura,tsubetsu,tsukigata,urakawa,urausu,uryu,utashinai,wakkanai,wassamu,yakumo,yoichi<hyogo>aioi,akashi,ako,amagasaki,aogaki,asago,ashiya,awaji,fukusaki,goshiki,harima,himeji,ichikawa,inagawa,itami,kakogawa,kamigori,kamikawa,kasai,kasuga,kawanishi,miki,minamiawaji,nishinomiya,nishiwaki,ono,sanda,sannan,sasayama,sayo,shingu,shinonsen,shiso,sumoto,taishi,taka,takarazuka,takasago,takino,tamba,tatsuno,toyooka,yabu,yashiro,yoka,yokawa<ibaraki>ami,asahi,bando,chikusei,daigo,fujishiro,hitachi,hitachinaka,hitachiomiya,hitachiota,ibaraki,ina,inashiki,itako,iwama,joso,kamisu,kasama,kashima,kasumigaura,koga,miho,mito,moriya,naka,namegata,oarai,ogawa,omitama,ryugasaki,sakai,sakuragawa,shimodate,shimotsuma,shirosato,sowa,suifu,takahagi,tamatsukuri,tokai,tomobe,tone,toride,tsuchiura,tsukuba,uchihara,ushiku,yachiyo,yamagata,yawara,yuki<ishikawa>anamizu,hakui,hakusan,kaga,kahoku,kanazawa,kawakita,komatsu,nakanoto,nanao,nomi,nonoichi,noto,shika,suzu,tsubata,tsurugi,uchinada,wajima<iwate>fudai,fujisawa,hanamaki,hiraizumi,hirono,ichinohe,ichinoseki,iwaizumi,iwate,joboji,kamaishi,kanegasaki,karumai,kawai,kitakami,kuji,kunohe,kuzumaki,miyako,mizusawa,morioka,ninohe,noda,ofunato,oshu,otsuchi,rikuzentakata,shiwa,shizukuishi,sumita,tanohata,tono,yahaba,yamada<kagawa>ayagawa,higashikagawa,kanonji,kotohira,manno,marugame,mitoyo,naoshima,sanuki,tadotsu,takamatsu,tonosho,uchinomi,utazu,zentsuji<kagoshima>akune,amami,hioki,isa,isen,izumi,kagoshima,kanoya,kawanabe,kinko,kouyama,makurazaki,matsumoto,minamitane,nakatane,nishinoomote,satsumasendai,soo,tarumizu,yusui<kanagawa>aikawa,atsugi,ayase,chigasaki,ebina,fujisawa,hadano,hakone,hiratsuka,isehara,kaisei,kamakura,kiyokawa,matsuda,minamiashigara,miura,nakai,ninomiya,odawara,oi,oiso,sagamihara,samukawa,tsukui,yamakita,yamato,yokosuka,yugawara,zama,zushi<kochi>aki,geisei,hidaka,higashitsuno,ino,kagami,kami,kitagawa,kochi,mihara,motoyama,muroto,nahari,nakamura,nankoku,nishitosa,niyodogawa,ochi,okawa,otoyo,otsuki,sakawa,sukumo,susaki,tosa,tosashimizu,toyo,tsuno,umaji,yasuda,yusuhara<kumamoto>amakusa,arao,aso,choyo,gyokuto,kamiamakusa,kikuchi,kumamoto,mashiki,mifune,minamata,minamioguni,nagasu,nishihara,oguni,ozu,sumoto,takamori,uki,uto,yamaga,yamato,yatsushiro<kyoto>ayabe,fukuchiyama,higashiyama,ide,ine,joyo,kameoka,kamo,kita,kizu,kumiyama,kyotamba,kyotanabe,kyotango,maizuru,minami,minamiyamashiro,miyazu,muko,nagaokakyo,nakagyo,nantan,oyamazaki,sakyo,seika,tanabe,uji,ujitawara,wazuka,yamashina,yawata<mie>asahi,inabe,ise,kameyama,kawagoe,kiho,kisosaki,kiwa,komono,kumano,kuwana,matsusaka,meiwa,mihama,minamiise,misugi,miyama,nabari,shima,suzuka,tado,taiki,taki,tamaki,toba,tsu,udono,ureshino,watarai,yokkaichi<miyagi>furukawa,higashimatsushima,ishinomaki,iwanuma,kakuda,kami,kawasaki,marumori,matsushima,minamisanriku,misato,murata,natori,ogawara,ohira,onagawa,osaki,rifu,semine,shibata,shichikashuku,shikama,shiogama,shiroishi,tagajo,taiwa,tome,tomiya,wakuya,watari,yamamoto,zao<miyazaki>aya,ebino,gokase,hyuga,kadogawa,kawaminami,kijo,kitagawa,kitakata,kitaura,kobayashi,kunitomi,kushima,mimata,miyakonojo,miyazaki,morotsuka,nichinan,nishimera,nobeoka,saito,shiiba,shintomi,takaharu,takanabe,takazaki,tsuno<nagano>achi,agematsu,anan,aoki,asahi,azumino,chikuhoku,chikuma,chino,fujimi,hakuba,hara,hiraya,iida,iijima,iiyama,iizuna,ikeda,ikusaka,ina,karuizawa,kawakami,kiso,kisofukushima,kitaaiki,komagane,komoro,matsukawa,matsumoto,miasa,minamiaiki,minamimaki,minamiminowa,minowa,miyada,miyota,mochizuki,nagano,nagawa,nagiso,nakagawa,nakano,nozawaonsen,obuse,ogawa,okaya,omachi,omi,ookuwa,ooshika,otaki,otari,sakae,sakaki,saku,sakuho,shimosuwa,shinanomachi,shiojiri,suwa,suzaka,takagi,takamori,takayama,tateshina,tatsuno,togakushi,togura,tomi,ueda,wada,yamagata,yamanouchi,yasaka,yasuoka<nagasaki>chijiwa,futsu,goto,hasami,hirado,iki,isahaya,kawatana,kuchinotsu,matsuura,nagasaki,obama,omura,oseto,saikai,sasebo,seihi,shimabara,shinkamigoto,togitsu,tsushima,unzen<nara>ando,gose,heguri,higashiyoshino,ikaruga,ikoma,kamikitayama,kanmaki,kashiba,kashihara,katsuragi,kawai,kawakami,kawanishi,koryo,kurotaki,mitsue,miyake,nara,nosegawa,oji,ouda,oyodo,sakurai,sango,shimoichi,shimokitayama,shinjo,soni,takatori,tawaramoto,tenkawa,tenri,uda,yamatokoriyama,yamatotakada,yamazoe,yoshino<niigata>aga,agano,gosen,itoigawa,izumozaki,joetsu,kamo,kariwa,kashiwazaki,minamiuonuma,mitsuke,muika,murakami,myoko,nagaoka,niigata,ojiya,omi,sado,sanjo,seiro,seirou,sekikawa,shibata,tagami,tainai,tochio,tokamachi,tsubame,tsunan,uonuma,yahiko,yoita,yuzawa<oita>beppu,bungoono,bungotakada,hasama,hiji,himeshima,hita,kamitsue,kokonoe,kuju,kunisaki,kusu,oita,saiki,taketa,tsukumi,usa,usuki,yufu<okayama>akaiwa,asakuchi,bizen,hayashima,ibara,kagamino,kasaoka,kibichuo,kumenan,kurashiki,maniwa,misaki,nagi,niimi,nishiawakura,okayama,satosho,setouchi,shinjo,shoo,soja,takahashi,tamano,tsuyama,wake,yakage<okinawa>aguni,ginowan,ginoza,gushikami,haebaru,higashi,hirara,iheya,ishigaki,ishikawa,itoman,izena,kadena,kin,kitadaito,kitanakagusuku,kumejima,kunigami,minamidaito,motobu,nago,naha,nakagusuku,nakijin,nanjo,nishihara,ogimi,okinawa,onna,shimoji,taketomi,tarama,tokashiki,tomigusuku,tonaki,urasoe,uruma,yaese,yomitan,yonabaru,yonaguni,zamami<osaka>abeno,chihayaakasaka,chuo,daito,fujiidera,habikino,hannan,higashiosaka,higashisumiyoshi,higashiyodogawa,hirakata,ibaraki,ikeda,izumi,izumiotsu,izumisano,kadoma,kaizuka,kanan,kashiwara,katano,kawachinagano,kishiwada,kita,kumatori,matsubara,minato,minoh,misaki,moriguchi,neyagawa,nishi,nose,osakasayama,sakai,sayama,sennan,settsu,shijonawate,shimamoto,suita,tadaoka,taishi,tajiri,takaishi,takatsuki,tondabayashi,toyonaka,toyono,yao<saga>ariake,arita,fukudomi,genkai,hamatama,hizen,imari,kamimine,kanzaki,karatsu,kashima,kitagata,kitahata,kiyama,kouhoku,kyuragi,nishiarita,ogi,omachi,ouchi,saga,shiroishi,taku,tara,tosu,yoshinogari<saitama>arakawa,asaka,chichibu,fujimi,fujimino,fukaya,hanno,hanyu,hasuda,hatogaya,hatoyama,hidaka,higashichichibu,higashimatsuyama,honjo,ina,iruma,iwatsuki,kamiizumi,kamikawa,kamisato,kasukabe,kawagoe,kawaguchi,kawajima,kazo,kitamoto,koshigaya,kounosu,kuki,kumagaya,matsubushi,minano,misato,miyashiro,miyoshi,moroyama,nagatoro,namegawa,niiza,ogano,ogawa,ogose,okegawa,omiya,otaki,ranzan,ryokami,saitama,sakado,satte,sayama,shiki,shiraoka,soka,sugito,toda,tokigawa,tokorozawa,tsurugashima,urawa,warabi,yashio,yokoze,yono,yorii,yoshida,yoshikawa,yoshimi<shiga>aisho,gamo,higashiomi,hikone,koka,konan,kosei,koto,kusatsu,maibara,moriyama,nagahama,nishiazai,notogawa,omihachiman,otsu,ritto,ryuoh,takashima,takatsuki,torahime,toyosato,yasu<shimane>akagi,ama,gotsu,hamada,higashiizumo,hikawa,hikimi,izumo,kakinoki,masuda,matsue,misato,nishinoshima,ohda,okinoshima,okuizumo,shimane,tamayu,tsuwano,unnan,yakumo,yasugi,yatsuka<shizuoka>arai,atami,fuji,fujieda,fujikawa,fujinomiya,fukuroi,gotemba,haibara,hamamatsu,higashiizu,ito,iwata,izu,izunokuni,kakegawa,kannami,kawanehon,kawazu,kikugawa,kosai,makinohara,matsuzaki,minamiizu,mishima,morimachi,nishiizu,numazu,omaezaki,shimada,shimizu,shimoda,shizuoka,susono,yaizu,yoshida<tochigi>ashikaga,bato,haga,ichikai,iwafune,kaminokawa,kanuma,karasuyama,kuroiso,mashiko,mibu,moka,motegi,nasu,nasushiobara,nikko,nishikata,nogi,ohira,ohtawara,oyama,sakura,sano,shimotsuke,shioya,takanezawa,tochigi,tsuga,ujiie,utsunomiya,yaita<tokushima>aizumi,anan,ichiba,itano,kainan,komatsushima,matsushige,mima,minami,miyoshi,mugi,nakagawa,naruto,sanagochi,shishikui,tokushima,wajiki<tokyo>adachi,akiruno,akishima,aogashima,arakawa,bunkyo,chiyoda,chofu,chuo,edogawa,fuchu,fussa,hachijo,hachioji,hamura,higashikurume,higashimurayama,higashiyamato,hino,hinode,hinohara,inagi,itabashi,katsushika,kita,kiyose,kodaira,koganei,kokubunji,komae,koto,kouzushima,kunitachi,machida,meguro,minato,mitaka,mizuho,musashimurayama,musashino,nakano,nerima,ogasawara,okutama,ome,oshima,ota,setagaya,shibuya,shinagawa,shinjuku,suginami,sumida,tachikawa,taito,tama,toshima<tottori>chizu,hino,kawahara,koge,kotoura,misasa,nanbu,nichinan,sakaiminato,tottori,wakasa,yazu,yonago<toyama>asahi,fuchu,fukumitsu,funahashi,himi,imizu,inami,johana,kamiichi,kurobe,nakaniikawa,namerikawa,nanto,nyuzen,oyabe,taira,takaoka,tateyama,toga,tonami,toyama,unazuki,uozu,yamada<wakayama>arida,aridagawa,gobo,hashimoto,hidaka,hirogawa,inami,iwade,kainan,kamitonda,katsuragi,kimino,kinokawa,kitayama,koya,koza,kozagawa,kudoyama,kushimoto,mihama,misato,nachikatsuura,shingu,shirahama,taiji,tanabe,wakayama,yuasa,yura<yamagata>asahi,funagata,higashine,iide,kahoku,kaminoyama,kaneyama,kawanishi,mamurogawa,mikawa,murayama,nagai,nakayama,nanyo,nishikawa,obanazawa,oe,oguni,ohkura,oishida,sagae,sakata,sakegawa,shinjo,shirataka,shonai,takahata,tendo,tozawa,tsuruoka,yamagata,yamanobe,yonezawa,yuza<yamaguchi>abu,hagi,hikari,hofu,iwakuni,kudamatsu,mitou,nagato,oshima,shimonoseki,shunan,tabuse,tokuyama,toyota,ube,yuu<yamanashi>chuo,doshi,fuefuki,fujikawa,fujikawaguchiko,fujiyoshida,hayakawa,hokuto,ichikawamisato,kai,kofu,koshu,kosuge,minami-alps,minobu,nakamichi,nanbu,narusawa,nirasaki,nishikatsura,oshino,otsuki,showa,tabayama,tsuru,uenohara,yamanakako,yamanashi<xn--4pvxs,xn--vgu402c,xn--c3s14m,xn--f6qx53a,xn--8pvr4u,xn--uist22h,xn--djrs72d6uy,xn--mkru45i,xn--0trq7p7nn,xn--8ltr62k,xn--2m4a15e,xn--efvn9s,xn--32vp30h,xn--4it797k,xn--1lqs71d,xn--5rtp49c,xn--5js045d,xn--ehqz56n,xn--1lqs03n,xn--qqqt11m,xn--kbrq7o,xn--pssu33l,xn--ntsq17g,xn--uisz3g,xn--6btw5a,xn--1ctwo,xn--6orx2r,xn--rht61e,xn--rht27z,xn--djty4k,xn--nit225k,xn--rht3d,xn--klty5x,xn--kltx9a,xn--kltp7d,xn--uuwu58a,xn--zbx025d,xn--ntso0iqx3a,xn--elqq16h,xn--4it168d,xn--klt787d,xn--rny31h,xn--7t0a264c,xn--5rtq34k,xn--k7yn95e,xn--tor131o,xn--d5qv7z876c,kawasaki>*,!city<kitakyushu>*,!city<kobe>*,!city<nagoya>*,!city<sapporo>*,!city<sendai>*,!city<yokohama>*,!city<<ke>ac,co,go,info,me,mobi,ne,or,sc<kg>org,net,com,edu,gov,mil<kh>*<ki>edu,biz,net,org,gov,info,com<km>org,nom,gov,prd,tm,edu,mil,ass,com,coop,asso,presse,medecin,notaires,pharmaciens,veterinaire,gouv<kn>net,org,edu,gov<kp>com,edu,gov,org,rep,tra<kr>ac,co,es,go,hs,kg,mil,ms,ne,or,pe,re,sc,busan,chungbuk,chungnam,daegu,daejeon,gangwon,gwangju,gyeongbuk,gyeonggi,gyeongnam,incheon,jeju,jeonbuk,jeonnam,seoul,ulsan<kw>com,edu,emb,gov,ind,net,org<ky>edu,gov,com,org,net<kz>org,edu,net,gov,mil,com<la>int,net,info,edu,gov,per,com,org<lb>com,edu,gov,net,org<lc>com,net,co,org,edu,gov<li,lk>gov,sch,net,int,com,org,edu,ngo,soc,web,ltd,assn,grp,hotel,ac<lr>com,edu,gov,org,net<ls>ac,biz,co,edu,gov,info,net,org,sc<lt>gov<lu,lv>com,edu,gov,org,mil,id,net,asn,conf<ly>com,net,gov,plc,edu,sch,med,org,id<ma>co,net,gov,org,ac,press<mc>tm,asso<md,me>co,net,org,edu,ac,gov,its,priv<mg>org,nom,gov,prd,tm,edu,mil,com,co<mh,mil,mk>com,org,net,edu,gov,inf,name<ml>com,edu,gouv,gov,net,org,presse<mm>*<mn>gov,edu,org<mo>com,net,org,edu,gov<mobi,mp,mq,mr>gov<ms>com,edu,gov,net,org<mt>com,edu,net,org<mu>com,net,org,gov,ac,co,or<museum>academy,agriculture,air,airguard,alabama,alaska,amber,ambulance,american,americana,americanantiques,americanart,amsterdam,and,annefrank,anthro,anthropology,antiques,aquarium,arboretum,archaeological,archaeology,architecture,art,artanddesign,artcenter,artdeco,arteducation,artgallery,arts,artsandcrafts,asmatart,assassination,assisi,association,astronomy,atlanta,austin,australia,automotive,aviation,axis,badajoz,baghdad,bahn,bale,baltimore,barcelona,baseball,basel,baths,bauern,beauxarts,beeldengeluid,bellevue,bergbau,berkeley,berlin,bern,bible,bilbao,bill,birdart,birthplace,bonn,boston,botanical,botanicalgarden,botanicgarden,botany,brandywinevalley,brasil,bristol,british,britishcolumbia,broadcast,brunel,brussel,brussels,bruxelles,building,burghof,bus,bushey,cadaques,california,cambridge,can,canada,capebreton,carrier,cartoonart,casadelamoneda,castle,castres,celtic,center,chattanooga,cheltenham,chesapeakebay,chicago,children,childrens,childrensgarden,chiropractic,chocolate,christiansburg,cincinnati,cinema,circus,civilisation,civilization,civilwar,clinton,clock,coal,coastaldefence,cody,coldwar,collection,colonialwilliamsburg,coloradoplateau,columbia,columbus,communication,communications,community,computer,computerhistory,xn--comunicaes-v6a2o,contemporary,contemporaryart,convent,copenhagen,corporation,xn--correios-e-telecomunicaes-ghc29a,corvette,costume,countryestate,county,crafts,cranbrook,creation,cultural,culturalcenter,culture,cyber,cymru,dali,dallas,database,ddr,decorativearts,delaware,delmenhorst,denmark,depot,design,detroit,dinosaur,discovery,dolls,donostia,durham,eastafrica,eastcoast,education,educational,egyptian,eisenbahn,elburg,elvendrell,embroidery,encyclopedic,england,entomology,environment,environmentalconservation,epilepsy,essex,estate,ethnology,exeter,exhibition,family,farm,farmequipment,farmers,farmstead,field,figueres,filatelia,film,fineart,finearts,finland,flanders,florida,force,fortmissoula,fortworth,foundation,francaise,frankfurt,franziskaner,freemasonry,freiburg,fribourg,frog,fundacio,furniture,gallery,garden,gateway,geelvinck,gemological,geology,georgia,giessen,glas,glass,gorge,grandrapids,graz,guernsey,halloffame,hamburg,handson,harvestcelebration,hawaii,health,heimatunduhren,hellas,helsinki,hembygdsforbund,heritage,histoire,historical,historicalsociety,historichouses,historisch,historisches,history,historyofscience,horology,house,humanities,illustration,imageandsound,indian,indiana,indianapolis,indianmarket,intelligence,interactive,iraq,iron,isleofman,jamison,jefferson,jerusalem,jewelry,jewish,jewishart,jfk,journalism,judaica,judygarland,juedisches,juif,karate,karikatur,kids,koebenhavn,koeln,kunst,kunstsammlung,kunstunddesign,labor,labour,lajolla,lancashire,landes,lans,xn--lns-qla,larsson,lewismiller,lincoln,linz,living,livinghistory,localhistory,london,losangeles,louvre,loyalist,lucerne,luxembourg,luzern,mad,madrid,mallorca,manchester,mansion,mansions,manx,marburg,maritime,maritimo,maryland,marylhurst,media,medical,medizinhistorisches,meeres,memorial,mesaverde,michigan,midatlantic,military,mill,miners,mining,minnesota,missile,missoula,modern,moma,money,monmouth,monticello,montreal,moscow,motorcycle,muenchen,muenster,mulhouse,muncie,museet,museumcenter,museumvereniging,music,national,nationalfirearms,nationalheritage,nativeamerican,naturalhistory,naturalhistorymuseum,naturalsciences,nature,naturhistorisches,natuurwetenschappen,naumburg,naval,nebraska,neues,newhampshire,newjersey,newmexico,newport,newspaper,newyork,niepce,norfolk,north,nrw,nyc,nyny,oceanographic,oceanographique,omaha,online,ontario,openair,oregon,oregontrail,otago,oxford,pacific,paderborn,palace,paleo,palmsprings,panama,paris,pasadena,pharmacy,philadelphia,philadelphiaarea,philately,phoenix,photography,pilots,pittsburgh,planetarium,plantation,plants,plaza,portal,portland,portlligat,posts-and-telecommunications,preservation,presidio,press,project,public,pubol,quebec,railroad,railway,research,resistance,riodejaneiro,rochester,rockart,roma,russia,saintlouis,salem,salvadordali,salzburg,sandiego,sanfrancisco,santabarbara,santacruz,santafe,saskatchewan,satx,savannahga,schlesisches,schoenbrunn,schokoladen,school,schweiz,science,scienceandhistory,scienceandindustry,sciencecenter,sciencecenters,science-fiction,sciencehistory,sciences,sciencesnaturelles,scotland,seaport,settlement,settlers,shell,sherbrooke,sibenik,silk,ski,skole,society,sologne,soundandvision,southcarolina,southwest,space,spy,square,stadt,stalbans,starnberg,state,stateofdelaware,station,steam,steiermark,stjohn,stockholm,stpetersburg,stuttgart,suisse,surgeonshall,surrey,svizzera,sweden,sydney,tank,tcm,technology,telekommunikation,television,texas,textile,theater,time,timekeeping,topology,torino,touch,town,transport,tree,trolley,trust,trustee,uhren,ulm,undersea,university,usa,usantiques,usarts,uscountryestate,usculture,usdecorativearts,usgarden,ushistory,ushuaia,uslivinghistory,utah,uvic,valley,vantaa,versailles,viking,village,virginia,virtual,virtuel,vlaanderen,volkenkunde,wales,wallonie,war,washingtondc,watchandclock,watch-and-clock,western,westfalen,whaling,wildlife,williamsburg,windmill,workshop,york,yorkshire,yosemite,youth,zoological,zoology,xn--9dbhblg6di,xn--h1aegh<mv>aero,biz,com,coop,edu,gov,info,int,mil,museum,name,net,org,pro<mw>ac,biz,co,com,coop,edu,gov,int,museum,net,org<mx>com,org,gob,edu,net<my>biz,com,edu,gov,mil,name,net,org<mz>ac,adv,co,edu,gov,mil,net,org<na>info,pro,name,school,or,dr,us,mx,ca,in,cc,tv,ws,mobi,co,com,org<name,nc>asso,nom<ne,net,nf>com,net,per,rec,web,arts,firm,info,other,store<ng>com,edu,gov,i,mil,mobi,name,net,org,sch<ni>ac,biz,co,com,edu,gob,in,info,int,mil,net,nom,org,web<nl,no>fhs,vgs,fylkesbibl,folkebibl,museum,idrett,priv,mil,stat,dep,kommune,herad,aa>gs<ah>gs<bu>gs<fm>gs<hl>gs<hm>gs<jan-mayen>gs<mr>gs<nl>gs<nt>gs<of>gs<ol>gs<oslo>gs<rl>gs<sf>gs<st>gs<svalbard>gs<tm>gs<tr>gs<va>gs<vf>gs<akrehamn,xn--krehamn-dxa,algard,xn--lgrd-poac,arna,brumunddal,bryne,bronnoysund,xn--brnnysund-m8ac,drobak,xn--drbak-wua,egersund,fetsund,floro,xn--flor-jra,fredrikstad,hokksund,honefoss,xn--hnefoss-q1a,jessheim,jorpeland,xn--jrpeland-54a,kirkenes,kopervik,krokstadelva,langevag,xn--langevg-jxa,leirvik,mjondalen,xn--mjndalen-64a,mo-i-rana,mosjoen,xn--mosjen-eya,nesoddtangen,orkanger,osoyro,xn--osyro-wua,raholt,xn--rholt-mra,sandnessjoen,xn--sandnessjen-ogb,skedsmokorset,slattum,spjelkavik,stathelle,stavern,stjordalshalsen,xn--stjrdalshalsen-sqb,tananger,tranby,vossevangen,afjord,xn--fjord-lra,agdenes,al,xn--l-1fa,alesund,xn--lesund-hua,alstahaug,alta,xn--lt-liac,alaheadju,xn--laheadju-7ya,alvdal,amli,xn--mli-tla,amot,xn--mot-tla,andebu,andoy,xn--andy-ira,andasuolo,ardal,xn--rdal-poa,aremark,arendal,xn--s-1fa,aseral,xn--seral-lra,asker,askim,askvoll,askoy,xn--asky-ira,asnes,xn--snes-poa,audnedaln,aukra,aure,aurland,aurskog-holand,xn--aurskog-hland-jnb,austevoll,austrheim,averoy,xn--avery-yua,balestrand,ballangen,balat,xn--blt-elab,balsfjord,bahccavuotna,xn--bhccavuotna-k7a,bamble,bardu,beardu,beiarn,bajddar,xn--bjddar-pta,baidar,xn--bidr-5nac,berg,bergen,berlevag,xn--berlevg-jxa,bearalvahki,xn--bearalvhki-y4a,bindal,birkenes,bjarkoy,xn--bjarky-fya,bjerkreim,bjugn,bodo,xn--bod-2na,badaddja,xn--bdddj-mrabd,budejju,bokn,bremanger,bronnoy,xn--brnny-wuac,bygland,bykle,barum,xn--brum-voa,telemark>bo,xn--b-5ga<nordland>bo,xn--b-5ga,heroy,xn--hery-ira<bievat,xn--bievt-0qa,bomlo,xn--bmlo-gra,batsfjord,xn--btsfjord-9za,bahcavuotna,xn--bhcavuotna-s4a,dovre,drammen,drangedal,dyroy,xn--dyry-ira,donna,xn--dnna-gra,eid,eidfjord,eidsberg,eidskog,eidsvoll,eigersund,elverum,enebakk,engerdal,etne,etnedal,evenes,evenassi,xn--eveni-0qa01ga,evje-og-hornnes,farsund,fauske,fuossko,fuoisku,fedje,fet,finnoy,xn--finny-yua,fitjar,fjaler,fjell,flakstad,flatanger,flekkefjord,flesberg,flora,fla,xn--fl-zia,folldal,forsand,fosnes,frei,frogn,froland,frosta,frana,xn--frna-woa,froya,xn--frya-hra,fusa,fyresdal,forde,xn--frde-gra,gamvik,gangaviika,xn--ggaviika-8ya47h,gaular,gausdal,gildeskal,xn--gildeskl-g0a,giske,gjemnes,gjerdrum,gjerstad,gjesdal,gjovik,xn--gjvik-wua,gloppen,gol,gran,grane,granvin,gratangen,grimstad,grong,kraanghke,xn--kranghke-b0a,grue,gulen,hadsel,halden,halsa,hamar,hamaroy,habmer,xn--hbmer-xqa,hapmir,xn--hpmir-xqa,hammerfest,hammarfeasta,xn--hmmrfeasta-s4ac,haram,hareid,harstad,hasvik,aknoluokta,xn--koluokta-7ya57h,hattfjelldal,aarborte,haugesund,hemne,hemnes,hemsedal,more-og-romsdal>heroy,sande<xn--mre-og-romsdal-qqb>xn--hery-ira,sande<hitra,hjartdal,hjelmeland,hobol,xn--hobl-ira,hof,hol,hole,holmestrand,holtalen,xn--holtlen-hxa,hornindal,horten,hurdal,hurum,hvaler,hyllestad,hagebostad,xn--hgebostad-g3a,hoyanger,xn--hyanger-q1a,hoylandet,xn--hylandet-54a,ha,xn--h-2fa,ibestad,inderoy,xn--indery-fya,iveland,jevnaker,jondal,jolster,xn--jlster-bya,karasjok,karasjohka,xn--krjohka-hwab49j,karlsoy,galsa,xn--gls-elac,karmoy,xn--karmy-yua,kautokeino,guovdageaidnu,klepp,klabu,xn--klbu-woa,kongsberg,kongsvinger,kragero,xn--krager-gya,kristiansand,kristiansund,krodsherad,xn--krdsherad-m8a,kvalsund,rahkkeravju,xn--rhkkervju-01af,kvam,kvinesdal,kvinnherad,kviteseid,kvitsoy,xn--kvitsy-fya,kvafjord,xn--kvfjord-nxa,giehtavuoatna,kvanangen,xn--kvnangen-k0a,navuotna,xn--nvuotna-hwa,kafjord,xn--kfjord-iua,gaivuotna,xn--givuotna-8ya,larvik,lavangen,lavagis,loabat,xn--loabt-0qa,lebesby,davvesiida,leikanger,leirfjord,leka,leksvik,lenvik,leangaviika,xn--leagaviika-52b,lesja,levanger,lier,lierne,lillehammer,lillesand,lindesnes,lindas,xn--linds-pra,lom,loppa,lahppi,xn--lhppi-xqa,lund,lunner,luroy,xn--lury-ira,luster,lyngdal,lyngen,ivgu,lardal,lerdal,xn--lrdal-sra,lodingen,xn--ldingen-q1a,lorenskog,xn--lrenskog-54a,loten,xn--lten-gra,malvik,masoy,xn--msy-ula0h,muosat,xn--muost-0qa,mandal,marker,marnardal,masfjorden,meland,meldal,melhus,meloy,xn--mely-ira,meraker,xn--merker-kua,moareke,xn--moreke-jua,midsund,midtre-gauldal,modalen,modum,molde,moskenes,moss,mosvik,malselv,xn--mlselv-iua,malatvuopmi,xn--mlatvuopmi-s4a,namdalseid,aejrie,namsos,namsskogan,naamesjevuemie,xn--nmesjevuemie-tcba,laakesvuemie,nannestad,narvik,narviika,naustdal,nedre-eiker,akershus>nes<buskerud>nes<nesna,nesodden,nesseby,unjarga,xn--unjrga-rta,nesset,nissedal,nittedal,nord-aurdal,nord-fron,nord-odal,norddal,nordkapp,davvenjarga,xn--davvenjrga-y4a,nordre-land,nordreisa,raisa,xn--risa-5na,nore-og-uvdal,notodden,naroy,xn--nry-yla5g,notteroy,xn--nttery-byae,odda,oksnes,xn--ksnes-uua,oppdal,oppegard,xn--oppegrd-ixa,orkdal,orland,xn--rland-uua,orskog,xn--rskog-uua,orsta,xn--rsta-fra,hedmark>os,valer,xn--vler-qoa<hordaland>os<osen,osteroy,xn--ostery-fya,ostre-toten,xn--stre-toten-zcb,overhalla,ovre-eiker,xn--vre-eiker-k8a,oyer,xn--yer-zna,oygarden,xn--ygarden-p1a,oystre-slidre,xn--ystre-slidre-ujb,porsanger,porsangu,xn--porsgu-sta26f,porsgrunn,radoy,xn--rady-ira,rakkestad,rana,ruovat,randaberg,rauma,rendalen,rennebu,rennesoy,xn--rennesy-v1a,rindal,ringebu,ringerike,ringsaker,rissa,risor,xn--risr-ira,roan,rollag,rygge,ralingen,xn--rlingen-mxa,rodoy,xn--rdy-0nab,romskog,xn--rmskog-bya,roros,xn--rros-gra,rost,xn--rst-0na,royken,xn--ryken-vua,royrvik,xn--ryrvik-bya,rade,xn--rde-ula,salangen,siellak,saltdal,salat,xn--slt-elab,xn--slat-5na,samnanger,vestfold>sande<sandefjord,sandnes,sandoy,xn--sandy-yua,sarpsborg,sauda,sauherad,sel,selbu,selje,seljord,sigdal,siljan,sirdal,skaun,skedsmo,ski,skien,skiptvet,skjervoy,xn--skjervy-v1a,skierva,xn--skierv-uta,skjak,xn--skjk-soa,skodje,skanland,xn--sknland-fxa,skanit,xn--sknit-yqa,smola,xn--smla-hra,snillfjord,snasa,xn--snsa-roa,snoasa,snaase,xn--snase-nra,sogndal,sokndal,sola,solund,songdalen,sortland,spydeberg,stange,stavanger,steigen,steinkjer,stjordal,xn--stjrdal-s1a,stokke,stor-elvdal,stord,stordal,storfjord,omasvuotna,strand,stranda,stryn,sula,suldal,sund,sunndal,surnadal,sveio,svelvik,sykkylven,sogne,xn--sgne-gra,somna,xn--smna-gra,sondre-land,xn--sndre-land-0cb,sor-aurdal,xn--sr-aurdal-l8a,sor-fron,xn--sr-fron-q1a,sor-odal,xn--sr-odal-q1a,sor-varanger,xn--sr-varanger-ggb,matta-varjjat,xn--mtta-vrjjat-k7af,sorfold,xn--srfold-bya,sorreisa,xn--srreisa-q1a,sorum,xn--srum-gra,tana,deatnu,time,tingvoll,tinn,tjeldsund,dielddanuorri,tjome,xn--tjme-hra,tokke,tolga,torsken,tranoy,xn--trany-yua,tromso,xn--troms-zua,tromsa,romsa,trondheim,troandin,trysil,trana,xn--trna-woa,trogstad,xn--trgstad-r1a,tvedestrand,tydal,tynset,tysfjord,divtasvuodna,divttasvuotna,tysnes,tysvar,xn--tysvr-vra,tonsberg,xn--tnsberg-q1a,ullensaker,ullensvang,ulvik,utsira,vadso,xn--vads-jra,cahcesuolo,xn--hcesuolo-7ya35b,vaksdal,valle,vang,vanylven,vardo,xn--vard-jra,varggat,xn--vrggt-xqad,vefsn,vaapste,vega,vegarshei,xn--vegrshei-c0a,vennesla,verdal,verran,vestby,vestnes,vestre-slidre,vestre-toten,vestvagoy,xn--vestvgy-ixa6o,vevelstad,vik,vikna,vindafjord,volda,voss,varoy,xn--vry-yla5g,vagan,xn--vgan-qoa,voagat,vagsoy,xn--vgsy-qoa0j,vaga,xn--vg-yiab,ostfold>valer<xn--stfold-9xa>xn--vler-qoa<<np>*<nr>biz,info,gov,edu,org,net,com<nu,nz>ac,co,cri,geek,gen,govt,health,iwi,kiwi,maori,mil,xn--mori-qsa,net,org,parliament,school<om>co,com,edu,gov,med,museum,net,org,pro<onion,org,pa>ac,gob,com,org,sld,edu,net,ing,abo,med,nom<pe>edu,gob,nom,mil,org,com,net<pf>com,org,edu<pg>*<ph>com,net,org,gov,edu,ngo,mil,i<pk>com,net,edu,org,fam,biz,web,gov,gob,gok,gon,gop,gos,info<pl>com,net,org,aid,agro,atm,auto,biz,edu,gmina,gsm,info,mail,miasta,media,mil,nieruchomosci,nom,pc,powiat,priv,realestate,rel,sex,shop,sklep,sos,szkola,targi,tm,tourism,travel,turystyka,gov>ap,ic,is,us,kmpsp,kppsp,kwpsp,psp,wskr,kwp,mw,ug,um,umig,ugim,upow,uw,starostwo,pa,po,psse,pup,rzgw,sa,so,sr,wsa,sko,uzs,wiih,winb,pinb,wios,witd,wzmiuw,piw,wiw,griw,wif,oum,sdn,zp,uppo,mup,wuoz,konsulat,oirm<augustow,babia-gora,bedzin,beskidy,bialowieza,bialystok,bielawa,bieszczady,boleslawiec,bydgoszcz,bytom,cieszyn,czeladz,czest,dlugoleka,elblag,elk,glogow,gniezno,gorlice,grajewo,ilawa,jaworzno,jelenia-gora,jgora,kalisz,kazimierz-dolny,karpacz,kartuzy,kaszuby,katowice,kepno,ketrzyn,klodzko,kobierzyce,kolobrzeg,konin,konskowola,kutno,lapy,lebork,legnica,lezajsk,limanowa,lomza,lowicz,lubin,lukow,malbork,malopolska,mazowsze,mazury,mielec,mielno,mragowo,naklo,nowaruda,nysa,olawa,olecko,olkusz,olsztyn,opoczno,opole,ostroda,ostroleka,ostrowiec,ostrowwlkp,pila,pisz,podhale,podlasie,polkowice,pomorze,pomorskie,prochowice,pruszkow,przeworsk,pulawy,radom,rawa-maz,rybnik,rzeszow,sanok,sejny,slask,slupsk,sosnowiec,stalowa-wola,skoczow,starachowice,stargard,suwalki,swidnica,swiebodzin,swinoujscie,szczecin,szczytno,tarnobrzeg,tgory,turek,tychy,ustka,walbrzych,warmia,warszawa,waw,wegrow,wielun,wlocl,wloclawek,wodzislaw,wolomin,wroclaw,zachpomor,zagan,zarow,zgora,zgorzelec<pm,pn>gov,co,org,edu,net<post,pr>com,net,org,gov,edu,isla,pro,biz,info,name,est,prof,ac<pro>aaa,aca,acct,avocat,bar,cpa,eng,jur,law,med,recht<ps>edu,gov,sec,plo,com,org,net<pt>net,gov,org,edu,int,publ,com,nome<pw>co,ne,or,ed,go,belau<py>com,coop,edu,gov,mil,net,org<qa>com,edu,gov,mil,name,net,org,sch<re>asso,com,nom<ro>arts,com,firm,info,nom,nt,org,rec,store,tm,www<rs>ac,co,edu,gov,in,org<ru,rw>ac,co,coop,gov,mil,net,org<sa>com,net,org,gov,med,pub,edu,sch<sb>com,edu,gov,net,org<sc>com,gov,net,org,edu<sd>com,net,org,edu,med,tv,gov,info<se>a,ac,b,bd,brand,c,d,e,f,fh,fhsk,fhv,g,h,i,k,komforb,kommunalforbund,komvux,l,lanbib,m,n,naturbruksgymn,o,org,p,parti,pp,press,r,s,t,tm,u,w,x,y,z<sg>com,net,org,gov,edu,per<sh>com,net,gov,org,mil<si,sj,sk,sl>com,net,edu,gov,org<sm,sn>art,com,edu,gouv,org,perso,univ<so>com,edu,gov,me,net,org<sr,ss>biz,com,edu,gov,me,net,org,sch<st>co,com,consulado,edu,embaixada,mil,net,org,principe,saotome,store<su,sv>com,edu,gob,org,red<sx>gov<sy>edu,gov,net,mil,com,org<sz>co,ac,org<tc,td,tel,tf,tg,th>ac,co,go,in,mi,net,or<tj>ac,biz,co,com,edu,go,gov,int,mil,name,net,nic,org,test,web<tk,tl>gov<tm>com,co,org,net,nom,gov,mil,edu<tn>com,ens,fin,gov,ind,intl,nat,net,org,info,perso,tourism,edunet,rnrt,rns,rnu,mincom,agrinet,defense,turen<to>com,gov,net,org,edu,mil<tr>av,bbs,bel,biz,com,dr,edu,gen,gov,info,mil,k12,kep,name,net,org,pol,tel,tsk,tv,web,nc>gov<<tt>co,com,org,net,biz,info,pro,int,coop,jobs,mobi,travel,museum,aero,name,gov,edu<tv,tw>edu,gov,mil,com,net,org,idv,game,ebiz,club,xn--zf0ao64a,xn--uc0atv,xn--czrw28b<tz>ac,co,go,hotel,info,me,mil,mobi,ne,or,sc,tv<ua>com,edu,gov,in,net,org,cherkassy,cherkasy,chernigov,chernihiv,chernivtsi,chernovtsy,ck,cn,cr,crimea,cv,dn,dnepropetrovsk,dnipropetrovsk,donetsk,dp,if,ivano-frankivsk,kh,kharkiv,kharkov,kherson,khmelnitskiy,khmelnytskyi,kiev,kirovograd,km,kr,krym,ks,kv,kyiv,lg,lt,lugansk,lutsk,lv,lviv,mk,mykolaiv,nikolaev,od,odesa,odessa,pl,poltava,rivne,rovno,rv,sb,sebastopol,sevastopol,sm,sumy,te,ternopil,uz,uzhgorod,vinnica,vinnytsia,vn,volyn,yalta,zaporizhzhe,zaporizhzhia,zhitomir,zhytomyr,zp,zt<ug>co,or,ac,sc,go,ne,com,org<uk>ac,co,gov,ltd,me,net,nhs,org,plc,police,sch>*<<us>dni,fed,isa,kids,nsn,ak>k12,cc,lib<al>k12,cc,lib<ar>k12,cc,lib<as>k12,cc,lib<az>k12,cc,lib<ca>k12,cc,lib<co>k12,cc,lib<ct>k12,cc,lib<dc>k12,cc,lib<de>k12,cc<fl>k12,cc,lib<ga>k12,cc,lib<gu>k12,cc,lib<hi>cc,lib<ia>k12,cc,lib<id>k12,cc,lib<il>k12,cc,lib<in>k12,cc,lib<ks>k12,cc,lib<ky>k12,cc,lib<la>k12,cc,lib<ma>k12>pvt,chtr,paroch<cc,lib<md>k12,cc,lib<me>k12,cc,lib<mi>k12,cc,lib,ann-arbor,cog,dst,eaton,gen,mus,tec,washtenaw<mn>k12,cc,lib<mo>k12,cc,lib<ms>k12,cc,lib<mt>k12,cc,lib<nc>k12,cc,lib<nd>cc,lib<ne>k12,cc,lib<nh>k12,cc,lib<nj>k12,cc,lib<nm>k12,cc,lib<nv>k12,cc,lib<ny>k12,cc,lib<oh>k12,cc,lib<ok>k12,cc,lib<or>k12,cc,lib<pa>k12,cc,lib<pr>k12,cc,lib<ri>cc,lib<sc>k12,cc,lib<sd>cc,lib<tn>k12,cc,lib<tx>k12,cc,lib<ut>k12,cc,lib<vi>k12,cc,lib<vt>k12,cc,lib<va>k12,cc,lib<wa>k12,cc,lib<wi>k12,cc,lib<wv>cc<wy>k12,cc,lib<<uy>com,edu,gub,mil,net,org<uz>co,com,net,org<va,vc>com,net,org,gov,mil,edu<ve>arts,bib,co,com,e12,edu,firm,gob,gov,info,int,mil,net,nom,org,rar,rec,store,tec,web<vg,vi>co,com,k12,net,org<vn>com,net,org,edu,gov,int,ac,biz,info,name,pro,health<vu>com,edu,net,org<wf,ws>com,net,org,gov,edu<yt,xn--mgbaam7a8h,xn--y9a3aq,xn--54b7fta0cc,xn--90ae,xn--mgbcpq6gpa1a,xn--90ais,xn--fiqs8s,xn--fiqz9s,xn--lgbbat1ad8j,xn--wgbh1c,xn--e1a4c,xn--qxa6a,xn--mgbah1a3hjkrd,xn--node,xn--qxam,xn--j6w193g>xn--55qx5d,xn--wcvs22d,xn--mxtq1m,xn--gmqw5a,xn--od0alg,xn--uc0atv<xn--2scrj9c,xn--3hcrj9c,xn--45br5cyl,xn--h2breg3eve,xn--h2brj9c8c,xn--mgbgu82a,xn--rvc1e0am3e,xn--h2brj9c,xn--mgbbh1a,xn--mgbbh1a71e,xn--fpcrj9c3d,xn--gecrj9c,xn--s9brj9c,xn--45brj9c,xn--xkc2dl3a5ee0h,xn--mgba3a4f16a,xn--mgba3a4fra,xn--mgbtx2b,xn--mgbayh7gpa,xn--3e0b707e,xn--80ao21a,xn--q7ce6a,xn--fzc2c9e2c,xn--xkc2al3hye2a,xn--mgbc0a9azcg,xn--d1alf,xn--l1acc,xn--mix891f,xn--mix082f,xn--mgbx4cd0ab,xn--mgb9awbf,xn--mgbai9azgqp6j,xn--mgbai9a5eva00b,xn--ygbi2ammx,xn--90a3ac>xn--o1ac,xn--c1avg,xn--90azh,xn--d1at,xn--o1ach,xn--80au<xn--p1ai,xn--wgbl6a,xn--mgberp4a5d4ar,xn--mgberp4a5d4a87g,xn--mgbqly7c0a67fbc,xn--mgbqly7cvafr,xn--mgbpl2fh,xn--yfro4i67o,xn--clchc0ea0b2g2a9gcd,xn--ogbpf8fl,xn--mgbtf8fl,xn--o3cw4h>xn--12c1fe0br,xn--12co0c3b4eva,xn--h3cuzk1di,xn--o3cyx2a,xn--m3ch0j3a,xn--12cfi8ixb8l<xn--pgbs0dh,xn--kpry57d,xn--kprw13d,xn--nnx388a,xn--j1amh,xn--mgb2ddes,xxx,ye>com,edu,gov,net,mil,org<za>ac,agric,alt,co,edu,gov,grondar,law,mil,net,ngo,nic,nis,nom,org,school,tm,web<zm>ac,biz,co,com,edu,gov,info,mil,net,org,sch<zw>ac,co,gov,mil,org<aaa,aarp,abarth,abb,abbott,abbvie,abc,able,abogado,abudhabi,academy,accenture,accountant,accountants,aco,actor,adac,ads,adult,aeg,aetna,afamilycompany,afl,africa,agakhan,agency,aig,airbus,airforce,airtel,akdn,alfaromeo,alibaba,alipay,allfinanz,allstate,ally,alsace,alstom,amazon,americanexpress,americanfamily,amex,amfam,amica,amsterdam,analytics,android,anquan,anz,aol,apartments,app,apple,aquarelle,arab,aramco,archi,army,art,arte,asda,associates,athleta,attorney,auction,audi,audible,audio,auspost,author,auto,autos,avianca,aws,axa,azure,baby,baidu,banamex,bananarepublic,band,bank,bar,barcelona,barclaycard,barclays,barefoot,bargains,baseball,basketball,bauhaus,bayern,bbc,bbt,bbva,bcg,bcn,beats,beauty,beer,bentley,berlin,best,bestbuy,bet,bharti,bible,bid,bike,bing,bingo,bio,black,blackfriday,blockbuster,blog,bloomberg,blue,bms,bmw,bnpparibas,boats,boehringer,bofa,bom,bond,boo,book,booking,bosch,bostik,boston,bot,boutique,box,bradesco,bridgestone,broadway,broker,brother,brussels,budapest,bugatti,build,builders,business,buy,buzz,bzh,cab,cafe,cal,call,calvinklein,cam,camera,camp,cancerresearch,canon,capetown,capital,capitalone,car,caravan,cards,care,career,careers,cars,casa,case,cash,casino,catering,catholic,cba,cbn,cbre,cbs,center,ceo,cern,cfa,cfd,chanel,channel,charity,chase,chat,cheap,chintai,christmas,chrome,church,cipriani,circle,cisco,citadel,citi,citic,city,cityeats,claims,cleaning,click,clinic,clinique,clothing,cloud,club,clubmed,coach,codes,coffee,college,cologne,comcast,commbank,community,company,compare,computer,comsec,condos,construction,consulting,contact,contractors,cooking,cookingchannel,cool,corsica,country,coupon,coupons,courses,cpa,credit,creditcard,creditunion,cricket,crown,crs,cruise,cruises,csc,cuisinella,cymru,cyou,dabur,dad,dance,data,date,dating,datsun,day,dclk,dds,deal,dealer,deals,degree,delivery,dell,deloitte,delta,democrat,dental,dentist,desi,design,dev,dhl,diamonds,diet,digital,direct,directory,discount,discover,dish,diy,dnp,docs,doctor,dog,domains,dot,download,drive,dtv,dubai,duck,dunlop,dupont,durban,dvag,dvr,earth,eat,eco,edeka,education,email,emerck,energy,engineer,engineering,enterprises,epson,equipment,ericsson,erni,esq,estate,etisalat,eurovision,eus,events,exchange,expert,exposed,express,extraspace,fage,fail,fairwinds,faith,family,fan,fans,farm,farmers,fashion,fast,fedex,feedback,ferrari,ferrero,fiat,fidelity,fido,film,final,finance,financial,fire,firestone,firmdale,fish,fishing,fit,fitness,flickr,flights,flir,florist,flowers,fly,foo,food,foodnetwork,football,ford,forex,forsale,forum,foundation,fox,free,fresenius,frl,frogans,frontdoor,frontier,ftr,fujitsu,fun,fund,furniture,futbol,fyi,gal,gallery,gallo,gallup,game,games,gap,garden,gay,gbiz,gdn,gea,gent,genting,george,ggee,gift,gifts,gives,giving,glade,glass,gle,global,globo,gmail,gmbh,gmo,gmx,godaddy,gold,goldpoint,golf,goo,goodyear,goog,google,gop,got,grainger,graphics,gratis,green,gripe,grocery,group,guardian,gucci,guge,guide,guitars,guru,hair,hamburg,hangout,haus,hbo,hdfc,hdfcbank,health,healthcare,help,helsinki,here,hermes,hgtv,hiphop,hisamitsu,hitachi,hiv,hkt,hockey,holdings,holiday,homedepot,homegoods,homes,homesense,honda,horse,hospital,host,hosting,hot,hoteles,hotels,hotmail,house,how,hsbc,hughes,hyatt,hyundai,ibm,icbc,ice,icu,ieee,ifm,ikano,imamat,imdb,immo,immobilien,inc,industries,infiniti,ing,ink,institute,insurance,insure,international,intuit,investments,ipiranga,irish,ismaili,ist,istanbul,itau,itv,jaguar,java,jcb,jeep,jetzt,jewelry,jio,jll,jmp,jnj,joburg,jot,joy,jpmorgan,jprs,juegos,juniper,kaufen,kddi,kerryhotels,kerrylogistics,kerryproperties,kfh,kia,kids,kim,kinder,kindle,kitchen,kiwi,koeln,komatsu,kosher,kpmg,kpn,krd,kred,kuokgroup,kyoto,lacaixa,lamborghini,lamer,lancaster,lancia,land,landrover,lanxess,lasalle,lat,latino,latrobe,law,lawyer,lds,lease,leclerc,lefrak,legal,lego,lexus,lgbt,lidl,life,lifeinsurance,lifestyle,lighting,like,lilly,limited,limo,lincoln,linde,link,lipsy,live,living,lixil,llc,llp,loan,loans,locker,locus,loft,lol,london,lotte,lotto,love,lpl,lplfinancial,ltd,ltda,lundbeck,luxe,luxury,macys,madrid,maif,maison,makeup,man,management,mango,map,market,marketing,markets,marriott,marshalls,maserati,mattel,mba,mckinsey,med,media,meet,melbourne,meme,memorial,men,menu,merckmsd,miami,microsoft,mini,mint,mit,mitsubishi,mlb,mls,mma,mobile,moda,moe,moi,mom,monash,money,monster,mormon,mortgage,moscow,moto,motorcycles,mov,movie,msd,mtn,mtr,music,mutual,nab,nagoya,natura,navy,nba,nec,netbank,netflix,network,neustar,new,news,next,nextdirect,nexus,nfl,ngo,nhk,nico,nike,nikon,ninja,nissan,nissay,nokia,northwesternmutual,norton,now,nowruz,nowtv,nra,nrw,ntt,nyc,obi,observer,off,office,okinawa,olayan,olayangroup,oldnavy,ollo,omega,one,ong,onl,online,ooo,open,oracle,orange,organic,origins,osaka,otsuka,ott,ovh,page,panasonic,paris,pars,partners,parts,party,passagens,pay,pccw,pet,pfizer,pharmacy,phd,philips,phone,photo,photography,photos,physio,pics,pictet,pictures,pid,pin,ping,pink,pioneer,pizza,place,play,playstation,plumbing,plus,pnc,pohl,poker,politie,porn,pramerica,praxi,press,prime,prod,productions,prof,progressive,promo,properties,property,protection,pru,prudential,pub,pwc,qpon,quebec,quest,qvc,racing,radio,raid,read,realestate,realtor,realty,recipes,red,redstone,redumbrella,rehab,reise,reisen,reit,reliance,ren,rent,rentals,repair,report,republican,rest,restaurant,review,reviews,rexroth,rich,richardli,ricoh,ril,rio,rip,rmit,rocher,rocks,rodeo,rogers,room,rsvp,rugby,ruhr,run,rwe,ryukyu,saarland,safe,safety,sakura,sale,salon,samsclub,samsung,sandvik,sandvikcoromant,sanofi,sap,sarl,sas,save,saxo,sbi,sbs,sca,scb,schaeffler,schmidt,scholarships,school,schule,schwarz,science,scjohnson,scot,search,seat,secure,security,seek,select,sener,services,ses,seven,sew,sex,sexy,sfr,shangrila,sharp,shaw,shell,shia,shiksha,shoes,shop,shopping,shouji,show,showtime,silk,sina,singles,site,ski,skin,sky,skype,sling,smart,smile,sncf,soccer,social,softbank,software,sohu,solar,solutions,song,sony,soy,spa,space,sport,spot,srl,stada,staples,star,statebank,statefarm,stc,stcgroup,stockholm,storage,store,stream,studio,study,style,sucks,supplies,supply,support,surf,surgery,suzuki,swatch,swiftcover,swiss,sydney,systems,tab,taipei,talk,taobao,target,tatamotors,tatar,tattoo,tax,taxi,tci,tdk,team,tech,technology,temasek,tennis,teva,thd,theater,theatre,tiaa,tickets,tienda,tiffany,tips,tires,tirol,tjmaxx,tjx,tkmaxx,tmall,today,tokyo,tools,top,toray,toshiba,total,tours,town,toyota,toys,trade,trading,training,travel,travelchannel,travelers,travelersinsurance,trust,trv,tube,tui,tunes,tushu,tvs,ubank,ubs,unicom,university,uno,uol,ups,vacations,vana,vanguard,vegas,ventures,verisign,versicherung,vet,viajes,video,vig,viking,villas,vin,vip,virgin,visa,vision,viva,vivo,vlaanderen,vodka,volkswagen,volvo,vote,voting,voto,voyage,vuelos,wales,walmart,walter,wang,wanggou,watch,watches,weather,weatherchannel,webcam,weber,website,wedding,weibo,weir,whoswho,wien,wiki,williamhill,win,windows,wine,winners,wme,wolterskluwer,woodside,work,works,world,wow,wtc,wtf,xbox,xerox,xfinity,xihuan,xin,xn--11b4c3d,xn--1ck2e1b,xn--1qqw23a,xn--30rr7y,xn--3bst00m,xn--3ds443g,xn--3oq18vl8pn36a,xn--3pxu8k,xn--42c2d9a,xn--45q11c,xn--4gbrim,xn--55qw42g,xn--55qx5d,xn--5su34j936bgsg,xn--5tzm5g,xn--6frz82g,xn--6qq986b3xl,xn--80adxhks,xn--80aqecdr1a,xn--80asehdb,xn--80aswg,xn--8y0a063a,xn--9dbq2a,xn--9et52u,xn--9krt00a,xn--b4w605ferd,xn--bck1b9a5dre4c,xn--c1avg,xn--c2br7g,xn--cck2b3b,xn--cckwcxetd,xn--cg4bki,xn--czr694b,xn--czrs0t,xn--czru2d,xn--d1acj3b,xn--eckvdtc9d,xn--efvy88h,xn--fct429k,xn--fhbei,xn--fiq228c5hs,xn--fiq64b,xn--fjq720a,xn--flw351e,xn--fzys8d69uvgm,xn--g2xx48c,xn--gckr3f0f,xn--gk3at1e,xn--hxt814e,xn--i1b6b1a6a2e,xn--imr513n,xn--io0a7i,xn--j1aef,xn--jlq480n2rg,xn--jlq61u9w7b,xn--jvr189m,xn--kcrx77d1x4a,xn--kput3i,xn--mgba3a3ejt,xn--mgba7c0bbn0a,xn--mgbaakc7dvf,xn--mgbab2bd,xn--mgbca7dzdo,xn--mgbi4ecexp,xn--mgbt3dhd,xn--mk1bu44c,xn--mxtq1m,xn--ngbc5azd,xn--ngbe9e0a,xn--ngbrx,xn--nqv7f,xn--nqv7fs00ema,xn--nyqy26a,xn--otu796d,xn--p1acf,xn--pssy2u,xn--q9jyb4c,xn--qcka1pmc,xn--rhqv96g,xn--rovu88b,xn--ses554g,xn--t60b56a,xn--tckwe,xn--tiq49xqyj,xn--unup4y,xn--vermgensberater-ctb,xn--vermgensberatung-pwb,xn--vhquv,xn--vuq861b,xn--w4r85el8fhu5dnra,xn--w4rs40l,xn--xhq521b,xn--zfr164b,xyz,yachts,yahoo,yamaxun,yandex,yodobashi,yoga,yokohama,you,youtube,yun,zappos,zara,zero,zip,zone,zuerich"),ws=null!=ws?ws:gs("ua>cc,inf,ltd,cx,biz,co,pp,v<to>611,oya,rdv,vpnplus,quickconnect>direct<nyan<us>graphox,cloudns,drud,is-by,land-4-sale,stuff-4-sale,enscaled>phx<mircloud,freeddns,golffan,noip,pointto,platterp,de>lib<<com>devcdnaccesso>*<adobeaemcloud>dev>*<<kasserver,amazonaws>compute>*<compute-1>*<us-east-1>dualstack>s3<<elb>*<s3,s3-ap-northeast-1,s3-ap-northeast-2,s3-ap-south-1,s3-ap-southeast-1,s3-ap-southeast-2,s3-ca-central-1,s3-eu-central-1,s3-eu-west-1,s3-eu-west-2,s3-eu-west-3,s3-external-1,s3-fips-us-gov-west-1,s3-sa-east-1,s3-us-gov-west-1,s3-us-east-2,s3-us-west-1,s3-us-west-2,ap-northeast-2>s3,dualstack>s3<s3-website<ap-south-1>s3,dualstack>s3<s3-website<ca-central-1>s3,dualstack>s3<s3-website<eu-central-1>s3,dualstack>s3<s3-website<eu-west-2>s3,dualstack>s3<s3-website<eu-west-3>s3,dualstack>s3<s3-website<us-east-2>s3,dualstack>s3<s3-website<ap-northeast-1>dualstack>s3<<ap-southeast-1>dualstack>s3<<ap-southeast-2>dualstack>s3<<eu-west-1>dualstack>s3<<sa-east-1>dualstack>s3<<s3-website-us-east-1,s3-website-us-west-1,s3-website-us-west-2,s3-website-ap-northeast-1,s3-website-ap-southeast-1,s3-website-ap-southeast-2,s3-website-eu-west-1,s3-website-sa-east-1<elasticbeanstalk>ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-west-1,eu-west-2,eu-west-3,sa-east-1,us-east-1,us-east-2,us-gov-west-1,us-west-1,us-west-2<awsglobalaccelerator,appspacehosted,appspaceusercontent,on-aptible,myasustor,balena-devices,betainabox,boutir,bplaced,cafjs,br,cn,de,eu,jpn,mex,ru,sa,uk,us,za,ar,gb,hu,kr,no,qc,uy,africa,gr,co,jdevcloud,wpdevcloud,cloudcontrolled,cloudcontrolapp,trycloudflare,customer-oci>*,oci>*<ocp>*<ocs>*<<dattolocal,dattorelay,dattoweb,mydatto,builtwithdark,datadetect>demo,instance<ddns5,drayddns,dreamhosters,mydrobo,dyndns-at-home,dyndns-at-work,dyndns-blog,dyndns-free,dyndns-home,dyndns-ip,dyndns-mail,dyndns-office,dyndns-pics,dyndns-remote,dyndns-server,dyndns-web,dyndns-wiki,dyndns-work,blogdns,cechire,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dyn-o-saur,dynalias,est-a-la-maison,est-a-la-masion,est-le-patron,est-mon-blogueur,from-ak,from-al,from-ar,from-ca,from-ct,from-dc,from-de,from-fl,from-ga,from-hi,from-ia,from-id,from-il,from-in,from-ks,from-ky,from-ma,from-md,from-mi,from-mn,from-mo,from-ms,from-mt,from-nc,from-nd,from-ne,from-nh,from-nj,from-nm,from-nv,from-oh,from-ok,from-or,from-pa,from-pr,from-ri,from-sc,from-sd,from-tn,from-tx,from-ut,from-va,from-vt,from-wa,from-wi,from-wv,from-wy,getmyip,gotdns,hobby-site,homelinux,homeunix,iamallama,is-a-anarchist,is-a-blogger,is-a-bookkeeper,is-a-bulls-fan,is-a-caterer,is-a-chef,is-a-conservative,is-a-cpa,is-a-cubicle-slave,is-a-democrat,is-a-designer,is-a-doctor,is-a-financialadvisor,is-a-geek,is-a-green,is-a-guru,is-a-hard-worker,is-a-hunter,is-a-landscaper,is-a-lawyer,is-a-liberal,is-a-libertarian,is-a-llama,is-a-musician,is-a-nascarfan,is-a-nurse,is-a-painter,is-a-personaltrainer,is-a-photographer,is-a-player,is-a-republican,is-a-rockstar,is-a-socialist,is-a-student,is-a-teacher,is-a-techie,is-a-therapist,is-an-accountant,is-an-actor,is-an-actress,is-an-anarchist,is-an-artist,is-an-engineer,is-an-entertainer,is-certified,is-gone,is-into-anime,is-into-cars,is-into-cartoons,is-into-games,is-leet,is-not-certified,is-slick,is-uberleet,is-with-theband,isa-geek,isa-hockeynut,issmarterthanyou,likes-pie,likescandy,neat-url,saves-the-whales,selfip,sells-for-less,sells-for-u,servebbs,simple-url,space-to-rent,teaches-yoga,writesthisblog,ddnsfree,ddnsgeek,giize,gleeze,kozow,loseyourip,ooguy,theworkpc,elluciancrmadvance,elluciancrmadvise,elluciancrmrecruit,mytuleap,tuleap-partners,evennode>eu-1,eu-2,eu-3,eu-4,us-1,us-2,us-3,us-4<onfabrica,fbsbx>apps<fastly-terrarium,fastvps-server,mydobiss,firebaseapp,forgeblocks,framercanvas,freebox-os,freeboxos,freemyip,gentapps,gentlentapis,githubusercontent,0emm>*<appspot>r>*<<codespot,googleapis,googlecode,pagespeedmobilizer,publishproxy,withgoogle,withyoutube,blogspot,awsmppl,herokuapp,herokussl,myravendb,impertrixcdn,impertrix,smushcdn,wphostedmail,wpmucdn,pixolino,amscompute,clicketcloud,dopaas,hidora,hosted-by-previder>paas<hosteur>rag-cloud,rag-cloud-ch<ik-server>jcloud,jcloud-ver-jpc<jelastic>demo<kilatiron,massivegrid>paas<wafaicloud>jed,lon,ryd<joyent>cns>*<<lpusercontent,lmpm>app<linode>members,nodebalancer>*<<linodeobjects>*<barsycenter,barsyonline,mazeplay,miniserver,meteorapp>eu<hostedpi,mythic-beasts>customer,caracal,fentiger,lynx,ocelot,oncilla,onza,sphinx,vs,x,yali<4u,nfshost,001www,ddnslive,myiphost,blogsyte,ciscofreak,damnserver,ditchyourip,dnsiskinky,dynns,geekgalaxy,health-carereform,homesecuritymac,homesecuritypc,myactivedirectory,mysecuritycamera,net-freaks,onthewifi,point2this,quicksytes,securitytactics,serveexchange,servehumour,servep2p,servesarcasm,stufftoread,unusualperson,workisboring,3utilities,ddnsking,myvnc,servebeer,servecounterstrike,serveftp,servegame,servehalflife,servehttp,serveirc,servemp3,servepics,servequake,observableusercontent>static<orsites,operaunite,authgear-staging,authgearapps,skygearapp,outsystemscloud,ownprovider,pgfog,pagefrontapp,pagexl,paywhirl>*<gotpantheon,platter-app,pleskns,postman-echo,prgmr>xen<pythonanywhere>eu<qualifioapp,qbuser,qa2,dev-myqnapcloud,alpha-myqnapcloud,myqnapcloud,quipelements>*<rackmaze,rhcloud,render>app<onrender,logoip,scrysec,firewall-gateway,myshopblocks,myshopify,shopitsite,1kapp,appchizi,applinzi,sinaapp,vipsinaapp,bounty-full>alpha,beta<try-snowplow,stackhero-network,playstation-cloud,myspreadshop,stdlib>api<temp-dns,dsmynas,familyds,reservd,thingdustdata,bloxcms,townnews-staging,hk,wafflecell,idnblogger,indowapblog,reserve-online,hotelwithflight,remotewd,wiardweb>pages<woltlab-demo,wpenginepowered>js<wixsite,xnbay>u2,u2-local<yolasite<live>hlx<net>adobeaemcloud,alwaysdata,cloudfront,t3l3p0rt,appudo,atlassian-dev>prod>cdn<<myfritz,onavstack,blackbaudcdn,boomla,bplaced,square7,gb,hu,jp,se,uk,in,clic2000,clickrising,cloudaccess,cdn77-ssl,cdn77>r<feste-ip,knx-server,static-access,cryptonomic>*<dattolocal,mydatto,debian,bitbridge,at-band-camp,blogdns,broke-it,buyshouses,dnsalias,dnsdojo,does-it,dontexist,dynalias,dynathome,endofinternet,from-az,from-co,from-la,from-ny,gets-it,ham-radio-op,homeftp,homeip,homelinux,homeunix,in-the-band,is-a-chef,is-a-geek,isa-geek,kicks-ass,office-on-the,podzone,scrapper-site,selfip,sells-it,servebbs,serveftp,thruhere,webhop,definima,casacam,dynu,dynv6,twmail,ru,channelsdvr>u<fastlylb>map<fastly>freetls,map,prod>a,global<ssl>a,b,global<<edgeapp,flynnhosting,cdn-edges,cloudfunctions,moonscale,in-dsl,in-vpn,ipifony,iobb,cloudjiffy>fra1-de,west1-us<elastx>jls-sto1,jls-sto2,jls-sto3<faststacks,massivegrid>paas>fr-1,lon-1,lon-2,ny-1,ny-2,sg-1<<saveincloud>jelastic,nordeste-idc<scaleforce>j<tsukaeru>jelastic<kinghost,uni5,krellian,barsy,memset,azurewebsites,azure-mobile,cloudapp,azurestaticapps>centralus,eastasia,eastus2,westeurope,westus2<dnsup,hicam,now-dns,ownip,vpndns,eating-organic,mydissent,myeffect,mymediapc,mypsx,mysecuritycamera,nhlfan,no-ip,pgafan,privatizehealthinsurance,bounceme,ddns,redirectme,serveblog,serveminecraft,sytes,cloudycluster,ovh>webpaas>*<hosting>*<<bar0,bar1,bar2,rackmaze,schokokeks,firewall-gateway,seidat,senseering,siteleaf,vps-host>jelastic>atl,njs,ric<<myspreadshop,srcf>soc,user<supabase,dsmynas,familyds,torproject>pages<fastblog,reserve-online,community-pro,meinforum,yandexcloud>storage,website<za<page>hlx,hlx3,pdns,plesk,prvcy,magnet<pl>beep,ecommerce-shop,shoparena,homesklep,sdscloud,unicloud,krasnik,leczna,lubartow,lublin,poniatowa,swidnik,co,art,gliwice,krakow,poznan,wroc,zakopane,myspreadshop,gda,gdansk,gdynia,med,sopot<ca>barsy,awdev>*<co,blogspot,no-ip,myspreadshop<estate>compute>*<<network>alces>*<co,arvo,azimuth,tlon<org>altervista,amune>tele<pimienta,poivron,potager,sweetpepper,ae,us,certmgr,cdn77>c,rsc<cdn77-secure>origin>ssl<<cloudns,duckdns,tunk,dyndns>go,home<blogdns,blogsite,boldlygoingnowhere,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dvrdns,dynalias,endofinternet,endoftheinternet,from-me,game-host,gotdns,hobby-site,homedns,homeftp,homelinux,homeunix,is-a-bruinsfan,is-a-candidate,is-a-celticsfan,is-a-chef,is-a-geek,is-a-knight,is-a-linux-user,is-a-patsfan,is-a-soxfan,is-found,is-lost,is-saved,is-very-bad,is-very-evil,is-very-good,is-very-nice,is-very-sweet,isa-geek,kicks-ass,misconfused,podzone,readmyblog,selfip,sellsyourhome,servebbs,serveftp,servegame,stuff-4-sale,webhop,ddnss,accesscam,camdvr,freeddns,mywire,webredirect,eu>al,asso,at,au,be,bg,ca,cd,ch,cn,cy,cz,de,dk,edu,ee,es,fi,fr,gr,hr,hu,ie,il,in,int,is,it,jp,kr,lt,lu,lv,mc,me,mk,mt,my,net,ng,nl,no,nz,paris,pl,pt,q-a,ro,ru,se,si,sk,tr,uk,us<twmail,fedorainfracloud,fedorapeople,fedoraproject>cloud,os>app<stg>os>app<<<freedesktop,hepforge,in-dsl,in-vpn,js,barsy,mayfirst,mozilla-iot,bmoattachments,dynserv,now-dns,cable-modem,collegefan,couchpotatofries,mlbfan,mysecuritycamera,nflfan,read-books,ufcfan,hopto,myftp,no-ip,zapto,httpbin,pubtls,my-firewall,myfirewall,spdns,small-web,dsmynas,familyds,edugit,tuxfamily,diskstation,hk,wmflabs,toolforge,wmcloud,za<cn>com>amazonaws>compute>*<eb>cn-north-1,cn-northwest-1<elb>*<cn-north-1>s3<<<instantcloud<nl>amsw,virtueeldomein,co,hosting-cluster,blogspot,khplay,myspreadshop,transurl>*<cistron,demon<io>apigee,b-data,backplaneapp,banzaicloud>app,backyards>*<<bitbucket,bluebite,boxfuse,browsersafetymark,bigv>uk0<cleverapps,dappnode>dyndns<dedyn,drud,definima,fh-muenster,shw,forgerock>id<ghost,github,gitlab,lolipop,hasura-app,hostyhosting,moonscale>*<beebyte>paas<beebyteapp>sekd1<jele,unispace>cloud-fr1<webthings,loginline,barsy,azurecontainer>*<ngrok,nodeart>stage<nodum,nid,pantheonsite,dyn53,pstmn>mock<protonet,qoto,qcx>sys>*<<vaporcloud,vbrplsbx>g<on-k3s>*<on-rio>*<readthedocs,resindevice,resinstaging>devices<hzc,sandcats,shiftcrypto,shiftedit,mo-siemens,lair>apps<stolos>*<spacekit,utwente,s5y>*<telebit,thingdust>dev>cust,reservd<disrec>cust,reservd<prod>cust<testing>cust,reservd<<2038,wedeploy,editorx,basicserver,virtualserver<jp>ne>aseinet>user<gehirn<usercontent,blogspot<vc>gv>d<0e<eus>party>user<<ws>advisor>*<cloud66,dyndns,mypets<ba>rs,blogspot<cloud>banzai>*<elementor,statics>*<axarnet>es-1<diadem,jelastic>vip<jele,jenv-aruba>aruba>eur>it1<<it1<keliweb>cs<oxa>tn,uk<primetel>uk<reclaim>ca,uk,us<trendhosting>ch,de<jotelulu,kuleuven,linkyard,magentosite>*<perspecta,vapor,on-rancher>*<sensiosite>*<trafficplex,urown,voorloper<la>bnr,c<je>of<ch>square7,blogspot,flow>ae>alp1<appengine<linkyard-cloud,dnsking,gotdns,myspreadshop,firenet>*,svc>*<<12hp,2ix,4lima,lima-city<de>bplaced,square7,com,cosidns>dyn<dynamisches-dns,dnsupdater,internet-dns,l-o-g-i-n,dnshome,fuettertdasnetz,isteingeek,istmein,lebtimnetz,leitungsen,traeumtgerade,ddnss>dyn,dyndns<dyndns1,dyn-ip24,home-webserver>dyn<myhome-server,frusky>*<goip,blogspot,xn--gnstigbestellen-zvb,xn--gnstigliefern-wob,hs-heilbronn>it>pages<<dyn-berlin,in-berlin,in-brb,in-butter,in-dsl,in-vpn,mein-iserv,schulserver,test-iserv,keymachine,git-repos,lcube-server,svn-repos,barsy,logoip,firewall-gateway,my-gateway,my-router,spdns,speedpartner>customer<myspreadshop,taifun-dns,12hp,2ix,4lima,lima-city,dd-dns,dray-dns,draydns,dyn-vpn,dynvpn,mein-vigor,my-vigor,my-wan,syno-ds,synology-diskstation,synology-ds,uberspace>*<virtualuser,virtual-user,community-pro,diskussionsbereich<rs>brendly>shop<blogspot,ua,ox<uk>co>bytemark>dh,vm<blogspot,layershift>j<barsy,barsyonline,retrosnub>cust<nh-serv,no-ip,wellbeingzone,adimo,myspreadshop,gwiddle<conn,copro,hosp,gov>service,homeoffice<pymnt,org>glug,lug,lugs,affinitylottery,raffleentry,weeklylottery<barsy<eu>mycd,cloudns,dogado>jelastic<barsy,wellbeingzone,spdns,transurl>*<diskstation<ac>drr<ai>uwu<co>carrd,crd,otap>*<com>blogspot<leadpages,lpages,mypi,n4t,nodum,repl>id<supabase<mp>ju<se>com,blogspot,conf,iopsys,itcouldbewor,myspreadshop,paba>su<<bz>za,gsj<in>web,cloudns,blogspot,barsy,supabase<basketball>aus,nz<am>radio,blogspot,neko,nyaa<fm>radio<group>discourse<team>discourse,jelastic<app>clerk,clerkstage,wnext,platform0,ondigitalocean,edgecompute,fireweb,framer,run>a<web,hasura,loginline,netlify,developer>*<noop,northflank>*<telebit,vercel,bookonline<dev>lcl>*<lclstage>*<stg>*<stgstage>*<pages,workers,curv,deno,deno-staging,fly,githubpreview,gateway>*<iserv,loginline,mediatech,platter-app,shiftcrypto,vercel,webhare>*<<me>c66,daplie>localhost<edgestack,couk,ukco,filegear,filegear-au,filegear-de,filegear-gb,filegear-ie,filegear-jp,filegear-sg,glitch,ravendb,lohmus,barsy,mcpe,mcdir,nctu,soundcast,tcp4,brasilia,ddns,dnsfor,hopto,loginto,noip,webhop,vp4,diskstation,dscloud,i234,myds,synology,tbits,wbq,wedeploy,yombo,nohost<zone>cloud66,hs,triton>*<lima<host>cloudaccess,freesite,fastvps,myfast,tempurl,wpmudev,jele,mircloud,pcloud,half<site>cloudera>*<cyon,fnwk,folionetwork,fastvps,jele,lelux,loginline,barsy,mintere,omniwe,opensocial,platformsh>*<tst>*<byen,srht,novecore<cz>co,realm,e4,blogspot,metacentrum>cloud>*<custom<muni>cloud>flt,usr<<<asia>cloudns<biz>cloudns,jozi,dyndns,for-better,for-more,for-some,for-the,selfip,webhop,orx,mmafan,myftp,no-ip,dscloud<club>cloudns,jele,barsy,pony<cc>cloudns,ftpaccess,game-server,myphotos,scrapping,twmail,csx,fantasyleague<info>cloudns,dynamic-dns,dyndns,barrel-of-knowledge,barrell-of-knowledge,for-our,groks-the,groks-this,here-for-more,knowsitall,selfip,webhop,barsy,mayfirst,forumz,nsupdate,dvrcam,ilovecollege,no-ip,dnsupdate,v-info<pro>cloudns,dnstrace>bci<barsy<pw>cloudns,x443<gdn>cnpy<no>co,blogspot,myspreadshop<be>webhosting,blogspot,interhostsolutions>cloud<kuleuven>ezproxy<myspreadshop,transurl>*<<ru>ac,edu,gov,int,mil,test,eurodir,adygeya,bashkiria,bir,cbg,com,dagestan,grozny,kalmykia,kustanai,marine,mordovia,msk,mytis,nalchik,nov,pyatigorsk,spb,vladikavkaz,vladimir,blogspot,na4u,mircloud,regruhosting>jelastic<myjino>hosting>*<landing>*<spectrum>*<vps>*<<cldmail>hb<mcdir>vps<mcpre,net,org,pp,lk3,ras<is>cupcake,blogspot<link>cyon,mypep,dweb>*<<dk>biz,co,firm,reg,store,blogspot,myspreadshop<earth>dapps>*,bzz>*<<<id>my>rss>*<<flap,co>blogspot<forte,bloger,wblog<solutions>diher>*<<th>online,shop<sh>bip,hashbang,platform>bc,ent,eu,us<now,vxl,wedeploy<fi>dy,blogspot,xn--hkkinen-5wa,iki,cloudplatform>fi<datacenter>demo,paas<myspreadshop<tv>dyndns,better-than,on-the-web,worse-than<cx>ath,info<name>her>forgot<his>forgot<<nu>merseine,mine,shacknet,enterprisecloud<rocks>myddns,lima-city,webspace<xyz>blogsite,localzone,crafting,zapto,telebit>*<<online>eero,eero-stage,barsy<cool>elementor,de<fr>en-root,fbx-os,fbxos,freebox-os,freeboxos,blogspot,goupile,on-web,chirurgiens-dentistes-en-france,myspreadshop,ynh<one>onred>staging<service,for,under,homelink<tw>com>mymailer<url,blogspot<su>abkhazia,adygeya,aktyubinsk,arkhangelsk,armenia,ashgabad,azerbaijan,balashov,bashkiria,bryansk,bukhara,chimkent,dagestan,east-kazakhstan,exnet,georgia,grozny,ivanovo,jambyl,kalmykia,kaluga,karacol,karaganda,karelia,khakassia,krasnodar,kurgan,kustanai,lenug,mangyshlak,mordovia,msk,murmansk,nalchik,navoi,north-kazakhstan,nov,obninsk,penza,pokrovsk,sochi,spb,tashkent,termez,togliatti,troitsk,tselinograd,tula,tuva,vladikavkaz,vladimir,vologda<space>myfast,uber,xs4all<il>co>ravpage,blogspot,tabitorder<<at>funkfeuer>wien<futurecms>*,ex>*<in>*<<futurehosting,futuremailing,ortsinfo>ex>*<kunden>*<<co>blogspot<biz,info,priv,myspreadshop,12hp,2ix,4lima,lima-city<ms>lab,minisite<si>gitapp,gitpage,blogspot<community>nog,ravendb,myforum<ro>co,shop,blogspot,barsy<digital>cloudapps>london<<im>ro<goog>cloud,translate<ae>blogspot<al>blogspot<bg>blogspot,barsy<bj>blogspot<cf>blogspot<cl>blogspot<ke>co>blogspot<<nz>co>blogspot<<za>co>blogspot<<ar>com>blogspot<<au>com>blogspot,cloudlets>mel<myspreadshop<<br>com>blogspot,virtualcloud>scale>users<<<leg>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<<by>com>blogspot<mycloud,mediatech<cy>com>blogspot,scaleforce>j<<<ee>com>blogspot<<eg>com>blogspot<<es>com>blogspot<myspreadshop<mt>com>blogspot<<ng>com>blogspot<col,firm,gen,ltd,ngo<tr>com>blogspot<<uy>com>blogspot<<cv>blogspot<gr>blogspot<hk>blogspot,secaas,ltd,inc<hr>blogspot,free<hu>blogspot<ie>blogspot,myspreadshop<it>blogspot,neen>jc<tim>open>jelastic>cloud<<<16-b,32-b,64-b,myspreadshop,syncloud<kr>blogspot<li>blogspot,caa<lt>blogspot<lu>blogspot<md>blogspot,at,de,jp,to<mk>blogspot<mr>blogspot<mx>blogspot<my>blogspot<pe>blogspot<pt>blogspot<qa>blogspot<re>blogspot<sg>blogspot,enscaled<sk>blogspot<sn>blogspot<td>blogspot<ug>blogspot<vn>blogspot<ci>fin,nl<run>hs,development,ravendb,servers,code>*<repl<gl>biz,xx<scot>edu,gov>service<<so>sch<yt>org<kz>jcloud,kazteleport>upaas<<tn>orangecloud<gg>kaas,cya,panel>daemon<<systems>knightpoint<krd>co,edu<business>co<education>co<events>co<financial>co<place>co<technology>co<bs>we<services>loginline<menu>barsy<mobi>barsy,dscloud<pub>barsy<shop>barsy<support>barsy<vu>cn,blog,dev,me<health>hra<casa>nabu>ui<<fashion>of<london>in,of<marketing>from,with<men>for,repair<mom>and,for<sale>for<win>that<work>from,to<news>noticeable<top>now-dns,ntdll<ovh>nerdpol<mn>nyc<lol>omg<hosting>opencraft<pm>own<codes>owo>*<<lc>oy<bn>co<builders>cloudsite<edu>rit>git-pages<<xn--p1acf>xn--90amc,xn--j1aef,xn--j1ael8b,xn--h1ahn,xn--j1adp,xn--c1avg,xn--80aaa0cvac,xn--h1aliz,xn--90a1af,xn--41a<store>sellfy,shopware,storebase<land>static>dev,sites<<farm>storj<pictures>1337<rip>clan<management>router<ax>be,cat,es,eu,gg,mc,us,xy<gp>app<gt>blog,de,to<gy>be<hn>cc<kg>blog,io,jp,tv,uk,us<ls>de<porn>indie<tc>ch,me,we<vg>at<academy>official<faith>ybo<party>ybo<review>ybo<science>ybo<trade>ybo<st>noho<design>bss");const a=Yi(i,ys),n=Yi(i,ws);if(0===a.length&&0===n.length)return{type:ps.NotListed,hostname:s,labels:i};const o=i.length-Math.max(n.length,a.length)-1,r=i.length-a.length-1;return Object.assign({type:ps.Listed,hostname:s,labels:i,icann:vs(i,r)},vs(i,o))};function xs(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function Ds(t,e){return t&e}function $s(t,e){return t|e}function Ss(t,e){return t^e}function Ps(t,e){return t&~e}function zs(t){if(0==t)return-1;var e=0;return 65535&t||(t>>=16,e+=16),255&t||(t>>=8,e+=8),15&t||(t>>=4,e+=4),3&t||(t>>=2,e+=2),1&t||++e,e}function Cs(t){for(var e=0;0!=t;)t&=t-1,++e;return e}var Is,Ts="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function As(t){var e,i,s="";for(e=0;e+3<=t.length;e+=3)i=parseInt(t.substring(e,e+3),16),s+=Ts.charAt(i>>6)+Ts.charAt(63&i);for(e+1==t.length?(i=parseInt(t.substring(e,e+1),16),s+=Ts.charAt(i<<2)):e+2==t.length&&(i=parseInt(t.substring(e,e+2),16),s+=Ts.charAt(i>>2)+Ts.charAt((3&i)<<4));(3&s.length)>0;)s+="=";return s}function Ms(t){var e,i="",s=0,a=0;for(e=0;e<t.length&&"="!=t.charAt(e);++e){var n=Ts.indexOf(t.charAt(e));n<0||(0==s?(i+=xs(n>>2),a=3&n,s=1):1==s?(i+=xs(a<<2|n>>4),a=15&n,s=2):2==s?(i+=xs(a),i+=xs(n>>2),a=3&n,s=3):(i+=xs(a<<2|n>>4),i+=xs(15&n),s=0))}return 1==s&&(i+=xs(a<<2)),i}var _s,js=function(t){var e;if(void 0===Is){var i="0123456789ABCDEF",s=" \f\n\r\t \u2028\u2029";for(Is={},e=0;e<16;++e)Is[i.charAt(e)]=e;for(i=i.toLowerCase(),e=10;e<16;++e)Is[i.charAt(e)]=e;for(e=0;e<8;++e)Is[s.charAt(e)]=-1}var a=[],n=0,o=0;for(e=0;e<t.length;++e){var r=t.charAt(e);if("="==r)break;if(-1!=(r=Is[r])){if(void 0===r)throw new Error("Illegal character at offset "+e);n|=r,++o>=2?(a[a.length]=n,n=0,o=0):n<<=4}}if(o)throw new Error("Hex encoding incomplete: 4 bits missing");return a},Rs={decode:function(t){var e;if(void 0===_s){var i="= \f\n\r\t \u2028\u2029";for(_s=Object.create(null),e=0;e<64;++e)_s["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)]=e;for(_s["-"]=62,_s._=63,e=0;e<9;++e)_s[i.charAt(e)]=-1}var s=[],a=0,n=0;for(e=0;e<t.length;++e){var o=t.charAt(e);if("="==o)break;if(-1!=(o=_s[o])){if(void 0===o)throw new Error("Illegal character at offset "+e);a|=o,++n>=4?(s[s.length]=a>>16,s[s.length]=a>>8&255,s[s.length]=255&a,a=0,n=0):a<<=6}}switch(n){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:s[s.length]=a>>10;break;case 3:s[s.length]=a>>16,s[s.length]=a>>8&255}return s},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(t){var e=Rs.re.exec(t);if(e)if(e[1])t=e[1];else{if(!e[2])throw new Error("RegExp out of sync");t=e[2]}return Rs.decode(t)}},Ws=1e13,Os=function(){function t(t){this.buf=[+t||0]}return t.prototype.mulAdd=function(t,e){var i,s,a=this.buf,n=a.length;for(i=0;i<n;++i)(s=a[i]*t+e)<Ws?e=0:s-=(e=0|s/Ws)*Ws,a[i]=s;e>0&&(a[i]=e)},t.prototype.sub=function(t){var e,i,s=this.buf,a=s.length;for(e=0;e<a;++e)(i=s[e]-t)<0?(i+=Ws,t=1):t=0,s[e]=i;for(;0===s[s.length-1];)s.pop()},t.prototype.toString=function(t){if(10!=(t||10))throw new Error("only base 10 is supported");for(var e=this.buf,i=e[e.length-1].toString(),s=e.length-2;s>=0;--s)i+=(Ws+e[s]).toString().substring(1);return i},t.prototype.valueOf=function(){for(var t=this.buf,e=0,i=t.length-1;i>=0;--i)e=e*Ws+t[i];return e},t.prototype.simplify=function(){var t=this.buf;return 1==t.length?t[0]:this},t}(),Ls=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,Es=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function Ns(t,e){return t.length>e&&(t=t.substring(0,e)+"…"),t}var Vs,Bs=function(){function t(e,i){this.hexDigits="0123456789ABCDEF",e instanceof t?(this.enc=e.enc,this.pos=e.pos):(this.enc=e,this.pos=i)}return t.prototype.get=function(t){if(void 0===t&&(t=this.pos++),t>=this.enc.length)throw new Error("Requesting byte offset ".concat(t," on a stream of length ").concat(this.enc.length));return"string"==typeof this.enc?this.enc.charCodeAt(t):this.enc[t]},t.prototype.hexByte=function(t){return this.hexDigits.charAt(t>>4&15)+this.hexDigits.charAt(15&t)},t.prototype.hexDump=function(t,e,i){for(var s="",a=t;a<e;++a)if(s+=this.hexByte(this.get(a)),!0!==i)switch(15&a){case 7:s+="  ";break;case 15:s+="\n";break;default:s+=" "}return s},t.prototype.isASCII=function(t,e){for(var i=t;i<e;++i){var s=this.get(i);if(s<32||s>176)return!1}return!0},t.prototype.parseStringISO=function(t,e){for(var i="",s=t;s<e;++s)i+=String.fromCharCode(this.get(s));return i},t.prototype.parseStringUTF=function(t,e){for(var i="",s=t;s<e;){var a=this.get(s++);i+=a<128?String.fromCharCode(a):a>191&&a<224?String.fromCharCode((31&a)<<6|63&this.get(s++)):String.fromCharCode((15&a)<<12|(63&this.get(s++))<<6|63&this.get(s++))}return i},t.prototype.parseStringBMP=function(t,e){for(var i,s,a="",n=t;n<e;)i=this.get(n++),s=this.get(n++),a+=String.fromCharCode(i<<8|s);return a},t.prototype.parseTime=function(t,e,i){var s=this.parseStringISO(t,e),a=(i?Ls:Es).exec(s);return a?(i&&(a[1]=+a[1],a[1]+=+a[1]<70?2e3:1900),s=a[1]+"-"+a[2]+"-"+a[3]+" "+a[4],a[5]&&(s+=":"+a[5],a[6]&&(s+=":"+a[6],a[7]&&(s+="."+a[7]))),a[8]&&(s+=" UTC","Z"!=a[8]&&(s+=a[8],a[9]&&(s+=":"+a[9]))),s):"Unrecognized time: "+s},t.prototype.parseInteger=function(t,e){for(var i,s=this.get(t),a=s>127,n=a?255:0,o="";s==n&&++t<e;)s=this.get(t);if(0===(i=e-t))return a?-1:0;if(i>4){for(o=s,i<<=3;!(128&(+o^n));)o=+o<<1,--i;o="("+i+" bit)\n"}a&&(s-=256);for(var r=new Os(s),l=t+1;l<e;++l)r.mulAdd(256,this.get(l));return o+r.toString()},t.prototype.parseBitString=function(t,e,i){for(var s=this.get(t),a="("+((e-t-1<<3)-s)+" bit)\n",n="",o=t+1;o<e;++o){for(var r=this.get(o),l=o==e-1?s:0,c=7;c>=l;--c)n+=r>>c&1?"1":"0";if(n.length>i)return a+Ns(n,i)}return a+n},t.prototype.parseOctetString=function(t,e,i){if(this.isASCII(t,e))return Ns(this.parseStringISO(t,e),i);var s=e-t,a="("+s+" byte)\n";s>(i/=2)&&(e=t+i);for(var n=t;n<e;++n)a+=this.hexByte(this.get(n));return s>i&&(a+="…"),a},t.prototype.parseOID=function(t,e,i){for(var s="",a=new Os,n=0,o=t;o<e;++o){var r=this.get(o);if(a.mulAdd(128,127&r),n+=7,!(128&r)){if(""===s)if((a=a.simplify())instanceof Os)a.sub(80),s="2."+a.toString();else{var l=a<80?a<40?0:1:2;s=l+"."+(a-40*l)}else s+="."+a.toString();if(s.length>i)return Ns(s,i);a=new Os,n=0}}return n>0&&(s+=".incomplete"),s},t}(),Gs=function(){function t(t,e,i,s,a){if(!(s instanceof Hs))throw new Error("Invalid tag value.");this.stream=t,this.header=e,this.length=i,this.tag=s,this.sub=a}return t.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},t.prototype.content=function(t){if(void 0===this.tag)return null;void 0===t&&(t=1/0);var e=this.posContent(),i=Math.abs(this.length);if(!this.tag.isUniversal())return null!==this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);switch(this.tag.tagNumber){case 1:return 0===this.stream.get(e)?"false":"true";case 2:return this.stream.parseInteger(e,e+i);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(e,e+i,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);case 6:return this.stream.parseOID(e,e+i,t);case 16:case 17:return null!==this.sub?"("+this.sub.length+" elem)":"(no elem)";case 12:return Ns(this.stream.parseStringUTF(e,e+i),t);case 18:case 19:case 20:case 21:case 22:case 26:return Ns(this.stream.parseStringISO(e,e+i),t);case 30:return Ns(this.stream.parseStringBMP(e,e+i),t);case 23:case 24:return this.stream.parseTime(e,e+i,23==this.tag.tagNumber)}return null},t.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(null===this.sub?"null":this.sub.length)+"]"},t.prototype.toPrettyString=function(t){void 0===t&&(t="");var e=t+this.typeName()+" @"+this.stream.pos;if(this.length>=0&&(e+="+"),e+=this.length,this.tag.tagConstructed?e+=" (constructed)":!this.tag.isUniversal()||3!=this.tag.tagNumber&&4!=this.tag.tagNumber||null===this.sub||(e+=" (encapsulates)"),e+="\n",null!==this.sub){t+="  ";for(var i=0,s=this.sub.length;i<s;++i)e+=this.sub[i].toPrettyString(t)}return e},t.prototype.posStart=function(){return this.stream.pos},t.prototype.posContent=function(){return this.stream.pos+this.header},t.prototype.posEnd=function(){return this.stream.pos+this.header+Math.abs(this.length)},t.prototype.toHexString=function(){return this.stream.hexDump(this.posStart(),this.posEnd(),!0)},t.decodeLength=function(t){var e=t.get(),i=127&e;if(i==e)return i;if(i>6)throw new Error("Length over 48 bits not supported at position "+(t.pos-1));if(0===i)return null;e=0;for(var s=0;s<i;++s)e=256*e+t.get();return e},t.prototype.getHexStringValue=function(){var t=this.toHexString(),e=2*this.header,i=2*this.length;return t.substr(e,i)},t.decode=function(e){var i;i=e instanceof Bs?e:new Bs(e,0);var s=new Bs(i),a=new Hs(i),n=t.decodeLength(i),o=i.pos,r=o-s.pos,l=null,c=function(){var e=[];if(null!==n){for(var s=o+n;i.pos<s;)e[e.length]=t.decode(i);if(i.pos!=s)throw new Error("Content size is not correct for container starting at offset "+o)}else try{for(;;){var a=t.decode(i);if(a.tag.isEOC())break;e[e.length]=a}n=o-i.pos}catch(t){throw new Error("Exception while decoding undefined length content: "+t)}return e};if(a.tagConstructed)l=c();else if(a.isUniversal()&&(3==a.tagNumber||4==a.tagNumber))try{if(3==a.tagNumber&&0!=i.get())throw new Error("BIT STRINGs with unused bits cannot encapsulate.");l=c();for(var u=0;u<l.length;++u)if(l[u].tag.isEOC())throw new Error("EOC is not supposed to be actual content.")}catch(t){l=null}if(null===l){if(null===n)throw new Error("We can't skip over an invalid tag with undefined length at offset "+o);i.pos=o+Math.abs(n)}return new t(s,r,n,a,l)},t}(),Hs=function(){function t(t){var e=t.get();if(this.tagClass=e>>6,this.tagConstructed=!!(32&e),this.tagNumber=31&e,31==this.tagNumber){var i=new Os;do{e=t.get(),i.mulAdd(128,127&e)}while(128&e);this.tagNumber=i.simplify()}}return t.prototype.isUniversal=function(){return 0===this.tagClass},t.prototype.isEOC=function(){return 0===this.tagClass&&0===this.tagNumber},t}(),qs=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Ys=(1<<26)/qs[qs.length-1],Fs=function(){function t(t,e,i){null!=t&&("number"==typeof t?this.fromNumber(t,e,i):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}return t.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var i,s=(1<<e)-1,a=!1,n="",o=this.t,r=this.DB-o*this.DB%e;if(o-- >0)for(r<this.DB&&(i=this[o]>>r)>0&&(a=!0,n=xs(i));o>=0;)r<e?(i=(this[o]&(1<<r)-1)<<e-r,i|=this[--o]>>(r+=this.DB-e)):(i=this[o]>>(r-=e)&s,r<=0&&(r+=this.DB,--o)),i>0&&(a=!0),a&&(n+=xs(i));return a?n:"0"},t.prototype.negate=function(){var e=Qs();return t.ZERO.subTo(this,e),e},t.prototype.abs=function(){return this.s<0?this.negate():this},t.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var i=this.t;if(0!=(e=i-t.t))return this.s<0?-e:e;for(;--i>=0;)if(0!=(e=this[i]-t[i]))return e;return 0},t.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+oa(this[this.t-1]^this.s&this.DM)},t.prototype.mod=function(e){var i=Qs();return this.abs().divRemTo(e,null,i),this.s<0&&i.compareTo(t.ZERO)>0&&e.subTo(i,i),i},t.prototype.modPowInt=function(t,e){var i;return i=t<256||e.isEven()?new Ks(e):new Zs(e),this.exp(t,i)},t.prototype.clone=function(){var t=Qs();return this.copyTo(t),t},t.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},t.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},t.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},t.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},t.prototype.toByteArray=function(){var t=this.t,e=[];e[0]=this.s;var i,s=this.DB-t*this.DB%8,a=0;if(t-- >0)for(s<this.DB&&(i=this[t]>>s)!=(this.s&this.DM)>>s&&(e[a++]=i|this.s<<this.DB-s);t>=0;)s<8?(i=(this[t]&(1<<s)-1)<<8-s,i|=this[--t]>>(s+=this.DB-8)):(i=this[t]>>(s-=8)&255,s<=0&&(s+=this.DB,--t)),128&i&&(i|=-256),0==a&&(128&this.s)!=(128&i)&&++a,(a>0||i!=this.s)&&(e[a++]=i);return e},t.prototype.equals=function(t){return 0==this.compareTo(t)},t.prototype.min=function(t){return this.compareTo(t)<0?this:t},t.prototype.max=function(t){return this.compareTo(t)>0?this:t},t.prototype.and=function(t){var e=Qs();return this.bitwiseTo(t,Ds,e),e},t.prototype.or=function(t){var e=Qs();return this.bitwiseTo(t,$s,e),e},t.prototype.xor=function(t){var e=Qs();return this.bitwiseTo(t,Ss,e),e},t.prototype.andNot=function(t){var e=Qs();return this.bitwiseTo(t,Ps,e),e},t.prototype.not=function(){for(var t=Qs(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},t.prototype.shiftLeft=function(t){var e=Qs();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},t.prototype.shiftRight=function(t){var e=Qs();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},t.prototype.getLowestSetBit=function(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+zs(this[t]);return this.s<0?this.t*this.DB:-1},t.prototype.bitCount=function(){for(var t=0,e=this.s&this.DM,i=0;i<this.t;++i)t+=Cs(this[i]^e);return t},t.prototype.testBit=function(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:!!(this[e]&1<<t%this.DB)},t.prototype.setBit=function(t){return this.changeBit(t,$s)},t.prototype.clearBit=function(t){return this.changeBit(t,Ps)},t.prototype.flipBit=function(t){return this.changeBit(t,Ss)},t.prototype.add=function(t){var e=Qs();return this.addTo(t,e),e},t.prototype.subtract=function(t){var e=Qs();return this.subTo(t,e),e},t.prototype.multiply=function(t){var e=Qs();return this.multiplyTo(t,e),e},t.prototype.divide=function(t){var e=Qs();return this.divRemTo(t,e,null),e},t.prototype.remainder=function(t){var e=Qs();return this.divRemTo(t,null,e),e},t.prototype.divideAndRemainder=function(t){var e=Qs(),i=Qs();return this.divRemTo(t,e,i),[e,i]},t.prototype.modPow=function(t,e){var i,s,a=t.bitLength(),n=na(1);if(a<=0)return n;i=a<18?1:a<48?3:a<144?4:a<768?5:6,s=a<8?new Ks(e):e.isEven()?new Xs(e):new Zs(e);var o=[],r=3,l=i-1,c=(1<<i)-1;if(o[1]=s.convert(this),i>1){var u=Qs();for(s.sqrTo(o[1],u);r<=c;)o[r]=Qs(),s.mulTo(u,o[r-2],o[r]),r+=2}var h,d,m=t.t-1,g=!0,f=Qs();for(a=oa(t[m])-1;m>=0;){for(a>=l?h=t[m]>>a-l&c:(h=(t[m]&(1<<a+1)-1)<<l-a,m>0&&(h|=t[m-1]>>this.DB+a-l)),r=i;!(1&h);)h>>=1,--r;if((a-=r)<0&&(a+=this.DB,--m),g)o[h].copyTo(n),g=!1;else{for(;r>1;)s.sqrTo(n,f),s.sqrTo(f,n),r-=2;r>0?s.sqrTo(n,f):(d=n,n=f,f=d),s.mulTo(f,o[h],n)}for(;m>=0&&!(t[m]&1<<a);)s.sqrTo(n,f),d=n,n=f,f=d,--a<0&&(a=this.DB-1,--m)}return s.revert(n)},t.prototype.modInverse=function(e){var i=e.isEven();if(this.isEven()&&i||0==e.signum())return t.ZERO;for(var s=e.clone(),a=this.clone(),n=na(1),o=na(0),r=na(0),l=na(1);0!=s.signum();){for(;s.isEven();)s.rShiftTo(1,s),i?(n.isEven()&&o.isEven()||(n.addTo(this,n),o.subTo(e,o)),n.rShiftTo(1,n)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;a.isEven();)a.rShiftTo(1,a),i?(r.isEven()&&l.isEven()||(r.addTo(this,r),l.subTo(e,l)),r.rShiftTo(1,r)):l.isEven()||l.subTo(e,l),l.rShiftTo(1,l);s.compareTo(a)>=0?(s.subTo(a,s),i&&n.subTo(r,n),o.subTo(l,o)):(a.subTo(s,a),i&&r.subTo(n,r),l.subTo(o,l))}return 0!=a.compareTo(t.ONE)?t.ZERO:l.compareTo(e)>=0?l.subtract(e):l.signum()<0?(l.addTo(e,l),l.signum()<0?l.add(e):l):l},t.prototype.pow=function(t){return this.exp(t,new Us)},t.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var s=e;e=i,i=s}var a=e.getLowestSetBit(),n=i.getLowestSetBit();if(n<0)return e;for(a<n&&(n=a),n>0&&(e.rShiftTo(n,e),i.rShiftTo(n,i));e.signum()>0;)(a=e.getLowestSetBit())>0&&e.rShiftTo(a,e),(a=i.getLowestSetBit())>0&&i.rShiftTo(a,i),e.compareTo(i)>=0?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return n>0&&i.lShiftTo(n,i),i},t.prototype.isProbablePrime=function(t){var e,i=this.abs();if(1==i.t&&i[0]<=qs[qs.length-1]){for(e=0;e<qs.length;++e)if(i[0]==qs[e])return!0;return!1}if(i.isEven())return!1;for(e=1;e<qs.length;){for(var s=qs[e],a=e+1;a<qs.length&&s<Ys;)s*=qs[a++];for(s=i.modInt(s);e<a;)if(s%qs[e++]==0)return!1}return i.millerRabin(t)},t.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},t.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},t.prototype.fromString=function(e,i){var s;if(16==i)s=4;else if(8==i)s=3;else if(256==i)s=8;else if(2==i)s=1;else if(32==i)s=5;else{if(4!=i)return void this.fromRadix(e,i);s=2}this.t=0,this.s=0;for(var a=e.length,n=!1,o=0;--a>=0;){var r=8==s?255&+e[a]:aa(e,a);r<0?"-"==e.charAt(a)&&(n=!0):(n=!1,0==o?this[this.t++]=r:o+s>this.DB?(this[this.t-1]|=(r&(1<<this.DB-o)-1)<<o,this[this.t++]=r>>this.DB-o):this[this.t-1]|=r<<o,(o+=s)>=this.DB&&(o-=this.DB))}8==s&&128&+e[0]&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),n&&t.ZERO.subTo(this,this)},t.prototype.clamp=function(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},t.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;i>=0;--i)e[i+t]=this[i];for(i=t-1;i>=0;--i)e[i]=0;e.t=this.t+t,e.s=this.s},t.prototype.drShiftTo=function(t,e){for(var i=t;i<this.t;++i)e[i-t]=this[i];e.t=Math.max(this.t-t,0),e.s=this.s},t.prototype.lShiftTo=function(t,e){for(var i=t%this.DB,s=this.DB-i,a=(1<<s)-1,n=Math.floor(t/this.DB),o=this.s<<i&this.DM,r=this.t-1;r>=0;--r)e[r+n+1]=this[r]>>s|o,o=(this[r]&a)<<i;for(r=n-1;r>=0;--r)e[r]=0;e[n]=o,e.t=this.t+n+1,e.s=this.s,e.clamp()},t.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t)e.t=0;else{var s=t%this.DB,a=this.DB-s,n=(1<<s)-1;e[0]=this[i]>>s;for(var o=i+1;o<this.t;++o)e[o-i-1]|=(this[o]&n)<<a,e[o-i]=this[o]>>s;s>0&&(e[this.t-i-1]|=(this.s&n)<<a),e.t=this.t-i,e.clamp()}},t.prototype.subTo=function(t,e){for(var i=0,s=0,a=Math.min(t.t,this.t);i<a;)s+=this[i]-t[i],e[i++]=s&this.DM,s>>=this.DB;if(t.t<this.t){for(s-=t.s;i<this.t;)s+=this[i],e[i++]=s&this.DM,s>>=this.DB;s+=this.s}else{for(s+=this.s;i<t.t;)s-=t[i],e[i++]=s&this.DM,s>>=this.DB;s-=t.s}e.s=s<0?-1:0,s<-1?e[i++]=this.DV+s:s>0&&(e[i++]=s),e.t=i,e.clamp()},t.prototype.multiplyTo=function(e,i){var s=this.abs(),a=e.abs(),n=s.t;for(i.t=n+a.t;--n>=0;)i[n]=0;for(n=0;n<a.t;++n)i[n+s.t]=s.am(0,a[n],i,n,0,s.t);i.s=0,i.clamp(),this.s!=e.s&&t.ZERO.subTo(i,i)},t.prototype.squareTo=function(t){for(var e=this.abs(),i=t.t=2*e.t;--i>=0;)t[i]=0;for(i=0;i<e.t-1;++i){var s=e.am(i,e[i],t,2*i,0,1);(t[i+e.t]+=e.am(i+1,2*e[i],t,2*i+1,s,e.t-i-1))>=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},t.prototype.divRemTo=function(e,i,s){var a=e.abs();if(!(a.t<=0)){var n=this.abs();if(n.t<a.t)return null!=i&&i.fromInt(0),void(null!=s&&this.copyTo(s));null==s&&(s=Qs());var o=Qs(),r=this.s,l=e.s,c=this.DB-oa(a[a.t-1]);c>0?(a.lShiftTo(c,o),n.lShiftTo(c,s)):(a.copyTo(o),n.copyTo(s));var u=o.t,h=o[u-1];if(0!=h){var d=h*(1<<this.F1)+(u>1?o[u-2]>>this.F2:0),m=this.FV/d,g=(1<<this.F1)/d,f=1<<this.F2,p=s.t,b=p-u,v=null==i?Qs():i;for(o.dlShiftTo(b,v),s.compareTo(v)>=0&&(s[s.t++]=1,s.subTo(v,s)),t.ONE.dlShiftTo(u,v),v.subTo(o,o);o.t<u;)o[o.t++]=0;for(;--b>=0;){var y=s[--p]==h?this.DM:Math.floor(s[p]*m+(s[p-1]+f)*g);if((s[p]+=o.am(0,y,s,b,0,u))<y)for(o.dlShiftTo(b,v),s.subTo(v,s);s[p]<--y;)s.subTo(v,s)}null!=i&&(s.drShiftTo(u,i),r!=l&&t.ZERO.subTo(i,i)),s.t=u,s.clamp(),c>0&&s.rShiftTo(c,s),r<0&&t.ZERO.subTo(s,s)}}},t.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(!(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},t.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},t.prototype.exp=function(e,i){if(e>4294967295||e<1)return t.ONE;var s=Qs(),a=Qs(),n=i.convert(this),o=oa(e)-1;for(n.copyTo(s);--o>=0;)if(i.sqrTo(s,a),(e&1<<o)>0)i.mulTo(a,n,s);else{var r=s;s=a,a=r}return i.revert(s)},t.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},t.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),s=na(i),a=Qs(),n=Qs(),o="";for(this.divRemTo(s,a,n);a.signum()>0;)o=(i+n.intValue()).toString(t).substr(1)+o,a.divRemTo(s,a,n);return n.intValue().toString(t)+o},t.prototype.fromRadix=function(e,i){this.fromInt(0),null==i&&(i=10);for(var s=this.chunkSize(i),a=Math.pow(i,s),n=!1,o=0,r=0,l=0;l<e.length;++l){var c=aa(e,l);c<0?"-"==e.charAt(l)&&0==this.signum()&&(n=!0):(r=i*r+c,++o>=s&&(this.dMultiply(a),this.dAddOffset(r,0),o=0,r=0))}o>0&&(this.dMultiply(Math.pow(i,o)),this.dAddOffset(r,0)),n&&t.ZERO.subTo(this,this)},t.prototype.fromNumber=function(e,i,s){if("number"==typeof i)if(e<2)this.fromInt(1);else for(this.fromNumber(e,s),this.testBit(e-1)||this.bitwiseTo(t.ONE.shiftLeft(e-1),$s,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(i);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(t.ONE.shiftLeft(e-1),this);else{var a=[],n=7&e;a.length=1+(e>>3),i.nextBytes(a),n>0?a[0]&=(1<<n)-1:a[0]=0,this.fromString(a,256)}},t.prototype.bitwiseTo=function(t,e,i){var s,a,n=Math.min(t.t,this.t);for(s=0;s<n;++s)i[s]=e(this[s],t[s]);if(t.t<this.t){for(a=t.s&this.DM,s=n;s<this.t;++s)i[s]=e(this[s],a);i.t=this.t}else{for(a=this.s&this.DM,s=n;s<t.t;++s)i[s]=e(a,t[s]);i.t=t.t}i.s=e(this.s,t.s),i.clamp()},t.prototype.changeBit=function(e,i){var s=t.ONE.shiftLeft(e);return this.bitwiseTo(s,i,s),s},t.prototype.addTo=function(t,e){for(var i=0,s=0,a=Math.min(t.t,this.t);i<a;)s+=this[i]+t[i],e[i++]=s&this.DM,s>>=this.DB;if(t.t<this.t){for(s+=t.s;i<this.t;)s+=this[i],e[i++]=s&this.DM,s>>=this.DB;s+=this.s}else{for(s+=this.s;i<t.t;)s+=t[i],e[i++]=s&this.DM,s>>=this.DB;s+=t.s}e.s=s<0?-1:0,s>0?e[i++]=s:s<-1&&(e[i++]=this.DV+s),e.t=i,e.clamp()},t.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},t.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},t.prototype.multiplyLowerTo=function(t,e,i){var s=Math.min(this.t+t.t,e);for(i.s=0,i.t=s;s>0;)i[--s]=0;for(var a=i.t-this.t;s<a;++s)i[s+this.t]=this.am(0,t[s],i,s,0,this.t);for(a=Math.min(t.t,e);s<a;++s)this.am(0,t[s],i,s,0,e-s);i.clamp()},t.prototype.multiplyUpperTo=function(t,e,i){--e;var s=i.t=this.t+t.t-e;for(i.s=0;--s>=0;)i[s]=0;for(s=Math.max(e-this.t,0);s<t.t;++s)i[this.t+s-e]=this.am(e-s,t[s],i,0,0,this.t+s-e);i.clamp(),i.drShiftTo(1,i)},t.prototype.modInt=function(t){if(t<=0)return 0;var e=this.DV%t,i=this.s<0?t-1:0;if(this.t>0)if(0==e)i=this[0]%t;else for(var s=this.t-1;s>=0;--s)i=(e*i+this[s])%t;return i},t.prototype.millerRabin=function(e){var i=this.subtract(t.ONE),s=i.getLowestSetBit();if(s<=0)return!1;var a=i.shiftRight(s);(e=e+1>>1)>qs.length&&(e=qs.length);for(var n=Qs(),o=0;o<e;++o){n.fromInt(qs[Math.floor(Math.random()*qs.length)]);var r=n.modPow(a,this);if(0!=r.compareTo(t.ONE)&&0!=r.compareTo(i)){for(var l=1;l++<s&&0!=r.compareTo(i);)if(0==(r=r.modPowInt(2,this)).compareTo(t.ONE))return!1;if(0!=r.compareTo(i))return!1}}return!0},t.prototype.square=function(){var t=Qs();return this.squareTo(t),t},t.prototype.gcda=function(t,e){var i=this.s<0?this.negate():this.clone(),s=t.s<0?t.negate():t.clone();if(i.compareTo(s)<0){var a=i;i=s,s=a}var n=i.getLowestSetBit(),o=s.getLowestSetBit();if(o<0)e(i);else{n<o&&(o=n),o>0&&(i.rShiftTo(o,i),s.rShiftTo(o,s));var r=function(){(n=i.getLowestSetBit())>0&&i.rShiftTo(n,i),(n=s.getLowestSetBit())>0&&s.rShiftTo(n,s),i.compareTo(s)>=0?(i.subTo(s,i),i.rShiftTo(1,i)):(s.subTo(i,s),s.rShiftTo(1,s)),i.signum()>0?setTimeout(r,0):(o>0&&s.lShiftTo(o,s),setTimeout((function(){e(s)}),0))};setTimeout(r,10)}},t.prototype.fromNumberAsync=function(e,i,s,a){if("number"==typeof i)if(e<2)this.fromInt(1);else{this.fromNumber(e,s),this.testBit(e-1)||this.bitwiseTo(t.ONE.shiftLeft(e-1),$s,this),this.isEven()&&this.dAddOffset(1,0);var n=this,o=function(){n.dAddOffset(2,0),n.bitLength()>e&&n.subTo(t.ONE.shiftLeft(e-1),n),n.isProbablePrime(i)?setTimeout((function(){a()}),0):setTimeout(o,0)};setTimeout(o,0)}else{var r=[],l=7&e;r.length=1+(e>>3),i.nextBytes(r),l>0?r[0]&=(1<<l)-1:r[0]=0,this.fromString(r,256)}},t}(),Us=function(){function t(){}return t.prototype.convert=function(t){return t},t.prototype.revert=function(t){return t},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i)},t.prototype.sqrTo=function(t,e){t.squareTo(e)},t}(),Ks=function(){function t(t){this.m=t}return t.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),Zs=function(){function t(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}return t.prototype.convert=function(t){var e=Qs();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(Fs.ZERO)>0&&this.m.subTo(e,e),e},t.prototype.revert=function(t){var e=Qs();return t.copyTo(e),this.reduce(e),e},t.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var i=32767&t[e],s=i*this.mpl+((i*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[i=e+this.m.t]+=this.m.am(0,s,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),Xs=function(){function t(t){this.m=t,this.r2=Qs(),this.q3=Qs(),Fs.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t)}return t.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=Qs();return t.copyTo(e),this.reduce(e),e},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}();function Qs(){return new Fs(null)}function Js(t,e){return new Fs(t,e)}var ta="undefined"!=typeof navigator;ta&&"Microsoft Internet Explorer"==navigator.appName?(Fs.prototype.am=function(t,e,i,s,a,n){for(var o=32767&e,r=e>>15;--n>=0;){var l=32767&this[t],c=this[t++]>>15,u=r*l+c*o;a=((l=o*l+((32767&u)<<15)+i[s]+(1073741823&a))>>>30)+(u>>>15)+r*c+(a>>>30),i[s++]=1073741823&l}return a},Vs=30):ta&&"Netscape"!=navigator.appName?(Fs.prototype.am=function(t,e,i,s,a,n){for(;--n>=0;){var o=e*this[t++]+i[s]+a;a=Math.floor(o/67108864),i[s++]=67108863&o}return a},Vs=26):(Fs.prototype.am=function(t,e,i,s,a,n){for(var o=16383&e,r=e>>14;--n>=0;){var l=16383&this[t],c=this[t++]>>14,u=r*l+c*o;a=((l=o*l+((16383&u)<<14)+i[s]+a)>>28)+(u>>14)+r*c,i[s++]=268435455&l}return a},Vs=28),Fs.prototype.DB=Vs,Fs.prototype.DM=(1<<Vs)-1,Fs.prototype.DV=1<<Vs;Fs.prototype.FV=Math.pow(2,52),Fs.prototype.F1=52-Vs,Fs.prototype.F2=2*Vs-52;var ea,ia,sa=[];for(ea="0".charCodeAt(0),ia=0;ia<=9;++ia)sa[ea++]=ia;for(ea="a".charCodeAt(0),ia=10;ia<36;++ia)sa[ea++]=ia;for(ea="A".charCodeAt(0),ia=10;ia<36;++ia)sa[ea++]=ia;function aa(t,e){var i=sa[t.charCodeAt(e)];return null==i?-1:i}function na(t){var e=Qs();return e.fromInt(t),e}function oa(t){var e,i=1;return 0!=(e=t>>>16)&&(t=e,i+=16),0!=(e=t>>8)&&(t=e,i+=8),0!=(e=t>>4)&&(t=e,i+=4),0!=(e=t>>2)&&(t=e,i+=2),0!=(e=t>>1)&&(t=e,i+=1),i}Fs.ZERO=na(0),Fs.ONE=na(1);var ra=function(){function t(){this.i=0,this.j=0,this.S=[]}return t.prototype.init=function(t){var e,i,s;for(e=0;e<256;++e)this.S[e]=e;for(i=0,e=0;e<256;++e)i=i+this.S[e]+t[e%t.length]&255,s=this.S[e],this.S[e]=this.S[i],this.S[i]=s;this.i=0,this.j=0},t.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]},t}();var la,ca,ua=null;if(null==ua){ua=[],ca=0;var ha=void 0;if("undefined"!=typeof window&&window.crypto&&window.crypto.getRandomValues){var da=new Uint32Array(256);for(window.crypto.getRandomValues(da),ha=0;ha<da.length;++ha)ua[ca++]=255&da[ha]}var ma=0,ga=function(t){if((ma=ma||0)>=256||ca>=256)window.removeEventListener?window.removeEventListener("mousemove",ga,!1):window.detachEvent&&window.detachEvent("onmousemove",ga);else try{var e=t.x+t.y;ua[ca++]=255&e,ma+=1}catch(t){}};"undefined"!=typeof window&&(window.addEventListener?window.addEventListener("mousemove",ga,!1):window.attachEvent&&window.attachEvent("onmousemove",ga))}function fa(){if(null==la){for(la=new ra;ca<256;){var t=Math.floor(65536*Math.random());ua[ca++]=255&t}for(la.init(ua),ca=0;ca<ua.length;++ca)ua[ca]=0;ca=0}return la.next()}var pa=function(){function t(){}return t.prototype.nextBytes=function(t){for(var e=0;e<t.length;++e)t[e]=fa()},t}();var ba=function(){function t(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return t.prototype.doPublic=function(t){return t.modPowInt(this.e,this.n)},t.prototype.doPrivate=function(t){if(null==this.p||null==this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),i=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(i)<0;)e=e.add(this.p);return e.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},t.prototype.setPublic=function(t,e){null!=t&&null!=e&&t.length>0&&e.length>0?(this.n=Js(t,16),this.e=parseInt(e,16)):console.error("Invalid RSA public key")},t.prototype.encrypt=function(t){var e=this.n.bitLength()+7>>3,i=function(t,e){if(e<t.length+11)return console.error("Message too long for RSA"),null;for(var i=[],s=t.length-1;s>=0&&e>0;){var a=t.charCodeAt(s--);a<128?i[--e]=a:a>127&&a<2048?(i[--e]=63&a|128,i[--e]=a>>6|192):(i[--e]=63&a|128,i[--e]=a>>6&63|128,i[--e]=a>>12|224)}i[--e]=0;for(var n=new pa,o=[];e>2;){for(o[0]=0;0==o[0];)n.nextBytes(o);i[--e]=o[0]}return i[--e]=2,i[--e]=0,new Fs(i)}(t,e);if(null==i)return null;var s=this.doPublic(i);if(null==s)return null;for(var a=s.toString(16),n=a.length,o=0;o<2*e-n;o++)a="0"+a;return a},t.prototype.setPrivate=function(t,e,i){null!=t&&null!=e&&t.length>0&&e.length>0?(this.n=Js(t,16),this.e=parseInt(e,16),this.d=Js(i,16)):console.error("Invalid RSA private key")},t.prototype.setPrivateEx=function(t,e,i,s,a,n,o,r){null!=t&&null!=e&&t.length>0&&e.length>0?(this.n=Js(t,16),this.e=parseInt(e,16),this.d=Js(i,16),this.p=Js(s,16),this.q=Js(a,16),this.dmp1=Js(n,16),this.dmq1=Js(o,16),this.coeff=Js(r,16)):console.error("Invalid RSA private key")},t.prototype.generate=function(t,e){var i=new pa,s=t>>1;this.e=parseInt(e,16);for(var a=new Fs(e,16);;){for(;this.p=new Fs(t-s,1,i),0!=this.p.subtract(Fs.ONE).gcd(a).compareTo(Fs.ONE)||!this.p.isProbablePrime(10););for(;this.q=new Fs(s,1,i),0!=this.q.subtract(Fs.ONE).gcd(a).compareTo(Fs.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var n=this.p;this.p=this.q,this.q=n}var o=this.p.subtract(Fs.ONE),r=this.q.subtract(Fs.ONE),l=o.multiply(r);if(0==l.gcd(a).compareTo(Fs.ONE)){this.n=this.p.multiply(this.q),this.d=a.modInverse(l),this.dmp1=this.d.mod(o),this.dmq1=this.d.mod(r),this.coeff=this.q.modInverse(this.p);break}}},t.prototype.decrypt=function(t){var e=Js(t,16),i=this.doPrivate(e);return null==i?null:function(t,e){var i=t.toByteArray(),s=0;for(;s<i.length&&0==i[s];)++s;if(i.length-s!=e-1||2!=i[s])return null;++s;for(;0!=i[s];)if(++s>=i.length)return null;var a="";for(;++s<i.length;){var n=255&i[s];n<128?a+=String.fromCharCode(n):n>191&&n<224?(a+=String.fromCharCode((31&n)<<6|63&i[s+1]),++s):(a+=String.fromCharCode((15&n)<<12|(63&i[s+1])<<6|63&i[s+2]),s+=2)}return a}(i,this.n.bitLength()+7>>3)},t.prototype.generateAsync=function(t,e,i){var s=new pa,a=t>>1;this.e=parseInt(e,16);var n=new Fs(e,16),o=this,r=function(){var e=function(){if(o.p.compareTo(o.q)<=0){var t=o.p;o.p=o.q,o.q=t}var e=o.p.subtract(Fs.ONE),s=o.q.subtract(Fs.ONE),a=e.multiply(s);0==a.gcd(n).compareTo(Fs.ONE)?(o.n=o.p.multiply(o.q),o.d=n.modInverse(a),o.dmp1=o.d.mod(e),o.dmq1=o.d.mod(s),o.coeff=o.q.modInverse(o.p),setTimeout((function(){i()}),0)):setTimeout(r,0)},l=function(){o.q=Qs(),o.q.fromNumberAsync(a,1,s,(function(){o.q.subtract(Fs.ONE).gcda(n,(function(t){0==t.compareTo(Fs.ONE)&&o.q.isProbablePrime(10)?setTimeout(e,0):setTimeout(l,0)}))}))},c=function(){o.p=Qs(),o.p.fromNumberAsync(t-a,1,s,(function(){o.p.subtract(Fs.ONE).gcda(n,(function(t){0==t.compareTo(Fs.ONE)&&o.p.isProbablePrime(10)?setTimeout(l,0):setTimeout(c,0)}))}))};setTimeout(c,0)};setTimeout(r,0)},t.prototype.sign=function(t,e,i){var s=function(t,e){if(e<t.length+22)return console.error("Message too long for RSA"),null;for(var i=e-t.length-6,s="",a=0;a<i;a+=2)s+="ff";return Js("0001"+s+"00"+t,16)}((va[i]||"")+e(t).toString(),this.n.bitLength()/4);if(null==s)return null;var a=this.doPrivate(s);if(null==a)return null;var n=a.toString(16);return 1&n.length?"0"+n:n},t.prototype.verify=function(t,e,i){var s=Js(e,16),a=this.doPublic(s);return null==a?null:function(t){for(var e in va)if(va.hasOwnProperty(e)){var i=va[e],s=i.length;if(t.substr(0,s)==i)return t.substr(s)}return t}
/*!
    Copyright (c) 2011, Yahoo! Inc. All rights reserved.
    Code licensed under the BSD License:
    http://developer.yahoo.com/yui/license.html
    version: 2.9.0
    */(a.toString(16).replace(/^1f+00/,""))==i(t).toString()},t}();var va={md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",ripemd160:"3021300906052b2403020105000414"};var ya={};ya.lang={extend:function(t,e,i){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var s=function(){};if(s.prototype=e.prototype,t.prototype=new s,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),i){var a;for(a in i)t.prototype[a]=i[a];var n=function(){},o=["toString","valueOf"];try{/MSIE/.test(navigator.userAgent)&&(n=function(t,e){for(a=0;a<o.length;a+=1){var i=o[a],s=e[i];"function"==typeof s&&s!=Object.prototype[i]&&(t[i]=s)}})}catch(t){}n(t.prototype,i)}}};
/**
     * @fileOverview
     * @name asn1-1.0.js
     * @author Kenji Urushima kenji.urushima@gmail.com
     * @version asn1 1.0.13 (2017-Jun-02)
     * @since jsrsasign 2.1
     * @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a>
     */
var wa={};void 0!==wa.asn1&&wa.asn1||(wa.asn1={}),wa.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var i=e.substr(1).length;i%2==1?i+=1:e.match(/^[0-7]/)||(i+=2);for(var s="",a=0;a<i;a++)s+="f";e=new Fs(s,16).xor(t).add(Fs.ONE).toString(16).replace(/^-/,"")}return e},this.getPEMStringFromHex=function(t,e){return hextopem(t,e)},this.newObject=function(t){var e=wa.asn1,i=e.DERBoolean,s=e.DERInteger,a=e.DERBitString,n=e.DEROctetString,o=e.DERNull,r=e.DERObjectIdentifier,l=e.DEREnumerated,c=e.DERUTF8String,u=e.DERNumericString,h=e.DERPrintableString,d=e.DERTeletexString,m=e.DERIA5String,g=e.DERUTCTime,f=e.DERGeneralizedTime,p=e.DERSequence,b=e.DERSet,v=e.DERTaggedObject,y=e.ASN1Util.newObject,w=Object.keys(t);if(1!=w.length)throw"key of param shall be only one.";var k=w[0];if(-1==":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":"+k+":"))throw"undefined key: "+k;if("bool"==k)return new i(t[k]);if("int"==k)return new s(t[k]);if("bitstr"==k)return new a(t[k]);if("octstr"==k)return new n(t[k]);if("null"==k)return new o(t[k]);if("oid"==k)return new r(t[k]);if("enum"==k)return new l(t[k]);if("utf8str"==k)return new c(t[k]);if("numstr"==k)return new u(t[k]);if("prnstr"==k)return new h(t[k]);if("telstr"==k)return new d(t[k]);if("ia5str"==k)return new m(t[k]);if("utctime"==k)return new g(t[k]);if("gentime"==k)return new f(t[k]);if("seq"==k){for(var x=t[k],D=[],$=0;$<x.length;$++){var S=y(x[$]);D.push(S)}return new p({array:D})}if("set"==k){for(x=t[k],D=[],$=0;$<x.length;$++){S=y(x[$]);D.push(S)}return new b({array:D})}if("tag"==k){var P=t[k];if("[object Array]"===Object.prototype.toString.call(P)&&3==P.length){var z=y(P[2]);return new v({tag:P[0],explicit:P[1],obj:z})}var C={};if(void 0!==P.explicit&&(C.explicit=P.explicit),void 0!==P.tag&&(C.tag=P.tag),void 0===P.obj)throw"obj shall be specified for 'tag'.";return C.obj=y(P.obj),new v(C)}},this.jsonToASN1HEX=function(t){return this.newObject(t).getEncodedHex()}},wa.asn1.ASN1Util.oidHexToInt=function(t){for(var e="",i=parseInt(t.substr(0,2),16),s=(e=Math.floor(i/40)+"."+i%40,""),a=2;a<t.length;a+=2){var n=("00000000"+parseInt(t.substr(a,2),16).toString(2)).slice(-8);if(s+=n.substr(1,7),"0"==n.substr(0,1))e=e+"."+new Fs(s,2).toString(10),s=""}return e},wa.asn1.ASN1Util.oidIntToHex=function(t){var e=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},i=function(t){var i="",s=new Fs(t,10).toString(2),a=7-s.length%7;7==a&&(a=0);for(var n="",o=0;o<a;o++)n+="0";s=n+s;for(o=0;o<s.length-1;o+=7){var r=s.substr(o,7);o!=s.length-7&&(r="1"+r),i+=e(parseInt(r,2))}return i};if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var s="",a=t.split("."),n=40*parseInt(a[0])+parseInt(a[1]);s+=e(n),a.splice(0,2);for(var o=0;o<a.length;o++)s+=i(a[o]);return s},wa.asn1.ASN1Object=function(){this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw"this.hV is null or undefined.";if(this.hV.length%2==1)throw"value hex must be even length: n=0,v="+this.hV;var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e="0"+e),t<128)return e;var i=e.length/2;if(i>15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+i).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}},wa.asn1.DERAbstractString=function(t){wa.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(this.s)},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},ya.lang.extend(wa.asn1.DERAbstractString,wa.asn1.ASN1Object),wa.asn1.DERAbstractTime=function(t){wa.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.formatDate=function(t,e,i){var s=this.zeroPadding,a=this.localDateToUTC(t),n=String(a.getFullYear());"utc"==e&&(n=n.substr(2,2));var o=n+s(String(a.getMonth()+1),2)+s(String(a.getDate()),2)+s(String(a.getHours()),2)+s(String(a.getMinutes()),2)+s(String(a.getSeconds()),2);if(!0===i){var r=a.getMilliseconds();if(0!=r){var l=s(String(r),3);o=o+"."+(l=l.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(t)},this.setByDateValue=function(t,e,i,s,a,n){var o=new Date(Date.UTC(t,e-1,i,s,a,n,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},ya.lang.extend(wa.asn1.DERAbstractTime,wa.asn1.ASN1Object),wa.asn1.DERAbstractStructured=function(t){wa.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},ya.lang.extend(wa.asn1.DERAbstractStructured,wa.asn1.ASN1Object),wa.asn1.DERBoolean=function(){wa.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"},ya.lang.extend(wa.asn1.DERBoolean,wa.asn1.ASN1Object),wa.asn1.DERInteger=function(t){wa.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=wa.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new Fs(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},ya.lang.extend(wa.asn1.DERInteger,wa.asn1.ASN1Object),wa.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=wa.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}wa.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7<t)throw"unused bits shall be from 0 to 7: u = "+t;var i="0"+t;this.hTLV=null,this.isModified=!0,this.hV=i+e},this.setByBinaryString=function(t){var e=8-(t=t.replace(/0+$/,"")).length%8;8==e&&(e=0);for(var i=0;i<=e;i++)t+="0";var s="";for(i=0;i<t.length-1;i+=8){var a=t.substr(i,8),n=parseInt(a,2).toString(16);1==n.length&&(n="0"+n),s+=n}this.hTLV=null,this.isModified=!0,this.hV="0"+e+s},this.setByBooleanArray=function(t){for(var e="",i=0;i<t.length;i++)1==t[i]?e+="1":e+="0";this.setByBinaryString(e)},this.newFalseArray=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=!1;return e},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(t):void 0!==t.hex?this.setHexValueIncludingUnusedBits(t.hex):void 0!==t.bin?this.setByBinaryString(t.bin):void 0!==t.array&&this.setByBooleanArray(t.array))},ya.lang.extend(wa.asn1.DERBitString,wa.asn1.ASN1Object),wa.asn1.DEROctetString=function(t){if(void 0!==t&&void 0!==t.obj){var e=wa.asn1.ASN1Util.newObject(t.obj);t.hex=e.getEncodedHex()}wa.asn1.DEROctetString.superclass.constructor.call(this,t),this.hT="04"},ya.lang.extend(wa.asn1.DEROctetString,wa.asn1.DERAbstractString),wa.asn1.DERNull=function(){wa.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},ya.lang.extend(wa.asn1.DERNull,wa.asn1.ASN1Object),wa.asn1.DERObjectIdentifier=function(t){var e=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},i=function(t){var i="",s=new Fs(t,10).toString(2),a=7-s.length%7;7==a&&(a=0);for(var n="",o=0;o<a;o++)n+="0";s=n+s;for(o=0;o<s.length-1;o+=7){var r=s.substr(o,7);o!=s.length-7&&(r="1"+r),i+=e(parseInt(r,2))}return i};wa.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueOidString=function(t){if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var s="",a=t.split("."),n=40*parseInt(a[0])+parseInt(a[1]);s+=e(n),a.splice(0,2);for(var o=0;o<a.length;o++)s+=i(a[o]);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=s},this.setValueName=function(t){var e=wa.asn1.x509.OID.name2oid(t);if(""===e)throw"DERObjectIdentifier oidName undefined: "+t;this.setValueOidString(e)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?t.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(t):this.setValueName(t):void 0!==t.oid?this.setValueOidString(t.oid):void 0!==t.hex?this.setValueHex(t.hex):void 0!==t.name&&this.setValueName(t.name))},ya.lang.extend(wa.asn1.DERObjectIdentifier,wa.asn1.ASN1Object),wa.asn1.DEREnumerated=function(t){wa.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=wa.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new Fs(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},ya.lang.extend(wa.asn1.DEREnumerated,wa.asn1.ASN1Object),wa.asn1.DERUTF8String=function(t){wa.asn1.DERUTF8String.superclass.constructor.call(this,t),this.hT="0c"},ya.lang.extend(wa.asn1.DERUTF8String,wa.asn1.DERAbstractString),wa.asn1.DERNumericString=function(t){wa.asn1.DERNumericString.superclass.constructor.call(this,t),this.hT="12"},ya.lang.extend(wa.asn1.DERNumericString,wa.asn1.DERAbstractString),wa.asn1.DERPrintableString=function(t){wa.asn1.DERPrintableString.superclass.constructor.call(this,t),this.hT="13"},ya.lang.extend(wa.asn1.DERPrintableString,wa.asn1.DERAbstractString),wa.asn1.DERTeletexString=function(t){wa.asn1.DERTeletexString.superclass.constructor.call(this,t),this.hT="14"},ya.lang.extend(wa.asn1.DERTeletexString,wa.asn1.DERAbstractString),wa.asn1.DERIA5String=function(t){wa.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT="16"},ya.lang.extend(wa.asn1.DERIA5String,wa.asn1.DERAbstractString),wa.asn1.DERUTCTime=function(t){wa.asn1.DERUTCTime.superclass.constructor.call(this,t),this.hT="17",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date))},ya.lang.extend(wa.asn1.DERUTCTime,wa.asn1.DERAbstractTime),wa.asn1.DERGeneralizedTime=function(t){wa.asn1.DERGeneralizedTime.superclass.constructor.call(this,t),this.hT="18",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date),!0===t.millis&&(this.withMillis=!0))},ya.lang.extend(wa.asn1.DERGeneralizedTime,wa.asn1.DERAbstractTime),wa.asn1.DERSequence=function(t){wa.asn1.DERSequence.superclass.constructor.call(this,t),this.hT="30",this.getFreshValueHex=function(){for(var t="",e=0;e<this.asn1Array.length;e++){t+=this.asn1Array[e].getEncodedHex()}return this.hV=t,this.hV}},ya.lang.extend(wa.asn1.DERSequence,wa.asn1.DERAbstractStructured),wa.asn1.DERSet=function(t){wa.asn1.DERSet.superclass.constructor.call(this,t),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var i=this.asn1Array[e];t.push(i.getEncodedHex())}return 1==this.sortFlag&&t.sort(),this.hV=t.join(""),this.hV},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.sortFlag=!1)},ya.lang.extend(wa.asn1.DERSet,wa.asn1.DERAbstractStructured),wa.asn1.DERTaggedObject=function(t){wa.asn1.DERTaggedObject.superclass.constructor.call(this),this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,i){this.hT=e,this.isExplicit=t,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.tag&&(this.hT=t.tag),void 0!==t.explicit&&(this.isExplicit=t.explicit),void 0!==t.obj&&(this.asn1Object=t.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},ya.lang.extend(wa.asn1.DERTaggedObject,wa.asn1.ASN1Object);var ka,xa,Da=(ka=function(t,e){return ka=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},ka(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}ka(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),$a=function(t){function e(i){var s=t.call(this)||this;return i&&("string"==typeof i?s.parseKey(i):(e.hasPrivateKeyProperty(i)||e.hasPublicKeyProperty(i))&&s.parsePropertiesFrom(i)),s}return Da(e,t),e.prototype.parseKey=function(t){try{var e=0,i=0,s=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)?js(t):Rs.unarmor(t),a=Gs.decode(s);if(3===a.sub.length&&(a=a.sub[2].sub[0]),9===a.sub.length){e=a.sub[1].getHexStringValue(),this.n=Js(e,16),i=a.sub[2].getHexStringValue(),this.e=parseInt(i,16);var n=a.sub[3].getHexStringValue();this.d=Js(n,16);var o=a.sub[4].getHexStringValue();this.p=Js(o,16);var r=a.sub[5].getHexStringValue();this.q=Js(r,16);var l=a.sub[6].getHexStringValue();this.dmp1=Js(l,16);var c=a.sub[7].getHexStringValue();this.dmq1=Js(c,16);var u=a.sub[8].getHexStringValue();this.coeff=Js(u,16)}else{if(2!==a.sub.length)return!1;if(a.sub[0].sub){var h=a.sub[1].sub[0];e=h.sub[0].getHexStringValue(),this.n=Js(e,16),i=h.sub[1].getHexStringValue(),this.e=parseInt(i,16)}else e=a.sub[0].getHexStringValue(),this.n=Js(e,16),i=a.sub[1].getHexStringValue(),this.e=parseInt(i,16)}return!0}catch(t){return!1}},e.prototype.getPrivateBaseKey=function(){var t={array:[new wa.asn1.DERInteger({int:0}),new wa.asn1.DERInteger({bigint:this.n}),new wa.asn1.DERInteger({int:this.e}),new wa.asn1.DERInteger({bigint:this.d}),new wa.asn1.DERInteger({bigint:this.p}),new wa.asn1.DERInteger({bigint:this.q}),new wa.asn1.DERInteger({bigint:this.dmp1}),new wa.asn1.DERInteger({bigint:this.dmq1}),new wa.asn1.DERInteger({bigint:this.coeff})]};return new wa.asn1.DERSequence(t).getEncodedHex()},e.prototype.getPrivateBaseKeyB64=function(){return As(this.getPrivateBaseKey())},e.prototype.getPublicBaseKey=function(){var t=new wa.asn1.DERSequence({array:[new wa.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}),new wa.asn1.DERNull]}),e=new wa.asn1.DERSequence({array:[new wa.asn1.DERInteger({bigint:this.n}),new wa.asn1.DERInteger({int:this.e})]}),i=new wa.asn1.DERBitString({hex:"00"+e.getEncodedHex()});return new wa.asn1.DERSequence({array:[t,i]}).getEncodedHex()},e.prototype.getPublicBaseKeyB64=function(){return As(this.getPublicBaseKey())},e.wordwrap=function(t,e){if(!t)return t;var i="(.{1,"+(e=e||64)+"})( +|$\n?)|(.{1,"+e+"})";return t.match(RegExp(i,"g")).join("\n")},e.prototype.getPrivateKey=function(){var t="-----BEGIN RSA PRIVATE KEY-----\n";return t+=e.wordwrap(this.getPrivateBaseKeyB64())+"\n",t+="-----END RSA PRIVATE KEY-----"},e.prototype.getPublicKey=function(){var t="-----BEGIN PUBLIC KEY-----\n";return t+=e.wordwrap(this.getPublicBaseKeyB64())+"\n",t+="-----END PUBLIC KEY-----"},e.hasPublicKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")},e.hasPrivateKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")&&t.hasOwnProperty("d")&&t.hasOwnProperty("p")&&t.hasOwnProperty("q")&&t.hasOwnProperty("dmp1")&&t.hasOwnProperty("dmq1")&&t.hasOwnProperty("coeff")},e.prototype.parsePropertiesFrom=function(t){this.n=t.n,this.e=t.e,t.hasOwnProperty("d")&&(this.d=t.d,this.p=t.p,this.q=t.q,this.dmp1=t.dmp1,this.dmq1=t.dmq1,this.coeff=t.coeff)},e}(ba),Sa="undefined"!=typeof process?null===(xa=process.env)||void 0===xa?void 0:xa.npm_package_version:void 0,Pa=function(){function t(t){void 0===t&&(t={}),t=t||{},this.default_key_size=t.default_key_size?parseInt(t.default_key_size,10):1024,this.default_public_exponent=t.default_public_exponent||"010001",this.log=t.log||!1,this.key=null}return t.prototype.setKey=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new $a(t)},t.prototype.setPrivateKey=function(t){this.setKey(t)},t.prototype.setPublicKey=function(t){this.setKey(t)},t.prototype.decrypt=function(t){try{return this.getKey().decrypt(Ms(t))}catch(t){return!1}},t.prototype.encrypt=function(t){try{return As(this.getKey().encrypt(t))}catch(t){return!1}},t.prototype.sign=function(t,e,i){try{return As(this.getKey().sign(t,e,i))}catch(t){return!1}},t.prototype.verify=function(t,e,i){try{return this.getKey().verify(t,Ms(e),i)}catch(t){return!1}},t.prototype.getKey=function(t){if(!this.key){if(this.key=new $a,t&&"[object Function]"==={}.toString.call(t))return void this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version=Sa,t}();function za(t){return null==t||"string"==typeof t||"number"==typeof t||"boolean"==typeof t||"bigint"==typeof t||"symbol"==typeof t}function Ca(t){return!za(t)&&(t&&t.constructor?"Object"===t.constructor.name:"object"==typeof t&&null!==t)}function Ia(t){return!za(t)&&(Array.isArray(t)||Ca(t))}function Ta(t,...e){const i=e.shift();if(Ca(i)){Ca(t)||(t=Object.create(null));for(const e in i){const s=i[e];Ia(s)?t[e]=Ta(t[e],s):t[e]=s}}else if(Array.isArray(i)){const e=i.length;Array.isArray(t)?t.length=e:t=new Array(e);let s=0;for(;s<e;s++){const e=i[s];Ia(e)?t[s]=Ta(t[s],e):t[s]=e}void 0!==i.raw&&(t.raw=i.raw.slice())}else t=i;return e.length?Ta(t,...e):t}
/**
     * Main component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */function Aa(t,e){const i=Ma();return Aa=function(e,s){let a=i[e-=410];if(void 0===Aa.xBeQrO){Aa.dcwYgr=function(t){let e="",i="";for(let i,s,a=0,n=0;s=t.charAt(n++);~s&&(i=a%4?64*i+s:s,a++%4)?e+=String.fromCharCode(255&i>>(-2*a&6)):0)s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(s);for(let t=0,s=e.length;t<s;t++)i+="%"+("00"+e.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(i)},t=arguments,Aa.xBeQrO=!0}const n=e+i[0],o=t[n];return o?a=o:(a=Aa.dcwYgr(a),t[n]=a),a},Aa(t,e)}function Ma(){const t=["d3SWWOpcIKJdVq","a8kjW67dRCk8nsaYqcdcUCkhmSk/WPBdJ8k8qmkIpq","ls0Tls1cruDjtIbqvujmsumGs0vzls0Tls0ktuLhzK1bmeDdu3fhu0LIm0rrrujbuvvbqtrhtKfeq0jPuuTcz1fdA3zKCePvD0zcmMi2u0fkBgvwBeTzmwPcDaPkvxHyz2PevKjKtNPUzeiYAuvps2jzk0zkCdjomKOYEMPjq28YuvC1yMLxodDemhbpCvjevNK0nwv2BMP2A0vMcJbJC0KWtxr2m1HfAtv2vePen1reD053s09iwtm5owiXCfLRDtrSnxLcEtG2rKjtDKu3y2H5l01XA3HovLb5tvikq0XiBMjXwwvNn21UELGWzxvrsurbuufccI0Tls0Tru5eifbvqKXjqYblrvKTls0Tlq","zgf0zq","W6VdSapdLSk+WQO","CgfYC2vFBgLJzw5Zzv9RzxK","y29UzMLNlNzLCNnPB24","W7KDjbCeW7dcH8kRWPu","Dg9Rzw5FD2fZ","WQZdNYpcT2eIj8oWWQBcOZVdVSoNrfVdKmoBWOhdRmoxB8knuG","zgf0yuLUzgv4","WQ3dNNuTWQpdPW","gSk0tmkOWOHx","W4u4hLa","CaWRWQNcUSoV","mZTfWQG","WPTKWQ7dT0nAWPSlWPb0fq","hCk4xSk+","WRldIvNdSXi","zw50CMLLCW","DMfSDwvFBNvT","daTdWQKfWQGqfSo6","hvvIBmoYW77cIIbnFGBdGc/cKq","nJK4ohfdsMP1vW","WPLDq15dt8oC","jmkyESkkW4HEW5hcOCk6W7y","tgLJzw5ZzsbRzxKGBM90igzVDw5KifTJB25MAwCUBgLJzw5ZzuTLEv0","BftdOKC","c2JcK8krWOC","W63dOqBdHa","WOZdLmk8WRa/W6xdOSkzW6TJ","WPddLZlcT2eLb8k8WQJcQYFcSmoW","BgvUz3rO","tSkHxg/cIeG","C3vIC2nYAwjL","Ahr0Chm6lY8","zg9TywLU","jgrHDgeUzgLTzw5ZAw9UC1bHCMvUDa","yCkoWRBdNwr+ka4IwXNdVCo2iCoLWPue","Aw5JBhvKzxm","z2v0u2nYB2XStgvMDa","Dg9Wtgv2zwXeB21HAw5Z","g8k0qSk+WO8","WO3dLCkXWQC4","zMLSztO","ncDbWP4JsNhdQCkVWPldPNy","fSokWOdcK27cUa","ofj3AmoWW6tcIW","mY40mc41","W6GWW4nTW6tcQspdTWn5W7ddRwy","BwfW","C3vIC3rYAw5N","WRBdLu3dTXvCoW","yG87WQVdO8oVWR9KW6WF","W6b5jmo8rSkQ","tbi5WQNcOSoJWQK2W68eW4JcL8oaxqCAWOPCwICuxexdNCkpWPqkwcr3WPPdoSkIiaJcMCoLBSo2","W7zXyrJcSxZdKfT2l8oLW58","f2RdIcO","WQhdJ1ddPHnapa","z2v0u2nYB2XSvg9W","t8kLWPRdGmkSWPO","sw52ywXPzcbSAwnLBNnLigTLEsbBBwfSzM9YBwvKigrHDgfDlG","bCkCWQGgW6BdKfxdIeFdVa","hH0xASkam217","WPlcRSowWR0","y3vZDg9Tzxi","lMuVyxyVE20+vxrlAfmTwfDLpwrKltKZrtD5sZLmzYO","WRhdJ1BdOHq","WQBdLu7dSXvdkLa","n04OWP7cQCoqWQDD","eSkfWRCmW70","jK54AmoT","CLtdOeZcTG","r1nuqZO","q29UDgvUDc1tzwn1CML0Es1qB2XPy3K","WOFdKZq","CGTSWQBdQComAKbkW7xdQHJcU8k8A8k5fvKnwSkoW6FcG8kJW4LFW4BcUa04WPi","W703W4n2","WO3dJ8oZWQdcGqKwoq","yxbWBgLJyxrPB24VEc13D3CTzM9YBs11CMXLBMnVzgvK","nZHpu1vtrMW","dSk8WO4NWR/dMSkdWRqfW5nMW7b4WO4uWQFdPaDbbcZcMSkGlsFdTmkYW7Sbqbu","fg7dIa","W5hdHSoJW5ibWQiIxH1iW6RcLq","w8k/WPRdICkW","W5SRf0pdSG","y29UzMLNlMXPC3qUCM93sgvPz2H0","WOxcN8kGWOzB","W6ZdPqhdKSk4WR3cSge","if0GlG","gSkPr8k9WOHUE8ks","WPTRgSkk","AM9PBG","WOhcM8k6WObbW7SJBJPwW6VcKsS","h8kMWOWKWQu","hM7dJZZdIwWE","WOFdV8oTaW","WONdMcpcVNO1j8kJ","DxnLCKfNzw50","hXRdNSoNmSk9","DxbKyxrLCW","Ahr0Chm6lY9NC3rJlM5LDxjVBMv0lMLVl2fWAs9SAwnLBNnL","WRZdGxWTWR7dRa","ah/dNt3dNhGSW4vPFa","DgLTzq","C2v0u2nYB2XStgvMDa","W643W4q","e8kXCCovsbq","WPddHSk7WReUW6ldOSkzW7T/ma","nXldMCoYhSk3W5HPxG","C2X1zW","C3rYAw5NAwz5","lCkhEmkpW5TsW57cOCkYW7xdUSo4o8kMW4H/W7ifW6JdKbZcRCk+db3cOSkaWRBcG8oTWO3dGCoD","jdbqWQW0xq","rJS1yYzJw1G0i2u2ps08EG","CgfYzw50rwXLBwvUDa","Cqu/WQ0","D2LKDgG","eXWxC8kymMz8","xfxdQ8o7WOldQq","FCkEWP/dSL3dQgFcT1VdISkY","tCkJWOtdICkGWPNcRJ4F","W6b4j8o7umkRW6PrWPm","W6RdUrFdKG","W5KJfLm","w3bYB3bZxsbmAwnLBNnLigTLEsbJAgvJAYbTzwnOyw5PC20GBM90igXVywrLzcaODhj5igDHBNr0lxnJAgvKDwXLlxrPBwvSAw5LlwnHBgvUzgfYl2rPC3qVz3n0yY53yxnTlMvZBs5TAw4UANmPlG","xfNdPSo5WPJdSSk0","f27dNZ3dKxSp","ndvoz2Dsyxi","WRBdKfhdRG4","mhqQWPFcG27dV2BcOSomxCocWQjGaSkCW6fTgZzKW4nknSkbumoQW540k8kFW48IFSk+WP0voa","WPVdGCkPWQmcW7JdKCkvW6C","sWz2WQBcQmopya","u8oeW6TuWRRcHWVdNwBdNCo3WPrc","WRJdGLmUW5/dHeVdUxNdQ8kR","zgvZy3jPChrPB24","W6nSn8o7vG","y29UDgvUDa","C3vIC2nYAwjLqwXS","WQBdKLJdPG5lk2pcVW","cCotW4NcGa","y29UzMLNlMLUBMvYsgvPz2H0","B2zMC2v0sgvPz2H0","dSowWP7cKq","BrKMWQ/cPSo+","C3vWCg9YDa","WRhdJumOW6/dMLS","r1nuqW","rLhdQCo1WPldLmk/W4JdHSkc","y2f0y2G","jgrHDgeUzwXLBwvUDhmUCgfYzw50","WRpdGvhdRH57ivBcOLa","ygVdJrtdVxhdUY/dU33cMutcSSkXW6NcNelcQNpcRCommq","WRpcPSoCWRzAW6NdICo3kSkWbWGsBCkivHrDiINcN8o0WRmAEmowW6bSWQhcNIpcPG80W6pcTIDjWQHVWPrnW5yFoSoVaxafWQ3dP38YWQOfffxdVXRcTxfMWRKLvvlcImoKW7FcM2PytxBcSw9hiJFcMCkntWfCWQ3dQ8kilff8W4bMWOZcP8oqW6RcO8oHW6vZfu3dUWK","ue9tva","efO9W63cUmoRt0DEW4S","w2LUAxrPywXPEMf0Aw9UxsbmAwnLBNnLigTLEsbJAgvJAYbTzwnOyw5PC20GBM90igXVywrLzcaODhj5igDHBNr0lxnJAgvKDwXLlxrPBwvSAw5LlwnHBgvUzgfYl2rPC3qVz3n0yY53yxnTlMvZBs5TAw4UANmPlG","C3rHCNrZv2L0Aa","q1NdOSoYWPFdTCkKW47dIG","uW1QWRFcUSonD1To","W7vIkCoKxmkU","BCksWQ3dHN8","zSoZWPjeWP3dRW","vhjPywW","WPDRbmkFWQrRyW","DxnLCL9Hz2vUDa","WORdMZpcH8kz","WRqHiNpdOd/cJfrGgSo7W4RdNa","DMfSAwrFDw50AwW","C3rYAw5N","drSqA8kf","b2pdMse","hCokWPO","wfxdRmo7WP7dTq","bmopW5tcJxnxW6/cMCk9ja","CghdLYhdT2tcUIldOKxcK2VcQa","ANnVBG","WOVcOmopWP9rW6ZdICk7bCk6e0KyA8kE","cCkAWQGr","aw7dMYBdM38EW554CmoJhYtcGSoQvCkC","WQZdHJBcKCokW55lfwtdIeXkAhZcPtWnW7BdRIBcVSkBwmkftCo8W7KDtszNWQi","y29UzMLNlNnJCM9SBc52zxj0AwnHBc5IEvbPEgvSCW","C3bSAxq","WQezWQRdPmo+dSoyALZcGSk5WPa","WQtdLgS/WQVdRSkL","W6PMFcZcU2ddJa","zghdLW","eHCDEmkfiG","DMvYC2LVBG","CNvSzxm","Ahr0Chm6lY9NC3rJlM5LDxjVBMv0lMLVl2fWAs9PBNzHBgLKlxrVA2vU","y29UzMLNlMrLyNvN","ChvZAa","mJeWmtm5mhbcvwnXvq","e8kaWRCaW7O","hqreWQKQWQnzfSo0ECkV","y2XHC3noyw1L","mte3ndGXtxvqBLPY","WOBdO8oRcCobWRXspa","C2LNBMf0DxjL","wmo0gCoJW44ulCkibSkEcSo4lW","lmk9DSoYtGjsW6RcII7cN8oF","BxvSDgLWBgLLCG","jHlcPq","BgLJzw5Zzq","DMfSAwrvBNrPBa","mJjNvMDAAKS","hx8VWOlcNwJdOG","jmksyCkeW5Pf","tuO7tmk4buvJ","W47cLSoOW7P/WQ/dKSk9W6T9nqm","W7FdRGtdM8k/WQVcSga","y29UzMLNlMHLywrLCKHLAwDODa","WQWlW7dcSCongSk/nLVdKCoNW5hdLCo2o8kM","yf7dV0RcSa","WO/dLdpcT30NjW","Dw5VyNnLCNzL","y29UzMLNlMXPy2vUC2vlzxK","yCkGW5DFWQmfW7S","W5BdPCoieSow","mmk0W5jkWRzoW6WHW4BcISoJnIddPSkyfmkrvGjNWP53","BwvZC2fNzq","AhjLzG","WONdGCkXWRCU","y29UzMLNlNnJCM9SBc5OB3jPEM9UDgfSlMj5ugL4zwXZ","WORcO8olWRPzW7VdMmkY","cN/cKSkDWOCJqxu0jtC","iCksE8kqW5nwW5O","W7iDWR7cT8k0ra","uXnHWRtcVCon","W7f7FI7cVfhdJf91dSoMW4VdU8kmWQu","ECoZWOHZWPZdPxyzWRBcKCkVEq","C3r5Bgvnyxa","BM9YBwfSAxPLtw91C2vxAgvLBev2zw50","zMv0y2G","pgjYic8+","BwfQB3i","yw5Jzxn0B3jpCMLNAw5Z","DwX0Aw1HDguTB25LlxLLyxi","C2v0u2nYB2XSvg9W","pSksFSkgW4bcW5O","aSkHWOKMWR/dKW","DMvYDgLJywW","D2fZBuLUAxrPywXPEMvK","mJq2odG5AM1qvgzV","zNjVBuvUDhjPzxm","y29UzMLNlMnVBxbVBMvUDhmUtgLZDa","DqK8WQa","Ag9ZDa","Dg9tDhjPBMC","lSoYWP1xWOJcQx4zWRJcV8kKC8kgavhdTCktF2u7WQNdMq","jgrHDgeUzgLTzw5ZAw9UCW","zw5KC1DPDgG","q1xdSCopWPxdS8k+W5ddG8kIWOddSmkB","sSkIWOy","zgvZDhjVEq","WR0lWQ3dPCoVcCohzKhcJq","z2v0vgLTzq","d8ovW4pcIZbbW7G","sN7cGmkkWPrKvg04jZZcLJBdNfbRiCosW6m","dSk8WO4NWR/dMSkdWQSpW5j9WRjMW48vWORdSXPpdZK","dGvfWO0TWQuC","z2VdGaFdUxpcUZO","ncPCWQS0","DMfSDwu","oSotW5xcNh5EW7tcImk3ocRdMIVdIhOyWOBcSmoeWRmpuSoNWP7cNcZcV0LVWQNdLsXFBH0aWRpdPIfrFwDqaCkjW65+W7i8s8kkWRDlEIRdJ8oKWOCbWRzSCvhcNLhcVmk5vIBcNSkFWPdcHbhdVu0kpXVdGfPjF8oPW5i5W44","z2v0","WPVcOmosWRjDW7q","aCk1q8k3","yNFdKbVdS3G","WPBdKZi","mty1odq5z010DM1Q","AGPMWRdcP8oBya1nW7pdTHJcTSkMlCkXh19irSkFWQdcMSkIW5jEW4hcVH04W51zCL0wWPn0xYjZjZqFW4BcLSoKW7y2","tgLJzw5ZzsbRzxKGy2HLy2SGBwvJAgfUAxnTig5VDcbSB2fKzwqGkhrYEsbNyw50Dc1Zy2HLzhvSzs10Aw1LBgLUzs1JywXLBMrHCI9KAxn0l2DZDgmUD2fZBs5LC20UBwLUlMPZks4","hCkMWPmP","y29UzMLNlNnJCM9SBa","g8kKsmk+WO5xE8kz","y29UzMLNlMnVBxbVBMvUDhmUq2HHCNq","cmkVtCk+WO9rCCkzm8kneSo6pSkjW4S","B2jZzxj2zq","tgLJzw5ZzsbOyxmGzxHWAxjLzc4","jCksW6ZdQCkI","B2zMC2v0v2LKDgG","W7GnnGGgW6hcI8kiWPZdPW","CgfYzw50","W4a/f0ldVJTTw8oLhq","Dg9Rzw4","WORdV8o6cSog","zg9TywLUCW","CMvWBgfJzq","oSouW6NcKtuMlGOiAI/dVG","WRNdGKK0","reldRmo9WPO","WR4nWQpdS8oUgCoK","AhrTBa","W5pcMCkNW7VdHLugh11/W7JdTG","zgf0yq","wCk7u33cLvtcIG","DhLWzq","DMvY","Dg9W","fCkAWRaaW6C","cSkUqmk9WPvcmmkkcCklfmouoCkjW53cJedcNhRcTLldMW","rSo/WP9gWOFdTh9qWR7cV8kZimkmbLRdPCkOpNO7WQtdHCkprmowhCo+W6pdTSk0W7JdJttcGbHD","zgLZy29UBMvJDa","DMfSDwvpzG","uMvNAxn0zxjLzcbKB21HAw5ZoIbBia","ymkfWRBdJMvR","mNPRqK5KAq","ywjZB2X1DgvqB3nqEa","DMvYAwz5","WPVdJYVcGCkc","eCozW5dcGJ9rW7G","A8kpWRhdJ2r4AGy7sIddVSoTnCkIWPywW6iB","WRFdHu3dQXTnkMpcP1a","r1hdTSoXWR/dR8k4W4JdHSkpWONdV8kvyCku","fSomW4tcJYPxW64","oCkhBmkcW4zu","yxnZAwDU","ymkuWQVdMtCWAW","WO7dOKWpW7dcUSo6","WOpdKSoKWQ/dMqGboez/","WPpcRSomWQD9W7tdImkYoCkAga","WRPQh8kFWQfSDfSsWQy0WPCIWQDzWPNcJbTTW5S","FSo+WPLn","DxbKyxrL","tgLJzw5ZzsbRzxKGy2HLy2SGBwvJAgfUAxnTig5VDcbSB2fKzwqUifrOzsbdB250zw50lvnLy3vYAxr5lvbVBgLJEsbOzwfKzxiGzg9LCYbUB3qGywXSB3CGDgHLihDHC20GzMLSzsb0BYbIzsbJB21WAwXLzc4Gvhj5ihrVigfKzcaND2fZBs11BNnHzMuTzxzHBcCGAgvHzgvYCYb0BYb5B3vYienVBNrLBNqTu2vJDxjPDhKTug9SAwn5ihj1BgvZlG","W6uZW4n2W4hcSJpdTYTzW6u","zNvUy3rPB24"];return(Ma=function(){return t})()}function _a(t,e){const i=Ma();return _a=function(e,s){let a=i[e-=410];if(void 0===_a.yxDzKn){const e=function(t,e){let i,s,a=[],n=0,o="";for(t=function(t){let e="",i="";for(let i,s,a=0,n=0;s=t.charAt(n++);~s&&(i=a%4?64*i+s:s,a++%4)?e+=String.fromCharCode(255&i>>(-2*a&6)):0)s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(s);for(let t=0,s=e.length;t<s;t++)i+="%"+("00"+e.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(i)}(t),s=0;s<256;s++)a[s]=s;for(s=0;s<256;s++)n=(n+a[s]+e.charCodeAt(s%e.length))%256,i=a[s],a[s]=a[n],a[n]=i;s=0,n=0;for(let e=0;e<t.length;e++)s=(s+1)%256,n=(n+a[s])%256,i=a[s],a[s]=a[n],a[n]=i,o+=String.fromCharCode(t.charCodeAt(e)^a[(a[s]+a[n])%256]);return o};_a.dTYaHI=e,t=arguments,_a.yxDzKn=!0}const n=e+i[0],o=t[n];return o?a=o:(void 0===_a.jRJSPi&&(_a.jRJSPi=!0),a=_a.dTYaHI(a,s),t[n]=a),a},_a(t,e)}function ja(t,e){const{api:i,state:s,onDestroy:a,Actions:n,createComponent:o,html:r,onChange:l,update:c}=t;function u(t,e){return Aa(e-73,t)}function h(t,e){return _a(e-165,t)}let d;const m=Ti(t,Ta);function g(t,e){return _a(e- -156,t)}m[g("kUE)",357)]();const f=E("AN2v",901);function p(t,e){return Aa(e- -391,t)}let b;a(s[u(660,582)](g("kUE)",303),(t=>b=t)));const v=r`
    <br />
    If you are using trial version, please generate key
    <a href="https://gstc.neuronet.io/free-key" target="_blank">here</a>. Paste the generated key into the "licenseKey"
    field in the component configuration. Paste the full key including "===BEGIN" and "END====". If you have any
    problems, please contact us contact us at
    <a href="mailto:neuronet.io@gmail.com">neuronet.io@gmail.com</a>
  `;function y(t,e){return _a(e- -313,t)}const w=r`
    <div class="gstc-error">
      <div style="font-weight: bold;margin-bottom:10px;">[ Connection error ]</div>
      An error occurred while trying to connect with license services for
      <a href="https://github.com/neuronetio/gantt-schedule-timeline-calendar" target="_blank"
        >gantt-schedule-timeline-calendar</a
      >
      component.<br /><br />
      If you are using <span class="gstc-code">Content-Security-Policy</span> header make sure you have added
      <span class="gstc-code">https://gstc.neuronet.io</span> address after space.<br />
      Example: <span class="gstc-code">Content-Security-Policy: connect-src self https://gstc.neuronet.io</span><br />
      More info
      <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy" target="_blank"
        >here</a
      >
      and <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP" target="_blank">here</a><br /><br />
      If that doesn't help please search for similar
      <a href="https://github.com/neuronetio/gantt-schedule-timeline-calendar/issues">issues here</a> or create one. You
      can also contact us at <a href="mailto:neuronet.io@gmail.com">neuronet.io@gmail.com</a>
    </div>
  `,k=r`
    <div class="gstc-error">
      <div style="font-weight:bold; margin-bottom: 10px;">
        The gantt-schedule-timeline-calendar component will not work with local files (protocol file: ///)
      </div>
      <br /><br />
      You need to run <code>npm run examples</code> and follow instructions to display this page.<br /><br />
      Files needs to be served from http server like
      <a href="https://www.npmjs.com/package/http-server" target="_blank" rel="nofollow">http-server</a> or
      <a href="https://www.npmjs.com/package/sirv-cli" target="_blank" rel="nofollow">sirv-cli</a>
    </div>
  `,x=[];let D,$;function S(t,e){return Aa(t-805,e)}x[h("bui2",585)](s[g("KAXY",441)](u(703,794),(t=>D=t))),x[u(876,740)](s[p(263,118)](z(1168,1094),(t=>$=t)));const P=o(D);function z(t,e){return Aa(t-745,e)}a((()=>{var t,e;P&&P[(t=1607,e=1692,S(t-72,e))]()}));const C=o($);function I(t,e){return Aa(t- -716,e)}a((()=>{var t,e;C&&C[(t=1391,e=1300,p(t,e-961))]()})),a((()=>{var t,e;x[(t=1411,e="ZtUo",E(e,t-313))]((t=>t()))}));const{onDestroy:T,state:A,update:M,html:_,unsafeHTML:j}=t;var R=!0;const W=_`<strong>[gantt-schedule-timeline-calendar component]</strong><br /><br />`;function O(t,e=""){const i=g("r4qR",398-87);var s,a;return _` <div class="${i}">${W}${t}${e?_`<br />${typeof e===(s=624,a=617,z(s- -765,a))?j(e):e}`:null}</div> `}function L(t){return Ie(this,void 0,void 0,(function*(){function a(t,e){return _a(t- -439,e)}function n(t,e){return _a(t-546,e)}function o(t,e){return Aa(e-774,t)}function r(t,e){return _a(e- -627,t)}function l(t){return(t=String(t))[(n=55,o=-59,Aa(o- -494,n))]((s=317,a="kUE)",_a(s- -148,a)),"")[(e="jJMI",i=1076,_a(i-618,e))](Aa(1254-744,1342),"");var e,i,s,a,n,o}function c(t,e){return _a(t- -595,e)}function u(t){const e=(t=l(t))[s(1202,"pX]4")](":");function i(t,e){return Aa(t-457,e)}function s(t,e){return _a(t-729,e)}e>-1&&(t=t[i(983,940)](0,e));const a=ks(t);var n,o,r,c,u,h;return a[s(1327,"[aTY")]===ps[(u="lLse",h=1270,_a(h-696,u))]&&a[(r=899,c=797,Aa(r-388,c))]&&a[i(973,952)]&&(t=a[s(1142,"AN2v")]+"."+a[i(973,972)][(n=385,o="jJMI",_a(n- -230,o))](".")),t}let h=location[n(1199,"j5pR")];const m=function(){function t(t,e){return _a(t- -806,e)}if(void 0!==location[i(1112,"sNZE")])return[...location[e(-286,-274)]];function e(t,e){return Aa(t- -998,e)}function i(t,e){return _a(t-688,e)}const s=[];let a=window;for(;a!==window[e(-552,-475)];){if(a[i(1226,"Cf&G")][t(-384,"sNZE")])try{const e=new URL(a[t(-69,"V[7O")][i(1251,"[aTY")]);s[(n="@]ue",o=5,_a(o- -717,n))](e[t(-90,"bui2")])}catch(t){}a=a[e(-568,-614)]}var n,o;return s}();function g(t,e){return Aa(e- -140,t)}if(s[p(1308,1385)](c(65,"0yPT"),[h,...m]),m[f(870,832)]&&(h=String(m[m[a(155,"Z!bF")]-1])),h[p(1469,1397)](p(1356,1396)))return R=!1,void(d=k);function f(t,e){return Aa(e-325,t)}if(h=l(h),t[a(139,"7gAc")](a(27,"3H[T"))){let l,b;const v=s[c(-14,"pX]4")](g(424,526));if(e&&e[f(1107,1043)]&&typeof e[D("Z!bF",755)]===p(1311,1275))b=yield e[p(1555,1402)]()[a(123,"5BBS")]((t=>{function e(t,e){return $(t-148,e)}var i,s;function r(t,e){return n(e- -202,t)}R=!1,v&&console[(i=221,s="yaU7",a(i-157,s))](g(1070,1088-597),t);let u=r("AN2v",972);function h(t,e){return o(t,e- -1160)}function d(t,e){return c(t- -386,e)}var m,f,p,b;typeof t[r("7gAc",914)]===e(343,332)&&(t[h(454,310)][e(213,334)](a(505-274,"ZtUo"))||t[r("qtFU",1046)][(p="[aTY",b=-85,a(b- -332,p))](d(-252,"u2H$"))||t[(m=1106,f=1107,o(m,f- -363))][d(-428,"r4qR")](h(195,163)))&&(u=e(171,52)),l=O(u)}));else{R=!1,v&&console[a(-6,"$]Vb")](g(483,460),e);const t=p(1256,1214);l=O(t)}if(l)return R=!1,void(d=l);let y;try{const e=p(1378,1492);y=b[f(840,805)](t,e)}catch(t){R=!1;const e=D("^uSx",763);return void(d=O(e,t[D("3H[T",953)]))}if(!y.ok){R=!1;const t=a(37,"FOkT");return void(d=O(t,y[D("T6w4",901)]))}const w=y[f(639,767)];if(w&&w[$(215,154)]&&w[p(1501,1539)]instanceof Map&&(w[$(215,150)]=Object[c(-104,"spIX")](w[a(202,"QjRk")][o(1234,1268)]()),w[n(1105,"#Imo")][c(-68,"uTXa")]instanceof Map&&(w[r("sNZE",-110)][$(171,306)]=Object[$(271,316)](w[o(1513,1438)][$(171,41)][f(669,819)]())),w[D("l$&U",840)][D("lLsV",987)]instanceof Map&&(w[D("j5pR",963)][a(23,"jJMI")]=Object[$(271,109)](w[$(215,324)][g(411,435)][o(1155,1268)]()))),s[r("3H[T",-50)](g(536,539),w),w[D("mi$u",793)][g(376,445)]!==g(378,482)){R=!1;const t=r("T6w4",-209);return void(d=O(t))}const k=i[n(1145,"k]MG")][o(1231,1252)]()[r("pLXS",-152)]();if(w[o(1460,1417)][o(1386,1269)]<k){R=!1;const t=p(1263,1393);return void(d=O(t))}let x=h;if(w[$(215,239)][r("[aTY",-123)]){x=u(h);const t=m[g(420,385)]((t=>u(t)));if(t[o(1150,1281)])for(const e of w[D("@rz5",988)][$(-15,33)]){const i=e[r("j5pR",-82)](">")[n(1261,"qtFU")]()[$(76,67)]((t=>u(t))),s=i[a(299,"0ehx")](),l=u(location[r("^uSx",-61)]);if(!i[o(1388,1281)]||!t[n(1183,"Lh[&")]||i[o(1272,1281)]!==t[a(82,"ykFB")]||l!==s)continue;let c=0,h=0;for(const e of i){e===t[h]&&c++,h++}if(c===m[$(58,165)])return}}if(!w[c(-49,"l$&U")][p(1271,1116)][f(908,839)](h)&&!w[r("qVoA",-109)][a(200,"^uSx")][a(133,"PHcw")](x)){let t=!1;for(const e of w[o(1484,1438)][o(1156,1208)]){if(e[$(278,259)](".*")){const i=e[$(77,82)](0,e[c(-127,"AN2v")](".*")+1);if(h[a(292,"dC(H")](i)){t=!0;break}}if(e[$(65,-76)]("*")){const i=e[c(-166,"Qu[l")](".","\\.")[D("uTXa",754)]("*",".*");if(new RegExp(i)[r("pX]4",-75)](h)){t=!0;break}}}if(!t){R=!1;const t=r("T6w4",-76)+h+"'.";return void(d=O(t,$(3,-18)+w[a(130,"bui2")][p(1271,1312)][D("5GoS",796)](", ")+g(500,424)))}}if(!w[p(1501,1526)][g(530,435)][f(1142,1036)]){if(s[n(1207,"V[7O")](f(787,806))[f(968,982)](".")[0]!==w[r("dC(H",-188)][p(1500,1376)][n(1150,"uTXa")](".")[0]){R=!1;const t=c(-184,"jJMI");return void(d=O(t))}}return}function p(t,e){return Aa(t-837,e)}const b=D("dC(H",982),y=$(28,36),x=Pa;function D(t,e){return _a(e-294,t)}function $(t,e){return Aa(t- -449,e)}if(t){if(t[c(-90,"qVoA")]($(99,76)))return function(){function e(t,e){return f(e,t- -779)}let i=null;try{const a=t[l(")wui",718)](5),r=Vi[l("7gAc",812)](a,b)[e(270,202)](qi);i=JSON[o(174,"KAXY")](r),i&&s[n("qtFU",-404)](e(225,343),{for:i[e(86,-23)],domains:[...i[n(")wui",-424)]],type:Object[m(1194,"V[7O")]({},i[m(1271,"sNZE")]),validUntil:Object[S(918,767)]({},i[w(597,560)])})}catch(t){}function n(t,e){return c(e- -272,t)}function o(t,e){return a(t-2,e)}if(!i||!i[n("uTXa",-241)]||!i[o(186,"Z!bF")][n("k]MG",-307)]){R=!1;const t=S(949,839);return void(d=O(t,v))}if(!i[e(220,212)]){R=!1;const t=l("@]ue",740);return void(d=O(t,v))}function l(t,e){return c(e-805,t)}const u=function(t){const e=Object[i(966,1071)]({},t);function i(t,e){return g(e,t-642)}function s(t,e){return a(t-172,e)}return delete e[s(366,"Z!bF")],delete e[s(347,"uTXa")],JSON[i(1088,1136)](e)}(i);function m(t,e){return a(t-1218,e)}function w(t,e){return $(e-329,t)}if(!function(t,e){if(!t||!e)return!1;const i=new x({});var s,a,n,o;return i[(s="Lh[&",a=207,r(s,a-128))](y),i[(n=656,o=536,$(n-649,o))](e,t,Gi)}(i[(k=686,D=743,g(D,k-152))],u)){R=!1;const t=n("pLXS",-262);return void(d=O(t,v))}var k,D;function S(t,e){return p(e- -534,t)}const P=(new Date)[e(278,203)]();if(i[e(226,303)][S(829,713)]<P){R=!1;const t=f(953,751);d=O(t,v)}else{var z,C;if(i[m(1370,"@]ue")][S(812,713)]===n("AN2v",-167)||i[S(665,747)][(z="qVoA",C=1530,a(C-1271,z))]===w(584,593)){const t=h[n("Z[0U",-258)](":");t>-1&&(h=h[n("sNZE",-380)](0,t));const e=ks(h);e[m(1269,"0ehx")]===ps[m(1361,"8nIz")]&&e[w(501,391)]&&e[o(215,"AN2v")]&&(h=e[l("3H[T",696)]+"."+e[S(889,819)][w(503,447)]("."))}if(i[n("uTXa",-334)][n("Cf&G",-274)](h));else{R=!1;const t=m(1434,"QjRk")+h+m(1457,"5GoS");d=O(t,v)}}}();const e=g(481,383),l=encodeURIComponent,u=(new Date)[c(0,"u2H$")](),m=Vi[a(182,"Z[0U")](u,b),k=f(941,914),S=Ri(u+h,k,{keySize:16})[f(970,1049)](),P=[l(n(1147,"Z!bF"))+"="+l(t),l(p(1560,1614))+"="+l(h),l(D("k]MG",782))+"="+l(location[r("$]Vb",-56)]),l(g(193,292))+"="+l(m),l(o(1243,1219))+"="+l(e),l(g(384,500))+"="+l(navigator[$(124,-4)])][p(1404,1494)]("&"),z=o(1213,1350);window[a(250,"5GoS")](z,{method:g(371,489),redirect:a(196,"KAXY"),headers:{"Content-Type":D("qtFU",881)},body:P})[r("Lh[&",-157)]((t=>{return 200!==t[(s=1264,a="KAXY",n(s-189,a))]&&(R=!1,d=w),t[(e=466,i=617,f(i,e- -510))]();var e,i,s,a}))[a(31,"Lh[&")]((a=>{function o(t,e){return p(e- -1026,t)}function u(t,e){return D(t,e- -120)}function m(t,e){return r(e,t-586)}function b(t,e){return g(t,e- -62)}function y(t,e){return $(e- -242,t)}function k(t,e){return c(t- -256,e)}function x(t,e){return r(e,t-772)}function P(t,e){return n(e- -1346,t)}if(a&&a.ok)if(a[k(-309,"uTXa")]&&a[k(-404,"j5pR")]===S)R=!0,s[o(375,282)](P("l$&U",-278),(()=>{function t(t,e){return o(t,e-659)}function e(t,e){return u(e,t- -875)}var s,n;var r,l,c,h;function d(t,e){return o(t,e-306)}function m(t,e){return P(e,t-328)}return{registeredDomains:a[e(-47,"7gAc")],validUntil:{text:a[t(1107,1150)],value:i[d(698,696)][(c="7gAc",h=-300,k(h-19,c))](a[t(1083,1150)])[d(519,568)]()},type:null!==(s=a[m(146,"ykFB")])&&void 0!==s?s:{text:(r=1549,l=1443,o(l,r-1100)),value:m(-34,"Z!bF")},for:null!==(n=a[e(-158,"uTXa")])&&void 0!==n?n:""}}));else{R=!1;const i=x(642,"l$&U");d=O(i,v);const s=y(-6,-26),n=[l(x(878,"jJMI"))+"="+l(t),l(o(515,534))+"="+l(h),l(b(436,495))+"="+l(location[b(391,495)]),l(k(-435,"PHcw"))+"="+l(e),l(y(-299,-208))+"="+l(String(a[u("5GoS",721)])),l(k(-146,"0yPT"))+"="+l(S),l(I(-92,64))+"="+l(navigator[y(-211,-118)])][b(329,365)]("&");window[b(462,507)](s,{method:I(-103,-176),redirect:P("#Imo",-265),headers:{"Content-Type":y(-227,-137)},body:n})}else if(a){R=!1;const t=j(a[b(652,494)][(z=1323,C=1195,g(z,C-900))](/\n/gi,m(662,"dC(H")));let e=null;a[k(-150,"yaU7")]&&(e=j(a[o(294,421)][o(237,246)](/\n/gi,y(-109,19))));const i=m(487,"@]ue");d=_` <div class="${i}"><strong>${W} ${t}</strong><br />${e}<br />${v}</div> `}else R=!1,d=w;var z,C;function I(t,e){return f(e,t- -1057)}M()}))[f(1077,949)]((()=>{R=!1,d=w,M()}))}else{R=!1;const t=f(743,826),e=n(1195,"jJMI");d=_` <div class="${e}">${W} ${t}${v}</div> `}}))}function E(t,e){return _a(e-362,t)}function N(t,e){return _a(e- -141,t)}T(A[E("Qu[l",844)](S(1497,1484),(t=>{var e,i;function a(t,e){return E(e,t- -1221)}L(t)[(e="7gAc",i=-34,h(e,i- -845))]((()=>{M()}))[a(-402,"QjRk")]((t=>{R=!1;const e=o("Lh[&",-17);var i,n;function o(t,e){return a(e-393,t)}d=O(e),s[(i=932,n=959,Aa(i-520,n))](Aa(164- -502,322))&&console[o("kUE)",170)](a(1308-1683,"PHcw"),t),M()})),M()})));const V={width:0,height:0},B={width:0,height:0};let G,H,q,Y;function F(t){function e(t,e){return z(t- -194,e)}function i(t,e){return y(e,t- -355)}const a=t[e(979,1018)],n=t[i(-10,"dC(H")];var o,r;(V[i(-23,"Cf&G")]!==a||V[i(-6,"Cf&G")]!==n)&&(V[e(1143,1205)]=a,V[i(15,"qtFU")]=n,s[(o="T6w4",r=-258,y(o,r- -649))](S(41- -1490,177),V))}class U{constructor(t){function e(t,e){return g(t,e- -401)}var i,a;!G&&(G=new ResizeObserver((()=>{F(t)})),G[e("PHcw",133)](t),s[(i=-294,a=-232,S(i- -1570,a))](e("yaU7",177),t),F(t))}[E("@]ue",851)](){}[E("pLXS",1044)](t){var e,i;G[(e="T6w4",i=1257,y(e,i-936))](t)}}function K(t){const e=t[i(987,"qVoA")];function i(t,e){return g(e,t-560)}const a=t[n(-177,-233)];function n(t,e){return S(t- -1599,e)}var o,r,l,c;(B[i(897,"uTXa")]!==e||B[(l=434,c="kUE)",g(c,l-137))]!==a)&&(B[n(-202,-155)]=e,B[(o="@]ue",r=204,g(o,r- -259))]=a,s[n(-323,-318)](y("Lh[&",394- -18),B))}!b[N("$]Vb",532)](U)&&b[z(1412,1532)](U);class Z{constructor(t){var e,i;function a(t,e){return z(t-192,e)}t=t[(e=1074,i="PHcw",g(i,e-724))],!H&&(H=new ResizeObserver((()=>{K(t)})),H[a(1362,1507)](t),s[a(1408,1415)](a(1562,1642),t),K(t))}[y("[aTY",166)](){}[S(1535,1507)](t){var e,i,s,a;H[(s=121,a=77,I(s-146,a))](t[(e=369,i=490,S(i- -905,e))])}}!b[p(218,123)](Z)&&b[p(336,276)](Z),a((()=>{var t,e,i,s;H[(i=143,s=279,I(i-409,s))](),G[(t="j5pR",e=816,h(t,e-114))]()})),a(s[u(633,686)]([g("lLsV",539),N("V[7O",486)],(()=>{function t(t,e){return u(t,e-266)}function e(t,e){return N(t,e-645)}function i(t,e){return u(t,e- -783)}if(s[(a=666,n=787,I(a-970,n))](E("sNZE",18- -792))){const a=s[e("ykFB",1151)](t(981,851));if(!a)return;s[t(753,810)](i(24,-94),(()=>{var t,n,o,r;return a[(o=1192,r="Z!bF",e(r,o-40))]-s[(t=-403,n=-358,i(t,n- -60))](p(860,878-439-143))}))}var a,n}),{group:!0})),a(s[u(459,582)](p(40,30),(t=>{var e,i,s,a,n,o,r,l;q=t[(r="qtFU",l=1077,g(r,l-733))][(n=184,o=184,u(n,o- -566))],Y=t[(s=-110,a=-106,I(a- -107,s))][(e="k]MG",i=963,E(e,i-170))]})));const X={handleEvent(t){function e(t,e){return g(t,e-835)}function a(t,e){return p(t,e-978)}const n=i[b(1503,1639)](t);if(t[d("sNZE",182)]||n.x){const t=n.x?n.x:n.y,e=i[b(1310,1468)]();return void(t>0?s[b(1207,1352)](b(1494,1539))?i[(l=975,c=1008,S(l- -410,c))](e[h(827,849)]+t*q):i[(o=1373,r=1406,p(r,o-1184))](e[f(1343,"ZtUo")]+q):s[h(784,725)](h(1071,1060))?i[f(1575,"Z!bF")](e[a(985,1042)]+t*q):i[f(1497,"V[7O")](e[f(1431,"lLse")]-q))}var o,r,l,c;const u=i[b(1329,1467)]();function h(t,e){return S(t- -433,e)}function d(t,e){return E(t,e- -745)}function m(t,e){return E(t,e- -803)}function f(t,e){return E(e,t-485)}function b(t,e){return S(t- -10,e)}if(n.y>0)if(s[f(1397,"PHcw")](d("bui2",173))){const t=s[b(1207,1190)](m("bui2",294));let a=0;a=t?n.y/t*Y:n.y*Y,i[e("8nIz",1355)](u[h(827,933)]+a)}else i[a(1138,1301)](u[a(1031,1072)]+Y);else if(s[b(1207,1240)](b(1451,1358))){const t=s[m("7gAc",116)](h(933,815));let a=0;a=t?n.y/t*Y:n.y*Y,i[e("0yPT",1210)](u[f(1371,"pX]4")]+a)}else i[f(1367,"0ehx")](u[d("qVoA",223)]-Y)},passive:!0},Q=Object[p(144,73)](Object[z(1209,1137)]({},e),{api:i,state:s,componentName:f});l((t=>{for(const e in t)Q[e]=t[e]}));const J=n[h("0ehx",753)](b,Q),tt=i[E("5BBS",930)](h("Z[0U",602),t,e);return a(tt[p(264,339)]),()=>R?tt[S(1245,1393)](E("FOkT",789),r`
            <div
              data-info-url="https://github.com/neuronetio/gantt-schedule-timeline-calendar"
              class=${m[z(1416,1504)]}
              style=${m[S(1512,1442)][N("#Imo",455)]()}
              data-actions=${J()}
              @wheel=${X}
            >
              ${tt[z(1185,1096)](u(832,685),r` ${P[I(-276,-119)]()}${C[g("sNZE",258)]()} `)}
            </div>
          `):d}let Ra;!function(t){function e(t,e){return _a(t- -374,e)}function i(t,e){return _a(e-637,t)}function s(t,e){return Aa(t- -698,e)}function a(t,e){return _a(t- -927,e)}const n=t();for(;;)try{if(157305===parseInt(i("kUE)",1073))/1*(-parseInt(s(-244,-99))/2)+parseInt(_a(-103- -788,"qVoA"))/3+parseInt(a(-297,"T6w4"))/4*(-parseInt((o=717,r=841,Aa(o-114,r)))/5)+-parseInt(e(310,"Cf&G"))/6*(-parseInt(s(-26,-162))/7)+-parseInt(i("5BBS",1195))/8+-parseInt(i("sNZE",1312))/9+-parseInt(a(-319,"j5pR"))/10*(-parseInt(e(170,"@]ue"))/11))break;n.push(n.shift())}catch(t){n.push(n.shift())}var o,r}(Ma);const Wa=new Array(128).fill(void 0);function Oa(t){return Wa[t]}Wa.push(void 0,null,!0,!1);let La=Wa.length;function Ea(t){const e=Oa(t);return function(t){t<132||(Wa[t]=La,La=t)}(t),e}const Na="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&Na.decode();let Va=null;function Ba(){return null!==Va&&0!==Va.byteLength||(Va=new Uint8Array(Ra.memory.buffer)),Va}function Ga(t,e){return t>>>=0,Na.decode(Ba().subarray(t,t+e))}function Ha(t){La===Wa.length&&Wa.push(Wa.length+1);const e=La;return La=Wa[e],Wa[e]=t,e}let qa=0;const Ya="undefined"!=typeof TextEncoder?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},Fa="function"==typeof Ya.encodeInto?function(t,e){return Ya.encodeInto(t,e)}:function(t,e){const i=Ya.encode(t);return e.set(i),{read:t.length,written:i.length}};function Ua(t,e,i){if(void 0===i){const i=Ya.encode(t),s=e(i.length,1)>>>0;return Ba().subarray(s,s+i.length).set(i),qa=i.length,s}let s=t.length,a=e(s,1)>>>0;const n=Ba();let o=0;for(;o<s;o++){const e=t.charCodeAt(o);if(e>127)break;n[a+o]=e}if(o!==s){0!==o&&(t=t.slice(o)),a=i(a,s,s=o+3*t.length,1)>>>0;const e=Ba().subarray(a+o,a+s);o+=Fa(t,e).written}return qa=o,a}let Ka=null;function Za(){return null!==Ka&&0!==Ka.byteLength||(Ka=new Int32Array(Ra.memory.buffer)),Ka}function Xa(){const t={wbg:{}};return t.wbg.__wbindgen_object_drop_ref=function(t){Ea(t)},t.wbg.__wbindgen_string_new=function(t,e){return Ha(Ga(t,e))},t.wbg.__wbindgen_bigint_from_i64=function(t){return Ha(t)},t.wbg.__wbindgen_bigint_from_u64=function(t){return Ha(BigInt.asUintN(64,t))},t.wbg.__wbindgen_error_new=function(t,e){return Ha(new Error(Ga(t,e)))},t.wbg.__wbindgen_object_clone_ref=function(t){return Ha(Oa(t))},t.wbg.__wbg_String_b9412f8799faab3e=function(t,e){const i=Ua(String(Oa(e)),Ra.__wbindgen_malloc,Ra.__wbindgen_realloc),s=qa;Za()[t/4+1]=s,Za()[t/4+0]=i},t.wbg.__wbindgen_number_new=function(t){return Ha(t)},t.wbg.__wbg_set_f975102236d3c502=function(t,e,i){Oa(t)[Ea(e)]=Ea(i)},t.wbg.__wbg_new_abda76e883ba8a5f=function(){return Ha(new Error)},t.wbg.__wbg_stack_658279fe44541cf6=function(t,e){const i=Ua(Oa(e).stack,Ra.__wbindgen_malloc,Ra.__wbindgen_realloc),s=qa;Za()[t/4+1]=s,Za()[t/4+0]=i},t.wbg.__wbg_error_f851667af71bcfc6=function(t,e){let i,s;try{i=t,s=e,console.error(Ga(t,e))}finally{Ra.__wbindgen_free(i,s,1)}},t.wbg.__wbg_new_898a68150f225f2e=function(){return Ha(new Array)},t.wbg.__wbg_new_56693dbed0c32988=function(){return Ha(new Map)},t.wbg.__wbg_new_b51585de1b234aff=function(){return Ha(new Object)},t.wbg.__wbg_set_502d29070ea18557=function(t,e,i){Oa(t)[e>>>0]=Ea(i)},t.wbg.__wbg_set_bedc3d02d0f05eb0=function(t,e,i){return Ha(Oa(t).set(Oa(e),Oa(i)))},t.wbg.__wbindgen_is_string=function(t){return"string"==typeof Oa(t)},t.wbg.__wbindgen_throw=function(t,e){throw new Error(Ga(t,e))},t}function Qa(t,e){return Ra=t.exports,Ja.__wbindgen_wasm_module=e,Ka=null,Va=null,Ra}async function Ja(t){if(void 0!==Ra)return Ra;const e=Xa();("string"==typeof t||"function"==typeof Request&&t instanceof Request||"function"==typeof URL&&t instanceof URL)&&(t=fetch(t));const{instance:i,module:s}=await async function(t,e){if("function"==typeof Response&&t instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(t,e)}catch(e){if("application/wasm"==t.headers.get("Content-Type"))throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}const i=await t.arrayBuffer();return await WebAssembly.instantiate(i,e)}{const i=await WebAssembly.instantiate(t,e);return i instanceof WebAssembly.Instance?{instance:i,module:t}:i}}(await t,e);return Qa(i,s)}var tn=Object.freeze({__proto__:null,parse_license_key:function(t,e){const i=Ua(t,Ra.__wbindgen_malloc,Ra.__wbindgen_realloc),s=qa,a=Ua(e,Ra.__wbindgen_malloc,Ra.__wbindgen_realloc),n=qa;return Ea(Ra.parse_license_key(i,s,a,n))},License:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_license_free(t)}},LicenseDate:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_licensedate_free(t)}},LicenseKeyResult:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_licensekeyresult_free(t)}},LicenseResult:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_licenseresult_free(t)}},LicenseType:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_licensetype_free(t)}},ProductInfo:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_productinfo_free(t)}},SignedLicense:class{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ra.__wbg_signedlicense_free(t)}},initSync:function(t){if(void 0!==Ra)return Ra;const e=Xa();return t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t)),Qa(new WebAssembly.Instance(t,e),t)},default:Ja});
/**
     * Gantt-Schedule-Timeline-Calendar component
     *
     * @copyright NEURONET - Rafal Pospiech
     * @author    Rafal Pospiech <neuronet.io@gmail.com>
     * @module    gantt-schedule-timeline-calendar
     * @link      https://github.com/neuronetio/gantt-schedule-timeline-calendar
     * @link      https://gantt-schedule-timeline-calendar.neuronet.io
     * @version   3.40.5
     * @released  2025-03-24
     * @license   SEE LICENSE IN LICENSE FILE
     */
const en=async function(t={}){let{importHook:e,serverPath:i}=t,s=new URL("assets/dcf9fc09.wasm","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("gstc.umd.min.js",document.baseURI).href).href;return null!=i&&(s=i+/[^\/\\]*$/.exec(s)[0]),null!=e&&(s=e(s)),await Ja(s),tn};function sn(t){const e=t.state,i=new Ce(e),s={treeMap:{},itemRowMap:{},list:{visibleRows:[],rowsIds:[],rows:{},visibleRowsHeight:0,rowsWithParentsExpanded:[],rowsHeight:0,width:0},dimensions:{width:0,height:0},chart:{items:{},grid:{cells:{},rows:{}},dimensions:{width:0,widthWithoutScrollBar:0,height:0,innerHeight:0,heightWithoutScrollBar:0},verticallyVisibleItems:[],time:{zoom:0,format:{period:"day",periodIncrement:1,zoomTo:0,format:()=>""},level:0,levels:[],currentZoomLevelFormatting:[],allDates:[],timePerPixel:0,totalViewDurationMs:0,totalViewDurationPx:0,leftGlobal:0,rightGlobal:0,leftPx:0,rightPx:0,period:"day",leftGlobalDate:void 0,rightGlobalDate:void 0,centerGlobal:0,centerGlobalDate:void 0,from:0,to:0,fromDate:void 0,toDate:void 0,autoExpandTimeFromItems:!1,datesCache:{timePerPixel:0,levels:[]}}},scroll:{horizontal:{lastPageSize:0,lastPageCount:0,absoluteSize:0,absoluteSizeWithoutLastPage:0,handlePosPx:0,innerHandleSize:0,absolutePosPx:0,maxHandlePosPx:0,scrollSize:0,dataIndex:0,dataId:"",data:null,preciseOffset:0,visible:!1,percent:0},vertical:{lastPageSize:0,lastPageCount:0,absoluteSize:0,absoluteSizeWithoutLastPage:0,handlePosPx:0,innerHandleSize:0,absolutePosPx:0,maxHandlePosPx:0,scrollSize:0,dataIndex:0,dataId:"",data:null,preciseOffset:0,visible:!1,percent:0}},elements:{},initializedPlugins:new Set};"boolean"==typeof t.debug&&t.debug&&(globalThis.state=e),e.update("",(t=>({config:t.config,$data:s})));const a=ce(e,i),n=a.lithtml;i.setVido(a),i.setMergeDeep(Ta);const o=a.createApp({component:ja,props:{wasmInitialized:en},element:t.element}),r=o.vidoInstance.api;const l={state:e,api:r,component:o,destroy:function(){o.destroy(),e.destroy()},reload:function(){l.component.destroy(),l.component=a.createApp({component:ja,props:{wasmInitialized:en},element:t.element}),l.api=o.vidoInstance.api,l.component.update()},lithtml:n,Vido:ce};return l}const an=document.createTextNode("");document.createTextNode=function(t){const e=an.cloneNode(!0);return e.textContent=t,e}.bind(document);const nn=document.createElement("div"),on=document.createElement.bind(document);return document.createElement=function(t,...e){if("div"!==t)return on(t,...e);return nn.cloneNode(!0)}.bind(document),sn.api=Ii,sn.lithtml=B,sn.Vido=ce,sn}));